From ba2af5addaed5f07200247e3811205d2f008562c Mon Sep 17 00:00:00 2001 From: Anh Do <18567+quanganhdo@users.noreply.github.com> Date: Thu, 15 Aug 2024 09:08:58 -0400 Subject: [PATCH 01/32] Update BSK to include VPN shutdown hotfix (#3239) --- DuckDuckGo.xcodeproj/project.pbxproj | 2 +- .../project.xcworkspace/xcshareddata/swiftpm/Package.resolved | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DuckDuckGo.xcodeproj/project.pbxproj b/DuckDuckGo.xcodeproj/project.pbxproj index fd750d95bf..e908ba827f 100644 --- a/DuckDuckGo.xcodeproj/project.pbxproj +++ b/DuckDuckGo.xcodeproj/project.pbxproj @@ -10527,7 +10527,7 @@ repositoryURL = "https://github.com/DuckDuckGo/BrowserServicesKit"; requirement = { kind = exactVersion; - version = 184.0.0; + version = 184.0.1; }; }; 9F8FE9472BAE50E50071E372 /* XCRemoteSwiftPackageReference "lottie-spm" */ = { diff --git a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 9be9fe31c1..d3884d9834 100644 --- a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -32,8 +32,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/DuckDuckGo/BrowserServicesKit", "state" : { - "revision" : "c6ce430371032930d770b0388cbe44a2d40ad729", - "version" : "184.0.0" + "revision" : "b7f595594d9e5d8500a93704d36a5521553bd314", + "version" : "184.0.1" } }, { From 70101ca9f860d34f9e2e199602989d7c690af6ee Mon Sep 17 00:00:00 2001 From: Sam Symons Date: Thu, 15 Aug 2024 18:33:01 -0700 Subject: [PATCH 02/32] Update attribution (#3236) Task/Issue URL: https://app.asana.com/0/72649045549333/1208057751955788/f Tech Design URL: CC: Description: This PR adds support for AdAttributionKit. --- DuckDuckGo.xcodeproj/project.pbxproj | 8 ++-- DuckDuckGo/AppDelegate+Attribution.swift | 59 ++++++++++++++++++++++++ DuckDuckGo/AppDelegate+SKAD4.swift | 40 ---------------- DuckDuckGo/AppDelegate.swift | 4 +- 4 files changed, 65 insertions(+), 46 deletions(-) create mode 100644 DuckDuckGo/AppDelegate+Attribution.swift delete mode 100644 DuckDuckGo/AppDelegate+SKAD4.swift diff --git a/DuckDuckGo.xcodeproj/project.pbxproj b/DuckDuckGo.xcodeproj/project.pbxproj index 71c02333e0..ef6d0f967c 100644 --- a/DuckDuckGo.xcodeproj/project.pbxproj +++ b/DuckDuckGo.xcodeproj/project.pbxproj @@ -1010,7 +1010,7 @@ F15531922BF215ED0029ED04 /* SubscriptionTestingUtilities in Frameworks */ = {isa = PBXBuildFile; productRef = F15531912BF215ED0029ED04 /* SubscriptionTestingUtilities */; }; F15531942BF215F60029ED04 /* Subscription in Frameworks */ = {isa = PBXBuildFile; productRef = F15531932BF215F60029ED04 /* Subscription */; }; F15531962BF215F60029ED04 /* SubscriptionTestingUtilities in Frameworks */ = {isa = PBXBuildFile; productRef = F15531952BF215F60029ED04 /* SubscriptionTestingUtilities */; }; - F1564F032B7B915F00D454A6 /* AppDelegate+SKAD4.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1564F022B7B915F00D454A6 /* AppDelegate+SKAD4.swift */; }; + F1564F032B7B915F00D454A6 /* AppDelegate+Attribution.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1564F022B7B915F00D454A6 /* AppDelegate+Attribution.swift */; }; F15D43201E706CC500BF2CDC /* AutocompleteViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F15D431F1E706CC500BF2CDC /* AutocompleteViewController.swift */; }; F1617C131E572E0300DEDCAF /* TabSwitcherViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1617C121E572E0300DEDCAF /* TabSwitcherViewController.swift */; }; F1617C151E57336D00DEDCAF /* TabManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1617C141E57336D00DEDCAF /* TabManager.swift */; }; @@ -2781,7 +2781,7 @@ F143C32C1E4A9A4800CFDE3A /* UIViewControllerExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = UIViewControllerExtension.swift; path = ../Core/UIViewControllerExtension.swift; sourceTree = ""; }; F143C3451E4AA32D00CFDE3A /* SearchBarExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SearchBarExtension.swift; path = ../Core/SearchBarExtension.swift; sourceTree = ""; }; F14E491E1E391CE900DC037C /* URLExtensionTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = URLExtensionTests.swift; sourceTree = ""; }; - F1564F022B7B915F00D454A6 /* AppDelegate+SKAD4.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "AppDelegate+SKAD4.swift"; sourceTree = ""; }; + F1564F022B7B915F00D454A6 /* AppDelegate+Attribution.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "AppDelegate+Attribution.swift"; sourceTree = ""; }; F159BDA31F0BDB5A00B4A01D /* TabViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TabViewController.swift; sourceTree = ""; }; F15D431F1E706CC500BF2CDC /* AutocompleteViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AutocompleteViewController.swift; sourceTree = ""; }; F1617C121E572E0300DEDCAF /* TabSwitcherViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TabSwitcherViewController.swift; sourceTree = ""; }; @@ -5818,7 +5818,7 @@ CB24F70E29A3EB15006DCC58 /* AppConfigurationURLProvider.swift */, 84E341951E2F7EFB00BDBA6F /* AppDelegate.swift */, 85DB12EC2A1FED0C000A4A72 /* AppDelegate+AppDeepLinks.swift */, - F1564F022B7B915F00D454A6 /* AppDelegate+SKAD4.swift */, + F1564F022B7B915F00D454A6 /* AppDelegate+Attribution.swift */, 98B31291218CCB8C00E54DE1 /* AppDependencyProvider.swift */, 85BA58591F3506AE00C6E8CA /* AppSettings.swift */, 85BA58541F34F49E00C6E8CA /* AppUserDefaults.swift */, @@ -7041,7 +7041,7 @@ 9F5E5AB02C3E4C6000165F54 /* ContextualOnboardingPresenter.swift in Sources */, 310D091B2799F54900DC0060 /* DownloadManager.swift in Sources */, 98D98A7425ED88D100D8E3DF /* BrowsingMenuEntryViewCell.swift in Sources */, - F1564F032B7B915F00D454A6 /* AppDelegate+SKAD4.swift in Sources */, + F1564F032B7B915F00D454A6 /* AppDelegate+Attribution.swift in Sources */, 98F3A1D8217B37010011A0D4 /* Theme.swift in Sources */, 4B2C79612C5B27AC00A240CC /* VPNSnoozeActivityAttributes.swift in Sources */, CB9B873C278C8FEA001F4906 /* WidgetEducationView.swift in Sources */, diff --git a/DuckDuckGo/AppDelegate+Attribution.swift b/DuckDuckGo/AppDelegate+Attribution.swift new file mode 100644 index 0000000000..fef1e31449 --- /dev/null +++ b/DuckDuckGo/AppDelegate+Attribution.swift @@ -0,0 +1,59 @@ +// +// AppDelegate+Attribution.swift +// DuckDuckGo +// +// Copyright © 2023 DuckDuckGo. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import Foundation +import Common +import StoreKit +import AdAttributionKit + +extension AppDelegate { + + func updateAttribution(conversionValue: Int) { + Task { + if #available(iOS 17.4, *) { + // https://developer.apple.com/documentation/adattributionkit/adattributionkit-skadnetwork-interoperability + await updateAdAttributionKitPostback(conversionValue: conversionValue) + await updateSKANPostback(conversionValue: conversionValue) + } else if #available(iOS 16.1, *) { + await updateSKANPostback(conversionValue: conversionValue) + } + } + } + + @available(iOS 17.4, *) + private func updateAdAttributionKitPostback(conversionValue: Int) async { + do { + try await AdAttributionKit.Postback.updateConversionValue(conversionValue, coarseConversionValue: .high, lockPostback: true) + os_log("Attribution: AdAttributionKit postback succeeded", type: .debug) + } catch { + os_log("Attribution: AdAttributionKit postback failed %@", type: .error, error.localizedDescription) + } + } + + @available(iOS 16.1, *) + private func updateSKANPostback(conversionValue: Int) async { + do { + try await SKAdNetwork.updatePostbackConversionValue(conversionValue, coarseValue: .high, lockWindow: true) + os_log("Attribution: SKAN 4 postback succeeded", type: .debug) + } catch { + os_log("Attribution: SKAN 4 postback failed %@", type: .error, error.localizedDescription) + } + } + +} diff --git a/DuckDuckGo/AppDelegate+SKAD4.swift b/DuckDuckGo/AppDelegate+SKAD4.swift deleted file mode 100644 index 9f65d0eac3..0000000000 --- a/DuckDuckGo/AppDelegate+SKAD4.swift +++ /dev/null @@ -1,40 +0,0 @@ -// -// AppDelegate+SKAD4.swift -// DuckDuckGo -// -// Copyright © 2023 DuckDuckGo. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -import Foundation -import StoreKit -import Common - -extension AppDelegate { - - func updateSKAd(conversionValue: Int) { - - if #available(iOS 16.1, *) { - SKAdNetwork.updatePostbackConversionValue(conversionValue, coarseValue: .high, lockWindow: true, completionHandler: { error in - if let error { - os_log("SKAD 4 postback failed %@", type: .error, error.localizedDescription) - } else { - os_log("SKAD 4 postback succeeded", type: .debug) - } - }) - } else { - os_log("SKAD 4 Not supported in this iOS version", type: .debug) - } - } -} diff --git a/DuckDuckGo/AppDelegate.swift b/DuckDuckGo/AppDelegate.swift index 4251b031f3..a9a5bedee3 100644 --- a/DuckDuckGo/AppDelegate.swift +++ b/DuckDuckGo/AppDelegate.swift @@ -112,8 +112,8 @@ import WebKit // swiftlint:disable:next function_body_length func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { - // SKAD4 support - updateSKAd(conversionValue: 1) + // Attribution support + updateAttribution(conversionValue: 1) #if targetEnvironment(simulator) if ProcessInfo.processInfo.environment["UITESTING"] == "true" { From ae17f3dc84f6f3884b87f58fab5942419b0849de Mon Sep 17 00:00:00 2001 From: Sam Symons Date: Thu, 15 Aug 2024 19:15:41 -0700 Subject: [PATCH 03/32] Release 7.133.0-2 (#3245) Please make sure all GH checks passed before merging. It can take around 20 minutes. Briefly review this PR to see if there are no issues or red flags and then merge it. --- DuckDuckGo.xcodeproj/project.pbxproj | 56 ++++++++++++++-------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/DuckDuckGo.xcodeproj/project.pbxproj b/DuckDuckGo.xcodeproj/project.pbxproj index ef6d0f967c..a417ad19fa 100644 --- a/DuckDuckGo.xcodeproj/project.pbxproj +++ b/DuckDuckGo.xcodeproj/project.pbxproj @@ -8730,7 +8730,7 @@ CODE_SIGN_ENTITLEMENTS = PacketTunnelProvider/PacketTunnelProvider.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; DEVELOPMENT_TEAM = HKE973VLUW; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -8767,7 +8767,7 @@ CODE_SIGN_IDENTITY = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -8857,7 +8857,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = ShareExtension/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -8884,7 +8884,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -9033,7 +9033,7 @@ CODE_SIGN_ENTITLEMENTS = DuckDuckGo/DuckDuckGo.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_ASSET_PATHS = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; @@ -9058,7 +9058,7 @@ CODE_SIGN_ENTITLEMENTS = DuckDuckGo/DuckDuckGo.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; INFOPLIST_FILE = DuckDuckGo/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -9127,7 +9127,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; DEAD_CODE_STRIPPING = NO; GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = Widgets/Info.plist; @@ -9161,7 +9161,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; DEAD_CODE_STRIPPING = NO; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; @@ -9194,7 +9194,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = OpenAction/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -9224,7 +9224,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -9534,7 +9534,7 @@ CODE_SIGN_ENTITLEMENTS = DuckDuckGo/DuckDuckGoAlpha.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_ASSET_PATHS = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; @@ -9565,7 +9565,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = ShareExtension/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -9593,7 +9593,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = OpenAction/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -9626,7 +9626,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; DEAD_CODE_STRIPPING = NO; GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = Widgets/Info.plist; @@ -9656,7 +9656,7 @@ CODE_SIGN_ENTITLEMENTS = PacketTunnelProvider/PacketTunnelProviderAlpha.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; DEVELOPMENT_TEAM = HKE973VLUW; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -9689,11 +9689,11 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; + DYLIB_CURRENT_VERSION = 2; DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = Core/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -9926,7 +9926,7 @@ CODE_SIGN_ENTITLEMENTS = DuckDuckGo/DuckDuckGoAlpha.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_ASSET_PATHS = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; @@ -9953,7 +9953,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -9985,7 +9985,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -10022,7 +10022,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; DEAD_CODE_STRIPPING = NO; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; @@ -10057,7 +10057,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -10092,11 +10092,11 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; + DYLIB_CURRENT_VERSION = 2; DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = Core/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -10269,11 +10269,11 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; + DYLIB_CURRENT_VERSION = 2; DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = Core/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -10302,10 +10302,10 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; + DYLIB_CURRENT_VERSION = 2; DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = Core/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; From 0ceda880b3b6ce33035d24d782b229b8f2da8bee Mon Sep 17 00:00:00 2001 From: Alessandro Boron Date: Fri, 16 Aug 2024 14:08:55 +1000 Subject: [PATCH 04/32] Contextual Onboarding - Skip additional trackers dialog (#3231) Task/Issue URL: https://app.asana.com/0/414709148257752/1208041208498959/f **Description**: 1. Don't show dialog for major tracker or owned by major tracker when blocked trackers dialog has been shown previously. 2. Removed duplicate Wand-16 image used for Suprise Me button. 3. Fixed missing scheme delimters for suggested websites. --- .../Wand-16.imageset/Contents.json | 15 ---- .../Wand-16.imageset/Wand-16.svg | 11 --- DuckDuckGo/DaxDialogs.swift | 10 ++- .../ContextualOnboardingList.swift | 2 +- .../OnboardingSuggestedSitesProvider.swift | 12 ++-- DuckDuckGoTests/DaxDialogTests.swift | 71 +++++++++++++++++++ ...nboardingSuggestedSitesProviderTests.swift | 8 +-- 7 files changed, 89 insertions(+), 40 deletions(-) delete mode 100644 DuckDuckGo/Assets.xcassets/Wand-16.imageset/Contents.json delete mode 100644 DuckDuckGo/Assets.xcassets/Wand-16.imageset/Wand-16.svg diff --git a/DuckDuckGo/Assets.xcassets/Wand-16.imageset/Contents.json b/DuckDuckGo/Assets.xcassets/Wand-16.imageset/Contents.json deleted file mode 100644 index 279c563708..0000000000 --- a/DuckDuckGo/Assets.xcassets/Wand-16.imageset/Contents.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "images" : [ - { - "filename" : "Wand-16.svg", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - }, - "properties" : { - "preserves-vector-representation" : true - } -} diff --git a/DuckDuckGo/Assets.xcassets/Wand-16.imageset/Wand-16.svg b/DuckDuckGo/Assets.xcassets/Wand-16.imageset/Wand-16.svg deleted file mode 100644 index e812a04346..0000000000 --- a/DuckDuckGo/Assets.xcassets/Wand-16.imageset/Wand-16.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/DuckDuckGo/DaxDialogs.swift b/DuckDuckGo/DaxDialogs.swift index c6acc16d2b..649ccbeb7c 100644 --- a/DuckDuckGo/DaxDialogs.swift +++ b/DuckDuckGo/DaxDialogs.swift @@ -300,7 +300,7 @@ final class DaxDialogs: NewTabDialogSpecProvider, ContextualOnboardingLogic { var shouldShowPrivacyButtonPulse: Bool { guard isNewOnboarding else { return false } - return settings.browsingWithTrackersShown && !settings.privacyButtonPulseShown && isEnabled + return settings.browsingWithTrackersShown && !settings.privacyButtonPulseShown && fireButtonPulseTimer == nil && isEnabled } func isStillOnboarding() -> Bool { @@ -365,6 +365,10 @@ final class DaxDialogs: NewTabDialogSpecProvider, ContextualOnboardingLogic { return settings.lastShownContextualOnboardingDialogType } + private var shouldShowNetworkTrackerDialog: Bool { + !settings.browsingMajorTrackingSiteShown && !settings.browsingWithTrackersShown + } + private func saveLastShownDaxDialog(specType: BrowsingSpec.SpecType) { guard isNewOnboarding else { return } settings.lastShownContextualOnboardingDialogType = specType.rawValue @@ -515,10 +519,10 @@ final class DaxDialogs: NewTabDialogSpecProvider, ContextualOnboardingLogic { if privacyInfo.url.isDuckDuckGoSearch && !settings.browsingAfterSearchShown { spec = searchMessage() - } else if isFacebookOrGoogle(privacyInfo.url) && !settings.browsingMajorTrackingSiteShown { + } else if isFacebookOrGoogle(privacyInfo.url) && shouldShowNetworkTrackerDialog { // won't be shown if owned by major tracker message has already been shown spec = majorTrackerMessage(host) - } else if let owner = isOwnedByFacebookOrGoogle(host), !settings.browsingMajorTrackingSiteShown { + } else if let owner = isOwnedByFacebookOrGoogle(host), shouldShowNetworkTrackerDialog { // won't be shown if major tracker message has already been shown spec = majorTrackerOwnerMessage(host, owner) } else if let entityNames = blockedEntityNames(privacyInfo.trackerInfo), !settings.browsingWithTrackersShown { diff --git a/DuckDuckGo/OnboardingExperiment/ContextualDaxDialogs/ContextualOnboardingList.swift b/DuckDuckGo/OnboardingExperiment/ContextualDaxDialogs/ContextualOnboardingList.swift index 976555a7a3..b660c06c44 100644 --- a/DuckDuckGo/OnboardingExperiment/ContextualDaxDialogs/ContextualOnboardingList.swift +++ b/DuckDuckGo/OnboardingExperiment/ContextualDaxDialogs/ContextualOnboardingList.swift @@ -31,7 +31,7 @@ public enum ContextualOnboardingListItem: Equatable { case .search(let title): return title case .site(let title): - return title.replacingOccurrences(of: "https:", with: "") + return title.replacingOccurrences(of: "https://", with: "") case .surprise: return UserText.DaxOnboardingExperiment.ContextualOnboarding.tryASearchOptionSurpriseMeTitle } diff --git a/DuckDuckGo/OnboardingHelpers/OnboardingSuggestedSitesProvider.swift b/DuckDuckGo/OnboardingHelpers/OnboardingSuggestedSitesProvider.swift index ab7a120bce..e44efd682b 100644 --- a/DuckDuckGo/OnboardingHelpers/OnboardingSuggestedSitesProvider.swift +++ b/DuckDuckGo/OnboardingHelpers/OnboardingSuggestedSitesProvider.swift @@ -30,7 +30,7 @@ struct OnboardingSuggestedSitesProvider: OnboardingSuggestionsItemsProviding { self.countryProvider = countryProvider } - private let scheme = "https:" + private let scheme = "https://" enum Countries: String { case indonesia = "ID" @@ -105,11 +105,11 @@ struct OnboardingSuggestedSitesProvider: OnboardingSuggestionsItemsProviding { private var surpriseMe: ContextualOnboardingListItem { let site: String switch Countries(rawValue: country) { - case .germany: site = "https://duden.de" - case .netherlands: site = "https://www.woorden.org/woord/eend" - case .sweden: site = "https://www.synonymer.se/sv-syn/anka" - default: site = "https:britannica.com/animal/duck" + case .germany: site = "duden.de" + case .netherlands: site = "www.woorden.org/woord/eend" + case .sweden: site = "www.synonymer.se/sv-syn/anka" + default: site = "britannica.com/animal/duck" } - return ContextualOnboardingListItem.surprise(title: site) + return ContextualOnboardingListItem.surprise(title: scheme + site) } } diff --git a/DuckDuckGoTests/DaxDialogTests.swift b/DuckDuckGoTests/DaxDialogTests.swift index 3f112a8db7..5e1a3e2e73 100644 --- a/DuckDuckGoTests/DaxDialogTests.swift +++ b/DuckDuckGoTests/DaxDialogTests.swift @@ -819,6 +819,21 @@ final class DaxDialog: XCTestCase { XCTAssertFalse(result) } + func testWhenExperimentGroup_AndBrowserWithTrackersShown_AndFireButtonPulseActive_ThenDoNotShowPrivacyAnimationPulse() { + // GIVEN + let settings = InMemoryDaxDialogsSettings() + settings.browsingWithTrackersShown = true + settings.privacyButtonPulseShown = false + let sut = makeExperimentSUT(settings: settings) + sut.fireButtonPulseStarted() + + // WHEN + let result = sut.shouldShowPrivacyButtonPulse + + // THEN + XCTAssertFalse(result) + } + func testWhenExperimentGroup_AndCallSetPrivacyButtonPulseSeen_ThenSetPrivacyButtonPulseShownFlagToTrue() { // GIVEN let settings = InMemoryDaxDialogsSettings() @@ -931,6 +946,62 @@ final class DaxDialog: XCTestCase { XCTAssertFalse(sut.isAddFavoriteFlow) } + func testWhenExperimentGroup_AndBlockedTrackersDialogSeen_AndMajorTrackerNotSeen_ThenReturnNilSpec() { + // GIVEN + let settings = InMemoryDaxDialogsSettings() + settings.browsingWithTrackersShown = true + settings.browsingMajorTrackingSiteShown = false + let sut = makeExperimentSUT(settings: settings) + + // WHEN + let result = sut.nextBrowsingMessageIfShouldShow(for: makePrivacyInfo(url: URLs.facebook)) + + // THEN + XCTAssertNil(result) + } + + func testWhenExperimentGroup_AndBlockedTrackersDialogNotSeen_AndMajorTrackerNotSeen_ThenReturnMajorNetworkSpec() { + // GIVEN + let settings = InMemoryDaxDialogsSettings() + settings.browsingWithTrackersShown = false + settings.browsingMajorTrackingSiteShown = false + let sut = makeExperimentSUT(settings: settings) + + // WHEN + let result = sut.nextBrowsingMessageIfShouldShow(for: makePrivacyInfo(url: URLs.facebook)) + + // THEN + XCTAssertEqual(result?.type, .siteIsMajorTracker) + } + + func testWhenExperimentGroup_AndBlockedTrackersDialogSeen_AndOwnedByMajorTrackerNotSeen_ThenReturnNilSpec() { + // GIVEN + let settings = InMemoryDaxDialogsSettings() + settings.browsingWithTrackersShown = true + settings.browsingMajorTrackingSiteShown = false + let sut = makeExperimentSUT(settings: settings) + + // WHEN + let result = sut.nextBrowsingMessageIfShouldShow(for: makePrivacyInfo(url: URLs.ownedByFacebook)) + + // THEN + XCTAssertNil(result) + } + + func testWhenExperimentGroup_AndBlockedTrackersDialogNotSeen_AndOwnedByMajorTrackerNotSeen_ThenReturnOwnedByMajorNetworkSpec() { + // GIVEN + let settings = InMemoryDaxDialogsSettings() + settings.browsingWithTrackersShown = false + settings.browsingMajorTrackingSiteShown = false + let sut = makeExperimentSUT(settings: settings) + + // WHEN + let result = sut.nextBrowsingMessageIfShouldShow(for: makePrivacyInfo(url: URLs.ownedByFacebook)) + + // THEN + XCTAssertEqual(result?.type, .siteOwnedByMajorTracker) + } + private func detectedTrackerFrom(_ url: URL, pageUrl: String) -> DetectedRequest { let entity = entityProvider.entity(forHost: url.host!) return DetectedRequest(url: url.absoluteString, diff --git a/DuckDuckGoTests/OnboardingSuggestedSitesProviderTests.swift b/DuckDuckGoTests/OnboardingSuggestedSitesProviderTests.swift index 019cf2104b..41224fbaa5 100644 --- a/DuckDuckGoTests/OnboardingSuggestedSitesProviderTests.swift +++ b/DuckDuckGoTests/OnboardingSuggestedSitesProviderTests.swift @@ -21,7 +21,7 @@ import XCTest @testable import DuckDuckGo class OnboardingSuggestedSitesProviderTests: XCTestCase { - let scheme = "https:" + let scheme = "https://" func testSuggestedSitesForIndonesia() { // GIVEN @@ -65,7 +65,7 @@ class OnboardingSuggestedSitesProviderTests: XCTestCase { XCTAssertEqual(sitesList[0], ContextualOnboardingListItem.site(title: scheme + "bundesliga.de")) XCTAssertEqual(sitesList[1], ContextualOnboardingListItem.site(title: scheme + "tagesschau.de")) XCTAssertEqual(sitesList[2], ContextualOnboardingListItem.site(title: scheme + "galeria.de")) - XCTAssertEqual(sitesList[3], ContextualOnboardingListItem.surprise(title: "https://duden.de")) + XCTAssertEqual(sitesList[3], ContextualOnboardingListItem.surprise(title: scheme + "duden.de")) } func testSuggestedSitesForCanada() { @@ -95,7 +95,7 @@ class OnboardingSuggestedSitesProviderTests: XCTestCase { XCTAssertEqual(sitesList[0], ContextualOnboardingListItem.site(title: scheme + "voetbalprimeur.nl")) XCTAssertEqual(sitesList[1], ContextualOnboardingListItem.site(title: scheme + "nu.nl")) XCTAssertEqual(sitesList[2], ContextualOnboardingListItem.site(title: scheme + "bol.com")) - XCTAssertEqual(sitesList[3], ContextualOnboardingListItem.surprise(title: "https://www.woorden.org/woord/eend")) + XCTAssertEqual(sitesList[3], ContextualOnboardingListItem.surprise(title: scheme + "www.woorden.org/woord/eend")) } func testSuggestedSitesForAustralia() { @@ -125,7 +125,7 @@ class OnboardingSuggestedSitesProviderTests: XCTestCase { XCTAssertEqual(sitesList[0], ContextualOnboardingListItem.site(title: scheme + "svenskafans.com")) XCTAssertEqual(sitesList[1], ContextualOnboardingListItem.site(title: scheme + "dn.se")) XCTAssertEqual(sitesList[2], ContextualOnboardingListItem.site(title: scheme + "tradera.com")) - XCTAssertEqual(sitesList[3], ContextualOnboardingListItem.surprise(title: "https://www.synonymer.se/sv-syn/anka")) + XCTAssertEqual(sitesList[3], ContextualOnboardingListItem.surprise(title: scheme + "www.synonymer.se/sv-syn/anka")) } func testSuggestedSitesForIreland() { From 8b76f0bee576f7106b5ff8e687a9a88b8ab4f84d Mon Sep 17 00:00:00 2001 From: Christopher Brind Date: Fri, 16 Aug 2024 11:23:36 +0100 Subject: [PATCH 05/32] Release 7.133.0-3 (#3247) Please make sure all GH checks passed before merging. It can take around 20 minutes. Briefly review this PR to see if there are no issues or red flags and then merge it. --- DuckDuckGo.xcodeproj/project.pbxproj | 56 ++++++++++----------- fastlane/metadata/default/release_notes.txt | 3 +- 2 files changed, 30 insertions(+), 29 deletions(-) diff --git a/DuckDuckGo.xcodeproj/project.pbxproj b/DuckDuckGo.xcodeproj/project.pbxproj index d9f8fae6a9..b395891042 100644 --- a/DuckDuckGo.xcodeproj/project.pbxproj +++ b/DuckDuckGo.xcodeproj/project.pbxproj @@ -8750,7 +8750,7 @@ CODE_SIGN_ENTITLEMENTS = PacketTunnelProvider/PacketTunnelProvider.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 3; DEVELOPMENT_TEAM = HKE973VLUW; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -8787,7 +8787,7 @@ CODE_SIGN_IDENTITY = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 3; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -8877,7 +8877,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 3; GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = ShareExtension/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -8904,7 +8904,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 3; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -9053,7 +9053,7 @@ CODE_SIGN_ENTITLEMENTS = DuckDuckGo/DuckDuckGo.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 3; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_ASSET_PATHS = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; @@ -9078,7 +9078,7 @@ CODE_SIGN_ENTITLEMENTS = DuckDuckGo/DuckDuckGo.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 3; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; INFOPLIST_FILE = DuckDuckGo/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -9147,7 +9147,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 3; DEAD_CODE_STRIPPING = NO; GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = Widgets/Info.plist; @@ -9181,7 +9181,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 3; DEAD_CODE_STRIPPING = NO; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; @@ -9214,7 +9214,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 3; GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = OpenAction/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -9244,7 +9244,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 3; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -9554,7 +9554,7 @@ CODE_SIGN_ENTITLEMENTS = DuckDuckGo/DuckDuckGoAlpha.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 3; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_ASSET_PATHS = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; @@ -9585,7 +9585,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 3; GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = ShareExtension/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -9613,7 +9613,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 3; GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = OpenAction/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -9646,7 +9646,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 3; DEAD_CODE_STRIPPING = NO; GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = Widgets/Info.plist; @@ -9676,7 +9676,7 @@ CODE_SIGN_ENTITLEMENTS = PacketTunnelProvider/PacketTunnelProviderAlpha.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 3; DEVELOPMENT_TEAM = HKE973VLUW; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -9709,11 +9709,11 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 3; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 2; + DYLIB_CURRENT_VERSION = 3; DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = Core/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -9946,7 +9946,7 @@ CODE_SIGN_ENTITLEMENTS = DuckDuckGo/DuckDuckGoAlpha.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 3; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_ASSET_PATHS = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; @@ -9973,7 +9973,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 3; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -10005,7 +10005,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 3; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -10042,7 +10042,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 3; DEAD_CODE_STRIPPING = NO; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; @@ -10077,7 +10077,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 3; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -10112,11 +10112,11 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 3; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 2; + DYLIB_CURRENT_VERSION = 3; DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = Core/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -10289,11 +10289,11 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 3; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 2; + DYLIB_CURRENT_VERSION = 3; DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = Core/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -10322,10 +10322,10 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 3; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 2; + DYLIB_CURRENT_VERSION = 3; DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = Core/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; diff --git a/fastlane/metadata/default/release_notes.txt b/fastlane/metadata/default/release_notes.txt index 95b0a3599b..c4ec0c2bc7 100644 --- a/fastlane/metadata/default/release_notes.txt +++ b/fastlane/metadata/default/release_notes.txt @@ -1 +1,2 @@ -- New! VPN snooze lets you pause the VPN for 20 minutes at a time. Use snooze to briefly connect through your regular IP when signing in to banking apps (or similar) without triggering their understandably thorough fraud prevention alerts. \ No newline at end of file + - New! VPN snooze lets you pause the VPN for 20 minutes at a time. Use snooze to briefly connect through your regular IP when signing in to banking apps (or similar) without triggering their understandably thorough fraud prevention alerts. + - You can now swipe to delete recently visited sites and searches from autocomplete results. The fire button also clears all data. From 880013d5b1b994aec83af49a24943d8418b4de7b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 16 Aug 2024 15:47:53 +0200 Subject: [PATCH 06/32] Bump submodules/privacy-reference-tests from `a603ff9` to `afb4f61` (#3227) Bump submodules/privacy-reference-tests from `a603ff9` to `afb4f61` (#3227) --- submodules/privacy-reference-tests | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/privacy-reference-tests b/submodules/privacy-reference-tests index a603ff9af2..afb4f6128a 160000 --- a/submodules/privacy-reference-tests +++ b/submodules/privacy-reference-tests @@ -1 +1 @@ -Subproject commit a603ff9af22ca3ff7ce2e7ffbfe18c447d9f23e8 +Subproject commit afb4f6128a3b50d53ddcb1897ea1fb4df6858aa1 From 76413167a29b9df895124a42eba80e9aaf43dff4 Mon Sep 17 00:00:00 2001 From: Daniel Bernal Date: Fri, 16 Aug 2024 16:31:33 +0200 Subject: [PATCH 07/32] [DuckPlayer] 20. OverlayInteracted (#3234) **Description**: - Implement/Fix `overlayInteracted` mode. Task/Issue URL: https://app.asana.com/0/1163321984198618/1207889813347127/f Tech Design URL: CC: **Description**: **Steps to test this PR**: 1. Got to a page 2. Refresh twice quickly, you should see the toast prompt. 3. If you do it again it should not show (7 day cool down) 4. By resetting the last shown date user default you can test that dismissing 3 times will stop showing the prompt for 30 days. **Definition of Done (Internal Only)**: * [ ] Does this PR satisfy our [Definition of Done](https://app.asana.com/0/1202500774821704/1207634633537039/f)? **Copy Testing**: * [ ] Use of correct apostrophes in new copy, ie `’` rather than `'` **Orientation Testing**: * [ ] Portrait * [ ] Landscape **Device Testing**: * [ ] iPhone SE (1st Gen) * [ ] iPhone 8 * [ ] iPhone X * [ ] iPhone 14 Pro * [ ] iPad **OS Testing**: * [ ] iOS 15 * [ ] iOS 16 * [ ] iOS 17 **Theme Testing**: * [ ] Light theme * [ ] Dark theme --- ###### Internal references: [Software Engineering Expectations](https://app.asana.com/0/59792373528535/199064865822552) [Technical Design Template](https://app.asana.com/0/59792373528535/184709971311943) --- Core/DateExtension.swift | 4 + Core/UserDefaultsPropertyWrapper.swift | 3 +- DuckDuckGo.xcodeproj/project.pbxproj | 46 +++++++- .../xcshareddata/swiftpm/Package.resolved | 4 +- DuckDuckGo/BrokenSitePromptLimiter.swift | 106 ++++++++++++++++++ DuckDuckGo/BrokenSitePromptView.swift | 61 ++++++++++ DuckDuckGo/BrokenSitePromptViewModel.swift | 32 ++++++ DuckDuckGo/MainViewController.swift | 79 +++++++++++++ DuckDuckGo/TabDelegate.swift | 3 + DuckDuckGo/TabViewController.swift | 5 + DuckDuckGo/UserBehaviorMonitor.swift | 29 +++-- DuckDuckGo/UserText.swift | 7 ++ DuckDuckGo/bg.lproj/Localizable.strings | 15 +++ DuckDuckGo/cs.lproj/Localizable.strings | 15 +++ DuckDuckGo/da.lproj/Localizable.strings | 15 +++ DuckDuckGo/de.lproj/Localizable.strings | 15 +++ DuckDuckGo/el.lproj/Localizable.strings | 15 +++ DuckDuckGo/en.lproj/Localizable.strings | 15 +++ DuckDuckGo/es.lproj/Localizable.strings | 15 +++ DuckDuckGo/et.lproj/Localizable.strings | 15 +++ DuckDuckGo/fi.lproj/Localizable.strings | 15 +++ DuckDuckGo/fr.lproj/Localizable.strings | 15 +++ DuckDuckGo/hr.lproj/Localizable.strings | 15 +++ DuckDuckGo/hu.lproj/Localizable.strings | 15 +++ DuckDuckGo/it.lproj/Localizable.strings | 15 +++ DuckDuckGo/lt.lproj/Localizable.strings | 15 +++ DuckDuckGo/lv.lproj/Localizable.strings | 15 +++ DuckDuckGo/nb.lproj/Localizable.strings | 15 +++ DuckDuckGo/nl.lproj/Localizable.strings | 15 +++ DuckDuckGo/pl.lproj/Localizable.strings | 15 +++ DuckDuckGo/pt.lproj/Localizable.strings | 15 +++ DuckDuckGo/ro.lproj/Localizable.strings | 15 +++ DuckDuckGo/ru.lproj/Localizable.strings | 15 +++ DuckDuckGo/sk.lproj/Localizable.strings | 15 +++ DuckDuckGo/sl.lproj/Localizable.strings | 15 +++ DuckDuckGo/sv.lproj/Localizable.strings | 15 +++ DuckDuckGo/tr.lproj/Localizable.strings | 15 +++ .../BrokenSitePromptLimiterTests.swift | 82 ++++++++++++++ DuckDuckGoTests/MockTabDelegate.swift | 4 + 39 files changed, 829 insertions(+), 11 deletions(-) create mode 100644 DuckDuckGo/BrokenSitePromptLimiter.swift create mode 100644 DuckDuckGo/BrokenSitePromptView.swift create mode 100644 DuckDuckGo/BrokenSitePromptViewModel.swift create mode 100644 DuckDuckGoTests/BrokenSitePromptLimiterTests.swift diff --git a/Core/DateExtension.swift b/Core/DateExtension.swift index 0c507f7899..8b937bfce5 100644 --- a/Core/DateExtension.swift +++ b/Core/DateExtension.swift @@ -28,4 +28,8 @@ extension Date { public func isLessThan48HoursAgo() -> Bool { self > Date().addingTimeInterval(-48 * 60 * 60) } + + public func isLessThan(daysAgo days: Int) -> Bool { + self > Date().addingTimeInterval(Double(-days) * 24 * 60 * 60) + } } diff --git a/Core/UserDefaultsPropertyWrapper.swift b/Core/UserDefaultsPropertyWrapper.swift index cf48ae723a..5f4b8f1053 100644 --- a/Core/UserDefaultsPropertyWrapper.swift +++ b/Core/UserDefaultsPropertyWrapper.swift @@ -144,7 +144,8 @@ public struct UserDefaultsWrapper { case didRefreshTimestamp = "com.duckduckgo.ios.userBehavior.didRefreshTimestamp" case didDoubleRefreshTimestamp = "com.duckduckgo.ios.userBehavior.didDoubleRefreshTimestamp" case didRefreshCounter = "com.duckduckgo.ios.userBehavior.didRefreshCounter" - case userDidInteractWithBrokenSitePrompt = "com.duckduckgo.ios.userBehavior.userDidInteractWithBrokenSitePrompt" + case lastBrokenSiteToastShownDate = "com.duckduckgo.ios.userBehavior.lastBrokenSiteToastShownDate" + case toastDismissStreakCounter = "com.duckduckgo.ios.userBehavior.toastDismissStreakCounter" case pixelExperimentInstalled = "com.duckduckgo.ios.pixel.experiment.installed" case pixelExperimentCohort = "com.duckduckgo.ios.pixel.experiment.cohort" diff --git a/DuckDuckGo.xcodeproj/project.pbxproj b/DuckDuckGo.xcodeproj/project.pbxproj index e72d91d159..28dbca7736 100644 --- a/DuckDuckGo.xcodeproj/project.pbxproj +++ b/DuckDuckGo.xcodeproj/project.pbxproj @@ -11,6 +11,10 @@ 0238E44F29C0FAA100615E30 /* FindInPageIOSJSSupport in Frameworks */ = {isa = PBXBuildFile; productRef = 0238E44E29C0FAA100615E30 /* FindInPageIOSJSSupport */; }; 025CD01025826035001CD5BB /* FingerprintUITest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 025CCF75257EAFAF001CD5BB /* FingerprintUITest.swift */; }; 026DABA428242BC80089E0B5 /* MockUserAgent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 026DABA328242BC80089E0B5 /* MockUserAgent.swift */; }; + 0283A1FC2C6E3D8100508FBD /* BrokenSitePromptView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0283A1FA2C6E3D8100508FBD /* BrokenSitePromptView.swift */; }; + 0283A1FE2C6E3E1B00508FBD /* BrokenSitePromptViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0283A1FB2C6E3D8100508FBD /* BrokenSitePromptViewModel.swift */; }; + 0283A2012C6E46E300508FBD /* BrokenSitePromptLimiter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0283A2002C6E46E300508FBD /* BrokenSitePromptLimiter.swift */; }; + 0283A2042C6E572F00508FBD /* BrokenSitePromptLimiterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0283A2032C6E572F00508FBD /* BrokenSitePromptLimiterTests.swift */; }; 02BA15B126A89ECA00472DD7 /* ios-config.json in Resources */ = {isa = PBXBuildFile; fileRef = 02BA15B026A89ECA00472DD7 /* ios-config.json */; }; 02CA904924F6BFE700D41DDF /* navigatorsharepatch.js in Resources */ = {isa = PBXBuildFile; fileRef = 02CA904824F6BFE700D41DDF /* navigatorsharepatch.js */; }; 02CA904B24F6C11A00D41DDF /* NavigatorSharePatchUserScript.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02CA904A24F6C11A00D41DDF /* NavigatorSharePatchUserScript.swift */; }; @@ -1246,6 +1250,10 @@ 025CCFE22582601C001CD5BB /* FingerprintingUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FingerprintingUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 025CCFE62582601C001CD5BB /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 026DABA328242BC80089E0B5 /* MockUserAgent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockUserAgent.swift; sourceTree = ""; }; + 0283A1FA2C6E3D8100508FBD /* BrokenSitePromptView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BrokenSitePromptView.swift; sourceTree = ""; }; + 0283A1FB2C6E3D8100508FBD /* BrokenSitePromptViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BrokenSitePromptViewModel.swift; sourceTree = ""; }; + 0283A2002C6E46E300508FBD /* BrokenSitePromptLimiter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BrokenSitePromptLimiter.swift; sourceTree = ""; }; + 0283A2032C6E572F00508FBD /* BrokenSitePromptLimiterTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BrokenSitePromptLimiterTests.swift; sourceTree = ""; }; 02BA15B026A89ECA00472DD7 /* ios-config.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "ios-config.json"; sourceTree = ""; }; 02C4BC3127C3F9B600C40026 /* AppPrivacyConfigurationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppPrivacyConfigurationTests.swift; sourceTree = ""; }; 02CA904824F6BFE700D41DDF /* navigatorsharepatch.js */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.javascript; path = navigatorsharepatch.js; sourceTree = ""; }; @@ -2596,6 +2604,7 @@ CB18F2712AF6D4E400A0F8FE /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/InfoPlist.strings; sourceTree = ""; }; CB1AEFB02799AA940031AE3D /* SwiftUICollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SwiftUICollectionViewCell.swift; sourceTree = ""; }; CB1FAE472AF6D59B003F452F /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/InfoPlist.strings; sourceTree = ""; }; + CB2283F22BD79FC20057DD0A /* BrokenSitePromptView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BrokenSitePromptView.swift; sourceTree = ""; }; CB24F70E29A3EB15006DCC58 /* AppConfigurationURLProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppConfigurationURLProvider.swift; path = ../Core/AppConfigurationURLProvider.swift; sourceTree = ""; }; CB258D0C29A4CD0500DEBA24 /* Configuration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Configuration.swift; sourceTree = ""; }; CB258D0F29A4D0FD00DEBA24 /* ConfigurationManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConfigurationManager.swift; sourceTree = ""; }; @@ -2608,6 +2617,7 @@ CB48D3312B90CE9F00631D8B /* UserBehaviorMonitor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserBehaviorMonitor.swift; sourceTree = ""; }; CB48D3352B90CECD00631D8B /* UserBehaviorMonitorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserBehaviorMonitorTests.swift; sourceTree = ""; }; CB5038622AF6D563007FD69F /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/InfoPlist.strings; sourceTree = ""; }; + CB5418622BD90CD000C2CD26 /* BrokenSitePromptViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BrokenSitePromptViewModel.swift; sourceTree = ""; }; CB6ABD002AF6D52B004A8224 /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = hu.lproj/InfoPlist.strings; sourceTree = ""; }; CB6CE65B2AF6D4EE00119848 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = ""; }; CB7407BC2AF6D56D0090A41C /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/InfoPlist.strings; sourceTree = ""; }; @@ -3052,6 +3062,33 @@ path = FingerprintingUITests; sourceTree = ""; }; + 0283A1F82C6E3C3100508FBD /* Recovered References */ = { + isa = PBXGroup; + children = ( + CB2283F22BD79FC20057DD0A /* BrokenSitePromptView.swift */, + CB5418622BD90CD000C2CD26 /* BrokenSitePromptViewModel.swift */, + ); + name = "Recovered References"; + sourceTree = ""; + }; + 0283A1F92C6E3D4200508FBD /* BrokenSitePrompt */ = { + isa = PBXGroup; + children = ( + 0283A1FA2C6E3D8100508FBD /* BrokenSitePromptView.swift */, + 0283A1FB2C6E3D8100508FBD /* BrokenSitePromptViewModel.swift */, + 0283A2002C6E46E300508FBD /* BrokenSitePromptLimiter.swift */, + ); + name = BrokenSitePrompt; + sourceTree = ""; + }; + 0283A2022C6E56F400508FBD /* BrokenSitePrompt */ = { + isa = PBXGroup; + children = ( + 0283A2032C6E572F00508FBD /* BrokenSitePromptLimiterTests.swift */, + ); + name = BrokenSitePrompt; + sourceTree = ""; + }; 02BA15AD26A89DE100472DD7 /* PrivacyConfiguration */ = { isa = PBXGroup; children = ( @@ -3992,6 +4029,7 @@ 83ED3B8D1FA8E63700B47556 /* README.md */, 83ED3B8C1FA8E61D00B47556 /* ManualTestsScript.md */, 85A313962028E78A00327D00 /* release_notes.txt */, + 0283A1F82C6E3C3100508FBD /* Recovered References */, ); sourceTree = ""; }; @@ -4026,6 +4064,7 @@ 1E908BED29827C480008C8F3 /* Autoconsent */, F44D279327F331930037F371 /* Autofill */, F1668BCC1E798025008CBA04 /* Bookmarks */, + 0283A1F92C6E3D4200508FBD /* BrokenSitePrompt */, 9830A05725ED0C5D00DB64DE /* BrowsingMenu */, CB258D1129A4F1BB00DEBA24 /* Configuration */, B652DF02287C01EE00C12A9C /* ContentBlocking */, @@ -5393,6 +5432,7 @@ 981FED7222045FFA008488D7 /* AutoClear */, 1E1D8B5B2994FF7800C96994 /* Autoconsent */, F40F843228C92B1C0081AE75 /* Autofill */, + 0283A2022C6E56F400508FBD /* BrokenSitePrompt */, 98559FD0267099F400A83094 /* ContentBlocker */, 31C138A127A334F600FFD4B2 /* Downloads */, D62EC3B72C24695800FC9D04 /* DuckPlayer */, @@ -7015,6 +7055,7 @@ 1D200C992BA3176D00108701 /* SettingsOthersView.swift in Sources */, 31DD208427395A5A008FB313 /* VoiceSearchHelper.swift in Sources */, 9874F9EE2187AFCE00CAF33D /* Themable.swift in Sources */, + 0283A1FC2C6E3D8100508FBD /* BrokenSitePromptView.swift in Sources */, F44D279E27F331BB0037F371 /* AutofillLoginPromptViewModel.swift in Sources */, 3151F0F02735802800226F58 /* VoiceSearchViewController.swift in Sources */, D6FEB8B32B74990D00C3615F /* HeadlessWebViewNavCoordinator.swift in Sources */, @@ -7276,6 +7317,7 @@ 85DDE0402AC6FF65006ABCA2 /* MainView.swift in Sources */, 980891A72237D5D800313A70 /* FeedbackPresenter.swift in Sources */, 989B337522D7EF2100437824 /* EmptyCollectionReusableView.swift in Sources */, + 0283A1FE2C6E3E1B00508FBD /* BrokenSitePromptViewModel.swift in Sources */, 8524CC94246C5C8900E59D45 /* DaxDialogViewController.swift in Sources */, 851672CF2BED1F9500592F24 /* HistoryMessageManager.swift in Sources */, F42EF9312614BABE00101FB9 /* ActionSheetDaxDialogViewController.swift in Sources */, @@ -7403,6 +7445,7 @@ C13F3F6A2B7F883A0083BE40 /* AuthConfirmationPromptViewController.swift in Sources */, 851624C72B96389D002D5CD7 /* HistoryDebugViewController.swift in Sources */, 8540BBA22440857A00017FE4 /* PreserveLoginsWorker.swift in Sources */, + 0283A2012C6E46E300508FBD /* BrokenSitePromptLimiter.swift in Sources */, 85DFEDF924CF3D0E00973FE7 /* TabsBarCell.swift in Sources */, 851672D32BED23FE00592F24 /* AutocompleteViewModel.swift in Sources */, 8562CE152B9B645C00E1D399 /* CachedBookmarkSuggestions.swift in Sources */, @@ -7601,6 +7644,7 @@ 6F934F862C58DB00008364E4 /* NewTabPageSettingsPersistentStorageTests.swift in Sources */, 987130C5294AAB9F00AB05E0 /* BookmarkEditorViewModelTests.swift in Sources */, BDFF03262BA3DA4900F324C9 /* NetworkProtectionFeatureVisibilityTests.swift in Sources */, + 0283A2042C6E572F00508FBD /* BrokenSitePromptLimiterTests.swift in Sources */, D62EC3BA2C246A7000FC9D04 /* YoutublePlayerNavigationHandlerTests.swift in Sources */, 9FEA22302C325125006B03BF /* AnimatableTypingTextModelTests.swift in Sources */, 8341D807212D5E8D000514C2 /* HashExtensionTest.swift in Sources */, @@ -10539,7 +10583,7 @@ repositoryURL = "https://github.com/DuckDuckGo/BrowserServicesKit"; requirement = { kind = exactVersion; - version = 185.0.1; + version = 185.1.0; }; }; 9F8FE9472BAE50E50071E372 /* XCRemoteSwiftPackageReference "lottie-spm" */ = { diff --git a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index e5d30a12ad..f60049898d 100644 --- a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -32,8 +32,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/DuckDuckGo/BrowserServicesKit", "state" : { - "revision" : "1354d1aec247fd569c69744bb2722f24e16f0bfb", - "version" : "185.0.1" + "revision" : "8b62a829899f1e635aa91deded017ed72be0d4a1", + "version" : "185.1.0" } }, { diff --git a/DuckDuckGo/BrokenSitePromptLimiter.swift b/DuckDuckGo/BrokenSitePromptLimiter.swift new file mode 100644 index 0000000000..69b962ab13 --- /dev/null +++ b/DuckDuckGo/BrokenSitePromptLimiter.swift @@ -0,0 +1,106 @@ +// +// BrokenSitePromptLimiter.swift +// DuckDuckGo +// +// Copyright © 2024 DuckDuckGo. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import Foundation +import Core +import BrowserServicesKit + +protocol BrokenSitePromptLimiterStoring { + var lastToastShownDate: Date { get set } + var toastDismissStreakCounter: Int { get set } +} + +final class BrokenSitePromptLimiterStore: BrokenSitePromptLimiterStoring { + @UserDefaultsWrapper(key: .lastBrokenSiteToastShownDate, defaultValue: .distantPast) + var lastToastShownDate: Date + + @UserDefaultsWrapper(key: .toastDismissStreakCounter, defaultValue: 0) + var toastDismissStreakCounter: Int +} + +final class BrokenSitePromptLimiter { + + struct BrokenSitePromptLimiterSettings: Codable { + let maxDismissStreak: Int + let dismissStreakResetDays: Int + let coolDownDays: Int + } + + private var lastToastShownDate: Date { + get { store.lastToastShownDate } + set { store.lastToastShownDate = newValue } + } + + private var toastDismissStreakCounter: Int { + get { store.toastDismissStreakCounter } + set { store.toastDismissStreakCounter = newValue } + } + + private var privacyConfigManager: PrivacyConfigurationManaging + private var store: BrokenSitePromptLimiterStoring + + init(privacyConfigManager: PrivacyConfigurationManaging = ContentBlocking.shared.privacyConfigurationManager, + store: BrokenSitePromptLimiterStoring = BrokenSitePromptLimiterStore()) { + self.privacyConfigManager = privacyConfigManager + self.store = store + } + + private func getSettingsFromConfig() -> BrokenSitePromptLimiterSettings { + let settings = privacyConfigManager.privacyConfig.settings(for: .brokenSitePrompt) + + // Get settings from config or fallback to standard defaults + return BrokenSitePromptLimiterSettings( + maxDismissStreak: settings["maxDismissStreak"] as? Int ?? 3, + dismissStreakResetDays: settings["dismissStreakResetDays"] as? Int ?? 30, + coolDownDays: settings["coolDownDays"] as? Int ?? 7 + ) + } + + /// If it has been `dismissStreakResetDays` or more since the last time we showed the prompt, reset the dismiss counter to 0 + private func resetDismissStreakIfNeeded(dismissStreakResetDays: Int) { + if !lastToastShownDate.isLessThan(daysAgo: dismissStreakResetDays) { + toastDismissStreakCounter = 0 + } + } + + public func shouldShowToast() -> Bool { + guard privacyConfigManager.privacyConfig.isEnabled(featureKey: .brokenSitePrompt) else { return false } + + let settings = getSettingsFromConfig() + + resetDismissStreakIfNeeded(dismissStreakResetDays: settings.dismissStreakResetDays) + guard toastDismissStreakCounter < settings.maxDismissStreak else { return false } // Don't show the toast if the user dismissed it more than `maxDismissStreak` times in a row + guard !lastToastShownDate.isLessThan(daysAgo: settings.coolDownDays) else { return false } // Only show the toast once per `coolDownDays` days + + return true + } + + public func didShowToast() { + lastToastShownDate = Date() + } + + public func didDismissToast() { + toastDismissStreakCounter += 1 + } + + public func didOpenReport() { + toastDismissStreakCounter = 0 + } + +} diff --git a/DuckDuckGo/BrokenSitePromptView.swift b/DuckDuckGo/BrokenSitePromptView.swift new file mode 100644 index 0000000000..b04b06a778 --- /dev/null +++ b/DuckDuckGo/BrokenSitePromptView.swift @@ -0,0 +1,61 @@ +// +// BrokenSitePromptView.swift +// DuckDuckGo +// +// Copyright © 2024 DuckDuckGo. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import SwiftUI +import DuckUI +import DesignResourcesKit + +struct BrokenSitePromptView: View { + + let viewModel: BrokenSitePromptViewModel + + var body: some View { + VStack { + VStack(alignment: .leading, spacing: 8) { + VStack(alignment: .leading) { + Text(UserText.siteNotWorkingTitle) + .font(Font(uiFont: .daxSubheadSemibold())) + Text(UserText.siteNotWorkingSubtitle) + .font(Font(uiFont: .daxSubheadRegular())) + } + HStack { + Spacer() + Button(UserText.siteNotWorkingDismiss, action: viewModel.onDidDismiss) + .buttonStyle(GhostButtonStyle()) + .fixedSize() + Button(UserText.siteNotWorkingWebsiteIsBroken, action: viewModel.onDidSubmit) + .buttonStyle(PrimaryButtonStyle(compact: true)) + .fixedSize() + } + } + .padding(EdgeInsets(top: 12, leading: 16, bottom: 4, trailing: 16)) + Color(designSystemColor: .lines).frame(height: 1 / UIScreen.main.scale) + } + .background(Color(designSystemColor: .panel)) + } + +} + +#Preview { + + let viewModel = BrokenSitePromptViewModel(onDidDismiss: {}, + onDidSubmit: {}) + return BrokenSitePromptView(viewModel: viewModel) + +} diff --git a/DuckDuckGo/BrokenSitePromptViewModel.swift b/DuckDuckGo/BrokenSitePromptViewModel.swift new file mode 100644 index 0000000000..93d586f12e --- /dev/null +++ b/DuckDuckGo/BrokenSitePromptViewModel.swift @@ -0,0 +1,32 @@ +// +// BrokenSitePromptViewModel.swift +// DuckDuckGo +// +// Copyright © 2024 DuckDuckGo. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import Foundation + +final class BrokenSitePromptViewModel { + + let onDidDismiss: () -> Void + let onDidSubmit: () -> Void + + init(onDidDismiss: @escaping () -> Void, onDidSubmit: @escaping () -> Void) { + self.onDidDismiss = onDidDismiss + self.onDidSubmit = onDidSubmit + } + +} diff --git a/DuckDuckGo/MainViewController.swift b/DuckDuckGo/MainViewController.swift index 13697f4d82..dbd077ada4 100644 --- a/DuckDuckGo/MainViewController.swift +++ b/DuckDuckGo/MainViewController.swift @@ -288,6 +288,7 @@ class MainViewController: UIViewController { findInPageView.delegate = self findInPageBottomLayoutConstraint.constant = 0 registerForKeyboardNotifications() + registerForUserBehaviorEvents() registerForSyncFeatureFlagsUpdates() decorate() @@ -480,6 +481,14 @@ class MainViewController: UIViewController { keyboardShowing = false } + private func registerForUserBehaviorEvents() { + NotificationCenter.default.addObserver( + self, + selector: #selector(attemptToShowBrokenSitePrompt(_:)), + name: .userBehaviorDidMatchBrokenSiteCriteria, + object: nil) + } + private func registerForSyncFeatureFlagsUpdates() { syncFeatureFlagsCancellable = syncService.featureFlagsPublisher .dropFirst() @@ -829,6 +838,7 @@ class MainViewController: UIViewController { } Pixel.fire(pixel: .forgetAllPressedBrowsing) + hideNotificationBarIfBrokenSitePromptShown() wakeLazyFireButtonAnimator() if DefaultVariantManager().isSupported(feature: .newOnboardingIntro) { @@ -866,6 +876,7 @@ class MainViewController: UIViewController { Pixel.fire(pixel: .tabBarBackPressed) performCancel() hideSuggestionTray() + hideNotificationBarIfBrokenSitePromptShown() currentTab?.goBack() } @@ -873,6 +884,7 @@ class MainViewController: UIViewController { Pixel.fire(pixel: .tabBarForwardPressed) performCancel() hideSuggestionTray() + hideNotificationBarIfBrokenSitePromptShown() currentTab?.goForward() } @@ -1004,6 +1016,7 @@ class MainViewController: UIViewController { } fileprivate func select(tab: TabViewController) { + hideNotificationBarIfBrokenSitePromptShown() if tab.link == nil { attachHomeScreen() } else { @@ -1020,6 +1033,7 @@ class MainViewController: UIViewController { private func attachTab(tab: TabViewController) { removeHomeScreen() updateFindInPage() + hideNotificationBarIfBrokenSitePromptShown() currentTab?.progressWorker.progressBar = nil currentTab?.chromeDelegate = nil @@ -1090,6 +1104,13 @@ class MainViewController: UIViewController { refreshOmniBar() } + private func hideNotificationBarIfBrokenSitePromptShown(afterRefresh: Bool = false) { + guard brokenSitePromptViewHostingController != nil, + let event = brokenSitePromptEvent?.rawValue else { return } + brokenSitePromptViewHostingController = nil + hideNotification() + } + fileprivate func refreshBackForwardButtons() { viewCoordinator.toolbarBackButton.isEnabled = currentTab?.canGoBack ?? false viewCoordinator.toolbarForwardButton.isEnabled = currentTab?.canGoForward ?? false @@ -1116,6 +1137,8 @@ class MainViewController: UIViewController { } completion: { _ in ViewHighlighter.updatePositions() } + + hideNotificationBarIfBrokenSitePromptShown() } private func deferredFireOrientationPixel() { @@ -1327,6 +1350,47 @@ class MainViewController: UIViewController { } } + private var brokenSitePromptViewHostingController: UIHostingController? + private var brokenSitePromptEvent: UserBehaviorEvent? + lazy private var brokenSitePromptLimiter = BrokenSitePromptLimiter() + + @objc func attemptToShowBrokenSitePrompt(_ notification: Notification) { + guard brokenSitePromptLimiter.shouldShowToast(), + let event = notification.userInfo?[UserBehaviorEvent.Key.event] as? UserBehaviorEvent, + let url = currentTab?.url, !url.isDuckDuckGo, + notificationView == nil, + !isPad, + DefaultTutorialSettings().hasSeenOnboarding, + !DaxDialogs.shared.isStillOnboarding(), + isPortrait else { return } + // We're using async to ensure the view dismissal happens on the first runloop after a refresh. This prevents the scenario where the view briefly appears and then immediately disappears after a refresh. + brokenSitePromptLimiter.didShowToast() + DispatchQueue.main.async { + self.showBrokenSitePrompt(after: event) + } + } + + private func showBrokenSitePrompt(after event: UserBehaviorEvent) { + let host = makeBrokenSitePromptViewHostingController(event: event) + brokenSitePromptViewHostingController = host + brokenSitePromptEvent = event + showNotification(with: host.view) + } + + private func makeBrokenSitePromptViewHostingController(event: UserBehaviorEvent) -> UIHostingController { + let viewModel = BrokenSitePromptViewModel(onDidDismiss: { [weak self] in + self?.hideNotification() + self?.brokenSitePromptLimiter.didDismissToast() + self?.brokenSitePromptViewHostingController = nil + }, onDidSubmit: { [weak self] in + self?.segueToReportBrokenSite(entryPoint: .prompt(event.rawValue)) + self?.hideNotification() + self?.brokenSitePromptLimiter.didOpenReport() + self?.brokenSitePromptViewHostingController = nil + }) + return UIHostingController(rootView: BrokenSitePromptView(viewModel: viewModel), ignoreSafeArea: true) + } + func animateBackgroundTab() { showBars() tabSwitcherButton.incrementAnimated() @@ -1339,6 +1403,7 @@ class MainViewController: UIViewController { } DaxDialogs.shared.fireButtonPulseCancelled() hideSuggestionTray() + hideNotificationBarIfBrokenSitePromptShown() currentTab?.dismiss() if reuseExisting, let existing = tabManager.firstHomeTab() { @@ -1747,6 +1812,7 @@ extension MainViewController: OmniBarDelegate { omniBar.cancel() loadQuery(query) hideSuggestionTray() + hideNotificationBarIfBrokenSitePromptShown() showHomeRowReminder() fireOnboardingCustomSearchPixelIfNeeded(query: query) } @@ -1934,6 +2000,7 @@ extension MainViewController: OmniBarDelegate { func onRefreshPressed() { hideSuggestionTray() currentTab?.refresh() + hideNotificationBarIfBrokenSitePromptShown(afterRefresh: true) } func onSharePressed() { @@ -2172,6 +2239,7 @@ extension MainViewController: TabDelegate { didRequestNewWebViewWithConfiguration configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, inheritingAttribution: AdClickAttributionLogic.State?) -> WKWebView? { + hideNotificationBarIfBrokenSitePromptShown() showBars() currentTab?.dismiss() @@ -2232,6 +2300,7 @@ extension MainViewController: TabDelegate { openedByPage: Bool, inheritingAttribution attribution: AdClickAttributionLogic.State?) { _ = findInPageView.resignFirstResponder() + hideNotificationBarIfBrokenSitePromptShown() if openedByPage { showBars() newTabAnimation { @@ -2390,6 +2459,14 @@ extension MainViewController: TabDelegate { func tab(_ tab: TabViewController, didRequestLoadQuery query: String) { loadQuery(query) } + + func tabDidRequestRefresh(tab: TabViewController) { + hideNotificationBarIfBrokenSitePromptShown(afterRefresh: true) + } + + func tabDidRequestNavigationToDifferentSite(tab: TabViewController) { + hideNotificationBarIfBrokenSitePromptShown() + } } @@ -2437,6 +2514,7 @@ extension MainViewController: TabSwitcherDelegate { func closeTab(_ tab: Tab) { guard let index = tabManager.model.indexOf(tab: tab) else { return } hideSuggestionTray() + hideNotificationBarIfBrokenSitePromptShown() tabManager.remove(at: index) updateCurrentTab() tabsBarController?.refresh(tabsModel: tabManager.model) @@ -2480,6 +2558,7 @@ extension MainViewController: TabSwitcherButtonDelegate { guard currentTab ?? tabManager.current(createIfNeeded: true) != nil else { fatalError("Unable to get current tab") } + hideNotificationBarIfBrokenSitePromptShown() updatePreviewForCurrentTab { ViewHighlighter.hideAll() self.segueToTabSwitcher() diff --git a/DuckDuckGo/TabDelegate.swift b/DuckDuckGo/TabDelegate.swift index ccc15e1ebe..701386d5e6 100644 --- a/DuckDuckGo/TabDelegate.swift +++ b/DuckDuckGo/TabDelegate.swift @@ -93,4 +93,7 @@ protocol TabDelegate: AnyObject { func tab(_ tab: TabViewController, didRequestLoadURL url: URL) func tab(_ tab: TabViewController, didRequestLoadQuery query: String) + + func tabDidRequestRefresh(tab: TabViewController) + func tabDidRequestNavigationToDifferentSite(tab: TabViewController) } diff --git a/DuckDuckGo/TabViewController.swift b/DuckDuckGo/TabViewController.swift index 8275e7d1e2..096ee6992c 100644 --- a/DuckDuckGo/TabViewController.swift +++ b/DuckDuckGo/TabViewController.swift @@ -571,6 +571,7 @@ class TabViewController: UIViewController { refreshControl.addAction(UIAction { [weak self] _ in guard let self else { return } reload() + delegate?.tabDidRequestRefresh(tab: self) Pixel.fire(pixel: .pullToRefresh) AppDependencyProvider.shared.userBehaviorMonitor.handleRefreshAction() }, for: .valueChanged) @@ -1600,6 +1601,10 @@ extension TabViewController: WKNavigationDelegate { refreshCountSinceLoad = 0 } + if navigationAction.navigationType != .reload, webView.url != navigationAction.request.mainDocumentURL { + delegate?.tabDidRequestNavigationToDifferentSite(tab: self) + } + // This check needs to happen before GPC checks. Otherwise the navigation type may be rewritten to `.other` // which would skip link rewrites. if navigationAction.navigationType != .backForward, diff --git a/DuckDuckGo/UserBehaviorMonitor.swift b/DuckDuckGo/UserBehaviorMonitor.swift index a2edd56c7c..4d905cbdd5 100644 --- a/DuckDuckGo/UserBehaviorMonitor.swift +++ b/DuckDuckGo/UserBehaviorMonitor.swift @@ -21,6 +21,25 @@ import Foundation import Common import Core +public extension Notification.Name { + + static let userBehaviorDidMatchBrokenSiteCriteria = Notification.Name("com.duckduckgo.app.userBehaviorDidMatchBrokenSiteCriteria") + +} + +public enum UserBehaviorEvent: String { + + public enum Key { + + static let event = "com.duckduckgo.com.userBehaviorEvent.key" + + } + + case reloadTwiceWithin12Seconds = "reload-twice-within-12-seconds" + case reloadThreeTimesWithin20Seconds = "reload-three-times-within-20-seconds" + +} + protocol UserBehaviorStoring { var didRefreshTimestamp: Date? { get set } @@ -42,13 +61,6 @@ final class UserBehaviorStore: UserBehaviorStoring { } -public enum UserBehaviorEvent: String { - - case reloadTwiceWithin12Seconds = "reload-twice-within-12-seconds" - case reloadThreeTimesWithin20Seconds = "reload-three-times-within-20-seconds" - -} - final class UserBehaviorMonitor { enum Action: Equatable { @@ -97,6 +109,9 @@ final class UserBehaviorMonitor { func fireEventIfActionOccurredRecently(within interval: Double = 30.0, since timestamp: Date?, eventToFire: UserBehaviorEvent) { if let timestamp = timestamp, date.timeIntervalSince(timestamp) < interval { eventMapping.fire(eventToFire) + NotificationCenter.default.post(name: .userBehaviorDidMatchBrokenSiteCriteria, + object: self, + userInfo: [UserBehaviorEvent.Key.event: eventToFire]) } } } diff --git a/DuckDuckGo/UserText.swift b/DuckDuckGo/UserText.swift index 6890fb7b30..b40d31a65d 100644 --- a/DuckDuckGo/UserText.swift +++ b/DuckDuckGo/UserText.swift @@ -1190,6 +1190,13 @@ But if you *do* want a peek under the hood, you can find more information about public static let autocompleteHistoryWarningDescription = NSLocalizedString("autocomplete.history.warning.message", value: "Search suggestions now include your recently visited sites. Turn off in Settings, or clear anytime with the 🔥 Fire Button.", comment: "The message text shown in suggestions") public static let autocompleteSearchDuckDuckGo = NSLocalizedString("autocomplete.history.search.duckduckgo", value: "Search DuckDuckGo", comment: "Subtitle for search history items") + // Site not working + public static let siteNotWorkingTitle = NSLocalizedString("site.not.working.title", value: "Site not working? Let DuckDuckGo know.", comment: "Prompt asking user to send report to us if we suspect site may be broken") + public static let siteNotWorkingSubtitle = NSLocalizedString("site.not.working.subtitle", value: "This helps us improve the browser.", comment: "Prompt asking user to send report to us if we suspect site may be broken") + public static let siteNotWorkingDismiss = NSLocalizedString("site.not.working.dismiss", value: "Dismiss", comment: "Dismiss button") + public static let siteNotWorkingWebsiteIsBroken = NSLocalizedString("site.not.working.website.is.broken", value: "Website Is Broken", comment: "Button that triggers flow to report broken site") + public static let siteNotWorkingDescription = NSLocalizedString("site.not.working.description", value: "Select the option that best describes the problem you experienced.", comment: "Description on a report broken site page.") + // Broken site report experiment public static let brokenSiteReportMenuTitle = NSLocalizedString("broken.site.report.menu.title", value: "Report Problem With This Site", comment: "Button to open report form") public static let brokenSiteReportSuccessToast = NSLocalizedString("broken.site.report.success.toast", value: "Your report helps make DuckDuckGo better for everyone!", comment: "Message that appears after submitting report") diff --git a/DuckDuckGo/bg.lproj/Localizable.strings b/DuckDuckGo/bg.lproj/Localizable.strings index e6cd0d01ee..b24d3fad03 100644 --- a/DuckDuckGo/bg.lproj/Localizable.strings +++ b/DuckDuckGo/bg.lproj/Localizable.strings @@ -2170,6 +2170,21 @@ /* Explanation in Settings how the web tracking protection feature works */ "settings.web.tracking.protection.explanation" = "DuckDuckGo автоматично блокира скритите тракери, докато сърфирате в мрежата.\n[Научете повече](ddgQuickLink://duckduckgo.com/duckduckgo-help-pages/privacy/web-tracking-protections/)"; +/* Description on a report broken site page. */ +"site.not.working.description" = "Изберете опцията, която най-добре описва възникналия проблем."; + +/* Dismiss button */ +"site.not.working.dismiss" = "Отказване"; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.subtitle" = "Това ни помага да подобрим браузъра."; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.title" = "Сайтът не работи ли? Уведомете DuckDuckGo."; + +/* Button that triggers flow to report broken site */ +"site.not.working.website.is.broken" = "Уебсайтът е повреден"; + /* Report a Broken Site screen confirmation button */ "siteFeedback.buttonText" = "Изпращане на доклад"; diff --git a/DuckDuckGo/cs.lproj/Localizable.strings b/DuckDuckGo/cs.lproj/Localizable.strings index 2d36449518..c88c8a9ee1 100644 --- a/DuckDuckGo/cs.lproj/Localizable.strings +++ b/DuckDuckGo/cs.lproj/Localizable.strings @@ -2170,6 +2170,21 @@ /* Explanation in Settings how the web tracking protection feature works */ "settings.web.tracking.protection.explanation" = "DuckDuckGo automaticky blokuje skryté trackery při procházení webu.\n[Více informací](ddgQuickLink://duckduckgo.com/duckduckgo-help-pages/privacy/web-tracking-protections/)"; +/* Description on a report broken site page. */ +"site.not.working.description" = "Vyber možnost, která nejlíp popisuje tvůj problém."; + +/* Dismiss button */ +"site.not.working.dismiss" = "Odmítnout"; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.subtitle" = "Pomáhá nám to vylepšovat prohlížeč."; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.title" = "Stránka nefunguje? Dej DuckDuckGo vědět."; + +/* Button that triggers flow to report broken site */ +"site.not.working.website.is.broken" = "Web nefunguje"; + /* Report a Broken Site screen confirmation button */ "siteFeedback.buttonText" = "Odešlete zprávu"; diff --git a/DuckDuckGo/da.lproj/Localizable.strings b/DuckDuckGo/da.lproj/Localizable.strings index f2a2a102ab..9723f628c3 100644 --- a/DuckDuckGo/da.lproj/Localizable.strings +++ b/DuckDuckGo/da.lproj/Localizable.strings @@ -2170,6 +2170,21 @@ /* Explanation in Settings how the web tracking protection feature works */ "settings.web.tracking.protection.explanation" = "DuckDuckGo blokerer automatisk skjulte trackere, når du surfer på nettet.\n[Læs mere](ddgQuickLink://duckduckgo.com/duckduckgo-help-pages/privacy/web-tracking-protections/)"; +/* Description on a report broken site page. */ +"site.not.working.description" = "Vælg den mulighed, der bedst beskriver det problem, du oplevede."; + +/* Dismiss button */ +"site.not.working.dismiss" = "Afvis"; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.subtitle" = "Det hjælper os med at forbedre browseren."; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.title" = "Virker webstedet ikke? Fortæl DuckDuckGo det."; + +/* Button that triggers flow to report broken site */ +"site.not.working.website.is.broken" = "Hvilket websted er ødelagt?"; + /* Report a Broken Site screen confirmation button */ "siteFeedback.buttonText" = "Indsend rapport"; diff --git a/DuckDuckGo/de.lproj/Localizable.strings b/DuckDuckGo/de.lproj/Localizable.strings index 9c0995d1fa..1869fadf16 100644 --- a/DuckDuckGo/de.lproj/Localizable.strings +++ b/DuckDuckGo/de.lproj/Localizable.strings @@ -2170,6 +2170,21 @@ /* Explanation in Settings how the web tracking protection feature works */ "settings.web.tracking.protection.explanation" = "DuckDuckGo blockiert beim Durchsuchen des Internets automatisch ausgeblendete Tracker.[Mehr erfahren](ddgQuickLink://duckduckgo.com/duckduckgo-help-pages/privacy/web-tracking-protections/)"; +/* Description on a report broken site page. */ +"site.not.working.description" = "Wähle die Option, die dein Problem am besten beschreibt."; + +/* Dismiss button */ +"site.not.working.dismiss" = "Verwerfen"; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.subtitle" = "Das hilft uns, den Browser zu verbessern."; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.title" = "Webseite funktioniert nicht? Sag DuckDuckGo Bescheid."; + +/* Button that triggers flow to report broken site */ +"site.not.working.website.is.broken" = "Website ist fehlerhaft"; + /* Report a Broken Site screen confirmation button */ "siteFeedback.buttonText" = "Bericht senden"; diff --git a/DuckDuckGo/el.lproj/Localizable.strings b/DuckDuckGo/el.lproj/Localizable.strings index b57547101d..2f054dbab8 100644 --- a/DuckDuckGo/el.lproj/Localizable.strings +++ b/DuckDuckGo/el.lproj/Localizable.strings @@ -2170,6 +2170,21 @@ /* Explanation in Settings how the web tracking protection feature works */ "settings.web.tracking.protection.explanation" = "Το DuckDuckGo αποκλείει αυτόματα κρυφές εφαρμογές παρακολούθησης καθώς περιηγείστε στο διαδίκτυο.\n[Μάθετε περισσότερα](ddgQuickLink://duckduckgo.com/duckduckgo-help-pages/privacy/web-tracking-protections/)"; +/* Description on a report broken site page. */ +"site.not.working.description" = "Επιλέξτε αυτό που περιγράφει καλύτερα το πρόβλημα που αντιμετωπίσατε."; + +/* Dismiss button */ +"site.not.working.dismiss" = "Απόρριψη"; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.subtitle" = "Αυτό μας βοηθά να βελτιώνουμε το πρόγραμμα περιήγησης."; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.title" = "Ο ιστότοπος δεν λειτουργεί; Ενημερώστε σχετικά το DuckDuckGo."; + +/* Button that triggers flow to report broken site */ +"site.not.working.website.is.broken" = "Ο ιστότοπος δεν λειτουργεί"; + /* Report a Broken Site screen confirmation button */ "siteFeedback.buttonText" = "Υποβολή αναφοράς"; diff --git a/DuckDuckGo/en.lproj/Localizable.strings b/DuckDuckGo/en.lproj/Localizable.strings index b8e7ba707d..9d2f5178a8 100644 --- a/DuckDuckGo/en.lproj/Localizable.strings +++ b/DuckDuckGo/en.lproj/Localizable.strings @@ -2154,6 +2154,21 @@ But if you *do* want a peek under the hood, you can find more information about /* Explanation in Settings how the web tracking protection feature works */ "settings.web.tracking.protection.explanation" = "DuckDuckGo automatically blocks hidden trackers as you browse the web.\n[Learn More](ddgQuickLink://duckduckgo.com/duckduckgo-help-pages/privacy/web-tracking-protections/)"; +/* Description on a report broken site page. */ +"site.not.working.description" = "Select the option that best describes the problem you experienced."; + +/* Dismiss button */ +"site.not.working.dismiss" = "Dismiss"; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.subtitle" = "This helps us improve the browser."; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.title" = "Site not working? Let DuckDuckGo know."; + +/* Button that triggers flow to report broken site */ +"site.not.working.website.is.broken" = "Website Is Broken"; + /* Report a Broken Site screen confirmation button */ "siteFeedback.buttonText" = "Submit Report"; diff --git a/DuckDuckGo/es.lproj/Localizable.strings b/DuckDuckGo/es.lproj/Localizable.strings index 5203e6a4c2..cb64fdf438 100644 --- a/DuckDuckGo/es.lproj/Localizable.strings +++ b/DuckDuckGo/es.lproj/Localizable.strings @@ -2170,6 +2170,21 @@ /* Explanation in Settings how the web tracking protection feature works */ "settings.web.tracking.protection.explanation" = "DuckDuckGo bloquea automáticamente los rastreadores ocultos mientras navegas por la web.\n[Más información](ddgQuickLink://duckduckgo.com/duckduckgo-help-pages/privacy/web-tracking-protections/)"; +/* Description on a report broken site page. */ +"site.not.working.description" = "Selecciona la opción que describa mejor el problema que has encontrado."; + +/* Dismiss button */ +"site.not.working.dismiss" = "Descartar"; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.subtitle" = "Esto nos ayuda a mejorar el navegador."; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.title" = "¿El sitio no funciona? Házselo saber a DuckDuckGo."; + +/* Button that triggers flow to report broken site */ +"site.not.working.website.is.broken" = "El sitio web no funciona"; + /* Report a Broken Site screen confirmation button */ "siteFeedback.buttonText" = "Enviar informe"; diff --git a/DuckDuckGo/et.lproj/Localizable.strings b/DuckDuckGo/et.lproj/Localizable.strings index 5f848fe642..4a8183511d 100644 --- a/DuckDuckGo/et.lproj/Localizable.strings +++ b/DuckDuckGo/et.lproj/Localizable.strings @@ -2170,6 +2170,21 @@ /* Explanation in Settings how the web tracking protection feature works */ "settings.web.tracking.protection.explanation" = "DuckDuckGo blokeerib automaatselt peidetud jälgijaid, kui sa veebis sirvid.\n[Lisateave](ddgQuickLink://duckduckgo.com/duckduckgo-help-pages/privacy/web-tracking-protections/)"; +/* Description on a report broken site page. */ +"site.not.working.description" = "Vali suvand, mis kirjeldab sinu probleemi kõige paremini."; + +/* Dismiss button */ +"site.not.working.dismiss" = "Loobu"; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.subtitle" = "See aitab meil brauserit täiustada."; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.title" = "Kas sait ei tööta? Anna DuckDuckGole teada."; + +/* Button that triggers flow to report broken site */ +"site.not.working.website.is.broken" = "Veebisait ei toimi"; + /* Report a Broken Site screen confirmation button */ "siteFeedback.buttonText" = "Saada aruanne"; diff --git a/DuckDuckGo/fi.lproj/Localizable.strings b/DuckDuckGo/fi.lproj/Localizable.strings index e01c98ffd8..0aa47d5962 100644 --- a/DuckDuckGo/fi.lproj/Localizable.strings +++ b/DuckDuckGo/fi.lproj/Localizable.strings @@ -2170,6 +2170,21 @@ /* Explanation in Settings how the web tracking protection feature works */ "settings.web.tracking.protection.explanation" = "DuckDuckGo estää piilotetut seurantalaitteet automaattisesti, kun selaat verkkoa.\n[Lue lisää] (ddgQuickLink://duckduckgo.com/duckduckgo-help-pages/privacy/web-tracking-protections/)"; +/* Description on a report broken site page. */ +"site.not.working.description" = "Valitse vaihtoehto, joka parhaiten kuvaa ongelmaa."; + +/* Dismiss button */ +"site.not.working.dismiss" = "Hylkää"; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.subtitle" = "Tämä auttaa meitä parantamaan selainta."; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.title" = "Eikö sivusto toimi? Kerro siitä DuckDuckGolle."; + +/* Button that triggers flow to report broken site */ +"site.not.working.website.is.broken" = "Verkkosivusto on viallinen"; + /* Report a Broken Site screen confirmation button */ "siteFeedback.buttonText" = "Lähetä raportti"; diff --git a/DuckDuckGo/fr.lproj/Localizable.strings b/DuckDuckGo/fr.lproj/Localizable.strings index 2351b0185f..dc87903d43 100644 --- a/DuckDuckGo/fr.lproj/Localizable.strings +++ b/DuckDuckGo/fr.lproj/Localizable.strings @@ -2170,6 +2170,21 @@ /* Explanation in Settings how the web tracking protection feature works */ "settings.web.tracking.protection.explanation" = "DuckDuckGo bloque automatiquement les traqueurs cachés lorsque vous naviguez sur le Web.\n[En savoir plus](ddgQuickLink://duckduckgo.com/duckduckgo-help-pages/privacy/web-tracking-protections/)"; +/* Description on a report broken site page. */ +"site.not.working.description" = "Sélectionnez l'option qui décrit le mieux le problème rencontré."; + +/* Dismiss button */ +"site.not.working.dismiss" = "Ignorer"; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.subtitle" = "Cela nous aide à améliorer le navigateur."; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.title" = "Le site ne fonctionne pas ? Faites-le savoir à DuckDuckGo."; + +/* Button that triggers flow to report broken site */ +"site.not.working.website.is.broken" = "Le site Web pose problème"; + /* Report a Broken Site screen confirmation button */ "siteFeedback.buttonText" = "Envoyer le rapport"; diff --git a/DuckDuckGo/hr.lproj/Localizable.strings b/DuckDuckGo/hr.lproj/Localizable.strings index 993cc4fb5f..1620b236b5 100644 --- a/DuckDuckGo/hr.lproj/Localizable.strings +++ b/DuckDuckGo/hr.lproj/Localizable.strings @@ -2170,6 +2170,21 @@ /* Explanation in Settings how the web tracking protection feature works */ "settings.web.tracking.protection.explanation" = "DuckDuckGo automatski blokira skrivene alate za praćenje dok pregledavaš web.\n[Saznaj više](ddgQuickLink://duckduckgo.com/duckduckgo-help-pages/privacy/web-tracking-protections/)"; +/* Description on a report broken site page. */ +"site.not.working.description" = "Odaberi opciju koja najbolje opisuje nastali problem."; + +/* Dismiss button */ +"site.not.working.dismiss" = "Odbaci"; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.subtitle" = "Ovo nam pomaže da poboljšamo preglednik."; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.title" = "Web-mjesto ne funkcionira? Javi DuckDuckGou."; + +/* Button that triggers flow to report broken site */ +"site.not.working.website.is.broken" = "Web-mjesto nije ispravno"; + /* Report a Broken Site screen confirmation button */ "siteFeedback.buttonText" = "Pošalji izvješće"; diff --git a/DuckDuckGo/hu.lproj/Localizable.strings b/DuckDuckGo/hu.lproj/Localizable.strings index 8266a89f6b..3ccce65ff3 100644 --- a/DuckDuckGo/hu.lproj/Localizable.strings +++ b/DuckDuckGo/hu.lproj/Localizable.strings @@ -2170,6 +2170,21 @@ /* Explanation in Settings how the web tracking protection feature works */ "settings.web.tracking.protection.explanation" = "A DuckDuckGo böngészés közben automatikusan blokkolja a rejtett nyomkövetőket.\n[További információ](ddgQuickLink://duckduckgo.com/duckduckgo-help-pages/privacy/web-tracking-protections/)"; +/* Description on a report broken site page. */ +"site.not.working.description" = "Válaszd ki azt a lehetőséget, amelyik a legjobban leírja a tapasztalt problémát."; + +/* Dismiss button */ +"site.not.working.dismiss" = "Elutasítás"; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.subtitle" = "Ez segít minket a böngésző tökéletesítésében."; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.title" = "Nem működik a webhely? Jelezd a DuckDuckGo felé."; + +/* Button that triggers flow to report broken site */ +"site.not.working.website.is.broken" = "Nem működik a webhely"; + /* Report a Broken Site screen confirmation button */ "siteFeedback.buttonText" = "Jelentés beküldése"; diff --git a/DuckDuckGo/it.lproj/Localizable.strings b/DuckDuckGo/it.lproj/Localizable.strings index 87a6a0f375..f4d783f0a7 100644 --- a/DuckDuckGo/it.lproj/Localizable.strings +++ b/DuckDuckGo/it.lproj/Localizable.strings @@ -2170,6 +2170,21 @@ /* Explanation in Settings how the web tracking protection feature works */ "settings.web.tracking.protection.explanation" = "DuckDuckGo blocca automaticamente i sistemi di tracciamento nascosti mentre navighi sul web.\n[Scopri di più](ddgQuickLink://duckduckgo.com/duckduckgo-help-pages/privacy/web-tracking-protections/)"; +/* Description on a report broken site page. */ +"site.not.working.description" = "Seleziona l'opzione che meglio descrive il problema riscontrato."; + +/* Dismiss button */ +"site.not.working.dismiss" = "Ignora"; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.subtitle" = "Questo ci aiuta a migliorare il browser."; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.title" = "Il sito non funziona? Comunicalo a DuckDuckGo."; + +/* Button that triggers flow to report broken site */ +"site.not.working.website.is.broken" = "Il sito web è danneggiato"; + /* Report a Broken Site screen confirmation button */ "siteFeedback.buttonText" = "Invia segnalazione"; diff --git a/DuckDuckGo/lt.lproj/Localizable.strings b/DuckDuckGo/lt.lproj/Localizable.strings index df70502477..f03e569093 100644 --- a/DuckDuckGo/lt.lproj/Localizable.strings +++ b/DuckDuckGo/lt.lproj/Localizable.strings @@ -2170,6 +2170,21 @@ /* Explanation in Settings how the web tracking protection feature works */ "settings.web.tracking.protection.explanation" = "„DuckDuckGo“ automatiškai blokuoja paslėptas stebėjimo priemones naršant internete.\n[Sužinokite daugiau](ddgQuickLink://duckduckgo.com/duckduckgo-help-pages/privacy/web-tracking-protections/)"; +/* Description on a report broken site page. */ +"site.not.working.description" = "Pasirinkite parinktį, kuri geriausiai apibūdina iškilusią problemą."; + +/* Dismiss button */ +"site.not.working.dismiss" = "Atmesti"; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.subtitle" = "Tai padeda mums tobulinti naršyklę."; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.title" = "Svetainė neveikia? Praneškite „DuckDuckGo“."; + +/* Button that triggers flow to report broken site */ +"site.not.working.website.is.broken" = "Svetainė neveikia"; + /* Report a Broken Site screen confirmation button */ "siteFeedback.buttonText" = "Pateikti ataskaitą"; diff --git a/DuckDuckGo/lv.lproj/Localizable.strings b/DuckDuckGo/lv.lproj/Localizable.strings index 530cfcfd22..f39c616388 100644 --- a/DuckDuckGo/lv.lproj/Localizable.strings +++ b/DuckDuckGo/lv.lproj/Localizable.strings @@ -2170,6 +2170,21 @@ /* Explanation in Settings how the web tracking protection feature works */ "settings.web.tracking.protection.explanation" = "DuckDuckGo automātiski bloķē slēptos izsekotājus, kad tu pārlūko tīmekli.\n[Uzzini vairāk](ddgQuickLink://duckduckgo.com/duckduckgo-help-pages/privacy/web-tracking-protections/)"; +/* Description on a report broken site page. */ +"site.not.working.description" = "Izvēlies atbilstošāko problēmas raksturojumu."; + +/* Dismiss button */ +"site.not.working.dismiss" = "Nerādīt"; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.subtitle" = "Tas mums palīdz uzlabot pārlūkprogrammu."; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.title" = "Vai vietne nedarbojas? Informē DuckDuckGo."; + +/* Button that triggers flow to report broken site */ +"site.not.working.website.is.broken" = "Vietne ir bojāta"; + /* Report a Broken Site screen confirmation button */ "siteFeedback.buttonText" = "Iesniegt ziņojumu"; diff --git a/DuckDuckGo/nb.lproj/Localizable.strings b/DuckDuckGo/nb.lproj/Localizable.strings index b091a87a6c..f51e8f2186 100644 --- a/DuckDuckGo/nb.lproj/Localizable.strings +++ b/DuckDuckGo/nb.lproj/Localizable.strings @@ -2170,6 +2170,21 @@ /* Explanation in Settings how the web tracking protection feature works */ "settings.web.tracking.protection.explanation" = "DuckDuckGo blokkerer automatisk skjulte sporere når du surfer på nettet.\n[Finn ut mer](ddgQuickLink://duckduckgo.com/duckduckgo-help-pages/privacy/web-tracking-protections/)"; +/* Description on a report broken site page. */ +"site.not.working.description" = "Velg alternativet som best beskriver problemet du opplevde."; + +/* Dismiss button */ +"site.not.working.dismiss" = "Avvis"; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.subtitle" = "Dette hjelper oss med å forbedre nettleseren."; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.title" = "Fungerer ikke nettstedet? Gi beskjed til DuckDuckGo."; + +/* Button that triggers flow to report broken site */ +"site.not.working.website.is.broken" = "Nettstedet fungerer ikke"; + /* Report a Broken Site screen confirmation button */ "siteFeedback.buttonText" = "Send inn rapport"; diff --git a/DuckDuckGo/nl.lproj/Localizable.strings b/DuckDuckGo/nl.lproj/Localizable.strings index d94b9f99d2..6d251e0325 100644 --- a/DuckDuckGo/nl.lproj/Localizable.strings +++ b/DuckDuckGo/nl.lproj/Localizable.strings @@ -2170,6 +2170,21 @@ /* Explanation in Settings how the web tracking protection feature works */ "settings.web.tracking.protection.explanation" = "DuckDuckGo blokkeert automatisch verborgen trackers terwijl je op het web surft.\n[Meer informatie](ddgQuickLink://duckduckgo.com/duckduckgo-help-pages/privacy/web-tracking-protections/)"; +/* Description on a report broken site page. */ +"site.not.working.description" = "Selecteer de optie die het beste je probleem beschrijft."; + +/* Dismiss button */ +"site.not.working.dismiss" = "Negeren"; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.subtitle" = "Hiermee kunnen we de browser verbeteren."; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.title" = "Werkt de site niet? Laat het DuckDuckGo weten."; + +/* Button that triggers flow to report broken site */ +"site.not.working.website.is.broken" = "De website werkt niet"; + /* Report a Broken Site screen confirmation button */ "siteFeedback.buttonText" = "Rapport versturen"; diff --git a/DuckDuckGo/pl.lproj/Localizable.strings b/DuckDuckGo/pl.lproj/Localizable.strings index 1aceb82edf..c0da19a27e 100644 --- a/DuckDuckGo/pl.lproj/Localizable.strings +++ b/DuckDuckGo/pl.lproj/Localizable.strings @@ -2170,6 +2170,21 @@ /* Explanation in Settings how the web tracking protection feature works */ "settings.web.tracking.protection.explanation" = "Podczas przeglądania stron internetowych DuckDuckGo automatycznie blokuje ukryte mechanizmy śledzące.\n[Więcej informacji](ddgQuickLink://duckduckgo.com/duckduckgo-help-pages/privacy/web-tracking-protections/)"; +/* Description on a report broken site page. */ +"site.not.working.description" = "Wybierz opcję, która najlepiej opisuje napotkany problem."; + +/* Dismiss button */ +"site.not.working.dismiss" = "Odrzuć"; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.subtitle" = "To pomaga nam ulepszyć przeglądarkę."; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.title" = "Witryna nie działa? Poinformuj DuckDuckGo."; + +/* Button that triggers flow to report broken site */ +"site.not.working.website.is.broken" = "Witryna nie działa poprawnie"; + /* Report a Broken Site screen confirmation button */ "siteFeedback.buttonText" = "Prześlij raport"; diff --git a/DuckDuckGo/pt.lproj/Localizable.strings b/DuckDuckGo/pt.lproj/Localizable.strings index c1259e70c2..d1af80fe6c 100644 --- a/DuckDuckGo/pt.lproj/Localizable.strings +++ b/DuckDuckGo/pt.lproj/Localizable.strings @@ -2170,6 +2170,21 @@ /* Explanation in Settings how the web tracking protection feature works */ "settings.web.tracking.protection.explanation" = "O DuckDuckGo bloqueia automaticamente os rastreadores ocultos enquanto navegas na Internet.\n[Sabe Mais](ddgQuickLink://duckduckgo.com/duckduckgo-help-pages/privacy/web-tracking-protections/)"; +/* Description on a report broken site page. */ +"site.not.working.description" = "Seleciona a opção que melhor descreve o problema que enfrentaste."; + +/* Dismiss button */ +"site.not.working.dismiss" = "Ignorar"; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.subtitle" = "Isto ajuda-nos a melhorar o navegador."; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.title" = "O site não funciona? Informa o DuckDuckGo."; + +/* Button that triggers flow to report broken site */ +"site.not.working.website.is.broken" = "O site não funciona"; + /* Report a Broken Site screen confirmation button */ "siteFeedback.buttonText" = "Submeter relatório"; diff --git a/DuckDuckGo/ro.lproj/Localizable.strings b/DuckDuckGo/ro.lproj/Localizable.strings index 89150ebf85..afe11d9134 100644 --- a/DuckDuckGo/ro.lproj/Localizable.strings +++ b/DuckDuckGo/ro.lproj/Localizable.strings @@ -2170,6 +2170,21 @@ /* Explanation in Settings how the web tracking protection feature works */ "settings.web.tracking.protection.explanation" = "DuckDuckGo blochează automat tehnologiile de urmărire ascunse în timp ce navighezi pe web.\n[Află mai multe](ddgQuickLink://duckduckgo.com/duckduckgo-help-pages/privacy/web-tracking-protections/)"; +/* Description on a report broken site page. */ +"site.not.working.description" = "Selectează opțiunea care descrie cel mai bine problema cu care te-ai confruntat."; + +/* Dismiss button */ +"site.not.working.dismiss" = "Renunță"; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.subtitle" = "Acest lucru ne ajută să îmbunătățim browserul."; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.title" = "Site-ul nu funcționează? Anunță DuckDuckGo."; + +/* Button that triggers flow to report broken site */ +"site.not.working.website.is.broken" = "Site-ul este nefuncțional"; + /* Report a Broken Site screen confirmation button */ "siteFeedback.buttonText" = "Trimite raportul"; diff --git a/DuckDuckGo/ru.lproj/Localizable.strings b/DuckDuckGo/ru.lproj/Localizable.strings index 7db8e05c56..4edde8327d 100644 --- a/DuckDuckGo/ru.lproj/Localizable.strings +++ b/DuckDuckGo/ru.lproj/Localizable.strings @@ -2170,6 +2170,21 @@ /* Explanation in Settings how the web tracking protection feature works */ "settings.web.tracking.protection.explanation" = "DuckDuckGo автоматически блокирует скрытые трекеры, пока вы посещаете сайты.\n[Подробнее...](ddgQuickLink://duckduckgo.com/duckduckgo-help-pages/privacy/web-tracking-protections/)"; +/* Description on a report broken site page. */ +"site.not.working.description" = "Выберите наиболее точное описание проблемы, с которой вы столкнулись."; + +/* Dismiss button */ +"site.not.working.dismiss" = "Отклонить"; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.subtitle" = "Ваш ответ поможет нам улучшить работу браузера."; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.title" = "Сайт не работает? Сообщите в DuckDuckGo!"; + +/* Button that triggers flow to report broken site */ +"site.not.working.website.is.broken" = "Проблема на сайте"; + /* Report a Broken Site screen confirmation button */ "siteFeedback.buttonText" = "Отправить жалобу"; diff --git a/DuckDuckGo/sk.lproj/Localizable.strings b/DuckDuckGo/sk.lproj/Localizable.strings index 000ddccf8c..381ca14e91 100644 --- a/DuckDuckGo/sk.lproj/Localizable.strings +++ b/DuckDuckGo/sk.lproj/Localizable.strings @@ -2170,6 +2170,21 @@ /* Explanation in Settings how the web tracking protection feature works */ "settings.web.tracking.protection.explanation" = "DuckDuckGo automaticky blokuje skryté sledovacie zariadenia pri prehliadaní webu.\n[Viac informácií](ddgQuickLink://duckduckgo.com/duckduckgo-help-pages/privacy/web-tracking-protections/)"; +/* Description on a report broken site page. */ +"site.not.working.description" = "Vyberte možnosť, ktorá najlepšie opisuje problém, ktorý ste zaznamenali."; + +/* Dismiss button */ +"site.not.working.dismiss" = "Odmietnuť"; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.subtitle" = "Toto nám pomáha vylepšiť prehliadač."; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.title" = "Stránka nefunguje? Oznámte to DuckDuckGo."; + +/* Button that triggers flow to report broken site */ +"site.not.working.website.is.broken" = "Webová stránka je nefunkčná"; + /* Report a Broken Site screen confirmation button */ "siteFeedback.buttonText" = "Odoslať správu"; diff --git a/DuckDuckGo/sl.lproj/Localizable.strings b/DuckDuckGo/sl.lproj/Localizable.strings index 542813fc2d..57f52491dc 100644 --- a/DuckDuckGo/sl.lproj/Localizable.strings +++ b/DuckDuckGo/sl.lproj/Localizable.strings @@ -2170,6 +2170,21 @@ /* Explanation in Settings how the web tracking protection feature works */ "settings.web.tracking.protection.explanation" = "DuckDuckGo samodejno blokira skrite sledilnike med brskanjem po spletu.\n[Več o tem](ddgQuickLink://duckduckgo.com/duckduckgo-help-pages/privacy/web-tracking-protections/)"; +/* Description on a report broken site page. */ +"site.not.working.description" = "Izberite možnost, ki najbolje opisuje težavo, na katero ste naleteli."; + +/* Dismiss button */ +"site.not.working.dismiss" = "Opusti"; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.subtitle" = "To nam pomaga izboljšati brskalnik."; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.title" = "Stran ne deluje? Sporočite DuckDuckGo."; + +/* Button that triggers flow to report broken site */ +"site.not.working.website.is.broken" = "Spletna stran je nedelujoča"; + /* Report a Broken Site screen confirmation button */ "siteFeedback.buttonText" = "Pošlji poročilo"; diff --git a/DuckDuckGo/sv.lproj/Localizable.strings b/DuckDuckGo/sv.lproj/Localizable.strings index ab80647dfa..a9ba80de93 100644 --- a/DuckDuckGo/sv.lproj/Localizable.strings +++ b/DuckDuckGo/sv.lproj/Localizable.strings @@ -2170,6 +2170,21 @@ /* Explanation in Settings how the web tracking protection feature works */ "settings.web.tracking.protection.explanation" = "DuckDuckGo blockerar automatiskt dolda spårare när du surfar på webben.\n[Läs mer](ddgQuickLink://duckduckgo.com/duckduckgo-help-pages/privacy/web-tracking-protections/)"; +/* Description on a report broken site page. */ +"site.not.working.description" = "Välj det alternativ som bäst beskriver det problem som du har stött på."; + +/* Dismiss button */ +"site.not.working.dismiss" = "Avvisa"; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.subtitle" = "Det hjälper oss att förbättra webbläsaren."; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.title" = "Fungerar inte webbplatsen? Informera DuckDuckGo."; + +/* Button that triggers flow to report broken site */ +"site.not.working.website.is.broken" = "Webbplatsen fungerar inte"; + /* Report a Broken Site screen confirmation button */ "siteFeedback.buttonText" = "Skicka in rapport"; diff --git a/DuckDuckGo/tr.lproj/Localizable.strings b/DuckDuckGo/tr.lproj/Localizable.strings index e6a3cd7bc5..8b8d2f53a7 100644 --- a/DuckDuckGo/tr.lproj/Localizable.strings +++ b/DuckDuckGo/tr.lproj/Localizable.strings @@ -2170,6 +2170,21 @@ /* Explanation in Settings how the web tracking protection feature works */ "settings.web.tracking.protection.explanation" = "DuckDuckGo, web'de gezinirken gizli izleyicileri otomatik olarak engeller.\n[Daha Fazla Bilgi](ddgQuickLink://duckduckgo.com/duckduckgo-help-pages/privacy/web-tracking-protections/)"; +/* Description on a report broken site page. */ +"site.not.working.description" = "Karşılaştığınız sorunu en iyi tanımlayan seçeneği seçin."; + +/* Dismiss button */ +"site.not.working.dismiss" = "Reddet"; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.subtitle" = "Bu gibi bildirimler tarayıcıyı geliştirmemize yardımcı olur."; + +/* Prompt asking user to send report to us if we suspect site may be broken */ +"site.not.working.title" = "Site çalışmıyor mu? DuckDuckGo'ya bildirin."; + +/* Button that triggers flow to report broken site */ +"site.not.working.website.is.broken" = "Web Sitesi Bozuk"; + /* Report a Broken Site screen confirmation button */ "siteFeedback.buttonText" = "Rapor Gönder"; diff --git a/DuckDuckGoTests/BrokenSitePromptLimiterTests.swift b/DuckDuckGoTests/BrokenSitePromptLimiterTests.swift new file mode 100644 index 0000000000..c83836915c --- /dev/null +++ b/DuckDuckGoTests/BrokenSitePromptLimiterTests.swift @@ -0,0 +1,82 @@ +// +// BrokenSitePromptLimiterTests.swift +// DuckDuckGo +// +// Copyright © 2024 DuckDuckGo. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import XCTest +import BrowserServicesKit +@testable import DuckDuckGo +@testable import Core + +final class MockBrokenSitePromptLimiterStore: BrokenSitePromptLimiterStoring { + var lastToastShownDate: Date = .distantPast + var toastDismissStreakCounter: Int = 0 +} + +final class BrokenSitePromptLimiterTests: XCTestCase { + + let configManager = PrivacyConfigurationManagerMock() + var brokenSiteLimiter: BrokenSitePromptLimiter! + var mockStore: MockBrokenSitePromptLimiterStore! + + override func setUp() { + super.setUp() + + (configManager.privacyConfig as? PrivacyConfigurationMock)?.enabledFeaturesForVersions[.brokenSitePrompt] = [AppVersionProvider().appVersion() ?? ""] + + mockStore = MockBrokenSitePromptLimiterStore() + brokenSiteLimiter = BrokenSitePromptLimiter(privacyConfigManager: configManager, store: mockStore) + } + + func testShouldNotShowPromptIfConfigDisabled() throws { + (configManager.privacyConfig as? PrivacyConfigurationMock)?.enabledFeaturesForVersions[.brokenSitePrompt] = [] + XCTAssertFalse(brokenSiteLimiter.shouldShowToast(), "Toast should not show if disabled via config") + } + + func testShouldShowPromptOnFirstActivationThenLimit() throws { + XCTAssertTrue(brokenSiteLimiter.shouldShowToast(), "Toast should show on first activation") + brokenSiteLimiter.didShowToast() + XCTAssertFalse(brokenSiteLimiter.shouldShowToast(), "Subsequent call should not show toast due to limiting logic") + } + + func testShouldShowPromptAgainAfter7days() throws { + XCTAssertTrue(brokenSiteLimiter.shouldShowToast(), "Toast should show on first activation") + brokenSiteLimiter.didShowToast() + XCTAssertFalse(brokenSiteLimiter.shouldShowToast(), "Subsequent call should not show toast due to limiting logic") + mockStore.lastToastShownDate = Date().addingTimeInterval(-7 * 24 * 60 * 60 - 1) + XCTAssertTrue(brokenSiteLimiter.shouldShowToast(), "Toast should show again after 7 days") + } + + func testShouldNotShowPromptAfter3Dismissals() throws { + brokenSiteLimiter.didDismissToast() + brokenSiteLimiter.didDismissToast() + brokenSiteLimiter.didDismissToast() + // Set last date 7 days back so the toast shows but doesn't reset dismiss counter + mockStore.lastToastShownDate = Date().addingTimeInterval(-7 * 24 * 60 * 60 - 1) + XCTAssertFalse(brokenSiteLimiter.shouldShowToast(), "Toast should not show again after 3 dismissals") + } + + func testShouldResetDismissCounterAfter30Days() throws { + brokenSiteLimiter.didDismissToast() + brokenSiteLimiter.didDismissToast() + brokenSiteLimiter.didDismissToast() + XCTAssert(mockStore.toastDismissStreakCounter == 3, "Dismiss count should be equal to 3 after 3 dismiss calls") + XCTAssertTrue(brokenSiteLimiter.shouldShowToast(), "Toast should show after resetting counter") + XCTAssert(mockStore.toastDismissStreakCounter == 0, "Dismiss count should be reset to 0 after 30 days") + } + +} diff --git a/DuckDuckGoTests/MockTabDelegate.swift b/DuckDuckGoTests/MockTabDelegate.swift index e271e41a6c..0c87db3e7b 100644 --- a/DuckDuckGoTests/MockTabDelegate.swift +++ b/DuckDuckGoTests/MockTabDelegate.swift @@ -109,6 +109,10 @@ final class MockTabDelegate: TabDelegate { capturedQuery = query } + func tabDidRequestRefresh(tab: DuckDuckGo.TabViewController) {} + + func tabDidRequestNavigationToDifferentSite(tab: DuckDuckGo.TabViewController) {} + } extension TabViewController { From 196f6416e91056a40a2f8a19c140605abd5bd52b Mon Sep 17 00:00:00 2001 From: Sam Symons Date: Thu, 22 Aug 2024 15:48:43 -0700 Subject: [PATCH 15/32] Clean up legacy VPN navigation (#3266) Task/Issue URL: https://app.asana.com/0/414235014887631/1208118450361001/f Tech Design URL: CC: Description: This PR removes some cases where the VPN UI could possibly be blank: 1. The settings navigation logic was technically using an EmptyView if you try to navigate to the VPN with it 2. The VPN root view was checking the feature flag and only showing the UI if it's enabled, so if that flag was disabled for any reason the UI would be blank - since this flag is no longer necessary, I've removed the check --- DuckDuckGo.xcodeproj/project.pbxproj | 4 -- DuckDuckGo/AppDelegate.swift | 6 +-- DuckDuckGo/MainViewController+Segues.swift | 8 +++ DuckDuckGo/NetworkProtectionRootView.swift | 13 +++-- .../NetworkProtectionRootViewController.swift | 50 ------------------- DuckDuckGo/SettingsLegacyViewProvider.swift | 5 +- DuckDuckGo/SettingsRootView.swift | 16 +----- DuckDuckGo/SettingsSubscriptionView.swift | 14 +++--- DuckDuckGo/SettingsViewModel.swift | 13 +---- 9 files changed, 31 insertions(+), 98 deletions(-) delete mode 100644 DuckDuckGo/NetworkProtectionRootViewController.swift diff --git a/DuckDuckGo.xcodeproj/project.pbxproj b/DuckDuckGo.xcodeproj/project.pbxproj index 28dbca7736..b6ffc9bca9 100644 --- a/DuckDuckGo.xcodeproj/project.pbxproj +++ b/DuckDuckGo.xcodeproj/project.pbxproj @@ -955,7 +955,6 @@ EE01EB402AFBD0000096AAC9 /* NetworkProtectionVPNSettingsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE01EB3F2AFBD0000096AAC9 /* NetworkProtectionVPNSettingsViewModel.swift */; }; EE01EB432AFC1E0A0096AAC9 /* NetworkProtectionVPNLocationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE01EB422AFC1E0A0096AAC9 /* NetworkProtectionVPNLocationView.swift */; }; EE0798C52B179936000A4F64 /* NetworkProtectionVPNCountryLabelsModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE0798C42B179936000A4F64 /* NetworkProtectionVPNCountryLabelsModel.swift */; }; - EE276BEA2A77F823009167B6 /* NetworkProtectionRootViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE276BE92A77F823009167B6 /* NetworkProtectionRootViewController.swift */; }; EE3766DE2AC5945500AAB575 /* NetworkProtectionUNNotificationPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE3766DD2AC5945500AAB575 /* NetworkProtectionUNNotificationPresenter.swift */; }; EE3B226B29DE0F110082298A /* MockInternalUserStoring.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE3B226A29DE0F110082298A /* MockInternalUserStoring.swift */; }; EE3B226C29DE0FD30082298A /* MockInternalUserStoring.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE3B226A29DE0F110082298A /* MockInternalUserStoring.swift */; }; @@ -2716,7 +2715,6 @@ EE01EB3F2AFBD0000096AAC9 /* NetworkProtectionVPNSettingsViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkProtectionVPNSettingsViewModel.swift; sourceTree = ""; }; EE01EB422AFC1E0A0096AAC9 /* NetworkProtectionVPNLocationView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkProtectionVPNLocationView.swift; sourceTree = ""; }; EE0798C42B179936000A4F64 /* NetworkProtectionVPNCountryLabelsModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkProtectionVPNCountryLabelsModel.swift; sourceTree = ""; }; - EE276BE92A77F823009167B6 /* NetworkProtectionRootViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkProtectionRootViewController.swift; sourceTree = ""; }; EE3766DD2AC5945500AAB575 /* NetworkProtectionUNNotificationPresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkProtectionUNNotificationPresenter.swift; sourceTree = ""; }; EE3B226A29DE0F110082298A /* MockInternalUserStoring.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockInternalUserStoring.swift; sourceTree = ""; }; EE3B98EA2A9634CC002F63A0 /* DuckDuckGoAlpha.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DuckDuckGoAlpha.entitlements; sourceTree = ""; }; @@ -5194,7 +5192,6 @@ isa = PBXGroup; children = ( EE0153EC2A6FF9E6002A8B26 /* NetworkProtectionRootView.swift */, - EE276BE92A77F823009167B6 /* NetworkProtectionRootViewController.swift */, ); name = Root; sourceTree = ""; @@ -7139,7 +7136,6 @@ 6F691CCA2C4979EC002E9553 /* FavoritesTooltip.swift in Sources */, D65625952C22D382006EF297 /* TabViewController.swift in Sources */, 8C4838B5221C8F7F008A6739 /* GestureToolbarButton.swift in Sources */, - EE276BEA2A77F823009167B6 /* NetworkProtectionRootViewController.swift in Sources */, 310ECFDD282A8BB0005029B3 /* EnableAutofillSettingsTableViewCell.swift in Sources */, 6F9FFE2A2C57ADB100A238BE /* EditableShortcutsView.swift in Sources */, 1E908BF329827C480008C8F3 /* AutoconsentManagement.swift in Sources */, diff --git a/DuckDuckGo/AppDelegate.swift b/DuckDuckGo/AppDelegate.swift index a3b5df16eb..8c5da72457 100644 --- a/DuckDuckGo/AppDelegate.swift +++ b/DuckDuckGo/AppDelegate.swift @@ -1031,10 +1031,8 @@ extension AppDelegate: UNUserNotificationCenterDelegate { func presentNetworkProtectionStatusSettingsModal() { Task { - if case .success(let hasEntitlements) = await accountManager.hasEntitlement(forProductName: .networkProtection), - hasEntitlements { - let networkProtectionRoot = NetworkProtectionRootViewController() - presentSettings(with: networkProtectionRoot) + if case .success(let hasEntitlements) = await accountManager.hasEntitlement(forProductName: .networkProtection), hasEntitlements { + (window?.rootViewController as? MainViewController)?.segueToVPN() } else { (window?.rootViewController as? MainViewController)?.segueToPrivacyPro() } diff --git a/DuckDuckGo/MainViewController+Segues.swift b/DuckDuckGo/MainViewController+Segues.swift index 47ff957de8..b64f38cde1 100644 --- a/DuckDuckGo/MainViewController+Segues.swift +++ b/DuckDuckGo/MainViewController+Segues.swift @@ -254,6 +254,14 @@ extension MainViewController { } } + func segueToVPN() { + os_log(#function, log: .generalLog, type: .debug) + hideAllHighlightsIfNeeded() + launchSettings { + $0.triggerDeepLinkNavigation(to: .netP) + } + } + func segueToDebugSettings() { os_log(#function, log: .generalLog, type: .debug) hideAllHighlightsIfNeeded() diff --git a/DuckDuckGo/NetworkProtectionRootView.swift b/DuckDuckGo/NetworkProtectionRootView.swift index 70a936e10f..99a8f29244 100644 --- a/DuckDuckGo/NetworkProtectionRootView.swift +++ b/DuckDuckGo/NetworkProtectionRootView.swift @@ -20,8 +20,10 @@ import SwiftUI import NetworkProtection import Subscription +import Core struct NetworkProtectionRootView: View { + let statusViewModel: NetworkProtectionStatusViewModel init() { @@ -33,11 +35,12 @@ struct NetworkProtectionRootView: View { serverInfoObserver: AppDependencyProvider.shared.serverInfoObserver, locationListRepository: locationListRepository) } + var body: some View { - if AppDependencyProvider.shared.vpnFeatureVisibility.isPrivacyProLaunched() { - NetworkProtectionStatusView( - statusModel: statusViewModel - ) - } + NetworkProtectionStatusView(statusModel: statusViewModel) + .navigationTitle(UserText.netPNavTitle) + .onFirstAppear { + Pixel.fire(pixel: .privacyProVPNSettings) + } } } diff --git a/DuckDuckGo/NetworkProtectionRootViewController.swift b/DuckDuckGo/NetworkProtectionRootViewController.swift deleted file mode 100644 index 07467a8bf1..0000000000 --- a/DuckDuckGo/NetworkProtectionRootViewController.swift +++ /dev/null @@ -1,50 +0,0 @@ -// -// NetworkProtectionRootViewController.swift -// DuckDuckGo -// -// Copyright © 2023 DuckDuckGo. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -import SwiftUI - -final class NetworkProtectionRootViewController: UIHostingController { - - init() { - let rootView = NetworkProtectionRootView() - super.init(rootView: rootView) - } - - override func viewDidLoad() { - super.viewDidLoad() - decorate() - self.title = UserText.netPNavTitle - } - - @MainActor required dynamic init?(coder aDecoder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } -} - -extension NetworkProtectionRootViewController { - - private func decorate() { - let theme = ThemeManager.shared.currentTheme - view.backgroundColor = theme.backgroundColor - - navigationController?.navigationBar.barTintColor = theme.barBackgroundColor - navigationController?.navigationBar.tintColor = theme.navigationBarTintColor - } - -} diff --git a/DuckDuckGo/SettingsLegacyViewProvider.swift b/DuckDuckGo/SettingsLegacyViewProvider.swift index 9ebab1a8f3..af40a39ab6 100644 --- a/DuckDuckGo/SettingsLegacyViewProvider.swift +++ b/DuckDuckGo/SettingsLegacyViewProvider.swift @@ -61,8 +61,8 @@ class SettingsLegacyViewProvider: ObservableObject { fireproofSites, autoclearData, keyboard, - netP, - feedback, debug + feedback, + debug } private func instantiate(_ identifier: String, fromStoryboard name: String) -> UIViewController { @@ -81,7 +81,6 @@ class SettingsLegacyViewProvider: ObservableObject { var autoclearData: UIViewController { instantiate("AutoClearSettingsViewController", fromStoryboard: "Settings") } var keyboard: UIViewController { instantiate("Keyboard", fromStoryboard: "Settings") } var feedback: UIViewController { instantiate("Feedback", fromStoryboard: "Feedback") } - var netP: UIViewController { NetworkProtectionRootViewController() } @MainActor var syncSettings: UIViewController { diff --git a/DuckDuckGo/SettingsRootView.swift b/DuckDuckGo/SettingsRootView.swift index 83c9f1acf9..7bb093b578 100644 --- a/DuckDuckGo/SettingsRootView.swift +++ b/DuckDuckGo/SettingsRootView.swift @@ -91,10 +91,6 @@ struct SettingsRootView: View { DispatchQueue.main.async { self.shouldDisplayDeepLinkPush = true } - case.UIKitView: - DispatchQueue.main.async { - triggerLegacyLink(link) - } } }) @@ -129,19 +125,11 @@ struct SettingsRootView: View { onDisappear: {}) case .duckPlayer: SettingsDuckPlayerView().environmentObject(viewModel) - default: - EmptyView() - } - } - - private func triggerLegacyLink(_ link: SettingsViewModel.SettingsDeepLinkSection) { - switch link { case .netP: - viewModel.presentLegacyView(.netP) - default: - return + NetworkProtectionRootView() } } + } struct InsetGroupedListStyleModifier: ViewModifier { diff --git a/DuckDuckGo/SettingsSubscriptionView.swift b/DuckDuckGo/SettingsSubscriptionView.swift index af39a0cc0a..67fa9f4faa 100644 --- a/DuckDuckGo/SettingsSubscriptionView.swift +++ b/DuckDuckGo/SettingsSubscriptionView.swift @@ -38,6 +38,7 @@ struct SettingsSubscriptionView: View { @EnvironmentObject var subscriptionNavigationCoordinator: SubscriptionNavigationCoordinator @State var isShowingDBP = false @State var isShowingITP = false + @State var isShowingVPN = false @State var isShowingRestoreFlow = false @State var isShowingGoogleView = false @State var isShowingStripeView = false @@ -155,12 +156,13 @@ struct SettingsSubscriptionView: View { private var subscriptionDetailsView: some View { if viewModel.state.subscription.entitlements.contains(.networkProtection) { - SettingsCellView(label: UserText.settingsPProVPNTitle, - image: Image("SettingsPrivacyProVPN"), - action: { viewModel.presentLegacyView(.netP) }, - statusIndicator: StatusIndicatorView(status: viewModel.state.networkProtectionConnected ? .on : .off), - disclosureIndicator: true, - isButton: true) + NavigationLink(destination: NetworkProtectionRootView(), isActive: $isShowingVPN) { + SettingsCellView( + label: UserText.settingsPProVPNTitle, + image: Image("SettingsPrivacyProVPN"), + statusIndicator: StatusIndicatorView(status: viewModel.state.networkProtectionConnected ? .on : .off) + ) + } } if viewModel.state.subscription.entitlements.contains(.dataBrokerProtection) { diff --git a/DuckDuckGo/SettingsViewModel.swift b/DuckDuckGo/SettingsViewModel.swift index 2de260a871..0f98bad108 100644 --- a/DuckDuckGo/SettingsViewModel.swift +++ b/DuckDuckGo/SettingsViewModel.swift @@ -598,10 +598,6 @@ extension SettingsViewModel { case .autoconsent: pushViewController(legacyViewProvider.autoConsent) - - case .netP: - firePixel(.privacyProVPNSettings) - pushViewController(legacyViewProvider.netP) } } @@ -654,13 +650,7 @@ extension SettingsViewModel { // Default to .sheet, specify .push where needed var type: DeepLinkType { switch self { - // Specify cases that require .push presentation - // Example: - // case .dbp: - // return .sheet - case .netP: - return .UIKitView - default: + case .netP, .dbp, .itr, .subscriptionFlow, .restoreFlow, .duckPlayer: return .navigationLink } } @@ -670,7 +660,6 @@ extension SettingsViewModel { enum DeepLinkType { case sheet case navigationLink - case UIKitView } // Navigate to a section in settings From 75773ac7f504fd6bf492b14a5a9c6ce8102abc89 Mon Sep 17 00:00:00 2001 From: Alessandro Boron Date: Fri, 23 Aug 2024 11:21:52 +1000 Subject: [PATCH 16/32] Mitigate Onboarding pixels firing with empty atb (#3265) Task/Issue URL: https://app.asana.com/0/72649045549333/1208108104325249/f **Description**: This PR mitigates the issue that causes onboarding Pixels to fire with an empty ATB. --- DuckDuckGo/AppDelegate.swift | 8 ++- DuckDuckGo/DaxOnboardingViewController.swift | 2 +- DuckDuckGo/MainViewController+Segues.swift | 4 +- DuckDuckGo/MainViewController.swift | 9 +-- .../ContextualOnboardingDialogs.swift | 8 +-- .../NewTabDaxDialogFactory.swift | 8 +-- .../OnboardingSuggestionsViewModel.swift | 8 +-- .../ContextualDaxDialogsFactory.swift | 10 +-- .../ContextualOnboardingPresenter.swift | 2 +- .../OnboardingIntroViewController.swift | 4 +- .../OnboardingIntroViewModel.swift | 2 +- .../OnboardingIntro/OnboardingView.swift | 4 +- .../Pixels/OnboardingPixelReporter.swift | 38 +++++++++++ .../RootDebugViewController+Onboarding.swift | 2 +- DuckDuckGo/TabManager.swift | 11 ++- DuckDuckGo/TabViewController.swift | 2 +- ...ViewControllerLongPressMenuExtension.swift | 3 +- .../ContextualOnboardingPresenterTests.swift | 24 +++++-- DuckDuckGoTests/OnboardingFirePixelMock.swift | 4 ++ .../OnboardingIntroViewModelTests.swift | 12 ++-- .../OnboardingPixelReporterMock.swift | 18 ++++- .../OnboardingPixelReporterTests.swift | 67 +++++++++++++++++++ ...OnboardingSuggestionsViewModelsTests.swift | 4 +- 23 files changed, 201 insertions(+), 53 deletions(-) diff --git a/DuckDuckGo/AppDelegate.swift b/DuckDuckGo/AppDelegate.swift index 8c5da72457..95dc82112a 100644 --- a/DuckDuckGo/AppDelegate.swift +++ b/DuckDuckGo/AppDelegate.swift @@ -100,6 +100,7 @@ import WebKit private var didCrashDuringCrashHandlersSetUp: Bool private let launchOptionsHandler = LaunchOptionsHandler() + private let onboardingPixelReporter = OnboardingPixelReporter() override init() { super.init() @@ -322,6 +323,8 @@ import WebKit presentInsufficientDiskSpaceAlert() } else { + let daxDialogsFactory = ExperimentContextualDaxDialogsFactory(contextualOnboardingLogic: daxDialogs, contextualOnboardingPixelReporter: onboardingPixelReporter) + let contextualOnboardingPresenter = ContextualOnboardingPresenter(variantManager: variantManager, daxDialogsFactory: daxDialogsFactory) let main = MainViewController(bookmarksDatabase: bookmarksDatabase, bookmarksDatabaseCleaner: syncDataProviders.bookmarksAdapter.databaseCleaner, historyManager: historyManager, @@ -334,9 +337,9 @@ import WebKit syncPausedStateManager: syncErrorHandler, privacyProDataReporter: privacyProDataReporter, variantManager: variantManager, - contextualOnboardingPresenter: ContextualOnboardingPresenter(variantManager: variantManager), + contextualOnboardingPresenter: contextualOnboardingPresenter, contextualOnboardingLogic: daxDialogs, - contextualOnboardingPixelReporter: OnboardingPixelReporter()) + contextualOnboardingPixelReporter: onboardingPixelReporter) main.loadViewIfNeeded() syncErrorHandler.alertPresenter = main @@ -500,6 +503,7 @@ import WebKit StatisticsLoader.shared.refreshAppRetentionAtb() self.fireAppLaunchPixel() self.reportAdAttribution() + self.onboardingPixelReporter.fireEnqueuedPixelsIfNeeded() } if appIsLaunching { diff --git a/DuckDuckGo/DaxOnboardingViewController.swift b/DuckDuckGo/DaxOnboardingViewController.swift index 2d3817929e..9fda073b4e 100644 --- a/DuckDuckGo/DaxOnboardingViewController.swift +++ b/DuckDuckGo/DaxOnboardingViewController.swift @@ -54,7 +54,7 @@ class DaxOnboardingViewController: UIViewController, Onboarding { private let pixelReporting: OnboardingIntroImpressionReporting - init?(coder: NSCoder, pixelReporting: OnboardingIntroImpressionReporting = OnboardingPixelReporter()) { + init?(coder: NSCoder, pixelReporting: OnboardingIntroImpressionReporting) { self.pixelReporting = pixelReporting super.init(coder: coder) } diff --git a/DuckDuckGo/MainViewController+Segues.swift b/DuckDuckGo/MainViewController+Segues.swift index b64f38cde1..fd64c5e3be 100644 --- a/DuckDuckGo/MainViewController+Segues.swift +++ b/DuckDuckGo/MainViewController+Segues.swift @@ -35,11 +35,11 @@ extension MainViewController { var controller: (Onboarding & UIViewController)? if DefaultVariantManager().isSupported(feature: .newOnboardingIntro) { - controller = OnboardingIntroViewController() + controller = OnboardingIntroViewController(onboardingPixelReporter: contextualOnboardingPixelReporter) } else { let storyboard = UIStoryboard(name: "DaxOnboarding", bundle: nil) controller = storyboard.instantiateInitialViewController(creator: { coder in - DaxOnboardingViewController(coder: coder) + DaxOnboardingViewController(coder: coder, pixelReporting: self.contextualOnboardingPixelReporter) }) } diff --git a/DuckDuckGo/MainViewController.swift b/DuckDuckGo/MainViewController.swift index dbd077ada4..8f9bc1dc26 100644 --- a/DuckDuckGo/MainViewController.swift +++ b/DuckDuckGo/MainViewController.swift @@ -106,7 +106,7 @@ class MainViewController: UIViewController { private let variantManager: VariantManager private let tutorialSettings: TutorialSettings private let contextualOnboardingLogic: ContextualOnboardingLogic - private let contextualOnboardingPixelReporter: OnboardingCustomInteractionPixelReporting + let contextualOnboardingPixelReporter: OnboardingPixelReporting private let statisticsStore: StatisticsStore @UserDefaultsWrapper(key: .syncDidShowSyncPausedByFeatureFlagAlert, defaultValue: false) @@ -189,7 +189,7 @@ class MainViewController: UIViewController { variantManager: VariantManager, contextualOnboardingPresenter: ContextualOnboardingPresenting, contextualOnboardingLogic: ContextualOnboardingLogic, - contextualOnboardingPixelReporter: OnboardingCustomInteractionPixelReporting, + contextualOnboardingPixelReporter: OnboardingPixelReporting, tutorialSettings: TutorialSettings = DefaultTutorialSettings(), statisticsStore: StatisticsStore = StatisticsUserDefaults() ) { @@ -212,7 +212,8 @@ class MainViewController: UIViewController { syncService: syncService, privacyProDataReporter: privacyProDataReporter, contextualOnboardingPresenter: contextualOnboardingPresenter, - contextualOnboardingLogic: contextualOnboardingLogic) + contextualOnboardingLogic: contextualOnboardingLogic, + onboardingPixelReporter: contextualOnboardingPixelReporter) self.syncPausedStateManager = syncPausedStateManager self.privacyProDataReporter = privacyProDataReporter self.homeTabManager = NewTabPageManager() @@ -778,7 +779,7 @@ class MainViewController: UIViewController { fatalError("No tab model") } - let newTabDaxDialogFactory = NewTabDaxDialogFactory(delegate: self, contextualOnboardingLogic: DaxDialogs.shared) + let newTabDaxDialogFactory = NewTabDaxDialogFactory(delegate: self, contextualOnboardingLogic: DaxDialogs.shared, onboardingPixelReporter: contextualOnboardingPixelReporter) if homeTabManager.isNewTabPageSectionsEnabled { let controller = NewTabPageViewController(tab: tabModel, interactionModel: favoritesViewModel, diff --git a/DuckDuckGo/OnboardingExperiment/ContextualDaxDialogs/ContextualOnboardingDialogs.swift b/DuckDuckGo/OnboardingExperiment/ContextualDaxDialogs/ContextualOnboardingDialogs.swift index f83a220e2a..4e61e2fb18 100644 --- a/DuckDuckGo/OnboardingExperiment/ContextualDaxDialogs/ContextualOnboardingDialogs.swift +++ b/DuckDuckGo/OnboardingExperiment/ContextualDaxDialogs/ContextualOnboardingDialogs.swift @@ -194,17 +194,17 @@ struct OnboardingFinalDialog: View { // MARK: - Preview #Preview("Try Search") { - OnboardingTrySearchDialog(viewModel: OnboardingSearchSuggestionsViewModel()) + OnboardingTrySearchDialog(viewModel: OnboardingSearchSuggestionsViewModel(pixelReporter: OnboardingPixelReporter())) .padding() } #Preview("Try Site Top") { - OnboardingTryVisitingSiteDialog(logoPosition: .top, viewModel: OnboardingSiteSuggestionsViewModel(title: UserText.DaxOnboardingExperiment.ContextualOnboarding.onboardingTryASiteTitle)) + OnboardingTryVisitingSiteDialog(logoPosition: .top, viewModel: OnboardingSiteSuggestionsViewModel(title: UserText.DaxOnboardingExperiment.ContextualOnboarding.onboardingTryASiteTitle, pixelReporter: OnboardingPixelReporter())) .padding() } #Preview("Try Site Left") { - OnboardingTryVisitingSiteDialog(logoPosition: .left, viewModel: OnboardingSiteSuggestionsViewModel(title: UserText.DaxOnboardingExperiment.ContextualOnboarding.onboardingTryASiteTitle)) + OnboardingTryVisitingSiteDialog(logoPosition: .left, viewModel: OnboardingSiteSuggestionsViewModel(title: UserText.DaxOnboardingExperiment.ContextualOnboarding.onboardingTryASiteTitle, pixelReporter: OnboardingPixelReporter())) .padding() } @@ -216,7 +216,7 @@ struct OnboardingFinalDialog: View { } #Preview("First Search Dialog") { - OnboardingFirstSearchDoneDialog(shouldFollowUp: true, viewModel: OnboardingSiteSuggestionsViewModel(title: UserText.DaxOnboardingExperiment.ContextualOnboarding.onboardingTryASiteTitle), gotItAction: {}) + OnboardingFirstSearchDoneDialog(shouldFollowUp: true, viewModel: OnboardingSiteSuggestionsViewModel(title: UserText.DaxOnboardingExperiment.ContextualOnboarding.onboardingTryASiteTitle, pixelReporter: OnboardingPixelReporter()), gotItAction: {}) .padding() } diff --git a/DuckDuckGo/OnboardingExperiment/ContextualDaxDialogs/NewTabDaxDialogFactory.swift b/DuckDuckGo/OnboardingExperiment/ContextualDaxDialogs/NewTabDaxDialogFactory.swift index 0beeabbdd6..cd483d9c71 100644 --- a/DuckDuckGo/OnboardingExperiment/ContextualDaxDialogs/NewTabDaxDialogFactory.swift +++ b/DuckDuckGo/OnboardingExperiment/ContextualDaxDialogs/NewTabDaxDialogFactory.swift @@ -28,12 +28,12 @@ protocol NewTabDaxDialogProvider { final class NewTabDaxDialogFactory: NewTabDaxDialogProvider { private var delegate: OnboardingNavigationDelegate? private let contextualOnboardingLogic: ContextualOnboardingLogic - private let onboardingPixelReporter: OnboardingScreenImpressionReporting + private let onboardingPixelReporter: OnboardingPixelReporting init( delegate: OnboardingNavigationDelegate?, contextualOnboardingLogic: ContextualOnboardingLogic, - onboardingPixelReporter: OnboardingScreenImpressionReporting = OnboardingPixelReporter() + onboardingPixelReporter: OnboardingPixelReporting ) { self.delegate = delegate self.contextualOnboardingLogic = contextualOnboardingLogic @@ -58,7 +58,7 @@ final class NewTabDaxDialogFactory: NewTabDaxDialogProvider { } private func createInitialDialog() -> some View { - let viewModel = OnboardingSearchSuggestionsViewModel(delegate: delegate) + let viewModel = OnboardingSearchSuggestionsViewModel(pixelReporter: onboardingPixelReporter, delegate: delegate) return FadeInView { OnboardingTrySearchDialog(viewModel: viewModel) .onboardingDaxDialogStyle() @@ -70,7 +70,7 @@ final class NewTabDaxDialogFactory: NewTabDaxDialogProvider { } private func createSubsequentDialog() -> some View { - let viewModel = OnboardingSiteSuggestionsViewModel(title: UserText.DaxOnboardingExperiment.ContextualOnboarding.onboardingTryASiteNTPTitle, delegate: delegate) + let viewModel = OnboardingSiteSuggestionsViewModel(title: UserText.DaxOnboardingExperiment.ContextualOnboarding.onboardingTryASiteNTPTitle, pixelReporter: onboardingPixelReporter, delegate: delegate) return FadeInView { OnboardingTryVisitingSiteDialog(logoPosition: .top, viewModel: viewModel) .onboardingDaxDialogStyle() diff --git a/DuckDuckGo/OnboardingExperiment/ContextualDaxDialogs/OnboardingSuggestionsViewModel.swift b/DuckDuckGo/OnboardingExperiment/ContextualDaxDialogs/OnboardingSuggestionsViewModel.swift index 2a4e631a65..e04544e136 100644 --- a/DuckDuckGo/OnboardingExperiment/ContextualDaxDialogs/OnboardingSuggestionsViewModel.swift +++ b/DuckDuckGo/OnboardingExperiment/ContextualDaxDialogs/OnboardingSuggestionsViewModel.swift @@ -30,9 +30,9 @@ struct OnboardingSearchSuggestionsViewModel { private let pixelReporter: OnboardingSearchSuggestionsPixelReporting init( + pixelReporter: OnboardingSearchSuggestionsPixelReporting, suggestedSearchesProvider: OnboardingSuggestionsItemsProviding = OnboardingSuggestedSearchesProvider(), - delegate: OnboardingNavigationDelegate? = nil, - pixelReporter: OnboardingSearchSuggestionsPixelReporting = OnboardingPixelReporter() + delegate: OnboardingNavigationDelegate? = nil ) { self.suggestedSearchesProvider = suggestedSearchesProvider self.delegate = delegate @@ -56,9 +56,9 @@ struct OnboardingSiteSuggestionsViewModel { init( title: String, + pixelReporter: OnboardingSiteSuggestionsPixelReporting, suggestedSitesProvider: OnboardingSuggestionsItemsProviding = OnboardingSuggestedSitesProvider(), - delegate: OnboardingNavigationDelegate? = nil, - pixelReporter: OnboardingSiteSuggestionsPixelReporting = OnboardingPixelReporter() + delegate: OnboardingNavigationDelegate? = nil ) { self.title = title self.suggestedSitesProvider = suggestedSitesProvider diff --git a/DuckDuckGo/OnboardingExperiment/ContextualOnboarding/ContextualDaxDialogsFactory.swift b/DuckDuckGo/OnboardingExperiment/ContextualOnboarding/ContextualDaxDialogsFactory.swift index 1f71c8b4d1..97b6aac0bc 100644 --- a/DuckDuckGo/OnboardingExperiment/ContextualOnboarding/ContextualDaxDialogsFactory.swift +++ b/DuckDuckGo/OnboardingExperiment/ContextualOnboarding/ContextualDaxDialogsFactory.swift @@ -45,12 +45,12 @@ protocol ContextualDaxDialogsFactory { final class ExperimentContextualDaxDialogsFactory: ContextualDaxDialogsFactory { private let contextualOnboardingLogic: ContextualOnboardingLogic private let contextualOnboardingSettings: ContextualOnboardingSettings - private let contextualOnboardingPixelReporter: OnboardingScreenImpressionReporting + private let contextualOnboardingPixelReporter: OnboardingPixelReporting init( contextualOnboardingLogic: ContextualOnboardingLogic, contextualOnboardingSettings: ContextualOnboardingSettings = DefaultDaxDialogsSettings(), - contextualOnboardingPixelReporter: OnboardingScreenImpressionReporting = OnboardingPixelReporter() + contextualOnboardingPixelReporter: OnboardingPixelReporting ) { self.contextualOnboardingSettings = contextualOnboardingSettings self.contextualOnboardingLogic = contextualOnboardingLogic @@ -103,8 +103,8 @@ final class ExperimentContextualDaxDialogsFactory: ContextualDaxDialogsFactory { afterSearchPixelEvent: Pixel.Event, onSizeUpdate: @escaping () -> Void ) -> some View { - let viewModel = OnboardingSiteSuggestionsViewModel(title: UserText.DaxOnboardingExperiment.ContextualOnboarding.onboardingTryASiteTitle, delegate: delegate) - + let viewModel = OnboardingSiteSuggestionsViewModel(title: UserText.DaxOnboardingExperiment.ContextualOnboarding.onboardingTryASiteTitle, pixelReporter: contextualOnboardingPixelReporter, delegate: delegate) + // If should not show websites search after searching inform the delegate that the user dimissed the dialog, otherwise let the dialog handle it. let gotItAction: () -> Void = if shouldFollowUpToWebsiteSearch { { [weak delegate, weak self] in @@ -125,7 +125,7 @@ final class ExperimentContextualDaxDialogsFactory: ContextualDaxDialogsFactory { } private func tryVisitingSiteDialog(delegate: ContextualOnboardingDelegate) -> some View { - let viewModel = OnboardingSiteSuggestionsViewModel(title: UserText.DaxOnboardingExperiment.ContextualOnboarding.onboardingTryASiteTitle, delegate: delegate) + let viewModel = OnboardingSiteSuggestionsViewModel(title: UserText.DaxOnboardingExperiment.ContextualOnboarding.onboardingTryASiteTitle, pixelReporter: contextualOnboardingPixelReporter, delegate: delegate) return OnboardingTryVisitingSiteDialog(logoPosition: .left, viewModel: viewModel) .onFirstAppear { [weak self] in self?.contextualOnboardingPixelReporter.trackScreenImpression(event: .onboardingContextualTryVisitSiteUnique) diff --git a/DuckDuckGo/OnboardingExperiment/ContextualOnboarding/ContextualOnboardingPresenter.swift b/DuckDuckGo/OnboardingExperiment/ContextualOnboarding/ContextualOnboardingPresenter.swift index 1d1e8d1153..c6d5542b78 100644 --- a/DuckDuckGo/OnboardingExperiment/ContextualOnboarding/ContextualOnboardingPresenter.swift +++ b/DuckDuckGo/OnboardingExperiment/ContextualOnboarding/ContextualOnboardingPresenter.swift @@ -38,7 +38,7 @@ final class ContextualOnboardingPresenter: ContextualOnboardingPresenting { init( variantManager: VariantManager, - daxDialogsFactory: ContextualDaxDialogsFactory = ExperimentContextualDaxDialogsFactory(contextualOnboardingLogic: DaxDialogs.shared), + daxDialogsFactory: ContextualDaxDialogsFactory, appSettings: AppSettings = AppUserDefaults() ) { self.variantManager = variantManager diff --git a/DuckDuckGo/OnboardingExperiment/OnboardingIntro/OnboardingIntroViewController.swift b/DuckDuckGo/OnboardingExperiment/OnboardingIntro/OnboardingIntroViewController.swift index 2b78cc51d6..5b1d4d9b6d 100644 --- a/DuckDuckGo/OnboardingExperiment/OnboardingIntro/OnboardingIntroViewController.swift +++ b/DuckDuckGo/OnboardingExperiment/OnboardingIntro/OnboardingIntroViewController.swift @@ -23,8 +23,8 @@ final class OnboardingIntroViewController: UIHostingController, weak var delegate: OnboardingDelegate? private let viewModel: OnboardingIntroViewModel - init() { - viewModel = OnboardingIntroViewModel() + init(onboardingPixelReporter: OnboardingPixelReporting) { + viewModel = OnboardingIntroViewModel(pixelReporter: onboardingPixelReporter) let rootView = OnboardingView(model: viewModel) super.init(rootView: rootView) diff --git a/DuckDuckGo/OnboardingExperiment/OnboardingIntro/OnboardingIntroViewModel.swift b/DuckDuckGo/OnboardingExperiment/OnboardingIntro/OnboardingIntroViewModel.swift index 376366ec60..3eb768d2d7 100644 --- a/DuckDuckGo/OnboardingExperiment/OnboardingIntro/OnboardingIntroViewModel.swift +++ b/DuckDuckGo/OnboardingExperiment/OnboardingIntro/OnboardingIntroViewModel.swift @@ -28,7 +28,7 @@ final class OnboardingIntroViewModel: ObservableObject { private let pixelReporter: OnboardingIntroPixelReporting private let urlOpener: URLOpener - init(pixelReporter: OnboardingIntroPixelReporting = OnboardingPixelReporter(), urlOpener: URLOpener = UIApplication.shared) { + init(pixelReporter: OnboardingIntroPixelReporting, urlOpener: URLOpener = UIApplication.shared) { self.pixelReporter = pixelReporter self.urlOpener = urlOpener } diff --git a/DuckDuckGo/OnboardingExperiment/OnboardingIntro/OnboardingView.swift b/DuckDuckGo/OnboardingExperiment/OnboardingIntro/OnboardingView.swift index c4c3487cab..ffecbee296 100644 --- a/DuckDuckGo/OnboardingExperiment/OnboardingIntro/OnboardingView.swift +++ b/DuckDuckGo/OnboardingExperiment/OnboardingIntro/OnboardingView.swift @@ -191,11 +191,11 @@ private enum Metrics { // MARK: - Preview #Preview("Onboarding - Light") { - OnboardingView(model: .init()) + OnboardingView(model: .init(pixelReporter: OnboardingPixelReporter())) .preferredColorScheme(.light) } #Preview("Onboarding - Dark") { - OnboardingView(model: .init()) + OnboardingView(model: .init(pixelReporter: OnboardingPixelReporter())) .preferredColorScheme(.dark) } diff --git a/DuckDuckGo/OnboardingExperiment/Pixels/OnboardingPixelReporter.swift b/DuckDuckGo/OnboardingExperiment/Pixels/OnboardingPixelReporter.swift index ab9f2b6144..8f38efe332 100644 --- a/DuckDuckGo/OnboardingExperiment/Pixels/OnboardingPixelReporter.swift +++ b/DuckDuckGo/OnboardingExperiment/Pixels/OnboardingPixelReporter.swift @@ -69,6 +69,8 @@ protocol OnboardingScreenImpressionReporting { func trackScreenImpression(event: Pixel.Event) } +typealias OnboardingPixelReporting = OnboardingIntroImpressionReporting & OnboardingIntroPixelReporting & OnboardingSearchSuggestionsPixelReporting & OnboardingSiteSuggestionsPixelReporting & OnboardingCustomInteractionPixelReporting & OnboardingScreenImpressionReporting + // MARK: - Implementation final class OnboardingPixelReporter { @@ -80,6 +82,8 @@ final class OnboardingPixelReporter { private let userDefaults: UserDefaults private let siteVisitedUserDefaultsKey = "com.duckduckgo.ios.site-visited" + private(set) var enqueuedPixels: [EnqueuedPixel] = [] + init( pixel: OnboardingPixelFiring.Type = Pixel.self, uniquePixel: OnboardingPixelFiring.Type = UniquePixel.self, @@ -97,6 +101,21 @@ final class OnboardingPixelReporter { } private func fire(event: Pixel.Event, unique: Bool, additionalParameters: [String: String] = [:], includedParameters: [Pixel.QueryParameters] = [.appVersion, .atb]) { + + func enqueue(event: Pixel.Event, unique: Bool, additionalParameters: [String: String], includedParameters: [Pixel.QueryParameters]) { + enqueuedPixels.append(.init(event: event, unique: unique, additionalParameters: additionalParameters, includedParameters: includedParameters)) + } + + // If the Pixel needs the ATB and ATB is available, fire the Pixel immediately. Otherwise enqueue the pixel and process it once the ATB is available. + // If the Pixel does not need the ATB there's no need to wait for the ATB to become available. + if includedParameters.contains(.atb) && statisticsStore.atb == nil { + enqueue(event: event, unique: unique, additionalParameters: additionalParameters, includedParameters: includedParameters) + } else { + performFire(event: event, unique: unique, additionalParameters: additionalParameters, includedParameters: includedParameters) + } + } + + private func performFire(event: Pixel.Event, unique: Bool, additionalParameters: [String: String], includedParameters: [Pixel.QueryParameters]) { if unique { uniquePixel.fire(pixel: event, withAdditionalParameters: additionalParameters, includedParameters: includedParameters) } else { @@ -106,6 +125,18 @@ final class OnboardingPixelReporter { } +// MARK: - Fire Enqueued Pixels + +extension OnboardingPixelReporter { + + func fireEnqueuedPixelsIfNeeded() { + while !enqueuedPixels.isEmpty { + let event = enqueuedPixels.removeFirst() + performFire(event: event.event, unique: event.unique, additionalParameters: event.additionalParameters, includedParameters: event.includedParameters) + } + } +} + // MARK: - OnboardingPixelReporter + Intro extension OnboardingPixelReporter: OnboardingIntroPixelReporting { @@ -182,3 +213,10 @@ extension OnboardingPixelReporter: OnboardingScreenImpressionReporting { } } + +struct EnqueuedPixel { + let event: Pixel.Event + let unique: Bool + let additionalParameters: [String: String] + let includedParameters: [Pixel.QueryParameters] +} diff --git a/DuckDuckGo/RootDebugViewController+Onboarding.swift b/DuckDuckGo/RootDebugViewController+Onboarding.swift index c25df3aa50..550c251023 100644 --- a/DuckDuckGo/RootDebugViewController+Onboarding.swift +++ b/DuckDuckGo/RootDebugViewController+Onboarding.swift @@ -22,7 +22,7 @@ import UIKit extension RootDebugViewController { func showOnboardingIntro() { - let controller = OnboardingIntroViewController() + let controller = OnboardingIntroViewController(onboardingPixelReporter: OnboardingPixelReporter()) controller.delegate = self controller.modalPresentationStyle = .overFullScreen present(controller: controller, fromView: self.view) diff --git a/DuckDuckGo/TabManager.swift b/DuckDuckGo/TabManager.swift index 3b1b0f2568..1fc6bc98e6 100644 --- a/DuckDuckGo/TabManager.swift +++ b/DuckDuckGo/TabManager.swift @@ -39,6 +39,7 @@ class TabManager { private var privacyProDataReporter: PrivacyProDataReporting private let contextualOnboardingPresenter: ContextualOnboardingPresenting private let contextualOnboardingLogic: ContextualOnboardingLogic + private let onboardingPixelReporter: OnboardingPixelReporting weak var delegate: TabDelegate? @@ -54,7 +55,8 @@ class TabManager { duckPlayer: DuckPlayer = DuckPlayer(), privacyProDataReporter: PrivacyProDataReporting, contextualOnboardingPresenter: ContextualOnboardingPresenting, - contextualOnboardingLogic: ContextualOnboardingLogic) { + contextualOnboardingLogic: ContextualOnboardingLogic, + onboardingPixelReporter: OnboardingPixelReporting) { self.model = model self.previewsSource = previewsSource self.bookmarksDatabase = bookmarksDatabase @@ -64,6 +66,7 @@ class TabManager { self.privacyProDataReporter = privacyProDataReporter self.contextualOnboardingPresenter = contextualOnboardingPresenter self.contextualOnboardingLogic = contextualOnboardingLogic + self.onboardingPixelReporter = onboardingPixelReporter registerForNotifications() } @@ -83,7 +86,8 @@ class TabManager { duckPlayer: duckPlayer, privacyProDataReporter: privacyProDataReporter, contextualOnboardingPresenter: contextualOnboardingPresenter, - contextualOnboardingLogic: contextualOnboardingLogic) + contextualOnboardingLogic: contextualOnboardingLogic, + onboardingPixelReporter: onboardingPixelReporter) controller.applyInheritedAttribution(inheritedAttribution) controller.attachWebView(configuration: configuration, andLoadRequest: url == nil ? nil : URLRequest.userInitiated(url!), @@ -159,7 +163,8 @@ class TabManager { duckPlayer: duckPlayer, privacyProDataReporter: privacyProDataReporter, contextualOnboardingPresenter: contextualOnboardingPresenter, - contextualOnboardingLogic: contextualOnboardingLogic) + contextualOnboardingLogic: contextualOnboardingLogic, + onboardingPixelReporter: onboardingPixelReporter) controller.attachWebView(configuration: configCopy, andLoadRequest: request, consumeCookies: !model.hasActiveTabs, diff --git a/DuckDuckGo/TabViewController.swift b/DuckDuckGo/TabViewController.swift index 096ee6992c..153fa14d6b 100644 --- a/DuckDuckGo/TabViewController.swift +++ b/DuckDuckGo/TabViewController.swift @@ -298,7 +298,7 @@ class TabViewController: UIViewController { privacyProDataReporter: PrivacyProDataReporting, contextualOnboardingPresenter: ContextualOnboardingPresenting, contextualOnboardingLogic: ContextualOnboardingLogic, - onboardingPixelReporter: OnboardingCustomInteractionPixelReporting = OnboardingPixelReporter()) -> TabViewController { + onboardingPixelReporter: OnboardingCustomInteractionPixelReporting) -> TabViewController { let storyboard = UIStoryboard(name: "Tab", bundle: nil) let controller = storyboard.instantiateViewController(identifier: "TabViewController", creator: { coder in TabViewController(coder: coder, diff --git a/DuckDuckGo/TabViewControllerLongPressMenuExtension.swift b/DuckDuckGo/TabViewControllerLongPressMenuExtension.swift index ca74e93fa2..cfaea37efb 100644 --- a/DuckDuckGo/TabViewControllerLongPressMenuExtension.swift +++ b/DuckDuckGo/TabViewControllerLongPressMenuExtension.swift @@ -109,7 +109,8 @@ extension TabViewController { duckPlayer: duckPlayer, privacyProDataReporter: privacyProDataReporter, contextualOnboardingPresenter: contextualOnboardingPresenter, - contextualOnboardingLogic: contextualOnboardingLogic) + contextualOnboardingLogic: contextualOnboardingLogic, + onboardingPixelReporter: onboardingPixelReporter) tabController.isLinkPreview = true let configuration = WKWebViewConfiguration.nonPersistent() tabController.attachWebView(configuration: configuration, andLoadRequest: URLRequest.userInitiated(url), consumeCookies: false) diff --git a/DuckDuckGoTests/ContextualOnboardingPresenterTests.swift b/DuckDuckGoTests/ContextualOnboardingPresenterTests.swift index 31780c5876..ff95a620aa 100644 --- a/DuckDuckGoTests/ContextualOnboardingPresenterTests.swift +++ b/DuckDuckGoTests/ContextualOnboardingPresenterTests.swift @@ -22,6 +22,18 @@ import SwiftUI @testable import DuckDuckGo final class ContextualOnboardingPresenterTests: XCTestCase { + private var contextualDaxDialogsFactory: ExperimentContextualDaxDialogsFactory! + + override func setUpWithError() throws { + contextualDaxDialogsFactory = ExperimentContextualDaxDialogsFactory(contextualOnboardingLogic: DaxDialogs.shared, contextualOnboardingPixelReporter: OnboardingPixelReporterMock()) + try super.setUpWithError() + } + + override func tearDownWithError() throws { + contextualDaxDialogsFactory = nil + try super.tearDownWithError() + } + func testWhenPresentContextualOnboardingAndVariantDoesNotSupportOnboardingIntroThenOldContextualOnboardingIsPresented() throws { // GIVEN @@ -29,7 +41,7 @@ final class ContextualOnboardingPresenterTests: XCTestCase { variantManagerMock.isSupportedBlock = { feature in feature != .newOnboardingIntro } - let sut = ContextualOnboardingPresenter(variantManager: variantManagerMock) + let sut = ContextualOnboardingPresenter(variantManager: variantManagerMock, daxDialogsFactory: contextualDaxDialogsFactory) let parent = TabViewControllerMock() XCTAssertFalse(parent.didCallPerformSegue) XCTAssertNil(parent.capturedSegueIdentifier) @@ -51,7 +63,7 @@ final class ContextualOnboardingPresenterTests: XCTestCase { variantManagerMock.isSupportedBlock = { feature in feature == .newOnboardingIntro } - let sut = ContextualOnboardingPresenter(variantManager: variantManagerMock) + let sut = ContextualOnboardingPresenter(variantManager: variantManagerMock, daxDialogsFactory: contextualDaxDialogsFactory) let parent = TabViewControllerMock() XCTAssertFalse(parent.didCallAddChild) XCTAssertNil(parent.capturedChild) @@ -71,7 +83,7 @@ final class ContextualOnboardingPresenterTests: XCTestCase { feature == .newOnboardingIntro } let appSettings = AppSettingsMock() - let sut = ContextualOnboardingPresenter(variantManager: variantManagerMock, appSettings: appSettings) + let sut = ContextualOnboardingPresenter(variantManager: variantManagerMock, daxDialogsFactory: contextualDaxDialogsFactory, appSettings: appSettings) let parent = TabViewControllerMock() // WHEN @@ -90,7 +102,7 @@ final class ContextualOnboardingPresenterTests: XCTestCase { } let appSettings = AppSettingsMock() appSettings.currentAddressBarPosition = .bottom - let sut = ContextualOnboardingPresenter(variantManager: variantManagerMock, appSettings: appSettings) + let sut = ContextualOnboardingPresenter(variantManager: variantManagerMock, daxDialogsFactory: contextualDaxDialogsFactory, appSettings: appSettings) let parent = TabViewControllerMock() // WHEN @@ -108,7 +120,7 @@ final class ContextualOnboardingPresenterTests: XCTestCase { variantManagerMock.isSupportedBlock = { feature in feature == .newOnboardingIntro } - let sut = ContextualOnboardingPresenter(variantManager: variantManagerMock) + let sut = ContextualOnboardingPresenter(variantManager: variantManagerMock, daxDialogsFactory: contextualDaxDialogsFactory) let parent = TabViewControllerMock() let daxController = DaxContextualOnboardingControllerMock() daxController.removeFromParentExpectation = expectation @@ -136,7 +148,7 @@ final class ContextualOnboardingPresenterTests: XCTestCase { variantManagerMock.isSupportedBlock = { feature in feature != .newOnboardingIntro } - let sut = ContextualOnboardingPresenter(variantManager: variantManagerMock) + let sut = ContextualOnboardingPresenter(variantManager: variantManagerMock, daxDialogsFactory: contextualDaxDialogsFactory) let parent = TabViewControllerMock() let daxController = DaxContextualOnboardingControllerMock() daxController.removeFromParentExpectation = expectation diff --git a/DuckDuckGoTests/OnboardingFirePixelMock.swift b/DuckDuckGoTests/OnboardingFirePixelMock.swift index 1c790f3f82..d277ee6bec 100644 --- a/DuckDuckGoTests/OnboardingFirePixelMock.swift +++ b/DuckDuckGoTests/OnboardingFirePixelMock.swift @@ -48,11 +48,14 @@ final class OnboardingUniquePixelFireMock: OnboardingPixelFiring { static private(set) var capturedParams: [String: String] = [:] static private(set) var capturedIncludeParameters: [Pixel.QueryParameters] = [] + static private(set) var capturedPixelEventHistory: [Pixel.Event] = [] + static func fire(pixel: Pixel.Event, withAdditionalParameters params: [String: String], includedParameters: [Pixel.QueryParameters]) { didCallFire = true capturedPixelEvent = pixel capturedParams = params capturedIncludeParameters = includedParameters + capturedPixelEventHistory.append(pixel) } static func tearDown() { @@ -60,5 +63,6 @@ final class OnboardingUniquePixelFireMock: OnboardingPixelFiring { capturedPixelEvent = nil capturedParams = [:] capturedIncludeParameters = [] + capturedPixelEventHistory = [] } } diff --git a/DuckDuckGoTests/OnboardingIntroViewModelTests.swift b/DuckDuckGoTests/OnboardingIntroViewModelTests.swift index 52342a9bb4..f3ad300002 100644 --- a/DuckDuckGoTests/OnboardingIntroViewModelTests.swift +++ b/DuckDuckGoTests/OnboardingIntroViewModelTests.swift @@ -26,7 +26,7 @@ final class OnboardingIntroViewModelTests: XCTestCase { func testWhenSubscribeToViewStateThenShouldSendLanding() { // GIVEN - let sut = OnboardingIntroViewModel(urlOpener: MockURLOpener()) + let sut = OnboardingIntroViewModel(pixelReporter: OnboardingIntroPixelReporterMock(), urlOpener: MockURLOpener()) // WHEN let result = sut.state @@ -37,7 +37,7 @@ final class OnboardingIntroViewModelTests: XCTestCase { func testWhenOnAppearIsCalledThenViewStateChangesToStartOnboardingDialog() { // GIVEN - let sut = OnboardingIntroViewModel(urlOpener: MockURLOpener()) + let sut = OnboardingIntroViewModel(pixelReporter: OnboardingIntroPixelReporterMock(), urlOpener: MockURLOpener()) XCTAssertEqual(sut.state, .landing) // WHEN @@ -49,7 +49,7 @@ final class OnboardingIntroViewModelTests: XCTestCase { func testWhenStartOnboardingActionIsCalledThenViewStateChangesToBrowsersComparisonDialog() { // GIVEN - let sut = OnboardingIntroViewModel() + let sut = OnboardingIntroViewModel(pixelReporter: OnboardingIntroPixelReporterMock()) XCTAssertEqual(sut.state, .landing) // WHEN @@ -62,7 +62,7 @@ final class OnboardingIntroViewModelTests: XCTestCase { func testWhenSetDefaultBrowserActionIsCalledThenURLOpenerOpensSettingsURL() { // GIVEN let urlOpenerMock = MockURLOpener() - let sut = OnboardingIntroViewModel(urlOpener: urlOpenerMock) + let sut = OnboardingIntroViewModel(pixelReporter: OnboardingIntroPixelReporterMock(), urlOpener: urlOpenerMock) XCTAssertFalse(urlOpenerMock.didCallOpenURL) XCTAssertNil(urlOpenerMock.capturedURL) @@ -77,7 +77,7 @@ final class OnboardingIntroViewModelTests: XCTestCase { func testWhenSetDefaultBrowserActionIsCalledThenOnCompletingOnboardingIntroIsCalled() { // GIVEN var didCallOnCompletingOnboardingIntro = false - let sut = OnboardingIntroViewModel(urlOpener: MockURLOpener()) + let sut = OnboardingIntroViewModel(pixelReporter: OnboardingIntroPixelReporterMock(), urlOpener: MockURLOpener()) sut.onCompletingOnboardingIntro = { didCallOnCompletingOnboardingIntro = true } @@ -93,7 +93,7 @@ final class OnboardingIntroViewModelTests: XCTestCase { func testWhenCancelSetDefaultBrowserActionIsCalledThenOnCompletingOnboardingIntroIsCalled() { // GIVEN var didCallOnCompletingOnboardingIntro = false - let sut = OnboardingIntroViewModel(urlOpener: MockURLOpener()) + let sut = OnboardingIntroViewModel(pixelReporter: OnboardingIntroPixelReporterMock(), urlOpener: MockURLOpener()) sut.onCompletingOnboardingIntro = { didCallOnCompletingOnboardingIntro = true } diff --git a/DuckDuckGoTests/OnboardingPixelReporterMock.swift b/DuckDuckGoTests/OnboardingPixelReporterMock.swift index fcfe097b50..23a1c93da5 100644 --- a/DuckDuckGoTests/OnboardingPixelReporterMock.swift +++ b/DuckDuckGoTests/OnboardingPixelReporterMock.swift @@ -21,7 +21,11 @@ import Foundation import Core @testable import DuckDuckGo -final class OnboardingPixelReporterMock: OnboardingSiteSuggestionsPixelReporting, OnboardingSearchSuggestionsPixelReporting, OnboardingCustomInteractionPixelReporting, OnboardingScreenImpressionReporting { +final class OnboardingPixelReporterMock: OnboardingIntroPixelReporting, OnboardingSiteSuggestionsPixelReporting, OnboardingSearchSuggestionsPixelReporting, OnboardingCustomInteractionPixelReporting, OnboardingScreenImpressionReporting { + + private(set) var didCallTrackOnboardingIntroImpression = false + private(set) var didCallTrackBrowserComparisonImpression = false + private(set) var didCallChooseBrowserCTAAction = false private(set) var didCallTrackSearchOptionTapped = false private(set) var didCallTrackSiteOptionTapped = false private(set) var didCallTrackCustomSearch = false @@ -36,6 +40,18 @@ final class OnboardingPixelReporterMock: OnboardingSiteSuggestionsPixelReporting private(set) var capturedScreenImpression: Pixel.Event? private(set) var didCallTrackPrivacyDashboardOpenedForFirstTime = false + func trackOnboardingIntroImpression() { + didCallTrackOnboardingIntroImpression = true + } + + func trackBrowserComparisonImpression() { + didCallTrackBrowserComparisonImpression = true + } + + func trackChooseBrowserCTAAction() { + didCallChooseBrowserCTAAction = true + } + func trackSiteSuggetionOptionTapped() { didCallTrackSiteOptionTapped = true } diff --git a/DuckDuckGoTests/OnboardingPixelReporterTests.swift b/DuckDuckGoTests/OnboardingPixelReporterTests.swift index 6eaa415171..09994eb9ce 100644 --- a/DuckDuckGoTests/OnboardingPixelReporterTests.swift +++ b/DuckDuckGoTests/OnboardingPixelReporterTests.swift @@ -30,6 +30,7 @@ final class OnboardingPixelReporterTests: XCTestCase { override func setUpWithError() throws { statisticsStoreMock = MockStatisticsStore() + statisticsStoreMock.atb = "TESTATB" now = Date() var calendar = Calendar(identifier: .gregorian) calendar.timeZone = try XCTUnwrap(TimeZone(secondsFromGMT: 0)) @@ -286,4 +287,70 @@ final class OnboardingPixelReporterTests: XCTestCase { XCTAssertEqual(expectedPixel.name, expectedPixel.name) XCTAssertEqual(OnboardingUniquePixelFireMock.capturedIncludeParameters, [.appVersion, .atb]) } + + // Enqueuing / Dequeuing Pixels + + func testWhenPixelIsFiredAndAndATBIsNotAvailableAndPixelNeedsATBThenEnqueuePixel() throws { + // GIVEN + statisticsStoreMock.atb = nil + XCTAssertFalse(OnboardingUniquePixelFireMock.didCallFire) + XCTAssertNil(OnboardingUniquePixelFireMock.capturedPixelEvent) + XCTAssertEqual(OnboardingUniquePixelFireMock.capturedParams, [:]) + XCTAssertEqual(OnboardingUniquePixelFireMock.capturedIncludeParameters, []) + XCTAssertTrue(sut.enqueuedPixels.isEmpty) + + // WHEN + sut.trackOnboardingIntroImpression() + + // THEN + XCTAssertFalse(OnboardingUniquePixelFireMock.didCallFire) + XCTAssertNil(OnboardingUniquePixelFireMock.capturedPixelEvent) + XCTAssertEqual(OnboardingUniquePixelFireMock.capturedParams, [:]) + XCTAssertEqual(OnboardingUniquePixelFireMock.capturedIncludeParameters, []) + XCTAssertEqual(sut.enqueuedPixels.count, 1) + let enqueuedPixel = try XCTUnwrap(sut.enqueuedPixels.first) + XCTAssertEqual(enqueuedPixel.event, .onboardingIntroShownUnique) + XCTAssertTrue(enqueuedPixel.unique) + XCTAssertTrue(enqueuedPixel.additionalParameters.isEmpty) + XCTAssertEqual(enqueuedPixel.includedParameters, [.appVersion, .atb]) + + } + + func testWhenPixelIsFiredAndAndATBIsNotAvailableAndPixelDoesNotNeedATBThenFirePixel() { + // GIVEN + statisticsStoreMock.atb = nil + XCTAssertFalse(OnboardingUniquePixelFireMock.didCallFire) + XCTAssertNil(OnboardingUniquePixelFireMock.capturedPixelEvent) + XCTAssertEqual(OnboardingUniquePixelFireMock.capturedParams, [:]) + XCTAssertEqual(OnboardingUniquePixelFireMock.capturedIncludeParameters, []) + XCTAssertTrue(sut.enqueuedPixels.isEmpty) + + // WHEN + sut.trackPrivacyDashboardOpenedForFirstTime() + + // THEN + XCTAssertTrue(OnboardingUniquePixelFireMock.didCallFire) + XCTAssertEqual(OnboardingUniquePixelFireMock.capturedPixelEvent, .privacyDashboardFirstTimeOpenedUnique) + XCTAssertNotNil(OnboardingUniquePixelFireMock.capturedParams) + XCTAssertNotNil(OnboardingUniquePixelFireMock.capturedIncludeParameters) + XCTAssertTrue(sut.enqueuedPixels.isEmpty) + } + + func testWhenFireEnqueuedPixelIsCalledThenFireEnqueuedPixels() { + // GIVEN + statisticsStoreMock.atb = nil + sut.trackOnboardingIntroImpression() + sut.trackBrowserComparisonImpression() + XCTAssertEqual(sut.enqueuedPixels.count, 2) + XCTAssertTrue(OnboardingUniquePixelFireMock.capturedPixelEventHistory.isEmpty) + + // WHEN + sut.fireEnqueuedPixelsIfNeeded() + + // THEN + XCTAssertEqual(sut.enqueuedPixels.count, 0) + XCTAssertEqual(OnboardingUniquePixelFireMock.capturedPixelEventHistory.count, 2) + XCTAssertEqual(OnboardingUniquePixelFireMock.capturedPixelEventHistory[0], .onboardingIntroShownUnique) + XCTAssertEqual(OnboardingUniquePixelFireMock.capturedPixelEventHistory[1], .onboardingIntroComparisonChartShownUnique) + } } diff --git a/DuckDuckGoTests/OnboardingSuggestionsViewModelsTests.swift b/DuckDuckGoTests/OnboardingSuggestionsViewModelsTests.swift index 2ce7ad24cc..0e206b7a70 100644 --- a/DuckDuckGoTests/OnboardingSuggestionsViewModelsTests.swift +++ b/DuckDuckGoTests/OnboardingSuggestionsViewModelsTests.swift @@ -32,8 +32,8 @@ final class OnboardingSuggestionsViewModelsTests: XCTestCase { suggestionsProvider = MockOnboardingSuggestionsProvider() navigationDelegate = CapturingOnboardingNavigationDelegate() pixelReporterMock = OnboardingPixelReporterMock() - searchSuggestionsVM = OnboardingSearchSuggestionsViewModel(suggestedSearchesProvider: suggestionsProvider, delegate: navigationDelegate, pixelReporter: pixelReporterMock) - siteSuggestionsVM = OnboardingSiteSuggestionsViewModel(title: "", suggestedSitesProvider: suggestionsProvider, delegate: navigationDelegate, pixelReporter: pixelReporterMock) + searchSuggestionsVM = OnboardingSearchSuggestionsViewModel(pixelReporter: pixelReporterMock, suggestedSearchesProvider: suggestionsProvider, delegate: navigationDelegate) + siteSuggestionsVM = OnboardingSiteSuggestionsViewModel(title: "", pixelReporter: pixelReporterMock, suggestedSitesProvider: suggestionsProvider, delegate: navigationDelegate) } override func tearDown() { From 3980704290c463098f4c45117f99709bd28c9010 Mon Sep 17 00:00:00 2001 From: Dax Mobile <44842493+daxmobile@users.noreply.github.com> Date: Fri, 23 Aug 2024 06:10:55 -0400 Subject: [PATCH 17/32] Update autoconsent to v10.15.0 (#3254) Task/Issue URL: https://app.asana.com/0/1208091886631028/1208091886631028 Autoconsent Release: https://github.com/duckduckgo/autoconsent/releases/tag/v10.15.0 ## Description Updates Autoconsent to version [v10.15.0](https://github.com/duckduckgo/autoconsent/releases/tag/v10.15.0). ### Autoconsent v10.15.0 release notes See release notes [here](https://github.com/duckduckgo/autoconsent/blob/v10.15.0/CHANGELOG.md) Co-authored-by: muodov --- DuckDuckGo/Autoconsent/autoconsent-bundle.js | 2 +- package-lock.json | 8 ++++---- package.json | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/DuckDuckGo/Autoconsent/autoconsent-bundle.js b/DuckDuckGo/Autoconsent/autoconsent-bundle.js index 141e5977b9..5d453a5745 100644 --- a/DuckDuckGo/Autoconsent/autoconsent-bundle.js +++ b/DuckDuckGo/Autoconsent/autoconsent-bundle.js @@ -1 +1 @@ -!function(){"use strict";var e=class e{static setBase(t){e.base=t}static findElement(t,o=null,c=!1){let i=null;return i=null!=o?Array.from(o.querySelectorAll(t.selector)):null!=e.base?Array.from(e.base.querySelectorAll(t.selector)):Array.from(document.querySelectorAll(t.selector)),null!=t.textFilter&&(i=i.filter((e=>{const o=e.textContent.toLowerCase();if(Array.isArray(t.textFilter)){let e=!1;for(const c of t.textFilter)if(-1!==o.indexOf(c.toLowerCase())){e=!0;break}return e}if(null!=t.textFilter)return-1!==o.indexOf(t.textFilter.toLowerCase())}))),null!=t.styleFilters&&(i=i.filter((e=>{const o=window.getComputedStyle(e);let c=!0;for(const e of t.styleFilters){const t=o[e.option];c=e.negated?c&&t!==e.value:c&&t===e.value}return c}))),null!=t.displayFilter&&(i=i.filter((e=>t.displayFilter?0!==e.offsetHeight:0===e.offsetHeight))),null!=t.iframeFilter&&(i=i.filter((()=>t.iframeFilter?window.location!==window.parent.location:window.location===window.parent.location))),null!=t.childFilter&&(i=i.filter((o=>{const c=e.base;e.setBase(o);const i=e.find(t.childFilter);return e.setBase(c),null!=i.target}))),c?i:(i.length>1&&console.warn("Multiple possible targets: ",i,t,o),i[0])}static find(t,o=!1){const c=[];if(null!=t.parent){const i=e.findElement(t.parent,null,o);if(null!=i){if(i instanceof Array)return i.forEach((i=>{const n=e.findElement(t.target,i,o);n instanceof Array?n.forEach((e=>{c.push({parent:i,target:e})})):c.push({parent:i,target:n})})),c;{const n=e.findElement(t.target,i,o);n instanceof Array?n.forEach((e=>{c.push({parent:i,target:e})})):c.push({parent:i,target:n})}}}else{const i=e.findElement(t.target,null,o);i instanceof Array?i.forEach((e=>{c.push({parent:null,target:e})})):c.push({parent:null,target:i})}return 0===c.length&&c.push({parent:null,target:null}),o?c:(1!==c.length&&console.warn("Multiple results found, even though multiple false",c),c[0])}};e.base=null;var t=e;function o(e){const o=t.find(e);return"css"===e.type?!!o.target:"checkbox"===e.type?!!o.target&&o.target.checked:void 0}async function c(e,a){switch(e.type){case"click":return async function(e){const o=t.find(e);null!=o.target&&o.target.click();return n(i)}(e);case"list":return async function(e,t){for(const o of e.actions)await c(o,t)}(e,a);case"consent":return async function(e,t){for(const i of e.consents){const e=-1!==t.indexOf(i.type);if(i.matcher&&i.toggleAction){o(i.matcher)!==e&&await c(i.toggleAction)}else e?await c(i.trueAction):await c(i.falseAction)}}(e,a);case"ifcss":return async function(e,o){const i=t.find(e);i.target?e.falseAction&&await c(e.falseAction,o):e.trueAction&&await c(e.trueAction,o)}(e,a);case"waitcss":return async function(e){await new Promise((o=>{let c=e.retries||10;const i=e.waitTime||250,n=()=>{const a=t.find(e);(e.negated&&a.target||!e.negated&&!a.target)&&c>0?(c-=1,setTimeout(n,i)):o()};n()}))}(e);case"foreach":return async function(e,o){const i=t.find(e,!0),n=t.base;for(const n of i)n.target&&(t.setBase(n.target),await c(e.action,o));t.setBase(n)}(e,a);case"hide":return async function(e){const o=t.find(e);o.target&&o.target.classList.add("Autoconsent-Hidden")}(e);case"slide":return async function(e){const o=t.find(e),c=t.find(e.dragTarget);if(o.target){const e=o.target.getBoundingClientRect(),t=c.target.getBoundingClientRect();let i=t.top-e.top,n=t.left-e.left;"y"===this.config.axis.toLowerCase()&&(n=0),"x"===this.config.axis.toLowerCase()&&(i=0);const a=window.screenX+e.left+e.width/2,s=window.screenY+e.top+e.height/2,r=e.left+e.width/2,l=e.top+e.height/2,p=document.createEvent("MouseEvents");p.initMouseEvent("mousedown",!0,!0,window,0,a,s,r,l,!1,!1,!1,!1,0,o.target);const d=document.createEvent("MouseEvents");d.initMouseEvent("mousemove",!0,!0,window,0,a+n,s+i,r+n,l+i,!1,!1,!1,!1,0,o.target);const u=document.createEvent("MouseEvents");u.initMouseEvent("mouseup",!0,!0,window,0,a+n,s+i,r+n,l+i,!1,!1,!1,!1,0,o.target),o.target.dispatchEvent(p),await this.waitTimeout(10),o.target.dispatchEvent(d),await this.waitTimeout(10),o.target.dispatchEvent(u)}}(e);case"close":return async function(){window.close()}();case"wait":return async function(e){await n(e.waitTime)}(e);case"eval":return async function(e){return console.log("eval!",e.code),new Promise((t=>{try{e.async?(window.eval(e.code),setTimeout((()=>{t(window.eval("window.__consentCheckResult"))}),e.timeout||250)):t(window.eval(e.code))}catch(o){console.warn("eval error",o,e.code),t(!1)}}))}(e);default:throw"Unknown action type: "+e.type}}var i=0;function n(e){return new Promise((t=>{setTimeout((()=>{t()}),e)}))}function a(){return crypto&&void 0!==crypto.randomUUID?crypto.randomUUID():Math.random().toString()}var s=class{constructor(e,t=1e3){this.id=e,this.promise=new Promise(((e,t)=>{this.resolve=e,this.reject=t})),this.timer=window.setTimeout((()=>{this.reject(new Error("timeout"))}),t)}},r={pending:new Map,sendContentMessage:null};var l={EVAL_0:()=>console.log(1),EVAL_CONSENTMANAGER_1:()=>window.__cmp&&"object"==typeof __cmp("getCMPData"),EVAL_CONSENTMANAGER_2:()=>!__cmp("consentStatus").userChoiceExists,EVAL_CONSENTMANAGER_3:()=>__cmp("setConsent",0),EVAL_CONSENTMANAGER_4:()=>__cmp("setConsent",1),EVAL_CONSENTMANAGER_5:()=>__cmp("consentStatus").userChoiceExists,EVAL_COOKIEBOT_1:()=>!!window.Cookiebot,EVAL_COOKIEBOT_2:()=>!window.Cookiebot.hasResponse&&!0===window.Cookiebot.dialog?.visible,EVAL_COOKIEBOT_3:()=>window.Cookiebot.withdraw()||!0,EVAL_COOKIEBOT_4:()=>window.Cookiebot.hide()||!0,EVAL_COOKIEBOT_5:()=>!0===window.Cookiebot.declined,EVAL_KLARO_1:()=>{const e=globalThis.klaroConfig||globalThis.klaro?.getManager&&globalThis.klaro.getManager().config;if(!e)return!0;const t=(e.services||e.apps).filter((e=>!e.required)).map((e=>e.name));if(klaro&&klaro.getManager){const e=klaro.getManager();return t.every((t=>!e.consents[t]))}if(klaroConfig&&"cookie"===klaroConfig.storageMethod){const e=klaroConfig.cookieName||klaroConfig.storageName,o=JSON.parse(decodeURIComponent(document.cookie.split(";").find((t=>t.trim().startsWith(e))).split("=")[1]));return Object.keys(o).filter((e=>t.includes(e))).every((e=>!1===o[e]))}},EVAL_KLARO_OPEN_POPUP:()=>{klaro.show(void 0,!0)},EVAL_KLARO_TRY_API_OPT_OUT:()=>{if(window.klaro&&"function"==typeof klaro.show&&"function"==typeof klaro.getManager)try{return klaro.getManager().changeAll(!1),klaro.getManager().saveAndApplyConsents(),!0}catch(e){return console.warn(e),!1}return!1},EVAL_ONETRUST_1:()=>window.OnetrustActiveGroups.split(",").filter((e=>e.length>0)).length<=1,EVAL_TRUSTARC_TOP:()=>window&&window.truste&&"0"===window.truste.eu.bindMap.prefCookie,EVAL_TRUSTARC_FRAME_TEST:()=>window&&window.QueryString&&"0"===window.QueryString.preferences,EVAL_TRUSTARC_FRAME_GTM:()=>window&&window.QueryString&&"1"===window.QueryString.gtm,EVAL_ADROLL_0:()=>!document.cookie.includes("__adroll_fpc"),EVAL_ALMACMP_0:()=>document.cookie.includes('"name":"Google","consent":false'),EVAL_AFFINITY_SERIF_COM_0:()=>document.cookie.includes("serif_manage_cookies_viewed")&&!document.cookie.includes("serif_allow_analytics"),EVAL_ARBEITSAGENTUR_TEST:()=>document.cookie.includes("cookie_consent=denied"),EVAL_AXEPTIO_0:()=>document.cookie.includes("axeptio_authorized_vendors=%2C%2C"),EVAL_BAHN_TEST:()=>1===utag.gdpr.getSelectedCategories().length,EVAL_BING_0:()=>document.cookie.includes("AL=0")&&document.cookie.includes("AD=0")&&document.cookie.includes("SM=0"),EVAL_BLOCKSY_0:()=>document.cookie.includes("blocksy_cookies_consent_accepted=no"),EVAL_BORLABS_0:()=>!JSON.parse(decodeURIComponent(document.cookie.split(";").find((e=>-1!==e.indexOf("borlabs-cookie"))).split("=",2)[1])).consents.statistics,EVAL_BUNDESREGIERUNG_DE_0:()=>document.cookie.match("cookie-allow-tracking=0"),EVAL_CANVA_0:()=>!document.cookie.includes("gtm_fpc_engagement_event"),EVAL_CC_BANNER2_0:()=>!!document.cookie.match(/sncc=[^;]+D%3Dtrue/),EVAL_CLICKIO_0:()=>document.cookie.includes("__lxG__consent__v2_daisybit="),EVAL_CLINCH_0:()=>document.cookie.includes("ctc_rejected=1"),EVAL_COOKIECONSENT2_TEST:()=>document.cookie.includes("cc_cookie="),EVAL_COOKIECONSENT3_TEST:()=>document.cookie.includes("cc_cookie="),EVAL_COINBASE_0:()=>JSON.parse(decodeURIComponent(document.cookie.match(/cm_(eu|default)_preferences=([0-9a-zA-Z\\{\\}\\[\\]%:]*);?/)[2])).consent.length<=1,EVAL_COMPLIANZ_BANNER_0:()=>document.cookie.includes("cmplz_banner-status=dismissed"),EVAL_COOKIE_LAW_INFO_0:()=>CLI.disableAllCookies()||CLI.reject_close()||!0,EVAL_COOKIE_LAW_INFO_1:()=>-1===document.cookie.indexOf("cookielawinfo-checkbox-non-necessary=yes"),EVAL_COOKIE_LAW_INFO_DETECT:()=>!!window.CLI,EVAL_COOKIE_MANAGER_POPUP_0:()=>!1===JSON.parse(document.cookie.split(";").find((e=>e.trim().startsWith("CookieLevel"))).split("=")[1]).social,EVAL_COOKIEALERT_0:()=>document.querySelector("body").removeAttribute("style")||!0,EVAL_COOKIEALERT_1:()=>document.querySelector("body").removeAttribute("style")||!0,EVAL_COOKIEALERT_2:()=>!0===window.CookieConsent.declined,EVAL_COOKIEFIRST_0:()=>{return!1===(e=JSON.parse(decodeURIComponent(document.cookie.split(";").find((e=>-1!==e.indexOf("cookiefirst"))).trim()).split("=")[1])).performance&&!1===e.functional&&!1===e.advertising;var e},EVAL_COOKIEFIRST_1:()=>document.querySelectorAll("button[data-cookiefirst-accent-color=true][role=checkbox]:not([disabled])").forEach((e=>"true"==e.getAttribute("aria-checked")&&e.click()))||!0,EVAL_COOKIEINFORMATION_0:()=>CookieInformation.declineAllCategories()||!0,EVAL_COOKIEINFORMATION_1:()=>CookieInformation.submitAllCategories()||!0,EVAL_COOKIEINFORMATION_2:()=>document.cookie.includes("CookieInformationConsent="),EVAL_COOKIEYES_0:()=>document.cookie.includes("advertisement:no"),EVAL_DAILYMOTION_0:()=>!!document.cookie.match("dm-euconsent-v2"),EVAL_DNDBEYOND_TEST:()=>document.cookie.includes("cookie-consent=denied"),EVAL_DSGVO_0:()=>!document.cookie.includes("sp_dsgvo_cookie_settings"),EVAL_DUNELM_0:()=>document.cookie.includes("cc_functional=0")&&document.cookie.includes("cc_targeting=0"),EVAL_ETSY_0:()=>document.querySelectorAll(".gdpr-overlay-body input").forEach((e=>{e.checked=!1}))||!0,EVAL_ETSY_1:()=>document.querySelector(".gdpr-overlay-view button[data-wt-overlay-close]").click()||!0,EVAL_EU_COOKIE_COMPLIANCE_0:()=>-1===document.cookie.indexOf("cookie-agreed=2"),EVAL_EU_COOKIE_LAW_0:()=>!document.cookie.includes("euCookie"),EVAL_EZOIC_0:()=>ezCMP.handleAcceptAllClick(),EVAL_EZOIC_1:()=>!!document.cookie.match(/ez-consent-tcf/),EVAL_FIDES_DETECT_POPUP:()=>window.Fides?.initialized,EVAL_GOOGLE_0:()=>!!document.cookie.match(/SOCS=CAE/),EVAL_HEMA_TEST_0:()=>document.cookie.includes("cookies_rejected=1"),EVAL_IUBENDA_0:()=>document.querySelectorAll(".purposes-item input[type=checkbox]:not([disabled])").forEach((e=>{e.checked&&e.click()}))||!0,EVAL_IUBENDA_1:()=>!!document.cookie.match(/_iub_cs-\d+=/),EVAL_IWINK_TEST:()=>document.cookie.includes("cookie_permission_granted=no"),EVAL_JQUERY_COOKIEBAR_0:()=>!document.cookie.includes("cookies-state=accepted"),EVAL_KETCH_TEST:()=>document.cookie.includes("_ketch_consent_v1_"),EVAL_MEDIAVINE_0:()=>document.querySelectorAll('[data-name="mediavine-gdpr-cmp"] input[type=checkbox]').forEach((e=>e.checked&&e.click()))||!0,EVAL_MICROSOFT_0:()=>Array.from(document.querySelectorAll("div > button")).filter((e=>e.innerText.match("Reject|Ablehnen")))[0].click()||!0,EVAL_MICROSOFT_1:()=>Array.from(document.querySelectorAll("div > button")).filter((e=>e.innerText.match("Accept|Annehmen")))[0].click()||!0,EVAL_MICROSOFT_2:()=>!!document.cookie.match("MSCC|GHCC"),EVAL_MOOVE_0:()=>document.querySelectorAll("#moove_gdpr_cookie_modal input").forEach((e=>{e.disabled||(e.checked="moove_gdpr_strict_cookies"===e.name||"moove_gdpr_strict_cookies"===e.id)}))||!0,EVAL_ONENINETWO_0:()=>document.cookie.includes("CC_ADVERTISING=NO")&&document.cookie.includes("CC_ANALYTICS=NO"),EVAL_OPERA_0:()=>document.cookie.includes("cookie_consent_essential=true")&&!document.cookie.includes("cookie_consent_marketing=true"),EVAL_PAYPAL_0:()=>!0===document.cookie.includes("cookie_prefs"),EVAL_PRIMEBOX_0:()=>!document.cookie.includes("cb-enabled=accepted"),EVAL_PUBTECH_0:()=>document.cookie.includes("euconsent-v2")&&(document.cookie.match(/.YAAAAAAAAAAA/)||document.cookie.match(/.aAAAAAAAAAAA/)||document.cookie.match(/.YAAACFgAAAAA/)),EVAL_REDDIT_0:()=>document.cookie.includes("eu_cookie={%22opted%22:true%2C%22nonessential%22:false}"),EVAL_ROBLOX_TEST:()=>document.cookie.includes("RBXcb"),EVAL_SIRDATA_UNBLOCK_SCROLL:()=>(document.documentElement.classList.forEach((e=>{e.startsWith("sd-cmp-")&&document.documentElement.classList.remove(e)})),!0),EVAL_SNIGEL_0:()=>!!document.cookie.match("snconsent"),EVAL_STEAMPOWERED_0:()=>2===JSON.parse(decodeURIComponent(document.cookie.split(";").find((e=>e.trim().startsWith("cookieSettings"))).split("=")[1])).preference_state,EVAL_SVT_TEST:()=>document.cookie.includes('cookie-consent-1={"optedIn":true,"functionality":false,"statistics":false}'),EVAL_TAKEALOT_0:()=>document.body.classList.remove("freeze")||(document.body.style="")||!0,EVAL_TARTEAUCITRON_0:()=>tarteaucitron.userInterface.respondAll(!1)||!0,EVAL_TARTEAUCITRON_1:()=>tarteaucitron.userInterface.respondAll(!0)||!0,EVAL_TARTEAUCITRON_2:()=>document.cookie.match(/tarteaucitron=[^;]*/)?.[0].includes("false"),EVAL_TAUNTON_TEST:()=>document.cookie.includes("taunton_user_consent_submitted=true"),EVAL_TEALIUM_0:()=>void 0!==window.utag&&"object"==typeof utag.gdpr,EVAL_TEALIUM_1:()=>utag.gdpr.setConsentValue(!1)||!0,EVAL_TEALIUM_DONOTSELL:()=>utag.gdpr.dns?.setDnsState(!1)||!0,EVAL_TEALIUM_2:()=>utag.gdpr.setConsentValue(!0)||!0,EVAL_TEALIUM_3:()=>1!==utag.gdpr.getConsentState(),EVAL_TEALIUM_DONOTSELL_CHECK:()=>1!==utag.gdpr.dns?.getDnsState(),EVAL_TESTCMP_0:()=>"button_clicked"===window.results.results[0],EVAL_TESTCMP_COSMETIC_0:()=>"banner_hidden"===window.results.results[0],EVAL_THEFREEDICTIONARY_0:()=>cmpUi.showPurposes()||cmpUi.rejectAll()||!0,EVAL_THEFREEDICTIONARY_1:()=>cmpUi.allowAll()||!0,EVAL_THEVERGE_0:()=>document.cookie.includes("_duet_gdpr_acknowledged=1"),EVAL_UBUNTU_COM_0:()=>document.cookie.includes("_cookies_accepted=essential"),EVAL_UK_COOKIE_CONSENT_0:()=>!document.cookie.includes("catAccCookies"),EVAL_USERCENTRICS_API_0:()=>"object"==typeof UC_UI,EVAL_USERCENTRICS_API_1:()=>!!UC_UI.closeCMP(),EVAL_USERCENTRICS_API_2:()=>!!UC_UI.denyAllConsents(),EVAL_USERCENTRICS_API_3:()=>!!UC_UI.acceptAllConsents(),EVAL_USERCENTRICS_API_4:()=>!!UC_UI.closeCMP(),EVAL_USERCENTRICS_API_5:()=>!0===UC_UI.areAllConsentsAccepted(),EVAL_USERCENTRICS_API_6:()=>!1===UC_UI.areAllConsentsAccepted(),EVAL_USERCENTRICS_BUTTON_0:()=>JSON.parse(localStorage.getItem("usercentrics")).consents.every((e=>e.isEssential||!e.consentStatus)),EVAL_WAITROSE_0:()=>Array.from(document.querySelectorAll("label[id$=cookies-deny-label]")).forEach((e=>e.click()))||!0,EVAL_WAITROSE_1:()=>document.cookie.includes("wtr_cookies_advertising=0")&&document.cookie.includes("wtr_cookies_analytics=0"),EVAL_WP_COOKIE_NOTICE_0:()=>document.cookie.includes("wpl_viewed_cookie=no"),EVAL_XE_TEST:()=>document.cookie.includes("xeConsentState={%22performance%22:false%2C%22marketing%22:false%2C%22compliance%22:false}"),EVAL_XING_0:()=>document.cookie.includes("userConsent=%7B%22marketing%22%3Afalse"),EVAL_YOUTUBE_DESKTOP_0:()=>!!document.cookie.match(/SOCS=CAE/),EVAL_YOUTUBE_MOBILE_0:()=>!!document.cookie.match(/SOCS=CAE/)};var p={main:!0,frame:!1,urlPattern:""},d=class{constructor(e){this.runContext=p,this.autoconsent=e}get hasSelfTest(){throw new Error("Not Implemented")}get isIntermediate(){throw new Error("Not Implemented")}get isCosmetic(){throw new Error("Not Implemented")}mainWorldEval(e){const t=l[e];if(!t)return console.warn("Snippet not found",e),Promise.resolve(!1);const o=this.autoconsent.config.logs;if(this.autoconsent.config.isMainWorld){o.evals&&console.log("inline eval:",e,t);let c=!1;try{c=!!t.call(globalThis)}catch(t){o.evals&&console.error("error evaluating rule",e,t)}return Promise.resolve(c)}const c=`(${t.toString()})()`;return o.evals&&console.log("async eval:",e,c),function(e,t){const o=a();r.sendContentMessage({type:"eval",id:o,code:e,snippetId:t});const c=new s(o);return r.pending.set(c.id,c),c.promise}(c,e).catch((t=>(o.evals&&console.error("error evaluating rule",e,t),!1)))}checkRunContext(){const e={...p,...this.runContext},t=window.top===window;return!(t&&!e.main)&&(!(!t&&!e.frame)&&!(e.urlPattern&&!window.location.href.match(e.urlPattern)))}detectCmp(){throw new Error("Not Implemented")}async detectPopup(){return!1}optOut(){throw new Error("Not Implemented")}optIn(){throw new Error("Not Implemented")}openCmp(){throw new Error("Not Implemented")}async test(){return Promise.resolve(!0)}click(e,t=!1){return this.autoconsent.domActions.click(e,t)}elementExists(e){return this.autoconsent.domActions.elementExists(e)}elementVisible(e,t){return this.autoconsent.domActions.elementVisible(e,t)}waitForElement(e,t){return this.autoconsent.domActions.waitForElement(e,t)}waitForVisible(e,t,o){return this.autoconsent.domActions.waitForVisible(e,t,o)}waitForThenClick(e,t,o){return this.autoconsent.domActions.waitForThenClick(e,t,o)}wait(e){return this.autoconsent.domActions.wait(e)}hide(e,t){return this.autoconsent.domActions.hide(e,t)}prehide(e){return this.autoconsent.domActions.prehide(e)}undoPrehide(){return this.autoconsent.domActions.undoPrehide()}querySingleReplySelector(e,t){return this.autoconsent.domActions.querySingleReplySelector(e,t)}querySelectorChain(e){return this.autoconsent.domActions.querySelectorChain(e)}elementSelector(e){return this.autoconsent.domActions.elementSelector(e)}},u=class extends d{constructor(e,t){super(t),this.rule=e,this.name=e.name,this.runContext=e.runContext||p}get hasSelfTest(){return!!this.rule.test}get isIntermediate(){return!!this.rule.intermediate}get isCosmetic(){return!!this.rule.cosmetic}get prehideSelectors(){return this.rule.prehideSelectors}async detectCmp(){return!!this.rule.detectCmp&&this._runRulesParallel(this.rule.detectCmp)}async detectPopup(){return!!this.rule.detectPopup&&this._runRulesSequentially(this.rule.detectPopup)}async optOut(){const e=this.autoconsent.config.logs;return!!this.rule.optOut&&(e.lifecycle&&console.log("Initiated optOut()",this.rule.optOut),this._runRulesSequentially(this.rule.optOut))}async optIn(){const e=this.autoconsent.config.logs;return!!this.rule.optIn&&(e.lifecycle&&console.log("Initiated optIn()",this.rule.optIn),this._runRulesSequentially(this.rule.optIn))}async openCmp(){return!!this.rule.openCmp&&this._runRulesSequentially(this.rule.openCmp)}async test(){return this.hasSelfTest?this._runRulesSequentially(this.rule.test):super.test()}async evaluateRuleStep(e){const t=[],o=this.autoconsent.config.logs;if(e.exists&&t.push(this.elementExists(e.exists)),e.visible&&t.push(this.elementVisible(e.visible,e.check)),e.eval){const o=this.mainWorldEval(e.eval);t.push(o)}if(e.waitFor&&t.push(this.waitForElement(e.waitFor,e.timeout)),e.waitForVisible&&t.push(this.waitForVisible(e.waitForVisible,e.timeout,e.check)),e.click&&t.push(this.click(e.click,e.all)),e.waitForThenClick&&t.push(this.waitForThenClick(e.waitForThenClick,e.timeout,e.all)),e.wait&&t.push(this.wait(e.wait)),e.hide&&t.push(this.hide(e.hide,e.method)),e.if){if(!e.if.exists&&!e.if.visible)return console.error("invalid conditional rule",e.if),!1;const c=await this.evaluateRuleStep(e.if);o.rulesteps&&console.log("Condition is",c),c?t.push(this._runRulesSequentially(e.then)):e.else?t.push(this._runRulesSequentially(e.else)):t.push(!0)}if(e.any){for(const t of e.any)if(await this.evaluateRuleStep(t))return!0;return!1}if(0===t.length)return o.errors&&console.warn("Unrecognized rule",e),!1;return(await Promise.all(t)).reduce(((e,t)=>e&&t),!0)}async _runRulesParallel(e){const t=e.map((e=>this.evaluateRuleStep(e)));return(await Promise.all(t)).every((e=>!!e))}async _runRulesSequentially(e){const t=this.autoconsent.config.logs;for(const o of e){t.rulesteps&&console.log("Running rule...",o);const e=await this.evaluateRuleStep(o);if(t.rulesteps&&console.log("...rule result",e),!e&&!o.optional)return!1}return!0}},m=class{constructor(e,t){this.name=e,this.config=t,this.methods=new Map,this.runContext=p,this.isCosmetic=!1,t.methods.forEach((e=>{e.action&&this.methods.set(e.name,e.action)})),this.hasSelfTest=!1}get isIntermediate(){return!1}checkRunContext(){return!0}async detectCmp(){return this.config.detectors.map((e=>o(e.presentMatcher))).some((e=>!!e))}async detectPopup(){return this.config.detectors.map((e=>o(e.showingMatcher))).some((e=>!!e))}async executeAction(e,t){return!this.methods.has(e)||c(this.methods.get(e),t)}async optOut(){return await this.executeAction("HIDE_CMP"),await this.executeAction("OPEN_OPTIONS"),await this.executeAction("HIDE_CMP"),await this.executeAction("DO_CONSENT",[]),await this.executeAction("SAVE_CONSENT"),!0}async optIn(){return await this.executeAction("HIDE_CMP"),await this.executeAction("OPEN_OPTIONS"),await this.executeAction("HIDE_CMP"),await this.executeAction("DO_CONSENT",["D","A","B","E","F","X"]),await this.executeAction("SAVE_CONSENT"),!0}async openCmp(){return await this.executeAction("HIDE_CMP"),await this.executeAction("OPEN_OPTIONS"),!0}async test(){return!0}};function h(e="autoconsent-css-rules"){const t=`style#${e}`,o=document.querySelector(t);if(o&&o instanceof HTMLStyleElement)return o;{const t=document.head||document.getElementsByTagName("head")[0]||document.documentElement,o=document.createElement("style");return o.id=e,t.appendChild(o),o}}function k(e,t,o="display"){const c=`${t} { ${"opacity"===o?"opacity: 0":"display: none"} !important; z-index: -1 !important; pointer-events: none !important; } `;return e instanceof HTMLStyleElement&&(e.innerText+=c,t.length>0)}async function b(e,t,o){const c=await e();return!c&&t>0?new Promise((c=>{setTimeout((async()=>{c(b(e,t-1,o))}),o)})):Promise.resolve(c)}function _(e){if(!e)return!1;if(null!==e.offsetParent)return!0;{const t=window.getComputedStyle(e);if("fixed"===t.position&&"none"!==t.display)return!0}return!1}function g(e){const t={enabled:!0,autoAction:"optOut",disabledCmps:[],enablePrehide:!0,enableCosmeticRules:!0,detectRetries:20,isMainWorld:!1,prehideTimeout:2e3,logs:{lifecycle:!1,rulesteps:!1,evals:!1,errors:!0,messages:!1}},o=(c=t,globalThis.structuredClone?structuredClone(c):JSON.parse(JSON.stringify(c)));var c;for(const c of Object.keys(t))void 0!==e[c]&&(o[c]=e[c]);return o}var y="#truste-show-consent",w="#truste-consent-track",C=[class extends d{constructor(e){super(e),this.name="TrustArc-top",this.prehideSelectors=[".trustarc-banner-container",`.truste_popframe,.truste_overlay,.truste_box_overlay,${w}`],this.runContext={main:!0,frame:!1},this._shortcutButton=null,this._optInDone=!1}get hasSelfTest(){return!0}get isIntermediate(){return!this._optInDone&&!this._shortcutButton}get isCosmetic(){return!1}async detectCmp(){const e=this.elementExists(`${y},${w}`);return e&&(this._shortcutButton=document.querySelector("#truste-consent-required")),e}async detectPopup(){return this.elementVisible(`#truste-consent-content,#trustarc-banner-overlay,${w}`,"all")}openFrame(){this.click(y)}async optOut(){return this._shortcutButton?(this._shortcutButton.click(),!0):(k(h(),`.truste_popframe, .truste_overlay, .truste_box_overlay, ${w}`),this.click(y),setTimeout((()=>{h().remove()}),1e4),!0)}async optIn(){return this._optInDone=!0,this.click("#truste-consent-button")}async openCmp(){return!0}async test(){return await this.wait(500),await this.mainWorldEval("EVAL_TRUSTARC_TOP")}},class extends d{constructor(){super(...arguments),this.name="TrustArc-frame",this.runContext={main:!1,frame:!0,urlPattern:"^https://consent-pref\\.trustarc\\.com/\\?"}}get hasSelfTest(){return!0}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){return!0}async detectPopup(){return this.elementVisible("#defaultpreferencemanager","any")&&this.elementVisible(".mainContent","any")}async navigateToSettings(){return await b((async()=>this.elementExists(".shp")||this.elementVisible(".advance","any")||this.elementExists(".switch span:first-child")),10,500),this.elementExists(".shp")&&this.click(".shp"),await this.waitForElement(".prefPanel",5e3),this.elementVisible(".advance","any")&&this.click(".advance"),await b((()=>this.elementVisible(".switch span:first-child","any")),5,1e3)}async optOut(){if(await this.mainWorldEval("EVAL_TRUSTARC_FRAME_TEST"))return!0;let e=3e3;return await this.mainWorldEval("EVAL_TRUSTARC_FRAME_GTM")&&(e=1500),await b((()=>"complete"===document.readyState),20,100),await this.waitForElement(".mainContent[aria-hidden=false]",e),!!this.click(".rejectAll")||(this.elementExists(".prefPanel")&&await this.waitForElement('.prefPanel[style="visibility: visible;"]',e),this.click("#catDetails0")?(this.click(".submit"),this.waitForThenClick("#gwt-debug-close_id",e),!0):this.click(".required")?(this.waitForThenClick("#gwt-debug-close_id",e),!0):(await this.navigateToSettings(),this.click(".switch span:nth-child(1):not(.active)",!0),this.click(".submit"),this.waitForThenClick("#gwt-debug-close_id",10*e),!0))}async optIn(){return this.click(".call")||(await this.navigateToSettings(),this.click(".switch span:nth-child(2)",!0),this.click(".submit"),this.waitForElement("#gwt-debug-close_id",3e5).then((()=>{this.click("#gwt-debug-close_id")}))),!0}async test(){return await this.wait(500),await this.mainWorldEval("EVAL_TRUSTARC_FRAME_TEST")}},class extends d{constructor(){super(...arguments),this.name="Cybotcookiebot",this.prehideSelectors=["#CybotCookiebotDialog,#CybotCookiebotDialogBodyUnderlay,#dtcookie-container,#cookiebanner,#cb-cookieoverlay,.modal--cookie-banner,#cookiebanner_outer,#CookieBanner"]}get hasSelfTest(){return!0}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){return await this.mainWorldEval("EVAL_COOKIEBOT_1")}async detectPopup(){return this.mainWorldEval("EVAL_COOKIEBOT_2")}async optOut(){await this.wait(500);let e=await this.mainWorldEval("EVAL_COOKIEBOT_3");return await this.wait(500),e=e&&await this.mainWorldEval("EVAL_COOKIEBOT_4"),e}async optIn(){return this.elementExists("#dtcookie-container")?this.click(".h-dtcookie-accept"):(this.click(".CybotCookiebotDialogBodyLevelButton:not(:checked):enabled",!0),this.click("#CybotCookiebotDialogBodyLevelButtonAccept"),this.click("#CybotCookiebotDialogBodyButtonAccept"),!0)}async test(){return await this.wait(500),await this.mainWorldEval("EVAL_COOKIEBOT_5")}},class extends d{constructor(){super(...arguments),this.name="Sourcepoint-frame",this.prehideSelectors=["div[id^='sp_message_container_'],.message-overlay","#sp_privacy_manager_container"],this.ccpaNotice=!1,this.ccpaPopup=!1,this.runContext={main:!0,frame:!0}}get hasSelfTest(){return!1}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){const e=new URL(location.href);return e.searchParams.has("message_id")&&"ccpa-notice.sp-prod.net"===e.hostname?(this.ccpaNotice=!0,!0):"ccpa-pm.sp-prod.net"===e.hostname?(this.ccpaPopup=!0,!0):("/index.html"===e.pathname||"/privacy-manager/index.html"===e.pathname||"/ccpa_pm/index.html"===e.pathname)&&(e.searchParams.has("message_id")||e.searchParams.has("requestUUID")||e.searchParams.has("consentUUID"))}async detectPopup(){return!!this.ccpaNotice||(this.ccpaPopup?await this.waitForElement(".priv-save-btn",2e3):(await this.waitForElement(".sp_choice_type_11,.sp_choice_type_12,.sp_choice_type_13,.sp_choice_type_ACCEPT_ALL,.sp_choice_type_SAVE_AND_EXIT",2e3),!this.elementExists(".sp_choice_type_9")))}async optIn(){return await this.waitForElement(".sp_choice_type_11,.sp_choice_type_ACCEPT_ALL",2e3),!!this.click(".sp_choice_type_11")||!!this.click(".sp_choice_type_ACCEPT_ALL")}isManagerOpen(){return"/privacy-manager/index.html"===location.pathname||"/ccpa_pm/index.html"===location.pathname}async optOut(){const e=this.autoconsent.config.logs;if(this.ccpaPopup){const e=document.querySelectorAll(".priv-purpose-container .sp-switch-arrow-block a.neutral.on .right");for(const t of e)t.click();const t=document.querySelectorAll(".priv-purpose-container .sp-switch-arrow-block a.switch-bg.on");for(const e of t)e.click();return this.click(".priv-save-btn")}if(!this.isManagerOpen()){if(!await this.waitForElement(".sp_choice_type_12,.sp_choice_type_13"))return!1;if(!this.elementExists(".sp_choice_type_12"))return this.click(".sp_choice_type_13");this.click(".sp_choice_type_12"),await b((()=>this.isManagerOpen()),200,100)}await this.waitForElement(".type-modal",2e4),this.waitForThenClick(".ccpa-stack .pm-switch[aria-checked=true] .slider",500,!0);try{const e=".sp_choice_type_REJECT_ALL",t=".reject-toggle",o=await Promise.race([this.waitForElement(e,2e3).then((e=>e?0:-1)),this.waitForElement(t,2e3).then((e=>e?1:-1)),this.waitForElement(".pm-features",2e3).then((e=>e?2:-1))]);if(0===o)return await this.wait(1500),this.click(e);1===o?this.click(t):2===o&&(await this.waitForElement(".pm-features",1e4),this.click(".checked > span",!0),this.click(".chevron"))}catch(t){e.errors&&console.warn(t)}return this.click(".sp_choice_type_SAVE_AND_EXIT")}},class extends d{constructor(){super(...arguments),this.name="consentmanager.net",this.prehideSelectors=["#cmpbox,#cmpbox2"],this.apiAvailable=!1}get hasSelfTest(){return this.apiAvailable}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){return this.apiAvailable=await this.mainWorldEval("EVAL_CONSENTMANAGER_1"),!!this.apiAvailable||this.elementExists("#cmpbox")}async detectPopup(){return this.apiAvailable?(await this.wait(500),await this.mainWorldEval("EVAL_CONSENTMANAGER_2")):this.elementVisible("#cmpbox .cmpmore","any")}async optOut(){return await this.wait(500),this.apiAvailable?await this.mainWorldEval("EVAL_CONSENTMANAGER_3"):!!this.click(".cmpboxbtnno")||(this.elementExists(".cmpwelcomeprpsbtn")?(this.click(".cmpwelcomeprpsbtn > a[aria-checked=true]",!0),this.click(".cmpboxbtnsave"),!0):(this.click(".cmpboxbtncustom"),await this.waitForElement(".cmptblbox",2e3),this.click(".cmptdchoice > a[aria-checked=true]",!0),this.click(".cmpboxbtnyescustomchoices"),this.hide("#cmpwrapper,#cmpbox","display"),!0))}async optIn(){return this.apiAvailable?await this.mainWorldEval("EVAL_CONSENTMANAGER_4"):this.click(".cmpboxbtnyes")}async test(){if(this.apiAvailable)return await this.mainWorldEval("EVAL_CONSENTMANAGER_5")}},class extends d{constructor(){super(...arguments),this.name="Evidon"}get hasSelfTest(){return!1}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){return this.elementExists("#_evidon_banner")}async detectPopup(){return this.elementVisible("#_evidon_banner","any")}async optOut(){return this.click("#_evidon-decline-button")||(k(h(),"#evidon-prefdiag-overlay,#evidon-prefdiag-background,#_evidon-background"),await this.waitForThenClick("#_evidon-option-button"),await this.waitForElement("#evidon-prefdiag-overlay",5e3),await this.wait(500),await this.waitForThenClick("#evidon-prefdiag-decline")),!0}async optIn(){return this.click("#_evidon-accept-button")}},class extends d{constructor(){super(...arguments),this.name="Onetrust",this.prehideSelectors=["#onetrust-banner-sdk,#onetrust-consent-sdk,.onetrust-pc-dark-filter,.js-consent-banner"],this.runContext={urlPattern:"^(?!.*https://www\\.nba\\.com/)"}}get hasSelfTest(){return!0}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){return this.elementExists("#onetrust-banner-sdk,#onetrust-pc-sdk")}async detectPopup(){return this.elementVisible("#onetrust-banner-sdk,#onetrust-pc-sdk","any")}async optOut(){return this.elementVisible("#onetrust-reject-all-handler,.ot-pc-refuse-all-handler,.js-reject-cookies","any")?this.click("#onetrust-reject-all-handler,.ot-pc-refuse-all-handler,.js-reject-cookies"):(this.elementExists("#onetrust-pc-btn-handler")?this.click("#onetrust-pc-btn-handler"):this.click(".ot-sdk-show-settings,button.js-cookie-settings"),await this.waitForElement("#onetrust-consent-sdk",2e3),await this.wait(1e3),this.click("#onetrust-consent-sdk input.category-switch-handler:checked,.js-editor-toggle-state:checked",!0),await this.wait(1e3),await this.waitForElement(".save-preference-btn-handler,.js-consent-save",2e3),this.click(".save-preference-btn-handler,.js-consent-save"),await this.waitForVisible("#onetrust-banner-sdk",5e3,"none"),!0)}async optIn(){return this.click("#onetrust-accept-btn-handler,#accept-recommended-btn-handler,.js-accept-cookies")}async test(){return await b((()=>this.mainWorldEval("EVAL_ONETRUST_1")),10,500)}},class extends d{constructor(){super(...arguments),this.name="Klaro",this.prehideSelectors=[".klaro"],this.settingsOpen=!1}get hasSelfTest(){return!0}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){return this.elementExists(".klaro > .cookie-modal")?(this.settingsOpen=!0,!0):this.elementExists(".klaro > .cookie-notice")}async detectPopup(){return this.elementVisible(".klaro > .cookie-notice,.klaro > .cookie-modal","any")}async optOut(){return!!await this.mainWorldEval("EVAL_KLARO_TRY_API_OPT_OUT")||(!!this.click(".klaro .cn-decline")||(await this.mainWorldEval("EVAL_KLARO_OPEN_POPUP"),!!this.click(".klaro .cn-decline")||(this.click(".cm-purpose:not(.cm-toggle-all) > input:not(.half-checked,.required,.only-required),.cm-purpose:not(.cm-toggle-all) > div > input:not(.half-checked,.required,.only-required)",!0),this.click(".cm-btn-accept,.cm-button"))))}async optIn(){return!!this.click(".klaro .cm-btn-accept-all")||(this.settingsOpen?(this.click(".cm-purpose:not(.cm-toggle-all) > input.half-checked",!0),this.click(".cm-btn-accept")):this.click(".klaro .cookie-notice .cm-btn-success"))}async test(){return await this.mainWorldEval("EVAL_KLARO_1")}},class extends d{constructor(){super(...arguments),this.name="Uniconsent"}get prehideSelectors(){return[".unic",".modal:has(.unic)"]}get hasSelfTest(){return!0}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){return this.elementExists(".unic .unic-box,.unic .unic-bar,.unic .unic-modal")}async detectPopup(){return this.elementVisible(".unic .unic-box,.unic .unic-bar,.unic .unic-modal","any")}async optOut(){if(await this.waitForElement(".unic button",1e3),document.querySelectorAll(".unic button").forEach((e=>{const t=e.textContent;(t.includes("Manage Options")||t.includes("Optionen verwalten"))&&e.click()})),await this.waitForElement(".unic input[type=checkbox]",1e3)){await this.waitForElement(".unic button",1e3),document.querySelectorAll(".unic input[type=checkbox]").forEach((e=>{e.checked&&e.click()}));for(const e of document.querySelectorAll(".unic button")){const t=e.textContent;for(const o of["Confirm Choices","Save Choices","Auswahl speichern"])if(t.includes(o))return e.click(),await this.wait(500),!0}}return!1}async optIn(){return this.waitForThenClick(".unic #unic-agree")}async test(){await this.wait(1e3);return!this.elementExists(".unic .unic-box,.unic .unic-bar")}},class extends d{constructor(){super(...arguments),this.prehideSelectors=[".cmp-root"],this.name="Conversant"}get hasSelfTest(){return!0}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){return this.elementExists(".cmp-root .cmp-receptacle")}async detectPopup(){return this.elementVisible(".cmp-root .cmp-receptacle","any")}async optOut(){if(!await this.waitForThenClick(".cmp-main-button:not(.cmp-main-button--primary)"))return!1;if(!await this.waitForElement(".cmp-view-tab-tabs"))return!1;await this.waitForThenClick(".cmp-view-tab-tabs > :first-child"),await this.waitForThenClick(".cmp-view-tab-tabs > .cmp-view-tab--active:first-child");for(const e of Array.from(document.querySelectorAll(".cmp-accordion-item"))){e.querySelector(".cmp-accordion-item-title").click(),await b((()=>!!e.querySelector(".cmp-accordion-item-content.cmp-active")),10,50);const t=e.querySelector(".cmp-accordion-item-content.cmp-active");t.querySelectorAll(".cmp-toggle-actions .cmp-toggle-deny:not(.cmp-toggle-deny--active)").forEach((e=>e.click())),t.querySelectorAll(".cmp-toggle-actions .cmp-toggle-checkbox:not(.cmp-toggle-checkbox--active)").forEach((e=>e.click()))}return await this.click(".cmp-main-button:not(.cmp-main-button--primary)"),!0}async optIn(){return this.waitForThenClick(".cmp-main-button.cmp-main-button--primary")}async test(){return document.cookie.includes("cmp-data=0")}},class extends d{constructor(){super(...arguments),this.name="tiktok.com",this.runContext={urlPattern:"tiktok"}}get hasSelfTest(){return!0}get isIntermediate(){return!1}get isCosmetic(){return!1}getShadowRoot(){const e=document.querySelector("tiktok-cookie-banner");return e?e.shadowRoot:null}async detectCmp(){return this.elementExists("tiktok-cookie-banner")}async detectPopup(){return _(this.getShadowRoot().querySelector(".tiktok-cookie-banner"))}async optOut(){const e=this.autoconsent.config.logs,t=this.getShadowRoot().querySelector(".button-wrapper button:first-child");return t?(e.rulesteps&&console.log("[clicking]",t),t.click(),!0):(e.errors&&console.log("no decline button found"),!1)}async optIn(){const e=this.autoconsent.config.logs,t=this.getShadowRoot().querySelector(".button-wrapper button:last-child");return t?(e.rulesteps&&console.log("[clicking]",t),t.click(),!0):(e.errors&&console.log("no accept button found"),!1)}async test(){const e=document.cookie.match(/cookie-consent=([^;]+)/);if(!e)return!1;const t=JSON.parse(decodeURIComponent(e[1]));return Object.values(t).every((e=>"boolean"!=typeof e||!1===e))}},class extends d{constructor(){super(...arguments),this.runContext={urlPattern:"^https://(www\\.)?airbnb\\.[^/]+/"},this.prehideSelectors=["div[data-testid=main-cookies-banner-container]",'div:has(> div:first-child):has(> div:last-child):has(> section [data-testid="strictly-necessary-cookies"])']}get hasSelfTest(){return!0}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){return this.elementExists("div[data-testid=main-cookies-banner-container]")}async detectPopup(){return this.elementVisible("div[data-testid=main-cookies-banner-container","any")}async optOut(){let e;for(await this.waitForThenClick("div[data-testid=main-cookies-banner-container] button._snbhip0");e=document.querySelector("[data-testid=modal-container] button[aria-checked=true]:not([disabled])");)e.click();return this.waitForThenClick("button[data-testid=save-btn]")}async optIn(){return this.waitForThenClick("div[data-testid=main-cookies-banner-container] button._148dgdpk")}async test(){return await b((()=>!!document.cookie.match("OptanonAlertBoxClosed")),20,200)}},class extends d{constructor(){super(...arguments),this.name="tumblr-com",this.runContext={urlPattern:"^https://(www\\.)?tumblr\\.com/"}}get hasSelfTest(){return!1}get isIntermediate(){return!1}get isCosmetic(){return!1}get prehideSelectors(){return["#cmp-app-container"]}async detectCmp(){return this.elementExists("#cmp-app-container")}async detectPopup(){return this.elementVisible("#cmp-app-container","any")}async optOut(){let e=document.querySelector("#cmp-app-container iframe"),t=e.contentDocument?.querySelector(".cmp-components-button.is-secondary");return!!t&&(t.click(),await b((()=>{const e=document.querySelector("#cmp-app-container iframe");return!!e.contentDocument?.querySelector(".cmp__dialog input")}),5,500),e=document.querySelector("#cmp-app-container iframe"),t=e.contentDocument?.querySelector(".cmp-components-button.is-secondary"),!!t&&(t.click(),!0))}async optIn(){const e=document.querySelector("#cmp-app-container iframe").contentDocument.querySelector(".cmp-components-button.is-primary");return!!e&&(e.click(),!0)}}],v=class{constructor(e){this.autoconsentInstance=e}click(e,t=!1){const o=this.elementSelector(e);return this.autoconsentInstance.config.logs.rulesteps&&console.log("[click]",e,t,o),o.length>0&&(t?o.forEach((e=>e.click())):o[0].click()),o.length>0}elementExists(e){return this.elementSelector(e).length>0}elementVisible(e,t){const o=this.elementSelector(e),c=new Array(o.length);return o.forEach(((e,t)=>{c[t]=_(e)})),"none"===t?c.every((e=>!e)):0!==c.length&&("any"===t?c.some((e=>e)):c.every((e=>e)))}waitForElement(e,t=1e4){const o=Math.ceil(t/200);return this.autoconsentInstance.config.logs.rulesteps&&console.log("[waitForElement]",e),b((()=>this.elementSelector(e).length>0),o,200)}waitForVisible(e,t=1e4,o="any"){return b((()=>this.elementVisible(e,o)),Math.ceil(t/200),200)}async waitForThenClick(e,t=1e4,o=!1){return await this.waitForElement(e,t),this.click(e,o)}wait(e){return new Promise((t=>{setTimeout((()=>{t(!0)}),e)}))}hide(e,t){return k(h(),e,t)}prehide(e){const t=h("autoconsent-prehide");return this.autoconsentInstance.config.logs.lifecycle&&console.log("[prehide]",t,location.href),k(t,e,"opacity")}undoPrehide(){const e=h("autoconsent-prehide");return this.autoconsentInstance.config.logs.lifecycle&&console.log("[undoprehide]",e,location.href),e&&e.remove(),!!e}querySingleReplySelector(e,t=document){if(e.startsWith("aria/"))return[];if(e.startsWith("xpath/")){const o=e.slice(6),c=document.evaluate(o,t,null,XPathResult.ANY_TYPE,null);let i=null;const n=[];for(;i=c.iterateNext();)n.push(i);return n}return e.startsWith("text/")||e.startsWith("pierce/")?[]:t.shadowRoot?Array.from(t.shadowRoot.querySelectorAll(e)):Array.from(t.querySelectorAll(e))}querySelectorChain(e){let t,o=document;for(const c of e){if(t=this.querySingleReplySelector(c,o),0===t.length)return[];o=t[0]}return t}elementSelector(e){return"string"==typeof e?this.querySingleReplySelector(e):this.querySelectorChain(e)}};var f=[{name:"192.com",detectCmp:[{exists:".ont-cookies"}],detectPopup:[{visible:".ont-cookies"}],optIn:[{click:".ont-btn-main.ont-cookies-btn.js-ont-btn-ok2"}],optOut:[{click:".ont-cookes-btn-manage"},{click:".ont-btn-main.ont-cookies-btn.js-ont-btn-choose"}],test:[{eval:"EVAL_ONENINETWO_0"}]},{name:"1password-com",cosmetic:!0,prehideSelectors:['footer #footer-root [aria-label="Cookie Consent"]'],detectCmp:[{exists:'footer #footer-root [aria-label="Cookie Consent"]'}],detectPopup:[{visible:'footer #footer-root [aria-label="Cookie Consent"]'}],optIn:[{click:'footer #footer-root [aria-label="Cookie Consent"] button'}],optOut:[{hide:'footer #footer-root [aria-label="Cookie Consent"]'}]},{name:"abconcerts.be",vendorUrl:"https://unknown",intermediate:!1,prehideSelectors:["dialog.cookie-consent"],detectCmp:[{exists:"dialog.cookie-consent form.cookie-consent__form"}],detectPopup:[{visible:"dialog.cookie-consent form.cookie-consent__form"}],optIn:[{waitForThenClick:"dialog.cookie-consent form.cookie-consent__form button[value=yes]"}],optOut:[{if:{exists:"dialog.cookie-consent form.cookie-consent__form button[value=no]"},then:[{click:"dialog.cookie-consent form.cookie-consent__form button[value=no]"}],else:[{click:"dialog.cookie-consent form.cookie-consent__form button.cookie-consent__options-toggle"},{waitForThenClick:'dialog.cookie-consent form.cookie-consent__form button[value="save_options"]'}]}]},{name:"acris",prehideSelectors:["div.acris-cookie-consent"],detectCmp:[{exists:"[data-acris-cookie-consent]"}],detectPopup:[{visible:".acris-cookie-consent.is--modal"}],optIn:[{waitForVisible:"#ccConsentAcceptAllButton",check:"any"},{wait:500},{waitForThenClick:"#ccConsentAcceptAllButton"}],optOut:[{waitForVisible:"#ccAcceptOnlyFunctional",check:"any"},{wait:500},{waitForThenClick:"#ccAcceptOnlyFunctional"}]},{name:"activobank.pt",runContext:{urlPattern:"^https://(www\\.)?activobank\\.pt"},prehideSelectors:["aside#cookies,.overlay-cookies"],detectCmp:[{exists:"#cookies .cookies-btn"}],detectPopup:[{visible:"#cookies #submitCookies"}],optIn:[{waitForThenClick:"#cookies #submitCookies"}],optOut:[{waitForThenClick:"#cookies #rejectCookies"}]},{name:"Adroll",prehideSelectors:["#adroll_consent_container"],detectCmp:[{exists:"#adroll_consent_container"}],detectPopup:[{visible:"#adroll_consent_container"}],optIn:[{waitForThenClick:"#adroll_consent_accept"}],optOut:[{waitForThenClick:"#adroll_consent_reject"}],test:[{eval:"EVAL_ADROLL_0"}]},{name:"affinity.serif.com",detectCmp:[{exists:".c-cookie-banner button[data-qa='allow-all-cookies']"}],detectPopup:[{visible:".c-cookie-banner"}],optIn:[{click:'button[data-qa="allow-all-cookies"]'}],optOut:[{click:'button[data-qa="manage-cookies"]'},{waitFor:'.c-cookie-banner ~ [role="dialog"]'},{waitForThenClick:'.c-cookie-banner ~ [role="dialog"] input[type="checkbox"][value="true"]',all:!0},{click:'.c-cookie-banner ~ [role="dialog"] .c-modal__action button'}],test:[{wait:500},{eval:"EVAL_AFFINITY_SERIF_COM_0"}]},{name:"agolde.com",cosmetic:!0,prehideSelectors:["#modal-1 div[data-micromodal-close]"],detectCmp:[{exists:"#modal-1 div[aria-labelledby=modal-1-title]"}],detectPopup:[{exists:"#modal-1 div[data-micromodal-close]"}],optIn:[{click:'button[aria-label="Close modal"]'}],optOut:[{hide:"#modal-1 div[data-micromodal-close]"}]},{name:"aliexpress",vendorUrl:"https://aliexpress.com/",runContext:{urlPattern:"^https://.*\\.aliexpress\\.com/"},prehideSelectors:["#gdpr-new-container"],detectCmp:[{exists:"#gdpr-new-container"}],detectPopup:[{visible:"#gdpr-new-container"}],optIn:[{waitForThenClick:"#gdpr-new-container .btn-accept"}],optOut:[{waitForThenClick:"#gdpr-new-container .btn-more"},{waitFor:"#gdpr-new-container .gdpr-dialog-switcher"},{click:"#gdpr-new-container .switcher-on",all:!0,optional:!0},{click:"#gdpr-new-container .btn-save"}]},{name:"almacmp",prehideSelectors:["#alma-cmpv2-container"],detectCmp:[{exists:"#alma-cmpv2-container"}],detectPopup:[{visible:"#alma-cmpv2-container #almacmp-modal-layer1"}],optIn:[{waitForThenClick:"#alma-cmpv2-container #almacmp-modal-layer1 #almacmp-modalConfirmBtn"}],optOut:[{waitForThenClick:"#alma-cmpv2-container #almacmp-modal-layer1 #almacmp-modalSettingBtn"},{waitFor:"#alma-cmpv2-container #almacmp-modal-layer2"},{waitForThenClick:"#alma-cmpv2-container #almacmp-modal-layer2 #almacmp-reject-all-layer2"}],test:[{eval:"EVAL_ALMACMP_0"}]},{name:"altium.com",cosmetic:!0,prehideSelectors:[".altium-privacy-bar"],detectCmp:[{exists:".altium-privacy-bar"}],detectPopup:[{exists:".altium-privacy-bar"}],optIn:[{click:"a.altium-privacy-bar__btn"}],optOut:[{hide:".altium-privacy-bar"}]},{name:"amazon.com",prehideSelectors:['span[data-action="sp-cc"][data-sp-cc*="rejectAllAction"]'],detectCmp:[{exists:'span[data-action="sp-cc"][data-sp-cc*="rejectAllAction"]'}],detectPopup:[{visible:'span[data-action="sp-cc"][data-sp-cc*="rejectAllAction"]'}],optIn:[{waitForVisible:"#sp-cc-accept"},{wait:500},{click:"#sp-cc-accept"}],optOut:[{waitForVisible:"#sp-cc-rejectall-link"},{wait:500},{click:"#sp-cc-rejectall-link"}]},{name:"aquasana.com",prehideSelectors:["#consent-tracking"],detectCmp:[{exists:"#consent-tracking"}],detectPopup:[{exists:"#consent-tracking"}],optIn:[{waitForThenClick:"#consent-tracking .affirm.btn"}],optOut:[{if:{exists:"#consent-tracking .decline.btn"},then:[{click:"#consent-tracking .decline.btn"}],else:[{hide:"#consent-tracking"}]}]},{name:"arbeitsagentur",vendorUrl:"https://www.arbeitsagentur.de/",prehideSelectors:[".modal-open bahf-cookie-disclaimer-dpl3"],detectCmp:[{exists:"bahf-cookie-disclaimer-dpl3"}],detectPopup:[{visible:"bahf-cookie-disclaimer-dpl3"}],optIn:[{waitForThenClick:["bahf-cookie-disclaimer-dpl3","bahf-cd-modal-dpl3 .ba-btn-primary"]}],optOut:[{waitForThenClick:["bahf-cookie-disclaimer-dpl3","bahf-cd-modal-dpl3 .ba-btn-contrast"]}],test:[{eval:"EVAL_ARBEITSAGENTUR_TEST"}]},{name:"asus",vendorUrl:"https://www.asus.com/",runContext:{urlPattern:"^https://www\\.asus\\.com/"},prehideSelectors:["#cookie-policy-info,#cookie-policy-info-bg"],detectCmp:[{exists:"#cookie-policy-info"}],detectPopup:[{visible:"#cookie-policy-info"}],optIn:[{waitForThenClick:'#cookie-policy-info [data-agree="Accept Cookies"]'}],optOut:[{if:{exists:"#cookie-policy-info .btn-reject"},then:[{waitForThenClick:"#cookie-policy-info .btn-reject"}],else:[{waitForThenClick:"#cookie-policy-info .btn-setting"},{waitForThenClick:'#cookie-policy-lightbox-wrapper [data-agree="Save Settings"]'}]}]},{name:"athlinks-com",runContext:{urlPattern:"^https://(www\\.)?athlinks\\.com/"},cosmetic:!0,prehideSelectors:["#footer-container ~ div"],detectCmp:[{exists:"#footer-container ~ div"}],detectPopup:[{visible:"#footer-container > div"}],optIn:[{click:"#footer-container ~ div button"}],optOut:[{hide:"#footer-container ~ div"}]},{name:"ausopen.com",cosmetic:!0,detectCmp:[{exists:".gdpr-popup__message"}],detectPopup:[{visible:".gdpr-popup__message"}],optOut:[{hide:".gdpr-popup__message"}],optIn:[{click:".gdpr-popup__message button"}]},{name:"automattic-cmp-optout",prehideSelectors:['form[class*="cookie-banner"][method="post"]'],detectCmp:[{exists:'form[class*="cookie-banner"][method="post"]'}],detectPopup:[{visible:'form[class*="cookie-banner"][method="post"]'}],optIn:[{click:'a[class*="accept-all-button"]'}],optOut:[{click:'form[class*="cookie-banner"] div[class*="simple-options"] a[class*="customize-button"]'},{waitForThenClick:"input[type=checkbox][checked]:not([disabled])",all:!0},{click:'a[class*="accept-selection-button"]'}]},{name:"aws.amazon.com",prehideSelectors:["#awsccc-cb-content","#awsccc-cs-container","#awsccc-cs-modalOverlay","#awsccc-cs-container-inner"],detectCmp:[{exists:"#awsccc-cb-content"}],detectPopup:[{visible:"#awsccc-cb-content"}],optIn:[{click:"button[data-id=awsccc-cb-btn-accept"}],optOut:[{click:"button[data-id=awsccc-cb-btn-customize]"},{waitFor:"input[aria-checked]"},{click:"input[aria-checked=true]",all:!0,optional:!0},{click:"button[data-id=awsccc-cs-btn-save]"}]},{name:"axeptio",prehideSelectors:[".axeptio_widget"],detectCmp:[{exists:".axeptio_widget"}],detectPopup:[{visible:".axeptio_widget"}],optIn:[{waitFor:".axeptio-widget--open"},{click:"button#axeptio_btn_acceptAll"}],optOut:[{waitFor:".axeptio-widget--open"},{click:"button#axeptio_btn_dismiss"}],test:[{eval:"EVAL_AXEPTIO_0"}]},{name:"baden-wuerttemberg.de",prehideSelectors:[".cookie-alert.t-dark"],cosmetic:!0,detectCmp:[{exists:".cookie-alert.t-dark"}],detectPopup:[{visible:".cookie-alert.t-dark"}],optIn:[{click:".cookie-alert__form input:not([disabled]):not([checked])"},{click:".cookie-alert__button button"}],optOut:[{hide:".cookie-alert.t-dark"}]},{name:"bahn-de",vendorUrl:"https://www.bahn.de/",cosmetic:!1,runContext:{main:!0,frame:!1,urlPattern:"^https://(www\\.)?bahn\\.de/"},intermediate:!1,prehideSelectors:[],detectCmp:[{exists:["body > div:first-child","#consent-layer"]}],detectPopup:[{visible:["body > div:first-child","#consent-layer"]}],optIn:[{waitForThenClick:["body > div:first-child","#consent-layer .js-accept-all-cookies"]}],optOut:[{waitForThenClick:["body > div:first-child","#consent-layer .js-accept-essential-cookies"]}],test:[{eval:"EVAL_BAHN_TEST"}]},{name:"bbb.org",runContext:{urlPattern:"^https://www\\.bbb\\.org/"},cosmetic:!0,prehideSelectors:['div[aria-label="use of cookies on bbb.org"]'],detectCmp:[{exists:'div[aria-label="use of cookies on bbb.org"]'}],detectPopup:[{visible:'div[aria-label="use of cookies on bbb.org"]'}],optIn:[{click:'div[aria-label="use of cookies on bbb.org"] button.bds-button-unstyled span.visually-hidden'}],optOut:[{hide:'div[aria-label="use of cookies on bbb.org"]'}]},{name:"bing.com",prehideSelectors:["#bnp_container"],detectCmp:[{exists:"#bnp_cookie_banner"}],detectPopup:[{visible:"#bnp_cookie_banner"}],optIn:[{click:"#bnp_btn_accept"}],optOut:[{click:"#bnp_btn_preference"},{click:"#mcp_savesettings"}],test:[{eval:"EVAL_BING_0"}]},{name:"blocksy",vendorUrl:"https://creativethemes.com/blocksy/docs/extensions/cookies-consent/",cosmetic:!1,runContext:{main:!0,frame:!1},intermediate:!1,prehideSelectors:[".cookie-notification"],detectCmp:[{exists:"#blocksy-ext-cookies-consent-styles-css"}],detectPopup:[{visible:".cookie-notification"}],optIn:[{click:".cookie-notification .ct-cookies-decline-button"}],optOut:[{waitForThenClick:".cookie-notification .ct-cookies-decline-button"}],test:[{eval:"EVAL_BLOCKSY_0"}]},{name:"borlabs",detectCmp:[{exists:"._brlbs-block-content"}],detectPopup:[{visible:"._brlbs-bar-wrap,._brlbs-box-wrap"}],optIn:[{click:"a[data-cookie-accept-all]"}],optOut:[{click:"a[data-cookie-individual]"},{waitForVisible:".cookie-preference"},{click:"input[data-borlabs-cookie-checkbox]:checked",all:!0,optional:!0},{click:"#CookiePrefSave"},{wait:500}],prehideSelectors:["#BorlabsCookieBox"],test:[{eval:"EVAL_BORLABS_0"}]},{name:"bundesregierung.de",prehideSelectors:[".bpa-cookie-banner"],detectCmp:[{exists:".bpa-cookie-banner"}],detectPopup:[{visible:".bpa-cookie-banner .bpa-module-full-hero"}],optIn:[{click:".bpa-accept-all-button"}],optOut:[{wait:500,comment:"click is not immediately recognized"},{waitForThenClick:".bpa-close-button"}],test:[{eval:"EVAL_BUNDESREGIERUNG_DE_0"}]},{name:"burpee.com",cosmetic:!0,prehideSelectors:["#notice-cookie-block"],detectCmp:[{exists:"#notice-cookie-block"}],detectPopup:[{exists:"#html-body #notice-cookie-block"}],optIn:[{click:"#btn-cookie-allow"}],optOut:[{hide:"#html-body #notice-cookie-block, #notice-cookie"}]},{name:"canva.com",prehideSelectors:['div[role="dialog"] a[data-anchor-id="cookie-policy"]'],detectCmp:[{exists:'div[role="dialog"] a[data-anchor-id="cookie-policy"]'}],detectPopup:[{exists:'div[role="dialog"] a[data-anchor-id="cookie-policy"]'}],optIn:[{click:'div[role="dialog"] button:nth-child(1)'}],optOut:[{if:{exists:'div[role="dialog"] button:nth-child(3)'},then:[{click:'div[role="dialog"] button:nth-child(2)'}],else:[{click:'div[role="dialog"] button:nth-child(2)'},{waitFor:'div[role="dialog"] a[data-anchor-id="cookie-policy"]'},{waitFor:'div[role="dialog"] button[role=switch]'},{click:'div[role="dialog"] button:nth-child(2):not([role])'},{click:'div[role="dialog"] div:last-child button:only-child'}]}],test:[{eval:"EVAL_CANVA_0"}]},{name:"canyon.com",runContext:{urlPattern:"^https://www\\.canyon\\.com/"},prehideSelectors:["div.modal.cookiesModal.is-open"],detectCmp:[{exists:"div.modal.cookiesModal.is-open"}],detectPopup:[{visible:"div.modal.cookiesModal.is-open"}],optIn:[{click:'div.cookiesModal__buttonWrapper > button[data-closecause="close-by-submit"]'}],optOut:[{click:'div.cookiesModal__buttonWrapper > button[data-closecause="close-by-manage-cookies"]'},{waitForThenClick:"button#js-manage-data-privacy-save-button"}]},{name:"cc-banner-springer",prehideSelectors:[".cc-banner[data-cc-banner]"],detectCmp:[{exists:".cc-banner[data-cc-banner]"}],detectPopup:[{visible:".cc-banner[data-cc-banner]"}],optIn:[{waitForThenClick:".cc-banner[data-cc-banner] button[data-cc-action=accept]"}],optOut:[{if:{exists:".cc-banner[data-cc-banner] button[data-cc-action=reject]"},then:[{click:".cc-banner[data-cc-banner] button[data-cc-action=reject]"}],else:[{waitForThenClick:".cc-banner[data-cc-banner] button[data-cc-action=preferences]"},{waitFor:".cc-preferences[data-cc-preferences]"},{click:".cc-preferences[data-cc-preferences] input[type=radio][data-cc-action=toggle-category][value=off]",all:!0,optional:!0},{if:{exists:".cc-preferences[data-cc-preferences] button[data-cc-action=reject]"},then:[{click:".cc-preferences[data-cc-preferences] button[data-cc-action=reject]"}],else:[{click:".cc-preferences[data-cc-preferences] button[data-cc-action=save]"}]}]}],test:[{eval:"EVAL_CC_BANNER2_0"}]},{name:"cc_banner",cosmetic:!0,prehideSelectors:[".cc_banner-wrapper"],detectCmp:[{exists:".cc_banner-wrapper"}],detectPopup:[{visible:".cc_banner"}],optIn:[{click:".cc_btn_accept_all"}],optOut:[{hide:".cc_banner-wrapper"}]},{name:"check24-partnerprogramm-de",prehideSelectors:["[data-modal-content]:has([data-toggle-target^='cookie'])"],detectCmp:[{exists:"[data-toggle-target^='cookie']"}],detectPopup:[{visible:"[data-toggle-target^='cookie']",check:"any"}],optIn:[{waitForThenClick:"[data-cookie-accept-all]"}],optOut:[{waitForThenClick:"[data-cookie-dismiss-all]"}]},{name:"ciaopeople.it",prehideSelectors:["#cp-gdpr-choices"],detectCmp:[{exists:"#cp-gdpr-choices"}],detectPopup:[{visible:"#cp-gdpr-choices"}],optIn:[{waitForThenClick:".gdpr-btm__right > button:nth-child(2)"}],optOut:[{waitForThenClick:".gdpr-top-content > button"},{waitFor:".gdpr-top-back"},{waitForThenClick:".gdpr-btm__right > button:nth-child(1)"}],test:[{visible:"#cp-gdpr-choices",check:"none"}]},{vendorUrl:"https://www.civicuk.com/cookie-control/",name:"civic-cookie-control",prehideSelectors:["#ccc-module,#ccc-overlay"],detectCmp:[{exists:"#ccc-module"}],detectPopup:[{visible:"#ccc"},{visible:"#ccc-module"}],optOut:[{click:"#ccc-reject-settings"}],optIn:[{click:"#ccc-recommended-settings"}]},{name:"click.io",prehideSelectors:["#cl-consent"],detectCmp:[{exists:"#cl-consent"}],detectPopup:[{visible:"#cl-consent"}],optIn:[{waitForThenClick:'#cl-consent [data-role="b_agree"]'}],optOut:[{waitFor:'#cl-consent [data-role="b_options"]'},{wait:500},{click:'#cl-consent [data-role="b_options"]'},{waitFor:'.cl-consent-popup.cl-consent-visible [data-role="alloff"]'},{click:'.cl-consent-popup.cl-consent-visible [data-role="alloff"]',all:!0},{click:'[data-role="b_save"]'}],test:[{eval:"EVAL_CLICKIO_0",comment:"TODO: this only checks if we interacted at all"}]},{name:"clinch",intermediate:!1,runContext:{frame:!1,main:!0},prehideSelectors:[".consent-modal[role=dialog]"],detectCmp:[{exists:".consent-modal[role=dialog]"}],detectPopup:[{visible:".consent-modal[role=dialog]"}],optIn:[{click:"#consent_agree"}],optOut:[{if:{exists:"#consent_reject"},then:[{click:"#consent_reject"}],else:[{click:"#manage_cookie_preferences"},{click:"#cookie_consent_preferences input:checked",all:!0,optional:!0},{click:"#consent_save"}]}],test:[{eval:"EVAL_CLINCH_0"}]},{name:"clustrmaps.com",runContext:{urlPattern:"^https://(www\\.)?clustrmaps\\.com/"},cosmetic:!0,prehideSelectors:["#gdpr-cookie-message"],detectCmp:[{exists:"#gdpr-cookie-message"}],detectPopup:[{visible:"#gdpr-cookie-message"}],optIn:[{click:"button#gdpr-cookie-accept"}],optOut:[{hide:"#gdpr-cookie-message"}]},{name:"coinbase",intermediate:!1,runContext:{frame:!0,main:!0,urlPattern:"^https://(www|help)\\.coinbase\\.com"},prehideSelectors:[],detectCmp:[{exists:"div[class^=CookieBannerContent__Container]"}],detectPopup:[{visible:"div[class^=CookieBannerContent__Container]"}],optIn:[{click:"div[class^=CookieBannerContent__CTA] :nth-last-child(1)"}],optOut:[{click:"button[class^=CookieBannerContent__Settings]"},{click:"div[class^=CookiePreferencesModal__CategoryContainer] input:checked",all:!0,optional:!0},{click:"div[class^=CookiePreferencesModal__ButtonContainer] > button"}],test:[{eval:"EVAL_COINBASE_0"}]},{name:"Complianz banner",prehideSelectors:["#cmplz-cookiebanner-container"],detectCmp:[{exists:"#cmplz-cookiebanner-container .cmplz-cookiebanner"}],detectPopup:[{visible:"#cmplz-cookiebanner-container .cmplz-cookiebanner",check:"any"}],optIn:[{waitForThenClick:".cmplz-cookiebanner .cmplz-accept"}],optOut:[{waitForThenClick:".cmplz-cookiebanner .cmplz-deny"}],test:[{eval:"EVAL_COMPLIANZ_BANNER_0"}]},{name:"Complianz categories",prehideSelectors:['.cc-type-categories[aria-describedby="cookieconsent:desc"]'],detectCmp:[{exists:'.cc-type-categories[aria-describedby="cookieconsent:desc"]'}],detectPopup:[{visible:'.cc-type-categories[aria-describedby="cookieconsent:desc"]'}],optIn:[{any:[{click:".cc-accept-all"},{click:".cc-allow-all"},{click:".cc-allow"},{click:".cc-dismiss"}]}],optOut:[{if:{exists:'.cc-type-categories[aria-describedby="cookieconsent:desc"] .cc-dismiss'},then:[{click:".cc-dismiss"}],else:[{click:".cc-type-categories input[type=checkbox]:not([disabled]):checked",all:!0,optional:!0},{click:".cc-save"}]}]},{name:"Complianz notice",prehideSelectors:['.cc-type-info[aria-describedby="cookieconsent:desc"]'],cosmetic:!0,detectCmp:[{exists:'.cc-type-info[aria-describedby="cookieconsent:desc"] .cc-compliance .cc-btn'}],detectPopup:[{visible:'.cc-type-info[aria-describedby="cookieconsent:desc"] .cc-compliance .cc-btn'}],optIn:[{click:".cc-accept-all",optional:!0},{click:".cc-allow",optional:!0},{click:".cc-dismiss",optional:!0}],optOut:[{if:{exists:".cc-deny"},then:[{click:".cc-deny"}],else:[{hide:'[aria-describedby="cookieconsent:desc"]'}]}]},{name:"Complianz opt-both",prehideSelectors:['[aria-describedby="cookieconsent:desc"] .cc-type-opt-both'],detectCmp:[{exists:'[aria-describedby="cookieconsent:desc"] .cc-type-opt-both'}],detectPopup:[{visible:'[aria-describedby="cookieconsent:desc"] .cc-type-opt-both'}],optIn:[{click:".cc-accept-all",optional:!0},{click:".cc-allow",optional:!0},{click:".cc-dismiss",optional:!0}],optOut:[{waitForThenClick:".cc-deny"}]},{name:"Complianz opt-out",prehideSelectors:['[aria-describedby="cookieconsent:desc"].cc-type-opt-out'],detectCmp:[{exists:'[aria-describedby="cookieconsent:desc"].cc-type-opt-out'}],detectPopup:[{visible:'[aria-describedby="cookieconsent:desc"].cc-type-opt-out'}],optIn:[{click:".cc-accept-all",optional:!0},{click:".cc-allow",optional:!0},{click:".cc-dismiss",optional:!0}],optOut:[{if:{exists:".cc-deny"},then:[{click:".cc-deny"}],else:[{if:{exists:".cmp-pref-link"},then:[{click:".cmp-pref-link"},{waitForThenClick:".cmp-body [id*=rejectAll]"},{waitForThenClick:".cmp-body .cmp-save-btn"}]}]}]},{name:"Complianz optin",prehideSelectors:['.cc-type-opt-in[aria-describedby="cookieconsent:desc"]'],detectCmp:[{exists:'.cc-type-opt-in[aria-describedby="cookieconsent:desc"]'}],detectPopup:[{visible:'.cc-type-opt-in[aria-describedby="cookieconsent:desc"]'}],optIn:[{any:[{click:".cc-accept-all"},{click:".cc-allow"},{click:".cc-dismiss"}]}],optOut:[{if:{visible:".cc-deny"},then:[{click:".cc-deny"}],else:[{if:{visible:".cc-settings"},then:[{waitForThenClick:".cc-settings"},{waitForVisible:".cc-settings-view"},{click:".cc-settings-view input[type=checkbox]:not([disabled]):checked",all:!0,optional:!0},{click:".cc-settings-view .cc-btn-accept-selected"}],else:[{click:".cc-dismiss"}]}]}]},{name:"cookie-law-info",prehideSelectors:["#cookie-law-info-bar"],detectCmp:[{exists:"#cookie-law-info-bar"},{eval:"EVAL_COOKIE_LAW_INFO_DETECT"}],detectPopup:[{visible:"#cookie-law-info-bar"}],optIn:[{click:'[data-cli_action="accept_all"]'}],optOut:[{hide:"#cookie-law-info-bar"},{eval:"EVAL_COOKIE_LAW_INFO_0"}],test:[{eval:"EVAL_COOKIE_LAW_INFO_1"}]},{name:"cookie-manager-popup",cosmetic:!1,runContext:{main:!0,frame:!1},intermediate:!1,detectCmp:[{exists:"#notice-cookie-block #allow-functional-cookies, #notice-cookie-block #btn-cookie-settings"}],detectPopup:[{visible:"#notice-cookie-block"}],optIn:[{click:"#btn-cookie-allow"}],optOut:[{if:{exists:"#allow-functional-cookies"},then:[{click:"#allow-functional-cookies"}],else:[{waitForThenClick:"#btn-cookie-settings"},{waitForVisible:".modal-body"},{click:'.modal-body input:checked, .switch[data-switch="on"]',all:!0,optional:!0},{click:'[role="dialog"] .modal-footer button'}]}],prehideSelectors:["#btn-cookie-settings"],test:[{eval:"EVAL_COOKIE_MANAGER_POPUP_0"}]},{name:"cookie-notice",prehideSelectors:["#cookie-notice"],cosmetic:!0,detectCmp:[{visible:"#cookie-notice .cookie-notice-container"}],detectPopup:[{visible:"#cookie-notice"}],optIn:[{click:"#cn-accept-cookie"}],optOut:[{hide:"#cookie-notice"}]},{name:"cookie-script",vendorUrl:"https://cookie-script.com/",prehideSelectors:["#cookiescript_injected"],detectCmp:[{exists:"#cookiescript_injected"}],detectPopup:[{visible:"#cookiescript_injected"}],optOut:[{if:{exists:"#cookiescript_reject"},then:[{wait:100},{click:"#cookiescript_reject"}],else:[{click:"#cookiescript_manage"},{waitForVisible:".cookiescript_fsd_main"},{waitForThenClick:"#cookiescript_reject"}]}],optIn:[{click:"#cookiescript_accept"}]},{name:"cookieacceptbar",vendorUrl:"https://unknown",cosmetic:!0,prehideSelectors:["#cookieAcceptBar.cookieAcceptBar"],detectCmp:[{exists:"#cookieAcceptBar.cookieAcceptBar"}],detectPopup:[{visible:"#cookieAcceptBar.cookieAcceptBar"}],optIn:[{waitForThenClick:"#cookieAcceptBarConfirm"}],optOut:[{hide:"#cookieAcceptBar.cookieAcceptBar"}]},{name:"cookiealert",intermediate:!1,prehideSelectors:[],runContext:{frame:!0,main:!0},detectCmp:[{exists:".cookie-alert-extended"}],detectPopup:[{visible:".cookie-alert-extended-modal"}],optIn:[{click:"button[data-controller='cookie-alert/extended/button/accept']"},{eval:"EVAL_COOKIEALERT_0"}],optOut:[{click:"a[data-controller='cookie-alert/extended/detail-link']"},{click:".cookie-alert-configuration-input:checked",all:!0,optional:!0},{click:"button[data-controller='cookie-alert/extended/button/configuration']"},{eval:"EVAL_COOKIEALERT_0"}],test:[{eval:"EVAL_COOKIEALERT_2"}]},{name:"cookieconsent2",vendorUrl:"https://www.github.com/orestbida/cookieconsent",comment:"supports v2.x.x of the library",prehideSelectors:["#cc--main"],detectCmp:[{exists:"#cc--main"}],detectPopup:[{visible:"#cm"},{exists:"#s-all-bn"}],optIn:[{waitForThenClick:"#s-all-bn"}],optOut:[{waitForThenClick:"#s-rall-bn"}],test:[{eval:"EVAL_COOKIECONSENT2_TEST"}]},{name:"cookieconsent3",vendorUrl:"https://www.github.com/orestbida/cookieconsent",comment:"supports v3.x.x of the library",prehideSelectors:["#cc-main"],detectCmp:[{exists:"#cc-main"}],detectPopup:[{visible:"#cc-main .cm-wrapper"}],optIn:[{waitForThenClick:".cm__btn[data-role=all]"}],optOut:[{waitForThenClick:".cm__btn[data-role=necessary]"}],test:[{eval:"EVAL_COOKIECONSENT3_TEST"}]},{name:"cookiecuttr",vendorUrl:"https://github.com/cdwharton/cookieCuttr",cosmetic:!1,runContext:{main:!0,frame:!1,urlPattern:""},prehideSelectors:[".cc-cookies"],detectCmp:[{exists:".cc-cookies .cc-cookie-accept"}],detectPopup:[{visible:".cc-cookies .cc-cookie-accept"}],optIn:[{waitForThenClick:".cc-cookies .cc-cookie-accept"}],optOut:[{if:{exists:".cc-cookies .cc-cookie-decline"},then:[{click:".cc-cookies .cc-cookie-decline"}],else:[{hide:".cc-cookies"}]}]},{name:"cookiefirst.com",prehideSelectors:["#cookiefirst-root,.cookiefirst-root,[aria-labelledby=cookie-preference-panel-title]"],detectCmp:[{exists:"#cookiefirst-root,.cookiefirst-root"}],detectPopup:[{visible:"#cookiefirst-root,.cookiefirst-root"}],optIn:[{click:"button[data-cookiefirst-action=accept]"}],optOut:[{if:{exists:"button[data-cookiefirst-action=adjust]"},then:[{click:"button[data-cookiefirst-action=adjust]"},{waitForVisible:"[data-cookiefirst-widget=modal]",timeout:1e3},{eval:"EVAL_COOKIEFIRST_1"},{wait:1e3},{click:"button[data-cookiefirst-action=save]"}],else:[{click:"button[data-cookiefirst-action=reject]"}]}],test:[{eval:"EVAL_COOKIEFIRST_0"}]},{name:"Cookie Information Banner",prehideSelectors:["#cookie-information-template-wrapper"],detectCmp:[{exists:"#cookie-information-template-wrapper"}],detectPopup:[{visible:"#cookie-information-template-wrapper"}],optIn:[{eval:"EVAL_COOKIEINFORMATION_1"}],optOut:[{hide:"#cookie-information-template-wrapper",comment:"some templates don't hide the banner automatically"},{eval:"EVAL_COOKIEINFORMATION_0"}],test:[{eval:"EVAL_COOKIEINFORMATION_2"}]},{name:"cookieyes",prehideSelectors:[".cky-overlay,.cky-consent-container"],detectCmp:[{exists:".cky-consent-container"}],detectPopup:[{visible:".cky-consent-container"}],optIn:[{waitForThenClick:".cky-consent-container [data-cky-tag=accept-button]"}],optOut:[{if:{exists:".cky-consent-container [data-cky-tag=reject-button]"},then:[{waitForThenClick:".cky-consent-container [data-cky-tag=reject-button]"}],else:[{if:{exists:".cky-consent-container [data-cky-tag=settings-button]"},then:[{click:".cky-consent-container [data-cky-tag=settings-button]"},{waitFor:".cky-modal-open input[type=checkbox]"},{click:".cky-modal-open input[type=checkbox]:checked",all:!0,optional:!0},{waitForThenClick:".cky-modal [data-cky-tag=detail-save-button]"}],else:[{hide:".cky-consent-container,.cky-overlay"}]}]}],test:[{eval:"EVAL_COOKIEYES_0"}]},{name:"corona-in-zahlen.de",prehideSelectors:[".cookiealert"],detectCmp:[{exists:".cookiealert"}],detectPopup:[{visible:".cookiealert"}],optOut:[{click:".configurecookies"},{click:".confirmcookies"}],optIn:[{click:".acceptcookies"}]},{name:"crossfit-com",cosmetic:!0,prehideSelectors:['body #modal > div > div[class^="_wrapper_"]'],detectCmp:[{exists:'body #modal > div > div[class^="_wrapper_"]'}],detectPopup:[{visible:'body #modal > div > div[class^="_wrapper_"]'}],optIn:[{click:'button[aria-label="accept cookie policy"]'}],optOut:[{hide:'body #modal > div > div[class^="_wrapper_"]'}]},{name:"csu-landtag-de",runContext:{urlPattern:"^https://(www\\.|)?csu-landtag\\.de"},prehideSelectors:["#cookie-disclaimer"],detectCmp:[{exists:"#cookie-disclaimer"}],detectPopup:[{visible:"#cookie-disclaimer"}],optIn:[{click:"#cookieall"}],optOut:[{click:"#cookiesel"}]},{name:"dailymotion-us",cosmetic:!0,prehideSelectors:['div[class*="CookiePopup__desktopContainer"]:has(div[class*="CookiePopup"])'],detectCmp:[{exists:'div[class*="CookiePopup__desktopContainer"]'}],detectPopup:[{visible:'div[class*="CookiePopup__desktopContainer"]'}],optIn:[{click:'div[class*="CookiePopup__desktopContainer"] > button > span'}],optOut:[{hide:'div[class*="CookiePopup__desktopContainer"]'}]},{name:"dailymotion.com",runContext:{urlPattern:"^https://(www\\.)?dailymotion\\.com/"},prehideSelectors:['div[class*="Overlay__container"]:has(div[class*="TCF2Popup"])'],detectCmp:[{exists:'div[class*="TCF2Popup"]'}],detectPopup:[{visible:'[class*="TCF2Popup"] a[href^="https://www.dailymotion.com/legal/cookiemanagement"]'}],optIn:[{waitForThenClick:'button[class*="TCF2Popup__button"]:not([class*="TCF2Popup__personalize"])'}],optOut:[{waitForThenClick:'button[class*="TCF2ContinueWithoutAcceptingButton"]'}],test:[{eval:"EVAL_DAILYMOTION_0"}]},{name:"deepl.com",prehideSelectors:[".dl_cookieBanner_container"],detectCmp:[{exists:".dl_cookieBanner_container"}],detectPopup:[{visible:".dl_cookieBanner_container"}],optOut:[{click:".dl_cookieBanner--buttonSelected"}],optIn:[{click:".dl_cookieBanner--buttonAll"}]},{name:"delta.com",runContext:{urlPattern:"^https://www\\.delta\\.com/"},cosmetic:!0,prehideSelectors:["ngc-cookie-banner"],detectCmp:[{exists:"div.cookie-footer-container"}],detectPopup:[{visible:"div.cookie-footer-container"}],optIn:[{click:" button.cookie-close-icon"}],optOut:[{hide:"div.cookie-footer-container"}]},{name:"dmgmedia-us",prehideSelectors:["#mol-ads-cmp-iframe, div.mol-ads-cmp > form > div"],detectCmp:[{exists:"div.mol-ads-cmp > form > div"}],detectPopup:[{waitForVisible:"div.mol-ads-cmp > form > div"}],optIn:[{waitForThenClick:"button.mol-ads-cmp--btn-primary"}],optOut:[{waitForThenClick:"div.mol-ads-ccpa--message > u > a"},{waitForVisible:".mol-ads-cmp--modal-dialog"},{waitForThenClick:"a.mol-ads-cmp-footer-privacy"},{waitForThenClick:"button.mol-ads-cmp--btn-secondary"}]},{name:"dmgmedia",prehideSelectors:['[data-project="mol-fe-cmp"]'],detectCmp:[{exists:'[data-project="mol-fe-cmp"]'}],detectPopup:[{visible:'[data-project="mol-fe-cmp"]'}],optIn:[{waitForThenClick:'[data-project="mol-fe-cmp"] button[class*=primary]'}],optOut:[{waitForThenClick:'[data-project="mol-fe-cmp"] button[class*=basic]'},{waitForVisible:'[data-project="mol-fe-cmp"] div[class*="tabContent"]'},{waitForThenClick:'[data-project="mol-fe-cmp"] div[class*="toggle"][class*="enabled"]',all:!0},{waitForThenClick:['[data-project="mol-fe-cmp"] [class*=footer]',"xpath///button[contains(., 'Save & Exit')]"]}]},{name:"dndbeyond",vendorUrl:"https://www.dndbeyond.com/",runContext:{urlPattern:"^https://(www\\.)?dndbeyond\\.com/"},prehideSelectors:["[id^=cookie-consent-banner]"],detectCmp:[{exists:"[id^=cookie-consent-banner]"}],detectPopup:[{visible:"[id^=cookie-consent-banner]"}],optIn:[{waitForThenClick:"#cookie-consent-granted"}],optOut:[{waitForThenClick:"#cookie-consent-denied"}],test:[{eval:"EVAL_DNDBEYOND_TEST"}]},{name:"dpgmedia-nl",prehideSelectors:["#pg-shadow-host"],detectCmp:[{exists:"#pg-shadow-host"}],detectPopup:[{visible:["#pg-shadow-host","#pg-modal"]}],optIn:[{waitForThenClick:["#pg-shadow-host","#pg-accept-btn"]}],optOut:[{waitForThenClick:["#pg-shadow-host","#pg-configure-btn"]},{waitForThenClick:["#pg-shadow-host","#pg-reject-btn"]}]},{name:"Drupal",detectCmp:[{exists:"#drupalorg-crosssite-gdpr"}],detectPopup:[{visible:"#drupalorg-crosssite-gdpr"}],optOut:[{click:".no"}],optIn:[{click:".yes"}]},{name:"WP DSGVO Tools",link:"https://wordpress.org/plugins/shapepress-dsgvo/",prehideSelectors:[".sp-dsgvo"],cosmetic:!0,detectCmp:[{exists:".sp-dsgvo.sp-dsgvo-popup-overlay"}],detectPopup:[{visible:".sp-dsgvo.sp-dsgvo-popup-overlay",check:"any"}],optIn:[{click:".sp-dsgvo-privacy-btn-accept-all",all:!0}],optOut:[{hide:".sp-dsgvo.sp-dsgvo-popup-overlay"}],test:[{eval:"EVAL_DSGVO_0"}]},{name:"dunelm.com",prehideSelectors:["div[data-testid=cookie-consent-modal-backdrop]"],detectCmp:[{exists:"div[data-testid=cookie-consent-message-contents]"}],detectPopup:[{visible:"div[data-testid=cookie-consent-message-contents]"}],optIn:[{click:'[data-testid="cookie-consent-allow-all"]'}],optOut:[{click:"button[data-testid=cookie-consent-adjust-settings]"},{click:"button[data-testid=cookie-consent-preferences-save]"}],test:[{eval:"EVAL_DUNELM_0"}]},{name:"ebay",vendorUrl:"https://ebay.com",cosmetic:!1,runContext:{main:!0,frame:!1,urlPattern:"^https://(www\\.)?ebay\\.([.a-z]+)/"},prehideSelectors:["#gdpr-banner"],detectCmp:[{exists:"#gdpr-banner"}],detectPopup:[{visible:"#gdpr-banner"}],optIn:[{waitForThenClick:"#gdpr-banner-accept"}],optOut:[{waitForThenClick:"#gdpr-banner-decline"}]},{name:"ecosia",vendorUrl:"https://www.ecosia.org/",runContext:{urlPattern:"^https://www\\.ecosia\\.org/"},prehideSelectors:[".cookie-wrapper"],detectCmp:[{exists:".cookie-wrapper > .cookie-notice"}],detectPopup:[{visible:".cookie-wrapper > .cookie-notice"}],optIn:[{waitForThenClick:"[data-test-id=cookie-notice-accept]"}],optOut:[{waitForThenClick:"[data-test-id=cookie-notice-reject]"}]},{name:"Ensighten ensModal",prehideSelectors:[".ensModal"],detectCmp:[{exists:".ensModal"}],detectPopup:[{visible:"#ensModalWrapper[style*=block]"}],optIn:[{waitForThenClick:"#modalAcceptButton"}],optOut:[{wait:500},{visible:"#ensModalWrapper[style*=block]"},{waitForThenClick:".ensCheckbox:checked",all:!0},{waitForThenClick:"#ensSave"}]},{name:"Ensighten ensNotifyBanner",prehideSelectors:["#ensNotifyBanner"],detectCmp:[{exists:"#ensNotifyBanner"}],detectPopup:[{visible:"#ensNotifyBanner[style*=block]"}],optIn:[{waitForThenClick:"#ensCloseBanner"}],optOut:[{wait:500},{visible:"#ensNotifyBanner[style*=block]"},{waitForThenClick:"#ensRejectAll,#rejectAll,#ensRejectBanner,.rejectAll"}]},{name:"espace-personnel.agirc-arrco.fr",runContext:{urlPattern:"^https://espace-personnel\\.agirc-arrco\\.fr/"},prehideSelectors:[".cdk-overlay-container"],detectCmp:[{exists:".cdk-overlay-container app-esaa-cookie-component"}],detectPopup:[{visible:".cdk-overlay-container app-esaa-cookie-component"}],optIn:[{waitForThenClick:".btn-cookie-accepter"}],optOut:[{waitForThenClick:".btn-cookie-refuser"}]},{name:"etsy",prehideSelectors:["#gdpr-single-choice-overlay","#gdpr-privacy-settings"],detectCmp:[{exists:"#gdpr-single-choice-overlay"}],detectPopup:[{visible:"#gdpr-single-choice-overlay"}],optOut:[{click:"button[data-gdpr-open-full-settings]"},{waitForVisible:".gdpr-overlay-body input",timeout:3e3},{wait:1e3},{eval:"EVAL_ETSY_0"},{eval:"EVAL_ETSY_1"}],optIn:[{click:"button[data-gdpr-single-choice-accept]"}]},{name:"eu-cookie-compliance-banner",detectCmp:[{exists:"body.eu-cookie-compliance-popup-open"}],detectPopup:[{exists:"body.eu-cookie-compliance-popup-open"}],optIn:[{click:".agree-button"}],optOut:[{if:{visible:".decline-button,.eu-cookie-compliance-save-preferences-button"},then:[{click:".decline-button,.eu-cookie-compliance-save-preferences-button"}]},{hide:".eu-cookie-compliance-banner-info, #sliding-popup"}],test:[{eval:"EVAL_EU_COOKIE_COMPLIANCE_0"}]},{name:"EU Cookie Law",prehideSelectors:[".pea_cook_wrapper,.pea_cook_more_info_popover"],cosmetic:!0,detectCmp:[{exists:".pea_cook_wrapper"}],detectPopup:[{wait:500},{visible:".pea_cook_wrapper"}],optIn:[{click:"#pea_cook_btn"}],optOut:[{hide:".pea_cook_wrapper"}],test:[{eval:"EVAL_EU_COOKIE_LAW_0"}]},{name:"europa-eu",vendorUrl:"https://ec.europa.eu/",runContext:{urlPattern:"^https://[^/]*europa\\.eu/"},prehideSelectors:["#cookie-consent-banner"],detectCmp:[{exists:".cck-container"}],detectPopup:[{visible:".cck-container"}],optIn:[{waitForThenClick:'.cck-actions-button[href="#accept"]'}],optOut:[{waitForThenClick:'.cck-actions-button[href="#refuse"]',hide:".cck-container"}]},{name:"EZoic",prehideSelectors:["#ez-cookie-dialog-wrapper"],detectCmp:[{exists:"#ez-cookie-dialog-wrapper"}],detectPopup:[{visible:"#ez-cookie-dialog-wrapper"}],optIn:[{click:"#ez-accept-all",optional:!0},{eval:"EVAL_EZOIC_0",optional:!0}],optOut:[{wait:500},{click:"#ez-manage-settings"},{waitFor:"#ez-cookie-dialog input[type=checkbox]"},{click:"#ez-cookie-dialog input[type=checkbox]:checked",all:!0},{click:"#ez-save-settings"}],test:[{eval:"EVAL_EZOIC_1"}]},{name:"facebook",runContext:{urlPattern:"^https://([a-z0-9-]+\\.)?facebook\\.com/"},prehideSelectors:['div[data-testid="cookie-policy-manage-dialog"]'],detectCmp:[{exists:'div[data-testid="cookie-policy-manage-dialog"]'}],detectPopup:[{visible:'div[data-testid="cookie-policy-manage-dialog"]'}],optIn:[{waitForThenClick:'button[data-cookiebanner="accept_button"]'},{waitForVisible:'div[data-testid="cookie-policy-manage-dialog"]',check:"none"}],optOut:[{waitForThenClick:'button[data-cookiebanner="accept_only_essential_button"]'},{waitForVisible:'div[data-testid="cookie-policy-manage-dialog"]',check:"none"}]},{name:"fides",vendorUrl:"https://github.com/ethyca/fides",prehideSelectors:["#fides-overlay"],detectCmp:[{exists:"#fides-overlay #fides-banner"}],detectPopup:[{visible:"#fides-overlay #fides-banner"},{eval:"EVAL_FIDES_DETECT_POPUP"}],optIn:[{waitForThenClick:"#fides-banner .fides-accept-all-button"}],optOut:[{waitForThenClick:"#fides-banner .fides-reject-all-button"}]},{name:"funding-choices",prehideSelectors:[".fc-consent-root,.fc-dialog-container,.fc-dialog-overlay,.fc-dialog-content"],detectCmp:[{exists:".fc-consent-root"}],detectPopup:[{exists:".fc-dialog-container"}],optOut:[{click:".fc-cta-do-not-consent,.fc-cta-manage-options"},{click:".fc-preference-consent:checked,.fc-preference-legitimate-interest:checked",all:!0,optional:!0},{click:".fc-confirm-choices",optional:!0}],optIn:[{click:".fc-cta-consent"}]},{name:"geeks-for-geeks",runContext:{urlPattern:"^https://www\\.geeksforgeeks\\.org/"},cosmetic:!0,prehideSelectors:[".cookie-consent"],detectCmp:[{exists:".cookie-consent"}],detectPopup:[{visible:".cookie-consent"}],optIn:[{click:".cookie-consent button.consent-btn"}],optOut:[{hide:".cookie-consent"}]},{name:"generic-cosmetic",cosmetic:!0,prehideSelectors:["#js-cookie-banner,.js-cookie-banner,.cookie-banner,#cookie-banner"],detectCmp:[{exists:"#js-cookie-banner,.js-cookie-banner,.cookie-banner,#cookie-banner"}],detectPopup:[{visible:"#js-cookie-banner,.js-cookie-banner,.cookie-banner,#cookie-banner"}],optIn:[],optOut:[{hide:"#js-cookie-banner,.js-cookie-banner,.cookie-banner,#cookie-banner"}]},{name:"google-consent-standalone",prehideSelectors:[],detectCmp:[{exists:'a[href^="https://policies.google.com/technologies/cookies"'},{exists:'form[action^="https://consent.google."][action$=".com/save"]'}],detectPopup:[{visible:'a[href^="https://policies.google.com/technologies/cookies"'}],optIn:[{waitForThenClick:'form[action^="https://consent.google."][action$=".com/save"]:has(input[name=set_eom][value=false]) button'}],optOut:[{waitForThenClick:'form[action^="https://consent.google."][action$=".com/save"]:has(input[name=set_eom][value=true]) button'}]},{name:"google.com",prehideSelectors:[".HTjtHe#xe7COe"],detectCmp:[{exists:".HTjtHe#xe7COe"},{exists:'.HTjtHe#xe7COe a[href^="https://policies.google.com/technologies/cookies"]'}],detectPopup:[{visible:".HTjtHe#xe7COe button#W0wltc"}],optIn:[{waitForThenClick:".HTjtHe#xe7COe button#L2AGLb"}],optOut:[{waitForThenClick:".HTjtHe#xe7COe button#W0wltc"}],test:[{eval:"EVAL_GOOGLE_0"}]},{name:"gov.uk",detectCmp:[{exists:"#global-cookie-message"}],detectPopup:[{exists:"#global-cookie-message"}],optIn:[{click:"button[data-accept-cookies=true]"}],optOut:[{click:"button[data-reject-cookies=true],#reject-cookies"},{click:"button[data-hide-cookie-banner=true],#hide-cookie-decision"}]},{name:"hashicorp",vendorUrl:"https://hashicorp.com/",runContext:{urlPattern:"^https://[^.]*\\.hashicorp\\.com/"},prehideSelectors:["[data-testid=consent-banner]"],detectCmp:[{exists:"[data-testid=consent-banner]"}],detectPopup:[{visible:"[data-testid=consent-banner]"}],optIn:[{waitForThenClick:"[data-testid=accept]"}],optOut:[{waitForThenClick:"[data-testid=manage-preferences]"},{waitForThenClick:"[data-testid=consent-mgr-dialog] [data-ga-button=save-preferences]"}]},{name:"healthline-media",prehideSelectors:["#modal-host > div.no-hash > div.window-wrapper"],detectCmp:[{exists:"#modal-host > div.no-hash > div.window-wrapper, div[data-testid=qualtrics-container]"}],detectPopup:[{exists:"#modal-host > div.no-hash > div.window-wrapper, div[data-testid=qualtrics-container]"}],optIn:[{click:"#modal-host > div.no-hash > div.window-wrapper > div:last-child button"}],optOut:[{if:{exists:'#modal-host > div.no-hash > div.window-wrapper > div:last-child a[href="/privacy-settings"]'},then:[{click:'#modal-host > div.no-hash > div.window-wrapper > div:last-child a[href="/privacy-settings"]'}],else:[{waitForVisible:"div#__next"},{click:"#__next div:nth-child(1) > button:first-child"}]}]},{name:"hema",prehideSelectors:[".cookie-modal"],detectCmp:[{visible:".cookie-modal .cookie-accept-btn"}],detectPopup:[{visible:".cookie-modal .cookie-accept-btn"}],optIn:[{waitForThenClick:".cookie-modal .cookie-accept-btn"}],optOut:[{waitForThenClick:".cookie-modal .js-cookie-reject-btn"}],test:[{eval:"EVAL_HEMA_TEST_0"}]},{name:"hetzner.com",runContext:{urlPattern:"^https://www\\.hetzner\\.com/"},prehideSelectors:["#CookieConsent"],detectCmp:[{exists:"#CookieConsent"}],detectPopup:[{visible:"#CookieConsent"}],optIn:[{click:"#CookieConsentGiven"}],optOut:[{click:"#CookieConsentDeclined"}]},{name:"hl.co.uk",prehideSelectors:[".cookieModalContent","#cookie-banner-overlay"],detectCmp:[{exists:"#cookie-banner-overlay"}],detectPopup:[{exists:"#cookie-banner-overlay"}],optIn:[{click:"#acceptCookieButton"}],optOut:[{click:"#manageCookie"},{hide:".cookieSettingsModal"},{waitFor:"#AOCookieToggle"},{click:"#AOCookieToggle[aria-pressed=true]",optional:!0},{waitFor:"#TPCookieToggle"},{click:"#TPCookieToggle[aria-pressed=true]",optional:!0},{click:"#updateCookieButton"}]},{name:"holidaymedia",vendorUrl:"https://holidaymedia.nl/",prehideSelectors:["dialog[data-cookie-consent]"],detectCmp:[{exists:"dialog[data-cookie-consent]"}],detectPopup:[{visible:"dialog[data-cookie-consent]"}],optIn:[{waitForThenClick:"button.cookie-consent__button--accept-all"}],optOut:[{waitForThenClick:'a[data-cookie-accept="functional"]',timeout:2e3}]},{name:"hu-manity",vendorUrl:"https://hu-manity.co/",prehideSelectors:["#hu.hu-wrapper"],detectCmp:[{exists:"#hu.hu-visible"}],detectPopup:[{visible:"#hu.hu-visible"}],optIn:[{waitForThenClick:"[data-hu-action=cookies-notice-consent-choices-3]"},{waitForThenClick:"#hu-cookies-save"}],optOut:[{waitForThenClick:"#hu-cookies-save"}]},{name:"hubspot",detectCmp:[{exists:"#hs-eu-cookie-confirmation"}],detectPopup:[{visible:"#hs-eu-cookie-confirmation"}],optIn:[{click:"#hs-eu-confirmation-button"}],optOut:[{click:"#hs-eu-decline-button"}]},{name:"indeed.com",cosmetic:!0,prehideSelectors:["#CookiePrivacyNotice"],detectCmp:[{exists:"#CookiePrivacyNotice"}],detectPopup:[{visible:"#CookiePrivacyNotice"}],optIn:[{click:"#CookiePrivacyNotice button[data-gnav-element-name=CookiePrivacyNoticeOk]"}],optOut:[{hide:"#CookiePrivacyNotice"}]},{name:"ing.de",runContext:{urlPattern:"^https://www\\.ing\\.de/"},cosmetic:!0,prehideSelectors:['div[slot="backdrop"]'],detectCmp:[{exists:'[data-tag-name="ing-cc-dialog-frame"]'}],detectPopup:[{visible:'[data-tag-name="ing-cc-dialog-frame"]'}],optIn:[{click:['[data-tag-name="ing-cc-dialog-level0"]','[data-tag-name="ing-cc-button"][class*="accept"]']}],optOut:[{click:['[data-tag-name="ing-cc-dialog-level0"]','[data-tag-name="ing-cc-button"][class*="more"]']}]},{name:"instagram",vendorUrl:"https://instagram.com",runContext:{urlPattern:"^https://www\\.instagram\\.com/"},prehideSelectors:[".x78zum5.xdt5ytf.xg6iff7.x1n2onr6:has(._a9--)"],detectCmp:[{exists:".x1qjc9v5.x9f619.x78zum5.xdt5ytf.x1iyjqo2.xl56j7k"}],detectPopup:[{visible:".x1qjc9v5.x9f619.x78zum5.xdt5ytf.x1iyjqo2.xl56j7k"}],optIn:[{waitForThenClick:"._a9--._a9_0"}],optOut:[{waitForThenClick:"._a9--._a9_1"},{wait:2e3}]},{name:"ionos.de",prehideSelectors:[".privacy-consent--backdrop",".privacy-consent--modal"],detectCmp:[{exists:".privacy-consent--modal"}],detectPopup:[{visible:".privacy-consent--modal"}],optIn:[{click:"#selectAll"}],optOut:[{click:".footer-config-link"},{click:"#confirmSelection"}]},{name:"itopvpn.com",cosmetic:!0,prehideSelectors:[".pop-cookie"],detectCmp:[{exists:".pop-cookie"}],detectPopup:[{exists:".pop-cookie"}],optIn:[{click:"#_pcookie"}],optOut:[{hide:".pop-cookie"}]},{name:"iubenda",prehideSelectors:["#iubenda-cs-banner"],detectCmp:[{exists:"#iubenda-cs-banner"}],detectPopup:[{visible:".iubenda-cs-accept-btn"}],optIn:[{waitForThenClick:".iubenda-cs-accept-btn"}],optOut:[{waitForThenClick:".iubenda-cs-customize-btn"},{eval:"EVAL_IUBENDA_0"},{waitForThenClick:"#iubFooterBtn"}],test:[{eval:"EVAL_IUBENDA_1"}]},{name:"iWink",prehideSelectors:["body.cookies-request #cookie-bar"],detectCmp:[{exists:"body.cookies-request #cookie-bar"}],detectPopup:[{visible:"body.cookies-request #cookie-bar"}],optIn:[{waitForThenClick:"body.cookies-request #cookie-bar .allow-cookies"}],optOut:[{waitForThenClick:"body.cookies-request #cookie-bar .disallow-cookies"}],test:[{eval:"EVAL_IWINK_TEST"}]},{name:"jdsports",vendorUrl:"https://www.jdsports.co.uk/",runContext:{urlPattern:"^https://(www|m)\\.jdsports\\."},prehideSelectors:[".miniConsent,#PrivacyPolicyBanner"],detectCmp:[{exists:".miniConsent,#PrivacyPolicyBanner"}],detectPopup:[{visible:".miniConsent,#PrivacyPolicyBanner"}],optIn:[{waitForThenClick:".miniConsent .accept-all-cookies"}],optOut:[{if:{exists:"#PrivacyPolicyBanner"},then:[{hide:"#PrivacyPolicyBanner"}],else:[{waitForThenClick:"#cookie-settings"},{waitForThenClick:"#reject-all-cookies"}]}]},{name:"johnlewis.com",prehideSelectors:["div[class^=pecr-cookie-banner-]"],detectCmp:[{exists:"div[class^=pecr-cookie-banner-]"}],detectPopup:[{exists:"div[class^=pecr-cookie-banner-]"}],optOut:[{click:"button[data-test^=manage-cookies]"},{wait:"500"},{click:"label[data-test^=toggle][class*=checked]:not([class*=disabled])",all:!0,optional:!0},{click:"button[data-test=save-preferences]"}],optIn:[{click:"button[data-test=allow-all]"}]},{name:"jquery.cookieBar",vendorUrl:"https://github.com/kovarp/jquery.cookieBar",prehideSelectors:[".cookie-bar"],cosmetic:!0,detectCmp:[{exists:".cookie-bar .cookie-bar__message,.cookie-bar .cookie-bar__buttons"}],detectPopup:[{visible:".cookie-bar .cookie-bar__message,.cookie-bar .cookie-bar__buttons",check:"any"}],optIn:[{click:".cookie-bar .cookie-bar__btn"}],optOut:[{hide:".cookie-bar"}],test:[{visible:".cookie-bar .cookie-bar__message,.cookie-bar .cookie-bar__buttons",check:"none"},{eval:"EVAL_JQUERY_COOKIEBAR_0"}]},{name:"justwatch.com",prehideSelectors:[".consent-banner"],detectCmp:[{exists:".consent-banner .consent-banner__actions"}],detectPopup:[{visible:".consent-banner .consent-banner__actions"}],optIn:[{click:".consent-banner__actions button.basic-button.primary"}],optOut:[{click:".consent-banner__actions button.basic-button.secondary"},{waitForThenClick:".consent-modal__footer button.basic-button.secondary"},{waitForThenClick:".consent-modal ion-content > div > a:nth-child(9)"},{click:"label.consent-switch input[type=checkbox]:checked",all:!0,optional:!0},{waitForVisible:".consent-modal__footer button.basic-button.primary"},{click:".consent-modal__footer button.basic-button.primary"}]},{name:"ketch",vendorUrl:"https://www.ketch.com",runContext:{frame:!1,main:!0},intermediate:!1,prehideSelectors:["#lanyard_root div[role='dialog']"],detectCmp:[{exists:"#lanyard_root div[role='dialog']"}],detectPopup:[{visible:"#lanyard_root div[role='dialog']"}],optIn:[{if:{exists:"#lanyard_root button[class='confirmButton']"},then:[{waitForThenClick:"#lanyard_root div[class*=buttons] > :nth-child(2)"},{click:"#lanyard_root button[class='confirmButton']"}],else:[{waitForThenClick:"#lanyard_root div[class*=buttons] > :nth-child(2)"}]}],optOut:[{if:{exists:"#lanyard_root [aria-describedby=banner-description]"},then:[{waitForThenClick:"#lanyard_root div[class*=buttons] > button[class*=secondaryButton], #lanyard_root button[class*=buttons-secondary]",comment:"can be either settings or reject button"}]},{waitFor:"#lanyard_root [aria-describedby=preference-description],#lanyard_root [aria-describedby=modal-description], #ketch-preferences",timeout:1e3,optional:!0},{if:{exists:"#lanyard_root [aria-describedby=preference-description],#lanyard_root [aria-describedby=modal-description], #ketch-preferences"},then:[{waitForThenClick:"#lanyard_root button[class*=rejectButton], #lanyard_root button[class*=rejectAllButton]"},{click:"#lanyard_root button[class*=confirmButton],#lanyard_root div[class*=actions_] > button:nth-child(1), #lanyard_root button[class*=actionButton]"}]}],test:[{eval:"EVAL_KETCH_TEST"}]},{name:"kleinanzeigen-de",runContext:{urlPattern:"^https?://(www\\.)?kleinanzeigen\\.de"},prehideSelectors:["#gdpr-banner-container"],detectCmp:[{any:[{exists:"#gdpr-banner-container #gdpr-banner [data-testid=gdpr-banner-cmp-button]"},{exists:"#ConsentManagementPage"}]}],detectPopup:[{any:[{visible:"#gdpr-banner-container #gdpr-banner [data-testid=gdpr-banner-cmp-button]"},{visible:"#ConsentManagementPage"}]}],optIn:[{if:{exists:"#gdpr-banner-container #gdpr-banner"},then:[{click:"#gdpr-banner-container #gdpr-banner [data-testid=gdpr-banner-accept]"}],else:[{click:"#ConsentManagementPage .Button-primary"}]}],optOut:[{if:{exists:"#gdpr-banner-container #gdpr-banner"},then:[{click:"#gdpr-banner-container #gdpr-banner [data-testid=gdpr-banner-cmp-button]"}],else:[{click:"#ConsentManagementPage .Button-secondary"}]}]},{name:"lightbox",prehideSelectors:[".darken-layer.open,.lightbox.lightbox--cookie-consent"],detectCmp:[{exists:"body.cookie-consent-is-active div.lightbox--cookie-consent > div.lightbox__content > div.cookie-consent[data-jsb]"}],detectPopup:[{visible:"body.cookie-consent-is-active div.lightbox--cookie-consent > div.lightbox__content > div.cookie-consent[data-jsb]"}],optOut:[{click:".cookie-consent__footer > button[type='submit']:not([data-button='selectAll'])"}],optIn:[{click:".cookie-consent__footer > button[type='submit'][data-button='selectAll']"}]},{name:"lineagrafica",vendorUrl:"https://addons.prestashop.com/en/legal/8734-eu-cookie-law-gdpr-banner-blocker.html",cosmetic:!0,prehideSelectors:["#lgcookieslaw_banner,#lgcookieslaw_modal,.lgcookieslaw-overlay"],detectCmp:[{exists:"#lgcookieslaw_banner,#lgcookieslaw_modal,.lgcookieslaw-overlay"}],detectPopup:[{exists:"#lgcookieslaw_banner,#lgcookieslaw_modal,.lgcookieslaw-overlay"}],optIn:[{waitForThenClick:"#lgcookieslaw_accept"}],optOut:[{hide:"#lgcookieslaw_banner,#lgcookieslaw_modal,.lgcookieslaw-overlay"}]},{name:"linkedin.com",prehideSelectors:[".artdeco-global-alert[type=COOKIE_CONSENT]"],detectCmp:[{exists:".artdeco-global-alert[type=COOKIE_CONSENT]"}],detectPopup:[{visible:".artdeco-global-alert[type=COOKIE_CONSENT]"}],optIn:[{waitForVisible:".artdeco-global-alert[type=COOKIE_CONSENT] button[action-type=ACCEPT]"},{wait:500},{waitForThenClick:".artdeco-global-alert[type=COOKIE_CONSENT] button[action-type=ACCEPT]"}],optOut:[{waitForVisible:".artdeco-global-alert[type=COOKIE_CONSENT] button[action-type=DENY]"},{wait:500},{waitForThenClick:".artdeco-global-alert[type=COOKIE_CONSENT] button[action-type=DENY]"}],test:[{waitForVisible:".artdeco-global-alert[type=COOKIE_CONSENT]",check:"none"}]},{name:"livejasmin",vendorUrl:"https://www.livejasmin.com/",runContext:{urlPattern:"^https://(m|www)\\.livejasmin\\.com/"},prehideSelectors:["#consent_modal"],detectCmp:[{exists:"#consent_modal"}],detectPopup:[{visible:"#consent_modal"}],optIn:[{waitForThenClick:"#consent_modal button[data-testid=ButtonStyledButton]:first-of-type"}],optOut:[{waitForThenClick:"#consent_modal button[data-testid=ButtonStyledButton]:nth-of-type(2)"},{waitForVisible:"[data-testid=PrivacyPreferenceCenterWithConsentCookieContent]"},{click:"[data-testid=PrivacyPreferenceCenterWithConsentCookieContent] input[data-testid=PrivacyPreferenceCenterWithConsentCookieSwitch]:checked",optional:!0,all:!0},{waitForThenClick:"[data-testid=PrivacyPreferenceCenterWithConsentCookieContent] button[data-testid=ButtonStyledButton]:last-child"}]},{name:"macpaw.com",cosmetic:!0,prehideSelectors:['div[data-banner="cookies"]'],detectCmp:[{exists:'div[data-banner="cookies"]'}],detectPopup:[{exists:'div[data-banner="cookies"]'}],optIn:[{click:'button[data-banner-close="cookies"]'}],optOut:[{hide:'div[data-banner="cookies"]'}]},{name:"marksandspencer.com",cosmetic:!0,detectCmp:[{exists:".navigation-cookiebbanner"}],detectPopup:[{visible:".navigation-cookiebbanner"}],optOut:[{hide:".navigation-cookiebbanner"}],optIn:[{click:".navigation-cookiebbanner__submit"}]},{name:"mediamarkt.de",prehideSelectors:["div[aria-labelledby=pwa-consent-layer-title]","div[class^=StyledConsentLayerWrapper-]"],detectCmp:[{exists:"div[aria-labelledby^=pwa-consent-layer-title]"}],detectPopup:[{exists:"div[aria-labelledby^=pwa-consent-layer-title]"}],optOut:[{click:"button[data-test^=pwa-consent-layer-deny-all]"}],optIn:[{click:"button[data-test^=pwa-consent-layer-accept-all"}]},{name:"Mediavine",prehideSelectors:['[data-name="mediavine-gdpr-cmp"]'],detectCmp:[{exists:'[data-name="mediavine-gdpr-cmp"]'}],detectPopup:[{wait:500},{visible:'[data-name="mediavine-gdpr-cmp"]'}],optIn:[{waitForThenClick:'[data-name="mediavine-gdpr-cmp"] [format="primary"]'}],optOut:[{waitForThenClick:'[data-name="mediavine-gdpr-cmp"] [data-view="manageSettings"]'},{waitFor:'[data-name="mediavine-gdpr-cmp"] input[type=checkbox]'},{eval:"EVAL_MEDIAVINE_0",optional:!0},{click:'[data-name="mediavine-gdpr-cmp"] [format="secondary"]'}]},{name:"microsoft.com",prehideSelectors:["#wcpConsentBannerCtrl"],detectCmp:[{exists:"#wcpConsentBannerCtrl"}],detectPopup:[{exists:"#wcpConsentBannerCtrl"}],optOut:[{eval:"EVAL_MICROSOFT_0"}],optIn:[{eval:"EVAL_MICROSOFT_1"}],test:[{eval:"EVAL_MICROSOFT_2"}]},{name:"midway-usa",runContext:{urlPattern:"^https://www\\.midwayusa\\.com/"},cosmetic:!0,prehideSelectors:["#cookie-container"],detectCmp:[{exists:['div[aria-label="Cookie Policy Banner"]']}],detectPopup:[{visible:"#cookie-container"}],optIn:[{click:"button#cookie-btn"}],optOut:[{hide:'div[aria-label="Cookie Policy Banner"]'}]},{name:"moneysavingexpert.com",detectCmp:[{exists:"dialog[data-testid=accept-our-cookies-dialog]"}],detectPopup:[{visible:"dialog[data-testid=accept-our-cookies-dialog]"}],optIn:[{click:"#banner-accept"}],optOut:[{click:"#banner-manage"},{click:"#pc-confirm"}]},{name:"monzo.com",prehideSelectors:[".cookie-alert, cookie-alert__content"],detectCmp:[{exists:'div.cookie-alert[role="dialog"]'},{exists:'a[href*="monzo"]'}],detectPopup:[{visible:".cookie-alert__content"}],optIn:[{click:".js-accept-cookie-policy"}],optOut:[{click:".js-decline-cookie-policy"}]},{name:"Moove",prehideSelectors:["#moove_gdpr_cookie_info_bar"],detectCmp:[{exists:"#moove_gdpr_cookie_info_bar"}],detectPopup:[{visible:"#moove_gdpr_cookie_info_bar:not(.moove-gdpr-info-bar-hidden)"}],optIn:[{waitForThenClick:".moove-gdpr-infobar-allow-all"}],optOut:[{if:{exists:"#moove_gdpr_cookie_info_bar .change-settings-button"},then:[{click:"#moove_gdpr_cookie_info_bar .change-settings-button"},{waitForVisible:"#moove_gdpr_cookie_modal"},{eval:"EVAL_MOOVE_0"},{click:".moove-gdpr-modal-save-settings"}],else:[{hide:"#moove_gdpr_cookie_info_bar"}]}],test:[{visible:"#moove_gdpr_cookie_info_bar",check:"none"}]},{name:"national-lottery.co.uk",detectCmp:[{exists:".cuk_cookie_consent"}],detectPopup:[{visible:".cuk_cookie_consent",check:"any"}],optOut:[{click:".cuk_cookie_consent_manage_pref"},{click:".cuk_cookie_consent_save_pref"},{click:".cuk_cookie_consent_close"}],optIn:[{click:".cuk_cookie_consent_accept_all"}]},{name:"nba.com",runContext:{urlPattern:"^https://(www\\.)?nba.com/"},cosmetic:!0,prehideSelectors:["#onetrust-banner-sdk"],detectCmp:[{exists:"#onetrust-banner-sdk"}],detectPopup:[{visible:"#onetrust-banner-sdk"}],optIn:[{click:"#onetrust-accept-btn-handler"}],optOut:[{hide:"#onetrust-banner-sdk"}]},{name:"netbeat.de",runContext:{urlPattern:"^https://(www\\.)?netbeat\\.de/"},prehideSelectors:["div#cookieWarning"],detectCmp:[{exists:"div#cookieWarning"}],detectPopup:[{visible:"div#cookieWarning"}],optIn:[{waitForThenClick:"a#btnCookiesAcceptAll"}],optOut:[{waitForThenClick:"a#btnCookiesDenyAll"}]},{name:"netflix.de",detectCmp:[{exists:"#cookie-disclosure"}],detectPopup:[{visible:".cookie-disclosure-message",check:"any"}],optIn:[{click:".btn-accept"}],optOut:[{hide:"#cookie-disclosure"},{click:".btn-reject"}]},{name:"nhs.uk",prehideSelectors:["#nhsuk-cookie-banner"],detectCmp:[{exists:"#nhsuk-cookie-banner"}],detectPopup:[{exists:"#nhsuk-cookie-banner"}],optOut:[{click:"#nhsuk-cookie-banner__link_accept"}],optIn:[{click:"#nhsuk-cookie-banner__link_accept_analytics"}]},{name:"notice-cookie",prehideSelectors:[".button--notice"],cosmetic:!0,detectCmp:[{exists:".notice--cookie"}],detectPopup:[{visible:".notice--cookie"}],optIn:[{click:".button--notice"}],optOut:[{hide:".notice--cookie"}]},{name:"nrk.no",cosmetic:!0,prehideSelectors:[".nrk-masthead__info-banner--cookie"],detectCmp:[{exists:".nrk-masthead__info-banner--cookie"}],detectPopup:[{exists:".nrk-masthead__info-banner--cookie"}],optIn:[{click:"div.nrk-masthead__info-banner--cookie button > span:has(+ svg.nrk-close)"}],optOut:[{hide:".nrk-masthead__info-banner--cookie"}]},{name:"obi.de",prehideSelectors:[".disc-cp--active"],detectCmp:[{exists:".disc-cp-modal__modal"}],detectPopup:[{visible:".disc-cp-modal__modal"}],optIn:[{click:".js-disc-cp-accept-all"}],optOut:[{click:".js-disc-cp-deny-all"}]},{name:"om",vendorUrl:"https://olli-machts.de/en/extension/cookie-manager",prehideSelectors:[".tx-om-cookie-consent"],detectCmp:[{exists:".tx-om-cookie-consent .active[data-omcookie-panel]"}],detectPopup:[{exists:".tx-om-cookie-consent .active[data-omcookie-panel]"}],optIn:[{waitForThenClick:"[data-omcookie-panel-save=all]"}],optOut:[{if:{exists:"[data-omcookie-panel-save=min]"},then:[{waitForThenClick:"[data-omcookie-panel-save=min]"}],else:[{click:"input[data-omcookie-panel-grp]:checked:not(:disabled)",all:!0,optional:!0},{waitForThenClick:"[data-omcookie-panel-save=save]"}]}]},{name:"onlyFans.com",runContext:{urlPattern:"^https://onlyfans\\.com/"},prehideSelectors:["div.b-cookies-informer"],detectCmp:[{exists:"div.b-cookies-informer"}],detectPopup:[{exists:"div.b-cookies-informer"}],optIn:[{click:"div.b-cookies-informer__nav > button:nth-child(2)"}],optOut:[{click:"div.b-cookies-informer__nav > button:nth-child(1)"},{if:{exists:"div.b-cookies-informer__switchers"},then:[{click:"div.b-cookies-informer__switchers input:not([disabled])",all:!0},{click:"div.b-cookies-informer__nav > button"}]}]},{name:"openli",vendorUrl:"https://openli.com",prehideSelectors:[".legalmonster-cleanslate"],detectCmp:[{exists:".legalmonster-cleanslate"}],detectPopup:[{visible:".legalmonster-cleanslate #lm-cookie-wall-container",check:"any"}],optIn:[{waitForThenClick:"#lm-accept-all"}],optOut:[{waitForThenClick:"#lm-accept-necessary"}]},{name:"opera.com",vendorUrl:"https://unknown",cosmetic:!1,runContext:{main:!0,frame:!1},intermediate:!1,prehideSelectors:[],detectCmp:[{exists:"#cookie-consent .manage-cookies__btn"}],detectPopup:[{visible:"#cookie-consent .cookie-basic-consent__btn"}],optIn:[{waitForThenClick:"#cookie-consent .cookie-basic-consent__btn"}],optOut:[{waitForThenClick:"#cookie-consent .manage-cookies__btn"},{waitForThenClick:"#cookie-consent .active.marketing_option_switch.cookie-consent__switch",all:!0},{waitForThenClick:"#cookie-consent .cookie-selection__btn"}],test:[{eval:"EVAL_OPERA_0"}]},{name:"osano",prehideSelectors:[".osano-cm-window,.osano-cm-dialog"],detectCmp:[{exists:".osano-cm-window"}],detectPopup:[{visible:".osano-cm-dialog"}],optIn:[{click:".osano-cm-accept-all",optional:!0}],optOut:[{waitForThenClick:".osano-cm-denyAll"}]},{name:"otto.de",prehideSelectors:[".cookieBanner--visibility"],detectCmp:[{exists:".cookieBanner--visibility"}],detectPopup:[{visible:".cookieBanner__wrapper"}],optIn:[{click:".js_cookieBannerPermissionButton"}],optOut:[{click:".js_cookieBannerProhibitionButton"}]},{name:"ourworldindata",vendorUrl:"https://ourworldindata.org/",runContext:{urlPattern:"^https://ourworldindata\\.org/"},prehideSelectors:[".cookie-manager"],detectCmp:[{exists:".cookie-manager"}],detectPopup:[{visible:".cookie-manager .cookie-notice.open"}],optIn:[{waitForThenClick:".cookie-notice [data-test=accept]"}],optOut:[{waitForThenClick:".cookie-notice [data-test=reject]"}]},{name:"pabcogypsum",vendorUrl:"https://unknown",prehideSelectors:[".js-cookie-notice:has(#cookie_settings-form)"],detectCmp:[{exists:".js-cookie-notice #cookie_settings-form"}],detectPopup:[{visible:".js-cookie-notice #cookie_settings-form"}],optIn:[{waitForThenClick:".js-cookie-notice button[value=allow]"}],optOut:[{waitForThenClick:".js-cookie-notice button[value=disable]"}]},{name:"paypal-us",prehideSelectors:["#ccpaCookieContent_wrapper, article.ppvx_modal--overpanel"],detectCmp:[{exists:"#ccpaCookieBanner, .privacy-sheet-content"}],detectPopup:[{exists:"#ccpaCookieBanner, .privacy-sheet-content"}],optIn:[{click:"#acceptAllButton"}],optOut:[{if:{exists:"a#manageCookiesLink"},then:[{click:"a#manageCookiesLink"}],else:[{waitForVisible:".privacy-sheet-content #formContent"},{click:"#formContent .cookiepref-11m2iee-checkbox_base input:checked",all:!0,optional:!0},{click:".confirmCookie #submitCookiesBtn"}]}]},{name:"paypal.com",prehideSelectors:["#gdprCookieBanner"],detectCmp:[{exists:"#gdprCookieBanner"}],detectPopup:[{visible:"#gdprCookieContent_wrapper"}],optIn:[{click:"#acceptAllButton"}],optOut:[{wait:200},{click:".gdprCookieBanner_decline-button"}],test:[{wait:500},{eval:"EVAL_PAYPAL_0"}]},{name:"pinetools.com",cosmetic:!0,prehideSelectors:["#aviso_cookies"],detectCmp:[{exists:"#aviso_cookies"}],detectPopup:[{exists:".lang_en #aviso_cookies"}],optIn:[{click:"#aviso_cookies .a_boton_cerrar"}],optOut:[{hide:"#aviso_cookies"}]},{name:"pmc",cosmetic:!0,prehideSelectors:["#pmc-pp-tou--notice"],detectCmp:[{exists:"#pmc-pp-tou--notice"}],detectPopup:[{visible:"#pmc-pp-tou--notice"}],optIn:[{click:"span.pmc-pp-tou--notice-close-btn"}],optOut:[{hide:"#pmc-pp-tou--notice"}]},{name:"pornhub.com",runContext:{urlPattern:"^https://(www\\.)?pornhub\\.com/"},cosmetic:!0,prehideSelectors:[".cookiesBanner"],detectCmp:[{exists:".cookiesBanner"}],detectPopup:[{visible:".cookiesBanner"}],optIn:[{click:".cookiesBanner .okButton"}],optOut:[{hide:".cookiesBanner"}]},{name:"pornpics.com",cosmetic:!0,prehideSelectors:["#cookie-contract"],detectCmp:[{exists:"#cookie-contract"}],detectPopup:[{visible:"#cookie-contract"}],optIn:[{click:"#cookie-contract .icon-cross"}],optOut:[{hide:"#cookie-contract"}]},{name:"PrimeBox CookieBar",prehideSelectors:["#cookie-bar"],detectCmp:[{exists:"#cookie-bar .cb-enable,#cookie-bar .cb-disable,#cookie-bar .cb-policy"}],detectPopup:[{visible:"#cookie-bar .cb-enable,#cookie-bar .cb-disable,#cookie-bar .cb-policy",check:"any"}],optIn:[{waitForThenClick:"#cookie-bar .cb-enable"}],optOut:[{click:"#cookie-bar .cb-disable",optional:!0},{hide:"#cookie-bar"}],test:[{eval:"EVAL_PRIMEBOX_0"}]},{name:"privacymanager.io",prehideSelectors:["#gdpr-consent-tool-wrapper",'iframe[src^="https://cmp-consent-tool.privacymanager.io"]'],runContext:{urlPattern:"^https://cmp-consent-tool\\.privacymanager\\.io/",main:!1,frame:!0},detectCmp:[{exists:"button#save"}],detectPopup:[{visible:"button#save"}],optIn:[{click:"button#save"}],optOut:[{if:{exists:"#denyAll"},then:[{click:"#denyAll"},{waitForThenClick:".okButton"}],else:[{waitForThenClick:"#manageSettings"},{waitFor:".purposes-overview-list"},{waitFor:"button#saveAndExit"},{click:"span[role=checkbox][aria-checked=true]",all:!0,optional:!0},{click:"button#saveAndExit"}]}]},{name:"productz.com",vendorUrl:"https://productz.com/",runContext:{urlPattern:"^https://productz\\.com/"},prehideSelectors:[],detectCmp:[{exists:".c-modal.is-active"}],detectPopup:[{visible:".c-modal.is-active"}],optIn:[{waitForThenClick:".c-modal.is-active .is-accept"}],optOut:[{waitForThenClick:".c-modal.is-active .is-dismiss"}]},{name:"pubtech",prehideSelectors:["#pubtech-cmp"],detectCmp:[{exists:"#pubtech-cmp"}],detectPopup:[{visible:"#pubtech-cmp #pt-actions"}],optIn:[{if:{exists:"#pt-accept-all"},then:[{click:"#pubtech-cmp #pt-actions #pt-accept-all"}],else:[{click:"#pubtech-cmp #pt-actions button:nth-of-type(2)"}]}],optOut:[{click:"#pubtech-cmp #pt-close"}],test:[{eval:"EVAL_PUBTECH_0"}]},{name:"quantcast",prehideSelectors:["#qc-cmp2-main,#qc-cmp2-container"],detectCmp:[{exists:"#qc-cmp2-container"}],detectPopup:[{visible:"#qc-cmp2-ui"}],optOut:[{click:'.qc-cmp2-summary-buttons > button[mode="secondary"]'},{waitFor:"#qc-cmp2-ui"},{click:'.qc-cmp2-toggle-switch > button[aria-checked="true"]',all:!0,optional:!0},{click:'.qc-cmp2-main button[aria-label="REJECT ALL"]',optional:!0},{waitForThenClick:'.qc-cmp2-main button[aria-label="SAVE & EXIT"],.qc-cmp2-buttons-desktop > button[mode="primary"]',timeout:5e3}],optIn:[{click:'.qc-cmp2-summary-buttons > button[mode="primary"]'}]},{name:"reddit.com",runContext:{urlPattern:"^https://www\\.reddit\\.com/"},prehideSelectors:["[bundlename=reddit_cookie_banner]"],detectCmp:[{exists:"reddit-cookie-banner"}],detectPopup:[{visible:"reddit-cookie-banner"}],optIn:[{waitForThenClick:["reddit-cookie-banner","#accept-all-cookies-button > button"]}],optOut:[{waitForThenClick:["reddit-cookie-banner","#reject-nonessential-cookies-button > button"]}],test:[{eval:"EVAL_REDDIT_0"}]},{name:"roblox",vendorUrl:"https://roblox.com",cosmetic:!1,runContext:{main:!0,frame:!1,urlPattern:"^https://(www\\.)?roblox\\.com/"},prehideSelectors:[],detectCmp:[{exists:".cookie-banner-wrapper"}],detectPopup:[{visible:".cookie-banner-wrapper .cookie-banner"}],optIn:[{waitForThenClick:".cookie-banner-wrapper button.btn-cta-lg"}],optOut:[{waitForThenClick:".cookie-banner-wrapper button.btn-secondary-lg"}],test:[{eval:"EVAL_ROBLOX_TEST"}]},{name:"rog-forum.asus.com",runContext:{urlPattern:"^https://rog-forum\\.asus\\.com/"},prehideSelectors:["#cookie-policy-info"],detectCmp:[{exists:"#cookie-policy-info"}],detectPopup:[{visible:"#cookie-policy-info"}],optIn:[{click:'div.cookie-btn-box > div[aria-label="Accept"]'}],optOut:[{click:'div.cookie-btn-box > div[aria-label="Reject"]'},{waitForThenClick:'.cookie-policy-lightbox-bottom > div[aria-label="Save Settings"]'}]},{name:"roofingmegastore.co.uk",runContext:{urlPattern:"^https://(www\\.)?roofingmegastore\\.co\\.uk"},prehideSelectors:["#m-cookienotice"],detectCmp:[{exists:"#m-cookienotice"}],detectPopup:[{visible:"#m-cookienotice"}],optIn:[{click:"#accept-cookies"}],optOut:[{click:"#manage-cookies"},{waitForThenClick:"#accept-selected"}]},{name:"samsung.com",runContext:{urlPattern:"^https://www\\.samsung\\.com/"},cosmetic:!0,prehideSelectors:["div.cookie-bar"],detectCmp:[{exists:"div.cookie-bar"}],detectPopup:[{visible:"div.cookie-bar"}],optIn:[{click:"div.cookie-bar__manage > a"}],optOut:[{hide:"div.cookie-bar"}]},{name:"setapp.com",vendorUrl:"https://setapp.com/",cosmetic:!0,runContext:{urlPattern:"^https://setapp\\.com/"},prehideSelectors:[],detectCmp:[{exists:".cookie-banner.js-cookie-banner"}],detectPopup:[{visible:".cookie-banner.js-cookie-banner"}],optIn:[{waitForThenClick:".cookie-banner.js-cookie-banner button"}],optOut:[{hide:".cookie-banner.js-cookie-banner"}]},{name:"sibbo",prehideSelectors:["sibbo-cmp-layout"],detectCmp:[{exists:"sibbo-cmp-layout"}],detectPopup:[{visible:"#rejectAllMain"}],optIn:[{click:"#acceptAllMain"}],optOut:[{click:"#rejectAllMain"}]},{name:"similarweb.com",cosmetic:!0,prehideSelectors:[".app-cookies-notification"],detectCmp:[{exists:".app-cookies-notification"}],detectPopup:[{exists:".app-layout .app-cookies-notification"}],optIn:[{click:"button.app-cookies-notification__dismiss"}],optOut:[{hide:".app-layout .app-cookies-notification"}]},{name:"Sirdata",cosmetic:!1,prehideSelectors:["#sd-cmp"],detectCmp:[{exists:"#sd-cmp"}],detectPopup:[{visible:"#sd-cmp"}],optIn:[{waitForThenClick:"#sd-cmp .sd-cmp-3cRQ2"}],optOut:[{waitForThenClick:["#sd-cmp","xpath///span[contains(., 'Do not accept') or contains(., 'Acceptera inte') or contains(., 'No aceptar') or contains(., 'Ikke acceptere') or contains(., 'Nicht akzeptieren') or contains(., 'Не приемам') or contains(., 'Να μην γίνει αποδοχή') or contains(., 'Niet accepteren') or contains(., 'Nepřijímat') or contains(., 'Nie akceptuj') or contains(., 'Nu acceptați') or contains(., 'Não aceitar') or contains(., 'Continuer sans accepter') or contains(., 'Non accettare') or contains(., 'Nem fogad el')]"]}]},{name:"snigel",detectCmp:[{exists:".snigel-cmp-framework"}],detectPopup:[{visible:".snigel-cmp-framework"}],optOut:[{click:"#sn-b-custom"},{click:"#sn-b-save"}],test:[{eval:"EVAL_SNIGEL_0"}],optIn:[{click:".snigel-cmp-framework #accept-choices"}]},{name:"steampowered.com",detectCmp:[{exists:".cookiepreferences_popup"},{visible:".cookiepreferences_popup"}],detectPopup:[{visible:".cookiepreferences_popup"}],optOut:[{click:"#rejectAllButton"}],optIn:[{click:"#acceptAllButton"}],test:[{wait:1e3},{eval:"EVAL_STEAMPOWERED_0"}]},{name:"strato.de",prehideSelectors:[".consent__wrapper"],runContext:{urlPattern:"^https://www\\.strato\\.de/"},detectCmp:[{exists:".consent"}],detectPopup:[{visible:".consent"}],optIn:[{click:"button.consentAgree"}],optOut:[{click:"button.consentSettings"},{waitForThenClick:"button#consentSubmit"}]},{name:"svt.se",vendorUrl:"https://www.svt.se/",runContext:{urlPattern:"^https://www\\.svt\\.se/"},prehideSelectors:["[class*=CookieConsent__root___]"],detectCmp:[{exists:"[class*=CookieConsent__root___]"}],detectPopup:[{visible:"[class*=CookieConsent__modal___]"}],optIn:[{waitForThenClick:"[class*=CookieConsent__modal___] > div > button[class*=primary]"}],optOut:[{waitForThenClick:"[class*=CookieConsent__modal___] > div > button[class*=secondary]:nth-child(2)"}],test:[{eval:"EVAL_SVT_TEST"}]},{name:"takealot.com",cosmetic:!0,prehideSelectors:['div[class^="cookies-banner-module_"]'],detectCmp:[{exists:'div[class^="cookies-banner-module_cookie-banner_"]'}],detectPopup:[{exists:'div[class^="cookies-banner-module_cookie-banner_"]'}],optIn:[{click:'button[class*="cookies-banner-module_dismiss-button_"]'}],optOut:[{hide:'div[class^="cookies-banner-module_"]'},{if:{exists:'div[class^="cookies-banner-module_small-cookie-banner_"]'},then:[{eval:"EVAL_TAKEALOT_0"}],else:[]}]},{name:"tarteaucitron.js",prehideSelectors:["#tarteaucitronRoot"],detectCmp:[{exists:"#tarteaucitronRoot"}],detectPopup:[{visible:"#tarteaucitronRoot #tarteaucitronAlertBig",check:"any"}],optIn:[{eval:"EVAL_TARTEAUCITRON_1"}],optOut:[{eval:"EVAL_TARTEAUCITRON_0"}],test:[{eval:"EVAL_TARTEAUCITRON_2",comment:"sometimes there are required categories, so we check that at least something is false"}]},{name:"taunton",vendorUrl:"https://www.taunton.com/",prehideSelectors:["#taunton-user-consent__overlay"],detectCmp:[{exists:"#taunton-user-consent__overlay"}],detectPopup:[{exists:"#taunton-user-consent__overlay:not([aria-hidden=true])"}],optIn:[{click:"#taunton-user-consent__toolbar input[type=checkbox]:not(:checked)"},{click:"#taunton-user-consent__toolbar button[type=submit]"}],optOut:[{click:"#taunton-user-consent__toolbar input[type=checkbox]:checked",optional:!0,all:!0},{click:"#taunton-user-consent__toolbar button[type=submit]"}],test:[{eval:"EVAL_TAUNTON_TEST"}]},{name:"Tealium",prehideSelectors:["#__tealiumGDPRecModal,#__tealiumGDPRcpPrefs,#__tealiumImplicitmodal,#consent-layer"],detectCmp:[{exists:"#__tealiumGDPRecModal *,#__tealiumGDPRcpPrefs *,#__tealiumImplicitmodal *"},{eval:"EVAL_TEALIUM_0"}],detectPopup:[{visible:"#__tealiumGDPRecModal *,#__tealiumGDPRcpPrefs *,#__tealiumImplicitmodal *",check:"any"}],optOut:[{eval:"EVAL_TEALIUM_1"},{eval:"EVAL_TEALIUM_DONOTSELL"},{hide:"#__tealiumGDPRecModal,#__tealiumGDPRcpPrefs,#__tealiumImplicitmodal"},{waitForThenClick:"#cm-acceptNone,.js-accept-essential-cookies",timeout:1e3,optional:!0}],optIn:[{hide:"#__tealiumGDPRecModal,#__tealiumGDPRcpPrefs"},{eval:"EVAL_TEALIUM_2"}],test:[{eval:"EVAL_TEALIUM_3"},{eval:"EVAL_TEALIUM_DONOTSELL_CHECK"},{visible:"#__tealiumGDPRecModal,#__tealiumGDPRcpPrefs",check:"none"}]},{name:"temu",vendorUrl:"https://temu.com",runContext:{urlPattern:"^https://[^/]*temu\\.com/"},prehideSelectors:["._2d-8vq-W,._1UdBUwni"],detectCmp:[{exists:"._3YCsmIaS"}],detectPopup:[{visible:"._3YCsmIaS"}],optIn:[{waitForThenClick:"._3fKiu5wx._3zN5SumS._3tAK973O.IYOfhWEs.VGNGF1pA"}],optOut:[{waitForThenClick:"._3fKiu5wx._1_XToJBF._3tAK973O.IYOfhWEs.VGNGF1pA"}]},{name:"Termly",prehideSelectors:["#termly-code-snippet-support"],detectCmp:[{exists:"#termly-code-snippet-support"}],detectPopup:[{visible:"#termly-code-snippet-support div"}],optIn:[{waitForThenClick:'[data-tid="banner-accept"]'}],optOut:[{if:{exists:'[data-tid="banner-decline"]'},then:[{click:'[data-tid="banner-decline"]'}],else:[{click:".t-preference-button"},{wait:500},{if:{exists:".t-declineAllButton"},then:[{click:".t-declineAllButton"}],else:[{waitForThenClick:".t-preference-modal input[type=checkbox][checked]:not([disabled])",all:!0},{waitForThenClick:".t-saveButton"}]}]}]},{name:"termsfeed",vendorUrl:"https://termsfeed.com",comment:"v4.x.x",prehideSelectors:[".termsfeed-com---nb"],detectCmp:[{exists:".termsfeed-com---nb"}],detectPopup:[{visible:".termsfeed-com---nb"}],optIn:[{waitForThenClick:".cc-nb-okagree"}],optOut:[{waitForThenClick:".cc-nb-reject"}]},{name:"termsfeed3",vendorUrl:"https://termsfeed.com",comment:"v3.x.x",prehideSelectors:[".cc_dialog.cc_css_reboot,.cc_overlay_lock"],detectCmp:[{exists:".cc_dialog.cc_css_reboot"}],detectPopup:[{visible:".cc_dialog.cc_css_reboot"}],optIn:[{waitForThenClick:".cc_dialog.cc_css_reboot .cc_b_ok"}],optOut:[{if:{exists:".cc_dialog.cc_css_reboot .cc_b_cp"},then:[{click:".cc_dialog.cc_css_reboot .cc_b_cp"},{waitForVisible:".cookie-consent-preferences-dialog .cc_cp_f_save button"},{waitForThenClick:".cookie-consent-preferences-dialog .cc_cp_f_save button"}],else:[{hide:".cc_dialog.cc_css_reboot,.cc_overlay_lock"}]}]},{name:"Test page cosmetic CMP",cosmetic:!0,prehideSelectors:["#privacy-test-page-cmp-test-prehide"],detectCmp:[{exists:"#privacy-test-page-cmp-test-banner"}],detectPopup:[{visible:"#privacy-test-page-cmp-test-banner"}],optIn:[{waitFor:"#accept-all"},{click:"#accept-all"}],optOut:[{hide:"#privacy-test-page-cmp-test-banner"}],test:[{wait:500},{eval:"EVAL_TESTCMP_COSMETIC_0"}]},{name:"Test page CMP",prehideSelectors:["#reject-all"],detectCmp:[{exists:"#privacy-test-page-cmp-test"}],detectPopup:[{visible:"#privacy-test-page-cmp-test"}],optIn:[{waitFor:"#accept-all"},{click:"#accept-all"}],optOut:[{waitFor:"#reject-all"},{click:"#reject-all"}],test:[{eval:"EVAL_TESTCMP_0"}]},{name:"thalia.de",prehideSelectors:[".consent-banner-box"],detectCmp:[{exists:"consent-banner[component=consent-banner]"}],detectPopup:[{visible:".consent-banner-box"}],optIn:[{click:".button-zustimmen"}],optOut:[{click:"button[data-consent=disagree]"}]},{name:"thefreedictionary.com",prehideSelectors:["#cmpBanner"],detectCmp:[{exists:"#cmpBanner"}],detectPopup:[{visible:"#cmpBanner"}],optIn:[{eval:"EVAL_THEFREEDICTIONARY_1"}],optOut:[{eval:"EVAL_THEFREEDICTIONARY_0"}]},{name:"theverge",runContext:{frame:!1,main:!0,urlPattern:"^https://(www)?\\.theverge\\.com"},intermediate:!1,prehideSelectors:[".duet--cta--cookie-banner"],detectCmp:[{exists:".duet--cta--cookie-banner"}],detectPopup:[{visible:".duet--cta--cookie-banner"}],optIn:[{click:".duet--cta--cookie-banner button.tracking-12",all:!1}],optOut:[{click:".duet--cta--cookie-banner button.tracking-12 > span"}],test:[{eval:"EVAL_THEVERGE_0"}]},{name:"tidbits-com",cosmetic:!0,prehideSelectors:["#eu_cookie_law_widget-2"],detectCmp:[{exists:"#eu_cookie_law_widget-2"}],detectPopup:[{visible:"#eu_cookie_law_widget-2"}],optIn:[{click:"#eu-cookie-law form > input.accept"}],optOut:[{hide:"#eu_cookie_law_widget-2"}]},{name:"tractor-supply",runContext:{urlPattern:"^https://www\\.tractorsupply\\.com/"},cosmetic:!0,prehideSelectors:[".tsc-cookie-banner"],detectCmp:[{exists:".tsc-cookie-banner"}],detectPopup:[{visible:".tsc-cookie-banner"}],optIn:[{click:"#cookie-banner-cancel"}],optOut:[{hide:".tsc-cookie-banner"}]},{name:"trader-joes-com",cosmetic:!0,prehideSelectors:['div.aem-page > div[class^="CookiesAlert_cookiesAlert__"]'],detectCmp:[{exists:'div.aem-page > div[class^="CookiesAlert_cookiesAlert__"]'}],detectPopup:[{visible:'div.aem-page > div[class^="CookiesAlert_cookiesAlert__"]'}],optIn:[{click:'div[class^="CookiesAlert_cookiesAlert__container__"] button'}],optOut:[{hide:'div.aem-page > div[class^="CookiesAlert_cookiesAlert__"]'}]},{name:"transcend",vendorUrl:"https://unknown",cosmetic:!0,prehideSelectors:["#transcend-consent-manager"],detectCmp:[{exists:"#transcend-consent-manager"}],detectPopup:[{visible:"#transcend-consent-manager"}],optIn:[{waitForThenClick:["#transcend-consent-manager","#consentManagerMainDialog .inner-container button"]}],optOut:[{hide:"#transcend-consent-manager"}]},{name:"transip-nl",runContext:{urlPattern:"^https://www\\.transip\\.nl/"},prehideSelectors:["#consent-modal"],detectCmp:[{any:[{exists:"#consent-modal"},{exists:"#privacy-settings-content"}]}],detectPopup:[{any:[{visible:"#consent-modal"},{visible:"#privacy-settings-content"}]}],optIn:[{click:'button[type="submit"]'}],optOut:[{if:{exists:"#privacy-settings-content"},then:[{click:'button[type="submit"]'}],else:[{click:"div.one-modal__action-footer-column--secondary > a"}]}]},{name:"tropicfeel-com",prehideSelectors:["#shopify-section-cookies-controller"],detectCmp:[{exists:"#shopify-section-cookies-controller"}],detectPopup:[{visible:"#shopify-section-cookies-controller #cookies-controller-main-pane",check:"any"}],optIn:[{waitForThenClick:"#cookies-controller-main-pane form[data-form-allow-all] button"}],optOut:[{click:"#cookies-controller-main-pane a[data-tab-target=manage-cookies]"},{waitFor:"#manage-cookies-pane.active"},{click:"#manage-cookies-pane.active input[type=checkbox][checked]:not([disabled])",all:!0},{click:"#manage-cookies-pane.active button[type=submit]"}],test:[]},{name:"true-car",runContext:{urlPattern:"^https://www\\.truecar\\.com/"},cosmetic:!0,prehideSelectors:[['div[aria-labelledby="cookie-banner-heading"]']],detectCmp:[{exists:'div[aria-labelledby="cookie-banner-heading"]'}],detectPopup:[{visible:'div[aria-labelledby="cookie-banner-heading"]'}],optIn:[{click:'div[aria-labelledby="cookie-banner-heading"] > button[aria-label="Close"]'}],optOut:[{hide:'div[aria-labelledby="cookie-banner-heading"]'}]},{name:"truyo",prehideSelectors:["#truyo-consent-module"],detectCmp:[{exists:"#truyo-cookieBarContent"}],detectPopup:[{visible:"#truyo-consent-module"}],optIn:[{click:"button#acceptAllCookieButton"}],optOut:[{click:"button#declineAllCookieButton"}]},{name:"twitch-mobile",vendorUrl:"https://m.twitch.tv/",cosmetic:!0,runContext:{urlPattern:"^https?://m\\.twitch\\.tv"},prehideSelectors:[],detectCmp:[{exists:'.ReactModal__Overlay [href="https://www.twitch.tv/p/cookie-policy"]'}],detectPopup:[{visible:'.ReactModal__Overlay [href="https://www.twitch.tv/p/cookie-policy"]'}],optIn:[{waitForThenClick:'.ReactModal__Overlay:has([href="https://www.twitch.tv/p/cookie-policy"]) button'}],optOut:[{hide:'.ReactModal__Overlay:has([href="https://www.twitch.tv/p/cookie-policy"])'}]},{name:"twitch.tv",runContext:{urlPattern:"^https?://(www\\.)?twitch\\.tv"},prehideSelectors:["div:has(> .consent-banner .consent-banner__content--gdpr-v2),.ReactModalPortal:has([data-a-target=consent-modal-save])"],detectCmp:[{exists:".consent-banner .consent-banner__content--gdpr-v2"}],detectPopup:[{visible:".consent-banner .consent-banner__content--gdpr-v2"}],optIn:[{click:'button[data-a-target="consent-banner-accept"]'}],optOut:[{hide:"div:has(> .consent-banner .consent-banner__content--gdpr-v2)"},{click:'button[data-a-target="consent-banner-manage-preferences"]'},{waitFor:"input[type=checkbox][data-a-target=tw-checkbox]"},{click:"input[type=checkbox][data-a-target=tw-checkbox][checked]:not([disabled])",all:!0,optional:!0},{waitForThenClick:"[data-a-target=consent-modal-save]"},{waitForVisible:".ReactModalPortal:has([data-a-target=consent-modal-save])",check:"none"}]},{name:"twitter",runContext:{urlPattern:"^https://([a-z0-9-]+\\.)?twitter\\.com/"},prehideSelectors:['[data-testid="BottomBar"]'],detectCmp:[{exists:'[data-testid="BottomBar"] div'}],detectPopup:[{visible:'[data-testid="BottomBar"] div'}],optIn:[{waitForThenClick:'[data-testid="BottomBar"] > div:has(>div:first-child>div:last-child>span[role=button]) > div:last-child > div[role=button]:first-child'}],optOut:[{waitForThenClick:'[data-testid="BottomBar"] > div:has(>div:first-child>div:last-child>span[role=button]) > div:last-child > div[role=button]:last-child'}],TODOtest:[{eval:"EVAL_document.cookie.includes('d_prefs=MjoxLGNvbnNlbnRfdmVyc2lvbjoy')"}]},{name:"ubuntu.com",prehideSelectors:["dialog.cookie-policy"],detectCmp:[{any:[{exists:"dialog.cookie-policy header"},{exists:'xpath///*[@id="modal"]/div/header'}]}],detectPopup:[{any:[{visible:"dialog header"},{visible:'xpath///*[@id="modal"]/div/header'}]}],optIn:[{any:[{waitForThenClick:"#cookie-policy-button-accept"},{waitForThenClick:'xpath///*[@id="cookie-policy-button-accept"]'}]}],optOut:[{any:[{waitForThenClick:"button.js-manage"},{waitForThenClick:'xpath///*[@id="cookie-policy-content"]/p[4]/button[2]'}]},{waitForThenClick:"dialog.cookie-policy .p-switch__input:checked",optional:!0,all:!0,timeout:500},{any:[{waitForThenClick:"dialog.cookie-policy .js-save-preferences"},{waitForThenClick:'xpath///*[@id="modal"]/div/button'}]}],test:[{eval:"EVAL_UBUNTU_COM_0"}]},{name:"UK Cookie Consent",prehideSelectors:["#catapult-cookie-bar"],cosmetic:!0,detectCmp:[{exists:"#catapult-cookie-bar"}],detectPopup:[{exists:".has-cookie-bar #catapult-cookie-bar"}],optIn:[{click:"#catapultCookie"}],optOut:[{hide:"#catapult-cookie-bar"}],test:[{eval:"EVAL_UK_COOKIE_CONSENT_0"}]},{name:"urbanarmorgear-com",cosmetic:!0,prehideSelectors:['div[class^="Layout__CookieBannerContainer-"]'],detectCmp:[{exists:'div[class^="Layout__CookieBannerContainer-"]'}],detectPopup:[{visible:'div[class^="Layout__CookieBannerContainer-"]'}],optIn:[{click:'button[class^="CookieBanner__AcceptButton"]'}],optOut:[{hide:'div[class^="Layout__CookieBannerContainer-"]'}]},{name:"usercentrics-api",detectCmp:[{exists:"#usercentrics-root,#usercentrics-cmp-ui"}],detectPopup:[{eval:"EVAL_USERCENTRICS_API_0"},{if:{exists:"#usercentrics-cmp-ui"},then:[{waitForVisible:"#usercentrics-cmp-ui",timeout:2e3}],else:[{exists:["#usercentrics-root","[data-testid=uc-container]"]},{waitForVisible:"#usercentrics-root",timeout:2e3}]}],optIn:[{eval:"EVAL_USERCENTRICS_API_3"},{eval:"EVAL_USERCENTRICS_API_1"},{eval:"EVAL_USERCENTRICS_API_5"}],optOut:[{eval:"EVAL_USERCENTRICS_API_1"},{eval:"EVAL_USERCENTRICS_API_2"}],test:[{eval:"EVAL_USERCENTRICS_API_6"}]},{name:"usercentrics-button",detectCmp:[{exists:"#usercentrics-button"}],detectPopup:[{visible:"#usercentrics-button #uc-btn-accept-banner"}],optIn:[{click:"#usercentrics-button #uc-btn-accept-banner"}],optOut:[{click:"#usercentrics-button #uc-btn-deny-banner"}],test:[{eval:"EVAL_USERCENTRICS_BUTTON_0"}]},{name:"uswitch.com",runContext:{main:!0,frame:!1,urlPattern:"^https://(www\\.)?uswitch\\.com/"},prehideSelectors:[".ucb"],detectCmp:[{exists:".ucb-banner"}],detectPopup:[{visible:".ucb-banner"}],optIn:[{waitForThenClick:".ucb-banner .ucb-btn-accept"}],optOut:[{waitForThenClick:".ucb-banner .ucb-btn-save"}]},{name:"vodafone.de",runContext:{urlPattern:"^https://www\\.vodafone\\.de/"},prehideSelectors:[".dip-consent,.dip-consent-container"],detectCmp:[{exists:".dip-consent-container"}],detectPopup:[{visible:".dip-consent-content"}],optOut:[{click:'.dip-consent-btn[tabindex="2"]'}],optIn:[{click:'.dip-consent-btn[tabindex="1"]'}]},{name:"waitrose.com",prehideSelectors:["div[aria-labelledby=CookieAlertModalHeading]","section[data-test=initial-waitrose-cookie-consent-banner]","section[data-test=cookie-consent-modal]"],detectCmp:[{exists:"section[data-test=initial-waitrose-cookie-consent-banner]"}],detectPopup:[{visible:"section[data-test=initial-waitrose-cookie-consent-banner]"}],optIn:[{click:"button[data-test=accept-all]"}],optOut:[{click:"button[data-test=manage-cookies]"},{wait:200},{eval:"EVAL_WAITROSE_0"},{click:"button[data-test=submit]"}],test:[{eval:"EVAL_WAITROSE_1"}]},{name:"webflow",vendorUrl:"https://webflow.com/",prehideSelectors:[".fs-cc-components"],detectCmp:[{exists:".fs-cc-components"}],detectPopup:[{visible:".fs-cc-components"},{visible:"[fs-cc=banner]"}],optIn:[{wait:500},{waitForThenClick:"[fs-cc=banner] [fs-cc=allow]"}],optOut:[{wait:500},{waitForThenClick:"[fs-cc=banner] [fs-cc=deny]"}]},{name:"wetransfer.com",detectCmp:[{exists:".welcome__cookie-notice"}],detectPopup:[{visible:".welcome__cookie-notice"}],optIn:[{click:".welcome__button--accept"}],optOut:[{click:".welcome__button--decline"}]},{name:"whitepages.com",runContext:{urlPattern:"^https://www\\.whitepages\\.com/"},cosmetic:!0,prehideSelectors:[".cookie-wrapper, .cookie-overlay"],detectCmp:[{exists:".cookie-wrapper"}],detectPopup:[{visible:".cookie-overlay"}],optIn:[{click:'button[aria-label="Got it"]'}],optOut:[{hide:".cookie-wrapper"}]},{name:"wolframalpha",vendorUrl:"https://www.wolframalpha.com",prehideSelectors:[],cosmetic:!0,runContext:{urlPattern:"^https://www\\.wolframalpha\\.com/"},detectCmp:[{exists:"section._a_yb"}],detectPopup:[{visible:"section._a_yb"}],optIn:[{waitForThenClick:"section._a_yb button"}],optOut:[{hide:"section._a_yb"}]},{name:"woo-commerce-com",prehideSelectors:[".wccom-comp-privacy-banner .wccom-privacy-banner"],detectCmp:[{exists:".wccom-comp-privacy-banner .wccom-privacy-banner"}],detectPopup:[{exists:".wccom-comp-privacy-banner .wccom-privacy-banner"}],optIn:[{click:".wccom-privacy-banner__content-buttons button.is-primary"}],optOut:[{click:".wccom-privacy-banner__content-buttons button.is-secondary"},{waitForThenClick:"input[type=checkbox][checked]:not([disabled])",all:!0},{click:"div.wccom-modal__footer > button"}]},{name:"WP Cookie Notice for GDPR",vendorUrl:"https://wordpress.org/plugins/gdpr-cookie-consent/",prehideSelectors:["#gdpr-cookie-consent-bar"],detectCmp:[{exists:"#gdpr-cookie-consent-bar"}],detectPopup:[{visible:"#gdpr-cookie-consent-bar"}],optIn:[{waitForThenClick:"#gdpr-cookie-consent-bar #cookie_action_accept"}],optOut:[{waitForThenClick:"#gdpr-cookie-consent-bar #cookie_action_reject"}],test:[{eval:"EVAL_WP_COOKIE_NOTICE_0"}]},{name:"wpcc",cosmetic:!0,prehideSelectors:[".wpcc-container"],detectCmp:[{exists:".wpcc-container"}],detectPopup:[{exists:".wpcc-container .wpcc-message"}],optIn:[{click:".wpcc-compliance .wpcc-btn"}],optOut:[{hide:".wpcc-container"}]},{name:"xe.com",vendorUrl:"https://www.xe.com/",runContext:{urlPattern:"^https://www\\.xe\\.com/"},prehideSelectors:["[class*=ConsentBanner]"],detectCmp:[{exists:"[class*=ConsentBanner]"}],detectPopup:[{visible:"[class*=ConsentBanner]"}],optIn:[{waitForThenClick:"[class*=ConsentBanner] .egnScw"}],optOut:[{wait:1e3},{waitForThenClick:"[class*=ConsentBanner] .frDWEu"},{waitForThenClick:"[class*=ConsentBanner] .hXIpFU"}],test:[{eval:"EVAL_XE_TEST"}]},{name:"xhamster-eu",prehideSelectors:[".cookies-modal"],detectCmp:[{exists:".cookies-modal"}],detectPopup:[{exists:".cookies-modal"}],optIn:[{click:"button.cmd-button-accept-all"}],optOut:[{click:"button.cmd-button-reject-all"}]},{name:"xhamster-us",runContext:{urlPattern:"^https://(www\\.)?xhamster\\d?\\.com"},cosmetic:!0,prehideSelectors:[".cookie-announce"],detectCmp:[{exists:".cookie-announce"}],detectPopup:[{visible:".cookie-announce .announce-text"}],optIn:[{click:".cookie-announce button.xh-button"}],optOut:[{hide:".cookie-announce"}]},{name:"xing.com",detectCmp:[{exists:"div[class^=cookie-consent-CookieConsent]"}],detectPopup:[{exists:"div[class^=cookie-consent-CookieConsent]"}],optIn:[{click:"#consent-accept-button"}],optOut:[{click:"#consent-settings-button"},{click:".consent-banner-button-accept-overlay"}],test:[{eval:"EVAL_XING_0"}]},{name:"xnxx-com",cosmetic:!0,prehideSelectors:["#cookies-use-alert"],detectCmp:[{exists:"#cookies-use-alert"}],detectPopup:[{visible:"#cookies-use-alert"}],optIn:[{click:"#cookies-use-alert .close"}],optOut:[{hide:"#cookies-use-alert"}]},{name:"xvideos",vendorUrl:"https://xvideos.com",runContext:{urlPattern:"^https://[^/]*xvideos\\.com/"},prehideSelectors:[],detectCmp:[{exists:".disclaimer-opened #disclaimer-cookies"}],detectPopup:[{visible:".disclaimer-opened #disclaimer-cookies"}],optIn:[{waitForThenClick:"#disclaimer-accept_cookies"}],optOut:[{waitForThenClick:"#disclaimer-reject_cookies"}]},{name:"Yahoo",runContext:{urlPattern:"^https://consent\\.yahoo\\.com/v2/"},prehideSelectors:["#reject-all"],detectCmp:[{exists:"#consent-page"}],detectPopup:[{visible:"#consent-page"}],optIn:[{waitForThenClick:"#consent-page button[value=agree]"}],optOut:[{waitForThenClick:"#consent-page button[value=reject]"}]},{name:"youporn.com",cosmetic:!0,prehideSelectors:[".euCookieModal, #js_euCookieModal"],detectCmp:[{exists:".euCookieModal"}],detectPopup:[{exists:".euCookieModal, #js_euCookieModal"}],optIn:[{click:'button[name="user_acceptCookie"]'}],optOut:[{hide:".euCookieModal"}]},{name:"youtube-desktop",prehideSelectors:["tp-yt-iron-overlay-backdrop.opened","ytd-consent-bump-v2-lightbox"],detectCmp:[{exists:"ytd-consent-bump-v2-lightbox tp-yt-paper-dialog"},{exists:'ytd-consent-bump-v2-lightbox tp-yt-paper-dialog a[href^="https://consent.youtube.com/"]'}],detectPopup:[{visible:"ytd-consent-bump-v2-lightbox tp-yt-paper-dialog"}],optIn:[{waitForThenClick:"ytd-consent-bump-v2-lightbox .eom-buttons .eom-button-row:first-child ytd-button-renderer:last-child #button,ytd-consent-bump-v2-lightbox .eom-buttons .eom-button-row:first-child ytd-button-renderer:last-child button"},{wait:500}],optOut:[{waitForThenClick:"ytd-consent-bump-v2-lightbox .eom-buttons .eom-button-row:first-child ytd-button-renderer:first-child #button,ytd-consent-bump-v2-lightbox .eom-buttons .eom-button-row:first-child ytd-button-renderer:first-child button"},{wait:500}],test:[{wait:500},{eval:"EVAL_YOUTUBE_DESKTOP_0"}]},{name:"youtube-mobile",prehideSelectors:[".consent-bump-v2-lightbox"],detectCmp:[{exists:"ytm-consent-bump-v2-renderer"}],detectPopup:[{visible:"ytm-consent-bump-v2-renderer"}],optIn:[{waitForThenClick:"ytm-consent-bump-v2-renderer .privacy-terms + .one-col-dialog-buttons c3-material-button:first-child button, ytm-consent-bump-v2-renderer .privacy-terms + .one-col-dialog-buttons ytm-button-renderer:first-child button"},{wait:500}],optOut:[{waitForThenClick:"ytm-consent-bump-v2-renderer .privacy-terms + .one-col-dialog-buttons c3-material-button:nth-child(2) button, ytm-consent-bump-v2-renderer .privacy-terms + .one-col-dialog-buttons ytm-button-renderer:nth-child(2) button"},{wait:500}],test:[{wait:500},{eval:"EVAL_YOUTUBE_MOBILE_0"}]},{name:"zdf",prehideSelectors:["#zdf-cmp-banner-sdk"],detectCmp:[{exists:"#zdf-cmp-banner-sdk"}],detectPopup:[{visible:"#zdf-cmp-main.zdf-cmp-show"}],optIn:[{waitForThenClick:"#zdf-cmp-main #zdf-cmp-accept-btn"}],optOut:[{waitForThenClick:"#zdf-cmp-main #zdf-cmp-deny-btn"}],test:[]},{name:"zentralruf-de",runContext:{urlPattern:"^https://(www\\.)?zentralruf\\.de"},prehideSelectors:["#cookie_modal_wrapper"],detectCmp:[{exists:"#cookie_modal_wrapper"}],detectPopup:[{visible:"#cookie_modal_wrapper"}],optIn:[{waitForThenClick:"#cookie_modal_wrapper #cookie_modal_button_consent_all"}],optOut:[{waitForThenClick:"#cookie_modal_wrapper #cookie_modal_button_choose"}]}],A={"didomi.io":{detectors:[{presentMatcher:{target:{selector:"#didomi-host, #didomi-notice"},type:"css"},showingMatcher:{target:{selector:"body.didomi-popup-open, .didomi-notice-banner"},type:"css"}}],methods:[{action:{target:{selector:".didomi-popup-notice-buttons .didomi-button:not(.didomi-button-highlight), .didomi-notice-banner .didomi-learn-more-button"},type:"click"},name:"OPEN_OPTIONS"},{action:{actions:[{retries:50,target:{selector:"#didomi-purpose-cookies"},type:"waitcss",waitTime:50},{consents:[{description:"Share (everything) with others",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-share_whith_others]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-share_whith_others]:last-child"},type:"click"},type:"X"},{description:"Information storage and access",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-cookies]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-cookies]:last-child"},type:"click"},type:"D"},{description:"Content selection, offers and marketing",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-CL-T1Rgm7]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-CL-T1Rgm7]:last-child"},type:"click"},type:"E"},{description:"Analytics",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-analytics]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-analytics]:last-child"},type:"click"},type:"B"},{description:"Analytics",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-M9NRHJe3G]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-M9NRHJe3G]:last-child"},type:"click"},type:"B"},{description:"Ad and content selection",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-advertising_personalization]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-advertising_personalization]:last-child"},type:"click"},type:"F"},{description:"Ad and content selection",falseAction:{parent:{childFilter:{target:{selector:"#didomi-purpose-pub-ciblee"}},selector:".didomi-consent-popup-data-processing, .didomi-components-accordion-label-container"},target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-pub-ciblee]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-pub-ciblee]:last-child"},type:"click"},type:"F"},{description:"Ad and content selection - basics",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-q4zlJqdcD]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-q4zlJqdcD]:last-child"},type:"click"},type:"F"},{description:"Ad and content selection - partners and subsidiaries",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-partenaire-cAsDe8jC]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-partenaire-cAsDe8jC]:last-child"},type:"click"},type:"F"},{description:"Ad and content selection - social networks",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-p4em9a8m]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-p4em9a8m]:last-child"},type:"click"},type:"F"},{description:"Ad and content selection - others",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-autres-pub]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-autres-pub]:last-child"},type:"click"},type:"F"},{description:"Social networks",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-reseauxsociaux]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-reseauxsociaux]:last-child"},type:"click"},type:"A"},{description:"Social networks",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-social_media]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-social_media]:last-child"},type:"click"},type:"A"},{description:"Content selection",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-content_personalization]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-content_personalization]:last-child"},type:"click"},type:"E"},{description:"Ad delivery",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-ad_delivery]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-ad_delivery]:last-child"},type:"click"},type:"F"}],type:"consent"},{action:{consents:[{matcher:{childFilter:{target:{selector:":not(.didomi-components-radio__option--selected)"}},type:"css"},trueAction:{target:{selector:":nth-child(2)"},type:"click"},falseAction:{target:{selector:":first-child"},type:"click"},type:"X"}],type:"consent"},target:{selector:".didomi-components-radio"},type:"foreach"}],type:"list"},name:"DO_CONSENT"},{action:{parent:{selector:".didomi-consent-popup-footer .didomi-consent-popup-actions"},target:{selector:".didomi-components-button:first-child"},type:"click"},name:"SAVE_CONSENT"}]},oil:{detectors:[{presentMatcher:{target:{selector:".as-oil-content-overlay"},type:"css"},showingMatcher:{target:{selector:".as-oil-content-overlay"},type:"css"}}],methods:[{action:{actions:[{target:{selector:".as-js-advanced-settings"},type:"click"},{retries:"10",target:{selector:".as-oil-cpc__purpose-container"},type:"waitcss",waitTime:"250"}],type:"list"},name:"OPEN_OPTIONS"},{action:{actions:[{consents:[{matcher:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:["Information storage and access","Opbevaring af og adgang til oplysninger på din enhed"]},target:{selector:"input"},type:"checkbox"},toggleAction:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:["Information storage and access","Opbevaring af og adgang til oplysninger på din enhed"]},target:{selector:".as-oil-cpc__switch"},type:"click"},type:"D"},{matcher:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:["Personlige annoncer","Personalisation"]},target:{selector:"input"},type:"checkbox"},toggleAction:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:["Personlige annoncer","Personalisation"]},target:{selector:".as-oil-cpc__switch"},type:"click"},type:"E"},{matcher:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:["Annoncevalg, levering og rapportering","Ad selection, delivery, reporting"]},target:{selector:"input"},type:"checkbox"},toggleAction:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:["Annoncevalg, levering og rapportering","Ad selection, delivery, reporting"]},target:{selector:".as-oil-cpc__switch"},type:"click"},type:"F"},{matcher:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:["Personalisering af indhold","Content selection, delivery, reporting"]},target:{selector:"input"},type:"checkbox"},toggleAction:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:["Personalisering af indhold","Content selection, delivery, reporting"]},target:{selector:".as-oil-cpc__switch"},type:"click"},type:"E"},{matcher:{parent:{childFilter:{target:{selector:".as-oil-cpc__purpose-header",textFilter:["Måling","Measurement"]}},selector:".as-oil-cpc__purpose-container"},target:{selector:"input"},type:"checkbox"},toggleAction:{parent:{childFilter:{target:{selector:".as-oil-cpc__purpose-header",textFilter:["Måling","Measurement"]}},selector:".as-oil-cpc__purpose-container"},target:{selector:".as-oil-cpc__switch"},type:"click"},type:"B"},{matcher:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:"Google"},target:{selector:"input"},type:"checkbox"},toggleAction:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:"Google"},target:{selector:".as-oil-cpc__switch"},type:"click"},type:"F"}],type:"consent"}],type:"list"},name:"DO_CONSENT"},{action:{target:{selector:".as-oil__btn-optin"},type:"click"},name:"SAVE_CONSENT"},{action:{target:{selector:"div.as-oil"},type:"hide"},name:"HIDE_CMP"}]},optanon:{detectors:[{presentMatcher:{target:{selector:"#optanon-menu, .optanon-alert-box-wrapper"},type:"css"},showingMatcher:{target:{displayFilter:!0,selector:".optanon-alert-box-wrapper"},type:"css"}}],methods:[{action:{actions:[{target:{selector:".optanon-alert-box-wrapper .optanon-toggle-display, a[onclick*='OneTrust.ToggleInfoDisplay()'], a[onclick*='Optanon.ToggleInfoDisplay()']"},type:"click"}],type:"list"},name:"OPEN_OPTIONS"},{action:{actions:[{target:{selector:".preference-menu-item #Your-privacy"},type:"click"},{target:{selector:"#optanon-vendor-consent-text"},type:"click"},{action:{consents:[{matcher:{target:{selector:"input"},type:"checkbox"},toggleAction:{target:{selector:"label"},type:"click"},type:"X"}],type:"consent"},target:{selector:"#optanon-vendor-consent-list .vendor-item"},type:"foreach"},{target:{selector:".vendor-consent-back-link"},type:"click"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-performance"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-performance"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"B"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-functional"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-functional"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"E"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-advertising"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-advertising"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"F"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-social"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-social"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"B"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Social Media Cookies"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Social Media Cookies"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"B"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Personalisation"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Personalisation"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"E"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Site monitoring cookies"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Site monitoring cookies"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"B"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Third party privacy-enhanced content"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Third party privacy-enhanced content"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"X"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Performance & Advertising Cookies"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Performance & Advertising Cookies"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"F"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Information storage and access"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Information storage and access"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"D"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Ad selection, delivery, reporting"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Ad selection, delivery, reporting"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"F"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Content selection, delivery, reporting"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Content selection, delivery, reporting"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"E"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Measurement"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Measurement"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"B"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Recommended Cookies"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Recommended Cookies"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"X"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Unclassified Cookies"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Unclassified Cookies"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"X"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Analytical Cookies"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Analytical Cookies"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"B"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Marketing Cookies"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Marketing Cookies"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"F"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Personalization"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Personalization"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"E"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Ad Selection, Delivery & Reporting"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Ad Selection, Delivery & Reporting"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"F"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Content Selection, Delivery & Reporting"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Content Selection, Delivery & Reporting"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"E"}],type:"consent"}],type:"list"},type:"ifcss"}],type:"list"},name:"DO_CONSENT"},{action:{parent:{selector:".optanon-save-settings-button"},target:{selector:".optanon-white-button-middle"},type:"click"},name:"SAVE_CONSENT"},{action:{actions:[{target:{selector:"#optanon-popup-wrapper"},type:"hide"},{target:{selector:"#optanon-popup-bg"},type:"hide"},{target:{selector:".optanon-alert-box-wrapper"},type:"hide"}],type:"list"},name:"HIDE_CMP"}]},quantcast2:{detectors:[{presentMatcher:{target:{selector:"[data-tracking-opt-in-overlay]"},type:"css"},showingMatcher:{target:{selector:"[data-tracking-opt-in-overlay] [data-tracking-opt-in-learn-more]"},type:"css"}}],methods:[{action:{target:{selector:"[data-tracking-opt-in-overlay] [data-tracking-opt-in-learn-more]"},type:"click"},name:"OPEN_OPTIONS"},{action:{actions:[{type:"wait",waitTime:500},{action:{actions:[{target:{selector:"div",textFilter:["Information storage and access"]},trueAction:{consents:[{matcher:{target:{selector:"input"},type:"checkbox"},toggleAction:{target:{selector:"label"},type:"click"},type:"D"}],type:"consent"},type:"ifcss"},{target:{selector:"div",textFilter:["Personalization"]},trueAction:{consents:[{matcher:{target:{selector:"input"},type:"checkbox"},toggleAction:{target:{selector:"label"},type:"click"},type:"F"}],type:"consent"},type:"ifcss"},{target:{selector:"div",textFilter:["Ad selection, delivery, reporting"]},trueAction:{consents:[{matcher:{target:{selector:"input"},type:"checkbox"},toggleAction:{target:{selector:"label"},type:"click"},type:"F"}],type:"consent"},type:"ifcss"},{target:{selector:"div",textFilter:["Content selection, delivery, reporting"]},trueAction:{consents:[{matcher:{target:{selector:"input"},type:"checkbox"},toggleAction:{target:{selector:"label"},type:"click"},type:"E"}],type:"consent"},type:"ifcss"},{target:{selector:"div",textFilter:["Measurement"]},trueAction:{consents:[{matcher:{target:{selector:"input"},type:"checkbox"},toggleAction:{target:{selector:"label"},type:"click"},type:"B"}],type:"consent"},type:"ifcss"},{target:{selector:"div",textFilter:["Other Partners"]},trueAction:{consents:[{matcher:{target:{selector:"input"},type:"checkbox"},toggleAction:{target:{selector:"label"},type:"click"},type:"X"}],type:"consent"},type:"ifcss"}],type:"list"},parent:{childFilter:{target:{selector:"input"}},selector:"[data-tracking-opt-in-overlay] > div > div"},target:{childFilter:{target:{selector:"input"}},selector:":scope > div"},type:"foreach"}],type:"list"},name:"DO_CONSENT"},{action:{target:{selector:"[data-tracking-opt-in-overlay] [data-tracking-opt-in-save]"},type:"click"},name:"SAVE_CONSENT"}]},springer:{detectors:[{presentMatcher:{parent:null,target:{selector:".cmp-app_gdpr"},type:"css"},showingMatcher:{parent:null,target:{displayFilter:!0,selector:".cmp-popup_popup"},type:"css"}}],methods:[{action:{actions:[{target:{selector:".cmp-intro_rejectAll"},type:"click"},{type:"wait",waitTime:250},{target:{selector:".cmp-purposes_purposeItem:not(.cmp-purposes_selectedPurpose)"},type:"click"}],type:"list"},name:"OPEN_OPTIONS"},{action:{consents:[{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Przechowywanie informacji na urządzeniu lub dostęp do nich",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Przechowywanie informacji na urządzeniu lub dostęp do nich",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"D"},{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Wybór podstawowych reklam",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Wybór podstawowych reklam",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"F"},{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Tworzenie profilu spersonalizowanych reklam",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Tworzenie profilu spersonalizowanych reklam",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"F"},{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Wybór spersonalizowanych reklam",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Wybór spersonalizowanych reklam",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"E"},{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Tworzenie profilu spersonalizowanych treści",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Tworzenie profilu spersonalizowanych treści",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"E"},{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Wybór spersonalizowanych treści",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Wybór spersonalizowanych treści",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"B"},{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Pomiar wydajności reklam",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Pomiar wydajności reklam",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"B"},{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Pomiar wydajności treści",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Pomiar wydajności treści",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"B"},{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Stosowanie badań rynkowych w celu generowania opinii odbiorców",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Stosowanie badań rynkowych w celu generowania opinii odbiorców",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"X"},{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Opracowywanie i ulepszanie produktów",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Opracowywanie i ulepszanie produktów",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"X"}],type:"consent"},name:"DO_CONSENT"},{action:{target:{selector:".cmp-details_save"},type:"click"},name:"SAVE_CONSENT"}]},wordpressgdpr:{detectors:[{presentMatcher:{parent:null,target:{selector:".wpgdprc-consent-bar"},type:"css"},showingMatcher:{parent:null,target:{displayFilter:!0,selector:".wpgdprc-consent-bar"},type:"css"}}],methods:[{action:{parent:null,target:{selector:".wpgdprc-consent-bar .wpgdprc-consent-bar__settings",textFilter:null},type:"click"},name:"OPEN_OPTIONS"},{action:{actions:[{target:{selector:".wpgdprc-consent-modal .wpgdprc-button",textFilter:"Eyeota"},type:"click"},{consents:[{description:"Eyeota Cookies",matcher:{parent:{selector:".wpgdprc-consent-modal__description",textFilter:"Eyeota"},target:{selector:"input"},type:"checkbox"},toggleAction:{parent:{selector:".wpgdprc-consent-modal__description",textFilter:"Eyeota"},target:{selector:"label"},type:"click"},type:"X"}],type:"consent"},{target:{selector:".wpgdprc-consent-modal .wpgdprc-button",textFilter:"Advertising"},type:"click"},{consents:[{description:"Advertising Cookies",matcher:{parent:{selector:".wpgdprc-consent-modal__description",textFilter:"Advertising"},target:{selector:"input"},type:"checkbox"},toggleAction:{parent:{selector:".wpgdprc-consent-modal__description",textFilter:"Advertising"},target:{selector:"label"},type:"click"},type:"F"}],type:"consent"}],type:"list"},name:"DO_CONSENT"},{action:{parent:null,target:{selector:".wpgdprc-button",textFilter:"Save my settings"},type:"click"},name:"SAVE_CONSENT"}]}},E={autoconsent:f,consentomatic:A},x=Object.freeze({__proto__:null,autoconsent:f,consentomatic:A,default:E});const O=new class{constructor(e,t=null,o=null){if(this.id=a(),this.rules=[],this.foundCmp=null,this.state={lifecycle:"loading",prehideOn:!1,findCmpAttempts:0,detectedCmps:[],detectedPopups:[],selfTest:null},r.sendContentMessage=e,this.sendContentMessage=e,this.rules=[],this.updateState({lifecycle:"loading"}),this.addDynamicRules(),t)this.initialize(t,o);else{o&&this.parseDeclarativeRules(o);e({type:"init",url:window.location.href}),this.updateState({lifecycle:"waitingForInitResponse"})}this.domActions=new v(this)}initialize(e,t){const o=g(e);if(o.logs.lifecycle&&console.log("autoconsent init",window.location.href),this.config=o,o.enabled){if(t&&this.parseDeclarativeRules(t),this.rules=function(e,t){return e.filter((e=>(!t.disabledCmps||!t.disabledCmps.includes(e.name))&&(t.enableCosmeticRules||!e.isCosmetic)))}(this.rules,o),e.enablePrehide)if(document.documentElement)this.prehideElements();else{const e=()=>{window.removeEventListener("DOMContentLoaded",e),this.prehideElements()};window.addEventListener("DOMContentLoaded",e)}if("loading"===document.readyState){const e=()=>{window.removeEventListener("DOMContentLoaded",e),this.start()};window.addEventListener("DOMContentLoaded",e)}else this.start();this.updateState({lifecycle:"initialized"})}else o.logs.lifecycle&&console.log("autoconsent is disabled")}addDynamicRules(){C.forEach((e=>{this.rules.push(new e(this))}))}parseDeclarativeRules(e){Object.keys(e.consentomatic).forEach((t=>{this.addConsentomaticCMP(t,e.consentomatic[t])})),e.autoconsent.forEach((e=>{this.addDeclarativeCMP(e)}))}addDeclarativeCMP(e){this.rules.push(new u(e,this))}addConsentomaticCMP(e,t){this.rules.push(new m(`com_${e}`,t))}start(){window.requestIdleCallback?window.requestIdleCallback((()=>this._start()),{timeout:500}):this._start()}async _start(){const e=this.config.logs;e.lifecycle&&console.log(`Detecting CMPs on ${window.location.href}`),this.updateState({lifecycle:"started"});const t=await this.findCmp(this.config.detectRetries);if(this.updateState({detectedCmps:t.map((e=>e.name))}),0===t.length)return e.lifecycle&&console.log("no CMP found",location.href),this.config.enablePrehide&&this.undoPrehide(),this.updateState({lifecycle:"nothingDetected"}),!1;this.updateState({lifecycle:"cmpDetected"});const o=[],c=[];for(const e of t)e.isCosmetic?c.push(e):o.push(e);let i=!1,n=await this.detectPopups(o,(async e=>{i=await this.handlePopup(e)}));if(0===n.length&&(n=await this.detectPopups(c,(async e=>{i=await this.handlePopup(e)}))),0===n.length)return e.lifecycle&&console.log("no popup found"),this.config.enablePrehide&&this.undoPrehide(),!1;if(n.length>1){const t={msg:"Found multiple CMPs, check the detection rules.",cmps:n.map((e=>e.name))};e.errors&&console.warn(t.msg,t.cmps),this.sendContentMessage({type:"autoconsentError",details:t})}return i}async findCmp(e){const t=this.config.logs;this.updateState({findCmpAttempts:this.state.findCmpAttempts+1});const o=[];for(const e of this.rules)try{if(!e.checkRunContext())continue;await e.detectCmp()&&(t.lifecycle&&console.log(`Found CMP: ${e.name} ${window.location.href}`),this.sendContentMessage({type:"cmpDetected",url:location.href,cmp:e.name}),o.push(e))}catch(o){t.errors&&console.warn(`error detecting ${e.name}`,o)}return 0===o.length&&e>0?(await this.domActions.wait(500),this.findCmp(e-1)):o}async detectPopup(e){if(await this.waitForPopup(e).catch((t=>(this.config.logs.errors&&console.warn(`error waiting for a popup for ${e.name}`,t),!1))))return this.updateState({detectedPopups:this.state.detectedPopups.concat([e.name])}),this.sendContentMessage({type:"popupFound",cmp:e.name,url:location.href}),e;throw new Error("Popup is not shown")}async detectPopups(e,t){const o=e.map((e=>this.detectPopup(e)));await Promise.any(o).then((e=>{t(e)})).catch((()=>null));const c=await Promise.allSettled(o),i=[];for(const e of c)"fulfilled"===e.status&&i.push(e.value);return i}async handlePopup(e){return this.updateState({lifecycle:"openPopupDetected"}),this.config.enablePrehide&&!this.state.prehideOn&&this.prehideElements(),this.foundCmp=e,"optOut"===this.config.autoAction?await this.doOptOut():"optIn"===this.config.autoAction?await this.doOptIn():(this.config.logs.lifecycle&&console.log("waiting for opt-out signal...",location.href),!0)}async doOptOut(){const e=this.config.logs;let t;return this.updateState({lifecycle:"runningOptOut"}),this.foundCmp?(e.lifecycle&&console.log(`CMP ${this.foundCmp.name}: opt out on ${window.location.href}`),t=await this.foundCmp.optOut(),e.lifecycle&&console.log(`${this.foundCmp.name}: opt out result ${t}`)):(e.errors&&console.log("no CMP to opt out"),t=!1),this.config.enablePrehide&&this.undoPrehide(),this.sendContentMessage({type:"optOutResult",cmp:this.foundCmp?this.foundCmp.name:"none",result:t,scheduleSelfTest:this.foundCmp&&this.foundCmp.hasSelfTest,url:location.href}),t&&!this.foundCmp.isIntermediate?(this.sendContentMessage({type:"autoconsentDone",cmp:this.foundCmp.name,isCosmetic:this.foundCmp.isCosmetic,url:location.href}),this.updateState({lifecycle:"done"})):this.updateState({lifecycle:t?"optOutSucceeded":"optOutFailed"}),t}async doOptIn(){const e=this.config.logs;let t;return this.updateState({lifecycle:"runningOptIn"}),this.foundCmp?(e.lifecycle&&console.log(`CMP ${this.foundCmp.name}: opt in on ${window.location.href}`),t=await this.foundCmp.optIn(),e.lifecycle&&console.log(`${this.foundCmp.name}: opt in result ${t}`)):(e.errors&&console.log("no CMP to opt in"),t=!1),this.config.enablePrehide&&this.undoPrehide(),this.sendContentMessage({type:"optInResult",cmp:this.foundCmp?this.foundCmp.name:"none",result:t,scheduleSelfTest:!1,url:location.href}),t&&!this.foundCmp.isIntermediate?(this.sendContentMessage({type:"autoconsentDone",cmp:this.foundCmp.name,isCosmetic:this.foundCmp.isCosmetic,url:location.href}),this.updateState({lifecycle:"done"})):this.updateState({lifecycle:t?"optInSucceeded":"optInFailed"}),t}async doSelfTest(){const e=this.config.logs;let t;return this.foundCmp?(e.lifecycle&&console.log(`CMP ${this.foundCmp.name}: self-test on ${window.location.href}`),t=await this.foundCmp.test()):(e.errors&&console.log("no CMP to self test"),t=!1),this.sendContentMessage({type:"selfTestResult",cmp:this.foundCmp?this.foundCmp.name:"none",result:t,url:location.href}),this.updateState({selfTest:t}),t}async waitForPopup(e,t=5,o=500){const c=this.config.logs;c.lifecycle&&console.log("checking if popup is open...",e.name);const i=await e.detectPopup().catch((t=>(c.errors&&console.warn(`error detecting popup for ${e.name}`,t),!1)));return!i&&t>0?(await this.domActions.wait(o),this.waitForPopup(e,t-1,o)):(c.lifecycle&&console.log(e.name,"popup is "+(i?"open":"not open")),i)}prehideElements(){const e=this.config.logs,t=this.rules.filter((e=>e.prehideSelectors&&e.checkRunContext())).reduce(((e,t)=>[...e,...t.prehideSelectors]),["#didomi-popup,.didomi-popup-container,.didomi-popup-notice,.didomi-consent-popup-preferences,#didomi-notice,.didomi-popup-backdrop,.didomi-screen-medium"]);return this.updateState({prehideOn:!0}),setTimeout((()=>{this.config.enablePrehide&&this.state.prehideOn&&!["runningOptOut","runningOptIn"].includes(this.state.lifecycle)&&(e.lifecycle&&console.log("Process is taking too long, unhiding elements"),this.undoPrehide())}),this.config.prehideTimeout||2e3),this.domActions.prehide(t.join(","))}undoPrehide(){return this.updateState({prehideOn:!1}),this.domActions.undoPrehide()}updateState(e){Object.assign(this.state,e),this.sendContentMessage({type:"report",instanceId:this.id,url:window.location.href,mainFrame:window.top===window.self,state:this.state})}async receiveMessageCallback(e){const t=this.config?.logs;switch(t?.messages&&console.log("received from background",e,window.location.href),e.type){case"initResp":this.initialize(e.config,e.rules);break;case"optIn":await this.doOptIn();break;case"optOut":await this.doOptOut();break;case"selfTest":await this.doSelfTest();break;case"evalResp":!function(e,t){const o=r.pending.get(e);o?(r.pending.delete(e),o.timer&&window.clearTimeout(o.timer),o.resolve(t)):console.warn("no eval #",e)}(e.id,e.result)}}}((e=>{window.webkit.messageHandlers[e.type]&&window.webkit.messageHandlers[e.type].postMessage(e).then((e=>{O.receiveMessageCallback(e)}))}),null,x);window.autoconsentMessageCallback=e=>{O.receiveMessageCallback(e)}}(); +!function(){"use strict";var e=class e{static setBase(t){e.base=t}static findElement(t,o=null,i=!1){let c=null;return c=null!=o?Array.from(o.querySelectorAll(t.selector)):null!=e.base?Array.from(e.base.querySelectorAll(t.selector)):Array.from(document.querySelectorAll(t.selector)),null!=t.textFilter&&(c=c.filter((e=>{const o=e.textContent.toLowerCase();if(Array.isArray(t.textFilter)){let e=!1;for(const i of t.textFilter)if(-1!==o.indexOf(i.toLowerCase())){e=!0;break}return e}if(null!=t.textFilter)return-1!==o.indexOf(t.textFilter.toLowerCase())}))),null!=t.styleFilters&&(c=c.filter((e=>{const o=window.getComputedStyle(e);let i=!0;for(const e of t.styleFilters){const t=o[e.option];i=e.negated?i&&t!==e.value:i&&t===e.value}return i}))),null!=t.displayFilter&&(c=c.filter((e=>t.displayFilter?0!==e.offsetHeight:0===e.offsetHeight))),null!=t.iframeFilter&&(c=c.filter((()=>t.iframeFilter?window.location!==window.parent.location:window.location===window.parent.location))),null!=t.childFilter&&(c=c.filter((o=>{const i=e.base;e.setBase(o);const c=e.find(t.childFilter);return e.setBase(i),null!=c.target}))),i?c:(c.length>1&&console.warn("Multiple possible targets: ",c,t,o),c[0])}static find(t,o=!1){const i=[];if(null!=t.parent){const c=e.findElement(t.parent,null,o);if(null!=c){if(c instanceof Array)return c.forEach((c=>{const n=e.findElement(t.target,c,o);n instanceof Array?n.forEach((e=>{i.push({parent:c,target:e})})):i.push({parent:c,target:n})})),i;{const n=e.findElement(t.target,c,o);n instanceof Array?n.forEach((e=>{i.push({parent:c,target:e})})):i.push({parent:c,target:n})}}}else{const c=e.findElement(t.target,null,o);c instanceof Array?c.forEach((e=>{i.push({parent:null,target:e})})):i.push({parent:null,target:c})}return 0===i.length&&i.push({parent:null,target:null}),o?i:(1!==i.length&&console.warn("Multiple results found, even though multiple false",i),i[0])}};e.base=null;var t=e;function o(e){const o=t.find(e);return"css"===e.type?!!o.target:"checkbox"===e.type?!!o.target&&o.target.checked:void 0}async function i(e,a){switch(e.type){case"click":return async function(e){const o=t.find(e);null!=o.target&&o.target.click();return n(c)}(e);case"list":return async function(e,t){for(const o of e.actions)await i(o,t)}(e,a);case"consent":return async function(e,t){for(const c of e.consents){const e=-1!==t.indexOf(c.type);if(c.matcher&&c.toggleAction){o(c.matcher)!==e&&await i(c.toggleAction)}else e?await i(c.trueAction):await i(c.falseAction)}}(e,a);case"ifcss":return async function(e,o){const c=t.find(e);c.target?e.falseAction&&await i(e.falseAction,o):e.trueAction&&await i(e.trueAction,o)}(e,a);case"waitcss":return async function(e){await new Promise((o=>{let i=e.retries||10;const c=e.waitTime||250,n=()=>{const a=t.find(e);(e.negated&&a.target||!e.negated&&!a.target)&&i>0?(i-=1,setTimeout(n,c)):o()};n()}))}(e);case"foreach":return async function(e,o){const c=t.find(e,!0),n=t.base;for(const n of c)n.target&&(t.setBase(n.target),await i(e.action,o));t.setBase(n)}(e,a);case"hide":return async function(e){const o=t.find(e);o.target&&o.target.classList.add("Autoconsent-Hidden")}(e);case"slide":return async function(e){const o=t.find(e),i=t.find(e.dragTarget);if(o.target){const e=o.target.getBoundingClientRect(),t=i.target.getBoundingClientRect();let c=t.top-e.top,n=t.left-e.left;"y"===this.config.axis.toLowerCase()&&(n=0),"x"===this.config.axis.toLowerCase()&&(c=0);const a=window.screenX+e.left+e.width/2,s=window.screenY+e.top+e.height/2,r=e.left+e.width/2,l=e.top+e.height/2,p=document.createEvent("MouseEvents");p.initMouseEvent("mousedown",!0,!0,window,0,a,s,r,l,!1,!1,!1,!1,0,o.target);const d=document.createEvent("MouseEvents");d.initMouseEvent("mousemove",!0,!0,window,0,a+n,s+c,r+n,l+c,!1,!1,!1,!1,0,o.target);const u=document.createEvent("MouseEvents");u.initMouseEvent("mouseup",!0,!0,window,0,a+n,s+c,r+n,l+c,!1,!1,!1,!1,0,o.target),o.target.dispatchEvent(p),await this.waitTimeout(10),o.target.dispatchEvent(d),await this.waitTimeout(10),o.target.dispatchEvent(u)}}(e);case"close":return async function(){window.close()}();case"wait":return async function(e){await n(e.waitTime)}(e);case"eval":return async function(e){return console.log("eval!",e.code),new Promise((t=>{try{e.async?(window.eval(e.code),setTimeout((()=>{t(window.eval("window.__consentCheckResult"))}),e.timeout||250)):t(window.eval(e.code))}catch(o){console.warn("eval error",o,e.code),t(!1)}}))}(e);default:throw"Unknown action type: "+e.type}}var c=0;function n(e){return new Promise((t=>{setTimeout((()=>{t()}),e)}))}function a(){return crypto&&void 0!==crypto.randomUUID?crypto.randomUUID():Math.random().toString()}var s=class{constructor(e,t=1e3){this.id=e,this.promise=new Promise(((e,t)=>{this.resolve=e,this.reject=t})),this.timer=window.setTimeout((()=>{this.reject(new Error("timeout"))}),t)}},r={pending:new Map,sendContentMessage:null};var l={EVAL_0:()=>console.log(1),EVAL_CONSENTMANAGER_1:()=>window.__cmp&&"object"==typeof __cmp("getCMPData"),EVAL_CONSENTMANAGER_2:()=>!__cmp("consentStatus").userChoiceExists,EVAL_CONSENTMANAGER_3:()=>__cmp("setConsent",0),EVAL_CONSENTMANAGER_4:()=>__cmp("setConsent",1),EVAL_CONSENTMANAGER_5:()=>__cmp("consentStatus").userChoiceExists,EVAL_COOKIEBOT_1:()=>!!window.Cookiebot,EVAL_COOKIEBOT_2:()=>!window.Cookiebot.hasResponse&&!0===window.Cookiebot.dialog?.visible,EVAL_COOKIEBOT_3:()=>window.Cookiebot.withdraw()||!0,EVAL_COOKIEBOT_4:()=>window.Cookiebot.hide()||!0,EVAL_COOKIEBOT_5:()=>!0===window.Cookiebot.declined,EVAL_KLARO_1:()=>{const e=globalThis.klaroConfig||globalThis.klaro?.getManager&&globalThis.klaro.getManager().config;if(!e)return!0;const t=(e.services||e.apps).filter((e=>!e.required)).map((e=>e.name));if(klaro&&klaro.getManager){const e=klaro.getManager();return t.every((t=>!e.consents[t]))}if(klaroConfig&&"cookie"===klaroConfig.storageMethod){const e=klaroConfig.cookieName||klaroConfig.storageName,o=JSON.parse(decodeURIComponent(document.cookie.split(";").find((t=>t.trim().startsWith(e))).split("=")[1]));return Object.keys(o).filter((e=>t.includes(e))).every((e=>!1===o[e]))}},EVAL_KLARO_OPEN_POPUP:()=>{klaro.show(void 0,!0)},EVAL_KLARO_TRY_API_OPT_OUT:()=>{if(window.klaro&&"function"==typeof klaro.show&&"function"==typeof klaro.getManager)try{return klaro.getManager().changeAll(!1),klaro.getManager().saveAndApplyConsents(),!0}catch(e){return console.warn(e),!1}return!1},EVAL_ONETRUST_1:()=>window.OnetrustActiveGroups.split(",").filter((e=>e.length>0)).length<=1,EVAL_TRUSTARC_TOP:()=>window&&window.truste&&"0"===window.truste.eu.bindMap.prefCookie,EVAL_TRUSTARC_FRAME_TEST:()=>window&&window.QueryString&&"0"===window.QueryString.preferences,EVAL_TRUSTARC_FRAME_GTM:()=>window&&window.QueryString&&"1"===window.QueryString.gtm,EVAL_ABC_TEST:()=>document.cookie.includes("trackingconsent"),EVAL_ADROLL_0:()=>!document.cookie.includes("__adroll_fpc"),EVAL_ALMACMP_0:()=>document.cookie.includes('"name":"Google","consent":false'),EVAL_AFFINITY_SERIF_COM_0:()=>document.cookie.includes("serif_manage_cookies_viewed")&&!document.cookie.includes("serif_allow_analytics"),EVAL_ARBEITSAGENTUR_TEST:()=>document.cookie.includes("cookie_consent=denied"),EVAL_AXEPTIO_0:()=>document.cookie.includes("axeptio_authorized_vendors=%2C%2C"),EVAL_BAHN_TEST:()=>1===utag.gdpr.getSelectedCategories().length,EVAL_BING_0:()=>document.cookie.includes("AL=0")&&document.cookie.includes("AD=0")&&document.cookie.includes("SM=0"),EVAL_BLOCKSY_0:()=>document.cookie.includes("blocksy_cookies_consent_accepted=no"),EVAL_BORLABS_0:()=>!JSON.parse(decodeURIComponent(document.cookie.split(";").find((e=>-1!==e.indexOf("borlabs-cookie"))).split("=",2)[1])).consents.statistics,EVAL_BUNDESREGIERUNG_DE_0:()=>document.cookie.match("cookie-allow-tracking=0"),EVAL_CANVA_0:()=>!document.cookie.includes("gtm_fpc_engagement_event"),EVAL_CC_BANNER2_0:()=>!!document.cookie.match(/sncc=[^;]+D%3Dtrue/),EVAL_CLICKIO_0:()=>document.cookie.includes("__lxG__consent__v2_daisybit="),EVAL_CLINCH_0:()=>document.cookie.includes("ctc_rejected=1"),EVAL_COOKIECONSENT2_TEST:()=>document.cookie.includes("cc_cookie="),EVAL_COOKIECONSENT3_TEST:()=>document.cookie.includes("cc_cookie="),EVAL_COINBASE_0:()=>JSON.parse(decodeURIComponent(document.cookie.match(/cm_(eu|default)_preferences=([0-9a-zA-Z\\{\\}\\[\\]%:]*);?/)[2])).consent.length<=1,EVAL_COMPLIANZ_BANNER_0:()=>document.cookie.includes("cmplz_banner-status=dismissed"),EVAL_COOKIE_LAW_INFO_0:()=>CLI.disableAllCookies()||CLI.reject_close()||!0,EVAL_COOKIE_LAW_INFO_1:()=>-1===document.cookie.indexOf("cookielawinfo-checkbox-non-necessary=yes"),EVAL_COOKIE_LAW_INFO_DETECT:()=>!!window.CLI,EVAL_COOKIE_MANAGER_POPUP_0:()=>!1===JSON.parse(document.cookie.split(";").find((e=>e.trim().startsWith("CookieLevel"))).split("=")[1]).social,EVAL_COOKIEALERT_0:()=>document.querySelector("body").removeAttribute("style")||!0,EVAL_COOKIEALERT_1:()=>document.querySelector("body").removeAttribute("style")||!0,EVAL_COOKIEALERT_2:()=>!0===window.CookieConsent.declined,EVAL_COOKIEFIRST_0:()=>{return!1===(e=JSON.parse(decodeURIComponent(document.cookie.split(";").find((e=>-1!==e.indexOf("cookiefirst"))).trim()).split("=")[1])).performance&&!1===e.functional&&!1===e.advertising;var e},EVAL_COOKIEFIRST_1:()=>document.querySelectorAll("button[data-cookiefirst-accent-color=true][role=checkbox]:not([disabled])").forEach((e=>"true"==e.getAttribute("aria-checked")&&e.click()))||!0,EVAL_COOKIEINFORMATION_0:()=>CookieInformation.declineAllCategories()||!0,EVAL_COOKIEINFORMATION_1:()=>CookieInformation.submitAllCategories()||!0,EVAL_COOKIEINFORMATION_2:()=>document.cookie.includes("CookieInformationConsent="),EVAL_COOKIEYES_0:()=>document.cookie.includes("advertisement:no"),EVAL_DAILYMOTION_0:()=>!!document.cookie.match("dm-euconsent-v2"),EVAL_DNDBEYOND_TEST:()=>document.cookie.includes("cookie-consent=denied"),EVAL_DSGVO_0:()=>!document.cookie.includes("sp_dsgvo_cookie_settings"),EVAL_DUNELM_0:()=>document.cookie.includes("cc_functional=0")&&document.cookie.includes("cc_targeting=0"),EVAL_ETSY_0:()=>document.querySelectorAll(".gdpr-overlay-body input").forEach((e=>{e.checked=!1}))||!0,EVAL_ETSY_1:()=>document.querySelector(".gdpr-overlay-view button[data-wt-overlay-close]").click()||!0,EVAL_EU_COOKIE_COMPLIANCE_0:()=>-1===document.cookie.indexOf("cookie-agreed=2"),EVAL_EU_COOKIE_LAW_0:()=>!document.cookie.includes("euCookie"),EVAL_EZOIC_0:()=>ezCMP.handleAcceptAllClick(),EVAL_EZOIC_1:()=>!!document.cookie.match(/ez-consent-tcf/),EVAL_FIDES_DETECT_POPUP:()=>window.Fides?.initialized,EVAL_GOOGLE_0:()=>!!document.cookie.match(/SOCS=CAE/),EVAL_HEMA_TEST_0:()=>document.cookie.includes("cookies_rejected=1"),EVAL_IUBENDA_0:()=>document.querySelectorAll(".purposes-item input[type=checkbox]:not([disabled])").forEach((e=>{e.checked&&e.click()}))||!0,EVAL_IUBENDA_1:()=>!!document.cookie.match(/_iub_cs-\d+=/),EVAL_IWINK_TEST:()=>document.cookie.includes("cookie_permission_granted=no"),EVAL_JQUERY_COOKIEBAR_0:()=>!document.cookie.includes("cookies-state=accepted"),EVAL_KETCH_TEST:()=>document.cookie.includes("_ketch_consent_v1_"),EVAL_MEDIAVINE_0:()=>document.querySelectorAll('[data-name="mediavine-gdpr-cmp"] input[type=checkbox]').forEach((e=>e.checked&&e.click()))||!0,EVAL_MICROSOFT_0:()=>Array.from(document.querySelectorAll("div > button")).filter((e=>e.innerText.match("Reject|Ablehnen")))[0].click()||!0,EVAL_MICROSOFT_1:()=>Array.from(document.querySelectorAll("div > button")).filter((e=>e.innerText.match("Accept|Annehmen")))[0].click()||!0,EVAL_MICROSOFT_2:()=>!!document.cookie.match("MSCC|GHCC"),EVAL_MOOVE_0:()=>document.querySelectorAll("#moove_gdpr_cookie_modal input").forEach((e=>{e.disabled||(e.checked="moove_gdpr_strict_cookies"===e.name||"moove_gdpr_strict_cookies"===e.id)}))||!0,EVAL_ONENINETWO_0:()=>document.cookie.includes("CC_ADVERTISING=NO")&&document.cookie.includes("CC_ANALYTICS=NO"),EVAL_OPERA_0:()=>document.cookie.includes("cookie_consent_essential=true")&&!document.cookie.includes("cookie_consent_marketing=true"),EVAL_PAYPAL_0:()=>!0===document.cookie.includes("cookie_prefs"),EVAL_PRIMEBOX_0:()=>!document.cookie.includes("cb-enabled=accepted"),EVAL_PUBTECH_0:()=>document.cookie.includes("euconsent-v2")&&(document.cookie.match(/.YAAAAAAAAAAA/)||document.cookie.match(/.aAAAAAAAAAAA/)||document.cookie.match(/.YAAACFgAAAAA/)),EVAL_REDDIT_0:()=>document.cookie.includes("eu_cookie={%22opted%22:true%2C%22nonessential%22:false}"),EVAL_ROBLOX_TEST:()=>document.cookie.includes("RBXcb"),EVAL_SIRDATA_UNBLOCK_SCROLL:()=>(document.documentElement.classList.forEach((e=>{e.startsWith("sd-cmp-")&&document.documentElement.classList.remove(e)})),!0),EVAL_SNIGEL_0:()=>!!document.cookie.match("snconsent"),EVAL_STEAMPOWERED_0:()=>2===JSON.parse(decodeURIComponent(document.cookie.split(";").find((e=>e.trim().startsWith("cookieSettings"))).split("=")[1])).preference_state,EVAL_SVT_TEST:()=>document.cookie.includes('cookie-consent-1={"optedIn":true,"functionality":false,"statistics":false}'),EVAL_TAKEALOT_0:()=>document.body.classList.remove("freeze")||(document.body.style="")||!0,EVAL_TARTEAUCITRON_0:()=>tarteaucitron.userInterface.respondAll(!1)||!0,EVAL_TARTEAUCITRON_1:()=>tarteaucitron.userInterface.respondAll(!0)||!0,EVAL_TARTEAUCITRON_2:()=>document.cookie.match(/tarteaucitron=[^;]*/)?.[0].includes("false"),EVAL_TAUNTON_TEST:()=>document.cookie.includes("taunton_user_consent_submitted=true"),EVAL_TEALIUM_0:()=>void 0!==window.utag&&"object"==typeof utag.gdpr,EVAL_TEALIUM_1:()=>utag.gdpr.setConsentValue(!1)||!0,EVAL_TEALIUM_DONOTSELL:()=>utag.gdpr.dns?.setDnsState(!1)||!0,EVAL_TEALIUM_2:()=>utag.gdpr.setConsentValue(!0)||!0,EVAL_TEALIUM_3:()=>1!==utag.gdpr.getConsentState(),EVAL_TEALIUM_DONOTSELL_CHECK:()=>1!==utag.gdpr.dns?.getDnsState(),EVAL_TESLA_TEST:()=>document.cookie.includes("tsla-cookie-consent=rejected"),EVAL_TESTCMP_0:()=>"button_clicked"===window.results.results[0],EVAL_TESTCMP_COSMETIC_0:()=>"banner_hidden"===window.results.results[0],EVAL_THEFREEDICTIONARY_0:()=>cmpUi.showPurposes()||cmpUi.rejectAll()||!0,EVAL_THEFREEDICTIONARY_1:()=>cmpUi.allowAll()||!0,EVAL_THEVERGE_0:()=>document.cookie.includes("_duet_gdpr_acknowledged=1"),EVAL_TWCC_TEST:()=>document.cookie.includes("twCookieConsent="),EVAL_UBUNTU_COM_0:()=>document.cookie.includes("_cookies_accepted=essential"),EVAL_UK_COOKIE_CONSENT_0:()=>!document.cookie.includes("catAccCookies"),EVAL_USERCENTRICS_API_0:()=>"object"==typeof UC_UI,EVAL_USERCENTRICS_API_1:()=>!!UC_UI.closeCMP(),EVAL_USERCENTRICS_API_2:()=>!!UC_UI.denyAllConsents(),EVAL_USERCENTRICS_API_3:()=>!!UC_UI.acceptAllConsents(),EVAL_USERCENTRICS_API_4:()=>!!UC_UI.closeCMP(),EVAL_USERCENTRICS_API_5:()=>!0===UC_UI.areAllConsentsAccepted(),EVAL_USERCENTRICS_API_6:()=>!1===UC_UI.areAllConsentsAccepted(),EVAL_USERCENTRICS_BUTTON_0:()=>JSON.parse(localStorage.getItem("usercentrics")).consents.every((e=>e.isEssential||!e.consentStatus)),EVAL_WAITROSE_0:()=>Array.from(document.querySelectorAll("label[id$=cookies-deny-label]")).forEach((e=>e.click()))||!0,EVAL_WAITROSE_1:()=>document.cookie.includes("wtr_cookies_advertising=0")&&document.cookie.includes("wtr_cookies_analytics=0"),EVAL_WP_COOKIE_NOTICE_0:()=>document.cookie.includes("wpl_viewed_cookie=no"),EVAL_XE_TEST:()=>document.cookie.includes("xeConsentState={%22performance%22:false%2C%22marketing%22:false%2C%22compliance%22:false}"),EVAL_XING_0:()=>document.cookie.includes("userConsent=%7B%22marketing%22%3Afalse"),EVAL_YOUTUBE_DESKTOP_0:()=>!!document.cookie.match(/SOCS=CAE/),EVAL_YOUTUBE_MOBILE_0:()=>!!document.cookie.match(/SOCS=CAE/)};var p={main:!0,frame:!1,urlPattern:""},d=class{constructor(e){this.runContext=p,this.autoconsent=e}get hasSelfTest(){throw new Error("Not Implemented")}get isIntermediate(){throw new Error("Not Implemented")}get isCosmetic(){throw new Error("Not Implemented")}mainWorldEval(e){const t=l[e];if(!t)return console.warn("Snippet not found",e),Promise.resolve(!1);const o=this.autoconsent.config.logs;if(this.autoconsent.config.isMainWorld){o.evals&&console.log("inline eval:",e,t);let i=!1;try{i=!!t.call(globalThis)}catch(t){o.evals&&console.error("error evaluating rule",e,t)}return Promise.resolve(i)}const i=`(${t.toString()})()`;return o.evals&&console.log("async eval:",e,i),function(e,t){const o=a();r.sendContentMessage({type:"eval",id:o,code:e,snippetId:t});const i=new s(o);return r.pending.set(i.id,i),i.promise}(i,e).catch((t=>(o.evals&&console.error("error evaluating rule",e,t),!1)))}checkRunContext(){const e={...p,...this.runContext},t=window.top===window;return!(t&&!e.main)&&(!(!t&&!e.frame)&&!(e.urlPattern&&!window.location.href.match(e.urlPattern)))}detectCmp(){throw new Error("Not Implemented")}async detectPopup(){return!1}optOut(){throw new Error("Not Implemented")}optIn(){throw new Error("Not Implemented")}openCmp(){throw new Error("Not Implemented")}async test(){return Promise.resolve(!0)}click(e,t=!1){return this.autoconsent.domActions.click(e,t)}elementExists(e){return this.autoconsent.domActions.elementExists(e)}elementVisible(e,t){return this.autoconsent.domActions.elementVisible(e,t)}waitForElement(e,t){return this.autoconsent.domActions.waitForElement(e,t)}waitForVisible(e,t,o){return this.autoconsent.domActions.waitForVisible(e,t,o)}waitForThenClick(e,t,o){return this.autoconsent.domActions.waitForThenClick(e,t,o)}wait(e){return this.autoconsent.domActions.wait(e)}hide(e,t){return this.autoconsent.domActions.hide(e,t)}prehide(e){return this.autoconsent.domActions.prehide(e)}undoPrehide(){return this.autoconsent.domActions.undoPrehide()}querySingleReplySelector(e,t){return this.autoconsent.domActions.querySingleReplySelector(e,t)}querySelectorChain(e){return this.autoconsent.domActions.querySelectorChain(e)}elementSelector(e){return this.autoconsent.domActions.elementSelector(e)}},u=class extends d{constructor(e,t){super(t),this.rule=e,this.name=e.name,this.runContext=e.runContext||p}get hasSelfTest(){return!!this.rule.test}get isIntermediate(){return!!this.rule.intermediate}get isCosmetic(){return!!this.rule.cosmetic}get prehideSelectors(){return this.rule.prehideSelectors}async detectCmp(){return!!this.rule.detectCmp&&this._runRulesParallel(this.rule.detectCmp)}async detectPopup(){return!!this.rule.detectPopup&&this._runRulesSequentially(this.rule.detectPopup)}async optOut(){const e=this.autoconsent.config.logs;return!!this.rule.optOut&&(e.lifecycle&&console.log("Initiated optOut()",this.rule.optOut),this._runRulesSequentially(this.rule.optOut))}async optIn(){const e=this.autoconsent.config.logs;return!!this.rule.optIn&&(e.lifecycle&&console.log("Initiated optIn()",this.rule.optIn),this._runRulesSequentially(this.rule.optIn))}async openCmp(){return!!this.rule.openCmp&&this._runRulesSequentially(this.rule.openCmp)}async test(){return this.hasSelfTest?this._runRulesSequentially(this.rule.test):super.test()}async evaluateRuleStep(e){const t=[],o=this.autoconsent.config.logs;if(e.exists&&t.push(this.elementExists(e.exists)),e.visible&&t.push(this.elementVisible(e.visible,e.check)),e.eval){const o=this.mainWorldEval(e.eval);t.push(o)}if(e.waitFor&&t.push(this.waitForElement(e.waitFor,e.timeout)),e.waitForVisible&&t.push(this.waitForVisible(e.waitForVisible,e.timeout,e.check)),e.click&&t.push(this.click(e.click,e.all)),e.waitForThenClick&&t.push(this.waitForThenClick(e.waitForThenClick,e.timeout,e.all)),e.wait&&t.push(this.wait(e.wait)),e.hide&&t.push(this.hide(e.hide,e.method)),e.if){if(!e.if.exists&&!e.if.visible)return console.error("invalid conditional rule",e.if),!1;const i=await this.evaluateRuleStep(e.if);o.rulesteps&&console.log("Condition is",i),i?t.push(this._runRulesSequentially(e.then)):e.else?t.push(this._runRulesSequentially(e.else)):t.push(!0)}if(e.any){for(const t of e.any)if(await this.evaluateRuleStep(t))return!0;return!1}if(0===t.length)return o.errors&&console.warn("Unrecognized rule",e),!1;return(await Promise.all(t)).reduce(((e,t)=>e&&t),!0)}async _runRulesParallel(e){const t=e.map((e=>this.evaluateRuleStep(e)));return(await Promise.all(t)).every((e=>!!e))}async _runRulesSequentially(e){const t=this.autoconsent.config.logs;for(const o of e){t.rulesteps&&console.log("Running rule...",o);const e=await this.evaluateRuleStep(o);if(t.rulesteps&&console.log("...rule result",e),!e&&!o.optional)return!1}return!0}},m=class{constructor(e,t){this.name=e,this.config=t,this.methods=new Map,this.runContext=p,this.isCosmetic=!1,t.methods.forEach((e=>{e.action&&this.methods.set(e.name,e.action)})),this.hasSelfTest=!1}get isIntermediate(){return!1}checkRunContext(){return!0}async detectCmp(){return this.config.detectors.map((e=>o(e.presentMatcher))).some((e=>!!e))}async detectPopup(){return this.config.detectors.map((e=>o(e.showingMatcher))).some((e=>!!e))}async executeAction(e,t){return!this.methods.has(e)||i(this.methods.get(e),t)}async optOut(){return await this.executeAction("HIDE_CMP"),await this.executeAction("OPEN_OPTIONS"),await this.executeAction("HIDE_CMP"),await this.executeAction("DO_CONSENT",[]),await this.executeAction("SAVE_CONSENT"),!0}async optIn(){return await this.executeAction("HIDE_CMP"),await this.executeAction("OPEN_OPTIONS"),await this.executeAction("HIDE_CMP"),await this.executeAction("DO_CONSENT",["D","A","B","E","F","X"]),await this.executeAction("SAVE_CONSENT"),!0}async openCmp(){return await this.executeAction("HIDE_CMP"),await this.executeAction("OPEN_OPTIONS"),!0}async test(){return!0}};function h(e="autoconsent-css-rules"){const t=`style#${e}`,o=document.querySelector(t);if(o&&o instanceof HTMLStyleElement)return o;{const t=document.head||document.getElementsByTagName("head")[0]||document.documentElement,o=document.createElement("style");return o.id=e,t.appendChild(o),o}}function k(e,t,o="display"){const i=`${t} { ${"opacity"===o?"opacity: 0":"display: none"} !important; z-index: -1 !important; pointer-events: none !important; } `;return e instanceof HTMLStyleElement&&(e.innerText+=i,t.length>0)}async function b(e,t,o){const i=await e();return!i&&t>0?new Promise((i=>{setTimeout((async()=>{i(b(e,t-1,o))}),o)})):Promise.resolve(i)}function _(e){if(!e)return!1;if(null!==e.offsetParent)return!0;{const t=window.getComputedStyle(e);if("fixed"===t.position&&"none"!==t.display)return!0}return!1}function g(e){const t={enabled:!0,autoAction:"optOut",disabledCmps:[],enablePrehide:!0,enableCosmeticRules:!0,detectRetries:20,isMainWorld:!1,prehideTimeout:2e3,logs:{lifecycle:!1,rulesteps:!1,evals:!1,errors:!0,messages:!1}},o=(i=t,globalThis.structuredClone?structuredClone(i):JSON.parse(JSON.stringify(i)));var i;for(const i of Object.keys(t))void 0!==e[i]&&(o[i]=e[i]);return o}var y="#truste-show-consent",w="#truste-consent-track",C=[class extends d{constructor(e){super(e),this.name="TrustArc-top",this.prehideSelectors=[".trustarc-banner-container",`.truste_popframe,.truste_overlay,.truste_box_overlay,${w}`],this.runContext={main:!0,frame:!1},this._shortcutButton=null,this._optInDone=!1}get hasSelfTest(){return!0}get isIntermediate(){return!this._optInDone&&!this._shortcutButton}get isCosmetic(){return!1}async detectCmp(){const e=this.elementExists(`${y},${w}`);return e&&(this._shortcutButton=document.querySelector("#truste-consent-required")),e}async detectPopup(){return this.elementVisible(`#truste-consent-content,#trustarc-banner-overlay,${w}`,"all")}openFrame(){this.click(y)}async optOut(){return this._shortcutButton?(this._shortcutButton.click(),!0):(k(h(),`.truste_popframe, .truste_overlay, .truste_box_overlay, ${w}`),this.click(y),setTimeout((()=>{h().remove()}),1e4),!0)}async optIn(){return this._optInDone=!0,this.click("#truste-consent-button")}async openCmp(){return!0}async test(){return await this.wait(500),await this.mainWorldEval("EVAL_TRUSTARC_TOP")}},class extends d{constructor(){super(...arguments),this.name="TrustArc-frame",this.runContext={main:!1,frame:!0,urlPattern:"^https://consent-pref\\.trustarc\\.com/\\?"}}get hasSelfTest(){return!0}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){return!0}async detectPopup(){return this.elementVisible("#defaultpreferencemanager","any")&&this.elementVisible(".mainContent","any")}async navigateToSettings(){return await b((async()=>this.elementExists(".shp")||this.elementVisible(".advance","any")||this.elementExists(".switch span:first-child")),10,500),this.elementExists(".shp")&&this.click(".shp"),await this.waitForElement(".prefPanel",5e3),this.elementVisible(".advance","any")&&this.click(".advance"),await b((()=>this.elementVisible(".switch span:first-child","any")),5,1e3)}async optOut(){if(await this.mainWorldEval("EVAL_TRUSTARC_FRAME_TEST"))return!0;let e=3e3;return await this.mainWorldEval("EVAL_TRUSTARC_FRAME_GTM")&&(e=1500),await b((()=>"complete"===document.readyState),20,100),await this.waitForElement(".mainContent[aria-hidden=false]",e),!!this.click(".rejectAll")||(this.elementExists(".prefPanel")&&await this.waitForElement('.prefPanel[style="visibility: visible;"]',e),this.click("#catDetails0")?(this.click(".submit"),this.waitForThenClick("#gwt-debug-close_id",e),!0):this.click(".required")?(this.waitForThenClick("#gwt-debug-close_id",e),!0):(await this.navigateToSettings(),this.click(".switch span:nth-child(1):not(.active)",!0),this.click(".submit"),this.waitForThenClick("#gwt-debug-close_id",10*e),!0))}async optIn(){return this.click(".call")||(await this.navigateToSettings(),this.click(".switch span:nth-child(2)",!0),this.click(".submit"),this.waitForElement("#gwt-debug-close_id",3e5).then((()=>{this.click("#gwt-debug-close_id")}))),!0}async test(){return await this.wait(500),await this.mainWorldEval("EVAL_TRUSTARC_FRAME_TEST")}},class extends d{constructor(){super(...arguments),this.name="Cybotcookiebot",this.prehideSelectors=["#CybotCookiebotDialog,#CybotCookiebotDialogBodyUnderlay,#dtcookie-container,#cookiebanner,#cb-cookieoverlay,.modal--cookie-banner,#cookiebanner_outer,#CookieBanner"]}get hasSelfTest(){return!0}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){return await this.mainWorldEval("EVAL_COOKIEBOT_1")}async detectPopup(){return this.mainWorldEval("EVAL_COOKIEBOT_2")}async optOut(){await this.wait(500);let e=await this.mainWorldEval("EVAL_COOKIEBOT_3");return await this.wait(500),e=e&&await this.mainWorldEval("EVAL_COOKIEBOT_4"),e}async optIn(){return this.elementExists("#dtcookie-container")?this.click(".h-dtcookie-accept"):(this.click(".CybotCookiebotDialogBodyLevelButton:not(:checked):enabled",!0),this.click("#CybotCookiebotDialogBodyLevelButtonAccept"),this.click("#CybotCookiebotDialogBodyButtonAccept"),!0)}async test(){return await this.wait(500),await this.mainWorldEval("EVAL_COOKIEBOT_5")}},class extends d{constructor(){super(...arguments),this.name="Sourcepoint-frame",this.prehideSelectors=["div[id^='sp_message_container_'],.message-overlay","#sp_privacy_manager_container"],this.ccpaNotice=!1,this.ccpaPopup=!1,this.runContext={main:!0,frame:!0}}get hasSelfTest(){return!1}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){const e=new URL(location.href);return e.searchParams.has("message_id")&&"ccpa-notice.sp-prod.net"===e.hostname?(this.ccpaNotice=!0,!0):"ccpa-pm.sp-prod.net"===e.hostname?(this.ccpaPopup=!0,!0):("/index.html"===e.pathname||"/privacy-manager/index.html"===e.pathname||"/ccpa_pm/index.html"===e.pathname)&&(e.searchParams.has("message_id")||e.searchParams.has("requestUUID")||e.searchParams.has("consentUUID"))}async detectPopup(){return!!this.ccpaNotice||(this.ccpaPopup?await this.waitForElement(".priv-save-btn",2e3):(await this.waitForElement(".sp_choice_type_11,.sp_choice_type_12,.sp_choice_type_13,.sp_choice_type_ACCEPT_ALL,.sp_choice_type_SAVE_AND_EXIT",2e3),!this.elementExists(".sp_choice_type_9")))}async optIn(){return await this.waitForElement(".sp_choice_type_11,.sp_choice_type_ACCEPT_ALL",2e3),!!this.click(".sp_choice_type_11")||!!this.click(".sp_choice_type_ACCEPT_ALL")}isManagerOpen(){return"/privacy-manager/index.html"===location.pathname||"/ccpa_pm/index.html"===location.pathname}async optOut(){const e=this.autoconsent.config.logs;if(this.ccpaPopup){const e=document.querySelectorAll(".priv-purpose-container .sp-switch-arrow-block a.neutral.on .right");for(const t of e)t.click();const t=document.querySelectorAll(".priv-purpose-container .sp-switch-arrow-block a.switch-bg.on");for(const e of t)e.click();return this.click(".priv-save-btn")}if(!this.isManagerOpen()){if(!await this.waitForElement(".sp_choice_type_12,.sp_choice_type_13"))return!1;if(!this.elementExists(".sp_choice_type_12"))return this.click(".sp_choice_type_13");this.click(".sp_choice_type_12"),await b((()=>this.isManagerOpen()),200,100)}await this.waitForElement(".type-modal",2e4),this.waitForThenClick(".ccpa-stack .pm-switch[aria-checked=true] .slider",500,!0);try{const e=".sp_choice_type_REJECT_ALL",t=".reject-toggle",o=await Promise.race([this.waitForElement(e,2e3).then((e=>e?0:-1)),this.waitForElement(t,2e3).then((e=>e?1:-1)),this.waitForElement(".pm-features",2e3).then((e=>e?2:-1))]);if(0===o)return await this.wait(1500),this.click(e);1===o?this.click(t):2===o&&(await this.waitForElement(".pm-features",1e4),this.click(".checked > span",!0),this.click(".chevron"))}catch(t){e.errors&&console.warn(t)}return this.click(".sp_choice_type_SAVE_AND_EXIT")}},class extends d{constructor(){super(...arguments),this.name="consentmanager.net",this.prehideSelectors=["#cmpbox,#cmpbox2"],this.apiAvailable=!1}get hasSelfTest(){return this.apiAvailable}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){return this.apiAvailable=await this.mainWorldEval("EVAL_CONSENTMANAGER_1"),!!this.apiAvailable||this.elementExists("#cmpbox")}async detectPopup(){return this.apiAvailable?(await this.wait(500),await this.mainWorldEval("EVAL_CONSENTMANAGER_2")):this.elementVisible("#cmpbox .cmpmore","any")}async optOut(){return await this.wait(500),this.apiAvailable?await this.mainWorldEval("EVAL_CONSENTMANAGER_3"):!!this.click(".cmpboxbtnno")||(this.elementExists(".cmpwelcomeprpsbtn")?(this.click(".cmpwelcomeprpsbtn > a[aria-checked=true]",!0),this.click(".cmpboxbtnsave"),!0):(this.click(".cmpboxbtncustom"),await this.waitForElement(".cmptblbox",2e3),this.click(".cmptdchoice > a[aria-checked=true]",!0),this.click(".cmpboxbtnyescustomchoices"),this.hide("#cmpwrapper,#cmpbox","display"),!0))}async optIn(){return this.apiAvailable?await this.mainWorldEval("EVAL_CONSENTMANAGER_4"):this.click(".cmpboxbtnyes")}async test(){if(this.apiAvailable)return await this.mainWorldEval("EVAL_CONSENTMANAGER_5")}},class extends d{constructor(){super(...arguments),this.name="Evidon"}get hasSelfTest(){return!1}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){return this.elementExists("#_evidon_banner")}async detectPopup(){return this.elementVisible("#_evidon_banner","any")}async optOut(){return this.click("#_evidon-decline-button")||(k(h(),"#evidon-prefdiag-overlay,#evidon-prefdiag-background,#_evidon-background"),await this.waitForThenClick("#_evidon-option-button"),await this.waitForElement("#evidon-prefdiag-overlay",5e3),await this.wait(500),await this.waitForThenClick("#evidon-prefdiag-decline")),!0}async optIn(){return this.click("#_evidon-accept-button")}},class extends d{constructor(){super(...arguments),this.name="Onetrust",this.prehideSelectors=["#onetrust-banner-sdk,#onetrust-consent-sdk,.onetrust-pc-dark-filter,.js-consent-banner"],this.runContext={urlPattern:"^(?!.*https://www\\.nba\\.com/)"}}get hasSelfTest(){return!0}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){return this.elementExists("#onetrust-banner-sdk,#onetrust-pc-sdk")}async detectPopup(){return this.elementVisible("#onetrust-banner-sdk,#onetrust-pc-sdk","any")}async optOut(){return this.elementVisible("#onetrust-reject-all-handler,.ot-pc-refuse-all-handler,.js-reject-cookies","any")?this.click("#onetrust-reject-all-handler,.ot-pc-refuse-all-handler,.js-reject-cookies"):(this.elementExists("#onetrust-pc-btn-handler")?this.click("#onetrust-pc-btn-handler"):this.click(".ot-sdk-show-settings,button.js-cookie-settings"),await this.waitForElement("#onetrust-consent-sdk",2e3),await this.wait(1e3),this.click("#onetrust-consent-sdk input.category-switch-handler:checked,.js-editor-toggle-state:checked",!0),await this.wait(1e3),await this.waitForElement(".save-preference-btn-handler,.js-consent-save",2e3),this.click(".save-preference-btn-handler,.js-consent-save"),await this.waitForVisible("#onetrust-banner-sdk",5e3,"none"),!0)}async optIn(){return this.click("#onetrust-accept-btn-handler,#accept-recommended-btn-handler,.js-accept-cookies")}async test(){return await b((()=>this.mainWorldEval("EVAL_ONETRUST_1")),10,500)}},class extends d{constructor(){super(...arguments),this.name="Klaro",this.prehideSelectors=[".klaro"],this.settingsOpen=!1}get hasSelfTest(){return!0}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){return this.elementExists(".klaro > .cookie-modal")?(this.settingsOpen=!0,!0):this.elementExists(".klaro > .cookie-notice")}async detectPopup(){return this.elementVisible(".klaro > .cookie-notice,.klaro > .cookie-modal","any")}async optOut(){return!!await this.mainWorldEval("EVAL_KLARO_TRY_API_OPT_OUT")||(!!this.click(".klaro .cn-decline")||(await this.mainWorldEval("EVAL_KLARO_OPEN_POPUP"),!!this.click(".klaro .cn-decline")||(this.click(".cm-purpose:not(.cm-toggle-all) > input:not(.half-checked,.required,.only-required),.cm-purpose:not(.cm-toggle-all) > div > input:not(.half-checked,.required,.only-required)",!0),this.click(".cm-btn-accept,.cm-button"))))}async optIn(){return!!this.click(".klaro .cm-btn-accept-all")||(this.settingsOpen?(this.click(".cm-purpose:not(.cm-toggle-all) > input.half-checked",!0),this.click(".cm-btn-accept")):this.click(".klaro .cookie-notice .cm-btn-success"))}async test(){return await this.mainWorldEval("EVAL_KLARO_1")}},class extends d{constructor(){super(...arguments),this.name="Uniconsent"}get prehideSelectors(){return[".unic",".modal:has(.unic)"]}get hasSelfTest(){return!0}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){return this.elementExists(".unic .unic-box,.unic .unic-bar,.unic .unic-modal")}async detectPopup(){return this.elementVisible(".unic .unic-box,.unic .unic-bar,.unic .unic-modal","any")}async optOut(){if(await this.waitForElement(".unic button",1e3),document.querySelectorAll(".unic button").forEach((e=>{const t=e.textContent;(t.includes("Manage Options")||t.includes("Optionen verwalten"))&&e.click()})),await this.waitForElement(".unic input[type=checkbox]",1e3)){await this.waitForElement(".unic button",1e3),document.querySelectorAll(".unic input[type=checkbox]").forEach((e=>{e.checked&&e.click()}));for(const e of document.querySelectorAll(".unic button")){const t=e.textContent;for(const o of["Confirm Choices","Save Choices","Auswahl speichern"])if(t.includes(o))return e.click(),await this.wait(500),!0}}return!1}async optIn(){return this.waitForThenClick(".unic #unic-agree")}async test(){await this.wait(1e3);return!this.elementExists(".unic .unic-box,.unic .unic-bar")}},class extends d{constructor(){super(...arguments),this.prehideSelectors=[".cmp-root"],this.name="Conversant"}get hasSelfTest(){return!0}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){return this.elementExists(".cmp-root .cmp-receptacle")}async detectPopup(){return this.elementVisible(".cmp-root .cmp-receptacle","any")}async optOut(){if(!await this.waitForThenClick(".cmp-main-button:not(.cmp-main-button--primary)"))return!1;if(!await this.waitForElement(".cmp-view-tab-tabs"))return!1;await this.waitForThenClick(".cmp-view-tab-tabs > :first-child"),await this.waitForThenClick(".cmp-view-tab-tabs > .cmp-view-tab--active:first-child");for(const e of Array.from(document.querySelectorAll(".cmp-accordion-item"))){e.querySelector(".cmp-accordion-item-title").click(),await b((()=>!!e.querySelector(".cmp-accordion-item-content.cmp-active")),10,50);const t=e.querySelector(".cmp-accordion-item-content.cmp-active");t.querySelectorAll(".cmp-toggle-actions .cmp-toggle-deny:not(.cmp-toggle-deny--active)").forEach((e=>e.click())),t.querySelectorAll(".cmp-toggle-actions .cmp-toggle-checkbox:not(.cmp-toggle-checkbox--active)").forEach((e=>e.click()))}return await this.click(".cmp-main-button:not(.cmp-main-button--primary)"),!0}async optIn(){return this.waitForThenClick(".cmp-main-button.cmp-main-button--primary")}async test(){return document.cookie.includes("cmp-data=0")}},class extends d{constructor(){super(...arguments),this.name="tiktok.com",this.runContext={urlPattern:"tiktok"}}get hasSelfTest(){return!0}get isIntermediate(){return!1}get isCosmetic(){return!1}getShadowRoot(){const e=document.querySelector("tiktok-cookie-banner");return e?e.shadowRoot:null}async detectCmp(){return this.elementExists("tiktok-cookie-banner")}async detectPopup(){return _(this.getShadowRoot().querySelector(".tiktok-cookie-banner"))}async optOut(){const e=this.autoconsent.config.logs,t=this.getShadowRoot().querySelector(".button-wrapper button:first-child");return t?(e.rulesteps&&console.log("[clicking]",t),t.click(),!0):(e.errors&&console.log("no decline button found"),!1)}async optIn(){const e=this.autoconsent.config.logs,t=this.getShadowRoot().querySelector(".button-wrapper button:last-child");return t?(e.rulesteps&&console.log("[clicking]",t),t.click(),!0):(e.errors&&console.log("no accept button found"),!1)}async test(){const e=document.cookie.match(/cookie-consent=([^;]+)/);if(!e)return!1;const t=JSON.parse(decodeURIComponent(e[1]));return Object.values(t).every((e=>"boolean"!=typeof e||!1===e))}},class extends d{constructor(){super(...arguments),this.runContext={urlPattern:"^https://(www\\.)?airbnb\\.[^/]+/"},this.prehideSelectors=["div[data-testid=main-cookies-banner-container]",'div:has(> div:first-child):has(> div:last-child):has(> section [data-testid="strictly-necessary-cookies"])']}get hasSelfTest(){return!0}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){return this.elementExists("div[data-testid=main-cookies-banner-container]")}async detectPopup(){return this.elementVisible("div[data-testid=main-cookies-banner-container","any")}async optOut(){let e;for(await this.waitForThenClick("div[data-testid=main-cookies-banner-container] button._snbhip0");e=document.querySelector("[data-testid=modal-container] button[aria-checked=true]:not([disabled])");)e.click();return this.waitForThenClick("button[data-testid=save-btn]")}async optIn(){return this.waitForThenClick("div[data-testid=main-cookies-banner-container] button._148dgdpk")}async test(){return await b((()=>!!document.cookie.match("OptanonAlertBoxClosed")),20,200)}},class extends d{constructor(){super(...arguments),this.name="tumblr-com",this.runContext={urlPattern:"^https://(www\\.)?tumblr\\.com/"}}get hasSelfTest(){return!1}get isIntermediate(){return!1}get isCosmetic(){return!1}get prehideSelectors(){return["#cmp-app-container"]}async detectCmp(){return this.elementExists("#cmp-app-container")}async detectPopup(){return this.elementVisible("#cmp-app-container","any")}async optOut(){let e=document.querySelector("#cmp-app-container iframe"),t=e.contentDocument?.querySelector(".cmp-components-button.is-secondary");return!!t&&(t.click(),await b((()=>{const e=document.querySelector("#cmp-app-container iframe");return!!e.contentDocument?.querySelector(".cmp__dialog input")}),5,500),e=document.querySelector("#cmp-app-container iframe"),t=e.contentDocument?.querySelector(".cmp-components-button.is-secondary"),!!t&&(t.click(),!0))}async optIn(){const e=document.querySelector("#cmp-app-container iframe").contentDocument.querySelector(".cmp-components-button.is-primary");return!!e&&(e.click(),!0)}},class extends d{constructor(){super(...arguments),this.name="Admiral"}get hasSelfTest(){return!1}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){return this.elementExists("div > div[class*=Card] > div[class*=Frame] > div[class*=Pills] > button[class*=Pills__StyledPill]")}async detectPopup(){return this.elementVisible("div > div[class*=Card] > div[class*=Frame] > div[class*=Pills] > button[class*=Pills__StyledPill]","any")}async optOut(){const e="xpath///button[contains(., 'Afvis alle') or contains(., 'Reject all') or contains(., 'Odbaci sve') or contains(., 'Rechazar todo') or contains(., 'Atmesti visus') or contains(., 'Odmítnout vše') or contains(., 'Απόρριψη όλων') or contains(., 'Rejeitar tudo') or contains(., 'Tümünü reddet') or contains(., 'Отклонить все') or contains(., 'Noraidīt visu') or contains(., 'Avvisa alla') or contains(., 'Odrzuć wszystkie') or contains(., 'Alles afwijzen') or contains(., 'Отхвърляне на всички') or contains(., 'Rifiuta tutto') or contains(., 'Zavrni vse') or contains(., 'Az összes elutasítása') or contains(., 'Respingeți tot') or contains(., 'Alles ablehnen') or contains(., 'Tout rejeter') or contains(., 'Odmietnuť všetko') or contains(., 'Lükka kõik tagasi') or contains(., 'Hylkää kaikki')]";if(await this.waitForElement(e,500))return this.click(e);const t="xpath///button[contains(., 'Spara & avsluta') or contains(., 'Save & exit') or contains(., 'Uložit a ukončit') or contains(., 'Enregistrer et quitter') or contains(., 'Speichern & Verlassen') or contains(., 'Tallenna ja poistu') or contains(., 'Išsaugoti ir išeiti') or contains(., 'Opslaan & afsluiten') or contains(., 'Guardar y salir') or contains(., 'Shrani in zapri') or contains(., 'Uložiť a ukončiť') or contains(., 'Kaydet ve çıkış yap') or contains(., 'Сохранить и выйти') or contains(., 'Salvesta ja välju') or contains(., 'Salva ed esci') or contains(., 'Gem & afslut') or contains(., 'Αποθήκευση και έξοδος') or contains(., 'Saglabāt un iziet') or contains(., 'Mentés és kilépés') or contains(., 'Guardar e sair') or contains(., 'Zapisz & zakończ') or contains(., 'Salvare și ieșire') or contains(., 'Spremi i izađi') or contains(., 'Запазване и изход')]";if(await this.waitForThenClick("xpath///button[contains(., 'Zwecke') or contains(., 'Σκοποί') or contains(., 'Purposes') or contains(., 'Цели') or contains(., 'Eesmärgid') or contains(., 'Tikslai') or contains(., 'Svrhe') or contains(., 'Cele') or contains(., 'Účely') or contains(., 'Finalidades') or contains(., 'Mērķi') or contains(., 'Scopuri') or contains(., 'Fines') or contains(., 'Ändamål') or contains(., 'Finalités') or contains(., 'Doeleinden') or contains(., 'Tarkoitukset') or contains(., 'Scopi') or contains(., 'Amaçlar') or contains(., 'Nameni') or contains(., 'Célok') or contains(., 'Formål')]")&&await this.waitForVisible(t)){return this.elementSelector(t)[0].parentElement.parentElement.querySelectorAll("input[type=checkbox]:checked").forEach((e=>e.click())),this.click(t)}return!1}async optIn(){return this.click("xpath///button[contains(., 'Sprejmi vse') or contains(., 'Prihvati sve') or contains(., 'Godkänn alla') or contains(., 'Prijať všetko') or contains(., 'Принять все') or contains(., 'Aceptar todo') or contains(., 'Αποδοχή όλων') or contains(., 'Zaakceptuj wszystkie') or contains(., 'Accetta tutto') or contains(., 'Priimti visus') or contains(., 'Pieņemt visu') or contains(., 'Tümünü kabul et') or contains(., 'Az összes elfogadása') or contains(., 'Accept all') or contains(., 'Приемане на всички') or contains(., 'Accepter alle') or contains(., 'Hyväksy kaikki') or contains(., 'Tout accepter') or contains(., 'Alles accepteren') or contains(., 'Aktsepteeri kõik') or contains(., 'Přijmout vše') or contains(., 'Alles akzeptieren') or contains(., 'Aceitar tudo') or contains(., 'Acceptați tot')]")}}],v=class{constructor(e){this.autoconsentInstance=e}click(e,t=!1){const o=this.elementSelector(e);return this.autoconsentInstance.config.logs.rulesteps&&console.log("[click]",e,t,o),o.length>0&&(t?o.forEach((e=>e.click())):o[0].click()),o.length>0}elementExists(e){return this.elementSelector(e).length>0}elementVisible(e,t){const o=this.elementSelector(e),i=new Array(o.length);return o.forEach(((e,t)=>{i[t]=_(e)})),"none"===t?i.every((e=>!e)):0!==i.length&&("any"===t?i.some((e=>e)):i.every((e=>e)))}waitForElement(e,t=1e4){const o=Math.ceil(t/200);return this.autoconsentInstance.config.logs.rulesteps&&console.log("[waitForElement]",e),b((()=>this.elementSelector(e).length>0),o,200)}waitForVisible(e,t=1e4,o="any"){return b((()=>this.elementVisible(e,o)),Math.ceil(t/200),200)}async waitForThenClick(e,t=1e4,o=!1){return await this.waitForElement(e,t),this.click(e,o)}wait(e){return new Promise((t=>{setTimeout((()=>{t(!0)}),e)}))}hide(e,t){return k(h(),e,t)}prehide(e){const t=h("autoconsent-prehide");return this.autoconsentInstance.config.logs.lifecycle&&console.log("[prehide]",t,location.href),k(t,e,"opacity")}undoPrehide(){const e=h("autoconsent-prehide");return this.autoconsentInstance.config.logs.lifecycle&&console.log("[undoprehide]",e,location.href),e&&e.remove(),!!e}querySingleReplySelector(e,t=document){if(e.startsWith("aria/"))return[];if(e.startsWith("xpath/")){const o=e.slice(6),i=document.evaluate(o,t,null,XPathResult.ANY_TYPE,null);let c=null;const n=[];for(;c=i.iterateNext();)n.push(c);return n}return e.startsWith("text/")||e.startsWith("pierce/")?[]:t.shadowRoot?Array.from(t.shadowRoot.querySelectorAll(e)):Array.from(t.querySelectorAll(e))}querySelectorChain(e){let t,o=document;for(const i of e){if(t=this.querySingleReplySelector(i,o),0===t.length)return[];o=t[0]}return t}elementSelector(e){return"string"==typeof e?this.querySingleReplySelector(e):this.querySelectorChain(e)}};var f=[{name:"192.com",detectCmp:[{exists:".ont-cookies"}],detectPopup:[{visible:".ont-cookies"}],optIn:[{click:".ont-btn-main.ont-cookies-btn.js-ont-btn-ok2"}],optOut:[{click:".ont-cookes-btn-manage"},{click:".ont-btn-main.ont-cookies-btn.js-ont-btn-choose"}],test:[{eval:"EVAL_ONENINETWO_0"}]},{name:"1password-com",cosmetic:!0,prehideSelectors:['footer #footer-root [aria-label="Cookie Consent"]'],detectCmp:[{exists:'footer #footer-root [aria-label="Cookie Consent"]'}],detectPopup:[{visible:'footer #footer-root [aria-label="Cookie Consent"]'}],optIn:[{click:'footer #footer-root [aria-label="Cookie Consent"] button'}],optOut:[{hide:'footer #footer-root [aria-label="Cookie Consent"]'}]},{name:"aa",vendorUrl:"https://aa.com",prehideSelectors:[],cosmetic:!0,detectCmp:[{exists:"#aa_optoutmulti-Modal,#cookieBannerMessage"}],detectPopup:[{visible:"#aa_optoutmulti-Modal,#cookieBannerMessage"}],optIn:[{hide:"#aa_optoutmulti-Modal,#cookieBannerMessage"},{waitForThenClick:"#aa_optoutmulti_checkBox"},{waitForThenClick:"#aa_optoutmulti-Modal button.optoutmulti_button"}],optOut:[{hide:"#aa_optoutmulti-Modal,#cookieBannerMessage"}]},{name:"abc",vendorUrl:"https://abc.net.au",runContext:{urlPattern:"^https://([a-z0-9-]+\\.)?abc\\.net\\.au/"},prehideSelectors:[],detectCmp:[{exists:"[data-component=CookieBanner]"}],detectPopup:[{visible:"[data-component=CookieBanner] [data-component=CookieBanner_AcceptAll]"}],optIn:[{waitForThenClick:"[data-component=CookieBanner] [data-component=CookieBanner_AcceptAll]"}],optOut:[{waitForThenClick:"[data-component=CookieBanner] [data-component=CookieBanner_AcceptABCRequired]"}],test:[{eval:"EVAL_ABC_TEST"}]},{name:"abconcerts.be",vendorUrl:"https://unknown",intermediate:!1,prehideSelectors:["dialog.cookie-consent"],detectCmp:[{exists:"dialog.cookie-consent form.cookie-consent__form"}],detectPopup:[{visible:"dialog.cookie-consent form.cookie-consent__form"}],optIn:[{waitForThenClick:"dialog.cookie-consent form.cookie-consent__form button[value=yes]"}],optOut:[{if:{exists:"dialog.cookie-consent form.cookie-consent__form button[value=no]"},then:[{click:"dialog.cookie-consent form.cookie-consent__form button[value=no]"}],else:[{click:"dialog.cookie-consent form.cookie-consent__form button.cookie-consent__options-toggle"},{waitForThenClick:'dialog.cookie-consent form.cookie-consent__form button[value="save_options"]'}]}]},{name:"acris",prehideSelectors:["div.acris-cookie-consent"],detectCmp:[{exists:"[data-acris-cookie-consent]"}],detectPopup:[{visible:".acris-cookie-consent.is--modal"}],optIn:[{waitForVisible:"#ccConsentAcceptAllButton",check:"any"},{wait:500},{waitForThenClick:"#ccConsentAcceptAllButton"}],optOut:[{waitForVisible:"#ccAcceptOnlyFunctional",check:"any"},{wait:500},{waitForThenClick:"#ccAcceptOnlyFunctional"}]},{name:"activobank.pt",runContext:{urlPattern:"^https://(www\\.)?activobank\\.pt"},prehideSelectors:["aside#cookies,.overlay-cookies"],detectCmp:[{exists:"#cookies .cookies-btn"}],detectPopup:[{visible:"#cookies #submitCookies"}],optIn:[{waitForThenClick:"#cookies #submitCookies"}],optOut:[{waitForThenClick:"#cookies #rejectCookies"}]},{name:"Adroll",prehideSelectors:["#adroll_consent_container"],detectCmp:[{exists:"#adroll_consent_container"}],detectPopup:[{visible:"#adroll_consent_container"}],optIn:[{waitForThenClick:"#adroll_consent_accept"}],optOut:[{waitForThenClick:"#adroll_consent_reject"}],test:[{eval:"EVAL_ADROLL_0"}]},{name:"affinity.serif.com",detectCmp:[{exists:".c-cookie-banner button[data-qa='allow-all-cookies']"}],detectPopup:[{visible:".c-cookie-banner"}],optIn:[{click:'button[data-qa="allow-all-cookies"]'}],optOut:[{click:'button[data-qa="manage-cookies"]'},{waitFor:'.c-cookie-banner ~ [role="dialog"]'},{waitForThenClick:'.c-cookie-banner ~ [role="dialog"] input[type="checkbox"][value="true"]',all:!0},{click:'.c-cookie-banner ~ [role="dialog"] .c-modal__action button'}],test:[{wait:500},{eval:"EVAL_AFFINITY_SERIF_COM_0"}]},{name:"agolde.com",cosmetic:!0,prehideSelectors:["#modal-1 div[data-micromodal-close]"],detectCmp:[{exists:"#modal-1 div[aria-labelledby=modal-1-title]"}],detectPopup:[{exists:"#modal-1 div[data-micromodal-close]"}],optIn:[{click:'button[aria-label="Close modal"]'}],optOut:[{hide:"#modal-1 div[data-micromodal-close]"}]},{name:"aliexpress",vendorUrl:"https://aliexpress.com/",runContext:{urlPattern:"^https://.*\\.aliexpress\\.com/"},prehideSelectors:["#gdpr-new-container"],detectCmp:[{exists:"#gdpr-new-container,#voyager-gdpr > div"}],detectPopup:[{visible:"#gdpr-new-container,#voyager-gdpr > div"}],optIn:[{waitForThenClick:"#gdpr-new-container .btn-accept,#voyager-gdpr > div > div > button:nth-child(1)"}],optOut:[{if:{exists:"#voyager-gdpr > div"},then:[{waitForThenClick:"#voyager-gdpr > div > div > button:nth-child(2)"}],else:[{waitForThenClick:"#gdpr-new-container .btn-more"},{waitFor:"#gdpr-new-container .gdpr-dialog-switcher"},{click:"#gdpr-new-container .switcher-on",all:!0,optional:!0},{click:"#gdpr-new-container .btn-save"}]}]},{name:"almacmp",prehideSelectors:["#alma-cmpv2-container"],detectCmp:[{exists:"#alma-cmpv2-container"}],detectPopup:[{visible:"#alma-cmpv2-container #almacmp-modal-layer1"}],optIn:[{waitForThenClick:"#alma-cmpv2-container #almacmp-modal-layer1 #almacmp-modalConfirmBtn"}],optOut:[{waitForThenClick:"#alma-cmpv2-container #almacmp-modal-layer1 #almacmp-modalSettingBtn"},{waitFor:"#alma-cmpv2-container #almacmp-modal-layer2"},{waitForThenClick:"#alma-cmpv2-container #almacmp-modal-layer2 #almacmp-reject-all-layer2"}],test:[{eval:"EVAL_ALMACMP_0"}]},{name:"altium.com",cosmetic:!0,prehideSelectors:[".altium-privacy-bar"],detectCmp:[{exists:".altium-privacy-bar"}],detectPopup:[{exists:".altium-privacy-bar"}],optIn:[{click:"a.altium-privacy-bar__btn"}],optOut:[{hide:".altium-privacy-bar"}]},{name:"amazon.com",prehideSelectors:['span[data-action="sp-cc"][data-sp-cc*="rejectAllAction"]'],detectCmp:[{exists:'span[data-action="sp-cc"][data-sp-cc*="rejectAllAction"]'}],detectPopup:[{visible:'span[data-action="sp-cc"][data-sp-cc*="rejectAllAction"]'}],optIn:[{waitForVisible:"#sp-cc-accept"},{wait:500},{click:"#sp-cc-accept"}],optOut:[{waitForVisible:"#sp-cc-rejectall-link"},{wait:500},{click:"#sp-cc-rejectall-link"}]},{name:"aquasana.com",prehideSelectors:["#consent-tracking"],detectCmp:[{exists:"#consent-tracking"}],detectPopup:[{exists:"#consent-tracking"}],optIn:[{waitForThenClick:"#consent-tracking .affirm.btn"}],optOut:[{if:{exists:"#consent-tracking .decline.btn"},then:[{click:"#consent-tracking .decline.btn"}],else:[{hide:"#consent-tracking"}]}]},{name:"arbeitsagentur",vendorUrl:"https://www.arbeitsagentur.de/",prehideSelectors:[".modal-open bahf-cookie-disclaimer-dpl3"],detectCmp:[{exists:"bahf-cookie-disclaimer-dpl3"}],detectPopup:[{visible:"bahf-cookie-disclaimer-dpl3"}],optIn:[{waitForThenClick:["bahf-cookie-disclaimer-dpl3","bahf-cd-modal-dpl3 .ba-btn-primary"]}],optOut:[{waitForThenClick:["bahf-cookie-disclaimer-dpl3","bahf-cd-modal-dpl3 .ba-btn-contrast"]}],test:[{eval:"EVAL_ARBEITSAGENTUR_TEST"}]},{name:"asus",vendorUrl:"https://www.asus.com/",runContext:{urlPattern:"^https://www\\.asus\\.com/"},prehideSelectors:["#cookie-policy-info,#cookie-policy-info-bg"],detectCmp:[{exists:"#cookie-policy-info"}],detectPopup:[{visible:"#cookie-policy-info"}],optIn:[{waitForThenClick:'#cookie-policy-info [data-agree="Accept Cookies"]'}],optOut:[{if:{exists:"#cookie-policy-info .btn-reject"},then:[{waitForThenClick:"#cookie-policy-info .btn-reject"}],else:[{waitForThenClick:"#cookie-policy-info .btn-setting"},{waitForThenClick:'#cookie-policy-lightbox-wrapper [data-agree="Save Settings"]'}]}]},{name:"athlinks-com",runContext:{urlPattern:"^https://(www\\.)?athlinks\\.com/"},cosmetic:!0,prehideSelectors:["#footer-container ~ div"],detectCmp:[{exists:"#footer-container ~ div"}],detectPopup:[{visible:"#footer-container > div"}],optIn:[{click:"#footer-container ~ div button"}],optOut:[{hide:"#footer-container ~ div"}]},{name:"ausopen.com",cosmetic:!0,detectCmp:[{exists:".gdpr-popup__message"}],detectPopup:[{visible:".gdpr-popup__message"}],optOut:[{hide:".gdpr-popup__message"}],optIn:[{click:".gdpr-popup__message button"}]},{name:"automattic-cmp-optout",prehideSelectors:['form[class*="cookie-banner"][method="post"]'],detectCmp:[{exists:'form[class*="cookie-banner"][method="post"]'}],detectPopup:[{visible:'form[class*="cookie-banner"][method="post"]'}],optIn:[{click:'a[class*="accept-all-button"]'}],optOut:[{click:'form[class*="cookie-banner"] div[class*="simple-options"] a[class*="customize-button"]'},{waitForThenClick:"input[type=checkbox][checked]:not([disabled])",all:!0},{click:'a[class*="accept-selection-button"]'}]},{name:"aws.amazon.com",prehideSelectors:["#awsccc-cb-content","#awsccc-cs-container","#awsccc-cs-modalOverlay","#awsccc-cs-container-inner"],detectCmp:[{exists:"#awsccc-cb-content"}],detectPopup:[{visible:"#awsccc-cb-content"}],optIn:[{click:"button[data-id=awsccc-cb-btn-accept"}],optOut:[{click:"button[data-id=awsccc-cb-btn-customize]"},{waitFor:"input[aria-checked]"},{click:"input[aria-checked=true]",all:!0,optional:!0},{click:"button[data-id=awsccc-cs-btn-save]"}]},{name:"axeptio",prehideSelectors:[".axeptio_widget"],detectCmp:[{exists:".axeptio_widget"}],detectPopup:[{visible:".axeptio_widget"}],optIn:[{waitFor:".axeptio-widget--open"},{click:"button#axeptio_btn_acceptAll"}],optOut:[{waitFor:".axeptio-widget--open"},{click:"button#axeptio_btn_dismiss"}],test:[{eval:"EVAL_AXEPTIO_0"}]},{name:"baden-wuerttemberg.de",prehideSelectors:[".cookie-alert.t-dark"],cosmetic:!0,detectCmp:[{exists:".cookie-alert.t-dark"}],detectPopup:[{visible:".cookie-alert.t-dark"}],optIn:[{click:".cookie-alert__form input:not([disabled]):not([checked])"},{click:".cookie-alert__button button"}],optOut:[{hide:".cookie-alert.t-dark"}]},{name:"bahn-de",vendorUrl:"https://www.bahn.de/",cosmetic:!1,runContext:{main:!0,frame:!1,urlPattern:"^https://(www\\.)?bahn\\.de/"},intermediate:!1,prehideSelectors:[],detectCmp:[{exists:["body > div:first-child","#consent-layer"]}],detectPopup:[{visible:["body > div:first-child","#consent-layer"]}],optIn:[{waitForThenClick:["body > div:first-child","#consent-layer .js-accept-all-cookies"]}],optOut:[{waitForThenClick:["body > div:first-child","#consent-layer .js-accept-essential-cookies"]}],test:[{eval:"EVAL_BAHN_TEST"}]},{name:"bbb.org",runContext:{urlPattern:"^https://www\\.bbb\\.org/"},cosmetic:!0,prehideSelectors:['div[aria-label="use of cookies on bbb.org"]'],detectCmp:[{exists:'div[aria-label="use of cookies on bbb.org"]'}],detectPopup:[{visible:'div[aria-label="use of cookies on bbb.org"]'}],optIn:[{click:'div[aria-label="use of cookies on bbb.org"] button.bds-button-unstyled span.visually-hidden'}],optOut:[{hide:'div[aria-label="use of cookies on bbb.org"]'}]},{name:"bing.com",prehideSelectors:["#bnp_container"],detectCmp:[{exists:"#bnp_cookie_banner"}],detectPopup:[{visible:"#bnp_cookie_banner"}],optIn:[{click:"#bnp_btn_accept"}],optOut:[{click:"#bnp_btn_preference"},{click:"#mcp_savesettings"}],test:[{eval:"EVAL_BING_0"}]},{name:"blocksy",vendorUrl:"https://creativethemes.com/blocksy/docs/extensions/cookies-consent/",cosmetic:!1,runContext:{main:!0,frame:!1},intermediate:!1,prehideSelectors:[".cookie-notification"],detectCmp:[{exists:"#blocksy-ext-cookies-consent-styles-css"}],detectPopup:[{visible:".cookie-notification"}],optIn:[{click:".cookie-notification .ct-cookies-decline-button"}],optOut:[{waitForThenClick:".cookie-notification .ct-cookies-decline-button"}],test:[{eval:"EVAL_BLOCKSY_0"}]},{name:"borlabs",detectCmp:[{exists:"._brlbs-block-content"}],detectPopup:[{visible:"._brlbs-bar-wrap,._brlbs-box-wrap"}],optIn:[{click:"a[data-cookie-accept-all]"}],optOut:[{click:"a[data-cookie-individual]"},{waitForVisible:".cookie-preference"},{click:"input[data-borlabs-cookie-checkbox]:checked",all:!0,optional:!0},{click:"#CookiePrefSave"},{wait:500}],prehideSelectors:["#BorlabsCookieBox"],test:[{eval:"EVAL_BORLABS_0"}]},{name:"bundesregierung.de",prehideSelectors:[".bpa-cookie-banner"],detectCmp:[{exists:".bpa-cookie-banner"}],detectPopup:[{visible:".bpa-cookie-banner .bpa-module-full-hero"}],optIn:[{click:".bpa-accept-all-button"}],optOut:[{wait:500,comment:"click is not immediately recognized"},{waitForThenClick:".bpa-close-button"}],test:[{eval:"EVAL_BUNDESREGIERUNG_DE_0"}]},{name:"burpee.com",cosmetic:!0,prehideSelectors:["#notice-cookie-block"],detectCmp:[{exists:"#notice-cookie-block"}],detectPopup:[{exists:"#html-body #notice-cookie-block"}],optIn:[{click:"#btn-cookie-allow"}],optOut:[{hide:"#html-body #notice-cookie-block, #notice-cookie"}]},{name:"canva.com",prehideSelectors:['div[role="dialog"] a[data-anchor-id="cookie-policy"]'],detectCmp:[{exists:'div[role="dialog"] a[data-anchor-id="cookie-policy"]'}],detectPopup:[{exists:'div[role="dialog"] a[data-anchor-id="cookie-policy"]'}],optIn:[{click:'div[role="dialog"] button:nth-child(1)'}],optOut:[{if:{exists:'div[role="dialog"] button:nth-child(3)'},then:[{click:'div[role="dialog"] button:nth-child(2)'}],else:[{click:'div[role="dialog"] button:nth-child(2)'},{waitFor:'div[role="dialog"] a[data-anchor-id="cookie-policy"]'},{waitFor:'div[role="dialog"] button[role=switch]'},{click:'div[role="dialog"] button:nth-child(2):not([role])'},{click:'div[role="dialog"] div:last-child button:only-child'}]}],test:[{eval:"EVAL_CANVA_0"}]},{name:"canyon.com",runContext:{urlPattern:"^https://www\\.canyon\\.com/"},prehideSelectors:["div.modal.cookiesModal.is-open"],detectCmp:[{exists:"div.modal.cookiesModal.is-open"}],detectPopup:[{visible:"div.modal.cookiesModal.is-open"}],optIn:[{click:'div.cookiesModal__buttonWrapper > button[data-closecause="close-by-submit"]'}],optOut:[{click:'div.cookiesModal__buttonWrapper > button[data-closecause="close-by-manage-cookies"]'},{waitForThenClick:"button#js-manage-data-privacy-save-button"}]},{name:"cc-banner-springer",prehideSelectors:[".cc-banner[data-cc-banner]"],detectCmp:[{exists:".cc-banner[data-cc-banner]"}],detectPopup:[{visible:".cc-banner[data-cc-banner]"}],optIn:[{waitForThenClick:".cc-banner[data-cc-banner] button[data-cc-action=accept]"}],optOut:[{if:{exists:".cc-banner[data-cc-banner] button[data-cc-action=reject]"},then:[{click:".cc-banner[data-cc-banner] button[data-cc-action=reject]"}],else:[{waitForThenClick:".cc-banner[data-cc-banner] button[data-cc-action=preferences]"},{waitFor:".cc-preferences[data-cc-preferences]"},{click:".cc-preferences[data-cc-preferences] input[type=radio][data-cc-action=toggle-category][value=off]",all:!0,optional:!0},{if:{exists:".cc-preferences[data-cc-preferences] button[data-cc-action=reject]"},then:[{click:".cc-preferences[data-cc-preferences] button[data-cc-action=reject]"}],else:[{click:".cc-preferences[data-cc-preferences] button[data-cc-action=save]"}]}]}],test:[{eval:"EVAL_CC_BANNER2_0"}]},{name:"cc_banner",cosmetic:!0,prehideSelectors:[".cc_banner-wrapper"],detectCmp:[{exists:".cc_banner-wrapper"}],detectPopup:[{visible:".cc_banner"}],optIn:[{click:".cc_btn_accept_all"}],optOut:[{hide:".cc_banner-wrapper"}]},{name:"check24-partnerprogramm-de",prehideSelectors:["[data-modal-content]:has([data-toggle-target^='cookie'])"],detectCmp:[{exists:"[data-toggle-target^='cookie']"}],detectPopup:[{visible:"[data-toggle-target^='cookie']",check:"any"}],optIn:[{waitForThenClick:"[data-cookie-accept-all]"}],optOut:[{waitForThenClick:"[data-cookie-dismiss-all]"}]},{name:"ciaopeople.it",prehideSelectors:["#cp-gdpr-choices"],detectCmp:[{exists:"#cp-gdpr-choices"}],detectPopup:[{visible:"#cp-gdpr-choices"}],optIn:[{waitForThenClick:".gdpr-btm__right > button:nth-child(2)"}],optOut:[{waitForThenClick:".gdpr-top-content > button"},{waitFor:".gdpr-top-back"},{waitForThenClick:".gdpr-btm__right > button:nth-child(1)"}],test:[{visible:"#cp-gdpr-choices",check:"none"}]},{vendorUrl:"https://www.civicuk.com/cookie-control/",name:"civic-cookie-control",prehideSelectors:["#ccc-module,#ccc-overlay"],detectCmp:[{exists:"#ccc-module"}],detectPopup:[{visible:"#ccc"},{visible:"#ccc-module"}],optOut:[{click:"#ccc-reject-settings"}],optIn:[{click:"#ccc-recommended-settings"}]},{name:"click.io",prehideSelectors:["#cl-consent"],detectCmp:[{exists:"#cl-consent"}],detectPopup:[{visible:"#cl-consent"}],optIn:[{waitForThenClick:'#cl-consent [data-role="b_agree"]'}],optOut:[{waitFor:'#cl-consent [data-role="b_options"]'},{wait:500},{click:'#cl-consent [data-role="b_options"]'},{waitFor:'.cl-consent-popup.cl-consent-visible [data-role="alloff"]'},{click:'.cl-consent-popup.cl-consent-visible [data-role="alloff"]',all:!0},{click:'[data-role="b_save"]'}],test:[{eval:"EVAL_CLICKIO_0",comment:"TODO: this only checks if we interacted at all"}]},{name:"clinch",intermediate:!1,runContext:{frame:!1,main:!0},prehideSelectors:[".consent-modal[role=dialog]"],detectCmp:[{exists:".consent-modal[role=dialog]"}],detectPopup:[{visible:".consent-modal[role=dialog]"}],optIn:[{click:"#consent_agree"}],optOut:[{if:{exists:"#consent_reject"},then:[{click:"#consent_reject"}],else:[{click:"#manage_cookie_preferences"},{click:"#cookie_consent_preferences input:checked",all:!0,optional:!0},{click:"#consent_save"}]}],test:[{eval:"EVAL_CLINCH_0"}]},{name:"clustrmaps.com",runContext:{urlPattern:"^https://(www\\.)?clustrmaps\\.com/"},cosmetic:!0,prehideSelectors:["#gdpr-cookie-message"],detectCmp:[{exists:"#gdpr-cookie-message"}],detectPopup:[{visible:"#gdpr-cookie-message"}],optIn:[{click:"button#gdpr-cookie-accept"}],optOut:[{hide:"#gdpr-cookie-message"}]},{name:"coinbase",intermediate:!1,runContext:{frame:!0,main:!0,urlPattern:"^https://(www|help)\\.coinbase\\.com"},prehideSelectors:[],detectCmp:[{exists:"div[class^=CookieBannerContent__Container]"}],detectPopup:[{visible:"div[class^=CookieBannerContent__Container]"}],optIn:[{click:"div[class^=CookieBannerContent__CTA] :nth-last-child(1)"}],optOut:[{click:"button[class^=CookieBannerContent__Settings]"},{click:"div[class^=CookiePreferencesModal__CategoryContainer] input:checked",all:!0,optional:!0},{click:"div[class^=CookiePreferencesModal__ButtonContainer] > button"}],test:[{eval:"EVAL_COINBASE_0"}]},{name:"Complianz banner",prehideSelectors:["#cmplz-cookiebanner-container"],detectCmp:[{exists:"#cmplz-cookiebanner-container .cmplz-cookiebanner"}],detectPopup:[{visible:"#cmplz-cookiebanner-container .cmplz-cookiebanner",check:"any"}],optIn:[{waitForThenClick:".cmplz-cookiebanner .cmplz-accept"}],optOut:[{waitForThenClick:".cmplz-cookiebanner .cmplz-deny"}],test:[{eval:"EVAL_COMPLIANZ_BANNER_0"}]},{name:"Complianz categories",prehideSelectors:['.cc-type-categories[aria-describedby="cookieconsent:desc"]'],detectCmp:[{exists:'.cc-type-categories[aria-describedby="cookieconsent:desc"]'}],detectPopup:[{visible:'.cc-type-categories[aria-describedby="cookieconsent:desc"]'}],optIn:[{any:[{click:".cc-accept-all"},{click:".cc-allow-all"},{click:".cc-allow"},{click:".cc-dismiss"}]}],optOut:[{if:{exists:'.cc-type-categories[aria-describedby="cookieconsent:desc"] .cc-dismiss'},then:[{click:".cc-dismiss"}],else:[{click:".cc-type-categories input[type=checkbox]:not([disabled]):checked",all:!0,optional:!0},{click:".cc-save"}]}]},{name:"Complianz notice",prehideSelectors:['.cc-type-info[aria-describedby="cookieconsent:desc"]'],cosmetic:!0,detectCmp:[{exists:'.cc-type-info[aria-describedby="cookieconsent:desc"] .cc-compliance .cc-btn'}],detectPopup:[{visible:'.cc-type-info[aria-describedby="cookieconsent:desc"] .cc-compliance .cc-btn'}],optIn:[{click:".cc-accept-all",optional:!0},{click:".cc-allow",optional:!0},{click:".cc-dismiss",optional:!0}],optOut:[{if:{exists:".cc-deny"},then:[{click:".cc-deny"}],else:[{hide:'[aria-describedby="cookieconsent:desc"]'}]}]},{name:"Complianz opt-both",prehideSelectors:['[aria-describedby="cookieconsent:desc"] .cc-type-opt-both'],detectCmp:[{exists:'[aria-describedby="cookieconsent:desc"] .cc-type-opt-both'}],detectPopup:[{visible:'[aria-describedby="cookieconsent:desc"] .cc-type-opt-both'}],optIn:[{click:".cc-accept-all",optional:!0},{click:".cc-allow",optional:!0},{click:".cc-dismiss",optional:!0}],optOut:[{waitForThenClick:".cc-deny"}]},{name:"Complianz opt-out",prehideSelectors:['[aria-describedby="cookieconsent:desc"].cc-type-opt-out'],detectCmp:[{exists:'[aria-describedby="cookieconsent:desc"].cc-type-opt-out'}],detectPopup:[{visible:'[aria-describedby="cookieconsent:desc"].cc-type-opt-out'}],optIn:[{click:".cc-accept-all",optional:!0},{click:".cc-allow",optional:!0},{click:".cc-dismiss",optional:!0}],optOut:[{if:{exists:".cc-deny"},then:[{click:".cc-deny"}],else:[{if:{exists:".cmp-pref-link"},then:[{click:".cmp-pref-link"},{waitForThenClick:".cmp-body [id*=rejectAll]"},{waitForThenClick:".cmp-body .cmp-save-btn"}]}]}]},{name:"Complianz optin",prehideSelectors:['.cc-type-opt-in[aria-describedby="cookieconsent:desc"]'],detectCmp:[{exists:'.cc-type-opt-in[aria-describedby="cookieconsent:desc"]'}],detectPopup:[{visible:'.cc-type-opt-in[aria-describedby="cookieconsent:desc"]'}],optIn:[{any:[{click:".cc-accept-all"},{click:".cc-allow"},{click:".cc-dismiss"}]}],optOut:[{if:{visible:".cc-deny"},then:[{click:".cc-deny"}],else:[{if:{visible:".cc-settings"},then:[{waitForThenClick:".cc-settings"},{waitForVisible:".cc-settings-view"},{click:".cc-settings-view input[type=checkbox]:not([disabled]):checked",all:!0,optional:!0},{click:".cc-settings-view .cc-btn-accept-selected"}],else:[{click:".cc-dismiss"}]}]}]},{name:"cookie-law-info",prehideSelectors:["#cookie-law-info-bar"],detectCmp:[{exists:"#cookie-law-info-bar"},{eval:"EVAL_COOKIE_LAW_INFO_DETECT"}],detectPopup:[{visible:"#cookie-law-info-bar"}],optIn:[{click:'[data-cli_action="accept_all"]'}],optOut:[{hide:"#cookie-law-info-bar"},{eval:"EVAL_COOKIE_LAW_INFO_0"}],test:[{eval:"EVAL_COOKIE_LAW_INFO_1"}]},{name:"cookie-manager-popup",cosmetic:!1,runContext:{main:!0,frame:!1},intermediate:!1,detectCmp:[{exists:"#notice-cookie-block #allow-functional-cookies, #notice-cookie-block #btn-cookie-settings"}],detectPopup:[{visible:"#notice-cookie-block"}],optIn:[{click:"#btn-cookie-allow"}],optOut:[{if:{exists:"#allow-functional-cookies"},then:[{click:"#allow-functional-cookies"}],else:[{waitForThenClick:"#btn-cookie-settings"},{waitForVisible:".modal-body"},{click:'.modal-body input:checked, .switch[data-switch="on"]',all:!0,optional:!0},{click:'[role="dialog"] .modal-footer button'}]}],prehideSelectors:["#btn-cookie-settings"],test:[{eval:"EVAL_COOKIE_MANAGER_POPUP_0"}]},{name:"cookie-notice",prehideSelectors:["#cookie-notice"],cosmetic:!0,detectCmp:[{visible:"#cookie-notice .cookie-notice-container"}],detectPopup:[{visible:"#cookie-notice"}],optIn:[{click:"#cn-accept-cookie"}],optOut:[{hide:"#cookie-notice"}]},{name:"cookie-script",vendorUrl:"https://cookie-script.com/",prehideSelectors:["#cookiescript_injected"],detectCmp:[{exists:"#cookiescript_injected"}],detectPopup:[{visible:"#cookiescript_injected"}],optOut:[{if:{exists:"#cookiescript_reject"},then:[{wait:100},{click:"#cookiescript_reject"}],else:[{click:"#cookiescript_manage"},{waitForVisible:".cookiescript_fsd_main"},{waitForThenClick:"#cookiescript_reject"}]}],optIn:[{click:"#cookiescript_accept"}]},{name:"cookieacceptbar",vendorUrl:"https://unknown",cosmetic:!0,prehideSelectors:["#cookieAcceptBar.cookieAcceptBar"],detectCmp:[{exists:"#cookieAcceptBar.cookieAcceptBar"}],detectPopup:[{visible:"#cookieAcceptBar.cookieAcceptBar"}],optIn:[{waitForThenClick:"#cookieAcceptBarConfirm"}],optOut:[{hide:"#cookieAcceptBar.cookieAcceptBar"}]},{name:"cookiealert",intermediate:!1,prehideSelectors:[],runContext:{frame:!0,main:!0},detectCmp:[{exists:".cookie-alert-extended"}],detectPopup:[{visible:".cookie-alert-extended-modal"}],optIn:[{click:"button[data-controller='cookie-alert/extended/button/accept']"},{eval:"EVAL_COOKIEALERT_0"}],optOut:[{click:"a[data-controller='cookie-alert/extended/detail-link']"},{click:".cookie-alert-configuration-input:checked",all:!0,optional:!0},{click:"button[data-controller='cookie-alert/extended/button/configuration']"},{eval:"EVAL_COOKIEALERT_0"}],test:[{eval:"EVAL_COOKIEALERT_2"}]},{name:"cookieconsent2",vendorUrl:"https://www.github.com/orestbida/cookieconsent",comment:"supports v2.x.x of the library",prehideSelectors:["#cc--main"],detectCmp:[{exists:"#cc--main"}],detectPopup:[{visible:"#cm"},{exists:"#s-all-bn"}],optIn:[{waitForThenClick:"#s-all-bn"}],optOut:[{waitForThenClick:"#s-rall-bn"}],test:[{eval:"EVAL_COOKIECONSENT2_TEST"}]},{name:"cookieconsent3",vendorUrl:"https://www.github.com/orestbida/cookieconsent",comment:"supports v3.x.x of the library",prehideSelectors:["#cc-main"],detectCmp:[{exists:"#cc-main"}],detectPopup:[{visible:"#cc-main .cm-wrapper"}],optIn:[{waitForThenClick:".cm__btn[data-role=all]"}],optOut:[{waitForThenClick:".cm__btn[data-role=necessary]"}],test:[{eval:"EVAL_COOKIECONSENT3_TEST"}]},{name:"cookiecuttr",vendorUrl:"https://github.com/cdwharton/cookieCuttr",cosmetic:!1,runContext:{main:!0,frame:!1,urlPattern:""},prehideSelectors:[".cc-cookies"],detectCmp:[{exists:".cc-cookies .cc-cookie-accept"}],detectPopup:[{visible:".cc-cookies .cc-cookie-accept"}],optIn:[{waitForThenClick:".cc-cookies .cc-cookie-accept"}],optOut:[{if:{exists:".cc-cookies .cc-cookie-decline"},then:[{click:".cc-cookies .cc-cookie-decline"}],else:[{hide:".cc-cookies"}]}]},{name:"cookiefirst.com",prehideSelectors:["#cookiefirst-root,.cookiefirst-root,[aria-labelledby=cookie-preference-panel-title]"],detectCmp:[{exists:"#cookiefirst-root,.cookiefirst-root"}],detectPopup:[{visible:"#cookiefirst-root,.cookiefirst-root"}],optIn:[{click:"button[data-cookiefirst-action=accept]"}],optOut:[{if:{exists:"button[data-cookiefirst-action=adjust]"},then:[{click:"button[data-cookiefirst-action=adjust]"},{waitForVisible:"[data-cookiefirst-widget=modal]",timeout:1e3},{eval:"EVAL_COOKIEFIRST_1"},{wait:1e3},{click:"button[data-cookiefirst-action=save]"}],else:[{click:"button[data-cookiefirst-action=reject]"}]}],test:[{eval:"EVAL_COOKIEFIRST_0"}]},{name:"Cookie Information Banner",prehideSelectors:["#cookie-information-template-wrapper"],detectCmp:[{exists:"#cookie-information-template-wrapper"}],detectPopup:[{visible:"#cookie-information-template-wrapper"}],optIn:[{eval:"EVAL_COOKIEINFORMATION_1"}],optOut:[{hide:"#cookie-information-template-wrapper",comment:"some templates don't hide the banner automatically"},{eval:"EVAL_COOKIEINFORMATION_0"}],test:[{eval:"EVAL_COOKIEINFORMATION_2"}]},{name:"cookieyes",prehideSelectors:[".cky-overlay,.cky-consent-container"],detectCmp:[{exists:".cky-consent-container"}],detectPopup:[{visible:".cky-consent-container"}],optIn:[{waitForThenClick:".cky-consent-container [data-cky-tag=accept-button]"}],optOut:[{if:{exists:".cky-consent-container [data-cky-tag=reject-button]"},then:[{waitForThenClick:".cky-consent-container [data-cky-tag=reject-button]"}],else:[{if:{exists:".cky-consent-container [data-cky-tag=settings-button]"},then:[{click:".cky-consent-container [data-cky-tag=settings-button]"},{waitFor:".cky-modal-open input[type=checkbox]"},{click:".cky-modal-open input[type=checkbox]:checked",all:!0,optional:!0},{waitForThenClick:".cky-modal [data-cky-tag=detail-save-button]"}],else:[{hide:".cky-consent-container,.cky-overlay"}]}]}],test:[{eval:"EVAL_COOKIEYES_0"}]},{name:"corona-in-zahlen.de",prehideSelectors:[".cookiealert"],detectCmp:[{exists:".cookiealert"}],detectPopup:[{visible:".cookiealert"}],optOut:[{click:".configurecookies"},{click:".confirmcookies"}],optIn:[{click:".acceptcookies"}]},{name:"crossfit-com",cosmetic:!0,prehideSelectors:['body #modal > div > div[class^="_wrapper_"]'],detectCmp:[{exists:'body #modal > div > div[class^="_wrapper_"]'}],detectPopup:[{visible:'body #modal > div > div[class^="_wrapper_"]'}],optIn:[{click:'button[aria-label="accept cookie policy"]'}],optOut:[{hide:'body #modal > div > div[class^="_wrapper_"]'}]},{name:"csu-landtag-de",runContext:{urlPattern:"^https://(www\\.|)?csu-landtag\\.de"},prehideSelectors:["#cookie-disclaimer"],detectCmp:[{exists:"#cookie-disclaimer"}],detectPopup:[{visible:"#cookie-disclaimer"}],optIn:[{click:"#cookieall"}],optOut:[{click:"#cookiesel"}]},{name:"dailymotion-us",cosmetic:!0,prehideSelectors:['div[class*="CookiePopup__desktopContainer"]:has(div[class*="CookiePopup"])'],detectCmp:[{exists:'div[class*="CookiePopup__desktopContainer"]'}],detectPopup:[{visible:'div[class*="CookiePopup__desktopContainer"]'}],optIn:[{click:'div[class*="CookiePopup__desktopContainer"] > button > span'}],optOut:[{hide:'div[class*="CookiePopup__desktopContainer"]'}]},{name:"dailymotion.com",runContext:{urlPattern:"^https://(www\\.)?dailymotion\\.com/"},prehideSelectors:['div[class*="Overlay__container"]:has(div[class*="TCF2Popup"])'],detectCmp:[{exists:'div[class*="TCF2Popup"]'}],detectPopup:[{visible:'[class*="TCF2Popup"] a[href^="https://www.dailymotion.com/legal/cookiemanagement"]'}],optIn:[{waitForThenClick:'button[class*="TCF2Popup__button"]:not([class*="TCF2Popup__personalize"])'}],optOut:[{waitForThenClick:'button[class*="TCF2ContinueWithoutAcceptingButton"]'}],test:[{eval:"EVAL_DAILYMOTION_0"}]},{name:"dan-com",vendorUrl:"https://unknown",runContext:{main:!0,frame:!1},prehideSelectors:[],detectCmp:[{exists:".cookie-banner.show .cookie-banner__content-all-btn"}],detectPopup:[{visible:".cookie-banner.show .cookie-banner__content-all-btn"}],optIn:[{waitForThenClick:".cookie-banner__content-all-btn"}],optOut:[{waitForThenClick:".cookie-banner__content-essential-btn"}]},{name:"deepl.com",prehideSelectors:[".dl_cookieBanner_container"],detectCmp:[{exists:".dl_cookieBanner_container"}],detectPopup:[{visible:".dl_cookieBanner_container"}],optOut:[{click:".dl_cookieBanner--buttonSelected"}],optIn:[{click:".dl_cookieBanner--buttonAll"}]},{name:"delta.com",runContext:{urlPattern:"^https://www\\.delta\\.com/"},cosmetic:!0,prehideSelectors:["ngc-cookie-banner"],detectCmp:[{exists:"div.cookie-footer-container"}],detectPopup:[{visible:"div.cookie-footer-container"}],optIn:[{click:" button.cookie-close-icon"}],optOut:[{hide:"div.cookie-footer-container"}]},{name:"dmgmedia-us",prehideSelectors:["#mol-ads-cmp-iframe, div.mol-ads-cmp > form > div"],detectCmp:[{exists:"div.mol-ads-cmp > form > div"}],detectPopup:[{waitForVisible:"div.mol-ads-cmp > form > div"}],optIn:[{waitForThenClick:"button.mol-ads-cmp--btn-primary"}],optOut:[{waitForThenClick:"div.mol-ads-ccpa--message > u > a"},{waitForVisible:".mol-ads-cmp--modal-dialog"},{waitForThenClick:"a.mol-ads-cmp-footer-privacy"},{waitForThenClick:"button.mol-ads-cmp--btn-secondary"}]},{name:"dmgmedia",prehideSelectors:['[data-project="mol-fe-cmp"]'],detectCmp:[{exists:'[data-project="mol-fe-cmp"] [class*=footer]'}],detectPopup:[{visible:'[data-project="mol-fe-cmp"] [class*=footer]'}],optIn:[{waitForThenClick:'[data-project="mol-fe-cmp"] button[class*=primary]'}],optOut:[{waitForThenClick:'[data-project="mol-fe-cmp"] button[class*=basic]'},{waitForVisible:'[data-project="mol-fe-cmp"] div[class*="tabContent"]'},{waitForThenClick:'[data-project="mol-fe-cmp"] div[class*="toggle"][class*="enabled"]',all:!0},{waitForThenClick:['[data-project="mol-fe-cmp"] [class*=footer]',"xpath///button[contains(., 'Save & Exit')]"]}]},{name:"dndbeyond",vendorUrl:"https://www.dndbeyond.com/",runContext:{urlPattern:"^https://(www\\.)?dndbeyond\\.com/"},prehideSelectors:["[id^=cookie-consent-banner]"],detectCmp:[{exists:"[id^=cookie-consent-banner]"}],detectPopup:[{visible:"[id^=cookie-consent-banner]"}],optIn:[{waitForThenClick:"#cookie-consent-granted"}],optOut:[{waitForThenClick:"#cookie-consent-denied"}],test:[{eval:"EVAL_DNDBEYOND_TEST"}]},{name:"dpgmedia-nl",prehideSelectors:["#pg-shadow-host"],detectCmp:[{exists:"#pg-shadow-host"}],detectPopup:[{visible:["#pg-shadow-host","#pg-modal"]}],optIn:[{waitForThenClick:["#pg-shadow-host","#pg-accept-btn"]}],optOut:[{waitForThenClick:["#pg-shadow-host","#pg-configure-btn"]},{waitForThenClick:["#pg-shadow-host","#pg-reject-btn"]}]},{name:"Drupal",detectCmp:[{exists:"#drupalorg-crosssite-gdpr"}],detectPopup:[{visible:"#drupalorg-crosssite-gdpr"}],optOut:[{click:".no"}],optIn:[{click:".yes"}]},{name:"WP DSGVO Tools",link:"https://wordpress.org/plugins/shapepress-dsgvo/",prehideSelectors:[".sp-dsgvo"],cosmetic:!0,detectCmp:[{exists:".sp-dsgvo.sp-dsgvo-popup-overlay"}],detectPopup:[{visible:".sp-dsgvo.sp-dsgvo-popup-overlay",check:"any"}],optIn:[{click:".sp-dsgvo-privacy-btn-accept-all",all:!0}],optOut:[{hide:".sp-dsgvo.sp-dsgvo-popup-overlay"}],test:[{eval:"EVAL_DSGVO_0"}]},{name:"dunelm.com",prehideSelectors:["div[data-testid=cookie-consent-modal-backdrop]"],detectCmp:[{exists:"div[data-testid=cookie-consent-message-contents]"}],detectPopup:[{visible:"div[data-testid=cookie-consent-message-contents]"}],optIn:[{click:'[data-testid="cookie-consent-allow-all"]'}],optOut:[{click:"button[data-testid=cookie-consent-adjust-settings]"},{click:"button[data-testid=cookie-consent-preferences-save]"}],test:[{eval:"EVAL_DUNELM_0"}]},{name:"ebay",vendorUrl:"https://ebay.com",cosmetic:!1,runContext:{main:!0,frame:!1,urlPattern:"^https://(www\\.)?ebay\\.([.a-z]+)/"},prehideSelectors:["#gdpr-banner"],detectCmp:[{exists:"#gdpr-banner"}],detectPopup:[{visible:"#gdpr-banner"}],optIn:[{waitForThenClick:"#gdpr-banner-accept"}],optOut:[{waitForThenClick:"#gdpr-banner-decline"}]},{name:"ecosia",vendorUrl:"https://www.ecosia.org/",runContext:{urlPattern:"^https://www\\.ecosia\\.org/"},prehideSelectors:[".cookie-wrapper"],detectCmp:[{exists:".cookie-wrapper > .cookie-notice"}],detectPopup:[{visible:".cookie-wrapper > .cookie-notice"}],optIn:[{waitForThenClick:"[data-test-id=cookie-notice-accept]"}],optOut:[{waitForThenClick:"[data-test-id=cookie-notice-reject]"}]},{name:"Ensighten ensModal",prehideSelectors:[".ensModal"],detectCmp:[{exists:".ensModal"}],detectPopup:[{visible:"#ensModalWrapper[style*=block]"}],optIn:[{waitForThenClick:"#modalAcceptButton"}],optOut:[{wait:500},{visible:"#ensModalWrapper[style*=block]"},{waitForThenClick:".ensCheckbox:checked",all:!0},{waitForThenClick:"#ensSave"}]},{name:"Ensighten ensNotifyBanner",prehideSelectors:["#ensNotifyBanner"],detectCmp:[{exists:"#ensNotifyBanner"}],detectPopup:[{visible:"#ensNotifyBanner[style*=block]"}],optIn:[{waitForThenClick:"#ensCloseBanner"}],optOut:[{wait:500},{visible:"#ensNotifyBanner[style*=block]"},{waitForThenClick:"#ensRejectAll,#rejectAll,#ensRejectBanner,.rejectAll,#ensCloseBanner",timeout:2e3}]},{name:"espace-personnel.agirc-arrco.fr",runContext:{urlPattern:"^https://espace-personnel\\.agirc-arrco\\.fr/"},prehideSelectors:[".cdk-overlay-container"],detectCmp:[{exists:".cdk-overlay-container app-esaa-cookie-component"}],detectPopup:[{visible:".cdk-overlay-container app-esaa-cookie-component"}],optIn:[{waitForThenClick:".btn-cookie-accepter"}],optOut:[{waitForThenClick:".btn-cookie-refuser"}]},{name:"etsy",prehideSelectors:["#gdpr-single-choice-overlay","#gdpr-privacy-settings"],detectCmp:[{exists:"#gdpr-single-choice-overlay"}],detectPopup:[{visible:"#gdpr-single-choice-overlay"}],optOut:[{click:"button[data-gdpr-open-full-settings]"},{waitForVisible:".gdpr-overlay-body input",timeout:3e3},{wait:1e3},{eval:"EVAL_ETSY_0"},{eval:"EVAL_ETSY_1"}],optIn:[{click:"button[data-gdpr-single-choice-accept]"}]},{name:"eu-cookie-compliance-banner",detectCmp:[{exists:"body.eu-cookie-compliance-popup-open"}],detectPopup:[{exists:"body.eu-cookie-compliance-popup-open"}],optIn:[{click:".agree-button"}],optOut:[{if:{visible:".decline-button,.eu-cookie-compliance-save-preferences-button"},then:[{click:".decline-button,.eu-cookie-compliance-save-preferences-button"}]},{hide:".eu-cookie-compliance-banner-info, #sliding-popup"}],test:[{eval:"EVAL_EU_COOKIE_COMPLIANCE_0"}]},{name:"EU Cookie Law",prehideSelectors:[".pea_cook_wrapper,.pea_cook_more_info_popover"],cosmetic:!0,detectCmp:[{exists:".pea_cook_wrapper"}],detectPopup:[{wait:500},{visible:".pea_cook_wrapper"}],optIn:[{click:"#pea_cook_btn"}],optOut:[{hide:".pea_cook_wrapper"}],test:[{eval:"EVAL_EU_COOKIE_LAW_0"}]},{name:"europa-eu",vendorUrl:"https://ec.europa.eu/",runContext:{urlPattern:"^https://[^/]*europa\\.eu/"},prehideSelectors:["#cookie-consent-banner"],detectCmp:[{exists:".cck-container"}],detectPopup:[{visible:".cck-container"}],optIn:[{waitForThenClick:'.cck-actions-button[href="#accept"]'}],optOut:[{waitForThenClick:'.cck-actions-button[href="#refuse"]',hide:".cck-container"}]},{name:"EZoic",prehideSelectors:["#ez-cookie-dialog-wrapper"],detectCmp:[{exists:"#ez-cookie-dialog-wrapper"}],detectPopup:[{visible:"#ez-cookie-dialog-wrapper"}],optIn:[{click:"#ez-accept-all",optional:!0},{eval:"EVAL_EZOIC_0",optional:!0}],optOut:[{wait:500},{click:"#ez-manage-settings"},{waitFor:"#ez-cookie-dialog input[type=checkbox]"},{click:"#ez-cookie-dialog input[type=checkbox]:checked",all:!0},{click:"#ez-save-settings"}],test:[{eval:"EVAL_EZOIC_1"}]},{name:"facebook",runContext:{urlPattern:"^https://([a-z0-9-]+\\.)?facebook\\.com/"},prehideSelectors:['div[data-testid="cookie-policy-manage-dialog"]'],detectCmp:[{exists:'div[data-testid="cookie-policy-manage-dialog"]'}],detectPopup:[{visible:'div[data-testid="cookie-policy-manage-dialog"]'}],optIn:[{waitForThenClick:'button[data-cookiebanner="accept_button"]'},{waitForVisible:'div[data-testid="cookie-policy-manage-dialog"]',check:"none"}],optOut:[{waitForThenClick:'button[data-cookiebanner="accept_only_essential_button"]'},{waitForVisible:'div[data-testid="cookie-policy-manage-dialog"]',check:"none"}]},{name:"fides",vendorUrl:"https://github.com/ethyca/fides",prehideSelectors:["#fides-overlay"],detectCmp:[{exists:"#fides-overlay #fides-banner"}],detectPopup:[{visible:"#fides-overlay #fides-banner"},{eval:"EVAL_FIDES_DETECT_POPUP"}],optIn:[{waitForThenClick:"#fides-banner .fides-accept-all-button"}],optOut:[{waitForThenClick:"#fides-banner .fides-reject-all-button"}]},{name:"funding-choices",prehideSelectors:[".fc-consent-root,.fc-dialog-container,.fc-dialog-overlay,.fc-dialog-content"],detectCmp:[{exists:".fc-consent-root"}],detectPopup:[{exists:".fc-dialog-container"}],optOut:[{click:".fc-cta-do-not-consent,.fc-cta-manage-options"},{click:".fc-preference-consent:checked,.fc-preference-legitimate-interest:checked",all:!0,optional:!0},{click:".fc-confirm-choices",optional:!0}],optIn:[{click:".fc-cta-consent"}]},{name:"geeks-for-geeks",runContext:{urlPattern:"^https://www\\.geeksforgeeks\\.org/"},cosmetic:!0,prehideSelectors:[".cookie-consent"],detectCmp:[{exists:".cookie-consent"}],detectPopup:[{visible:".cookie-consent"}],optIn:[{click:".cookie-consent button.consent-btn"}],optOut:[{hide:".cookie-consent"}]},{name:"google-consent-standalone",prehideSelectors:[],detectCmp:[{exists:'a[href^="https://policies.google.com/technologies/cookies"'},{exists:'form[action^="https://consent.google."][action$=".com/save"]'}],detectPopup:[{visible:'a[href^="https://policies.google.com/technologies/cookies"'}],optIn:[{waitForThenClick:'form[action^="https://consent.google."][action$=".com/save"]:has(input[name=set_eom][value=false]) button'}],optOut:[{waitForThenClick:'form[action^="https://consent.google."][action$=".com/save"]:has(input[name=set_eom][value=true]) button'}]},{name:"google.com",prehideSelectors:[".HTjtHe#xe7COe"],detectCmp:[{exists:".HTjtHe#xe7COe"},{exists:'.HTjtHe#xe7COe a[href^="https://policies.google.com/technologies/cookies"]'}],detectPopup:[{visible:".HTjtHe#xe7COe button#W0wltc"}],optIn:[{waitForThenClick:".HTjtHe#xe7COe button#L2AGLb"}],optOut:[{waitForThenClick:".HTjtHe#xe7COe button#W0wltc"}],test:[{eval:"EVAL_GOOGLE_0"}]},{name:"gov.uk",detectCmp:[{exists:"#global-cookie-message"}],detectPopup:[{exists:"#global-cookie-message"}],optIn:[{click:"button[data-accept-cookies=true]"}],optOut:[{click:"button[data-reject-cookies=true],#reject-cookies"},{click:"button[data-hide-cookie-banner=true],#hide-cookie-decision"}]},{name:"hashicorp",vendorUrl:"https://hashicorp.com/",runContext:{urlPattern:"^https://[^.]*\\.hashicorp\\.com/"},prehideSelectors:["[data-testid=consent-banner]"],detectCmp:[{exists:"[data-testid=consent-banner]"}],detectPopup:[{visible:"[data-testid=consent-banner]"}],optIn:[{waitForThenClick:"[data-testid=accept]"}],optOut:[{waitForThenClick:"[data-testid=manage-preferences]"},{waitForThenClick:"[data-testid=consent-mgr-dialog] [data-ga-button=save-preferences]"}]},{name:"healthline-media",prehideSelectors:["#modal-host > div.no-hash > div.window-wrapper"],detectCmp:[{exists:"#modal-host > div.no-hash > div.window-wrapper, div[data-testid=qualtrics-container]"}],detectPopup:[{exists:"#modal-host > div.no-hash > div.window-wrapper, div[data-testid=qualtrics-container]"}],optIn:[{click:"#modal-host > div.no-hash > div.window-wrapper > div:last-child button"}],optOut:[{if:{exists:'#modal-host > div.no-hash > div.window-wrapper > div:last-child a[href="/privacy-settings"]'},then:[{click:'#modal-host > div.no-hash > div.window-wrapper > div:last-child a[href="/privacy-settings"]'}],else:[{waitForVisible:"div#__next"},{click:"#__next div:nth-child(1) > button:first-child"}]}]},{name:"hema",prehideSelectors:[".cookie-modal"],detectCmp:[{visible:".cookie-modal .cookie-accept-btn"}],detectPopup:[{visible:".cookie-modal .cookie-accept-btn"}],optIn:[{waitForThenClick:".cookie-modal .cookie-accept-btn"}],optOut:[{waitForThenClick:".cookie-modal .js-cookie-reject-btn"}],test:[{eval:"EVAL_HEMA_TEST_0"}]},{name:"hetzner.com",runContext:{urlPattern:"^https://www\\.hetzner\\.com/"},prehideSelectors:["#CookieConsent"],detectCmp:[{exists:"#CookieConsent"}],detectPopup:[{visible:"#CookieConsent"}],optIn:[{click:"#CookieConsentGiven"}],optOut:[{click:"#CookieConsentDeclined"}]},{name:"hl.co.uk",prehideSelectors:[".cookieModalContent","#cookie-banner-overlay"],detectCmp:[{exists:"#cookie-banner-overlay"}],detectPopup:[{exists:"#cookie-banner-overlay"}],optIn:[{click:"#acceptCookieButton"}],optOut:[{click:"#manageCookie"},{hide:".cookieSettingsModal"},{waitFor:"#AOCookieToggle"},{click:"#AOCookieToggle[aria-pressed=true]",optional:!0},{waitFor:"#TPCookieToggle"},{click:"#TPCookieToggle[aria-pressed=true]",optional:!0},{click:"#updateCookieButton"}]},{name:"holidaymedia",vendorUrl:"https://holidaymedia.nl/",prehideSelectors:["dialog[data-cookie-consent]"],detectCmp:[{exists:"dialog[data-cookie-consent]"}],detectPopup:[{visible:"dialog[data-cookie-consent]"}],optIn:[{waitForThenClick:"button.cookie-consent__button--accept-all"}],optOut:[{waitForThenClick:'a[data-cookie-accept="functional"]',timeout:2e3}]},{name:"hu-manity",vendorUrl:"https://hu-manity.co/",prehideSelectors:["#hu.hu-wrapper"],detectCmp:[{exists:"#hu.hu-visible"}],detectPopup:[{visible:"#hu.hu-visible"}],optIn:[{waitForThenClick:"[data-hu-action=cookies-notice-consent-choices-3]"},{waitForThenClick:"#hu-cookies-save"}],optOut:[{waitForThenClick:"#hu-cookies-save"}]},{name:"hubspot",detectCmp:[{exists:"#hs-eu-cookie-confirmation"}],detectPopup:[{visible:"#hs-eu-cookie-confirmation"}],optIn:[{click:"#hs-eu-confirmation-button"}],optOut:[{click:"#hs-eu-decline-button"}]},{name:"indeed.com",cosmetic:!0,prehideSelectors:["#CookiePrivacyNotice"],detectCmp:[{exists:"#CookiePrivacyNotice"}],detectPopup:[{visible:"#CookiePrivacyNotice"}],optIn:[{click:"#CookiePrivacyNotice button[data-gnav-element-name=CookiePrivacyNoticeOk]"}],optOut:[{hide:"#CookiePrivacyNotice"}]},{name:"ing.de",runContext:{urlPattern:"^https://www\\.ing\\.de/"},cosmetic:!0,prehideSelectors:['div[slot="backdrop"]'],detectCmp:[{exists:'[data-tag-name="ing-cc-dialog-frame"]'}],detectPopup:[{visible:'[data-tag-name="ing-cc-dialog-frame"]'}],optIn:[{click:['[data-tag-name="ing-cc-dialog-level0"]','[data-tag-name="ing-cc-button"][class*="accept"]']}],optOut:[{click:['[data-tag-name="ing-cc-dialog-level0"]','[data-tag-name="ing-cc-button"][class*="more"]']}]},{name:"instagram",vendorUrl:"https://instagram.com",runContext:{urlPattern:"^https://www\\.instagram\\.com/"},prehideSelectors:[],detectCmp:[{exists:'xpath///span[contains(., "Vill du tillåta användningen av cookies från Instagram i den här webbläsaren?") or contains(., "Allow the use of cookies from Instagram on this browser?") or contains(., "Povolit v prohlížeči použití souborů cookie z Instagramu?") or contains(., "Dopustiti upotrebu kolačića s Instagrama na ovom pregledniku?") or contains(., "Разрешить использование файлов cookie от Instagram в этом браузере?") or contains(., "Vuoi consentire l\'uso dei cookie di Instagram su questo browser?") or contains(., "Povoliť používanie cookies zo služby Instagram v tomto prehliadači?") or contains(., "Die Verwendung von Cookies durch Instagram in diesem Browser erlauben?") or contains(., "Sallitaanko Instagramin evästeiden käyttö tällä selaimella?") or contains(., "Engedélyezed az Instagram cookie-jainak használatát ebben a böngészőben?") or contains(., "Het gebruik van cookies van Instagram toestaan in deze browser?") or contains(., "Bu tarayıcıda Instagram\'dan çerez kullanımına izin verilsin mi?") or contains(., "Permitir o uso de cookies do Instagram neste navegador?") or contains(., "Permiţi folosirea modulelor cookie de la Instagram în acest browser?") or contains(., "Autoriser l’utilisation des cookies d’Instagram sur ce navigateur ?") or contains(., "¿Permitir el uso de cookies de Instagram en este navegador?") or contains(., "Zezwolić na użycie plików cookie z Instagramu w tej przeglądarce?") or contains(., "Να επιτρέπεται η χρήση cookies από τo Instagram σε αυτό το πρόγραμμα περιήγησης;") or contains(., "Разрешавате ли използването на бисквитки от Instagram на този браузър?") or contains(., "Vil du tillade brugen af cookies fra Instagram i denne browser?") or contains(., "Vil du tillate bruk av informasjonskapsler fra Instagram i denne nettleseren?")]'}],detectPopup:[{visible:'xpath///span[contains(., "Vill du tillåta användningen av cookies från Instagram i den här webbläsaren?") or contains(., "Allow the use of cookies from Instagram on this browser?") or contains(., "Povolit v prohlížeči použití souborů cookie z Instagramu?") or contains(., "Dopustiti upotrebu kolačića s Instagrama na ovom pregledniku?") or contains(., "Разрешить использование файлов cookie от Instagram в этом браузере?") or contains(., "Vuoi consentire l\'uso dei cookie di Instagram su questo browser?") or contains(., "Povoliť používanie cookies zo služby Instagram v tomto prehliadači?") or contains(., "Die Verwendung von Cookies durch Instagram in diesem Browser erlauben?") or contains(., "Sallitaanko Instagramin evästeiden käyttö tällä selaimella?") or contains(., "Engedélyezed az Instagram cookie-jainak használatát ebben a böngészőben?") or contains(., "Het gebruik van cookies van Instagram toestaan in deze browser?") or contains(., "Bu tarayıcıda Instagram\'dan çerez kullanımına izin verilsin mi?") or contains(., "Permitir o uso de cookies do Instagram neste navegador?") or contains(., "Permiţi folosirea modulelor cookie de la Instagram în acest browser?") or contains(., "Autoriser l’utilisation des cookies d’Instagram sur ce navigateur ?") or contains(., "¿Permitir el uso de cookies de Instagram en este navegador?") or contains(., "Zezwolić na użycie plików cookie z Instagramu w tej przeglądarce?") or contains(., "Να επιτρέπεται η χρήση cookies από τo Instagram σε αυτό το πρόγραμμα περιήγησης;") or contains(., "Разрешавате ли използването на бисквитки от Instagram на този браузър?") or contains(., "Vil du tillade brugen af cookies fra Instagram i denne browser?") or contains(., "Vil du tillate bruk av informasjonskapsler fra Instagram i denne nettleseren?")]'}],optIn:[{waitForThenClick:"xpath///button[contains(., 'Tillad alle cookies') or contains(., 'Alle Cookies erlauben') or contains(., 'Allow all cookies') or contains(., 'Разрешаване на всички бисквитки') or contains(., 'Tillåt alla cookies') or contains(., 'Povolit všechny soubory cookie') or contains(., 'Tüm çerezlere izin ver') or contains(., 'Permite toate modulele cookie') or contains(., 'Να επιτρέπονται όλα τα cookies') or contains(., 'Tillat alle informasjonskapsler') or contains(., 'Povoliť všetky cookies') or contains(., 'Permitir todas las cookies') or contains(., 'Permitir todos os cookies') or contains(., 'Alle cookies toestaan') or contains(., 'Salli kaikki evästeet') or contains(., 'Consenti tutti i cookie') or contains(., 'Az összes cookie engedélyezése') or contains(., 'Autoriser tous les cookies') or contains(., 'Zezwól na wszystkie pliki cookie') or contains(., 'Разрешить все cookie') or contains(., 'Dopusti sve kolačiće')]"}],optOut:[{waitForThenClick:"xpath///button[contains(., 'Отклонить необязательные файлы cookie') or contains(., 'Decline optional cookies') or contains(., 'Refuser les cookies optionnels') or contains(., 'Hylkää valinnaiset evästeet') or contains(., 'Afvis valgfrie cookies') or contains(., 'Odmietnuť nepovinné cookies') or contains(., 'Απόρριψη προαιρετικών cookies') or contains(., 'Neka valfria cookies') or contains(., 'Optionale Cookies ablehnen') or contains(., 'Rifiuta cookie facoltativi') or contains(., 'Odbij neobavezne kolačiće') or contains(., 'Avvis valgfrie informasjonskapsler') or contains(., 'İsteğe bağlı çerezleri reddet') or contains(., 'Recusar cookies opcionais') or contains(., 'Optionele cookies afwijzen') or contains(., 'Rechazar cookies opcionales') or contains(., 'Odrzuć opcjonalne pliki cookie') or contains(., 'Отхвърляне на бисквитките по избор') or contains(., 'Odmítnout volitelné soubory cookie') or contains(., 'Refuză modulele cookie opţionale') or contains(., 'A nem kötelező cookie-k elutasítása')]"},{wait:2e3}]},{name:"ionos.de",prehideSelectors:[".privacy-consent--backdrop",".privacy-consent--modal"],detectCmp:[{exists:".privacy-consent--modal"}],detectPopup:[{visible:".privacy-consent--modal"}],optIn:[{click:"#selectAll"}],optOut:[{click:".footer-config-link"},{click:"#confirmSelection"}]},{name:"itopvpn.com",cosmetic:!0,prehideSelectors:[".pop-cookie"],detectCmp:[{exists:".pop-cookie"}],detectPopup:[{exists:".pop-cookie"}],optIn:[{click:"#_pcookie"}],optOut:[{hide:".pop-cookie"}]},{name:"iubenda",prehideSelectors:["#iubenda-cs-banner"],detectCmp:[{exists:"#iubenda-cs-banner"}],detectPopup:[{visible:".iubenda-cs-accept-btn"}],optIn:[{waitForThenClick:".iubenda-cs-accept-btn"}],optOut:[{waitForThenClick:".iubenda-cs-customize-btn"},{eval:"EVAL_IUBENDA_0"},{waitForThenClick:"#iubFooterBtn"}],test:[{eval:"EVAL_IUBENDA_1"}]},{name:"iWink",prehideSelectors:["body.cookies-request #cookie-bar"],detectCmp:[{exists:"body.cookies-request #cookie-bar"}],detectPopup:[{visible:"body.cookies-request #cookie-bar"}],optIn:[{waitForThenClick:"body.cookies-request #cookie-bar .allow-cookies"}],optOut:[{waitForThenClick:"body.cookies-request #cookie-bar .disallow-cookies"}],test:[{eval:"EVAL_IWINK_TEST"}]},{name:"jdsports",vendorUrl:"https://www.jdsports.co.uk/",runContext:{urlPattern:"^https://(www|m)\\.jdsports\\."},prehideSelectors:[".miniConsent,#PrivacyPolicyBanner"],detectCmp:[{exists:".miniConsent,#PrivacyPolicyBanner"}],detectPopup:[{visible:".miniConsent,#PrivacyPolicyBanner"}],optIn:[{waitForThenClick:".miniConsent .accept-all-cookies"}],optOut:[{if:{exists:"#PrivacyPolicyBanner"},then:[{hide:"#PrivacyPolicyBanner"}],else:[{waitForThenClick:"#cookie-settings"},{waitForThenClick:"#reject-all-cookies"}]}]},{name:"johnlewis.com",prehideSelectors:["div[class^=pecr-cookie-banner-]"],detectCmp:[{exists:"div[class^=pecr-cookie-banner-]"}],detectPopup:[{exists:"div[class^=pecr-cookie-banner-]"}],optOut:[{click:"button[data-test^=manage-cookies]"},{wait:"500"},{click:"label[data-test^=toggle][class*=checked]:not([class*=disabled])",all:!0,optional:!0},{click:"button[data-test=save-preferences]"}],optIn:[{click:"button[data-test=allow-all]"}]},{name:"jquery.cookieBar",vendorUrl:"https://github.com/kovarp/jquery.cookieBar",prehideSelectors:[".cookie-bar"],cosmetic:!0,detectCmp:[{exists:".cookie-bar .cookie-bar__message,.cookie-bar .cookie-bar__buttons"}],detectPopup:[{visible:".cookie-bar .cookie-bar__message,.cookie-bar .cookie-bar__buttons",check:"any"}],optIn:[{click:".cookie-bar .cookie-bar__btn"}],optOut:[{hide:".cookie-bar"}],test:[{visible:".cookie-bar .cookie-bar__message,.cookie-bar .cookie-bar__buttons",check:"none"},{eval:"EVAL_JQUERY_COOKIEBAR_0"}]},{name:"justwatch.com",prehideSelectors:[".consent-banner"],detectCmp:[{exists:".consent-banner .consent-banner__actions"}],detectPopup:[{visible:".consent-banner .consent-banner__actions"}],optIn:[{click:".consent-banner__actions button.basic-button.primary"}],optOut:[{click:".consent-banner__actions button.basic-button.secondary"},{waitForThenClick:".consent-modal__footer button.basic-button.secondary"},{waitForThenClick:".consent-modal ion-content > div > a:nth-child(9)"},{click:"label.consent-switch input[type=checkbox]:checked",all:!0,optional:!0},{waitForVisible:".consent-modal__footer button.basic-button.primary"},{click:".consent-modal__footer button.basic-button.primary"}]},{name:"ketch",vendorUrl:"https://www.ketch.com",runContext:{frame:!1,main:!0},intermediate:!1,prehideSelectors:["#lanyard_root div[role='dialog']"],detectCmp:[{exists:"#lanyard_root div[role='dialog']"}],detectPopup:[{visible:"#lanyard_root div[role='dialog']"}],optIn:[{if:{exists:"#lanyard_root button[class='confirmButton']"},then:[{waitForThenClick:"#lanyard_root div[class*=buttons] > :nth-child(2)"},{click:"#lanyard_root button[class='confirmButton']"}],else:[{waitForThenClick:"#lanyard_root div[class*=buttons] > :nth-child(2)"}]}],optOut:[{if:{exists:"#lanyard_root [aria-describedby=banner-description]"},then:[{waitForThenClick:"#lanyard_root div[class*=buttons] > button[class*=secondaryButton], #lanyard_root button[class*=buttons-secondary]",comment:"can be either settings or reject button"}]},{waitFor:"#lanyard_root [aria-describedby=preference-description],#lanyard_root [aria-describedby=modal-description], #ketch-preferences",timeout:1e3,optional:!0},{if:{exists:"#lanyard_root [aria-describedby=preference-description],#lanyard_root [aria-describedby=modal-description], #ketch-preferences"},then:[{waitForThenClick:"#lanyard_root button[class*=rejectButton], #lanyard_root button[class*=rejectAllButton]"},{click:"#lanyard_root button[class*=confirmButton],#lanyard_root div[class*=actions_] > button:nth-child(1), #lanyard_root button[class*=actionButton]"}]}],test:[{eval:"EVAL_KETCH_TEST"}]},{name:"kleinanzeigen-de",runContext:{urlPattern:"^https?://(www\\.)?kleinanzeigen\\.de"},prehideSelectors:["#gdpr-banner-container"],detectCmp:[{any:[{exists:"#gdpr-banner-container #gdpr-banner [data-testid=gdpr-banner-cmp-button]"},{exists:"#ConsentManagementPage"}]}],detectPopup:[{any:[{visible:"#gdpr-banner-container #gdpr-banner [data-testid=gdpr-banner-cmp-button]"},{visible:"#ConsentManagementPage"}]}],optIn:[{if:{exists:"#gdpr-banner-container #gdpr-banner"},then:[{click:"#gdpr-banner-container #gdpr-banner [data-testid=gdpr-banner-accept]"}],else:[{click:"#ConsentManagementPage .Button-primary"}]}],optOut:[{if:{exists:"#gdpr-banner-container #gdpr-banner"},then:[{click:"#gdpr-banner-container #gdpr-banner [data-testid=gdpr-banner-cmp-button]"}],else:[{click:"#ConsentManagementPage .Button-secondary"}]}]},{name:"lightbox",prehideSelectors:[".darken-layer.open,.lightbox.lightbox--cookie-consent"],detectCmp:[{exists:"body.cookie-consent-is-active div.lightbox--cookie-consent > div.lightbox__content > div.cookie-consent[data-jsb]"}],detectPopup:[{visible:"body.cookie-consent-is-active div.lightbox--cookie-consent > div.lightbox__content > div.cookie-consent[data-jsb]"}],optOut:[{click:".cookie-consent__footer > button[type='submit']:not([data-button='selectAll'])"}],optIn:[{click:".cookie-consent__footer > button[type='submit'][data-button='selectAll']"}]},{name:"lineagrafica",vendorUrl:"https://addons.prestashop.com/en/legal/8734-eu-cookie-law-gdpr-banner-blocker.html",cosmetic:!0,prehideSelectors:["#lgcookieslaw_banner,#lgcookieslaw_modal,.lgcookieslaw-overlay"],detectCmp:[{exists:"#lgcookieslaw_banner,#lgcookieslaw_modal,.lgcookieslaw-overlay"}],detectPopup:[{exists:"#lgcookieslaw_banner,#lgcookieslaw_modal,.lgcookieslaw-overlay"}],optIn:[{waitForThenClick:"#lgcookieslaw_accept"}],optOut:[{hide:"#lgcookieslaw_banner,#lgcookieslaw_modal,.lgcookieslaw-overlay"}]},{name:"linkedin.com",prehideSelectors:[".artdeco-global-alert[type=COOKIE_CONSENT]"],detectCmp:[{exists:".artdeco-global-alert[type=COOKIE_CONSENT]"}],detectPopup:[{visible:".artdeco-global-alert[type=COOKIE_CONSENT]"}],optIn:[{waitForVisible:".artdeco-global-alert[type=COOKIE_CONSENT] button[action-type=ACCEPT]"},{wait:500},{waitForThenClick:".artdeco-global-alert[type=COOKIE_CONSENT] button[action-type=ACCEPT]"}],optOut:[{waitForVisible:".artdeco-global-alert[type=COOKIE_CONSENT] button[action-type=DENY]"},{wait:500},{waitForThenClick:".artdeco-global-alert[type=COOKIE_CONSENT] button[action-type=DENY]"}],test:[{waitForVisible:".artdeco-global-alert[type=COOKIE_CONSENT]",check:"none"}]},{name:"livejasmin",vendorUrl:"https://www.livejasmin.com/",runContext:{urlPattern:"^https://(m|www)\\.livejasmin\\.com/"},prehideSelectors:["#consent_modal"],detectCmp:[{exists:"#consent_modal"}],detectPopup:[{visible:"#consent_modal"}],optIn:[{waitForThenClick:"#consent_modal button[data-testid=ButtonStyledButton]:first-of-type"}],optOut:[{waitForThenClick:"#consent_modal button[data-testid=ButtonStyledButton]:nth-of-type(2)"},{waitForVisible:"[data-testid=PrivacyPreferenceCenterWithConsentCookieContent]"},{click:"[data-testid=PrivacyPreferenceCenterWithConsentCookieContent] input[data-testid=PrivacyPreferenceCenterWithConsentCookieSwitch]:checked",optional:!0,all:!0},{waitForThenClick:"[data-testid=PrivacyPreferenceCenterWithConsentCookieContent] button[data-testid=ButtonStyledButton]:last-child"}]},{name:"macpaw.com",cosmetic:!0,prehideSelectors:['div[data-banner="cookies"]'],detectCmp:[{exists:'div[data-banner="cookies"]'}],detectPopup:[{exists:'div[data-banner="cookies"]'}],optIn:[{click:'button[data-banner-close="cookies"]'}],optOut:[{hide:'div[data-banner="cookies"]'}]},{name:"marksandspencer.com",cosmetic:!0,detectCmp:[{exists:".navigation-cookiebbanner"}],detectPopup:[{visible:".navigation-cookiebbanner"}],optOut:[{hide:".navigation-cookiebbanner"}],optIn:[{click:".navigation-cookiebbanner__submit"}]},{name:"mediamarkt.de",prehideSelectors:["div[aria-labelledby=pwa-consent-layer-title]","div[class^=StyledConsentLayerWrapper-]"],detectCmp:[{exists:"div[aria-labelledby^=pwa-consent-layer-title]"}],detectPopup:[{exists:"div[aria-labelledby^=pwa-consent-layer-title]"}],optOut:[{click:"button[data-test^=pwa-consent-layer-deny-all]"}],optIn:[{click:"button[data-test^=pwa-consent-layer-accept-all"}]},{name:"Mediavine",prehideSelectors:['[data-name="mediavine-gdpr-cmp"]'],detectCmp:[{exists:'[data-name="mediavine-gdpr-cmp"]'}],detectPopup:[{wait:500},{visible:'[data-name="mediavine-gdpr-cmp"]'}],optIn:[{waitForThenClick:'[data-name="mediavine-gdpr-cmp"] [format="primary"]'}],optOut:[{waitForThenClick:'[data-name="mediavine-gdpr-cmp"] [data-view="manageSettings"]'},{waitFor:'[data-name="mediavine-gdpr-cmp"] input[type=checkbox]'},{eval:"EVAL_MEDIAVINE_0",optional:!0},{click:'[data-name="mediavine-gdpr-cmp"] [format="secondary"]'}]},{name:"medium",vendorUrl:"https://medium.com",cosmetic:!0,runContext:{main:!0,frame:!1,urlPattern:"^https://([a-z0-9-]+\\.)?medium\\.com/"},prehideSelectors:[],detectCmp:[{exists:'div:has(> div > div > div[role=alert] > a[href^="https://policy.medium.com/medium-privacy-policy-"])'}],detectPopup:[{visible:'div:has(> div > div > div[role=alert] > a[href^="https://policy.medium.com/medium-privacy-policy-"])'}],optIn:[{waitForThenClick:"[data-testid=close-button]"}],optOut:[{hide:'div:has(> div > div > div[role=alert] > a[href^="https://policy.medium.com/medium-privacy-policy-"])'}]},{name:"microsoft.com",prehideSelectors:["#wcpConsentBannerCtrl"],detectCmp:[{exists:"#wcpConsentBannerCtrl"}],detectPopup:[{exists:"#wcpConsentBannerCtrl"}],optOut:[{eval:"EVAL_MICROSOFT_0"}],optIn:[{eval:"EVAL_MICROSOFT_1"}],test:[{eval:"EVAL_MICROSOFT_2"}]},{name:"midway-usa",runContext:{urlPattern:"^https://www\\.midwayusa\\.com/"},cosmetic:!0,prehideSelectors:["#cookie-container"],detectCmp:[{exists:['div[aria-label="Cookie Policy Banner"]']}],detectPopup:[{visible:"#cookie-container"}],optIn:[{click:"button#cookie-btn"}],optOut:[{hide:'div[aria-label="Cookie Policy Banner"]'}]},{name:"moneysavingexpert.com",detectCmp:[{exists:"dialog[data-testid=accept-our-cookies-dialog]"}],detectPopup:[{visible:"dialog[data-testid=accept-our-cookies-dialog]"}],optIn:[{click:"#banner-accept"}],optOut:[{click:"#banner-manage"},{click:"#pc-confirm"}]},{name:"monzo.com",prehideSelectors:[".cookie-alert, cookie-alert__content"],detectCmp:[{exists:'div.cookie-alert[role="dialog"]'},{exists:'a[href*="monzo"]'}],detectPopup:[{visible:".cookie-alert__content"}],optIn:[{click:".js-accept-cookie-policy"}],optOut:[{click:".js-decline-cookie-policy"}]},{name:"Moove",prehideSelectors:["#moove_gdpr_cookie_info_bar"],detectCmp:[{exists:"#moove_gdpr_cookie_info_bar"}],detectPopup:[{visible:"#moove_gdpr_cookie_info_bar:not(.moove-gdpr-info-bar-hidden)"}],optIn:[{waitForThenClick:".moove-gdpr-infobar-allow-all"}],optOut:[{if:{exists:"#moove_gdpr_cookie_info_bar .change-settings-button"},then:[{click:"#moove_gdpr_cookie_info_bar .change-settings-button"},{waitForVisible:"#moove_gdpr_cookie_modal"},{eval:"EVAL_MOOVE_0"},{click:".moove-gdpr-modal-save-settings"}],else:[{hide:"#moove_gdpr_cookie_info_bar"}]}],test:[{visible:"#moove_gdpr_cookie_info_bar",check:"none"}]},{name:"national-lottery.co.uk",detectCmp:[{exists:".cuk_cookie_consent"}],detectPopup:[{visible:".cuk_cookie_consent",check:"any"}],optOut:[{click:".cuk_cookie_consent_manage_pref"},{click:".cuk_cookie_consent_save_pref"},{click:".cuk_cookie_consent_close"}],optIn:[{click:".cuk_cookie_consent_accept_all"}]},{name:"nba.com",runContext:{urlPattern:"^https://(www\\.)?nba.com/"},cosmetic:!0,prehideSelectors:["#onetrust-banner-sdk"],detectCmp:[{exists:"#onetrust-banner-sdk"}],detectPopup:[{visible:"#onetrust-banner-sdk"}],optIn:[{click:"#onetrust-accept-btn-handler"}],optOut:[{hide:"#onetrust-banner-sdk"}]},{name:"netbeat.de",runContext:{urlPattern:"^https://(www\\.)?netbeat\\.de/"},prehideSelectors:["div#cookieWarning"],detectCmp:[{exists:"div#cookieWarning"}],detectPopup:[{visible:"div#cookieWarning"}],optIn:[{waitForThenClick:"a#btnCookiesAcceptAll"}],optOut:[{waitForThenClick:"a#btnCookiesDenyAll"}]},{name:"netflix.de",detectCmp:[{exists:"#cookie-disclosure"}],detectPopup:[{visible:".cookie-disclosure-message",check:"any"}],optIn:[{click:".btn-accept"}],optOut:[{hide:"#cookie-disclosure"},{click:".btn-reject"}]},{name:"nhs.uk",prehideSelectors:["#nhsuk-cookie-banner"],detectCmp:[{exists:"#nhsuk-cookie-banner"}],detectPopup:[{exists:"#nhsuk-cookie-banner"}],optOut:[{click:"#nhsuk-cookie-banner__link_accept"}],optIn:[{click:"#nhsuk-cookie-banner__link_accept_analytics"}]},{name:"nike",vendorUrl:"https://nike.com",runContext:{urlPattern:"^https://(www\\.)?nike\\.com/"},prehideSelectors:[],detectCmp:[{exists:"[data-testid=cookie-dialog-root]"}],detectPopup:[{visible:"[data-testid=cookie-dialog-root]"}],optIn:[{waitForThenClick:"[data-testid=dialog-accept-button]"}],optOut:[{waitForThenClick:"input[type=radio][id$=-declineLabel]",all:!0},{waitForThenClick:"[data-testid=confirm-choice-button]"}]},{name:"notice-cookie",prehideSelectors:[".button--notice"],cosmetic:!0,detectCmp:[{exists:".notice--cookie"}],detectPopup:[{visible:".notice--cookie"}],optIn:[{click:".button--notice"}],optOut:[{hide:".notice--cookie"}]},{name:"nrk.no",cosmetic:!0,prehideSelectors:[".nrk-masthead__info-banner--cookie"],detectCmp:[{exists:".nrk-masthead__info-banner--cookie"}],detectPopup:[{exists:".nrk-masthead__info-banner--cookie"}],optIn:[{click:"div.nrk-masthead__info-banner--cookie button > span:has(+ svg.nrk-close)"}],optOut:[{hide:".nrk-masthead__info-banner--cookie"}]},{name:"obi.de",prehideSelectors:[".disc-cp--active"],detectCmp:[{exists:".disc-cp-modal__modal"}],detectPopup:[{visible:".disc-cp-modal__modal"}],optIn:[{click:".js-disc-cp-accept-all"}],optOut:[{click:".js-disc-cp-deny-all"}]},{name:"om",vendorUrl:"https://olli-machts.de/en/extension/cookie-manager",prehideSelectors:[".tx-om-cookie-consent"],detectCmp:[{exists:".tx-om-cookie-consent .active[data-omcookie-panel]"}],detectPopup:[{exists:".tx-om-cookie-consent .active[data-omcookie-panel]"}],optIn:[{waitForThenClick:"[data-omcookie-panel-save=all]"}],optOut:[{if:{exists:"[data-omcookie-panel-save=min]"},then:[{waitForThenClick:"[data-omcookie-panel-save=min]"}],else:[{click:"input[data-omcookie-panel-grp]:checked:not(:disabled)",all:!0,optional:!0},{waitForThenClick:"[data-omcookie-panel-save=save]"}]}]},{name:"onlyFans.com",runContext:{urlPattern:"^https://onlyfans\\.com/"},prehideSelectors:["div.b-cookies-informer"],detectCmp:[{exists:"div.b-cookies-informer"}],detectPopup:[{exists:"div.b-cookies-informer"}],optIn:[{click:"div.b-cookies-informer__nav > button:nth-child(2)"}],optOut:[{click:"div.b-cookies-informer__nav > button:nth-child(1)"},{if:{exists:"div.b-cookies-informer__switchers"},then:[{click:"div.b-cookies-informer__switchers input:not([disabled])",all:!0},{click:"div.b-cookies-informer__nav > button"}]}]},{name:"openli",vendorUrl:"https://openli.com",prehideSelectors:[".legalmonster-cleanslate"],detectCmp:[{exists:".legalmonster-cleanslate"}],detectPopup:[{visible:".legalmonster-cleanslate #lm-cookie-wall-container",check:"any"}],optIn:[{waitForThenClick:"#lm-accept-all"}],optOut:[{waitForThenClick:"#lm-accept-necessary"}]},{name:"opera.com",vendorUrl:"https://unknown",cosmetic:!1,runContext:{main:!0,frame:!1},intermediate:!1,prehideSelectors:[],detectCmp:[{exists:"#cookie-consent .manage-cookies__btn"}],detectPopup:[{visible:"#cookie-consent .cookie-basic-consent__btn"}],optIn:[{waitForThenClick:"#cookie-consent .cookie-basic-consent__btn"}],optOut:[{waitForThenClick:"#cookie-consent .manage-cookies__btn"},{waitForThenClick:"#cookie-consent .active.marketing_option_switch.cookie-consent__switch",all:!0},{waitForThenClick:"#cookie-consent .cookie-selection__btn"}],test:[{eval:"EVAL_OPERA_0"}]},{name:"osano",prehideSelectors:[".osano-cm-window,.osano-cm-dialog"],detectCmp:[{exists:".osano-cm-window"}],detectPopup:[{visible:".osano-cm-dialog"}],optIn:[{click:".osano-cm-accept-all",optional:!0}],optOut:[{waitForThenClick:".osano-cm-denyAll"}]},{name:"otto.de",prehideSelectors:[".cookieBanner--visibility"],detectCmp:[{exists:".cookieBanner--visibility"}],detectPopup:[{visible:".cookieBanner__wrapper"}],optIn:[{click:".js_cookieBannerPermissionButton"}],optOut:[{click:".js_cookieBannerProhibitionButton"}]},{name:"ourworldindata",vendorUrl:"https://ourworldindata.org/",runContext:{urlPattern:"^https://ourworldindata\\.org/"},prehideSelectors:[".cookie-manager"],detectCmp:[{exists:".cookie-manager"}],detectPopup:[{visible:".cookie-manager .cookie-notice.open"}],optIn:[{waitForThenClick:".cookie-notice [data-test=accept]"}],optOut:[{waitForThenClick:".cookie-notice [data-test=reject]"}]},{name:"pabcogypsum",vendorUrl:"https://unknown",prehideSelectors:[".js-cookie-notice:has(#cookie_settings-form)"],detectCmp:[{exists:".js-cookie-notice #cookie_settings-form"}],detectPopup:[{visible:".js-cookie-notice #cookie_settings-form"}],optIn:[{waitForThenClick:".js-cookie-notice button[value=allow]"}],optOut:[{waitForThenClick:".js-cookie-notice button[value=disable]"}]},{name:"paypal-us",prehideSelectors:["#ccpaCookieContent_wrapper, article.ppvx_modal--overpanel"],detectCmp:[{exists:"#ccpaCookieBanner, .privacy-sheet-content"}],detectPopup:[{exists:"#ccpaCookieBanner, .privacy-sheet-content"}],optIn:[{click:"#acceptAllButton"}],optOut:[{if:{exists:"#bannerDeclineButton"},then:[{click:"#bannerDeclineButton"}],else:[{if:{exists:"a#manageCookiesLink"},then:[{click:"a#manageCookiesLink"}],else:[{waitForVisible:".privacy-sheet-content #formContent"},{click:"#formContent .cookiepref-11m2iee-checkbox_base input:checked",all:!0,optional:!0},{click:".confirmCookie #submitCookiesBtn"}]}]}]},{name:"paypal.com",prehideSelectors:["#gdprCookieBanner"],detectCmp:[{exists:"#gdprCookieBanner"}],detectPopup:[{visible:"#gdprCookieContent_wrapper"}],optIn:[{click:"#acceptAllButton"}],optOut:[{wait:200},{click:".gdprCookieBanner_decline-button"}],test:[{wait:500},{eval:"EVAL_PAYPAL_0"}]},{name:"pinetools.com",cosmetic:!0,prehideSelectors:["#aviso_cookies"],detectCmp:[{exists:"#aviso_cookies"}],detectPopup:[{exists:".lang_en #aviso_cookies"}],optIn:[{click:"#aviso_cookies .a_boton_cerrar"}],optOut:[{hide:"#aviso_cookies"}]},{name:"pinterest-business",vendorUrl:"https://business.pinterest.com/",runContext:{urlPattern:"^https://.*\\.pinterest\\.com/"},prehideSelectors:[".BusinessCookieConsent"],detectCmp:[{exists:".BusinessCookieConsent"}],detectPopup:[{visible:".BusinessCookieConsent [data-id=cookie-consent-banner-buttons]"}],optIn:[{waitForThenClick:"[data-id=cookie-consent-banner-buttons] > div:nth-child(1) button"}],optOut:[{waitForThenClick:"[data-id=cookie-consent-banner-buttons] > div:nth-child(2) button"}]},{name:"pmc",cosmetic:!0,prehideSelectors:["#pmc-pp-tou--notice"],detectCmp:[{exists:"#pmc-pp-tou--notice"}],detectPopup:[{visible:"#pmc-pp-tou--notice"}],optIn:[{click:"span.pmc-pp-tou--notice-close-btn"}],optOut:[{hide:"#pmc-pp-tou--notice"}]},{name:"pornhub.com",runContext:{urlPattern:"^https://(www\\.)?pornhub\\.com/"},cosmetic:!0,prehideSelectors:[".cookiesBanner"],detectCmp:[{exists:".cookiesBanner"}],detectPopup:[{visible:".cookiesBanner"}],optIn:[{click:".cookiesBanner .okButton"}],optOut:[{hide:".cookiesBanner"}]},{name:"pornpics.com",cosmetic:!0,prehideSelectors:["#cookie-contract"],detectCmp:[{exists:"#cookie-contract"}],detectPopup:[{visible:"#cookie-contract"}],optIn:[{click:"#cookie-contract .icon-cross"}],optOut:[{hide:"#cookie-contract"}]},{name:"PrimeBox CookieBar",prehideSelectors:["#cookie-bar"],detectCmp:[{exists:"#cookie-bar .cb-enable,#cookie-bar .cb-disable,#cookie-bar .cb-policy"}],detectPopup:[{visible:"#cookie-bar .cb-enable,#cookie-bar .cb-disable,#cookie-bar .cb-policy",check:"any"}],optIn:[{waitForThenClick:"#cookie-bar .cb-enable"}],optOut:[{click:"#cookie-bar .cb-disable",optional:!0},{hide:"#cookie-bar"}],test:[{eval:"EVAL_PRIMEBOX_0"}]},{name:"privacymanager.io",prehideSelectors:["#gdpr-consent-tool-wrapper",'iframe[src^="https://cmp-consent-tool.privacymanager.io"]'],runContext:{urlPattern:"^https://cmp-consent-tool\\.privacymanager\\.io/",main:!1,frame:!0},detectCmp:[{exists:"button#save"}],detectPopup:[{visible:"button#save"}],optIn:[{click:"button#save"}],optOut:[{if:{exists:"#denyAll"},then:[{click:"#denyAll"},{waitForThenClick:".okButton"}],else:[{waitForThenClick:"#manageSettings"},{waitFor:".purposes-overview-list"},{waitFor:"button#saveAndExit"},{click:"span[role=checkbox][aria-checked=true]",all:!0,optional:!0},{click:"button#saveAndExit"}]}]},{name:"productz.com",vendorUrl:"https://productz.com/",runContext:{urlPattern:"^https://productz\\.com/"},prehideSelectors:[],detectCmp:[{exists:".c-modal.is-active"}],detectPopup:[{visible:".c-modal.is-active"}],optIn:[{waitForThenClick:".c-modal.is-active .is-accept"}],optOut:[{waitForThenClick:".c-modal.is-active .is-dismiss"}]},{name:"pubtech",prehideSelectors:["#pubtech-cmp"],detectCmp:[{exists:"#pubtech-cmp"}],detectPopup:[{visible:"#pubtech-cmp #pt-actions"}],optIn:[{if:{exists:"#pt-accept-all"},then:[{click:"#pubtech-cmp #pt-actions #pt-accept-all"}],else:[{click:"#pubtech-cmp #pt-actions button:nth-of-type(2)"}]}],optOut:[{click:"#pubtech-cmp #pt-close"}],test:[{eval:"EVAL_PUBTECH_0"}]},{name:"quantcast",prehideSelectors:["#qc-cmp2-main,#qc-cmp2-container"],detectCmp:[{exists:"#qc-cmp2-container"}],detectPopup:[{visible:"#qc-cmp2-ui"}],optOut:[{waitFor:'.qc-cmp2-summary-buttons > button[mode="secondary"]',timeout:2e3},{if:{exists:'.qc-cmp2-summary-buttons > button[mode="secondary"]:nth-of-type(2)'},then:[{click:'.qc-cmp2-summary-buttons > button[mode="secondary"]:nth-of-type(2)'}],else:[{click:'.qc-cmp2-summary-buttons > button[mode="secondary"]:nth-of-type(1)'},{waitFor:"#qc-cmp2-ui"},{click:'.qc-cmp2-toggle-switch > button[aria-checked="true"]',all:!0,optional:!0},{click:'.qc-cmp2-main button[aria-label="REJECT ALL"]',optional:!0},{waitForThenClick:'.qc-cmp2-main button[aria-label="SAVE & EXIT"],.qc-cmp2-buttons-desktop > button[mode="primary"]',timeout:5e3}]}],optIn:[{click:'.qc-cmp2-summary-buttons > button[mode="primary"]'}]},{name:"reddit.com",runContext:{urlPattern:"^https://www\\.reddit\\.com/"},prehideSelectors:["[bundlename=reddit_cookie_banner]"],detectCmp:[{exists:"reddit-cookie-banner"}],detectPopup:[{visible:"reddit-cookie-banner"}],optIn:[{waitForThenClick:["reddit-cookie-banner","#accept-all-cookies-button > button"]}],optOut:[{waitForThenClick:["reddit-cookie-banner","#reject-nonessential-cookies-button > button"]}],test:[{eval:"EVAL_REDDIT_0"}]},{name:"roblox",vendorUrl:"https://roblox.com",cosmetic:!1,runContext:{main:!0,frame:!1,urlPattern:"^https://(www\\.)?roblox\\.com/"},prehideSelectors:[],detectCmp:[{exists:".cookie-banner-wrapper"}],detectPopup:[{visible:".cookie-banner-wrapper .cookie-banner"}],optIn:[{waitForThenClick:".cookie-banner-wrapper button.btn-cta-lg"}],optOut:[{waitForThenClick:".cookie-banner-wrapper button.btn-secondary-lg"}],test:[{eval:"EVAL_ROBLOX_TEST"}]},{name:"rog-forum.asus.com",runContext:{urlPattern:"^https://rog-forum\\.asus\\.com/"},prehideSelectors:["#cookie-policy-info"],detectCmp:[{exists:"#cookie-policy-info"}],detectPopup:[{visible:"#cookie-policy-info"}],optIn:[{click:'div.cookie-btn-box > div[aria-label="Accept"]'}],optOut:[{click:'div.cookie-btn-box > div[aria-label="Reject"]'},{waitForThenClick:'.cookie-policy-lightbox-bottom > div[aria-label="Save Settings"]'}]},{name:"roofingmegastore.co.uk",runContext:{urlPattern:"^https://(www\\.)?roofingmegastore\\.co\\.uk"},prehideSelectors:["#m-cookienotice"],detectCmp:[{exists:"#m-cookienotice"}],detectPopup:[{visible:"#m-cookienotice"}],optIn:[{click:"#accept-cookies"}],optOut:[{click:"#manage-cookies"},{waitForThenClick:"#accept-selected"}]},{name:"samsung.com",runContext:{urlPattern:"^https://www\\.samsung\\.com/"},cosmetic:!0,prehideSelectors:["div.cookie-bar"],detectCmp:[{exists:"div.cookie-bar"}],detectPopup:[{visible:"div.cookie-bar"}],optIn:[{click:"div.cookie-bar__manage > a"}],optOut:[{hide:"div.cookie-bar"}]},{name:"setapp.com",vendorUrl:"https://setapp.com/",cosmetic:!0,runContext:{urlPattern:"^https://setapp\\.com/"},prehideSelectors:[],detectCmp:[{exists:".cookie-banner.js-cookie-banner"}],detectPopup:[{visible:".cookie-banner.js-cookie-banner"}],optIn:[{waitForThenClick:".cookie-banner.js-cookie-banner button"}],optOut:[{hide:".cookie-banner.js-cookie-banner"}]},{name:"sibbo",prehideSelectors:["sibbo-cmp-layout"],detectCmp:[{exists:"sibbo-cmp-layout"}],detectPopup:[{visible:"#rejectAllMain"}],optIn:[{click:"#acceptAllMain"}],optOut:[{click:"#rejectAllMain"}]},{name:"similarweb.com",cosmetic:!0,prehideSelectors:[".app-cookies-notification"],detectCmp:[{exists:".app-cookies-notification"}],detectPopup:[{exists:".app-layout .app-cookies-notification"}],optIn:[{click:"button.app-cookies-notification__dismiss"}],optOut:[{hide:".app-layout .app-cookies-notification"}]},{name:"Sirdata",cosmetic:!1,prehideSelectors:["#sd-cmp"],detectCmp:[{exists:"#sd-cmp"}],detectPopup:[{visible:"#sd-cmp"}],optIn:[{waitForThenClick:"#sd-cmp .sd-cmp-3cRQ2"}],optOut:[{waitForThenClick:["#sd-cmp","xpath///span[contains(., 'Do not accept') or contains(., 'Acceptera inte') or contains(., 'No aceptar') or contains(., 'Ikke acceptere') or contains(., 'Nicht akzeptieren') or contains(., 'Не приемам') or contains(., 'Να μην γίνει αποδοχή') or contains(., 'Niet accepteren') or contains(., 'Nepřijímat') or contains(., 'Nie akceptuj') or contains(., 'Nu acceptați') or contains(., 'Não aceitar') or contains(., 'Continuer sans accepter') or contains(., 'Non accettare') or contains(., 'Nem fogad el')]"]}]},{name:"snigel",detectCmp:[{exists:".snigel-cmp-framework"}],detectPopup:[{visible:".snigel-cmp-framework"}],optOut:[{click:"#sn-b-custom"},{click:"#sn-b-save"}],test:[{eval:"EVAL_SNIGEL_0"}],optIn:[{click:".snigel-cmp-framework #accept-choices"}]},{name:"steampowered.com",detectCmp:[{exists:".cookiepreferences_popup"},{visible:".cookiepreferences_popup"}],detectPopup:[{visible:".cookiepreferences_popup"}],optOut:[{click:"#rejectAllButton"}],optIn:[{click:"#acceptAllButton"}],test:[{wait:1e3},{eval:"EVAL_STEAMPOWERED_0"}]},{name:"strato.de",prehideSelectors:[".consent__wrapper"],runContext:{urlPattern:"^https://www\\.strato\\.de/"},detectCmp:[{exists:".consent"}],detectPopup:[{visible:".consent"}],optIn:[{click:"button.consentAgree"}],optOut:[{click:"button.consentSettings"},{waitForThenClick:"button#consentSubmit"}]},{name:"svt.se",vendorUrl:"https://www.svt.se/",runContext:{urlPattern:"^https://www\\.svt\\.se/"},prehideSelectors:["[class*=CookieConsent__root___]"],detectCmp:[{exists:"[class*=CookieConsent__root___]"}],detectPopup:[{visible:"[class*=CookieConsent__modal___]"}],optIn:[{waitForThenClick:"[class*=CookieConsent__modal___] > div > button[class*=primary]"}],optOut:[{waitForThenClick:"[class*=CookieConsent__modal___] > div > button[class*=secondary]:nth-child(2)"}],test:[{eval:"EVAL_SVT_TEST"}]},{name:"takealot.com",cosmetic:!0,prehideSelectors:['div[class^="cookies-banner-module_"]'],detectCmp:[{exists:'div[class^="cookies-banner-module_cookie-banner_"]'}],detectPopup:[{exists:'div[class^="cookies-banner-module_cookie-banner_"]'}],optIn:[{click:'button[class*="cookies-banner-module_dismiss-button_"]'}],optOut:[{hide:'div[class^="cookies-banner-module_"]'},{if:{exists:'div[class^="cookies-banner-module_small-cookie-banner_"]'},then:[{eval:"EVAL_TAKEALOT_0"}],else:[]}]},{name:"tarteaucitron.js",prehideSelectors:["#tarteaucitronRoot"],detectCmp:[{exists:"#tarteaucitronRoot"}],detectPopup:[{visible:"#tarteaucitronRoot #tarteaucitronAlertBig",check:"any"}],optIn:[{eval:"EVAL_TARTEAUCITRON_1"}],optOut:[{eval:"EVAL_TARTEAUCITRON_0"}],test:[{eval:"EVAL_TARTEAUCITRON_2",comment:"sometimes there are required categories, so we check that at least something is false"}]},{name:"taunton",vendorUrl:"https://www.taunton.com/",prehideSelectors:["#taunton-user-consent__overlay"],detectCmp:[{exists:"#taunton-user-consent__overlay"}],detectPopup:[{exists:"#taunton-user-consent__overlay:not([aria-hidden=true])"}],optIn:[{click:"#taunton-user-consent__toolbar input[type=checkbox]:not(:checked)"},{click:"#taunton-user-consent__toolbar button[type=submit]"}],optOut:[{click:"#taunton-user-consent__toolbar input[type=checkbox]:checked",optional:!0,all:!0},{click:"#taunton-user-consent__toolbar button[type=submit]"}],test:[{eval:"EVAL_TAUNTON_TEST"}]},{name:"Tealium",prehideSelectors:["#__tealiumGDPRecModal,#__tealiumGDPRcpPrefs,#__tealiumImplicitmodal,#consent-layer"],detectCmp:[{exists:"#__tealiumGDPRecModal *,#__tealiumGDPRcpPrefs *,#__tealiumImplicitmodal *"},{eval:"EVAL_TEALIUM_0"}],detectPopup:[{visible:"#__tealiumGDPRecModal *,#__tealiumGDPRcpPrefs *,#__tealiumImplicitmodal *",check:"any"}],optOut:[{eval:"EVAL_TEALIUM_1"},{eval:"EVAL_TEALIUM_DONOTSELL"},{hide:"#__tealiumGDPRecModal,#__tealiumGDPRcpPrefs,#__tealiumImplicitmodal"},{waitForThenClick:"#cm-acceptNone,.js-accept-essential-cookies",timeout:1e3,optional:!0}],optIn:[{hide:"#__tealiumGDPRecModal,#__tealiumGDPRcpPrefs"},{eval:"EVAL_TEALIUM_2"}],test:[{eval:"EVAL_TEALIUM_3"},{eval:"EVAL_TEALIUM_DONOTSELL_CHECK"},{visible:"#__tealiumGDPRecModal,#__tealiumGDPRcpPrefs",check:"none"}]},{name:"temu",vendorUrl:"https://temu.com",runContext:{urlPattern:"^https://([a-z0-9-]+\\.)?temu\\.com/"},prehideSelectors:[],detectCmp:[{exists:'div > div > div > div > span[href*="/cookie-and-similar-technologies-policy.html"]'}],detectPopup:[{visible:'div > div > div > div > span[href*="/cookie-and-similar-technologies-policy.html"]'}],optIn:[{waitForThenClick:'div > div > div:has(> div > span[href*="/cookie-and-similar-technologies-policy.html"]) > [role=button]:nth-child(3)'}],optOut:[{if:{exists:"xpath///span[contains(., 'Alle afwijzen') or contains(., 'Reject all') or contains(., 'Tümünü reddet') or contains(., 'Odrzuć wszystko')]"},then:[{waitForThenClick:"xpath///span[contains(., 'Alle afwijzen') or contains(., 'Reject all') or contains(., 'Tümünü reddet') or contains(., 'Odrzuć wszystko')]"}],else:[{waitForThenClick:'div > div > div:has(> div > span[href*="/cookie-and-similar-technologies-policy.html"]) > [role=button]:nth-child(2)'}]}]},{name:"Termly",prehideSelectors:["#termly-code-snippet-support"],detectCmp:[{exists:"#termly-code-snippet-support"}],detectPopup:[{visible:"#termly-code-snippet-support div"}],optIn:[{waitForThenClick:'[data-tid="banner-accept"]'}],optOut:[{if:{exists:'[data-tid="banner-decline"]'},then:[{click:'[data-tid="banner-decline"]'}],else:[{click:".t-preference-button"},{wait:500},{if:{exists:".t-declineAllButton"},then:[{click:".t-declineAllButton"}],else:[{waitForThenClick:".t-preference-modal input[type=checkbox][checked]:not([disabled])",all:!0},{waitForThenClick:".t-saveButton"}]}]}]},{name:"termsfeed",vendorUrl:"https://termsfeed.com",comment:"v4.x.x",prehideSelectors:[".termsfeed-com---nb"],detectCmp:[{exists:".termsfeed-com---nb"}],detectPopup:[{visible:".termsfeed-com---nb"}],optIn:[{waitForThenClick:".cc-nb-okagree"}],optOut:[{waitForThenClick:".cc-nb-reject"}]},{name:"termsfeed3",vendorUrl:"https://termsfeed.com",comment:"v3.x.x",prehideSelectors:[".cc_dialog.cc_css_reboot,.cc_overlay_lock"],detectCmp:[{exists:".cc_dialog.cc_css_reboot"}],detectPopup:[{visible:".cc_dialog.cc_css_reboot"}],optIn:[{waitForThenClick:".cc_dialog.cc_css_reboot .cc_b_ok"}],optOut:[{if:{exists:".cc_dialog.cc_css_reboot .cc_b_cp"},then:[{click:".cc_dialog.cc_css_reboot .cc_b_cp"},{waitForVisible:".cookie-consent-preferences-dialog .cc_cp_f_save button"},{waitForThenClick:".cookie-consent-preferences-dialog .cc_cp_f_save button"}],else:[{hide:".cc_dialog.cc_css_reboot,.cc_overlay_lock"}]}]},{name:"tesla",vendorUrl:"https://tesla.com/",runContext:{main:!0,frame:!1,urlPattern:"^https://(www\\.)?tesla\\.com/"},prehideSelectors:[],detectCmp:[{exists:"#cookie_banner"}],detectPopup:[{visible:"#cookie_banner"}],optIn:[{waitForThenClick:"#tsla-accept-cookie"}],optOut:[{waitForThenClick:"#tsla-reject-cookie"}],test:[{eval:"EVAL_TESLA_TEST"}]},{name:"Test page cosmetic CMP",cosmetic:!0,prehideSelectors:["#privacy-test-page-cmp-test-prehide"],detectCmp:[{exists:"#privacy-test-page-cmp-test-banner"}],detectPopup:[{visible:"#privacy-test-page-cmp-test-banner"}],optIn:[{waitFor:"#accept-all"},{click:"#accept-all"}],optOut:[{hide:"#privacy-test-page-cmp-test-banner"}],test:[{wait:500},{eval:"EVAL_TESTCMP_COSMETIC_0"}]},{name:"Test page CMP",prehideSelectors:["#reject-all"],detectCmp:[{exists:"#privacy-test-page-cmp-test"}],detectPopup:[{visible:"#privacy-test-page-cmp-test"}],optIn:[{waitFor:"#accept-all"},{click:"#accept-all"}],optOut:[{waitFor:"#reject-all"},{click:"#reject-all"}],test:[{eval:"EVAL_TESTCMP_0"}]},{name:"thalia.de",prehideSelectors:[".consent-banner-box"],detectCmp:[{exists:"consent-banner[component=consent-banner]"}],detectPopup:[{visible:".consent-banner-box"}],optIn:[{click:".button-zustimmen"}],optOut:[{click:"button[data-consent=disagree]"}]},{name:"thefreedictionary.com",prehideSelectors:["#cmpBanner"],detectCmp:[{exists:"#cmpBanner"}],detectPopup:[{visible:"#cmpBanner"}],optIn:[{eval:"EVAL_THEFREEDICTIONARY_1"}],optOut:[{eval:"EVAL_THEFREEDICTIONARY_0"}]},{name:"theverge",runContext:{frame:!1,main:!0,urlPattern:"^https://(www)?\\.theverge\\.com"},intermediate:!1,prehideSelectors:[".duet--cta--cookie-banner"],detectCmp:[{exists:".duet--cta--cookie-banner"}],detectPopup:[{visible:".duet--cta--cookie-banner"}],optIn:[{click:".duet--cta--cookie-banner button.tracking-12",all:!1}],optOut:[{click:".duet--cta--cookie-banner button.tracking-12 > span"}],test:[{eval:"EVAL_THEVERGE_0"}]},{name:"tidbits-com",cosmetic:!0,prehideSelectors:["#eu_cookie_law_widget-2"],detectCmp:[{exists:"#eu_cookie_law_widget-2"}],detectPopup:[{visible:"#eu_cookie_law_widget-2"}],optIn:[{click:"#eu-cookie-law form > input.accept"}],optOut:[{hide:"#eu_cookie_law_widget-2"}]},{name:"tractor-supply",runContext:{urlPattern:"^https://www\\.tractorsupply\\.com/"},cosmetic:!0,prehideSelectors:[".tsc-cookie-banner"],detectCmp:[{exists:".tsc-cookie-banner"}],detectPopup:[{visible:".tsc-cookie-banner"}],optIn:[{click:"#cookie-banner-cancel"}],optOut:[{hide:".tsc-cookie-banner"}]},{name:"trader-joes-com",cosmetic:!0,prehideSelectors:['div.aem-page > div[class^="CookiesAlert_cookiesAlert__"]'],detectCmp:[{exists:'div.aem-page > div[class^="CookiesAlert_cookiesAlert__"]'}],detectPopup:[{visible:'div.aem-page > div[class^="CookiesAlert_cookiesAlert__"]'}],optIn:[{click:'div[class^="CookiesAlert_cookiesAlert__container__"] button'}],optOut:[{hide:'div.aem-page > div[class^="CookiesAlert_cookiesAlert__"]'}]},{name:"transcend",vendorUrl:"https://unknown",cosmetic:!0,prehideSelectors:["#transcend-consent-manager"],detectCmp:[{exists:"#transcend-consent-manager"}],detectPopup:[{visible:"#transcend-consent-manager"}],optIn:[{waitForThenClick:["#transcend-consent-manager","#consentManagerMainDialog .inner-container button"]}],optOut:[{hide:"#transcend-consent-manager"}]},{name:"transip-nl",runContext:{urlPattern:"^https://www\\.transip\\.nl/"},prehideSelectors:["#consent-modal"],detectCmp:[{any:[{exists:"#consent-modal"},{exists:"#privacy-settings-content"}]}],detectPopup:[{any:[{visible:"#consent-modal"},{visible:"#privacy-settings-content"}]}],optIn:[{click:'button[type="submit"]'}],optOut:[{if:{exists:"#privacy-settings-content"},then:[{click:'button[type="submit"]'}],else:[{click:"div.one-modal__action-footer-column--secondary > a"}]}]},{name:"tropicfeel-com",prehideSelectors:["#shopify-section-cookies-controller"],detectCmp:[{exists:"#shopify-section-cookies-controller"}],detectPopup:[{visible:"#shopify-section-cookies-controller #cookies-controller-main-pane",check:"any"}],optIn:[{waitForThenClick:"#cookies-controller-main-pane form[data-form-allow-all] button"}],optOut:[{click:"#cookies-controller-main-pane a[data-tab-target=manage-cookies]"},{waitFor:"#manage-cookies-pane.active"},{click:"#manage-cookies-pane.active input[type=checkbox][checked]:not([disabled])",all:!0},{click:"#manage-cookies-pane.active button[type=submit]"}],test:[]},{name:"true-car",runContext:{urlPattern:"^https://www\\.truecar\\.com/"},cosmetic:!0,prehideSelectors:[['div[aria-labelledby="cookie-banner-heading"]']],detectCmp:[{exists:'div[aria-labelledby="cookie-banner-heading"]'}],detectPopup:[{visible:'div[aria-labelledby="cookie-banner-heading"]'}],optIn:[{click:'div[aria-labelledby="cookie-banner-heading"] > button[aria-label="Close"]'}],optOut:[{hide:'div[aria-labelledby="cookie-banner-heading"]'}]},{name:"truyo",prehideSelectors:["#truyo-consent-module"],detectCmp:[{exists:"#truyo-cookieBarContent"}],detectPopup:[{visible:"#truyo-consent-module"}],optIn:[{click:"button#acceptAllCookieButton"}],optOut:[{click:"button#declineAllCookieButton"}]},{name:"twcc",vendorUrl:"https://unknown",cosmetic:!1,runContext:{main:!0,frame:!1,urlPattern:""},prehideSelectors:["#twcc__mechanism"],detectCmp:[{exists:"#twcc__mechanism .twcc__notice"}],detectPopup:[{visible:"#twcc__mechanism .twcc__notice"}],optIn:[{waitForThenClick:"#twcc__accept-button"}],optOut:[{waitForThenClick:"#twcc__decline-button"}],test:[{eval:"EVAL_TWCC_TEST"}]},{name:"twitch-mobile",vendorUrl:"https://m.twitch.tv/",cosmetic:!0,runContext:{urlPattern:"^https?://m\\.twitch\\.tv"},prehideSelectors:[],detectCmp:[{exists:'.ReactModal__Overlay [href="https://www.twitch.tv/p/cookie-policy"]'}],detectPopup:[{visible:'.ReactModal__Overlay [href="https://www.twitch.tv/p/cookie-policy"]'}],optIn:[{waitForThenClick:'.ReactModal__Overlay:has([href="https://www.twitch.tv/p/cookie-policy"]) button'}],optOut:[{hide:'.ReactModal__Overlay:has([href="https://www.twitch.tv/p/cookie-policy"])'}]},{name:"twitch.tv",runContext:{urlPattern:"^https?://(www\\.)?twitch\\.tv"},prehideSelectors:["div:has(> .consent-banner .consent-banner__content--gdpr-v2),.ReactModalPortal:has([data-a-target=consent-modal-save])"],detectCmp:[{exists:".consent-banner .consent-banner__content--gdpr-v2"}],detectPopup:[{visible:".consent-banner .consent-banner__content--gdpr-v2"}],optIn:[{click:'button[data-a-target="consent-banner-accept"]'}],optOut:[{hide:"div:has(> .consent-banner .consent-banner__content--gdpr-v2)"},{click:'button[data-a-target="consent-banner-manage-preferences"]'},{waitFor:"input[type=checkbox][data-a-target=tw-checkbox]"},{click:"input[type=checkbox][data-a-target=tw-checkbox][checked]:not([disabled])",all:!0,optional:!0},{waitForThenClick:"[data-a-target=consent-modal-save]"},{waitForVisible:".ReactModalPortal:has([data-a-target=consent-modal-save])",check:"none"}]},{name:"twitter",runContext:{urlPattern:"^https://([a-z0-9-]+\\.)?(twitter|x)\\.com/"},prehideSelectors:['[data-testid="BottomBar"]'],detectCmp:[{exists:'[data-testid="BottomBar"] div'}],detectPopup:[{visible:'[data-testid="BottomBar"] div'}],optIn:[{waitForThenClick:'[data-testid="BottomBar"] > div:has(>div:first-child>div:last-child>button[role=button]>span) > div:last-child > button[role=button]:first-child'}],optOut:[{waitForThenClick:'[data-testid="BottomBar"] > div:has(>div:first-child>div:last-child>button[role=button]>span) > div:last-child > button[role=button]:last-child'}],TODOtest:[{eval:"EVAL_document.cookie.includes('d_prefs=MjoxLGNvbnNlbnRfdmVyc2lvbjoy')"}]},{name:"ubuntu.com",prehideSelectors:["dialog.cookie-policy"],detectCmp:[{any:[{exists:"dialog.cookie-policy header"},{exists:'xpath///*[@id="modal"]/div/header'}]}],detectPopup:[{any:[{visible:"dialog header"},{visible:'xpath///*[@id="modal"]/div/header'}]}],optIn:[{any:[{waitForThenClick:"#cookie-policy-button-accept"},{waitForThenClick:'xpath///*[@id="cookie-policy-button-accept"]'}]}],optOut:[{any:[{waitForThenClick:"button.js-manage"},{waitForThenClick:'xpath///*[@id="cookie-policy-content"]/p[4]/button[2]'}]},{waitForThenClick:"dialog.cookie-policy .p-switch__input:checked",optional:!0,all:!0,timeout:500},{any:[{waitForThenClick:"dialog.cookie-policy .js-save-preferences"},{waitForThenClick:'xpath///*[@id="modal"]/div/button'}]}],test:[{eval:"EVAL_UBUNTU_COM_0"}]},{name:"UK Cookie Consent",prehideSelectors:["#catapult-cookie-bar"],cosmetic:!0,detectCmp:[{exists:"#catapult-cookie-bar"}],detectPopup:[{exists:".has-cookie-bar #catapult-cookie-bar"}],optIn:[{click:"#catapultCookie"}],optOut:[{hide:"#catapult-cookie-bar"}],test:[{eval:"EVAL_UK_COOKIE_CONSENT_0"}]},{name:"urbanarmorgear-com",cosmetic:!0,prehideSelectors:['div[class^="Layout__CookieBannerContainer-"]'],detectCmp:[{exists:'div[class^="Layout__CookieBannerContainer-"]'}],detectPopup:[{visible:'div[class^="Layout__CookieBannerContainer-"]'}],optIn:[{click:'button[class^="CookieBanner__AcceptButton"]'}],optOut:[{hide:'div[class^="Layout__CookieBannerContainer-"]'}]},{name:"usercentrics-api",detectCmp:[{exists:"#usercentrics-root,#usercentrics-cmp-ui"}],detectPopup:[{eval:"EVAL_USERCENTRICS_API_0"},{if:{exists:"#usercentrics-cmp-ui"},then:[{waitForVisible:"#usercentrics-cmp-ui",timeout:2e3}],else:[{exists:["#usercentrics-root","[data-testid=uc-container]"]},{waitForVisible:"#usercentrics-root",timeout:2e3}]}],optIn:[{eval:"EVAL_USERCENTRICS_API_3"},{eval:"EVAL_USERCENTRICS_API_1"},{eval:"EVAL_USERCENTRICS_API_5"}],optOut:[{eval:"EVAL_USERCENTRICS_API_1"},{eval:"EVAL_USERCENTRICS_API_2"}],test:[{eval:"EVAL_USERCENTRICS_API_6"}]},{name:"usercentrics-button",detectCmp:[{exists:"#usercentrics-button"}],detectPopup:[{visible:"#usercentrics-button #uc-btn-accept-banner"}],optIn:[{click:"#usercentrics-button #uc-btn-accept-banner"}],optOut:[{click:"#usercentrics-button #uc-btn-deny-banner"}],test:[{eval:"EVAL_USERCENTRICS_BUTTON_0"}]},{name:"uswitch.com",runContext:{main:!0,frame:!1,urlPattern:"^https://(www\\.)?uswitch\\.com/"},prehideSelectors:[".ucb"],detectCmp:[{exists:".ucb-banner"}],detectPopup:[{visible:".ucb-banner"}],optIn:[{waitForThenClick:".ucb-banner .ucb-btn-accept"}],optOut:[{waitForThenClick:".ucb-banner .ucb-btn-save"}]},{name:"vodafone.de",runContext:{urlPattern:"^https://www\\.vodafone\\.de/"},prehideSelectors:[".dip-consent,.dip-consent-container"],detectCmp:[{exists:".dip-consent-container"}],detectPopup:[{visible:".dip-consent-content"}],optOut:[{click:'.dip-consent-btn[tabindex="2"]'}],optIn:[{click:'.dip-consent-btn[tabindex="1"]'}]},{name:"waitrose.com",prehideSelectors:["div[aria-labelledby=CookieAlertModalHeading]","section[data-test=initial-waitrose-cookie-consent-banner]","section[data-test=cookie-consent-modal]"],detectCmp:[{exists:"section[data-test=initial-waitrose-cookie-consent-banner]"}],detectPopup:[{visible:"section[data-test=initial-waitrose-cookie-consent-banner]"}],optIn:[{click:"button[data-test=accept-all]"}],optOut:[{click:"button[data-test=manage-cookies]"},{wait:200},{eval:"EVAL_WAITROSE_0"},{click:"button[data-test=submit]"}],test:[{eval:"EVAL_WAITROSE_1"}]},{name:"webflow",vendorUrl:"https://webflow.com/",prehideSelectors:[".fs-cc-components"],detectCmp:[{exists:".fs-cc-components"}],detectPopup:[{visible:".fs-cc-components"},{visible:"[fs-cc=banner]"}],optIn:[{wait:500},{waitForThenClick:"[fs-cc=banner] [fs-cc=allow]"}],optOut:[{wait:500},{waitForThenClick:"[fs-cc=banner] [fs-cc=deny]"}]},{name:"wetransfer.com",detectCmp:[{exists:".welcome__cookie-notice"}],detectPopup:[{visible:".welcome__cookie-notice"}],optIn:[{click:".welcome__button--accept"}],optOut:[{click:".welcome__button--decline"}]},{name:"whitepages.com",runContext:{urlPattern:"^https://www\\.whitepages\\.com/"},cosmetic:!0,prehideSelectors:[".cookie-wrapper, .cookie-overlay"],detectCmp:[{exists:".cookie-wrapper"}],detectPopup:[{visible:".cookie-overlay"}],optIn:[{click:'button[aria-label="Got it"]'}],optOut:[{hide:".cookie-wrapper"}]},{name:"wolframalpha",vendorUrl:"https://www.wolframalpha.com",prehideSelectors:[],cosmetic:!0,runContext:{urlPattern:"^https://www\\.wolframalpha\\.com/"},detectCmp:[{exists:"section._a_yb"}],detectPopup:[{visible:"section._a_yb"}],optIn:[{waitForThenClick:"section._a_yb button"}],optOut:[{hide:"section._a_yb"}]},{name:"woo-commerce-com",prehideSelectors:[".wccom-comp-privacy-banner .wccom-privacy-banner"],detectCmp:[{exists:".wccom-comp-privacy-banner .wccom-privacy-banner"}],detectPopup:[{exists:".wccom-comp-privacy-banner .wccom-privacy-banner"}],optIn:[{click:".wccom-privacy-banner__content-buttons button.is-primary"}],optOut:[{click:".wccom-privacy-banner__content-buttons button.is-secondary"},{waitForThenClick:"input[type=checkbox][checked]:not([disabled])",all:!0},{click:"div.wccom-modal__footer > button"}]},{name:"WP Cookie Notice for GDPR",vendorUrl:"https://wordpress.org/plugins/gdpr-cookie-consent/",prehideSelectors:["#gdpr-cookie-consent-bar"],detectCmp:[{exists:"#gdpr-cookie-consent-bar"}],detectPopup:[{visible:"#gdpr-cookie-consent-bar"}],optIn:[{waitForThenClick:"#gdpr-cookie-consent-bar #cookie_action_accept"}],optOut:[{waitForThenClick:"#gdpr-cookie-consent-bar #cookie_action_reject"}],test:[{eval:"EVAL_WP_COOKIE_NOTICE_0"}]},{name:"wpcc",cosmetic:!0,prehideSelectors:[".wpcc-container"],detectCmp:[{exists:".wpcc-container"}],detectPopup:[{exists:".wpcc-container .wpcc-message"}],optIn:[{click:".wpcc-compliance .wpcc-btn"}],optOut:[{hide:".wpcc-container"}]},{name:"xe.com",vendorUrl:"https://www.xe.com/",runContext:{urlPattern:"^https://www\\.xe\\.com/"},prehideSelectors:["[class*=ConsentBanner]"],detectCmp:[{exists:"[class*=ConsentBanner]"}],detectPopup:[{visible:"[class*=ConsentBanner]"}],optIn:[{waitForThenClick:"[class*=ConsentBanner] .egnScw"}],optOut:[{wait:1e3},{waitForThenClick:"[class*=ConsentBanner] .frDWEu"},{waitForThenClick:"[class*=ConsentBanner] .hXIpFU"}],test:[{eval:"EVAL_XE_TEST"}]},{name:"xhamster-eu",prehideSelectors:[".cookies-modal"],detectCmp:[{exists:".cookies-modal"}],detectPopup:[{exists:".cookies-modal"}],optIn:[{click:"button.cmd-button-accept-all"}],optOut:[{click:"button.cmd-button-reject-all"}]},{name:"xhamster-us",runContext:{urlPattern:"^https://(www\\.)?xhamster\\d?\\.com"},cosmetic:!0,prehideSelectors:[".cookie-announce"],detectCmp:[{exists:".cookie-announce"}],detectPopup:[{visible:".cookie-announce .announce-text"}],optIn:[{click:".cookie-announce button.xh-button"}],optOut:[{hide:".cookie-announce"}]},{name:"xing.com",detectCmp:[{exists:"div[class^=cookie-consent-CookieConsent]"}],detectPopup:[{exists:"div[class^=cookie-consent-CookieConsent]"}],optIn:[{click:"#consent-accept-button"}],optOut:[{click:"#consent-settings-button"},{click:".consent-banner-button-accept-overlay"}],test:[{eval:"EVAL_XING_0"}]},{name:"xnxx-com",cosmetic:!0,prehideSelectors:["#cookies-use-alert"],detectCmp:[{exists:"#cookies-use-alert"}],detectPopup:[{visible:"#cookies-use-alert"}],optIn:[{click:"#cookies-use-alert .close"}],optOut:[{hide:"#cookies-use-alert"}]},{name:"xvideos",vendorUrl:"https://xvideos.com",runContext:{urlPattern:"^https://[^/]*xvideos\\.com/"},prehideSelectors:[],detectCmp:[{exists:".disclaimer-opened #disclaimer-cookies"}],detectPopup:[{visible:".disclaimer-opened #disclaimer-cookies"}],optIn:[{waitForThenClick:"#disclaimer-accept_cookies"}],optOut:[{waitForThenClick:"#disclaimer-reject_cookies"}]},{name:"Yahoo",runContext:{urlPattern:"^https://consent\\.yahoo\\.com/v2/"},prehideSelectors:["#reject-all"],detectCmp:[{exists:"#consent-page"}],detectPopup:[{visible:"#consent-page"}],optIn:[{waitForThenClick:"#consent-page button[value=agree]"}],optOut:[{waitForThenClick:"#consent-page button[value=reject]"}]},{name:"youporn.com",cosmetic:!0,prehideSelectors:[".euCookieModal, #js_euCookieModal"],detectCmp:[{exists:".euCookieModal"}],detectPopup:[{exists:".euCookieModal, #js_euCookieModal"}],optIn:[{click:'button[name="user_acceptCookie"]'}],optOut:[{hide:".euCookieModal"}]},{name:"youtube-desktop",prehideSelectors:["tp-yt-iron-overlay-backdrop.opened","ytd-consent-bump-v2-lightbox"],detectCmp:[{exists:"ytd-consent-bump-v2-lightbox tp-yt-paper-dialog"},{exists:'ytd-consent-bump-v2-lightbox tp-yt-paper-dialog a[href^="https://consent.youtube.com/"]'}],detectPopup:[{visible:"ytd-consent-bump-v2-lightbox tp-yt-paper-dialog"}],optIn:[{waitForThenClick:"ytd-consent-bump-v2-lightbox .eom-buttons .eom-button-row:first-child ytd-button-renderer:last-child #button,ytd-consent-bump-v2-lightbox .eom-buttons .eom-button-row:first-child ytd-button-renderer:last-child button"},{wait:500}],optOut:[{waitForThenClick:"ytd-consent-bump-v2-lightbox .eom-buttons .eom-button-row:first-child ytd-button-renderer:first-child #button,ytd-consent-bump-v2-lightbox .eom-buttons .eom-button-row:first-child ytd-button-renderer:first-child button"},{wait:500}],test:[{wait:500},{eval:"EVAL_YOUTUBE_DESKTOP_0"}]},{name:"youtube-mobile",prehideSelectors:[".consent-bump-v2-lightbox"],detectCmp:[{exists:"ytm-consent-bump-v2-renderer"}],detectPopup:[{visible:"ytm-consent-bump-v2-renderer"}],optIn:[{waitForThenClick:"ytm-consent-bump-v2-renderer .privacy-terms + .one-col-dialog-buttons c3-material-button:first-child button, ytm-consent-bump-v2-renderer .privacy-terms + .one-col-dialog-buttons ytm-button-renderer:first-child button"},{wait:500}],optOut:[{waitForThenClick:"ytm-consent-bump-v2-renderer .privacy-terms + .one-col-dialog-buttons c3-material-button:nth-child(2) button, ytm-consent-bump-v2-renderer .privacy-terms + .one-col-dialog-buttons ytm-button-renderer:nth-child(2) button"},{wait:500}],test:[{wait:500},{eval:"EVAL_YOUTUBE_MOBILE_0"}]},{name:"zdf",prehideSelectors:["#zdf-cmp-banner-sdk"],detectCmp:[{exists:"#zdf-cmp-banner-sdk"}],detectPopup:[{visible:"#zdf-cmp-main.zdf-cmp-show"}],optIn:[{waitForThenClick:"#zdf-cmp-main #zdf-cmp-accept-btn"}],optOut:[{waitForThenClick:"#zdf-cmp-main #zdf-cmp-deny-btn"}],test:[]},{name:"zentralruf-de",runContext:{urlPattern:"^https://(www\\.)?zentralruf\\.de"},prehideSelectors:["#cookie_modal_wrapper"],detectCmp:[{exists:"#cookie_modal_wrapper"}],detectPopup:[{visible:"#cookie_modal_wrapper"}],optIn:[{waitForThenClick:"#cookie_modal_wrapper #cookie_modal_button_consent_all"}],optOut:[{waitForThenClick:"#cookie_modal_wrapper #cookie_modal_button_choose"}]}],A={"didomi.io":{detectors:[{presentMatcher:{target:{selector:"#didomi-host, #didomi-notice"},type:"css"},showingMatcher:{target:{selector:"body.didomi-popup-open, .didomi-notice-banner"},type:"css"}}],methods:[{action:{target:{selector:".didomi-popup-notice-buttons .didomi-button:not(.didomi-button-highlight), .didomi-notice-banner .didomi-learn-more-button"},type:"click"},name:"OPEN_OPTIONS"},{action:{actions:[{retries:50,target:{selector:"#didomi-purpose-cookies"},type:"waitcss",waitTime:50},{consents:[{description:"Share (everything) with others",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-share_whith_others]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-share_whith_others]:last-child"},type:"click"},type:"X"},{description:"Information storage and access",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-cookies]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-cookies]:last-child"},type:"click"},type:"D"},{description:"Content selection, offers and marketing",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-CL-T1Rgm7]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-CL-T1Rgm7]:last-child"},type:"click"},type:"E"},{description:"Analytics",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-analytics]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-analytics]:last-child"},type:"click"},type:"B"},{description:"Analytics",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-M9NRHJe3G]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-M9NRHJe3G]:last-child"},type:"click"},type:"B"},{description:"Ad and content selection",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-advertising_personalization]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-advertising_personalization]:last-child"},type:"click"},type:"F"},{description:"Ad and content selection",falseAction:{parent:{childFilter:{target:{selector:"#didomi-purpose-pub-ciblee"}},selector:".didomi-consent-popup-data-processing, .didomi-components-accordion-label-container"},target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-pub-ciblee]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-pub-ciblee]:last-child"},type:"click"},type:"F"},{description:"Ad and content selection - basics",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-q4zlJqdcD]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-q4zlJqdcD]:last-child"},type:"click"},type:"F"},{description:"Ad and content selection - partners and subsidiaries",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-partenaire-cAsDe8jC]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-partenaire-cAsDe8jC]:last-child"},type:"click"},type:"F"},{description:"Ad and content selection - social networks",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-p4em9a8m]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-p4em9a8m]:last-child"},type:"click"},type:"F"},{description:"Ad and content selection - others",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-autres-pub]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-autres-pub]:last-child"},type:"click"},type:"F"},{description:"Social networks",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-reseauxsociaux]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-reseauxsociaux]:last-child"},type:"click"},type:"A"},{description:"Social networks",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-social_media]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-social_media]:last-child"},type:"click"},type:"A"},{description:"Content selection",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-content_personalization]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-content_personalization]:last-child"},type:"click"},type:"E"},{description:"Ad delivery",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-ad_delivery]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-ad_delivery]:last-child"},type:"click"},type:"F"}],type:"consent"},{action:{consents:[{matcher:{childFilter:{target:{selector:":not(.didomi-components-radio__option--selected)"}},type:"css"},trueAction:{target:{selector:":nth-child(2)"},type:"click"},falseAction:{target:{selector:":first-child"},type:"click"},type:"X"}],type:"consent"},target:{selector:".didomi-components-radio"},type:"foreach"}],type:"list"},name:"DO_CONSENT"},{action:{parent:{selector:".didomi-consent-popup-footer .didomi-consent-popup-actions"},target:{selector:".didomi-components-button:first-child"},type:"click"},name:"SAVE_CONSENT"}]},oil:{detectors:[{presentMatcher:{target:{selector:".as-oil-content-overlay"},type:"css"},showingMatcher:{target:{selector:".as-oil-content-overlay"},type:"css"}}],methods:[{action:{actions:[{target:{selector:".as-js-advanced-settings"},type:"click"},{retries:"10",target:{selector:".as-oil-cpc__purpose-container"},type:"waitcss",waitTime:"250"}],type:"list"},name:"OPEN_OPTIONS"},{action:{actions:[{consents:[{matcher:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:["Information storage and access","Opbevaring af og adgang til oplysninger på din enhed"]},target:{selector:"input"},type:"checkbox"},toggleAction:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:["Information storage and access","Opbevaring af og adgang til oplysninger på din enhed"]},target:{selector:".as-oil-cpc__switch"},type:"click"},type:"D"},{matcher:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:["Personlige annoncer","Personalisation"]},target:{selector:"input"},type:"checkbox"},toggleAction:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:["Personlige annoncer","Personalisation"]},target:{selector:".as-oil-cpc__switch"},type:"click"},type:"E"},{matcher:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:["Annoncevalg, levering og rapportering","Ad selection, delivery, reporting"]},target:{selector:"input"},type:"checkbox"},toggleAction:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:["Annoncevalg, levering og rapportering","Ad selection, delivery, reporting"]},target:{selector:".as-oil-cpc__switch"},type:"click"},type:"F"},{matcher:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:["Personalisering af indhold","Content selection, delivery, reporting"]},target:{selector:"input"},type:"checkbox"},toggleAction:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:["Personalisering af indhold","Content selection, delivery, reporting"]},target:{selector:".as-oil-cpc__switch"},type:"click"},type:"E"},{matcher:{parent:{childFilter:{target:{selector:".as-oil-cpc__purpose-header",textFilter:["Måling","Measurement"]}},selector:".as-oil-cpc__purpose-container"},target:{selector:"input"},type:"checkbox"},toggleAction:{parent:{childFilter:{target:{selector:".as-oil-cpc__purpose-header",textFilter:["Måling","Measurement"]}},selector:".as-oil-cpc__purpose-container"},target:{selector:".as-oil-cpc__switch"},type:"click"},type:"B"},{matcher:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:"Google"},target:{selector:"input"},type:"checkbox"},toggleAction:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:"Google"},target:{selector:".as-oil-cpc__switch"},type:"click"},type:"F"}],type:"consent"}],type:"list"},name:"DO_CONSENT"},{action:{target:{selector:".as-oil__btn-optin"},type:"click"},name:"SAVE_CONSENT"},{action:{target:{selector:"div.as-oil"},type:"hide"},name:"HIDE_CMP"}]},optanon:{detectors:[{presentMatcher:{target:{selector:"#optanon-menu, .optanon-alert-box-wrapper"},type:"css"},showingMatcher:{target:{displayFilter:!0,selector:".optanon-alert-box-wrapper"},type:"css"}}],methods:[{action:{actions:[{target:{selector:".optanon-alert-box-wrapper .optanon-toggle-display, a[onclick*='OneTrust.ToggleInfoDisplay()'], a[onclick*='Optanon.ToggleInfoDisplay()']"},type:"click"}],type:"list"},name:"OPEN_OPTIONS"},{action:{actions:[{target:{selector:".preference-menu-item #Your-privacy"},type:"click"},{target:{selector:"#optanon-vendor-consent-text"},type:"click"},{action:{consents:[{matcher:{target:{selector:"input"},type:"checkbox"},toggleAction:{target:{selector:"label"},type:"click"},type:"X"}],type:"consent"},target:{selector:"#optanon-vendor-consent-list .vendor-item"},type:"foreach"},{target:{selector:".vendor-consent-back-link"},type:"click"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-performance"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-performance"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"B"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-functional"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-functional"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"E"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-advertising"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-advertising"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"F"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-social"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-social"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"B"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Social Media Cookies"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Social Media Cookies"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"B"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Personalisation"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Personalisation"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"E"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Site monitoring cookies"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Site monitoring cookies"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"B"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Third party privacy-enhanced content"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Third party privacy-enhanced content"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"X"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Performance & Advertising Cookies"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Performance & Advertising Cookies"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"F"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Information storage and access"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Information storage and access"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"D"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Ad selection, delivery, reporting"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Ad selection, delivery, reporting"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"F"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Content selection, delivery, reporting"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Content selection, delivery, reporting"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"E"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Measurement"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Measurement"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"B"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Recommended Cookies"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Recommended Cookies"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"X"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Unclassified Cookies"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Unclassified Cookies"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"X"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Analytical Cookies"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Analytical Cookies"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"B"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Marketing Cookies"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Marketing Cookies"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"F"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Personalization"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Personalization"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"E"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Ad Selection, Delivery & Reporting"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Ad Selection, Delivery & Reporting"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"F"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Content Selection, Delivery & Reporting"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Content Selection, Delivery & Reporting"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"E"}],type:"consent"}],type:"list"},type:"ifcss"}],type:"list"},name:"DO_CONSENT"},{action:{parent:{selector:".optanon-save-settings-button"},target:{selector:".optanon-white-button-middle"},type:"click"},name:"SAVE_CONSENT"},{action:{actions:[{target:{selector:"#optanon-popup-wrapper"},type:"hide"},{target:{selector:"#optanon-popup-bg"},type:"hide"},{target:{selector:".optanon-alert-box-wrapper"},type:"hide"}],type:"list"},name:"HIDE_CMP"}]},quantcast2:{detectors:[{presentMatcher:{target:{selector:"[data-tracking-opt-in-overlay]"},type:"css"},showingMatcher:{target:{selector:"[data-tracking-opt-in-overlay] [data-tracking-opt-in-learn-more]"},type:"css"}}],methods:[{action:{target:{selector:"[data-tracking-opt-in-overlay] [data-tracking-opt-in-learn-more]"},type:"click"},name:"OPEN_OPTIONS"},{action:{actions:[{type:"wait",waitTime:500},{action:{actions:[{target:{selector:"div",textFilter:["Information storage and access"]},trueAction:{consents:[{matcher:{target:{selector:"input"},type:"checkbox"},toggleAction:{target:{selector:"label"},type:"click"},type:"D"}],type:"consent"},type:"ifcss"},{target:{selector:"div",textFilter:["Personalization"]},trueAction:{consents:[{matcher:{target:{selector:"input"},type:"checkbox"},toggleAction:{target:{selector:"label"},type:"click"},type:"F"}],type:"consent"},type:"ifcss"},{target:{selector:"div",textFilter:["Ad selection, delivery, reporting"]},trueAction:{consents:[{matcher:{target:{selector:"input"},type:"checkbox"},toggleAction:{target:{selector:"label"},type:"click"},type:"F"}],type:"consent"},type:"ifcss"},{target:{selector:"div",textFilter:["Content selection, delivery, reporting"]},trueAction:{consents:[{matcher:{target:{selector:"input"},type:"checkbox"},toggleAction:{target:{selector:"label"},type:"click"},type:"E"}],type:"consent"},type:"ifcss"},{target:{selector:"div",textFilter:["Measurement"]},trueAction:{consents:[{matcher:{target:{selector:"input"},type:"checkbox"},toggleAction:{target:{selector:"label"},type:"click"},type:"B"}],type:"consent"},type:"ifcss"},{target:{selector:"div",textFilter:["Other Partners"]},trueAction:{consents:[{matcher:{target:{selector:"input"},type:"checkbox"},toggleAction:{target:{selector:"label"},type:"click"},type:"X"}],type:"consent"},type:"ifcss"}],type:"list"},parent:{childFilter:{target:{selector:"input"}},selector:"[data-tracking-opt-in-overlay] > div > div"},target:{childFilter:{target:{selector:"input"}},selector:":scope > div"},type:"foreach"}],type:"list"},name:"DO_CONSENT"},{action:{target:{selector:"[data-tracking-opt-in-overlay] [data-tracking-opt-in-save]"},type:"click"},name:"SAVE_CONSENT"}]},springer:{detectors:[{presentMatcher:{parent:null,target:{selector:".cmp-app_gdpr"},type:"css"},showingMatcher:{parent:null,target:{displayFilter:!0,selector:".cmp-popup_popup"},type:"css"}}],methods:[{action:{actions:[{target:{selector:".cmp-intro_rejectAll"},type:"click"},{type:"wait",waitTime:250},{target:{selector:".cmp-purposes_purposeItem:not(.cmp-purposes_selectedPurpose)"},type:"click"}],type:"list"},name:"OPEN_OPTIONS"},{action:{consents:[{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Przechowywanie informacji na urządzeniu lub dostęp do nich",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Przechowywanie informacji na urządzeniu lub dostęp do nich",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"D"},{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Wybór podstawowych reklam",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Wybór podstawowych reklam",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"F"},{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Tworzenie profilu spersonalizowanych reklam",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Tworzenie profilu spersonalizowanych reklam",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"F"},{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Wybór spersonalizowanych reklam",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Wybór spersonalizowanych reklam",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"E"},{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Tworzenie profilu spersonalizowanych treści",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Tworzenie profilu spersonalizowanych treści",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"E"},{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Wybór spersonalizowanych treści",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Wybór spersonalizowanych treści",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"B"},{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Pomiar wydajności reklam",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Pomiar wydajności reklam",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"B"},{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Pomiar wydajności treści",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Pomiar wydajności treści",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"B"},{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Stosowanie badań rynkowych w celu generowania opinii odbiorców",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Stosowanie badań rynkowych w celu generowania opinii odbiorców",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"X"},{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Opracowywanie i ulepszanie produktów",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Opracowywanie i ulepszanie produktów",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"X"}],type:"consent"},name:"DO_CONSENT"},{action:{target:{selector:".cmp-details_save"},type:"click"},name:"SAVE_CONSENT"}]},wordpressgdpr:{detectors:[{presentMatcher:{parent:null,target:{selector:".wpgdprc-consent-bar"},type:"css"},showingMatcher:{parent:null,target:{displayFilter:!0,selector:".wpgdprc-consent-bar"},type:"css"}}],methods:[{action:{parent:null,target:{selector:".wpgdprc-consent-bar .wpgdprc-consent-bar__settings",textFilter:null},type:"click"},name:"OPEN_OPTIONS"},{action:{actions:[{target:{selector:".wpgdprc-consent-modal .wpgdprc-button",textFilter:"Eyeota"},type:"click"},{consents:[{description:"Eyeota Cookies",matcher:{parent:{selector:".wpgdprc-consent-modal__description",textFilter:"Eyeota"},target:{selector:"input"},type:"checkbox"},toggleAction:{parent:{selector:".wpgdprc-consent-modal__description",textFilter:"Eyeota"},target:{selector:"label"},type:"click"},type:"X"}],type:"consent"},{target:{selector:".wpgdprc-consent-modal .wpgdprc-button",textFilter:"Advertising"},type:"click"},{consents:[{description:"Advertising Cookies",matcher:{parent:{selector:".wpgdprc-consent-modal__description",textFilter:"Advertising"},target:{selector:"input"},type:"checkbox"},toggleAction:{parent:{selector:".wpgdprc-consent-modal__description",textFilter:"Advertising"},target:{selector:"label"},type:"click"},type:"F"}],type:"consent"}],type:"list"},name:"DO_CONSENT"},{action:{parent:null,target:{selector:".wpgdprc-button",textFilter:"Save my settings"},type:"click"},name:"SAVE_CONSENT"}]}},E={autoconsent:f,consentomatic:A},x=Object.freeze({__proto__:null,autoconsent:f,consentomatic:A,default:E});const O=new class{constructor(e,t=null,o=null){if(this.id=a(),this.rules=[],this.foundCmp=null,this.state={lifecycle:"loading",prehideOn:!1,findCmpAttempts:0,detectedCmps:[],detectedPopups:[],selfTest:null},r.sendContentMessage=e,this.sendContentMessage=e,this.rules=[],this.updateState({lifecycle:"loading"}),this.addDynamicRules(),t)this.initialize(t,o);else{o&&this.parseDeclarativeRules(o);e({type:"init",url:window.location.href}),this.updateState({lifecycle:"waitingForInitResponse"})}this.domActions=new v(this)}initialize(e,t){const o=g(e);if(o.logs.lifecycle&&console.log("autoconsent init",window.location.href),this.config=o,o.enabled){if(t&&this.parseDeclarativeRules(t),this.rules=function(e,t){return e.filter((e=>(!t.disabledCmps||!t.disabledCmps.includes(e.name))&&(t.enableCosmeticRules||!e.isCosmetic)))}(this.rules,o),e.enablePrehide)if(document.documentElement)this.prehideElements();else{const e=()=>{window.removeEventListener("DOMContentLoaded",e),this.prehideElements()};window.addEventListener("DOMContentLoaded",e)}if("loading"===document.readyState){const e=()=>{window.removeEventListener("DOMContentLoaded",e),this.start()};window.addEventListener("DOMContentLoaded",e)}else this.start();this.updateState({lifecycle:"initialized"})}else o.logs.lifecycle&&console.log("autoconsent is disabled")}addDynamicRules(){C.forEach((e=>{this.rules.push(new e(this))}))}parseDeclarativeRules(e){Object.keys(e.consentomatic).forEach((t=>{this.addConsentomaticCMP(t,e.consentomatic[t])})),e.autoconsent.forEach((e=>{this.addDeclarativeCMP(e)}))}addDeclarativeCMP(e){this.rules.push(new u(e,this))}addConsentomaticCMP(e,t){this.rules.push(new m(`com_${e}`,t))}start(){window.requestIdleCallback?window.requestIdleCallback((()=>this._start()),{timeout:500}):this._start()}async _start(){const e=this.config.logs;e.lifecycle&&console.log(`Detecting CMPs on ${window.location.href}`),this.updateState({lifecycle:"started"});const t=await this.findCmp(this.config.detectRetries);if(this.updateState({detectedCmps:t.map((e=>e.name))}),0===t.length)return e.lifecycle&&console.log("no CMP found",location.href),this.config.enablePrehide&&this.undoPrehide(),this.updateState({lifecycle:"nothingDetected"}),!1;this.updateState({lifecycle:"cmpDetected"});const o=[],i=[];for(const e of t)e.isCosmetic?i.push(e):o.push(e);let c=!1,n=await this.detectPopups(o,(async e=>{c=await this.handlePopup(e)}));if(0===n.length&&(n=await this.detectPopups(i,(async e=>{c=await this.handlePopup(e)}))),0===n.length)return e.lifecycle&&console.log("no popup found"),this.config.enablePrehide&&this.undoPrehide(),!1;if(n.length>1){const t={msg:"Found multiple CMPs, check the detection rules.",cmps:n.map((e=>e.name))};e.errors&&console.warn(t.msg,t.cmps),this.sendContentMessage({type:"autoconsentError",details:t})}return c}async findCmp(e){const t=this.config.logs;this.updateState({findCmpAttempts:this.state.findCmpAttempts+1});const o=[];for(const e of this.rules)try{if(!e.checkRunContext())continue;await e.detectCmp()&&(t.lifecycle&&console.log(`Found CMP: ${e.name} ${window.location.href}`),this.sendContentMessage({type:"cmpDetected",url:location.href,cmp:e.name}),o.push(e))}catch(o){t.errors&&console.warn(`error detecting ${e.name}`,o)}return 0===o.length&&e>0?(await this.domActions.wait(500),this.findCmp(e-1)):o}async detectPopup(e){if(await this.waitForPopup(e).catch((t=>(this.config.logs.errors&&console.warn(`error waiting for a popup for ${e.name}`,t),!1))))return this.updateState({detectedPopups:this.state.detectedPopups.concat([e.name])}),this.sendContentMessage({type:"popupFound",cmp:e.name,url:location.href}),e;throw new Error("Popup is not shown")}async detectPopups(e,t){const o=e.map((e=>this.detectPopup(e)));await Promise.any(o).then((e=>{t(e)})).catch((()=>null));const i=await Promise.allSettled(o),c=[];for(const e of i)"fulfilled"===e.status&&c.push(e.value);return c}async handlePopup(e){return this.updateState({lifecycle:"openPopupDetected"}),this.config.enablePrehide&&!this.state.prehideOn&&this.prehideElements(),this.foundCmp=e,"optOut"===this.config.autoAction?await this.doOptOut():"optIn"===this.config.autoAction?await this.doOptIn():(this.config.logs.lifecycle&&console.log("waiting for opt-out signal...",location.href),!0)}async doOptOut(){const e=this.config.logs;let t;return this.updateState({lifecycle:"runningOptOut"}),this.foundCmp?(e.lifecycle&&console.log(`CMP ${this.foundCmp.name}: opt out on ${window.location.href}`),t=await this.foundCmp.optOut(),e.lifecycle&&console.log(`${this.foundCmp.name}: opt out result ${t}`)):(e.errors&&console.log("no CMP to opt out"),t=!1),this.config.enablePrehide&&this.undoPrehide(),this.sendContentMessage({type:"optOutResult",cmp:this.foundCmp?this.foundCmp.name:"none",result:t,scheduleSelfTest:this.foundCmp&&this.foundCmp.hasSelfTest,url:location.href}),t&&!this.foundCmp.isIntermediate?(this.sendContentMessage({type:"autoconsentDone",cmp:this.foundCmp.name,isCosmetic:this.foundCmp.isCosmetic,url:location.href}),this.updateState({lifecycle:"done"})):this.updateState({lifecycle:t?"optOutSucceeded":"optOutFailed"}),t}async doOptIn(){const e=this.config.logs;let t;return this.updateState({lifecycle:"runningOptIn"}),this.foundCmp?(e.lifecycle&&console.log(`CMP ${this.foundCmp.name}: opt in on ${window.location.href}`),t=await this.foundCmp.optIn(),e.lifecycle&&console.log(`${this.foundCmp.name}: opt in result ${t}`)):(e.errors&&console.log("no CMP to opt in"),t=!1),this.config.enablePrehide&&this.undoPrehide(),this.sendContentMessage({type:"optInResult",cmp:this.foundCmp?this.foundCmp.name:"none",result:t,scheduleSelfTest:!1,url:location.href}),t&&!this.foundCmp.isIntermediate?(this.sendContentMessage({type:"autoconsentDone",cmp:this.foundCmp.name,isCosmetic:this.foundCmp.isCosmetic,url:location.href}),this.updateState({lifecycle:"done"})):this.updateState({lifecycle:t?"optInSucceeded":"optInFailed"}),t}async doSelfTest(){const e=this.config.logs;let t;return this.foundCmp?(e.lifecycle&&console.log(`CMP ${this.foundCmp.name}: self-test on ${window.location.href}`),t=await this.foundCmp.test()):(e.errors&&console.log("no CMP to self test"),t=!1),this.sendContentMessage({type:"selfTestResult",cmp:this.foundCmp?this.foundCmp.name:"none",result:t,url:location.href}),this.updateState({selfTest:t}),t}async waitForPopup(e,t=5,o=500){const i=this.config.logs;i.lifecycle&&console.log("checking if popup is open...",e.name);const c=await e.detectPopup().catch((t=>(i.errors&&console.warn(`error detecting popup for ${e.name}`,t),!1)));return!c&&t>0?(await this.domActions.wait(o),this.waitForPopup(e,t-1,o)):(i.lifecycle&&console.log(e.name,"popup is "+(c?"open":"not open")),c)}prehideElements(){const e=this.config.logs,t=this.rules.filter((e=>e.prehideSelectors&&e.checkRunContext())).reduce(((e,t)=>[...e,...t.prehideSelectors]),["#didomi-popup,.didomi-popup-container,.didomi-popup-notice,.didomi-consent-popup-preferences,#didomi-notice,.didomi-popup-backdrop,.didomi-screen-medium"]);return this.updateState({prehideOn:!0}),setTimeout((()=>{this.config.enablePrehide&&this.state.prehideOn&&!["runningOptOut","runningOptIn"].includes(this.state.lifecycle)&&(e.lifecycle&&console.log("Process is taking too long, unhiding elements"),this.undoPrehide())}),this.config.prehideTimeout||2e3),this.domActions.prehide(t.join(","))}undoPrehide(){return this.updateState({prehideOn:!1}),this.domActions.undoPrehide()}updateState(e){Object.assign(this.state,e),this.sendContentMessage({type:"report",instanceId:this.id,url:window.location.href,mainFrame:window.top===window.self,state:this.state})}async receiveMessageCallback(e){const t=this.config?.logs;switch(t?.messages&&console.log("received from background",e,window.location.href),e.type){case"initResp":this.initialize(e.config,e.rules);break;case"optIn":await this.doOptIn();break;case"optOut":await this.doOptOut();break;case"selfTest":await this.doSelfTest();break;case"evalResp":!function(e,t){const o=r.pending.get(e);o?(r.pending.delete(e),o.timer&&window.clearTimeout(o.timer),o.resolve(t)):console.warn("no eval #",e)}(e.id,e.result)}}}((e=>{window.webkit.messageHandlers[e.type]&&window.webkit.messageHandlers[e.type].postMessage(e).then((e=>{O.receiveMessageCallback(e)}))}),null,x);window.autoconsentMessageCallback=e=>{O.receiveMessageCallback(e)}}(); diff --git a/package-lock.json b/package-lock.json index f5a2c8ef73..66486dc5ed 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "name": "ios", "version": "1.0.0", "dependencies": { - "@duckduckgo/autoconsent": "^10.13.0" + "@duckduckgo/autoconsent": "^10.15.0" }, "devDependencies": { "@rollup/plugin-json": "^4.1.0", @@ -135,9 +135,9 @@ } }, "node_modules/@duckduckgo/autoconsent": { - "version": "10.13.0", - "resolved": "https://registry.npmjs.org/@duckduckgo/autoconsent/-/autoconsent-10.13.0.tgz", - "integrity": "sha512-tR2XpSjA0Y4IC+Ql0J1e9B29Bz3qMEQW/+6gxJ6DRmvu0D8MsKvw0pST2rD/Q3+Mp9rL/FCklB/2X73hLK17LA==", + "version": "10.15.0", + "resolved": "https://registry.npmjs.org/@duckduckgo/autoconsent/-/autoconsent-10.15.0.tgz", + "integrity": "sha512-Jxaogy2IuZEEV1+xPyo3c3PnZJmBO6ima/MapF2VolI/IKxXnL+9yYqyydPhSk0ahx42YINA6uIK6zexlKDIkQ==", "license": "MPL-2.0", "dependencies": { "tldts-experimental": "^6.1.37" diff --git a/package.json b/package.json index b38aa513a3..ca87850735 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,6 @@ "rollup-plugin-terser": "^7.0.2" }, "dependencies": { - "@duckduckgo/autoconsent": "^10.13.0" + "@duckduckgo/autoconsent": "^10.15.0" } } From c24b07e765dc9743271930386bf705042edaae55 Mon Sep 17 00:00:00 2001 From: Christopher Brind Date: Fri, 23 Aug 2024 14:35:39 +0100 Subject: [PATCH 18/32] fix progress view crash by removing call to flush (#3272) Task/Issue URL: https://app.asana.com/0/392891325557410/1207778385841673/f Tech Design URL: CC: **Description**: Removes the call to CATransaction.flush which Apple recommends you don't do anyway. It was there for legacy reasons but after testing it seems to be fine. **Steps to test this PR**: 1. Browse a few pages and see the progress bar. --- DuckDuckGo/ProgressView.swift | 1 - 1 file changed, 1 deletion(-) diff --git a/DuckDuckGo/ProgressView.swift b/DuckDuckGo/ProgressView.swift index f43e416b00..4a29b897ff 100644 --- a/DuckDuckGo/ProgressView.swift +++ b/DuckDuckGo/ProgressView.swift @@ -83,7 +83,6 @@ class ProgressView: UIView, CAAnimationDelegate { progressMask.bounds = calculateProgressMaskRect() progressMask.opacity = 1 CATransaction.commit() - CATransaction.flush() startGradientAnimation() } From 2d0fa40ce9048b8313c8ca2d6e1a63b7decb91bf Mon Sep 17 00:00:00 2001 From: Juan Manuel Pereira Date: Sun, 25 Aug 2024 21:06:25 -0300 Subject: [PATCH 19/32] Fix math expressions on address bar (#3262) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Task/Issue URL: https://app.asana.com/0/1204006570077678/1208002970105121/f BSK PR: https://github.com/duckduckgo/BrowserServicesKit/pull/952 **Description**: This pull request introduces a change on how we check for valid hostnames. The current regurlar expression had an issue where some mathematical expressions where valid hostnames. Also, following the philosophy about leaving the code a bit better when you touched it. I’ve added tests for the query submitted flow on the `OmniBar`. This PR fixes **Steps to test this PR**: 1. Open the app 2. Put `16385-12228.75` in the address bar 3. This should do a search on our SERP instead of trying to open a webpage 4. Test other usual web sites URLs and check those are working. **Definition of Done (Internal Only)**: * [x] Does this PR satisfy our [Definition of Done](https://app.asana.com/0/1202500774821704/1207634633537039/f)? --- DuckDuckGo.xcodeproj/project.pbxproj | 6 +- .../xcshareddata/swiftpm/Package.resolved | 4 +- DuckDuckGoTests/QuerySubmittedTests.swift | 147 ++++++++++++++++++ 3 files changed, 154 insertions(+), 3 deletions(-) create mode 100644 DuckDuckGoTests/QuerySubmittedTests.swift diff --git a/DuckDuckGo.xcodeproj/project.pbxproj b/DuckDuckGo.xcodeproj/project.pbxproj index b6ffc9bca9..12339b4400 100644 --- a/DuckDuckGo.xcodeproj/project.pbxproj +++ b/DuckDuckGo.xcodeproj/project.pbxproj @@ -784,6 +784,7 @@ B6BA95C528894A28004ABA20 /* BrowsingMenuViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B6BA95C428894A28004ABA20 /* BrowsingMenuViewController.storyboard */; }; B6BA95E828924730004ABA20 /* JSAlertController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B6BA95E728924730004ABA20 /* JSAlertController.storyboard */; }; B6CB93E5286445AB0090FEB4 /* Base64DownloadSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6CB93E4286445AB0090FEB4 /* Base64DownloadSession.swift */; }; + BBFF18B12C76448100C48D7D /* QuerySubmittedTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFF18B02C76448100C48D7D /* QuerySubmittedTests.swift */; }; BD15DB852B959CFD00821457 /* BundleExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD15DB842B959CFD00821457 /* BundleExtension.swift */; }; BD2F39EB2C19F955005B19E7 /* NetworkProtectionDNSSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD2F39EA2C19F955005B19E7 /* NetworkProtectionDNSSettingsView.swift */; }; BD862E032B30DA170073E2EE /* VPNFeedbackFormViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD862E022B30DA170073E2EE /* VPNFeedbackFormViewModel.swift */; }; @@ -2532,6 +2533,7 @@ B6CB93E4286445AB0090FEB4 /* Base64DownloadSession.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Base64DownloadSession.swift; sourceTree = ""; }; B6DFE6CF2BC7E47500A9CE59 /* SwiftLintTool.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SwiftLintTool.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; B6DFE6D92BC7E61B00A9CE59 /* SwiftLintToolBundleConfiguration.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = SwiftLintToolBundleConfiguration.xcconfig; sourceTree = ""; }; + BBFF18B02C76448100C48D7D /* QuerySubmittedTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = QuerySubmittedTests.swift; sourceTree = ""; }; BD15DB842B959CFD00821457 /* BundleExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BundleExtension.swift; sourceTree = ""; }; BD2F39EA2C19F955005B19E7 /* NetworkProtectionDNSSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkProtectionDNSSettingsView.swift; sourceTree = ""; }; BD862E022B30DA170073E2EE /* VPNFeedbackFormViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VPNFeedbackFormViewModel.swift; sourceTree = ""; }; @@ -5959,6 +5961,7 @@ F1D477C71F2139210031ED49 /* OmniBar */ = { isa = PBXGroup; children = ( + BBFF18B02C76448100C48D7D /* QuerySubmittedTests.swift */, 8588026424E4209900C24AB6 /* LargeOmniBarStateTests.swift */, 85F20005221702F7006BB258 /* AddressDisplayHelperTests.swift */, F1D477C81F2139410031ED49 /* SmallOmniBarStateTests.swift */, @@ -7666,6 +7669,7 @@ 56D0602F2C384F70003BAEB5 /* OnboardingSuggestedSitesProviderTests.swift in Sources */, 851B1283221FE65E004781BC /* ImproveOnboardingExperiment1Tests.swift in Sources */, F194FAFB1F14E622009B4DF8 /* UIFontExtensionTests.swift in Sources */, + BBFF18B12C76448100C48D7D /* QuerySubmittedTests.swift in Sources */, 9F23B8092C2BE9B700950875 /* MockURLOpener.swift in Sources */, 9F8007262C5261AF003EDAF4 /* MockPrivacyDataReporter.swift in Sources */, F40F843728C939760081AE75 /* AutofillLoginListViewModelTests.swift in Sources */, @@ -10579,7 +10583,7 @@ repositoryURL = "https://github.com/DuckDuckGo/BrowserServicesKit"; requirement = { kind = exactVersion; - version = 185.1.0; + version = 185.1.1; }; }; 9F8FE9472BAE50E50071E372 /* XCRemoteSwiftPackageReference "lottie-spm" */ = { diff --git a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index f60049898d..679914258d 100644 --- a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -32,8 +32,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/DuckDuckGo/BrowserServicesKit", "state" : { - "revision" : "8b62a829899f1e635aa91deded017ed72be0d4a1", - "version" : "185.1.0" + "revision" : "c92b86502e0ea852ea3669e7c5e06e265becb4a8", + "version" : "185.1.1" } }, { diff --git a/DuckDuckGoTests/QuerySubmittedTests.swift b/DuckDuckGoTests/QuerySubmittedTests.swift new file mode 100644 index 0000000000..e46b9fe8cc --- /dev/null +++ b/DuckDuckGoTests/QuerySubmittedTests.swift @@ -0,0 +1,147 @@ +// +// QuerySubmittedTests.swift +// DuckDuckGo +// +// Copyright © 2024 DuckDuckGo. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import XCTest +import Suggestions + +@testable import DuckDuckGo + +class QuerySubmittedTests: XCTestCase { + let mock = MockOmniBarDelegate() + let sut = OmniBar.loadFromXib() + + override func setUp() { + super.setUp() + sut.omniDelegate = mock + } + + override func tearDown() { + mock.clear() + super.tearDown() + } + + func testValidAddressSubmissions() { + let validQueries = [ + ("www.test.com", "http://www.test.com"), + ("http://example.com/path?query=123", "http://example.com/path?query=123"), + (" www.test.com ", "http://www.test.com") + ] + + for (query, expected) in validQueries { + assertQuerySubmission(query: query, expected: expected) + } + } + + func testInvalidAddressSubmissions() { + let invalidQueries = [ + "16385-12228.75", + "invalid-url", + "http://[::1]:80", + "12345" + ] + + for query in invalidQueries { + assertQuerySubmission(query: query, expected: query) + } + } + + func testSuggestionSelectionCallsDelegate() { + mock.suggestion = .website(url: URL(string: "www.testing.com")!) + + sut.onQuerySubmitted() + + XCTAssertTrue(mock.wasOnOmniSuggestionSelectedCalled) + XCTAssertFalse(mock.wasOnOmniQuerySubmittedCalled) + } + + func testEmptyQueryDoesNotCallDelegate() { + sut.textField.text = "" + sut.onQuerySubmitted() + + XCTAssertFalse(mock.wasOnOmniQuerySubmittedCalled) + XCTAssertFalse(mock.wasOnOmniSuggestionSelectedCalled) + } + + func testBlankQueryDoesNotCallDelegate() { + sut.textField.text = " " + sut.onQuerySubmitted() + + XCTAssertFalse(mock.wasOnOmniQuerySubmittedCalled) + XCTAssertFalse(mock.wasOnOmniSuggestionSelectedCalled) + } + + // MARK: - Helper Methods + + private func assertQuerySubmission(query: String, expected: String) { + sut.textField.text = query + sut.onQuerySubmitted() + + XCTAssertEqual(mock.query, expected) + XCTAssertFalse(mock.wasOnOmniSuggestionSelectedCalled) + } +} + +final class MockOmniBarDelegate: OmniBarDelegate { + var query: String = "" + var suggestion: Suggestion? + var wasOnOmniQuerySubmittedCalled = false + var wasOnOmniSuggestionSelectedCalled = false + + func onOmniQuerySubmitted(_ query: String) { + wasOnOmniQuerySubmittedCalled = true + self.query = query + } + + func onOmniSuggestionSelected(_ suggestion: Suggestion) { + wasOnOmniSuggestionSelectedCalled = true + } + + func clear() { + query = "" + suggestion = nil + wasOnOmniQuerySubmittedCalled = false + wasOnOmniSuggestionSelectedCalled = false + } + + func selectedSuggestion() -> Suggestion? { + return suggestion + } + + // MARK: - Unused methods + + func onEditingEnd() -> OmniBarEditingEndResult { + return .dismissed + } + + func onClearPressed() { + } + + func onEnterPressed() { + } + + func onVoiceSearchPressed() { + } + + func onTextFieldWillBeginEditing(_ omniBar: DuckDuckGo.OmniBar, tapped: Bool) { + } + + func onTextFieldDidBeginEditing(_ omniBar: DuckDuckGo.OmniBar) -> Bool { + return false + } +} From 8b918ac7c0a9a90db88c32a05c8472eff614f8a0 Mon Sep 17 00:00:00 2001 From: Pete Smith Date: Mon, 26 Aug 2024 12:27:04 +0200 Subject: [PATCH 20/32] BSK Bump for macOS Freemium PIR RMF Attribute (No iOS Impact) (#3275) Task/Issue URL: https://app.asana.com/0/0/1208051900144618/f **Description**: Bump for macOS Freemium PIR RMF Attribute (No iOS Impact) --- DuckDuckGo.xcodeproj/project.pbxproj | 2 +- .../project.xcworkspace/xcshareddata/swiftpm/Package.resolved | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DuckDuckGo.xcodeproj/project.pbxproj b/DuckDuckGo.xcodeproj/project.pbxproj index 12339b4400..1e3b485b45 100644 --- a/DuckDuckGo.xcodeproj/project.pbxproj +++ b/DuckDuckGo.xcodeproj/project.pbxproj @@ -10583,7 +10583,7 @@ repositoryURL = "https://github.com/DuckDuckGo/BrowserServicesKit"; requirement = { kind = exactVersion; - version = 185.1.1; + version = 186.0.0; }; }; 9F8FE9472BAE50E50071E372 /* XCRemoteSwiftPackageReference "lottie-spm" */ = { diff --git a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 679914258d..70989b9021 100644 --- a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -32,8 +32,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/DuckDuckGo/BrowserServicesKit", "state" : { - "revision" : "c92b86502e0ea852ea3669e7c5e06e265becb4a8", - "version" : "185.1.1" + "revision" : "4a55217003ad7b2d44a1ac616d47596c0bda69dc", + "version" : "186.0.0" } }, { From 7d967ac01c5715afd0e2a31e75257f7e4f6879b6 Mon Sep 17 00:00:00 2001 From: bwaresiak Date: Mon, 26 Aug 2024 17:34:23 +0200 Subject: [PATCH 21/32] Release 7.135.0-0 (#3277) Please make sure all GH checks passed before merging. It can take around 20 minutes. Briefly review this PR to see if there are no issues or red flags and then merge it. --- Configuration/Version.xcconfig | 2 +- .../AppPrivacyConfigurationDataProvider.swift | 4 +- Core/AppTrackerDataSetProvider.swift | 4 +- Core/ios-config.json | 289 +- Core/trackerData.json | 22751 +++++++++++----- DuckDuckGo/Settings.bundle/Root.plist | 2 +- fastlane/metadata/default/release_notes.txt | 1 - 7 files changed, 16688 insertions(+), 6365 deletions(-) diff --git a/Configuration/Version.xcconfig b/Configuration/Version.xcconfig index 2e3c870975..c1d1d8788d 100644 --- a/Configuration/Version.xcconfig +++ b/Configuration/Version.xcconfig @@ -1 +1 @@ -MARKETING_VERSION = 7.134.0 +MARKETING_VERSION = 7.135.0 diff --git a/Core/AppPrivacyConfigurationDataProvider.swift b/Core/AppPrivacyConfigurationDataProvider.swift index 3f5ace044e..c20c2ac0a4 100644 --- a/Core/AppPrivacyConfigurationDataProvider.swift +++ b/Core/AppPrivacyConfigurationDataProvider.swift @@ -23,8 +23,8 @@ import BrowserServicesKit final public class AppPrivacyConfigurationDataProvider: EmbeddedDataProvider { public struct Constants { - public static let embeddedDataETag = "\"0b79e02accca6251aab8682915d0034b\"" - public static let embeddedDataSHA = "90d42dc85d6e415f9e5b68c663f813bbd7a34ef2d191981dd4d615f1a4d5970a" + public static let embeddedDataETag = "\"3310d00f227a02b53a16ed4af90afee5\"" + public static let embeddedDataSHA = "7371e7fd3293e42638aa3bd3905a205e70827b2fd980848af108c82cedabf8be" } public var embeddedDataEtag: String { diff --git a/Core/AppTrackerDataSetProvider.swift b/Core/AppTrackerDataSetProvider.swift index 8d8aa303ea..cc21065b0b 100644 --- a/Core/AppTrackerDataSetProvider.swift +++ b/Core/AppTrackerDataSetProvider.swift @@ -23,8 +23,8 @@ import BrowserServicesKit final public class AppTrackerDataSetProvider: EmbeddedDataProvider { public struct Constants { - public static let embeddedDataETag = "\"d46dc7b33cefa83a265b366b3a8fd912\"" - public static let embeddedDataSHA = "cacac758e3068f2c2f28124c10968445303cfbb5335c035539fa94727f49761c" + public static let embeddedDataETag = "\"4f9b48a36688eee92064578bc1aebe0a\"" + public static let embeddedDataSHA = "ee51cab5fd4b82e6751a3d94680c89d4e248e0d456650b443f115998e1d3bec3" } public var embeddedDataEtag: String { diff --git a/Core/ios-config.json b/Core/ios-config.json index 1a8b9f823a..7b80be3b74 100644 --- a/Core/ios-config.json +++ b/Core/ios-config.json @@ -1,6 +1,6 @@ { "readme": "https://github.com/duckduckgo/privacy-configuration", - "version": 1724061249960, + "version": 1724668148700, "features": { "adClickAttribution": { "readme": "https://help.duckduckgo.com/duckduckgo-help-pages/privacy/web-tracking-protections/#3rd-party-tracker-loading-protection", @@ -86,6 +86,9 @@ { "domain": "flexmls.com" }, + { + "domain": "capitalone.com" + }, { "domain": "instructure.com" } @@ -114,7 +117,7 @@ ] }, "state": "enabled", - "hash": "fa5f86bac5946c528cd6bc7449a2718a" + "hash": "f480c22abb392f288fbf2caf186ce082" }, "androidBrowserConfig": { "exceptions": [], @@ -338,6 +341,9 @@ { "domain": "newsforkids.net" }, + { + "domain": "dkb.de" + }, { "domain": "marvel.com" }, @@ -350,6 +356,9 @@ { "domain": "flexmls.com" }, + { + "domain": "capitalone.com" + }, { "domain": "instagram.com" }, @@ -385,7 +394,7 @@ } } }, - "hash": "aaae08a4ef36933884befa93d2bd9064" + "hash": "6ed8b1964ecfe94246ad3191db03b2ea" }, "autofillBreakageReporter": { "state": "enabled", @@ -453,6 +462,30 @@ }, "hash": "2408c5de35db50491d915a9c8f3c8388" }, + "breakageReporting": { + "state": "disabled", + "exceptions": [ + { + "domain": "marvel.com" + }, + { + "domain": "sundancecatalog.com" + }, + { + "domain": "noaprints.com" + }, + { + "domain": "flexmls.com" + }, + { + "domain": "capitalone.com" + }, + { + "domain": "instructure.com" + } + ], + "hash": "1cc5be3534e326e74083566308e726f4" + }, "brokenSitePrompt": { "state": "enabled", "exceptions": [], @@ -1148,6 +1181,9 @@ { "domain": "flexmls.com" }, + { + "domain": "capitalone.com" + }, { "domain": "instructure.com" } @@ -1167,7 +1203,7 @@ } }, "state": "disabled", - "hash": "cb1f114a9e0314393b2a0f789cba163f" + "hash": "7ada7fa991eb882cb8af0e25dcfad795" }, "clickToPlay": { "exceptions": [ @@ -1183,6 +1219,9 @@ { "domain": "flexmls.com" }, + { + "domain": "capitalone.com" + }, { "domain": "instructure.com" } @@ -1197,7 +1236,7 @@ } }, "state": "disabled", - "hash": "894fb86c1f058aee9db47cfcdf3637de" + "hash": "341206546d27661e0fbd9221e877c628" }, "clientBrandHint": { "exceptions": [], @@ -1240,11 +1279,14 @@ { "domain": "flexmls.com" }, + { + "domain": "capitalone.com" + }, { "domain": "instructure.com" } ], - "hash": "96b2f778bab196aa424e9c859ddea778" + "hash": "51628b06bd28538540ce9e5262e42070" }, "cookie": { "settings": { @@ -1307,12 +1349,15 @@ { "domain": "flexmls.com" }, + { + "domain": "capitalone.com" + }, { "domain": "instructure.com" } ], "state": "disabled", - "hash": "6b4d2cef180104c5c84f5687479b8492" + "hash": "518de3f4cdd6f78e664c00ea2ec349cb" }, "customUserAgent": { "settings": { @@ -1365,10 +1410,13 @@ }, "waitlistBetaActive": { "state": "disabled" + }, + "freemium": { + "state": "disabled" } }, "exceptions": [], - "hash": "ba52a36920a4a76343fc3c44d98936f9" + "hash": "113933668f41d71c56316e5debf1fb5b" }, "duckPlayer": { "exceptions": [], @@ -1385,6 +1433,17 @@ }, "settings": { "tryDuckPlayerLink": "https://www.youtube.com/watch?v=yKWIA-Pys4c", + "duckPlayerDisabledHelpPageLink": null, + "youtubePath": "watch", + "youtubeEmbedUrl": "youtube-nocookie.com", + "youTubeUrl": "youtube.com", + "youTubeReferrerHeaders": [ + "Referer" + ], + "youTubeReferrerQueryParams": [ + "embeds_referring_euri" + ], + "youTubeVideoIDQueryParam": "v", "overlays": { "youtube": { "state": "disabled", @@ -1447,7 +1506,7 @@ ] }, "state": "disabled", - "hash": "454c014ddd259aaae2b8c30e51ddfbbc" + "hash": "9ae5b4d92ce6ba8a8c233a5c9aab93a6" }, "elementHiding": { "exceptions": [ @@ -1466,6 +1525,9 @@ { "domain": "flexmls.com" }, + { + "domain": "capitalone.com" + }, { "domain": "instructure.com" } @@ -3033,6 +3095,22 @@ { "selector": "div:has(> iframe[src*='prid=19031496'])", "type": "hide" + }, + { + "selector": "div:has(> iframe[src*='prid=19043282'])", + "type": "hide" + }, + { + "selector": "div:has(> iframe[src*='prid=19043280'])", + "type": "hide" + }, + { + "selector": "div:has(> iframe[src*='prid=19031780'])", + "type": "hide" + }, + { + "selector": "[aria-labelledby='promo-header']", + "type": "hide" } ] }, @@ -4719,7 +4797,7 @@ ] }, "state": "enabled", - "hash": "3a39d1085a9459794e847c8cfd4052b5" + "hash": "0113a5d0bef9f1c96fa55eeb45a74521" }, "exceptionHandler": { "exceptions": [ @@ -4735,12 +4813,15 @@ { "domain": "flexmls.com" }, + { + "domain": "capitalone.com" + }, { "domain": "instructure.com" } ], "state": "disabled", - "hash": "be6751fe0307a7e1b9476f4d8b8d0aaf" + "hash": "4818e6983b16ddfdd078a2565bc69859" }, "extendedOnboarding": { "exceptions": [], @@ -4765,11 +4846,14 @@ { "domain": "flexmls.com" }, + { + "domain": "capitalone.com" + }, { "domain": "instructure.com" } ], - "hash": "7f042650922da2636492e77ed1101bce" + "hash": "429a0ad38c859268f48d96c4c46864c6" }, "fingerprintingBattery": { "exceptions": [ @@ -4788,12 +4872,15 @@ { "domain": "flexmls.com" }, + { + "domain": "capitalone.com" + }, { "domain": "instructure.com" } ], "state": "enabled", - "hash": "fcc2138fa97c35ded544b39708fda919" + "hash": "90b6dc456856fdf817cb7432955cd5c6" }, "fingerprintingCanvas": { "settings": { @@ -4896,12 +4983,15 @@ { "domain": "flexmls.com" }, + { + "domain": "capitalone.com" + }, { "domain": "instructure.com" } ], "state": "disabled", - "hash": "49a3d497835bf5715aaaa73f87dd974f" + "hash": "69e97b215250895325a279ae6203e6fe" }, "fingerprintingHardware": { "settings": { @@ -4962,6 +5052,9 @@ { "domain": "flexmls.com" }, + { + "domain": "capitalone.com" + }, { "domain": "target.com" }, @@ -4970,7 +5063,7 @@ } ], "state": "enabled", - "hash": "cd4a8461973d1c1648dd20e6d1f532a7" + "hash": "cf1530a8c5c582d22af16b84bc7f7ced" }, "fingerprintingScreenSize": { "settings": { @@ -5022,12 +5115,15 @@ { "domain": "flexmls.com" }, + { + "domain": "capitalone.com" + }, { "domain": "instructure.com" } ], "state": "enabled", - "hash": "046340bb9287a20efed6189525ec5fed" + "hash": "5c2980807a1f9023ce99182ed38b0642" }, "fingerprintingTemporaryStorage": { "exceptions": [ @@ -5052,12 +5148,15 @@ { "domain": "flexmls.com" }, + { + "domain": "capitalone.com" + }, { "domain": "instructure.com" } ], "state": "enabled", - "hash": "14b7fe3d276b52109c59f0c71aee4f71" + "hash": "8630cb28f77d9598f61a908c5aa3f1ed" }, "googleRejected": { "exceptions": [ @@ -5073,12 +5172,15 @@ { "domain": "flexmls.com" }, + { + "domain": "capitalone.com" + }, { "domain": "instructure.com" } ], "state": "disabled", - "hash": "be6751fe0307a7e1b9476f4d8b8d0aaf" + "hash": "4818e6983b16ddfdd078a2565bc69859" }, "gpc": { "state": "enabled", @@ -5128,6 +5230,9 @@ { "domain": "npr.org" }, + { + "domain": "norton.com" + }, { "domain": "marvel.com" }, @@ -5140,6 +5245,9 @@ { "domain": "flexmls.com" }, + { + "domain": "capitalone.com" + }, { "domain": "oreillyauto.com" }, @@ -5156,7 +5264,7 @@ "privacy-test-pages.site" ] }, - "hash": "beb830fd1df711955856a894b50d0594" + "hash": "9a262bdeaa03e8f693963d73d1b4028b" }, "harmfulApis": { "settings": { @@ -5270,12 +5378,15 @@ { "domain": "flexmls.com" }, + { + "domain": "capitalone.com" + }, { "domain": "instructure.com" } ], "state": "disabled", - "hash": "fb598c4167ff166d85dd49c701cc5579" + "hash": "8cb27af67989404f1651e164f90b7940" }, "history": { "state": "enabled", @@ -5324,11 +5435,14 @@ { "domain": "flexmls.com" }, + { + "domain": "capitalone.com" + }, { "domain": "instructure.com" } ], - "hash": "b47d255c6f836ecb7ae0b3e61cc2c025" + "hash": "8e60b4c39599560b0bea1030299fb3a7" }, "incontextSignup": { "exceptions": [], @@ -5375,6 +5489,9 @@ { "domain": "flexmls.com" }, + { + "domain": "capitalone.com" + }, { "domain": "instructure.com" } @@ -5387,7 +5504,7 @@ ] }, "state": "enabled", - "hash": "d14f6e3a9aa4139ee1d517016b59691e" + "hash": "4877b3fce635ba78a673e87943f53091" }, "networkProtection": { "state": "enabled", @@ -5424,12 +5541,15 @@ { "domain": "flexmls.com" }, + { + "domain": "capitalone.com" + }, { "domain": "instructure.com" } ], "state": "disabled", - "hash": "82088db85ca7f64418fbfd57db25ade1" + "hash": "596714c5b23bcdd1e0181ca2af22001d" }, "performanceMetrics": { "state": "enabled", @@ -5446,11 +5566,14 @@ { "domain": "flexmls.com" }, + { + "domain": "capitalone.com" + }, { "domain": "instructure.com" } ], - "hash": "6792064606a5a72c5cd44addb4d40bda" + "hash": "a81619b928b99f1d21c9d513faf69b30" }, "phishingDetection": { "state": "disabled", @@ -5467,11 +5590,14 @@ { "domain": "flexmls.com" }, + { + "domain": "capitalone.com" + }, { "domain": "instructure.com" } ], - "hash": "37e0cf88badfc8b01b6394f0884502f6" + "hash": "1cc5be3534e326e74083566308e726f4" }, "pluginPointFocusedViewPlugin": { "state": "disabled", @@ -5582,12 +5708,15 @@ { "domain": "flexmls.com" }, + { + "domain": "capitalone.com" + }, { "domain": "instructure.com" } ], "state": "disabled", - "hash": "138c3b2409f6b3bf967b804ab9bf2ce2" + "hash": "9e37b1b1111a12703ba85b825a5ee6cf" }, "remoteMessaging": { "state": "enabled", @@ -5609,6 +5738,9 @@ { "domain": "flexmls.com" }, + { + "domain": "capitalone.com" + }, { "domain": "instructure.com" } @@ -5616,7 +5748,7 @@ "settings": { "windowInMs": 0 }, - "hash": "baf19d9e0f506ed09f46c95b1849adee" + "hash": "f37136d479956daf56bcd58e02eee96a" }, "runtimeChecks": { "state": "disabled", @@ -5633,12 +5765,15 @@ { "domain": "flexmls.com" }, + { + "domain": "capitalone.com" + }, { "domain": "instructure.com" } ], "settings": {}, - "hash": "dfede9f06b9e322e198736703d013d15" + "hash": "8b903028eea1ff475f6a25035e428558" }, "serviceworkerInitiatedRequests": { "exceptions": [ @@ -5654,12 +5789,15 @@ { "domain": "flexmls.com" }, + { + "domain": "capitalone.com" + }, { "domain": "instructure.com" } ], "state": "disabled", - "hash": "be6751fe0307a7e1b9476f4d8b8d0aaf" + "hash": "4818e6983b16ddfdd078a2565bc69859" }, "sslCertificates": { "state": "disabled", @@ -5900,8 +6038,7 @@ { "rule": "adserver.adtech.advertising.com/pubapi/3.0/1/", "domains": [ - "collider.com", - "si.com" + "" ] } ] @@ -5978,16 +6115,6 @@ } ] }, - "amazon.dev": { - "rules": [ - { - "rule": "prime.amazon.dev", - "domains": [ - "" - ] - } - ] - }, "amazonaws.com": { "rules": [ { @@ -7913,6 +8040,16 @@ } ] }, + "opecloud.com": { + "rules": [ + { + "rule": "opecloud.com/ope-asmi.js", + "domains": [ + "bild.de" + ] + } + ] + }, "openx.net": { "rules": [ { @@ -8199,6 +8336,12 @@ "signupgenius.com", "titantv.com" ] + }, + { + "rule": "a.pub.network/virtualpiano-net/pubfig.min.js", + "domains": [ + "virtualpiano.net" + ] } ] }, @@ -8690,6 +8833,16 @@ } ] }, + "tsyndicate.com": { + "rules": [ + { + "rule": "vacdn.tsyndicate.com", + "domains": [ + "pornhub.com" + ] + } + ] + }, "twitter.com": { "rules": [ { @@ -8952,6 +9105,22 @@ } ] }, + "scmp.com": { + "rules": [ + { + "rule": "profiles.ope.scmp.com/ope-asmi.js", + "domains": [ + "bild.de" + ] + }, + { + "rule": "tagger.ope.scmp.com/ope-asmi.js", + "domains": [ + "bild.de" + ] + } + ] + }, "canadapost-postescanada.ca": { "rules": [ { @@ -8997,11 +9166,14 @@ { "domain": "flexmls.com" }, + { + "domain": "capitalone.com" + }, { "domain": "instructure.com" } ], - "hash": "14ace973a831f9a917b7cf69bdb918cb" + "hash": "f406d2cabddadaa502127f5f8a171370" }, "trackingCookies1p": { "settings": { @@ -9023,12 +9195,15 @@ { "domain": "flexmls.com" }, + { + "domain": "capitalone.com" + }, { "domain": "instructure.com" } ], "state": "disabled", - "hash": "763f56424b0827b5731927a043219912" + "hash": "af648fa280cea7a9d0d10c90cd704b60" }, "trackingCookies3p": { "settings": { @@ -9047,12 +9222,15 @@ { "domain": "flexmls.com" }, + { + "domain": "capitalone.com" + }, { "domain": "instructure.com" } ], "state": "disabled", - "hash": "82088db85ca7f64418fbfd57db25ade1" + "hash": "596714c5b23bcdd1e0181ca2af22001d" }, "trackingParameters": { "exceptions": [ @@ -9071,6 +9249,9 @@ { "domain": "flexmls.com" }, + { + "domain": "capitalone.com" + }, { "domain": "theverge.com" }, @@ -9108,7 +9289,7 @@ ] }, "state": "enabled", - "hash": "3805ecfb8a129f70a99e73a364b38f38" + "hash": "65b2886bc6717924eb0d272ab01d7e52" }, "userAgentRotation": { "settings": { @@ -9127,23 +9308,28 @@ { "domain": "flexmls.com" }, + { + "domain": "capitalone.com" + }, { "domain": "instructure.com" } ], "state": "disabled", - "hash": "9225b8785d6973db37abde99d81d219c" + "hash": "66f96a6be1339c70b110cef3abd09a98" }, "voiceSearch": { "exceptions": [], "state": "disabled", "hash": "728493ef7a1488e4781656d3f9db84aa" }, + "webBrokenSiteForm": { + "state": "disabled", + "exceptions": [], + "hash": "c292bb627849854515cebbded288ef5a" + }, "webCompat": { "exceptions": [ - { - "domain": "crocs.com" - }, { "domain": "marvel.com" }, @@ -9156,6 +9342,9 @@ { "domain": "flexmls.com" }, + { + "domain": "capitalone.com" + }, { "domain": "wsj.com" }, @@ -9203,7 +9392,7 @@ } ] }, - "hash": "ae25aefc757d01f70488b13ea4539ccd" + "hash": "b6c4ad9d1a4cfd2314aac44bc37a43b8" }, "webViewBlobDownload": { "exceptions": [], diff --git a/Core/trackerData.json b/Core/trackerData.json index 701489bcd5..aaa9d28111 100644 --- a/Core/trackerData.json +++ b/Core/trackerData.json @@ -1,6 +1,6 @@ { "_builtWith": { - "tracker-radar": "5b9d0a335006522a3d2dc589e5d2044b52b14dbd60db711dacf3a83520e40707-4013b4e91930c643394cb31c6c745356f133b04f", + "tracker-radar": "796a979fe89662994ef7577f805e6b92f87b483149091a0f09abc9789936c0ee-4013b4e91930c643394cb31c6c745356f133b04f", "tracker-surrogates": "0528e3226df15b1a3e319ad68ef76612a8f26623" }, "readme": "https://github.com/duckduckgo/tracker-blocklists", @@ -461,10 +461,10 @@ "absorbingband.com": { "domain": "absorbingband.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (absorbingband.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -472,10 +472,10 @@ "abstractedauthority.com": { "domain": "abstractedauthority.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (abstractedauthority.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -518,10 +518,10 @@ "acidpigs.com": { "domain": "acidpigs.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (acidpigs.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -2406,10 +2406,10 @@ "alikeaddition.com": { "domain": "alikeaddition.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (alikeaddition.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -2417,10 +2417,10 @@ "aliveachiever.com": { "domain": "aliveachiever.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (aliveachiever.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -2461,10 +2461,10 @@ "alluringbucket.com": { "domain": "alluringbucket.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (alluringbucket.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -2472,10 +2472,10 @@ "aloofvest.com": { "domain": "aloofvest.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (aloofvest.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -2587,10 +2587,10 @@ "ambiguousafternoon.com": { "domain": "ambiguousafternoon.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (ambiguousafternoon.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -2721,10 +2721,10 @@ "annoyedairport.com": { "domain": "annoyedairport.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (annoyedairport.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -2732,10 +2732,10 @@ "annoyingclover.com": { "domain": "annoyingclover.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (annoyingclover.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -3051,10 +3051,10 @@ "aspiringattempt.com": { "domain": "aspiringattempt.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (aspiringattempt.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -3178,10 +3178,10 @@ "attractionbanana.com": { "domain": "attractionbanana.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (attractionbanana.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -3302,10 +3302,10 @@ "automaticside.com": { "domain": "automaticside.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (automaticside.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -3686,10 +3686,10 @@ "badgevolcano.com": { "domain": "badgevolcano.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (badgevolcano.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -3697,10 +3697,10 @@ "bagbeam.com": { "domain": "bagbeam.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (bagbeam.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -3708,10 +3708,10 @@ "ballsbanana.com": { "domain": "ballsbanana.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (ballsbanana.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -3719,10 +3719,10 @@ "bandborder.com": { "domain": "bandborder.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (bandborder.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -3785,10 +3785,10 @@ "bawdybalance.com": { "domain": "bawdybalance.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (bawdybalance.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -3837,10 +3837,10 @@ "bedsberry.com": { "domain": "bedsberry.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (bedsberry.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -3848,10 +3848,10 @@ "beginnerpancake.com": { "domain": "beginnerpancake.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (beginnerpancake.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -3985,10 +3985,10 @@ "billowybelief.com": { "domain": "billowybelief.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (billowybelief.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -4336,10 +4336,10 @@ "blushingbread.com": { "domain": "blushingbread.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (blushingbread.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -4371,10 +4371,10 @@ "boilingcredit.com": { "domain": "boilingcredit.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (boilingcredit.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -4817,10 +4817,10 @@ "butterbulb.com": { "domain": "butterbulb.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (butterbulb.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -4828,10 +4828,10 @@ "buttonladybug.com": { "domain": "buttonladybug.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (buttonladybug.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -5030,10 +5030,10 @@ "calculatorstatement.com": { "domain": "calculatorstatement.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (calculatorstatement.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -5072,10 +5072,10 @@ "capablecup.com": { "domain": "capablecup.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (capablecup.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -5095,10 +5095,10 @@ "carpentercomparison.com": { "domain": "carpentercomparison.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (carpentercomparison.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -5130,10 +5130,10 @@ "carvecakes.com": { "domain": "carvecakes.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (carvecakes.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -5159,10 +5159,10 @@ "cattlecommittee.com": { "domain": "cattlecommittee.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cattlecommittee.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -5447,10 +5447,10 @@ "chargecracker.com": { "domain": "chargecracker.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (chargecracker.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -5564,10 +5564,10 @@ "cherriescare.com": { "domain": "cherriescare.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cherriescare.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -5575,10 +5575,10 @@ "chickensstation.com": { "domain": "chickensstation.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (chickensstation.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -5586,10 +5586,10 @@ "childlikecrowd.com": { "domain": "childlikecrowd.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (childlikecrowd.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -5597,10 +5597,10 @@ "childlikeform.com": { "domain": "childlikeform.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (childlikeform.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -5634,10 +5634,10 @@ "circlelevel.com": { "domain": "circlelevel.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (circlelevel.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -5689,10 +5689,10 @@ "cleanhaircut.com": { "domain": "cleanhaircut.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cleanhaircut.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -6225,10 +6225,10 @@ "combativecar.com": { "domain": "combativecar.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (combativecar.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -6379,10 +6379,10 @@ "confusedcart.com": { "domain": "confusedcart.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (confusedcart.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -6695,10 +6695,10 @@ "crabbychin.com": { "domain": "crabbychin.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (crabbychin.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -6706,10 +6706,10 @@ "cratecamera.com": { "domain": "cratecamera.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cratecamera.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -6826,10 +6826,10 @@ "crowdedmass.com": { "domain": "crowdedmass.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (crowdedmass.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -7022,10 +7022,10 @@ "cumbersomecarpenter.com": { "domain": "cumbersomecarpenter.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cumbersomecarpenter.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -7058,10 +7058,10 @@ "curvedhoney.com": { "domain": "curvedhoney.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (curvedhoney.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -7069,10 +7069,10 @@ "cushiondrum.com": { "domain": "cushiondrum.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cushiondrum.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -7080,10 +7080,10 @@ "cutechin.com": { "domain": "cutechin.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cutechin.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -7663,10 +7663,10 @@ "damdoor.com": { "domain": "damdoor.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (damdoor.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -7674,10 +7674,10 @@ "dampdock.com": { "domain": "dampdock.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (dampdock.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -7685,10 +7685,10 @@ "dapperfloor.com": { "domain": "dapperfloor.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (dapperfloor.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -7766,10 +7766,10 @@ "decisivebase.com": { "domain": "decisivebase.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (decisivebase.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -7889,10 +7889,10 @@ "detectdiscovery.com": { "domain": "detectdiscovery.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (detectdiscovery.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -7900,10 +7900,10 @@ "devilishdinner.com": { "domain": "devilishdinner.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (devilishdinner.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -7978,10 +7978,10 @@ "disagreeabledrop.com": { "domain": "disagreeabledrop.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (disagreeabledrop.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -7989,10 +7989,10 @@ "discreetfield.com": { "domain": "discreetfield.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (discreetfield.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -8104,10 +8104,10 @@ "dockdigestion.com": { "domain": "dockdigestion.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (dockdigestion.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -8255,10 +8255,10 @@ "drainpaste.com": { "domain": "drainpaste.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (drainpaste.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -8266,10 +8266,10 @@ "dramaticdirection.com": { "domain": "dramaticdirection.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (dramaticdirection.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -8757,10 +8757,10 @@ "encouragingthread.com": { "domain": "encouragingthread.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (encouragingthread.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -8768,10 +8768,10 @@ "enormousearth.com": { "domain": "enormousearth.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (enormousearth.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -8809,10 +8809,10 @@ "enviousshape.com": { "domain": "enviousshape.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (enviousshape.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -9225,10 +9225,10 @@ "expansioneggnog.com": { "domain": "expansioneggnog.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (expansioneggnog.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -9830,10 +9830,10 @@ "fadewaves.com": { "domain": "fadewaves.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (fadewaves.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -9841,10 +9841,10 @@ "fallaciousfifth.com": { "domain": "fallaciousfifth.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (fallaciousfifth.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -9852,10 +9852,10 @@ "farmergoldfish.com": { "domain": "farmergoldfish.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (farmergoldfish.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -9892,10 +9892,10 @@ "fearlessfaucet.com": { "domain": "fearlessfaucet.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (fearlessfaucet.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -9934,10 +9934,10 @@ "financefear.com": { "domain": "financefear.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (financefear.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -9988,10 +9988,10 @@ "fixedfold.com": { "domain": "fixedfold.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (fixedfold.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10056,10 +10056,10 @@ "flowerstreatment.com": { "domain": "flowerstreatment.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (flowerstreatment.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10067,10 +10067,10 @@ "floweryflavor.com": { "domain": "floweryflavor.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (floweryflavor.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10115,10 +10115,10 @@ "flutteringfireman.com": { "domain": "flutteringfireman.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (flutteringfireman.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10241,10 +10241,10 @@ "fortunatemark.com": { "domain": "fortunatemark.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (fortunatemark.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10401,10 +10401,10 @@ "frailfruit.com": { "domain": "frailfruit.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (frailfruit.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10412,10 +10412,10 @@ "freezingbuilding.com": { "domain": "freezingbuilding.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (freezingbuilding.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10423,10 +10423,10 @@ "fronttoad.com": { "domain": "fronttoad.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (fronttoad.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10450,10 +10450,10 @@ "functionalfeather.com": { "domain": "functionalfeather.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (functionalfeather.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10500,10 +10500,10 @@ "fuzzybasketball.com": { "domain": "fuzzybasketball.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (fuzzybasketball.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10547,10 +10547,10 @@ "gammamaximum.com": { "domain": "gammamaximum.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (gammamaximum.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -11025,10 +11025,10 @@ "giraffepiano.com": { "domain": "giraffepiano.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (giraffepiano.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -11065,10 +11065,10 @@ "gloriousbeef.com": { "domain": "gloriousbeef.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (gloriousbeef.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -11801,10 +11801,10 @@ "gorgeousedge.com": { "domain": "gorgeousedge.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (gorgeousedge.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -11890,10 +11890,10 @@ "grainmass.com": { "domain": "grainmass.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (grainmass.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -11901,10 +11901,10 @@ "greasysquare.com": { "domain": "greasysquare.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (greasysquare.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -12123,10 +12123,10 @@ "guiltlessbasketball.com": { "domain": "guiltlessbasketball.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (guiltlessbasketball.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -12163,10 +12163,10 @@ "haltingbadge.com": { "domain": "haltingbadge.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (haltingbadge.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -12174,10 +12174,10 @@ "hammerhearing.com": { "domain": "hammerhearing.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (hammerhearing.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -12185,10 +12185,10 @@ "handsomelyhealth.com": { "domain": "handsomelyhealth.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (handsomelyhealth.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -12196,10 +12196,10 @@ "harborcaption.com": { "domain": "harborcaption.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (harborcaption.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -12522,10 +12522,10 @@ "hocgeese.com": { "domain": "hocgeese.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (hocgeese.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -12533,10 +12533,10 @@ "hollowafterthought.com": { "domain": "hollowafterthought.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (hollowafterthought.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -12544,10 +12544,10 @@ "honorableland.com": { "domain": "honorableland.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (honorableland.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -14452,10 +14452,10 @@ "j93557g.com": { "domain": "j93557g.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (j93557g.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -15137,10 +15137,10 @@ "knottyswing.com": { "domain": "knottyswing.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (knottyswing.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -15212,10 +15212,10 @@ "laboredlocket.com": { "domain": "laboredlocket.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (laboredlocket.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -15263,10 +15263,10 @@ "laughablelizards.com": { "domain": "laughablelizards.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (laughablelizards.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -16122,10 +16122,10 @@ "looseloaf.com": { "domain": "looseloaf.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (looseloaf.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -16133,10 +16133,10 @@ "lovelydrum.com": { "domain": "lovelydrum.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (lovelydrum.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -16162,10 +16162,10 @@ "lunchroomlock.com": { "domain": "lunchroomlock.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (lunchroomlock.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -16381,10 +16381,10 @@ "maddeningpowder.com": { "domain": "maddeningpowder.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (maddeningpowder.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -16690,10 +16690,10 @@ "marriedbelief.com": { "domain": "marriedbelief.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (marriedbelief.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -16701,10 +16701,10 @@ "materialparcel.com": { "domain": "materialparcel.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (materialparcel.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -16886,10 +16886,10 @@ "measlymiddle.com": { "domain": "measlymiddle.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (measlymiddle.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -16935,10 +16935,10 @@ "meddleplant.com": { "domain": "meddleplant.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (meddleplant.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -17209,10 +17209,10 @@ "memorizematch.com": { "domain": "memorizematch.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (memorizematch.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -17220,10 +17220,10 @@ "mentorsticks.com": { "domain": "mentorsticks.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (mentorsticks.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -17783,10 +17783,10 @@ "motionflowers.com": { "domain": "motionflowers.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (motionflowers.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -18131,10 +18131,10 @@ "nappyattack.com": { "domain": "nappyattack.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (nappyattack.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -18270,10 +18270,10 @@ "nervoussummer.com": { "domain": "nervoussummer.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (nervoussummer.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -18629,10 +18629,10 @@ "nondescriptnote.com": { "domain": "nondescriptnote.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (nondescriptnote.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -18840,10 +18840,10 @@ "nutritiousbean.com": { "domain": "nutritiousbean.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (nutritiousbean.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -20017,10 +20017,10 @@ "overconfidentfood.com": { "domain": "overconfidentfood.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (overconfidentfood.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -20238,10 +20238,10 @@ "pailpatch.com": { "domain": "pailpatch.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (pailpatch.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -20249,10 +20249,10 @@ "panickypancake.com": { "domain": "panickypancake.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (panickypancake.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -20260,10 +20260,10 @@ "panoramicplane.com": { "domain": "panoramicplane.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (panoramicplane.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -20400,10 +20400,10 @@ "partplanes.com": { "domain": "partplanes.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (partplanes.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -20887,10 +20887,10 @@ "placidperson.com": { "domain": "placidperson.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (placidperson.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -20916,10 +20916,10 @@ "pleasantpump.com": { "domain": "pleasantpump.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (pleasantpump.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -20927,10 +20927,10 @@ "plotrabbit.com": { "domain": "plotrabbit.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (plotrabbit.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -20938,10 +20938,10 @@ "pluckypocket.com": { "domain": "pluckypocket.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (pluckypocket.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21002,10 +21002,10 @@ "pocketfaucet.com": { "domain": "pocketfaucet.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (pocketfaucet.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21082,10 +21082,10 @@ "possibleboats.com": { "domain": "possibleboats.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (possibleboats.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21130,10 +21130,10 @@ "potatoinvention.com": { "domain": "potatoinvention.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (potatoinvention.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21141,10 +21141,10 @@ "powerfulcopper.com": { "domain": "powerfulcopper.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (powerfulcopper.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21181,10 +21181,10 @@ "predictplate.com": { "domain": "predictplate.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (predictplate.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21192,10 +21192,10 @@ "prepareplanes.com": { "domain": "prepareplanes.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (prepareplanes.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21227,10 +21227,10 @@ "priceypies.com": { "domain": "priceypies.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (priceypies.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21238,10 +21238,10 @@ "pricklydebt.com": { "domain": "pricklydebt.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (pricklydebt.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21371,10 +21371,10 @@ "profusesupport.com": { "domain": "profusesupport.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (profusesupport.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21455,10 +21455,10 @@ "psychedelicarithmetic.com": { "domain": "psychedelicarithmetic.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (psychedelicarithmetic.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21926,10 +21926,10 @@ "quietknowledge.com": { "domain": "quietknowledge.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (quietknowledge.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21937,10 +21937,10 @@ "quizzicalpartner.com": { "domain": "quizzicalpartner.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (quizzicalpartner.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21948,10 +21948,10 @@ "quizzicalzephyr.com": { "domain": "quizzicalzephyr.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (quizzicalzephyr.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22018,10 +22018,10 @@ "radiateprose.com": { "domain": "radiateprose.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (radiateprose.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22029,10 +22029,10 @@ "railwayreason.com": { "domain": "railwayreason.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (railwayreason.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22182,10 +22182,10 @@ "rambunctiousflock.com": { "domain": "rambunctiousflock.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (rambunctiousflock.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22193,10 +22193,10 @@ "rangeplayground.com": { "domain": "rangeplayground.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (rangeplayground.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22235,10 +22235,10 @@ "rebelswing.com": { "domain": "rebelswing.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (rebelswing.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22246,10 +22246,10 @@ "reconditerake.com": { "domain": "reconditerake.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (reconditerake.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22257,10 +22257,10 @@ "reconditerespect.com": { "domain": "reconditerespect.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (reconditerespect.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22527,10 +22527,10 @@ "rehabilitatereason.com": { "domain": "rehabilitatereason.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (rehabilitatereason.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22538,10 +22538,10 @@ "repeatsweater.com": { "domain": "repeatsweater.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (repeatsweater.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22599,10 +22599,10 @@ "resonantrock.com": { "domain": "resonantrock.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (resonantrock.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22657,10 +22657,10 @@ "restrainstorm.com": { "domain": "restrainstorm.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (restrainstorm.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22668,10 +22668,10 @@ "restructureinvention.com": { "domain": "restructureinvention.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (restructureinvention.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22768,10 +22768,10 @@ "rhetoricalloss.com": { "domain": "rhetoricalloss.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (rhetoricalloss.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22791,10 +22791,10 @@ "righteouscrayon.com": { "domain": "righteouscrayon.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (righteouscrayon.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22802,10 +22802,10 @@ "rightfulfall.com": { "domain": "rightfulfall.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (rightfulfall.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -23159,10 +23159,10 @@ "ruralrobin.com": { "domain": "ruralrobin.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (ruralrobin.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -23263,10 +23263,10 @@ "sablesong.com": { "domain": "sablesong.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sablesong.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -23399,10 +23399,10 @@ "samestretch.com": { "domain": "samestretch.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (samestretch.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -23474,10 +23474,10 @@ "satisfycork.com": { "domain": "satisfycork.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (satisfycork.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -23485,10 +23485,10 @@ "savoryorange.com": { "domain": "savoryorange.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (savoryorange.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -23529,10 +23529,10 @@ "scaredsnakes.com": { "domain": "scaredsnakes.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (scaredsnakes.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -23540,10 +23540,10 @@ "scaredsong.com": { "domain": "scaredsong.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (scaredsong.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -23551,10 +23551,10 @@ "scaredstomach.com": { "domain": "scaredstomach.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (scaredstomach.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -23562,10 +23562,10 @@ "scarfsmash.com": { "domain": "scarfsmash.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (scarfsmash.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -23642,10 +23642,10 @@ "scintillatingsilver.com": { "domain": "scintillatingsilver.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (scintillatingsilver.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -23675,10 +23675,10 @@ "screechingstove.com": { "domain": "screechingstove.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (screechingstove.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -23726,10 +23726,10 @@ "scribblestring.com": { "domain": "scribblestring.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (scribblestring.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -23862,10 +23862,10 @@ "seatsmoke.com": { "domain": "seatsmoke.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (seatsmoke.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -23991,10 +23991,10 @@ "selectivesummer.com": { "domain": "selectivesummer.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (selectivesummer.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24002,10 +24002,10 @@ "selfishsnake.com": { "domain": "selfishsnake.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (selfishsnake.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24249,10 +24249,10 @@ "shakegoldfish.com": { "domain": "shakegoldfish.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (shakegoldfish.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24260,10 +24260,10 @@ "shamerain.com": { "domain": "shamerain.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (shamerain.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24271,10 +24271,10 @@ "shapecomb.com": { "domain": "shapecomb.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (shapecomb.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24552,10 +24552,10 @@ "shrillspoon.com": { "domain": "shrillspoon.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (shrillspoon.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24587,10 +24587,10 @@ "sicksmash.com": { "domain": "sicksmash.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sicksmash.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24628,10 +24628,10 @@ "singroot.com": { "domain": "singroot.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (singroot.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24744,10 +24744,10 @@ "sixauthority.com": { "domain": "sixauthority.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sixauthority.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24755,10 +24755,10 @@ "skillfuldrop.com": { "domain": "skillfuldrop.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (skillfuldrop.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24784,10 +24784,10 @@ "skisofa.com": { "domain": "skisofa.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (skisofa.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24880,10 +24880,10 @@ "slopesoap.com": { "domain": "slopesoap.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (slopesoap.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24937,10 +24937,10 @@ "smashquartz.com": { "domain": "smashquartz.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (smashquartz.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24948,10 +24948,10 @@ "smashsurprise.com": { "domain": "smashsurprise.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (smashsurprise.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25069,10 +25069,10 @@ "smoggysnakes.com": { "domain": "smoggysnakes.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (smoggysnakes.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25226,10 +25226,10 @@ "songsterritory.com": { "domain": "songsterritory.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (songsterritory.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25252,10 +25252,10 @@ "soundstocking.com": { "domain": "soundstocking.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (soundstocking.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25263,10 +25263,10 @@ "spectacularstamp.com": { "domain": "spectacularstamp.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (spectacularstamp.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25326,10 +25326,10 @@ "spookyexchange.com": { "domain": "spookyexchange.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (spookyexchange.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25337,10 +25337,10 @@ "spookyskate.com": { "domain": "spookyskate.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (spookyskate.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25348,10 +25348,10 @@ "spookysleet.com": { "domain": "spookysleet.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (spookysleet.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25579,10 +25579,10 @@ "stakingsmile.com": { "domain": "stakingsmile.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (stakingsmile.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25606,10 +25606,10 @@ "steadfastseat.com": { "domain": "steadfastseat.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (steadfastseat.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25617,10 +25617,10 @@ "steadfastsound.com": { "domain": "steadfastsound.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (steadfastsound.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25628,10 +25628,10 @@ "steadfastsystem.com": { "domain": "steadfastsystem.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (steadfastsystem.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25658,10 +25658,10 @@ "steepsquirrel.com": { "domain": "steepsquirrel.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (steepsquirrel.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25669,10 +25669,10 @@ "stereotypedsugar.com": { "domain": "stereotypedsugar.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (stereotypedsugar.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25697,10 +25697,10 @@ "stiffgame.com": { "domain": "stiffgame.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (stiffgame.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25708,10 +25708,10 @@ "stingycrush.com": { "domain": "stingycrush.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (stingycrush.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25781,10 +25781,10 @@ "straightnest.com": { "domain": "straightnest.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (straightnest.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25829,10 +25829,10 @@ "strivesquirrel.com": { "domain": "strivesquirrel.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (strivesquirrel.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25840,10 +25840,10 @@ "strokesystem.com": { "domain": "strokesystem.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (strokesystem.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25851,10 +25851,10 @@ "stupendoussleet.com": { "domain": "stupendoussleet.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (stupendoussleet.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25862,10 +25862,10 @@ "stupendoussnow.com": { "domain": "stupendoussnow.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (stupendoussnow.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25873,10 +25873,10 @@ "stupidscene.com": { "domain": "stupidscene.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (stupidscene.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25884,10 +25884,10 @@ "sulkycook.com": { "domain": "sulkycook.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sulkycook.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25956,10 +25956,10 @@ "superficialeyes.com": { "domain": "superficialeyes.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (superficialeyes.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25967,10 +25967,10 @@ "superficialsquare.com": { "domain": "superficialsquare.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (superficialsquare.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26021,10 +26021,10 @@ "swankysquare.com": { "domain": "swankysquare.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (swankysquare.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26223,10 +26223,10 @@ "tangycover.com": { "domain": "tangycover.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tangycover.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26531,10 +26531,10 @@ "tediousticket.com": { "domain": "tediousticket.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tediousticket.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26542,10 +26542,10 @@ "teenytinyshirt.com": { "domain": "teenytinyshirt.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (teenytinyshirt.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26553,10 +26553,10 @@ "tendertest.com": { "domain": "tendertest.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tendertest.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26804,10 +26804,10 @@ "thinkitten.com": { "domain": "thinkitten.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (thinkitten.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26815,10 +26815,10 @@ "threetruck.com": { "domain": "threetruck.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (threetruck.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -27233,10 +27233,10 @@ "tiresomethunder.com": { "domain": "tiresomethunder.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tiresomethunder.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -28090,10 +28090,10 @@ "typicalteeth.com": { "domain": "typicalteeth.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (typicalteeth.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -28220,10 +28220,10 @@ "ultraoranges.com": { "domain": "ultraoranges.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (ultraoranges.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -28231,10 +28231,10 @@ "unbecominglamp.com": { "domain": "unbecominglamp.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (unbecominglamp.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -28364,10 +28364,10 @@ "uninterestedquarter.com": { "domain": "uninterestedquarter.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (uninterestedquarter.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -28447,10 +28447,10 @@ "unwieldyhealth.com": { "domain": "unwieldyhealth.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (unwieldyhealth.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -28458,10 +28458,10 @@ "unwieldyplastic.com": { "domain": "unwieldyplastic.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (unwieldyplastic.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -28819,10 +28819,10 @@ "vengefulgrass.com": { "domain": "vengefulgrass.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (vengefulgrass.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -29126,10 +29126,10 @@ "volatilevessel.com": { "domain": "volatilevessel.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (volatilevessel.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -29137,10 +29137,10 @@ "voraciousgrip.com": { "domain": "voraciousgrip.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (voraciousgrip.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -29263,10 +29263,10 @@ "warmafterthought.com": { "domain": "warmafterthought.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (warmafterthought.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -29274,10 +29274,10 @@ "warmquiver.com": { "domain": "warmquiver.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (warmquiver.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -31016,10 +31016,10 @@ "zestycrime.com": { "domain": "zestycrime.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (zestycrime.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -31321,10 +31321,10 @@ "parchedsofa.com": { "domain": "parchedsofa.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (parchedsofa.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32481,10 +32481,10 @@ "2znp09oa.com": { "domain": "2znp09oa.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (2znp09oa.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32492,10 +32492,10 @@ "4jnzhl0d0.com": { "domain": "4jnzhl0d0.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (4jnzhl0d0.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32503,10 +32503,10 @@ "5mcwl.pw": { "domain": "5mcwl.pw", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (5mcwl.pw)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32514,10 +32514,10 @@ "6ldu6qa.com": { "domain": "6ldu6qa.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (6ldu6qa.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32525,10 +32525,10 @@ "82o9v830.com": { "domain": "82o9v830.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (82o9v830.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32536,10 +32536,21 @@ "abilityscale.com": { "domain": "abilityscale.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (abilityscale.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "abjectattempt.com": { + "domain": "abjectattempt.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (abjectattempt.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32547,10 +32558,10 @@ "aboardamusement.com": { "domain": "aboardamusement.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (aboardamusement.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32558,10 +32569,10 @@ "aboardlevel.com": { "domain": "aboardlevel.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (aboardlevel.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32569,10 +32580,10 @@ "abovechat.com": { "domain": "abovechat.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (abovechat.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32580,10 +32591,10 @@ "abruptroad.com": { "domain": "abruptroad.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (abruptroad.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32591,10 +32602,10 @@ "absentairport.com": { "domain": "absentairport.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (absentairport.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32602,10 +32613,10 @@ "absorbingcorn.com": { "domain": "absorbingcorn.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (absorbingcorn.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32613,10 +32624,10 @@ "absorbingprison.com": { "domain": "absorbingprison.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (absorbingprison.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32624,10 +32635,10 @@ "abstractedamount.com": { "domain": "abstractedamount.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (abstractedamount.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32635,10 +32646,10 @@ "absurdapple.com": { "domain": "absurdapple.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (absurdapple.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32646,10 +32657,10 @@ "abundantcoin.com": { "domain": "abundantcoin.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (abundantcoin.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32657,10 +32668,10 @@ "acceptableauthority.com": { "domain": "acceptableauthority.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (acceptableauthority.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32668,10 +32679,10 @@ "accurateanimal.com": { "domain": "accurateanimal.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (accurateanimal.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32679,10 +32690,10 @@ "accuratecoal.com": { "domain": "accuratecoal.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (accuratecoal.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32690,10 +32701,10 @@ "achieverknee.com": { "domain": "achieverknee.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (achieverknee.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32701,10 +32712,10 @@ "acidicstraw.com": { "domain": "acidicstraw.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (acidicstraw.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32712,10 +32723,10 @@ "acridangle.com": { "domain": "acridangle.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (acridangle.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32723,10 +32734,10 @@ "acridtwist.com": { "domain": "acridtwist.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (acridtwist.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32734,10 +32745,10 @@ "actoramusement.com": { "domain": "actoramusement.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (actoramusement.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32745,10 +32756,10 @@ "actuallysheep.com": { "domain": "actuallysheep.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (actuallysheep.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32756,10 +32767,10 @@ "actuallysnake.com": { "domain": "actuallysnake.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (actuallysnake.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32767,10 +32778,10 @@ "actuallything.com": { "domain": "actuallything.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (actuallything.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32778,10 +32789,10 @@ "adamantsnail.com": { "domain": "adamantsnail.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (adamantsnail.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32789,10 +32800,10 @@ "addictedattention.com": { "domain": "addictedattention.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (addictedattention.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32800,10 +32811,10 @@ "admiral.pub": { "domain": "admiral.pub", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (admiral.pub)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32811,10 +32822,10 @@ "adorableanger.com": { "domain": "adorableanger.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (adorableanger.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32822,10 +32833,10 @@ "adorableattention.com": { "domain": "adorableattention.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (adorableattention.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32833,10 +32844,10 @@ "adventurousamount.com": { "domain": "adventurousamount.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (adventurousamount.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32844,10 +32855,10 @@ "afraidlanguage.com": { "domain": "afraidlanguage.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (afraidlanguage.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32855,10 +32866,10 @@ "aftermathbrother.com": { "domain": "aftermathbrother.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (aftermathbrother.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32866,10 +32877,10 @@ "agilebreeze.com": { "domain": "agilebreeze.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (agilebreeze.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32877,10 +32888,10 @@ "agreeablearch.com": { "domain": "agreeablearch.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (agreeablearch.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32888,10 +32899,10 @@ "agreeabletouch.com": { "domain": "agreeabletouch.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (agreeabletouch.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32899,10 +32910,10 @@ "aheadday.com": { "domain": "aheadday.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (aheadday.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32910,10 +32921,10 @@ "aheadgrow.com": { "domain": "aheadgrow.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (aheadgrow.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32921,10 +32932,10 @@ "aheadmachine.com": { "domain": "aheadmachine.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (aheadmachine.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32932,10 +32943,10 @@ "ak0gsh40.com": { "domain": "ak0gsh40.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (ak0gsh40.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32943,10 +32954,10 @@ "alertarithmetic.com": { "domain": "alertarithmetic.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (alertarithmetic.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32954,10 +32965,10 @@ "aliasanvil.com": { "domain": "aliasanvil.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (aliasanvil.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32965,10 +32976,10 @@ "alleythecat.com": { "domain": "alleythecat.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (alleythecat.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32976,10 +32987,10 @@ "aloofmetal.com": { "domain": "aloofmetal.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (aloofmetal.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32987,10 +32998,10 @@ "alpineactor.com": { "domain": "alpineactor.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (alpineactor.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32998,10 +33009,10 @@ "ambientdusk.com": { "domain": "ambientdusk.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (ambientdusk.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33009,10 +33020,10 @@ "ambientlagoon.com": { "domain": "ambientlagoon.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (ambientlagoon.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33020,10 +33031,10 @@ "ambiguousanger.com": { "domain": "ambiguousanger.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (ambiguousanger.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33031,10 +33042,10 @@ "ambiguousdinosaurs.com": { "domain": "ambiguousdinosaurs.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (ambiguousdinosaurs.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33042,10 +33053,10 @@ "ambiguousincome.com": { "domain": "ambiguousincome.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (ambiguousincome.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33053,10 +33064,10 @@ "ambrosialsummit.com": { "domain": "ambrosialsummit.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (ambrosialsummit.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33064,10 +33075,10 @@ "amethystzenith.com": { "domain": "amethystzenith.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (amethystzenith.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33075,10 +33086,10 @@ "amuckafternoon.com": { "domain": "amuckafternoon.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (amuckafternoon.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33086,10 +33097,10 @@ "amusedbucket.com": { "domain": "amusedbucket.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (amusedbucket.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33097,10 +33108,10 @@ "analogwonder.com": { "domain": "analogwonder.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (analogwonder.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33108,10 +33119,10 @@ "analyzecorona.com": { "domain": "analyzecorona.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (analyzecorona.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33119,10 +33130,10 @@ "ancientact.com": { "domain": "ancientact.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (ancientact.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33130,10 +33141,10 @@ "annoyingacoustics.com": { "domain": "annoyingacoustics.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (annoyingacoustics.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33141,10 +33152,10 @@ "anxiousapples.com": { "domain": "anxiousapples.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (anxiousapples.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33152,10 +33163,10 @@ "aquaticowl.com": { "domain": "aquaticowl.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (aquaticowl.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33163,10 +33174,10 @@ "ar1nvz5.com": { "domain": "ar1nvz5.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (ar1nvz5.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33174,10 +33185,10 @@ "archswimming.com": { "domain": "archswimming.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (archswimming.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33185,10 +33196,10 @@ "aromamirror.com": { "domain": "aromamirror.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (aromamirror.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33196,10 +33207,10 @@ "arrivegrowth.com": { "domain": "arrivegrowth.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (arrivegrowth.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33207,10 +33218,10 @@ "artthevoid.com": { "domain": "artthevoid.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (artthevoid.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33218,10 +33229,10 @@ "aspiringapples.com": { "domain": "aspiringapples.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (aspiringapples.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33229,10 +33240,10 @@ "aspiringtoy.com": { "domain": "aspiringtoy.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (aspiringtoy.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33240,10 +33251,10 @@ "astonishingfood.com": { "domain": "astonishingfood.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (astonishingfood.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33251,10 +33262,10 @@ "astralhustle.com": { "domain": "astralhustle.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (astralhustle.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33262,10 +33273,10 @@ "astrallullaby.com": { "domain": "astrallullaby.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (astrallullaby.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33273,10 +33284,10 @@ "attendchase.com": { "domain": "attendchase.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (attendchase.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33284,10 +33295,10 @@ "attractivecap.com": { "domain": "attractivecap.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (attractivecap.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33295,10 +33306,10 @@ "audioarctic.com": { "domain": "audioarctic.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (audioarctic.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33306,10 +33317,10 @@ "automaticturkey.com": { "domain": "automaticturkey.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (automaticturkey.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33317,10 +33328,10 @@ "availablerest.com": { "domain": "availablerest.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (availablerest.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33328,10 +33339,10 @@ "avalonalbum.com": { "domain": "avalonalbum.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (avalonalbum.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33339,10 +33350,10 @@ "averageactivity.com": { "domain": "averageactivity.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (averageactivity.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33350,10 +33361,10 @@ "awarealley.com": { "domain": "awarealley.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (awarealley.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33361,10 +33372,10 @@ "awesomeagreement.com": { "domain": "awesomeagreement.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (awesomeagreement.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33372,10 +33383,10 @@ "awzbijw.com": { "domain": "awzbijw.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (awzbijw.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33383,10 +33394,10 @@ "axiomaticalley.com": { "domain": "axiomaticalley.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (axiomaticalley.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33394,10 +33405,10 @@ "axiomaticanger.com": { "domain": "axiomaticanger.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (axiomaticanger.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33405,10 +33416,10 @@ "azuremystique.com": { "domain": "azuremystique.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (azuremystique.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33416,10 +33427,10 @@ "backupcat.com": { "domain": "backupcat.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (backupcat.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33427,10 +33438,10 @@ "badgeboat.com": { "domain": "badgeboat.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (badgeboat.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33438,10 +33449,10 @@ "badgerabbit.com": { "domain": "badgerabbit.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (badgerabbit.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33449,10 +33460,10 @@ "baitbaseball.com": { "domain": "baitbaseball.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (baitbaseball.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33460,10 +33471,10 @@ "balloonbelieve.com": { "domain": "balloonbelieve.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (balloonbelieve.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33471,10 +33482,10 @@ "bananabarrel.com": { "domain": "bananabarrel.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (bananabarrel.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33482,10 +33493,10 @@ "barbarousbase.com": { "domain": "barbarousbase.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (barbarousbase.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33493,10 +33504,10 @@ "basilfish.com": { "domain": "basilfish.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (basilfish.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33504,10 +33515,10 @@ "basketballbelieve.com": { "domain": "basketballbelieve.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (basketballbelieve.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33515,10 +33526,10 @@ "baskettexture.com": { "domain": "baskettexture.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (baskettexture.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33526,10 +33537,10 @@ "bawdybeast.com": { "domain": "bawdybeast.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (bawdybeast.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33537,10 +33548,10 @@ "beamvolcano.com": { "domain": "beamvolcano.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (beamvolcano.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33548,10 +33559,10 @@ "beancontrol.com": { "domain": "beancontrol.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (beancontrol.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33559,10 +33570,10 @@ "bearmoonlodge.com": { "domain": "bearmoonlodge.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (bearmoonlodge.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33570,10 +33581,10 @@ "beetleend.com": { "domain": "beetleend.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (beetleend.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33581,10 +33592,10 @@ "begintrain.com": { "domain": "begintrain.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (begintrain.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33592,10 +33603,10 @@ "berserkhydrant.com": { "domain": "berserkhydrant.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (berserkhydrant.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33603,10 +33614,10 @@ "bespokesandals.com": { "domain": "bespokesandals.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (bespokesandals.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33614,10 +33625,10 @@ "bestboundary.com": { "domain": "bestboundary.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (bestboundary.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33625,10 +33636,10 @@ "bewilderedbattle.com": { "domain": "bewilderedbattle.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (bewilderedbattle.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33636,10 +33647,10 @@ "bewilderedblade.com": { "domain": "bewilderedblade.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (bewilderedblade.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33647,10 +33658,10 @@ "bhcumsc.com": { "domain": "bhcumsc.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (bhcumsc.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33658,10 +33669,10 @@ "bikepaws.com": { "domain": "bikepaws.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (bikepaws.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33669,10 +33680,10 @@ "bikesboard.com": { "domain": "bikesboard.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (bikesboard.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33680,10 +33691,10 @@ "billowybead.com": { "domain": "billowybead.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (billowybead.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33691,10 +33702,10 @@ "binspiredtees.com": { "domain": "binspiredtees.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (binspiredtees.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33702,10 +33713,10 @@ "birthdaybelief.com": { "domain": "birthdaybelief.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (birthdaybelief.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33713,10 +33724,10 @@ "blackbrake.com": { "domain": "blackbrake.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (blackbrake.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33724,10 +33735,10 @@ "bleachbubble.com": { "domain": "bleachbubble.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (bleachbubble.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33735,10 +33746,10 @@ "bleachscarecrow.com": { "domain": "bleachscarecrow.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (bleachscarecrow.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33746,10 +33757,10 @@ "bleedlight.com": { "domain": "bleedlight.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (bleedlight.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33757,10 +33768,10 @@ "blesspizzas.com": { "domain": "blesspizzas.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (blesspizzas.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33768,10 +33779,10 @@ "blissfulcrescendo.com": { "domain": "blissfulcrescendo.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (blissfulcrescendo.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33779,10 +33790,10 @@ "blissfullagoon.com": { "domain": "blissfullagoon.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (blissfullagoon.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33790,10 +33801,10 @@ "blueeyedblow.com": { "domain": "blueeyedblow.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (blueeyedblow.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33801,10 +33812,10 @@ "blushingbeast.com": { "domain": "blushingbeast.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (blushingbeast.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33812,10 +33823,10 @@ "boatsvest.com": { "domain": "boatsvest.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (boatsvest.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33823,10 +33834,10 @@ "boilingbeetle.com": { "domain": "boilingbeetle.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (boilingbeetle.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33834,10 +33845,10 @@ "boostbehavior.com": { "domain": "boostbehavior.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (boostbehavior.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33845,10 +33856,10 @@ "boredcrown.com": { "domain": "boredcrown.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (boredcrown.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33856,10 +33867,10 @@ "bouncyproperty.com": { "domain": "bouncyproperty.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (bouncyproperty.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33867,10 +33878,10 @@ "boundarybusiness.com": { "domain": "boundarybusiness.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (boundarybusiness.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33878,10 +33889,10 @@ "boundlessargument.com": { "domain": "boundlessargument.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (boundlessargument.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33889,10 +33900,10 @@ "boundlessbrake.com": { "domain": "boundlessbrake.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (boundlessbrake.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33900,10 +33911,10 @@ "boundlessveil.com": { "domain": "boundlessveil.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (boundlessveil.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33911,10 +33922,10 @@ "brainybasin.com": { "domain": "brainybasin.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (brainybasin.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33922,10 +33933,10 @@ "brainynut.com": { "domain": "brainynut.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (brainynut.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33933,10 +33944,10 @@ "branchborder.com": { "domain": "branchborder.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (branchborder.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33944,10 +33955,10 @@ "brandsfive.com": { "domain": "brandsfive.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (brandsfive.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33955,10 +33966,10 @@ "brandybison.com": { "domain": "brandybison.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (brandybison.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33966,10 +33977,10 @@ "bravebone.com": { "domain": "bravebone.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (bravebone.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33977,10 +33988,10 @@ "bravecalculator.com": { "domain": "bravecalculator.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (bravecalculator.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33988,10 +33999,10 @@ "breadbalance.com": { "domain": "breadbalance.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (breadbalance.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33999,10 +34010,10 @@ "breakableinsurance.com": { "domain": "breakableinsurance.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (breakableinsurance.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34010,10 +34021,10 @@ "breakfastboat.com": { "domain": "breakfastboat.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (breakfastboat.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34021,10 +34032,10 @@ "breezygrove.com": { "domain": "breezygrove.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (breezygrove.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34032,10 +34043,10 @@ "brianwould.com": { "domain": "brianwould.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (brianwould.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34043,10 +34054,10 @@ "brighttoe.com": { "domain": "brighttoe.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (brighttoe.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34054,10 +34065,10 @@ "briskstorm.com": { "domain": "briskstorm.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (briskstorm.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34065,10 +34076,10 @@ "broadborder.com": { "domain": "broadborder.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (broadborder.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34076,10 +34087,10 @@ "broadboundary.com": { "domain": "broadboundary.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (broadboundary.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34087,10 +34098,10 @@ "broadcastbed.com": { "domain": "broadcastbed.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (broadcastbed.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34098,10 +34109,10 @@ "broaddoor.com": { "domain": "broaddoor.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (broaddoor.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34109,10 +34120,10 @@ "brotherslocket.com": { "domain": "brotherslocket.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (brotherslocket.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34120,10 +34131,10 @@ "bruisebaseball.com": { "domain": "bruisebaseball.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (bruisebaseball.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34131,10 +34142,10 @@ "brunchforher.com": { "domain": "brunchforher.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (brunchforher.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34142,10 +34153,10 @@ "buildingknife.com": { "domain": "buildingknife.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (buildingknife.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34153,10 +34164,10 @@ "bulbbait.com": { "domain": "bulbbait.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (bulbbait.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34164,10 +34175,10 @@ "burgersalt.com": { "domain": "burgersalt.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (burgersalt.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34175,10 +34186,10 @@ "burlywhistle.com": { "domain": "burlywhistle.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (burlywhistle.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34186,10 +34197,10 @@ "burnbubble.com": { "domain": "burnbubble.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (burnbubble.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34197,10 +34208,10 @@ "bushesbag.com": { "domain": "bushesbag.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (bushesbag.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34208,10 +34219,10 @@ "bustlingbath.com": { "domain": "bustlingbath.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (bustlingbath.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34219,10 +34230,10 @@ "bustlingbook.com": { "domain": "bustlingbook.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (bustlingbook.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34230,10 +34241,10 @@ "butterburst.com": { "domain": "butterburst.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (butterburst.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34241,10 +34252,10 @@ "cakesdrum.com": { "domain": "cakesdrum.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cakesdrum.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34252,10 +34263,10 @@ "calculatingcircle.com": { "domain": "calculatingcircle.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (calculatingcircle.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34263,10 +34274,10 @@ "calculatingtoothbrush.com": { "domain": "calculatingtoothbrush.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (calculatingtoothbrush.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34274,10 +34285,10 @@ "callousbrake.com": { "domain": "callousbrake.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (callousbrake.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34285,10 +34296,10 @@ "calmcactus.com": { "domain": "calmcactus.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (calmcactus.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34296,10 +34307,10 @@ "calypsocapsule.com": { "domain": "calypsocapsule.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (calypsocapsule.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34307,10 +34318,10 @@ "cannonchange.com": { "domain": "cannonchange.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cannonchange.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34318,10 +34329,10 @@ "capablecows.com": { "domain": "capablecows.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (capablecows.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34329,10 +34340,10 @@ "capriciouscorn.com": { "domain": "capriciouscorn.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (capriciouscorn.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34340,10 +34351,10 @@ "captivatingcanyon.com": { "domain": "captivatingcanyon.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (captivatingcanyon.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34351,10 +34362,10 @@ "captivatingillusion.com": { "domain": "captivatingillusion.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (captivatingillusion.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34362,10 +34373,10 @@ "captivatingpanorama.com": { "domain": "captivatingpanorama.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (captivatingpanorama.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34373,10 +34384,10 @@ "captivatingperformance.com": { "domain": "captivatingperformance.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (captivatingperformance.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34384,10 +34395,10 @@ "carefuldolls.com": { "domain": "carefuldolls.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (carefuldolls.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34395,10 +34406,10 @@ "caringcast.com": { "domain": "caringcast.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (caringcast.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34406,10 +34417,10 @@ "caringzinc.com": { "domain": "caringzinc.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (caringzinc.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34417,10 +34428,10 @@ "carloforward.com": { "domain": "carloforward.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (carloforward.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34428,10 +34439,10 @@ "carscannon.com": { "domain": "carscannon.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (carscannon.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34439,10 +34450,10 @@ "cartkitten.com": { "domain": "cartkitten.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cartkitten.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34450,10 +34461,10 @@ "catalogcake.com": { "domain": "catalogcake.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (catalogcake.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34461,10 +34472,10 @@ "catschickens.com": { "domain": "catschickens.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (catschickens.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34472,10 +34483,10 @@ "causecherry.com": { "domain": "causecherry.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (causecherry.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34483,10 +34494,10 @@ "cautiouscamera.com": { "domain": "cautiouscamera.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cautiouscamera.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34494,10 +34505,10 @@ "cautiouscherries.com": { "domain": "cautiouscherries.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cautiouscherries.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34505,10 +34516,10 @@ "cautiouscrate.com": { "domain": "cautiouscrate.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cautiouscrate.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34516,10 +34527,10 @@ "cautiouscredit.com": { "domain": "cautiouscredit.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cautiouscredit.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34527,10 +34538,10 @@ "cavecurtain.com": { "domain": "cavecurtain.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cavecurtain.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34538,10 +34549,10 @@ "ceciliavenus.com": { "domain": "ceciliavenus.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (ceciliavenus.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34549,10 +34560,10 @@ "celestialeuphony.com": { "domain": "celestialeuphony.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (celestialeuphony.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34560,10 +34571,10 @@ "celestialquasar.com": { "domain": "celestialquasar.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (celestialquasar.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34571,10 +34582,10 @@ "celestialspectra.com": { "domain": "celestialspectra.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (celestialspectra.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34582,10 +34593,10 @@ "chaireggnog.com": { "domain": "chaireggnog.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (chaireggnog.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34593,10 +34604,10 @@ "chairscrack.com": { "domain": "chairscrack.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (chairscrack.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34604,10 +34615,10 @@ "chairsdonkey.com": { "domain": "chairsdonkey.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (chairsdonkey.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34615,10 +34626,10 @@ "chalkoil.com": { "domain": "chalkoil.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (chalkoil.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34626,10 +34637,10 @@ "changeablecats.com": { "domain": "changeablecats.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (changeablecats.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34637,10 +34648,10 @@ "channelcamp.com": { "domain": "channelcamp.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (channelcamp.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34648,10 +34659,10 @@ "charmingplate.com": { "domain": "charmingplate.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (charmingplate.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34659,10 +34670,10 @@ "charscroll.com": { "domain": "charscroll.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (charscroll.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34670,10 +34681,10 @@ "cheerycraze.com": { "domain": "cheerycraze.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cheerycraze.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34681,10 +34692,10 @@ "chessbranch.com": { "domain": "chessbranch.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (chessbranch.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34692,10 +34703,10 @@ "chesscolor.com": { "domain": "chesscolor.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (chesscolor.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34703,10 +34714,10 @@ "chesscrowd.com": { "domain": "chesscrowd.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (chesscrowd.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34714,10 +34725,10 @@ "childlikeexample.com": { "domain": "childlikeexample.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (childlikeexample.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34725,10 +34736,10 @@ "chilledliquid.com": { "domain": "chilledliquid.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (chilledliquid.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34736,10 +34747,10 @@ "chingovernment.com": { "domain": "chingovernment.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (chingovernment.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34747,10 +34758,10 @@ "chinsnakes.com": { "domain": "chinsnakes.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (chinsnakes.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34758,10 +34769,10 @@ "chipperisle.com": { "domain": "chipperisle.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (chipperisle.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34769,10 +34780,10 @@ "chivalrouscord.com": { "domain": "chivalrouscord.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (chivalrouscord.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34780,10 +34791,10 @@ "chubbycreature.com": { "domain": "chubbycreature.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (chubbycreature.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34791,10 +34802,10 @@ "chunkycactus.com": { "domain": "chunkycactus.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (chunkycactus.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34802,10 +34813,10 @@ "cicdserver.com": { "domain": "cicdserver.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cicdserver.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34813,10 +34824,10 @@ "cinemabonus.com": { "domain": "cinemabonus.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cinemabonus.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34824,10 +34835,10 @@ "clammychicken.com": { "domain": "clammychicken.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (clammychicken.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34835,10 +34846,10 @@ "cloisteredcord.com": { "domain": "cloisteredcord.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cloisteredcord.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34846,10 +34857,10 @@ "cloisteredcurve.com": { "domain": "cloisteredcurve.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cloisteredcurve.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34857,10 +34868,10 @@ "closedcows.com": { "domain": "closedcows.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (closedcows.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34868,10 +34879,10 @@ "closefriction.com": { "domain": "closefriction.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (closefriction.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34879,10 +34890,10 @@ "cloudhustles.com": { "domain": "cloudhustles.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cloudhustles.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34890,10 +34901,10 @@ "cloudjumbo.com": { "domain": "cloudjumbo.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cloudjumbo.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34901,10 +34912,10 @@ "clovercabbage.com": { "domain": "clovercabbage.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (clovercabbage.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34912,10 +34923,10 @@ "clumsycar.com": { "domain": "clumsycar.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (clumsycar.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34923,10 +34934,10 @@ "coatfood.com": { "domain": "coatfood.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (coatfood.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34934,10 +34945,10 @@ "cobaltoverture.com": { "domain": "cobaltoverture.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cobaltoverture.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34945,10 +34956,10 @@ "coffeesidehustle.com": { "domain": "coffeesidehustle.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (coffeesidehustle.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34956,10 +34967,10 @@ "coldbalance.com": { "domain": "coldbalance.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (coldbalance.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34967,10 +34978,10 @@ "coldcreatives.com": { "domain": "coldcreatives.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (coldcreatives.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34978,10 +34989,10 @@ "colorfulafterthought.com": { "domain": "colorfulafterthought.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (colorfulafterthought.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34989,10 +35000,10 @@ "colossalclouds.com": { "domain": "colossalclouds.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (colossalclouds.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35000,10 +35011,10 @@ "colossalcoat.com": { "domain": "colossalcoat.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (colossalcoat.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35011,10 +35022,10 @@ "colossalcry.com": { "domain": "colossalcry.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (colossalcry.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35022,10 +35033,10 @@ "combativedetail.com": { "domain": "combativedetail.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (combativedetail.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35033,10 +35044,10 @@ "combbit.com": { "domain": "combbit.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (combbit.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35044,10 +35055,10 @@ "combcattle.com": { "domain": "combcattle.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (combcattle.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35055,10 +35066,10 @@ "combcompetition.com": { "domain": "combcompetition.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (combcompetition.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35066,10 +35077,10 @@ "cometquote.com": { "domain": "cometquote.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cometquote.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35077,10 +35088,10 @@ "comfortablecheese.com": { "domain": "comfortablecheese.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (comfortablecheese.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35088,10 +35099,10 @@ "comfygoodness.com": { "domain": "comfygoodness.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (comfygoodness.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35099,10 +35110,10 @@ "companyparcel.com": { "domain": "companyparcel.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (companyparcel.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35110,10 +35121,10 @@ "comparereaction.com": { "domain": "comparereaction.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (comparereaction.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35121,10 +35132,10 @@ "compiledoctor.com": { "domain": "compiledoctor.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (compiledoctor.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35132,10 +35143,10 @@ "concernedchange.com": { "domain": "concernedchange.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (concernedchange.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35143,10 +35154,10 @@ "concernedchickens.com": { "domain": "concernedchickens.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (concernedchickens.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35154,10 +35165,10 @@ "condemnedcomb.com": { "domain": "condemnedcomb.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (condemnedcomb.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35165,10 +35176,10 @@ "conditionchange.com": { "domain": "conditionchange.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (conditionchange.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35176,10 +35187,10 @@ "conditioncrush.com": { "domain": "conditioncrush.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (conditioncrush.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35187,10 +35198,10 @@ "confesschairs.com": { "domain": "confesschairs.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (confesschairs.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35198,10 +35209,10 @@ "configchain.com": { "domain": "configchain.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (configchain.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35209,10 +35220,10 @@ "connectashelf.com": { "domain": "connectashelf.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (connectashelf.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35220,10 +35231,10 @@ "consciouschairs.com": { "domain": "consciouschairs.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (consciouschairs.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35231,10 +35242,10 @@ "consciouscheese.com": { "domain": "consciouscheese.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (consciouscheese.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35242,10 +35253,10 @@ "consciousdirt.com": { "domain": "consciousdirt.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (consciousdirt.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35253,10 +35264,10 @@ "consumerzero.com": { "domain": "consumerzero.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (consumerzero.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35264,10 +35275,10 @@ "controlcola.com": { "domain": "controlcola.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (controlcola.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35275,10 +35286,10 @@ "controlhall.com": { "domain": "controlhall.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (controlhall.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35286,10 +35297,10 @@ "convertbatch.com": { "domain": "convertbatch.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (convertbatch.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35297,10 +35308,10 @@ "cooingcoal.com": { "domain": "cooingcoal.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cooingcoal.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35308,10 +35319,10 @@ "coordinatedbedroom.com": { "domain": "coordinatedbedroom.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (coordinatedbedroom.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35319,10 +35330,10 @@ "coordinatedcoat.com": { "domain": "coordinatedcoat.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (coordinatedcoat.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35330,10 +35341,10 @@ "copycarpenter.com": { "domain": "copycarpenter.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (copycarpenter.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35341,10 +35352,10 @@ "copyrightaccesscontrols.com": { "domain": "copyrightaccesscontrols.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (copyrightaccesscontrols.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35352,10 +35363,10 @@ "coralreverie.com": { "domain": "coralreverie.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (coralreverie.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35363,10 +35374,10 @@ "corgibeachday.com": { "domain": "corgibeachday.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (corgibeachday.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35374,10 +35385,10 @@ "cosmicsculptor.com": { "domain": "cosmicsculptor.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cosmicsculptor.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35385,10 +35396,10 @@ "cosmosjackson.com": { "domain": "cosmosjackson.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cosmosjackson.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35396,10 +35407,10 @@ "courageousbaby.com": { "domain": "courageousbaby.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (courageousbaby.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35407,10 +35418,10 @@ "coverapparatus.com": { "domain": "coverapparatus.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (coverapparatus.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35418,10 +35429,10 @@ "coverlayer.com": { "domain": "coverlayer.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (coverlayer.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35429,10 +35440,10 @@ "cozydusk.com": { "domain": "cozydusk.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cozydusk.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35440,10 +35451,10 @@ "cozyhillside.com": { "domain": "cozyhillside.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cozyhillside.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35451,10 +35462,10 @@ "cozytryst.com": { "domain": "cozytryst.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cozytryst.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35462,10 +35473,10 @@ "crackedsafe.com": { "domain": "crackedsafe.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (crackedsafe.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35473,10 +35484,10 @@ "crafthenry.com": { "domain": "crafthenry.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (crafthenry.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35484,10 +35495,10 @@ "crashchance.com": { "domain": "crashchance.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (crashchance.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35495,10 +35506,10 @@ "craterbox.com": { "domain": "craterbox.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (craterbox.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35506,10 +35517,10 @@ "creatorcherry.com": { "domain": "creatorcherry.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (creatorcherry.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35517,10 +35528,10 @@ "creatorpassenger.com": { "domain": "creatorpassenger.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (creatorpassenger.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35528,10 +35539,10 @@ "creaturecabbage.com": { "domain": "creaturecabbage.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (creaturecabbage.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35539,10 +35550,10 @@ "crimsonmeadow.com": { "domain": "crimsonmeadow.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (crimsonmeadow.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35550,10 +35561,10 @@ "critictruck.com": { "domain": "critictruck.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (critictruck.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35561,10 +35572,10 @@ "crookedcreature.com": { "domain": "crookedcreature.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (crookedcreature.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35572,10 +35583,10 @@ "cruisetourist.com": { "domain": "cruisetourist.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cruisetourist.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35583,10 +35594,10 @@ "cryptvalue.com": { "domain": "cryptvalue.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cryptvalue.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35594,10 +35605,10 @@ "crystalboulevard.com": { "domain": "crystalboulevard.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (crystalboulevard.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35605,10 +35616,10 @@ "crystalstatus.com": { "domain": "crystalstatus.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (crystalstatus.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35616,10 +35627,10 @@ "cubchannel.com": { "domain": "cubchannel.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cubchannel.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35627,10 +35638,10 @@ "cubepins.com": { "domain": "cubepins.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cubepins.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35638,10 +35649,10 @@ "cuddlycake.com": { "domain": "cuddlycake.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cuddlycake.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35649,10 +35660,10 @@ "cuddlylunchroom.com": { "domain": "cuddlylunchroom.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cuddlylunchroom.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35660,10 +35671,10 @@ "culturedcamera.com": { "domain": "culturedcamera.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (culturedcamera.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35671,10 +35682,10 @@ "culturedfeather.com": { "domain": "culturedfeather.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (culturedfeather.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35682,10 +35693,10 @@ "cumbersomecar.com": { "domain": "cumbersomecar.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cumbersomecar.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35693,10 +35704,10 @@ "cumbersomecloud.com": { "domain": "cumbersomecloud.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cumbersomecloud.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35704,10 +35715,10 @@ "curiouschalk.com": { "domain": "curiouschalk.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (curiouschalk.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35715,10 +35726,10 @@ "curioussuccess.com": { "domain": "curioussuccess.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (curioussuccess.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35726,10 +35737,10 @@ "curlycannon.com": { "domain": "curlycannon.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (curlycannon.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35737,10 +35748,10 @@ "currentcollar.com": { "domain": "currentcollar.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (currentcollar.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35748,10 +35759,10 @@ "curtaincows.com": { "domain": "curtaincows.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (curtaincows.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35759,10 +35770,10 @@ "curvycord.com": { "domain": "curvycord.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (curvycord.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35770,10 +35781,10 @@ "curvycry.com": { "domain": "curvycry.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (curvycry.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35781,10 +35792,10 @@ "cushionpig.com": { "domain": "cushionpig.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cushionpig.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35792,10 +35803,10 @@ "cutcurrent.com": { "domain": "cutcurrent.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cutcurrent.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35803,10 +35814,10 @@ "cyclopsdial.com": { "domain": "cyclopsdial.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (cyclopsdial.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35814,10 +35825,10 @@ "dailydivision.com": { "domain": "dailydivision.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (dailydivision.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35825,10 +35836,10 @@ "damagedadvice.com": { "domain": "damagedadvice.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (damagedadvice.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35836,10 +35847,10 @@ "damageddistance.com": { "domain": "damageddistance.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (damageddistance.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35847,10 +35858,10 @@ "dancemistake.com": { "domain": "dancemistake.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (dancemistake.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35858,10 +35869,10 @@ "dandydune.com": { "domain": "dandydune.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (dandydune.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35869,10 +35880,10 @@ "dandyglow.com": { "domain": "dandyglow.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (dandyglow.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35880,10 +35891,10 @@ "dapperdiscussion.com": { "domain": "dapperdiscussion.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (dapperdiscussion.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35891,10 +35902,10 @@ "datastoried.com": { "domain": "datastoried.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (datastoried.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35902,10 +35913,10 @@ "daughterstone.com": { "domain": "daughterstone.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (daughterstone.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35913,10 +35924,10 @@ "daymodern.com": { "domain": "daymodern.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (daymodern.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35924,10 +35935,10 @@ "dazzlingbook.com": { "domain": "dazzlingbook.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (dazzlingbook.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35935,10 +35946,10 @@ "deafeningdock.com": { "domain": "deafeningdock.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (deafeningdock.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35946,10 +35957,10 @@ "deafeningdowntown.com": { "domain": "deafeningdowntown.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (deafeningdowntown.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35957,10 +35968,10 @@ "debonairdust.com": { "domain": "debonairdust.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (debonairdust.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35968,10 +35979,10 @@ "debonairtree.com": { "domain": "debonairtree.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (debonairtree.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35979,10 +35990,10 @@ "debugentity.com": { "domain": "debugentity.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (debugentity.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35990,10 +36001,10 @@ "decidedrum.com": { "domain": "decidedrum.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (decidedrum.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36001,10 +36012,10 @@ "decisivedrawer.com": { "domain": "decisivedrawer.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (decisivedrawer.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36012,10 +36023,10 @@ "decisiveducks.com": { "domain": "decisiveducks.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (decisiveducks.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36023,10 +36034,10 @@ "decoycreation.com": { "domain": "decoycreation.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (decoycreation.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36034,10 +36045,10 @@ "deerbeginner.com": { "domain": "deerbeginner.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (deerbeginner.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36045,10 +36056,10 @@ "defeatedbadge.com": { "domain": "defeatedbadge.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (defeatedbadge.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36056,10 +36067,10 @@ "defensevest.com": { "domain": "defensevest.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (defensevest.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36067,10 +36078,10 @@ "degreechariot.com": { "domain": "degreechariot.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (degreechariot.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36078,10 +36089,10 @@ "delegatediscussion.com": { "domain": "delegatediscussion.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (delegatediscussion.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36089,10 +36100,10 @@ "delicatecascade.com": { "domain": "delicatecascade.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (delicatecascade.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36100,10 +36111,10 @@ "deliciousducks.com": { "domain": "deliciousducks.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (deliciousducks.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36111,10 +36122,10 @@ "deltafault.com": { "domain": "deltafault.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (deltafault.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36122,10 +36133,10 @@ "deluxecrate.com": { "domain": "deluxecrate.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (deluxecrate.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36133,10 +36144,10 @@ "dependenttrip.com": { "domain": "dependenttrip.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (dependenttrip.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36144,10 +36155,10 @@ "desirebucket.com": { "domain": "desirebucket.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (desirebucket.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36155,10 +36166,10 @@ "desiredirt.com": { "domain": "desiredirt.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (desiredirt.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36166,10 +36177,10 @@ "detailedgovernment.com": { "domain": "detailedgovernment.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (detailedgovernment.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36177,10 +36188,10 @@ "detailedkitten.com": { "domain": "detailedkitten.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (detailedkitten.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36188,10 +36199,10 @@ "detectdinner.com": { "domain": "detectdinner.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (detectdinner.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36199,10 +36210,10 @@ "detourgame.com": { "domain": "detourgame.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (detourgame.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36210,10 +36221,10 @@ "deviceseal.com": { "domain": "deviceseal.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (deviceseal.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36221,10 +36232,10 @@ "deviceworkshop.com": { "domain": "deviceworkshop.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (deviceworkshop.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36232,10 +36243,10 @@ "dewdroplagoon.com": { "domain": "dewdroplagoon.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (dewdroplagoon.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36243,10 +36254,10 @@ "difficultfog.com": { "domain": "difficultfog.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (difficultfog.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36254,10 +36265,10 @@ "digestiondrawer.com": { "domain": "digestiondrawer.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (digestiondrawer.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36265,10 +36276,10 @@ "dinnerquartz.com": { "domain": "dinnerquartz.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (dinnerquartz.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36276,10 +36287,10 @@ "diplomahawaii.com": { "domain": "diplomahawaii.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (diplomahawaii.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36287,10 +36298,10 @@ "direfuldesk.com": { "domain": "direfuldesk.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (direfuldesk.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36298,10 +36309,10 @@ "discreetquarter.com": { "domain": "discreetquarter.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (discreetquarter.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36309,10 +36320,10 @@ "distributionneck.com": { "domain": "distributionneck.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (distributionneck.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36320,10 +36331,10 @@ "distributionpocket.com": { "domain": "distributionpocket.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (distributionpocket.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36331,10 +36342,10 @@ "distributiontomatoes.com": { "domain": "distributiontomatoes.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (distributiontomatoes.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36342,10 +36353,10 @@ "disturbedquiet.com": { "domain": "disturbedquiet.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (disturbedquiet.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36353,10 +36364,10 @@ "divehope.com": { "domain": "divehope.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (divehope.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36364,10 +36375,10 @@ "dk4ywix.com": { "domain": "dk4ywix.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (dk4ywix.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36375,10 +36386,10 @@ "dogsonclouds.com": { "domain": "dogsonclouds.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (dogsonclouds.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36386,10 +36397,10 @@ "dollardelta.com": { "domain": "dollardelta.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (dollardelta.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36397,10 +36408,10 @@ "doubledefend.com": { "domain": "doubledefend.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (doubledefend.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36408,10 +36419,10 @@ "doubtdrawer.com": { "domain": "doubtdrawer.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (doubtdrawer.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36419,10 +36430,21 @@ "dq95d35.com": { "domain": "dq95d35.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (dq95d35.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "dreamycanyon.com": { + "domain": "dreamycanyon.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (dreamycanyon.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36430,10 +36452,10 @@ "driftpizza.com": { "domain": "driftpizza.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (driftpizza.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36441,10 +36463,10 @@ "drollwharf.com": { "domain": "drollwharf.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (drollwharf.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36452,10 +36474,10 @@ "drydrum.com": { "domain": "drydrum.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (drydrum.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36463,10 +36485,10 @@ "dustydime.com": { "domain": "dustydime.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (dustydime.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36474,10 +36496,10 @@ "dustyhammer.com": { "domain": "dustyhammer.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (dustyhammer.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36485,10 +36507,10 @@ "eagereden.com": { "domain": "eagereden.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (eagereden.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36496,10 +36518,10 @@ "eagerflame.com": { "domain": "eagerflame.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (eagerflame.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36507,10 +36529,10 @@ "eagerknight.com": { "domain": "eagerknight.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (eagerknight.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36518,10 +36540,10 @@ "earthyfarm.com": { "domain": "earthyfarm.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (earthyfarm.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36529,10 +36551,10 @@ "eatablesquare.com": { "domain": "eatablesquare.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (eatablesquare.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36540,10 +36562,10 @@ "echochief.com": { "domain": "echochief.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (echochief.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36551,10 +36573,10 @@ "echoinghaven.com": { "domain": "echoinghaven.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (echoinghaven.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36562,10 +36584,10 @@ "effervescentcoral.com": { "domain": "effervescentcoral.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (effervescentcoral.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36573,10 +36595,10 @@ "effervescentvista.com": { "domain": "effervescentvista.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (effervescentvista.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36584,10 +36606,10 @@ "effulgentnook.com": { "domain": "effulgentnook.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (effulgentnook.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36595,10 +36617,10 @@ "effulgenttempest.com": { "domain": "effulgenttempest.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (effulgenttempest.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36606,10 +36628,10 @@ "ejyymghi.com": { "domain": "ejyymghi.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (ejyymghi.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36617,10 +36639,10 @@ "elasticchange.com": { "domain": "elasticchange.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (elasticchange.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36628,10 +36650,10 @@ "elderlybean.com": { "domain": "elderlybean.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (elderlybean.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36639,10 +36661,10 @@ "elderlytown.com": { "domain": "elderlytown.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (elderlytown.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36650,10 +36672,10 @@ "elephantqueue.com": { "domain": "elephantqueue.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (elephantqueue.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36661,10 +36683,10 @@ "elusivebreeze.com": { "domain": "elusivebreeze.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (elusivebreeze.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36672,10 +36694,10 @@ "elusivecascade.com": { "domain": "elusivecascade.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (elusivecascade.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36683,10 +36705,10 @@ "elysiantraverse.com": { "domain": "elysiantraverse.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (elysiantraverse.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36694,10 +36716,10 @@ "embellishedmeadow.com": { "domain": "embellishedmeadow.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (embellishedmeadow.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36705,10 +36727,10 @@ "embermosaic.com": { "domain": "embermosaic.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (embermosaic.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36716,10 +36738,10 @@ "emberwhisper.com": { "domain": "emberwhisper.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (emberwhisper.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36727,10 +36749,10 @@ "eminentbubble.com": { "domain": "eminentbubble.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (eminentbubble.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36738,10 +36760,10 @@ "eminentend.com": { "domain": "eminentend.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (eminentend.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36749,10 +36771,10 @@ "emptyescort.com": { "domain": "emptyescort.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (emptyescort.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36760,10 +36782,10 @@ "enchantedskyline.com": { "domain": "enchantedskyline.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (enchantedskyline.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36771,10 +36793,10 @@ "enchantingdiscovery.com": { "domain": "enchantingdiscovery.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (enchantingdiscovery.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36782,10 +36804,10 @@ "enchantingenchantment.com": { "domain": "enchantingenchantment.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (enchantingenchantment.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36793,10 +36815,10 @@ "enchantingmystique.com": { "domain": "enchantingmystique.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (enchantingmystique.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36804,10 +36826,10 @@ "enchantingtundra.com": { "domain": "enchantingtundra.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (enchantingtundra.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36815,10 +36837,10 @@ "enchantingvalley.com": { "domain": "enchantingvalley.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (enchantingvalley.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36826,10 +36848,10 @@ "encourageshock.com": { "domain": "encourageshock.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (encourageshock.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36837,10 +36859,10 @@ "endlesstrust.com": { "domain": "endlesstrust.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (endlesstrust.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36848,10 +36870,10 @@ "endurablebulb.com": { "domain": "endurablebulb.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (endurablebulb.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36859,10 +36881,10 @@ "energeticexample.com": { "domain": "energeticexample.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (energeticexample.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36870,10 +36892,10 @@ "energeticladybug.com": { "domain": "energeticladybug.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (energeticladybug.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36881,10 +36903,10 @@ "engineergrape.com": { "domain": "engineergrape.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (engineergrape.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36892,10 +36914,10 @@ "engineertrick.com": { "domain": "engineertrick.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (engineertrick.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36903,10 +36925,10 @@ "enigmaticblossom.com": { "domain": "enigmaticblossom.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (enigmaticblossom.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36914,10 +36936,10 @@ "enigmaticcanyon.com": { "domain": "enigmaticcanyon.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (enigmaticcanyon.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36925,10 +36947,10 @@ "enigmaticvoyage.com": { "domain": "enigmaticvoyage.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (enigmaticvoyage.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36936,10 +36958,10 @@ "enormousfoot.com": { "domain": "enormousfoot.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (enormousfoot.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36947,10 +36969,10 @@ "enterdrama.com": { "domain": "enterdrama.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (enterdrama.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36958,10 +36980,10 @@ "entertainskin.com": { "domain": "entertainskin.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (entertainskin.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36969,10 +36991,10 @@ "enthusiastictemper.com": { "domain": "enthusiastictemper.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (enthusiastictemper.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36980,10 +37002,10 @@ "enviousthread.com": { "domain": "enviousthread.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (enviousthread.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36991,10 +37013,10 @@ "equablekettle.com": { "domain": "equablekettle.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (equablekettle.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37002,10 +37024,10 @@ "etherealbamboo.com": { "domain": "etherealbamboo.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (etherealbamboo.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37013,10 +37035,10 @@ "ethereallagoon.com": { "domain": "ethereallagoon.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (ethereallagoon.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37024,10 +37046,10 @@ "etherealpinnacle.com": { "domain": "etherealpinnacle.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (etherealpinnacle.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37035,10 +37057,10 @@ "etherealquasar.com": { "domain": "etherealquasar.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (etherealquasar.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37046,10 +37068,10 @@ "etherealripple.com": { "domain": "etherealripple.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (etherealripple.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37057,10 +37079,10 @@ "evanescentedge.com": { "domain": "evanescentedge.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (evanescentedge.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37068,10 +37090,10 @@ "evasivejar.com": { "domain": "evasivejar.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (evasivejar.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37079,10 +37101,10 @@ "eventexistence.com": { "domain": "eventexistence.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (eventexistence.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37090,10 +37112,10 @@ "exampleshake.com": { "domain": "exampleshake.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (exampleshake.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37101,10 +37123,10 @@ "excitingtub.com": { "domain": "excitingtub.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (excitingtub.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37112,10 +37134,10 @@ "exclusivebrass.com": { "domain": "exclusivebrass.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (exclusivebrass.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37123,10 +37145,10 @@ "executeknowledge.com": { "domain": "executeknowledge.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (executeknowledge.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37134,10 +37156,10 @@ "exhibitsneeze.com": { "domain": "exhibitsneeze.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (exhibitsneeze.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37145,10 +37167,10 @@ "exquisiteartisanship.com": { "domain": "exquisiteartisanship.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (exquisiteartisanship.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37156,10 +37178,10 @@ "extractobservation.com": { "domain": "extractobservation.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (extractobservation.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37167,10 +37189,10 @@ "extralocker.com": { "domain": "extralocker.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (extralocker.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37178,10 +37200,10 @@ "extramonies.com": { "domain": "extramonies.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (extramonies.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37189,10 +37211,10 @@ "exuberantedge.com": { "domain": "exuberantedge.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (exuberantedge.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37200,10 +37222,10 @@ "facilitatebreakfast.com": { "domain": "facilitatebreakfast.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (facilitatebreakfast.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37211,10 +37233,10 @@ "fadechildren.com": { "domain": "fadechildren.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (fadechildren.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37222,10 +37244,10 @@ "fadedsnow.com": { "domain": "fadedsnow.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (fadedsnow.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37233,10 +37255,10 @@ "fairfeeling.com": { "domain": "fairfeeling.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (fairfeeling.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37244,10 +37266,21 @@ "fairiesbranch.com": { "domain": "fairiesbranch.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (fairiesbranch.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "fairygaze.com": { + "domain": "fairygaze.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (fairygaze.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37255,10 +37288,10 @@ "fairytaleflame.com": { "domain": "fairytaleflame.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (fairytaleflame.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37266,10 +37299,10 @@ "falseframe.com": { "domain": "falseframe.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (falseframe.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37277,10 +37310,10 @@ "familiarrod.com": { "domain": "familiarrod.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (familiarrod.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37288,10 +37321,10 @@ "fancyactivity.com": { "domain": "fancyactivity.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (fancyactivity.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37299,10 +37332,10 @@ "fancydune.com": { "domain": "fancydune.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (fancydune.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37310,10 +37343,10 @@ "fancygrove.com": { "domain": "fancygrove.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (fancygrove.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37321,10 +37354,10 @@ "fangfeeling.com": { "domain": "fangfeeling.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (fangfeeling.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37332,10 +37365,10 @@ "fantastictone.com": { "domain": "fantastictone.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (fantastictone.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37343,10 +37376,10 @@ "farethief.com": { "domain": "farethief.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (farethief.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37354,10 +37387,10 @@ "farshake.com": { "domain": "farshake.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (farshake.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37365,10 +37398,10 @@ "farsnails.com": { "domain": "farsnails.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (farsnails.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37376,10 +37409,10 @@ "fastenfather.com": { "domain": "fastenfather.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (fastenfather.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37387,10 +37420,10 @@ "fasterfineart.com": { "domain": "fasterfineart.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (fasterfineart.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37398,10 +37431,10 @@ "fasterjson.com": { "domain": "fasterjson.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (fasterjson.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37409,10 +37442,10 @@ "fatcoil.com": { "domain": "fatcoil.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (fatcoil.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37420,10 +37453,10 @@ "faucetfoot.com": { "domain": "faucetfoot.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (faucetfoot.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37431,10 +37464,10 @@ "faultycanvas.com": { "domain": "faultycanvas.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (faultycanvas.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37442,10 +37475,10 @@ "fearfulfish.com": { "domain": "fearfulfish.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (fearfulfish.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37453,10 +37486,10 @@ "fearfulmint.com": { "domain": "fearfulmint.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (fearfulmint.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37464,10 +37497,10 @@ "fearlesstramp.com": { "domain": "fearlesstramp.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (fearlesstramp.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37475,10 +37508,10 @@ "featherstage.com": { "domain": "featherstage.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (featherstage.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37486,10 +37519,10 @@ "feeblestamp.com": { "domain": "feeblestamp.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (feeblestamp.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37497,10 +37530,10 @@ "feignedfaucet.com": { "domain": "feignedfaucet.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (feignedfaucet.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37508,10 +37541,10 @@ "fernwaycloud.com": { "domain": "fernwaycloud.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (fernwaycloud.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37519,10 +37552,10 @@ "fertilefeeling.com": { "domain": "fertilefeeling.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (fertilefeeling.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37530,10 +37563,10 @@ "fewjuice.com": { "domain": "fewjuice.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (fewjuice.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37541,10 +37574,10 @@ "fewkittens.com": { "domain": "fewkittens.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (fewkittens.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37552,10 +37585,10 @@ "finalizeforce.com": { "domain": "finalizeforce.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (finalizeforce.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37563,10 +37596,10 @@ "finestpiece.com": { "domain": "finestpiece.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (finestpiece.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37574,10 +37607,10 @@ "finitecube.com": { "domain": "finitecube.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (finitecube.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37585,10 +37618,10 @@ "firecatfilms.com": { "domain": "firecatfilms.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (firecatfilms.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37596,10 +37629,10 @@ "fireworkcamp.com": { "domain": "fireworkcamp.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (fireworkcamp.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37607,10 +37640,10 @@ "firstendpoint.com": { "domain": "firstendpoint.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (firstendpoint.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37618,10 +37651,10 @@ "firstfrogs.com": { "domain": "firstfrogs.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (firstfrogs.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37629,10 +37662,10 @@ "firsttexture.com": { "domain": "firsttexture.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (firsttexture.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37640,10 +37673,10 @@ "fitmessage.com": { "domain": "fitmessage.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (fitmessage.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37651,10 +37684,10 @@ "fivesidedsquare.com": { "domain": "fivesidedsquare.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (fivesidedsquare.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37662,10 +37695,10 @@ "flakyfeast.com": { "domain": "flakyfeast.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (flakyfeast.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37673,10 +37706,10 @@ "flameuncle.com": { "domain": "flameuncle.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (flameuncle.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37684,10 +37717,10 @@ "flimsycircle.com": { "domain": "flimsycircle.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (flimsycircle.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37695,10 +37728,10 @@ "flimsythought.com": { "domain": "flimsythought.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (flimsythought.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37706,10 +37739,10 @@ "flippedfunnel.com": { "domain": "flippedfunnel.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (flippedfunnel.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37717,10 +37750,10 @@ "floodprincipal.com": { "domain": "floodprincipal.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (floodprincipal.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37728,10 +37761,10 @@ "flourishingcollaboration.com": { "domain": "flourishingcollaboration.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (flourishingcollaboration.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37739,10 +37772,10 @@ "flourishingendeavor.com": { "domain": "flourishingendeavor.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (flourishingendeavor.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37750,10 +37783,10 @@ "flourishinginnovation.com": { "domain": "flourishinginnovation.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (flourishinginnovation.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37761,10 +37794,10 @@ "flourishingpartnership.com": { "domain": "flourishingpartnership.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (flourishingpartnership.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37772,10 +37805,10 @@ "flowersornament.com": { "domain": "flowersornament.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (flowersornament.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37783,10 +37816,10 @@ "flowerycreature.com": { "domain": "flowerycreature.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (flowerycreature.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37794,10 +37827,10 @@ "floweryfact.com": { "domain": "floweryfact.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (floweryfact.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37805,10 +37838,10 @@ "floweryoperation.com": { "domain": "floweryoperation.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (floweryoperation.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37816,10 +37849,10 @@ "foambench.com": { "domain": "foambench.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (foambench.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37827,10 +37860,10 @@ "followborder.com": { "domain": "followborder.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (followborder.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37838,10 +37871,10 @@ "forecasttiger.com": { "domain": "forecasttiger.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (forecasttiger.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37849,10 +37882,10 @@ "foretellfifth.com": { "domain": "foretellfifth.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (foretellfifth.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37860,10 +37893,10 @@ "forevergears.com": { "domain": "forevergears.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (forevergears.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37871,10 +37904,10 @@ "forgetfulflowers.com": { "domain": "forgetfulflowers.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (forgetfulflowers.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37882,10 +37915,10 @@ "forgetfulsnail.com": { "domain": "forgetfulsnail.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (forgetfulsnail.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37893,10 +37926,10 @@ "fractalcoast.com": { "domain": "fractalcoast.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (fractalcoast.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37904,10 +37937,10 @@ "framebanana.com": { "domain": "framebanana.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (framebanana.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37915,10 +37948,10 @@ "franticroof.com": { "domain": "franticroof.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (franticroof.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37926,10 +37959,10 @@ "frantictrail.com": { "domain": "frantictrail.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (frantictrail.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37937,10 +37970,10 @@ "frazzleart.com": { "domain": "frazzleart.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (frazzleart.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37948,10 +37981,10 @@ "freakyglass.com": { "domain": "freakyglass.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (freakyglass.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37959,10 +37992,10 @@ "frequentflesh.com": { "domain": "frequentflesh.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (frequentflesh.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37970,10 +38003,10 @@ "friendlycrayon.com": { "domain": "friendlycrayon.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (friendlycrayon.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37981,10 +38014,10 @@ "friendlyfold.com": { "domain": "friendlyfold.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (friendlyfold.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -37992,10 +38025,10 @@ "friendwool.com": { "domain": "friendwool.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (friendwool.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38003,10 +38036,10 @@ "frightenedpotato.com": { "domain": "frightenedpotato.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (frightenedpotato.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38014,10 +38047,10 @@ "frogator.com": { "domain": "frogator.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (frogator.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38025,10 +38058,10 @@ "frogtray.com": { "domain": "frogtray.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (frogtray.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38036,10 +38069,10 @@ "frugalfiestas.com": { "domain": "frugalfiestas.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (frugalfiestas.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38047,10 +38080,10 @@ "fumblingform.com": { "domain": "fumblingform.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (fumblingform.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38058,10 +38091,10 @@ "functionalcrown.com": { "domain": "functionalcrown.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (functionalcrown.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38069,10 +38102,10 @@ "funoverbored.com": { "domain": "funoverbored.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (funoverbored.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38080,10 +38113,10 @@ "funoverflow.com": { "domain": "funoverflow.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (funoverflow.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38091,10 +38124,10 @@ "furnstudio.com": { "domain": "furnstudio.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (furnstudio.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38102,10 +38135,10 @@ "furryfork.com": { "domain": "furryfork.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (furryfork.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38113,10 +38146,10 @@ "furryhorses.com": { "domain": "furryhorses.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (furryhorses.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38124,10 +38157,10 @@ "futuristicapparatus.com": { "domain": "futuristicapparatus.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (futuristicapparatus.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38135,10 +38168,10 @@ "futuristicfairies.com": { "domain": "futuristicfairies.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (futuristicfairies.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38146,10 +38179,10 @@ "futuristicfifth.com": { "domain": "futuristicfifth.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (futuristicfifth.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38157,10 +38190,10 @@ "futuristicframe.com": { "domain": "futuristicframe.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (futuristicframe.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38168,10 +38201,10 @@ "fuzzyaudio.com": { "domain": "fuzzyaudio.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (fuzzyaudio.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38179,10 +38212,10 @@ "fuzzyerror.com": { "domain": "fuzzyerror.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (fuzzyerror.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38190,10 +38223,10 @@ "fvl1f.pw": { "domain": "fvl1f.pw", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (fvl1f.pw)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38201,10 +38234,10 @@ "gardenovens.com": { "domain": "gardenovens.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (gardenovens.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38212,10 +38245,10 @@ "gaudyairplane.com": { "domain": "gaudyairplane.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (gaudyairplane.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38223,10 +38256,10 @@ "geekactive.com": { "domain": "geekactive.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (geekactive.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38234,10 +38267,10 @@ "generalprose.com": { "domain": "generalprose.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (generalprose.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38245,10 +38278,10 @@ "generateoffice.com": { "domain": "generateoffice.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (generateoffice.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38256,10 +38289,10 @@ "giantsvessel.com": { "domain": "giantsvessel.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (giantsvessel.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38267,10 +38300,10 @@ "giddycoat.com": { "domain": "giddycoat.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (giddycoat.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38278,10 +38311,10 @@ "gitcrumbs.com": { "domain": "gitcrumbs.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (gitcrumbs.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38289,10 +38322,10 @@ "givevacation.com": { "domain": "givevacation.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (givevacation.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38300,10 +38333,10 @@ "gladglen.com": { "domain": "gladglen.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (gladglen.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38311,10 +38344,10 @@ "gladysway.com": { "domain": "gladysway.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (gladysway.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38322,10 +38355,10 @@ "glamhawk.com": { "domain": "glamhawk.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (glamhawk.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38333,10 +38366,10 @@ "gleamingcow.com": { "domain": "gleamingcow.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (gleamingcow.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38344,10 +38377,10 @@ "gleaminghaven.com": { "domain": "gleaminghaven.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (gleaminghaven.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38355,10 +38388,10 @@ "glisteningguide.com": { "domain": "glisteningguide.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (glisteningguide.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38366,10 +38399,10 @@ "glisteningsign.com": { "domain": "glisteningsign.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (glisteningsign.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38377,10 +38410,10 @@ "glitteringbrook.com": { "domain": "glitteringbrook.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (glitteringbrook.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38388,10 +38421,10 @@ "glowingmeadow.com": { "domain": "glowingmeadow.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (glowingmeadow.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38399,10 +38432,10 @@ "gluedpixel.com": { "domain": "gluedpixel.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (gluedpixel.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38410,10 +38443,10 @@ "goldfishgrowth.com": { "domain": "goldfishgrowth.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (goldfishgrowth.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38421,10 +38454,10 @@ "gondolagnome.com": { "domain": "gondolagnome.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (gondolagnome.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38432,10 +38465,10 @@ "goodbark.com": { "domain": "goodbark.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (goodbark.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38443,10 +38476,10 @@ "gracefulmilk.com": { "domain": "gracefulmilk.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (gracefulmilk.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38454,10 +38487,10 @@ "grandfatherguitar.com": { "domain": "grandfatherguitar.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (grandfatherguitar.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38465,10 +38498,10 @@ "gravitygive.com": { "domain": "gravitygive.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (gravitygive.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38476,10 +38509,10 @@ "gravitykick.com": { "domain": "gravitykick.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (gravitykick.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38487,10 +38520,10 @@ "grayoranges.com": { "domain": "grayoranges.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (grayoranges.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38498,10 +38531,10 @@ "grayreceipt.com": { "domain": "grayreceipt.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (grayreceipt.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38509,10 +38542,10 @@ "greyinstrument.com": { "domain": "greyinstrument.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (greyinstrument.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38520,10 +38553,10 @@ "gripcorn.com": { "domain": "gripcorn.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (gripcorn.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38531,10 +38564,10 @@ "groovyornament.com": { "domain": "groovyornament.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (groovyornament.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38542,10 +38575,10 @@ "grouchybrothers.com": { "domain": "grouchybrothers.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (grouchybrothers.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38553,10 +38586,10 @@ "grouchypush.com": { "domain": "grouchypush.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (grouchypush.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38564,10 +38597,10 @@ "grumpydime.com": { "domain": "grumpydime.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (grumpydime.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38575,10 +38608,10 @@ "grumpydrawer.com": { "domain": "grumpydrawer.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (grumpydrawer.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38586,10 +38619,10 @@ "guardeddirection.com": { "domain": "guardeddirection.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (guardeddirection.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38597,10 +38630,10 @@ "guardedschool.com": { "domain": "guardedschool.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (guardedschool.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38608,10 +38641,10 @@ "guessdetail.com": { "domain": "guessdetail.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (guessdetail.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38619,10 +38652,10 @@ "guidecent.com": { "domain": "guidecent.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (guidecent.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38630,10 +38663,10 @@ "guildalpha.com": { "domain": "guildalpha.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (guildalpha.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38641,10 +38674,10 @@ "gulliblegrip.com": { "domain": "gulliblegrip.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (gulliblegrip.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38652,10 +38685,10 @@ "gustocooking.com": { "domain": "gustocooking.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (gustocooking.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38663,10 +38696,10 @@ "gustygrandmother.com": { "domain": "gustygrandmother.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (gustygrandmother.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38674,10 +38707,10 @@ "h78xb.pw": { "domain": "h78xb.pw", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (h78xb.pw)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38685,10 +38718,10 @@ "habitualhumor.com": { "domain": "habitualhumor.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (habitualhumor.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38696,10 +38729,10 @@ "halcyoncanyon.com": { "domain": "halcyoncanyon.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (halcyoncanyon.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38707,10 +38740,10 @@ "halcyonsculpture.com": { "domain": "halcyonsculpture.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (halcyonsculpture.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38718,10 +38751,10 @@ "hallowedinvention.com": { "domain": "hallowedinvention.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (hallowedinvention.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38729,10 +38762,10 @@ "haltingdivision.com": { "domain": "haltingdivision.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (haltingdivision.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38740,10 +38773,10 @@ "haltinggold.com": { "domain": "haltinggold.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (haltinggold.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38751,10 +38784,10 @@ "handleteeth.com": { "domain": "handleteeth.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (handleteeth.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38762,10 +38795,10 @@ "handnorth.com": { "domain": "handnorth.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (handnorth.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38773,10 +38806,10 @@ "handsomehose.com": { "domain": "handsomehose.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (handsomehose.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38784,10 +38817,10 @@ "handsomeindustry.com": { "domain": "handsomeindustry.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (handsomeindustry.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38795,10 +38828,10 @@ "handsomelythumb.com": { "domain": "handsomelythumb.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (handsomelythumb.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38806,10 +38839,10 @@ "handsomeyam.com": { "domain": "handsomeyam.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (handsomeyam.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38817,10 +38850,10 @@ "handyfield.com": { "domain": "handyfield.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (handyfield.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38828,10 +38861,10 @@ "handyfireman.com": { "domain": "handyfireman.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (handyfireman.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38839,10 +38872,10 @@ "handyincrease.com": { "domain": "handyincrease.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (handyincrease.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38850,10 +38883,10 @@ "haplesshydrant.com": { "domain": "haplesshydrant.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (haplesshydrant.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38861,10 +38894,10 @@ "haplessland.com": { "domain": "haplessland.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (haplessland.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38872,10 +38905,10 @@ "happysponge.com": { "domain": "happysponge.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (happysponge.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38883,10 +38916,10 @@ "harborcub.com": { "domain": "harborcub.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (harborcub.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38894,10 +38927,10 @@ "harmonicbamboo.com": { "domain": "harmonicbamboo.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (harmonicbamboo.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38905,10 +38938,10 @@ "harmonywing.com": { "domain": "harmonywing.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (harmonywing.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38916,10 +38949,10 @@ "headydegree.com": { "domain": "headydegree.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (headydegree.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38927,10 +38960,10 @@ "headyhook.com": { "domain": "headyhook.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (headyhook.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38938,10 +38971,10 @@ "healflowers.com": { "domain": "healflowers.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (healflowers.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38949,10 +38982,10 @@ "hearinglizards.com": { "domain": "hearinglizards.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (hearinglizards.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38960,10 +38993,10 @@ "heartbreakingmind.com": { "domain": "heartbreakingmind.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (heartbreakingmind.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38971,10 +39004,10 @@ "hearthorn.com": { "domain": "hearthorn.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (hearthorn.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38982,10 +39015,10 @@ "heavydetail.com": { "domain": "heavydetail.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (heavydetail.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38993,10 +39026,10 @@ "heavyplayground.com": { "domain": "heavyplayground.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (heavyplayground.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39004,10 +39037,10 @@ "helpcollar.com": { "domain": "helpcollar.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (helpcollar.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39015,10 +39048,10 @@ "helpflame.com": { "domain": "helpflame.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (helpflame.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39026,10 +39059,10 @@ "hfc195b.com": { "domain": "hfc195b.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (hfc195b.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39037,10 +39070,10 @@ "highfalutinbox.com": { "domain": "highfalutinbox.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (highfalutinbox.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39048,10 +39081,10 @@ "highfalutinhoney.com": { "domain": "highfalutinhoney.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (highfalutinhoney.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39059,10 +39092,10 @@ "hilariouszinc.com": { "domain": "hilariouszinc.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (hilariouszinc.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39070,10 +39103,10 @@ "historicalbeam.com": { "domain": "historicalbeam.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (historicalbeam.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39081,10 +39114,21 @@ "homelycrown.com": { "domain": "homelycrown.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (homelycrown.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "homeslick.com": { + "domain": "homeslick.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (homeslick.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39092,10 +39136,10 @@ "honeybulb.com": { "domain": "honeybulb.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (honeybulb.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39103,10 +39147,10 @@ "honeywhipped.com": { "domain": "honeywhipped.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (honeywhipped.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39114,10 +39158,10 @@ "honorablehydrant.com": { "domain": "honorablehydrant.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (honorablehydrant.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39125,10 +39169,10 @@ "horsenectar.com": { "domain": "horsenectar.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (horsenectar.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39136,10 +39180,10 @@ "hospitablehall.com": { "domain": "hospitablehall.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (hospitablehall.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39147,10 +39191,10 @@ "hospitablehat.com": { "domain": "hospitablehat.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (hospitablehat.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39158,10 +39202,10 @@ "howdyinbox.com": { "domain": "howdyinbox.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (howdyinbox.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39169,10 +39213,10 @@ "humdrumhobbies.com": { "domain": "humdrumhobbies.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (humdrumhobbies.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39180,10 +39224,10 @@ "humdrumtouch.com": { "domain": "humdrumtouch.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (humdrumtouch.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39191,10 +39235,10 @@ "hurtgrape.com": { "domain": "hurtgrape.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (hurtgrape.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39202,10 +39246,10 @@ "hypnoticwound.com": { "domain": "hypnoticwound.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (hypnoticwound.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39213,10 +39257,10 @@ "hystericalcloth.com": { "domain": "hystericalcloth.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (hystericalcloth.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39224,10 +39268,10 @@ "hystericalfinger.com": { "domain": "hystericalfinger.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (hystericalfinger.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39235,10 +39279,10 @@ "i9w8p.pw": { "domain": "i9w8p.pw", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (i9w8p.pw)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39246,10 +39290,10 @@ "idolscene.com": { "domain": "idolscene.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (idolscene.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39257,10 +39301,10 @@ "idyllicjazz.com": { "domain": "idyllicjazz.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (idyllicjazz.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39268,10 +39312,10 @@ "illinvention.com": { "domain": "illinvention.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (illinvention.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39279,10 +39323,10 @@ "illustriousoatmeal.com": { "domain": "illustriousoatmeal.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (illustriousoatmeal.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39290,10 +39334,10 @@ "immensehoney.com": { "domain": "immensehoney.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (immensehoney.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39301,10 +39345,10 @@ "imminentshake.com": { "domain": "imminentshake.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (imminentshake.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39312,10 +39356,10 @@ "importantmeat.com": { "domain": "importantmeat.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (importantmeat.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39323,10 +39367,10 @@ "importedincrease.com": { "domain": "importedincrease.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (importedincrease.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39334,10 +39378,10 @@ "importedinsect.com": { "domain": "importedinsect.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (importedinsect.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39345,10 +39389,10 @@ "importlocate.com": { "domain": "importlocate.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (importlocate.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39356,10 +39400,10 @@ "impossibleexpansion.com": { "domain": "impossibleexpansion.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (impossibleexpansion.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39367,10 +39411,10 @@ "impossiblemove.com": { "domain": "impossiblemove.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (impossiblemove.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39378,10 +39422,10 @@ "impulsejewel.com": { "domain": "impulsejewel.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (impulsejewel.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39389,10 +39433,10 @@ "impulselumber.com": { "domain": "impulselumber.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (impulselumber.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39400,10 +39444,10 @@ "incomehippo.com": { "domain": "incomehippo.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (incomehippo.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39411,10 +39455,10 @@ "incompetentjoke.com": { "domain": "incompetentjoke.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (incompetentjoke.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39422,10 +39466,10 @@ "inconclusiveaction.com": { "domain": "inconclusiveaction.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (inconclusiveaction.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39433,10 +39477,10 @@ "infamousstream.com": { "domain": "infamousstream.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (infamousstream.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39444,10 +39488,10 @@ "innocentlamp.com": { "domain": "innocentlamp.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (innocentlamp.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39455,10 +39499,10 @@ "innocentwax.com": { "domain": "innocentwax.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (innocentwax.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39466,10 +39510,10 @@ "inputicicle.com": { "domain": "inputicicle.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (inputicicle.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39477,10 +39521,10 @@ "inquisitiveice.com": { "domain": "inquisitiveice.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (inquisitiveice.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39488,10 +39532,10 @@ "inquisitiveinvention.com": { "domain": "inquisitiveinvention.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (inquisitiveinvention.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39499,10 +39543,10 @@ "intelligentscissors.com": { "domain": "intelligentscissors.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (intelligentscissors.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39510,10 +39554,10 @@ "intentlens.com": { "domain": "intentlens.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (intentlens.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39521,10 +39565,10 @@ "interestdust.com": { "domain": "interestdust.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (interestdust.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39532,10 +39576,10 @@ "internalcondition.com": { "domain": "internalcondition.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (internalcondition.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39543,10 +39587,10 @@ "internalsink.com": { "domain": "internalsink.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (internalsink.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39554,10 +39598,32 @@ "iotapool.com": { "domain": "iotapool.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (iotapool.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "iridescentdusk.com": { + "domain": "iridescentdusk.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (iridescentdusk.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "iridescentvista.com": { + "domain": "iridescentvista.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (iridescentvista.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39565,10 +39631,10 @@ "irritatingfog.com": { "domain": "irritatingfog.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (irritatingfog.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39576,10 +39642,10 @@ "itemslice.com": { "domain": "itemslice.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (itemslice.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39587,10 +39653,10 @@ "ivykiosk.com": { "domain": "ivykiosk.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (ivykiosk.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39598,10 +39664,10 @@ "jadeitite.com": { "domain": "jadeitite.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (jadeitite.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39609,10 +39675,10 @@ "jaderooster.com": { "domain": "jaderooster.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (jaderooster.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39620,10 +39686,10 @@ "jailbulb.com": { "domain": "jailbulb.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (jailbulb.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39631,10 +39697,10 @@ "joblessdrum.com": { "domain": "joblessdrum.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (joblessdrum.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39642,10 +39708,10 @@ "jollylens.com": { "domain": "jollylens.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (jollylens.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39653,32 +39719,43 @@ "joyfulkeen.com": { "domain": "joyfulkeen.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (joyfulkeen.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" }, - "joyoussurprise.com": { - "domain": "joyoussurprise.com", + "joyfulvibe.com": { + "domain": "joyfulvibe.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (joyfulvibe.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" }, - "jubilantaura.com": { - "domain": "jubilantaura.com", + "joyoussurprise.com": { + "domain": "joyoussurprise.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (joyoussurprise.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "jubilantaura.com": { + "domain": "jubilantaura.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (jubilantaura.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39686,10 +39763,10 @@ "jubilantcanyon.com": { "domain": "jubilantcanyon.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (jubilantcanyon.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39697,10 +39774,10 @@ "jubilantcascade.com": { "domain": "jubilantcascade.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (jubilantcascade.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39708,10 +39785,43 @@ "jubilantglimmer.com": { "domain": "jubilantglimmer.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (jubilantglimmer.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "jubilanthush.com": { + "domain": "jubilanthush.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (jubilanthush.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "jubilantlagoon.com": { + "domain": "jubilantlagoon.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (jubilantlagoon.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "jubilantpinnacle.com": { + "domain": "jubilantpinnacle.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (jubilantpinnacle.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39719,10 +39829,21 @@ "jubilanttempest.com": { "domain": "jubilanttempest.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (jubilanttempest.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "jubilantvista.com": { + "domain": "jubilantvista.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (jubilantvista.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39730,10 +39851,21 @@ "jubilantwhisper.com": { "domain": "jubilantwhisper.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (jubilantwhisper.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "juicebard.com": { + "domain": "juicebard.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (juicebard.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39741,10 +39873,10 @@ "juiceblocks.com": { "domain": "juiceblocks.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (juiceblocks.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39752,10 +39884,21 @@ "justicejudo.com": { "domain": "justicejudo.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (justicejudo.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "justwebcards.com": { + "domain": "justwebcards.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (justwebcards.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39763,10 +39906,10 @@ "k54nw.pw": { "domain": "k54nw.pw", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (k54nw.pw)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39774,10 +39917,10 @@ "kaputquill.com": { "domain": "kaputquill.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (kaputquill.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39785,10 +39928,21 @@ "keenquill.com": { "domain": "keenquill.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (keenquill.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "kibbleandbytes.com": { + "domain": "kibbleandbytes.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (kibbleandbytes.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39796,10 +39950,10 @@ "kindhush.com": { "domain": "kindhush.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (kindhush.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39807,10 +39961,10 @@ "kitesquirrel.com": { "domain": "kitesquirrel.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (kitesquirrel.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39818,10 +39972,10 @@ "knitstamp.com": { "domain": "knitstamp.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (knitstamp.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39829,10 +39983,10 @@ "laboredlight.com": { "domain": "laboredlight.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (laboredlight.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39840,10 +39994,10 @@ "lameletters.com": { "domain": "lameletters.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (lameletters.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39851,10 +40005,10 @@ "lamplow.com": { "domain": "lamplow.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (lamplow.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39862,10 +40016,10 @@ "largebrass.com": { "domain": "largebrass.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (largebrass.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39873,10 +40027,10 @@ "lasttaco.com": { "domain": "lasttaco.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (lasttaco.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39884,10 +40038,21 @@ "leaplunchroom.com": { "domain": "leaplunchroom.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (leaplunchroom.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "ledlocket.com": { + "domain": "ledlocket.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (ledlocket.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39895,10 +40060,10 @@ "leftliquid.com": { "domain": "leftliquid.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (leftliquid.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39906,10 +40071,10 @@ "lemonpackage.com": { "domain": "lemonpackage.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (lemonpackage.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39917,10 +40082,10 @@ "lemonsandjoy.com": { "domain": "lemonsandjoy.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (lemonsandjoy.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39928,10 +40093,10 @@ "liftedknowledge.com": { "domain": "liftedknowledge.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (liftedknowledge.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39939,10 +40104,10 @@ "lightenafterthought.com": { "domain": "lightenafterthought.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (lightenafterthought.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39950,10 +40115,10 @@ "lighttalon.com": { "domain": "lighttalon.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (lighttalon.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39961,10 +40126,10 @@ "livelumber.com": { "domain": "livelumber.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (livelumber.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39972,10 +40137,10 @@ "livelylaugh.com": { "domain": "livelylaugh.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (livelylaugh.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39983,10 +40148,10 @@ "livelyreward.com": { "domain": "livelyreward.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (livelyreward.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -39994,10 +40159,10 @@ "livingsleet.com": { "domain": "livingsleet.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (livingsleet.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40005,10 +40170,10 @@ "lizardslaugh.com": { "domain": "lizardslaugh.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (lizardslaugh.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40016,10 +40181,10 @@ "loadsurprise.com": { "domain": "loadsurprise.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (loadsurprise.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40027,10 +40192,10 @@ "lonelyflavor.com": { "domain": "lonelyflavor.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (lonelyflavor.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40038,10 +40203,10 @@ "longingtrees.com": { "domain": "longingtrees.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (longingtrees.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40049,10 +40214,10 @@ "lorenzourban.com": { "domain": "lorenzourban.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (lorenzourban.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40060,10 +40225,10 @@ "losslace.com": { "domain": "losslace.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (losslace.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40071,10 +40236,10 @@ "loudlunch.com": { "domain": "loudlunch.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (loudlunch.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40082,10 +40247,10 @@ "loveseashore.com": { "domain": "loveseashore.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (loveseashore.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40093,10 +40258,21 @@ "lp3tdqle.com": { "domain": "lp3tdqle.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (lp3tdqle.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "luckyzombie.com": { + "domain": "luckyzombie.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (luckyzombie.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40104,10 +40280,10 @@ "ludicrousarch.com": { "domain": "ludicrousarch.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (ludicrousarch.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40115,10 +40291,10 @@ "lumberamount.com": { "domain": "lumberamount.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (lumberamount.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40126,10 +40302,10 @@ "luminousboulevard.com": { "domain": "luminousboulevard.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (luminousboulevard.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40137,10 +40313,10 @@ "luminouscatalyst.com": { "domain": "luminouscatalyst.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (luminouscatalyst.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40148,10 +40324,10 @@ "luminoussculptor.com": { "domain": "luminoussculptor.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (luminoussculptor.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40159,10 +40335,10 @@ "lumpygnome.com": { "domain": "lumpygnome.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (lumpygnome.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40170,10 +40346,10 @@ "lumpylumber.com": { "domain": "lumpylumber.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (lumpylumber.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40181,10 +40357,10 @@ "lustroushaven.com": { "domain": "lustroushaven.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (lustroushaven.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40192,10 +40368,10 @@ "lyricshook.com": { "domain": "lyricshook.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (lyricshook.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40203,10 +40379,10 @@ "madebyintent.com": { "domain": "madebyintent.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (madebyintent.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40214,10 +40390,21 @@ "magicaljoin.com": { "domain": "magicaljoin.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (magicaljoin.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "magiczenith.com": { + "domain": "magiczenith.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (magiczenith.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40225,10 +40412,10 @@ "magnetairport.com": { "domain": "magnetairport.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (magnetairport.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40236,10 +40423,10 @@ "majesticmountainrange.com": { "domain": "majesticmountainrange.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (majesticmountainrange.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40247,10 +40434,10 @@ "majesticwaterscape.com": { "domain": "majesticwaterscape.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (majesticwaterscape.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40258,10 +40445,10 @@ "majesticwilderness.com": { "domain": "majesticwilderness.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (majesticwilderness.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40269,10 +40456,10 @@ "maliciousmusic.com": { "domain": "maliciousmusic.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (maliciousmusic.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40280,10 +40467,10 @@ "managedpush.com": { "domain": "managedpush.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (managedpush.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40291,10 +40478,21 @@ "mantrafox.com": { "domain": "mantrafox.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (mantrafox.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "mapbasin.com": { + "domain": "mapbasin.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (mapbasin.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40302,10 +40500,10 @@ "marblediscussion.com": { "domain": "marblediscussion.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (marblediscussion.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40313,10 +40511,10 @@ "markahouse.com": { "domain": "markahouse.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (markahouse.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40324,10 +40522,10 @@ "markedmeasure.com": { "domain": "markedmeasure.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (markedmeasure.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40335,10 +40533,10 @@ "marketspiders.com": { "domain": "marketspiders.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (marketspiders.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40346,10 +40544,10 @@ "marriedmailbox.com": { "domain": "marriedmailbox.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (marriedmailbox.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40357,10 +40555,10 @@ "marriedvalue.com": { "domain": "marriedvalue.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (marriedvalue.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40368,10 +40566,10 @@ "massivemark.com": { "domain": "massivemark.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (massivemark.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40379,10 +40577,10 @@ "materialisticmoon.com": { "domain": "materialisticmoon.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (materialisticmoon.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40390,10 +40588,10 @@ "materialmilk.com": { "domain": "materialmilk.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (materialmilk.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40401,10 +40599,10 @@ "materialplayground.com": { "domain": "materialplayground.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (materialplayground.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40412,10 +40610,10 @@ "meadowlullaby.com": { "domain": "meadowlullaby.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (meadowlullaby.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40423,10 +40621,10 @@ "meatydime.com": { "domain": "meatydime.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (meatydime.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40434,10 +40632,10 @@ "mediatescarf.com": { "domain": "mediatescarf.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (mediatescarf.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40445,10 +40643,10 @@ "mediumshort.com": { "domain": "mediumshort.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (mediumshort.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40456,10 +40654,10 @@ "mellowhush.com": { "domain": "mellowhush.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (mellowhush.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40467,10 +40665,10 @@ "mellowmailbox.com": { "domain": "mellowmailbox.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (mellowmailbox.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40478,10 +40676,10 @@ "melodiouschorus.com": { "domain": "melodiouschorus.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (melodiouschorus.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40489,10 +40687,21 @@ "melodiouscomposition.com": { "domain": "melodiouscomposition.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (melodiouscomposition.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "melodioussymphony.com": { + "domain": "melodioussymphony.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (melodioussymphony.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40500,10 +40709,10 @@ "meltmilk.com": { "domain": "meltmilk.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (meltmilk.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40511,10 +40720,10 @@ "memopilot.com": { "domain": "memopilot.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (memopilot.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40522,10 +40731,10 @@ "memorizeneck.com": { "domain": "memorizeneck.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (memorizeneck.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40533,10 +40742,10 @@ "meremark.com": { "domain": "meremark.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (meremark.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40544,10 +40753,10 @@ "merequartz.com": { "domain": "merequartz.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (merequartz.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40555,10 +40764,10 @@ "merryopal.com": { "domain": "merryopal.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (merryopal.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40566,10 +40775,10 @@ "merryvault.com": { "domain": "merryvault.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (merryvault.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40577,10 +40786,10 @@ "messagenovice.com": { "domain": "messagenovice.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (messagenovice.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40588,10 +40797,10 @@ "messyoranges.com": { "domain": "messyoranges.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (messyoranges.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40599,10 +40808,10 @@ "metajaws.com": { "domain": "metajaws.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (metajaws.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40610,10 +40819,10 @@ "mightyspiders.com": { "domain": "mightyspiders.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (mightyspiders.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40621,10 +40830,10 @@ "mimosamajor.com": { "domain": "mimosamajor.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (mimosamajor.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40632,10 +40841,10 @@ "mindfulgem.com": { "domain": "mindfulgem.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (mindfulgem.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40643,10 +40852,10 @@ "minorcattle.com": { "domain": "minorcattle.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (minorcattle.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40654,10 +40863,10 @@ "minusmental.com": { "domain": "minusmental.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (minusmental.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40665,10 +40874,10 @@ "minuteburst.com": { "domain": "minuteburst.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (minuteburst.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40676,10 +40885,10 @@ "miscreantmoon.com": { "domain": "miscreantmoon.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (miscreantmoon.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40687,10 +40896,10 @@ "mistyhorizon.com": { "domain": "mistyhorizon.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (mistyhorizon.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40698,10 +40907,10 @@ "mittencattle.com": { "domain": "mittencattle.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (mittencattle.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40709,10 +40918,10 @@ "mixedreading.com": { "domain": "mixedreading.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (mixedreading.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40720,10 +40929,10 @@ "modularmental.com": { "domain": "modularmental.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (modularmental.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40731,10 +40940,10 @@ "monacobeatles.com": { "domain": "monacobeatles.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (monacobeatles.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40742,10 +40951,10 @@ "moorshoes.com": { "domain": "moorshoes.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (moorshoes.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40753,10 +40962,10 @@ "morefriendly.com": { "domain": "morefriendly.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (morefriendly.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40764,10 +40973,10 @@ "motionlessbag.com": { "domain": "motionlessbag.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (motionlessbag.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40775,10 +40984,10 @@ "motionlessbelief.com": { "domain": "motionlessbelief.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (motionlessbelief.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40786,10 +40995,10 @@ "motionlessmeeting.com": { "domain": "motionlessmeeting.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (motionlessmeeting.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40797,10 +41006,10 @@ "movemeal.com": { "domain": "movemeal.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (movemeal.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40808,10 +41017,10 @@ "muddledaftermath.com": { "domain": "muddledaftermath.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (muddledaftermath.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40819,10 +41028,10 @@ "muddledmemory.com": { "domain": "muddledmemory.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (muddledmemory.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40830,10 +41039,10 @@ "mundanenail.com": { "domain": "mundanenail.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (mundanenail.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40841,10 +41050,10 @@ "mundanepollution.com": { "domain": "mundanepollution.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (mundanepollution.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40852,10 +41061,10 @@ "mushywaste.com": { "domain": "mushywaste.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (mushywaste.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40863,10 +41072,10 @@ "muteknife.com": { "domain": "muteknife.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (muteknife.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40874,10 +41083,10 @@ "mutemailbox.com": { "domain": "mutemailbox.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (mutemailbox.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40885,10 +41094,10 @@ "mysticalagoon.com": { "domain": "mysticalagoon.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (mysticalagoon.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40896,10 +41105,10 @@ "naivestatement.com": { "domain": "naivestatement.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (naivestatement.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40907,10 +41116,10 @@ "nappyneck.com": { "domain": "nappyneck.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (nappyneck.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40918,10 +41127,10 @@ "neatshade.com": { "domain": "neatshade.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (neatshade.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40929,10 +41138,10 @@ "nebulacrescent.com": { "domain": "nebulacrescent.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (nebulacrescent.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40940,10 +41149,10 @@ "nebulajubilee.com": { "domain": "nebulajubilee.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (nebulajubilee.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40951,10 +41160,10 @@ "nebulousamusement.com": { "domain": "nebulousamusement.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (nebulousamusement.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40962,10 +41171,10 @@ "nebulousgarden.com": { "domain": "nebulousgarden.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (nebulousgarden.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40973,10 +41182,10 @@ "nebulousquasar.com": { "domain": "nebulousquasar.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (nebulousquasar.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40984,10 +41193,10 @@ "nebulousripple.com": { "domain": "nebulousripple.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (nebulousripple.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -40995,10 +41204,10 @@ "needlessnorth.com": { "domain": "needlessnorth.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (needlessnorth.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41006,10 +41215,10 @@ "needyneedle.com": { "domain": "needyneedle.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (needyneedle.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41017,10 +41226,21 @@ "neighborlywatch.com": { "domain": "neighborlywatch.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (neighborlywatch.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "newsletterjet.com": { + "domain": "newsletterjet.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (newsletterjet.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41028,10 +41248,10 @@ "niftygraphs.com": { "domain": "niftygraphs.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (niftygraphs.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41039,10 +41259,10 @@ "niftyhospital.com": { "domain": "niftyhospital.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (niftyhospital.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41050,10 +41270,21 @@ "niftyjelly.com": { "domain": "niftyjelly.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (niftyjelly.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "niftyreports.com": { + "domain": "niftyreports.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (niftyreports.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41061,10 +41292,10 @@ "nightwound.com": { "domain": "nightwound.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (nightwound.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41072,10 +41303,10 @@ "nimbleplot.com": { "domain": "nimbleplot.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (nimbleplot.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41083,10 +41314,10 @@ "nocturnalloom.com": { "domain": "nocturnalloom.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (nocturnalloom.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41094,10 +41325,10 @@ "nocturnalmystique.com": { "domain": "nocturnalmystique.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (nocturnalmystique.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41105,10 +41336,10 @@ "noiselessplough.com": { "domain": "noiselessplough.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (noiselessplough.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41116,10 +41347,10 @@ "nonchalantnerve.com": { "domain": "nonchalantnerve.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (nonchalantnerve.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41127,10 +41358,10 @@ "nondescriptcrowd.com": { "domain": "nondescriptcrowd.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (nondescriptcrowd.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41138,10 +41369,10 @@ "nondescriptstocking.com": { "domain": "nondescriptstocking.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (nondescriptstocking.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41149,10 +41380,10 @@ "nostalgicknot.com": { "domain": "nostalgicknot.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (nostalgicknot.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41160,10 +41391,10 @@ "nostalgicneed.com": { "domain": "nostalgicneed.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (nostalgicneed.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41171,10 +41402,10 @@ "notifyglass.com": { "domain": "notifyglass.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (notifyglass.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41182,10 +41413,10 @@ "nudgeduck.com": { "domain": "nudgeduck.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (nudgeduck.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41193,10 +41424,10 @@ "nullnorth.com": { "domain": "nullnorth.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (nullnorth.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41204,10 +41435,10 @@ "numberlessring.com": { "domain": "numberlessring.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (numberlessring.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41215,10 +41446,10 @@ "numerousnest.com": { "domain": "numerousnest.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (numerousnest.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41226,10 +41457,10 @@ "nuttyorganization.com": { "domain": "nuttyorganization.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (nuttyorganization.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41237,10 +41468,10 @@ "oafishchance.com": { "domain": "oafishchance.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (oafishchance.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41248,10 +41479,10 @@ "oafishobservation.com": { "domain": "oafishobservation.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (oafishobservation.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41259,10 +41490,10 @@ "obscenesidewalk.com": { "domain": "obscenesidewalk.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (obscenesidewalk.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41270,10 +41501,10 @@ "observantice.com": { "domain": "observantice.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (observantice.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41281,10 +41512,10 @@ "oldfashionedoffer.com": { "domain": "oldfashionedoffer.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (oldfashionedoffer.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41292,10 +41523,10 @@ "omgthink.com": { "domain": "omgthink.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (omgthink.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41303,10 +41534,10 @@ "omniscientfeeling.com": { "domain": "omniscientfeeling.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (omniscientfeeling.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41314,10 +41545,10 @@ "onlywoofs.com": { "domain": "onlywoofs.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (onlywoofs.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41325,10 +41556,10 @@ "opalquill.com": { "domain": "opalquill.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (opalquill.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41336,10 +41567,10 @@ "operationchicken.com": { "domain": "operationchicken.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (operationchicken.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41347,10 +41578,10 @@ "operationnail.com": { "domain": "operationnail.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (operationnail.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41358,10 +41589,10 @@ "oppositeoperation.com": { "domain": "oppositeoperation.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (oppositeoperation.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41369,10 +41600,10 @@ "optimallimit.com": { "domain": "optimallimit.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (optimallimit.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41380,10 +41611,10 @@ "opulentsylvan.com": { "domain": "opulentsylvan.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (opulentsylvan.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41391,10 +41622,10 @@ "orientedargument.com": { "domain": "orientedargument.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (orientedargument.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41402,10 +41633,10 @@ "orionember.com": { "domain": "orionember.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (orionember.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41413,10 +41644,21 @@ "ourblogthing.com": { "domain": "ourblogthing.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (ourblogthing.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "outdoorthingy.com": { + "domain": "outdoorthingy.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (outdoorthingy.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41424,10 +41666,10 @@ "outgoinggiraffe.com": { "domain": "outgoinggiraffe.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (outgoinggiraffe.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41435,10 +41677,10 @@ "outsidevibe.com": { "domain": "outsidevibe.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (outsidevibe.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41446,10 +41688,10 @@ "outstandingincome.com": { "domain": "outstandingincome.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (outstandingincome.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41457,10 +41699,10 @@ "outstandingsnails.com": { "domain": "outstandingsnails.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (outstandingsnails.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41468,10 +41710,10 @@ "overkick.com": { "domain": "overkick.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (overkick.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41479,10 +41721,10 @@ "overratedchalk.com": { "domain": "overratedchalk.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (overratedchalk.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41490,10 +41732,10 @@ "owlsr.us": { "domain": "owlsr.us", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (owlsr.us)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41501,10 +41743,10 @@ "oxygenfuse.com": { "domain": "oxygenfuse.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (oxygenfuse.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41512,10 +41754,10 @@ "pailcrime.com": { "domain": "pailcrime.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (pailcrime.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41523,10 +41765,10 @@ "painstakingpickle.com": { "domain": "painstakingpickle.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (painstakingpickle.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41534,10 +41776,10 @@ "paintpear.com": { "domain": "paintpear.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (paintpear.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41545,10 +41787,10 @@ "paleleaf.com": { "domain": "paleleaf.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (paleleaf.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41556,10 +41798,10 @@ "pamelarandom.com": { "domain": "pamelarandom.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (pamelarandom.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41567,10 +41809,10 @@ "panickycurtain.com": { "domain": "panickycurtain.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (panickycurtain.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41578,10 +41820,10 @@ "parallelbulb.com": { "domain": "parallelbulb.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (parallelbulb.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41589,10 +41831,10 @@ "pardonpopular.com": { "domain": "pardonpopular.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (pardonpopular.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41600,10 +41842,10 @@ "parentpicture.com": { "domain": "parentpicture.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (parentpicture.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41611,10 +41853,10 @@ "parsimoniouspolice.com": { "domain": "parsimoniouspolice.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (parsimoniouspolice.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41622,10 +41864,10 @@ "passivepolo.com": { "domain": "passivepolo.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (passivepolo.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41633,10 +41875,10 @@ "pastoralroad.com": { "domain": "pastoralroad.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (pastoralroad.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41644,10 +41886,10 @@ "pawsnug.com": { "domain": "pawsnug.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (pawsnug.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41655,10 +41897,10 @@ "peacefullimit.com": { "domain": "peacefullimit.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (peacefullimit.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41666,10 +41908,10 @@ "pedromister.com": { "domain": "pedromister.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (pedromister.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41677,10 +41919,10 @@ "pedropanther.com": { "domain": "pedropanther.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (pedropanther.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41688,10 +41930,10 @@ "perceivequarter.com": { "domain": "perceivequarter.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (perceivequarter.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41699,10 +41941,10 @@ "perkyjade.com": { "domain": "perkyjade.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (perkyjade.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41710,10 +41952,10 @@ "petiteumbrella.com": { "domain": "petiteumbrella.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (petiteumbrella.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41721,10 +41963,10 @@ "philippinch.com": { "domain": "philippinch.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (philippinch.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41732,10 +41974,10 @@ "photographpan.com": { "domain": "photographpan.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (photographpan.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41743,21 +41985,43 @@ "piespower.com": { "domain": "piespower.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (piespower.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" }, - "piquantgrove.com": { - "domain": "piquantgrove.com", + "pinchsquirrel.com": { + "domain": "pinchsquirrel.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (pinchsquirrel.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "pinkbonanza.com": { + "domain": "pinkbonanza.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (pinkbonanza.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "piquantgrove.com": { + "domain": "piquantgrove.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (piquantgrove.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41765,10 +42029,10 @@ "piquantmeadow.com": { "domain": "piquantmeadow.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (piquantmeadow.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41776,10 +42040,10 @@ "piquantpigs.com": { "domain": "piquantpigs.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (piquantpigs.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41787,10 +42051,10 @@ "piquantprice.com": { "domain": "piquantprice.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (piquantprice.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41798,10 +42062,10 @@ "piquantvortex.com": { "domain": "piquantvortex.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (piquantvortex.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41809,10 +42073,10 @@ "pixeledhub.com": { "domain": "pixeledhub.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (pixeledhub.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41820,10 +42084,10 @@ "pizzasnut.com": { "domain": "pizzasnut.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (pizzasnut.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41831,10 +42095,10 @@ "placeframe.com": { "domain": "placeframe.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (placeframe.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41842,10 +42106,10 @@ "placidactivity.com": { "domain": "placidactivity.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (placidactivity.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41853,10 +42117,10 @@ "planebasin.com": { "domain": "planebasin.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (planebasin.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41864,10 +42128,10 @@ "plantdigestion.com": { "domain": "plantdigestion.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (plantdigestion.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41875,10 +42139,10 @@ "playfulriver.com": { "domain": "playfulriver.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (playfulriver.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41886,10 +42150,10 @@ "plotparent.com": { "domain": "plotparent.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (plotparent.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41897,10 +42161,10 @@ "pluckyzone.com": { "domain": "pluckyzone.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (pluckyzone.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41908,10 +42172,10 @@ "poemprompt.com": { "domain": "poemprompt.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (poemprompt.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41919,10 +42183,10 @@ "poeticpackage.com": { "domain": "poeticpackage.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (poeticpackage.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41930,10 +42194,10 @@ "pointdigestion.com": { "domain": "pointdigestion.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (pointdigestion.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41941,10 +42205,10 @@ "pointlesshour.com": { "domain": "pointlesshour.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (pointlesshour.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41952,10 +42216,10 @@ "pointlesspocket.com": { "domain": "pointlesspocket.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (pointlesspocket.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41963,10 +42227,10 @@ "pointlessprofit.com": { "domain": "pointlessprofit.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (pointlessprofit.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41974,10 +42238,21 @@ "pointlessrifle.com": { "domain": "pointlessrifle.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (pointlessrifle.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "poisedfuel.com": { + "domain": "poisedfuel.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (poisedfuel.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41985,10 +42260,10 @@ "polarismagnet.com": { "domain": "polarismagnet.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (polarismagnet.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -41996,10 +42271,10 @@ "polishedcrescent.com": { "domain": "polishedcrescent.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (polishedcrescent.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42007,10 +42282,10 @@ "polishedfolly.com": { "domain": "polishedfolly.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (polishedfolly.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42018,10 +42293,10 @@ "politeplanes.com": { "domain": "politeplanes.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (politeplanes.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42029,10 +42304,10 @@ "politicalflip.com": { "domain": "politicalflip.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (politicalflip.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42040,10 +42315,10 @@ "politicalporter.com": { "domain": "politicalporter.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (politicalporter.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42051,10 +42326,10 @@ "popplantation.com": { "domain": "popplantation.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (popplantation.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42062,10 +42337,10 @@ "possiblepencil.com": { "domain": "possiblepencil.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (possiblepencil.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42073,10 +42348,10 @@ "powderjourney.com": { "domain": "powderjourney.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (powderjourney.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42084,10 +42359,10 @@ "powerfulblends.com": { "domain": "powerfulblends.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (powerfulblends.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42095,10 +42370,10 @@ "preciousplanes.com": { "domain": "preciousplanes.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (preciousplanes.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42106,10 +42381,10 @@ "prefixpatriot.com": { "domain": "prefixpatriot.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (prefixpatriot.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42117,10 +42392,10 @@ "presetrabbits.com": { "domain": "presetrabbits.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (presetrabbits.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42128,10 +42403,10 @@ "previousplayground.com": { "domain": "previousplayground.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (previousplayground.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42139,10 +42414,10 @@ "previouspotato.com": { "domain": "previouspotato.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (previouspotato.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42150,10 +42425,10 @@ "pricklypollution.com": { "domain": "pricklypollution.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (pricklypollution.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42161,10 +42436,10 @@ "pristinegale.com": { "domain": "pristinegale.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (pristinegale.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42172,10 +42447,10 @@ "probablepartner.com": { "domain": "probablepartner.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (probablepartner.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42183,10 +42458,10 @@ "processplantation.com": { "domain": "processplantation.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (processplantation.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42194,10 +42469,10 @@ "producepickle.com": { "domain": "producepickle.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (producepickle.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42205,10 +42480,10 @@ "productsurfer.com": { "domain": "productsurfer.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (productsurfer.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42216,10 +42491,10 @@ "profitrumour.com": { "domain": "profitrumour.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (profitrumour.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42227,10 +42502,10 @@ "promiseair.com": { "domain": "promiseair.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (promiseair.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42238,10 +42513,10 @@ "proofconvert.com": { "domain": "proofconvert.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (proofconvert.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42249,10 +42524,10 @@ "propertypotato.com": { "domain": "propertypotato.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (propertypotato.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42260,10 +42535,10 @@ "protestcopy.com": { "domain": "protestcopy.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (protestcopy.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42271,10 +42546,10 @@ "psychedelicchess.com": { "domain": "psychedelicchess.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (psychedelicchess.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42282,10 +42557,10 @@ "publicsofa.com": { "domain": "publicsofa.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (publicsofa.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42293,10 +42568,10 @@ "puffyloss.com": { "domain": "puffyloss.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (puffyloss.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42304,10 +42579,10 @@ "puffypaste.com": { "domain": "puffypaste.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (puffypaste.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42315,10 +42590,10 @@ "puffypull.com": { "domain": "puffypull.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (puffypull.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42326,10 +42601,10 @@ "puffypurpose.com": { "domain": "puffypurpose.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (puffypurpose.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42337,10 +42612,10 @@ "pulsatingmeadow.com": { "domain": "pulsatingmeadow.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (pulsatingmeadow.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42348,10 +42623,10 @@ "pumpedpancake.com": { "domain": "pumpedpancake.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (pumpedpancake.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42359,10 +42634,10 @@ "pumpedpurpose.com": { "domain": "pumpedpurpose.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (pumpedpurpose.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42370,10 +42645,10 @@ "punyplant.com": { "domain": "punyplant.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (punyplant.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42381,10 +42656,10 @@ "puppytooth.com": { "domain": "puppytooth.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (puppytooth.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42392,10 +42667,10 @@ "purposepipe.com": { "domain": "purposepipe.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (purposepipe.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42403,10 +42678,10 @@ "quacksquirrel.com": { "domain": "quacksquirrel.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (quacksquirrel.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42414,10 +42689,10 @@ "quaintcan.com": { "domain": "quaintcan.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (quaintcan.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42425,10 +42700,10 @@ "quaintlake.com": { "domain": "quaintlake.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (quaintlake.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42436,10 +42711,10 @@ "quantumlagoon.com": { "domain": "quantumlagoon.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (quantumlagoon.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42447,10 +42722,10 @@ "quantumshine.com": { "domain": "quantumshine.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (quantumshine.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42458,10 +42733,10 @@ "queenskart.com": { "domain": "queenskart.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (queenskart.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42469,10 +42744,10 @@ "quillkick.com": { "domain": "quillkick.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (quillkick.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42480,10 +42755,10 @@ "quirkybliss.com": { "domain": "quirkybliss.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (quirkybliss.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42491,10 +42766,10 @@ "quirkysugar.com": { "domain": "quirkysugar.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (quirkysugar.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42502,10 +42777,10 @@ "quixoticnebula.com": { "domain": "quixoticnebula.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (quixoticnebula.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42513,10 +42788,10 @@ "rabbitbreath.com": { "domain": "rabbitbreath.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (rabbitbreath.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42524,10 +42799,10 @@ "rabbitrifle.com": { "domain": "rabbitrifle.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (rabbitrifle.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42535,10 +42810,10 @@ "radiantcanopy.com": { "domain": "radiantcanopy.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (radiantcanopy.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42546,10 +42821,10 @@ "radiantlullaby.com": { "domain": "radiantlullaby.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (radiantlullaby.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42557,10 +42832,10 @@ "railwaygiraffe.com": { "domain": "railwaygiraffe.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (railwaygiraffe.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42568,10 +42843,10 @@ "raintwig.com": { "domain": "raintwig.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (raintwig.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42579,10 +42854,10 @@ "rainyhand.com": { "domain": "rainyhand.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (rainyhand.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42590,10 +42865,10 @@ "rainyrule.com": { "domain": "rainyrule.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (rainyrule.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42601,10 +42876,10 @@ "rangecake.com": { "domain": "rangecake.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (rangecake.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42612,10 +42887,10 @@ "raresummer.com": { "domain": "raresummer.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (raresummer.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42623,10 +42898,10 @@ "reactjspdf.com": { "domain": "reactjspdf.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (reactjspdf.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42634,10 +42909,10 @@ "readingguilt.com": { "domain": "readingguilt.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (readingguilt.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42645,10 +42920,10 @@ "readymoon.com": { "domain": "readymoon.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (readymoon.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42656,10 +42931,10 @@ "readysnails.com": { "domain": "readysnails.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (readysnails.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42667,10 +42942,10 @@ "realizedoor.com": { "domain": "realizedoor.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (realizedoor.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42678,10 +42953,10 @@ "realizerecess.com": { "domain": "realizerecess.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (realizerecess.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42689,10 +42964,10 @@ "rebelclover.com": { "domain": "rebelclover.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (rebelclover.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42700,10 +42975,10 @@ "rebelhen.com": { "domain": "rebelhen.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (rebelhen.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42711,10 +42986,10 @@ "rebelsubway.com": { "domain": "rebelsubway.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (rebelsubway.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42722,10 +42997,10 @@ "receiptcent.com": { "domain": "receiptcent.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (receiptcent.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42733,10 +43008,10 @@ "receptiveink.com": { "domain": "receptiveink.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (receptiveink.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42744,10 +43019,10 @@ "receptivereaction.com": { "domain": "receptivereaction.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (receptivereaction.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42755,10 +43030,10 @@ "recessrain.com": { "domain": "recessrain.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (recessrain.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42766,10 +43041,10 @@ "reconditeprison.com": { "domain": "reconditeprison.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (reconditeprison.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42777,10 +43052,10 @@ "reflectivestatement.com": { "domain": "reflectivestatement.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (reflectivestatement.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42788,10 +43063,10 @@ "refundradar.com": { "domain": "refundradar.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (refundradar.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42799,10 +43074,10 @@ "regularplants.com": { "domain": "regularplants.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (regularplants.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42810,10 +43085,10 @@ "regulatesleet.com": { "domain": "regulatesleet.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (regulatesleet.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42821,10 +43096,10 @@ "relationrest.com": { "domain": "relationrest.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (relationrest.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42832,10 +43107,10 @@ "releasepath.com": { "domain": "releasepath.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (releasepath.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42843,10 +43118,10 @@ "reloadphoto.com": { "domain": "reloadphoto.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (reloadphoto.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42854,10 +43129,10 @@ "rememberdiscussion.com": { "domain": "rememberdiscussion.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (rememberdiscussion.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42865,10 +43140,10 @@ "rentinfinity.com": { "domain": "rentinfinity.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (rentinfinity.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42876,10 +43151,10 @@ "replaceroute.com": { "domain": "replaceroute.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (replaceroute.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42887,10 +43162,10 @@ "resonantbrush.com": { "domain": "resonantbrush.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (resonantbrush.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42898,10 +43173,10 @@ "respectrain.com": { "domain": "respectrain.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (respectrain.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42909,10 +43184,10 @@ "resplendentecho.com": { "domain": "resplendentecho.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (resplendentecho.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42920,10 +43195,10 @@ "retrievemint.com": { "domain": "retrievemint.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (retrievemint.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42931,10 +43206,10 @@ "rhetoricalactivity.com": { "domain": "rhetoricalactivity.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (rhetoricalactivity.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42942,10 +43217,10 @@ "rhetoricalveil.com": { "domain": "rhetoricalveil.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (rhetoricalveil.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42953,10 +43228,10 @@ "rhymezebra.com": { "domain": "rhymezebra.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (rhymezebra.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42964,10 +43239,10 @@ "rhythmrule.com": { "domain": "rhythmrule.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (rhythmrule.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42975,10 +43250,10 @@ "richstring.com": { "domain": "richstring.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (richstring.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42986,10 +43261,10 @@ "rigidrobin.com": { "domain": "rigidrobin.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (rigidrobin.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -42997,10 +43272,10 @@ "rigidveil.com": { "domain": "rigidveil.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (rigidveil.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43008,10 +43283,10 @@ "rigorlab.com": { "domain": "rigorlab.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (rigorlab.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43019,10 +43294,10 @@ "ringplant.com": { "domain": "ringplant.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (ringplant.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43030,10 +43305,10 @@ "ringsrecord.com": { "domain": "ringsrecord.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (ringsrecord.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43041,10 +43316,10 @@ "ritzykey.com": { "domain": "ritzykey.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (ritzykey.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43052,10 +43327,10 @@ "ritzyrepresentative.com": { "domain": "ritzyrepresentative.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (ritzyrepresentative.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43063,10 +43338,10 @@ "ritzyveil.com": { "domain": "ritzyveil.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (ritzyveil.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43074,10 +43349,10 @@ "rockpebbles.com": { "domain": "rockpebbles.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (rockpebbles.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43085,10 +43360,10 @@ "rollconnection.com": { "domain": "rollconnection.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (rollconnection.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43096,10 +43371,10 @@ "roofrelation.com": { "domain": "roofrelation.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (roofrelation.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43107,10 +43382,10 @@ "roseincome.com": { "domain": "roseincome.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (roseincome.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43118,10 +43393,10 @@ "rottenray.com": { "domain": "rottenray.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (rottenray.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43129,10 +43404,10 @@ "rusticprice.com": { "domain": "rusticprice.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (rusticprice.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43140,10 +43415,10 @@ "ruthlessdegree.com": { "domain": "ruthlessdegree.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (ruthlessdegree.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43151,10 +43426,10 @@ "ruthlessmilk.com": { "domain": "ruthlessmilk.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (ruthlessmilk.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43162,10 +43437,10 @@ "sableloss.com": { "domain": "sableloss.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sableloss.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43173,10 +43448,10 @@ "sablesmile.com": { "domain": "sablesmile.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sablesmile.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43184,10 +43459,21 @@ "sadloaf.com": { "domain": "sadloaf.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sadloaf.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "safetybrush.com": { + "domain": "safetybrush.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (safetybrush.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43195,10 +43481,10 @@ "saffronrefuge.com": { "domain": "saffronrefuge.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (saffronrefuge.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43206,10 +43492,10 @@ "sagargift.com": { "domain": "sagargift.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sagargift.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43217,10 +43503,10 @@ "saltsacademy.com": { "domain": "saltsacademy.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (saltsacademy.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43228,10 +43514,10 @@ "samesticks.com": { "domain": "samesticks.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (samesticks.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43239,10 +43525,10 @@ "samplesamba.com": { "domain": "samplesamba.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (samplesamba.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43250,10 +43536,10 @@ "sandstrophies.com": { "domain": "sandstrophies.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sandstrophies.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43261,10 +43547,10 @@ "scarcecard.com": { "domain": "scarcecard.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (scarcecard.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43272,10 +43558,10 @@ "scarceshock.com": { "domain": "scarceshock.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (scarceshock.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43283,10 +43569,10 @@ "scarcesign.com": { "domain": "scarcesign.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (scarcesign.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43294,10 +43580,10 @@ "scarcestructure.com": { "domain": "scarcestructure.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (scarcestructure.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43305,10 +43591,10 @@ "scarcesurprise.com": { "domain": "scarcesurprise.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (scarcesurprise.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43316,10 +43602,10 @@ "scaredcomfort.com": { "domain": "scaredcomfort.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (scaredcomfort.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43327,10 +43613,10 @@ "scaredsidewalk.com": { "domain": "scaredsidewalk.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (scaredsidewalk.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43338,10 +43624,10 @@ "scaredslip.com": { "domain": "scaredslip.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (scaredslip.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43349,10 +43635,10 @@ "scaredsnake.com": { "domain": "scaredsnake.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (scaredsnake.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43360,10 +43646,10 @@ "scaredswing.com": { "domain": "scaredswing.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (scaredswing.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43371,10 +43657,10 @@ "scarefowl.com": { "domain": "scarefowl.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (scarefowl.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43382,10 +43668,10 @@ "scatteredheat.com": { "domain": "scatteredheat.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (scatteredheat.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43393,10 +43679,10 @@ "scatteredquiver.com": { "domain": "scatteredquiver.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (scatteredquiver.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43404,10 +43690,10 @@ "scatteredstream.com": { "domain": "scatteredstream.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (scatteredstream.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43415,10 +43701,10 @@ "scenicapparel.com": { "domain": "scenicapparel.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (scenicapparel.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43426,10 +43712,10 @@ "scenicdrops.com": { "domain": "scenicdrops.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (scenicdrops.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43437,10 +43723,10 @@ "scientificshirt.com": { "domain": "scientificshirt.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (scientificshirt.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43448,10 +43734,10 @@ "scintillatingscissors.com": { "domain": "scintillatingscissors.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (scintillatingscissors.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43459,10 +43745,10 @@ "scissorsstatement.com": { "domain": "scissorsstatement.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (scissorsstatement.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43470,10 +43756,10 @@ "scrapesleep.com": { "domain": "scrapesleep.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (scrapesleep.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43481,10 +43767,10 @@ "scratchsofa.com": { "domain": "scratchsofa.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (scratchsofa.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43492,10 +43778,10 @@ "screechingfurniture.com": { "domain": "screechingfurniture.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (screechingfurniture.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43503,10 +43789,10 @@ "screechingstocking.com": { "domain": "screechingstocking.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (screechingstocking.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43514,10 +43800,10 @@ "scribbleson.com": { "domain": "scribbleson.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (scribbleson.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43525,10 +43811,10 @@ "scrollservice.com": { "domain": "scrollservice.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (scrollservice.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43536,10 +43822,10 @@ "scrubswim.com": { "domain": "scrubswim.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (scrubswim.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43547,10 +43833,10 @@ "seashoresociety.com": { "domain": "seashoresociety.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (seashoresociety.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43558,10 +43844,10 @@ "secondhandfall.com": { "domain": "secondhandfall.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (secondhandfall.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43569,10 +43855,10 @@ "secretivesheep.com": { "domain": "secretivesheep.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (secretivesheep.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43580,10 +43866,10 @@ "secretspiders.com": { "domain": "secretspiders.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (secretspiders.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43591,10 +43877,10 @@ "secretturtle.com": { "domain": "secretturtle.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (secretturtle.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43602,10 +43888,10 @@ "seedscissors.com": { "domain": "seedscissors.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (seedscissors.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43613,10 +43899,10 @@ "seemlysuggestion.com": { "domain": "seemlysuggestion.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (seemlysuggestion.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43624,10 +43910,10 @@ "selfishsea.com": { "domain": "selfishsea.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (selfishsea.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43635,10 +43921,10 @@ "sendingspire.com": { "domain": "sendingspire.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sendingspire.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43646,10 +43932,10 @@ "sensorsmile.com": { "domain": "sensorsmile.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sensorsmile.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43657,10 +43943,10 @@ "separatesort.com": { "domain": "separatesort.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (separatesort.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43668,10 +43954,10 @@ "seraphichorizon.com": { "domain": "seraphichorizon.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (seraphichorizon.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43679,10 +43965,10 @@ "seraphicjubilee.com": { "domain": "seraphicjubilee.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (seraphicjubilee.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43690,10 +43976,10 @@ "serendipityecho.com": { "domain": "serendipityecho.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (serendipityecho.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43701,10 +43987,10 @@ "serenecascade.com": { "domain": "serenecascade.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (serenecascade.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43712,10 +43998,10 @@ "serenepebble.com": { "domain": "serenepebble.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (serenepebble.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43723,10 +44009,21 @@ "serenesurf.com": { "domain": "serenesurf.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (serenesurf.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "serenezenith.com": { + "domain": "serenezenith.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (serenezenith.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43734,10 +44031,10 @@ "serioussuit.com": { "domain": "serioussuit.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (serioussuit.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43745,10 +44042,21 @@ "serpentshampoo.com": { "domain": "serpentshampoo.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (serpentshampoo.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "serverracer.com": { + "domain": "serverracer.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (serverracer.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43756,10 +44064,10 @@ "settleshoes.com": { "domain": "settleshoes.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (settleshoes.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43767,10 +44075,10 @@ "shadeship.com": { "domain": "shadeship.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (shadeship.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43778,10 +44086,10 @@ "shaggytank.com": { "domain": "shaggytank.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (shaggytank.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43789,10 +44097,10 @@ "shakyseat.com": { "domain": "shakyseat.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (shakyseat.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43800,10 +44108,10 @@ "shakysurprise.com": { "domain": "shakysurprise.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (shakysurprise.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43811,10 +44119,10 @@ "shakytaste.com": { "domain": "shakytaste.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (shakytaste.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43822,10 +44130,10 @@ "shallowblade.com": { "domain": "shallowblade.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (shallowblade.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43833,10 +44141,10 @@ "sharkskids.com": { "domain": "sharkskids.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sharkskids.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43844,10 +44152,10 @@ "sheargovernor.com": { "domain": "sheargovernor.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sheargovernor.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43855,10 +44163,10 @@ "shesubscriptions.com": { "domain": "shesubscriptions.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (shesubscriptions.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43866,10 +44174,10 @@ "shinypond.com": { "domain": "shinypond.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (shinypond.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43877,10 +44185,10 @@ "shirtsidewalk.com": { "domain": "shirtsidewalk.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (shirtsidewalk.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43888,10 +44196,10 @@ "shiveringspot.com": { "domain": "shiveringspot.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (shiveringspot.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43899,10 +44207,10 @@ "shiverscissors.com": { "domain": "shiverscissors.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (shiverscissors.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43910,10 +44218,10 @@ "shockinggrass.com": { "domain": "shockinggrass.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (shockinggrass.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43921,10 +44229,10 @@ "shockingship.com": { "domain": "shockingship.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (shockingship.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43932,10 +44240,10 @@ "shredquiz.com": { "domain": "shredquiz.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (shredquiz.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43943,10 +44251,10 @@ "shydinosaurs.com": { "domain": "shydinosaurs.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (shydinosaurs.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43954,10 +44262,10 @@ "sierrakermit.com": { "domain": "sierrakermit.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sierrakermit.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43965,10 +44273,10 @@ "signaturepod.com": { "domain": "signaturepod.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (signaturepod.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43976,10 +44284,10 @@ "siliconslow.com": { "domain": "siliconslow.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (siliconslow.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43987,10 +44295,10 @@ "sillyscrew.com": { "domain": "sillyscrew.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sillyscrew.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -43998,10 +44306,10 @@ "simplesidewalk.com": { "domain": "simplesidewalk.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (simplesidewalk.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44009,10 +44317,10 @@ "simulateswing.com": { "domain": "simulateswing.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (simulateswing.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44020,10 +44328,10 @@ "sincerebuffalo.com": { "domain": "sincerebuffalo.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sincerebuffalo.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44031,10 +44339,10 @@ "sincerepelican.com": { "domain": "sincerepelican.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sincerepelican.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44042,10 +44350,10 @@ "sinceresubstance.com": { "domain": "sinceresubstance.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sinceresubstance.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44053,10 +44361,10 @@ "sinkbooks.com": { "domain": "sinkbooks.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sinkbooks.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44064,10 +44372,10 @@ "sixscissors.com": { "domain": "sixscissors.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sixscissors.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44075,10 +44383,10 @@ "sizzlingsmoke.com": { "domain": "sizzlingsmoke.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sizzlingsmoke.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44086,10 +44394,10 @@ "slaysweater.com": { "domain": "slaysweater.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (slaysweater.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44097,10 +44405,10 @@ "slimyscarf.com": { "domain": "slimyscarf.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (slimyscarf.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44108,10 +44416,10 @@ "slinksuggestion.com": { "domain": "slinksuggestion.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (slinksuggestion.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44119,10 +44427,10 @@ "smallershops.com": { "domain": "smallershops.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (smallershops.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44130,10 +44438,10 @@ "smashshoe.com": { "domain": "smashshoe.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (smashshoe.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44141,10 +44449,10 @@ "smilewound.com": { "domain": "smilewound.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (smilewound.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44152,10 +44460,10 @@ "smilingcattle.com": { "domain": "smilingcattle.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (smilingcattle.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44163,10 +44471,10 @@ "smilingswim.com": { "domain": "smilingswim.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (smilingswim.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44174,10 +44482,10 @@ "smilingwaves.com": { "domain": "smilingwaves.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (smilingwaves.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44185,10 +44493,10 @@ "smoggysongs.com": { "domain": "smoggysongs.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (smoggysongs.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44196,10 +44504,10 @@ "smoggystation.com": { "domain": "smoggystation.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (smoggystation.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44207,10 +44515,10 @@ "snacktoken.com": { "domain": "snacktoken.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (snacktoken.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44218,10 +44526,10 @@ "snakemineral.com": { "domain": "snakemineral.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (snakemineral.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44229,10 +44537,21 @@ "snakeslang.com": { "domain": "snakeslang.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (snakeslang.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "snappyreport.com": { + "domain": "snappyreport.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (snappyreport.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44240,10 +44559,10 @@ "sneakwind.com": { "domain": "sneakwind.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sneakwind.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44251,10 +44570,10 @@ "sneakystew.com": { "domain": "sneakystew.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sneakystew.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44262,10 +44581,10 @@ "snoresmile.com": { "domain": "snoresmile.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (snoresmile.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44273,10 +44592,21 @@ "snowmentor.com": { "domain": "snowmentor.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (snowmentor.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "softwarerumble.com": { + "domain": "softwarerumble.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (softwarerumble.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44284,10 +44614,10 @@ "soggysponge.com": { "domain": "soggysponge.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (soggysponge.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44295,10 +44625,10 @@ "soggyzoo.com": { "domain": "soggyzoo.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (soggyzoo.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44306,10 +44636,10 @@ "solarislabyrinth.com": { "domain": "solarislabyrinth.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (solarislabyrinth.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44317,10 +44647,10 @@ "somberscarecrow.com": { "domain": "somberscarecrow.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (somberscarecrow.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44328,10 +44658,10 @@ "sombersea.com": { "domain": "sombersea.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sombersea.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44339,10 +44669,10 @@ "sombersquirrel.com": { "domain": "sombersquirrel.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sombersquirrel.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44350,10 +44680,10 @@ "sombersticks.com": { "domain": "sombersticks.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sombersticks.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44361,10 +44691,10 @@ "sombersurprise.com": { "domain": "sombersurprise.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sombersurprise.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44372,10 +44702,10 @@ "soothingglade.com": { "domain": "soothingglade.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (soothingglade.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44383,10 +44713,10 @@ "sophisticatedstove.com": { "domain": "sophisticatedstove.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sophisticatedstove.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44394,10 +44724,10 @@ "sordidsmile.com": { "domain": "sordidsmile.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sordidsmile.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44405,10 +44735,10 @@ "soresidewalk.com": { "domain": "soresidewalk.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (soresidewalk.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44416,10 +44746,10 @@ "soresneeze.com": { "domain": "soresneeze.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (soresneeze.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44427,10 +44757,10 @@ "sorethunder.com": { "domain": "sorethunder.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sorethunder.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44438,10 +44768,21 @@ "soretrain.com": { "domain": "soretrain.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (soretrain.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "sortanoisy.com": { + "domain": "sortanoisy.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (sortanoisy.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44449,10 +44790,10 @@ "sortsail.com": { "domain": "sortsail.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sortsail.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44460,10 +44801,10 @@ "sortsummer.com": { "domain": "sortsummer.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sortsummer.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44471,10 +44812,10 @@ "sowlettuce.com": { "domain": "sowlettuce.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sowlettuce.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44482,10 +44823,10 @@ "spadelocket.com": { "domain": "spadelocket.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (spadelocket.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44493,10 +44834,10 @@ "sparkgoal.com": { "domain": "sparkgoal.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sparkgoal.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44504,10 +44845,10 @@ "sparklingshelf.com": { "domain": "sparklingshelf.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sparklingshelf.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44515,10 +44856,10 @@ "specialscissors.com": { "domain": "specialscissors.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (specialscissors.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44526,10 +44867,10 @@ "spellmist.com": { "domain": "spellmist.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (spellmist.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44537,10 +44878,10 @@ "spellsalsa.com": { "domain": "spellsalsa.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (spellsalsa.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44548,10 +44889,10 @@ "spiffymachine.com": { "domain": "spiffymachine.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (spiffymachine.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44559,10 +44900,10 @@ "spirebaboon.com": { "domain": "spirebaboon.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (spirebaboon.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44570,10 +44911,10 @@ "spookystitch.com": { "domain": "spookystitch.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (spookystitch.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44581,10 +44922,10 @@ "spoonsilk.com": { "domain": "spoonsilk.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (spoonsilk.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44592,10 +44933,10 @@ "spotlessstamp.com": { "domain": "spotlessstamp.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (spotlessstamp.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44603,10 +44944,10 @@ "spottednoise.com": { "domain": "spottednoise.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (spottednoise.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44614,10 +44955,10 @@ "springolive.com": { "domain": "springolive.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (springolive.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44625,10 +44966,10 @@ "springsister.com": { "domain": "springsister.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (springsister.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44636,10 +44977,10 @@ "springsnails.com": { "domain": "springsnails.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (springsnails.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44647,10 +44988,10 @@ "sproutingbag.com": { "domain": "sproutingbag.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sproutingbag.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44658,10 +44999,10 @@ "sprydelta.com": { "domain": "sprydelta.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sprydelta.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44669,10 +45010,10 @@ "sprysummit.com": { "domain": "sprysummit.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sprysummit.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44680,10 +45021,10 @@ "spuriousair.com": { "domain": "spuriousair.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (spuriousair.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44691,10 +45032,10 @@ "spuriousbase.com": { "domain": "spuriousbase.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (spuriousbase.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44702,10 +45043,10 @@ "spurioussquirrel.com": { "domain": "spurioussquirrel.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (spurioussquirrel.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44713,10 +45054,10 @@ "spuriousstranger.com": { "domain": "spuriousstranger.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (spuriousstranger.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44724,10 +45065,10 @@ "spysubstance.com": { "domain": "spysubstance.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (spysubstance.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44735,10 +45076,10 @@ "squalidscrew.com": { "domain": "squalidscrew.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (squalidscrew.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44746,10 +45087,10 @@ "squeakzinc.com": { "domain": "squeakzinc.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (squeakzinc.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44757,10 +45098,10 @@ "squealingturn.com": { "domain": "squealingturn.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (squealingturn.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44768,10 +45109,10 @@ "stakingbasket.com": { "domain": "stakingbasket.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (stakingbasket.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44779,10 +45120,10 @@ "stakingshock.com": { "domain": "stakingshock.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (stakingshock.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44790,10 +45131,10 @@ "staleshow.com": { "domain": "staleshow.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (staleshow.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44801,10 +45142,10 @@ "stalesummer.com": { "domain": "stalesummer.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (stalesummer.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44812,10 +45153,10 @@ "starkscale.com": { "domain": "starkscale.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (starkscale.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44823,10 +45164,10 @@ "startingcars.com": { "domain": "startingcars.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (startingcars.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44834,10 +45175,10 @@ "statshunt.com": { "domain": "statshunt.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (statshunt.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44845,10 +45186,10 @@ "statuesqueship.com": { "domain": "statuesqueship.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (statuesqueship.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44856,10 +45197,10 @@ "stayaction.com": { "domain": "stayaction.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (stayaction.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44867,10 +45208,10 @@ "steadycopper.com": { "domain": "steadycopper.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (steadycopper.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44878,10 +45219,10 @@ "stealsteel.com": { "domain": "stealsteel.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (stealsteel.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44889,10 +45230,10 @@ "steepscale.com": { "domain": "steepscale.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (steepscale.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44900,10 +45241,10 @@ "steepsister.com": { "domain": "steepsister.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (steepsister.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44911,10 +45252,10 @@ "stepcattle.com": { "domain": "stepcattle.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (stepcattle.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44922,10 +45263,10 @@ "stepplane.com": { "domain": "stepplane.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (stepplane.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44933,10 +45274,10 @@ "stepwisevideo.com": { "domain": "stepwisevideo.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (stepwisevideo.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44944,10 +45285,10 @@ "stereoproxy.com": { "domain": "stereoproxy.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (stereoproxy.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44955,10 +45296,10 @@ "stewspiders.com": { "domain": "stewspiders.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (stewspiders.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44966,10 +45307,10 @@ "stiffstem.com": { "domain": "stiffstem.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (stiffstem.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44977,10 +45318,10 @@ "stimulatingsneeze.com": { "domain": "stimulatingsneeze.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (stimulatingsneeze.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44988,10 +45329,10 @@ "stingsquirrel.com": { "domain": "stingsquirrel.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (stingsquirrel.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -44999,10 +45340,10 @@ "stingyshoe.com": { "domain": "stingyshoe.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (stingyshoe.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45010,10 +45351,10 @@ "stingyspoon.com": { "domain": "stingyspoon.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (stingyspoon.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45021,10 +45362,10 @@ "stockingsleet.com": { "domain": "stockingsleet.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (stockingsleet.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45032,10 +45373,10 @@ "stockingsneeze.com": { "domain": "stockingsneeze.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (stockingsneeze.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45043,10 +45384,10 @@ "stomachscience.com": { "domain": "stomachscience.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (stomachscience.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45054,10 +45395,10 @@ "stonechin.com": { "domain": "stonechin.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (stonechin.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45065,10 +45406,10 @@ "stopstomach.com": { "domain": "stopstomach.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (stopstomach.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45076,10 +45417,10 @@ "stormyachiever.com": { "domain": "stormyachiever.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (stormyachiever.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45087,10 +45428,10 @@ "stormyfold.com": { "domain": "stormyfold.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (stormyfold.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45098,10 +45439,10 @@ "strangeclocks.com": { "domain": "strangeclocks.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (strangeclocks.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45109,10 +45450,10 @@ "strangersponge.com": { "domain": "strangersponge.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (strangersponge.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45120,10 +45461,10 @@ "strangesink.com": { "domain": "strangesink.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (strangesink.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45131,10 +45472,10 @@ "streetsort.com": { "domain": "streetsort.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (streetsort.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45142,10 +45483,10 @@ "stretchsister.com": { "domain": "stretchsister.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (stretchsister.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45153,10 +45494,10 @@ "stretchsneeze.com": { "domain": "stretchsneeze.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (stretchsneeze.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45164,10 +45505,10 @@ "stretchsquirrel.com": { "domain": "stretchsquirrel.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (stretchsquirrel.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45175,10 +45516,10 @@ "stripedbat.com": { "domain": "stripedbat.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (stripedbat.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45186,10 +45527,10 @@ "strivesidewalk.com": { "domain": "strivesidewalk.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (strivesidewalk.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45197,10 +45538,10 @@ "sturdysnail.com": { "domain": "sturdysnail.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sturdysnail.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45208,10 +45549,10 @@ "subletyoke.com": { "domain": "subletyoke.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (subletyoke.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45219,10 +45560,10 @@ "sublimequartz.com": { "domain": "sublimequartz.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sublimequartz.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45230,10 +45571,10 @@ "subsequentswim.com": { "domain": "subsequentswim.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (subsequentswim.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45241,10 +45582,10 @@ "substantialcarpenter.com": { "domain": "substantialcarpenter.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (substantialcarpenter.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45252,10 +45593,10 @@ "substantialgrade.com": { "domain": "substantialgrade.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (substantialgrade.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45263,10 +45604,10 @@ "succeedscene.com": { "domain": "succeedscene.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (succeedscene.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45274,10 +45615,10 @@ "successfulscent.com": { "domain": "successfulscent.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (successfulscent.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45285,10 +45626,10 @@ "suddensoda.com": { "domain": "suddensoda.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (suddensoda.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45296,10 +45637,10 @@ "sugarfriction.com": { "domain": "sugarfriction.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sugarfriction.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45307,10 +45648,10 @@ "suggestionbridge.com": { "domain": "suggestionbridge.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (suggestionbridge.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45318,10 +45659,10 @@ "summerobject.com": { "domain": "summerobject.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (summerobject.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45329,10 +45670,10 @@ "sunshinegates.com": { "domain": "sunshinegates.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (sunshinegates.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45340,10 +45681,10 @@ "superchichair.com": { "domain": "superchichair.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (superchichair.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45351,10 +45692,10 @@ "superficialspring.com": { "domain": "superficialspring.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (superficialspring.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45362,10 +45703,10 @@ "superviseshoes.com": { "domain": "superviseshoes.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (superviseshoes.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45373,10 +45714,10 @@ "supportwaves.com": { "domain": "supportwaves.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (supportwaves.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45384,10 +45725,10 @@ "suspectmark.com": { "domain": "suspectmark.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (suspectmark.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45395,10 +45736,10 @@ "swellstocking.com": { "domain": "swellstocking.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (swellstocking.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45406,10 +45747,21 @@ "swelteringsleep.com": { "domain": "swelteringsleep.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (swelteringsleep.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "swimfreely.com": { + "domain": "swimfreely.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (swimfreely.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45417,10 +45769,10 @@ "swingslip.com": { "domain": "swingslip.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (swingslip.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45428,10 +45780,10 @@ "swordgoose.com": { "domain": "swordgoose.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (swordgoose.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45439,10 +45791,10 @@ "syllablesight.com": { "domain": "syllablesight.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (syllablesight.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45450,10 +45802,10 @@ "synonymousrule.com": { "domain": "synonymousrule.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (synonymousrule.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45461,10 +45813,10 @@ "synonymoussticks.com": { "domain": "synonymoussticks.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (synonymoussticks.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45472,10 +45824,10 @@ "synthesizescarecrow.com": { "domain": "synthesizescarecrow.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (synthesizescarecrow.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45483,10 +45835,10 @@ "tackytrains.com": { "domain": "tackytrains.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tackytrains.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45494,10 +45846,10 @@ "tacojournal.com": { "domain": "tacojournal.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tacojournal.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45505,10 +45857,10 @@ "talltouch.com": { "domain": "talltouch.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (talltouch.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45516,10 +45868,21 @@ "tangibleteam.com": { "domain": "tangibleteam.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tangibleteam.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "tangletrace.com": { + "domain": "tangletrace.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (tangletrace.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45527,10 +45890,10 @@ "tangyamount.com": { "domain": "tangyamount.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tangyamount.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45538,10 +45901,10 @@ "tastelesstrees.com": { "domain": "tastelesstrees.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tastelesstrees.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45549,10 +45912,10 @@ "tastesnake.com": { "domain": "tastesnake.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tastesnake.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45560,10 +45923,10 @@ "tawdryson.com": { "domain": "tawdryson.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tawdryson.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45571,10 +45934,10 @@ "tdzvm.pw": { "domain": "tdzvm.pw", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tdzvm.pw)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45582,10 +45945,10 @@ "teacupbooks.com": { "domain": "teacupbooks.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (teacupbooks.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45593,10 +45956,10 @@ "tearfulglass.com": { "domain": "tearfulglass.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tearfulglass.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45604,10 +45967,10 @@ "techconverter.com": { "domain": "techconverter.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (techconverter.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45615,10 +45978,10 @@ "tediousbear.com": { "domain": "tediousbear.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tediousbear.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45626,10 +45989,10 @@ "tedioustooth.com": { "domain": "tedioustooth.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tedioustooth.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45637,10 +46000,10 @@ "teenytinycellar.com": { "domain": "teenytinycellar.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (teenytinycellar.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45648,10 +46011,10 @@ "teenytinytongue.com": { "domain": "teenytinytongue.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (teenytinytongue.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45659,10 +46022,10 @@ "telephoneapparatus.com": { "domain": "telephoneapparatus.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (telephoneapparatus.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45670,10 +46033,10 @@ "tempertrick.com": { "domain": "tempertrick.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tempertrick.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45681,10 +46044,10 @@ "tempttalk.com": { "domain": "tempttalk.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tempttalk.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45692,10 +46055,10 @@ "temptteam.com": { "domain": "temptteam.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (temptteam.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45703,10 +46066,10 @@ "terriblethumb.com": { "domain": "terriblethumb.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (terriblethumb.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45714,10 +46077,10 @@ "terrifictooth.com": { "domain": "terrifictooth.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (terrifictooth.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45725,10 +46088,10 @@ "testadmiral.com": { "domain": "testadmiral.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (testadmiral.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45736,10 +46099,10 @@ "texturetrick.com": { "domain": "texturetrick.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (texturetrick.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45747,10 +46110,10 @@ "therapeuticcars.com": { "domain": "therapeuticcars.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (therapeuticcars.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45758,10 +46121,10 @@ "thickticket.com": { "domain": "thickticket.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (thickticket.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45769,10 +46132,10 @@ "thicktrucks.com": { "domain": "thicktrucks.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (thicktrucks.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45780,10 +46143,10 @@ "thingsafterthought.com": { "domain": "thingsafterthought.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (thingsafterthought.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45791,10 +46154,10 @@ "thingstaste.com": { "domain": "thingstaste.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (thingstaste.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45802,10 +46165,10 @@ "thinkitwice.com": { "domain": "thinkitwice.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (thinkitwice.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45813,10 +46176,10 @@ "thirdrespect.com": { "domain": "thirdrespect.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (thirdrespect.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45824,10 +46187,10 @@ "thirstytwig.com": { "domain": "thirstytwig.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (thirstytwig.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45835,10 +46198,10 @@ "thomastorch.com": { "domain": "thomastorch.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (thomastorch.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45846,10 +46209,10 @@ "thoughtlessknot.com": { "domain": "thoughtlessknot.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (thoughtlessknot.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45857,10 +46220,10 @@ "thrivingmarketplace.com": { "domain": "thrivingmarketplace.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (thrivingmarketplace.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45868,10 +46231,10 @@ "ticketaunt.com": { "domain": "ticketaunt.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (ticketaunt.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45879,10 +46242,10 @@ "ticklesign.com": { "domain": "ticklesign.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (ticklesign.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45890,10 +46253,10 @@ "tidymitten.com": { "domain": "tidymitten.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tidymitten.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45901,10 +46264,10 @@ "tightpowder.com": { "domain": "tightpowder.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tightpowder.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45912,10 +46275,10 @@ "tinyswans.com": { "domain": "tinyswans.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tinyswans.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45923,10 +46286,10 @@ "tinytendency.com": { "domain": "tinytendency.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tinytendency.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45934,10 +46297,10 @@ "tiredthroat.com": { "domain": "tiredthroat.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tiredthroat.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45945,10 +46308,10 @@ "toolcapital.com": { "domain": "toolcapital.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (toolcapital.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45956,10 +46319,10 @@ "toomanyalts.com": { "domain": "toomanyalts.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (toomanyalts.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45967,10 +46330,21 @@ "torpidtongue.com": { "domain": "torpidtongue.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (torpidtongue.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "touristfuel.com": { + "domain": "touristfuel.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (touristfuel.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45978,10 +46352,10 @@ "trackcaddie.com": { "domain": "trackcaddie.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (trackcaddie.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -45989,10 +46363,10 @@ "tradetooth.com": { "domain": "tradetooth.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tradetooth.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46000,43 +46374,43 @@ "trafficviews.com": { "domain": "trafficviews.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (trafficviews.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" }, - "tranquilamulet.com": { - "domain": "tranquilamulet.com", + "tranquilarchipelago.com": { + "domain": "tranquilarchipelago.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tranquilarchipelago.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" }, - "tranquilarchipelago.com": { - "domain": "tranquilarchipelago.com", + "tranquilcan.com": { + "domain": "tranquilcan.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tranquilcan.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" }, - "tranquilcan.com": { - "domain": "tranquilcan.com", + "tranquilcanyon.com": { + "domain": "tranquilcanyon.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tranquilcanyon.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46044,10 +46418,10 @@ "tranquilplume.com": { "domain": "tranquilplume.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tranquilplume.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46055,10 +46429,10 @@ "tranquilside.com": { "domain": "tranquilside.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tranquilside.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46066,10 +46440,10 @@ "tranquilveil.com": { "domain": "tranquilveil.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tranquilveil.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46077,10 +46451,10 @@ "tranquilveranda.com": { "domain": "tranquilveranda.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tranquilveranda.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46088,10 +46462,10 @@ "trappush.com": { "domain": "trappush.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (trappush.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46099,10 +46473,10 @@ "treadbun.com": { "domain": "treadbun.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (treadbun.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46110,10 +46484,10 @@ "tremendousearthquake.com": { "domain": "tremendousearthquake.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tremendousearthquake.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46121,10 +46495,10 @@ "tremendousplastic.com": { "domain": "tremendousplastic.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tremendousplastic.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46132,10 +46506,10 @@ "tremendoustime.com": { "domain": "tremendoustime.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tremendoustime.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46143,10 +46517,10 @@ "tritebadge.com": { "domain": "tritebadge.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tritebadge.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46154,10 +46528,10 @@ "tritethunder.com": { "domain": "tritethunder.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tritethunder.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46165,10 +46539,10 @@ "tritetongue.com": { "domain": "tritetongue.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tritetongue.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46176,10 +46550,10 @@ "troubledtail.com": { "domain": "troubledtail.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (troubledtail.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46187,10 +46561,10 @@ "troubleshade.com": { "domain": "troubleshade.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (troubleshade.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46198,10 +46572,10 @@ "truckstomatoes.com": { "domain": "truckstomatoes.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (truckstomatoes.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46209,10 +46583,21 @@ "truculentrate.com": { "domain": "truculentrate.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (truculentrate.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "truebackpack.com": { + "domain": "truebackpack.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (truebackpack.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46220,10 +46605,10 @@ "tumbleicicle.com": { "domain": "tumbleicicle.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tumbleicicle.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46231,10 +46616,10 @@ "tuneupcoffee.com": { "domain": "tuneupcoffee.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tuneupcoffee.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46242,10 +46627,10 @@ "twistloss.com": { "domain": "twistloss.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (twistloss.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46253,10 +46638,10 @@ "twistsweater.com": { "domain": "twistsweater.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (twistsweater.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46264,10 +46649,10 @@ "typicalairplane.com": { "domain": "typicalairplane.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (typicalairplane.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46275,10 +46660,10 @@ "tzwaw.pw": { "domain": "tzwaw.pw", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (tzwaw.pw)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46286,10 +46671,10 @@ "ubiquitoussea.com": { "domain": "ubiquitoussea.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (ubiquitoussea.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46297,10 +46682,10 @@ "ubiquitousyard.com": { "domain": "ubiquitousyard.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (ubiquitousyard.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46308,10 +46693,10 @@ "ultravalid.com": { "domain": "ultravalid.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (ultravalid.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46319,10 +46704,10 @@ "unablehope.com": { "domain": "unablehope.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (unablehope.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46330,10 +46715,10 @@ "unaccountablecreator.com": { "domain": "unaccountablecreator.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (unaccountablecreator.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46341,10 +46726,10 @@ "unaccountablepie.com": { "domain": "unaccountablepie.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (unaccountablepie.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46352,10 +46737,10 @@ "unarmedindustry.com": { "domain": "unarmedindustry.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (unarmedindustry.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46363,10 +46748,10 @@ "unbecominghall.com": { "domain": "unbecominghall.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (unbecominghall.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46374,10 +46759,10 @@ "uncoveredexpert.com": { "domain": "uncoveredexpert.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (uncoveredexpert.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46385,10 +46770,10 @@ "understoodocean.com": { "domain": "understoodocean.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (understoodocean.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46396,10 +46781,10 @@ "unequalbrake.com": { "domain": "unequalbrake.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (unequalbrake.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46407,10 +46792,10 @@ "unequaltrail.com": { "domain": "unequaltrail.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (unequaltrail.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46418,10 +46803,10 @@ "unknowncontrol.com": { "domain": "unknowncontrol.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (unknowncontrol.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46429,10 +46814,21 @@ "unknowncrate.com": { "domain": "unknowncrate.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (unknowncrate.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "unknownidea.com": { + "domain": "unknownidea.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (unknownidea.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46440,10 +46836,10 @@ "unknowntray.com": { "domain": "unknowntray.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (unknowntray.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46451,10 +46847,10 @@ "untidyquestion.com": { "domain": "untidyquestion.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (untidyquestion.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46462,10 +46858,10 @@ "untidyrice.com": { "domain": "untidyrice.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (untidyrice.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46473,10 +46869,10 @@ "unusedstone.com": { "domain": "unusedstone.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (unusedstone.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46484,10 +46880,10 @@ "unusualtitle.com": { "domain": "unusualtitle.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (unusualtitle.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46495,10 +46891,10 @@ "unwieldyimpulse.com": { "domain": "unwieldyimpulse.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (unwieldyimpulse.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46506,10 +46902,10 @@ "uppitytime.com": { "domain": "uppitytime.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (uppitytime.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46517,10 +46913,10 @@ "uselesslumber.com": { "domain": "uselesslumber.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (uselesslumber.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46528,10 +46924,10 @@ "validmemo.com": { "domain": "validmemo.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (validmemo.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46539,10 +46935,10 @@ "vanfireworks.com": { "domain": "vanfireworks.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (vanfireworks.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46550,10 +46946,10 @@ "vanishmemory.com": { "domain": "vanishmemory.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (vanishmemory.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46561,10 +46957,10 @@ "velvetnova.com": { "domain": "velvetnova.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (velvetnova.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46572,10 +46968,10 @@ "velvetquasar.com": { "domain": "velvetquasar.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (velvetquasar.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46583,10 +46979,10 @@ "venomousvessel.com": { "domain": "venomousvessel.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (venomousvessel.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46594,10 +46990,10 @@ "venusgloria.com": { "domain": "venusgloria.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (venusgloria.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46605,10 +47001,21 @@ "verdantanswer.com": { "domain": "verdantanswer.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (verdantanswer.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "verdantcrescent.com": { + "domain": "verdantcrescent.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral (verdantcrescent.com)", + "displayName": "Admiral" + }, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46616,10 +47023,10 @@ "verdantlabyrinth.com": { "domain": "verdantlabyrinth.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (verdantlabyrinth.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46627,10 +47034,10 @@ "verdantloom.com": { "domain": "verdantloom.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (verdantloom.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46638,10 +47045,10 @@ "verdantsculpture.com": { "domain": "verdantsculpture.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (verdantsculpture.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46649,10 +47056,10 @@ "verseballs.com": { "domain": "verseballs.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (verseballs.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46660,10 +47067,10 @@ "vibrantcelebration.com": { "domain": "vibrantcelebration.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (vibrantcelebration.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46671,10 +47078,10 @@ "vibrantgale.com": { "domain": "vibrantgale.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (vibrantgale.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46682,10 +47089,10 @@ "vibranthaven.com": { "domain": "vibranthaven.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (vibranthaven.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46693,10 +47100,10 @@ "vibrantpact.com": { "domain": "vibrantpact.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (vibrantpact.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46704,10 +47111,10 @@ "vibrantsundown.com": { "domain": "vibrantsundown.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (vibrantsundown.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46715,10 +47122,10 @@ "vibranttalisman.com": { "domain": "vibranttalisman.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (vibranttalisman.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46726,10 +47133,10 @@ "vibrantvale.com": { "domain": "vibrantvale.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (vibrantvale.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46737,10 +47144,10 @@ "victoriousrequest.com": { "domain": "victoriousrequest.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (victoriousrequest.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46748,10 +47155,10 @@ "virtualvincent.com": { "domain": "virtualvincent.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (virtualvincent.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46759,10 +47166,10 @@ "vividcanopy.com": { "domain": "vividcanopy.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (vividcanopy.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46770,10 +47177,10 @@ "vividfrost.com": { "domain": "vividfrost.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (vividfrost.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46781,10 +47188,10 @@ "vividmeadow.com": { "domain": "vividmeadow.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (vividmeadow.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46792,10 +47199,10 @@ "vividplume.com": { "domain": "vividplume.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (vividplume.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46803,10 +47210,10 @@ "voicelessvein.com": { "domain": "voicelessvein.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (voicelessvein.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46814,10 +47221,10 @@ "voidgoo.com": { "domain": "voidgoo.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (voidgoo.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46825,10 +47232,10 @@ "volatileprofit.com": { "domain": "volatileprofit.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (volatileprofit.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46836,10 +47243,10 @@ "vq1qi.pw": { "domain": "vq1qi.pw", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (vq1qi.pw)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46847,10 +47254,10 @@ "waitingnumber.com": { "domain": "waitingnumber.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (waitingnumber.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46858,10 +47265,10 @@ "wantingwindow.com": { "domain": "wantingwindow.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (wantingwindow.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46869,10 +47276,10 @@ "warnwing.com": { "domain": "warnwing.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (warnwing.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46880,10 +47287,10 @@ "washbanana.com": { "domain": "washbanana.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (washbanana.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46891,10 +47298,10 @@ "wateryvan.com": { "domain": "wateryvan.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (wateryvan.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46902,10 +47309,10 @@ "waterywave.com": { "domain": "waterywave.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (waterywave.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46913,10 +47320,10 @@ "waterywrist.com": { "domain": "waterywrist.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (waterywrist.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46924,10 +47331,10 @@ "wearbasin.com": { "domain": "wearbasin.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (wearbasin.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46935,10 +47342,10 @@ "websitesdude.com": { "domain": "websitesdude.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (websitesdude.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46946,10 +47353,10 @@ "wellgroomedapparel.com": { "domain": "wellgroomedapparel.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (wellgroomedapparel.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46957,10 +47364,10 @@ "wellgroomedhydrant.com": { "domain": "wellgroomedhydrant.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (wellgroomedhydrant.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46968,10 +47375,10 @@ "wellmadefrog.com": { "domain": "wellmadefrog.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (wellmadefrog.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46979,10 +47386,10 @@ "westpalmweb.com": { "domain": "westpalmweb.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (westpalmweb.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46990,10 +47397,10 @@ "whimsicalcanyon.com": { "domain": "whimsicalcanyon.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (whimsicalcanyon.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -47001,10 +47408,10 @@ "whimsicalgrove.com": { "domain": "whimsicalgrove.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (whimsicalgrove.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -47012,10 +47419,10 @@ "whineattempt.com": { "domain": "whineattempt.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (whineattempt.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -47023,10 +47430,10 @@ "whirlwealth.com": { "domain": "whirlwealth.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (whirlwealth.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -47034,10 +47441,10 @@ "whiskyqueue.com": { "domain": "whiskyqueue.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (whiskyqueue.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -47045,10 +47452,10 @@ "whisperingcascade.com": { "domain": "whisperingcascade.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (whisperingcascade.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -47056,10 +47463,10 @@ "whisperingcrib.com": { "domain": "whisperingcrib.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (whisperingcrib.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -47067,10 +47474,10 @@ "whisperingquasar.com": { "domain": "whisperingquasar.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (whisperingquasar.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -47078,10 +47485,10 @@ "whisperingsummit.com": { "domain": "whisperingsummit.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (whisperingsummit.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -47089,10 +47496,10 @@ "whispermeeting.com": { "domain": "whispermeeting.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (whispermeeting.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -47100,10 +47507,10 @@ "wildcommittee.com": { "domain": "wildcommittee.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (wildcommittee.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -47111,10 +47518,10 @@ "wirecomic.com": { "domain": "wirecomic.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (wirecomic.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -47122,10 +47529,10 @@ "wiredforcoffee.com": { "domain": "wiredforcoffee.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (wiredforcoffee.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -47133,10 +47540,10 @@ "wirypaste.com": { "domain": "wirypaste.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (wirypaste.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -47144,10 +47551,10 @@ "wistfulwaste.com": { "domain": "wistfulwaste.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (wistfulwaste.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -47155,10 +47562,10 @@ "wittypopcorn.com": { "domain": "wittypopcorn.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (wittypopcorn.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -47166,10 +47573,10 @@ "wittyshack.com": { "domain": "wittyshack.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (wittyshack.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -47177,10 +47584,10 @@ "workoperation.com": { "domain": "workoperation.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (workoperation.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -47188,10 +47595,10 @@ "worldlever.com": { "domain": "worldlever.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (worldlever.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -47199,10 +47606,10 @@ "worriednumber.com": { "domain": "worriednumber.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (worriednumber.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -47210,10 +47617,10 @@ "worriedwine.com": { "domain": "worriedwine.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (worriedwine.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -47221,10 +47628,10 @@ "wretchedfloor.com": { "domain": "wretchedfloor.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (wretchedfloor.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -47232,10 +47639,10 @@ "wrongpotato.com": { "domain": "wrongpotato.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (wrongpotato.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -47243,10 +47650,10 @@ "wrongwound.com": { "domain": "wrongwound.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (wrongwound.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -47254,10 +47661,10 @@ "wtaccesscontrol.com": { "domain": "wtaccesscontrol.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (wtaccesscontrol.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -47265,10 +47672,10 @@ "xovq5nemr.com": { "domain": "xovq5nemr.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (xovq5nemr.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -47276,10 +47683,10 @@ "yieldingwoman.com": { "domain": "yieldingwoman.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (yieldingwoman.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -47287,10 +47694,10 @@ "zbwp6ghm.com": { "domain": "zbwp6ghm.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (zbwp6ghm.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -47298,10 +47705,10 @@ "zephyrcatalyst.com": { "domain": "zephyrcatalyst.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (zephyrcatalyst.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -47309,10 +47716,10 @@ "zephyrlabyrinth.com": { "domain": "zephyrlabyrinth.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (zephyrlabyrinth.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -47320,10 +47727,10 @@ "zestyhorizon.com": { "domain": "zestyhorizon.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (zestyhorizon.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -47331,10 +47738,10 @@ "zestyrover.com": { "domain": "zestyrover.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (zestyrover.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -47342,10 +47749,10 @@ "zestywire.com": { "domain": "zestywire.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (zestywire.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -47353,10 +47760,10 @@ "zipperxray.com": { "domain": "zipperxray.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (zipperxray.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -47364,10 +47771,10 @@ "zlp6s.pw": { "domain": "zlp6s.pw", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (zlp6s.pw)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -47375,10 +47782,10 @@ "zonewedgeshaft.com": { "domain": "zonewedgeshaft.com", "owner": { - "name": "Leven Labs, Inc. DBA Admiral", + "name": "Leven Labs, Inc. DBA Admiral (zonewedgeshaft.com)", "displayName": "Admiral" }, - "prevalence": 0.0109, + "prevalence": 0.0111, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -57376,1583 +57783,11274 @@ "ytimg.com" ] }, - "Leven Labs, Inc. DBA Admiral": { - "domains": [ - "2znp09oa.com", - "4jnzhl0d0.com", - "5mcwl.pw", - "6ldu6qa.com", - "82o9v830.com", - "abilityscale.com", - "aboardamusement.com", - "aboardlevel.com", - "abovechat.com", - "abruptroad.com", - "absentairport.com", - "absorbingband.com", - "absorbingcorn.com", - "absorbingprison.com", - "abstractedamount.com", - "abstractedauthority.com", - "absurdapple.com", - "abundantcoin.com", - "acceptableauthority.com", - "accurateanimal.com", - "accuratecoal.com", - "achieverknee.com", - "acidicstraw.com", - "acidpigs.com", - "acridangle.com", - "acridtwist.com", - "actoramusement.com", - "actuallysheep.com", - "actuallysnake.com", - "actuallything.com", - "adamantsnail.com", - "addictedattention.com", - "admiral.pub", - "adorableanger.com", - "adorableattention.com", - "adventurousamount.com", - "afraidlanguage.com", - "aftermathbrother.com", - "agilebreeze.com", - "agreeablearch.com", - "agreeabletouch.com", - "aheadday.com", - "aheadgrow.com", - "aheadmachine.com", - "ak0gsh40.com", - "alertarithmetic.com", - "aliasanvil.com", - "alikeaddition.com", - "aliveachiever.com", - "alleythecat.com", - "alluringbucket.com", - "aloofmetal.com", - "aloofvest.com", - "alpineactor.com", - "ambientdusk.com", - "ambientlagoon.com", - "ambiguousafternoon.com", - "ambiguousanger.com", - "ambiguousdinosaurs.com", - "ambiguousincome.com", - "ambrosialsummit.com", - "amethystzenith.com", - "amuckafternoon.com", - "amusedbucket.com", - "analogwonder.com", - "analyzecorona.com", - "ancientact.com", - "annoyedairport.com", - "annoyingacoustics.com", - "annoyingclover.com", - "anxiousapples.com", - "aquaticowl.com", - "ar1nvz5.com", - "archswimming.com", - "aromamirror.com", - "arrivegrowth.com", - "artthevoid.com", - "aspiringapples.com", - "aspiringattempt.com", - "aspiringtoy.com", - "astonishingfood.com", - "astralhustle.com", - "astrallullaby.com", - "attendchase.com", - "attractionbanana.com", - "attractivecap.com", - "audioarctic.com", - "automaticside.com", - "automaticturkey.com", - "availablerest.com", - "avalonalbum.com", - "averageactivity.com", - "awarealley.com", - "awesomeagreement.com", - "awzbijw.com", - "axiomaticalley.com", - "axiomaticanger.com", - "azuremystique.com", - "backupcat.com", - "badgeboat.com", - "badgerabbit.com", - "badgevolcano.com", - "bagbeam.com", - "baitbaseball.com", - "balloonbelieve.com", - "ballsbanana.com", - "bananabarrel.com", - "bandborder.com", - "barbarousbase.com", - "basilfish.com", - "basketballbelieve.com", - "baskettexture.com", - "bawdybalance.com", - "bawdybeast.com", - "beamvolcano.com", - "beancontrol.com", - "bearmoonlodge.com", - "bedsberry.com", - "beetleend.com", - "beginnerpancake.com", - "begintrain.com", - "berserkhydrant.com", - "bespokesandals.com", - "bestboundary.com", - "bewilderedbattle.com", - "bewilderedblade.com", - "bhcumsc.com", - "bikepaws.com", - "bikesboard.com", - "billowybead.com", - "billowybelief.com", - "binspiredtees.com", - "birthdaybelief.com", - "blackbrake.com", - "bleachbubble.com", - "bleachscarecrow.com", - "bleedlight.com", - "blesspizzas.com", - "blissfulcrescendo.com", - "blissfullagoon.com", - "blueeyedblow.com", - "blushingbeast.com", - "blushingbread.com", - "boatsvest.com", - "boilingbeetle.com", - "boilingcredit.com", - "boostbehavior.com", - "boredcrown.com", - "bouncyproperty.com", - "boundarybusiness.com", - "boundlessargument.com", - "boundlessbrake.com", - "boundlessveil.com", - "brainybasin.com", - "brainynut.com", - "branchborder.com", - "brandsfive.com", - "brandybison.com", - "bravebone.com", - "bravecalculator.com", - "breadbalance.com", - "breakableinsurance.com", - "breakfastboat.com", - "breezygrove.com", - "brianwould.com", - "brighttoe.com", - "briskstorm.com", - "broadborder.com", - "broadboundary.com", - "broadcastbed.com", - "broaddoor.com", - "brotherslocket.com", - "bruisebaseball.com", - "brunchforher.com", - "buildingknife.com", - "bulbbait.com", - "burgersalt.com", - "burlywhistle.com", - "burnbubble.com", - "bushesbag.com", - "bustlingbath.com", - "bustlingbook.com", - "butterbulb.com", - "butterburst.com", - "buttonladybug.com", - "cakesdrum.com", - "calculatingcircle.com", - "calculatingtoothbrush.com", - "calculatorstatement.com", - "callousbrake.com", - "calmcactus.com", - "calypsocapsule.com", - "cannonchange.com", - "capablecows.com", - "capablecup.com", - "capriciouscorn.com", - "captivatingcanyon.com", - "captivatingillusion.com", - "captivatingpanorama.com", - "captivatingperformance.com", - "carefuldolls.com", - "caringcast.com", - "caringzinc.com", - "carloforward.com", - "carpentercomparison.com", - "carscannon.com", - "cartkitten.com", - "carvecakes.com", - "catalogcake.com", - "catschickens.com", - "cattlecommittee.com", - "causecherry.com", - "cautiouscamera.com", - "cautiouscherries.com", - "cautiouscrate.com", - "cautiouscredit.com", - "cavecurtain.com", - "ceciliavenus.com", - "celestialeuphony.com", - "celestialquasar.com", - "celestialspectra.com", - "chaireggnog.com", - "chairscrack.com", - "chairsdonkey.com", - "chalkoil.com", - "changeablecats.com", - "channelcamp.com", - "chargecracker.com", - "charmingplate.com", - "charscroll.com", - "cheerycraze.com", - "cherriescare.com", - "chessbranch.com", - "chesscolor.com", - "chesscrowd.com", - "chickensstation.com", - "childlikecrowd.com", - "childlikeexample.com", - "childlikeform.com", - "chilledliquid.com", - "chingovernment.com", - "chinsnakes.com", - "chipperisle.com", - "chivalrouscord.com", - "chubbycreature.com", - "chunkycactus.com", - "cicdserver.com", - "cinemabonus.com", - "circlelevel.com", - "clammychicken.com", - "cleanhaircut.com", - "cloisteredcord.com", - "cloisteredcurve.com", - "closedcows.com", - "closefriction.com", - "cloudhustles.com", - "cloudjumbo.com", - "clovercabbage.com", - "clumsycar.com", - "coatfood.com", - "cobaltoverture.com", - "coffeesidehustle.com", - "coldbalance.com", - "coldcreatives.com", - "colorfulafterthought.com", - "colossalclouds.com", - "colossalcoat.com", - "colossalcry.com", - "combativecar.com", - "combativedetail.com", - "combbit.com", - "combcattle.com", - "combcompetition.com", - "cometquote.com", - "comfortablecheese.com", - "comfygoodness.com", - "companyparcel.com", - "comparereaction.com", - "compiledoctor.com", - "concernedchange.com", - "concernedchickens.com", - "condemnedcomb.com", - "conditionchange.com", - "conditioncrush.com", - "confesschairs.com", - "configchain.com", - "confusedcart.com", - "connectashelf.com", - "consciouschairs.com", - "consciouscheese.com", - "consciousdirt.com", - "consumerzero.com", - "controlcola.com", - "controlhall.com", - "convertbatch.com", - "cooingcoal.com", - "coordinatedbedroom.com", - "coordinatedcoat.com", - "copycarpenter.com", - "copyrightaccesscontrols.com", - "coralreverie.com", - "corgibeachday.com", - "cosmicsculptor.com", - "cosmosjackson.com", - "courageousbaby.com", - "coverapparatus.com", - "coverlayer.com", - "cozydusk.com", - "cozyhillside.com", - "cozytryst.com", - "crabbychin.com", - "crackedsafe.com", - "crafthenry.com", - "crashchance.com", - "cratecamera.com", - "craterbox.com", - "creatorcherry.com", - "creatorpassenger.com", - "creaturecabbage.com", - "crimsonmeadow.com", - "critictruck.com", - "crookedcreature.com", - "crowdedmass.com", - "cruisetourist.com", - "cryptvalue.com", - "crystalboulevard.com", - "crystalstatus.com", - "cubchannel.com", - "cubepins.com", - "cuddlycake.com", - "cuddlylunchroom.com", - "culturedcamera.com", - "culturedfeather.com", - "cumbersomecar.com", - "cumbersomecarpenter.com", - "cumbersomecloud.com", - "curiouschalk.com", - "curioussuccess.com", - "curlycannon.com", - "currentcollar.com", - "curtaincows.com", - "curvedhoney.com", - "curvycord.com", - "curvycry.com", - "cushiondrum.com", - "cushionpig.com", - "cutcurrent.com", - "cutechin.com", - "cyclopsdial.com", - "dailydivision.com", - "damagedadvice.com", - "damageddistance.com", - "damdoor.com", - "dampdock.com", - "dancemistake.com", - "dandydune.com", - "dandyglow.com", - "dapperdiscussion.com", - "dapperfloor.com", - "datastoried.com", - "daughterstone.com", - "daymodern.com", - "dazzlingbook.com", - "deafeningdock.com", - "deafeningdowntown.com", - "debonairdust.com", - "debonairtree.com", - "debugentity.com", - "decidedrum.com", - "decisivebase.com", - "decisivedrawer.com", - "decisiveducks.com", - "decoycreation.com", - "deerbeginner.com", - "defeatedbadge.com", - "defensevest.com", - "degreechariot.com", - "delegatediscussion.com", - "delicatecascade.com", - "deliciousducks.com", - "deltafault.com", - "deluxecrate.com", - "dependenttrip.com", - "desirebucket.com", - "desiredirt.com", - "detailedgovernment.com", - "detailedkitten.com", - "detectdinner.com", - "detectdiscovery.com", - "detourgame.com", - "deviceseal.com", - "deviceworkshop.com", - "devilishdinner.com", - "dewdroplagoon.com", - "difficultfog.com", - "digestiondrawer.com", - "dinnerquartz.com", - "diplomahawaii.com", - "direfuldesk.com", - "disagreeabledrop.com", - "discreetfield.com", - "discreetquarter.com", - "distributionneck.com", - "distributionpocket.com", - "distributiontomatoes.com", - "disturbedquiet.com", - "divehope.com", - "dk4ywix.com", - "dockdigestion.com", - "dogsonclouds.com", - "dollardelta.com", - "doubledefend.com", - "doubtdrawer.com", - "dq95d35.com", - "drainpaste.com", - "dramaticdirection.com", - "driftpizza.com", - "drollwharf.com", - "drydrum.com", - "dustydime.com", - "dustyhammer.com", - "eagereden.com", - "eagerflame.com", - "eagerknight.com", - "earthyfarm.com", - "eatablesquare.com", - "echochief.com", - "echoinghaven.com", - "effervescentcoral.com", - "effervescentvista.com", - "effulgentnook.com", - "effulgenttempest.com", - "ejyymghi.com", - "elasticchange.com", - "elderlybean.com", - "elderlytown.com", - "elephantqueue.com", - "elusivebreeze.com", - "elusivecascade.com", - "elysiantraverse.com", - "embellishedmeadow.com", - "embermosaic.com", - "emberwhisper.com", - "eminentbubble.com", - "eminentend.com", - "emptyescort.com", - "enchantedskyline.com", - "enchantingdiscovery.com", - "enchantingenchantment.com", - "enchantingmystique.com", - "enchantingtundra.com", - "enchantingvalley.com", - "encourageshock.com", - "encouragingthread.com", - "endlesstrust.com", - "endurablebulb.com", - "energeticexample.com", - "energeticladybug.com", - "engineergrape.com", - "engineertrick.com", - "enigmaticblossom.com", - "enigmaticcanyon.com", - "enigmaticvoyage.com", - "enormousearth.com", - "enormousfoot.com", - "enterdrama.com", - "entertainskin.com", - "enthusiastictemper.com", - "enviousshape.com", - "enviousthread.com", - "equablekettle.com", - "etherealbamboo.com", - "ethereallagoon.com", - "etherealpinnacle.com", - "etherealquasar.com", - "etherealripple.com", - "evanescentedge.com", - "evasivejar.com", - "eventexistence.com", - "exampleshake.com", - "excitingtub.com", - "exclusivebrass.com", - "executeknowledge.com", - "exhibitsneeze.com", - "expansioneggnog.com", - "exquisiteartisanship.com", - "extractobservation.com", - "extralocker.com", - "extramonies.com", - "exuberantedge.com", - "facilitatebreakfast.com", - "fadechildren.com", - "fadedsnow.com", - "fadewaves.com", - "fairfeeling.com", - "fairiesbranch.com", - "fairytaleflame.com", - "fallaciousfifth.com", - "falseframe.com", - "familiarrod.com", - "fancyactivity.com", - "fancydune.com", - "fancygrove.com", - "fangfeeling.com", - "fantastictone.com", - "farethief.com", - "farmergoldfish.com", - "farshake.com", - "farsnails.com", - "fastenfather.com", - "fasterfineart.com", - "fasterjson.com", - "fatcoil.com", - "faucetfoot.com", - "faultycanvas.com", - "fearfulfish.com", - "fearfulmint.com", - "fearlessfaucet.com", - "fearlesstramp.com", - "featherstage.com", - "feeblestamp.com", - "feignedfaucet.com", - "fernwaycloud.com", - "fertilefeeling.com", - "fewjuice.com", - "fewkittens.com", - "finalizeforce.com", - "financefear.com", - "finestpiece.com", - "finitecube.com", - "firecatfilms.com", - "fireworkcamp.com", - "firstendpoint.com", - "firstfrogs.com", - "firsttexture.com", - "fitmessage.com", - "fivesidedsquare.com", - "fixedfold.com", - "flakyfeast.com", - "flameuncle.com", - "flimsycircle.com", - "flimsythought.com", - "flippedfunnel.com", - "floodprincipal.com", - "flourishingcollaboration.com", - "flourishingendeavor.com", - "flourishinginnovation.com", - "flourishingpartnership.com", - "flowersornament.com", - "flowerstreatment.com", - "flowerycreature.com", - "floweryfact.com", - "floweryflavor.com", - "floweryoperation.com", - "flutteringfireman.com", - "foambench.com", - "followborder.com", - "forecasttiger.com", - "foretellfifth.com", - "forevergears.com", - "forgetfulflowers.com", - "forgetfulsnail.com", - "fortunatemark.com", - "fractalcoast.com", - "frailfruit.com", - "framebanana.com", - "franticroof.com", - "frantictrail.com", - "frazzleart.com", - "freakyglass.com", - "freezingbuilding.com", - "frequentflesh.com", - "friendlycrayon.com", - "friendlyfold.com", - "friendwool.com", - "frightenedpotato.com", - "frogator.com", - "frogtray.com", - "fronttoad.com", - "frugalfiestas.com", - "fumblingform.com", - "functionalcrown.com", - "functionalfeather.com", - "funoverbored.com", - "funoverflow.com", - "furnstudio.com", - "furryfork.com", - "furryhorses.com", - "futuristicapparatus.com", - "futuristicfairies.com", - "futuristicfifth.com", - "futuristicframe.com", - "fuzzyaudio.com", - "fuzzybasketball.com", - "fuzzyerror.com", - "fvl1f.pw", - "gammamaximum.com", - "gardenovens.com", - "gaudyairplane.com", - "geekactive.com", - "generalprose.com", - "generateoffice.com", - "giantsvessel.com", - "giddycoat.com", - "giraffepiano.com", - "gitcrumbs.com", - "givevacation.com", - "gladglen.com", - "gladysway.com", - "glamhawk.com", - "gleamingcow.com", - "gleaminghaven.com", - "glisteningguide.com", - "glisteningsign.com", - "glitteringbrook.com", - "gloriousbeef.com", - "glowingmeadow.com", - "gluedpixel.com", - "goldfishgrowth.com", - "gondolagnome.com", - "goodbark.com", - "gorgeousedge.com", - "gracefulmilk.com", - "grainmass.com", - "grandfatherguitar.com", - "gravitygive.com", - "gravitykick.com", - "grayoranges.com", - "grayreceipt.com", - "greasysquare.com", - "greyinstrument.com", - "gripcorn.com", - "groovyornament.com", - "grouchybrothers.com", - "grouchypush.com", - "grumpydime.com", - "grumpydrawer.com", - "guardeddirection.com", - "guardedschool.com", - "guessdetail.com", - "guidecent.com", - "guildalpha.com", - "guiltlessbasketball.com", - "gulliblegrip.com", - "gustocooking.com", - "gustygrandmother.com", - "h78xb.pw", - "habitualhumor.com", - "halcyoncanyon.com", - "halcyonsculpture.com", - "hallowedinvention.com", - "haltingbadge.com", - "haltingdivision.com", - "haltinggold.com", - "hammerhearing.com", - "handleteeth.com", - "handnorth.com", - "handsomehose.com", - "handsomeindustry.com", - "handsomelyhealth.com", - "handsomelythumb.com", - "handsomeyam.com", - "handyfield.com", - "handyfireman.com", - "handyincrease.com", - "haplesshydrant.com", - "haplessland.com", - "happysponge.com", - "harborcaption.com", - "harborcub.com", - "harmonicbamboo.com", - "harmonywing.com", - "headydegree.com", - "headyhook.com", - "healflowers.com", - "hearinglizards.com", - "heartbreakingmind.com", - "hearthorn.com", - "heavydetail.com", - "heavyplayground.com", - "helpcollar.com", - "helpflame.com", - "hfc195b.com", - "highfalutinbox.com", - "highfalutinhoney.com", - "hilariouszinc.com", - "historicalbeam.com", - "hocgeese.com", - "hollowafterthought.com", - "homelycrown.com", - "honeybulb.com", - "honeywhipped.com", - "honorablehydrant.com", - "honorableland.com", - "horsenectar.com", - "hospitablehall.com", - "hospitablehat.com", - "howdyinbox.com", - "humdrumhobbies.com", - "humdrumtouch.com", - "hurtgrape.com", - "hypnoticwound.com", - "hystericalcloth.com", - "hystericalfinger.com", - "i9w8p.pw", - "idolscene.com", - "idyllicjazz.com", - "illinvention.com", - "illustriousoatmeal.com", - "immensehoney.com", - "imminentshake.com", - "importantmeat.com", - "importedincrease.com", - "importedinsect.com", - "importlocate.com", - "impossibleexpansion.com", - "impossiblemove.com", - "impulsejewel.com", - "impulselumber.com", - "incomehippo.com", - "incompetentjoke.com", - "inconclusiveaction.com", - "infamousstream.com", - "innocentlamp.com", - "innocentwax.com", - "inputicicle.com", - "inquisitiveice.com", - "inquisitiveinvention.com", - "intelligentscissors.com", - "intentlens.com", - "interestdust.com", - "internalcondition.com", - "internalsink.com", - "iotapool.com", - "irritatingfog.com", - "itemslice.com", - "ivykiosk.com", - "j93557g.com", - "jadeitite.com", - "jaderooster.com", - "jailbulb.com", - "joblessdrum.com", - "jollylens.com", - "joyfulkeen.com", - "joyoussurprise.com", - "jubilantaura.com", - "jubilantcanyon.com", - "jubilantcascade.com", - "jubilantglimmer.com", - "jubilanttempest.com", - "jubilantwhisper.com", - "juiceblocks.com", - "justicejudo.com", - "k54nw.pw", - "kaputquill.com", - "keenquill.com", - "kindhush.com", - "kitesquirrel.com", - "knitstamp.com", - "knottyswing.com", - "laboredlight.com", - "laboredlocket.com", - "lameletters.com", - "lamplow.com", - "largebrass.com", - "lasttaco.com", - "laughablelizards.com", - "leaplunchroom.com", - "leftliquid.com", - "lemonpackage.com", - "lemonsandjoy.com", - "liftedknowledge.com", - "lightenafterthought.com", - "lighttalon.com", - "livelumber.com", - "livelylaugh.com", - "livelyreward.com", - "livingsleet.com", - "lizardslaugh.com", - "loadsurprise.com", - "lonelyflavor.com", - "longingtrees.com", - "looseloaf.com", - "lorenzourban.com", - "losslace.com", - "loudlunch.com", - "lovelydrum.com", - "loveseashore.com", - "lp3tdqle.com", - "ludicrousarch.com", - "lumberamount.com", - "luminousboulevard.com", - "luminouscatalyst.com", - "luminoussculptor.com", - "lumpygnome.com", - "lumpylumber.com", - "lunchroomlock.com", - "lustroushaven.com", - "lyricshook.com", - "maddeningpowder.com", - "madebyintent.com", - "magicaljoin.com", - "magnetairport.com", - "majesticmountainrange.com", - "majesticwaterscape.com", - "majesticwilderness.com", - "maliciousmusic.com", - "managedpush.com", - "mantrafox.com", - "marblediscussion.com", - "markahouse.com", - "markedmeasure.com", - "marketspiders.com", - "marriedbelief.com", - "marriedmailbox.com", - "marriedvalue.com", - "massivemark.com", - "materialisticmoon.com", - "materialmilk.com", - "materialparcel.com", - "materialplayground.com", - "meadowlullaby.com", - "measlymiddle.com", - "meatydime.com", - "meddleplant.com", - "mediatescarf.com", - "mediumshort.com", - "mellowhush.com", - "mellowmailbox.com", - "melodiouschorus.com", - "melodiouscomposition.com", - "meltmilk.com", - "memopilot.com", - "memorizematch.com", - "memorizeneck.com", - "mentorsticks.com", - "meremark.com", - "merequartz.com", - "merryopal.com", - "merryvault.com", - "messagenovice.com", - "messyoranges.com", - "metajaws.com", - "mightyspiders.com", - "mimosamajor.com", - "mindfulgem.com", - "minorcattle.com", - "minusmental.com", - "minuteburst.com", - "miscreantmoon.com", - "mistyhorizon.com", - "mittencattle.com", - "mixedreading.com", - "modularmental.com", - "monacobeatles.com", - "moorshoes.com", - "morefriendly.com", - "motionflowers.com", - "motionlessbag.com", - "motionlessbelief.com", - "motionlessmeeting.com", - "movemeal.com", - "muddledaftermath.com", - "muddledmemory.com", - "mundanenail.com", - "mundanepollution.com", - "mushywaste.com", - "muteknife.com", - "mutemailbox.com", - "mysticalagoon.com", - "naivestatement.com", - "nappyattack.com", - "nappyneck.com", - "neatshade.com", - "nebulacrescent.com", - "nebulajubilee.com", - "nebulousamusement.com", - "nebulousgarden.com", - "nebulousquasar.com", - "nebulousripple.com", - "needlessnorth.com", - "needyneedle.com", - "neighborlywatch.com", - "nervoussummer.com", - "niftygraphs.com", - "niftyhospital.com", - "niftyjelly.com", - "nightwound.com", - "nimbleplot.com", - "nocturnalloom.com", - "nocturnalmystique.com", - "noiselessplough.com", - "nonchalantnerve.com", - "nondescriptcrowd.com", - "nondescriptnote.com", - "nondescriptstocking.com", - "nostalgicknot.com", - "nostalgicneed.com", - "notifyglass.com", - "nudgeduck.com", - "nullnorth.com", - "numberlessring.com", - "numerousnest.com", - "nutritiousbean.com", - "nuttyorganization.com", - "oafishchance.com", - "oafishobservation.com", - "obscenesidewalk.com", - "observantice.com", - "oldfashionedoffer.com", - "omgthink.com", - "omniscientfeeling.com", - "onlywoofs.com", - "opalquill.com", - "operationchicken.com", - "operationnail.com", - "oppositeoperation.com", - "optimallimit.com", - "opulentsylvan.com", - "orientedargument.com", - "orionember.com", - "ourblogthing.com", - "outgoinggiraffe.com", - "outsidevibe.com", - "outstandingincome.com", - "outstandingsnails.com", - "overconfidentfood.com", - "overkick.com", - "overratedchalk.com", - "owlsr.us", - "oxygenfuse.com", - "pailcrime.com", - "pailpatch.com", - "painstakingpickle.com", - "paintpear.com", - "paleleaf.com", - "pamelarandom.com", - "panickycurtain.com", - "panickypancake.com", - "panoramicplane.com", - "parallelbulb.com", - "parchedsofa.com", - "pardonpopular.com", - "parentpicture.com", - "parsimoniouspolice.com", - "partplanes.com", - "passivepolo.com", - "pastoralroad.com", - "pawsnug.com", - "peacefullimit.com", - "pedromister.com", - "pedropanther.com", - "perceivequarter.com", - "perkyjade.com", - "petiteumbrella.com", - "philippinch.com", - "photographpan.com", - "piespower.com", - "piquantgrove.com", - "piquantmeadow.com", - "piquantpigs.com", - "piquantprice.com", - "piquantvortex.com", - "pixeledhub.com", - "pizzasnut.com", - "placeframe.com", - "placidactivity.com", - "placidperson.com", - "planebasin.com", - "plantdigestion.com", - "playfulriver.com", - "pleasantpump.com", - "plotparent.com", - "plotrabbit.com", - "pluckypocket.com", - "pluckyzone.com", - "pocketfaucet.com", - "poemprompt.com", - "poeticpackage.com", - "pointdigestion.com", - "pointlesshour.com", - "pointlesspocket.com", - "pointlessprofit.com", - "pointlessrifle.com", - "polarismagnet.com", - "polishedcrescent.com", - "polishedfolly.com", - "politeplanes.com", - "politicalflip.com", - "politicalporter.com", - "popplantation.com", - "possibleboats.com", - "possiblepencil.com", - "potatoinvention.com", - "powderjourney.com", - "powerfulblends.com", - "powerfulcopper.com", - "preciousplanes.com", - "predictplate.com", - "prefixpatriot.com", - "prepareplanes.com", - "presetrabbits.com", - "previousplayground.com", - "previouspotato.com", - "priceypies.com", - "pricklydebt.com", - "pricklypollution.com", - "pristinegale.com", - "probablepartner.com", - "processplantation.com", - "producepickle.com", - "productsurfer.com", - "profitrumour.com", - "profusesupport.com", - "promiseair.com", - "proofconvert.com", - "propertypotato.com", - "protestcopy.com", - "psychedelicarithmetic.com", - "psychedelicchess.com", - "publicsofa.com", - "puffyloss.com", - "puffypaste.com", - "puffypull.com", - "puffypurpose.com", - "pulsatingmeadow.com", - "pumpedpancake.com", - "pumpedpurpose.com", - "punyplant.com", - "puppytooth.com", - "purposepipe.com", - "quacksquirrel.com", - "quaintcan.com", - "quaintlake.com", - "quantumlagoon.com", - "quantumshine.com", - "queenskart.com", - "quietknowledge.com", - "quillkick.com", - "quirkybliss.com", - "quirkysugar.com", - "quixoticnebula.com", - "quizzicalpartner.com", - "quizzicalzephyr.com", - "rabbitbreath.com", - "rabbitrifle.com", - "radiantcanopy.com", - "radiantlullaby.com", - "radiateprose.com", - "railwaygiraffe.com", - "railwayreason.com", - "raintwig.com", - "rainyhand.com", - "rainyrule.com", - "rambunctiousflock.com", - "rangecake.com", - "rangeplayground.com", - "raresummer.com", - "reactjspdf.com", - "readingguilt.com", - "readymoon.com", - "readysnails.com", - "realizedoor.com", - "realizerecess.com", - "rebelclover.com", - "rebelhen.com", - "rebelsubway.com", - "rebelswing.com", - "receiptcent.com", - "receptiveink.com", - "receptivereaction.com", - "recessrain.com", - "reconditeprison.com", - "reconditerake.com", - "reconditerespect.com", - "reflectivestatement.com", - "refundradar.com", - "regularplants.com", - "regulatesleet.com", - "rehabilitatereason.com", - "relationrest.com", - "releasepath.com", - "reloadphoto.com", - "rememberdiscussion.com", - "rentinfinity.com", - "repeatsweater.com", - "replaceroute.com", - "resonantbrush.com", - "resonantrock.com", - "respectrain.com", - "resplendentecho.com", - "restrainstorm.com", - "restructureinvention.com", - "retrievemint.com", - "rhetoricalactivity.com", - "rhetoricalloss.com", - "rhetoricalveil.com", - "rhymezebra.com", - "rhythmrule.com", - "richstring.com", - "righteouscrayon.com", - "rightfulfall.com", - "rigidrobin.com", - "rigidveil.com", - "rigorlab.com", - "ringplant.com", - "ringsrecord.com", - "ritzykey.com", - "ritzyrepresentative.com", - "ritzyveil.com", - "rockpebbles.com", - "rollconnection.com", - "roofrelation.com", - "roseincome.com", - "rottenray.com", - "ruralrobin.com", - "rusticprice.com", - "ruthlessdegree.com", - "ruthlessmilk.com", - "sableloss.com", - "sablesmile.com", - "sablesong.com", - "sadloaf.com", - "saffronrefuge.com", - "sagargift.com", - "saltsacademy.com", - "samesticks.com", - "samestretch.com", - "samplesamba.com", - "sandstrophies.com", - "satisfycork.com", - "savoryorange.com", - "scarcecard.com", - "scarceshock.com", - "scarcesign.com", - "scarcestructure.com", - "scarcesurprise.com", - "scaredcomfort.com", - "scaredsidewalk.com", - "scaredslip.com", - "scaredsnake.com", - "scaredsnakes.com", - "scaredsong.com", - "scaredstomach.com", - "scaredswing.com", - "scarefowl.com", - "scarfsmash.com", - "scatteredheat.com", - "scatteredquiver.com", - "scatteredstream.com", - "scenicapparel.com", - "scenicdrops.com", - "scientificshirt.com", - "scintillatingscissors.com", - "scintillatingsilver.com", - "scissorsstatement.com", - "scrapesleep.com", - "scratchsofa.com", - "screechingfurniture.com", - "screechingstocking.com", - "screechingstove.com", - "scribbleson.com", - "scribblestring.com", - "scrollservice.com", - "scrubswim.com", - "seashoresociety.com", - "seatsmoke.com", - "secondhandfall.com", - "secretivesheep.com", - "secretspiders.com", - "secretturtle.com", - "seedscissors.com", - "seemlysuggestion.com", - "selectivesummer.com", - "selfishsea.com", - "selfishsnake.com", - "sendingspire.com", - "sensorsmile.com", - "separatesort.com", - "seraphichorizon.com", - "seraphicjubilee.com", - "serendipityecho.com", - "serenecascade.com", - "serenepebble.com", - "serenesurf.com", - "serioussuit.com", - "serpentshampoo.com", - "settleshoes.com", - "shadeship.com", - "shaggytank.com", - "shakegoldfish.com", - "shakyseat.com", - "shakysurprise.com", - "shakytaste.com", - "shallowblade.com", - "shamerain.com", - "shapecomb.com", - "sharkskids.com", - "sheargovernor.com", - "shesubscriptions.com", - "shinypond.com", - "shirtsidewalk.com", - "shiveringspot.com", - "shiverscissors.com", - "shockinggrass.com", - "shockingship.com", - "shredquiz.com", - "shrillspoon.com", - "shydinosaurs.com", - "sicksmash.com", - "sierrakermit.com", - "signaturepod.com", - "siliconslow.com", - "sillyscrew.com", - "simplesidewalk.com", - "simulateswing.com", - "sincerebuffalo.com", - "sincerepelican.com", - "sinceresubstance.com", - "singroot.com", - "sinkbooks.com", - "sixauthority.com", - "sixscissors.com", - "sizzlingsmoke.com", - "skillfuldrop.com", - "skisofa.com", - "slaysweater.com", - "slimyscarf.com", - "slinksuggestion.com", - "slopesoap.com", - "smallershops.com", - "smashquartz.com", - "smashshoe.com", - "smashsurprise.com", - "smilewound.com", - "smilingcattle.com", - "smilingswim.com", - "smilingwaves.com", - "smoggysnakes.com", - "smoggysongs.com", - "smoggystation.com", - "snacktoken.com", - "snakemineral.com", - "snakeslang.com", - "sneakwind.com", - "sneakystew.com", - "snoresmile.com", - "snowmentor.com", - "soggysponge.com", - "soggyzoo.com", - "solarislabyrinth.com", - "somberscarecrow.com", - "sombersea.com", - "sombersquirrel.com", - "sombersticks.com", - "sombersurprise.com", - "songsterritory.com", - "soothingglade.com", - "sophisticatedstove.com", - "sordidsmile.com", - "soresidewalk.com", - "soresneeze.com", - "sorethunder.com", - "soretrain.com", - "sortsail.com", - "sortsummer.com", - "soundstocking.com", - "sowlettuce.com", - "spadelocket.com", - "sparkgoal.com", - "sparklingshelf.com", - "specialscissors.com", - "spectacularstamp.com", - "spellmist.com", - "spellsalsa.com", - "spiffymachine.com", - "spirebaboon.com", - "spookyexchange.com", - "spookyskate.com", - "spookysleet.com", - "spookystitch.com", - "spoonsilk.com", - "spotlessstamp.com", - "spottednoise.com", - "springolive.com", - "springsister.com", - "springsnails.com", - "sproutingbag.com", - "sprydelta.com", - "sprysummit.com", - "spuriousair.com", - "spuriousbase.com", - "spurioussquirrel.com", - "spuriousstranger.com", - "spysubstance.com", - "squalidscrew.com", - "squeakzinc.com", - "squealingturn.com", - "stakingbasket.com", - "stakingshock.com", - "stakingsmile.com", - "staleshow.com", - "stalesummer.com", - "starkscale.com", - "startingcars.com", - "statshunt.com", - "statuesqueship.com", - "stayaction.com", - "steadfastseat.com", - "steadfastsound.com", - "steadfastsystem.com", - "steadycopper.com", - "stealsteel.com", - "steepscale.com", - "steepsister.com", - "steepsquirrel.com", - "stepcattle.com", - "stepplane.com", - "stepwisevideo.com", - "stereoproxy.com", - "stereotypedsugar.com", - "stewspiders.com", - "stiffgame.com", - "stiffstem.com", - "stimulatingsneeze.com", - "stingsquirrel.com", - "stingycrush.com", - "stingyshoe.com", - "stingyspoon.com", - "stockingsleet.com", - "stockingsneeze.com", - "stomachscience.com", - "stonechin.com", - "stopstomach.com", - "stormyachiever.com", - "stormyfold.com", - "straightnest.com", - "strangeclocks.com", - "strangersponge.com", - "strangesink.com", - "streetsort.com", - "stretchsister.com", - "stretchsneeze.com", - "stretchsquirrel.com", - "stripedbat.com", - "strivesidewalk.com", - "strivesquirrel.com", - "strokesystem.com", - "stupendoussleet.com", - "stupendoussnow.com", - "stupidscene.com", - "sturdysnail.com", - "subletyoke.com", - "sublimequartz.com", - "subsequentswim.com", - "substantialcarpenter.com", - "substantialgrade.com", - "succeedscene.com", - "successfulscent.com", - "suddensoda.com", - "sugarfriction.com", - "suggestionbridge.com", - "sulkycook.com", - "summerobject.com", - "sunshinegates.com", - "superchichair.com", - "superficialeyes.com", - "superficialspring.com", - "superficialsquare.com", - "superviseshoes.com", - "supportwaves.com", - "suspectmark.com", - "swankysquare.com", - "swellstocking.com", - "swelteringsleep.com", - "swingslip.com", - "swordgoose.com", - "syllablesight.com", - "synonymousrule.com", - "synonymoussticks.com", - "synthesizescarecrow.com", - "tackytrains.com", - "tacojournal.com", - "talltouch.com", - "tangibleteam.com", - "tangyamount.com", - "tangycover.com", - "tastelesstrees.com", - "tastesnake.com", - "tawdryson.com", - "tdzvm.pw", - "teacupbooks.com", - "tearfulglass.com", - "techconverter.com", - "tediousbear.com", - "tediousticket.com", - "tedioustooth.com", - "teenytinycellar.com", - "teenytinyshirt.com", - "teenytinytongue.com", - "telephoneapparatus.com", - "tempertrick.com", - "tempttalk.com", - "temptteam.com", - "tendertest.com", - "terriblethumb.com", - "terrifictooth.com", - "testadmiral.com", - "texturetrick.com", - "therapeuticcars.com", - "thickticket.com", - "thicktrucks.com", - "thingsafterthought.com", - "thingstaste.com", - "thinkitten.com", - "thinkitwice.com", - "thirdrespect.com", - "thirstytwig.com", - "thomastorch.com", - "thoughtlessknot.com", - "threetruck.com", - "thrivingmarketplace.com", - "ticketaunt.com", - "ticklesign.com", - "tidymitten.com", - "tightpowder.com", - "tinyswans.com", - "tinytendency.com", - "tiredthroat.com", - "tiresomethunder.com", - "toolcapital.com", - "toomanyalts.com", - "torpidtongue.com", - "trackcaddie.com", - "tradetooth.com", - "trafficviews.com", - "tranquilamulet.com", - "tranquilarchipelago.com", - "tranquilcan.com", - "tranquilplume.com", - "tranquilside.com", - "tranquilveil.com", - "tranquilveranda.com", - "trappush.com", - "treadbun.com", - "tremendousearthquake.com", - "tremendousplastic.com", - "tremendoustime.com", - "tritebadge.com", - "tritethunder.com", - "tritetongue.com", - "troubledtail.com", - "troubleshade.com", - "truckstomatoes.com", - "truculentrate.com", - "tumbleicicle.com", - "tuneupcoffee.com", - "twistloss.com", - "twistsweater.com", - "typicalairplane.com", - "typicalteeth.com", - "tzwaw.pw", - "ubiquitoussea.com", - "ubiquitousyard.com", - "ultraoranges.com", - "ultravalid.com", - "unablehope.com", - "unaccountablecreator.com", - "unaccountablepie.com", - "unarmedindustry.com", - "unbecominghall.com", - "unbecominglamp.com", - "uncoveredexpert.com", - "understoodocean.com", - "unequalbrake.com", - "unequaltrail.com", - "uninterestedquarter.com", - "unknowncontrol.com", - "unknowncrate.com", - "unknowntray.com", - "untidyquestion.com", - "untidyrice.com", - "unusedstone.com", - "unusualtitle.com", - "unwieldyhealth.com", - "unwieldyimpulse.com", - "unwieldyplastic.com", - "uppitytime.com", - "uselesslumber.com", - "validmemo.com", - "vanfireworks.com", - "vanishmemory.com", - "velvetnova.com", - "velvetquasar.com", - "vengefulgrass.com", - "venomousvessel.com", - "venusgloria.com", - "verdantanswer.com", - "verdantlabyrinth.com", - "verdantloom.com", - "verdantsculpture.com", - "verseballs.com", - "vibrantcelebration.com", - "vibrantgale.com", - "vibranthaven.com", - "vibrantpact.com", - "vibrantsundown.com", - "vibranttalisman.com", - "vibrantvale.com", - "victoriousrequest.com", - "virtualvincent.com", - "vividcanopy.com", - "vividfrost.com", - "vividmeadow.com", - "vividplume.com", - "voicelessvein.com", - "voidgoo.com", - "volatileprofit.com", - "volatilevessel.com", - "voraciousgrip.com", - "vq1qi.pw", - "waitingnumber.com", - "wantingwindow.com", - "warmafterthought.com", - "warmquiver.com", - "warnwing.com", - "washbanana.com", - "wateryvan.com", - "waterywave.com", - "waterywrist.com", - "wearbasin.com", - "websitesdude.com", - "wellgroomedapparel.com", - "wellgroomedhydrant.com", - "wellmadefrog.com", - "westpalmweb.com", - "whimsicalcanyon.com", - "whimsicalgrove.com", - "whineattempt.com", - "whirlwealth.com", - "whiskyqueue.com", - "whisperingcascade.com", - "whisperingcrib.com", - "whisperingquasar.com", - "whisperingsummit.com", - "whispermeeting.com", - "wildcommittee.com", - "wirecomic.com", - "wiredforcoffee.com", - "wirypaste.com", - "wistfulwaste.com", - "wittypopcorn.com", - "wittyshack.com", - "workoperation.com", - "worldlever.com", - "worriednumber.com", - "worriedwine.com", - "wretchedfloor.com", - "wrongpotato.com", - "wrongwound.com", - "wtaccesscontrol.com", - "xovq5nemr.com", - "yieldingwoman.com", - "zbwp6ghm.com", - "zephyrcatalyst.com", - "zephyrlabyrinth.com", - "zestycrime.com", - "zestyhorizon.com", - "zestyrover.com", - "zestywire.com", - "zipperxray.com", - "zlp6s.pw", - "zonewedgeshaft.com" + "Leven Labs, Inc. DBA Admiral (2znp09oa.com)": { + "domains": [ + "2znp09oa.com" ], - "prevalence": 0.0109, + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (4jnzhl0d0.com)": { + "domains": [ + "4jnzhl0d0.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (5mcwl.pw)": { + "domains": [ + "5mcwl.pw" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (6ldu6qa.com)": { + "domains": [ + "6ldu6qa.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (82o9v830.com)": { + "domains": [ + "82o9v830.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (abilityscale.com)": { + "domains": [ + "abilityscale.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (abjectattempt.com)": { + "domains": [ + "abjectattempt.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (aboardamusement.com)": { + "domains": [ + "aboardamusement.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (aboardlevel.com)": { + "domains": [ + "aboardlevel.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (abovechat.com)": { + "domains": [ + "abovechat.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (abruptroad.com)": { + "domains": [ + "abruptroad.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (absentairport.com)": { + "domains": [ + "absentairport.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (absorbingband.com)": { + "domains": [ + "absorbingband.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (absorbingcorn.com)": { + "domains": [ + "absorbingcorn.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (absorbingprison.com)": { + "domains": [ + "absorbingprison.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (abstractedamount.com)": { + "domains": [ + "abstractedamount.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (abstractedauthority.com)": { + "domains": [ + "abstractedauthority.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (absurdapple.com)": { + "domains": [ + "absurdapple.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (abundantcoin.com)": { + "domains": [ + "abundantcoin.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (acceptableauthority.com)": { + "domains": [ + "acceptableauthority.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (accurateanimal.com)": { + "domains": [ + "accurateanimal.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (accuratecoal.com)": { + "domains": [ + "accuratecoal.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (achieverknee.com)": { + "domains": [ + "achieverknee.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (acidicstraw.com)": { + "domains": [ + "acidicstraw.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (acidpigs.com)": { + "domains": [ + "acidpigs.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (acridangle.com)": { + "domains": [ + "acridangle.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (acridtwist.com)": { + "domains": [ + "acridtwist.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (actoramusement.com)": { + "domains": [ + "actoramusement.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (actuallysheep.com)": { + "domains": [ + "actuallysheep.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (actuallysnake.com)": { + "domains": [ + "actuallysnake.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (actuallything.com)": { + "domains": [ + "actuallything.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (adamantsnail.com)": { + "domains": [ + "adamantsnail.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (addictedattention.com)": { + "domains": [ + "addictedattention.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (admiral.pub)": { + "domains": [ + "admiral.pub" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (adorableanger.com)": { + "domains": [ + "adorableanger.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (adorableattention.com)": { + "domains": [ + "adorableattention.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (adventurousamount.com)": { + "domains": [ + "adventurousamount.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (afraidlanguage.com)": { + "domains": [ + "afraidlanguage.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (aftermathbrother.com)": { + "domains": [ + "aftermathbrother.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (agilebreeze.com)": { + "domains": [ + "agilebreeze.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (agreeablearch.com)": { + "domains": [ + "agreeablearch.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (agreeabletouch.com)": { + "domains": [ + "agreeabletouch.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (aheadday.com)": { + "domains": [ + "aheadday.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (aheadgrow.com)": { + "domains": [ + "aheadgrow.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (aheadmachine.com)": { + "domains": [ + "aheadmachine.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (ak0gsh40.com)": { + "domains": [ + "ak0gsh40.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (alertarithmetic.com)": { + "domains": [ + "alertarithmetic.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (aliasanvil.com)": { + "domains": [ + "aliasanvil.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (alikeaddition.com)": { + "domains": [ + "alikeaddition.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (aliveachiever.com)": { + "domains": [ + "aliveachiever.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (alleythecat.com)": { + "domains": [ + "alleythecat.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (alluringbucket.com)": { + "domains": [ + "alluringbucket.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (aloofmetal.com)": { + "domains": [ + "aloofmetal.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (aloofvest.com)": { + "domains": [ + "aloofvest.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (alpineactor.com)": { + "domains": [ + "alpineactor.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (ambientdusk.com)": { + "domains": [ + "ambientdusk.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (ambientlagoon.com)": { + "domains": [ + "ambientlagoon.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (ambiguousafternoon.com)": { + "domains": [ + "ambiguousafternoon.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (ambiguousanger.com)": { + "domains": [ + "ambiguousanger.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (ambiguousdinosaurs.com)": { + "domains": [ + "ambiguousdinosaurs.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (ambiguousincome.com)": { + "domains": [ + "ambiguousincome.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (ambrosialsummit.com)": { + "domains": [ + "ambrosialsummit.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (amethystzenith.com)": { + "domains": [ + "amethystzenith.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (amuckafternoon.com)": { + "domains": [ + "amuckafternoon.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (amusedbucket.com)": { + "domains": [ + "amusedbucket.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (analogwonder.com)": { + "domains": [ + "analogwonder.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (analyzecorona.com)": { + "domains": [ + "analyzecorona.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (ancientact.com)": { + "domains": [ + "ancientact.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (annoyedairport.com)": { + "domains": [ + "annoyedairport.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (annoyingacoustics.com)": { + "domains": [ + "annoyingacoustics.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (annoyingclover.com)": { + "domains": [ + "annoyingclover.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (anxiousapples.com)": { + "domains": [ + "anxiousapples.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (aquaticowl.com)": { + "domains": [ + "aquaticowl.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (ar1nvz5.com)": { + "domains": [ + "ar1nvz5.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (archswimming.com)": { + "domains": [ + "archswimming.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (aromamirror.com)": { + "domains": [ + "aromamirror.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (arrivegrowth.com)": { + "domains": [ + "arrivegrowth.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (artthevoid.com)": { + "domains": [ + "artthevoid.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (aspiringapples.com)": { + "domains": [ + "aspiringapples.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (aspiringattempt.com)": { + "domains": [ + "aspiringattempt.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (aspiringtoy.com)": { + "domains": [ + "aspiringtoy.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (astonishingfood.com)": { + "domains": [ + "astonishingfood.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (astralhustle.com)": { + "domains": [ + "astralhustle.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (astrallullaby.com)": { + "domains": [ + "astrallullaby.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (attendchase.com)": { + "domains": [ + "attendchase.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (attractionbanana.com)": { + "domains": [ + "attractionbanana.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (attractivecap.com)": { + "domains": [ + "attractivecap.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (audioarctic.com)": { + "domains": [ + "audioarctic.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (automaticside.com)": { + "domains": [ + "automaticside.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (automaticturkey.com)": { + "domains": [ + "automaticturkey.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (availablerest.com)": { + "domains": [ + "availablerest.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (avalonalbum.com)": { + "domains": [ + "avalonalbum.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (averageactivity.com)": { + "domains": [ + "averageactivity.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (awarealley.com)": { + "domains": [ + "awarealley.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (awesomeagreement.com)": { + "domains": [ + "awesomeagreement.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (awzbijw.com)": { + "domains": [ + "awzbijw.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (axiomaticalley.com)": { + "domains": [ + "axiomaticalley.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (axiomaticanger.com)": { + "domains": [ + "axiomaticanger.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (azuremystique.com)": { + "domains": [ + "azuremystique.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (backupcat.com)": { + "domains": [ + "backupcat.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (badgeboat.com)": { + "domains": [ + "badgeboat.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (badgerabbit.com)": { + "domains": [ + "badgerabbit.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (badgevolcano.com)": { + "domains": [ + "badgevolcano.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (bagbeam.com)": { + "domains": [ + "bagbeam.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (baitbaseball.com)": { + "domains": [ + "baitbaseball.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (balloonbelieve.com)": { + "domains": [ + "balloonbelieve.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (ballsbanana.com)": { + "domains": [ + "ballsbanana.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (bananabarrel.com)": { + "domains": [ + "bananabarrel.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (bandborder.com)": { + "domains": [ + "bandborder.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (barbarousbase.com)": { + "domains": [ + "barbarousbase.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (basilfish.com)": { + "domains": [ + "basilfish.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (basketballbelieve.com)": { + "domains": [ + "basketballbelieve.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (baskettexture.com)": { + "domains": [ + "baskettexture.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (bawdybalance.com)": { + "domains": [ + "bawdybalance.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (bawdybeast.com)": { + "domains": [ + "bawdybeast.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (beamvolcano.com)": { + "domains": [ + "beamvolcano.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (beancontrol.com)": { + "domains": [ + "beancontrol.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (bearmoonlodge.com)": { + "domains": [ + "bearmoonlodge.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (bedsberry.com)": { + "domains": [ + "bedsberry.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (beetleend.com)": { + "domains": [ + "beetleend.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (beginnerpancake.com)": { + "domains": [ + "beginnerpancake.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (begintrain.com)": { + "domains": [ + "begintrain.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (berserkhydrant.com)": { + "domains": [ + "berserkhydrant.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (bespokesandals.com)": { + "domains": [ + "bespokesandals.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (bestboundary.com)": { + "domains": [ + "bestboundary.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (bewilderedbattle.com)": { + "domains": [ + "bewilderedbattle.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (bewilderedblade.com)": { + "domains": [ + "bewilderedblade.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (bhcumsc.com)": { + "domains": [ + "bhcumsc.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (bikepaws.com)": { + "domains": [ + "bikepaws.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (bikesboard.com)": { + "domains": [ + "bikesboard.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (billowybead.com)": { + "domains": [ + "billowybead.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (billowybelief.com)": { + "domains": [ + "billowybelief.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (binspiredtees.com)": { + "domains": [ + "binspiredtees.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (birthdaybelief.com)": { + "domains": [ + "birthdaybelief.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (blackbrake.com)": { + "domains": [ + "blackbrake.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (bleachbubble.com)": { + "domains": [ + "bleachbubble.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (bleachscarecrow.com)": { + "domains": [ + "bleachscarecrow.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (bleedlight.com)": { + "domains": [ + "bleedlight.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (blesspizzas.com)": { + "domains": [ + "blesspizzas.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (blissfulcrescendo.com)": { + "domains": [ + "blissfulcrescendo.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (blissfullagoon.com)": { + "domains": [ + "blissfullagoon.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (blueeyedblow.com)": { + "domains": [ + "blueeyedblow.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (blushingbeast.com)": { + "domains": [ + "blushingbeast.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (blushingbread.com)": { + "domains": [ + "blushingbread.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (boatsvest.com)": { + "domains": [ + "boatsvest.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (boilingbeetle.com)": { + "domains": [ + "boilingbeetle.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (boilingcredit.com)": { + "domains": [ + "boilingcredit.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (boostbehavior.com)": { + "domains": [ + "boostbehavior.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (boredcrown.com)": { + "domains": [ + "boredcrown.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (bouncyproperty.com)": { + "domains": [ + "bouncyproperty.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (boundarybusiness.com)": { + "domains": [ + "boundarybusiness.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (boundlessargument.com)": { + "domains": [ + "boundlessargument.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (boundlessbrake.com)": { + "domains": [ + "boundlessbrake.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (boundlessveil.com)": { + "domains": [ + "boundlessveil.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (brainybasin.com)": { + "domains": [ + "brainybasin.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (brainynut.com)": { + "domains": [ + "brainynut.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (branchborder.com)": { + "domains": [ + "branchborder.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (brandsfive.com)": { + "domains": [ + "brandsfive.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (brandybison.com)": { + "domains": [ + "brandybison.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (bravebone.com)": { + "domains": [ + "bravebone.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (bravecalculator.com)": { + "domains": [ + "bravecalculator.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (breadbalance.com)": { + "domains": [ + "breadbalance.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (breakableinsurance.com)": { + "domains": [ + "breakableinsurance.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (breakfastboat.com)": { + "domains": [ + "breakfastboat.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (breezygrove.com)": { + "domains": [ + "breezygrove.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (brianwould.com)": { + "domains": [ + "brianwould.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (brighttoe.com)": { + "domains": [ + "brighttoe.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (briskstorm.com)": { + "domains": [ + "briskstorm.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (broadborder.com)": { + "domains": [ + "broadborder.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (broadboundary.com)": { + "domains": [ + "broadboundary.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (broadcastbed.com)": { + "domains": [ + "broadcastbed.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (broaddoor.com)": { + "domains": [ + "broaddoor.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (brotherslocket.com)": { + "domains": [ + "brotherslocket.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (bruisebaseball.com)": { + "domains": [ + "bruisebaseball.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (brunchforher.com)": { + "domains": [ + "brunchforher.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (buildingknife.com)": { + "domains": [ + "buildingknife.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (bulbbait.com)": { + "domains": [ + "bulbbait.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (burgersalt.com)": { + "domains": [ + "burgersalt.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (burlywhistle.com)": { + "domains": [ + "burlywhistle.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (burnbubble.com)": { + "domains": [ + "burnbubble.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (bushesbag.com)": { + "domains": [ + "bushesbag.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (bustlingbath.com)": { + "domains": [ + "bustlingbath.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (bustlingbook.com)": { + "domains": [ + "bustlingbook.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (butterbulb.com)": { + "domains": [ + "butterbulb.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (butterburst.com)": { + "domains": [ + "butterburst.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (buttonladybug.com)": { + "domains": [ + "buttonladybug.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cakesdrum.com)": { + "domains": [ + "cakesdrum.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (calculatingcircle.com)": { + "domains": [ + "calculatingcircle.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (calculatingtoothbrush.com)": { + "domains": [ + "calculatingtoothbrush.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (calculatorstatement.com)": { + "domains": [ + "calculatorstatement.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (callousbrake.com)": { + "domains": [ + "callousbrake.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (calmcactus.com)": { + "domains": [ + "calmcactus.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (calypsocapsule.com)": { + "domains": [ + "calypsocapsule.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cannonchange.com)": { + "domains": [ + "cannonchange.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (capablecows.com)": { + "domains": [ + "capablecows.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (capablecup.com)": { + "domains": [ + "capablecup.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (capriciouscorn.com)": { + "domains": [ + "capriciouscorn.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (captivatingcanyon.com)": { + "domains": [ + "captivatingcanyon.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (captivatingillusion.com)": { + "domains": [ + "captivatingillusion.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (captivatingpanorama.com)": { + "domains": [ + "captivatingpanorama.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (captivatingperformance.com)": { + "domains": [ + "captivatingperformance.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (carefuldolls.com)": { + "domains": [ + "carefuldolls.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (caringcast.com)": { + "domains": [ + "caringcast.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (caringzinc.com)": { + "domains": [ + "caringzinc.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (carloforward.com)": { + "domains": [ + "carloforward.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (carpentercomparison.com)": { + "domains": [ + "carpentercomparison.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (carscannon.com)": { + "domains": [ + "carscannon.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cartkitten.com)": { + "domains": [ + "cartkitten.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (carvecakes.com)": { + "domains": [ + "carvecakes.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (catalogcake.com)": { + "domains": [ + "catalogcake.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (catschickens.com)": { + "domains": [ + "catschickens.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cattlecommittee.com)": { + "domains": [ + "cattlecommittee.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (causecherry.com)": { + "domains": [ + "causecherry.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cautiouscamera.com)": { + "domains": [ + "cautiouscamera.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cautiouscherries.com)": { + "domains": [ + "cautiouscherries.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cautiouscrate.com)": { + "domains": [ + "cautiouscrate.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cautiouscredit.com)": { + "domains": [ + "cautiouscredit.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cavecurtain.com)": { + "domains": [ + "cavecurtain.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (ceciliavenus.com)": { + "domains": [ + "ceciliavenus.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (celestialeuphony.com)": { + "domains": [ + "celestialeuphony.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (celestialquasar.com)": { + "domains": [ + "celestialquasar.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (celestialspectra.com)": { + "domains": [ + "celestialspectra.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (chaireggnog.com)": { + "domains": [ + "chaireggnog.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (chairscrack.com)": { + "domains": [ + "chairscrack.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (chairsdonkey.com)": { + "domains": [ + "chairsdonkey.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (chalkoil.com)": { + "domains": [ + "chalkoil.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (changeablecats.com)": { + "domains": [ + "changeablecats.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (channelcamp.com)": { + "domains": [ + "channelcamp.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (chargecracker.com)": { + "domains": [ + "chargecracker.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (charmingplate.com)": { + "domains": [ + "charmingplate.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (charscroll.com)": { + "domains": [ + "charscroll.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cheerycraze.com)": { + "domains": [ + "cheerycraze.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cherriescare.com)": { + "domains": [ + "cherriescare.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (chessbranch.com)": { + "domains": [ + "chessbranch.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (chesscolor.com)": { + "domains": [ + "chesscolor.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (chesscrowd.com)": { + "domains": [ + "chesscrowd.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (chickensstation.com)": { + "domains": [ + "chickensstation.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (childlikecrowd.com)": { + "domains": [ + "childlikecrowd.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (childlikeexample.com)": { + "domains": [ + "childlikeexample.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (childlikeform.com)": { + "domains": [ + "childlikeform.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (chilledliquid.com)": { + "domains": [ + "chilledliquid.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (chingovernment.com)": { + "domains": [ + "chingovernment.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (chinsnakes.com)": { + "domains": [ + "chinsnakes.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (chipperisle.com)": { + "domains": [ + "chipperisle.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (chivalrouscord.com)": { + "domains": [ + "chivalrouscord.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (chubbycreature.com)": { + "domains": [ + "chubbycreature.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (chunkycactus.com)": { + "domains": [ + "chunkycactus.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cicdserver.com)": { + "domains": [ + "cicdserver.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cinemabonus.com)": { + "domains": [ + "cinemabonus.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (circlelevel.com)": { + "domains": [ + "circlelevel.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (clammychicken.com)": { + "domains": [ + "clammychicken.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cleanhaircut.com)": { + "domains": [ + "cleanhaircut.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cloisteredcord.com)": { + "domains": [ + "cloisteredcord.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cloisteredcurve.com)": { + "domains": [ + "cloisteredcurve.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (closedcows.com)": { + "domains": [ + "closedcows.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (closefriction.com)": { + "domains": [ + "closefriction.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cloudhustles.com)": { + "domains": [ + "cloudhustles.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cloudjumbo.com)": { + "domains": [ + "cloudjumbo.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (clovercabbage.com)": { + "domains": [ + "clovercabbage.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (clumsycar.com)": { + "domains": [ + "clumsycar.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (coatfood.com)": { + "domains": [ + "coatfood.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cobaltoverture.com)": { + "domains": [ + "cobaltoverture.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (coffeesidehustle.com)": { + "domains": [ + "coffeesidehustle.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (coldbalance.com)": { + "domains": [ + "coldbalance.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (coldcreatives.com)": { + "domains": [ + "coldcreatives.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (colorfulafterthought.com)": { + "domains": [ + "colorfulafterthought.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (colossalclouds.com)": { + "domains": [ + "colossalclouds.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (colossalcoat.com)": { + "domains": [ + "colossalcoat.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (colossalcry.com)": { + "domains": [ + "colossalcry.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (combativecar.com)": { + "domains": [ + "combativecar.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (combativedetail.com)": { + "domains": [ + "combativedetail.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (combbit.com)": { + "domains": [ + "combbit.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (combcattle.com)": { + "domains": [ + "combcattle.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (combcompetition.com)": { + "domains": [ + "combcompetition.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cometquote.com)": { + "domains": [ + "cometquote.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (comfortablecheese.com)": { + "domains": [ + "comfortablecheese.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (comfygoodness.com)": { + "domains": [ + "comfygoodness.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (companyparcel.com)": { + "domains": [ + "companyparcel.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (comparereaction.com)": { + "domains": [ + "comparereaction.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (compiledoctor.com)": { + "domains": [ + "compiledoctor.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (concernedchange.com)": { + "domains": [ + "concernedchange.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (concernedchickens.com)": { + "domains": [ + "concernedchickens.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (condemnedcomb.com)": { + "domains": [ + "condemnedcomb.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (conditionchange.com)": { + "domains": [ + "conditionchange.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (conditioncrush.com)": { + "domains": [ + "conditioncrush.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (confesschairs.com)": { + "domains": [ + "confesschairs.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (configchain.com)": { + "domains": [ + "configchain.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (confusedcart.com)": { + "domains": [ + "confusedcart.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (connectashelf.com)": { + "domains": [ + "connectashelf.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (consciouschairs.com)": { + "domains": [ + "consciouschairs.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (consciouscheese.com)": { + "domains": [ + "consciouscheese.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (consciousdirt.com)": { + "domains": [ + "consciousdirt.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (consumerzero.com)": { + "domains": [ + "consumerzero.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (controlcola.com)": { + "domains": [ + "controlcola.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (controlhall.com)": { + "domains": [ + "controlhall.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (convertbatch.com)": { + "domains": [ + "convertbatch.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cooingcoal.com)": { + "domains": [ + "cooingcoal.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (coordinatedbedroom.com)": { + "domains": [ + "coordinatedbedroom.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (coordinatedcoat.com)": { + "domains": [ + "coordinatedcoat.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (copycarpenter.com)": { + "domains": [ + "copycarpenter.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (copyrightaccesscontrols.com)": { + "domains": [ + "copyrightaccesscontrols.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (coralreverie.com)": { + "domains": [ + "coralreverie.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (corgibeachday.com)": { + "domains": [ + "corgibeachday.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cosmicsculptor.com)": { + "domains": [ + "cosmicsculptor.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cosmosjackson.com)": { + "domains": [ + "cosmosjackson.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (courageousbaby.com)": { + "domains": [ + "courageousbaby.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (coverapparatus.com)": { + "domains": [ + "coverapparatus.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (coverlayer.com)": { + "domains": [ + "coverlayer.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cozydusk.com)": { + "domains": [ + "cozydusk.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cozyhillside.com)": { + "domains": [ + "cozyhillside.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cozytryst.com)": { + "domains": [ + "cozytryst.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (crabbychin.com)": { + "domains": [ + "crabbychin.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (crackedsafe.com)": { + "domains": [ + "crackedsafe.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (crafthenry.com)": { + "domains": [ + "crafthenry.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (crashchance.com)": { + "domains": [ + "crashchance.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cratecamera.com)": { + "domains": [ + "cratecamera.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (craterbox.com)": { + "domains": [ + "craterbox.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (creatorcherry.com)": { + "domains": [ + "creatorcherry.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (creatorpassenger.com)": { + "domains": [ + "creatorpassenger.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (creaturecabbage.com)": { + "domains": [ + "creaturecabbage.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (crimsonmeadow.com)": { + "domains": [ + "crimsonmeadow.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (critictruck.com)": { + "domains": [ + "critictruck.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (crookedcreature.com)": { + "domains": [ + "crookedcreature.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (crowdedmass.com)": { + "domains": [ + "crowdedmass.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cruisetourist.com)": { + "domains": [ + "cruisetourist.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cryptvalue.com)": { + "domains": [ + "cryptvalue.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (crystalboulevard.com)": { + "domains": [ + "crystalboulevard.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (crystalstatus.com)": { + "domains": [ + "crystalstatus.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cubchannel.com)": { + "domains": [ + "cubchannel.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cubepins.com)": { + "domains": [ + "cubepins.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cuddlycake.com)": { + "domains": [ + "cuddlycake.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cuddlylunchroom.com)": { + "domains": [ + "cuddlylunchroom.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (culturedcamera.com)": { + "domains": [ + "culturedcamera.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (culturedfeather.com)": { + "domains": [ + "culturedfeather.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cumbersomecar.com)": { + "domains": [ + "cumbersomecar.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cumbersomecarpenter.com)": { + "domains": [ + "cumbersomecarpenter.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cumbersomecloud.com)": { + "domains": [ + "cumbersomecloud.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (curiouschalk.com)": { + "domains": [ + "curiouschalk.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (curioussuccess.com)": { + "domains": [ + "curioussuccess.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (curlycannon.com)": { + "domains": [ + "curlycannon.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (currentcollar.com)": { + "domains": [ + "currentcollar.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (curtaincows.com)": { + "domains": [ + "curtaincows.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (curvedhoney.com)": { + "domains": [ + "curvedhoney.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (curvycord.com)": { + "domains": [ + "curvycord.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (curvycry.com)": { + "domains": [ + "curvycry.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cushiondrum.com)": { + "domains": [ + "cushiondrum.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cushionpig.com)": { + "domains": [ + "cushionpig.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cutcurrent.com)": { + "domains": [ + "cutcurrent.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cutechin.com)": { + "domains": [ + "cutechin.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (cyclopsdial.com)": { + "domains": [ + "cyclopsdial.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (dailydivision.com)": { + "domains": [ + "dailydivision.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (damagedadvice.com)": { + "domains": [ + "damagedadvice.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (damageddistance.com)": { + "domains": [ + "damageddistance.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (damdoor.com)": { + "domains": [ + "damdoor.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (dampdock.com)": { + "domains": [ + "dampdock.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (dancemistake.com)": { + "domains": [ + "dancemistake.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (dandydune.com)": { + "domains": [ + "dandydune.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (dandyglow.com)": { + "domains": [ + "dandyglow.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (dapperdiscussion.com)": { + "domains": [ + "dapperdiscussion.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (dapperfloor.com)": { + "domains": [ + "dapperfloor.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (datastoried.com)": { + "domains": [ + "datastoried.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (daughterstone.com)": { + "domains": [ + "daughterstone.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (daymodern.com)": { + "domains": [ + "daymodern.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (dazzlingbook.com)": { + "domains": [ + "dazzlingbook.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (deafeningdock.com)": { + "domains": [ + "deafeningdock.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (deafeningdowntown.com)": { + "domains": [ + "deafeningdowntown.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (debonairdust.com)": { + "domains": [ + "debonairdust.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (debonairtree.com)": { + "domains": [ + "debonairtree.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (debugentity.com)": { + "domains": [ + "debugentity.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (decidedrum.com)": { + "domains": [ + "decidedrum.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (decisivebase.com)": { + "domains": [ + "decisivebase.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (decisivedrawer.com)": { + "domains": [ + "decisivedrawer.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (decisiveducks.com)": { + "domains": [ + "decisiveducks.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (decoycreation.com)": { + "domains": [ + "decoycreation.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (deerbeginner.com)": { + "domains": [ + "deerbeginner.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (defeatedbadge.com)": { + "domains": [ + "defeatedbadge.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (defensevest.com)": { + "domains": [ + "defensevest.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (degreechariot.com)": { + "domains": [ + "degreechariot.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (delegatediscussion.com)": { + "domains": [ + "delegatediscussion.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (delicatecascade.com)": { + "domains": [ + "delicatecascade.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (deliciousducks.com)": { + "domains": [ + "deliciousducks.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (deltafault.com)": { + "domains": [ + "deltafault.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (deluxecrate.com)": { + "domains": [ + "deluxecrate.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (dependenttrip.com)": { + "domains": [ + "dependenttrip.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (desirebucket.com)": { + "domains": [ + "desirebucket.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (desiredirt.com)": { + "domains": [ + "desiredirt.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (detailedgovernment.com)": { + "domains": [ + "detailedgovernment.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (detailedkitten.com)": { + "domains": [ + "detailedkitten.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (detectdinner.com)": { + "domains": [ + "detectdinner.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (detectdiscovery.com)": { + "domains": [ + "detectdiscovery.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (detourgame.com)": { + "domains": [ + "detourgame.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (deviceseal.com)": { + "domains": [ + "deviceseal.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (deviceworkshop.com)": { + "domains": [ + "deviceworkshop.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (devilishdinner.com)": { + "domains": [ + "devilishdinner.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (dewdroplagoon.com)": { + "domains": [ + "dewdroplagoon.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (difficultfog.com)": { + "domains": [ + "difficultfog.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (digestiondrawer.com)": { + "domains": [ + "digestiondrawer.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (dinnerquartz.com)": { + "domains": [ + "dinnerquartz.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (diplomahawaii.com)": { + "domains": [ + "diplomahawaii.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (direfuldesk.com)": { + "domains": [ + "direfuldesk.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (disagreeabledrop.com)": { + "domains": [ + "disagreeabledrop.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (discreetfield.com)": { + "domains": [ + "discreetfield.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (discreetquarter.com)": { + "domains": [ + "discreetquarter.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (distributionneck.com)": { + "domains": [ + "distributionneck.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (distributionpocket.com)": { + "domains": [ + "distributionpocket.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (distributiontomatoes.com)": { + "domains": [ + "distributiontomatoes.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (disturbedquiet.com)": { + "domains": [ + "disturbedquiet.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (divehope.com)": { + "domains": [ + "divehope.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (dk4ywix.com)": { + "domains": [ + "dk4ywix.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (dockdigestion.com)": { + "domains": [ + "dockdigestion.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (dogsonclouds.com)": { + "domains": [ + "dogsonclouds.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (dollardelta.com)": { + "domains": [ + "dollardelta.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (doubledefend.com)": { + "domains": [ + "doubledefend.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (doubtdrawer.com)": { + "domains": [ + "doubtdrawer.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (dq95d35.com)": { + "domains": [ + "dq95d35.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (drainpaste.com)": { + "domains": [ + "drainpaste.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (dramaticdirection.com)": { + "domains": [ + "dramaticdirection.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (dreamycanyon.com)": { + "domains": [ + "dreamycanyon.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (driftpizza.com)": { + "domains": [ + "driftpizza.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (drollwharf.com)": { + "domains": [ + "drollwharf.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (drydrum.com)": { + "domains": [ + "drydrum.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (dustydime.com)": { + "domains": [ + "dustydime.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (dustyhammer.com)": { + "domains": [ + "dustyhammer.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (eagereden.com)": { + "domains": [ + "eagereden.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (eagerflame.com)": { + "domains": [ + "eagerflame.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (eagerknight.com)": { + "domains": [ + "eagerknight.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (earthyfarm.com)": { + "domains": [ + "earthyfarm.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (eatablesquare.com)": { + "domains": [ + "eatablesquare.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (echochief.com)": { + "domains": [ + "echochief.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (echoinghaven.com)": { + "domains": [ + "echoinghaven.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (effervescentcoral.com)": { + "domains": [ + "effervescentcoral.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (effervescentvista.com)": { + "domains": [ + "effervescentvista.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (effulgentnook.com)": { + "domains": [ + "effulgentnook.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (effulgenttempest.com)": { + "domains": [ + "effulgenttempest.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (ejyymghi.com)": { + "domains": [ + "ejyymghi.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (elasticchange.com)": { + "domains": [ + "elasticchange.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (elderlybean.com)": { + "domains": [ + "elderlybean.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (elderlytown.com)": { + "domains": [ + "elderlytown.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (elephantqueue.com)": { + "domains": [ + "elephantqueue.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (elusivebreeze.com)": { + "domains": [ + "elusivebreeze.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (elusivecascade.com)": { + "domains": [ + "elusivecascade.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (elysiantraverse.com)": { + "domains": [ + "elysiantraverse.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (embellishedmeadow.com)": { + "domains": [ + "embellishedmeadow.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (embermosaic.com)": { + "domains": [ + "embermosaic.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (emberwhisper.com)": { + "domains": [ + "emberwhisper.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (eminentbubble.com)": { + "domains": [ + "eminentbubble.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (eminentend.com)": { + "domains": [ + "eminentend.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (emptyescort.com)": { + "domains": [ + "emptyescort.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (enchantedskyline.com)": { + "domains": [ + "enchantedskyline.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (enchantingdiscovery.com)": { + "domains": [ + "enchantingdiscovery.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (enchantingenchantment.com)": { + "domains": [ + "enchantingenchantment.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (enchantingmystique.com)": { + "domains": [ + "enchantingmystique.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (enchantingtundra.com)": { + "domains": [ + "enchantingtundra.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (enchantingvalley.com)": { + "domains": [ + "enchantingvalley.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (encourageshock.com)": { + "domains": [ + "encourageshock.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (encouragingthread.com)": { + "domains": [ + "encouragingthread.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (endlesstrust.com)": { + "domains": [ + "endlesstrust.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (endurablebulb.com)": { + "domains": [ + "endurablebulb.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (energeticexample.com)": { + "domains": [ + "energeticexample.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (energeticladybug.com)": { + "domains": [ + "energeticladybug.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (engineergrape.com)": { + "domains": [ + "engineergrape.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (engineertrick.com)": { + "domains": [ + "engineertrick.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (enigmaticblossom.com)": { + "domains": [ + "enigmaticblossom.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (enigmaticcanyon.com)": { + "domains": [ + "enigmaticcanyon.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (enigmaticvoyage.com)": { + "domains": [ + "enigmaticvoyage.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (enormousearth.com)": { + "domains": [ + "enormousearth.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (enormousfoot.com)": { + "domains": [ + "enormousfoot.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (enterdrama.com)": { + "domains": [ + "enterdrama.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (entertainskin.com)": { + "domains": [ + "entertainskin.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (enthusiastictemper.com)": { + "domains": [ + "enthusiastictemper.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (enviousshape.com)": { + "domains": [ + "enviousshape.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (enviousthread.com)": { + "domains": [ + "enviousthread.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (equablekettle.com)": { + "domains": [ + "equablekettle.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (etherealbamboo.com)": { + "domains": [ + "etherealbamboo.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (ethereallagoon.com)": { + "domains": [ + "ethereallagoon.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (etherealpinnacle.com)": { + "domains": [ + "etherealpinnacle.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (etherealquasar.com)": { + "domains": [ + "etherealquasar.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (etherealripple.com)": { + "domains": [ + "etherealripple.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (evanescentedge.com)": { + "domains": [ + "evanescentedge.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (evasivejar.com)": { + "domains": [ + "evasivejar.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (eventexistence.com)": { + "domains": [ + "eventexistence.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (exampleshake.com)": { + "domains": [ + "exampleshake.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (excitingtub.com)": { + "domains": [ + "excitingtub.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (exclusivebrass.com)": { + "domains": [ + "exclusivebrass.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (executeknowledge.com)": { + "domains": [ + "executeknowledge.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (exhibitsneeze.com)": { + "domains": [ + "exhibitsneeze.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (expansioneggnog.com)": { + "domains": [ + "expansioneggnog.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (exquisiteartisanship.com)": { + "domains": [ + "exquisiteartisanship.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (extractobservation.com)": { + "domains": [ + "extractobservation.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (extralocker.com)": { + "domains": [ + "extralocker.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (extramonies.com)": { + "domains": [ + "extramonies.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (exuberantedge.com)": { + "domains": [ + "exuberantedge.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (facilitatebreakfast.com)": { + "domains": [ + "facilitatebreakfast.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fadechildren.com)": { + "domains": [ + "fadechildren.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fadedsnow.com)": { + "domains": [ + "fadedsnow.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fadewaves.com)": { + "domains": [ + "fadewaves.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fairfeeling.com)": { + "domains": [ + "fairfeeling.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fairiesbranch.com)": { + "domains": [ + "fairiesbranch.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fairygaze.com)": { + "domains": [ + "fairygaze.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fairytaleflame.com)": { + "domains": [ + "fairytaleflame.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fallaciousfifth.com)": { + "domains": [ + "fallaciousfifth.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (falseframe.com)": { + "domains": [ + "falseframe.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (familiarrod.com)": { + "domains": [ + "familiarrod.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fancyactivity.com)": { + "domains": [ + "fancyactivity.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fancydune.com)": { + "domains": [ + "fancydune.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fancygrove.com)": { + "domains": [ + "fancygrove.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fangfeeling.com)": { + "domains": [ + "fangfeeling.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fantastictone.com)": { + "domains": [ + "fantastictone.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (farethief.com)": { + "domains": [ + "farethief.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (farmergoldfish.com)": { + "domains": [ + "farmergoldfish.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (farshake.com)": { + "domains": [ + "farshake.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (farsnails.com)": { + "domains": [ + "farsnails.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fastenfather.com)": { + "domains": [ + "fastenfather.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fasterfineart.com)": { + "domains": [ + "fasterfineart.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fasterjson.com)": { + "domains": [ + "fasterjson.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fatcoil.com)": { + "domains": [ + "fatcoil.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (faucetfoot.com)": { + "domains": [ + "faucetfoot.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (faultycanvas.com)": { + "domains": [ + "faultycanvas.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fearfulfish.com)": { + "domains": [ + "fearfulfish.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fearfulmint.com)": { + "domains": [ + "fearfulmint.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fearlessfaucet.com)": { + "domains": [ + "fearlessfaucet.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fearlesstramp.com)": { + "domains": [ + "fearlesstramp.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (featherstage.com)": { + "domains": [ + "featherstage.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (feeblestamp.com)": { + "domains": [ + "feeblestamp.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (feignedfaucet.com)": { + "domains": [ + "feignedfaucet.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fernwaycloud.com)": { + "domains": [ + "fernwaycloud.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fertilefeeling.com)": { + "domains": [ + "fertilefeeling.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fewjuice.com)": { + "domains": [ + "fewjuice.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fewkittens.com)": { + "domains": [ + "fewkittens.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (finalizeforce.com)": { + "domains": [ + "finalizeforce.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (financefear.com)": { + "domains": [ + "financefear.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (finestpiece.com)": { + "domains": [ + "finestpiece.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (finitecube.com)": { + "domains": [ + "finitecube.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (firecatfilms.com)": { + "domains": [ + "firecatfilms.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fireworkcamp.com)": { + "domains": [ + "fireworkcamp.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (firstendpoint.com)": { + "domains": [ + "firstendpoint.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (firstfrogs.com)": { + "domains": [ + "firstfrogs.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (firsttexture.com)": { + "domains": [ + "firsttexture.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fitmessage.com)": { + "domains": [ + "fitmessage.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fivesidedsquare.com)": { + "domains": [ + "fivesidedsquare.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fixedfold.com)": { + "domains": [ + "fixedfold.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (flakyfeast.com)": { + "domains": [ + "flakyfeast.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (flameuncle.com)": { + "domains": [ + "flameuncle.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (flimsycircle.com)": { + "domains": [ + "flimsycircle.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (flimsythought.com)": { + "domains": [ + "flimsythought.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (flippedfunnel.com)": { + "domains": [ + "flippedfunnel.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (floodprincipal.com)": { + "domains": [ + "floodprincipal.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (flourishingcollaboration.com)": { + "domains": [ + "flourishingcollaboration.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (flourishingendeavor.com)": { + "domains": [ + "flourishingendeavor.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (flourishinginnovation.com)": { + "domains": [ + "flourishinginnovation.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (flourishingpartnership.com)": { + "domains": [ + "flourishingpartnership.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (flowersornament.com)": { + "domains": [ + "flowersornament.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (flowerstreatment.com)": { + "domains": [ + "flowerstreatment.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (flowerycreature.com)": { + "domains": [ + "flowerycreature.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (floweryfact.com)": { + "domains": [ + "floweryfact.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (floweryflavor.com)": { + "domains": [ + "floweryflavor.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (floweryoperation.com)": { + "domains": [ + "floweryoperation.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (flutteringfireman.com)": { + "domains": [ + "flutteringfireman.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (foambench.com)": { + "domains": [ + "foambench.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (followborder.com)": { + "domains": [ + "followborder.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (forecasttiger.com)": { + "domains": [ + "forecasttiger.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (foretellfifth.com)": { + "domains": [ + "foretellfifth.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (forevergears.com)": { + "domains": [ + "forevergears.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (forgetfulflowers.com)": { + "domains": [ + "forgetfulflowers.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (forgetfulsnail.com)": { + "domains": [ + "forgetfulsnail.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fortunatemark.com)": { + "domains": [ + "fortunatemark.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fractalcoast.com)": { + "domains": [ + "fractalcoast.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (frailfruit.com)": { + "domains": [ + "frailfruit.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (framebanana.com)": { + "domains": [ + "framebanana.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (franticroof.com)": { + "domains": [ + "franticroof.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (frantictrail.com)": { + "domains": [ + "frantictrail.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (frazzleart.com)": { + "domains": [ + "frazzleart.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (freakyglass.com)": { + "domains": [ + "freakyglass.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (freezingbuilding.com)": { + "domains": [ + "freezingbuilding.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (frequentflesh.com)": { + "domains": [ + "frequentflesh.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (friendlycrayon.com)": { + "domains": [ + "friendlycrayon.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (friendlyfold.com)": { + "domains": [ + "friendlyfold.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (friendwool.com)": { + "domains": [ + "friendwool.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (frightenedpotato.com)": { + "domains": [ + "frightenedpotato.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (frogator.com)": { + "domains": [ + "frogator.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (frogtray.com)": { + "domains": [ + "frogtray.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fronttoad.com)": { + "domains": [ + "fronttoad.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (frugalfiestas.com)": { + "domains": [ + "frugalfiestas.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fumblingform.com)": { + "domains": [ + "fumblingform.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (functionalcrown.com)": { + "domains": [ + "functionalcrown.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (functionalfeather.com)": { + "domains": [ + "functionalfeather.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (funoverbored.com)": { + "domains": [ + "funoverbored.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (funoverflow.com)": { + "domains": [ + "funoverflow.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (furnstudio.com)": { + "domains": [ + "furnstudio.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (furryfork.com)": { + "domains": [ + "furryfork.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (furryhorses.com)": { + "domains": [ + "furryhorses.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (futuristicapparatus.com)": { + "domains": [ + "futuristicapparatus.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (futuristicfairies.com)": { + "domains": [ + "futuristicfairies.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (futuristicfifth.com)": { + "domains": [ + "futuristicfifth.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (futuristicframe.com)": { + "domains": [ + "futuristicframe.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fuzzyaudio.com)": { + "domains": [ + "fuzzyaudio.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fuzzybasketball.com)": { + "domains": [ + "fuzzybasketball.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fuzzyerror.com)": { + "domains": [ + "fuzzyerror.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (fvl1f.pw)": { + "domains": [ + "fvl1f.pw" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (gammamaximum.com)": { + "domains": [ + "gammamaximum.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (gardenovens.com)": { + "domains": [ + "gardenovens.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (gaudyairplane.com)": { + "domains": [ + "gaudyairplane.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (geekactive.com)": { + "domains": [ + "geekactive.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (generalprose.com)": { + "domains": [ + "generalprose.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (generateoffice.com)": { + "domains": [ + "generateoffice.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (giantsvessel.com)": { + "domains": [ + "giantsvessel.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (giddycoat.com)": { + "domains": [ + "giddycoat.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (giraffepiano.com)": { + "domains": [ + "giraffepiano.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (gitcrumbs.com)": { + "domains": [ + "gitcrumbs.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (givevacation.com)": { + "domains": [ + "givevacation.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (gladglen.com)": { + "domains": [ + "gladglen.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (gladysway.com)": { + "domains": [ + "gladysway.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (glamhawk.com)": { + "domains": [ + "glamhawk.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (gleamingcow.com)": { + "domains": [ + "gleamingcow.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (gleaminghaven.com)": { + "domains": [ + "gleaminghaven.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (glisteningguide.com)": { + "domains": [ + "glisteningguide.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (glisteningsign.com)": { + "domains": [ + "glisteningsign.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (glitteringbrook.com)": { + "domains": [ + "glitteringbrook.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (gloriousbeef.com)": { + "domains": [ + "gloriousbeef.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (glowingmeadow.com)": { + "domains": [ + "glowingmeadow.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (gluedpixel.com)": { + "domains": [ + "gluedpixel.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (goldfishgrowth.com)": { + "domains": [ + "goldfishgrowth.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (gondolagnome.com)": { + "domains": [ + "gondolagnome.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (goodbark.com)": { + "domains": [ + "goodbark.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (gorgeousedge.com)": { + "domains": [ + "gorgeousedge.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (gracefulmilk.com)": { + "domains": [ + "gracefulmilk.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (grainmass.com)": { + "domains": [ + "grainmass.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (grandfatherguitar.com)": { + "domains": [ + "grandfatherguitar.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (gravitygive.com)": { + "domains": [ + "gravitygive.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (gravitykick.com)": { + "domains": [ + "gravitykick.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (grayoranges.com)": { + "domains": [ + "grayoranges.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (grayreceipt.com)": { + "domains": [ + "grayreceipt.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (greasysquare.com)": { + "domains": [ + "greasysquare.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (greyinstrument.com)": { + "domains": [ + "greyinstrument.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (gripcorn.com)": { + "domains": [ + "gripcorn.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (groovyornament.com)": { + "domains": [ + "groovyornament.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (grouchybrothers.com)": { + "domains": [ + "grouchybrothers.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (grouchypush.com)": { + "domains": [ + "grouchypush.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (grumpydime.com)": { + "domains": [ + "grumpydime.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (grumpydrawer.com)": { + "domains": [ + "grumpydrawer.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (guardeddirection.com)": { + "domains": [ + "guardeddirection.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (guardedschool.com)": { + "domains": [ + "guardedschool.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (guessdetail.com)": { + "domains": [ + "guessdetail.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (guidecent.com)": { + "domains": [ + "guidecent.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (guildalpha.com)": { + "domains": [ + "guildalpha.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (guiltlessbasketball.com)": { + "domains": [ + "guiltlessbasketball.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (gulliblegrip.com)": { + "domains": [ + "gulliblegrip.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (gustocooking.com)": { + "domains": [ + "gustocooking.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (gustygrandmother.com)": { + "domains": [ + "gustygrandmother.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (h78xb.pw)": { + "domains": [ + "h78xb.pw" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (habitualhumor.com)": { + "domains": [ + "habitualhumor.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (halcyoncanyon.com)": { + "domains": [ + "halcyoncanyon.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (halcyonsculpture.com)": { + "domains": [ + "halcyonsculpture.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (hallowedinvention.com)": { + "domains": [ + "hallowedinvention.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (haltingbadge.com)": { + "domains": [ + "haltingbadge.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (haltingdivision.com)": { + "domains": [ + "haltingdivision.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (haltinggold.com)": { + "domains": [ + "haltinggold.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (hammerhearing.com)": { + "domains": [ + "hammerhearing.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (handleteeth.com)": { + "domains": [ + "handleteeth.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (handnorth.com)": { + "domains": [ + "handnorth.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (handsomehose.com)": { + "domains": [ + "handsomehose.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (handsomeindustry.com)": { + "domains": [ + "handsomeindustry.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (handsomelyhealth.com)": { + "domains": [ + "handsomelyhealth.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (handsomelythumb.com)": { + "domains": [ + "handsomelythumb.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (handsomeyam.com)": { + "domains": [ + "handsomeyam.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (handyfield.com)": { + "domains": [ + "handyfield.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (handyfireman.com)": { + "domains": [ + "handyfireman.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (handyincrease.com)": { + "domains": [ + "handyincrease.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (haplesshydrant.com)": { + "domains": [ + "haplesshydrant.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (haplessland.com)": { + "domains": [ + "haplessland.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (happysponge.com)": { + "domains": [ + "happysponge.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (harborcaption.com)": { + "domains": [ + "harborcaption.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (harborcub.com)": { + "domains": [ + "harborcub.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (harmonicbamboo.com)": { + "domains": [ + "harmonicbamboo.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (harmonywing.com)": { + "domains": [ + "harmonywing.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (headydegree.com)": { + "domains": [ + "headydegree.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (headyhook.com)": { + "domains": [ + "headyhook.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (healflowers.com)": { + "domains": [ + "healflowers.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (hearinglizards.com)": { + "domains": [ + "hearinglizards.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (heartbreakingmind.com)": { + "domains": [ + "heartbreakingmind.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (hearthorn.com)": { + "domains": [ + "hearthorn.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (heavydetail.com)": { + "domains": [ + "heavydetail.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (heavyplayground.com)": { + "domains": [ + "heavyplayground.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (helpcollar.com)": { + "domains": [ + "helpcollar.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (helpflame.com)": { + "domains": [ + "helpflame.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (hfc195b.com)": { + "domains": [ + "hfc195b.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (highfalutinbox.com)": { + "domains": [ + "highfalutinbox.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (highfalutinhoney.com)": { + "domains": [ + "highfalutinhoney.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (hilariouszinc.com)": { + "domains": [ + "hilariouszinc.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (historicalbeam.com)": { + "domains": [ + "historicalbeam.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (hocgeese.com)": { + "domains": [ + "hocgeese.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (hollowafterthought.com)": { + "domains": [ + "hollowafterthought.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (homelycrown.com)": { + "domains": [ + "homelycrown.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (homeslick.com)": { + "domains": [ + "homeslick.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (honeybulb.com)": { + "domains": [ + "honeybulb.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (honeywhipped.com)": { + "domains": [ + "honeywhipped.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (honorablehydrant.com)": { + "domains": [ + "honorablehydrant.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (honorableland.com)": { + "domains": [ + "honorableland.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (horsenectar.com)": { + "domains": [ + "horsenectar.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (hospitablehall.com)": { + "domains": [ + "hospitablehall.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (hospitablehat.com)": { + "domains": [ + "hospitablehat.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (howdyinbox.com)": { + "domains": [ + "howdyinbox.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (humdrumhobbies.com)": { + "domains": [ + "humdrumhobbies.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (humdrumtouch.com)": { + "domains": [ + "humdrumtouch.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (hurtgrape.com)": { + "domains": [ + "hurtgrape.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (hypnoticwound.com)": { + "domains": [ + "hypnoticwound.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (hystericalcloth.com)": { + "domains": [ + "hystericalcloth.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (hystericalfinger.com)": { + "domains": [ + "hystericalfinger.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (i9w8p.pw)": { + "domains": [ + "i9w8p.pw" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (idolscene.com)": { + "domains": [ + "idolscene.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (idyllicjazz.com)": { + "domains": [ + "idyllicjazz.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (illinvention.com)": { + "domains": [ + "illinvention.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (illustriousoatmeal.com)": { + "domains": [ + "illustriousoatmeal.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (immensehoney.com)": { + "domains": [ + "immensehoney.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (imminentshake.com)": { + "domains": [ + "imminentshake.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (importantmeat.com)": { + "domains": [ + "importantmeat.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (importedincrease.com)": { + "domains": [ + "importedincrease.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (importedinsect.com)": { + "domains": [ + "importedinsect.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (importlocate.com)": { + "domains": [ + "importlocate.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (impossibleexpansion.com)": { + "domains": [ + "impossibleexpansion.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (impossiblemove.com)": { + "domains": [ + "impossiblemove.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (impulsejewel.com)": { + "domains": [ + "impulsejewel.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (impulselumber.com)": { + "domains": [ + "impulselumber.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (incomehippo.com)": { + "domains": [ + "incomehippo.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (incompetentjoke.com)": { + "domains": [ + "incompetentjoke.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (inconclusiveaction.com)": { + "domains": [ + "inconclusiveaction.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (infamousstream.com)": { + "domains": [ + "infamousstream.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (innocentlamp.com)": { + "domains": [ + "innocentlamp.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (innocentwax.com)": { + "domains": [ + "innocentwax.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (inputicicle.com)": { + "domains": [ + "inputicicle.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (inquisitiveice.com)": { + "domains": [ + "inquisitiveice.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (inquisitiveinvention.com)": { + "domains": [ + "inquisitiveinvention.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (intelligentscissors.com)": { + "domains": [ + "intelligentscissors.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (intentlens.com)": { + "domains": [ + "intentlens.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (interestdust.com)": { + "domains": [ + "interestdust.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (internalcondition.com)": { + "domains": [ + "internalcondition.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (internalsink.com)": { + "domains": [ + "internalsink.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (iotapool.com)": { + "domains": [ + "iotapool.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (iridescentdusk.com)": { + "domains": [ + "iridescentdusk.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (iridescentvista.com)": { + "domains": [ + "iridescentvista.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (irritatingfog.com)": { + "domains": [ + "irritatingfog.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (itemslice.com)": { + "domains": [ + "itemslice.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (ivykiosk.com)": { + "domains": [ + "ivykiosk.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (j93557g.com)": { + "domains": [ + "j93557g.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (jadeitite.com)": { + "domains": [ + "jadeitite.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (jaderooster.com)": { + "domains": [ + "jaderooster.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (jailbulb.com)": { + "domains": [ + "jailbulb.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (joblessdrum.com)": { + "domains": [ + "joblessdrum.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (jollylens.com)": { + "domains": [ + "jollylens.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (joyfulkeen.com)": { + "domains": [ + "joyfulkeen.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (joyfulvibe.com)": { + "domains": [ + "joyfulvibe.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (joyoussurprise.com)": { + "domains": [ + "joyoussurprise.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (jubilantaura.com)": { + "domains": [ + "jubilantaura.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (jubilantcanyon.com)": { + "domains": [ + "jubilantcanyon.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (jubilantcascade.com)": { + "domains": [ + "jubilantcascade.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (jubilantglimmer.com)": { + "domains": [ + "jubilantglimmer.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (jubilanthush.com)": { + "domains": [ + "jubilanthush.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (jubilantlagoon.com)": { + "domains": [ + "jubilantlagoon.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (jubilantpinnacle.com)": { + "domains": [ + "jubilantpinnacle.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (jubilanttempest.com)": { + "domains": [ + "jubilanttempest.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (jubilantvista.com)": { + "domains": [ + "jubilantvista.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (jubilantwhisper.com)": { + "domains": [ + "jubilantwhisper.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (juicebard.com)": { + "domains": [ + "juicebard.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (juiceblocks.com)": { + "domains": [ + "juiceblocks.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (justicejudo.com)": { + "domains": [ + "justicejudo.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (justwebcards.com)": { + "domains": [ + "justwebcards.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (k54nw.pw)": { + "domains": [ + "k54nw.pw" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (kaputquill.com)": { + "domains": [ + "kaputquill.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (keenquill.com)": { + "domains": [ + "keenquill.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (kibbleandbytes.com)": { + "domains": [ + "kibbleandbytes.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (kindhush.com)": { + "domains": [ + "kindhush.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (kitesquirrel.com)": { + "domains": [ + "kitesquirrel.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (knitstamp.com)": { + "domains": [ + "knitstamp.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (knottyswing.com)": { + "domains": [ + "knottyswing.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (laboredlight.com)": { + "domains": [ + "laboredlight.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (laboredlocket.com)": { + "domains": [ + "laboredlocket.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (lameletters.com)": { + "domains": [ + "lameletters.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (lamplow.com)": { + "domains": [ + "lamplow.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (largebrass.com)": { + "domains": [ + "largebrass.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (lasttaco.com)": { + "domains": [ + "lasttaco.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (laughablelizards.com)": { + "domains": [ + "laughablelizards.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (leaplunchroom.com)": { + "domains": [ + "leaplunchroom.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (ledlocket.com)": { + "domains": [ + "ledlocket.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (leftliquid.com)": { + "domains": [ + "leftliquid.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (lemonpackage.com)": { + "domains": [ + "lemonpackage.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (lemonsandjoy.com)": { + "domains": [ + "lemonsandjoy.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (liftedknowledge.com)": { + "domains": [ + "liftedknowledge.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (lightenafterthought.com)": { + "domains": [ + "lightenafterthought.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (lighttalon.com)": { + "domains": [ + "lighttalon.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (livelumber.com)": { + "domains": [ + "livelumber.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (livelylaugh.com)": { + "domains": [ + "livelylaugh.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (livelyreward.com)": { + "domains": [ + "livelyreward.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (livingsleet.com)": { + "domains": [ + "livingsleet.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (lizardslaugh.com)": { + "domains": [ + "lizardslaugh.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (loadsurprise.com)": { + "domains": [ + "loadsurprise.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (lonelyflavor.com)": { + "domains": [ + "lonelyflavor.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (longingtrees.com)": { + "domains": [ + "longingtrees.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (looseloaf.com)": { + "domains": [ + "looseloaf.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (lorenzourban.com)": { + "domains": [ + "lorenzourban.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (losslace.com)": { + "domains": [ + "losslace.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (loudlunch.com)": { + "domains": [ + "loudlunch.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (lovelydrum.com)": { + "domains": [ + "lovelydrum.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (loveseashore.com)": { + "domains": [ + "loveseashore.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (lp3tdqle.com)": { + "domains": [ + "lp3tdqle.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (luckyzombie.com)": { + "domains": [ + "luckyzombie.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (ludicrousarch.com)": { + "domains": [ + "ludicrousarch.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (lumberamount.com)": { + "domains": [ + "lumberamount.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (luminousboulevard.com)": { + "domains": [ + "luminousboulevard.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (luminouscatalyst.com)": { + "domains": [ + "luminouscatalyst.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (luminoussculptor.com)": { + "domains": [ + "luminoussculptor.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (lumpygnome.com)": { + "domains": [ + "lumpygnome.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (lumpylumber.com)": { + "domains": [ + "lumpylumber.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (lunchroomlock.com)": { + "domains": [ + "lunchroomlock.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (lustroushaven.com)": { + "domains": [ + "lustroushaven.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (lyricshook.com)": { + "domains": [ + "lyricshook.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (maddeningpowder.com)": { + "domains": [ + "maddeningpowder.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (madebyintent.com)": { + "domains": [ + "madebyintent.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (magicaljoin.com)": { + "domains": [ + "magicaljoin.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (magiczenith.com)": { + "domains": [ + "magiczenith.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (magnetairport.com)": { + "domains": [ + "magnetairport.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (majesticmountainrange.com)": { + "domains": [ + "majesticmountainrange.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (majesticwaterscape.com)": { + "domains": [ + "majesticwaterscape.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (majesticwilderness.com)": { + "domains": [ + "majesticwilderness.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (maliciousmusic.com)": { + "domains": [ + "maliciousmusic.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (managedpush.com)": { + "domains": [ + "managedpush.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (mantrafox.com)": { + "domains": [ + "mantrafox.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (mapbasin.com)": { + "domains": [ + "mapbasin.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (marblediscussion.com)": { + "domains": [ + "marblediscussion.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (markahouse.com)": { + "domains": [ + "markahouse.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (markedmeasure.com)": { + "domains": [ + "markedmeasure.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (marketspiders.com)": { + "domains": [ + "marketspiders.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (marriedbelief.com)": { + "domains": [ + "marriedbelief.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (marriedmailbox.com)": { + "domains": [ + "marriedmailbox.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (marriedvalue.com)": { + "domains": [ + "marriedvalue.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (massivemark.com)": { + "domains": [ + "massivemark.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (materialisticmoon.com)": { + "domains": [ + "materialisticmoon.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (materialmilk.com)": { + "domains": [ + "materialmilk.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (materialparcel.com)": { + "domains": [ + "materialparcel.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (materialplayground.com)": { + "domains": [ + "materialplayground.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (meadowlullaby.com)": { + "domains": [ + "meadowlullaby.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (measlymiddle.com)": { + "domains": [ + "measlymiddle.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (meatydime.com)": { + "domains": [ + "meatydime.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (meddleplant.com)": { + "domains": [ + "meddleplant.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (mediatescarf.com)": { + "domains": [ + "mediatescarf.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (mediumshort.com)": { + "domains": [ + "mediumshort.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (mellowhush.com)": { + "domains": [ + "mellowhush.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (mellowmailbox.com)": { + "domains": [ + "mellowmailbox.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (melodiouschorus.com)": { + "domains": [ + "melodiouschorus.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (melodiouscomposition.com)": { + "domains": [ + "melodiouscomposition.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (melodioussymphony.com)": { + "domains": [ + "melodioussymphony.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (meltmilk.com)": { + "domains": [ + "meltmilk.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (memopilot.com)": { + "domains": [ + "memopilot.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (memorizematch.com)": { + "domains": [ + "memorizematch.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (memorizeneck.com)": { + "domains": [ + "memorizeneck.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (mentorsticks.com)": { + "domains": [ + "mentorsticks.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (meremark.com)": { + "domains": [ + "meremark.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (merequartz.com)": { + "domains": [ + "merequartz.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (merryopal.com)": { + "domains": [ + "merryopal.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (merryvault.com)": { + "domains": [ + "merryvault.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (messagenovice.com)": { + "domains": [ + "messagenovice.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (messyoranges.com)": { + "domains": [ + "messyoranges.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (metajaws.com)": { + "domains": [ + "metajaws.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (mightyspiders.com)": { + "domains": [ + "mightyspiders.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (mimosamajor.com)": { + "domains": [ + "mimosamajor.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (mindfulgem.com)": { + "domains": [ + "mindfulgem.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (minorcattle.com)": { + "domains": [ + "minorcattle.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (minusmental.com)": { + "domains": [ + "minusmental.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (minuteburst.com)": { + "domains": [ + "minuteburst.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (miscreantmoon.com)": { + "domains": [ + "miscreantmoon.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (mistyhorizon.com)": { + "domains": [ + "mistyhorizon.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (mittencattle.com)": { + "domains": [ + "mittencattle.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (mixedreading.com)": { + "domains": [ + "mixedreading.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (modularmental.com)": { + "domains": [ + "modularmental.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (monacobeatles.com)": { + "domains": [ + "monacobeatles.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (moorshoes.com)": { + "domains": [ + "moorshoes.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (morefriendly.com)": { + "domains": [ + "morefriendly.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (motionflowers.com)": { + "domains": [ + "motionflowers.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (motionlessbag.com)": { + "domains": [ + "motionlessbag.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (motionlessbelief.com)": { + "domains": [ + "motionlessbelief.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (motionlessmeeting.com)": { + "domains": [ + "motionlessmeeting.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (movemeal.com)": { + "domains": [ + "movemeal.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (muddledaftermath.com)": { + "domains": [ + "muddledaftermath.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (muddledmemory.com)": { + "domains": [ + "muddledmemory.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (mundanenail.com)": { + "domains": [ + "mundanenail.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (mundanepollution.com)": { + "domains": [ + "mundanepollution.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (mushywaste.com)": { + "domains": [ + "mushywaste.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (muteknife.com)": { + "domains": [ + "muteknife.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (mutemailbox.com)": { + "domains": [ + "mutemailbox.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (mysticalagoon.com)": { + "domains": [ + "mysticalagoon.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (naivestatement.com)": { + "domains": [ + "naivestatement.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (nappyattack.com)": { + "domains": [ + "nappyattack.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (nappyneck.com)": { + "domains": [ + "nappyneck.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (neatshade.com)": { + "domains": [ + "neatshade.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (nebulacrescent.com)": { + "domains": [ + "nebulacrescent.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (nebulajubilee.com)": { + "domains": [ + "nebulajubilee.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (nebulousamusement.com)": { + "domains": [ + "nebulousamusement.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (nebulousgarden.com)": { + "domains": [ + "nebulousgarden.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (nebulousquasar.com)": { + "domains": [ + "nebulousquasar.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (nebulousripple.com)": { + "domains": [ + "nebulousripple.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (needlessnorth.com)": { + "domains": [ + "needlessnorth.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (needyneedle.com)": { + "domains": [ + "needyneedle.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (neighborlywatch.com)": { + "domains": [ + "neighborlywatch.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (nervoussummer.com)": { + "domains": [ + "nervoussummer.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (newsletterjet.com)": { + "domains": [ + "newsletterjet.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (niftygraphs.com)": { + "domains": [ + "niftygraphs.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (niftyhospital.com)": { + "domains": [ + "niftyhospital.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (niftyjelly.com)": { + "domains": [ + "niftyjelly.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (niftyreports.com)": { + "domains": [ + "niftyreports.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (nightwound.com)": { + "domains": [ + "nightwound.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (nimbleplot.com)": { + "domains": [ + "nimbleplot.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (nocturnalloom.com)": { + "domains": [ + "nocturnalloom.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (nocturnalmystique.com)": { + "domains": [ + "nocturnalmystique.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (noiselessplough.com)": { + "domains": [ + "noiselessplough.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (nonchalantnerve.com)": { + "domains": [ + "nonchalantnerve.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (nondescriptcrowd.com)": { + "domains": [ + "nondescriptcrowd.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (nondescriptnote.com)": { + "domains": [ + "nondescriptnote.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (nondescriptstocking.com)": { + "domains": [ + "nondescriptstocking.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (nostalgicknot.com)": { + "domains": [ + "nostalgicknot.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (nostalgicneed.com)": { + "domains": [ + "nostalgicneed.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (notifyglass.com)": { + "domains": [ + "notifyglass.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (nudgeduck.com)": { + "domains": [ + "nudgeduck.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (nullnorth.com)": { + "domains": [ + "nullnorth.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (numberlessring.com)": { + "domains": [ + "numberlessring.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (numerousnest.com)": { + "domains": [ + "numerousnest.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (nutritiousbean.com)": { + "domains": [ + "nutritiousbean.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (nuttyorganization.com)": { + "domains": [ + "nuttyorganization.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (oafishchance.com)": { + "domains": [ + "oafishchance.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (oafishobservation.com)": { + "domains": [ + "oafishobservation.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (obscenesidewalk.com)": { + "domains": [ + "obscenesidewalk.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (observantice.com)": { + "domains": [ + "observantice.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (oldfashionedoffer.com)": { + "domains": [ + "oldfashionedoffer.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (omgthink.com)": { + "domains": [ + "omgthink.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (omniscientfeeling.com)": { + "domains": [ + "omniscientfeeling.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (onlywoofs.com)": { + "domains": [ + "onlywoofs.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (opalquill.com)": { + "domains": [ + "opalquill.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (operationchicken.com)": { + "domains": [ + "operationchicken.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (operationnail.com)": { + "domains": [ + "operationnail.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (oppositeoperation.com)": { + "domains": [ + "oppositeoperation.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (optimallimit.com)": { + "domains": [ + "optimallimit.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (opulentsylvan.com)": { + "domains": [ + "opulentsylvan.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (orientedargument.com)": { + "domains": [ + "orientedargument.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (orionember.com)": { + "domains": [ + "orionember.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (ourblogthing.com)": { + "domains": [ + "ourblogthing.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (outdoorthingy.com)": { + "domains": [ + "outdoorthingy.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (outgoinggiraffe.com)": { + "domains": [ + "outgoinggiraffe.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (outsidevibe.com)": { + "domains": [ + "outsidevibe.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (outstandingincome.com)": { + "domains": [ + "outstandingincome.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (outstandingsnails.com)": { + "domains": [ + "outstandingsnails.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (overconfidentfood.com)": { + "domains": [ + "overconfidentfood.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (overkick.com)": { + "domains": [ + "overkick.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (overratedchalk.com)": { + "domains": [ + "overratedchalk.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (owlsr.us)": { + "domains": [ + "owlsr.us" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (oxygenfuse.com)": { + "domains": [ + "oxygenfuse.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (pailcrime.com)": { + "domains": [ + "pailcrime.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (pailpatch.com)": { + "domains": [ + "pailpatch.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (painstakingpickle.com)": { + "domains": [ + "painstakingpickle.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (paintpear.com)": { + "domains": [ + "paintpear.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (paleleaf.com)": { + "domains": [ + "paleleaf.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (pamelarandom.com)": { + "domains": [ + "pamelarandom.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (panickycurtain.com)": { + "domains": [ + "panickycurtain.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (panickypancake.com)": { + "domains": [ + "panickypancake.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (panoramicplane.com)": { + "domains": [ + "panoramicplane.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (parallelbulb.com)": { + "domains": [ + "parallelbulb.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (parchedsofa.com)": { + "domains": [ + "parchedsofa.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (pardonpopular.com)": { + "domains": [ + "pardonpopular.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (parentpicture.com)": { + "domains": [ + "parentpicture.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (parsimoniouspolice.com)": { + "domains": [ + "parsimoniouspolice.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (partplanes.com)": { + "domains": [ + "partplanes.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (passivepolo.com)": { + "domains": [ + "passivepolo.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (pastoralroad.com)": { + "domains": [ + "pastoralroad.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (pawsnug.com)": { + "domains": [ + "pawsnug.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (peacefullimit.com)": { + "domains": [ + "peacefullimit.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (pedromister.com)": { + "domains": [ + "pedromister.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (pedropanther.com)": { + "domains": [ + "pedropanther.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (perceivequarter.com)": { + "domains": [ + "perceivequarter.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (perkyjade.com)": { + "domains": [ + "perkyjade.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (petiteumbrella.com)": { + "domains": [ + "petiteumbrella.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (philippinch.com)": { + "domains": [ + "philippinch.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (photographpan.com)": { + "domains": [ + "photographpan.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (piespower.com)": { + "domains": [ + "piespower.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (pinchsquirrel.com)": { + "domains": [ + "pinchsquirrel.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (pinkbonanza.com)": { + "domains": [ + "pinkbonanza.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (piquantgrove.com)": { + "domains": [ + "piquantgrove.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (piquantmeadow.com)": { + "domains": [ + "piquantmeadow.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (piquantpigs.com)": { + "domains": [ + "piquantpigs.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (piquantprice.com)": { + "domains": [ + "piquantprice.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (piquantvortex.com)": { + "domains": [ + "piquantvortex.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (pixeledhub.com)": { + "domains": [ + "pixeledhub.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (pizzasnut.com)": { + "domains": [ + "pizzasnut.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (placeframe.com)": { + "domains": [ + "placeframe.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (placidactivity.com)": { + "domains": [ + "placidactivity.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (placidperson.com)": { + "domains": [ + "placidperson.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (planebasin.com)": { + "domains": [ + "planebasin.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (plantdigestion.com)": { + "domains": [ + "plantdigestion.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (playfulriver.com)": { + "domains": [ + "playfulriver.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (pleasantpump.com)": { + "domains": [ + "pleasantpump.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (plotparent.com)": { + "domains": [ + "plotparent.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (plotrabbit.com)": { + "domains": [ + "plotrabbit.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (pluckypocket.com)": { + "domains": [ + "pluckypocket.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (pluckyzone.com)": { + "domains": [ + "pluckyzone.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (pocketfaucet.com)": { + "domains": [ + "pocketfaucet.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (poemprompt.com)": { + "domains": [ + "poemprompt.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (poeticpackage.com)": { + "domains": [ + "poeticpackage.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (pointdigestion.com)": { + "domains": [ + "pointdigestion.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (pointlesshour.com)": { + "domains": [ + "pointlesshour.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (pointlesspocket.com)": { + "domains": [ + "pointlesspocket.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (pointlessprofit.com)": { + "domains": [ + "pointlessprofit.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (pointlessrifle.com)": { + "domains": [ + "pointlessrifle.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (poisedfuel.com)": { + "domains": [ + "poisedfuel.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (polarismagnet.com)": { + "domains": [ + "polarismagnet.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (polishedcrescent.com)": { + "domains": [ + "polishedcrescent.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (polishedfolly.com)": { + "domains": [ + "polishedfolly.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (politeplanes.com)": { + "domains": [ + "politeplanes.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (politicalflip.com)": { + "domains": [ + "politicalflip.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (politicalporter.com)": { + "domains": [ + "politicalporter.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (popplantation.com)": { + "domains": [ + "popplantation.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (possibleboats.com)": { + "domains": [ + "possibleboats.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (possiblepencil.com)": { + "domains": [ + "possiblepencil.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (potatoinvention.com)": { + "domains": [ + "potatoinvention.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (powderjourney.com)": { + "domains": [ + "powderjourney.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (powerfulblends.com)": { + "domains": [ + "powerfulblends.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (powerfulcopper.com)": { + "domains": [ + "powerfulcopper.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (preciousplanes.com)": { + "domains": [ + "preciousplanes.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (predictplate.com)": { + "domains": [ + "predictplate.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (prefixpatriot.com)": { + "domains": [ + "prefixpatriot.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (prepareplanes.com)": { + "domains": [ + "prepareplanes.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (presetrabbits.com)": { + "domains": [ + "presetrabbits.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (previousplayground.com)": { + "domains": [ + "previousplayground.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (previouspotato.com)": { + "domains": [ + "previouspotato.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (priceypies.com)": { + "domains": [ + "priceypies.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (pricklydebt.com)": { + "domains": [ + "pricklydebt.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (pricklypollution.com)": { + "domains": [ + "pricklypollution.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (pristinegale.com)": { + "domains": [ + "pristinegale.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (probablepartner.com)": { + "domains": [ + "probablepartner.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (processplantation.com)": { + "domains": [ + "processplantation.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (producepickle.com)": { + "domains": [ + "producepickle.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (productsurfer.com)": { + "domains": [ + "productsurfer.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (profitrumour.com)": { + "domains": [ + "profitrumour.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (profusesupport.com)": { + "domains": [ + "profusesupport.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (promiseair.com)": { + "domains": [ + "promiseair.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (proofconvert.com)": { + "domains": [ + "proofconvert.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (propertypotato.com)": { + "domains": [ + "propertypotato.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (protestcopy.com)": { + "domains": [ + "protestcopy.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (psychedelicarithmetic.com)": { + "domains": [ + "psychedelicarithmetic.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (psychedelicchess.com)": { + "domains": [ + "psychedelicchess.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (publicsofa.com)": { + "domains": [ + "publicsofa.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (puffyloss.com)": { + "domains": [ + "puffyloss.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (puffypaste.com)": { + "domains": [ + "puffypaste.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (puffypull.com)": { + "domains": [ + "puffypull.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (puffypurpose.com)": { + "domains": [ + "puffypurpose.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (pulsatingmeadow.com)": { + "domains": [ + "pulsatingmeadow.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (pumpedpancake.com)": { + "domains": [ + "pumpedpancake.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (pumpedpurpose.com)": { + "domains": [ + "pumpedpurpose.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (punyplant.com)": { + "domains": [ + "punyplant.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (puppytooth.com)": { + "domains": [ + "puppytooth.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (purposepipe.com)": { + "domains": [ + "purposepipe.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (quacksquirrel.com)": { + "domains": [ + "quacksquirrel.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (quaintcan.com)": { + "domains": [ + "quaintcan.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (quaintlake.com)": { + "domains": [ + "quaintlake.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (quantumlagoon.com)": { + "domains": [ + "quantumlagoon.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (quantumshine.com)": { + "domains": [ + "quantumshine.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (queenskart.com)": { + "domains": [ + "queenskart.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (quietknowledge.com)": { + "domains": [ + "quietknowledge.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (quillkick.com)": { + "domains": [ + "quillkick.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (quirkybliss.com)": { + "domains": [ + "quirkybliss.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (quirkysugar.com)": { + "domains": [ + "quirkysugar.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (quixoticnebula.com)": { + "domains": [ + "quixoticnebula.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (quizzicalpartner.com)": { + "domains": [ + "quizzicalpartner.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (quizzicalzephyr.com)": { + "domains": [ + "quizzicalzephyr.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (rabbitbreath.com)": { + "domains": [ + "rabbitbreath.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (rabbitrifle.com)": { + "domains": [ + "rabbitrifle.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (radiantcanopy.com)": { + "domains": [ + "radiantcanopy.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (radiantlullaby.com)": { + "domains": [ + "radiantlullaby.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (radiateprose.com)": { + "domains": [ + "radiateprose.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (railwaygiraffe.com)": { + "domains": [ + "railwaygiraffe.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (railwayreason.com)": { + "domains": [ + "railwayreason.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (raintwig.com)": { + "domains": [ + "raintwig.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (rainyhand.com)": { + "domains": [ + "rainyhand.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (rainyrule.com)": { + "domains": [ + "rainyrule.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (rambunctiousflock.com)": { + "domains": [ + "rambunctiousflock.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (rangecake.com)": { + "domains": [ + "rangecake.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (rangeplayground.com)": { + "domains": [ + "rangeplayground.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (raresummer.com)": { + "domains": [ + "raresummer.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (reactjspdf.com)": { + "domains": [ + "reactjspdf.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (readingguilt.com)": { + "domains": [ + "readingguilt.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (readymoon.com)": { + "domains": [ + "readymoon.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (readysnails.com)": { + "domains": [ + "readysnails.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (realizedoor.com)": { + "domains": [ + "realizedoor.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (realizerecess.com)": { + "domains": [ + "realizerecess.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (rebelclover.com)": { + "domains": [ + "rebelclover.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (rebelhen.com)": { + "domains": [ + "rebelhen.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (rebelsubway.com)": { + "domains": [ + "rebelsubway.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (rebelswing.com)": { + "domains": [ + "rebelswing.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (receiptcent.com)": { + "domains": [ + "receiptcent.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (receptiveink.com)": { + "domains": [ + "receptiveink.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (receptivereaction.com)": { + "domains": [ + "receptivereaction.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (recessrain.com)": { + "domains": [ + "recessrain.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (reconditeprison.com)": { + "domains": [ + "reconditeprison.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (reconditerake.com)": { + "domains": [ + "reconditerake.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (reconditerespect.com)": { + "domains": [ + "reconditerespect.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (reflectivestatement.com)": { + "domains": [ + "reflectivestatement.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (refundradar.com)": { + "domains": [ + "refundradar.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (regularplants.com)": { + "domains": [ + "regularplants.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (regulatesleet.com)": { + "domains": [ + "regulatesleet.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (rehabilitatereason.com)": { + "domains": [ + "rehabilitatereason.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (relationrest.com)": { + "domains": [ + "relationrest.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (releasepath.com)": { + "domains": [ + "releasepath.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (reloadphoto.com)": { + "domains": [ + "reloadphoto.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (rememberdiscussion.com)": { + "domains": [ + "rememberdiscussion.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (rentinfinity.com)": { + "domains": [ + "rentinfinity.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (repeatsweater.com)": { + "domains": [ + "repeatsweater.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (replaceroute.com)": { + "domains": [ + "replaceroute.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (resonantbrush.com)": { + "domains": [ + "resonantbrush.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (resonantrock.com)": { + "domains": [ + "resonantrock.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (respectrain.com)": { + "domains": [ + "respectrain.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (resplendentecho.com)": { + "domains": [ + "resplendentecho.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (restrainstorm.com)": { + "domains": [ + "restrainstorm.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (restructureinvention.com)": { + "domains": [ + "restructureinvention.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (retrievemint.com)": { + "domains": [ + "retrievemint.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (rhetoricalactivity.com)": { + "domains": [ + "rhetoricalactivity.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (rhetoricalloss.com)": { + "domains": [ + "rhetoricalloss.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (rhetoricalveil.com)": { + "domains": [ + "rhetoricalveil.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (rhymezebra.com)": { + "domains": [ + "rhymezebra.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (rhythmrule.com)": { + "domains": [ + "rhythmrule.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (richstring.com)": { + "domains": [ + "richstring.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (righteouscrayon.com)": { + "domains": [ + "righteouscrayon.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (rightfulfall.com)": { + "domains": [ + "rightfulfall.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (rigidrobin.com)": { + "domains": [ + "rigidrobin.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (rigidveil.com)": { + "domains": [ + "rigidveil.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (rigorlab.com)": { + "domains": [ + "rigorlab.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (ringplant.com)": { + "domains": [ + "ringplant.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (ringsrecord.com)": { + "domains": [ + "ringsrecord.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (ritzykey.com)": { + "domains": [ + "ritzykey.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (ritzyrepresentative.com)": { + "domains": [ + "ritzyrepresentative.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (ritzyveil.com)": { + "domains": [ + "ritzyveil.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (rockpebbles.com)": { + "domains": [ + "rockpebbles.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (rollconnection.com)": { + "domains": [ + "rollconnection.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (roofrelation.com)": { + "domains": [ + "roofrelation.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (roseincome.com)": { + "domains": [ + "roseincome.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (rottenray.com)": { + "domains": [ + "rottenray.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (ruralrobin.com)": { + "domains": [ + "ruralrobin.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (rusticprice.com)": { + "domains": [ + "rusticprice.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (ruthlessdegree.com)": { + "domains": [ + "ruthlessdegree.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (ruthlessmilk.com)": { + "domains": [ + "ruthlessmilk.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sableloss.com)": { + "domains": [ + "sableloss.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sablesmile.com)": { + "domains": [ + "sablesmile.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sablesong.com)": { + "domains": [ + "sablesong.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sadloaf.com)": { + "domains": [ + "sadloaf.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (safetybrush.com)": { + "domains": [ + "safetybrush.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (saffronrefuge.com)": { + "domains": [ + "saffronrefuge.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sagargift.com)": { + "domains": [ + "sagargift.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (saltsacademy.com)": { + "domains": [ + "saltsacademy.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (samesticks.com)": { + "domains": [ + "samesticks.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (samestretch.com)": { + "domains": [ + "samestretch.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (samplesamba.com)": { + "domains": [ + "samplesamba.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sandstrophies.com)": { + "domains": [ + "sandstrophies.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (satisfycork.com)": { + "domains": [ + "satisfycork.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (savoryorange.com)": { + "domains": [ + "savoryorange.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (scarcecard.com)": { + "domains": [ + "scarcecard.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (scarceshock.com)": { + "domains": [ + "scarceshock.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (scarcesign.com)": { + "domains": [ + "scarcesign.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (scarcestructure.com)": { + "domains": [ + "scarcestructure.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (scarcesurprise.com)": { + "domains": [ + "scarcesurprise.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (scaredcomfort.com)": { + "domains": [ + "scaredcomfort.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (scaredsidewalk.com)": { + "domains": [ + "scaredsidewalk.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (scaredslip.com)": { + "domains": [ + "scaredslip.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (scaredsnake.com)": { + "domains": [ + "scaredsnake.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (scaredsnakes.com)": { + "domains": [ + "scaredsnakes.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (scaredsong.com)": { + "domains": [ + "scaredsong.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (scaredstomach.com)": { + "domains": [ + "scaredstomach.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (scaredswing.com)": { + "domains": [ + "scaredswing.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (scarefowl.com)": { + "domains": [ + "scarefowl.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (scarfsmash.com)": { + "domains": [ + "scarfsmash.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (scatteredheat.com)": { + "domains": [ + "scatteredheat.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (scatteredquiver.com)": { + "domains": [ + "scatteredquiver.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (scatteredstream.com)": { + "domains": [ + "scatteredstream.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (scenicapparel.com)": { + "domains": [ + "scenicapparel.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (scenicdrops.com)": { + "domains": [ + "scenicdrops.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (scientificshirt.com)": { + "domains": [ + "scientificshirt.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (scintillatingscissors.com)": { + "domains": [ + "scintillatingscissors.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (scintillatingsilver.com)": { + "domains": [ + "scintillatingsilver.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (scissorsstatement.com)": { + "domains": [ + "scissorsstatement.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (scrapesleep.com)": { + "domains": [ + "scrapesleep.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (scratchsofa.com)": { + "domains": [ + "scratchsofa.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (screechingfurniture.com)": { + "domains": [ + "screechingfurniture.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (screechingstocking.com)": { + "domains": [ + "screechingstocking.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (screechingstove.com)": { + "domains": [ + "screechingstove.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (scribbleson.com)": { + "domains": [ + "scribbleson.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (scribblestring.com)": { + "domains": [ + "scribblestring.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (scrollservice.com)": { + "domains": [ + "scrollservice.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (scrubswim.com)": { + "domains": [ + "scrubswim.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (seashoresociety.com)": { + "domains": [ + "seashoresociety.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (seatsmoke.com)": { + "domains": [ + "seatsmoke.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (secondhandfall.com)": { + "domains": [ + "secondhandfall.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (secretivesheep.com)": { + "domains": [ + "secretivesheep.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (secretspiders.com)": { + "domains": [ + "secretspiders.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (secretturtle.com)": { + "domains": [ + "secretturtle.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (seedscissors.com)": { + "domains": [ + "seedscissors.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (seemlysuggestion.com)": { + "domains": [ + "seemlysuggestion.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (selectivesummer.com)": { + "domains": [ + "selectivesummer.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (selfishsea.com)": { + "domains": [ + "selfishsea.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (selfishsnake.com)": { + "domains": [ + "selfishsnake.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sendingspire.com)": { + "domains": [ + "sendingspire.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sensorsmile.com)": { + "domains": [ + "sensorsmile.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (separatesort.com)": { + "domains": [ + "separatesort.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (seraphichorizon.com)": { + "domains": [ + "seraphichorizon.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (seraphicjubilee.com)": { + "domains": [ + "seraphicjubilee.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (serendipityecho.com)": { + "domains": [ + "serendipityecho.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (serenecascade.com)": { + "domains": [ + "serenecascade.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (serenepebble.com)": { + "domains": [ + "serenepebble.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (serenesurf.com)": { + "domains": [ + "serenesurf.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (serenezenith.com)": { + "domains": [ + "serenezenith.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (serioussuit.com)": { + "domains": [ + "serioussuit.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (serpentshampoo.com)": { + "domains": [ + "serpentshampoo.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (serverracer.com)": { + "domains": [ + "serverracer.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (settleshoes.com)": { + "domains": [ + "settleshoes.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (shadeship.com)": { + "domains": [ + "shadeship.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (shaggytank.com)": { + "domains": [ + "shaggytank.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (shakegoldfish.com)": { + "domains": [ + "shakegoldfish.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (shakyseat.com)": { + "domains": [ + "shakyseat.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (shakysurprise.com)": { + "domains": [ + "shakysurprise.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (shakytaste.com)": { + "domains": [ + "shakytaste.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (shallowblade.com)": { + "domains": [ + "shallowblade.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (shamerain.com)": { + "domains": [ + "shamerain.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (shapecomb.com)": { + "domains": [ + "shapecomb.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sharkskids.com)": { + "domains": [ + "sharkskids.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sheargovernor.com)": { + "domains": [ + "sheargovernor.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (shesubscriptions.com)": { + "domains": [ + "shesubscriptions.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (shinypond.com)": { + "domains": [ + "shinypond.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (shirtsidewalk.com)": { + "domains": [ + "shirtsidewalk.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (shiveringspot.com)": { + "domains": [ + "shiveringspot.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (shiverscissors.com)": { + "domains": [ + "shiverscissors.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (shockinggrass.com)": { + "domains": [ + "shockinggrass.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (shockingship.com)": { + "domains": [ + "shockingship.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (shredquiz.com)": { + "domains": [ + "shredquiz.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (shrillspoon.com)": { + "domains": [ + "shrillspoon.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (shydinosaurs.com)": { + "domains": [ + "shydinosaurs.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sicksmash.com)": { + "domains": [ + "sicksmash.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sierrakermit.com)": { + "domains": [ + "sierrakermit.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (signaturepod.com)": { + "domains": [ + "signaturepod.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (siliconslow.com)": { + "domains": [ + "siliconslow.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sillyscrew.com)": { + "domains": [ + "sillyscrew.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (simplesidewalk.com)": { + "domains": [ + "simplesidewalk.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (simulateswing.com)": { + "domains": [ + "simulateswing.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sincerebuffalo.com)": { + "domains": [ + "sincerebuffalo.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sincerepelican.com)": { + "domains": [ + "sincerepelican.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sinceresubstance.com)": { + "domains": [ + "sinceresubstance.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (singroot.com)": { + "domains": [ + "singroot.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sinkbooks.com)": { + "domains": [ + "sinkbooks.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sixauthority.com)": { + "domains": [ + "sixauthority.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sixscissors.com)": { + "domains": [ + "sixscissors.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sizzlingsmoke.com)": { + "domains": [ + "sizzlingsmoke.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (skillfuldrop.com)": { + "domains": [ + "skillfuldrop.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (skisofa.com)": { + "domains": [ + "skisofa.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (slaysweater.com)": { + "domains": [ + "slaysweater.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (slimyscarf.com)": { + "domains": [ + "slimyscarf.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (slinksuggestion.com)": { + "domains": [ + "slinksuggestion.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (slopesoap.com)": { + "domains": [ + "slopesoap.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (smallershops.com)": { + "domains": [ + "smallershops.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (smashquartz.com)": { + "domains": [ + "smashquartz.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (smashshoe.com)": { + "domains": [ + "smashshoe.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (smashsurprise.com)": { + "domains": [ + "smashsurprise.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (smilewound.com)": { + "domains": [ + "smilewound.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (smilingcattle.com)": { + "domains": [ + "smilingcattle.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (smilingswim.com)": { + "domains": [ + "smilingswim.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (smilingwaves.com)": { + "domains": [ + "smilingwaves.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (smoggysnakes.com)": { + "domains": [ + "smoggysnakes.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (smoggysongs.com)": { + "domains": [ + "smoggysongs.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (smoggystation.com)": { + "domains": [ + "smoggystation.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (snacktoken.com)": { + "domains": [ + "snacktoken.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (snakemineral.com)": { + "domains": [ + "snakemineral.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (snakeslang.com)": { + "domains": [ + "snakeslang.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (snappyreport.com)": { + "domains": [ + "snappyreport.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sneakwind.com)": { + "domains": [ + "sneakwind.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sneakystew.com)": { + "domains": [ + "sneakystew.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (snoresmile.com)": { + "domains": [ + "snoresmile.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (snowmentor.com)": { + "domains": [ + "snowmentor.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (softwarerumble.com)": { + "domains": [ + "softwarerumble.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (soggysponge.com)": { + "domains": [ + "soggysponge.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (soggyzoo.com)": { + "domains": [ + "soggyzoo.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (solarislabyrinth.com)": { + "domains": [ + "solarislabyrinth.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (somberscarecrow.com)": { + "domains": [ + "somberscarecrow.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sombersea.com)": { + "domains": [ + "sombersea.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sombersquirrel.com)": { + "domains": [ + "sombersquirrel.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sombersticks.com)": { + "domains": [ + "sombersticks.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sombersurprise.com)": { + "domains": [ + "sombersurprise.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (songsterritory.com)": { + "domains": [ + "songsterritory.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (soothingglade.com)": { + "domains": [ + "soothingglade.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sophisticatedstove.com)": { + "domains": [ + "sophisticatedstove.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sordidsmile.com)": { + "domains": [ + "sordidsmile.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (soresidewalk.com)": { + "domains": [ + "soresidewalk.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (soresneeze.com)": { + "domains": [ + "soresneeze.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sorethunder.com)": { + "domains": [ + "sorethunder.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (soretrain.com)": { + "domains": [ + "soretrain.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sortanoisy.com)": { + "domains": [ + "sortanoisy.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sortsail.com)": { + "domains": [ + "sortsail.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sortsummer.com)": { + "domains": [ + "sortsummer.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (soundstocking.com)": { + "domains": [ + "soundstocking.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sowlettuce.com)": { + "domains": [ + "sowlettuce.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (spadelocket.com)": { + "domains": [ + "spadelocket.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sparkgoal.com)": { + "domains": [ + "sparkgoal.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sparklingshelf.com)": { + "domains": [ + "sparklingshelf.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (specialscissors.com)": { + "domains": [ + "specialscissors.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (spectacularstamp.com)": { + "domains": [ + "spectacularstamp.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (spellmist.com)": { + "domains": [ + "spellmist.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (spellsalsa.com)": { + "domains": [ + "spellsalsa.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (spiffymachine.com)": { + "domains": [ + "spiffymachine.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (spirebaboon.com)": { + "domains": [ + "spirebaboon.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (spookyexchange.com)": { + "domains": [ + "spookyexchange.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (spookyskate.com)": { + "domains": [ + "spookyskate.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (spookysleet.com)": { + "domains": [ + "spookysleet.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (spookystitch.com)": { + "domains": [ + "spookystitch.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (spoonsilk.com)": { + "domains": [ + "spoonsilk.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (spotlessstamp.com)": { + "domains": [ + "spotlessstamp.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (spottednoise.com)": { + "domains": [ + "spottednoise.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (springolive.com)": { + "domains": [ + "springolive.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (springsister.com)": { + "domains": [ + "springsister.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (springsnails.com)": { + "domains": [ + "springsnails.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sproutingbag.com)": { + "domains": [ + "sproutingbag.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sprydelta.com)": { + "domains": [ + "sprydelta.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sprysummit.com)": { + "domains": [ + "sprysummit.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (spuriousair.com)": { + "domains": [ + "spuriousair.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (spuriousbase.com)": { + "domains": [ + "spuriousbase.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (spurioussquirrel.com)": { + "domains": [ + "spurioussquirrel.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (spuriousstranger.com)": { + "domains": [ + "spuriousstranger.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (spysubstance.com)": { + "domains": [ + "spysubstance.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (squalidscrew.com)": { + "domains": [ + "squalidscrew.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (squeakzinc.com)": { + "domains": [ + "squeakzinc.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (squealingturn.com)": { + "domains": [ + "squealingturn.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (stakingbasket.com)": { + "domains": [ + "stakingbasket.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (stakingshock.com)": { + "domains": [ + "stakingshock.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (stakingsmile.com)": { + "domains": [ + "stakingsmile.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (staleshow.com)": { + "domains": [ + "staleshow.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (stalesummer.com)": { + "domains": [ + "stalesummer.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (starkscale.com)": { + "domains": [ + "starkscale.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (startingcars.com)": { + "domains": [ + "startingcars.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (statshunt.com)": { + "domains": [ + "statshunt.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (statuesqueship.com)": { + "domains": [ + "statuesqueship.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (stayaction.com)": { + "domains": [ + "stayaction.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (steadfastseat.com)": { + "domains": [ + "steadfastseat.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (steadfastsound.com)": { + "domains": [ + "steadfastsound.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (steadfastsystem.com)": { + "domains": [ + "steadfastsystem.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (steadycopper.com)": { + "domains": [ + "steadycopper.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (stealsteel.com)": { + "domains": [ + "stealsteel.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (steepscale.com)": { + "domains": [ + "steepscale.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (steepsister.com)": { + "domains": [ + "steepsister.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (steepsquirrel.com)": { + "domains": [ + "steepsquirrel.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (stepcattle.com)": { + "domains": [ + "stepcattle.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (stepplane.com)": { + "domains": [ + "stepplane.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (stepwisevideo.com)": { + "domains": [ + "stepwisevideo.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (stereoproxy.com)": { + "domains": [ + "stereoproxy.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (stereotypedsugar.com)": { + "domains": [ + "stereotypedsugar.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (stewspiders.com)": { + "domains": [ + "stewspiders.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (stiffgame.com)": { + "domains": [ + "stiffgame.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (stiffstem.com)": { + "domains": [ + "stiffstem.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (stimulatingsneeze.com)": { + "domains": [ + "stimulatingsneeze.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (stingsquirrel.com)": { + "domains": [ + "stingsquirrel.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (stingycrush.com)": { + "domains": [ + "stingycrush.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (stingyshoe.com)": { + "domains": [ + "stingyshoe.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (stingyspoon.com)": { + "domains": [ + "stingyspoon.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (stockingsleet.com)": { + "domains": [ + "stockingsleet.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (stockingsneeze.com)": { + "domains": [ + "stockingsneeze.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (stomachscience.com)": { + "domains": [ + "stomachscience.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (stonechin.com)": { + "domains": [ + "stonechin.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (stopstomach.com)": { + "domains": [ + "stopstomach.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (stormyachiever.com)": { + "domains": [ + "stormyachiever.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (stormyfold.com)": { + "domains": [ + "stormyfold.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (straightnest.com)": { + "domains": [ + "straightnest.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (strangeclocks.com)": { + "domains": [ + "strangeclocks.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (strangersponge.com)": { + "domains": [ + "strangersponge.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (strangesink.com)": { + "domains": [ + "strangesink.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (streetsort.com)": { + "domains": [ + "streetsort.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (stretchsister.com)": { + "domains": [ + "stretchsister.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (stretchsneeze.com)": { + "domains": [ + "stretchsneeze.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (stretchsquirrel.com)": { + "domains": [ + "stretchsquirrel.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (stripedbat.com)": { + "domains": [ + "stripedbat.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (strivesidewalk.com)": { + "domains": [ + "strivesidewalk.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (strivesquirrel.com)": { + "domains": [ + "strivesquirrel.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (strokesystem.com)": { + "domains": [ + "strokesystem.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (stupendoussleet.com)": { + "domains": [ + "stupendoussleet.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (stupendoussnow.com)": { + "domains": [ + "stupendoussnow.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (stupidscene.com)": { + "domains": [ + "stupidscene.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sturdysnail.com)": { + "domains": [ + "sturdysnail.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (subletyoke.com)": { + "domains": [ + "subletyoke.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sublimequartz.com)": { + "domains": [ + "sublimequartz.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (subsequentswim.com)": { + "domains": [ + "subsequentswim.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (substantialcarpenter.com)": { + "domains": [ + "substantialcarpenter.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (substantialgrade.com)": { + "domains": [ + "substantialgrade.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (succeedscene.com)": { + "domains": [ + "succeedscene.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (successfulscent.com)": { + "domains": [ + "successfulscent.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (suddensoda.com)": { + "domains": [ + "suddensoda.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sugarfriction.com)": { + "domains": [ + "sugarfriction.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (suggestionbridge.com)": { + "domains": [ + "suggestionbridge.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sulkycook.com)": { + "domains": [ + "sulkycook.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (summerobject.com)": { + "domains": [ + "summerobject.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (sunshinegates.com)": { + "domains": [ + "sunshinegates.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (superchichair.com)": { + "domains": [ + "superchichair.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (superficialeyes.com)": { + "domains": [ + "superficialeyes.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (superficialspring.com)": { + "domains": [ + "superficialspring.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (superficialsquare.com)": { + "domains": [ + "superficialsquare.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (superviseshoes.com)": { + "domains": [ + "superviseshoes.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (supportwaves.com)": { + "domains": [ + "supportwaves.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (suspectmark.com)": { + "domains": [ + "suspectmark.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (swankysquare.com)": { + "domains": [ + "swankysquare.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (swellstocking.com)": { + "domains": [ + "swellstocking.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (swelteringsleep.com)": { + "domains": [ + "swelteringsleep.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (swimfreely.com)": { + "domains": [ + "swimfreely.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (swingslip.com)": { + "domains": [ + "swingslip.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (swordgoose.com)": { + "domains": [ + "swordgoose.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (syllablesight.com)": { + "domains": [ + "syllablesight.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (synonymousrule.com)": { + "domains": [ + "synonymousrule.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (synonymoussticks.com)": { + "domains": [ + "synonymoussticks.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (synthesizescarecrow.com)": { + "domains": [ + "synthesizescarecrow.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tackytrains.com)": { + "domains": [ + "tackytrains.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tacojournal.com)": { + "domains": [ + "tacojournal.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (talltouch.com)": { + "domains": [ + "talltouch.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tangibleteam.com)": { + "domains": [ + "tangibleteam.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tangletrace.com)": { + "domains": [ + "tangletrace.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tangyamount.com)": { + "domains": [ + "tangyamount.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tangycover.com)": { + "domains": [ + "tangycover.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tastelesstrees.com)": { + "domains": [ + "tastelesstrees.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tastesnake.com)": { + "domains": [ + "tastesnake.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tawdryson.com)": { + "domains": [ + "tawdryson.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tdzvm.pw)": { + "domains": [ + "tdzvm.pw" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (teacupbooks.com)": { + "domains": [ + "teacupbooks.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tearfulglass.com)": { + "domains": [ + "tearfulglass.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (techconverter.com)": { + "domains": [ + "techconverter.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tediousbear.com)": { + "domains": [ + "tediousbear.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tediousticket.com)": { + "domains": [ + "tediousticket.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tedioustooth.com)": { + "domains": [ + "tedioustooth.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (teenytinycellar.com)": { + "domains": [ + "teenytinycellar.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (teenytinyshirt.com)": { + "domains": [ + "teenytinyshirt.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (teenytinytongue.com)": { + "domains": [ + "teenytinytongue.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (telephoneapparatus.com)": { + "domains": [ + "telephoneapparatus.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tempertrick.com)": { + "domains": [ + "tempertrick.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tempttalk.com)": { + "domains": [ + "tempttalk.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (temptteam.com)": { + "domains": [ + "temptteam.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tendertest.com)": { + "domains": [ + "tendertest.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (terriblethumb.com)": { + "domains": [ + "terriblethumb.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (terrifictooth.com)": { + "domains": [ + "terrifictooth.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (testadmiral.com)": { + "domains": [ + "testadmiral.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (texturetrick.com)": { + "domains": [ + "texturetrick.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (therapeuticcars.com)": { + "domains": [ + "therapeuticcars.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (thickticket.com)": { + "domains": [ + "thickticket.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (thicktrucks.com)": { + "domains": [ + "thicktrucks.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (thingsafterthought.com)": { + "domains": [ + "thingsafterthought.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (thingstaste.com)": { + "domains": [ + "thingstaste.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (thinkitten.com)": { + "domains": [ + "thinkitten.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (thinkitwice.com)": { + "domains": [ + "thinkitwice.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (thirdrespect.com)": { + "domains": [ + "thirdrespect.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (thirstytwig.com)": { + "domains": [ + "thirstytwig.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (thomastorch.com)": { + "domains": [ + "thomastorch.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (thoughtlessknot.com)": { + "domains": [ + "thoughtlessknot.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (threetruck.com)": { + "domains": [ + "threetruck.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (thrivingmarketplace.com)": { + "domains": [ + "thrivingmarketplace.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (ticketaunt.com)": { + "domains": [ + "ticketaunt.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (ticklesign.com)": { + "domains": [ + "ticklesign.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tidymitten.com)": { + "domains": [ + "tidymitten.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tightpowder.com)": { + "domains": [ + "tightpowder.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tinyswans.com)": { + "domains": [ + "tinyswans.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tinytendency.com)": { + "domains": [ + "tinytendency.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tiredthroat.com)": { + "domains": [ + "tiredthroat.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tiresomethunder.com)": { + "domains": [ + "tiresomethunder.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (toolcapital.com)": { + "domains": [ + "toolcapital.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (toomanyalts.com)": { + "domains": [ + "toomanyalts.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (torpidtongue.com)": { + "domains": [ + "torpidtongue.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (touristfuel.com)": { + "domains": [ + "touristfuel.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (trackcaddie.com)": { + "domains": [ + "trackcaddie.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tradetooth.com)": { + "domains": [ + "tradetooth.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (trafficviews.com)": { + "domains": [ + "trafficviews.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tranquilarchipelago.com)": { + "domains": [ + "tranquilarchipelago.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tranquilcan.com)": { + "domains": [ + "tranquilcan.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tranquilcanyon.com)": { + "domains": [ + "tranquilcanyon.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tranquilplume.com)": { + "domains": [ + "tranquilplume.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tranquilside.com)": { + "domains": [ + "tranquilside.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tranquilveil.com)": { + "domains": [ + "tranquilveil.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tranquilveranda.com)": { + "domains": [ + "tranquilveranda.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (trappush.com)": { + "domains": [ + "trappush.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (treadbun.com)": { + "domains": [ + "treadbun.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tremendousearthquake.com)": { + "domains": [ + "tremendousearthquake.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tremendousplastic.com)": { + "domains": [ + "tremendousplastic.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tremendoustime.com)": { + "domains": [ + "tremendoustime.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tritebadge.com)": { + "domains": [ + "tritebadge.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tritethunder.com)": { + "domains": [ + "tritethunder.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tritetongue.com)": { + "domains": [ + "tritetongue.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (troubledtail.com)": { + "domains": [ + "troubledtail.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (troubleshade.com)": { + "domains": [ + "troubleshade.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (truckstomatoes.com)": { + "domains": [ + "truckstomatoes.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (truculentrate.com)": { + "domains": [ + "truculentrate.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (truebackpack.com)": { + "domains": [ + "truebackpack.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tumbleicicle.com)": { + "domains": [ + "tumbleicicle.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tuneupcoffee.com)": { + "domains": [ + "tuneupcoffee.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (twistloss.com)": { + "domains": [ + "twistloss.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (twistsweater.com)": { + "domains": [ + "twistsweater.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (typicalairplane.com)": { + "domains": [ + "typicalairplane.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (typicalteeth.com)": { + "domains": [ + "typicalteeth.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (tzwaw.pw)": { + "domains": [ + "tzwaw.pw" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (ubiquitoussea.com)": { + "domains": [ + "ubiquitoussea.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (ubiquitousyard.com)": { + "domains": [ + "ubiquitousyard.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (ultraoranges.com)": { + "domains": [ + "ultraoranges.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (ultravalid.com)": { + "domains": [ + "ultravalid.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (unablehope.com)": { + "domains": [ + "unablehope.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (unaccountablecreator.com)": { + "domains": [ + "unaccountablecreator.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (unaccountablepie.com)": { + "domains": [ + "unaccountablepie.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (unarmedindustry.com)": { + "domains": [ + "unarmedindustry.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (unbecominghall.com)": { + "domains": [ + "unbecominghall.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (unbecominglamp.com)": { + "domains": [ + "unbecominglamp.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (uncoveredexpert.com)": { + "domains": [ + "uncoveredexpert.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (understoodocean.com)": { + "domains": [ + "understoodocean.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (unequalbrake.com)": { + "domains": [ + "unequalbrake.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (unequaltrail.com)": { + "domains": [ + "unequaltrail.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (uninterestedquarter.com)": { + "domains": [ + "uninterestedquarter.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (unknowncontrol.com)": { + "domains": [ + "unknowncontrol.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (unknowncrate.com)": { + "domains": [ + "unknowncrate.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (unknownidea.com)": { + "domains": [ + "unknownidea.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (unknowntray.com)": { + "domains": [ + "unknowntray.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (untidyquestion.com)": { + "domains": [ + "untidyquestion.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (untidyrice.com)": { + "domains": [ + "untidyrice.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (unusedstone.com)": { + "domains": [ + "unusedstone.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (unusualtitle.com)": { + "domains": [ + "unusualtitle.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (unwieldyhealth.com)": { + "domains": [ + "unwieldyhealth.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (unwieldyimpulse.com)": { + "domains": [ + "unwieldyimpulse.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (unwieldyplastic.com)": { + "domains": [ + "unwieldyplastic.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (uppitytime.com)": { + "domains": [ + "uppitytime.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (uselesslumber.com)": { + "domains": [ + "uselesslumber.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (validmemo.com)": { + "domains": [ + "validmemo.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (vanfireworks.com)": { + "domains": [ + "vanfireworks.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (vanishmemory.com)": { + "domains": [ + "vanishmemory.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (velvetnova.com)": { + "domains": [ + "velvetnova.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (velvetquasar.com)": { + "domains": [ + "velvetquasar.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (vengefulgrass.com)": { + "domains": [ + "vengefulgrass.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (venomousvessel.com)": { + "domains": [ + "venomousvessel.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (venusgloria.com)": { + "domains": [ + "venusgloria.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (verdantanswer.com)": { + "domains": [ + "verdantanswer.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (verdantcrescent.com)": { + "domains": [ + "verdantcrescent.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (verdantlabyrinth.com)": { + "domains": [ + "verdantlabyrinth.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (verdantloom.com)": { + "domains": [ + "verdantloom.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (verdantsculpture.com)": { + "domains": [ + "verdantsculpture.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (verseballs.com)": { + "domains": [ + "verseballs.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (vibrantcelebration.com)": { + "domains": [ + "vibrantcelebration.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (vibrantgale.com)": { + "domains": [ + "vibrantgale.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (vibranthaven.com)": { + "domains": [ + "vibranthaven.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (vibrantpact.com)": { + "domains": [ + "vibrantpact.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (vibrantsundown.com)": { + "domains": [ + "vibrantsundown.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (vibranttalisman.com)": { + "domains": [ + "vibranttalisman.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (vibrantvale.com)": { + "domains": [ + "vibrantvale.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (victoriousrequest.com)": { + "domains": [ + "victoriousrequest.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (virtualvincent.com)": { + "domains": [ + "virtualvincent.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (vividcanopy.com)": { + "domains": [ + "vividcanopy.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (vividfrost.com)": { + "domains": [ + "vividfrost.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (vividmeadow.com)": { + "domains": [ + "vividmeadow.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (vividplume.com)": { + "domains": [ + "vividplume.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (voicelessvein.com)": { + "domains": [ + "voicelessvein.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (voidgoo.com)": { + "domains": [ + "voidgoo.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (volatileprofit.com)": { + "domains": [ + "volatileprofit.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (volatilevessel.com)": { + "domains": [ + "volatilevessel.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (voraciousgrip.com)": { + "domains": [ + "voraciousgrip.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (vq1qi.pw)": { + "domains": [ + "vq1qi.pw" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (waitingnumber.com)": { + "domains": [ + "waitingnumber.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (wantingwindow.com)": { + "domains": [ + "wantingwindow.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (warmafterthought.com)": { + "domains": [ + "warmafterthought.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (warmquiver.com)": { + "domains": [ + "warmquiver.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (warnwing.com)": { + "domains": [ + "warnwing.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (washbanana.com)": { + "domains": [ + "washbanana.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (wateryvan.com)": { + "domains": [ + "wateryvan.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (waterywave.com)": { + "domains": [ + "waterywave.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (waterywrist.com)": { + "domains": [ + "waterywrist.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (wearbasin.com)": { + "domains": [ + "wearbasin.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (websitesdude.com)": { + "domains": [ + "websitesdude.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (wellgroomedapparel.com)": { + "domains": [ + "wellgroomedapparel.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (wellgroomedhydrant.com)": { + "domains": [ + "wellgroomedhydrant.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (wellmadefrog.com)": { + "domains": [ + "wellmadefrog.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (westpalmweb.com)": { + "domains": [ + "westpalmweb.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (whimsicalcanyon.com)": { + "domains": [ + "whimsicalcanyon.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (whimsicalgrove.com)": { + "domains": [ + "whimsicalgrove.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (whineattempt.com)": { + "domains": [ + "whineattempt.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (whirlwealth.com)": { + "domains": [ + "whirlwealth.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (whiskyqueue.com)": { + "domains": [ + "whiskyqueue.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (whisperingcascade.com)": { + "domains": [ + "whisperingcascade.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (whisperingcrib.com)": { + "domains": [ + "whisperingcrib.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (whisperingquasar.com)": { + "domains": [ + "whisperingquasar.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (whisperingsummit.com)": { + "domains": [ + "whisperingsummit.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (whispermeeting.com)": { + "domains": [ + "whispermeeting.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (wildcommittee.com)": { + "domains": [ + "wildcommittee.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (wirecomic.com)": { + "domains": [ + "wirecomic.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (wiredforcoffee.com)": { + "domains": [ + "wiredforcoffee.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (wirypaste.com)": { + "domains": [ + "wirypaste.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (wistfulwaste.com)": { + "domains": [ + "wistfulwaste.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (wittypopcorn.com)": { + "domains": [ + "wittypopcorn.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (wittyshack.com)": { + "domains": [ + "wittyshack.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (workoperation.com)": { + "domains": [ + "workoperation.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (worldlever.com)": { + "domains": [ + "worldlever.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (worriednumber.com)": { + "domains": [ + "worriednumber.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (worriedwine.com)": { + "domains": [ + "worriedwine.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (wretchedfloor.com)": { + "domains": [ + "wretchedfloor.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (wrongpotato.com)": { + "domains": [ + "wrongpotato.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (wrongwound.com)": { + "domains": [ + "wrongwound.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (wtaccesscontrol.com)": { + "domains": [ + "wtaccesscontrol.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (xovq5nemr.com)": { + "domains": [ + "xovq5nemr.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (yieldingwoman.com)": { + "domains": [ + "yieldingwoman.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (zbwp6ghm.com)": { + "domains": [ + "zbwp6ghm.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (zephyrcatalyst.com)": { + "domains": [ + "zephyrcatalyst.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (zephyrlabyrinth.com)": { + "domains": [ + "zephyrlabyrinth.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (zestycrime.com)": { + "domains": [ + "zestycrime.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (zestyhorizon.com)": { + "domains": [ + "zestyhorizon.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (zestyrover.com)": { + "domains": [ + "zestyrover.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (zestywire.com)": { + "domains": [ + "zestywire.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (zipperxray.com)": { + "domains": [ + "zipperxray.com" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (zlp6s.pw)": { + "domains": [ + "zlp6s.pw" + ], + "prevalence": 0.0111, + "displayName": "Admiral" + }, + "Leven Labs, Inc. DBA Admiral (zonewedgeshaft.com)": { + "domains": [ + "zonewedgeshaft.com" + ], + "prevalence": 0.0111, "displayName": "Admiral" } }, @@ -59671,1579 +69769,1616 @@ "zapposcouture.com": "Amazon Technologies, Inc.", "aamapi.com": "Alliance for Audited Media", "aamsitecertifier.com": "Alliance for Audited Media", - "2znp09oa.com": "Leven Labs, Inc. DBA Admiral", - "4jnzhl0d0.com": "Leven Labs, Inc. DBA Admiral", - "5mcwl.pw": "Leven Labs, Inc. DBA Admiral", - "6ldu6qa.com": "Leven Labs, Inc. DBA Admiral", - "82o9v830.com": "Leven Labs, Inc. DBA Admiral", - "abilityscale.com": "Leven Labs, Inc. DBA Admiral", - "aboardamusement.com": "Leven Labs, Inc. DBA Admiral", - "aboardlevel.com": "Leven Labs, Inc. DBA Admiral", - "abovechat.com": "Leven Labs, Inc. DBA Admiral", - "abruptroad.com": "Leven Labs, Inc. DBA Admiral", - "absentairport.com": "Leven Labs, Inc. DBA Admiral", - "absorbingband.com": "Leven Labs, Inc. DBA Admiral", - "absorbingcorn.com": "Leven Labs, Inc. DBA Admiral", - "absorbingprison.com": "Leven Labs, Inc. DBA Admiral", - "abstractedamount.com": "Leven Labs, Inc. DBA Admiral", - "abstractedauthority.com": "Leven Labs, Inc. DBA Admiral", - "absurdapple.com": "Leven Labs, Inc. DBA Admiral", - "abundantcoin.com": "Leven Labs, Inc. DBA Admiral", - "acceptableauthority.com": "Leven Labs, Inc. DBA Admiral", - "accurateanimal.com": "Leven Labs, Inc. DBA Admiral", - "accuratecoal.com": "Leven Labs, Inc. DBA Admiral", - "achieverknee.com": "Leven Labs, Inc. DBA Admiral", - "acidicstraw.com": "Leven Labs, Inc. DBA Admiral", - "acidpigs.com": "Leven Labs, Inc. DBA Admiral", - "acridangle.com": "Leven Labs, Inc. DBA Admiral", - "acridtwist.com": "Leven Labs, Inc. DBA Admiral", - "actoramusement.com": "Leven Labs, Inc. DBA Admiral", - "actuallysheep.com": "Leven Labs, Inc. DBA Admiral", - "actuallysnake.com": "Leven Labs, Inc. DBA Admiral", - "actuallything.com": "Leven Labs, Inc. DBA Admiral", - "adamantsnail.com": "Leven Labs, Inc. DBA Admiral", - "addictedattention.com": "Leven Labs, Inc. DBA Admiral", - "admiral.pub": "Leven Labs, Inc. DBA Admiral", - "adorableanger.com": "Leven Labs, Inc. DBA Admiral", - "adorableattention.com": "Leven Labs, Inc. DBA Admiral", - "adventurousamount.com": "Leven Labs, Inc. DBA Admiral", - "afraidlanguage.com": "Leven Labs, Inc. DBA Admiral", - "aftermathbrother.com": "Leven Labs, Inc. DBA Admiral", - "agilebreeze.com": "Leven Labs, Inc. DBA Admiral", - "agreeablearch.com": "Leven Labs, Inc. DBA Admiral", - "agreeabletouch.com": "Leven Labs, Inc. DBA Admiral", - "aheadday.com": "Leven Labs, Inc. DBA Admiral", - "aheadgrow.com": "Leven Labs, Inc. DBA Admiral", - "aheadmachine.com": "Leven Labs, Inc. DBA Admiral", - "ak0gsh40.com": "Leven Labs, Inc. DBA Admiral", - "alertarithmetic.com": "Leven Labs, Inc. DBA Admiral", - "aliasanvil.com": "Leven Labs, Inc. DBA Admiral", - "alikeaddition.com": "Leven Labs, Inc. DBA Admiral", - "aliveachiever.com": "Leven Labs, Inc. DBA Admiral", - "alleythecat.com": "Leven Labs, Inc. DBA Admiral", - "alluringbucket.com": "Leven Labs, Inc. DBA Admiral", - "aloofmetal.com": "Leven Labs, Inc. DBA Admiral", - "aloofvest.com": "Leven Labs, Inc. DBA Admiral", - "alpineactor.com": "Leven Labs, Inc. DBA Admiral", - "ambientdusk.com": "Leven Labs, Inc. DBA Admiral", - "ambientlagoon.com": "Leven Labs, Inc. DBA Admiral", - "ambiguousafternoon.com": "Leven Labs, Inc. DBA Admiral", - "ambiguousanger.com": "Leven Labs, Inc. DBA Admiral", - "ambiguousdinosaurs.com": "Leven Labs, Inc. DBA Admiral", - "ambiguousincome.com": "Leven Labs, Inc. DBA Admiral", - "ambrosialsummit.com": "Leven Labs, Inc. DBA Admiral", - "amethystzenith.com": "Leven Labs, Inc. DBA Admiral", - "amuckafternoon.com": "Leven Labs, Inc. DBA Admiral", - "amusedbucket.com": "Leven Labs, Inc. DBA Admiral", - "analogwonder.com": "Leven Labs, Inc. DBA Admiral", - "analyzecorona.com": "Leven Labs, Inc. DBA Admiral", - "ancientact.com": "Leven Labs, Inc. DBA Admiral", - "annoyedairport.com": "Leven Labs, Inc. DBA Admiral", - "annoyingacoustics.com": "Leven Labs, Inc. DBA Admiral", - "annoyingclover.com": "Leven Labs, Inc. DBA Admiral", - "anxiousapples.com": "Leven Labs, Inc. DBA Admiral", - "aquaticowl.com": "Leven Labs, Inc. DBA Admiral", - "ar1nvz5.com": "Leven Labs, Inc. DBA Admiral", - "archswimming.com": "Leven Labs, Inc. DBA Admiral", - "aromamirror.com": "Leven Labs, Inc. DBA Admiral", - "arrivegrowth.com": "Leven Labs, Inc. DBA Admiral", - "artthevoid.com": "Leven Labs, Inc. DBA Admiral", - "aspiringapples.com": "Leven Labs, Inc. DBA Admiral", - "aspiringattempt.com": "Leven Labs, Inc. DBA Admiral", - "aspiringtoy.com": "Leven Labs, Inc. DBA Admiral", - "astonishingfood.com": "Leven Labs, Inc. DBA Admiral", - "astralhustle.com": "Leven Labs, Inc. DBA Admiral", - "astrallullaby.com": "Leven Labs, Inc. DBA Admiral", - "attendchase.com": "Leven Labs, Inc. DBA Admiral", - "attractionbanana.com": "Leven Labs, Inc. DBA Admiral", - "attractivecap.com": "Leven Labs, Inc. DBA Admiral", - "audioarctic.com": "Leven Labs, Inc. DBA Admiral", - "automaticside.com": "Leven Labs, Inc. DBA Admiral", - "automaticturkey.com": "Leven Labs, Inc. DBA Admiral", - "availablerest.com": "Leven Labs, Inc. DBA Admiral", - "avalonalbum.com": "Leven Labs, Inc. DBA Admiral", - "averageactivity.com": "Leven Labs, Inc. DBA Admiral", - "awarealley.com": "Leven Labs, Inc. DBA Admiral", - "awesomeagreement.com": "Leven Labs, Inc. DBA Admiral", - "awzbijw.com": "Leven Labs, Inc. DBA Admiral", - "axiomaticalley.com": "Leven Labs, Inc. DBA Admiral", - "axiomaticanger.com": "Leven Labs, Inc. DBA Admiral", - "azuremystique.com": "Leven Labs, Inc. DBA Admiral", - "backupcat.com": "Leven Labs, Inc. DBA Admiral", - "badgeboat.com": "Leven Labs, Inc. DBA Admiral", - "badgerabbit.com": "Leven Labs, Inc. DBA Admiral", - "badgevolcano.com": "Leven Labs, Inc. DBA Admiral", - "bagbeam.com": "Leven Labs, Inc. DBA Admiral", - "baitbaseball.com": "Leven Labs, Inc. DBA Admiral", - "balloonbelieve.com": "Leven Labs, Inc. DBA Admiral", - "ballsbanana.com": "Leven Labs, Inc. DBA Admiral", - "bananabarrel.com": "Leven Labs, Inc. DBA Admiral", - "bandborder.com": "Leven Labs, Inc. DBA Admiral", - "barbarousbase.com": "Leven Labs, Inc. DBA Admiral", - "basilfish.com": "Leven Labs, Inc. DBA Admiral", - "basketballbelieve.com": "Leven Labs, Inc. DBA Admiral", - "baskettexture.com": "Leven Labs, Inc. DBA Admiral", - "bawdybalance.com": "Leven Labs, Inc. DBA Admiral", - "bawdybeast.com": "Leven Labs, Inc. DBA Admiral", - "beamvolcano.com": "Leven Labs, Inc. DBA Admiral", - "beancontrol.com": "Leven Labs, Inc. DBA Admiral", - "bearmoonlodge.com": "Leven Labs, Inc. DBA Admiral", - "bedsberry.com": "Leven Labs, Inc. DBA Admiral", - "beetleend.com": "Leven Labs, Inc. DBA Admiral", - "beginnerpancake.com": "Leven Labs, Inc. DBA Admiral", - "begintrain.com": "Leven Labs, Inc. DBA Admiral", - "berserkhydrant.com": "Leven Labs, Inc. DBA Admiral", - "bespokesandals.com": "Leven Labs, Inc. DBA Admiral", - "bestboundary.com": "Leven Labs, Inc. DBA Admiral", - "bewilderedbattle.com": "Leven Labs, Inc. DBA Admiral", - "bewilderedblade.com": "Leven Labs, Inc. DBA Admiral", - "bhcumsc.com": "Leven Labs, Inc. DBA Admiral", - "bikepaws.com": "Leven Labs, Inc. DBA Admiral", - "bikesboard.com": "Leven Labs, Inc. DBA Admiral", - "billowybead.com": "Leven Labs, Inc. DBA Admiral", - "billowybelief.com": "Leven Labs, Inc. DBA Admiral", - "binspiredtees.com": "Leven Labs, Inc. DBA Admiral", - "birthdaybelief.com": "Leven Labs, Inc. DBA Admiral", - "blackbrake.com": "Leven Labs, Inc. DBA Admiral", - "bleachbubble.com": "Leven Labs, Inc. DBA Admiral", - "bleachscarecrow.com": "Leven Labs, Inc. DBA Admiral", - "bleedlight.com": "Leven Labs, Inc. DBA Admiral", - "blesspizzas.com": "Leven Labs, Inc. DBA Admiral", - "blissfulcrescendo.com": "Leven Labs, Inc. DBA Admiral", - "blissfullagoon.com": "Leven Labs, Inc. DBA Admiral", - "blueeyedblow.com": "Leven Labs, Inc. DBA Admiral", - "blushingbeast.com": "Leven Labs, Inc. DBA Admiral", - "blushingbread.com": "Leven Labs, Inc. DBA Admiral", - "boatsvest.com": "Leven Labs, Inc. DBA Admiral", - "boilingbeetle.com": "Leven Labs, Inc. DBA Admiral", - "boilingcredit.com": "Leven Labs, Inc. DBA Admiral", - "boostbehavior.com": "Leven Labs, Inc. DBA Admiral", - "boredcrown.com": "Leven Labs, Inc. DBA Admiral", - "bouncyproperty.com": "Leven Labs, Inc. DBA Admiral", - "boundarybusiness.com": "Leven Labs, Inc. DBA Admiral", - "boundlessargument.com": "Leven Labs, Inc. DBA Admiral", - "boundlessbrake.com": "Leven Labs, Inc. DBA Admiral", - "boundlessveil.com": "Leven Labs, Inc. DBA Admiral", - "brainybasin.com": "Leven Labs, Inc. DBA Admiral", - "brainynut.com": "Leven Labs, Inc. DBA Admiral", - "branchborder.com": "Leven Labs, Inc. DBA Admiral", - "brandsfive.com": "Leven Labs, Inc. DBA Admiral", - "brandybison.com": "Leven Labs, Inc. DBA Admiral", - "bravebone.com": "Leven Labs, Inc. DBA Admiral", - "bravecalculator.com": "Leven Labs, Inc. DBA Admiral", - "breadbalance.com": "Leven Labs, Inc. DBA Admiral", - "breakableinsurance.com": "Leven Labs, Inc. DBA Admiral", - "breakfastboat.com": "Leven Labs, Inc. DBA Admiral", - "breezygrove.com": "Leven Labs, Inc. DBA Admiral", - "brianwould.com": "Leven Labs, Inc. DBA Admiral", - "brighttoe.com": "Leven Labs, Inc. DBA Admiral", - "briskstorm.com": "Leven Labs, Inc. DBA Admiral", - "broadborder.com": "Leven Labs, Inc. DBA Admiral", - "broadboundary.com": "Leven Labs, Inc. DBA Admiral", - "broadcastbed.com": "Leven Labs, Inc. DBA Admiral", - "broaddoor.com": "Leven Labs, Inc. DBA Admiral", - "brotherslocket.com": "Leven Labs, Inc. DBA Admiral", - "bruisebaseball.com": "Leven Labs, Inc. DBA Admiral", - "brunchforher.com": "Leven Labs, Inc. DBA Admiral", - "buildingknife.com": "Leven Labs, Inc. DBA Admiral", - "bulbbait.com": "Leven Labs, Inc. DBA Admiral", - "burgersalt.com": "Leven Labs, Inc. DBA Admiral", - "burlywhistle.com": "Leven Labs, Inc. DBA Admiral", - "burnbubble.com": "Leven Labs, Inc. DBA Admiral", - "bushesbag.com": "Leven Labs, Inc. DBA Admiral", - "bustlingbath.com": "Leven Labs, Inc. DBA Admiral", - "bustlingbook.com": "Leven Labs, Inc. DBA Admiral", - "butterbulb.com": "Leven Labs, Inc. DBA Admiral", - "butterburst.com": "Leven Labs, Inc. DBA Admiral", - "buttonladybug.com": "Leven Labs, Inc. DBA Admiral", - "cakesdrum.com": "Leven Labs, Inc. DBA Admiral", - "calculatingcircle.com": "Leven Labs, Inc. DBA Admiral", - "calculatingtoothbrush.com": "Leven Labs, Inc. DBA Admiral", - "calculatorstatement.com": "Leven Labs, Inc. DBA Admiral", - "callousbrake.com": "Leven Labs, Inc. DBA Admiral", - "calmcactus.com": "Leven Labs, Inc. DBA Admiral", - "calypsocapsule.com": "Leven Labs, Inc. DBA Admiral", - "cannonchange.com": "Leven Labs, Inc. DBA Admiral", - "capablecows.com": "Leven Labs, Inc. DBA Admiral", - "capablecup.com": "Leven Labs, Inc. DBA Admiral", - "capriciouscorn.com": "Leven Labs, Inc. DBA Admiral", - "captivatingcanyon.com": "Leven Labs, Inc. DBA Admiral", - "captivatingillusion.com": "Leven Labs, Inc. DBA Admiral", - "captivatingpanorama.com": "Leven Labs, Inc. DBA Admiral", - "captivatingperformance.com": "Leven Labs, Inc. DBA Admiral", - "carefuldolls.com": "Leven Labs, Inc. DBA Admiral", - "caringcast.com": "Leven Labs, Inc. DBA Admiral", - "caringzinc.com": "Leven Labs, Inc. DBA Admiral", - "carloforward.com": "Leven Labs, Inc. DBA Admiral", - "carpentercomparison.com": "Leven Labs, Inc. DBA Admiral", - "carscannon.com": "Leven Labs, Inc. DBA Admiral", - "cartkitten.com": "Leven Labs, Inc. DBA Admiral", - "carvecakes.com": "Leven Labs, Inc. DBA Admiral", - "catalogcake.com": "Leven Labs, Inc. DBA Admiral", - "catschickens.com": "Leven Labs, Inc. DBA Admiral", - "cattlecommittee.com": "Leven Labs, Inc. DBA Admiral", - "causecherry.com": "Leven Labs, Inc. DBA Admiral", - "cautiouscamera.com": "Leven Labs, Inc. DBA Admiral", - "cautiouscherries.com": "Leven Labs, Inc. DBA Admiral", - "cautiouscrate.com": "Leven Labs, Inc. DBA Admiral", - "cautiouscredit.com": "Leven Labs, Inc. DBA Admiral", - "cavecurtain.com": "Leven Labs, Inc. DBA Admiral", - "ceciliavenus.com": "Leven Labs, Inc. DBA Admiral", - "celestialeuphony.com": "Leven Labs, Inc. DBA Admiral", - "celestialquasar.com": "Leven Labs, Inc. DBA Admiral", - "celestialspectra.com": "Leven Labs, Inc. DBA Admiral", - "chaireggnog.com": "Leven Labs, Inc. DBA Admiral", - "chairscrack.com": "Leven Labs, Inc. DBA Admiral", - "chairsdonkey.com": "Leven Labs, Inc. DBA Admiral", - "chalkoil.com": "Leven Labs, Inc. DBA Admiral", - "changeablecats.com": "Leven Labs, Inc. DBA Admiral", - "channelcamp.com": "Leven Labs, Inc. DBA Admiral", - "chargecracker.com": "Leven Labs, Inc. DBA Admiral", - "charmingplate.com": "Leven Labs, Inc. DBA Admiral", - "charscroll.com": "Leven Labs, Inc. DBA Admiral", - "cheerycraze.com": "Leven Labs, Inc. DBA Admiral", - "cherriescare.com": "Leven Labs, Inc. DBA Admiral", - "chessbranch.com": "Leven Labs, Inc. DBA Admiral", - "chesscolor.com": "Leven Labs, Inc. DBA Admiral", - "chesscrowd.com": "Leven Labs, Inc. DBA Admiral", - "chickensstation.com": "Leven Labs, Inc. DBA Admiral", - "childlikecrowd.com": "Leven Labs, Inc. DBA Admiral", - "childlikeexample.com": "Leven Labs, Inc. DBA Admiral", - "childlikeform.com": "Leven Labs, Inc. DBA Admiral", - "chilledliquid.com": "Leven Labs, Inc. DBA Admiral", - "chingovernment.com": "Leven Labs, Inc. DBA Admiral", - "chinsnakes.com": "Leven Labs, Inc. DBA Admiral", - "chipperisle.com": "Leven Labs, Inc. DBA Admiral", - "chivalrouscord.com": "Leven Labs, Inc. DBA Admiral", - "chubbycreature.com": "Leven Labs, Inc. DBA Admiral", - "chunkycactus.com": "Leven Labs, Inc. DBA Admiral", - "cicdserver.com": "Leven Labs, Inc. DBA Admiral", - "cinemabonus.com": "Leven Labs, Inc. DBA Admiral", - "circlelevel.com": "Leven Labs, Inc. DBA Admiral", - "clammychicken.com": "Leven Labs, Inc. DBA Admiral", - "cleanhaircut.com": "Leven Labs, Inc. DBA Admiral", - "cloisteredcord.com": "Leven Labs, Inc. DBA Admiral", - "cloisteredcurve.com": "Leven Labs, Inc. DBA Admiral", - "closedcows.com": "Leven Labs, Inc. DBA Admiral", - "closefriction.com": "Leven Labs, Inc. DBA Admiral", - "cloudhustles.com": "Leven Labs, Inc. DBA Admiral", - "cloudjumbo.com": "Leven Labs, Inc. DBA Admiral", - "clovercabbage.com": "Leven Labs, Inc. DBA Admiral", - "clumsycar.com": "Leven Labs, Inc. DBA Admiral", - "coatfood.com": "Leven Labs, Inc. DBA Admiral", - "cobaltoverture.com": "Leven Labs, Inc. DBA Admiral", - "coffeesidehustle.com": "Leven Labs, Inc. DBA Admiral", - "coldbalance.com": "Leven Labs, Inc. DBA Admiral", - "coldcreatives.com": "Leven Labs, Inc. DBA Admiral", - "colorfulafterthought.com": "Leven Labs, Inc. DBA Admiral", - "colossalclouds.com": "Leven Labs, Inc. DBA Admiral", - "colossalcoat.com": "Leven Labs, Inc. DBA Admiral", - "colossalcry.com": "Leven Labs, Inc. DBA Admiral", - "combativecar.com": "Leven Labs, Inc. DBA Admiral", - "combativedetail.com": "Leven Labs, Inc. DBA Admiral", - "combbit.com": "Leven Labs, Inc. DBA Admiral", - "combcattle.com": "Leven Labs, Inc. DBA Admiral", - "combcompetition.com": "Leven Labs, Inc. DBA Admiral", - "cometquote.com": "Leven Labs, Inc. DBA Admiral", - "comfortablecheese.com": "Leven Labs, Inc. DBA Admiral", - "comfygoodness.com": "Leven Labs, Inc. DBA Admiral", - "companyparcel.com": "Leven Labs, Inc. DBA Admiral", - "comparereaction.com": "Leven Labs, Inc. DBA Admiral", - "compiledoctor.com": "Leven Labs, Inc. DBA Admiral", - "concernedchange.com": "Leven Labs, Inc. DBA Admiral", - "concernedchickens.com": "Leven Labs, Inc. DBA Admiral", - "condemnedcomb.com": "Leven Labs, Inc. DBA Admiral", - "conditionchange.com": "Leven Labs, Inc. DBA Admiral", - "conditioncrush.com": "Leven Labs, Inc. DBA Admiral", - "confesschairs.com": "Leven Labs, Inc. DBA Admiral", - "configchain.com": "Leven Labs, Inc. DBA Admiral", - "confusedcart.com": "Leven Labs, Inc. DBA Admiral", - "connectashelf.com": "Leven Labs, Inc. DBA Admiral", - "consciouschairs.com": "Leven Labs, Inc. DBA Admiral", - "consciouscheese.com": "Leven Labs, Inc. DBA Admiral", - "consciousdirt.com": "Leven Labs, Inc. DBA Admiral", - "consumerzero.com": "Leven Labs, Inc. DBA Admiral", - "controlcola.com": "Leven Labs, Inc. DBA Admiral", - "controlhall.com": "Leven Labs, Inc. DBA Admiral", - "convertbatch.com": "Leven Labs, Inc. DBA Admiral", - "cooingcoal.com": "Leven Labs, Inc. DBA Admiral", - "coordinatedbedroom.com": "Leven Labs, Inc. DBA Admiral", - "coordinatedcoat.com": "Leven Labs, Inc. DBA Admiral", - "copycarpenter.com": "Leven Labs, Inc. DBA Admiral", - "copyrightaccesscontrols.com": "Leven Labs, Inc. DBA Admiral", - "coralreverie.com": "Leven Labs, Inc. DBA Admiral", - "corgibeachday.com": "Leven Labs, Inc. DBA Admiral", - "cosmicsculptor.com": "Leven Labs, Inc. DBA Admiral", - "cosmosjackson.com": "Leven Labs, Inc. DBA Admiral", - "courageousbaby.com": "Leven Labs, Inc. DBA Admiral", - "coverapparatus.com": "Leven Labs, Inc. DBA Admiral", - "coverlayer.com": "Leven Labs, Inc. DBA Admiral", - "cozydusk.com": "Leven Labs, Inc. DBA Admiral", - "cozyhillside.com": "Leven Labs, Inc. DBA Admiral", - "cozytryst.com": "Leven Labs, Inc. DBA Admiral", - "crabbychin.com": "Leven Labs, Inc. DBA Admiral", - "crackedsafe.com": "Leven Labs, Inc. DBA Admiral", - "crafthenry.com": "Leven Labs, Inc. DBA Admiral", - "crashchance.com": "Leven Labs, Inc. DBA Admiral", - "cratecamera.com": "Leven Labs, Inc. DBA Admiral", - "craterbox.com": "Leven Labs, Inc. DBA Admiral", - "creatorcherry.com": "Leven Labs, Inc. DBA Admiral", - "creatorpassenger.com": "Leven Labs, Inc. DBA Admiral", - "creaturecabbage.com": "Leven Labs, Inc. DBA Admiral", - "crimsonmeadow.com": "Leven Labs, Inc. DBA Admiral", - "critictruck.com": "Leven Labs, Inc. DBA Admiral", - "crookedcreature.com": "Leven Labs, Inc. DBA Admiral", - "crowdedmass.com": "Leven Labs, Inc. DBA Admiral", - "cruisetourist.com": "Leven Labs, Inc. DBA Admiral", - "cryptvalue.com": "Leven Labs, Inc. DBA Admiral", - "crystalboulevard.com": "Leven Labs, Inc. DBA Admiral", - "crystalstatus.com": "Leven Labs, Inc. DBA Admiral", - "cubchannel.com": "Leven Labs, Inc. DBA Admiral", - "cubepins.com": "Leven Labs, Inc. DBA Admiral", - "cuddlycake.com": "Leven Labs, Inc. DBA Admiral", - "cuddlylunchroom.com": "Leven Labs, Inc. DBA Admiral", - "culturedcamera.com": "Leven Labs, Inc. DBA Admiral", - "culturedfeather.com": "Leven Labs, Inc. DBA Admiral", - "cumbersomecar.com": "Leven Labs, Inc. DBA Admiral", - "cumbersomecarpenter.com": "Leven Labs, Inc. DBA Admiral", - "cumbersomecloud.com": "Leven Labs, Inc. DBA Admiral", - "curiouschalk.com": "Leven Labs, Inc. DBA Admiral", - "curioussuccess.com": "Leven Labs, Inc. DBA Admiral", - "curlycannon.com": "Leven Labs, Inc. DBA Admiral", - "currentcollar.com": "Leven Labs, Inc. DBA Admiral", - "curtaincows.com": "Leven Labs, Inc. DBA Admiral", - "curvedhoney.com": "Leven Labs, Inc. DBA Admiral", - "curvycord.com": "Leven Labs, Inc. DBA Admiral", - "curvycry.com": "Leven Labs, Inc. DBA Admiral", - "cushiondrum.com": "Leven Labs, Inc. DBA Admiral", - "cushionpig.com": "Leven Labs, Inc. DBA Admiral", - "cutcurrent.com": "Leven Labs, Inc. DBA Admiral", - "cutechin.com": "Leven Labs, Inc. DBA Admiral", - "cyclopsdial.com": "Leven Labs, Inc. DBA Admiral", - "dailydivision.com": "Leven Labs, Inc. DBA Admiral", - "damagedadvice.com": "Leven Labs, Inc. DBA Admiral", - "damageddistance.com": "Leven Labs, Inc. DBA Admiral", - "damdoor.com": "Leven Labs, Inc. DBA Admiral", - "dampdock.com": "Leven Labs, Inc. DBA Admiral", - "dancemistake.com": "Leven Labs, Inc. DBA Admiral", - "dandydune.com": "Leven Labs, Inc. DBA Admiral", - "dandyglow.com": "Leven Labs, Inc. DBA Admiral", - "dapperdiscussion.com": "Leven Labs, Inc. DBA Admiral", - "dapperfloor.com": "Leven Labs, Inc. DBA Admiral", - "datastoried.com": "Leven Labs, Inc. DBA Admiral", - "daughterstone.com": "Leven Labs, Inc. DBA Admiral", - "daymodern.com": "Leven Labs, Inc. DBA Admiral", - "dazzlingbook.com": "Leven Labs, Inc. DBA Admiral", - "deafeningdock.com": "Leven Labs, Inc. DBA Admiral", - "deafeningdowntown.com": "Leven Labs, Inc. DBA Admiral", - "debonairdust.com": "Leven Labs, Inc. DBA Admiral", - "debonairtree.com": "Leven Labs, Inc. DBA Admiral", - "debugentity.com": "Leven Labs, Inc. DBA Admiral", - "decidedrum.com": "Leven Labs, Inc. DBA Admiral", - "decisivebase.com": "Leven Labs, Inc. DBA Admiral", - "decisivedrawer.com": "Leven Labs, Inc. DBA Admiral", - "decisiveducks.com": "Leven Labs, Inc. DBA Admiral", - "decoycreation.com": "Leven Labs, Inc. DBA Admiral", - "deerbeginner.com": "Leven Labs, Inc. DBA Admiral", - "defeatedbadge.com": "Leven Labs, Inc. DBA Admiral", - "defensevest.com": "Leven Labs, Inc. DBA Admiral", - "degreechariot.com": "Leven Labs, Inc. DBA Admiral", - "delegatediscussion.com": "Leven Labs, Inc. DBA Admiral", - "delicatecascade.com": "Leven Labs, Inc. DBA Admiral", - "deliciousducks.com": "Leven Labs, Inc. DBA Admiral", - "deltafault.com": "Leven Labs, Inc. DBA Admiral", - "deluxecrate.com": "Leven Labs, Inc. DBA Admiral", - "dependenttrip.com": "Leven Labs, Inc. DBA Admiral", - "desirebucket.com": "Leven Labs, Inc. DBA Admiral", - "desiredirt.com": "Leven Labs, Inc. DBA Admiral", - "detailedgovernment.com": "Leven Labs, Inc. DBA Admiral", - "detailedkitten.com": "Leven Labs, Inc. DBA Admiral", - "detectdinner.com": "Leven Labs, Inc. DBA Admiral", - "detectdiscovery.com": "Leven Labs, Inc. DBA Admiral", - "detourgame.com": "Leven Labs, Inc. DBA Admiral", - "deviceseal.com": "Leven Labs, Inc. DBA Admiral", - "deviceworkshop.com": "Leven Labs, Inc. DBA Admiral", - "devilishdinner.com": "Leven Labs, Inc. DBA Admiral", - "dewdroplagoon.com": "Leven Labs, Inc. DBA Admiral", - "difficultfog.com": "Leven Labs, Inc. DBA Admiral", - "digestiondrawer.com": "Leven Labs, Inc. DBA Admiral", - "dinnerquartz.com": "Leven Labs, Inc. DBA Admiral", - "diplomahawaii.com": "Leven Labs, Inc. DBA Admiral", - "direfuldesk.com": "Leven Labs, Inc. DBA Admiral", - "disagreeabledrop.com": "Leven Labs, Inc. DBA Admiral", - "discreetfield.com": "Leven Labs, Inc. DBA Admiral", - "discreetquarter.com": "Leven Labs, Inc. DBA Admiral", - "distributionneck.com": "Leven Labs, Inc. DBA Admiral", - "distributionpocket.com": "Leven Labs, Inc. DBA Admiral", - "distributiontomatoes.com": "Leven Labs, Inc. DBA Admiral", - "disturbedquiet.com": "Leven Labs, Inc. DBA Admiral", - "divehope.com": "Leven Labs, Inc. DBA Admiral", - "dk4ywix.com": "Leven Labs, Inc. DBA Admiral", - "dockdigestion.com": "Leven Labs, Inc. DBA Admiral", - "dogsonclouds.com": "Leven Labs, Inc. DBA Admiral", - "dollardelta.com": "Leven Labs, Inc. DBA Admiral", - "doubledefend.com": "Leven Labs, Inc. DBA Admiral", - "doubtdrawer.com": "Leven Labs, Inc. DBA Admiral", - "dq95d35.com": "Leven Labs, Inc. DBA Admiral", - "drainpaste.com": "Leven Labs, Inc. DBA Admiral", - "dramaticdirection.com": "Leven Labs, Inc. DBA Admiral", - "driftpizza.com": "Leven Labs, Inc. DBA Admiral", - "drollwharf.com": "Leven Labs, Inc. DBA Admiral", - "drydrum.com": "Leven Labs, Inc. DBA Admiral", - "dustydime.com": "Leven Labs, Inc. DBA Admiral", - "dustyhammer.com": "Leven Labs, Inc. DBA Admiral", - "eagereden.com": "Leven Labs, Inc. DBA Admiral", - "eagerflame.com": "Leven Labs, Inc. DBA Admiral", - "eagerknight.com": "Leven Labs, Inc. DBA Admiral", - "earthyfarm.com": "Leven Labs, Inc. DBA Admiral", - "eatablesquare.com": "Leven Labs, Inc. DBA Admiral", - "echochief.com": "Leven Labs, Inc. DBA Admiral", - "echoinghaven.com": "Leven Labs, Inc. DBA Admiral", - "effervescentcoral.com": "Leven Labs, Inc. DBA Admiral", - "effervescentvista.com": "Leven Labs, Inc. DBA Admiral", - "effulgentnook.com": "Leven Labs, Inc. DBA Admiral", - "effulgenttempest.com": "Leven Labs, Inc. DBA Admiral", - "ejyymghi.com": "Leven Labs, Inc. DBA Admiral", - "elasticchange.com": "Leven Labs, Inc. DBA Admiral", - "elderlybean.com": "Leven Labs, Inc. DBA Admiral", - "elderlytown.com": "Leven Labs, Inc. DBA Admiral", - "elephantqueue.com": "Leven Labs, Inc. DBA Admiral", - "elusivebreeze.com": "Leven Labs, Inc. DBA Admiral", - "elusivecascade.com": "Leven Labs, Inc. DBA Admiral", - "elysiantraverse.com": "Leven Labs, Inc. DBA Admiral", - "embellishedmeadow.com": "Leven Labs, Inc. DBA Admiral", - "embermosaic.com": "Leven Labs, Inc. DBA Admiral", - "emberwhisper.com": "Leven Labs, Inc. DBA Admiral", - "eminentbubble.com": "Leven Labs, Inc. DBA Admiral", - "eminentend.com": "Leven Labs, Inc. DBA Admiral", - "emptyescort.com": "Leven Labs, Inc. DBA Admiral", - "enchantedskyline.com": "Leven Labs, Inc. DBA Admiral", - "enchantingdiscovery.com": "Leven Labs, Inc. DBA Admiral", - "enchantingenchantment.com": "Leven Labs, Inc. DBA Admiral", - "enchantingmystique.com": "Leven Labs, Inc. DBA Admiral", - "enchantingtundra.com": "Leven Labs, Inc. DBA Admiral", - "enchantingvalley.com": "Leven Labs, Inc. DBA Admiral", - "encourageshock.com": "Leven Labs, Inc. DBA Admiral", - "encouragingthread.com": "Leven Labs, Inc. DBA Admiral", - "endlesstrust.com": "Leven Labs, Inc. DBA Admiral", - "endurablebulb.com": "Leven Labs, Inc. DBA Admiral", - "energeticexample.com": "Leven Labs, Inc. DBA Admiral", - "energeticladybug.com": "Leven Labs, Inc. DBA Admiral", - "engineergrape.com": "Leven Labs, Inc. DBA Admiral", - "engineertrick.com": "Leven Labs, Inc. DBA Admiral", - "enigmaticblossom.com": "Leven Labs, Inc. DBA Admiral", - "enigmaticcanyon.com": "Leven Labs, Inc. DBA Admiral", - "enigmaticvoyage.com": "Leven Labs, Inc. DBA Admiral", - "enormousearth.com": "Leven Labs, Inc. DBA Admiral", - "enormousfoot.com": "Leven Labs, Inc. DBA Admiral", - "enterdrama.com": "Leven Labs, Inc. DBA Admiral", - "entertainskin.com": "Leven Labs, Inc. DBA Admiral", - "enthusiastictemper.com": "Leven Labs, Inc. DBA Admiral", - "enviousshape.com": "Leven Labs, Inc. DBA Admiral", - "enviousthread.com": "Leven Labs, Inc. DBA Admiral", - "equablekettle.com": "Leven Labs, Inc. DBA Admiral", - "etherealbamboo.com": "Leven Labs, Inc. DBA Admiral", - "ethereallagoon.com": "Leven Labs, Inc. DBA Admiral", - "etherealpinnacle.com": "Leven Labs, Inc. DBA Admiral", - "etherealquasar.com": "Leven Labs, Inc. DBA Admiral", - "etherealripple.com": "Leven Labs, Inc. DBA Admiral", - "evanescentedge.com": "Leven Labs, Inc. DBA Admiral", - "evasivejar.com": "Leven Labs, Inc. DBA Admiral", - "eventexistence.com": "Leven Labs, Inc. DBA Admiral", - "exampleshake.com": "Leven Labs, Inc. DBA Admiral", - "excitingtub.com": "Leven Labs, Inc. DBA Admiral", - "exclusivebrass.com": "Leven Labs, Inc. DBA Admiral", - "executeknowledge.com": "Leven Labs, Inc. DBA Admiral", - "exhibitsneeze.com": "Leven Labs, Inc. DBA Admiral", - "expansioneggnog.com": "Leven Labs, Inc. DBA Admiral", - "exquisiteartisanship.com": "Leven Labs, Inc. DBA Admiral", - "extractobservation.com": "Leven Labs, Inc. DBA Admiral", - "extralocker.com": "Leven Labs, Inc. DBA Admiral", - "extramonies.com": "Leven Labs, Inc. DBA Admiral", - "exuberantedge.com": "Leven Labs, Inc. DBA Admiral", - "facilitatebreakfast.com": "Leven Labs, Inc. DBA Admiral", - "fadechildren.com": "Leven Labs, Inc. DBA Admiral", - "fadedsnow.com": "Leven Labs, Inc. DBA Admiral", - "fadewaves.com": "Leven Labs, Inc. DBA Admiral", - "fairfeeling.com": "Leven Labs, Inc. DBA Admiral", - "fairiesbranch.com": "Leven Labs, Inc. DBA Admiral", - "fairytaleflame.com": "Leven Labs, Inc. DBA Admiral", - "fallaciousfifth.com": "Leven Labs, Inc. DBA Admiral", - "falseframe.com": "Leven Labs, Inc. DBA Admiral", - "familiarrod.com": "Leven Labs, Inc. DBA Admiral", - "fancyactivity.com": "Leven Labs, Inc. DBA Admiral", - "fancydune.com": "Leven Labs, Inc. DBA Admiral", - "fancygrove.com": "Leven Labs, Inc. DBA Admiral", - "fangfeeling.com": "Leven Labs, Inc. DBA Admiral", - "fantastictone.com": "Leven Labs, Inc. DBA Admiral", - "farethief.com": "Leven Labs, Inc. DBA Admiral", - "farmergoldfish.com": "Leven Labs, Inc. DBA Admiral", - "farshake.com": "Leven Labs, Inc. DBA Admiral", - "farsnails.com": "Leven Labs, Inc. DBA Admiral", - "fastenfather.com": "Leven Labs, Inc. DBA Admiral", - "fasterfineart.com": "Leven Labs, Inc. DBA Admiral", - "fasterjson.com": "Leven Labs, Inc. DBA Admiral", - "fatcoil.com": "Leven Labs, Inc. DBA Admiral", - "faucetfoot.com": "Leven Labs, Inc. DBA Admiral", - "faultycanvas.com": "Leven Labs, Inc. DBA Admiral", - "fearfulfish.com": "Leven Labs, Inc. DBA Admiral", - "fearfulmint.com": "Leven Labs, Inc. DBA Admiral", - "fearlessfaucet.com": "Leven Labs, Inc. DBA Admiral", - "fearlesstramp.com": "Leven Labs, Inc. DBA Admiral", - "featherstage.com": "Leven Labs, Inc. DBA Admiral", - "feeblestamp.com": "Leven Labs, Inc. DBA Admiral", - "feignedfaucet.com": "Leven Labs, Inc. DBA Admiral", - "fernwaycloud.com": "Leven Labs, Inc. DBA Admiral", - "fertilefeeling.com": "Leven Labs, Inc. DBA Admiral", - "fewjuice.com": "Leven Labs, Inc. DBA Admiral", - "fewkittens.com": "Leven Labs, Inc. DBA Admiral", - "finalizeforce.com": "Leven Labs, Inc. DBA Admiral", - "financefear.com": "Leven Labs, Inc. DBA Admiral", - "finestpiece.com": "Leven Labs, Inc. DBA Admiral", - "finitecube.com": "Leven Labs, Inc. DBA Admiral", - "firecatfilms.com": "Leven Labs, Inc. DBA Admiral", - "fireworkcamp.com": "Leven Labs, Inc. DBA Admiral", - "firstendpoint.com": "Leven Labs, Inc. DBA Admiral", - "firstfrogs.com": "Leven Labs, Inc. DBA Admiral", - "firsttexture.com": "Leven Labs, Inc. DBA Admiral", - "fitmessage.com": "Leven Labs, Inc. DBA Admiral", - "fivesidedsquare.com": "Leven Labs, Inc. DBA Admiral", - "fixedfold.com": "Leven Labs, Inc. DBA Admiral", - "flakyfeast.com": "Leven Labs, Inc. DBA Admiral", - "flameuncle.com": "Leven Labs, Inc. DBA Admiral", - "flimsycircle.com": "Leven Labs, Inc. DBA Admiral", - "flimsythought.com": "Leven Labs, Inc. DBA Admiral", - "flippedfunnel.com": "Leven Labs, Inc. DBA Admiral", - "floodprincipal.com": "Leven Labs, Inc. DBA Admiral", - "flourishingcollaboration.com": "Leven Labs, Inc. DBA Admiral", - "flourishingendeavor.com": "Leven Labs, Inc. DBA Admiral", - "flourishinginnovation.com": "Leven Labs, Inc. DBA Admiral", - "flourishingpartnership.com": "Leven Labs, Inc. DBA Admiral", - "flowersornament.com": "Leven Labs, Inc. DBA Admiral", - "flowerstreatment.com": "Leven Labs, Inc. DBA Admiral", - "flowerycreature.com": "Leven Labs, Inc. DBA Admiral", - "floweryfact.com": "Leven Labs, Inc. DBA Admiral", - "floweryflavor.com": "Leven Labs, Inc. DBA Admiral", - "floweryoperation.com": "Leven Labs, Inc. DBA Admiral", - "flutteringfireman.com": "Leven Labs, Inc. DBA Admiral", - "foambench.com": "Leven Labs, Inc. DBA Admiral", - "followborder.com": "Leven Labs, Inc. DBA Admiral", - "forecasttiger.com": "Leven Labs, Inc. DBA Admiral", - "foretellfifth.com": "Leven Labs, Inc. DBA Admiral", - "forevergears.com": "Leven Labs, Inc. DBA Admiral", - "forgetfulflowers.com": "Leven Labs, Inc. DBA Admiral", - "forgetfulsnail.com": "Leven Labs, Inc. DBA Admiral", - "fortunatemark.com": "Leven Labs, Inc. DBA Admiral", - "fractalcoast.com": "Leven Labs, Inc. DBA Admiral", - "frailfruit.com": "Leven Labs, Inc. DBA Admiral", - "framebanana.com": "Leven Labs, Inc. DBA Admiral", - "franticroof.com": "Leven Labs, Inc. DBA Admiral", - "frantictrail.com": "Leven Labs, Inc. DBA Admiral", - "frazzleart.com": "Leven Labs, Inc. DBA Admiral", - "freakyglass.com": "Leven Labs, Inc. DBA Admiral", - "freezingbuilding.com": "Leven Labs, Inc. DBA Admiral", - "frequentflesh.com": "Leven Labs, Inc. DBA Admiral", - "friendlycrayon.com": "Leven Labs, Inc. DBA Admiral", - "friendlyfold.com": "Leven Labs, Inc. DBA Admiral", - "friendwool.com": "Leven Labs, Inc. DBA Admiral", - "frightenedpotato.com": "Leven Labs, Inc. DBA Admiral", - "frogator.com": "Leven Labs, Inc. DBA Admiral", - "frogtray.com": "Leven Labs, Inc. DBA Admiral", - "fronttoad.com": "Leven Labs, Inc. DBA Admiral", - "frugalfiestas.com": "Leven Labs, Inc. DBA Admiral", - "fumblingform.com": "Leven Labs, Inc. DBA Admiral", - "functionalcrown.com": "Leven Labs, Inc. DBA Admiral", - "functionalfeather.com": "Leven Labs, Inc. DBA Admiral", - "funoverbored.com": "Leven Labs, Inc. DBA Admiral", - "funoverflow.com": "Leven Labs, Inc. DBA Admiral", - "furnstudio.com": "Leven Labs, Inc. DBA Admiral", - "furryfork.com": "Leven Labs, Inc. DBA Admiral", - "furryhorses.com": "Leven Labs, Inc. DBA Admiral", - "futuristicapparatus.com": "Leven Labs, Inc. DBA Admiral", - "futuristicfairies.com": "Leven Labs, Inc. DBA Admiral", - "futuristicfifth.com": "Leven Labs, Inc. DBA Admiral", - "futuristicframe.com": "Leven Labs, Inc. DBA Admiral", - "fuzzyaudio.com": "Leven Labs, Inc. DBA Admiral", - "fuzzybasketball.com": "Leven Labs, Inc. DBA Admiral", - "fuzzyerror.com": "Leven Labs, Inc. DBA Admiral", - "fvl1f.pw": "Leven Labs, Inc. DBA Admiral", - "gammamaximum.com": "Leven Labs, Inc. DBA Admiral", - "gardenovens.com": "Leven Labs, Inc. DBA Admiral", - "gaudyairplane.com": "Leven Labs, Inc. DBA Admiral", - "geekactive.com": "Leven Labs, Inc. DBA Admiral", - "generalprose.com": "Leven Labs, Inc. DBA Admiral", - "generateoffice.com": "Leven Labs, Inc. DBA Admiral", - "giantsvessel.com": "Leven Labs, Inc. DBA Admiral", - "giddycoat.com": "Leven Labs, Inc. DBA Admiral", - "giraffepiano.com": "Leven Labs, Inc. DBA Admiral", - "gitcrumbs.com": "Leven Labs, Inc. DBA Admiral", - "givevacation.com": "Leven Labs, Inc. DBA Admiral", - "gladglen.com": "Leven Labs, Inc. DBA Admiral", - "gladysway.com": "Leven Labs, Inc. DBA Admiral", - "glamhawk.com": "Leven Labs, Inc. DBA Admiral", - "gleamingcow.com": "Leven Labs, Inc. DBA Admiral", - "gleaminghaven.com": "Leven Labs, Inc. DBA Admiral", - "glisteningguide.com": "Leven Labs, Inc. DBA Admiral", - "glisteningsign.com": "Leven Labs, Inc. DBA Admiral", - "glitteringbrook.com": "Leven Labs, Inc. DBA Admiral", - "gloriousbeef.com": "Leven Labs, Inc. DBA Admiral", - "glowingmeadow.com": "Leven Labs, Inc. DBA Admiral", - "gluedpixel.com": "Leven Labs, Inc. DBA Admiral", - "goldfishgrowth.com": "Leven Labs, Inc. DBA Admiral", - "gondolagnome.com": "Leven Labs, Inc. DBA Admiral", - "goodbark.com": "Leven Labs, Inc. DBA Admiral", - "gorgeousedge.com": "Leven Labs, Inc. DBA Admiral", - "gracefulmilk.com": "Leven Labs, Inc. DBA Admiral", - "grainmass.com": "Leven Labs, Inc. DBA Admiral", - "grandfatherguitar.com": "Leven Labs, Inc. DBA Admiral", - "gravitygive.com": "Leven Labs, Inc. DBA Admiral", - "gravitykick.com": "Leven Labs, Inc. DBA Admiral", - "grayoranges.com": "Leven Labs, Inc. DBA Admiral", - "grayreceipt.com": "Leven Labs, Inc. DBA Admiral", - "greasysquare.com": "Leven Labs, Inc. DBA Admiral", - "greyinstrument.com": "Leven Labs, Inc. DBA Admiral", - "gripcorn.com": "Leven Labs, Inc. DBA Admiral", - "groovyornament.com": "Leven Labs, Inc. DBA Admiral", - "grouchybrothers.com": "Leven Labs, Inc. DBA Admiral", - "grouchypush.com": "Leven Labs, Inc. DBA Admiral", - "grumpydime.com": "Leven Labs, Inc. DBA Admiral", - "grumpydrawer.com": "Leven Labs, Inc. DBA Admiral", - "guardeddirection.com": "Leven Labs, Inc. DBA Admiral", - "guardedschool.com": "Leven Labs, Inc. DBA Admiral", - "guessdetail.com": "Leven Labs, Inc. DBA Admiral", - "guidecent.com": "Leven Labs, Inc. DBA Admiral", - "guildalpha.com": "Leven Labs, Inc. DBA Admiral", - "guiltlessbasketball.com": "Leven Labs, Inc. DBA Admiral", - "gulliblegrip.com": "Leven Labs, Inc. DBA Admiral", - "gustocooking.com": "Leven Labs, Inc. DBA Admiral", - "gustygrandmother.com": "Leven Labs, Inc. DBA Admiral", - "h78xb.pw": "Leven Labs, Inc. DBA Admiral", - "habitualhumor.com": "Leven Labs, Inc. DBA Admiral", - "halcyoncanyon.com": "Leven Labs, Inc. DBA Admiral", - "halcyonsculpture.com": "Leven Labs, Inc. DBA Admiral", - "hallowedinvention.com": "Leven Labs, Inc. DBA Admiral", - "haltingbadge.com": "Leven Labs, Inc. DBA Admiral", - "haltingdivision.com": "Leven Labs, Inc. DBA Admiral", - "haltinggold.com": "Leven Labs, Inc. DBA Admiral", - "hammerhearing.com": "Leven Labs, Inc. DBA Admiral", - "handleteeth.com": "Leven Labs, Inc. DBA Admiral", - "handnorth.com": "Leven Labs, Inc. DBA Admiral", - "handsomehose.com": "Leven Labs, Inc. DBA Admiral", - "handsomeindustry.com": "Leven Labs, Inc. DBA Admiral", - "handsomelyhealth.com": "Leven Labs, Inc. DBA Admiral", - "handsomelythumb.com": "Leven Labs, Inc. DBA Admiral", - "handsomeyam.com": "Leven Labs, Inc. DBA Admiral", - "handyfield.com": "Leven Labs, Inc. DBA Admiral", - "handyfireman.com": "Leven Labs, Inc. DBA Admiral", - "handyincrease.com": "Leven Labs, Inc. DBA Admiral", - "haplesshydrant.com": "Leven Labs, Inc. DBA Admiral", - "haplessland.com": "Leven Labs, Inc. DBA Admiral", - "happysponge.com": "Leven Labs, Inc. DBA Admiral", - "harborcaption.com": "Leven Labs, Inc. DBA Admiral", - "harborcub.com": "Leven Labs, Inc. DBA Admiral", - "harmonicbamboo.com": "Leven Labs, Inc. DBA Admiral", - "harmonywing.com": "Leven Labs, Inc. DBA Admiral", - "headydegree.com": "Leven Labs, Inc. DBA Admiral", - "headyhook.com": "Leven Labs, Inc. DBA Admiral", - "healflowers.com": "Leven Labs, Inc. DBA Admiral", - "hearinglizards.com": "Leven Labs, Inc. DBA Admiral", - "heartbreakingmind.com": "Leven Labs, Inc. DBA Admiral", - "hearthorn.com": "Leven Labs, Inc. DBA Admiral", - "heavydetail.com": "Leven Labs, Inc. DBA Admiral", - "heavyplayground.com": "Leven Labs, Inc. DBA Admiral", - "helpcollar.com": "Leven Labs, Inc. DBA Admiral", - "helpflame.com": "Leven Labs, Inc. DBA Admiral", - "hfc195b.com": "Leven Labs, Inc. DBA Admiral", - "highfalutinbox.com": "Leven Labs, Inc. DBA Admiral", - "highfalutinhoney.com": "Leven Labs, Inc. DBA Admiral", - "hilariouszinc.com": "Leven Labs, Inc. DBA Admiral", - "historicalbeam.com": "Leven Labs, Inc. DBA Admiral", - "hocgeese.com": "Leven Labs, Inc. DBA Admiral", - "hollowafterthought.com": "Leven Labs, Inc. DBA Admiral", - "homelycrown.com": "Leven Labs, Inc. DBA Admiral", - "honeybulb.com": "Leven Labs, Inc. DBA Admiral", - "honeywhipped.com": "Leven Labs, Inc. DBA Admiral", - "honorablehydrant.com": "Leven Labs, Inc. DBA Admiral", - "honorableland.com": "Leven Labs, Inc. DBA Admiral", - "horsenectar.com": "Leven Labs, Inc. DBA Admiral", - "hospitablehall.com": "Leven Labs, Inc. DBA Admiral", - "hospitablehat.com": "Leven Labs, Inc. DBA Admiral", - "howdyinbox.com": "Leven Labs, Inc. DBA Admiral", - "humdrumhobbies.com": "Leven Labs, Inc. DBA Admiral", - "humdrumtouch.com": "Leven Labs, Inc. DBA Admiral", - "hurtgrape.com": "Leven Labs, Inc. DBA Admiral", - "hypnoticwound.com": "Leven Labs, Inc. DBA Admiral", - "hystericalcloth.com": "Leven Labs, Inc. DBA Admiral", - "hystericalfinger.com": "Leven Labs, Inc. DBA Admiral", - "i9w8p.pw": "Leven Labs, Inc. DBA Admiral", - "idolscene.com": "Leven Labs, Inc. DBA Admiral", - "idyllicjazz.com": "Leven Labs, Inc. DBA Admiral", - "illinvention.com": "Leven Labs, Inc. DBA Admiral", - "illustriousoatmeal.com": "Leven Labs, Inc. DBA Admiral", - "immensehoney.com": "Leven Labs, Inc. DBA Admiral", - "imminentshake.com": "Leven Labs, Inc. DBA Admiral", - "importantmeat.com": "Leven Labs, Inc. DBA Admiral", - "importedincrease.com": "Leven Labs, Inc. DBA Admiral", - "importedinsect.com": "Leven Labs, Inc. DBA Admiral", - "importlocate.com": "Leven Labs, Inc. DBA Admiral", - "impossibleexpansion.com": "Leven Labs, Inc. DBA Admiral", - "impossiblemove.com": "Leven Labs, Inc. DBA Admiral", - "impulsejewel.com": "Leven Labs, Inc. DBA Admiral", - "impulselumber.com": "Leven Labs, Inc. DBA Admiral", - "incomehippo.com": "Leven Labs, Inc. DBA Admiral", - "incompetentjoke.com": "Leven Labs, Inc. DBA Admiral", - "inconclusiveaction.com": "Leven Labs, Inc. DBA Admiral", - "infamousstream.com": "Leven Labs, Inc. DBA Admiral", - "innocentlamp.com": "Leven Labs, Inc. DBA Admiral", - "innocentwax.com": "Leven Labs, Inc. DBA Admiral", - "inputicicle.com": "Leven Labs, Inc. DBA Admiral", - "inquisitiveice.com": "Leven Labs, Inc. DBA Admiral", - "inquisitiveinvention.com": "Leven Labs, Inc. DBA Admiral", - "intelligentscissors.com": "Leven Labs, Inc. DBA Admiral", - "intentlens.com": "Leven Labs, Inc. DBA Admiral", - "interestdust.com": "Leven Labs, Inc. DBA Admiral", - "internalcondition.com": "Leven Labs, Inc. DBA Admiral", - "internalsink.com": "Leven Labs, Inc. DBA Admiral", - "iotapool.com": "Leven Labs, Inc. DBA Admiral", - "irritatingfog.com": "Leven Labs, Inc. DBA Admiral", - "itemslice.com": "Leven Labs, Inc. DBA Admiral", - "ivykiosk.com": "Leven Labs, Inc. DBA Admiral", - "j93557g.com": "Leven Labs, Inc. DBA Admiral", - "jadeitite.com": "Leven Labs, Inc. DBA Admiral", - "jaderooster.com": "Leven Labs, Inc. DBA Admiral", - "jailbulb.com": "Leven Labs, Inc. DBA Admiral", - "joblessdrum.com": "Leven Labs, Inc. DBA Admiral", - "jollylens.com": "Leven Labs, Inc. DBA Admiral", - "joyfulkeen.com": "Leven Labs, Inc. DBA Admiral", - "joyoussurprise.com": "Leven Labs, Inc. DBA Admiral", - "jubilantaura.com": "Leven Labs, Inc. DBA Admiral", - "jubilantcanyon.com": "Leven Labs, Inc. DBA Admiral", - "jubilantcascade.com": "Leven Labs, Inc. DBA Admiral", - "jubilantglimmer.com": "Leven Labs, Inc. DBA Admiral", - "jubilanttempest.com": "Leven Labs, Inc. DBA Admiral", - "jubilantwhisper.com": "Leven Labs, Inc. DBA Admiral", - "juiceblocks.com": "Leven Labs, Inc. DBA Admiral", - "justicejudo.com": "Leven Labs, Inc. DBA Admiral", - "k54nw.pw": "Leven Labs, Inc. DBA Admiral", - "kaputquill.com": "Leven Labs, Inc. DBA Admiral", - "keenquill.com": "Leven Labs, Inc. DBA Admiral", - "kindhush.com": "Leven Labs, Inc. DBA Admiral", - "kitesquirrel.com": "Leven Labs, Inc. DBA Admiral", - "knitstamp.com": "Leven Labs, Inc. DBA Admiral", - "knottyswing.com": "Leven Labs, Inc. DBA Admiral", - "laboredlight.com": "Leven Labs, Inc. DBA Admiral", - "laboredlocket.com": "Leven Labs, Inc. DBA Admiral", - "lameletters.com": "Leven Labs, Inc. DBA Admiral", - "lamplow.com": "Leven Labs, Inc. DBA Admiral", - "largebrass.com": "Leven Labs, Inc. DBA Admiral", - "lasttaco.com": "Leven Labs, Inc. DBA Admiral", - "laughablelizards.com": "Leven Labs, Inc. DBA Admiral", - "leaplunchroom.com": "Leven Labs, Inc. DBA Admiral", - "leftliquid.com": "Leven Labs, Inc. DBA Admiral", - "lemonpackage.com": "Leven Labs, Inc. DBA Admiral", - "lemonsandjoy.com": "Leven Labs, Inc. DBA Admiral", - "liftedknowledge.com": "Leven Labs, Inc. DBA Admiral", - "lightenafterthought.com": "Leven Labs, Inc. DBA Admiral", - "lighttalon.com": "Leven Labs, Inc. DBA Admiral", - "livelumber.com": "Leven Labs, Inc. DBA Admiral", - "livelylaugh.com": "Leven Labs, Inc. DBA Admiral", - "livelyreward.com": "Leven Labs, Inc. DBA Admiral", - "livingsleet.com": "Leven Labs, Inc. DBA Admiral", - "lizardslaugh.com": "Leven Labs, Inc. DBA Admiral", - "loadsurprise.com": "Leven Labs, Inc. DBA Admiral", - "lonelyflavor.com": "Leven Labs, Inc. DBA Admiral", - "longingtrees.com": "Leven Labs, Inc. DBA Admiral", - "looseloaf.com": "Leven Labs, Inc. DBA Admiral", - "lorenzourban.com": "Leven Labs, Inc. DBA Admiral", - "losslace.com": "Leven Labs, Inc. DBA Admiral", - "loudlunch.com": "Leven Labs, Inc. DBA Admiral", - "lovelydrum.com": "Leven Labs, Inc. DBA Admiral", - "loveseashore.com": "Leven Labs, Inc. DBA Admiral", - "lp3tdqle.com": "Leven Labs, Inc. DBA Admiral", - "ludicrousarch.com": "Leven Labs, Inc. DBA Admiral", - "lumberamount.com": "Leven Labs, Inc. DBA Admiral", - "luminousboulevard.com": "Leven Labs, Inc. DBA Admiral", - "luminouscatalyst.com": "Leven Labs, Inc. DBA Admiral", - "luminoussculptor.com": "Leven Labs, Inc. DBA Admiral", - "lumpygnome.com": "Leven Labs, Inc. DBA Admiral", - "lumpylumber.com": "Leven Labs, Inc. DBA Admiral", - "lunchroomlock.com": "Leven Labs, Inc. DBA Admiral", - "lustroushaven.com": "Leven Labs, Inc. DBA Admiral", - "lyricshook.com": "Leven Labs, Inc. DBA Admiral", - "maddeningpowder.com": "Leven Labs, Inc. DBA Admiral", - "madebyintent.com": "Leven Labs, Inc. DBA Admiral", - "magicaljoin.com": "Leven Labs, Inc. DBA Admiral", - "magnetairport.com": "Leven Labs, Inc. DBA Admiral", - "majesticmountainrange.com": "Leven Labs, Inc. DBA Admiral", - "majesticwaterscape.com": "Leven Labs, Inc. DBA Admiral", - "majesticwilderness.com": "Leven Labs, Inc. DBA Admiral", - "maliciousmusic.com": "Leven Labs, Inc. DBA Admiral", - "managedpush.com": "Leven Labs, Inc. DBA Admiral", - "mantrafox.com": "Leven Labs, Inc. DBA Admiral", - "marblediscussion.com": "Leven Labs, Inc. DBA Admiral", - "markahouse.com": "Leven Labs, Inc. DBA Admiral", - "markedmeasure.com": "Leven Labs, Inc. DBA Admiral", - "marketspiders.com": "Leven Labs, Inc. DBA Admiral", - "marriedbelief.com": "Leven Labs, Inc. DBA Admiral", - "marriedmailbox.com": "Leven Labs, Inc. DBA Admiral", - "marriedvalue.com": "Leven Labs, Inc. DBA Admiral", - "massivemark.com": "Leven Labs, Inc. DBA Admiral", - "materialisticmoon.com": "Leven Labs, Inc. DBA Admiral", - "materialmilk.com": "Leven Labs, Inc. DBA Admiral", - "materialparcel.com": "Leven Labs, Inc. DBA Admiral", - "materialplayground.com": "Leven Labs, Inc. DBA Admiral", - "meadowlullaby.com": "Leven Labs, Inc. DBA Admiral", - "measlymiddle.com": "Leven Labs, Inc. DBA Admiral", - "meatydime.com": "Leven Labs, Inc. DBA Admiral", - "meddleplant.com": "Leven Labs, Inc. DBA Admiral", - "mediatescarf.com": "Leven Labs, Inc. DBA Admiral", - "mediumshort.com": "Leven Labs, Inc. DBA Admiral", - "mellowhush.com": "Leven Labs, Inc. DBA Admiral", - "mellowmailbox.com": "Leven Labs, Inc. DBA Admiral", - "melodiouschorus.com": "Leven Labs, Inc. DBA Admiral", - "melodiouscomposition.com": "Leven Labs, Inc. DBA Admiral", - "meltmilk.com": "Leven Labs, Inc. DBA Admiral", - "memopilot.com": "Leven Labs, Inc. DBA Admiral", - "memorizematch.com": "Leven Labs, Inc. DBA Admiral", - "memorizeneck.com": "Leven Labs, Inc. DBA Admiral", - "mentorsticks.com": "Leven Labs, Inc. DBA Admiral", - "meremark.com": "Leven Labs, Inc. DBA Admiral", - "merequartz.com": "Leven Labs, Inc. DBA Admiral", - "merryopal.com": "Leven Labs, Inc. DBA Admiral", - "merryvault.com": "Leven Labs, Inc. DBA Admiral", - "messagenovice.com": "Leven Labs, Inc. DBA Admiral", - "messyoranges.com": "Leven Labs, Inc. DBA Admiral", - "metajaws.com": "Leven Labs, Inc. DBA Admiral", - "mightyspiders.com": "Leven Labs, Inc. DBA Admiral", - "mimosamajor.com": "Leven Labs, Inc. DBA Admiral", - "mindfulgem.com": "Leven Labs, Inc. DBA Admiral", - "minorcattle.com": "Leven Labs, Inc. DBA Admiral", - "minusmental.com": "Leven Labs, Inc. DBA Admiral", - "minuteburst.com": "Leven Labs, Inc. DBA Admiral", - "miscreantmoon.com": "Leven Labs, Inc. DBA Admiral", - "mistyhorizon.com": "Leven Labs, Inc. DBA Admiral", - "mittencattle.com": "Leven Labs, Inc. DBA Admiral", - "mixedreading.com": "Leven Labs, Inc. DBA Admiral", - "modularmental.com": "Leven Labs, Inc. DBA Admiral", - "monacobeatles.com": "Leven Labs, Inc. DBA Admiral", - "moorshoes.com": "Leven Labs, Inc. DBA Admiral", - "morefriendly.com": "Leven Labs, Inc. DBA Admiral", - "motionflowers.com": "Leven Labs, Inc. DBA Admiral", - "motionlessbag.com": "Leven Labs, Inc. DBA Admiral", - "motionlessbelief.com": "Leven Labs, Inc. DBA Admiral", - "motionlessmeeting.com": "Leven Labs, Inc. DBA Admiral", - "movemeal.com": "Leven Labs, Inc. DBA Admiral", - "muddledaftermath.com": "Leven Labs, Inc. DBA Admiral", - "muddledmemory.com": "Leven Labs, Inc. DBA Admiral", - "mundanenail.com": "Leven Labs, Inc. DBA Admiral", - "mundanepollution.com": "Leven Labs, Inc. DBA Admiral", - "mushywaste.com": "Leven Labs, Inc. DBA Admiral", - "muteknife.com": "Leven Labs, Inc. DBA Admiral", - "mutemailbox.com": "Leven Labs, Inc. DBA Admiral", - "mysticalagoon.com": "Leven Labs, Inc. DBA Admiral", - "naivestatement.com": "Leven Labs, Inc. DBA Admiral", - "nappyattack.com": "Leven Labs, Inc. DBA Admiral", - "nappyneck.com": "Leven Labs, Inc. DBA Admiral", - "neatshade.com": "Leven Labs, Inc. DBA Admiral", - "nebulacrescent.com": "Leven Labs, Inc. DBA Admiral", - "nebulajubilee.com": "Leven Labs, Inc. DBA Admiral", - "nebulousamusement.com": "Leven Labs, Inc. DBA Admiral", - "nebulousgarden.com": "Leven Labs, Inc. DBA Admiral", - "nebulousquasar.com": "Leven Labs, Inc. DBA Admiral", - "nebulousripple.com": "Leven Labs, Inc. DBA Admiral", - "needlessnorth.com": "Leven Labs, Inc. DBA Admiral", - "needyneedle.com": "Leven Labs, Inc. DBA Admiral", - "neighborlywatch.com": "Leven Labs, Inc. DBA Admiral", - "nervoussummer.com": "Leven Labs, Inc. DBA Admiral", - "niftygraphs.com": "Leven Labs, Inc. DBA Admiral", - "niftyhospital.com": "Leven Labs, Inc. DBA Admiral", - "niftyjelly.com": "Leven Labs, Inc. DBA Admiral", - "nightwound.com": "Leven Labs, Inc. DBA Admiral", - "nimbleplot.com": "Leven Labs, Inc. DBA Admiral", - "nocturnalloom.com": "Leven Labs, Inc. DBA Admiral", - "nocturnalmystique.com": "Leven Labs, Inc. DBA Admiral", - "noiselessplough.com": "Leven Labs, Inc. DBA Admiral", - "nonchalantnerve.com": "Leven Labs, Inc. DBA Admiral", - "nondescriptcrowd.com": "Leven Labs, Inc. DBA Admiral", - "nondescriptnote.com": "Leven Labs, Inc. DBA Admiral", - "nondescriptstocking.com": "Leven Labs, Inc. DBA Admiral", - "nostalgicknot.com": "Leven Labs, Inc. DBA Admiral", - "nostalgicneed.com": "Leven Labs, Inc. DBA Admiral", - "notifyglass.com": "Leven Labs, Inc. DBA Admiral", - "nudgeduck.com": "Leven Labs, Inc. DBA Admiral", - "nullnorth.com": "Leven Labs, Inc. DBA Admiral", - "numberlessring.com": "Leven Labs, Inc. DBA Admiral", - "numerousnest.com": "Leven Labs, Inc. DBA Admiral", - "nutritiousbean.com": "Leven Labs, Inc. DBA Admiral", - "nuttyorganization.com": "Leven Labs, Inc. DBA Admiral", - "oafishchance.com": "Leven Labs, Inc. DBA Admiral", - "oafishobservation.com": "Leven Labs, Inc. DBA Admiral", - "obscenesidewalk.com": "Leven Labs, Inc. DBA Admiral", - "observantice.com": "Leven Labs, Inc. DBA Admiral", - "oldfashionedoffer.com": "Leven Labs, Inc. DBA Admiral", - "omgthink.com": "Leven Labs, Inc. DBA Admiral", - "omniscientfeeling.com": "Leven Labs, Inc. DBA Admiral", - "onlywoofs.com": "Leven Labs, Inc. DBA Admiral", - "opalquill.com": "Leven Labs, Inc. DBA Admiral", - "operationchicken.com": "Leven Labs, Inc. DBA Admiral", - "operationnail.com": "Leven Labs, Inc. DBA Admiral", - "oppositeoperation.com": "Leven Labs, Inc. DBA Admiral", - "optimallimit.com": "Leven Labs, Inc. DBA Admiral", - "opulentsylvan.com": "Leven Labs, Inc. DBA Admiral", - "orientedargument.com": "Leven Labs, Inc. DBA Admiral", - "orionember.com": "Leven Labs, Inc. DBA Admiral", - "ourblogthing.com": "Leven Labs, Inc. DBA Admiral", - "outgoinggiraffe.com": "Leven Labs, Inc. DBA Admiral", - "outsidevibe.com": "Leven Labs, Inc. DBA Admiral", - "outstandingincome.com": "Leven Labs, Inc. DBA Admiral", - "outstandingsnails.com": "Leven Labs, Inc. DBA Admiral", - "overconfidentfood.com": "Leven Labs, Inc. DBA Admiral", - "overkick.com": "Leven Labs, Inc. DBA Admiral", - "overratedchalk.com": "Leven Labs, Inc. DBA Admiral", - "owlsr.us": "Leven Labs, Inc. DBA Admiral", - "oxygenfuse.com": "Leven Labs, Inc. DBA Admiral", - "pailcrime.com": "Leven Labs, Inc. DBA Admiral", - "pailpatch.com": "Leven Labs, Inc. DBA Admiral", - "painstakingpickle.com": "Leven Labs, Inc. DBA Admiral", - "paintpear.com": "Leven Labs, Inc. DBA Admiral", - "paleleaf.com": "Leven Labs, Inc. DBA Admiral", - "pamelarandom.com": "Leven Labs, Inc. DBA Admiral", - "panickycurtain.com": "Leven Labs, Inc. DBA Admiral", - "panickypancake.com": "Leven Labs, Inc. DBA Admiral", - "panoramicplane.com": "Leven Labs, Inc. DBA Admiral", - "parallelbulb.com": "Leven Labs, Inc. DBA Admiral", - "parchedsofa.com": "Leven Labs, Inc. DBA Admiral", - "pardonpopular.com": "Leven Labs, Inc. DBA Admiral", - "parentpicture.com": "Leven Labs, Inc. DBA Admiral", - "parsimoniouspolice.com": "Leven Labs, Inc. DBA Admiral", - "partplanes.com": "Leven Labs, Inc. DBA Admiral", - "passivepolo.com": "Leven Labs, Inc. DBA Admiral", - "pastoralroad.com": "Leven Labs, Inc. DBA Admiral", - "pawsnug.com": "Leven Labs, Inc. DBA Admiral", - "peacefullimit.com": "Leven Labs, Inc. DBA Admiral", - "pedromister.com": "Leven Labs, Inc. DBA Admiral", - "pedropanther.com": "Leven Labs, Inc. DBA Admiral", - "perceivequarter.com": "Leven Labs, Inc. DBA Admiral", - "perkyjade.com": "Leven Labs, Inc. DBA Admiral", - "petiteumbrella.com": "Leven Labs, Inc. DBA Admiral", - "philippinch.com": "Leven Labs, Inc. DBA Admiral", - "photographpan.com": "Leven Labs, Inc. DBA Admiral", - "piespower.com": "Leven Labs, Inc. DBA Admiral", - "piquantgrove.com": "Leven Labs, Inc. DBA Admiral", - "piquantmeadow.com": "Leven Labs, Inc. DBA Admiral", - "piquantpigs.com": "Leven Labs, Inc. DBA Admiral", - "piquantprice.com": "Leven Labs, Inc. DBA Admiral", - "piquantvortex.com": "Leven Labs, Inc. DBA Admiral", - "pixeledhub.com": "Leven Labs, Inc. DBA Admiral", - "pizzasnut.com": "Leven Labs, Inc. DBA Admiral", - "placeframe.com": "Leven Labs, Inc. DBA Admiral", - "placidactivity.com": "Leven Labs, Inc. DBA Admiral", - "placidperson.com": "Leven Labs, Inc. DBA Admiral", - "planebasin.com": "Leven Labs, Inc. DBA Admiral", - "plantdigestion.com": "Leven Labs, Inc. DBA Admiral", - "playfulriver.com": "Leven Labs, Inc. DBA Admiral", - "pleasantpump.com": "Leven Labs, Inc. DBA Admiral", - "plotparent.com": "Leven Labs, Inc. DBA Admiral", - "plotrabbit.com": "Leven Labs, Inc. DBA Admiral", - "pluckypocket.com": "Leven Labs, Inc. DBA Admiral", - "pluckyzone.com": "Leven Labs, Inc. DBA Admiral", - "pocketfaucet.com": "Leven Labs, Inc. DBA Admiral", - "poemprompt.com": "Leven Labs, Inc. DBA Admiral", - "poeticpackage.com": "Leven Labs, Inc. DBA Admiral", - "pointdigestion.com": "Leven Labs, Inc. DBA Admiral", - "pointlesshour.com": "Leven Labs, Inc. DBA Admiral", - "pointlesspocket.com": "Leven Labs, Inc. DBA Admiral", - "pointlessprofit.com": "Leven Labs, Inc. DBA Admiral", - "pointlessrifle.com": "Leven Labs, Inc. DBA Admiral", - "polarismagnet.com": "Leven Labs, Inc. DBA Admiral", - "polishedcrescent.com": "Leven Labs, Inc. DBA Admiral", - "polishedfolly.com": "Leven Labs, Inc. DBA Admiral", - "politeplanes.com": "Leven Labs, Inc. DBA Admiral", - "politicalflip.com": "Leven Labs, Inc. DBA Admiral", - "politicalporter.com": "Leven Labs, Inc. DBA Admiral", - "popplantation.com": "Leven Labs, Inc. DBA Admiral", - "possibleboats.com": "Leven Labs, Inc. DBA Admiral", - "possiblepencil.com": "Leven Labs, Inc. DBA Admiral", - "potatoinvention.com": "Leven Labs, Inc. DBA Admiral", - "powderjourney.com": "Leven Labs, Inc. DBA Admiral", - "powerfulblends.com": "Leven Labs, Inc. DBA Admiral", - "powerfulcopper.com": "Leven Labs, Inc. DBA Admiral", - "preciousplanes.com": "Leven Labs, Inc. DBA Admiral", - "predictplate.com": "Leven Labs, Inc. DBA Admiral", - "prefixpatriot.com": "Leven Labs, Inc. DBA Admiral", - "prepareplanes.com": "Leven Labs, Inc. DBA Admiral", - "presetrabbits.com": "Leven Labs, Inc. DBA Admiral", - "previousplayground.com": "Leven Labs, Inc. DBA Admiral", - "previouspotato.com": "Leven Labs, Inc. DBA Admiral", - "priceypies.com": "Leven Labs, Inc. DBA Admiral", - "pricklydebt.com": "Leven Labs, Inc. DBA Admiral", - "pricklypollution.com": "Leven Labs, Inc. DBA Admiral", - "pristinegale.com": "Leven Labs, Inc. DBA Admiral", - "probablepartner.com": "Leven Labs, Inc. DBA Admiral", - "processplantation.com": "Leven Labs, Inc. DBA Admiral", - "producepickle.com": "Leven Labs, Inc. DBA Admiral", - "productsurfer.com": "Leven Labs, Inc. DBA Admiral", - "profitrumour.com": "Leven Labs, Inc. DBA Admiral", - "profusesupport.com": "Leven Labs, Inc. DBA Admiral", - "promiseair.com": "Leven Labs, Inc. DBA Admiral", - "proofconvert.com": "Leven Labs, Inc. DBA Admiral", - "propertypotato.com": "Leven Labs, Inc. DBA Admiral", - "protestcopy.com": "Leven Labs, Inc. DBA Admiral", - "psychedelicarithmetic.com": "Leven Labs, Inc. DBA Admiral", - "psychedelicchess.com": "Leven Labs, Inc. DBA Admiral", - "publicsofa.com": "Leven Labs, Inc. DBA Admiral", - "puffyloss.com": "Leven Labs, Inc. DBA Admiral", - "puffypaste.com": "Leven Labs, Inc. DBA Admiral", - "puffypull.com": "Leven Labs, Inc. DBA Admiral", - "puffypurpose.com": "Leven Labs, Inc. DBA Admiral", - "pulsatingmeadow.com": "Leven Labs, Inc. DBA Admiral", - "pumpedpancake.com": "Leven Labs, Inc. DBA Admiral", - "pumpedpurpose.com": "Leven Labs, Inc. DBA Admiral", - "punyplant.com": "Leven Labs, Inc. DBA Admiral", - "puppytooth.com": "Leven Labs, Inc. DBA Admiral", - "purposepipe.com": "Leven Labs, Inc. DBA Admiral", - "quacksquirrel.com": "Leven Labs, Inc. DBA Admiral", - "quaintcan.com": "Leven Labs, Inc. DBA Admiral", - "quaintlake.com": "Leven Labs, Inc. DBA Admiral", - "quantumlagoon.com": "Leven Labs, Inc. DBA Admiral", - "quantumshine.com": "Leven Labs, Inc. DBA Admiral", - "queenskart.com": "Leven Labs, Inc. DBA Admiral", - "quietknowledge.com": "Leven Labs, Inc. DBA Admiral", - "quillkick.com": "Leven Labs, Inc. DBA Admiral", - "quirkybliss.com": "Leven Labs, Inc. DBA Admiral", - "quirkysugar.com": "Leven Labs, Inc. DBA Admiral", - "quixoticnebula.com": "Leven Labs, Inc. DBA Admiral", - "quizzicalpartner.com": "Leven Labs, Inc. DBA Admiral", - "quizzicalzephyr.com": "Leven Labs, Inc. DBA Admiral", - "rabbitbreath.com": "Leven Labs, Inc. DBA Admiral", - "rabbitrifle.com": "Leven Labs, Inc. DBA Admiral", - "radiantcanopy.com": "Leven Labs, Inc. DBA Admiral", - "radiantlullaby.com": "Leven Labs, Inc. DBA Admiral", - "radiateprose.com": "Leven Labs, Inc. DBA Admiral", - "railwaygiraffe.com": "Leven Labs, Inc. DBA Admiral", - "railwayreason.com": "Leven Labs, Inc. DBA Admiral", - "raintwig.com": "Leven Labs, Inc. DBA Admiral", - "rainyhand.com": "Leven Labs, Inc. DBA Admiral", - "rainyrule.com": "Leven Labs, Inc. DBA Admiral", - "rambunctiousflock.com": "Leven Labs, Inc. DBA Admiral", - "rangecake.com": "Leven Labs, Inc. DBA Admiral", - "rangeplayground.com": "Leven Labs, Inc. DBA Admiral", - "raresummer.com": "Leven Labs, Inc. DBA Admiral", - "reactjspdf.com": "Leven Labs, Inc. DBA Admiral", - "readingguilt.com": "Leven Labs, Inc. DBA Admiral", - "readymoon.com": "Leven Labs, Inc. DBA Admiral", - "readysnails.com": "Leven Labs, Inc. DBA Admiral", - "realizedoor.com": "Leven Labs, Inc. DBA Admiral", - "realizerecess.com": "Leven Labs, Inc. DBA Admiral", - "rebelclover.com": "Leven Labs, Inc. DBA Admiral", - "rebelhen.com": "Leven Labs, Inc. DBA Admiral", - "rebelsubway.com": "Leven Labs, Inc. DBA Admiral", - "rebelswing.com": "Leven Labs, Inc. DBA Admiral", - "receiptcent.com": "Leven Labs, Inc. DBA Admiral", - "receptiveink.com": "Leven Labs, Inc. DBA Admiral", - "receptivereaction.com": "Leven Labs, Inc. DBA Admiral", - "recessrain.com": "Leven Labs, Inc. DBA Admiral", - "reconditeprison.com": "Leven Labs, Inc. DBA Admiral", - "reconditerake.com": "Leven Labs, Inc. DBA Admiral", - "reconditerespect.com": "Leven Labs, Inc. DBA Admiral", - "reflectivestatement.com": "Leven Labs, Inc. DBA Admiral", - "refundradar.com": "Leven Labs, Inc. DBA Admiral", - "regularplants.com": "Leven Labs, Inc. DBA Admiral", - "regulatesleet.com": "Leven Labs, Inc. DBA Admiral", - "rehabilitatereason.com": "Leven Labs, Inc. DBA Admiral", - "relationrest.com": "Leven Labs, Inc. DBA Admiral", - "releasepath.com": "Leven Labs, Inc. DBA Admiral", - "reloadphoto.com": "Leven Labs, Inc. DBA Admiral", - "rememberdiscussion.com": "Leven Labs, Inc. DBA Admiral", - "rentinfinity.com": "Leven Labs, Inc. DBA Admiral", - "repeatsweater.com": "Leven Labs, Inc. DBA Admiral", - "replaceroute.com": "Leven Labs, Inc. DBA Admiral", - "resonantbrush.com": "Leven Labs, Inc. DBA Admiral", - "resonantrock.com": "Leven Labs, Inc. DBA Admiral", - "respectrain.com": "Leven Labs, Inc. DBA Admiral", - "resplendentecho.com": "Leven Labs, Inc. DBA Admiral", - "restrainstorm.com": "Leven Labs, Inc. DBA Admiral", - "restructureinvention.com": "Leven Labs, Inc. DBA Admiral", - "retrievemint.com": "Leven Labs, Inc. DBA Admiral", - "rhetoricalactivity.com": "Leven Labs, Inc. DBA Admiral", - "rhetoricalloss.com": "Leven Labs, Inc. DBA Admiral", - "rhetoricalveil.com": "Leven Labs, Inc. DBA Admiral", - "rhymezebra.com": "Leven Labs, Inc. DBA Admiral", - "rhythmrule.com": "Leven Labs, Inc. DBA Admiral", - "richstring.com": "Leven Labs, Inc. DBA Admiral", - "righteouscrayon.com": "Leven Labs, Inc. DBA Admiral", - "rightfulfall.com": "Leven Labs, Inc. DBA Admiral", - "rigidrobin.com": "Leven Labs, Inc. DBA Admiral", - "rigidveil.com": "Leven Labs, Inc. DBA Admiral", - "rigorlab.com": "Leven Labs, Inc. DBA Admiral", - "ringplant.com": "Leven Labs, Inc. DBA Admiral", - "ringsrecord.com": "Leven Labs, Inc. DBA Admiral", - "ritzykey.com": "Leven Labs, Inc. DBA Admiral", - "ritzyrepresentative.com": "Leven Labs, Inc. DBA Admiral", - "ritzyveil.com": "Leven Labs, Inc. DBA Admiral", - "rockpebbles.com": "Leven Labs, Inc. DBA Admiral", - "rollconnection.com": "Leven Labs, Inc. DBA Admiral", - "roofrelation.com": "Leven Labs, Inc. DBA Admiral", - "roseincome.com": "Leven Labs, Inc. DBA Admiral", - "rottenray.com": "Leven Labs, Inc. DBA Admiral", - "ruralrobin.com": "Leven Labs, Inc. DBA Admiral", - "rusticprice.com": "Leven Labs, Inc. DBA Admiral", - "ruthlessdegree.com": "Leven Labs, Inc. DBA Admiral", - "ruthlessmilk.com": "Leven Labs, Inc. DBA Admiral", - "sableloss.com": "Leven Labs, Inc. DBA Admiral", - "sablesmile.com": "Leven Labs, Inc. DBA Admiral", - "sablesong.com": "Leven Labs, Inc. DBA Admiral", - "sadloaf.com": "Leven Labs, Inc. DBA Admiral", - "saffronrefuge.com": "Leven Labs, Inc. DBA Admiral", - "sagargift.com": "Leven Labs, Inc. DBA Admiral", - "saltsacademy.com": "Leven Labs, Inc. DBA Admiral", - "samesticks.com": "Leven Labs, Inc. DBA Admiral", - "samestretch.com": "Leven Labs, Inc. DBA Admiral", - "samplesamba.com": "Leven Labs, Inc. DBA Admiral", - "sandstrophies.com": "Leven Labs, Inc. DBA Admiral", - "satisfycork.com": "Leven Labs, Inc. DBA Admiral", - "savoryorange.com": "Leven Labs, Inc. DBA Admiral", - "scarcecard.com": "Leven Labs, Inc. DBA Admiral", - "scarceshock.com": "Leven Labs, Inc. DBA Admiral", - "scarcesign.com": "Leven Labs, Inc. DBA Admiral", - "scarcestructure.com": "Leven Labs, Inc. DBA Admiral", - "scarcesurprise.com": "Leven Labs, Inc. DBA Admiral", - "scaredcomfort.com": "Leven Labs, Inc. DBA Admiral", - "scaredsidewalk.com": "Leven Labs, Inc. DBA Admiral", - "scaredslip.com": "Leven Labs, Inc. DBA Admiral", - "scaredsnake.com": "Leven Labs, Inc. DBA Admiral", - "scaredsnakes.com": "Leven Labs, Inc. DBA Admiral", - "scaredsong.com": "Leven Labs, Inc. DBA Admiral", - "scaredstomach.com": "Leven Labs, Inc. DBA Admiral", - "scaredswing.com": "Leven Labs, Inc. DBA Admiral", - "scarefowl.com": "Leven Labs, Inc. DBA Admiral", - "scarfsmash.com": "Leven Labs, Inc. DBA Admiral", - "scatteredheat.com": "Leven Labs, Inc. DBA Admiral", - "scatteredquiver.com": "Leven Labs, Inc. DBA Admiral", - "scatteredstream.com": "Leven Labs, Inc. DBA Admiral", - "scenicapparel.com": "Leven Labs, Inc. DBA Admiral", - "scenicdrops.com": "Leven Labs, Inc. DBA Admiral", - "scientificshirt.com": "Leven Labs, Inc. DBA Admiral", - "scintillatingscissors.com": "Leven Labs, Inc. DBA Admiral", - "scintillatingsilver.com": "Leven Labs, Inc. DBA Admiral", - "scissorsstatement.com": "Leven Labs, Inc. DBA Admiral", - "scrapesleep.com": "Leven Labs, Inc. DBA Admiral", - "scratchsofa.com": "Leven Labs, Inc. DBA Admiral", - "screechingfurniture.com": "Leven Labs, Inc. DBA Admiral", - "screechingstocking.com": "Leven Labs, Inc. DBA Admiral", - "screechingstove.com": "Leven Labs, Inc. DBA Admiral", - "scribbleson.com": "Leven Labs, Inc. DBA Admiral", - "scribblestring.com": "Leven Labs, Inc. DBA Admiral", - "scrollservice.com": "Leven Labs, Inc. DBA Admiral", - "scrubswim.com": "Leven Labs, Inc. DBA Admiral", - "seashoresociety.com": "Leven Labs, Inc. DBA Admiral", - "seatsmoke.com": "Leven Labs, Inc. DBA Admiral", - "secondhandfall.com": "Leven Labs, Inc. DBA Admiral", - "secretivesheep.com": "Leven Labs, Inc. DBA Admiral", - "secretspiders.com": "Leven Labs, Inc. DBA Admiral", - "secretturtle.com": "Leven Labs, Inc. DBA Admiral", - "seedscissors.com": "Leven Labs, Inc. DBA Admiral", - "seemlysuggestion.com": "Leven Labs, Inc. DBA Admiral", - "selectivesummer.com": "Leven Labs, Inc. DBA Admiral", - "selfishsea.com": "Leven Labs, Inc. DBA Admiral", - "selfishsnake.com": "Leven Labs, Inc. DBA Admiral", - "sendingspire.com": "Leven Labs, Inc. DBA Admiral", - "sensorsmile.com": "Leven Labs, Inc. DBA Admiral", - "separatesort.com": "Leven Labs, Inc. DBA Admiral", - "seraphichorizon.com": "Leven Labs, Inc. DBA Admiral", - "seraphicjubilee.com": "Leven Labs, Inc. DBA Admiral", - "serendipityecho.com": "Leven Labs, Inc. DBA Admiral", - "serenecascade.com": "Leven Labs, Inc. DBA Admiral", - "serenepebble.com": "Leven Labs, Inc. DBA Admiral", - "serenesurf.com": "Leven Labs, Inc. DBA Admiral", - "serioussuit.com": "Leven Labs, Inc. DBA Admiral", - "serpentshampoo.com": "Leven Labs, Inc. DBA Admiral", - "settleshoes.com": "Leven Labs, Inc. DBA Admiral", - "shadeship.com": "Leven Labs, Inc. DBA Admiral", - "shaggytank.com": "Leven Labs, Inc. DBA Admiral", - "shakegoldfish.com": "Leven Labs, Inc. DBA Admiral", - "shakyseat.com": "Leven Labs, Inc. DBA Admiral", - "shakysurprise.com": "Leven Labs, Inc. DBA Admiral", - "shakytaste.com": "Leven Labs, Inc. DBA Admiral", - "shallowblade.com": "Leven Labs, Inc. DBA Admiral", - "shamerain.com": "Leven Labs, Inc. DBA Admiral", - "shapecomb.com": "Leven Labs, Inc. DBA Admiral", - "sharkskids.com": "Leven Labs, Inc. DBA Admiral", - "sheargovernor.com": "Leven Labs, Inc. DBA Admiral", - "shesubscriptions.com": "Leven Labs, Inc. DBA Admiral", - "shinypond.com": "Leven Labs, Inc. DBA Admiral", - "shirtsidewalk.com": "Leven Labs, Inc. DBA Admiral", - "shiveringspot.com": "Leven Labs, Inc. DBA Admiral", - "shiverscissors.com": "Leven Labs, Inc. DBA Admiral", - "shockinggrass.com": "Leven Labs, Inc. DBA Admiral", - "shockingship.com": "Leven Labs, Inc. DBA Admiral", - "shredquiz.com": "Leven Labs, Inc. DBA Admiral", - "shrillspoon.com": "Leven Labs, Inc. DBA Admiral", - "shydinosaurs.com": "Leven Labs, Inc. DBA Admiral", - "sicksmash.com": "Leven Labs, Inc. DBA Admiral", - "sierrakermit.com": "Leven Labs, Inc. DBA Admiral", - "signaturepod.com": "Leven Labs, Inc. DBA Admiral", - "siliconslow.com": "Leven Labs, Inc. DBA Admiral", - "sillyscrew.com": "Leven Labs, Inc. DBA Admiral", - "simplesidewalk.com": "Leven Labs, Inc. DBA Admiral", - "simulateswing.com": "Leven Labs, Inc. DBA Admiral", - "sincerebuffalo.com": "Leven Labs, Inc. DBA Admiral", - "sincerepelican.com": "Leven Labs, Inc. DBA Admiral", - "sinceresubstance.com": "Leven Labs, Inc. DBA Admiral", - "singroot.com": "Leven Labs, Inc. DBA Admiral", - "sinkbooks.com": "Leven Labs, Inc. DBA Admiral", - "sixauthority.com": "Leven Labs, Inc. DBA Admiral", - "sixscissors.com": "Leven Labs, Inc. DBA Admiral", - "sizzlingsmoke.com": "Leven Labs, Inc. DBA Admiral", - "skillfuldrop.com": "Leven Labs, Inc. DBA Admiral", - "skisofa.com": "Leven Labs, Inc. DBA Admiral", - "slaysweater.com": "Leven Labs, Inc. DBA Admiral", - "slimyscarf.com": "Leven Labs, Inc. DBA Admiral", - "slinksuggestion.com": "Leven Labs, Inc. DBA Admiral", - "slopesoap.com": "Leven Labs, Inc. DBA Admiral", - "smallershops.com": "Leven Labs, Inc. DBA Admiral", - "smashquartz.com": "Leven Labs, Inc. DBA Admiral", - "smashshoe.com": "Leven Labs, Inc. DBA Admiral", - "smashsurprise.com": "Leven Labs, Inc. DBA Admiral", - "smilewound.com": "Leven Labs, Inc. DBA Admiral", - "smilingcattle.com": "Leven Labs, Inc. DBA Admiral", - "smilingswim.com": "Leven Labs, Inc. DBA Admiral", - "smilingwaves.com": "Leven Labs, Inc. DBA Admiral", - "smoggysnakes.com": "Leven Labs, Inc. DBA Admiral", - "smoggysongs.com": "Leven Labs, Inc. DBA Admiral", - "smoggystation.com": "Leven Labs, Inc. DBA Admiral", - "snacktoken.com": "Leven Labs, Inc. DBA Admiral", - "snakemineral.com": "Leven Labs, Inc. DBA Admiral", - "snakeslang.com": "Leven Labs, Inc. DBA Admiral", - "sneakwind.com": "Leven Labs, Inc. DBA Admiral", - "sneakystew.com": "Leven Labs, Inc. DBA Admiral", - "snoresmile.com": "Leven Labs, Inc. DBA Admiral", - "snowmentor.com": "Leven Labs, Inc. DBA Admiral", - "soggysponge.com": "Leven Labs, Inc. DBA Admiral", - "soggyzoo.com": "Leven Labs, Inc. DBA Admiral", - "solarislabyrinth.com": "Leven Labs, Inc. DBA Admiral", - "somberscarecrow.com": "Leven Labs, Inc. DBA Admiral", - "sombersea.com": "Leven Labs, Inc. DBA Admiral", - "sombersquirrel.com": "Leven Labs, Inc. DBA Admiral", - "sombersticks.com": "Leven Labs, Inc. DBA Admiral", - "sombersurprise.com": "Leven Labs, Inc. DBA Admiral", - "songsterritory.com": "Leven Labs, Inc. DBA Admiral", - "soothingglade.com": "Leven Labs, Inc. DBA Admiral", - "sophisticatedstove.com": "Leven Labs, Inc. DBA Admiral", - "sordidsmile.com": "Leven Labs, Inc. DBA Admiral", - "soresidewalk.com": "Leven Labs, Inc. DBA Admiral", - "soresneeze.com": "Leven Labs, Inc. DBA Admiral", - "sorethunder.com": "Leven Labs, Inc. DBA Admiral", - "soretrain.com": "Leven Labs, Inc. DBA Admiral", - "sortsail.com": "Leven Labs, Inc. DBA Admiral", - "sortsummer.com": "Leven Labs, Inc. DBA Admiral", - "soundstocking.com": "Leven Labs, Inc. DBA Admiral", - "sowlettuce.com": "Leven Labs, Inc. DBA Admiral", - "spadelocket.com": "Leven Labs, Inc. DBA Admiral", - "sparkgoal.com": "Leven Labs, Inc. DBA Admiral", - "sparklingshelf.com": "Leven Labs, Inc. DBA Admiral", - "specialscissors.com": "Leven Labs, Inc. DBA Admiral", - "spectacularstamp.com": "Leven Labs, Inc. DBA Admiral", - "spellmist.com": "Leven Labs, Inc. DBA Admiral", - "spellsalsa.com": "Leven Labs, Inc. DBA Admiral", - "spiffymachine.com": "Leven Labs, Inc. DBA Admiral", - "spirebaboon.com": "Leven Labs, Inc. DBA Admiral", - "spookyexchange.com": "Leven Labs, Inc. DBA Admiral", - "spookyskate.com": "Leven Labs, Inc. DBA Admiral", - "spookysleet.com": "Leven Labs, Inc. DBA Admiral", - "spookystitch.com": "Leven Labs, Inc. DBA Admiral", - "spoonsilk.com": "Leven Labs, Inc. DBA Admiral", - "spotlessstamp.com": "Leven Labs, Inc. DBA Admiral", - "spottednoise.com": "Leven Labs, Inc. DBA Admiral", - "springolive.com": "Leven Labs, Inc. DBA Admiral", - "springsister.com": "Leven Labs, Inc. DBA Admiral", - "springsnails.com": "Leven Labs, Inc. DBA Admiral", - "sproutingbag.com": "Leven Labs, Inc. DBA Admiral", - "sprydelta.com": "Leven Labs, Inc. DBA Admiral", - "sprysummit.com": "Leven Labs, Inc. DBA Admiral", - "spuriousair.com": "Leven Labs, Inc. DBA Admiral", - "spuriousbase.com": "Leven Labs, Inc. DBA Admiral", - "spurioussquirrel.com": "Leven Labs, Inc. DBA Admiral", - "spuriousstranger.com": "Leven Labs, Inc. DBA Admiral", - "spysubstance.com": "Leven Labs, Inc. DBA Admiral", - "squalidscrew.com": "Leven Labs, Inc. DBA Admiral", - "squeakzinc.com": "Leven Labs, Inc. DBA Admiral", - "squealingturn.com": "Leven Labs, Inc. DBA Admiral", - "stakingbasket.com": "Leven Labs, Inc. DBA Admiral", - "stakingshock.com": "Leven Labs, Inc. DBA Admiral", - "stakingsmile.com": "Leven Labs, Inc. DBA Admiral", - "staleshow.com": "Leven Labs, Inc. DBA Admiral", - "stalesummer.com": "Leven Labs, Inc. DBA Admiral", - "starkscale.com": "Leven Labs, Inc. DBA Admiral", - "startingcars.com": "Leven Labs, Inc. DBA Admiral", - "statshunt.com": "Leven Labs, Inc. DBA Admiral", - "statuesqueship.com": "Leven Labs, Inc. DBA Admiral", - "stayaction.com": "Leven Labs, Inc. DBA Admiral", - "steadfastseat.com": "Leven Labs, Inc. DBA Admiral", - "steadfastsound.com": "Leven Labs, Inc. DBA Admiral", - "steadfastsystem.com": "Leven Labs, Inc. DBA Admiral", - "steadycopper.com": "Leven Labs, Inc. DBA Admiral", - "stealsteel.com": "Leven Labs, Inc. DBA Admiral", - "steepscale.com": "Leven Labs, Inc. DBA Admiral", - "steepsister.com": "Leven Labs, Inc. DBA Admiral", - "steepsquirrel.com": "Leven Labs, Inc. DBA Admiral", - "stepcattle.com": "Leven Labs, Inc. DBA Admiral", - "stepplane.com": "Leven Labs, Inc. DBA Admiral", - "stepwisevideo.com": "Leven Labs, Inc. DBA Admiral", - "stereoproxy.com": "Leven Labs, Inc. DBA Admiral", - "stereotypedsugar.com": "Leven Labs, Inc. DBA Admiral", - "stewspiders.com": "Leven Labs, Inc. DBA Admiral", - "stiffgame.com": "Leven Labs, Inc. DBA Admiral", - "stiffstem.com": "Leven Labs, Inc. DBA Admiral", - "stimulatingsneeze.com": "Leven Labs, Inc. DBA Admiral", - "stingsquirrel.com": "Leven Labs, Inc. DBA Admiral", - "stingycrush.com": "Leven Labs, Inc. DBA Admiral", - "stingyshoe.com": "Leven Labs, Inc. DBA Admiral", - "stingyspoon.com": "Leven Labs, Inc. DBA Admiral", - "stockingsleet.com": "Leven Labs, Inc. DBA Admiral", - "stockingsneeze.com": "Leven Labs, Inc. DBA Admiral", - "stomachscience.com": "Leven Labs, Inc. DBA Admiral", - "stonechin.com": "Leven Labs, Inc. DBA Admiral", - "stopstomach.com": "Leven Labs, Inc. DBA Admiral", - "stormyachiever.com": "Leven Labs, Inc. DBA Admiral", - "stormyfold.com": "Leven Labs, Inc. DBA Admiral", - "straightnest.com": "Leven Labs, Inc. DBA Admiral", - "strangeclocks.com": "Leven Labs, Inc. DBA Admiral", - "strangersponge.com": "Leven Labs, Inc. DBA Admiral", - "strangesink.com": "Leven Labs, Inc. DBA Admiral", - "streetsort.com": "Leven Labs, Inc. DBA Admiral", - "stretchsister.com": "Leven Labs, Inc. DBA Admiral", - "stretchsneeze.com": "Leven Labs, Inc. DBA Admiral", - "stretchsquirrel.com": "Leven Labs, Inc. DBA Admiral", - "stripedbat.com": "Leven Labs, Inc. DBA Admiral", - "strivesidewalk.com": "Leven Labs, Inc. DBA Admiral", - "strivesquirrel.com": "Leven Labs, Inc. DBA Admiral", - "strokesystem.com": "Leven Labs, Inc. DBA Admiral", - "stupendoussleet.com": "Leven Labs, Inc. DBA Admiral", - "stupendoussnow.com": "Leven Labs, Inc. DBA Admiral", - "stupidscene.com": "Leven Labs, Inc. DBA Admiral", - "sturdysnail.com": "Leven Labs, Inc. DBA Admiral", - "subletyoke.com": "Leven Labs, Inc. DBA Admiral", - "sublimequartz.com": "Leven Labs, Inc. DBA Admiral", - "subsequentswim.com": "Leven Labs, Inc. DBA Admiral", - "substantialcarpenter.com": "Leven Labs, Inc. DBA Admiral", - "substantialgrade.com": "Leven Labs, Inc. DBA Admiral", - "succeedscene.com": "Leven Labs, Inc. DBA Admiral", - "successfulscent.com": "Leven Labs, Inc. DBA Admiral", - "suddensoda.com": "Leven Labs, Inc. DBA Admiral", - "sugarfriction.com": "Leven Labs, Inc. DBA Admiral", - "suggestionbridge.com": "Leven Labs, Inc. DBA Admiral", - "sulkycook.com": "Leven Labs, Inc. DBA Admiral", - "summerobject.com": "Leven Labs, Inc. DBA Admiral", - "sunshinegates.com": "Leven Labs, Inc. DBA Admiral", - "superchichair.com": "Leven Labs, Inc. DBA Admiral", - "superficialeyes.com": "Leven Labs, Inc. DBA Admiral", - "superficialspring.com": "Leven Labs, Inc. DBA Admiral", - "superficialsquare.com": "Leven Labs, Inc. DBA Admiral", - "superviseshoes.com": "Leven Labs, Inc. DBA Admiral", - "supportwaves.com": "Leven Labs, Inc. DBA Admiral", - "suspectmark.com": "Leven Labs, Inc. DBA Admiral", - "swankysquare.com": "Leven Labs, Inc. DBA Admiral", - "swellstocking.com": "Leven Labs, Inc. DBA Admiral", - "swelteringsleep.com": "Leven Labs, Inc. DBA Admiral", - "swingslip.com": "Leven Labs, Inc. DBA Admiral", - "swordgoose.com": "Leven Labs, Inc. DBA Admiral", - "syllablesight.com": "Leven Labs, Inc. DBA Admiral", - "synonymousrule.com": "Leven Labs, Inc. DBA Admiral", - "synonymoussticks.com": "Leven Labs, Inc. DBA Admiral", - "synthesizescarecrow.com": "Leven Labs, Inc. DBA Admiral", - "tackytrains.com": "Leven Labs, Inc. DBA Admiral", - "tacojournal.com": "Leven Labs, Inc. DBA Admiral", - "talltouch.com": "Leven Labs, Inc. DBA Admiral", - "tangibleteam.com": "Leven Labs, Inc. DBA Admiral", - "tangyamount.com": "Leven Labs, Inc. DBA Admiral", - "tangycover.com": "Leven Labs, Inc. DBA Admiral", - "tastelesstrees.com": "Leven Labs, Inc. DBA Admiral", - "tastesnake.com": "Leven Labs, Inc. DBA Admiral", - "tawdryson.com": "Leven Labs, Inc. DBA Admiral", - "tdzvm.pw": "Leven Labs, Inc. DBA Admiral", - "teacupbooks.com": "Leven Labs, Inc. DBA Admiral", - "tearfulglass.com": "Leven Labs, Inc. DBA Admiral", - "techconverter.com": "Leven Labs, Inc. DBA Admiral", - "tediousbear.com": "Leven Labs, Inc. DBA Admiral", - "tediousticket.com": "Leven Labs, Inc. DBA Admiral", - "tedioustooth.com": "Leven Labs, Inc. DBA Admiral", - "teenytinycellar.com": "Leven Labs, Inc. DBA Admiral", - "teenytinyshirt.com": "Leven Labs, Inc. DBA Admiral", - "teenytinytongue.com": "Leven Labs, Inc. DBA Admiral", - "telephoneapparatus.com": "Leven Labs, Inc. DBA Admiral", - "tempertrick.com": "Leven Labs, Inc. DBA Admiral", - "tempttalk.com": "Leven Labs, Inc. DBA Admiral", - "temptteam.com": "Leven Labs, Inc. DBA Admiral", - "tendertest.com": "Leven Labs, Inc. DBA Admiral", - "terriblethumb.com": "Leven Labs, Inc. DBA Admiral", - "terrifictooth.com": "Leven Labs, Inc. DBA Admiral", - "testadmiral.com": "Leven Labs, Inc. DBA Admiral", - "texturetrick.com": "Leven Labs, Inc. DBA Admiral", - "therapeuticcars.com": "Leven Labs, Inc. DBA Admiral", - "thickticket.com": "Leven Labs, Inc. DBA Admiral", - "thicktrucks.com": "Leven Labs, Inc. DBA Admiral", - "thingsafterthought.com": "Leven Labs, Inc. DBA Admiral", - "thingstaste.com": "Leven Labs, Inc. DBA Admiral", - "thinkitten.com": "Leven Labs, Inc. DBA Admiral", - "thinkitwice.com": "Leven Labs, Inc. DBA Admiral", - "thirdrespect.com": "Leven Labs, Inc. DBA Admiral", - "thirstytwig.com": "Leven Labs, Inc. DBA Admiral", - "thomastorch.com": "Leven Labs, Inc. DBA Admiral", - "thoughtlessknot.com": "Leven Labs, Inc. DBA Admiral", - "threetruck.com": "Leven Labs, Inc. DBA Admiral", - "thrivingmarketplace.com": "Leven Labs, Inc. DBA Admiral", - "ticketaunt.com": "Leven Labs, Inc. DBA Admiral", - "ticklesign.com": "Leven Labs, Inc. DBA Admiral", - "tidymitten.com": "Leven Labs, Inc. DBA Admiral", - "tightpowder.com": "Leven Labs, Inc. DBA Admiral", - "tinyswans.com": "Leven Labs, Inc. DBA Admiral", - "tinytendency.com": "Leven Labs, Inc. DBA Admiral", - "tiredthroat.com": "Leven Labs, Inc. DBA Admiral", - "tiresomethunder.com": "Leven Labs, Inc. DBA Admiral", - "toolcapital.com": "Leven Labs, Inc. DBA Admiral", - "toomanyalts.com": "Leven Labs, Inc. DBA Admiral", - "torpidtongue.com": "Leven Labs, Inc. DBA Admiral", - "trackcaddie.com": "Leven Labs, Inc. DBA Admiral", - "tradetooth.com": "Leven Labs, Inc. DBA Admiral", - "trafficviews.com": "Leven Labs, Inc. DBA Admiral", - "tranquilamulet.com": "Leven Labs, Inc. DBA Admiral", - "tranquilarchipelago.com": "Leven Labs, Inc. DBA Admiral", - "tranquilcan.com": "Leven Labs, Inc. DBA Admiral", - "tranquilplume.com": "Leven Labs, Inc. DBA Admiral", - "tranquilside.com": "Leven Labs, Inc. DBA Admiral", - "tranquilveil.com": "Leven Labs, Inc. DBA Admiral", - "tranquilveranda.com": "Leven Labs, Inc. DBA Admiral", - "trappush.com": "Leven Labs, Inc. DBA Admiral", - "treadbun.com": "Leven Labs, Inc. DBA Admiral", - "tremendousearthquake.com": "Leven Labs, Inc. DBA Admiral", - "tremendousplastic.com": "Leven Labs, Inc. DBA Admiral", - "tremendoustime.com": "Leven Labs, Inc. DBA Admiral", - "tritebadge.com": "Leven Labs, Inc. DBA Admiral", - "tritethunder.com": "Leven Labs, Inc. DBA Admiral", - "tritetongue.com": "Leven Labs, Inc. DBA Admiral", - "troubledtail.com": "Leven Labs, Inc. DBA Admiral", - "troubleshade.com": "Leven Labs, Inc. DBA Admiral", - "truckstomatoes.com": "Leven Labs, Inc. DBA Admiral", - "truculentrate.com": "Leven Labs, Inc. DBA Admiral", - "tumbleicicle.com": "Leven Labs, Inc. DBA Admiral", - "tuneupcoffee.com": "Leven Labs, Inc. DBA Admiral", - "twistloss.com": "Leven Labs, Inc. DBA Admiral", - "twistsweater.com": "Leven Labs, Inc. DBA Admiral", - "typicalairplane.com": "Leven Labs, Inc. DBA Admiral", - "typicalteeth.com": "Leven Labs, Inc. DBA Admiral", - "tzwaw.pw": "Leven Labs, Inc. DBA Admiral", - "ubiquitoussea.com": "Leven Labs, Inc. DBA Admiral", - "ubiquitousyard.com": "Leven Labs, Inc. DBA Admiral", - "ultraoranges.com": "Leven Labs, Inc. DBA Admiral", - "ultravalid.com": "Leven Labs, Inc. DBA Admiral", - "unablehope.com": "Leven Labs, Inc. DBA Admiral", - "unaccountablecreator.com": "Leven Labs, Inc. DBA Admiral", - "unaccountablepie.com": "Leven Labs, Inc. DBA Admiral", - "unarmedindustry.com": "Leven Labs, Inc. DBA Admiral", - "unbecominghall.com": "Leven Labs, Inc. DBA Admiral", - "unbecominglamp.com": "Leven Labs, Inc. DBA Admiral", - "uncoveredexpert.com": "Leven Labs, Inc. DBA Admiral", - "understoodocean.com": "Leven Labs, Inc. DBA Admiral", - "unequalbrake.com": "Leven Labs, Inc. DBA Admiral", - "unequaltrail.com": "Leven Labs, Inc. DBA Admiral", - "uninterestedquarter.com": "Leven Labs, Inc. DBA Admiral", - "unknowncontrol.com": "Leven Labs, Inc. DBA Admiral", - "unknowncrate.com": "Leven Labs, Inc. DBA Admiral", - "unknowntray.com": "Leven Labs, Inc. DBA Admiral", - "untidyquestion.com": "Leven Labs, Inc. DBA Admiral", - "untidyrice.com": "Leven Labs, Inc. DBA Admiral", - "unusedstone.com": "Leven Labs, Inc. DBA Admiral", - "unusualtitle.com": "Leven Labs, Inc. DBA Admiral", - "unwieldyhealth.com": "Leven Labs, Inc. DBA Admiral", - "unwieldyimpulse.com": "Leven Labs, Inc. DBA Admiral", - "unwieldyplastic.com": "Leven Labs, Inc. DBA Admiral", - "uppitytime.com": "Leven Labs, Inc. DBA Admiral", - "uselesslumber.com": "Leven Labs, Inc. DBA Admiral", - "validmemo.com": "Leven Labs, Inc. DBA Admiral", - "vanfireworks.com": "Leven Labs, Inc. DBA Admiral", - "vanishmemory.com": "Leven Labs, Inc. DBA Admiral", - "velvetnova.com": "Leven Labs, Inc. DBA Admiral", - "velvetquasar.com": "Leven Labs, Inc. DBA Admiral", - "vengefulgrass.com": "Leven Labs, Inc. DBA Admiral", - "venomousvessel.com": "Leven Labs, Inc. DBA Admiral", - "venusgloria.com": "Leven Labs, Inc. DBA Admiral", - "verdantanswer.com": "Leven Labs, Inc. DBA Admiral", - "verdantlabyrinth.com": "Leven Labs, Inc. DBA Admiral", - "verdantloom.com": "Leven Labs, Inc. DBA Admiral", - "verdantsculpture.com": "Leven Labs, Inc. DBA Admiral", - "verseballs.com": "Leven Labs, Inc. DBA Admiral", - "vibrantcelebration.com": "Leven Labs, Inc. DBA Admiral", - "vibrantgale.com": "Leven Labs, Inc. DBA Admiral", - "vibranthaven.com": "Leven Labs, Inc. DBA Admiral", - "vibrantpact.com": "Leven Labs, Inc. DBA Admiral", - "vibrantsundown.com": "Leven Labs, Inc. DBA Admiral", - "vibranttalisman.com": "Leven Labs, Inc. DBA Admiral", - "vibrantvale.com": "Leven Labs, Inc. DBA Admiral", - "victoriousrequest.com": "Leven Labs, Inc. DBA Admiral", - "virtualvincent.com": "Leven Labs, Inc. DBA Admiral", - "vividcanopy.com": "Leven Labs, Inc. DBA Admiral", - "vividfrost.com": "Leven Labs, Inc. DBA Admiral", - "vividmeadow.com": "Leven Labs, Inc. DBA Admiral", - "vividplume.com": "Leven Labs, Inc. DBA Admiral", - "voicelessvein.com": "Leven Labs, Inc. DBA Admiral", - "voidgoo.com": "Leven Labs, Inc. DBA Admiral", - "volatileprofit.com": "Leven Labs, Inc. DBA Admiral", - "volatilevessel.com": "Leven Labs, Inc. DBA Admiral", - "voraciousgrip.com": "Leven Labs, Inc. DBA Admiral", - "vq1qi.pw": "Leven Labs, Inc. DBA Admiral", - "waitingnumber.com": "Leven Labs, Inc. DBA Admiral", - "wantingwindow.com": "Leven Labs, Inc. DBA Admiral", - "warmafterthought.com": "Leven Labs, Inc. DBA Admiral", - "warmquiver.com": "Leven Labs, Inc. DBA Admiral", - "warnwing.com": "Leven Labs, Inc. DBA Admiral", - "washbanana.com": "Leven Labs, Inc. DBA Admiral", - "wateryvan.com": "Leven Labs, Inc. DBA Admiral", - "waterywave.com": "Leven Labs, Inc. DBA Admiral", - "waterywrist.com": "Leven Labs, Inc. DBA Admiral", - "wearbasin.com": "Leven Labs, Inc. DBA Admiral", - "websitesdude.com": "Leven Labs, Inc. DBA Admiral", - "wellgroomedapparel.com": "Leven Labs, Inc. DBA Admiral", - "wellgroomedhydrant.com": "Leven Labs, Inc. DBA Admiral", - "wellmadefrog.com": "Leven Labs, Inc. DBA Admiral", - "westpalmweb.com": "Leven Labs, Inc. DBA Admiral", - "whimsicalcanyon.com": "Leven Labs, Inc. DBA Admiral", - "whimsicalgrove.com": "Leven Labs, Inc. DBA Admiral", - "whineattempt.com": "Leven Labs, Inc. DBA Admiral", - "whirlwealth.com": "Leven Labs, Inc. DBA Admiral", - "whiskyqueue.com": "Leven Labs, Inc. DBA Admiral", - "whisperingcascade.com": "Leven Labs, Inc. DBA Admiral", - "whisperingcrib.com": "Leven Labs, Inc. DBA Admiral", - "whisperingquasar.com": "Leven Labs, Inc. DBA Admiral", - "whisperingsummit.com": "Leven Labs, Inc. DBA Admiral", - "whispermeeting.com": "Leven Labs, Inc. DBA Admiral", - "wildcommittee.com": "Leven Labs, Inc. DBA Admiral", - "wirecomic.com": "Leven Labs, Inc. DBA Admiral", - "wiredforcoffee.com": "Leven Labs, Inc. DBA Admiral", - "wirypaste.com": "Leven Labs, Inc. DBA Admiral", - "wistfulwaste.com": "Leven Labs, Inc. DBA Admiral", - "wittypopcorn.com": "Leven Labs, Inc. DBA Admiral", - "wittyshack.com": "Leven Labs, Inc. DBA Admiral", - "workoperation.com": "Leven Labs, Inc. DBA Admiral", - "worldlever.com": "Leven Labs, Inc. DBA Admiral", - "worriednumber.com": "Leven Labs, Inc. DBA Admiral", - "worriedwine.com": "Leven Labs, Inc. DBA Admiral", - "wretchedfloor.com": "Leven Labs, Inc. DBA Admiral", - "wrongpotato.com": "Leven Labs, Inc. DBA Admiral", - "wrongwound.com": "Leven Labs, Inc. DBA Admiral", - "wtaccesscontrol.com": "Leven Labs, Inc. DBA Admiral", - "xovq5nemr.com": "Leven Labs, Inc. DBA Admiral", - "yieldingwoman.com": "Leven Labs, Inc. DBA Admiral", - "zbwp6ghm.com": "Leven Labs, Inc. DBA Admiral", - "zephyrcatalyst.com": "Leven Labs, Inc. DBA Admiral", - "zephyrlabyrinth.com": "Leven Labs, Inc. DBA Admiral", - "zestycrime.com": "Leven Labs, Inc. DBA Admiral", - "zestyhorizon.com": "Leven Labs, Inc. DBA Admiral", - "zestyrover.com": "Leven Labs, Inc. DBA Admiral", - "zestywire.com": "Leven Labs, Inc. DBA Admiral", - "zipperxray.com": "Leven Labs, Inc. DBA Admiral", - "zlp6s.pw": "Leven Labs, Inc. DBA Admiral", - "zonewedgeshaft.com": "Leven Labs, Inc. DBA Admiral", + "2znp09oa.com": "Leven Labs, Inc. DBA Admiral (2znp09oa.com)", + "4jnzhl0d0.com": "Leven Labs, Inc. DBA Admiral (4jnzhl0d0.com)", + "5mcwl.pw": "Leven Labs, Inc. DBA Admiral (5mcwl.pw)", + "6ldu6qa.com": "Leven Labs, Inc. DBA Admiral (6ldu6qa.com)", + "82o9v830.com": "Leven Labs, Inc. DBA Admiral (82o9v830.com)", + "abilityscale.com": "Leven Labs, Inc. DBA Admiral (abilityscale.com)", + "abjectattempt.com": "Leven Labs, Inc. DBA Admiral (abjectattempt.com)", + "aboardamusement.com": "Leven Labs, Inc. DBA Admiral (aboardamusement.com)", + "aboardlevel.com": "Leven Labs, Inc. DBA Admiral (aboardlevel.com)", + "abovechat.com": "Leven Labs, Inc. DBA Admiral (abovechat.com)", + "abruptroad.com": "Leven Labs, Inc. DBA Admiral (abruptroad.com)", + "absentairport.com": "Leven Labs, Inc. DBA Admiral (absentairport.com)", + "absorbingband.com": "Leven Labs, Inc. DBA Admiral (absorbingband.com)", + "absorbingcorn.com": "Leven Labs, Inc. DBA Admiral (absorbingcorn.com)", + "absorbingprison.com": "Leven Labs, Inc. DBA Admiral (absorbingprison.com)", + "abstractedamount.com": "Leven Labs, Inc. DBA Admiral (abstractedamount.com)", + "abstractedauthority.com": "Leven Labs, Inc. DBA Admiral (abstractedauthority.com)", + "absurdapple.com": "Leven Labs, Inc. DBA Admiral (absurdapple.com)", + "abundantcoin.com": "Leven Labs, Inc. DBA Admiral (abundantcoin.com)", + "acceptableauthority.com": "Leven Labs, Inc. DBA Admiral (acceptableauthority.com)", + "accurateanimal.com": "Leven Labs, Inc. DBA Admiral (accurateanimal.com)", + "accuratecoal.com": "Leven Labs, Inc. DBA Admiral (accuratecoal.com)", + "achieverknee.com": "Leven Labs, Inc. DBA Admiral (achieverknee.com)", + "acidicstraw.com": "Leven Labs, Inc. DBA Admiral (acidicstraw.com)", + "acidpigs.com": "Leven Labs, Inc. DBA Admiral (acidpigs.com)", + "acridangle.com": "Leven Labs, Inc. DBA Admiral (acridangle.com)", + "acridtwist.com": "Leven Labs, Inc. DBA Admiral (acridtwist.com)", + "actoramusement.com": "Leven Labs, Inc. DBA Admiral (actoramusement.com)", + "actuallysheep.com": "Leven Labs, Inc. DBA Admiral (actuallysheep.com)", + "actuallysnake.com": "Leven Labs, Inc. DBA Admiral (actuallysnake.com)", + "actuallything.com": "Leven Labs, Inc. DBA Admiral (actuallything.com)", + "adamantsnail.com": "Leven Labs, Inc. DBA Admiral (adamantsnail.com)", + "addictedattention.com": "Leven Labs, Inc. DBA Admiral (addictedattention.com)", + "admiral.pub": "Leven Labs, Inc. DBA Admiral (admiral.pub)", + "adorableanger.com": "Leven Labs, Inc. DBA Admiral (adorableanger.com)", + "adorableattention.com": "Leven Labs, Inc. DBA Admiral (adorableattention.com)", + "adventurousamount.com": "Leven Labs, Inc. DBA Admiral (adventurousamount.com)", + "afraidlanguage.com": "Leven Labs, Inc. DBA Admiral (afraidlanguage.com)", + "aftermathbrother.com": "Leven Labs, Inc. DBA Admiral (aftermathbrother.com)", + "agilebreeze.com": "Leven Labs, Inc. DBA Admiral (agilebreeze.com)", + "agreeablearch.com": "Leven Labs, Inc. DBA Admiral (agreeablearch.com)", + "agreeabletouch.com": "Leven Labs, Inc. DBA Admiral (agreeabletouch.com)", + "aheadday.com": "Leven Labs, Inc. DBA Admiral (aheadday.com)", + "aheadgrow.com": "Leven Labs, Inc. DBA Admiral (aheadgrow.com)", + "aheadmachine.com": "Leven Labs, Inc. DBA Admiral (aheadmachine.com)", + "ak0gsh40.com": "Leven Labs, Inc. DBA Admiral (ak0gsh40.com)", + "alertarithmetic.com": "Leven Labs, Inc. DBA Admiral (alertarithmetic.com)", + "aliasanvil.com": "Leven Labs, Inc. DBA Admiral (aliasanvil.com)", + "alikeaddition.com": "Leven Labs, Inc. DBA Admiral (alikeaddition.com)", + "aliveachiever.com": "Leven Labs, Inc. DBA Admiral (aliveachiever.com)", + "alleythecat.com": "Leven Labs, Inc. DBA Admiral (alleythecat.com)", + "alluringbucket.com": "Leven Labs, Inc. DBA Admiral (alluringbucket.com)", + "aloofmetal.com": "Leven Labs, Inc. DBA Admiral (aloofmetal.com)", + "aloofvest.com": "Leven Labs, Inc. DBA Admiral (aloofvest.com)", + "alpineactor.com": "Leven Labs, Inc. DBA Admiral (alpineactor.com)", + "ambientdusk.com": "Leven Labs, Inc. DBA Admiral (ambientdusk.com)", + "ambientlagoon.com": "Leven Labs, Inc. DBA Admiral (ambientlagoon.com)", + "ambiguousafternoon.com": "Leven Labs, Inc. DBA Admiral (ambiguousafternoon.com)", + "ambiguousanger.com": "Leven Labs, Inc. DBA Admiral (ambiguousanger.com)", + "ambiguousdinosaurs.com": "Leven Labs, Inc. DBA Admiral (ambiguousdinosaurs.com)", + "ambiguousincome.com": "Leven Labs, Inc. DBA Admiral (ambiguousincome.com)", + "ambrosialsummit.com": "Leven Labs, Inc. DBA Admiral (ambrosialsummit.com)", + "amethystzenith.com": "Leven Labs, Inc. DBA Admiral (amethystzenith.com)", + "amuckafternoon.com": "Leven Labs, Inc. DBA Admiral (amuckafternoon.com)", + "amusedbucket.com": "Leven Labs, Inc. DBA Admiral (amusedbucket.com)", + "analogwonder.com": "Leven Labs, Inc. DBA Admiral (analogwonder.com)", + "analyzecorona.com": "Leven Labs, Inc. DBA Admiral (analyzecorona.com)", + "ancientact.com": "Leven Labs, Inc. DBA Admiral (ancientact.com)", + "annoyedairport.com": "Leven Labs, Inc. DBA Admiral (annoyedairport.com)", + "annoyingacoustics.com": "Leven Labs, Inc. DBA Admiral (annoyingacoustics.com)", + "annoyingclover.com": "Leven Labs, Inc. DBA Admiral (annoyingclover.com)", + "anxiousapples.com": "Leven Labs, Inc. DBA Admiral (anxiousapples.com)", + "aquaticowl.com": "Leven Labs, Inc. DBA Admiral (aquaticowl.com)", + "ar1nvz5.com": "Leven Labs, Inc. DBA Admiral (ar1nvz5.com)", + "archswimming.com": "Leven Labs, Inc. DBA Admiral (archswimming.com)", + "aromamirror.com": "Leven Labs, Inc. DBA Admiral (aromamirror.com)", + "arrivegrowth.com": "Leven Labs, Inc. DBA Admiral (arrivegrowth.com)", + "artthevoid.com": "Leven Labs, Inc. DBA Admiral (artthevoid.com)", + "aspiringapples.com": "Leven Labs, Inc. DBA Admiral (aspiringapples.com)", + "aspiringattempt.com": "Leven Labs, Inc. DBA Admiral (aspiringattempt.com)", + "aspiringtoy.com": "Leven Labs, Inc. DBA Admiral (aspiringtoy.com)", + "astonishingfood.com": "Leven Labs, Inc. DBA Admiral (astonishingfood.com)", + "astralhustle.com": "Leven Labs, Inc. DBA Admiral (astralhustle.com)", + "astrallullaby.com": "Leven Labs, Inc. DBA Admiral (astrallullaby.com)", + "attendchase.com": "Leven Labs, Inc. DBA Admiral (attendchase.com)", + "attractionbanana.com": "Leven Labs, Inc. DBA Admiral (attractionbanana.com)", + "attractivecap.com": "Leven Labs, Inc. DBA Admiral (attractivecap.com)", + "audioarctic.com": "Leven Labs, Inc. DBA Admiral (audioarctic.com)", + "automaticside.com": "Leven Labs, Inc. DBA Admiral (automaticside.com)", + "automaticturkey.com": "Leven Labs, Inc. DBA Admiral (automaticturkey.com)", + "availablerest.com": "Leven Labs, Inc. DBA Admiral (availablerest.com)", + "avalonalbum.com": "Leven Labs, Inc. DBA Admiral (avalonalbum.com)", + "averageactivity.com": "Leven Labs, Inc. DBA Admiral (averageactivity.com)", + "awarealley.com": "Leven Labs, Inc. DBA Admiral (awarealley.com)", + "awesomeagreement.com": "Leven Labs, Inc. DBA Admiral (awesomeagreement.com)", + "awzbijw.com": "Leven Labs, Inc. DBA Admiral (awzbijw.com)", + "axiomaticalley.com": "Leven Labs, Inc. DBA Admiral (axiomaticalley.com)", + "axiomaticanger.com": "Leven Labs, Inc. DBA Admiral (axiomaticanger.com)", + "azuremystique.com": "Leven Labs, Inc. DBA Admiral (azuremystique.com)", + "backupcat.com": "Leven Labs, Inc. DBA Admiral (backupcat.com)", + "badgeboat.com": "Leven Labs, Inc. DBA Admiral (badgeboat.com)", + "badgerabbit.com": "Leven Labs, Inc. DBA Admiral (badgerabbit.com)", + "badgevolcano.com": "Leven Labs, Inc. DBA Admiral (badgevolcano.com)", + "bagbeam.com": "Leven Labs, Inc. DBA Admiral (bagbeam.com)", + "baitbaseball.com": "Leven Labs, Inc. DBA Admiral (baitbaseball.com)", + "balloonbelieve.com": "Leven Labs, Inc. DBA Admiral (balloonbelieve.com)", + "ballsbanana.com": "Leven Labs, Inc. DBA Admiral (ballsbanana.com)", + "bananabarrel.com": "Leven Labs, Inc. DBA Admiral (bananabarrel.com)", + "bandborder.com": "Leven Labs, Inc. DBA Admiral (bandborder.com)", + "barbarousbase.com": "Leven Labs, Inc. DBA Admiral (barbarousbase.com)", + "basilfish.com": "Leven Labs, Inc. DBA Admiral (basilfish.com)", + "basketballbelieve.com": "Leven Labs, Inc. DBA Admiral (basketballbelieve.com)", + "baskettexture.com": "Leven Labs, Inc. DBA Admiral (baskettexture.com)", + "bawdybalance.com": "Leven Labs, Inc. DBA Admiral (bawdybalance.com)", + "bawdybeast.com": "Leven Labs, Inc. DBA Admiral (bawdybeast.com)", + "beamvolcano.com": "Leven Labs, Inc. DBA Admiral (beamvolcano.com)", + "beancontrol.com": "Leven Labs, Inc. DBA Admiral (beancontrol.com)", + "bearmoonlodge.com": "Leven Labs, Inc. DBA Admiral (bearmoonlodge.com)", + "bedsberry.com": "Leven Labs, Inc. DBA Admiral (bedsberry.com)", + "beetleend.com": "Leven Labs, Inc. DBA Admiral (beetleend.com)", + "beginnerpancake.com": "Leven Labs, Inc. DBA Admiral (beginnerpancake.com)", + "begintrain.com": "Leven Labs, Inc. DBA Admiral (begintrain.com)", + "berserkhydrant.com": "Leven Labs, Inc. DBA Admiral (berserkhydrant.com)", + "bespokesandals.com": "Leven Labs, Inc. DBA Admiral (bespokesandals.com)", + "bestboundary.com": "Leven Labs, Inc. DBA Admiral (bestboundary.com)", + "bewilderedbattle.com": "Leven Labs, Inc. DBA Admiral (bewilderedbattle.com)", + "bewilderedblade.com": "Leven Labs, Inc. DBA Admiral (bewilderedblade.com)", + "bhcumsc.com": "Leven Labs, Inc. DBA Admiral (bhcumsc.com)", + "bikepaws.com": "Leven Labs, Inc. DBA Admiral (bikepaws.com)", + "bikesboard.com": "Leven Labs, Inc. DBA Admiral (bikesboard.com)", + "billowybead.com": "Leven Labs, Inc. DBA Admiral (billowybead.com)", + "billowybelief.com": "Leven Labs, Inc. DBA Admiral (billowybelief.com)", + "binspiredtees.com": "Leven Labs, Inc. DBA Admiral (binspiredtees.com)", + "birthdaybelief.com": "Leven Labs, Inc. DBA Admiral (birthdaybelief.com)", + "blackbrake.com": "Leven Labs, Inc. DBA Admiral (blackbrake.com)", + "bleachbubble.com": "Leven Labs, Inc. DBA Admiral (bleachbubble.com)", + "bleachscarecrow.com": "Leven Labs, Inc. DBA Admiral (bleachscarecrow.com)", + "bleedlight.com": "Leven Labs, Inc. DBA Admiral (bleedlight.com)", + "blesspizzas.com": "Leven Labs, Inc. DBA Admiral (blesspizzas.com)", + "blissfulcrescendo.com": "Leven Labs, Inc. DBA Admiral (blissfulcrescendo.com)", + "blissfullagoon.com": "Leven Labs, Inc. DBA Admiral (blissfullagoon.com)", + "blueeyedblow.com": "Leven Labs, Inc. DBA Admiral (blueeyedblow.com)", + "blushingbeast.com": "Leven Labs, Inc. DBA Admiral (blushingbeast.com)", + "blushingbread.com": "Leven Labs, Inc. DBA Admiral (blushingbread.com)", + "boatsvest.com": "Leven Labs, Inc. DBA Admiral (boatsvest.com)", + "boilingbeetle.com": "Leven Labs, Inc. DBA Admiral (boilingbeetle.com)", + "boilingcredit.com": "Leven Labs, Inc. DBA Admiral (boilingcredit.com)", + "boostbehavior.com": "Leven Labs, Inc. DBA Admiral (boostbehavior.com)", + "boredcrown.com": "Leven Labs, Inc. DBA Admiral (boredcrown.com)", + "bouncyproperty.com": "Leven Labs, Inc. DBA Admiral (bouncyproperty.com)", + "boundarybusiness.com": "Leven Labs, Inc. DBA Admiral (boundarybusiness.com)", + "boundlessargument.com": "Leven Labs, Inc. DBA Admiral (boundlessargument.com)", + "boundlessbrake.com": "Leven Labs, Inc. DBA Admiral (boundlessbrake.com)", + "boundlessveil.com": "Leven Labs, Inc. DBA Admiral (boundlessveil.com)", + "brainybasin.com": "Leven Labs, Inc. DBA Admiral (brainybasin.com)", + "brainynut.com": "Leven Labs, Inc. DBA Admiral (brainynut.com)", + "branchborder.com": "Leven Labs, Inc. DBA Admiral (branchborder.com)", + "brandsfive.com": "Leven Labs, Inc. DBA Admiral (brandsfive.com)", + "brandybison.com": "Leven Labs, Inc. DBA Admiral (brandybison.com)", + "bravebone.com": "Leven Labs, Inc. DBA Admiral (bravebone.com)", + "bravecalculator.com": "Leven Labs, Inc. DBA Admiral (bravecalculator.com)", + "breadbalance.com": "Leven Labs, Inc. DBA Admiral (breadbalance.com)", + "breakableinsurance.com": "Leven Labs, Inc. DBA Admiral (breakableinsurance.com)", + "breakfastboat.com": "Leven Labs, Inc. DBA Admiral (breakfastboat.com)", + "breezygrove.com": "Leven Labs, Inc. DBA Admiral (breezygrove.com)", + "brianwould.com": "Leven Labs, Inc. DBA Admiral (brianwould.com)", + "brighttoe.com": "Leven Labs, Inc. DBA Admiral (brighttoe.com)", + "briskstorm.com": "Leven Labs, Inc. DBA Admiral (briskstorm.com)", + "broadborder.com": "Leven Labs, Inc. DBA Admiral (broadborder.com)", + "broadboundary.com": "Leven Labs, Inc. DBA Admiral (broadboundary.com)", + "broadcastbed.com": "Leven Labs, Inc. DBA Admiral (broadcastbed.com)", + "broaddoor.com": "Leven Labs, Inc. DBA Admiral (broaddoor.com)", + "brotherslocket.com": "Leven Labs, Inc. DBA Admiral (brotherslocket.com)", + "bruisebaseball.com": "Leven Labs, Inc. DBA Admiral (bruisebaseball.com)", + "brunchforher.com": "Leven Labs, Inc. DBA Admiral (brunchforher.com)", + "buildingknife.com": "Leven Labs, Inc. DBA Admiral (buildingknife.com)", + "bulbbait.com": "Leven Labs, Inc. DBA Admiral (bulbbait.com)", + "burgersalt.com": "Leven Labs, Inc. DBA Admiral (burgersalt.com)", + "burlywhistle.com": "Leven Labs, Inc. DBA Admiral (burlywhistle.com)", + "burnbubble.com": "Leven Labs, Inc. DBA Admiral (burnbubble.com)", + "bushesbag.com": "Leven Labs, Inc. DBA Admiral (bushesbag.com)", + "bustlingbath.com": "Leven Labs, Inc. DBA Admiral (bustlingbath.com)", + "bustlingbook.com": "Leven Labs, Inc. DBA Admiral (bustlingbook.com)", + "butterbulb.com": "Leven Labs, Inc. DBA Admiral (butterbulb.com)", + "butterburst.com": "Leven Labs, Inc. DBA Admiral (butterburst.com)", + "buttonladybug.com": "Leven Labs, Inc. DBA Admiral (buttonladybug.com)", + "cakesdrum.com": "Leven Labs, Inc. DBA Admiral (cakesdrum.com)", + "calculatingcircle.com": "Leven Labs, Inc. DBA Admiral (calculatingcircle.com)", + "calculatingtoothbrush.com": "Leven Labs, Inc. DBA Admiral (calculatingtoothbrush.com)", + "calculatorstatement.com": "Leven Labs, Inc. DBA Admiral (calculatorstatement.com)", + "callousbrake.com": "Leven Labs, Inc. DBA Admiral (callousbrake.com)", + "calmcactus.com": "Leven Labs, Inc. DBA Admiral (calmcactus.com)", + "calypsocapsule.com": "Leven Labs, Inc. DBA Admiral (calypsocapsule.com)", + "cannonchange.com": "Leven Labs, Inc. DBA Admiral (cannonchange.com)", + "capablecows.com": "Leven Labs, Inc. DBA Admiral (capablecows.com)", + "capablecup.com": "Leven Labs, Inc. DBA Admiral (capablecup.com)", + "capriciouscorn.com": "Leven Labs, Inc. DBA Admiral (capriciouscorn.com)", + "captivatingcanyon.com": "Leven Labs, Inc. DBA Admiral (captivatingcanyon.com)", + "captivatingillusion.com": "Leven Labs, Inc. DBA Admiral (captivatingillusion.com)", + "captivatingpanorama.com": "Leven Labs, Inc. DBA Admiral (captivatingpanorama.com)", + "captivatingperformance.com": "Leven Labs, Inc. DBA Admiral (captivatingperformance.com)", + "carefuldolls.com": "Leven Labs, Inc. DBA Admiral (carefuldolls.com)", + "caringcast.com": "Leven Labs, Inc. DBA Admiral (caringcast.com)", + "caringzinc.com": "Leven Labs, Inc. DBA Admiral (caringzinc.com)", + "carloforward.com": "Leven Labs, Inc. DBA Admiral (carloforward.com)", + "carpentercomparison.com": "Leven Labs, Inc. DBA Admiral (carpentercomparison.com)", + "carscannon.com": "Leven Labs, Inc. DBA Admiral (carscannon.com)", + "cartkitten.com": "Leven Labs, Inc. DBA Admiral (cartkitten.com)", + "carvecakes.com": "Leven Labs, Inc. DBA Admiral (carvecakes.com)", + "catalogcake.com": "Leven Labs, Inc. DBA Admiral (catalogcake.com)", + "catschickens.com": "Leven Labs, Inc. DBA Admiral (catschickens.com)", + "cattlecommittee.com": "Leven Labs, Inc. DBA Admiral (cattlecommittee.com)", + "causecherry.com": "Leven Labs, Inc. DBA Admiral (causecherry.com)", + "cautiouscamera.com": "Leven Labs, Inc. DBA Admiral (cautiouscamera.com)", + "cautiouscherries.com": "Leven Labs, Inc. DBA Admiral (cautiouscherries.com)", + "cautiouscrate.com": "Leven Labs, Inc. DBA Admiral (cautiouscrate.com)", + "cautiouscredit.com": "Leven Labs, Inc. DBA Admiral (cautiouscredit.com)", + "cavecurtain.com": "Leven Labs, Inc. DBA Admiral (cavecurtain.com)", + "ceciliavenus.com": "Leven Labs, Inc. DBA Admiral (ceciliavenus.com)", + "celestialeuphony.com": "Leven Labs, Inc. DBA Admiral (celestialeuphony.com)", + "celestialquasar.com": "Leven Labs, Inc. DBA Admiral (celestialquasar.com)", + "celestialspectra.com": "Leven Labs, Inc. DBA Admiral (celestialspectra.com)", + "chaireggnog.com": "Leven Labs, Inc. DBA Admiral (chaireggnog.com)", + "chairscrack.com": "Leven Labs, Inc. DBA Admiral (chairscrack.com)", + "chairsdonkey.com": "Leven Labs, Inc. DBA Admiral (chairsdonkey.com)", + "chalkoil.com": "Leven Labs, Inc. DBA Admiral (chalkoil.com)", + "changeablecats.com": "Leven Labs, Inc. DBA Admiral (changeablecats.com)", + "channelcamp.com": "Leven Labs, Inc. DBA Admiral (channelcamp.com)", + "chargecracker.com": "Leven Labs, Inc. DBA Admiral (chargecracker.com)", + "charmingplate.com": "Leven Labs, Inc. DBA Admiral (charmingplate.com)", + "charscroll.com": "Leven Labs, Inc. DBA Admiral (charscroll.com)", + "cheerycraze.com": "Leven Labs, Inc. DBA Admiral (cheerycraze.com)", + "cherriescare.com": "Leven Labs, Inc. DBA Admiral (cherriescare.com)", + "chessbranch.com": "Leven Labs, Inc. DBA Admiral (chessbranch.com)", + "chesscolor.com": "Leven Labs, Inc. DBA Admiral (chesscolor.com)", + "chesscrowd.com": "Leven Labs, Inc. DBA Admiral (chesscrowd.com)", + "chickensstation.com": "Leven Labs, Inc. DBA Admiral (chickensstation.com)", + "childlikecrowd.com": "Leven Labs, Inc. DBA Admiral (childlikecrowd.com)", + "childlikeexample.com": "Leven Labs, Inc. DBA Admiral (childlikeexample.com)", + "childlikeform.com": "Leven Labs, Inc. DBA Admiral (childlikeform.com)", + "chilledliquid.com": "Leven Labs, Inc. DBA Admiral (chilledliquid.com)", + "chingovernment.com": "Leven Labs, Inc. DBA Admiral (chingovernment.com)", + "chinsnakes.com": "Leven Labs, Inc. DBA Admiral (chinsnakes.com)", + "chipperisle.com": "Leven Labs, Inc. DBA Admiral (chipperisle.com)", + "chivalrouscord.com": "Leven Labs, Inc. DBA Admiral (chivalrouscord.com)", + "chubbycreature.com": "Leven Labs, Inc. DBA Admiral (chubbycreature.com)", + "chunkycactus.com": "Leven Labs, Inc. DBA Admiral (chunkycactus.com)", + "cicdserver.com": "Leven Labs, Inc. DBA Admiral (cicdserver.com)", + "cinemabonus.com": "Leven Labs, Inc. DBA Admiral (cinemabonus.com)", + "circlelevel.com": "Leven Labs, Inc. DBA Admiral (circlelevel.com)", + "clammychicken.com": "Leven Labs, Inc. DBA Admiral (clammychicken.com)", + "cleanhaircut.com": "Leven Labs, Inc. DBA Admiral (cleanhaircut.com)", + "cloisteredcord.com": "Leven Labs, Inc. DBA Admiral (cloisteredcord.com)", + "cloisteredcurve.com": "Leven Labs, Inc. DBA Admiral (cloisteredcurve.com)", + "closedcows.com": "Leven Labs, Inc. DBA Admiral (closedcows.com)", + "closefriction.com": "Leven Labs, Inc. DBA Admiral (closefriction.com)", + "cloudhustles.com": "Leven Labs, Inc. DBA Admiral (cloudhustles.com)", + "cloudjumbo.com": "Leven Labs, Inc. DBA Admiral (cloudjumbo.com)", + "clovercabbage.com": "Leven Labs, Inc. DBA Admiral (clovercabbage.com)", + "clumsycar.com": "Leven Labs, Inc. DBA Admiral (clumsycar.com)", + "coatfood.com": "Leven Labs, Inc. DBA Admiral (coatfood.com)", + "cobaltoverture.com": "Leven Labs, Inc. DBA Admiral (cobaltoverture.com)", + "coffeesidehustle.com": "Leven Labs, Inc. DBA Admiral (coffeesidehustle.com)", + "coldbalance.com": "Leven Labs, Inc. DBA Admiral (coldbalance.com)", + "coldcreatives.com": "Leven Labs, Inc. DBA Admiral (coldcreatives.com)", + "colorfulafterthought.com": "Leven Labs, Inc. DBA Admiral (colorfulafterthought.com)", + "colossalclouds.com": "Leven Labs, Inc. DBA Admiral (colossalclouds.com)", + "colossalcoat.com": "Leven Labs, Inc. DBA Admiral (colossalcoat.com)", + "colossalcry.com": "Leven Labs, Inc. DBA Admiral (colossalcry.com)", + "combativecar.com": "Leven Labs, Inc. DBA Admiral (combativecar.com)", + "combativedetail.com": "Leven Labs, Inc. DBA Admiral (combativedetail.com)", + "combbit.com": "Leven Labs, Inc. DBA Admiral (combbit.com)", + "combcattle.com": "Leven Labs, Inc. DBA Admiral (combcattle.com)", + "combcompetition.com": "Leven Labs, Inc. DBA Admiral (combcompetition.com)", + "cometquote.com": "Leven Labs, Inc. DBA Admiral (cometquote.com)", + "comfortablecheese.com": "Leven Labs, Inc. DBA Admiral (comfortablecheese.com)", + "comfygoodness.com": "Leven Labs, Inc. DBA Admiral (comfygoodness.com)", + "companyparcel.com": "Leven Labs, Inc. DBA Admiral (companyparcel.com)", + "comparereaction.com": "Leven Labs, Inc. DBA Admiral (comparereaction.com)", + "compiledoctor.com": "Leven Labs, Inc. DBA Admiral (compiledoctor.com)", + "concernedchange.com": "Leven Labs, Inc. DBA Admiral (concernedchange.com)", + "concernedchickens.com": "Leven Labs, Inc. DBA Admiral (concernedchickens.com)", + "condemnedcomb.com": "Leven Labs, Inc. DBA Admiral (condemnedcomb.com)", + "conditionchange.com": "Leven Labs, Inc. DBA Admiral (conditionchange.com)", + "conditioncrush.com": "Leven Labs, Inc. DBA Admiral (conditioncrush.com)", + "confesschairs.com": "Leven Labs, Inc. DBA Admiral (confesschairs.com)", + "configchain.com": "Leven Labs, Inc. DBA Admiral (configchain.com)", + "confusedcart.com": "Leven Labs, Inc. DBA Admiral (confusedcart.com)", + "connectashelf.com": "Leven Labs, Inc. DBA Admiral (connectashelf.com)", + "consciouschairs.com": "Leven Labs, Inc. DBA Admiral (consciouschairs.com)", + "consciouscheese.com": "Leven Labs, Inc. DBA Admiral (consciouscheese.com)", + "consciousdirt.com": "Leven Labs, Inc. DBA Admiral (consciousdirt.com)", + "consumerzero.com": "Leven Labs, Inc. DBA Admiral (consumerzero.com)", + "controlcola.com": "Leven Labs, Inc. DBA Admiral (controlcola.com)", + "controlhall.com": "Leven Labs, Inc. DBA Admiral (controlhall.com)", + "convertbatch.com": "Leven Labs, Inc. DBA Admiral (convertbatch.com)", + "cooingcoal.com": "Leven Labs, Inc. DBA Admiral (cooingcoal.com)", + "coordinatedbedroom.com": "Leven Labs, Inc. DBA Admiral (coordinatedbedroom.com)", + "coordinatedcoat.com": "Leven Labs, Inc. DBA Admiral (coordinatedcoat.com)", + "copycarpenter.com": "Leven Labs, Inc. DBA Admiral (copycarpenter.com)", + "copyrightaccesscontrols.com": "Leven Labs, Inc. DBA Admiral (copyrightaccesscontrols.com)", + "coralreverie.com": "Leven Labs, Inc. DBA Admiral (coralreverie.com)", + "corgibeachday.com": "Leven Labs, Inc. DBA Admiral (corgibeachday.com)", + "cosmicsculptor.com": "Leven Labs, Inc. DBA Admiral (cosmicsculptor.com)", + "cosmosjackson.com": "Leven Labs, Inc. DBA Admiral (cosmosjackson.com)", + "courageousbaby.com": "Leven Labs, Inc. DBA Admiral (courageousbaby.com)", + "coverapparatus.com": "Leven Labs, Inc. DBA Admiral (coverapparatus.com)", + "coverlayer.com": "Leven Labs, Inc. DBA Admiral (coverlayer.com)", + "cozydusk.com": "Leven Labs, Inc. DBA Admiral (cozydusk.com)", + "cozyhillside.com": "Leven Labs, Inc. DBA Admiral (cozyhillside.com)", + "cozytryst.com": "Leven Labs, Inc. DBA Admiral (cozytryst.com)", + "crabbychin.com": "Leven Labs, Inc. DBA Admiral (crabbychin.com)", + "crackedsafe.com": "Leven Labs, Inc. DBA Admiral (crackedsafe.com)", + "crafthenry.com": "Leven Labs, Inc. DBA Admiral (crafthenry.com)", + "crashchance.com": "Leven Labs, Inc. DBA Admiral (crashchance.com)", + "cratecamera.com": "Leven Labs, Inc. DBA Admiral (cratecamera.com)", + "craterbox.com": "Leven Labs, Inc. DBA Admiral (craterbox.com)", + "creatorcherry.com": "Leven Labs, Inc. DBA Admiral (creatorcherry.com)", + "creatorpassenger.com": "Leven Labs, Inc. DBA Admiral (creatorpassenger.com)", + "creaturecabbage.com": "Leven Labs, Inc. DBA Admiral (creaturecabbage.com)", + "crimsonmeadow.com": "Leven Labs, Inc. DBA Admiral (crimsonmeadow.com)", + "critictruck.com": "Leven Labs, Inc. DBA Admiral (critictruck.com)", + "crookedcreature.com": "Leven Labs, Inc. DBA Admiral (crookedcreature.com)", + "crowdedmass.com": "Leven Labs, Inc. DBA Admiral (crowdedmass.com)", + "cruisetourist.com": "Leven Labs, Inc. DBA Admiral (cruisetourist.com)", + "cryptvalue.com": "Leven Labs, Inc. DBA Admiral (cryptvalue.com)", + "crystalboulevard.com": "Leven Labs, Inc. DBA Admiral (crystalboulevard.com)", + "crystalstatus.com": "Leven Labs, Inc. DBA Admiral (crystalstatus.com)", + "cubchannel.com": "Leven Labs, Inc. DBA Admiral (cubchannel.com)", + "cubepins.com": "Leven Labs, Inc. DBA Admiral (cubepins.com)", + "cuddlycake.com": "Leven Labs, Inc. DBA Admiral (cuddlycake.com)", + "cuddlylunchroom.com": "Leven Labs, Inc. DBA Admiral (cuddlylunchroom.com)", + "culturedcamera.com": "Leven Labs, Inc. DBA Admiral (culturedcamera.com)", + "culturedfeather.com": "Leven Labs, Inc. DBA Admiral (culturedfeather.com)", + "cumbersomecar.com": "Leven Labs, Inc. DBA Admiral (cumbersomecar.com)", + "cumbersomecarpenter.com": "Leven Labs, Inc. DBA Admiral (cumbersomecarpenter.com)", + "cumbersomecloud.com": "Leven Labs, Inc. DBA Admiral (cumbersomecloud.com)", + "curiouschalk.com": "Leven Labs, Inc. DBA Admiral (curiouschalk.com)", + "curioussuccess.com": "Leven Labs, Inc. DBA Admiral (curioussuccess.com)", + "curlycannon.com": "Leven Labs, Inc. DBA Admiral (curlycannon.com)", + "currentcollar.com": "Leven Labs, Inc. DBA Admiral (currentcollar.com)", + "curtaincows.com": "Leven Labs, Inc. DBA Admiral (curtaincows.com)", + "curvedhoney.com": "Leven Labs, Inc. DBA Admiral (curvedhoney.com)", + "curvycord.com": "Leven Labs, Inc. DBA Admiral (curvycord.com)", + "curvycry.com": "Leven Labs, Inc. DBA Admiral (curvycry.com)", + "cushiondrum.com": "Leven Labs, Inc. DBA Admiral (cushiondrum.com)", + "cushionpig.com": "Leven Labs, Inc. DBA Admiral (cushionpig.com)", + "cutcurrent.com": "Leven Labs, Inc. DBA Admiral (cutcurrent.com)", + "cutechin.com": "Leven Labs, Inc. DBA Admiral (cutechin.com)", + "cyclopsdial.com": "Leven Labs, Inc. DBA Admiral (cyclopsdial.com)", + "dailydivision.com": "Leven Labs, Inc. DBA Admiral (dailydivision.com)", + "damagedadvice.com": "Leven Labs, Inc. DBA Admiral (damagedadvice.com)", + "damageddistance.com": "Leven Labs, Inc. DBA Admiral (damageddistance.com)", + "damdoor.com": "Leven Labs, Inc. DBA Admiral (damdoor.com)", + "dampdock.com": "Leven Labs, Inc. DBA Admiral (dampdock.com)", + "dancemistake.com": "Leven Labs, Inc. DBA Admiral (dancemistake.com)", + "dandydune.com": "Leven Labs, Inc. DBA Admiral (dandydune.com)", + "dandyglow.com": "Leven Labs, Inc. DBA Admiral (dandyglow.com)", + "dapperdiscussion.com": "Leven Labs, Inc. DBA Admiral (dapperdiscussion.com)", + "dapperfloor.com": "Leven Labs, Inc. DBA Admiral (dapperfloor.com)", + "datastoried.com": "Leven Labs, Inc. DBA Admiral (datastoried.com)", + "daughterstone.com": "Leven Labs, Inc. DBA Admiral (daughterstone.com)", + "daymodern.com": "Leven Labs, Inc. DBA Admiral (daymodern.com)", + "dazzlingbook.com": "Leven Labs, Inc. DBA Admiral (dazzlingbook.com)", + "deafeningdock.com": "Leven Labs, Inc. DBA Admiral (deafeningdock.com)", + "deafeningdowntown.com": "Leven Labs, Inc. DBA Admiral (deafeningdowntown.com)", + "debonairdust.com": "Leven Labs, Inc. DBA Admiral (debonairdust.com)", + "debonairtree.com": "Leven Labs, Inc. DBA Admiral (debonairtree.com)", + "debugentity.com": "Leven Labs, Inc. DBA Admiral (debugentity.com)", + "decidedrum.com": "Leven Labs, Inc. DBA Admiral (decidedrum.com)", + "decisivebase.com": "Leven Labs, Inc. DBA Admiral (decisivebase.com)", + "decisivedrawer.com": "Leven Labs, Inc. DBA Admiral (decisivedrawer.com)", + "decisiveducks.com": "Leven Labs, Inc. DBA Admiral (decisiveducks.com)", + "decoycreation.com": "Leven Labs, Inc. DBA Admiral (decoycreation.com)", + "deerbeginner.com": "Leven Labs, Inc. DBA Admiral (deerbeginner.com)", + "defeatedbadge.com": "Leven Labs, Inc. DBA Admiral (defeatedbadge.com)", + "defensevest.com": "Leven Labs, Inc. DBA Admiral (defensevest.com)", + "degreechariot.com": "Leven Labs, Inc. DBA Admiral (degreechariot.com)", + "delegatediscussion.com": "Leven Labs, Inc. DBA Admiral (delegatediscussion.com)", + "delicatecascade.com": "Leven Labs, Inc. DBA Admiral (delicatecascade.com)", + "deliciousducks.com": "Leven Labs, Inc. DBA Admiral (deliciousducks.com)", + "deltafault.com": "Leven Labs, Inc. DBA Admiral (deltafault.com)", + "deluxecrate.com": "Leven Labs, Inc. DBA Admiral (deluxecrate.com)", + "dependenttrip.com": "Leven Labs, Inc. DBA Admiral (dependenttrip.com)", + "desirebucket.com": "Leven Labs, Inc. DBA Admiral (desirebucket.com)", + "desiredirt.com": "Leven Labs, Inc. DBA Admiral (desiredirt.com)", + "detailedgovernment.com": "Leven Labs, Inc. DBA Admiral (detailedgovernment.com)", + "detailedkitten.com": "Leven Labs, Inc. DBA Admiral (detailedkitten.com)", + "detectdinner.com": "Leven Labs, Inc. DBA Admiral (detectdinner.com)", + "detectdiscovery.com": "Leven Labs, Inc. DBA Admiral (detectdiscovery.com)", + "detourgame.com": "Leven Labs, Inc. DBA Admiral (detourgame.com)", + "deviceseal.com": "Leven Labs, Inc. DBA Admiral (deviceseal.com)", + "deviceworkshop.com": "Leven Labs, Inc. DBA Admiral (deviceworkshop.com)", + "devilishdinner.com": "Leven Labs, Inc. DBA Admiral (devilishdinner.com)", + "dewdroplagoon.com": "Leven Labs, Inc. DBA Admiral (dewdroplagoon.com)", + "difficultfog.com": "Leven Labs, Inc. DBA Admiral (difficultfog.com)", + "digestiondrawer.com": "Leven Labs, Inc. DBA Admiral (digestiondrawer.com)", + "dinnerquartz.com": "Leven Labs, Inc. DBA Admiral (dinnerquartz.com)", + "diplomahawaii.com": "Leven Labs, Inc. DBA Admiral (diplomahawaii.com)", + "direfuldesk.com": "Leven Labs, Inc. DBA Admiral (direfuldesk.com)", + "disagreeabledrop.com": "Leven Labs, Inc. DBA Admiral (disagreeabledrop.com)", + "discreetfield.com": "Leven Labs, Inc. DBA Admiral (discreetfield.com)", + "discreetquarter.com": "Leven Labs, Inc. DBA Admiral (discreetquarter.com)", + "distributionneck.com": "Leven Labs, Inc. DBA Admiral (distributionneck.com)", + "distributionpocket.com": "Leven Labs, Inc. DBA Admiral (distributionpocket.com)", + "distributiontomatoes.com": "Leven Labs, Inc. DBA Admiral (distributiontomatoes.com)", + "disturbedquiet.com": "Leven Labs, Inc. DBA Admiral (disturbedquiet.com)", + "divehope.com": "Leven Labs, Inc. DBA Admiral (divehope.com)", + "dk4ywix.com": "Leven Labs, Inc. DBA Admiral (dk4ywix.com)", + "dockdigestion.com": "Leven Labs, Inc. DBA Admiral (dockdigestion.com)", + "dogsonclouds.com": "Leven Labs, Inc. DBA Admiral (dogsonclouds.com)", + "dollardelta.com": "Leven Labs, Inc. DBA Admiral (dollardelta.com)", + "doubledefend.com": "Leven Labs, Inc. DBA Admiral (doubledefend.com)", + "doubtdrawer.com": "Leven Labs, Inc. DBA Admiral (doubtdrawer.com)", + "dq95d35.com": "Leven Labs, Inc. DBA Admiral (dq95d35.com)", + "drainpaste.com": "Leven Labs, Inc. DBA Admiral (drainpaste.com)", + "dramaticdirection.com": "Leven Labs, Inc. DBA Admiral (dramaticdirection.com)", + "dreamycanyon.com": "Leven Labs, Inc. DBA Admiral (dreamycanyon.com)", + "driftpizza.com": "Leven Labs, Inc. DBA Admiral (driftpizza.com)", + "drollwharf.com": "Leven Labs, Inc. DBA Admiral (drollwharf.com)", + "drydrum.com": "Leven Labs, Inc. DBA Admiral (drydrum.com)", + "dustydime.com": "Leven Labs, Inc. DBA Admiral (dustydime.com)", + "dustyhammer.com": "Leven Labs, Inc. DBA Admiral (dustyhammer.com)", + "eagereden.com": "Leven Labs, Inc. DBA Admiral (eagereden.com)", + "eagerflame.com": "Leven Labs, Inc. DBA Admiral (eagerflame.com)", + "eagerknight.com": "Leven Labs, Inc. DBA Admiral (eagerknight.com)", + "earthyfarm.com": "Leven Labs, Inc. DBA Admiral (earthyfarm.com)", + "eatablesquare.com": "Leven Labs, Inc. DBA Admiral (eatablesquare.com)", + "echochief.com": "Leven Labs, Inc. DBA Admiral (echochief.com)", + "echoinghaven.com": "Leven Labs, Inc. DBA Admiral (echoinghaven.com)", + "effervescentcoral.com": "Leven Labs, Inc. DBA Admiral (effervescentcoral.com)", + "effervescentvista.com": "Leven Labs, Inc. DBA Admiral (effervescentvista.com)", + "effulgentnook.com": "Leven Labs, Inc. DBA Admiral (effulgentnook.com)", + "effulgenttempest.com": "Leven Labs, Inc. DBA Admiral (effulgenttempest.com)", + "ejyymghi.com": "Leven Labs, Inc. DBA Admiral (ejyymghi.com)", + "elasticchange.com": "Leven Labs, Inc. DBA Admiral (elasticchange.com)", + "elderlybean.com": "Leven Labs, Inc. DBA Admiral (elderlybean.com)", + "elderlytown.com": "Leven Labs, Inc. DBA Admiral (elderlytown.com)", + "elephantqueue.com": "Leven Labs, Inc. DBA Admiral (elephantqueue.com)", + "elusivebreeze.com": "Leven Labs, Inc. DBA Admiral (elusivebreeze.com)", + "elusivecascade.com": "Leven Labs, Inc. DBA Admiral (elusivecascade.com)", + "elysiantraverse.com": "Leven Labs, Inc. DBA Admiral (elysiantraverse.com)", + "embellishedmeadow.com": "Leven Labs, Inc. DBA Admiral (embellishedmeadow.com)", + "embermosaic.com": "Leven Labs, Inc. DBA Admiral (embermosaic.com)", + "emberwhisper.com": "Leven Labs, Inc. DBA Admiral (emberwhisper.com)", + "eminentbubble.com": "Leven Labs, Inc. DBA Admiral (eminentbubble.com)", + "eminentend.com": "Leven Labs, Inc. DBA Admiral (eminentend.com)", + "emptyescort.com": "Leven Labs, Inc. DBA Admiral (emptyescort.com)", + "enchantedskyline.com": "Leven Labs, Inc. DBA Admiral (enchantedskyline.com)", + "enchantingdiscovery.com": "Leven Labs, Inc. DBA Admiral (enchantingdiscovery.com)", + "enchantingenchantment.com": "Leven Labs, Inc. DBA Admiral (enchantingenchantment.com)", + "enchantingmystique.com": "Leven Labs, Inc. DBA Admiral (enchantingmystique.com)", + "enchantingtundra.com": "Leven Labs, Inc. DBA Admiral (enchantingtundra.com)", + "enchantingvalley.com": "Leven Labs, Inc. DBA Admiral (enchantingvalley.com)", + "encourageshock.com": "Leven Labs, Inc. DBA Admiral (encourageshock.com)", + "encouragingthread.com": "Leven Labs, Inc. DBA Admiral (encouragingthread.com)", + "endlesstrust.com": "Leven Labs, Inc. DBA Admiral (endlesstrust.com)", + "endurablebulb.com": "Leven Labs, Inc. DBA Admiral (endurablebulb.com)", + "energeticexample.com": "Leven Labs, Inc. DBA Admiral (energeticexample.com)", + "energeticladybug.com": "Leven Labs, Inc. DBA Admiral (energeticladybug.com)", + "engineergrape.com": "Leven Labs, Inc. DBA Admiral (engineergrape.com)", + "engineertrick.com": "Leven Labs, Inc. DBA Admiral (engineertrick.com)", + "enigmaticblossom.com": "Leven Labs, Inc. DBA Admiral (enigmaticblossom.com)", + "enigmaticcanyon.com": "Leven Labs, Inc. DBA Admiral (enigmaticcanyon.com)", + "enigmaticvoyage.com": "Leven Labs, Inc. DBA Admiral (enigmaticvoyage.com)", + "enormousearth.com": "Leven Labs, Inc. DBA Admiral (enormousearth.com)", + "enormousfoot.com": "Leven Labs, Inc. DBA Admiral (enormousfoot.com)", + "enterdrama.com": "Leven Labs, Inc. DBA Admiral (enterdrama.com)", + "entertainskin.com": "Leven Labs, Inc. DBA Admiral (entertainskin.com)", + "enthusiastictemper.com": "Leven Labs, Inc. DBA Admiral (enthusiastictemper.com)", + "enviousshape.com": "Leven Labs, Inc. DBA Admiral (enviousshape.com)", + "enviousthread.com": "Leven Labs, Inc. DBA Admiral (enviousthread.com)", + "equablekettle.com": "Leven Labs, Inc. DBA Admiral (equablekettle.com)", + "etherealbamboo.com": "Leven Labs, Inc. DBA Admiral (etherealbamboo.com)", + "ethereallagoon.com": "Leven Labs, Inc. DBA Admiral (ethereallagoon.com)", + "etherealpinnacle.com": "Leven Labs, Inc. DBA Admiral (etherealpinnacle.com)", + "etherealquasar.com": "Leven Labs, Inc. DBA Admiral (etherealquasar.com)", + "etherealripple.com": "Leven Labs, Inc. DBA Admiral (etherealripple.com)", + "evanescentedge.com": "Leven Labs, Inc. DBA Admiral (evanescentedge.com)", + "evasivejar.com": "Leven Labs, Inc. DBA Admiral (evasivejar.com)", + "eventexistence.com": "Leven Labs, Inc. DBA Admiral (eventexistence.com)", + "exampleshake.com": "Leven Labs, Inc. DBA Admiral (exampleshake.com)", + "excitingtub.com": "Leven Labs, Inc. DBA Admiral (excitingtub.com)", + "exclusivebrass.com": "Leven Labs, Inc. DBA Admiral (exclusivebrass.com)", + "executeknowledge.com": "Leven Labs, Inc. DBA Admiral (executeknowledge.com)", + "exhibitsneeze.com": "Leven Labs, Inc. DBA Admiral (exhibitsneeze.com)", + "expansioneggnog.com": "Leven Labs, Inc. DBA Admiral (expansioneggnog.com)", + "exquisiteartisanship.com": "Leven Labs, Inc. DBA Admiral (exquisiteartisanship.com)", + "extractobservation.com": "Leven Labs, Inc. DBA Admiral (extractobservation.com)", + "extralocker.com": "Leven Labs, Inc. DBA Admiral (extralocker.com)", + "extramonies.com": "Leven Labs, Inc. DBA Admiral (extramonies.com)", + "exuberantedge.com": "Leven Labs, Inc. DBA Admiral (exuberantedge.com)", + "facilitatebreakfast.com": "Leven Labs, Inc. DBA Admiral (facilitatebreakfast.com)", + "fadechildren.com": "Leven Labs, Inc. DBA Admiral (fadechildren.com)", + "fadedsnow.com": "Leven Labs, Inc. DBA Admiral (fadedsnow.com)", + "fadewaves.com": "Leven Labs, Inc. DBA Admiral (fadewaves.com)", + "fairfeeling.com": "Leven Labs, Inc. DBA Admiral (fairfeeling.com)", + "fairiesbranch.com": "Leven Labs, Inc. DBA Admiral (fairiesbranch.com)", + "fairygaze.com": "Leven Labs, Inc. DBA Admiral (fairygaze.com)", + "fairytaleflame.com": "Leven Labs, Inc. DBA Admiral (fairytaleflame.com)", + "fallaciousfifth.com": "Leven Labs, Inc. DBA Admiral (fallaciousfifth.com)", + "falseframe.com": "Leven Labs, Inc. DBA Admiral (falseframe.com)", + "familiarrod.com": "Leven Labs, Inc. DBA Admiral (familiarrod.com)", + "fancyactivity.com": "Leven Labs, Inc. DBA Admiral (fancyactivity.com)", + "fancydune.com": "Leven Labs, Inc. DBA Admiral (fancydune.com)", + "fancygrove.com": "Leven Labs, Inc. DBA Admiral (fancygrove.com)", + "fangfeeling.com": "Leven Labs, Inc. DBA Admiral (fangfeeling.com)", + "fantastictone.com": "Leven Labs, Inc. DBA Admiral (fantastictone.com)", + "farethief.com": "Leven Labs, Inc. DBA Admiral (farethief.com)", + "farmergoldfish.com": "Leven Labs, Inc. DBA Admiral (farmergoldfish.com)", + "farshake.com": "Leven Labs, Inc. DBA Admiral (farshake.com)", + "farsnails.com": "Leven Labs, Inc. DBA Admiral (farsnails.com)", + "fastenfather.com": "Leven Labs, Inc. DBA Admiral (fastenfather.com)", + "fasterfineart.com": "Leven Labs, Inc. DBA Admiral (fasterfineart.com)", + "fasterjson.com": "Leven Labs, Inc. DBA Admiral (fasterjson.com)", + "fatcoil.com": "Leven Labs, Inc. DBA Admiral (fatcoil.com)", + "faucetfoot.com": "Leven Labs, Inc. DBA Admiral (faucetfoot.com)", + "faultycanvas.com": "Leven Labs, Inc. DBA Admiral (faultycanvas.com)", + "fearfulfish.com": "Leven Labs, Inc. DBA Admiral (fearfulfish.com)", + "fearfulmint.com": "Leven Labs, Inc. DBA Admiral (fearfulmint.com)", + "fearlessfaucet.com": "Leven Labs, Inc. DBA Admiral (fearlessfaucet.com)", + "fearlesstramp.com": "Leven Labs, Inc. DBA Admiral (fearlesstramp.com)", + "featherstage.com": "Leven Labs, Inc. DBA Admiral (featherstage.com)", + "feeblestamp.com": "Leven Labs, Inc. DBA Admiral (feeblestamp.com)", + "feignedfaucet.com": "Leven Labs, Inc. DBA Admiral (feignedfaucet.com)", + "fernwaycloud.com": "Leven Labs, Inc. DBA Admiral (fernwaycloud.com)", + "fertilefeeling.com": "Leven Labs, Inc. DBA Admiral (fertilefeeling.com)", + "fewjuice.com": "Leven Labs, Inc. DBA Admiral (fewjuice.com)", + "fewkittens.com": "Leven Labs, Inc. DBA Admiral (fewkittens.com)", + "finalizeforce.com": "Leven Labs, Inc. DBA Admiral (finalizeforce.com)", + "financefear.com": "Leven Labs, Inc. DBA Admiral (financefear.com)", + "finestpiece.com": "Leven Labs, Inc. DBA Admiral (finestpiece.com)", + "finitecube.com": "Leven Labs, Inc. DBA Admiral (finitecube.com)", + "firecatfilms.com": "Leven Labs, Inc. DBA Admiral (firecatfilms.com)", + "fireworkcamp.com": "Leven Labs, Inc. DBA Admiral (fireworkcamp.com)", + "firstendpoint.com": "Leven Labs, Inc. DBA Admiral (firstendpoint.com)", + "firstfrogs.com": "Leven Labs, Inc. DBA Admiral (firstfrogs.com)", + "firsttexture.com": "Leven Labs, Inc. DBA Admiral (firsttexture.com)", + "fitmessage.com": "Leven Labs, Inc. DBA Admiral (fitmessage.com)", + "fivesidedsquare.com": "Leven Labs, Inc. DBA Admiral (fivesidedsquare.com)", + "fixedfold.com": "Leven Labs, Inc. DBA Admiral (fixedfold.com)", + "flakyfeast.com": "Leven Labs, Inc. DBA Admiral (flakyfeast.com)", + "flameuncle.com": "Leven Labs, Inc. DBA Admiral (flameuncle.com)", + "flimsycircle.com": "Leven Labs, Inc. DBA Admiral (flimsycircle.com)", + "flimsythought.com": "Leven Labs, Inc. DBA Admiral (flimsythought.com)", + "flippedfunnel.com": "Leven Labs, Inc. DBA Admiral (flippedfunnel.com)", + "floodprincipal.com": "Leven Labs, Inc. DBA Admiral (floodprincipal.com)", + "flourishingcollaboration.com": "Leven Labs, Inc. DBA Admiral (flourishingcollaboration.com)", + "flourishingendeavor.com": "Leven Labs, Inc. DBA Admiral (flourishingendeavor.com)", + "flourishinginnovation.com": "Leven Labs, Inc. DBA Admiral (flourishinginnovation.com)", + "flourishingpartnership.com": "Leven Labs, Inc. DBA Admiral (flourishingpartnership.com)", + "flowersornament.com": "Leven Labs, Inc. DBA Admiral (flowersornament.com)", + "flowerstreatment.com": "Leven Labs, Inc. DBA Admiral (flowerstreatment.com)", + "flowerycreature.com": "Leven Labs, Inc. DBA Admiral (flowerycreature.com)", + "floweryfact.com": "Leven Labs, Inc. DBA Admiral (floweryfact.com)", + "floweryflavor.com": "Leven Labs, Inc. DBA Admiral (floweryflavor.com)", + "floweryoperation.com": "Leven Labs, Inc. DBA Admiral (floweryoperation.com)", + "flutteringfireman.com": "Leven Labs, Inc. DBA Admiral (flutteringfireman.com)", + "foambench.com": "Leven Labs, Inc. DBA Admiral (foambench.com)", + "followborder.com": "Leven Labs, Inc. DBA Admiral (followborder.com)", + "forecasttiger.com": "Leven Labs, Inc. DBA Admiral (forecasttiger.com)", + "foretellfifth.com": "Leven Labs, Inc. DBA Admiral (foretellfifth.com)", + "forevergears.com": "Leven Labs, Inc. DBA Admiral (forevergears.com)", + "forgetfulflowers.com": "Leven Labs, Inc. DBA Admiral (forgetfulflowers.com)", + "forgetfulsnail.com": "Leven Labs, Inc. DBA Admiral (forgetfulsnail.com)", + "fortunatemark.com": "Leven Labs, Inc. DBA Admiral (fortunatemark.com)", + "fractalcoast.com": "Leven Labs, Inc. DBA Admiral (fractalcoast.com)", + "frailfruit.com": "Leven Labs, Inc. DBA Admiral (frailfruit.com)", + "framebanana.com": "Leven Labs, Inc. DBA Admiral (framebanana.com)", + "franticroof.com": "Leven Labs, Inc. DBA Admiral (franticroof.com)", + "frantictrail.com": "Leven Labs, Inc. DBA Admiral (frantictrail.com)", + "frazzleart.com": "Leven Labs, Inc. DBA Admiral (frazzleart.com)", + "freakyglass.com": "Leven Labs, Inc. DBA Admiral (freakyglass.com)", + "freezingbuilding.com": "Leven Labs, Inc. DBA Admiral (freezingbuilding.com)", + "frequentflesh.com": "Leven Labs, Inc. DBA Admiral (frequentflesh.com)", + "friendlycrayon.com": "Leven Labs, Inc. DBA Admiral (friendlycrayon.com)", + "friendlyfold.com": "Leven Labs, Inc. DBA Admiral (friendlyfold.com)", + "friendwool.com": "Leven Labs, Inc. DBA Admiral (friendwool.com)", + "frightenedpotato.com": "Leven Labs, Inc. DBA Admiral (frightenedpotato.com)", + "frogator.com": "Leven Labs, Inc. DBA Admiral (frogator.com)", + "frogtray.com": "Leven Labs, Inc. DBA Admiral (frogtray.com)", + "fronttoad.com": "Leven Labs, Inc. DBA Admiral (fronttoad.com)", + "frugalfiestas.com": "Leven Labs, Inc. DBA Admiral (frugalfiestas.com)", + "fumblingform.com": "Leven Labs, Inc. DBA Admiral (fumblingform.com)", + "functionalcrown.com": "Leven Labs, Inc. DBA Admiral (functionalcrown.com)", + "functionalfeather.com": "Leven Labs, Inc. DBA Admiral (functionalfeather.com)", + "funoverbored.com": "Leven Labs, Inc. DBA Admiral (funoverbored.com)", + "funoverflow.com": "Leven Labs, Inc. DBA Admiral (funoverflow.com)", + "furnstudio.com": "Leven Labs, Inc. DBA Admiral (furnstudio.com)", + "furryfork.com": "Leven Labs, Inc. DBA Admiral (furryfork.com)", + "furryhorses.com": "Leven Labs, Inc. DBA Admiral (furryhorses.com)", + "futuristicapparatus.com": "Leven Labs, Inc. DBA Admiral (futuristicapparatus.com)", + "futuristicfairies.com": "Leven Labs, Inc. DBA Admiral (futuristicfairies.com)", + "futuristicfifth.com": "Leven Labs, Inc. DBA Admiral (futuristicfifth.com)", + "futuristicframe.com": "Leven Labs, Inc. DBA Admiral (futuristicframe.com)", + "fuzzyaudio.com": "Leven Labs, Inc. DBA Admiral (fuzzyaudio.com)", + "fuzzybasketball.com": "Leven Labs, Inc. DBA Admiral (fuzzybasketball.com)", + "fuzzyerror.com": "Leven Labs, Inc. DBA Admiral (fuzzyerror.com)", + "fvl1f.pw": "Leven Labs, Inc. DBA Admiral (fvl1f.pw)", + "gammamaximum.com": "Leven Labs, Inc. DBA Admiral (gammamaximum.com)", + "gardenovens.com": "Leven Labs, Inc. DBA Admiral (gardenovens.com)", + "gaudyairplane.com": "Leven Labs, Inc. DBA Admiral (gaudyairplane.com)", + "geekactive.com": "Leven Labs, Inc. DBA Admiral (geekactive.com)", + "generalprose.com": "Leven Labs, Inc. DBA Admiral (generalprose.com)", + "generateoffice.com": "Leven Labs, Inc. DBA Admiral (generateoffice.com)", + "giantsvessel.com": "Leven Labs, Inc. DBA Admiral (giantsvessel.com)", + "giddycoat.com": "Leven Labs, Inc. DBA Admiral (giddycoat.com)", + "giraffepiano.com": "Leven Labs, Inc. DBA Admiral (giraffepiano.com)", + "gitcrumbs.com": "Leven Labs, Inc. DBA Admiral (gitcrumbs.com)", + "givevacation.com": "Leven Labs, Inc. DBA Admiral (givevacation.com)", + "gladglen.com": "Leven Labs, Inc. DBA Admiral (gladglen.com)", + "gladysway.com": "Leven Labs, Inc. DBA Admiral (gladysway.com)", + "glamhawk.com": "Leven Labs, Inc. DBA Admiral (glamhawk.com)", + "gleamingcow.com": "Leven Labs, Inc. DBA Admiral (gleamingcow.com)", + "gleaminghaven.com": "Leven Labs, Inc. DBA Admiral (gleaminghaven.com)", + "glisteningguide.com": "Leven Labs, Inc. DBA Admiral (glisteningguide.com)", + "glisteningsign.com": "Leven Labs, Inc. DBA Admiral (glisteningsign.com)", + "glitteringbrook.com": "Leven Labs, Inc. DBA Admiral (glitteringbrook.com)", + "gloriousbeef.com": "Leven Labs, Inc. DBA Admiral (gloriousbeef.com)", + "glowingmeadow.com": "Leven Labs, Inc. DBA Admiral (glowingmeadow.com)", + "gluedpixel.com": "Leven Labs, Inc. DBA Admiral (gluedpixel.com)", + "goldfishgrowth.com": "Leven Labs, Inc. DBA Admiral (goldfishgrowth.com)", + "gondolagnome.com": "Leven Labs, Inc. DBA Admiral (gondolagnome.com)", + "goodbark.com": "Leven Labs, Inc. DBA Admiral (goodbark.com)", + "gorgeousedge.com": "Leven Labs, Inc. DBA Admiral (gorgeousedge.com)", + "gracefulmilk.com": "Leven Labs, Inc. DBA Admiral (gracefulmilk.com)", + "grainmass.com": "Leven Labs, Inc. DBA Admiral (grainmass.com)", + "grandfatherguitar.com": "Leven Labs, Inc. DBA Admiral (grandfatherguitar.com)", + "gravitygive.com": "Leven Labs, Inc. DBA Admiral (gravitygive.com)", + "gravitykick.com": "Leven Labs, Inc. DBA Admiral (gravitykick.com)", + "grayoranges.com": "Leven Labs, Inc. DBA Admiral (grayoranges.com)", + "grayreceipt.com": "Leven Labs, Inc. DBA Admiral (grayreceipt.com)", + "greasysquare.com": "Leven Labs, Inc. DBA Admiral (greasysquare.com)", + "greyinstrument.com": "Leven Labs, Inc. DBA Admiral (greyinstrument.com)", + "gripcorn.com": "Leven Labs, Inc. DBA Admiral (gripcorn.com)", + "groovyornament.com": "Leven Labs, Inc. DBA Admiral (groovyornament.com)", + "grouchybrothers.com": "Leven Labs, Inc. DBA Admiral (grouchybrothers.com)", + "grouchypush.com": "Leven Labs, Inc. DBA Admiral (grouchypush.com)", + "grumpydime.com": "Leven Labs, Inc. DBA Admiral (grumpydime.com)", + "grumpydrawer.com": "Leven Labs, Inc. DBA Admiral (grumpydrawer.com)", + "guardeddirection.com": "Leven Labs, Inc. DBA Admiral (guardeddirection.com)", + "guardedschool.com": "Leven Labs, Inc. DBA Admiral (guardedschool.com)", + "guessdetail.com": "Leven Labs, Inc. DBA Admiral (guessdetail.com)", + "guidecent.com": "Leven Labs, Inc. DBA Admiral (guidecent.com)", + "guildalpha.com": "Leven Labs, Inc. DBA Admiral (guildalpha.com)", + "guiltlessbasketball.com": "Leven Labs, Inc. DBA Admiral (guiltlessbasketball.com)", + "gulliblegrip.com": "Leven Labs, Inc. DBA Admiral (gulliblegrip.com)", + "gustocooking.com": "Leven Labs, Inc. DBA Admiral (gustocooking.com)", + "gustygrandmother.com": "Leven Labs, Inc. DBA Admiral (gustygrandmother.com)", + "h78xb.pw": "Leven Labs, Inc. DBA Admiral (h78xb.pw)", + "habitualhumor.com": "Leven Labs, Inc. DBA Admiral (habitualhumor.com)", + "halcyoncanyon.com": "Leven Labs, Inc. DBA Admiral (halcyoncanyon.com)", + "halcyonsculpture.com": "Leven Labs, Inc. DBA Admiral (halcyonsculpture.com)", + "hallowedinvention.com": "Leven Labs, Inc. DBA Admiral (hallowedinvention.com)", + "haltingbadge.com": "Leven Labs, Inc. DBA Admiral (haltingbadge.com)", + "haltingdivision.com": "Leven Labs, Inc. DBA Admiral (haltingdivision.com)", + "haltinggold.com": "Leven Labs, Inc. DBA Admiral (haltinggold.com)", + "hammerhearing.com": "Leven Labs, Inc. DBA Admiral (hammerhearing.com)", + "handleteeth.com": "Leven Labs, Inc. DBA Admiral (handleteeth.com)", + "handnorth.com": "Leven Labs, Inc. DBA Admiral (handnorth.com)", + "handsomehose.com": "Leven Labs, Inc. DBA Admiral (handsomehose.com)", + "handsomeindustry.com": "Leven Labs, Inc. DBA Admiral (handsomeindustry.com)", + "handsomelyhealth.com": "Leven Labs, Inc. DBA Admiral (handsomelyhealth.com)", + "handsomelythumb.com": "Leven Labs, Inc. DBA Admiral (handsomelythumb.com)", + "handsomeyam.com": "Leven Labs, Inc. DBA Admiral (handsomeyam.com)", + "handyfield.com": "Leven Labs, Inc. DBA Admiral (handyfield.com)", + "handyfireman.com": "Leven Labs, Inc. DBA Admiral (handyfireman.com)", + "handyincrease.com": "Leven Labs, Inc. DBA Admiral (handyincrease.com)", + "haplesshydrant.com": "Leven Labs, Inc. DBA Admiral (haplesshydrant.com)", + "haplessland.com": "Leven Labs, Inc. DBA Admiral (haplessland.com)", + "happysponge.com": "Leven Labs, Inc. DBA Admiral (happysponge.com)", + "harborcaption.com": "Leven Labs, Inc. DBA Admiral (harborcaption.com)", + "harborcub.com": "Leven Labs, Inc. DBA Admiral (harborcub.com)", + "harmonicbamboo.com": "Leven Labs, Inc. DBA Admiral (harmonicbamboo.com)", + "harmonywing.com": "Leven Labs, Inc. DBA Admiral (harmonywing.com)", + "headydegree.com": "Leven Labs, Inc. DBA Admiral (headydegree.com)", + "headyhook.com": "Leven Labs, Inc. DBA Admiral (headyhook.com)", + "healflowers.com": "Leven Labs, Inc. DBA Admiral (healflowers.com)", + "hearinglizards.com": "Leven Labs, Inc. DBA Admiral (hearinglizards.com)", + "heartbreakingmind.com": "Leven Labs, Inc. DBA Admiral (heartbreakingmind.com)", + "hearthorn.com": "Leven Labs, Inc. DBA Admiral (hearthorn.com)", + "heavydetail.com": "Leven Labs, Inc. DBA Admiral (heavydetail.com)", + "heavyplayground.com": "Leven Labs, Inc. DBA Admiral (heavyplayground.com)", + "helpcollar.com": "Leven Labs, Inc. DBA Admiral (helpcollar.com)", + "helpflame.com": "Leven Labs, Inc. DBA Admiral (helpflame.com)", + "hfc195b.com": "Leven Labs, Inc. DBA Admiral (hfc195b.com)", + "highfalutinbox.com": "Leven Labs, Inc. DBA Admiral (highfalutinbox.com)", + "highfalutinhoney.com": "Leven Labs, Inc. DBA Admiral (highfalutinhoney.com)", + "hilariouszinc.com": "Leven Labs, Inc. DBA Admiral (hilariouszinc.com)", + "historicalbeam.com": "Leven Labs, Inc. DBA Admiral (historicalbeam.com)", + "hocgeese.com": "Leven Labs, Inc. DBA Admiral (hocgeese.com)", + "hollowafterthought.com": "Leven Labs, Inc. DBA Admiral (hollowafterthought.com)", + "homelycrown.com": "Leven Labs, Inc. DBA Admiral (homelycrown.com)", + "homeslick.com": "Leven Labs, Inc. DBA Admiral (homeslick.com)", + "honeybulb.com": "Leven Labs, Inc. DBA Admiral (honeybulb.com)", + "honeywhipped.com": "Leven Labs, Inc. DBA Admiral (honeywhipped.com)", + "honorablehydrant.com": "Leven Labs, Inc. DBA Admiral (honorablehydrant.com)", + "honorableland.com": "Leven Labs, Inc. DBA Admiral (honorableland.com)", + "horsenectar.com": "Leven Labs, Inc. DBA Admiral (horsenectar.com)", + "hospitablehall.com": "Leven Labs, Inc. DBA Admiral (hospitablehall.com)", + "hospitablehat.com": "Leven Labs, Inc. DBA Admiral (hospitablehat.com)", + "howdyinbox.com": "Leven Labs, Inc. DBA Admiral (howdyinbox.com)", + "humdrumhobbies.com": "Leven Labs, Inc. DBA Admiral (humdrumhobbies.com)", + "humdrumtouch.com": "Leven Labs, Inc. DBA Admiral (humdrumtouch.com)", + "hurtgrape.com": "Leven Labs, Inc. DBA Admiral (hurtgrape.com)", + "hypnoticwound.com": "Leven Labs, Inc. DBA Admiral (hypnoticwound.com)", + "hystericalcloth.com": "Leven Labs, Inc. DBA Admiral (hystericalcloth.com)", + "hystericalfinger.com": "Leven Labs, Inc. DBA Admiral (hystericalfinger.com)", + "i9w8p.pw": "Leven Labs, Inc. DBA Admiral (i9w8p.pw)", + "idolscene.com": "Leven Labs, Inc. DBA Admiral (idolscene.com)", + "idyllicjazz.com": "Leven Labs, Inc. DBA Admiral (idyllicjazz.com)", + "illinvention.com": "Leven Labs, Inc. DBA Admiral (illinvention.com)", + "illustriousoatmeal.com": "Leven Labs, Inc. DBA Admiral (illustriousoatmeal.com)", + "immensehoney.com": "Leven Labs, Inc. DBA Admiral (immensehoney.com)", + "imminentshake.com": "Leven Labs, Inc. DBA Admiral (imminentshake.com)", + "importantmeat.com": "Leven Labs, Inc. DBA Admiral (importantmeat.com)", + "importedincrease.com": "Leven Labs, Inc. DBA Admiral (importedincrease.com)", + "importedinsect.com": "Leven Labs, Inc. DBA Admiral (importedinsect.com)", + "importlocate.com": "Leven Labs, Inc. DBA Admiral (importlocate.com)", + "impossibleexpansion.com": "Leven Labs, Inc. DBA Admiral (impossibleexpansion.com)", + "impossiblemove.com": "Leven Labs, Inc. DBA Admiral (impossiblemove.com)", + "impulsejewel.com": "Leven Labs, Inc. DBA Admiral (impulsejewel.com)", + "impulselumber.com": "Leven Labs, Inc. DBA Admiral (impulselumber.com)", + "incomehippo.com": "Leven Labs, Inc. DBA Admiral (incomehippo.com)", + "incompetentjoke.com": "Leven Labs, Inc. DBA Admiral (incompetentjoke.com)", + "inconclusiveaction.com": "Leven Labs, Inc. DBA Admiral (inconclusiveaction.com)", + "infamousstream.com": "Leven Labs, Inc. DBA Admiral (infamousstream.com)", + "innocentlamp.com": "Leven Labs, Inc. DBA Admiral (innocentlamp.com)", + "innocentwax.com": "Leven Labs, Inc. DBA Admiral (innocentwax.com)", + "inputicicle.com": "Leven Labs, Inc. DBA Admiral (inputicicle.com)", + "inquisitiveice.com": "Leven Labs, Inc. DBA Admiral (inquisitiveice.com)", + "inquisitiveinvention.com": "Leven Labs, Inc. DBA Admiral (inquisitiveinvention.com)", + "intelligentscissors.com": "Leven Labs, Inc. DBA Admiral (intelligentscissors.com)", + "intentlens.com": "Leven Labs, Inc. DBA Admiral (intentlens.com)", + "interestdust.com": "Leven Labs, Inc. DBA Admiral (interestdust.com)", + "internalcondition.com": "Leven Labs, Inc. DBA Admiral (internalcondition.com)", + "internalsink.com": "Leven Labs, Inc. DBA Admiral (internalsink.com)", + "iotapool.com": "Leven Labs, Inc. DBA Admiral (iotapool.com)", + "iridescentdusk.com": "Leven Labs, Inc. DBA Admiral (iridescentdusk.com)", + "iridescentvista.com": "Leven Labs, Inc. DBA Admiral (iridescentvista.com)", + "irritatingfog.com": "Leven Labs, Inc. DBA Admiral (irritatingfog.com)", + "itemslice.com": "Leven Labs, Inc. DBA Admiral (itemslice.com)", + "ivykiosk.com": "Leven Labs, Inc. DBA Admiral (ivykiosk.com)", + "j93557g.com": "Leven Labs, Inc. DBA Admiral (j93557g.com)", + "jadeitite.com": "Leven Labs, Inc. DBA Admiral (jadeitite.com)", + "jaderooster.com": "Leven Labs, Inc. DBA Admiral (jaderooster.com)", + "jailbulb.com": "Leven Labs, Inc. DBA Admiral (jailbulb.com)", + "joblessdrum.com": "Leven Labs, Inc. DBA Admiral (joblessdrum.com)", + "jollylens.com": "Leven Labs, Inc. DBA Admiral (jollylens.com)", + "joyfulkeen.com": "Leven Labs, Inc. DBA Admiral (joyfulkeen.com)", + "joyfulvibe.com": "Leven Labs, Inc. DBA Admiral (joyfulvibe.com)", + "joyoussurprise.com": "Leven Labs, Inc. DBA Admiral (joyoussurprise.com)", + "jubilantaura.com": "Leven Labs, Inc. DBA Admiral (jubilantaura.com)", + "jubilantcanyon.com": "Leven Labs, Inc. DBA Admiral (jubilantcanyon.com)", + "jubilantcascade.com": "Leven Labs, Inc. DBA Admiral (jubilantcascade.com)", + "jubilantglimmer.com": "Leven Labs, Inc. DBA Admiral (jubilantglimmer.com)", + "jubilanthush.com": "Leven Labs, Inc. DBA Admiral (jubilanthush.com)", + "jubilantlagoon.com": "Leven Labs, Inc. DBA Admiral (jubilantlagoon.com)", + "jubilantpinnacle.com": "Leven Labs, Inc. DBA Admiral (jubilantpinnacle.com)", + "jubilanttempest.com": "Leven Labs, Inc. DBA Admiral (jubilanttempest.com)", + "jubilantvista.com": "Leven Labs, Inc. DBA Admiral (jubilantvista.com)", + "jubilantwhisper.com": "Leven Labs, Inc. DBA Admiral (jubilantwhisper.com)", + "juicebard.com": "Leven Labs, Inc. DBA Admiral (juicebard.com)", + "juiceblocks.com": "Leven Labs, Inc. DBA Admiral (juiceblocks.com)", + "justicejudo.com": "Leven Labs, Inc. DBA Admiral (justicejudo.com)", + "justwebcards.com": "Leven Labs, Inc. DBA Admiral (justwebcards.com)", + "k54nw.pw": "Leven Labs, Inc. DBA Admiral (k54nw.pw)", + "kaputquill.com": "Leven Labs, Inc. DBA Admiral (kaputquill.com)", + "keenquill.com": "Leven Labs, Inc. DBA Admiral (keenquill.com)", + "kibbleandbytes.com": "Leven Labs, Inc. DBA Admiral (kibbleandbytes.com)", + "kindhush.com": "Leven Labs, Inc. DBA Admiral (kindhush.com)", + "kitesquirrel.com": "Leven Labs, Inc. DBA Admiral (kitesquirrel.com)", + "knitstamp.com": "Leven Labs, Inc. DBA Admiral (knitstamp.com)", + "knottyswing.com": "Leven Labs, Inc. DBA Admiral (knottyswing.com)", + "laboredlight.com": "Leven Labs, Inc. DBA Admiral (laboredlight.com)", + "laboredlocket.com": "Leven Labs, Inc. DBA Admiral (laboredlocket.com)", + "lameletters.com": "Leven Labs, Inc. DBA Admiral (lameletters.com)", + "lamplow.com": "Leven Labs, Inc. DBA Admiral (lamplow.com)", + "largebrass.com": "Leven Labs, Inc. DBA Admiral (largebrass.com)", + "lasttaco.com": "Leven Labs, Inc. DBA Admiral (lasttaco.com)", + "laughablelizards.com": "Leven Labs, Inc. DBA Admiral (laughablelizards.com)", + "leaplunchroom.com": "Leven Labs, Inc. DBA Admiral (leaplunchroom.com)", + "ledlocket.com": "Leven Labs, Inc. DBA Admiral (ledlocket.com)", + "leftliquid.com": "Leven Labs, Inc. DBA Admiral (leftliquid.com)", + "lemonpackage.com": "Leven Labs, Inc. DBA Admiral (lemonpackage.com)", + "lemonsandjoy.com": "Leven Labs, Inc. DBA Admiral (lemonsandjoy.com)", + "liftedknowledge.com": "Leven Labs, Inc. DBA Admiral (liftedknowledge.com)", + "lightenafterthought.com": "Leven Labs, Inc. DBA Admiral (lightenafterthought.com)", + "lighttalon.com": "Leven Labs, Inc. DBA Admiral (lighttalon.com)", + "livelumber.com": "Leven Labs, Inc. DBA Admiral (livelumber.com)", + "livelylaugh.com": "Leven Labs, Inc. DBA Admiral (livelylaugh.com)", + "livelyreward.com": "Leven Labs, Inc. DBA Admiral (livelyreward.com)", + "livingsleet.com": "Leven Labs, Inc. DBA Admiral (livingsleet.com)", + "lizardslaugh.com": "Leven Labs, Inc. DBA Admiral (lizardslaugh.com)", + "loadsurprise.com": "Leven Labs, Inc. DBA Admiral (loadsurprise.com)", + "lonelyflavor.com": "Leven Labs, Inc. DBA Admiral (lonelyflavor.com)", + "longingtrees.com": "Leven Labs, Inc. DBA Admiral (longingtrees.com)", + "looseloaf.com": "Leven Labs, Inc. DBA Admiral (looseloaf.com)", + "lorenzourban.com": "Leven Labs, Inc. DBA Admiral (lorenzourban.com)", + "losslace.com": "Leven Labs, Inc. DBA Admiral (losslace.com)", + "loudlunch.com": "Leven Labs, Inc. DBA Admiral (loudlunch.com)", + "lovelydrum.com": "Leven Labs, Inc. DBA Admiral (lovelydrum.com)", + "loveseashore.com": "Leven Labs, Inc. DBA Admiral (loveseashore.com)", + "lp3tdqle.com": "Leven Labs, Inc. DBA Admiral (lp3tdqle.com)", + "luckyzombie.com": "Leven Labs, Inc. DBA Admiral (luckyzombie.com)", + "ludicrousarch.com": "Leven Labs, Inc. DBA Admiral (ludicrousarch.com)", + "lumberamount.com": "Leven Labs, Inc. DBA Admiral (lumberamount.com)", + "luminousboulevard.com": "Leven Labs, Inc. DBA Admiral (luminousboulevard.com)", + "luminouscatalyst.com": "Leven Labs, Inc. DBA Admiral (luminouscatalyst.com)", + "luminoussculptor.com": "Leven Labs, Inc. DBA Admiral (luminoussculptor.com)", + "lumpygnome.com": "Leven Labs, Inc. DBA Admiral (lumpygnome.com)", + "lumpylumber.com": "Leven Labs, Inc. DBA Admiral (lumpylumber.com)", + "lunchroomlock.com": "Leven Labs, Inc. DBA Admiral (lunchroomlock.com)", + "lustroushaven.com": "Leven Labs, Inc. DBA Admiral (lustroushaven.com)", + "lyricshook.com": "Leven Labs, Inc. DBA Admiral (lyricshook.com)", + "maddeningpowder.com": "Leven Labs, Inc. DBA Admiral (maddeningpowder.com)", + "madebyintent.com": "Leven Labs, Inc. DBA Admiral (madebyintent.com)", + "magicaljoin.com": "Leven Labs, Inc. DBA Admiral (magicaljoin.com)", + "magiczenith.com": "Leven Labs, Inc. DBA Admiral (magiczenith.com)", + "magnetairport.com": "Leven Labs, Inc. DBA Admiral (magnetairport.com)", + "majesticmountainrange.com": "Leven Labs, Inc. DBA Admiral (majesticmountainrange.com)", + "majesticwaterscape.com": "Leven Labs, Inc. DBA Admiral (majesticwaterscape.com)", + "majesticwilderness.com": "Leven Labs, Inc. DBA Admiral (majesticwilderness.com)", + "maliciousmusic.com": "Leven Labs, Inc. DBA Admiral (maliciousmusic.com)", + "managedpush.com": "Leven Labs, Inc. DBA Admiral (managedpush.com)", + "mantrafox.com": "Leven Labs, Inc. DBA Admiral (mantrafox.com)", + "mapbasin.com": "Leven Labs, Inc. DBA Admiral (mapbasin.com)", + "marblediscussion.com": "Leven Labs, Inc. DBA Admiral (marblediscussion.com)", + "markahouse.com": "Leven Labs, Inc. DBA Admiral (markahouse.com)", + "markedmeasure.com": "Leven Labs, Inc. DBA Admiral (markedmeasure.com)", + "marketspiders.com": "Leven Labs, Inc. DBA Admiral (marketspiders.com)", + "marriedbelief.com": "Leven Labs, Inc. DBA Admiral (marriedbelief.com)", + "marriedmailbox.com": "Leven Labs, Inc. DBA Admiral (marriedmailbox.com)", + "marriedvalue.com": "Leven Labs, Inc. DBA Admiral (marriedvalue.com)", + "massivemark.com": "Leven Labs, Inc. DBA Admiral (massivemark.com)", + "materialisticmoon.com": "Leven Labs, Inc. DBA Admiral (materialisticmoon.com)", + "materialmilk.com": "Leven Labs, Inc. DBA Admiral (materialmilk.com)", + "materialparcel.com": "Leven Labs, Inc. DBA Admiral (materialparcel.com)", + "materialplayground.com": "Leven Labs, Inc. DBA Admiral (materialplayground.com)", + "meadowlullaby.com": "Leven Labs, Inc. DBA Admiral (meadowlullaby.com)", + "measlymiddle.com": "Leven Labs, Inc. DBA Admiral (measlymiddle.com)", + "meatydime.com": "Leven Labs, Inc. DBA Admiral (meatydime.com)", + "meddleplant.com": "Leven Labs, Inc. DBA Admiral (meddleplant.com)", + "mediatescarf.com": "Leven Labs, Inc. DBA Admiral (mediatescarf.com)", + "mediumshort.com": "Leven Labs, Inc. DBA Admiral (mediumshort.com)", + "mellowhush.com": "Leven Labs, Inc. DBA Admiral (mellowhush.com)", + "mellowmailbox.com": "Leven Labs, Inc. DBA Admiral (mellowmailbox.com)", + "melodiouschorus.com": "Leven Labs, Inc. DBA Admiral (melodiouschorus.com)", + "melodiouscomposition.com": "Leven Labs, Inc. DBA Admiral (melodiouscomposition.com)", + "melodioussymphony.com": "Leven Labs, Inc. DBA Admiral (melodioussymphony.com)", + "meltmilk.com": "Leven Labs, Inc. DBA Admiral (meltmilk.com)", + "memopilot.com": "Leven Labs, Inc. DBA Admiral (memopilot.com)", + "memorizematch.com": "Leven Labs, Inc. DBA Admiral (memorizematch.com)", + "memorizeneck.com": "Leven Labs, Inc. DBA Admiral (memorizeneck.com)", + "mentorsticks.com": "Leven Labs, Inc. DBA Admiral (mentorsticks.com)", + "meremark.com": "Leven Labs, Inc. DBA Admiral (meremark.com)", + "merequartz.com": "Leven Labs, Inc. DBA Admiral (merequartz.com)", + "merryopal.com": "Leven Labs, Inc. DBA Admiral (merryopal.com)", + "merryvault.com": "Leven Labs, Inc. DBA Admiral (merryvault.com)", + "messagenovice.com": "Leven Labs, Inc. DBA Admiral (messagenovice.com)", + "messyoranges.com": "Leven Labs, Inc. DBA Admiral (messyoranges.com)", + "metajaws.com": "Leven Labs, Inc. DBA Admiral (metajaws.com)", + "mightyspiders.com": "Leven Labs, Inc. DBA Admiral (mightyspiders.com)", + "mimosamajor.com": "Leven Labs, Inc. DBA Admiral (mimosamajor.com)", + "mindfulgem.com": "Leven Labs, Inc. DBA Admiral (mindfulgem.com)", + "minorcattle.com": "Leven Labs, Inc. DBA Admiral (minorcattle.com)", + "minusmental.com": "Leven Labs, Inc. DBA Admiral (minusmental.com)", + "minuteburst.com": "Leven Labs, Inc. DBA Admiral (minuteburst.com)", + "miscreantmoon.com": "Leven Labs, Inc. DBA Admiral (miscreantmoon.com)", + "mistyhorizon.com": "Leven Labs, Inc. DBA Admiral (mistyhorizon.com)", + "mittencattle.com": "Leven Labs, Inc. DBA Admiral (mittencattle.com)", + "mixedreading.com": "Leven Labs, Inc. DBA Admiral (mixedreading.com)", + "modularmental.com": "Leven Labs, Inc. DBA Admiral (modularmental.com)", + "monacobeatles.com": "Leven Labs, Inc. DBA Admiral (monacobeatles.com)", + "moorshoes.com": "Leven Labs, Inc. DBA Admiral (moorshoes.com)", + "morefriendly.com": "Leven Labs, Inc. DBA Admiral (morefriendly.com)", + "motionflowers.com": "Leven Labs, Inc. DBA Admiral (motionflowers.com)", + "motionlessbag.com": "Leven Labs, Inc. DBA Admiral (motionlessbag.com)", + "motionlessbelief.com": "Leven Labs, Inc. DBA Admiral (motionlessbelief.com)", + "motionlessmeeting.com": "Leven Labs, Inc. DBA Admiral (motionlessmeeting.com)", + "movemeal.com": "Leven Labs, Inc. DBA Admiral (movemeal.com)", + "muddledaftermath.com": "Leven Labs, Inc. DBA Admiral (muddledaftermath.com)", + "muddledmemory.com": "Leven Labs, Inc. DBA Admiral (muddledmemory.com)", + "mundanenail.com": "Leven Labs, Inc. DBA Admiral (mundanenail.com)", + "mundanepollution.com": "Leven Labs, Inc. DBA Admiral (mundanepollution.com)", + "mushywaste.com": "Leven Labs, Inc. DBA Admiral (mushywaste.com)", + "muteknife.com": "Leven Labs, Inc. DBA Admiral (muteknife.com)", + "mutemailbox.com": "Leven Labs, Inc. DBA Admiral (mutemailbox.com)", + "mysticalagoon.com": "Leven Labs, Inc. DBA Admiral (mysticalagoon.com)", + "naivestatement.com": "Leven Labs, Inc. DBA Admiral (naivestatement.com)", + "nappyattack.com": "Leven Labs, Inc. DBA Admiral (nappyattack.com)", + "nappyneck.com": "Leven Labs, Inc. DBA Admiral (nappyneck.com)", + "neatshade.com": "Leven Labs, Inc. DBA Admiral (neatshade.com)", + "nebulacrescent.com": "Leven Labs, Inc. DBA Admiral (nebulacrescent.com)", + "nebulajubilee.com": "Leven Labs, Inc. DBA Admiral (nebulajubilee.com)", + "nebulousamusement.com": "Leven Labs, Inc. DBA Admiral (nebulousamusement.com)", + "nebulousgarden.com": "Leven Labs, Inc. DBA Admiral (nebulousgarden.com)", + "nebulousquasar.com": "Leven Labs, Inc. DBA Admiral (nebulousquasar.com)", + "nebulousripple.com": "Leven Labs, Inc. DBA Admiral (nebulousripple.com)", + "needlessnorth.com": "Leven Labs, Inc. DBA Admiral (needlessnorth.com)", + "needyneedle.com": "Leven Labs, Inc. DBA Admiral (needyneedle.com)", + "neighborlywatch.com": "Leven Labs, Inc. DBA Admiral (neighborlywatch.com)", + "nervoussummer.com": "Leven Labs, Inc. DBA Admiral (nervoussummer.com)", + "newsletterjet.com": "Leven Labs, Inc. DBA Admiral (newsletterjet.com)", + "niftygraphs.com": "Leven Labs, Inc. DBA Admiral (niftygraphs.com)", + "niftyhospital.com": "Leven Labs, Inc. DBA Admiral (niftyhospital.com)", + "niftyjelly.com": "Leven Labs, Inc. DBA Admiral (niftyjelly.com)", + "niftyreports.com": "Leven Labs, Inc. DBA Admiral (niftyreports.com)", + "nightwound.com": "Leven Labs, Inc. DBA Admiral (nightwound.com)", + "nimbleplot.com": "Leven Labs, Inc. DBA Admiral (nimbleplot.com)", + "nocturnalloom.com": "Leven Labs, Inc. DBA Admiral (nocturnalloom.com)", + "nocturnalmystique.com": "Leven Labs, Inc. DBA Admiral (nocturnalmystique.com)", + "noiselessplough.com": "Leven Labs, Inc. DBA Admiral (noiselessplough.com)", + "nonchalantnerve.com": "Leven Labs, Inc. DBA Admiral (nonchalantnerve.com)", + "nondescriptcrowd.com": "Leven Labs, Inc. DBA Admiral (nondescriptcrowd.com)", + "nondescriptnote.com": "Leven Labs, Inc. DBA Admiral (nondescriptnote.com)", + "nondescriptstocking.com": "Leven Labs, Inc. DBA Admiral (nondescriptstocking.com)", + "nostalgicknot.com": "Leven Labs, Inc. DBA Admiral (nostalgicknot.com)", + "nostalgicneed.com": "Leven Labs, Inc. DBA Admiral (nostalgicneed.com)", + "notifyglass.com": "Leven Labs, Inc. DBA Admiral (notifyglass.com)", + "nudgeduck.com": "Leven Labs, Inc. DBA Admiral (nudgeduck.com)", + "nullnorth.com": "Leven Labs, Inc. DBA Admiral (nullnorth.com)", + "numberlessring.com": "Leven Labs, Inc. DBA Admiral (numberlessring.com)", + "numerousnest.com": "Leven Labs, Inc. DBA Admiral (numerousnest.com)", + "nutritiousbean.com": "Leven Labs, Inc. DBA Admiral (nutritiousbean.com)", + "nuttyorganization.com": "Leven Labs, Inc. DBA Admiral (nuttyorganization.com)", + "oafishchance.com": "Leven Labs, Inc. DBA Admiral (oafishchance.com)", + "oafishobservation.com": "Leven Labs, Inc. DBA Admiral (oafishobservation.com)", + "obscenesidewalk.com": "Leven Labs, Inc. DBA Admiral (obscenesidewalk.com)", + "observantice.com": "Leven Labs, Inc. DBA Admiral (observantice.com)", + "oldfashionedoffer.com": "Leven Labs, Inc. DBA Admiral (oldfashionedoffer.com)", + "omgthink.com": "Leven Labs, Inc. DBA Admiral (omgthink.com)", + "omniscientfeeling.com": "Leven Labs, Inc. DBA Admiral (omniscientfeeling.com)", + "onlywoofs.com": "Leven Labs, Inc. DBA Admiral (onlywoofs.com)", + "opalquill.com": "Leven Labs, Inc. DBA Admiral (opalquill.com)", + "operationchicken.com": "Leven Labs, Inc. DBA Admiral (operationchicken.com)", + "operationnail.com": "Leven Labs, Inc. DBA Admiral (operationnail.com)", + "oppositeoperation.com": "Leven Labs, Inc. DBA Admiral (oppositeoperation.com)", + "optimallimit.com": "Leven Labs, Inc. DBA Admiral (optimallimit.com)", + "opulentsylvan.com": "Leven Labs, Inc. DBA Admiral (opulentsylvan.com)", + "orientedargument.com": "Leven Labs, Inc. DBA Admiral (orientedargument.com)", + "orionember.com": "Leven Labs, Inc. DBA Admiral (orionember.com)", + "ourblogthing.com": "Leven Labs, Inc. DBA Admiral (ourblogthing.com)", + "outdoorthingy.com": "Leven Labs, Inc. DBA Admiral (outdoorthingy.com)", + "outgoinggiraffe.com": "Leven Labs, Inc. DBA Admiral (outgoinggiraffe.com)", + "outsidevibe.com": "Leven Labs, Inc. DBA Admiral (outsidevibe.com)", + "outstandingincome.com": "Leven Labs, Inc. DBA Admiral (outstandingincome.com)", + "outstandingsnails.com": "Leven Labs, Inc. DBA Admiral (outstandingsnails.com)", + "overconfidentfood.com": "Leven Labs, Inc. DBA Admiral (overconfidentfood.com)", + "overkick.com": "Leven Labs, Inc. DBA Admiral (overkick.com)", + "overratedchalk.com": "Leven Labs, Inc. DBA Admiral (overratedchalk.com)", + "owlsr.us": "Leven Labs, Inc. DBA Admiral (owlsr.us)", + "oxygenfuse.com": "Leven Labs, Inc. DBA Admiral (oxygenfuse.com)", + "pailcrime.com": "Leven Labs, Inc. DBA Admiral (pailcrime.com)", + "pailpatch.com": "Leven Labs, Inc. DBA Admiral (pailpatch.com)", + "painstakingpickle.com": "Leven Labs, Inc. DBA Admiral (painstakingpickle.com)", + "paintpear.com": "Leven Labs, Inc. DBA Admiral (paintpear.com)", + "paleleaf.com": "Leven Labs, Inc. DBA Admiral (paleleaf.com)", + "pamelarandom.com": "Leven Labs, Inc. DBA Admiral (pamelarandom.com)", + "panickycurtain.com": "Leven Labs, Inc. DBA Admiral (panickycurtain.com)", + "panickypancake.com": "Leven Labs, Inc. DBA Admiral (panickypancake.com)", + "panoramicplane.com": "Leven Labs, Inc. DBA Admiral (panoramicplane.com)", + "parallelbulb.com": "Leven Labs, Inc. DBA Admiral (parallelbulb.com)", + "parchedsofa.com": "Leven Labs, Inc. DBA Admiral (parchedsofa.com)", + "pardonpopular.com": "Leven Labs, Inc. DBA Admiral (pardonpopular.com)", + "parentpicture.com": "Leven Labs, Inc. DBA Admiral (parentpicture.com)", + "parsimoniouspolice.com": "Leven Labs, Inc. DBA Admiral (parsimoniouspolice.com)", + "partplanes.com": "Leven Labs, Inc. DBA Admiral (partplanes.com)", + "passivepolo.com": "Leven Labs, Inc. DBA Admiral (passivepolo.com)", + "pastoralroad.com": "Leven Labs, Inc. DBA Admiral (pastoralroad.com)", + "pawsnug.com": "Leven Labs, Inc. DBA Admiral (pawsnug.com)", + "peacefullimit.com": "Leven Labs, Inc. DBA Admiral (peacefullimit.com)", + "pedromister.com": "Leven Labs, Inc. DBA Admiral (pedromister.com)", + "pedropanther.com": "Leven Labs, Inc. DBA Admiral (pedropanther.com)", + "perceivequarter.com": "Leven Labs, Inc. DBA Admiral (perceivequarter.com)", + "perkyjade.com": "Leven Labs, Inc. DBA Admiral (perkyjade.com)", + "petiteumbrella.com": "Leven Labs, Inc. DBA Admiral (petiteumbrella.com)", + "philippinch.com": "Leven Labs, Inc. DBA Admiral (philippinch.com)", + "photographpan.com": "Leven Labs, Inc. DBA Admiral (photographpan.com)", + "piespower.com": "Leven Labs, Inc. DBA Admiral (piespower.com)", + "pinchsquirrel.com": "Leven Labs, Inc. DBA Admiral (pinchsquirrel.com)", + "pinkbonanza.com": "Leven Labs, Inc. DBA Admiral (pinkbonanza.com)", + "piquantgrove.com": "Leven Labs, Inc. DBA Admiral (piquantgrove.com)", + "piquantmeadow.com": "Leven Labs, Inc. DBA Admiral (piquantmeadow.com)", + "piquantpigs.com": "Leven Labs, Inc. DBA Admiral (piquantpigs.com)", + "piquantprice.com": "Leven Labs, Inc. DBA Admiral (piquantprice.com)", + "piquantvortex.com": "Leven Labs, Inc. DBA Admiral (piquantvortex.com)", + "pixeledhub.com": "Leven Labs, Inc. DBA Admiral (pixeledhub.com)", + "pizzasnut.com": "Leven Labs, Inc. DBA Admiral (pizzasnut.com)", + "placeframe.com": "Leven Labs, Inc. DBA Admiral (placeframe.com)", + "placidactivity.com": "Leven Labs, Inc. DBA Admiral (placidactivity.com)", + "placidperson.com": "Leven Labs, Inc. DBA Admiral (placidperson.com)", + "planebasin.com": "Leven Labs, Inc. DBA Admiral (planebasin.com)", + "plantdigestion.com": "Leven Labs, Inc. DBA Admiral (plantdigestion.com)", + "playfulriver.com": "Leven Labs, Inc. DBA Admiral (playfulriver.com)", + "pleasantpump.com": "Leven Labs, Inc. DBA Admiral (pleasantpump.com)", + "plotparent.com": "Leven Labs, Inc. DBA Admiral (plotparent.com)", + "plotrabbit.com": "Leven Labs, Inc. DBA Admiral (plotrabbit.com)", + "pluckypocket.com": "Leven Labs, Inc. DBA Admiral (pluckypocket.com)", + "pluckyzone.com": "Leven Labs, Inc. DBA Admiral (pluckyzone.com)", + "pocketfaucet.com": "Leven Labs, Inc. DBA Admiral (pocketfaucet.com)", + "poemprompt.com": "Leven Labs, Inc. DBA Admiral (poemprompt.com)", + "poeticpackage.com": "Leven Labs, Inc. DBA Admiral (poeticpackage.com)", + "pointdigestion.com": "Leven Labs, Inc. DBA Admiral (pointdigestion.com)", + "pointlesshour.com": "Leven Labs, Inc. DBA Admiral (pointlesshour.com)", + "pointlesspocket.com": "Leven Labs, Inc. DBA Admiral (pointlesspocket.com)", + "pointlessprofit.com": "Leven Labs, Inc. DBA Admiral (pointlessprofit.com)", + "pointlessrifle.com": "Leven Labs, Inc. DBA Admiral (pointlessrifle.com)", + "poisedfuel.com": "Leven Labs, Inc. DBA Admiral (poisedfuel.com)", + "polarismagnet.com": "Leven Labs, Inc. DBA Admiral (polarismagnet.com)", + "polishedcrescent.com": "Leven Labs, Inc. DBA Admiral (polishedcrescent.com)", + "polishedfolly.com": "Leven Labs, Inc. DBA Admiral (polishedfolly.com)", + "politeplanes.com": "Leven Labs, Inc. DBA Admiral (politeplanes.com)", + "politicalflip.com": "Leven Labs, Inc. DBA Admiral (politicalflip.com)", + "politicalporter.com": "Leven Labs, Inc. DBA Admiral (politicalporter.com)", + "popplantation.com": "Leven Labs, Inc. DBA Admiral (popplantation.com)", + "possibleboats.com": "Leven Labs, Inc. DBA Admiral (possibleboats.com)", + "possiblepencil.com": "Leven Labs, Inc. DBA Admiral (possiblepencil.com)", + "potatoinvention.com": "Leven Labs, Inc. DBA Admiral (potatoinvention.com)", + "powderjourney.com": "Leven Labs, Inc. DBA Admiral (powderjourney.com)", + "powerfulblends.com": "Leven Labs, Inc. DBA Admiral (powerfulblends.com)", + "powerfulcopper.com": "Leven Labs, Inc. DBA Admiral (powerfulcopper.com)", + "preciousplanes.com": "Leven Labs, Inc. DBA Admiral (preciousplanes.com)", + "predictplate.com": "Leven Labs, Inc. DBA Admiral (predictplate.com)", + "prefixpatriot.com": "Leven Labs, Inc. DBA Admiral (prefixpatriot.com)", + "prepareplanes.com": "Leven Labs, Inc. DBA Admiral (prepareplanes.com)", + "presetrabbits.com": "Leven Labs, Inc. DBA Admiral (presetrabbits.com)", + "previousplayground.com": "Leven Labs, Inc. DBA Admiral (previousplayground.com)", + "previouspotato.com": "Leven Labs, Inc. DBA Admiral (previouspotato.com)", + "priceypies.com": "Leven Labs, Inc. DBA Admiral (priceypies.com)", + "pricklydebt.com": "Leven Labs, Inc. DBA Admiral (pricklydebt.com)", + "pricklypollution.com": "Leven Labs, Inc. DBA Admiral (pricklypollution.com)", + "pristinegale.com": "Leven Labs, Inc. DBA Admiral (pristinegale.com)", + "probablepartner.com": "Leven Labs, Inc. DBA Admiral (probablepartner.com)", + "processplantation.com": "Leven Labs, Inc. DBA Admiral (processplantation.com)", + "producepickle.com": "Leven Labs, Inc. DBA Admiral (producepickle.com)", + "productsurfer.com": "Leven Labs, Inc. DBA Admiral (productsurfer.com)", + "profitrumour.com": "Leven Labs, Inc. DBA Admiral (profitrumour.com)", + "profusesupport.com": "Leven Labs, Inc. DBA Admiral (profusesupport.com)", + "promiseair.com": "Leven Labs, Inc. DBA Admiral (promiseair.com)", + "proofconvert.com": "Leven Labs, Inc. DBA Admiral (proofconvert.com)", + "propertypotato.com": "Leven Labs, Inc. DBA Admiral (propertypotato.com)", + "protestcopy.com": "Leven Labs, Inc. DBA Admiral (protestcopy.com)", + "psychedelicarithmetic.com": "Leven Labs, Inc. DBA Admiral (psychedelicarithmetic.com)", + "psychedelicchess.com": "Leven Labs, Inc. DBA Admiral (psychedelicchess.com)", + "publicsofa.com": "Leven Labs, Inc. DBA Admiral (publicsofa.com)", + "puffyloss.com": "Leven Labs, Inc. DBA Admiral (puffyloss.com)", + "puffypaste.com": "Leven Labs, Inc. DBA Admiral (puffypaste.com)", + "puffypull.com": "Leven Labs, Inc. DBA Admiral (puffypull.com)", + "puffypurpose.com": "Leven Labs, Inc. DBA Admiral (puffypurpose.com)", + "pulsatingmeadow.com": "Leven Labs, Inc. DBA Admiral (pulsatingmeadow.com)", + "pumpedpancake.com": "Leven Labs, Inc. DBA Admiral (pumpedpancake.com)", + "pumpedpurpose.com": "Leven Labs, Inc. DBA Admiral (pumpedpurpose.com)", + "punyplant.com": "Leven Labs, Inc. DBA Admiral (punyplant.com)", + "puppytooth.com": "Leven Labs, Inc. DBA Admiral (puppytooth.com)", + "purposepipe.com": "Leven Labs, Inc. DBA Admiral (purposepipe.com)", + "quacksquirrel.com": "Leven Labs, Inc. DBA Admiral (quacksquirrel.com)", + "quaintcan.com": "Leven Labs, Inc. DBA Admiral (quaintcan.com)", + "quaintlake.com": "Leven Labs, Inc. DBA Admiral (quaintlake.com)", + "quantumlagoon.com": "Leven Labs, Inc. DBA Admiral (quantumlagoon.com)", + "quantumshine.com": "Leven Labs, Inc. DBA Admiral (quantumshine.com)", + "queenskart.com": "Leven Labs, Inc. DBA Admiral (queenskart.com)", + "quietknowledge.com": "Leven Labs, Inc. DBA Admiral (quietknowledge.com)", + "quillkick.com": "Leven Labs, Inc. DBA Admiral (quillkick.com)", + "quirkybliss.com": "Leven Labs, Inc. DBA Admiral (quirkybliss.com)", + "quirkysugar.com": "Leven Labs, Inc. DBA Admiral (quirkysugar.com)", + "quixoticnebula.com": "Leven Labs, Inc. DBA Admiral (quixoticnebula.com)", + "quizzicalpartner.com": "Leven Labs, Inc. DBA Admiral (quizzicalpartner.com)", + "quizzicalzephyr.com": "Leven Labs, Inc. DBA Admiral (quizzicalzephyr.com)", + "rabbitbreath.com": "Leven Labs, Inc. DBA Admiral (rabbitbreath.com)", + "rabbitrifle.com": "Leven Labs, Inc. DBA Admiral (rabbitrifle.com)", + "radiantcanopy.com": "Leven Labs, Inc. DBA Admiral (radiantcanopy.com)", + "radiantlullaby.com": "Leven Labs, Inc. DBA Admiral (radiantlullaby.com)", + "radiateprose.com": "Leven Labs, Inc. DBA Admiral (radiateprose.com)", + "railwaygiraffe.com": "Leven Labs, Inc. DBA Admiral (railwaygiraffe.com)", + "railwayreason.com": "Leven Labs, Inc. DBA Admiral (railwayreason.com)", + "raintwig.com": "Leven Labs, Inc. DBA Admiral (raintwig.com)", + "rainyhand.com": "Leven Labs, Inc. DBA Admiral (rainyhand.com)", + "rainyrule.com": "Leven Labs, Inc. DBA Admiral (rainyrule.com)", + "rambunctiousflock.com": "Leven Labs, Inc. DBA Admiral (rambunctiousflock.com)", + "rangecake.com": "Leven Labs, Inc. DBA Admiral (rangecake.com)", + "rangeplayground.com": "Leven Labs, Inc. DBA Admiral (rangeplayground.com)", + "raresummer.com": "Leven Labs, Inc. DBA Admiral (raresummer.com)", + "reactjspdf.com": "Leven Labs, Inc. DBA Admiral (reactjspdf.com)", + "readingguilt.com": "Leven Labs, Inc. DBA Admiral (readingguilt.com)", + "readymoon.com": "Leven Labs, Inc. DBA Admiral (readymoon.com)", + "readysnails.com": "Leven Labs, Inc. DBA Admiral (readysnails.com)", + "realizedoor.com": "Leven Labs, Inc. DBA Admiral (realizedoor.com)", + "realizerecess.com": "Leven Labs, Inc. DBA Admiral (realizerecess.com)", + "rebelclover.com": "Leven Labs, Inc. DBA Admiral (rebelclover.com)", + "rebelhen.com": "Leven Labs, Inc. DBA Admiral (rebelhen.com)", + "rebelsubway.com": "Leven Labs, Inc. DBA Admiral (rebelsubway.com)", + "rebelswing.com": "Leven Labs, Inc. DBA Admiral (rebelswing.com)", + "receiptcent.com": "Leven Labs, Inc. DBA Admiral (receiptcent.com)", + "receptiveink.com": "Leven Labs, Inc. DBA Admiral (receptiveink.com)", + "receptivereaction.com": "Leven Labs, Inc. DBA Admiral (receptivereaction.com)", + "recessrain.com": "Leven Labs, Inc. DBA Admiral (recessrain.com)", + "reconditeprison.com": "Leven Labs, Inc. DBA Admiral (reconditeprison.com)", + "reconditerake.com": "Leven Labs, Inc. DBA Admiral (reconditerake.com)", + "reconditerespect.com": "Leven Labs, Inc. DBA Admiral (reconditerespect.com)", + "reflectivestatement.com": "Leven Labs, Inc. DBA Admiral (reflectivestatement.com)", + "refundradar.com": "Leven Labs, Inc. DBA Admiral (refundradar.com)", + "regularplants.com": "Leven Labs, Inc. DBA Admiral (regularplants.com)", + "regulatesleet.com": "Leven Labs, Inc. DBA Admiral (regulatesleet.com)", + "rehabilitatereason.com": "Leven Labs, Inc. DBA Admiral (rehabilitatereason.com)", + "relationrest.com": "Leven Labs, Inc. DBA Admiral (relationrest.com)", + "releasepath.com": "Leven Labs, Inc. DBA Admiral (releasepath.com)", + "reloadphoto.com": "Leven Labs, Inc. DBA Admiral (reloadphoto.com)", + "rememberdiscussion.com": "Leven Labs, Inc. DBA Admiral (rememberdiscussion.com)", + "rentinfinity.com": "Leven Labs, Inc. DBA Admiral (rentinfinity.com)", + "repeatsweater.com": "Leven Labs, Inc. DBA Admiral (repeatsweater.com)", + "replaceroute.com": "Leven Labs, Inc. DBA Admiral (replaceroute.com)", + "resonantbrush.com": "Leven Labs, Inc. DBA Admiral (resonantbrush.com)", + "resonantrock.com": "Leven Labs, Inc. DBA Admiral (resonantrock.com)", + "respectrain.com": "Leven Labs, Inc. DBA Admiral (respectrain.com)", + "resplendentecho.com": "Leven Labs, Inc. DBA Admiral (resplendentecho.com)", + "restrainstorm.com": "Leven Labs, Inc. DBA Admiral (restrainstorm.com)", + "restructureinvention.com": "Leven Labs, Inc. DBA Admiral (restructureinvention.com)", + "retrievemint.com": "Leven Labs, Inc. DBA Admiral (retrievemint.com)", + "rhetoricalactivity.com": "Leven Labs, Inc. DBA Admiral (rhetoricalactivity.com)", + "rhetoricalloss.com": "Leven Labs, Inc. DBA Admiral (rhetoricalloss.com)", + "rhetoricalveil.com": "Leven Labs, Inc. DBA Admiral (rhetoricalveil.com)", + "rhymezebra.com": "Leven Labs, Inc. DBA Admiral (rhymezebra.com)", + "rhythmrule.com": "Leven Labs, Inc. DBA Admiral (rhythmrule.com)", + "richstring.com": "Leven Labs, Inc. DBA Admiral (richstring.com)", + "righteouscrayon.com": "Leven Labs, Inc. DBA Admiral (righteouscrayon.com)", + "rightfulfall.com": "Leven Labs, Inc. DBA Admiral (rightfulfall.com)", + "rigidrobin.com": "Leven Labs, Inc. DBA Admiral (rigidrobin.com)", + "rigidveil.com": "Leven Labs, Inc. DBA Admiral (rigidveil.com)", + "rigorlab.com": "Leven Labs, Inc. DBA Admiral (rigorlab.com)", + "ringplant.com": "Leven Labs, Inc. DBA Admiral (ringplant.com)", + "ringsrecord.com": "Leven Labs, Inc. DBA Admiral (ringsrecord.com)", + "ritzykey.com": "Leven Labs, Inc. DBA Admiral (ritzykey.com)", + "ritzyrepresentative.com": "Leven Labs, Inc. DBA Admiral (ritzyrepresentative.com)", + "ritzyveil.com": "Leven Labs, Inc. DBA Admiral (ritzyveil.com)", + "rockpebbles.com": "Leven Labs, Inc. DBA Admiral (rockpebbles.com)", + "rollconnection.com": "Leven Labs, Inc. DBA Admiral (rollconnection.com)", + "roofrelation.com": "Leven Labs, Inc. DBA Admiral (roofrelation.com)", + "roseincome.com": "Leven Labs, Inc. DBA Admiral (roseincome.com)", + "rottenray.com": "Leven Labs, Inc. DBA Admiral (rottenray.com)", + "ruralrobin.com": "Leven Labs, Inc. DBA Admiral (ruralrobin.com)", + "rusticprice.com": "Leven Labs, Inc. DBA Admiral (rusticprice.com)", + "ruthlessdegree.com": "Leven Labs, Inc. DBA Admiral (ruthlessdegree.com)", + "ruthlessmilk.com": "Leven Labs, Inc. DBA Admiral (ruthlessmilk.com)", + "sableloss.com": "Leven Labs, Inc. DBA Admiral (sableloss.com)", + "sablesmile.com": "Leven Labs, Inc. DBA Admiral (sablesmile.com)", + "sablesong.com": "Leven Labs, Inc. DBA Admiral (sablesong.com)", + "sadloaf.com": "Leven Labs, Inc. DBA Admiral (sadloaf.com)", + "safetybrush.com": "Leven Labs, Inc. DBA Admiral (safetybrush.com)", + "saffronrefuge.com": "Leven Labs, Inc. DBA Admiral (saffronrefuge.com)", + "sagargift.com": "Leven Labs, Inc. DBA Admiral (sagargift.com)", + "saltsacademy.com": "Leven Labs, Inc. DBA Admiral (saltsacademy.com)", + "samesticks.com": "Leven Labs, Inc. DBA Admiral (samesticks.com)", + "samestretch.com": "Leven Labs, Inc. DBA Admiral (samestretch.com)", + "samplesamba.com": "Leven Labs, Inc. DBA Admiral (samplesamba.com)", + "sandstrophies.com": "Leven Labs, Inc. DBA Admiral (sandstrophies.com)", + "satisfycork.com": "Leven Labs, Inc. DBA Admiral (satisfycork.com)", + "savoryorange.com": "Leven Labs, Inc. DBA Admiral (savoryorange.com)", + "scarcecard.com": "Leven Labs, Inc. DBA Admiral (scarcecard.com)", + "scarceshock.com": "Leven Labs, Inc. DBA Admiral (scarceshock.com)", + "scarcesign.com": "Leven Labs, Inc. DBA Admiral (scarcesign.com)", + "scarcestructure.com": "Leven Labs, Inc. DBA Admiral (scarcestructure.com)", + "scarcesurprise.com": "Leven Labs, Inc. DBA Admiral (scarcesurprise.com)", + "scaredcomfort.com": "Leven Labs, Inc. DBA Admiral (scaredcomfort.com)", + "scaredsidewalk.com": "Leven Labs, Inc. DBA Admiral (scaredsidewalk.com)", + "scaredslip.com": "Leven Labs, Inc. DBA Admiral (scaredslip.com)", + "scaredsnake.com": "Leven Labs, Inc. DBA Admiral (scaredsnake.com)", + "scaredsnakes.com": "Leven Labs, Inc. DBA Admiral (scaredsnakes.com)", + "scaredsong.com": "Leven Labs, Inc. DBA Admiral (scaredsong.com)", + "scaredstomach.com": "Leven Labs, Inc. DBA Admiral (scaredstomach.com)", + "scaredswing.com": "Leven Labs, Inc. DBA Admiral (scaredswing.com)", + "scarefowl.com": "Leven Labs, Inc. DBA Admiral (scarefowl.com)", + "scarfsmash.com": "Leven Labs, Inc. DBA Admiral (scarfsmash.com)", + "scatteredheat.com": "Leven Labs, Inc. DBA Admiral (scatteredheat.com)", + "scatteredquiver.com": "Leven Labs, Inc. DBA Admiral (scatteredquiver.com)", + "scatteredstream.com": "Leven Labs, Inc. DBA Admiral (scatteredstream.com)", + "scenicapparel.com": "Leven Labs, Inc. DBA Admiral (scenicapparel.com)", + "scenicdrops.com": "Leven Labs, Inc. DBA Admiral (scenicdrops.com)", + "scientificshirt.com": "Leven Labs, Inc. DBA Admiral (scientificshirt.com)", + "scintillatingscissors.com": "Leven Labs, Inc. DBA Admiral (scintillatingscissors.com)", + "scintillatingsilver.com": "Leven Labs, Inc. DBA Admiral (scintillatingsilver.com)", + "scissorsstatement.com": "Leven Labs, Inc. DBA Admiral (scissorsstatement.com)", + "scrapesleep.com": "Leven Labs, Inc. DBA Admiral (scrapesleep.com)", + "scratchsofa.com": "Leven Labs, Inc. DBA Admiral (scratchsofa.com)", + "screechingfurniture.com": "Leven Labs, Inc. DBA Admiral (screechingfurniture.com)", + "screechingstocking.com": "Leven Labs, Inc. DBA Admiral (screechingstocking.com)", + "screechingstove.com": "Leven Labs, Inc. DBA Admiral (screechingstove.com)", + "scribbleson.com": "Leven Labs, Inc. DBA Admiral (scribbleson.com)", + "scribblestring.com": "Leven Labs, Inc. DBA Admiral (scribblestring.com)", + "scrollservice.com": "Leven Labs, Inc. DBA Admiral (scrollservice.com)", + "scrubswim.com": "Leven Labs, Inc. DBA Admiral (scrubswim.com)", + "seashoresociety.com": "Leven Labs, Inc. DBA Admiral (seashoresociety.com)", + "seatsmoke.com": "Leven Labs, Inc. DBA Admiral (seatsmoke.com)", + "secondhandfall.com": "Leven Labs, Inc. DBA Admiral (secondhandfall.com)", + "secretivesheep.com": "Leven Labs, Inc. DBA Admiral (secretivesheep.com)", + "secretspiders.com": "Leven Labs, Inc. DBA Admiral (secretspiders.com)", + "secretturtle.com": "Leven Labs, Inc. DBA Admiral (secretturtle.com)", + "seedscissors.com": "Leven Labs, Inc. DBA Admiral (seedscissors.com)", + "seemlysuggestion.com": "Leven Labs, Inc. DBA Admiral (seemlysuggestion.com)", + "selectivesummer.com": "Leven Labs, Inc. DBA Admiral (selectivesummer.com)", + "selfishsea.com": "Leven Labs, Inc. DBA Admiral (selfishsea.com)", + "selfishsnake.com": "Leven Labs, Inc. DBA Admiral (selfishsnake.com)", + "sendingspire.com": "Leven Labs, Inc. DBA Admiral (sendingspire.com)", + "sensorsmile.com": "Leven Labs, Inc. DBA Admiral (sensorsmile.com)", + "separatesort.com": "Leven Labs, Inc. DBA Admiral (separatesort.com)", + "seraphichorizon.com": "Leven Labs, Inc. DBA Admiral (seraphichorizon.com)", + "seraphicjubilee.com": "Leven Labs, Inc. DBA Admiral (seraphicjubilee.com)", + "serendipityecho.com": "Leven Labs, Inc. DBA Admiral (serendipityecho.com)", + "serenecascade.com": "Leven Labs, Inc. DBA Admiral (serenecascade.com)", + "serenepebble.com": "Leven Labs, Inc. DBA Admiral (serenepebble.com)", + "serenesurf.com": "Leven Labs, Inc. DBA Admiral (serenesurf.com)", + "serenezenith.com": "Leven Labs, Inc. DBA Admiral (serenezenith.com)", + "serioussuit.com": "Leven Labs, Inc. DBA Admiral (serioussuit.com)", + "serpentshampoo.com": "Leven Labs, Inc. DBA Admiral (serpentshampoo.com)", + "serverracer.com": "Leven Labs, Inc. DBA Admiral (serverracer.com)", + "settleshoes.com": "Leven Labs, Inc. DBA Admiral (settleshoes.com)", + "shadeship.com": "Leven Labs, Inc. DBA Admiral (shadeship.com)", + "shaggytank.com": "Leven Labs, Inc. DBA Admiral (shaggytank.com)", + "shakegoldfish.com": "Leven Labs, Inc. DBA Admiral (shakegoldfish.com)", + "shakyseat.com": "Leven Labs, Inc. DBA Admiral (shakyseat.com)", + "shakysurprise.com": "Leven Labs, Inc. DBA Admiral (shakysurprise.com)", + "shakytaste.com": "Leven Labs, Inc. DBA Admiral (shakytaste.com)", + "shallowblade.com": "Leven Labs, Inc. DBA Admiral (shallowblade.com)", + "shamerain.com": "Leven Labs, Inc. DBA Admiral (shamerain.com)", + "shapecomb.com": "Leven Labs, Inc. DBA Admiral (shapecomb.com)", + "sharkskids.com": "Leven Labs, Inc. DBA Admiral (sharkskids.com)", + "sheargovernor.com": "Leven Labs, Inc. DBA Admiral (sheargovernor.com)", + "shesubscriptions.com": "Leven Labs, Inc. DBA Admiral (shesubscriptions.com)", + "shinypond.com": "Leven Labs, Inc. DBA Admiral (shinypond.com)", + "shirtsidewalk.com": "Leven Labs, Inc. DBA Admiral (shirtsidewalk.com)", + "shiveringspot.com": "Leven Labs, Inc. DBA Admiral (shiveringspot.com)", + "shiverscissors.com": "Leven Labs, Inc. DBA Admiral (shiverscissors.com)", + "shockinggrass.com": "Leven Labs, Inc. DBA Admiral (shockinggrass.com)", + "shockingship.com": "Leven Labs, Inc. DBA Admiral (shockingship.com)", + "shredquiz.com": "Leven Labs, Inc. DBA Admiral (shredquiz.com)", + "shrillspoon.com": "Leven Labs, Inc. DBA Admiral (shrillspoon.com)", + "shydinosaurs.com": "Leven Labs, Inc. DBA Admiral (shydinosaurs.com)", + "sicksmash.com": "Leven Labs, Inc. DBA Admiral (sicksmash.com)", + "sierrakermit.com": "Leven Labs, Inc. DBA Admiral (sierrakermit.com)", + "signaturepod.com": "Leven Labs, Inc. DBA Admiral (signaturepod.com)", + "siliconslow.com": "Leven Labs, Inc. DBA Admiral (siliconslow.com)", + "sillyscrew.com": "Leven Labs, Inc. DBA Admiral (sillyscrew.com)", + "simplesidewalk.com": "Leven Labs, Inc. DBA Admiral (simplesidewalk.com)", + "simulateswing.com": "Leven Labs, Inc. DBA Admiral (simulateswing.com)", + "sincerebuffalo.com": "Leven Labs, Inc. DBA Admiral (sincerebuffalo.com)", + "sincerepelican.com": "Leven Labs, Inc. DBA Admiral (sincerepelican.com)", + "sinceresubstance.com": "Leven Labs, Inc. DBA Admiral (sinceresubstance.com)", + "singroot.com": "Leven Labs, Inc. DBA Admiral (singroot.com)", + "sinkbooks.com": "Leven Labs, Inc. DBA Admiral (sinkbooks.com)", + "sixauthority.com": "Leven Labs, Inc. DBA Admiral (sixauthority.com)", + "sixscissors.com": "Leven Labs, Inc. DBA Admiral (sixscissors.com)", + "sizzlingsmoke.com": "Leven Labs, Inc. DBA Admiral (sizzlingsmoke.com)", + "skillfuldrop.com": "Leven Labs, Inc. DBA Admiral (skillfuldrop.com)", + "skisofa.com": "Leven Labs, Inc. DBA Admiral (skisofa.com)", + "slaysweater.com": "Leven Labs, Inc. DBA Admiral (slaysweater.com)", + "slimyscarf.com": "Leven Labs, Inc. DBA Admiral (slimyscarf.com)", + "slinksuggestion.com": "Leven Labs, Inc. DBA Admiral (slinksuggestion.com)", + "slopesoap.com": "Leven Labs, Inc. DBA Admiral (slopesoap.com)", + "smallershops.com": "Leven Labs, Inc. DBA Admiral (smallershops.com)", + "smashquartz.com": "Leven Labs, Inc. DBA Admiral (smashquartz.com)", + "smashshoe.com": "Leven Labs, Inc. DBA Admiral (smashshoe.com)", + "smashsurprise.com": "Leven Labs, Inc. DBA Admiral (smashsurprise.com)", + "smilewound.com": "Leven Labs, Inc. DBA Admiral (smilewound.com)", + "smilingcattle.com": "Leven Labs, Inc. DBA Admiral (smilingcattle.com)", + "smilingswim.com": "Leven Labs, Inc. DBA Admiral (smilingswim.com)", + "smilingwaves.com": "Leven Labs, Inc. DBA Admiral (smilingwaves.com)", + "smoggysnakes.com": "Leven Labs, Inc. DBA Admiral (smoggysnakes.com)", + "smoggysongs.com": "Leven Labs, Inc. DBA Admiral (smoggysongs.com)", + "smoggystation.com": "Leven Labs, Inc. DBA Admiral (smoggystation.com)", + "snacktoken.com": "Leven Labs, Inc. DBA Admiral (snacktoken.com)", + "snakemineral.com": "Leven Labs, Inc. DBA Admiral (snakemineral.com)", + "snakeslang.com": "Leven Labs, Inc. DBA Admiral (snakeslang.com)", + "snappyreport.com": "Leven Labs, Inc. DBA Admiral (snappyreport.com)", + "sneakwind.com": "Leven Labs, Inc. DBA Admiral (sneakwind.com)", + "sneakystew.com": "Leven Labs, Inc. DBA Admiral (sneakystew.com)", + "snoresmile.com": "Leven Labs, Inc. DBA Admiral (snoresmile.com)", + "snowmentor.com": "Leven Labs, Inc. DBA Admiral (snowmentor.com)", + "softwarerumble.com": "Leven Labs, Inc. DBA Admiral (softwarerumble.com)", + "soggysponge.com": "Leven Labs, Inc. DBA Admiral (soggysponge.com)", + "soggyzoo.com": "Leven Labs, Inc. DBA Admiral (soggyzoo.com)", + "solarislabyrinth.com": "Leven Labs, Inc. DBA Admiral (solarislabyrinth.com)", + "somberscarecrow.com": "Leven Labs, Inc. DBA Admiral (somberscarecrow.com)", + "sombersea.com": "Leven Labs, Inc. DBA Admiral (sombersea.com)", + "sombersquirrel.com": "Leven Labs, Inc. DBA Admiral (sombersquirrel.com)", + "sombersticks.com": "Leven Labs, Inc. DBA Admiral (sombersticks.com)", + "sombersurprise.com": "Leven Labs, Inc. DBA Admiral (sombersurprise.com)", + "songsterritory.com": "Leven Labs, Inc. DBA Admiral (songsterritory.com)", + "soothingglade.com": "Leven Labs, Inc. DBA Admiral (soothingglade.com)", + "sophisticatedstove.com": "Leven Labs, Inc. DBA Admiral (sophisticatedstove.com)", + "sordidsmile.com": "Leven Labs, Inc. DBA Admiral (sordidsmile.com)", + "soresidewalk.com": "Leven Labs, Inc. DBA Admiral (soresidewalk.com)", + "soresneeze.com": "Leven Labs, Inc. DBA Admiral (soresneeze.com)", + "sorethunder.com": "Leven Labs, Inc. DBA Admiral (sorethunder.com)", + "soretrain.com": "Leven Labs, Inc. DBA Admiral (soretrain.com)", + "sortanoisy.com": "Leven Labs, Inc. DBA Admiral (sortanoisy.com)", + "sortsail.com": "Leven Labs, Inc. DBA Admiral (sortsail.com)", + "sortsummer.com": "Leven Labs, Inc. DBA Admiral (sortsummer.com)", + "soundstocking.com": "Leven Labs, Inc. DBA Admiral (soundstocking.com)", + "sowlettuce.com": "Leven Labs, Inc. DBA Admiral (sowlettuce.com)", + "spadelocket.com": "Leven Labs, Inc. DBA Admiral (spadelocket.com)", + "sparkgoal.com": "Leven Labs, Inc. DBA Admiral (sparkgoal.com)", + "sparklingshelf.com": "Leven Labs, Inc. DBA Admiral (sparklingshelf.com)", + "specialscissors.com": "Leven Labs, Inc. DBA Admiral (specialscissors.com)", + "spectacularstamp.com": "Leven Labs, Inc. DBA Admiral (spectacularstamp.com)", + "spellmist.com": "Leven Labs, Inc. DBA Admiral (spellmist.com)", + "spellsalsa.com": "Leven Labs, Inc. DBA Admiral (spellsalsa.com)", + "spiffymachine.com": "Leven Labs, Inc. DBA Admiral (spiffymachine.com)", + "spirebaboon.com": "Leven Labs, Inc. DBA Admiral (spirebaboon.com)", + "spookyexchange.com": "Leven Labs, Inc. DBA Admiral (spookyexchange.com)", + "spookyskate.com": "Leven Labs, Inc. DBA Admiral (spookyskate.com)", + "spookysleet.com": "Leven Labs, Inc. DBA Admiral (spookysleet.com)", + "spookystitch.com": "Leven Labs, Inc. DBA Admiral (spookystitch.com)", + "spoonsilk.com": "Leven Labs, Inc. DBA Admiral (spoonsilk.com)", + "spotlessstamp.com": "Leven Labs, Inc. DBA Admiral (spotlessstamp.com)", + "spottednoise.com": "Leven Labs, Inc. DBA Admiral (spottednoise.com)", + "springolive.com": "Leven Labs, Inc. DBA Admiral (springolive.com)", + "springsister.com": "Leven Labs, Inc. DBA Admiral (springsister.com)", + "springsnails.com": "Leven Labs, Inc. DBA Admiral (springsnails.com)", + "sproutingbag.com": "Leven Labs, Inc. DBA Admiral (sproutingbag.com)", + "sprydelta.com": "Leven Labs, Inc. DBA Admiral (sprydelta.com)", + "sprysummit.com": "Leven Labs, Inc. DBA Admiral (sprysummit.com)", + "spuriousair.com": "Leven Labs, Inc. DBA Admiral (spuriousair.com)", + "spuriousbase.com": "Leven Labs, Inc. DBA Admiral (spuriousbase.com)", + "spurioussquirrel.com": "Leven Labs, Inc. DBA Admiral (spurioussquirrel.com)", + "spuriousstranger.com": "Leven Labs, Inc. DBA Admiral (spuriousstranger.com)", + "spysubstance.com": "Leven Labs, Inc. DBA Admiral (spysubstance.com)", + "squalidscrew.com": "Leven Labs, Inc. DBA Admiral (squalidscrew.com)", + "squeakzinc.com": "Leven Labs, Inc. DBA Admiral (squeakzinc.com)", + "squealingturn.com": "Leven Labs, Inc. DBA Admiral (squealingturn.com)", + "stakingbasket.com": "Leven Labs, Inc. DBA Admiral (stakingbasket.com)", + "stakingshock.com": "Leven Labs, Inc. DBA Admiral (stakingshock.com)", + "stakingsmile.com": "Leven Labs, Inc. DBA Admiral (stakingsmile.com)", + "staleshow.com": "Leven Labs, Inc. DBA Admiral (staleshow.com)", + "stalesummer.com": "Leven Labs, Inc. DBA Admiral (stalesummer.com)", + "starkscale.com": "Leven Labs, Inc. DBA Admiral (starkscale.com)", + "startingcars.com": "Leven Labs, Inc. DBA Admiral (startingcars.com)", + "statshunt.com": "Leven Labs, Inc. DBA Admiral (statshunt.com)", + "statuesqueship.com": "Leven Labs, Inc. DBA Admiral (statuesqueship.com)", + "stayaction.com": "Leven Labs, Inc. DBA Admiral (stayaction.com)", + "steadfastseat.com": "Leven Labs, Inc. DBA Admiral (steadfastseat.com)", + "steadfastsound.com": "Leven Labs, Inc. DBA Admiral (steadfastsound.com)", + "steadfastsystem.com": "Leven Labs, Inc. DBA Admiral (steadfastsystem.com)", + "steadycopper.com": "Leven Labs, Inc. DBA Admiral (steadycopper.com)", + "stealsteel.com": "Leven Labs, Inc. DBA Admiral (stealsteel.com)", + "steepscale.com": "Leven Labs, Inc. DBA Admiral (steepscale.com)", + "steepsister.com": "Leven Labs, Inc. DBA Admiral (steepsister.com)", + "steepsquirrel.com": "Leven Labs, Inc. DBA Admiral (steepsquirrel.com)", + "stepcattle.com": "Leven Labs, Inc. DBA Admiral (stepcattle.com)", + "stepplane.com": "Leven Labs, Inc. DBA Admiral (stepplane.com)", + "stepwisevideo.com": "Leven Labs, Inc. DBA Admiral (stepwisevideo.com)", + "stereoproxy.com": "Leven Labs, Inc. DBA Admiral (stereoproxy.com)", + "stereotypedsugar.com": "Leven Labs, Inc. DBA Admiral (stereotypedsugar.com)", + "stewspiders.com": "Leven Labs, Inc. DBA Admiral (stewspiders.com)", + "stiffgame.com": "Leven Labs, Inc. DBA Admiral (stiffgame.com)", + "stiffstem.com": "Leven Labs, Inc. DBA Admiral (stiffstem.com)", + "stimulatingsneeze.com": "Leven Labs, Inc. DBA Admiral (stimulatingsneeze.com)", + "stingsquirrel.com": "Leven Labs, Inc. DBA Admiral (stingsquirrel.com)", + "stingycrush.com": "Leven Labs, Inc. DBA Admiral (stingycrush.com)", + "stingyshoe.com": "Leven Labs, Inc. DBA Admiral (stingyshoe.com)", + "stingyspoon.com": "Leven Labs, Inc. DBA Admiral (stingyspoon.com)", + "stockingsleet.com": "Leven Labs, Inc. DBA Admiral (stockingsleet.com)", + "stockingsneeze.com": "Leven Labs, Inc. DBA Admiral (stockingsneeze.com)", + "stomachscience.com": "Leven Labs, Inc. DBA Admiral (stomachscience.com)", + "stonechin.com": "Leven Labs, Inc. DBA Admiral (stonechin.com)", + "stopstomach.com": "Leven Labs, Inc. DBA Admiral (stopstomach.com)", + "stormyachiever.com": "Leven Labs, Inc. DBA Admiral (stormyachiever.com)", + "stormyfold.com": "Leven Labs, Inc. DBA Admiral (stormyfold.com)", + "straightnest.com": "Leven Labs, Inc. DBA Admiral (straightnest.com)", + "strangeclocks.com": "Leven Labs, Inc. DBA Admiral (strangeclocks.com)", + "strangersponge.com": "Leven Labs, Inc. DBA Admiral (strangersponge.com)", + "strangesink.com": "Leven Labs, Inc. DBA Admiral (strangesink.com)", + "streetsort.com": "Leven Labs, Inc. DBA Admiral (streetsort.com)", + "stretchsister.com": "Leven Labs, Inc. DBA Admiral (stretchsister.com)", + "stretchsneeze.com": "Leven Labs, Inc. DBA Admiral (stretchsneeze.com)", + "stretchsquirrel.com": "Leven Labs, Inc. DBA Admiral (stretchsquirrel.com)", + "stripedbat.com": "Leven Labs, Inc. DBA Admiral (stripedbat.com)", + "strivesidewalk.com": "Leven Labs, Inc. DBA Admiral (strivesidewalk.com)", + "strivesquirrel.com": "Leven Labs, Inc. DBA Admiral (strivesquirrel.com)", + "strokesystem.com": "Leven Labs, Inc. DBA Admiral (strokesystem.com)", + "stupendoussleet.com": "Leven Labs, Inc. DBA Admiral (stupendoussleet.com)", + "stupendoussnow.com": "Leven Labs, Inc. DBA Admiral (stupendoussnow.com)", + "stupidscene.com": "Leven Labs, Inc. DBA Admiral (stupidscene.com)", + "sturdysnail.com": "Leven Labs, Inc. DBA Admiral (sturdysnail.com)", + "subletyoke.com": "Leven Labs, Inc. DBA Admiral (subletyoke.com)", + "sublimequartz.com": "Leven Labs, Inc. DBA Admiral (sublimequartz.com)", + "subsequentswim.com": "Leven Labs, Inc. DBA Admiral (subsequentswim.com)", + "substantialcarpenter.com": "Leven Labs, Inc. DBA Admiral (substantialcarpenter.com)", + "substantialgrade.com": "Leven Labs, Inc. DBA Admiral (substantialgrade.com)", + "succeedscene.com": "Leven Labs, Inc. DBA Admiral (succeedscene.com)", + "successfulscent.com": "Leven Labs, Inc. DBA Admiral (successfulscent.com)", + "suddensoda.com": "Leven Labs, Inc. DBA Admiral (suddensoda.com)", + "sugarfriction.com": "Leven Labs, Inc. DBA Admiral (sugarfriction.com)", + "suggestionbridge.com": "Leven Labs, Inc. DBA Admiral (suggestionbridge.com)", + "sulkycook.com": "Leven Labs, Inc. DBA Admiral (sulkycook.com)", + "summerobject.com": "Leven Labs, Inc. DBA Admiral (summerobject.com)", + "sunshinegates.com": "Leven Labs, Inc. DBA Admiral (sunshinegates.com)", + "superchichair.com": "Leven Labs, Inc. DBA Admiral (superchichair.com)", + "superficialeyes.com": "Leven Labs, Inc. DBA Admiral (superficialeyes.com)", + "superficialspring.com": "Leven Labs, Inc. DBA Admiral (superficialspring.com)", + "superficialsquare.com": "Leven Labs, Inc. DBA Admiral (superficialsquare.com)", + "superviseshoes.com": "Leven Labs, Inc. DBA Admiral (superviseshoes.com)", + "supportwaves.com": "Leven Labs, Inc. DBA Admiral (supportwaves.com)", + "suspectmark.com": "Leven Labs, Inc. DBA Admiral (suspectmark.com)", + "swankysquare.com": "Leven Labs, Inc. DBA Admiral (swankysquare.com)", + "swellstocking.com": "Leven Labs, Inc. DBA Admiral (swellstocking.com)", + "swelteringsleep.com": "Leven Labs, Inc. DBA Admiral (swelteringsleep.com)", + "swimfreely.com": "Leven Labs, Inc. DBA Admiral (swimfreely.com)", + "swingslip.com": "Leven Labs, Inc. DBA Admiral (swingslip.com)", + "swordgoose.com": "Leven Labs, Inc. DBA Admiral (swordgoose.com)", + "syllablesight.com": "Leven Labs, Inc. DBA Admiral (syllablesight.com)", + "synonymousrule.com": "Leven Labs, Inc. DBA Admiral (synonymousrule.com)", + "synonymoussticks.com": "Leven Labs, Inc. DBA Admiral (synonymoussticks.com)", + "synthesizescarecrow.com": "Leven Labs, Inc. DBA Admiral (synthesizescarecrow.com)", + "tackytrains.com": "Leven Labs, Inc. DBA Admiral (tackytrains.com)", + "tacojournal.com": "Leven Labs, Inc. DBA Admiral (tacojournal.com)", + "talltouch.com": "Leven Labs, Inc. DBA Admiral (talltouch.com)", + "tangibleteam.com": "Leven Labs, Inc. DBA Admiral (tangibleteam.com)", + "tangletrace.com": "Leven Labs, Inc. DBA Admiral (tangletrace.com)", + "tangyamount.com": "Leven Labs, Inc. DBA Admiral (tangyamount.com)", + "tangycover.com": "Leven Labs, Inc. DBA Admiral (tangycover.com)", + "tastelesstrees.com": "Leven Labs, Inc. DBA Admiral (tastelesstrees.com)", + "tastesnake.com": "Leven Labs, Inc. DBA Admiral (tastesnake.com)", + "tawdryson.com": "Leven Labs, Inc. DBA Admiral (tawdryson.com)", + "tdzvm.pw": "Leven Labs, Inc. DBA Admiral (tdzvm.pw)", + "teacupbooks.com": "Leven Labs, Inc. DBA Admiral (teacupbooks.com)", + "tearfulglass.com": "Leven Labs, Inc. DBA Admiral (tearfulglass.com)", + "techconverter.com": "Leven Labs, Inc. DBA Admiral (techconverter.com)", + "tediousbear.com": "Leven Labs, Inc. DBA Admiral (tediousbear.com)", + "tediousticket.com": "Leven Labs, Inc. DBA Admiral (tediousticket.com)", + "tedioustooth.com": "Leven Labs, Inc. DBA Admiral (tedioustooth.com)", + "teenytinycellar.com": "Leven Labs, Inc. DBA Admiral (teenytinycellar.com)", + "teenytinyshirt.com": "Leven Labs, Inc. DBA Admiral (teenytinyshirt.com)", + "teenytinytongue.com": "Leven Labs, Inc. DBA Admiral (teenytinytongue.com)", + "telephoneapparatus.com": "Leven Labs, Inc. DBA Admiral (telephoneapparatus.com)", + "tempertrick.com": "Leven Labs, Inc. DBA Admiral (tempertrick.com)", + "tempttalk.com": "Leven Labs, Inc. DBA Admiral (tempttalk.com)", + "temptteam.com": "Leven Labs, Inc. DBA Admiral (temptteam.com)", + "tendertest.com": "Leven Labs, Inc. DBA Admiral (tendertest.com)", + "terriblethumb.com": "Leven Labs, Inc. DBA Admiral (terriblethumb.com)", + "terrifictooth.com": "Leven Labs, Inc. DBA Admiral (terrifictooth.com)", + "testadmiral.com": "Leven Labs, Inc. DBA Admiral (testadmiral.com)", + "texturetrick.com": "Leven Labs, Inc. DBA Admiral (texturetrick.com)", + "therapeuticcars.com": "Leven Labs, Inc. DBA Admiral (therapeuticcars.com)", + "thickticket.com": "Leven Labs, Inc. DBA Admiral (thickticket.com)", + "thicktrucks.com": "Leven Labs, Inc. DBA Admiral (thicktrucks.com)", + "thingsafterthought.com": "Leven Labs, Inc. DBA Admiral (thingsafterthought.com)", + "thingstaste.com": "Leven Labs, Inc. DBA Admiral (thingstaste.com)", + "thinkitten.com": "Leven Labs, Inc. DBA Admiral (thinkitten.com)", + "thinkitwice.com": "Leven Labs, Inc. DBA Admiral (thinkitwice.com)", + "thirdrespect.com": "Leven Labs, Inc. DBA Admiral (thirdrespect.com)", + "thirstytwig.com": "Leven Labs, Inc. DBA Admiral (thirstytwig.com)", + "thomastorch.com": "Leven Labs, Inc. DBA Admiral (thomastorch.com)", + "thoughtlessknot.com": "Leven Labs, Inc. DBA Admiral (thoughtlessknot.com)", + "threetruck.com": "Leven Labs, Inc. DBA Admiral (threetruck.com)", + "thrivingmarketplace.com": "Leven Labs, Inc. DBA Admiral (thrivingmarketplace.com)", + "ticketaunt.com": "Leven Labs, Inc. DBA Admiral (ticketaunt.com)", + "ticklesign.com": "Leven Labs, Inc. DBA Admiral (ticklesign.com)", + "tidymitten.com": "Leven Labs, Inc. DBA Admiral (tidymitten.com)", + "tightpowder.com": "Leven Labs, Inc. DBA Admiral (tightpowder.com)", + "tinyswans.com": "Leven Labs, Inc. DBA Admiral (tinyswans.com)", + "tinytendency.com": "Leven Labs, Inc. DBA Admiral (tinytendency.com)", + "tiredthroat.com": "Leven Labs, Inc. DBA Admiral (tiredthroat.com)", + "tiresomethunder.com": "Leven Labs, Inc. DBA Admiral (tiresomethunder.com)", + "toolcapital.com": "Leven Labs, Inc. DBA Admiral (toolcapital.com)", + "toomanyalts.com": "Leven Labs, Inc. DBA Admiral (toomanyalts.com)", + "torpidtongue.com": "Leven Labs, Inc. DBA Admiral (torpidtongue.com)", + "touristfuel.com": "Leven Labs, Inc. DBA Admiral (touristfuel.com)", + "trackcaddie.com": "Leven Labs, Inc. DBA Admiral (trackcaddie.com)", + "tradetooth.com": "Leven Labs, Inc. DBA Admiral (tradetooth.com)", + "trafficviews.com": "Leven Labs, Inc. DBA Admiral (trafficviews.com)", + "tranquilarchipelago.com": "Leven Labs, Inc. DBA Admiral (tranquilarchipelago.com)", + "tranquilcan.com": "Leven Labs, Inc. DBA Admiral (tranquilcan.com)", + "tranquilcanyon.com": "Leven Labs, Inc. DBA Admiral (tranquilcanyon.com)", + "tranquilplume.com": "Leven Labs, Inc. DBA Admiral (tranquilplume.com)", + "tranquilside.com": "Leven Labs, Inc. DBA Admiral (tranquilside.com)", + "tranquilveil.com": "Leven Labs, Inc. DBA Admiral (tranquilveil.com)", + "tranquilveranda.com": "Leven Labs, Inc. DBA Admiral (tranquilveranda.com)", + "trappush.com": "Leven Labs, Inc. DBA Admiral (trappush.com)", + "treadbun.com": "Leven Labs, Inc. DBA Admiral (treadbun.com)", + "tremendousearthquake.com": "Leven Labs, Inc. DBA Admiral (tremendousearthquake.com)", + "tremendousplastic.com": "Leven Labs, Inc. DBA Admiral (tremendousplastic.com)", + "tremendoustime.com": "Leven Labs, Inc. DBA Admiral (tremendoustime.com)", + "tritebadge.com": "Leven Labs, Inc. DBA Admiral (tritebadge.com)", + "tritethunder.com": "Leven Labs, Inc. DBA Admiral (tritethunder.com)", + "tritetongue.com": "Leven Labs, Inc. DBA Admiral (tritetongue.com)", + "troubledtail.com": "Leven Labs, Inc. DBA Admiral (troubledtail.com)", + "troubleshade.com": "Leven Labs, Inc. DBA Admiral (troubleshade.com)", + "truckstomatoes.com": "Leven Labs, Inc. DBA Admiral (truckstomatoes.com)", + "truculentrate.com": "Leven Labs, Inc. DBA Admiral (truculentrate.com)", + "truebackpack.com": "Leven Labs, Inc. DBA Admiral (truebackpack.com)", + "tumbleicicle.com": "Leven Labs, Inc. DBA Admiral (tumbleicicle.com)", + "tuneupcoffee.com": "Leven Labs, Inc. DBA Admiral (tuneupcoffee.com)", + "twistloss.com": "Leven Labs, Inc. DBA Admiral (twistloss.com)", + "twistsweater.com": "Leven Labs, Inc. DBA Admiral (twistsweater.com)", + "typicalairplane.com": "Leven Labs, Inc. DBA Admiral (typicalairplane.com)", + "typicalteeth.com": "Leven Labs, Inc. DBA Admiral (typicalteeth.com)", + "tzwaw.pw": "Leven Labs, Inc. DBA Admiral (tzwaw.pw)", + "ubiquitoussea.com": "Leven Labs, Inc. DBA Admiral (ubiquitoussea.com)", + "ubiquitousyard.com": "Leven Labs, Inc. DBA Admiral (ubiquitousyard.com)", + "ultraoranges.com": "Leven Labs, Inc. DBA Admiral (ultraoranges.com)", + "ultravalid.com": "Leven Labs, Inc. DBA Admiral (ultravalid.com)", + "unablehope.com": "Leven Labs, Inc. DBA Admiral (unablehope.com)", + "unaccountablecreator.com": "Leven Labs, Inc. DBA Admiral (unaccountablecreator.com)", + "unaccountablepie.com": "Leven Labs, Inc. DBA Admiral (unaccountablepie.com)", + "unarmedindustry.com": "Leven Labs, Inc. DBA Admiral (unarmedindustry.com)", + "unbecominghall.com": "Leven Labs, Inc. DBA Admiral (unbecominghall.com)", + "unbecominglamp.com": "Leven Labs, Inc. DBA Admiral (unbecominglamp.com)", + "uncoveredexpert.com": "Leven Labs, Inc. DBA Admiral (uncoveredexpert.com)", + "understoodocean.com": "Leven Labs, Inc. DBA Admiral (understoodocean.com)", + "unequalbrake.com": "Leven Labs, Inc. DBA Admiral (unequalbrake.com)", + "unequaltrail.com": "Leven Labs, Inc. DBA Admiral (unequaltrail.com)", + "uninterestedquarter.com": "Leven Labs, Inc. DBA Admiral (uninterestedquarter.com)", + "unknowncontrol.com": "Leven Labs, Inc. DBA Admiral (unknowncontrol.com)", + "unknowncrate.com": "Leven Labs, Inc. DBA Admiral (unknowncrate.com)", + "unknownidea.com": "Leven Labs, Inc. DBA Admiral (unknownidea.com)", + "unknowntray.com": "Leven Labs, Inc. DBA Admiral (unknowntray.com)", + "untidyquestion.com": "Leven Labs, Inc. DBA Admiral (untidyquestion.com)", + "untidyrice.com": "Leven Labs, Inc. DBA Admiral (untidyrice.com)", + "unusedstone.com": "Leven Labs, Inc. DBA Admiral (unusedstone.com)", + "unusualtitle.com": "Leven Labs, Inc. DBA Admiral (unusualtitle.com)", + "unwieldyhealth.com": "Leven Labs, Inc. DBA Admiral (unwieldyhealth.com)", + "unwieldyimpulse.com": "Leven Labs, Inc. DBA Admiral (unwieldyimpulse.com)", + "unwieldyplastic.com": "Leven Labs, Inc. DBA Admiral (unwieldyplastic.com)", + "uppitytime.com": "Leven Labs, Inc. DBA Admiral (uppitytime.com)", + "uselesslumber.com": "Leven Labs, Inc. DBA Admiral (uselesslumber.com)", + "validmemo.com": "Leven Labs, Inc. DBA Admiral (validmemo.com)", + "vanfireworks.com": "Leven Labs, Inc. DBA Admiral (vanfireworks.com)", + "vanishmemory.com": "Leven Labs, Inc. DBA Admiral (vanishmemory.com)", + "velvetnova.com": "Leven Labs, Inc. DBA Admiral (velvetnova.com)", + "velvetquasar.com": "Leven Labs, Inc. DBA Admiral (velvetquasar.com)", + "vengefulgrass.com": "Leven Labs, Inc. DBA Admiral (vengefulgrass.com)", + "venomousvessel.com": "Leven Labs, Inc. DBA Admiral (venomousvessel.com)", + "venusgloria.com": "Leven Labs, Inc. DBA Admiral (venusgloria.com)", + "verdantanswer.com": "Leven Labs, Inc. DBA Admiral (verdantanswer.com)", + "verdantcrescent.com": "Leven Labs, Inc. DBA Admiral (verdantcrescent.com)", + "verdantlabyrinth.com": "Leven Labs, Inc. DBA Admiral (verdantlabyrinth.com)", + "verdantloom.com": "Leven Labs, Inc. DBA Admiral (verdantloom.com)", + "verdantsculpture.com": "Leven Labs, Inc. DBA Admiral (verdantsculpture.com)", + "verseballs.com": "Leven Labs, Inc. DBA Admiral (verseballs.com)", + "vibrantcelebration.com": "Leven Labs, Inc. DBA Admiral (vibrantcelebration.com)", + "vibrantgale.com": "Leven Labs, Inc. DBA Admiral (vibrantgale.com)", + "vibranthaven.com": "Leven Labs, Inc. DBA Admiral (vibranthaven.com)", + "vibrantpact.com": "Leven Labs, Inc. DBA Admiral (vibrantpact.com)", + "vibrantsundown.com": "Leven Labs, Inc. DBA Admiral (vibrantsundown.com)", + "vibranttalisman.com": "Leven Labs, Inc. DBA Admiral (vibranttalisman.com)", + "vibrantvale.com": "Leven Labs, Inc. DBA Admiral (vibrantvale.com)", + "victoriousrequest.com": "Leven Labs, Inc. DBA Admiral (victoriousrequest.com)", + "virtualvincent.com": "Leven Labs, Inc. DBA Admiral (virtualvincent.com)", + "vividcanopy.com": "Leven Labs, Inc. DBA Admiral (vividcanopy.com)", + "vividfrost.com": "Leven Labs, Inc. DBA Admiral (vividfrost.com)", + "vividmeadow.com": "Leven Labs, Inc. DBA Admiral (vividmeadow.com)", + "vividplume.com": "Leven Labs, Inc. DBA Admiral (vividplume.com)", + "voicelessvein.com": "Leven Labs, Inc. DBA Admiral (voicelessvein.com)", + "voidgoo.com": "Leven Labs, Inc. DBA Admiral (voidgoo.com)", + "volatileprofit.com": "Leven Labs, Inc. DBA Admiral (volatileprofit.com)", + "volatilevessel.com": "Leven Labs, Inc. DBA Admiral (volatilevessel.com)", + "voraciousgrip.com": "Leven Labs, Inc. DBA Admiral (voraciousgrip.com)", + "vq1qi.pw": "Leven Labs, Inc. DBA Admiral (vq1qi.pw)", + "waitingnumber.com": "Leven Labs, Inc. DBA Admiral (waitingnumber.com)", + "wantingwindow.com": "Leven Labs, Inc. DBA Admiral (wantingwindow.com)", + "warmafterthought.com": "Leven Labs, Inc. DBA Admiral (warmafterthought.com)", + "warmquiver.com": "Leven Labs, Inc. DBA Admiral (warmquiver.com)", + "warnwing.com": "Leven Labs, Inc. DBA Admiral (warnwing.com)", + "washbanana.com": "Leven Labs, Inc. DBA Admiral (washbanana.com)", + "wateryvan.com": "Leven Labs, Inc. DBA Admiral (wateryvan.com)", + "waterywave.com": "Leven Labs, Inc. DBA Admiral (waterywave.com)", + "waterywrist.com": "Leven Labs, Inc. DBA Admiral (waterywrist.com)", + "wearbasin.com": "Leven Labs, Inc. DBA Admiral (wearbasin.com)", + "websitesdude.com": "Leven Labs, Inc. DBA Admiral (websitesdude.com)", + "wellgroomedapparel.com": "Leven Labs, Inc. DBA Admiral (wellgroomedapparel.com)", + "wellgroomedhydrant.com": "Leven Labs, Inc. DBA Admiral (wellgroomedhydrant.com)", + "wellmadefrog.com": "Leven Labs, Inc. DBA Admiral (wellmadefrog.com)", + "westpalmweb.com": "Leven Labs, Inc. DBA Admiral (westpalmweb.com)", + "whimsicalcanyon.com": "Leven Labs, Inc. DBA Admiral (whimsicalcanyon.com)", + "whimsicalgrove.com": "Leven Labs, Inc. DBA Admiral (whimsicalgrove.com)", + "whineattempt.com": "Leven Labs, Inc. DBA Admiral (whineattempt.com)", + "whirlwealth.com": "Leven Labs, Inc. DBA Admiral (whirlwealth.com)", + "whiskyqueue.com": "Leven Labs, Inc. DBA Admiral (whiskyqueue.com)", + "whisperingcascade.com": "Leven Labs, Inc. DBA Admiral (whisperingcascade.com)", + "whisperingcrib.com": "Leven Labs, Inc. DBA Admiral (whisperingcrib.com)", + "whisperingquasar.com": "Leven Labs, Inc. DBA Admiral (whisperingquasar.com)", + "whisperingsummit.com": "Leven Labs, Inc. DBA Admiral (whisperingsummit.com)", + "whispermeeting.com": "Leven Labs, Inc. DBA Admiral (whispermeeting.com)", + "wildcommittee.com": "Leven Labs, Inc. DBA Admiral (wildcommittee.com)", + "wirecomic.com": "Leven Labs, Inc. DBA Admiral (wirecomic.com)", + "wiredforcoffee.com": "Leven Labs, Inc. DBA Admiral (wiredforcoffee.com)", + "wirypaste.com": "Leven Labs, Inc. DBA Admiral (wirypaste.com)", + "wistfulwaste.com": "Leven Labs, Inc. DBA Admiral (wistfulwaste.com)", + "wittypopcorn.com": "Leven Labs, Inc. DBA Admiral (wittypopcorn.com)", + "wittyshack.com": "Leven Labs, Inc. DBA Admiral (wittyshack.com)", + "workoperation.com": "Leven Labs, Inc. DBA Admiral (workoperation.com)", + "worldlever.com": "Leven Labs, Inc. DBA Admiral (worldlever.com)", + "worriednumber.com": "Leven Labs, Inc. DBA Admiral (worriednumber.com)", + "worriedwine.com": "Leven Labs, Inc. DBA Admiral (worriedwine.com)", + "wretchedfloor.com": "Leven Labs, Inc. DBA Admiral (wretchedfloor.com)", + "wrongpotato.com": "Leven Labs, Inc. DBA Admiral (wrongpotato.com)", + "wrongwound.com": "Leven Labs, Inc. DBA Admiral (wrongwound.com)", + "wtaccesscontrol.com": "Leven Labs, Inc. DBA Admiral (wtaccesscontrol.com)", + "xovq5nemr.com": "Leven Labs, Inc. DBA Admiral (xovq5nemr.com)", + "yieldingwoman.com": "Leven Labs, Inc. DBA Admiral (yieldingwoman.com)", + "zbwp6ghm.com": "Leven Labs, Inc. DBA Admiral (zbwp6ghm.com)", + "zephyrcatalyst.com": "Leven Labs, Inc. DBA Admiral (zephyrcatalyst.com)", + "zephyrlabyrinth.com": "Leven Labs, Inc. DBA Admiral (zephyrlabyrinth.com)", + "zestycrime.com": "Leven Labs, Inc. DBA Admiral (zestycrime.com)", + "zestyhorizon.com": "Leven Labs, Inc. DBA Admiral (zestyhorizon.com)", + "zestyrover.com": "Leven Labs, Inc. DBA Admiral (zestyrover.com)", + "zestywire.com": "Leven Labs, Inc. DBA Admiral (zestywire.com)", + "zipperxray.com": "Leven Labs, Inc. DBA Admiral (zipperxray.com)", + "zlp6s.pw": "Leven Labs, Inc. DBA Admiral (zlp6s.pw)", + "zonewedgeshaft.com": "Leven Labs, Inc. DBA Admiral (zonewedgeshaft.com)", "abtasty.com": "AB Tasty", "flagship.io": "AB Tasty", "acexedge.com": "Human Security, Inc.", diff --git a/DuckDuckGo/Settings.bundle/Root.plist b/DuckDuckGo/Settings.bundle/Root.plist index 663ccd96ed..c1463cbf2e 100644 --- a/DuckDuckGo/Settings.bundle/Root.plist +++ b/DuckDuckGo/Settings.bundle/Root.plist @@ -6,7 +6,7 @@ DefaultValue - 7.134.0 + 7.135.0 Key version Title diff --git a/fastlane/metadata/default/release_notes.txt b/fastlane/metadata/default/release_notes.txt index fb794fca00..098fd1666f 100644 --- a/fastlane/metadata/default/release_notes.txt +++ b/fastlane/metadata/default/release_notes.txt @@ -1,2 +1 @@ -- New! VPN snooze lets you pause the VPN for 20 minutes at a time. Use snooze to briefly connect through your regular IP when signing in to banking apps (or similar) without triggering their understandably thorough fraud prevention alerts. - Bug fixes and other improvements. \ No newline at end of file From d06359fcd00f62caad1cebc8c3aea8b838f7a084 Mon Sep 17 00:00:00 2001 From: Alessandro Boron Date: Tue, 27 Aug 2024 08:09:28 +1000 Subject: [PATCH 22/32] Set onboarding completed for sync end to end tests (#3259) Task/Issue URL: https://app.asana.com/0/1206329551987282/1208109718041794/f **Description**: Fix Sync UI Tests by setting the env variable ONBOARDING_COMPLETED to true. This flag ensure that the onboarding educational dialogs are not shown during the sync tests removing the need of dismissing them with manual user interactions. --- .github/workflows/sync-end-to-end.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/sync-end-to-end.yml b/.github/workflows/sync-end-to-end.yml index 9807bceb90..5f9fdb2b87 100644 --- a/.github/workflows/sync-end-to-end.yml +++ b/.github/workflows/sync-end-to-end.yml @@ -102,8 +102,8 @@ jobs: - name: Sync e2e tests run: | - export PATH="$PATH":"$HOME/.maestro/bin"; maestro cloud --apiKey ${{ secrets.MAESTRO_CLOUD_API_KEY }} --env=CODE=${{ steps.sync-recovery-code.outputs.recovery-code }} --fail-on-timeout=true --fail-on-cancellation=true --timeout=150 --ios-version=${{ matrix.os-version }} --include-tags=sync DerivedData/Build/Products/Debug-iphonesimulator/DuckDuckGo.app .maestro/ - + export PATH="$PATH":"$HOME/.maestro/bin"; maestro cloud --apiKey ${{ secrets.MAESTRO_CLOUD_API_KEY }} -e ONBOARDING_COMPLETED=true --env=CODE=${{ steps.sync-recovery-code.outputs.recovery-code }} --fail-on-timeout=true --fail-on-cancellation=true --timeout=150 --ios-version=${{ matrix.os-version }} --include-tags=sync DerivedData/Build/Products/Debug-iphonesimulator/DuckDuckGo.app .maestro/ + - name: Reset config run: | git checkout .maestro/config.yaml From a8aa0f00e5a2b0dbfd8412b9e3e17fa83794a16d Mon Sep 17 00:00:00 2001 From: Christopher Brind Date: Tue, 27 Aug 2024 12:19:24 +0100 Subject: [PATCH 23/32] fix back forward swipe gesture in landscape (#3278) Task/Issue URL: https://app.asana.com/0/392891325557410/1208145984254241/f Tech Design URL: CC: **Description**: Fixes the constraints of the uistackview so that the webview uses the full area and so that the back and forward navigation gestures works. **Steps to test this PR**: 1. Reset your simulator and set the variant manager to only use `mb` (the new onboarding) by commenting out the other variant. 2. Launch the app and browse to some sites. Switch between landscape and portrait and check that back and forward navigation gestures still work. 3. Confirm that new dax onboarding still works as expected (ie doesn't look broken because of this change) 4. Check on small phone, large phone with notch, iPad --- DuckDuckGo/Base.lproj/Tab.storyboard | 8 ++++---- DuckDuckGoTests/AutofillLoginListViewModelTests.swift | 4 +++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/DuckDuckGo/Base.lproj/Tab.storyboard b/DuckDuckGo/Base.lproj/Tab.storyboard index 63df68b5cf..d3d7bf7937 100644 --- a/DuckDuckGo/Base.lproj/Tab.storyboard +++ b/DuckDuckGo/Base.lproj/Tab.storyboard @@ -1,9 +1,9 @@ - + - + @@ -123,13 +123,13 @@ - + - + diff --git a/DuckDuckGoTests/AutofillLoginListViewModelTests.swift b/DuckDuckGoTests/AutofillLoginListViewModelTests.swift index b32d8bcbe9..e3debfceef 100644 --- a/DuckDuckGoTests/AutofillLoginListViewModelTests.swift +++ b/DuckDuckGoTests/AutofillLoginListViewModelTests.swift @@ -448,7 +448,9 @@ class AutofillLoginListViewModelTests: XCTestCase { XCTAssertFalse(model.shouldShowBreakageReporter()) } - func testWhenBreakageReporterConfigEnabledAndReportAlreadyRecentlySavedThenShowBreakageReporterIsFalse() { + func testWhenBreakageReporterConfigEnabledAndReportAlreadyRecentlySavedThenShowBreakageReporterIsFalse() throws { + throw XCTSkip("Flakey test") + let testDomain = "testDomain.com" let currentTabUrl = URL(string: "https://\(testDomain)") From 7e51fdd69bbde4e747daf6549aea90d38e11de5c Mon Sep 17 00:00:00 2001 From: bwaresiak Date: Tue, 27 Aug 2024 13:55:09 +0200 Subject: [PATCH 24/32] Release 7.135.0-1 (#3280) Please make sure all GH checks passed before merging. It can take around 20 minutes. Briefly review this PR to see if there are no issues or red flags and then merge it. --- DuckDuckGo.xcodeproj/project.pbxproj | 56 ++++++++++++++-------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/DuckDuckGo.xcodeproj/project.pbxproj b/DuckDuckGo.xcodeproj/project.pbxproj index 1e3b485b45..0ffa2eff3c 100644 --- a/DuckDuckGo.xcodeproj/project.pbxproj +++ b/DuckDuckGo.xcodeproj/project.pbxproj @@ -8806,7 +8806,7 @@ CODE_SIGN_ENTITLEMENTS = PacketTunnelProvider/PacketTunnelProvider.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = HKE973VLUW; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -8843,7 +8843,7 @@ CODE_SIGN_IDENTITY = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -8933,7 +8933,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 1; GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = ShareExtension/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -8960,7 +8960,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -9109,7 +9109,7 @@ CODE_SIGN_ENTITLEMENTS = DuckDuckGo/DuckDuckGo.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_ASSET_PATHS = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; @@ -9134,7 +9134,7 @@ CODE_SIGN_ENTITLEMENTS = DuckDuckGo/DuckDuckGo.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 1; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; INFOPLIST_FILE = DuckDuckGo/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -9203,7 +9203,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 1; DEAD_CODE_STRIPPING = NO; GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = Widgets/Info.plist; @@ -9237,7 +9237,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 1; DEAD_CODE_STRIPPING = NO; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; @@ -9270,7 +9270,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 1; GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = OpenAction/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -9300,7 +9300,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -9610,7 +9610,7 @@ CODE_SIGN_ENTITLEMENTS = DuckDuckGo/DuckDuckGoAlpha.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_ASSET_PATHS = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; @@ -9641,7 +9641,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 1; GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = ShareExtension/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -9669,7 +9669,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 1; GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = OpenAction/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -9702,7 +9702,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 1; DEAD_CODE_STRIPPING = NO; GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = Widgets/Info.plist; @@ -9732,7 +9732,7 @@ CODE_SIGN_ENTITLEMENTS = PacketTunnelProvider/PacketTunnelProviderAlpha.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = HKE973VLUW; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -9765,11 +9765,11 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 0; + DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = Core/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -10002,7 +10002,7 @@ CODE_SIGN_ENTITLEMENTS = DuckDuckGo/DuckDuckGoAlpha.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_ASSET_PATHS = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; @@ -10029,7 +10029,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -10061,7 +10061,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -10098,7 +10098,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 1; DEAD_CODE_STRIPPING = NO; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; @@ -10133,7 +10133,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -10168,11 +10168,11 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 0; + DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = Core/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -10345,11 +10345,11 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 0; + DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = Core/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -10378,10 +10378,10 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 1; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 0; + DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = Core/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; From 7f81d21651e47db141328999bc6152411cdc0bce Mon Sep 17 00:00:00 2001 From: Anh Do <18567+quanganhdo@users.noreply.github.com> Date: Tue, 27 Aug 2024 10:08:43 -0400 Subject: [PATCH 25/32] Unified feedback form for Privacy Pro (#3172) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Task/Issue URL: https://app.asana.com/0/1205922231854923/1207701941801991/f Tech Design URL: CC: **Description**: **Steps to test this PR**: 1. 2. **Definition of Done (Internal Only)**: * [ ] Does this PR satisfy our [Definition of Done](https://app.asana.com/0/1202500774821704/1207634633537039/f)? **Copy Testing**: * [ ] Use of correct apostrophes in new copy, ie `’` rather than `'` **Orientation Testing**: * [ ] Portrait * [ ] Landscape **Device Testing**: * [ ] iPhone SE (1st Gen) * [ ] iPhone 8 * [ ] iPhone X * [ ] iPhone 14 Pro * [ ] iPad **OS Testing**: * [ ] iOS 15 * [ ] iOS 16 * [ ] iOS 17 **Theme Testing**: * [ ] Light theme * [ ] Dark theme --- ###### Internal references: [Software Engineering Expectations](https://app.asana.com/0/59792373528535/199064865822552) [Technical Design Template](https://app.asana.com/0/59792373528535/184709971311943) --- DuckDuckGo.xcodeproj/project.pbxproj | 2 +- .../xcshareddata/swiftpm/Package.resolved | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/DuckDuckGo.xcodeproj/project.pbxproj b/DuckDuckGo.xcodeproj/project.pbxproj index 0ffa2eff3c..fb4f96cf42 100644 --- a/DuckDuckGo.xcodeproj/project.pbxproj +++ b/DuckDuckGo.xcodeproj/project.pbxproj @@ -10583,7 +10583,7 @@ repositoryURL = "https://github.com/DuckDuckGo/BrowserServicesKit"; requirement = { kind = exactVersion; - version = 186.0.0; + version = 186.1.0; }; }; 9F8FE9472BAE50E50071E372 /* XCRemoteSwiftPackageReference "lottie-spm" */ = { diff --git a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 70989b9021..6ba7d149b4 100644 --- a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -32,8 +32,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/DuckDuckGo/BrowserServicesKit", "state" : { - "revision" : "4a55217003ad7b2d44a1ac616d47596c0bda69dc", - "version" : "186.0.0" + "revision" : "606ccf9e86f5cad3ae83132f46241357feecf152", + "version" : "186.1.0" } }, { @@ -138,7 +138,7 @@ { "identity" : "swift-argument-parser", "kind" : "remoteSourceControl", - "location" : "https://github.com/apple/swift-argument-parser", + "location" : "https://github.com/apple/swift-argument-parser.git", "state" : { "revision" : "0fbc8848e389af3bb55c182bc19ca9d5dc2f255b", "version" : "1.4.0" From 5ca931e7a235e618818b0cc491b0cf2d3659f898 Mon Sep 17 00:00:00 2001 From: Sabrina Tardio <44158575+SabrinaTardio@users.noreply.github.com> Date: Tue, 27 Aug 2024 18:45:43 +0200 Subject: [PATCH 26/32] disable flaky test (#3283) Task/Issue URL: https://app.asana.com/0/1204186595873227/1207233637905252/f **Description**: Disabling a test until I have time to review it --- .../xcshareddata/xcschemes/DuckDuckGo.xcscheme | 3 +++ 1 file changed, 3 insertions(+) diff --git a/DuckDuckGo.xcodeproj/xcshareddata/xcschemes/DuckDuckGo.xcscheme b/DuckDuckGo.xcodeproj/xcshareddata/xcschemes/DuckDuckGo.xcscheme index 821a6a6a5e..aa78a92807 100644 --- a/DuckDuckGo.xcodeproj/xcshareddata/xcschemes/DuckDuckGo.xcscheme +++ b/DuckDuckGo.xcodeproj/xcshareddata/xcschemes/DuckDuckGo.xcscheme @@ -67,6 +67,9 @@ + + Date: Tue, 27 Aug 2024 14:09:19 -0400 Subject: [PATCH 27/32] Add PPro unified feedback form (#3248) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Task/Issue URL: https://app.asana.com/0/414235014887631/1207701941801991/f Tech Design URL: CC: **Description**: This adds PPro unified feedback form to iOS **Steps to test this PR**: 1. Check Settings > Share Feedback, the existing flow should work 2. Make sure you have a PPro subscription 3. Go to Settings > Subscription Settings, the last menu item should be FAQs and Support 4. Go to Settings > VPN > Share VPN Feedback, the existing flow should work 5. Log in as internal user, use this for the privacy config: http://www.jsonblob.com/api/1274015132613992448 6. Settings > Send Feedback should now let you choose between the current browser feedback and PPro feedback form. Play with the form and see if it works 7. Settings > Subscription Settings, the last menu item should now be Send Feedback, again check if the flow works 8. Settings > VPN > Send feedback, this should use the new unified flow. Smoke test these pixels as you go through the flow: https://app.asana.com/0/72649045549333/1207816523739193/f **Definition of Done (Internal Only)**: * [ ] Does this PR satisfy our [Definition of Done](https://app.asana.com/0/1202500774821704/1207634633537039/f)? **Copy Testing**: * [ ] Use of correct apostrophes in new copy, ie `’` rather than `'` **Orientation Testing**: * [ ] Portrait * [ ] Landscape **Device Testing**: * [ ] iPhone SE (1st Gen) * [ ] iPhone 8 * [ ] iPhone X * [ ] iPhone 14 Pro * [ ] iPad **OS Testing**: * [ ] iOS 15 * [ ] iOS 16 * [ ] iOS 17 **Theme Testing**: * [ ] Light theme * [ ] Dark theme --- ###### Internal references: [Software Engineering Expectations](https://app.asana.com/0/59792373528535/199064865822552) [Technical Design Template](https://app.asana.com/0/59792373528535/184709971311943) --- Core/Pixel.swift | 3 +- Core/PixelEvent.swift | 22 + DuckDuckGo.xcodeproj/project.pbxproj | 36 ++ .../Feedback/VPNFeedbackFormViewModel.swift | 2 +- .../Feedback/VPNMetadataCollector.swift | 30 +- DuckDuckGo/MainViewController.swift | 15 + DuckDuckGo/NetworkProtectionRootView.swift | 5 +- DuckDuckGo/NetworkProtectionStatusView.swift | 14 +- .../NetworkProtectionStatusViewModel.swift | 8 +- DuckDuckGo/SettingsOthersView.swift | 52 ++- DuckDuckGo/SettingsViewModel.swift | 11 +- .../Feedback/DefaultMetadataCollector.swift | 31 ++ .../Feedback/FeedbackCategoryProviding.swift | 182 ++++++++ .../UnifiedFeedbackFormViewModel.swift | 228 ++++++++++ .../Feedback/UnifiedFeedbackRootView.swift | 399 ++++++++++++++++++ .../Feedback/UnifiedFeedbackSender.swift | 220 ++++++++++ .../Feedback/UnifiedMetadataCollector.swift | 43 ++ .../SubscriptionSettingsViewModel.swift | 8 +- .../Views/SubscriptionSettingsView.swift | 45 +- DuckDuckGo/UserText.swift | 49 +++ DuckDuckGo/en.lproj/Localizable.strings | 132 ++++++ ...etworkProtectionStatusViewModelTests.swift | 3 +- 22 files changed, 1497 insertions(+), 41 deletions(-) create mode 100644 DuckDuckGo/Subscription/Feedback/DefaultMetadataCollector.swift create mode 100644 DuckDuckGo/Subscription/Feedback/FeedbackCategoryProviding.swift create mode 100644 DuckDuckGo/Subscription/Feedback/UnifiedFeedbackFormViewModel.swift create mode 100644 DuckDuckGo/Subscription/Feedback/UnifiedFeedbackRootView.swift create mode 100644 DuckDuckGo/Subscription/Feedback/UnifiedFeedbackSender.swift create mode 100644 DuckDuckGo/Subscription/Feedback/UnifiedMetadataCollector.swift diff --git a/Core/Pixel.swift b/Core/Pixel.swift index c2ee1ee14c..9838e5d53e 100644 --- a/Core/Pixel.swift +++ b/Core/Pixel.swift @@ -256,7 +256,8 @@ public class Pixel { headers: headers) let request = APIRequest(configuration: configuration, urlSession: .session(useMainThreadCallbackQueue: true)) request.fetch { _, error in - os_log("Pixel fired %{public}s %{public}s", log: .generalLog, type: .debug, pixelName, "\(params)") + os_log("Pixel fired %{public}s %{public}s", log: .generalLog, type: .debug, + pixelName.replacingOccurrences(of: "_", with: "."), "\(params)") onComplete(error) } } diff --git a/Core/PixelEvent.swift b/Core/PixelEvent.swift index 4772c79867..0ee619340d 100644 --- a/Core/PixelEvent.swift +++ b/Core/PixelEvent.swift @@ -779,6 +779,17 @@ extension Pixel { case duckPlayerSettingNeverOverlayYoutube case duckPlayerContingencySettingsDisplayed case duckPlayerContingencyLearnMoreClicked + + // MARK: Unified Feedback Form + case pproFeedbackFeatureRequest(description: String, source: String) + case pproFeedbackGeneralFeedback(description: String, source: String) + case pproFeedbackReportIssue(source: String, category: String, subcategory: String, description: String, metadata: String) + case pproFeedbackFormShow + case pproFeedbackActionsScreenShow(source: String) + case pproFeedbackCategoryScreenShow(source: String, reportType: String) + case pproFeedbackSubcategoryScreenShow(source: String, reportType: String, category: String) + case pproFeedbackSubmitScreenShow(source: String, reportType: String, category: String, subcategory: String) + case pproFeedbackSubmitScreenFAQClick(source: String, reportType: String, category: String, subcategory: String) } } @@ -1551,6 +1562,17 @@ extension Pixel.Event { case .duckPlayerSettingNeverOverlayYoutube: return "duckplayer_setting_never_overlay_youtube" case .duckPlayerContingencySettingsDisplayed: return "duckplayer_ios_contingency_settings-displayed" case .duckPlayerContingencyLearnMoreClicked: return "duckplayer_ios_contingency_learn-more-clicked" + + // MARK: Unified Feedback Form + case .pproFeedbackFeatureRequest: return "m_ppro_feedback_feature-request" + case .pproFeedbackGeneralFeedback: return "m_ppro_feedback_general-feedback" + case .pproFeedbackReportIssue: return "m_ppro_feedback_report-issue" + case .pproFeedbackFormShow: return "m_ppro_feedback_general-screen_show" + case .pproFeedbackActionsScreenShow: return "m_ppro_feedback_actions-screen_show" + case .pproFeedbackCategoryScreenShow: return "m_ppro_feedback_category-screen_show" + case .pproFeedbackSubcategoryScreenShow: return "m_ppro_feedback_subcategory-screen_show" + case .pproFeedbackSubmitScreenShow: return "m_ppro_feedback_submit-screen_show" + case .pproFeedbackSubmitScreenFAQClick: return "m_ppro_feedback_submit-screen-faq_click" } } } diff --git a/DuckDuckGo.xcodeproj/project.pbxproj b/DuckDuckGo.xcodeproj/project.pbxproj index fb4f96cf42..c9919dd4b2 100644 --- a/DuckDuckGo.xcodeproj/project.pbxproj +++ b/DuckDuckGo.xcodeproj/project.pbxproj @@ -785,6 +785,7 @@ B6BA95E828924730004ABA20 /* JSAlertController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B6BA95E728924730004ABA20 /* JSAlertController.storyboard */; }; B6CB93E5286445AB0090FEB4 /* Base64DownloadSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6CB93E4286445AB0090FEB4 /* Base64DownloadSession.swift */; }; BBFF18B12C76448100C48D7D /* QuerySubmittedTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFF18B02C76448100C48D7D /* QuerySubmittedTests.swift */; }; + BD10B8AA2C7629740033115D /* Logger+Subscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD10B8A92C7629740033115D /* Logger+Subscription.swift */; }; BD15DB852B959CFD00821457 /* BundleExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD15DB842B959CFD00821457 /* BundleExtension.swift */; }; BD2F39EB2C19F955005B19E7 /* NetworkProtectionDNSSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD2F39EA2C19F955005B19E7 /* NetworkProtectionDNSSettingsView.swift */; }; BD862E032B30DA170073E2EE /* VPNFeedbackFormViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD862E022B30DA170073E2EE /* VPNFeedbackFormViewModel.swift */; }; @@ -796,6 +797,12 @@ BDD3B3552B8EF8DB005857A8 /* NetworkProtectionUNNotificationPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE3766DD2AC5945500AAB575 /* NetworkProtectionUNNotificationPresenter.swift */; }; BDE219E62C406D19005D5884 /* PrivacyProDataReporting.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDE219E52C406D19005D5884 /* PrivacyProDataReporting.swift */; }; BDE219EA2C457B46005D5884 /* PrivacyProDataReporterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDE219E92C457B46005D5884 /* PrivacyProDataReporterTests.swift */; }; + BDE91CD62C6294020005CB74 /* FeedbackCategoryProviding.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDE91CD52C6294020005CB74 /* FeedbackCategoryProviding.swift */; }; + BDE91CD82C629A910005CB74 /* UnifiedFeedbackSender.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDE91CD72C629A910005CB74 /* UnifiedFeedbackSender.swift */; }; + BDE91CDA2C62A70B0005CB74 /* UnifiedMetadataCollector.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDE91CD92C62A70B0005CB74 /* UnifiedMetadataCollector.swift */; }; + BDE91CDC2C62AA3A0005CB74 /* DefaultMetadataCollector.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDE91CDB2C62AA3A0005CB74 /* DefaultMetadataCollector.swift */; }; + BDE91CDE2C62B90F0005CB74 /* UnifiedFeedbackRootView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDE91CDD2C62B90F0005CB74 /* UnifiedFeedbackRootView.swift */; }; + BDE91CE02C6515420005CB74 /* UnifiedFeedbackFormViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDE91CDF2C6515410005CB74 /* UnifiedFeedbackFormViewModel.swift */; }; BDF8D0022C1B87F4003E3B27 /* NetworkProtectionDNSSettingsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDF8D0012C1B87F4003E3B27 /* NetworkProtectionDNSSettingsViewModel.swift */; }; BDFF031D2BA3D2BD00F324C9 /* DefaultNetworkProtectionVisibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDFF031C2BA3D2BD00F324C9 /* DefaultNetworkProtectionVisibility.swift */; }; BDFF03212BA3D3CF00F324C9 /* NetworkProtectionVisibilityForTunnelProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDFF03202BA3D3CF00F324C9 /* NetworkProtectionVisibilityForTunnelProvider.swift */; }; @@ -2534,6 +2541,7 @@ B6DFE6CF2BC7E47500A9CE59 /* SwiftLintTool.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SwiftLintTool.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; B6DFE6D92BC7E61B00A9CE59 /* SwiftLintToolBundleConfiguration.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = SwiftLintToolBundleConfiguration.xcconfig; sourceTree = ""; }; BBFF18B02C76448100C48D7D /* QuerySubmittedTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = QuerySubmittedTests.swift; sourceTree = ""; }; + BD10B8A92C7629740033115D /* Logger+Subscription.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Logger+Subscription.swift"; sourceTree = ""; }; BD15DB842B959CFD00821457 /* BundleExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BundleExtension.swift; sourceTree = ""; }; BD2F39EA2C19F955005B19E7 /* NetworkProtectionDNSSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkProtectionDNSSettingsView.swift; sourceTree = ""; }; BD862E022B30DA170073E2EE /* VPNFeedbackFormViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VPNFeedbackFormViewModel.swift; sourceTree = ""; }; @@ -2544,6 +2552,12 @@ BDC234F62B27F51100D3C798 /* UniquePixel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UniquePixel.swift; sourceTree = ""; }; BDE219E52C406D19005D5884 /* PrivacyProDataReporting.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrivacyProDataReporting.swift; sourceTree = ""; }; BDE219E92C457B46005D5884 /* PrivacyProDataReporterTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PrivacyProDataReporterTests.swift; sourceTree = ""; }; + BDE91CD52C6294020005CB74 /* FeedbackCategoryProviding.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedbackCategoryProviding.swift; sourceTree = ""; }; + BDE91CD72C629A910005CB74 /* UnifiedFeedbackSender.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UnifiedFeedbackSender.swift; sourceTree = ""; }; + BDE91CD92C62A70B0005CB74 /* UnifiedMetadataCollector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UnifiedMetadataCollector.swift; sourceTree = ""; }; + BDE91CDB2C62AA3A0005CB74 /* DefaultMetadataCollector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DefaultMetadataCollector.swift; sourceTree = ""; }; + BDE91CDD2C62B90F0005CB74 /* UnifiedFeedbackRootView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UnifiedFeedbackRootView.swift; sourceTree = ""; }; + BDE91CDF2C6515410005CB74 /* UnifiedFeedbackFormViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UnifiedFeedbackFormViewModel.swift; sourceTree = ""; }; BDF8D0012C1B87F4003E3B27 /* NetworkProtectionDNSSettingsViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkProtectionDNSSettingsViewModel.swift; sourceTree = ""; }; BDFF03192BA39C5A00F324C9 /* NetworkProtectionFeatureVisibility.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkProtectionFeatureVisibility.swift; sourceTree = ""; }; BDFF031C2BA3D2BD00F324C9 /* DefaultNetworkProtectionVisibility.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DefaultNetworkProtectionVisibility.swift; sourceTree = ""; }; @@ -4828,6 +4842,19 @@ path = Feedback; sourceTree = ""; }; + BDE91CD42C6292BF0005CB74 /* Feedback */ = { + isa = PBXGroup; + children = ( + BDE91CD52C6294020005CB74 /* FeedbackCategoryProviding.swift */, + BDE91CD72C629A910005CB74 /* UnifiedFeedbackSender.swift */, + BDE91CD92C62A70B0005CB74 /* UnifiedMetadataCollector.swift */, + BDE91CDB2C62AA3A0005CB74 /* DefaultMetadataCollector.swift */, + BDE91CDD2C62B90F0005CB74 /* UnifiedFeedbackRootView.swift */, + BDE91CDF2C6515410005CB74 /* UnifiedFeedbackFormViewModel.swift */, + ); + path = Feedback; + sourceTree = ""; + }; BDFF031F2BA3D3AD00F324C9 /* Feature Visibility */ = { isa = PBXGroup; children = ( @@ -5049,6 +5076,7 @@ D664C7922B289AA000CBFA76 /* Subscription */ = { isa = PBXGroup; children = ( + BDE91CD42C6292BF0005CB74 /* Feedback */, F1FDC92F2BF4E0B3006B1435 /* SubscriptionEnvironment+Default.swift */, D60170BB2BA32DD6001911B5 /* Subscription.swift */, D6D95CE42B6DA3F200960317 /* AsyncHeadlessWebview */, @@ -5081,6 +5109,7 @@ D664C7962B289AA000CBFA76 /* Extensions */ = { isa = PBXGroup; children = ( + BD10B8A92C7629740033115D /* Logger+Subscription.swift */, F1FDC9342BF51E41006B1435 /* VPNSettings+Environment.swift */, D664C7982B289AA000CBFA76 /* WKUserContentController+Handler.swift */, ); @@ -7005,6 +7034,7 @@ files = ( EE4FB1862A28CE7200E5CBA7 /* NetworkProtectionStatusView.swift in Sources */, C17B59592A03AAD30055F2D1 /* PasswordGenerationPromptViewModel.swift in Sources */, + BDE91CDE2C62B90F0005CB74 /* UnifiedFeedbackRootView.swift in Sources */, D65625A12C232F5E006EF297 /* SettingsDuckPlayerView.swift in Sources */, D6FEB8B52B74994000C3615F /* HeadlessWebViewCoordinator.swift in Sources */, 6FE1273D2C204C2500EB5724 /* FavoritesView.swift in Sources */, @@ -7140,6 +7170,7 @@ D65625952C22D382006EF297 /* TabViewController.swift in Sources */, 8C4838B5221C8F7F008A6739 /* GestureToolbarButton.swift in Sources */, 310ECFDD282A8BB0005029B3 /* EnableAutofillSettingsTableViewCell.swift in Sources */, + BDE91CD62C6294020005CB74 /* FeedbackCategoryProviding.swift in Sources */, 6F9FFE2A2C57ADB100A238BE /* EditableShortcutsView.swift in Sources */, 1E908BF329827C480008C8F3 /* AutoconsentManagement.swift in Sources */, D6D95CE32B6D9F8800960317 /* AsyncHeadlessWebViewModel.swift in Sources */, @@ -7228,6 +7259,7 @@ 85F2FFCF2211F8E5006BB258 /* TabSwitcherViewController+KeyCommands.swift in Sources */, 3157B43327F497E90042D3D7 /* SaveLoginView.swift in Sources */, F17922E01E71BB59006E3D97 /* AutocompleteViewControllerDelegate.swift in Sources */, + BDE91CDC2C62AA3A0005CB74 /* DefaultMetadataCollector.swift in Sources */, D664C7C82B289AA200CBFA76 /* SubscriptionFlowView.swift in Sources */, EE458D142ABB652900FC651A /* NetworkProtectionDebugUtilities.swift in Sources */, 8528AE7C212EF4A200D0BD74 /* AppRatingPrompt.swift in Sources */, @@ -7325,6 +7357,7 @@ F13B4BC01F180D8A00814661 /* TabsModel.swift in Sources */, BD862E052B30DB250073E2EE /* VPNFeedbackCategory.swift in Sources */, 85AE6690209724120014CF04 /* NotificationView.swift in Sources */, + BDE91CE02C6515420005CB74 /* UnifiedFeedbackFormViewModel.swift in Sources */, 1EA51376286596A000493C6A /* PrivacyIconLogic.swift in Sources */, 980891A92238504B00313A70 /* UILabelExtension.swift in Sources */, 6FD8E51E2C5B84DE00345670 /* NewTabPageIntroMessageView.swift in Sources */, @@ -7363,6 +7396,7 @@ 85C861E628FF1B5F00189466 /* HomeViewSectionRenderersExtension.swift in Sources */, CB825C922C071B1400BCC586 /* AlertView.swift in Sources */, 1DDF40292BA04FCD006850D9 /* SettingsPrivacyProtectionsView.swift in Sources */, + BDE91CD82C629A910005CB74 /* UnifiedFeedbackSender.swift in Sources */, 6F64AA5F2C49463C00CF4489 /* ShortcutsModel.swift in Sources */, F1D477C61F2126CC0031ED49 /* OmniBarState.swift in Sources */, 85F2FFCD2211F615006BB258 /* MainViewController+KeyCommands.swift in Sources */, @@ -7461,6 +7495,7 @@ 85F98F92296F32BD00742F4A /* SyncSettingsViewController.swift in Sources */, 84E341961E2F7EFB00BDBA6F /* AppDelegate.swift in Sources */, 310D091D2799F57200DC0060 /* Download.swift in Sources */, + BDE91CDA2C62A70B0005CB74 /* UnifiedMetadataCollector.swift in Sources */, C13F3F6C2B7F88470083BE40 /* AuthConfirmationPromptViewModel.swift in Sources */, 1EEF124E2850EADE003DDE57 /* PrivacyIconView.swift in Sources */, 9FB027122C2526DD009EA190 /* OnboardingView+IntroDialogContent.swift in Sources */, @@ -7532,6 +7567,7 @@ D664C7B92B289AA200CBFA76 /* WKUserContentController+Handler.swift in Sources */, 1E8AD1D727C2E24E00ABA377 /* DownloadsListRowViewModel.swift in Sources */, 9FEA222E2C324ECD006B03BF /* ViewVisibility.swift in Sources */, + BD10B8AA2C7629740033115D /* Logger+Subscription.swift in Sources */, 1E865AF0272042DB001C74F3 /* TextSizeSettingsViewController.swift in Sources */, D6E0C1892B7A2E0D00D5E1E9 /* DesktopDownloadViewModel.swift in Sources */, 8524CC9A246DA81700E59D45 /* FullscreenDaxDialogViewController.swift in Sources */, diff --git a/DuckDuckGo/Feedback/VPNFeedbackFormViewModel.swift b/DuckDuckGo/Feedback/VPNFeedbackFormViewModel.swift index 7f79dd674e..5efcd86a22 100644 --- a/DuckDuckGo/Feedback/VPNFeedbackFormViewModel.swift +++ b/DuckDuckGo/Feedback/VPNFeedbackFormViewModel.swift @@ -72,7 +72,7 @@ final class VPNFeedbackFormViewModel: ObservableObject { viewState = .feedbackSending do { - let metadata = await metadataCollector.collectMetadata() + let metadata = await metadataCollector.collectVPNMetadata() try await feedbackSender.send(metadata: metadata, category: category, userText: feedbackFormText) viewState = .feedbackSent return true diff --git a/DuckDuckGo/Feedback/VPNMetadataCollector.swift b/DuckDuckGo/Feedback/VPNMetadataCollector.swift index 8345ec44b5..a2f6b69669 100644 --- a/DuckDuckGo/Feedback/VPNMetadataCollector.swift +++ b/DuckDuckGo/Feedback/VPNMetadataCollector.swift @@ -93,22 +93,10 @@ struct VPNMetadata: Encodable { return String(data: encodedMetadata, encoding: .utf8) } - - func toBase64() -> String { - let encoder = JSONEncoder() - encoder.outputFormatting = [.sortedKeys] - - do { - let encodedMetadata = try encoder.encode(self) - return encodedMetadata.base64EncodedString() - } catch { - return "Failed to encode metadata to JSON, error message: \(error.localizedDescription)" - } - } } protocol VPNMetadataCollector { - func collectMetadata() async -> VPNMetadata + func collectVPNMetadata() async -> VPNMetadata } final class DefaultVPNMetadataCollector: VPNMetadataCollector { @@ -130,7 +118,7 @@ final class DefaultVPNMetadataCollector: VPNMetadataCollector { self.defaults = defaults } - func collectMetadata() async -> VPNMetadata { + func collectVPNMetadata() async -> VPNMetadata { let appInfoMetadata = collectAppInfoMetadata() let deviceInfoMetadata = collectDeviceInfoMetadata() let networkInfoMetadata = await collectNetworkInformation() @@ -282,3 +270,17 @@ private extension NSError { } } + +// MARK: - Unified feedback form support + +extension VPNMetadata: UnifiedFeedbackMetadata {} + +extension DefaultVPNMetadataCollector: UnifiedMetadataCollector { + convenience init() { + self.init(statusObserver: AppDependencyProvider.shared.connectionObserver) + } + + func collectMetadata() async -> VPNMetadata? { + await collectVPNMetadata() + } +} diff --git a/DuckDuckGo/MainViewController.swift b/DuckDuckGo/MainViewController.swift index 8f9bc1dc26..37b5ea00b7 100644 --- a/DuckDuckGo/MainViewController.swift +++ b/DuckDuckGo/MainViewController.swift @@ -121,6 +121,7 @@ class MainViewController: UIViewController { private var settingsDeepLinkcancellables = Set() private let tunnelDefaults = UserDefaults.networkProtectionGroupDefaults private var vpnCancellables = Set() + private var feedbackCancellable: AnyCancellable? let privacyProDataReporter: PrivacyProDataReporting @@ -285,6 +286,7 @@ class MainViewController: UIViewController { subscribeToURLInterceptorNotifications() subscribeToSettingsDeeplinkNotifications() subscribeToNetworkProtectionEvents() + subscribeToUnifiedFeedbackNotifications() findInPageView.delegate = self findInPageBottomLayoutConstraint.constant = 0 @@ -1548,6 +1550,19 @@ class MainViewController: UIViewController { nil, .deliverImmediately) } + private func subscribeToUnifiedFeedbackNotifications() { + feedbackCancellable = NotificationCenter.default.publisher(for: .unifiedFeedbackNotification) + .receive(on: DispatchQueue.main) + .sink { _ in + DispatchQueue.main.async { [weak self] in + guard let navigationController = self?.presentedViewController as? UINavigationController else { return } + navigationController.popToRootViewController(animated: true) + ActionMessageView.present(message: UserText.vpnFeedbackFormSubmittedMessage, + presentationLocation: .withoutBottomBar) + } + } + } + private func onNetworkProtectionEntitlementMessagingChange() { if tunnelDefaults.showEntitlementAlert { presentExpiredEntitlementAlert() diff --git a/DuckDuckGo/NetworkProtectionRootView.swift b/DuckDuckGo/NetworkProtectionRootView.swift index 99a8f29244..267be495cf 100644 --- a/DuckDuckGo/NetworkProtectionRootView.swift +++ b/DuckDuckGo/NetworkProtectionRootView.swift @@ -28,12 +28,15 @@ struct NetworkProtectionRootView: View { init() { let accountManager = AppDependencyProvider.shared.subscriptionManager.accountManager + let subscriptionFeatureAvailability = AppDependencyProvider.shared.subscriptionFeatureAvailability let locationListRepository = NetworkProtectionLocationListCompositeRepository(accountManager: accountManager) + let usesUnifiedFeedbackForm = accountManager.isUserAuthenticated && subscriptionFeatureAvailability.usesUnifiedFeedbackForm statusViewModel = NetworkProtectionStatusViewModel(tunnelController: AppDependencyProvider.shared.networkProtectionTunnelController, settings: AppDependencyProvider.shared.vpnSettings, statusObserver: AppDependencyProvider.shared.connectionObserver, serverInfoObserver: AppDependencyProvider.shared.serverInfoObserver, - locationListRepository: locationListRepository) + locationListRepository: locationListRepository, + usesUnifiedFeedbackForm: usesUnifiedFeedbackForm) } var body: some View { diff --git a/DuckDuckGo/NetworkProtectionStatusView.swift b/DuckDuckGo/NetworkProtectionStatusView.swift index 5223aee773..f8508a2482 100644 --- a/DuckDuckGo/NetworkProtectionStatusView.swift +++ b/DuckDuckGo/NetworkProtectionStatusView.swift @@ -228,14 +228,22 @@ struct NetworkProtectionStatusView: View { @ViewBuilder private func about() -> some View { + let viewModel = UnifiedFeedbackFormViewModel(vpnMetadataCollector: DefaultVPNMetadataCollector(), source: .vpn) + Section { NavigationLink(UserText.netPVPNSettingsFAQ, destination: LazyView(NetworkProtectionFAQView())) .daxBodyRegular() .foregroundColor(.init(designSystemColor: .textPrimary)) - NavigationLink(UserText.netPVPNSettingsShareFeedback, destination: VPNFeedbackFormCategoryView()) - .daxBodyRegular() - .foregroundColor(.init(designSystemColor: .textPrimary)) + if statusModel.usesUnifiedFeedbackForm { + NavigationLink(UserText.subscriptionFeedback, destination: UnifiedFeedbackRootView(viewModel: viewModel)) + .daxBodyRegular() + .foregroundColor(.init(designSystemColor: .textPrimary)) + } else { + NavigationLink(UserText.netPVPNSettingsShareFeedback, destination: VPNFeedbackFormCategoryView()) + .daxBodyRegular() + .foregroundColor(.init(designSystemColor: .textPrimary)) + } } header: { Text(UserText.vpnAbout).foregroundColor(.init(designSystemColor: .textSecondary)) } diff --git a/DuckDuckGo/NetworkProtectionStatusViewModel.swift b/DuckDuckGo/NetworkProtectionStatusViewModel.swift index 53a444aabf..7e7e5dc51f 100644 --- a/DuckDuckGo/NetworkProtectionStatusViewModel.swift +++ b/DuckDuckGo/NetworkProtectionStatusViewModel.swift @@ -23,6 +23,7 @@ import NetworkProtection import WidgetKit import BrowserServicesKit import Core +import Subscription struct NetworkProtectionLocationStatusModel { enum LocationIcon { @@ -149,17 +150,22 @@ final class NetworkProtectionStatusViewModel: ObservableObject { @Published public var animationsOn: Bool = false + public let usesUnifiedFeedbackForm: Bool + public init(tunnelController: (TunnelController & TunnelSessionProvider), settings: VPNSettings, statusObserver: ConnectionStatusObserver, serverInfoObserver: ConnectionServerInfoObserver, errorObserver: ConnectionErrorObserver = ConnectionErrorObserverThroughSession(), - locationListRepository: NetworkProtectionLocationListRepository) { + locationListRepository: NetworkProtectionLocationListRepository, + usesUnifiedFeedbackForm: Bool) { self.tunnelController = tunnelController self.settings = settings self.statusObserver = statusObserver self.serverInfoObserver = serverInfoObserver self.errorObserver = errorObserver + self.usesUnifiedFeedbackForm = usesUnifiedFeedbackForm + statusMessage = Self.message(for: statusObserver.recentValue) self.headerTitle = Self.titleText(status: statusObserver.recentValue) self.statusImageID = Self.statusImageID(connected: statusObserver.recentValue.isConnected) diff --git a/DuckDuckGo/SettingsOthersView.swift b/DuckDuckGo/SettingsOthersView.swift index 9194cef3c5..96f3cab8d1 100644 --- a/DuckDuckGo/SettingsOthersView.swift +++ b/DuckDuckGo/SettingsOthersView.swift @@ -33,10 +33,36 @@ struct SettingsOthersView: View { } // Share Feedback - SettingsCellView(label: UserText.settingsFeedback, - image: Image("SettingsFeedback"), - action: { viewModel.presentLegacyView(.feedback) }, - isButton: true) + if viewModel.usesUnifiedFeedbackForm { + let formViewModel = UnifiedFeedbackFormViewModel(vpnMetadataCollector: DefaultVPNMetadataCollector(), source: .settings) + NavigationLink { + UnifiedFeedbackCategoryView(UserText.subscriptionFeedback, sources: UnifiedFeedbackFlowCategory.self, selection: $viewModel.selectedFeedbackFlow) { + if let selectedFeedbackFlow = viewModel.selectedFeedbackFlow { + switch UnifiedFeedbackFlowCategory(rawValue: selectedFeedbackFlow) { + case nil: + EmptyView() + case .browserFeedback: + LegacyFeedbackView() + case .ppro: + UnifiedFeedbackRootView(viewModel: formViewModel) + } + } + } + .onFirstAppear { + Task { + await formViewModel.process(action: .reportShow) + } + } + } label: { + SettingsCellView(label: UserText.subscriptionFeedback, + image: Image("SettingsFeedback")) + } + } else { + SettingsCellView(label: UserText.settingsFeedback, + image: Image("SettingsFeedback"), + action: { viewModel.presentLegacyView(.feedback) }, + isButton: true) + } // DuckDuckGo on Other Platforms SettingsCellView(label: UserText.duckduckgoOnOtherPlatforms, @@ -45,7 +71,25 @@ struct SettingsOthersView: View { webLinkIndicator: true, isButton: true) } + } + +} +private struct LegacyFeedbackView: View { + var body: some View { + LegacyFeedbackViewRepresentable() } +} +// swiftlint:disable force_cast +private struct LegacyFeedbackViewRepresentable: UIViewControllerRepresentable { + func makeUIViewController(context: Context) -> some UIViewController { + let storyboard = UIStoryboard(name: "Feedback", bundle: nil) + let navigationController = storyboard.instantiateViewController(withIdentifier: "Feedback") as! UINavigationController + return navigationController.viewControllers.first! + } + + func updateUIViewController(_ uiViewController: UIViewControllerType, context: Context) { + } } +// swiftlint:enable force_cast diff --git a/DuckDuckGo/SettingsViewModel.swift b/DuckDuckGo/SettingsViewModel.swift index 0f98bad108..66f6fcf195 100644 --- a/DuckDuckGo/SettingsViewModel.swift +++ b/DuckDuckGo/SettingsViewModel.swift @@ -39,6 +39,7 @@ final class SettingsViewModel: ObservableObject { private var legacyViewProvider: SettingsLegacyViewProvider private lazy var versionProvider: AppVersion = AppVersion.shared private let voiceSearchHelper: VoiceSearchHelperProtocol + private let subscriptionFeatureAvailability: SubscriptionFeatureAvailability private let syncPausedStateManager: any SyncPausedStateManaging var emailManager: EmailManager { EmailManager() } private let historyManager: HistoryManaging @@ -90,6 +91,8 @@ final class SettingsViewModel: ObservableObject { @Published var isInternalUser: Bool = AppDependencyProvider.shared.internalUserDecider.isInternalUser + @Published var selectedFeedbackFlow: String? + // MARK: - Deep linking // Used to automatically navigate to a specific section // immediately after loading the Settings View @@ -335,11 +338,16 @@ final class SettingsViewModel: ObservableObject { var syncStatus: StatusIndicator { legacyViewProvider.syncService.authState != .inactive ? .on : .off } - + + var usesUnifiedFeedbackForm: Bool { + subscriptionManager.accountManager.isUserAuthenticated && subscriptionFeatureAvailability.usesUnifiedFeedbackForm + } + // MARK: Default Init init(state: SettingsState? = nil, legacyViewProvider: SettingsLegacyViewProvider, subscriptionManager: SubscriptionManager, + subscriptionFeatureAvailability: SubscriptionFeatureAvailability = AppDependencyProvider.shared.subscriptionFeatureAvailability, voiceSearchHelper: VoiceSearchHelperProtocol = AppDependencyProvider.shared.voiceSearchHelper, variantManager: VariantManager = AppDependencyProvider.shared.variantManager, deepLink: SettingsDeepLinkSection? = nil, @@ -350,6 +358,7 @@ final class SettingsViewModel: ObservableObject { self.state = SettingsState.defaults self.legacyViewProvider = legacyViewProvider self.subscriptionManager = subscriptionManager + self.subscriptionFeatureAvailability = subscriptionFeatureAvailability self.voiceSearchHelper = voiceSearchHelper self.deepLinkTarget = deepLink self.historyManager = historyManager diff --git a/DuckDuckGo/Subscription/Feedback/DefaultMetadataCollector.swift b/DuckDuckGo/Subscription/Feedback/DefaultMetadataCollector.swift new file mode 100644 index 0000000000..4df0487239 --- /dev/null +++ b/DuckDuckGo/Subscription/Feedback/DefaultMetadataCollector.swift @@ -0,0 +1,31 @@ +// +// DefaultMetadataCollector.swift +// DuckDuckGo +// +// Copyright © 2024 DuckDuckGo. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import Foundation + +struct DefaultFeedbackMetadata: UnifiedFeedbackMetadata {} + +/// Default implementation for Privacy Pro metadata collector +/// Intentionally left blank as we currently don't collect any metadata for PIR and ITR +/// See `DefaultVPNMetadataCollector` for a reference implementation +final class DefaultMetadataCollector: UnifiedMetadataCollector { + func collectMetadata() async -> DefaultFeedbackMetadata? { + nil + } +} diff --git a/DuckDuckGo/Subscription/Feedback/FeedbackCategoryProviding.swift b/DuckDuckGo/Subscription/Feedback/FeedbackCategoryProviding.swift new file mode 100644 index 0000000000..a478ba3dcd --- /dev/null +++ b/DuckDuckGo/Subscription/Feedback/FeedbackCategoryProviding.swift @@ -0,0 +1,182 @@ +// +// FeedbackCategoryProviding.swift +// DuckDuckGo +// +// Copyright © 2024 DuckDuckGo. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import Foundation + +protocol FeedbackCategoryProviding: Hashable, CaseIterable, Identifiable, RawRepresentable { + var displayName: String { get } +} + +protocol FeedbackFAQProviding { + var url: URL { get } +} + +extension FeedbackCategoryProviding where RawValue == String { + var id: String { + rawValue + } +} + +enum UnifiedFeedbackFlowCategory: String, FeedbackCategoryProviding { + case browserFeedback + case ppro + + var displayName: String { + switch self { + case .browserFeedback: return UserText.settingsBrowserFeedback + case .ppro: return UserText.subscriptionTitle + } + } +} + +enum UnifiedFeedbackReportType: String, FeedbackCategoryProviding { + case reportIssue + case requestFeature + case general + + var displayName: String { + switch self { + case .reportIssue: return UserText.pproFeedbackFormReportProblemTitle + case .requestFeature: return UserText.pproFeedbackFormRequestFeatureTitle + case .general: return UserText.pproFeedbackFormGeneralFeedbackTitle + } + } +} + +enum UnifiedFeedbackCategory: String, FeedbackCategoryProviding { + case subscription + case vpn + case pir + case itr + + var displayName: String { + switch self { + case .subscription: return UserText.generalFeedbackFormCategoryPPro + case .vpn: return UserText.generalFeedbackFormCategoryVPN + case .pir: return UserText.generalFeedbackFormCategoryPIR + case .itr: return UserText.generalFeedbackFormCategoryITR + } + } +} + +enum PrivacyProFeedbackSubcategory: String, FeedbackCategoryProviding, FeedbackFAQProviding { + case otp + case somethingElse + + var displayName: String { + switch self { + case .otp: return UserText.pproFeedbackFormCategoryOTP + case .somethingElse: return UserText.pproFeedbackFormCategoryOther + } + } + + var url: URL { + switch self { + case .otp: return URL(string: "https://duckduckgo.com/duckduckgo-help-pages/privacy-pro/payments/")! + case .somethingElse: return URL(string: "https://duckduckgo.com/duckduckgo-help-pages/privacy-pro/payments/")! + } + } +} + +enum VPNFeedbackSubcategory: String, FeedbackCategoryProviding, FeedbackFAQProviding { + case unableToInstall + case failsToConnect + case tooSlow + case issueWithAppOrWebsite + case appCrashesOrFreezes + case cantConnectToLocalDevice + case somethingElse + + var displayName: String { + switch self { + case .unableToInstall: return UserText.vpnFeedbackFormCategoryUnableToInstall + case .failsToConnect: return UserText.vpnFeedbackFormCategoryFailsToConnect + case .tooSlow: return UserText.vpnFeedbackFormCategoryTooSlow + case .issueWithAppOrWebsite: return UserText.vpnFeedbackFormCategoryIssuesWithApps + case .appCrashesOrFreezes: return UserText.vpnFeedbackFormCategoryBrowserCrashOrFreeze + case .cantConnectToLocalDevice: return UserText.vpnFeedbackFormCategoryLocalDeviceConnectivity + case .somethingElse: return UserText.vpnFeedbackFormCategoryOther + } + } + + var url: URL { + switch self { + case .unableToInstall: return URL(string: "https://duckduckgo.com/duckduckgo-help-pages/privacy-pro/vpn/troubleshooting/")! + case .failsToConnect: return URL(string: "https://duckduckgo.com/duckduckgo-help-pages/privacy-pro/vpn/troubleshooting/")! + case .tooSlow: return URL(string: "https://duckduckgo.com/duckduckgo-help-pages/privacy-pro/vpn/troubleshooting/")! + case .issueWithAppOrWebsite: return URL(string: "https://duckduckgo.com/duckduckgo-help-pages/privacy-pro/vpn/troubleshooting/")! + case .appCrashesOrFreezes: return URL(string: "https://duckduckgo.com/duckduckgo-help-pages/privacy-pro/vpn/troubleshooting/")! + case .cantConnectToLocalDevice: return URL(string: "https://duckduckgo.com/duckduckgo-help-pages/privacy-pro/vpn/troubleshooting/")! + case .somethingElse: return URL(string: "https://duckduckgo.com/duckduckgo-help-pages/privacy-pro/vpn/")! + } + } +} + +enum PIRFeedbackSubcategory: String, FeedbackCategoryProviding, FeedbackFAQProviding { + case nothingOnSpecificSite + case notMe + case scanStuck + case removalStuck + case somethingElse + + var displayName: String { + switch self { + case .nothingOnSpecificSite: return UserText.pirFeedbackFormCategoryNothingOnSpecificSite + case .notMe: return UserText.pirFeedbackFormCategoryNotMe + case .scanStuck: return UserText.pirFeedbackFormCategoryScanStuck + case .removalStuck: return UserText.pirFeedbackFormCategoryRemovalStuck + case .somethingElse: return UserText.pirFeedbackFormCategoryOther + } + } + + var url: URL { + switch self { + case .nothingOnSpecificSite: return URL(string: "https://duckduckgo.com/duckduckgo-help-pages/privacy-pro/personal-information-removal/removal-process/")! + case .notMe: return URL(string: "https://duckduckgo.com/duckduckgo-help-pages/privacy-pro/personal-information-removal/removal-process/")! + case .scanStuck: return URL(string: "https://duckduckgo.com/duckduckgo-help-pages/privacy-pro/personal-information-removal/removal-process/")! + case .removalStuck: return URL(string: "https://duckduckgo.com/duckduckgo-help-pages/privacy-pro/personal-information-removal/removal-process/")! + case .somethingElse: return URL(string: "https://duckduckgo.com/duckduckgo-help-pages/privacy-pro/personal-information-removal/")! + } + } +} + +enum ITRFeedbackSubcategory: String, FeedbackCategoryProviding, FeedbackFAQProviding { + case accessCode + case cantContactAdvisor + case advisorUnhelpful + case somethingElse + + var displayName: String { + switch self { + case .accessCode: return UserText.itrFeedbackFormCategoryAccessCode + case .cantContactAdvisor: return UserText.itrFeedbackFormCategoryCantContactAdvisor + case .advisorUnhelpful: return UserText.itrFeedbackFormCategoryUnhelpful + case .somethingElse: return UserText.itrFeedbackFormCategorySomethingElse + } + } + + var url: URL { + switch self { + case .accessCode: return URL(string: "https://duckduckgo.com/duckduckgo-help-pages/privacy-pro/identity-theft-restoration/")! + case .cantContactAdvisor: return URL(string: "https://duckduckgo.com/duckduckgo-help-pages/privacy-pro/identity-theft-restoration/iris/")! + case .advisorUnhelpful: return URL(string: "https://duckduckgo.com/duckduckgo-help-pages/privacy-pro/identity-theft-restoration/")! + case .somethingElse: return URL(string: "https://duckduckgo.com/duckduckgo-help-pages/privacy-pro/identity-theft-restoration/")! + } + } +} diff --git a/DuckDuckGo/Subscription/Feedback/UnifiedFeedbackFormViewModel.swift b/DuckDuckGo/Subscription/Feedback/UnifiedFeedbackFormViewModel.swift new file mode 100644 index 0000000000..6ecfd2aa63 --- /dev/null +++ b/DuckDuckGo/Subscription/Feedback/UnifiedFeedbackFormViewModel.swift @@ -0,0 +1,228 @@ +// +// UnifiedFeedbackFormViewModel.swift +// DuckDuckGo +// +// Copyright © 2024 DuckDuckGo. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import Combine +import SwiftUI + +final class UnifiedFeedbackFormViewModel: ObservableObject { + enum Source: String { + case settings + case ppro + case vpn + case pir + case itr + case unknown + } + + enum ViewState { + case feedbackPending + case feedbackSending + case feedbackSendingFailed + case feedbackSent + case feedbackCanceled + + var canSubmit: Bool { + switch self { + case .feedbackPending: return true + case .feedbackSending: return false + case .feedbackSendingFailed: return true + case .feedbackSent: return false + case .feedbackCanceled: return false + } + } + } + + enum ViewAction { + case submit + case faqClick + case reportShow + case reportActions + case reportCategory + case reportSubcategory + case reportFAQClick + case reportSubmitShow + } + + @Published var viewState: ViewState { + didSet { + updateSubmitButtonStatus() + } + } + + @Published var feedbackFormText: String = "" { + didSet { + updateSubmitButtonStatus() + } + } + + @Published private(set) var submitButtonEnabled: Bool = false + @Published var selectedReportType: String? { + didSet { + selectedCategory = "" + } + } + @Published var selectedCategory: String? { + didSet { + selectedSubcategory = "" + } + } + @Published var selectedSubcategory: String? { + didSet { + feedbackFormText = "" + } + } + + var usesCompactForm: Bool { + guard let selectedReportType else { return false } + switch UnifiedFeedbackReportType(rawValue: selectedReportType) { + case .reportIssue: + return false + default: + return true + } + } + + private let vpnMetadataCollector: any UnifiedMetadataCollector + private let defaultMetadataCollector: any UnifiedMetadataCollector + private let feedbackSender: any UnifiedFeedbackSender + + let source: String + + init(vpnMetadataCollector: any UnifiedMetadataCollector, + defaultMetadatCollector: any UnifiedMetadataCollector = DefaultMetadataCollector(), + feedbackSender: any UnifiedFeedbackSender = DefaultFeedbackSender(), + source: Source = .unknown) { + self.viewState = .feedbackPending + + self.vpnMetadataCollector = vpnMetadataCollector + self.defaultMetadataCollector = defaultMetadatCollector + self.feedbackSender = feedbackSender + self.source = source.rawValue + } + + @MainActor + func process(action: ViewAction) async { + switch action { + case .submit: + self.viewState = .feedbackSending + + do { + try await sendFeedback() + self.viewState = .feedbackSent + } catch { + self.viewState = .feedbackSendingFailed + } + + NotificationCenter.default.post(name: .unifiedFeedbackNotification, object: nil) + case .faqClick: + await openFAQ() + case .reportShow: + await feedbackSender.sendFormShowPixel() + case .reportActions: + await feedbackSender.sendActionsScreenShowPixel(source: source) + case .reportCategory: + if let selectedReportType { + await feedbackSender.sendCategoryScreenShow(source: source, + reportType: selectedReportType) + } + case .reportSubcategory: + if let selectedReportType, let selectedCategory { + await feedbackSender.sendSubcategoryScreenShow(source: source, + reportType: selectedReportType, + category: selectedCategory) + } + case .reportFAQClick: + if let selectedReportType, let selectedCategory, let selectedSubcategory { + await feedbackSender.sendSubmitScreenFAQClickPixel(source: source, + reportType: selectedReportType, + category: selectedCategory, + subcategory: selectedSubcategory) + } + case .reportSubmitShow: + if let selectedReportType, let selectedCategory, let selectedSubcategory { + await feedbackSender.sendSubmitScreenShowPixel(source: source, + reportType: selectedReportType, + category: selectedCategory, + subcategory: selectedSubcategory) + } + } + } + + private func openFAQ() async { + guard let selectedReportType, UnifiedFeedbackReportType(rawValue: selectedReportType) == .reportIssue, + let selectedCategory, let category = UnifiedFeedbackCategory(rawValue: selectedCategory), + let selectedSubcategory else { + return + } + + let url: URL? = { + switch category { + case .subscription: return PrivacyProFeedbackSubcategory(rawValue: selectedSubcategory)?.url + case .vpn: return VPNFeedbackSubcategory(rawValue: selectedSubcategory)?.url + case .pir: return PIRFeedbackSubcategory(rawValue: selectedSubcategory)?.url + case .itr: return ITRFeedbackSubcategory(rawValue: selectedSubcategory)?.url + } + }() + + if let url { + await UIApplication.shared.open(url) + } + } + + private func sendFeedback() async throws { + guard let selectedReportType else { return } + switch UnifiedFeedbackReportType(rawValue: selectedReportType) { + case nil: + return + case .requestFeature: + try await feedbackSender.sendFeatureRequestPixel(description: feedbackFormText, + source: source) + case .general: + try await feedbackSender.sendGeneralFeedbackPixel(description: feedbackFormText, + source: source) + case .reportIssue: + try await reportProblem() + } + } + + private func reportProblem() async throws { + guard let selectedCategory, let selectedSubcategory else { return } + switch UnifiedFeedbackCategory(rawValue: selectedCategory) { + case .vpn: + let metadata = await vpnMetadataCollector.collectMetadata() + try await feedbackSender.sendReportIssuePixel(source: source, + category: selectedCategory, + subcategory: selectedSubcategory, + description: feedbackFormText, + metadata: metadata as? VPNMetadata) + default: + let metadata = await defaultMetadataCollector.collectMetadata() + try await feedbackSender.sendReportIssuePixel(source: source, + category: selectedCategory, + subcategory: selectedSubcategory, + description: feedbackFormText, + metadata: metadata as? DefaultFeedbackMetadata) + } + } + + private func updateSubmitButtonStatus() { + self.submitButtonEnabled = viewState.canSubmit && !feedbackFormText.isEmpty + } + +} diff --git a/DuckDuckGo/Subscription/Feedback/UnifiedFeedbackRootView.swift b/DuckDuckGo/Subscription/Feedback/UnifiedFeedbackRootView.swift new file mode 100644 index 0000000000..58b43f15d7 --- /dev/null +++ b/DuckDuckGo/Subscription/Feedback/UnifiedFeedbackRootView.swift @@ -0,0 +1,399 @@ +// +// UnifiedFeedbackRootView.swift +// DuckDuckGo +// +// Copyright © 2024 DuckDuckGo. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import SwiftUI +import NetworkProtection + +struct UnifiedFeedbackRootView: View { + @StateObject var viewModel: UnifiedFeedbackFormViewModel + + var body: some View { + UnifiedFeedbackCategoryView(UserText.pproFeedbackFormTitle, sources: UnifiedFeedbackReportType.self, selection: $viewModel.selectedReportType) { + if let selectedReportType = viewModel.selectedReportType { + switch UnifiedFeedbackReportType(rawValue: selectedReportType) { + case nil: + EmptyView() + case .general: + CompactIssueDescriptionFormView(viewModel: viewModel, + navigationTitle: UserText.pproFeedbackFormGeneralFeedbackTitle, + label: UserText.pproFeedbackFormGeneralFeedbackTitle, + placeholder: UserText.pproFeedbackFormGeneralFeedbackPlaceholder) + case .requestFeature: + CompactIssueDescriptionFormView(viewModel: viewModel, + navigationTitle: UserText.pproFeedbackFormRequestFeatureTitle, + label: UserText.pproFeedbackFormRequestFeatureTitle, + placeholder: UserText.pproFeedbackFormRequestFeaturePlaceholder) + case .reportIssue: + reportProblemView() + } + } + } + .onFirstAppear { + Task { + await viewModel.process(action: .reportActions) + } + } + } + + @ViewBuilder + func reportProblemView() -> some View { + UnifiedFeedbackCategoryView(UserText.pproFeedbackFormReportProblemTitle, + sources: UnifiedFeedbackCategory.self, + selection: $viewModel.selectedCategory) { + Group { + if let selectedCategory = viewModel.selectedCategory { + switch UnifiedFeedbackCategory(rawValue: selectedCategory) { + case nil: + EmptyView() + case .subscription: + UnifiedFeedbackCategoryView(UserText.pproFeedbackFormReportPProProblemTitle, + sources: PrivacyProFeedbackSubcategory.self, + selection: $viewModel.selectedSubcategory) { + IssueDescriptionFormView(viewModel: viewModel, + placeholder: UserText.pproFeedbackFormReportProblemPlaceholder) + } + case .vpn: + UnifiedFeedbackCategoryView(UserText.pproFeedbackFormReportVPNProblemTitle, + sources: VPNFeedbackSubcategory.self, + selection: $viewModel.selectedSubcategory) { + IssueDescriptionFormView(viewModel: viewModel, + placeholder: UserText.pproFeedbackFormReportProblemPlaceholder) + } + case .pir: + UnifiedFeedbackCategoryView(UserText.pproFeedbackFormReportPIRProblemTitle, + sources: PIRFeedbackSubcategory.self, + selection: $viewModel.selectedSubcategory) { + IssueDescriptionFormView(viewModel: viewModel, + placeholder: UserText.pproFeedbackFormReportProblemPlaceholder) + } + case .itr: + UnifiedFeedbackCategoryView(UserText.pproFeedbackFormReportITRProblemTitle, + sources: ITRFeedbackSubcategory.self, + selection: $viewModel.selectedSubcategory) { + IssueDescriptionFormView(viewModel: viewModel, + placeholder: UserText.pproFeedbackFormReportProblemPlaceholder) + } + } + } + } + .onFirstAppear { + Task { + await viewModel.process(action: .reportSubcategory) + } + } + } + .onFirstAppear { + Task { + await viewModel.process(action: .reportCategory) + } + } + } +} + +struct UnifiedFeedbackCategoryView: View where Category.AllCases == [Category], Category.RawValue == String { + let title: String + let prompt: String + let sources: Category.Type + let selection: Binding + let destination: () -> Destination + + init(_ title: String, + prompt: String = UserText.pproFeedbackFormSelectCategoryTitle, + sources: Category.Type, + selection: Binding, + @ViewBuilder destination: @escaping () -> Destination) { + self.title = title + self.prompt = prompt + self.sources = sources + self.selection = selection + self.destination = destination + } + + var body: some View { + VStack { + List(selection: selection) { + Section { + ForEach(sources.allCases) { option in + NavigationLink { + destination() + } label: { + Text(option.displayName) + .daxBodyRegular() + .foregroundColor(.init(designSystemColor: .textPrimary)) + } + .tag(option.rawValue) + .listRowBackground(Color(designSystemColor: .surface)) + } + } header: { + Text(prompt) + } + } + .listRowBackground(Color(designSystemColor: .surface)) + } + .applyInsetGroupedListStyle() + .navigationTitle(title) + } +} + +private struct CompactIssueDescriptionFormView: View { + @ObservedObject var viewModel: UnifiedFeedbackFormViewModel + @FocusState private var isTextEditorFocused: Bool + + let navigationTitle: String + let label: String + let placeholder: String + + var body: some View { + configuredForm() + .applyBackground() + .navigationTitle(navigationTitle) + .onFirstAppear { + Task { + await viewModel.process(action: .reportSubmitShow) + } + } + } + + @ViewBuilder + private func form() -> some View { + ScrollView { + ScrollViewReader { scrollView in + VStack { + VStack(alignment: .leading, spacing: 10) { + IssueDescriptionTextEditor(label: label, + placeholder: placeholder, + text: $viewModel.feedbackFormText, + focusState: $isTextEditorFocused, + scrollViewProxy: scrollView) + } + .foregroundColor(.secondary) + .background(Color(designSystemColor: .background)) + .padding(16) + .daxFootnoteRegular() + submitButton() + .disabled(!viewModel.submitButtonEnabled) + } + } + } + } + + @ViewBuilder + private func configuredForm() -> some View { + if #available(iOS 16, *) { + form().scrollDismissesKeyboard(.interactively) + } else { + form() + } + } + + @ViewBuilder + private func submitButton() -> some View { + Button { + Task { + _ = await viewModel.process(action: .submit) + } + } label: { + Text(UserText.vpnFeedbackFormButtonSubmit) + } + .buttonStyle(UnifiedFeedbackFormButtonStyle()) + .padding(16) + } +} + +private struct IssueDescriptionFormView: View { + @ObservedObject var viewModel: UnifiedFeedbackFormViewModel + @FocusState private var isTextEditorFocused: Bool + + let placeholder: String + + var body: some View { + configuredForm() + .applyBackground() + .navigationTitle(UserText.pproFeedbackFormReportProblemTitle) + .onFirstAppear { + Task { + await viewModel.process(action: .reportSubmitShow) + } + } + } + + @ViewBuilder + private func form() -> some View { + ScrollView { + ScrollViewReader { scrollView in + VStack { + VStack(alignment: .leading, spacing: 10) { + header() + .padding(.horizontal, 4) + IssueDescriptionTextEditor(label: UserText.pproFeedbackFormTextBoxTitle, + placeholder: placeholder, + text: $viewModel.feedbackFormText, + focusState: $isTextEditorFocused, + scrollViewProxy: scrollView) + footer() + .padding(.horizontal, 4) + } + .foregroundColor(.secondary) + .background(Color(designSystemColor: .background)) + .padding(16) + .daxFootnoteRegular() + submitButton() + .disabled(!viewModel.submitButtonEnabled) + } + } + } + } + + @ViewBuilder + private func configuredForm() -> some View { + if #available(iOS 16, *) { + form().scrollDismissesKeyboard(.interactively) + } else { + form() + } + } + + @ViewBuilder + private func header() -> some View { + Text(LocalizedStringKey(UserText.pproFeedbackFormText1)) + .multilineTextAlignment(.leading) + .lineLimit(nil) + .fixedSize(horizontal: false, vertical: true) + .environment(\.openURL, OpenURLAction { _ in + Task { + await viewModel.process(action: .reportFAQClick) + await viewModel.process(action: .faqClick) + } + return .handled + }) + + Spacer() + .frame(height: 1) + .id(1) + } + + @ViewBuilder + private func footer() -> some View { + Text(UserText.pproFeedbackFormText2) + .multilineTextAlignment(.leading) + .lineLimit(nil) + .fixedSize(horizontal: false, vertical: true) + + VStack(alignment: .leading) { + Text(UserText.pproFeedbackFormText3) + Text(UserText.pproFeedbackFormText4) + } + + Text(UserText.pproFeedbackFormText5) + .multilineTextAlignment(.leading) + .lineLimit(nil) + .fixedSize(horizontal: false, vertical: true) + } + + @ViewBuilder + private func submitButton() -> some View { + Button { + Task { + _ = await viewModel.process(action: .submit) + } + } label: { + Text(UserText.vpnFeedbackFormButtonSubmit) + } + .buttonStyle(UnifiedFeedbackFormButtonStyle()) + .padding(16) + } +} + +private struct IssueDescriptionTextEditor: View { + let label: String + let placeholder: String + let text: Binding + let focusState: FocusState.Binding + let scrollViewProxy: ScrollViewProxy + + var body: some View { + VStack(alignment: .leading, spacing: 4) { + Text(label) + .font(.caption) + .textCase(.uppercase) + .foregroundColor(.secondary) + .padding(.horizontal, 4) + TextEditorWithPlaceholder(text: text, placeholder: placeholder) + .font(.body) + .foregroundColor(.primary) + .background(Color(designSystemColor: .panel)) + .clipShape(RoundedRectangle(cornerRadius: 8.0, style: .continuous)) + .frame(height: 100) + .fixedSize(horizontal: false, vertical: true) + .onChange(of: text.wrappedValue) { value in + text.wrappedValue = String(value.prefix(1000)) + } + } + .focused(focusState) + .onChange(of: focusState.wrappedValue) { isFocused in + guard isFocused else { return } + DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) { + withAnimation { + scrollViewProxy.scrollTo(1, anchor: .top) + } + } + } + } +} + +private struct UnifiedFeedbackFormButtonStyle: ButtonStyle { + + @Environment(\.isEnabled) private var isEnabled: Bool + + func makeBody(configuration: Configuration) -> some View { + configuration.label + .foregroundColor(Color.white) + .frame(maxWidth: .infinity) + .padding(.horizontal) + .frame(height: 50) + .background(Color(designSystemColor: .accent)) + .cornerRadius(8) + .daxButton() + .opacity(isEnabled ? 1.0 : 0.4) + + } + +} + +private struct TextEditorWithPlaceholder: View { + let text: Binding + let placeholder: String + + var body: some View { + ZStack(alignment: .topLeading) { + TextEditor(text: text) + if text.wrappedValue.isEmpty { + Text(placeholder) + .foregroundColor(.secondary) + .opacity(0.5) + .padding(.top, 8) + .padding(.leading, 5) + } + } + } +} + +extension NSNotification.Name { + static let unifiedFeedbackNotification: NSNotification.Name = Notification.Name(rawValue: "com.duckduckgo.notification.unifiedFeedback") +} diff --git a/DuckDuckGo/Subscription/Feedback/UnifiedFeedbackSender.swift b/DuckDuckGo/Subscription/Feedback/UnifiedFeedbackSender.swift new file mode 100644 index 0000000000..76f7a03590 --- /dev/null +++ b/DuckDuckGo/Subscription/Feedback/UnifiedFeedbackSender.swift @@ -0,0 +1,220 @@ +// +// UnifiedFeedbackSender.swift +// DuckDuckGo +// +// Copyright © 2024 DuckDuckGo. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import Foundation +import Core + +protocol UnifiedFeedbackSender { + func sendFeatureRequestPixel(description: String, source: String) async throws + func sendGeneralFeedbackPixel(description: String, source: String) async throws + func sendReportIssuePixel(source: String, category: String, subcategory: String, description: String, metadata: T?) async throws + + func sendFormShowPixel() async + func sendSubmitScreenShowPixel(source: String, reportType: String, category: String, subcategory: String) async + func sendActionsScreenShowPixel(source: String) async + func sendCategoryScreenShow(source: String, reportType: String) async + func sendSubcategoryScreenShow(source: String, reportType: String, category: String) async + func sendSubmitScreenFAQClickPixel(source: String, reportType: String, category: String, subcategory: String) async + + static func additionalParameters(for pixel: Pixel.Event) -> [String: String] +} + +enum UnifiedFeedbackSenderFrequency { + case regular + case dailyAndCount +} + +extension UnifiedFeedbackSender { + static func additionalParameters(for pixel: Pixel.Event) -> [String: String] { + [:] + } + + func sendPixel(_ pixel: Pixel.Event, frequency: UnifiedFeedbackSenderFrequency) async throws { + try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + let completionHandler: (Error?) -> Void = { error in + if let error { + continuation.resume(throwing: error) + } else { + continuation.resume() + } + } + + switch frequency { + case .regular: + Pixel.fire(pixel: pixel, + withAdditionalParameters: Self.additionalParameters(for: pixel), + onComplete: completionHandler) + case .dailyAndCount: + DailyPixel.fireDailyAndCount(pixel: pixel, + withAdditionalParameters: Self.additionalParameters(for: pixel), + onDailyComplete: { _ in }, + onCountComplete: completionHandler) + } + } + } +} + +protocol StringRepresentable: RawRepresentable { + static var `default`: Self { get } +} + +extension StringRepresentable where RawValue == String { + static func from(_ text: String) -> String { + (Self(rawValue: text) ?? .default).rawValue + } +} + +struct DefaultFeedbackSender: UnifiedFeedbackSender { + enum Source: String, StringRepresentable { + case settings, ppro, vpn, pir, itr, unknown + static var `default` = Source.unknown + } + + enum ReportType: String, StringRepresentable { + case general, reportIssue, requestFeature + static var `default` = ReportType.general + } + + enum Category: String, StringRepresentable { + case subscription, vpn, pir, itr, unknown + static var `default` = Category.unknown + } + + enum Subcategory: String, StringRepresentable { + case otp + case unableToInstall, failsToConnect, tooSlow, issueWithAppOrWebsite, appCrashesOrFreezes, cantConnectToLocalDevice + case nothingOnSpecificSite, notMe, scanStuck, removalStuck + case accessCode, cantContactAdvisor, advisorUnhelpful + case somethingElse + static var `default` = Subcategory.somethingElse + } + + func sendFeatureRequestPixel(description: String, source: String) async throws { + try await sendPixel(.pproFeedbackFeatureRequest(description: description, + source: Source.from(source)), + frequency: .regular) + } + + func sendGeneralFeedbackPixel(description: String, source: String) async throws { + try await sendPixel(.pproFeedbackGeneralFeedback(description: description, + source: Source.from(source)), + frequency: .regular) + } + + func sendReportIssuePixel(source: String, category: String, subcategory: String, description: String, metadata: T?) async throws { + try await sendPixel(.pproFeedbackReportIssue(source: Source.from(source), + category: Category.from(category), + subcategory: Subcategory.from(subcategory), + description: description, + metadata: metadata?.toBase64() ?? ""), + frequency: .regular) + } + + func sendFormShowPixel() async { + try? await sendPixel(.pproFeedbackFormShow, frequency: .regular) + } + + func sendSubmitScreenShowPixel(source: String, reportType: String, category: String, subcategory: String) async { + try? await sendPixel(.pproFeedbackSubmitScreenShow(source: source, + reportType: ReportType.from(reportType), + category: Category.from(category), + subcategory: Subcategory.from(subcategory)), + frequency: .dailyAndCount) + } + + func sendActionsScreenShowPixel(source: String) async { + try? await sendPixel(.pproFeedbackActionsScreenShow(source: source), + frequency: .dailyAndCount) + } + + func sendCategoryScreenShow(source: String, reportType: String) async { + try? await sendPixel(.pproFeedbackCategoryScreenShow(source: source, + reportType: ReportType.from(reportType)), + frequency: .dailyAndCount) + } + + func sendSubcategoryScreenShow(source: String, reportType: String, category: String) async { + try? await sendPixel(.pproFeedbackSubcategoryScreenShow(source: source, + reportType: ReportType.from(reportType), + category: Category.from(category)), + frequency: .dailyAndCount) + } + + func sendSubmitScreenFAQClickPixel(source: String, reportType: String, category: String, subcategory: String) async { + try? await sendPixel(.pproFeedbackSubmitScreenShow(source: source, + reportType: ReportType.from(reportType), + category: Category.from(category), + subcategory: Subcategory.from(subcategory)), + frequency: .dailyAndCount) + } + + static func additionalParameters(for pixel: Pixel.Event) -> [String: String] { + switch pixel { + case .pproFeedbackFeatureRequest(let description, let source): + return [ + "description": description, + "source": source, + ] + case .pproFeedbackGeneralFeedback(let description, let source): + return [ + "description": description, + "source": source, + ] + case .pproFeedbackReportIssue(let source, let category, let subcategory, let description, let metadata): + return [ + "description": description, + "source": source, + "category": category, + "subcategory": subcategory, + "customMetadata": metadata, + ] + case .pproFeedbackActionsScreenShow(let source): + return [ + "source": source, + ] + case .pproFeedbackCategoryScreenShow(let source, let reportType): + return [ + "source": source, + "reportType": reportType, + ] + case .pproFeedbackSubcategoryScreenShow(let source, let reportType, let category): + return [ + "source": source, + "reportType": reportType, + "category": category, + ] + case .pproFeedbackSubmitScreenShow(let source, let reportType, let category, let subcategory): + return [ + "source": source, + "reportType": reportType, + "category": category, + "subcategory": subcategory, + ] + case .pproFeedbackSubmitScreenFAQClick(let source, let reportType, let category, let subcategory): + return [ + "source": source, + "reportType": reportType, + "category": category, + "subcategory": subcategory, + ] + default: + return [:] + } + } +} diff --git a/DuckDuckGo/Subscription/Feedback/UnifiedMetadataCollector.swift b/DuckDuckGo/Subscription/Feedback/UnifiedMetadataCollector.swift new file mode 100644 index 0000000000..e6a0c25161 --- /dev/null +++ b/DuckDuckGo/Subscription/Feedback/UnifiedMetadataCollector.swift @@ -0,0 +1,43 @@ +// +// UnifiedMetadataCollector.swift +// DuckDuckGo +// +// Copyright © 2024 DuckDuckGo. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import Foundation + +protocol UnifiedMetadataCollector { + associatedtype Metadata: UnifiedFeedbackMetadata + + func collectMetadata() async -> Metadata? +} + +protocol UnifiedFeedbackMetadata: Encodable { + func toBase64() -> String +} + +extension UnifiedFeedbackMetadata { + func toBase64() -> String { + let encoder = JSONEncoder() + + do { + let encodedMetadata = try encoder.encode(self) + return encodedMetadata.base64EncodedString() + } catch { + return "Failed to encode metadata to JSON, error message: \(error.localizedDescription)" + } + } +} diff --git a/DuckDuckGo/Subscription/ViewModel/SubscriptionSettingsViewModel.swift b/DuckDuckGo/Subscription/ViewModel/SubscriptionSettingsViewModel.swift index fd1669a311..55d1fdbd25 100644 --- a/DuckDuckGo/Subscription/ViewModel/SubscriptionSettingsViewModel.swift +++ b/DuckDuckGo/Subscription/ViewModel/SubscriptionSettingsViewModel.swift @@ -23,6 +23,7 @@ import StoreKit import Subscription import Core import os.log +import BrowserServicesKit final class SubscriptionSettingsViewModel: ObservableObject { @@ -66,12 +67,15 @@ final class SubscriptionSettingsViewModel: ObservableObject { // Read only View State - Should only be modified from the VM @Published private(set) var state: State - - init(subscriptionManager: SubscriptionManager = AppDependencyProvider.shared.subscriptionManager) { + public let usesUnifiedFeedbackForm: Bool + + init(subscriptionManager: SubscriptionManager = AppDependencyProvider.shared.subscriptionManager, + subscriptionFeatureAvailability: SubscriptionFeatureAvailability = AppDependencyProvider.shared.subscriptionFeatureAvailability) { self.subscriptionManager = subscriptionManager let subscriptionFAQURL = subscriptionManager.url(for: .faq) let learnMoreURL = subscriptionFAQURL.appendingPathComponent("adding-email") self.state = State(faqURL: subscriptionFAQURL, learnMoreURL: learnMoreURL) + self.usesUnifiedFeedbackForm = subscriptionManager.accountManager.isUserAuthenticated && subscriptionFeatureAvailability.usesUnifiedFeedbackForm setupNotificationObservers() } diff --git a/DuckDuckGo/Subscription/Views/SubscriptionSettingsView.swift b/DuckDuckGo/Subscription/Views/SubscriptionSettingsView.swift index 328fd45455..149456cee1 100644 --- a/DuckDuckGo/Subscription/Views/SubscriptionSettingsView.swift +++ b/DuckDuckGo/Subscription/Views/SubscriptionSettingsView.swift @@ -195,18 +195,18 @@ struct SubscriptionSettingsView: View { } @ViewBuilder var helpSection: some View { - Section(header: Text(UserText.subscriptionHelpAndSupport), - footer: Text(UserText.subscriptionFAQFooter)) { - - SettingsCustomCell(content: { - Text(UserText.subscriptionFAQ) - .daxBodyRegular() - .foregroundColor(Color(designSystemColor: .accent)) - }, - action: { viewModel.displayFAQView(true) }, - disclosureIndicator: false, - isButton: true) - + if viewModel.usesUnifiedFeedbackForm { + Section { + faqButton + supportButton + } header: { + Text(UserText.subscriptionHelpAndSupport) + } + } else { + Section(header: Text(UserText.subscriptionHelpAndSupport), + footer: Text(UserText.subscriptionFAQFooter)) { + faqButton + } } } @@ -221,6 +221,27 @@ struct SubscriptionSettingsView: View { disclosureIndicator: false, isButton: true) } + + } + + @ViewBuilder + private var faqButton: some View { + SettingsCustomCell(content: { + Text(UserText.subscriptionFAQ) + .daxBodyRegular() + .foregroundColor(Color(designSystemColor: .accent)) + }, + action: { viewModel.displayFAQView(true) }, + disclosureIndicator: false, + isButton: true) + } + + @ViewBuilder + private var supportButton: some View { + let viewModel = UnifiedFeedbackFormViewModel(vpnMetadataCollector: DefaultVPNMetadataCollector(), source: .ppro) + NavigationLink(UserText.subscriptionFeedback, destination: UnifiedFeedbackRootView(viewModel: viewModel)) + .daxBodyRegular() + .foregroundColor(.init(designSystemColor: .textPrimary)) } @ViewBuilder diff --git a/DuckDuckGo/UserText.swift b/DuckDuckGo/UserText.swift index b40d31a65d..c3f08921e0 100644 --- a/DuckDuckGo/UserText.swift +++ b/DuckDuckGo/UserText.swift @@ -565,6 +565,27 @@ public struct UserText { static let inviteDialogErrorAlertOKButton = NSLocalizedString("invite.alert.ok.button", value: "OK", comment: "OK title for invite screen alert dismissal button") // MARK: - Feedback Form + static let pproFeedbackFormTitle = NSLocalizedString("ppro.feedback-form.title", value: "Send Feedback", comment: "Title for the Privacy Pro feedback form") + static let pproFeedbackFormReportProblemTitle = NSLocalizedString("ppro.feedback-form.report-problem.title", value: "Report a Problem", comment: "Title for the Report a Problem step in the Privacy Pro feedback form") + static let pproFeedbackFormGeneralFeedbackTitle = NSLocalizedString("ppro.feedback-form.general-feedback.title", value: "General Feedback", comment: "Title for the General Feedback step in the Privacy Pro feedback form") + static let pproFeedbackFormRequestFeatureTitle = NSLocalizedString("ppro.feedback-form.request-feature.title", value: "Feature Request", comment: "Title for the Feature Request step in the Privacy Pro feedback form") + static let pproFeedbackFormSelectCategoryTitle = NSLocalizedString("ppro.feedback-form.select-category.title", value: "Select a category", comment: "Title for the category selection section in the Privacy Pro feedback form") + static let pproFeedbackFormTextBoxTitle = NSLocalizedString("ppro.feedback-form.text-box.title", value: "Feedback", comment: "Title for the text box in the Privacy Pro feedback form") + static let pproFeedbackFormReportPProProblemTitle = NSLocalizedString("ppro.feedback-form.report-ppro-problem.title", value: "Subscriptions and Payments", comment: "Title for the Subscriptions and Payments category in the Privacy Pro feedback form") + static let pproFeedbackFormReportVPNProblemTitle = NSLocalizedString("ppro.feedback-form.report-vpn-problem.title", value: "VPN", comment: "Title for the VPN category in the Privacy Pro feedback form") + static let pproFeedbackFormReportPIRProblemTitle = NSLocalizedString("ppro.feedback-form.report-pir-problem.title", value: "Personal Information Removal", comment: "Title for the PIR category in the Privacy Pro feedback form") + static let pproFeedbackFormReportITRProblemTitle = NSLocalizedString("ppro.feedback-form.report-itr-problem.title", value: "Identity Theft Restoration", comment: "Title for the ITR category in the Privacy Pro feedback form") + + static let pproFeedbackFormReportProblemPlaceholder = NSLocalizedString("ppro.feedback-form.report-problem.placeholder", value: "Tell us what's going on…", comment: "Placeholder for the Report a Problem step in the Privacy Pro feedback form") + static let pproFeedbackFormGeneralFeedbackPlaceholder = NSLocalizedString("ppro.feedback-form.general-feedback.placeholder", value: "Please give us your feedback…", comment: "Placeholder for the General Feedback step in the Privacy Pro feedback form") + static let pproFeedbackFormRequestFeaturePlaceholder = NSLocalizedString("ppro.feedback-form.request-feature.placeholder", value: "What feature would you like to see?", comment: "Placeholder for the Feature Request step in the Privacy Pro feedback form") + + static let pproFeedbackFormText1 = NSLocalizedString("ppro.feedback-form.text-1", value: "Found an issue not covered in our [help center](duck://)? We definitely want to know about it.", comment: "Text for the body of the PPro feedback form") + static let pproFeedbackFormText2 = NSLocalizedString("ppro.feedback-form.text-2", value: "In addition to the details entered above, we send some anonymized info with your feedback:", comment: "Text for the body of the PPro feedback form") + static let pproFeedbackFormText3 = NSLocalizedString("ppro.feedback-form.text-3", value: "• Whether some browser features are active", comment: "Bullet text for the body of the PPro feedback form") + static let pproFeedbackFormText4 = NSLocalizedString("ppro.feedback-form.text-4", value: "• Aggregate app diagnostics (e.g., error codes)", comment: "Bullet text for the body of the PPro feedback form") + static let pproFeedbackFormText5 = NSLocalizedString("ppro.feedback-form.text-5", value: "By tapping \"Submit\" you agree that DuckDuckGo may use information submitted to improve the app.", comment: "Text for the body of the PPro feedback form") + static let vpnFeedbackFormTitle = NSLocalizedString("vpn.feedback-form.title", value: "Help Improve the DuckDuckGo VPN", comment: "Title for each screen of the VPN feedback form") static let vpnFeedbackFormCategorySelect = NSLocalizedString("vpn.feedback-form.category.select-category", value: "Select a category", comment: "Title for the category selection state of the VPN feedback form") static let vpnFeedbackFormCategoryUnableToInstall = NSLocalizedString("vpn.feedback-form.category.unable-to-install", value: "Unable to install VPN", comment: "Title for the 'unable to install' category of the VPN feedback form") @@ -598,6 +619,32 @@ public struct UserText { static let vpnAccessRevokedAlertActionSubscribe = NSLocalizedString("vpn.access-revoked.alert.action.subscribe", value: "Subscribe", comment: "Primary action for the alert when the subscription expires") static let vpnAccessRevokedAlertActionCancel = NSLocalizedString("vpn.access-revoked.alert.action.cancel", value: "Dismiss", comment: "Cancel action for the alert when the subscription expires") + // MARK: Unified Feedback Form + static let browserFeedbackReportProblem = NSLocalizedString("send.browser.feedback.report-problem", value: "Report a problem", comment: "Name of the option the user can chose to give browser feedback about a problem they enountered") + static let browserFeedbackRequestFeature = NSLocalizedString("send.browser.feedback.request-feature", value: "Request a feature", comment: "Name of the option the user can chose to give browser feedback about a feature they would like") + static let browserFeedbackGeneralFeedback = NSLocalizedString("send.browser.feedback.general-feedback", value: "General feedback", comment: "Name of the option the user can chose to give general browser feedback") + static let browserFeedbackSelectCategory = NSLocalizedString("send.browser.feedback.select-category", value: "Select a category", comment: "Title of the picker where the user can chose the category of the feedback they want ot send.") + static let feedbackFormTitle = NSLocalizedString("feedback.form.title", value: "Help Improve Privacy Pro", comment: "Title of the feedback form") + static let generalFeedbackFormCategorySelect = NSLocalizedString("feedback.general.category.select", value: "Select a category", comment: "Prompt to select a category for general feedback") + static let generalFeedbackFormCategoryPPro = NSLocalizedString("feedback.general.category.ppro", value: "Subscription and Payments", comment: "Category for subscription and payments feedback") + static let generalFeedbackFormCategoryVPN = NSLocalizedString("feedback.general.category.vpn", value: "VPN", comment: "Category for VPN feedback") + static let generalFeedbackFormCategoryPIR = NSLocalizedString("feedback.general.category.pir", value: "Personal Info Removal", comment: "Category for Personal Info Removal feedback") + static let generalFeedbackFormCategoryITR = NSLocalizedString("feedback.general.category.itr", value: "Identity Theft Restoration", comment: "Category for Identity Theft Restoration feedback") + static let pproFeedbackFormCategorySelect = NSLocalizedString("feedback.ppro.category.select", value: "Select a category", comment: "Prompt to select a category for Privacy Pro feedback") + static let pproFeedbackFormCategoryOTP = NSLocalizedString("feedback.ppro.category.otp", value: "Issue with one-time password", comment: "Category for one-time password issues") + static let pproFeedbackFormCategoryOther = NSLocalizedString("feedback.ppro.category.other", value: "Something else", comment: "Category for other Privacy Pro issues") + static let pirFeedbackFormCategorySelect = NSLocalizedString("feedback.pir.category.select", value: "Select a category", comment: "Prompt to select a category for Personal Info Removal feedback") + static let pirFeedbackFormCategoryNothingOnSpecificSite = NSLocalizedString("feedback.pir.category.nothing-on-site", value: "The scan didn't find my info on a specific site", comment: "Category for when scan doesn't find info on a specific site") + static let pirFeedbackFormCategoryNotMe = NSLocalizedString("feedback.pir.category.not-me", value: "The scan found records which aren't me", comment: "Category for when scan finds incorrect records") + static let pirFeedbackFormCategoryScanStuck = NSLocalizedString("feedback.pir.category.scan-stuck", value: "The scan for records is stuck", comment: "Category for when the scan is stuck") + static let pirFeedbackFormCategoryRemovalStuck = NSLocalizedString("feedback.pir.category.removal-stuck", value: "The removal process is stuck", comment: "Category for when the removal process is stuck") + static let pirFeedbackFormCategoryOther = NSLocalizedString("feedback.pir.category.other", value: "Something else", comment: "Category for other Personal Info Removal issues") + static let itrFeedbackFormCategorySelect = NSLocalizedString("feedback.itr.category.select", value: "Select a category", comment: "Prompt to select a category for Identity Theft Restoration feedback") + static let itrFeedbackFormCategoryAccessCode = NSLocalizedString("feedback.itr.category.access-code", value: "Issue with access code", comment: "Category for access code issues") + static let itrFeedbackFormCategoryCantContactAdvisor = NSLocalizedString("feedback.itr.category.cant-contact-advisor", value: "Unable to contact advisor", comment: "Category for issues contacting an advisor") + static let itrFeedbackFormCategoryUnhelpful = NSLocalizedString("feedback.itr.category.unhelpful", value: "Call to Advisor was unhelpful", comment: "Category for unhelpful advisor calls") + static let itrFeedbackFormCategorySomethingElse = NSLocalizedString("feedback.itr.category.something-else", value: "Something else", comment: "Category for other Identity Theft Restoration issues") + // MARK: VPN Widget public static let vpnSettingsAddWidget = NSLocalizedString("vpn.settings.add.widget", value: "Add VPN Widget to Home Screen", comment: "VPN settings screen cell text for adding the VPN widget to the home screen") @@ -982,6 +1029,7 @@ But if you *do* want a peek under the hood, you can find more information about // Others public static let settingsAboutSection = NSLocalizedString("settings.about.section", value: "About", comment: "Settings section title for About DuckDuckGo") public static let settingsFeedback = NSLocalizedString("settings.feedback", value: "Share Feedback", comment: "Settings cell for Feedback") + public static let settingsBrowserFeedback = NSLocalizedString("settings.browser.feedback", value: "Browser Feedback", comment: "Settings cell for Browser Feedback") public static let duckduckgoOnOtherPlatforms = NSLocalizedString("settings.duckduckgo.on.other.platforms", value: "DuckDuckGo on Other Platforms", comment: "Settings cell to link users to other products by DuckDuckGo") // General Section @@ -1110,6 +1158,7 @@ But if you *do* want a peek under the hood, you can find more information about public static let subscriptionChangePlan = NSLocalizedString("subscription.change.plan", value: "Update Plan or Cancel", comment: "Change plan or cancel title") public static let subscriptionHelpAndSupport = NSLocalizedString("subscription.help", value: "Help and support", comment: "Help and support Section header") public static let subscriptionFAQ = NSLocalizedString("subscription.faq", value: "FAQs and Support", comment: "FAQ Button") + public static let subscriptionFeedback = NSLocalizedString("subscription.feedback", value: "Send Feedback", comment: "Send Feedback Button") public static let subscriptionFAQFooter = NSLocalizedString("subscription.faq.description", value: "Get answers to frequently asked questions or contact Privacy Pro support from our help pages.", comment: "FAQ Description") // Remove subscription confirmation diff --git a/DuckDuckGo/en.lproj/Localizable.strings b/DuckDuckGo/en.lproj/Localizable.strings index 9d2f5178a8..b38a28e564 100644 --- a/DuckDuckGo/en.lproj/Localizable.strings +++ b/DuckDuckGo/en.lproj/Localizable.strings @@ -1241,6 +1241,39 @@ /* Confirmation button */ "feedback.form.submit" = "Submit"; +/* Title of the feedback form */ +"feedback.form.title" = "Help Improve Privacy Pro"; + +/* Category for Identity Theft Restoration feedback */ +"feedback.general.category.itr" = "Identity Theft Restoration"; + +/* Category for Personal Info Removal feedback */ +"feedback.general.category.pir" = "Personal Info Removal"; + +/* Category for subscription and payments feedback */ +"feedback.general.category.ppro" = "Subscription and Payments"; + +/* Prompt to select a category for general feedback */ +"feedback.general.category.select" = "Select a category"; + +/* Category for VPN feedback */ +"feedback.general.category.vpn" = "VPN"; + +/* Category for access code issues */ +"feedback.itr.category.access-code" = "Issue with access code"; + +/* Category for issues contacting an advisor */ +"feedback.itr.category.cant-contact-advisor" = "Unable to contact advisor"; + +/* Prompt to select a category for Identity Theft Restoration feedback */ +"feedback.itr.category.select" = "Select a category"; + +/* Category for other Identity Theft Restoration issues */ +"feedback.itr.category.something-else" = "Something else"; + +/* Category for unhelpful advisor calls */ +"feedback.itr.category.unhelpful" = "Call to Advisor was unhelpful"; + /* No comment provided by engineer. */ "feedback.negative.form.genericPlaceholder" = "Please be as specific as possible"; @@ -1280,6 +1313,24 @@ /* No comment provided by engineer. */ "feedback.performance.slowLoading" = "Web pages or search results load slowly"; +/* Category for when scan finds incorrect records */ +"feedback.pir.category.not-me" = "The scan found records which aren't me"; + +/* Category for when scan doesn't find info on a specific site */ +"feedback.pir.category.nothing-on-site" = "The scan didn't find my info on a specific site"; + +/* Category for other Personal Info Removal issues */ +"feedback.pir.category.other" = "Something else"; + +/* Category for when the removal process is stuck */ +"feedback.pir.category.removal-stuck" = "The removal process is stuck"; + +/* Category for when the scan is stuck */ +"feedback.pir.category.scan-stuck" = "The scan for records is stuck"; + +/* Prompt to select a category for Personal Info Removal feedback */ +"feedback.pir.category.select" = "Select a category"; + /* Header above input field */ "feedback.positive.form.header" = "Share Details"; @@ -1298,6 +1349,15 @@ /* Button encouraging uses to share details aboout their feedback */ "feedback.positive.submit" = "Share Details"; +/* Category for other Privacy Pro issues */ +"feedback.ppro.category.other" = "Something else"; + +/* Category for one-time password issues */ +"feedback.ppro.category.otp" = "Issue with one-time password"; + +/* Prompt to select a category for Privacy Pro feedback */ +"feedback.ppro.category.select" = "Select a category"; + /* No comment provided by engineer. */ "feedback.start.footer" = "Your anonymous feedback is important to us."; @@ -1811,6 +1871,60 @@ https://duckduckgo.com/mac"; /* Deactivate button */ "pm.deactivate" = "Deactivate"; +/* Placeholder for the General Feedback step in the Privacy Pro feedback form */ +"ppro.feedback-form.general-feedback.placeholder" = "Please give us your feedback…"; + +/* Title for the General Feedback step in the Privacy Pro feedback form */ +"ppro.feedback-form.general-feedback.title" = "General Feedback"; + +/* Title for the ITR category in the Privacy Pro feedback form */ +"ppro.feedback-form.report-itr-problem.title" = "Identity Theft Restoration"; + +/* Title for the PIR category in the Privacy Pro feedback form */ +"ppro.feedback-form.report-pir-problem.title" = "Personal Information Removal"; + +/* Title for the Subscriptions and Payments category in the Privacy Pro feedback form */ +"ppro.feedback-form.report-ppro-problem.title" = "Subscriptions and Payments"; + +/* Placeholder for the Report a Problem step in the Privacy Pro feedback form */ +"ppro.feedback-form.report-problem.placeholder" = "Tell us what's going on…"; + +/* Title for the Report a Problem step in the Privacy Pro feedback form */ +"ppro.feedback-form.report-problem.title" = "Report a Problem"; + +/* Title for the VPN category in the Privacy Pro feedback form */ +"ppro.feedback-form.report-vpn-problem.title" = "VPN"; + +/* Placeholder for the Feature Request step in the Privacy Pro feedback form */ +"ppro.feedback-form.request-feature.placeholder" = "What feature would you like to see?"; + +/* Title for the Feature Request step in the Privacy Pro feedback form */ +"ppro.feedback-form.request-feature.title" = "Feature Request"; + +/* Title for the category selection section in the Privacy Pro feedback form */ +"ppro.feedback-form.select-category.title" = "Select a category"; + +/* Text for the body of the PPro feedback form */ +"ppro.feedback-form.text-1" = "Found an issue not covered in our [help center](duck://)? We definitely want to know about it."; + +/* Text for the body of the PPro feedback form */ +"ppro.feedback-form.text-2" = "In addition to the details entered above, we send some anonymized info with your feedback:"; + +/* Bullet text for the body of the PPro feedback form */ +"ppro.feedback-form.text-3" = "• Whether some browser features are active"; + +/* Bullet text for the body of the PPro feedback form */ +"ppro.feedback-form.text-4" = "• Aggregate app diagnostics (e.g., error codes)"; + +/* Text for the body of the PPro feedback form */ +"ppro.feedback-form.text-5" = "By tapping \"Submit\" you agree that DuckDuckGo may use information submitted to improve the app."; + +/* Title for the text box in the Privacy Pro feedback form */ +"ppro.feedback-form.text-box.title" = "Feedback"; + +/* Title for the Privacy Pro feedback form */ +"ppro.feedback-form.title" = "Send Feedback"; + /* Button title for sync bookmarks limits exceeded warning to go to manage bookmarks */ "prefrences.sync.bookmarks-limit-exceeded-action" = "Manage Bookmarks"; @@ -1897,6 +2011,18 @@ https://duckduckgo.com/mac"; /* No comment provided by engineer. */ "section.title.favorites" = "Favorites"; +/* Name of the option the user can chose to give general browser feedback */ +"send.browser.feedback.general-feedback" = "General feedback"; + +/* Name of the option the user can chose to give browser feedback about a problem they enountered */ +"send.browser.feedback.report-problem" = "Report a problem"; + +/* Name of the option the user can chose to give browser feedback about a feature they would like */ +"send.browser.feedback.request-feature" = "Request a feature"; + +/* Title of the picker where the user can chose the category of the feedback they want ot send. */ +"send.browser.feedback.select-category" = "Select a category"; + /* Settings cell for About DDG */ "settings.about.ddg" = "About DuckDuckGo"; @@ -1958,6 +2084,9 @@ But if you *do* want a peek under the hood, you can find more information about /* Section footer Autolock description */ "settings.autolock.description" = "If Touch ID, Face ID, or a system passcode is enabled, you'll be asked to unlock the app when opening it."; +/* Settings cell for Browser Feedback */ +"settings.browser.feedback" = "Browser Feedback"; + /* Settings screen cell text for Automatically Clearing Data */ "settings.clear.data" = "Automatically Clear Data"; @@ -2298,6 +2427,9 @@ But if you *do* want a peek under the hood, you can find more information about /* FAQ Description */ "subscription.faq.description" = "Get answers to frequently asked questions or contact Privacy Pro support from our help pages."; +/* Send Feedback Button */ +"subscription.feedback" = "Send Feedback"; + /* Cancel action for the existing subscription dialog */ "subscription.found.cancel" = "Cancel"; diff --git a/DuckDuckGoTests/NetworkProtectionStatusViewModelTests.swift b/DuckDuckGoTests/NetworkProtectionStatusViewModelTests.swift index fda6f82929..47428ed53d 100644 --- a/DuckDuckGoTests/NetworkProtectionStatusViewModelTests.swift +++ b/DuckDuckGoTests/NetworkProtectionStatusViewModelTests.swift @@ -44,7 +44,8 @@ final class NetworkProtectionStatusViewModelTests: XCTestCase { settings: VPNSettings(defaults: .networkProtectionGroupDefaults), statusObserver: statusObserver, serverInfoObserver: serverInfoObserver, - locationListRepository: MockNetworkProtectionLocationListRepository()) + locationListRepository: MockNetworkProtectionLocationListRepository(), + usesUnifiedFeedbackForm: false) } override func tearDown() { From 82a77a0f980250628900b476b2352efc39ea2cef Mon Sep 17 00:00:00 2001 From: Sam Symons Date: Tue, 27 Aug 2024 20:22:36 -0700 Subject: [PATCH 28/32] Move WireGuard dependency to packet tunnel provider (#3273) Task/Issue URL: https://app.asana.com/0/414709148257752/1207874749913488/f Tech Design URL: CC: Description: This PR removes WireGuard as a dependency from BSK and moves it to the clients. Now the packet tunnel provider depends on it directly, instead of getting it through the NetworkProtection library. --- DuckDuckGo.xcodeproj/project.pbxproj | 19 ++++++++++- .../xcshareddata/swiftpm/Package.resolved | 4 +-- ...etworkProtectionPacketTunnelProvider.swift | 32 +++++++++++++++++++ 3 files changed, 52 insertions(+), 3 deletions(-) diff --git a/DuckDuckGo.xcodeproj/project.pbxproj b/DuckDuckGo.xcodeproj/project.pbxproj index c9919dd4b2..7dc0e24f12 100644 --- a/DuckDuckGo.xcodeproj/project.pbxproj +++ b/DuckDuckGo.xcodeproj/project.pbxproj @@ -231,6 +231,7 @@ 4BBBBA872B02E85400D965DA /* DesignResourcesKit in Frameworks */ = {isa = PBXBuildFile; productRef = 4BBBBA862B02E85400D965DA /* DesignResourcesKit */; }; 4BBBBA922B03291700D965DA /* VPNWaitlistUserText.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BBBBA912B03291700D965DA /* VPNWaitlistUserText.swift */; }; 4BC21A2F27238B7500229F0E /* RunLoopExtensionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BC21A2C272388BD00229F0E /* RunLoopExtensionTests.swift */; }; + 4BC8948C2C7902E6009AA141 /* WireGuard in Frameworks */ = {isa = PBXBuildFile; productRef = 4BC8948B2C7902E6009AA141 /* WireGuard */; }; 4BCBE45E2BA7E81F00FC75A1 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 4BCBE45D2BA7E81F00FC75A1 /* PrivacyInfo.xcprivacy */; }; 4BCBE4602BA7E87100FC75A1 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 4BCBE45F2BA7E87100FC75A1 /* PrivacyInfo.xcprivacy */; }; 4BCD14672B05B682000B1E4C /* NetworkProtectionTermsAndConditionsStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BCD14662B05B682000B1E4C /* NetworkProtectionTermsAndConditionsStore.swift */; }; @@ -2914,6 +2915,7 @@ 02025664298818B200E694E7 /* NetworkExtension.framework in Frameworks */, 4B45D85C2BE0B115006061B5 /* Subscription in Frameworks */, 4B470EE4299C6DFB0086EBDC /* Core.framework in Frameworks */, + 4BC8948C2C7902E6009AA141 /* WireGuard in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6184,6 +6186,7 @@ name = PacketTunnelProvider; packageProductDependencies = ( 4B45D85B2BE0B115006061B5 /* Subscription */, + 4BC8948B2C7902E6009AA141 /* WireGuard */, ); productName = PacketTunnelProvider; productReference = 02025662298818B100E694E7 /* PacketTunnelProvider.appex */; @@ -6597,6 +6600,7 @@ B6F997C22B8F374300476735 /* XCRemoteSwiftPackageReference "apple-toolbox" */, F1D43AF82B99C1D300BAB743 /* XCRemoteSwiftPackageReference "BareBonesBrowser" */, 9F8FE9472BAE50E50071E372 /* XCRemoteSwiftPackageReference "lottie-spm" */, + 4BC8948A2C7902E6009AA141 /* XCRemoteSwiftPackageReference "wireguard-apple" */, ); productRefGroup = 84E341931E2F7EFB00BDBA6F /* Products */; projectDirPath = ""; @@ -10606,6 +10610,14 @@ version = 2.0.0; }; }; + 4BC8948A2C7902E6009AA141 /* XCRemoteSwiftPackageReference "wireguard-apple" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/duckduckgo/wireguard-apple"; + requirement = { + kind = exactVersion; + version = 1.1.3; + }; + }; 854007E52B57FB020001BD98 /* XCRemoteSwiftPackageReference "ZIPFoundation" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/weichsel/ZIPFoundation.git"; @@ -10619,7 +10631,7 @@ repositoryURL = "https://github.com/DuckDuckGo/BrowserServicesKit"; requirement = { kind = exactVersion; - version = 186.1.0; + version = 187.0.0; }; }; 9F8FE9472BAE50E50071E372 /* XCRemoteSwiftPackageReference "lottie-spm" */ = { @@ -10755,6 +10767,11 @@ package = F42D541B29DCA40B004C4FF1 /* XCRemoteSwiftPackageReference "DesignResourcesKit" */; productName = DesignResourcesKit; }; + 4BC8948B2C7902E6009AA141 /* WireGuard */ = { + isa = XCSwiftPackageProductDependency; + package = 4BC8948A2C7902E6009AA141 /* XCRemoteSwiftPackageReference "wireguard-apple" */; + productName = WireGuard; + }; 4BE67B002B96B741007335F7 /* Common */ = { isa = XCSwiftPackageProductDependency; package = 98A16C2928A11BDE00A6C003 /* XCRemoteSwiftPackageReference "BrowserServicesKit" */; diff --git a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 6ba7d149b4..039ab9402b 100644 --- a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -32,8 +32,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/DuckDuckGo/BrowserServicesKit", "state" : { - "revision" : "606ccf9e86f5cad3ae83132f46241357feecf152", - "version" : "186.1.0" + "revision" : "db0a7b47918ccfea0946d88424415c104f67c37d", + "version" : "187.0.0" } }, { diff --git a/PacketTunnelProvider/NetworkProtection/NetworkProtectionPacketTunnelProvider.swift b/PacketTunnelProvider/NetworkProtection/NetworkProtectionPacketTunnelProvider.swift index 668c89e439..ea6020ff0e 100644 --- a/PacketTunnelProvider/NetworkProtection/NetworkProtectionPacketTunnelProvider.swift +++ b/PacketTunnelProvider/NetworkProtection/NetworkProtectionPacketTunnelProvider.swift @@ -26,6 +26,7 @@ import NetworkExtension import NetworkProtection import Subscription import WidgetKit +import WireGuard // Initial implementation for initial Network Protection tests. Will be fleshed out with https://app.asana.com/0/1203137811378537/1204630829332227/f final class NetworkProtectionPacketTunnelProvider: PacketTunnelProvider { @@ -374,6 +375,7 @@ final class NetworkProtectionPacketTunnelProvider: PacketTunnelProvider { tunnelHealthStore: NetworkProtectionTunnelHealthStore(), controllerErrorStore: errorStore, snoozeTimingStore: NetworkProtectionSnoozeTimingStore(userDefaults: .networkProtectionGroupDefaults), + wireGuardInterface: DefaultWireGuardInterface(), keychainType: .dataProtection(.unspecified), tokenStore: tokenStore, debugEvents: Self.networkProtectionDebugEvents(controllerErrorStore: errorStore), @@ -444,3 +446,33 @@ final class NetworkProtectionPacketTunnelProvider: PacketTunnelProvider { } } } + +final class DefaultWireGuardInterface: WireGuardInterface { + func turnOn(settings: UnsafePointer, handle: Int32) -> Int32 { + wgTurnOn(settings, handle) + } + + func turnOff(handle: Int32) { + wgTurnOff(handle) + } + + func getConfig(handle: Int32) -> UnsafeMutablePointer? { + return wgGetConfig(handle) + } + + func setConfig(handle: Int32, config: String) -> Int64 { + return wgSetConfig(handle, config) + } + + func bumpSockets(handle: Int32) { + wgBumpSockets(handle) + } + + func disableSomeRoamingForBrokenMobileSemantics(handle: Int32) { + wgDisableSomeRoamingForBrokenMobileSemantics(handle) + } + + func setLogger(context: UnsafeMutableRawPointer?, logFunction: (@convention(c) (UnsafeMutableRawPointer?, Int32, UnsafePointer?) -> Void)?) { + wgSetLogger(context, logFunction) + } +} From 8d7701d65cbf4b541285c73a26c66183d8dd3bf0 Mon Sep 17 00:00:00 2001 From: Federico Cappelli Date: Wed, 28 Aug 2024 12:21:59 +0100 Subject: [PATCH 29/32] Logging refactoring phase #2 (#3268) Task/Issue URL: https://app.asana.com/0/1205842942115003/1206750146033742/f Tech Design URL: https://app.asana.com/0/1200194497630846/1206777133329590/f **Description**: Now logging is aligned with our guideline: https://app.asana.com/0/1202500774821704/1208001254061393/f - all OSLog wrappers removed - all os_log uses removed and replaced with Logger - ability to disable logs from the app removed - Local and shared Logger improved --- Core/BookmarksImporter.swift | 5 +- Core/ContentBlocking.swift | 6 +- Core/CookieStorage.swift | 3 +- Core/DebugUserScript.swift | 3 +- Core/DefaultVariantManager.swift | 7 +- Core/EtagStorage.swift | 3 +- Core/HistoryManager.swift | 9 +- Core/Logger+Multiple.swift | 28 ++++ Core/Logging.swift | 73 ----------- Core/Pixel.swift | 8 +- Core/PrivacyFeatures.swift | 7 +- Core/StatisticsLoader.swift | 9 +- Core/SyncBookmarksAdapter.swift | 15 +-- Core/SyncErrorHandler.swift | 3 +- Core/SyncMetadataDatabase.swift | 9 +- Core/TabInstrumentation.swift | 10 +- Core/WebCacheManager.swift | 3 +- DuckDuckGo.xcodeproj/project.pbxproj | 14 +- .../xcshareddata/swiftpm/Package.resolved | 10 +- .../AdAttribution/AdAttributionFetcher.swift | 6 +- DuckDuckGo/AppDelegate+Attribution.swift | 9 +- DuckDuckGo/AppDelegate.swift | 18 +-- DuckDuckGo/AppIconManager.swift | 5 +- DuckDuckGo/AppRatingPrompt.swift | 4 +- .../Autoconsent/AutoconsentUserScript.swift | 37 +++--- DuckDuckGo/AutofillDebugViewController.swift | 4 +- DuckDuckGo/AutofillLoginListViewModel.swift | 3 +- ...ofillLoginSettingsListViewController.swift | 3 +- DuckDuckGo/BookmarksDatabase.swift | 9 +- DuckDuckGo/BookmarksViewController.swift | 7 +- .../Configuration/ConfigurationManager.swift | 7 +- DuckDuckGo/DatabaseMigration.swift | 11 +- DuckDuckGo/DebugEtagStorage.swift | 3 +- DuckDuckGo/DownloadManager.swift | 7 +- DuckDuckGo/DownloadsListViewModel.swift | 19 ++- DuckDuckGo/DuckPlayer/DuckPlayer.swift | 2 +- .../DuckPlayerNavigationHandler.swift | 25 ++-- DuckDuckGo/DuckPlayer/DuckPlayerStorage.swift | 5 +- DuckDuckGo/Favicons.swift | 5 +- DuckDuckGo/FeedbackSender.swift | 7 +- .../ImageCacheDebugViewController.swift | 3 +- DuckDuckGo/MainViewController+Segues.swift | 43 +++--- DuckDuckGo/MainViewController.swift | 13 +- DuckDuckGo/OmniBar.swift | 3 +- DuckDuckGo/PassKitPreviewHelper.swift | 3 +- .../PrivacyDashboardViewController.swift | 5 +- ...otDebugViewController+VanillaBrowser.swift | 3 +- DuckDuckGo/SecureVaultReporter.swift | 6 +- DuckDuckGo/ShortcutItemView.swift | 2 +- DuckDuckGo/SyncSettingsViewController.swift | 3 +- DuckDuckGo/TabManager.swift | 3 +- DuckDuckGo/TabSwitcherViewController.swift | 3 +- DuckDuckGo/TabViewController.swift | 15 ++- .../TabsModelPersistenceExtension.swift | 6 +- DuckDuckGo/UserAuthenticator.swift | 3 +- DuckDuckGo/WebContainerViewController.swift | 3 +- DuckDuckGo/ZippedPassKitPreviewHelper.swift | 5 +- .../BrokenSiteReportingTests.swift | 2 +- .../DomainMatchingReportTests.swift | 5 +- DuckDuckGoTests/DomainMatchingTests.swift | 4 +- .../FireButtonReferenceTests.swift | 4 +- OpenAction/ActionViewController.swift | 3 +- .../NetworkProtection/VPNLogger.swift | 124 ------------------ ShareExtension/ShareViewController.swift | 3 +- Widgets/Widgets.swift | 13 +- 65 files changed, 276 insertions(+), 425 deletions(-) create mode 100644 Core/Logger+Multiple.swift delete mode 100644 Core/Logging.swift delete mode 100644 PacketTunnelProvider/NetworkProtection/VPNLogger.swift diff --git a/Core/BookmarksImporter.swift b/Core/BookmarksImporter.swift index b2398fa173..4996146f3e 100644 --- a/Core/BookmarksImporter.swift +++ b/Core/BookmarksImporter.swift @@ -22,6 +22,7 @@ import Common import Foundation import Persistence import SwiftSoup +import os.log public enum BookmarksImportError: Error { case invalidHtmlNoDLTag @@ -94,7 +95,7 @@ final public class BookmarksImporter { if isDocumentInSafariFormat(document) { guard let newDocument = try transformSafariDocument(document: document) else { - os_log("Safari format could not be handled", type: .debug) + Logger.bookmarks.debug("Safari format could not be handled") throw BookmarksImportError.safariTransformFailure } try parse(documentElement: newDocument, importedBookmark: nil) @@ -208,7 +209,7 @@ final public class BookmarksImporter { do { try await coreDataStorage.importBookmarks(bookmarks) } catch { - os_log("Failed to save imported bookmarks to core data %s", type: .debug, error.localizedDescription) + Logger.bookmarks.error("Failed to save imported bookmarks to core data: \(error.localizedDescription, privacy: .public)") throw BookmarksImportError.saveFailure } } diff --git a/Core/ContentBlocking.swift b/Core/ContentBlocking.swift index b63e7ca23b..c407713296 100644 --- a/Core/ContentBlocking.swift +++ b/Core/ContentBlocking.swift @@ -138,8 +138,7 @@ public final class ContentBlocking { AdClickAttributionDetection(feature: adClickAttribution, tld: tld, eventReporting: attributionEvents, - errorReporting: attributionDebugEvents, - log: .adAttributionLog) + errorReporting: attributionDebugEvents) } public func makeAdClickAttributionLogic(tld: TLD) -> AdClickAttributionLogic { @@ -147,8 +146,7 @@ public final class ContentBlocking { rulesProvider: adClickAttributionRulesProvider, tld: tld, eventReporting: attributionEvents, - errorReporting: attributionDebugEvents, - log: .adAttributionLog) + errorReporting: attributionDebugEvents) } private let attributionEvents = EventMapping { event, _, parameters, _ in diff --git a/Core/CookieStorage.swift b/Core/CookieStorage.swift index 0cfc79c970..aca9ce7975 100644 --- a/Core/CookieStorage.swift +++ b/Core/CookieStorage.swift @@ -19,6 +19,7 @@ import Common import Foundation +import os.log /// Class for persisting cookies for fire proofed sites to work around a WKWebView / DataStore bug which does not let data get persisted until the webview has loaded. /// @@ -56,7 +57,7 @@ public class CookieStorage { }) if let cookie = HTTPCookie(properties: properties) { - os_log("read cookie %s %s %s", log: .generalLog, type: .debug, cookie.domain, cookie.name, cookie.value) + Logger.general.debug("read cookie \(cookie.domain) \(cookie.name) \(cookie.value)") storedCookies.append(cookie) } } diff --git a/Core/DebugUserScript.swift b/Core/DebugUserScript.swift index 1c7ee0ea47..118ee72186 100644 --- a/Core/DebugUserScript.swift +++ b/Core/DebugUserScript.swift @@ -20,6 +20,7 @@ import Common import WebKit import UserScript +import os.log public class DebugUserScript: NSObject, UserScript { @@ -56,7 +57,7 @@ public class DebugUserScript: NSObject, UserScript { } private func handleLog(message: WKScriptMessage) { - os_log("%s", log: .generalLog, type: .debug, String(describing: message.body)) + Logger.general.debug("\(String(describing: message.body))") } private func handleSignpost(message: WKScriptMessage) { diff --git a/Core/DefaultVariantManager.swift b/Core/DefaultVariantManager.swift index cd483bda3d..5ce128d6ec 100644 --- a/Core/DefaultVariantManager.swift +++ b/Core/DefaultVariantManager.swift @@ -21,6 +21,7 @@ import Common import Foundation import Speech import BrowserServicesKit +import os.log extension FeatureName { // Define your feature e.g.: @@ -127,17 +128,17 @@ public class DefaultVariantManager: VariantManager { public func assignVariantIfNeeded(_ newInstallCompletion: (VariantManager) -> Void) { guard !storage.hasInstallStatistics else { - os_log("no new variant needed for existing user", log: .generalLog, type: .debug) + Logger.general.debug("no new variant needed for existing user") return } if let variant = currentVariant { - os_log("already assigned variant: %s", log: .generalLog, type: .debug, String(describing: variant)) + Logger.general.debug("already assigned variant: \(String(describing: variant))") return } guard let variant = selectVariant() else { - os_log("Failed to assign variant", log: .generalLog, type: .debug) + Logger.general.debug("Failed to assign variant") // it's possible this failed because there are none to assign, we should still let new install logic execute _ = newInstallCompletion(self) diff --git a/Core/EtagStorage.swift b/Core/EtagStorage.swift index 3b02fe96e7..7e0cc1fd29 100644 --- a/Core/EtagStorage.swift +++ b/Core/EtagStorage.swift @@ -20,6 +20,7 @@ import Common import Foundation import Configuration +import os.log public protocol BlockerListETagStorage { @@ -36,7 +37,7 @@ public struct UserDefaultsETagStorage: BlockerListETagStorage { public func loadEtag(for configuration: Configuration) -> String? { let etag = defaults?.string(forKey: configuration.storeKey) - os_log("stored etag for %s %s", log: .generalLog, type: .debug, configuration.storeKey, etag ?? "nil") + Logger.general.debug("Stored etag for \(configuration.storeKey) \(etag ?? "nil")") return etag } diff --git a/Core/HistoryManager.swift b/Core/HistoryManager.swift index 1923612682..272bee87dd 100644 --- a/Core/HistoryManager.swift +++ b/Core/HistoryManager.swift @@ -23,6 +23,7 @@ import BrowserServicesKit import History import Common import Persistence +import os.log public protocol HistoryManaging { @@ -152,7 +153,7 @@ public class HistoryDatabase { public static var defaultDBLocation: URL = { guard let url = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask).first else { - os_log("HistoryDatabase.make - OUT, failed to get application support directory") + Logger.general.fault("HistoryDatabase.make - OUT, failed to get application support directory") fatalError("Failed to get location") } return url @@ -163,10 +164,10 @@ public class HistoryDatabase { }() public static func make(location: URL = defaultDBLocation, readOnly: Bool = false) -> CoreDataDatabase { - os_log("HistoryDatabase.make - IN - %s", location.absoluteString) + Logger.general.debug("HistoryDatabase.make - IN - \(location.absoluteString)") let bundle = History.bundle guard let model = CoreDataDatabase.loadModel(from: bundle, named: "BrowsingHistory") else { - os_log("HistoryDatabase.make - OUT, failed to loadModel") + Logger.general.debug("HistoryDatabase.make - OUT, failed to loadModel") fatalError("Failed to load model") } @@ -174,7 +175,7 @@ public class HistoryDatabase { containerLocation: location, model: model, readOnly: readOnly) - os_log("HistoryDatabase.make - OUT") + Logger.general.debug("HistoryDatabase.make - OUT") return db } } diff --git a/Core/Logger+Multiple.swift b/Core/Logger+Multiple.swift new file mode 100644 index 0000000000..937ee2c8f8 --- /dev/null +++ b/Core/Logger+Multiple.swift @@ -0,0 +1,28 @@ +// +// Logger+Multiple.swift +// DuckDuckGo +// +// Copyright © 2024 DuckDuckGo. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import Foundation +import os.log + +public extension Logger { + static var adAttribution = { Logger(subsystem: "AD Attribution", category: "") }() + static var lifecycle = { Logger(subsystem: "Lifecycle", category: "") }() + static var configuration = { Logger(subsystem: "Configuration", category: "") }() + static var duckPlayer = { Logger(subsystem: "DuckPlayer", category: "") }() +} diff --git a/Core/Logging.swift b/Core/Logging.swift deleted file mode 100644 index ad8057f979..0000000000 --- a/Core/Logging.swift +++ /dev/null @@ -1,73 +0,0 @@ -// -// Logging.swift -// DuckDuckGo -// -// Copyright © 2017 DuckDuckGo. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -import Foundation -import BrowserServicesKit -import Common - - -public extension OSLog { - - enum AppCategories: String, CaseIterable { - case generalLog = "DDG General" - case adAttributionLog = "DDG AdAttribution" - case lifecycleLog = "DDG Lifecycle" - case autoconsentLog = "DDG Autoconsent" - case configurationLog = "DDG Configuration" - case syncLog = "DDG Sync" - case duckPlayerLog = "Duck Player" - } - - @OSLogWrapper(.generalLog) static var generalLog - @OSLogWrapper(.adAttributionLog) static var adAttributionLog - @OSLogWrapper(.lifecycleLog) static var lifecycleLog - @OSLogWrapper(.autoconsentLog) static var autoconsentLog - @OSLogWrapper(.configurationLog) static var configurationLog - @OSLogWrapper(.syncLog) static var syncLog - @OSLogWrapper(.duckPlayerLog) static var duckPlayerLog - - // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - // To activate Logging Categories add categories here: -#if DEBUG - static var enabledCategories: Set = [ - .generalLog, - .adAttributionLog, - .lifecycleLog, - .configurationLog, - .syncLog, - .duckPlayerLog - ] -#endif - -} - -public extension OSLog.OSLogWrapper { - - private static let enableLoggingCategoriesOnce: Void = { -#if DEBUG - OSLog.enabledLoggingCategories = Set(OSLog.enabledCategories.map(\.rawValue)) -#endif - }() - - init(_ category: OSLog.AppCategories) { - _=Self.enableLoggingCategoriesOnce - self.init(rawValue: category.rawValue) - } - -} diff --git a/Core/Pixel.swift b/Core/Pixel.swift index 9838e5d53e..9f87a0dec6 100644 --- a/Core/Pixel.swift +++ b/Core/Pixel.swift @@ -21,6 +21,7 @@ import Foundation import BrowserServicesKit import Common import Networking +import os.log public struct PixelParameters { public static let url = "url" @@ -223,9 +224,7 @@ public class Pixel { } guard !isDryRun else { - os_log(.debug, log: .generalLog, "Pixel fired %{public}@ %{public}@", - pixelName.replacingOccurrences(of: "_", with: "."), - params.count > 0 ? "\(params)" : "") + Logger.general.debug("Pixel fired \(pixelName.replacingOccurrences(of: "_", with: "."), privacy: .public) \(params.count > 0 ? "\(params)" : "", privacy: .public)") // simulate server response time for Dry Run mode DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { onComplete(nil) @@ -256,8 +255,7 @@ public class Pixel { headers: headers) let request = APIRequest(configuration: configuration, urlSession: .session(useMainThreadCallbackQueue: true)) request.fetch { _, error in - os_log("Pixel fired %{public}s %{public}s", log: .generalLog, type: .debug, - pixelName.replacingOccurrences(of: "_", with: "."), "\(params)") + Logger.general.debug("Pixel fired \(pixelName, privacy: .public) \(params, privacy: .public)") onComplete(error) } } diff --git a/Core/PrivacyFeatures.swift b/Core/PrivacyFeatures.swift index 422484ce5b..a4a7abd883 100644 --- a/Core/PrivacyFeatures.swift +++ b/Core/PrivacyFeatures.swift @@ -19,6 +19,7 @@ import BrowserServicesKit import Common +import os.log public final class PrivacyFeatures { @@ -54,9 +55,11 @@ public final class PrivacyFeatures { AppHTTPSUpgradeStore(database: Database.shared, bloomFilterDataURL: bloomFilterDataURL, embeddedResources: embeddedBloomFilterResources, - errorEvents: httpsUpgradeDebugEvents) + errorEvents: httpsUpgradeDebugEvents, + logger: Logger.general) } - public static let httpsUpgrade = HTTPSUpgrade(store: httpsUpgradeStore, privacyManager: ContentBlocking.shared.privacyConfigurationManager) + public static let httpsUpgrade = HTTPSUpgrade(store: httpsUpgradeStore, privacyManager: ContentBlocking.shared.privacyConfigurationManager, + logger: Logger.general) } diff --git a/Core/StatisticsLoader.swift b/Core/StatisticsLoader.swift index 60b5fe14dc..7d718b11ed 100644 --- a/Core/StatisticsLoader.swift +++ b/Core/StatisticsLoader.swift @@ -21,6 +21,7 @@ import Common import Foundation import BrowserServicesKit import Networking +import os.log public class StatisticsLoader { @@ -52,7 +53,7 @@ public class StatisticsLoader { request.fetch { response, error in if let error = error { - os_log("Initial atb request failed with error %s", log: .generalLog, type: .debug, error.localizedDescription) + Logger.general.error("Initial atb request failed with error: \(error.localizedDescription, privacy: .public)") completion() return } @@ -74,7 +75,7 @@ public class StatisticsLoader { request.fetch { _, error in if let error = error { - os_log("Exti request failed with error %s", log: .generalLog, type: .debug, error.localizedDescription) + Logger.general.error("Exit request failed with error: \(error.localizedDescription, privacy: .public)") completion() return } @@ -96,7 +97,7 @@ public class StatisticsLoader { request.fetch { response, error in if let error = error { - os_log("Search atb request failed with error %s", log: .generalLog, type: .debug, error.localizedDescription) + Logger.general.error("Search atb request failed with error: \(error.localizedDescription, privacy: .public)") completion() return } @@ -121,7 +122,7 @@ public class StatisticsLoader { request.fetch { response, error in if let error = error { - os_log("App atb request failed with error %s", log: .generalLog, type: .debug, error.localizedDescription) + Logger.general.error("App atb request failed with error: \(error.localizedDescription, privacy: .public)") completion() return } diff --git a/Core/SyncBookmarksAdapter.swift b/Core/SyncBookmarksAdapter.swift index af82db7be1..a50d7315c8 100644 --- a/Core/SyncBookmarksAdapter.swift +++ b/Core/SyncBookmarksAdapter.swift @@ -25,6 +25,7 @@ import Foundation import Persistence import SyncDataProviders import WidgetKit +import os.log public protocol FavoritesDisplayModeStoring: AnyObject { var favoritesDisplayMode: FavoritesDisplayMode { get set } @@ -94,8 +95,7 @@ public final class SyncBookmarksAdapter { syncDidCompletePublisher = syncDidCompleteSubject.eraseToAnyPublisher() databaseCleaner = BookmarkDatabaseCleaner( bookmarkDatabase: database, - errorEvents: BookmarksCleanupErrorHandling(), - log: .generalLog + errorEvents: BookmarksCleanupErrorHandling() ) widgetRefreshCancellable = syncDidCompletePublisher.sink { _ in WidgetCenter.shared.reloadAllTimelines() @@ -164,7 +164,7 @@ public final class SyncBookmarksAdapter { stateStore = try BookmarksFaviconsFetcherStateStore(applicationSupportURL: url) } catch { Pixel.fire(pixel: .bookmarksFaviconsFetcherStateStoreInitializationFailed, error: error) - os_log(.error, log: .syncLog, "Failed to initialize BookmarksFaviconsFetcherStateStore: %{public}s", String(reflecting: error)) + Logger.sync.error("Failed to initialize BookmarksFaviconsFetcherStateStore:: \(error.localizedDescription, privacy: .public)") return nil } @@ -173,8 +173,7 @@ public final class SyncBookmarksAdapter { stateStore: stateStore, fetcher: FaviconFetcher(), faviconStore: Favicons.shared, - errorEvents: BookmarksFaviconsFetcherErrorHandler(), - log: .syncLog + errorEvents: BookmarksFaviconsFetcherErrorHandler() ) } @@ -190,11 +189,11 @@ public final class SyncBookmarksAdapter { return } if faviconsFetcher.isFetchingInProgress == true { - os_log(.debug, log: .syncLog, "Favicons Fetching is in progress. Starting background task to allow it to gracefully complete.") + Logger.sync.debug("Favicons Fetching is in progress. Starting background task to allow it to gracefully complete.") var taskID: UIBackgroundTaskIdentifier! taskID = application.beginBackgroundTask(withName: "Cancelled Favicons Fetching Completion Task") { - os_log(.debug, log: .syncLog, "Forcing background task completion") + Logger.sync.debug("Forcing background task completion") application.endBackgroundTask(taskID) } faviconsFetchingDidFinishCancellable?.cancel() @@ -202,7 +201,7 @@ public final class SyncBookmarksAdapter { .prefix(1) .receive(on: DispatchQueue.main) .sink { _ in - os_log(.debug, log: .syncLog, "Ending background task") + Logger.sync.debug("Ending background task") application.endBackgroundTask(taskID) } } diff --git a/Core/SyncErrorHandler.swift b/Core/SyncErrorHandler.swift index ec929c8fbd..3c29fb3a99 100644 --- a/Core/SyncErrorHandler.swift +++ b/Core/SyncErrorHandler.swift @@ -24,6 +24,7 @@ import Persistence import Foundation import SyncUI import SyncDataProviders +import os.log public enum AsyncErrorType: String { case bookmarksCountLimitExceeded @@ -176,7 +177,7 @@ extension SyncErrorHandler { } } let modelTypeString = modelType.rawValue.capitalized - os_log(.error, log: OSLog.syncLog, "%{public}@ Sync error: %{public}s", modelTypeString, String(reflecting: error)) + Logger.sync.error("\(modelTypeString, privacy: .public) Sync error: \(error.localizedDescription, privacy: .public)") } private func handleSyncError(_ syncError: SyncError, modelType: ModelType) { diff --git a/Core/SyncMetadataDatabase.swift b/Core/SyncMetadataDatabase.swift index a714176eab..afb105d753 100644 --- a/Core/SyncMetadataDatabase.swift +++ b/Core/SyncMetadataDatabase.swift @@ -22,6 +22,7 @@ import CoreData import DDGSync import Persistence import Common +import os.log public final class SyncMetadataDatabase { @@ -29,17 +30,17 @@ public final class SyncMetadataDatabase { public static var defaultDBLocation: URL = { guard let url = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask).first else { - os_log("SyncMetadataDatabase.make - OUT, failed to get location") + Logger.sync.fault("SyncMetadataDatabase.make - OUT, failed to get location") fatalError("Failed to get location") } return url }() public static func make(location: URL = defaultDBLocation, readOnly: Bool = false) -> CoreDataDatabase { - os_log("SyncMetadataDatabase.make - IN - %s", location.absoluteString) + Logger.sync.debug("SyncMetadataDatabase.make - IN - \(location.absoluteString)") let bundle = DDGSync.bundle guard let model = CoreDataDatabase.loadModel(from: bundle, named: "SyncMetadata") else { - os_log("SyncMetadataDatabase.make - OUT, failed to loadModel") + Logger.sync.fault("SyncMetadataDatabase.make - OUT, failed to loadModel") fatalError("Failed to load model") } @@ -47,7 +48,7 @@ public final class SyncMetadataDatabase { containerLocation: location, model: model, readOnly: readOnly) - os_log("SyncMetadataDatabase.make - OUT") + Logger.sync.debug("SyncMetadataDatabase.make - OUT") return db } diff --git a/Core/TabInstrumentation.swift b/Core/TabInstrumentation.swift index 039623cb46..af156a4dc2 100644 --- a/Core/TabInstrumentation.swift +++ b/Core/TabInstrumentation.swift @@ -92,10 +92,7 @@ public class TabInstrumentation { // 0 is treated as 1ms let timeInNS: UInt64 = timeInMs.asNanos - - os_log(.debug, - log: type(of: self).tabsLog, - "[%@] Request: %@ - %@ - %@ (%@) in %llu", currentURL, url, requestType, status, reason, timeInNS) + Logger.general.debug("[\(currentURL)] Request: \(url) - \(requestType) - \(status) (\(reason)) in \(timeInNS)") } } @@ -104,10 +101,7 @@ public class TabInstrumentation { let currentURL = self.currentURL ?? "unknown" // 0 is treated as 1ms let timeInNS: UInt64 = timeInMs.asNanos - - os_log(.debug, - log: type(of: self).tabsLog, - "[%@] JSEvent: %@ executedIn: %llu", currentURL, name, timeInNS) + Logger.general.debug("[\(currentURL)] JSEvent: \(name) executedIn: \(timeInNS)") } } } diff --git a/Core/WebCacheManager.swift b/Core/WebCacheManager.swift index a93c079020..356eac3c0d 100644 --- a/Core/WebCacheManager.swift +++ b/Core/WebCacheManager.swift @@ -20,6 +20,7 @@ import Common import WebKit import GRDB +import os.log extension WKWebsiteDataStore { @@ -161,7 +162,7 @@ extension WebCacheManager { if let pool = getValidDatabasePool() { removeObservationsData(from: pool) } else { - os_log("Could not find valid pool to clear observations data", log: .generalLog, type: .debug) + Logger.general.debug("Could not find valid pool to clear observations data") } } diff --git a/DuckDuckGo.xcodeproj/project.pbxproj b/DuckDuckGo.xcodeproj/project.pbxproj index 7dc0e24f12..17e3b6058f 100644 --- a/DuckDuckGo.xcodeproj/project.pbxproj +++ b/DuckDuckGo.xcodeproj/project.pbxproj @@ -348,7 +348,6 @@ 6FE127462C2054A900EB5724 /* NewTabPageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6FE127452C2054A900EB5724 /* NewTabPageViewController.swift */; }; 6FE1274B2C20943500EB5724 /* ShortcutItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6FE1274A2C20943500EB5724 /* ShortcutItemView.swift */; }; 6FF915822B88E07A0042AC87 /* AdAttributionFetcherTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6FF915802B88E0750042AC87 /* AdAttributionFetcherTests.swift */; }; - 7B0D52352C35FEAD0035A60E /* VPNLogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B0D52342C35FEAD0035A60E /* VPNLogger.swift */; }; 7BC571202BDBB877003B0CCE /* VPNActivationDateStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BC5711F2BDBB877003B0CCE /* VPNActivationDateStore.swift */; }; 7BC571212BDBB977003B0CCE /* VPNActivationDateStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BC5711F2BDBB877003B0CCE /* VPNActivationDateStore.swift */; }; 83004E802193BB8200DA013C /* WKNavigationExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83004E7F2193BB8200DA013C /* WKNavigationExtension.swift */; }; @@ -1021,7 +1020,7 @@ F143C2EC1E4A4CD400CFDE3A /* Core.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = F143C2E41E4A4CD400CFDE3A /* Core.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; F143C3171E4A99D200CFDE3A /* AppURLs.swift in Sources */ = {isa = PBXBuildFile; fileRef = F143C3151E4A99D200CFDE3A /* AppURLs.swift */; }; F143C3181E4A99D200CFDE3A /* Link.swift in Sources */ = {isa = PBXBuildFile; fileRef = F143C3161E4A99D200CFDE3A /* Link.swift */; }; - F143C3271E4A9A0E00CFDE3A /* Logging.swift in Sources */ = {isa = PBXBuildFile; fileRef = F143C3231E4A9A0E00CFDE3A /* Logging.swift */; }; + F143C3271E4A9A0E00CFDE3A /* Logger+Multiple.swift in Sources */ = {isa = PBXBuildFile; fileRef = F143C3231E4A9A0E00CFDE3A /* Logger+Multiple.swift */; }; F143C3281E4A9A0E00CFDE3A /* StringExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = F143C3241E4A9A0E00CFDE3A /* StringExtension.swift */; }; F143C3291E4A9A0E00CFDE3A /* URLExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = F143C3251E4A9A0E00CFDE3A /* URLExtension.swift */; }; F14E491F1E391CE900DC037C /* URLExtensionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F14E491E1E391CE900DC037C /* URLExtensionTests.swift */; }; @@ -1577,7 +1576,6 @@ 6FE127452C2054A900EB5724 /* NewTabPageViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewTabPageViewController.swift; sourceTree = ""; }; 6FE1274A2C20943500EB5724 /* ShortcutItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShortcutItemView.swift; sourceTree = ""; }; 6FF915802B88E0750042AC87 /* AdAttributionFetcherTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdAttributionFetcherTests.swift; sourceTree = ""; }; - 7B0D52342C35FEAD0035A60E /* VPNLogger.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VPNLogger.swift; sourceTree = ""; }; 7BC5711F2BDBB877003B0CCE /* VPNActivationDateStore.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VPNActivationDateStore.swift; sourceTree = ""; }; 83004E7F2193BB8200DA013C /* WKNavigationExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WKNavigationExtension.swift; sourceTree = ""; }; 83004E832193E14C00DA013C /* UIAlertControllerExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = UIAlertControllerExtension.swift; path = ../Core/UIAlertControllerExtension.swift; sourceTree = ""; }; @@ -2814,7 +2812,7 @@ F143C2E71E4A4CD400CFDE3A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; F143C3151E4A99D200CFDE3A /* AppURLs.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppURLs.swift; sourceTree = ""; }; F143C3161E4A99D200CFDE3A /* Link.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Link.swift; sourceTree = ""; }; - F143C3231E4A9A0E00CFDE3A /* Logging.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Logging.swift; sourceTree = ""; }; + F143C3231E4A9A0E00CFDE3A /* Logger+Multiple.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Logger+Multiple.swift"; sourceTree = ""; }; F143C3241E4A9A0E00CFDE3A /* StringExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StringExtension.swift; sourceTree = ""; }; F143C3251E4A9A0E00CFDE3A /* URLExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = URLExtension.swift; sourceTree = ""; }; F143C32B1E4A9A4800CFDE3A /* RoundedRectangleView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = RoundedRectangleView.swift; path = ../Core/RoundedRectangleView.swift; sourceTree = ""; }; @@ -5242,7 +5240,6 @@ EE3766DC2AC5940A00AAB575 /* NetworkProtection */ = { isa = PBXGroup; children = ( - 7B0D52342C35FEAD0035A60E /* VPNLogger.swift */, EEEB80A22A421CE600386378 /* NetworkProtectionPacketTunnelProvider.swift */, EE3766DD2AC5945500AAB575 /* NetworkProtectionUNNotificationPresenter.swift */, ); @@ -5634,7 +5631,7 @@ 9887DC242354D2AA005C85F5 /* Database.swift */, 85200FA01FBC5BB5001AF290 /* DDGPersistenceContainer.swift */, F16393FE1ECCB9CC00DDD653 /* FileLoader.swift */, - F143C3231E4A9A0E00CFDE3A /* Logging.swift */, + F143C3231E4A9A0E00CFDE3A /* Logger+Multiple.swift */, F10E522C1E946F8800CE1253 /* NSAttributedStringExtension.swift */, F143C3241E4A9A0E00CFDE3A /* StringExtension.swift */, F1D477CA1F2149C40031ED49 /* Type.swift */, @@ -7009,7 +7006,6 @@ EEEB80A32A421CE600386378 /* NetworkProtectionPacketTunnelProvider.swift in Sources */, EE3766DE2AC5945500AAB575 /* NetworkProtectionUNNotificationPresenter.swift in Sources */, F1FDC9362BF51E41006B1435 /* VPNSettings+Environment.swift in Sources */, - 7B0D52352C35FEAD0035A60E /* VPNLogger.swift in Sources */, BDFF03212BA3D3CF00F324C9 /* NetworkProtectionVisibilityForTunnelProvider.swift in Sources */, EEFC6A602AC0F2F80065027D /* UserText.swift in Sources */, 7BC571212BDBB977003B0CCE /* VPNActivationDateStore.swift in Sources */, @@ -7899,7 +7895,7 @@ 85BDC3192436161C0053DB07 /* LoginFormDetectionUserScript.swift in Sources */, 37DF000A29F9C416002B7D3E /* SyncMetadataDatabase.swift in Sources */, F143C3291E4A9A0E00CFDE3A /* URLExtension.swift in Sources */, - F143C3271E4A9A0E00CFDE3A /* Logging.swift in Sources */, + F143C3271E4A9A0E00CFDE3A /* Logger+Multiple.swift in Sources */, 85372447220DD103009D09CD /* UIKeyCommandExtension.swift in Sources */, 85A1B3B220C6CD9900C18F15 /* CookieStorage.swift in Sources */, 9856A1992933D2EB00ACB44F /* BookmarksModelsErrorHandling.swift in Sources */, @@ -10631,7 +10627,7 @@ repositoryURL = "https://github.com/DuckDuckGo/BrowserServicesKit"; requirement = { kind = exactVersion; - version = 187.0.0; + version = 188.0.0; }; }; 9F8FE9472BAE50E50071E372 /* XCRemoteSwiftPackageReference "lottie-spm" */ = { diff --git a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 039ab9402b..036f584a2e 100644 --- a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -32,8 +32,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/DuckDuckGo/BrowserServicesKit", "state" : { - "revision" : "db0a7b47918ccfea0946d88424415c104f67c37d", - "version" : "187.0.0" + "revision" : "faf25f57d1d61ff855216178c454616031585c07", + "version" : "188.0.0" } }, { @@ -122,8 +122,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/duckduckgo/privacy-dashboard", "state" : { - "revision" : "36dc07cba4bc1e7e0c1d1fb679c3cd077694a072", - "version" : "5.0.0" + "revision" : "665b23dc656c9f787494620494f8e56098a900b2", + "version" : "5.1.1" } }, { @@ -138,7 +138,7 @@ { "identity" : "swift-argument-parser", "kind" : "remoteSourceControl", - "location" : "https://github.com/apple/swift-argument-parser.git", + "location" : "https://github.com/apple/swift-argument-parser", "state" : { "revision" : "0fbc8848e389af3bb55c182bc19ca9d5dc2f255b", "version" : "1.4.0" diff --git a/DuckDuckGo/AdAttribution/AdAttributionFetcher.swift b/DuckDuckGo/AdAttribution/AdAttributionFetcher.swift index b052a0c127..f5be720417 100644 --- a/DuckDuckGo/AdAttribution/AdAttributionFetcher.swift +++ b/DuckDuckGo/AdAttribution/AdAttributionFetcher.swift @@ -18,7 +18,7 @@ // import AdServices -import Common +import os.log protocol AdAttributionFetcher { func fetch() async -> AdServicesAttributionResponse? @@ -56,7 +56,7 @@ struct DefaultAdAttributionFetcher: AdAttributionFetcher { lastToken = token return try await fetchAttributionData(using: token) } catch let error as AdAttributionFetcherError { - os_log("AdAttributionFetcher failed to fetch attribution data: %@. Retrying.", log: .adAttributionLog, error.localizedDescription) + Logger.adAttribution.error("AdAttributionFetcher failed to fetch attribution data: \(error.localizedDescription, privacy: .public). Retrying.") if error == .invalidToken { lastToken = nil @@ -69,7 +69,7 @@ struct DefaultAdAttributionFetcher: AdAttributionFetcher { break } } catch { - os_log("AdAttributionFetcher failed to fetch attribution data: %@", log: .adAttributionLog, error.localizedDescription) + Logger.adAttribution.error("AdAttributionFetcher failed to fetch attribution data: \(error.localizedDescription, privacy: .public)") // Do not retry break diff --git a/DuckDuckGo/AppDelegate+Attribution.swift b/DuckDuckGo/AppDelegate+Attribution.swift index fef1e31449..e82dd002e3 100644 --- a/DuckDuckGo/AppDelegate+Attribution.swift +++ b/DuckDuckGo/AppDelegate+Attribution.swift @@ -21,6 +21,7 @@ import Foundation import Common import StoreKit import AdAttributionKit +import os.log extension AppDelegate { @@ -40,9 +41,9 @@ extension AppDelegate { private func updateAdAttributionKitPostback(conversionValue: Int) async { do { try await AdAttributionKit.Postback.updateConversionValue(conversionValue, coarseConversionValue: .high, lockPostback: true) - os_log("Attribution: AdAttributionKit postback succeeded", type: .debug) + Logger.general.debug("Attribution: AdAttributionKit postback succeeded") } catch { - os_log("Attribution: AdAttributionKit postback failed %@", type: .error, error.localizedDescription) + Logger.general.error("Attribution: AdAttributionKit postback failed \(error.localizedDescription, privacy: .public)") } } @@ -50,9 +51,9 @@ extension AppDelegate { private func updateSKANPostback(conversionValue: Int) async { do { try await SKAdNetwork.updatePostbackConversionValue(conversionValue, coarseValue: .high, lockWindow: true) - os_log("Attribution: SKAN 4 postback succeeded", type: .debug) + Logger.general.debug("Attribution: SKAN 4 postback succeeded") } catch { - os_log("Attribution: SKAN 4 postback failed %@", type: .error, error.localizedDescription) + Logger.general.error("Attribution: SKAN 4 postback failed \(error.localizedDescription, privacy: .public)") } } diff --git a/DuckDuckGo/AppDelegate.swift b/DuckDuckGo/AppDelegate.swift index 95dc82112a..bbe5e3de71 100644 --- a/DuckDuckGo/AppDelegate.swift +++ b/DuckDuckGo/AppDelegate.swift @@ -37,6 +37,7 @@ import SyncDataProviders import Subscription import NetworkProtection import WebKit +import os.log @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { @@ -79,7 +80,7 @@ import WebKit private var syncStateCancellable: AnyCancellable? private var isSyncInProgressCancellable: AnyCancellable? - private let crashCollection = CrashCollection(platform: .iOS, log: .generalLog) + private let crashCollection = CrashCollection(platform: .iOS) private var crashReportUploaderOnboarding: CrashCollectionOnboarding? private var autofillPixelReporter: AutofillPixelReporter? @@ -272,7 +273,6 @@ import WebKit dataProvidersSource: syncDataProviders, errorEvents: SyncErrorHandler(), privacyConfigurationManager: ContentBlocking.shared.privacyConfigurationManager, - log: .syncLog, environment: environment ) syncService.initializeIfNeeded() @@ -477,7 +477,7 @@ import WebKit do { try FileManager.default.removeItem(at: tmp) } catch { - os_log("Failed to delete tmp dir") + Logger.general.error("Failed to delete tmp dir") } } @@ -681,11 +681,11 @@ import WebKit private func suspendSync() { if syncService.isSyncInProgress { - os_log(.debug, log: .syncLog, "Sync is in progress. Starting background task to allow it to gracefully complete.") + Logger.sync.debug("Sync is in progress. Starting background task to allow it to gracefully complete.") var taskID: UIBackgroundTaskIdentifier! taskID = UIApplication.shared.beginBackgroundTask(withName: "Cancelled Sync Completion Task") { - os_log(.debug, log: .syncLog, "Forcing background task completion") + Logger.sync.debug("Forcing background task completion") UIApplication.shared.endBackgroundTask(taskID) } syncDidFinishCancellable?.cancel() @@ -693,7 +693,7 @@ import WebKit .prefix(1) .receive(on: DispatchQueue.main) .sink { _ in - os_log(.debug, log: .syncLog, "Ending background task") + Logger.sync.debug("Ending background task") UIApplication.shared.endBackgroundTask(taskID) } } @@ -708,7 +708,7 @@ import WebKit } func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool { - os_log("App launched with url %s", log: .lifecycleLog, type: .debug, url.absoluteString) + Logger.sync.debug("App launched with url \(url.absoluteString)") // If showing the onboarding intro ignore deeplinks guard mainViewController?.needsToShowOnboardingIntro() == false else { @@ -740,7 +740,7 @@ import WebKit func application(_ application: UIApplication, performFetchWithCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) { - os_log(#function, log: .lifecycleLog, type: .debug) + Logger.lifecycle.debug(#function) AppConfigurationFetch().start(isBackgroundFetch: true) { result in switch result { @@ -858,7 +858,7 @@ import WebKit } private func handleShortCutItem(_ shortcutItem: UIApplicationShortcutItem) { - os_log("Handling shortcut item: %s", log: .generalLog, type: .debug, shortcutItem.type) + Logger.general.debug("Handling shortcut item: \(shortcutItem.type)") Task { @MainActor in diff --git a/DuckDuckGo/AppIconManager.swift b/DuckDuckGo/AppIconManager.swift index dbee15c1c3..43b7494cb9 100644 --- a/DuckDuckGo/AppIconManager.swift +++ b/DuckDuckGo/AppIconManager.swift @@ -17,9 +17,10 @@ // limitations under the License. // -import Common +import Foundation import UIKit import Core +import os.log class AppIconManager { @@ -38,7 +39,7 @@ class AppIconManager { let alternateIconName = appIcon != AppIcon.defaultAppIcon ? appIcon.rawValue : nil UIApplication.shared.setAlternateIconName(alternateIconName) { error in if let error = error { - os_log("Error while changing app icon: %s", log: .generalLog, type: .debug, error.localizedDescription) + Logger.general.error("Error while changing app icon: \(error.localizedDescription, privacy: .public)") completionHandler?(error) } else { completionHandler?(nil) diff --git a/DuckDuckGo/AppRatingPrompt.swift b/DuckDuckGo/AppRatingPrompt.swift index 9222d17dd2..b929572719 100644 --- a/DuckDuckGo/AppRatingPrompt.swift +++ b/DuckDuckGo/AppRatingPrompt.swift @@ -20,7 +20,7 @@ import Foundation import Core import CoreData -import Common +import os.log protocol AppRatingPromptStorage { @@ -141,7 +141,7 @@ class AppRatingPromptCoreDataStorage: AppRatingPromptStorage { do { results = try context.fetch(fetchRequest) } catch { - os_log("Error while fetching AppRatingPromptEntity: %s", log: .generalLog, type: .debug, error.localizedDescription) + Logger.general.error("Error while fetching AppRatingPromptEntity: \(error.localizedDescription, privacy: .public)") return nil } diff --git a/DuckDuckGo/Autoconsent/AutoconsentUserScript.swift b/DuckDuckGo/Autoconsent/AutoconsentUserScript.swift index e071b9c58a..2a359b2748 100644 --- a/DuckDuckGo/Autoconsent/AutoconsentUserScript.swift +++ b/DuckDuckGo/Autoconsent/AutoconsentUserScript.swift @@ -23,6 +23,7 @@ import Core import BrowserServicesKit import UserScript import PrivacyDashboard +import os.log protocol AutoconsentPreferences { var autoconsentEnabled: Bool { get set } @@ -61,7 +62,7 @@ final class AutoconsentUserScript: NSObject, WKScriptMessageHandlerWithReply, Us weak var delegate: AutoconsentUserScriptDelegate? init(config: PrivacyConfiguration, preferences: AutoconsentPreferences = AppUserDefaults(), ignoreNonHTTPURLs: Bool = true) { - os_log("Initialising autoconsent userscript", log: .autoconsentLog, type: .debug) + Logger.autoconsent.debug("Initialising autoconsent userscript") source = Self.loadJS("autoconsent-bundle", from: .main, withReplacements: [:]) self.config = config self.preferences = preferences @@ -80,7 +81,7 @@ final class AutoconsentUserScript: NSObject, WKScriptMessageHandlerWithReply, Us optoutFailed: optoutFailed, selftestFailed: selftestFailed) - os_log("Refreshing dashboard state: %s", log: .autoconsentLog, type: .debug, String(describing: cookieConsentStatus)) + Logger.autoconsent.debug("Refreshing dashboard state: \(String(describing: cookieConsentStatus))") self.delegate?.autoconsentUserScript(self, didUpdateCookieConsentStatus: cookieConsentStatus) } @@ -88,12 +89,10 @@ final class AutoconsentUserScript: NSObject, WKScriptMessageHandlerWithReply, Us func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage, replyHandler: @escaping (Any?, String?) -> Void) { - os_log("Message received: %s", log: .autoconsentLog, type: .debug, String(describing: message.body)) return handleMessage(replyHandler: replyHandler, message: message) } } -// @available(macOS 11, *) extension AutoconsentUserScript { enum MessageName: String, CaseIterable { case `init` @@ -165,7 +164,7 @@ extension AutoconsentUserScript { let json = try JSONSerialization.data(withJSONObject: message) return try JSONDecoder().decode(Target.self, from: json) } catch { - os_log(.error, "Error decoding message body: %{public}@", error.localizedDescription) + Logger.autoconsent.error("Error decoding message body: \(error.localizedDescription, privacy: .public)") return nil } } @@ -192,7 +191,7 @@ extension AutoconsentUserScript { handleOptOutResult(message: message, replyHandler: replyHandler) case MessageName.optInResult: // this is not supported in browser - os_log("ignoring optInResult: %s", log: .autoconsentLog, type: .debug, String(describing: message.body)) + Logger.autoconsent.debug("ignoring optInResult: \(String(describing: message.body))") replyHandler(nil, "opt-in is not supported") case MessageName.cmpDetected: // no need to do anything here @@ -202,14 +201,14 @@ extension AutoconsentUserScript { case MessageName.autoconsentDone: handleAutoconsentDone(message: message, replyHandler: replyHandler) case MessageName.autoconsentError: - os_log("Autoconsent error: %s", log: .autoconsentLog, String(describing: message.body)) + Logger.autoconsent.debug("Autoconsent error: \(String(describing: message.body))") replyHandler([ "type": "ok" ], nil) // this is just to prevent a Promise rejection } } @MainActor func handlePopupFound(message: WKScriptMessage, replyHandler: @escaping (Any?, String?) -> Void) { - os_log("Autoconsent popup found", log: .autoconsentLog) + Logger.autoconsent.debug("Autoconsent popup found") replyHandler([ "type": "ok" ], nil) // this is just to prevent a Promise rejection } @@ -226,7 +225,7 @@ extension AutoconsentUserScript { if ignoreNonHTTPURLs && !url.isHttp && !url.isHttps { // ignore special schemes - os_log("Ignoring special URL scheme: %s", log: .autoconsentLog, type: .debug, messageData.url) + Logger.autoconsent.debug("Ignoring special URL scheme: \(messageData.url)") replyHandler([ "type": "ok" ], nil) // this is just to prevent a Promise rejection return } @@ -239,7 +238,7 @@ extension AutoconsentUserScript { let topURLDomain = message.webView?.url?.host guard config.isFeature(.autoconsent, enabledForDomain: topURLDomain) else { - os_log("disabled for site: %s", log: .autoconsentLog, type: .info, String(describing: url.absoluteString)) + Logger.autoconsent.info("disabled for site: \(String(describing: url.absoluteString))") replyHandler([ "type": "ok" ], nil) // this is just to prevent a Promise rejection return } @@ -316,7 +315,7 @@ extension AutoconsentUserScript { replyHandler(nil, "cannot decode message") return } - os_log("opt-out result: %s", log: .autoconsentLog, type: .debug, String(describing: messageData)) + Logger.autoconsent.debug("opt-out result: \(String(describing: messageData))") if !messageData.result { refreshDashboardState(consentManaged: true, cosmetic: nil, optoutFailed: true, selftestFailed: nil) @@ -336,8 +335,8 @@ extension AutoconsentUserScript { replyHandler(nil, "cannot decode message") return } - os_log("opt-out successful: %s", log: .autoconsentLog, type: .debug, String(describing: messageData)) - + Logger.autoconsent.debug("opt-out successful: \(String(describing: messageData))") + guard let url = URL(string: messageData.url), let host = url.host else { replyHandler(nil, "cannot decode message") @@ -348,7 +347,7 @@ extension AutoconsentUserScript { // trigger popup once per domain if !management.sitesNotifiedCache.contains(host) { - os_log("bragging that we closed a popup", log: .autoconsentLog, type: .debug) + Logger.autoconsent.debug("bragging that we closed a popup") management.sitesNotifiedCache.insert(host) // post popover notification on main thread DispatchQueue.main.async { @@ -363,7 +362,7 @@ extension AutoconsentUserScript { if let selfTestWebView = selfTestWebView, let selfTestFrameInfo = selfTestFrameInfo { - os_log("requesting self-test in: %s", log: .autoconsentLog, type: .debug, messageData.url) + Logger.autoconsent.debug("requesting self-test in: \(messageData.url)") selfTestWebView.evaluateJavaScript( "window.autoconsentMessageCallback({ type: 'selfTest' })", in: selfTestFrameInfo, @@ -371,14 +370,14 @@ extension AutoconsentUserScript { completionHandler: { (result) in switch result { case.failure(let error): - os_log("Error running self-test: %s", log: .autoconsentLog, type: .debug, String(describing: error)) + Logger.autoconsent.error("Error running self-test: \(error.localizedDescription, privacy: .public)") case.success: - os_log("self-test requested", log: .autoconsentLog, type: .debug) + Logger.autoconsent.debug("self-test requested") } } ) } else { - os_log("no self-test scheduled in this tab", log: .autoconsentLog, type: .debug) + Logger.autoconsent.debug("no self-test scheduled in this tab") } selfTestWebView = nil selfTestFrameInfo = nil @@ -391,7 +390,7 @@ extension AutoconsentUserScript { return } // store self-test result - os_log("self-test result: %s", log: .autoconsentLog, type: .debug, String(describing: messageData)) + Logger.autoconsent.debug("self-test result: \(String(describing: messageData))") refreshDashboardState(consentManaged: true, cosmetic: nil, optoutFailed: false, selftestFailed: messageData.result) replyHandler([ "type": "ok" ], nil) // this is just to prevent a Promise rejection } diff --git a/DuckDuckGo/AutofillDebugViewController.swift b/DuckDuckGo/AutofillDebugViewController.swift index f194928580..78ebb76778 100644 --- a/DuckDuckGo/AutofillDebugViewController.swift +++ b/DuckDuckGo/AutofillDebugViewController.swift @@ -22,6 +22,7 @@ import BrowserServicesKit import Core import Common import PrivacyDashboard +import os.log class AutofillDebugViewController: UITableViewController { @@ -118,9 +119,8 @@ class AutofillDebugViewController: UITableViewController { do { _ = try secureVault?.storeWebsiteCredentials(credentials) } catch let error { - os_log(.debug, "Error inserting credential \(error.localizedDescription)") + Logger.general.error("Error inserting credential \(error.localizedDescription, privacy: .public)") } - } ActionMessageView.present(message: "Autofill Data added") diff --git a/DuckDuckGo/AutofillLoginListViewModel.swift b/DuckDuckGo/AutofillLoginListViewModel.swift index 31557e9284..d4d507ee89 100644 --- a/DuckDuckGo/AutofillLoginListViewModel.swift +++ b/DuckDuckGo/AutofillLoginListViewModel.swift @@ -24,6 +24,7 @@ import UIKit import Combine import Core import PrivacyDashboard +import os.log internal enum AutofillLoginListSectionType: Comparable { case enableAutofill @@ -362,7 +363,7 @@ final class AutofillLoginListViewModel: ObservableObject { do { return try secureVault.accounts() } catch { - os_log("Failed to fetch accounts") + Logger.autofill.error("Failed to fetch accounts \(error.localizedDescription, privacy: .public)") return [] } } diff --git a/DuckDuckGo/AutofillLoginSettingsListViewController.swift b/DuckDuckGo/AutofillLoginSettingsListViewController.swift index 92f1aa5264..2ea37e102d 100644 --- a/DuckDuckGo/AutofillLoginSettingsListViewController.swift +++ b/DuckDuckGo/AutofillLoginSettingsListViewController.swift @@ -25,6 +25,7 @@ import Common import DDGSync import DesignResourcesKit import SwiftUI +import os.log enum AutofillSettingsSource: String { case settings @@ -182,7 +183,7 @@ final class AutofillLoginSettingsListViewController: UIViewController { source: AutofillSettingsSource) { let secureVault = try? AutofillSecureVaultFactory.makeVault(reporter: SecureVaultReporter()) if secureVault == nil { - os_log("Failed to make vault") + Logger.autofill.fault("Failed to make vault") } self.viewModel = AutofillLoginListViewModel(appSettings: appSettings, tld: tld, secureVault: secureVault, currentTabUrl: currentTabUrl, currentTabUid: currentTabUid) self.syncService = syncService diff --git a/DuckDuckGo/BookmarksDatabase.swift b/DuckDuckGo/BookmarksDatabase.swift index 962c552516..2b868b0d61 100644 --- a/DuckDuckGo/BookmarksDatabase.swift +++ b/DuckDuckGo/BookmarksDatabase.swift @@ -22,6 +22,7 @@ import Foundation import CoreData import Persistence import Bookmarks +import os.log public class BookmarksDatabase { @@ -33,7 +34,7 @@ public class BookmarksDatabase { public static var defaultDBLocation: URL = { guard let url = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: Constants.bookmarksGroupID) else { - os_log("BookmarksDatabase.make - OUT, failed to get location %{public}s", Constants.bookmarksGroupID) + Logger.bookmarks.fault("BookmarksDatabase.make - OUT, failed to get location \(Constants.bookmarksGroupID, privacy: .public)") fatalError("Failed to get location") } return url @@ -44,10 +45,10 @@ public class BookmarksDatabase { }() public static func make(location: URL = defaultDBLocation, readOnly: Bool = false) -> CoreDataDatabase { - os_log("BookmarksDatabase.make - IN - %s", location.absoluteString) + Logger.bookmarks.debug("BookmarksDatabase.make - IN - \(location.absoluteString, privacy: .public)") let bundle = Bookmarks.bundle guard let model = CoreDataDatabase.loadModel(from: bundle, named: "BookmarksModel") else { - os_log("BookmarksDatabase.make - OUT, failed to loadModel") + Logger.bookmarks.error("BookmarksDatabase.make - OUT, failed to loadModel") fatalError("Failed to load model") } @@ -55,7 +56,7 @@ public class BookmarksDatabase { containerLocation: location, model: model, readOnly: readOnly) - os_log("BookmarksDatabase.make - OUT") + Logger.bookmarks.debug("BookmarksDatabase.make - OUT") return db } } diff --git a/DuckDuckGo/BookmarksViewController.swift b/DuckDuckGo/BookmarksViewController.swift index b5034b411f..6dd701b5bc 100644 --- a/DuckDuckGo/BookmarksViewController.swift +++ b/DuckDuckGo/BookmarksViewController.swift @@ -28,6 +28,7 @@ import CoreData import Combine import Persistence import WidgetKit +import os.log class BookmarksViewController: UIViewController, UITableViewDelegate { @@ -632,7 +633,7 @@ class BookmarksViewController: UIViewController, UITableViewDelegate { let result = await BookmarksImporter( coreDataStore: bookmarksDatabase, - favoritesDisplayMode: appSettings.favoritesDisplayMode + favoritesDisplayMode: self.appSettings.favoritesDisplayMode ).parseAndSave(html: html) switch result { case .success: @@ -645,7 +646,7 @@ class BookmarksViewController: UIViewController, UITableViewDelegate { ActionMessageView.present(message: UserText.importBookmarksSuccessMessage) } case .failure(let bookmarksImportError): - os_log("Bookmarks import error %s", type: .debug, bookmarksImportError.localizedDescription) + Logger.bookmarks.error("Bookmarks import error \(bookmarksImportError.localizedDescription, privacy: .public)") Pixel.fire(pixel: .bookmarkImportFailure) DispatchQueue.main.async { ActionMessageView.present(message: UserText.importBookmarksFailedMessage) @@ -671,7 +672,7 @@ class BookmarksViewController: UIViewController, UITableViewDelegate { try BookmarksExporter(coreDataStore: bookmarksDatabase, favoritesDisplayMode: viewModel.favoritesDisplayMode) .exportBookmarksTo(url: tempFileUrl) } catch { - os_log("bookmarks failed to export %s", type: .debug, error.localizedDescription) + Logger.general.error("bookmarks failed to export: \(error.localizedDescription, privacy: .public)") ActionMessageView.present(message: UserText.exportBookmarksFailedMessage) return } diff --git a/DuckDuckGo/Configuration/ConfigurationManager.swift b/DuckDuckGo/Configuration/ConfigurationManager.swift index 099facddaa..cf33235503 100644 --- a/DuckDuckGo/Configuration/ConfigurationManager.swift +++ b/DuckDuckGo/Configuration/ConfigurationManager.swift @@ -22,6 +22,7 @@ import Core import Configuration import BrowserServicesKit import Common +import os.log struct ConfigurationManager { @@ -101,7 +102,7 @@ struct ConfigurationManager { try await task.value didFetchAnyTrackerBlockingDependencies = true } catch { - os_log("Did not apply update to %@: %@", log: .generalLog, type: .debug, configuration.rawValue, error.localizedDescription) + Logger.general.error("Did not apply update to \(configuration.rawValue, privacy: .public): \(error.localizedDescription, privacy: .public)") } } @@ -123,7 +124,7 @@ struct ConfigurationManager { try await updateBloomFilterExclusions() return true } catch { - os_log("Failed to apply update to bloom filter exclusions: %@", log: .generalLog, type: .debug, error.localizedDescription) + Logger.general.error("Failed to apply update to bloom filter exclusions: \(error.localizedDescription, privacy: .public)") return false } } @@ -135,7 +136,7 @@ struct ConfigurationManager { try await updateBloomFilter() return true } catch { - os_log("Failed to apply update to bloom filter: %@", log: .generalLog, type: .debug, error.localizedDescription) + Logger.general.error("Failed to apply update to bloom filter: \(error.localizedDescription, privacy: .public)") return false } } diff --git a/DuckDuckGo/DatabaseMigration.swift b/DuckDuckGo/DatabaseMigration.swift index aeba28e958..f83b1d6ceb 100644 --- a/DuckDuckGo/DatabaseMigration.swift +++ b/DuckDuckGo/DatabaseMigration.swift @@ -22,6 +22,7 @@ import Common import Foundation import CoreData import Core +import os.log class DatabaseMigration { @@ -105,7 +106,7 @@ class DatabaseMigration { try stack.persistenceStoreCoordinator.remove(store) } catch { Pixel.fire(pixel: .dbRemovalError, error: error) - os_log("Error removing store: %s", log: .generalLog, type: .debug, error.localizedDescription) + Logger.general.error("Error removing store: \(error.localizedDescription, privacy: .public)") } } } @@ -154,15 +155,15 @@ class DatabaseMigration { concurrencyType: .privateQueueConcurrencyType), let storeURL = oldStack.persistenceStoreCoordinator.persistentStores.last?.url else { return } - os_log("Destroying store: %s", log: .generalLog, type: .debug, dbName) - + Logger.general.debug("Destroying store: \(dbName)") + do { try oldStack.persistenceStoreCoordinator.destroyPersistentStore(at: storeURL, ofType: NSSQLiteStoreType, options: nil) } catch { Pixel.fire(pixel: .dbDestroyError, error: error) - os_log("Error destroying store: %s", log: .generalLog, type: .debug, error.localizedDescription) + Logger.general.error("Error destroying store: \(error.localizedDescription, privacy: .public)") } removeFile(at: storeURL) @@ -181,7 +182,7 @@ class DatabaseMigration { if nserror.domain != NSCocoaErrorDomain || nserror.code != NSFileNoSuchFileError { Pixel.fire(pixel: .dbDestroyFileError, error: error) } - os_log("Error removing file: %s", log: .generalLog, type: .debug, error.localizedDescription) + Logger.general.error("Error removing file: \(error.localizedDescription, privacy: .public)") } } } diff --git a/DuckDuckGo/DebugEtagStorage.swift b/DuckDuckGo/DebugEtagStorage.swift index 09dce123a1..a58595a61d 100644 --- a/DuckDuckGo/DebugEtagStorage.swift +++ b/DuckDuckGo/DebugEtagStorage.swift @@ -20,6 +20,7 @@ import Common import Core import Configuration +import os.log /// Only intended for use via Debug screens. class DebugEtagStorage { @@ -28,7 +29,7 @@ class DebugEtagStorage { func loadEtag(for storeKey: String) -> String? { let etag = defaults?.string(forKey: storeKey) - os_log("stored etag for %s %s", log: .generalLog, type: .debug, storeKey, etag ?? "nil") + Logger.general.debug("stored etag for \(storeKey) \(etag ?? "nil")") return etag } diff --git a/DuckDuckGo/DownloadManager.swift b/DuckDuckGo/DownloadManager.swift index 130cfbfd59..abab2937aa 100644 --- a/DuckDuckGo/DownloadManager.swift +++ b/DuckDuckGo/DownloadManager.swift @@ -22,6 +22,7 @@ import Foundation import Core import WebKit import UniformTypeIdentifiers +import os.log class DownloadManager { @@ -46,7 +47,7 @@ class DownloadManager { let documentsDirectory = try FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false) return documentsDirectory.appendingPathComponent(Constants.downloadsDirectoryName, isDirectory: true) } catch { - os_log("Failed to create downloads directory: %s", type: .debug, error.localizedDescription) + Logger.general.error("Failed to create downloads directory: \(error.localizedDescription, privacy: .public)") let temporaryDirectory = FileManager.default.temporaryDirectory return temporaryDirectory.appendingPathComponent(Constants.downloadsDirectoryName, isDirectory: true) } @@ -62,7 +63,7 @@ class DownloadManager { init(_ notificationCenter: NotificationCenter = NotificationCenter.default) { self.notificationCenter = notificationCenter createDownloadsDirectoryIfNeeded() - os_log("Downloads directory location %s", type: .debug, downloadsDirectory.absoluteString) + Logger.general.debug("Downloads directory location \(self.downloadsDirectory.absoluteString)") } private func createDownloadsDirectoryIfNeeded() { @@ -157,7 +158,7 @@ class DownloadManager { try FileManager.default.moveItem(at: location, to: newPath) download.location = newPath } catch { - os_log("Error moving file to downloads directory: %s", type: .debug, error.localizedDescription) + Logger.general.error("Error moving file to downloads directory: \(error.localizedDescription, privacy: .public)") } } diff --git a/DuckDuckGo/DownloadsListViewModel.swift b/DuckDuckGo/DownloadsListViewModel.swift index 2e9ab7b75a..4bb8d04896 100644 --- a/DuckDuckGo/DownloadsListViewModel.swift +++ b/DuckDuckGo/DownloadsListViewModel.swift @@ -21,6 +21,7 @@ import SwiftUI import Combine import Common import Core +import os.log class DownloadsListViewModel: ObservableObject { @@ -31,25 +32,21 @@ class DownloadsListViewModel: ObservableObject { private var subscribers: Set = [] init(dataSource: DownloadsListDataSource) { - os_log("DownloadsListViewModel init", log: .generalLog, type: .debug) - + Logger.general.debug("DownloadsListViewModel init") + self.dataSource = dataSource dataSource.$model .sink { [weak self] in - os_log("DownloadsListViewModel changed - ongoing:%d complete:%d", - log: .generalLog, - type: .debug, - $0.ongoingDownloads.count, - $0.completeDownloads.count) - + Logger.general.debug("DownloadsListViewModel changed - ongoing:\($0.ongoingDownloads.count) complete:\($0.completeDownloads.count)") + self?.sections = DownloadsListSectioningHelper().makeSections(from: $0.ongoingDownloads + $0.completeDownloads) } .store(in: &subscribers) } deinit { - os_log("DownloadsListViewModel deinit", log: .generalLog, type: .debug) + Logger.general.debug("DownloadsListViewModel deinit") } // MARK: - Intents @@ -72,7 +69,7 @@ class DownloadsListViewModel: ObservableObject { presentDeleteConfirmation(message: message, undoHandler: undoHandler) case .failure(let error): - os_log("Error deleting a download %s", log: .generalLog, type: .debug, error.localizedDescription) + Logger.general.error("Error deleting a download: \(error.localizedDescription, privacy: .public)") } } } @@ -85,7 +82,7 @@ class DownloadsListViewModel: ObservableObject { presentDeleteConfirmation(message: UserText.messageAllFilesDeleted, undoHandler: undoHandler) case .failure(let error): - os_log("Error deleting all downloads %s", log: .generalLog, type: .debug, error.localizedDescription) + Logger.general.error("Error deleting all downloads: \(error.localizedDescription, privacy: .public)") } } } diff --git a/DuckDuckGo/DuckPlayer/DuckPlayer.swift b/DuckDuckGo/DuckPlayer/DuckPlayer.swift index 38babbc8fe..2a74174274 100644 --- a/DuckDuckGo/DuckPlayer/DuckPlayer.swift +++ b/DuckDuckGo/DuckPlayer/DuckPlayer.swift @@ -213,7 +213,7 @@ final class DuckPlayer: DuckPlayerProtocol { let isPiPEnabled = webView?.configuration.allowsPictureInPictureMediaPlayback == true let pip = InitialPlayerSettings.PIP(status: isPiPEnabled ? .enabled : .disabled) let platform = InitialPlayerSettings.Platform(name: "ios") - let environment = InitialPlayerSettings.Environment.development +// let environment = InitialPlayerSettings.Environment.development let locale = InitialPlayerSettings.Locale.en let playerSettings = InitialPlayerSettings.PlayerSettings(pip: pip) let userValues = encodeUserValues() diff --git a/DuckDuckGo/DuckPlayer/DuckPlayerNavigationHandler.swift b/DuckDuckGo/DuckPlayer/DuckPlayerNavigationHandler.swift index fbb6c0ae9f..bf9fc77e1b 100644 --- a/DuckDuckGo/DuckPlayer/DuckPlayerNavigationHandler.swift +++ b/DuckDuckGo/DuckPlayer/DuckPlayerNavigationHandler.swift @@ -24,6 +24,7 @@ import Core import Common import BrowserServicesKit import DuckPlayer +import os.log final class DuckPlayerNavigationHandler { @@ -113,7 +114,7 @@ final class DuckPlayerNavigationHandler { if let (videoID, _) = url.youtubeVideoParams, videoID == lastHandledVideoID { - os_log("DP: URL (%s) already handled, skipping", log: .duckPlayerLog, type: .debug, url.absoluteString) + Logger.duckPlayer.debug("URL (\(url.absoluteString) already handled, skipping") return } @@ -130,7 +131,7 @@ final class DuckPlayerNavigationHandler { let (videoID, timestamp) = url.youtubeVideoParams, duckPlayer.settings.mode == .enabled || duckPlayer.settings.mode == .alwaysAsk { - os_log("DP: Handling URL change: %s", log: .duckPlayerLog, type: .debug, url.absoluteString) + Logger.duckPlayer.debug("Handling URL change: \(url.absoluteString)") webView.load(URLRequest(url: URL.duckPlayer(videoID, timestamp: timestamp))) lastHandledVideoID = videoID } @@ -145,8 +146,8 @@ extension DuckPlayerNavigationHandler: DuckNavigationHandling { @MainActor func handleNavigation(_ navigationAction: WKNavigationAction, webView: WKWebView) { - os_log("DP: Handling DuckPlayer Player Navigation for %s", log: .duckPlayerLog, type: .debug, navigationAction.request.url?.absoluteString ?? "") - + Logger.duckPlayer.debug("Handling DuckPlayer Player Navigation for \(navigationAction.request.url?.absoluteString ?? "")") + // This is passed to the FE overlay at init to disable the overlay for one video duckPlayer.settings.allowFirstVideo = false @@ -202,7 +203,7 @@ extension DuckPlayerNavigationHandler: DuckNavigationHandling { !url.hasWatchInYoutubeQueryParameter { let newRequest = Self.makeDuckPlayerRequest(from: URLRequest(url: url)) - os_log("DP: Loading Simulated Request for %s", log: .duckPlayerLog, type: .debug, navigationAction.request.url?.absoluteString ?? "") + Logger.duckPlayer.debug("DP: Loading Simulated Request for \(navigationAction.request.url?.absoluteString ?? "")") DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) { self.performRequest(request: newRequest, webView: webView) @@ -235,7 +236,7 @@ extension DuckPlayerNavigationHandler: DuckNavigationHandling { if let (videoID, _) = url.youtubeVideoParams, videoID == lastHandledVideoID, !url.hasWatchInYoutubeQueryParameter { - os_log("DP: DecidePolicy: URL (%s) already handled, skipping", log: .duckPlayerLog, type: .debug, url.absoluteString) + Logger.duckPlayer.debug("DP: DecidePolicy: URL (\(url.absoluteString)) already handled, skipping") completion(.cancel) return } @@ -260,7 +261,7 @@ extension DuckPlayerNavigationHandler: DuckNavigationHandling { if url.isYoutubeVideo, !url.isDuckPlayer, duckPlayer.settings.mode == .enabled || duckPlayer.settings.mode == .alwaysAsk { - os_log("DP: Handling decidePolicy for Duck Player with %s", log: .duckPlayerLog, type: .debug, url.absoluteString) + Logger.duckPlayer.debug("DP: Handling decidePolicy for Duck Player with \(url.absoluteString)") completion(.cancel) handleURLChange(url: url, webView: webView) return @@ -282,7 +283,7 @@ extension DuckPlayerNavigationHandler: DuckNavigationHandling { @MainActor func handleGoBack(webView: WKWebView) { - os_log("DP: Handling Back Navigation", log: .duckPlayerLog, type: .debug) + Logger.duckPlayer.debug("DP: Handling Back Navigation") guard featureFlagger.isFeatureOn(.duckPlayer) else { webView.goBack() @@ -309,10 +310,10 @@ extension DuckPlayerNavigationHandler: DuckNavigationHandling { } if let nonYoutubeItem = nonYoutubeItem { - os_log("DP: Navigating back to %s", log: .duckPlayerLog, type: .debug, nonYoutubeItem.url.absoluteString) + Logger.duckPlayer.debug("DP: Navigating back to \(nonYoutubeItem.url.absoluteString)") webView.go(to: nonYoutubeItem) } else { - os_log("DP: Navigating back to previous page", log: .duckPlayerLog, type: .debug) + Logger.duckPlayer.debug("DP: Navigating back to previous page") webView.goBack() } } @@ -332,7 +333,7 @@ extension DuckPlayerNavigationHandler: DuckNavigationHandling { !url.isDuckURLScheme, let (videoID, timestamp) = url.youtubeVideoParams, duckPlayer.settings.mode == .enabled || duckPlayer.settings.mode == .alwaysAsk { - os_log("DP: Handling DuckPlayer Reload for %s", log: .duckPlayerLog, type: .debug, url.absoluteString) + Logger.duckPlayer.debug("DP: Handling DuckPlayer Reload for \(url.absoluteString)") webView.load(URLRequest(url: .duckPlayer(videoID, timestamp: timestamp))) } else { webView.reload() @@ -349,7 +350,7 @@ extension DuckPlayerNavigationHandler: DuckNavigationHandling { if let url = webView.url, url.isDuckPlayer, !url.isDuckURLScheme, duckPlayer.settings.mode == .enabled || duckPlayer.settings.mode == .alwaysAsk { - os_log("DP: Handling Initial Load of a video for %s", log: .duckPlayerLog, type: .debug, url.absoluteString) + Logger.duckPlayer.debug("DP: Handling Initial Load of a video for \(url.absoluteString)") handleReload(webView: webView) } diff --git a/DuckDuckGo/DuckPlayer/DuckPlayerStorage.swift b/DuckDuckGo/DuckPlayer/DuckPlayerStorage.swift index 3e83f3ea24..16b74312bb 100644 --- a/DuckDuckGo/DuckPlayer/DuckPlayerStorage.swift +++ b/DuckDuckGo/DuckPlayer/DuckPlayerStorage.swift @@ -20,6 +20,7 @@ import Core import Foundation import Common +import os.log protocol DuckPlayerStorage { /// Description: Checks whether the user has seen and interacted with (i.e. clicked any button) the Duck Player overlay on a YouTube video. @@ -30,8 +31,8 @@ protocol DuckPlayerStorage { struct DefaultDuckPlayerStorage: DuckPlayerStorage { @UserDefaultsWrapper(key: .userInteractedWithDuckPlayer, defaultValue: false) var userInteractedWithDuckPlayer: Bool { - didSet { - os_log("DP: Flagging userInteractedWithDuckPlayer [%@]", log: .duckPlayerLog, type: .debug, userInteractedWithDuckPlayer ? "true" : "false") + didSet(newValue) { + Logger.duckPlayer.debug("Flagging userInteractedWithDuckPlayer [\(newValue ? "true" : "false")]") } } } diff --git a/DuckDuckGo/Favicons.swift b/DuckDuckGo/Favicons.swift index 567a617e5b..ba17101c97 100644 --- a/DuckDuckGo/Favicons.swift +++ b/DuckDuckGo/Favicons.swift @@ -23,6 +23,7 @@ import Kingfisher import UIKit import LinkPresentation import WidgetKit +import os.log public class Favicons { @@ -84,7 +85,7 @@ public class Favicons { try? url.setResourceValues(resourceValues) } - os_log("favicons %s location %s", type: .debug, rawValue, url.absoluteString) + Logger.general.debug("favicons \(rawValue) location \(url.absoluteString)") return try? ImageCache(name: self.rawValue, cacheDirectoryURL: url) } @@ -116,7 +117,7 @@ public class Favicons { do { try FileManager.default.removeItem(at: bookmarksCache) } catch { - os_log("Failed to remove favicon bookmarks cache: %s", type: .error, error.localizedDescription) + Logger.general.error("Failed to remove favicon bookmarks cache: \(error.localizedDescription, privacy: .public)") } } } diff --git a/DuckDuckGo/FeedbackSender.swift b/DuckDuckGo/FeedbackSender.swift index 370d21185a..1572232174 100644 --- a/DuckDuckGo/FeedbackSender.swift +++ b/DuckDuckGo/FeedbackSender.swift @@ -20,8 +20,9 @@ import Foundation import Core import BrowserServicesKit -import Common +import os.log import Networking +import Common /// Represents single component that is being sent to the server. /// Feedback as a whole can consist of multiple components. These components are included both in @@ -94,9 +95,9 @@ struct FeedbackSubmitter: FeedbackSender { request.fetch { _, error in if let error = error { - os_log("Feedback request failed, %s", log: .generalLog, type: .debug, error.localizedDescription) + Logger.general.error("Feedback request failed: \(error.localizedDescription, privacy: .public)") } else { - os_log("Feedback response successful", log: .generalLog, type: .debug) + Logger.general.debug("Feedback response successful") } } } diff --git a/DuckDuckGo/ImageCacheDebugViewController.swift b/DuckDuckGo/ImageCacheDebugViewController.swift index 49743b47b6..1c6cd52b1c 100644 --- a/DuckDuckGo/ImageCacheDebugViewController.swift +++ b/DuckDuckGo/ImageCacheDebugViewController.swift @@ -26,6 +26,7 @@ import Persistence import BrowserServicesKit import Common import Kingfisher +import os.log class ImageCacheDebugViewController: UITableViewController { @@ -135,7 +136,7 @@ class ImageCacheDebugViewController: UITableViewController { } } } catch { - os_log("Failed to fetch accounts") + Logger.general.error("Failed to fetch accounts: \(error.localizedDescription)") } } diff --git a/DuckDuckGo/MainViewController+Segues.swift b/DuckDuckGo/MainViewController+Segues.swift index fd64c5e3be..d8855e560a 100644 --- a/DuckDuckGo/MainViewController+Segues.swift +++ b/DuckDuckGo/MainViewController+Segues.swift @@ -25,11 +25,12 @@ import BrowserServicesKit import SwiftUI import PrivacyDashboard import Subscription +import os.log extension MainViewController { func segueToDaxOnboarding() { - os_log(#function, log: .generalLog, type: .debug) + Logger.lifecycle.debug(#function) hideAllHighlightsIfNeeded() var controller: (Onboarding & UIViewController)? @@ -50,7 +51,7 @@ extension MainViewController { } func segueToHomeRow() { - os_log(#function, log: .generalLog, type: .debug) + Logger.lifecycle.debug(#function) hideAllHighlightsIfNeeded() let storyboard = UIStoryboard(name: "HomeRow", bundle: nil) guard let controller = storyboard.instantiateInitialViewController() else { @@ -62,13 +63,13 @@ extension MainViewController { } func segueToBookmarks() { - os_log(#function, log: .generalLog, type: .debug) + Logger.lifecycle.debug(#function) hideAllHighlightsIfNeeded() launchBookmarksViewController() } func segueToEditCurrentBookmark() { - os_log(#function, log: .generalLog, type: .debug) + Logger.lifecycle.debug(#function) hideAllHighlightsIfNeeded() guard let link = currentTab?.link, let bookmark = menuBookmarksViewModel.favorite(for: link.url) ?? @@ -80,7 +81,7 @@ extension MainViewController { } func segueToEditBookmark(_ bookmark: BookmarkEntity) { - os_log(#function, log: .generalLog, type: .debug) + Logger.lifecycle.debug(#function) hideAllHighlightsIfNeeded() launchBookmarksViewController { $0.openEditFormForBookmark(bookmark) @@ -88,7 +89,7 @@ extension MainViewController { } private func launchBookmarksViewController(completion: ((BookmarksViewController) -> Void)? = nil) { - os_log(#function, log: .generalLog, type: .debug) + Logger.lifecycle.debug(#function) let storyboard = UIStoryboard(name: "Bookmarks", bundle: nil) let bookmarks = storyboard.instantiateViewController(identifier: "BookmarksViewController") { coder in @@ -109,7 +110,7 @@ extension MainViewController { } func segueToActionSheetDaxDialogWithSpec(_ spec: DaxDialogs.ActionSheetSpec) { - os_log(#function, log: .generalLog, type: .debug) + Logger.lifecycle.debug(#function) hideAllHighlightsIfNeeded() if spec == DaxDialogs.ActionSheetSpec.fireButtonEducation { @@ -128,7 +129,7 @@ extension MainViewController { } func segueToReportBrokenSite(entryPoint: PrivacyDashboardEntryPoint = .report) { - os_log(#function, log: .generalLog, type: .debug) + Logger.lifecycle.debug(#function) hideAllHighlightsIfNeeded() guard let currentURL = currentTab?.url, @@ -181,7 +182,7 @@ extension MainViewController { } func segueToNegativeFeedbackForm(isFromBrokenSiteReportFlow: Bool = false) { - os_log(#function, log: .generalLog, type: .debug) + Logger.lifecycle.debug(#function) hideAllHighlightsIfNeeded() let feedbackPicker = FeedbackPickerViewController.loadFromStoryboard() @@ -196,7 +197,7 @@ extension MainViewController { } func segueToDownloads() { - os_log(#function, log: .generalLog, type: .debug) + Logger.lifecycle.debug(#function) hideAllHighlightsIfNeeded() let storyboard = UIStoryboard(name: "Downloads", bundle: nil) @@ -208,7 +209,7 @@ extension MainViewController { } func segueToTabSwitcher() { - os_log(#function, log: .generalLog, type: .debug) + Logger.lifecycle.debug(#function) hideAllHighlightsIfNeeded() let storyboard = UIStoryboard(name: "TabSwitcher", bundle: nil) @@ -233,13 +234,13 @@ extension MainViewController { } func segueToSettings() { - os_log(#function, log: .generalLog, type: .debug) + Logger.lifecycle.debug(#function) hideAllHighlightsIfNeeded() launchSettings() } func segueToPrivacyPro() { - os_log(#function, log: .generalLog, type: .debug) + Logger.lifecycle.debug(#function) hideAllHighlightsIfNeeded() launchSettings { $0.triggerDeepLinkNavigation(to: .subscriptionFlow()) @@ -247,7 +248,7 @@ extension MainViewController { } func segueToSubscriptionRestoreFlow() { - os_log(#function, log: .generalLog, type: .debug) + Logger.lifecycle.debug(#function) hideAllHighlightsIfNeeded() launchSettings { $0.triggerDeepLinkNavigation(to: .restoreFlow) @@ -255,7 +256,7 @@ extension MainViewController { } func segueToVPN() { - os_log(#function, log: .generalLog, type: .debug) + Logger.lifecycle.debug(#function) hideAllHighlightsIfNeeded() launchSettings { $0.triggerDeepLinkNavigation(to: .netP) @@ -263,13 +264,13 @@ extension MainViewController { } func segueToDebugSettings() { - os_log(#function, log: .generalLog, type: .debug) + Logger.lifecycle.debug(#function) hideAllHighlightsIfNeeded() launchDebugSettings() } func segueToSettingsCookiePopupManagement() { - os_log(#function, log: .generalLog, type: .debug) + Logger.lifecycle.debug(#function) hideAllHighlightsIfNeeded() launchSettings { $0.openCookiePopupManagement() @@ -277,7 +278,7 @@ extension MainViewController { } func segueToSettingsLoginsWithAccount(_ account: SecureVaultModels.WebsiteAccount) { - os_log(#function, log: .generalLog, type: .debug) + Logger.lifecycle.debug(#function) hideAllHighlightsIfNeeded() launchSettings { $0.shouldPresentLoginsViewWithAccount(accountDetails: account) @@ -285,7 +286,7 @@ extension MainViewController { } func segueToSettingsSync() { - os_log(#function, log: .generalLog, type: .debug) + Logger.lifecycle.debug(#function) hideAllHighlightsIfNeeded() launchSettings { $0.presentLegacyView(.sync) @@ -327,7 +328,7 @@ extension MainViewController { } private func launchDebugSettings(completion: ((RootDebugViewController) -> Void)? = nil) { - os_log(#function, log: .generalLog, type: .debug) + Logger.lifecycle.debug(#function) let storyboard = UIStoryboard(name: "Debug", bundle: nil) let settings = storyboard.instantiateViewController(identifier: "DebugMenu") { coder in @@ -346,7 +347,7 @@ extension MainViewController { } private func hideAllHighlightsIfNeeded() { - os_log(#function, log: .generalLog, type: .debug) + Logger.lifecycle.debug(#function) if !DaxDialogs.shared.shouldShowFireButtonPulse { ViewHighlighter.hideAll() } diff --git a/DuckDuckGo/MainViewController.swift b/DuckDuckGo/MainViewController.swift index 37b5ea00b7..8d14048ec4 100644 --- a/DuckDuckGo/MainViewController.swift +++ b/DuckDuckGo/MainViewController.swift @@ -34,6 +34,7 @@ import Suggestions import Subscription import SwiftUI import NetworkProtection +import os.log class MainViewController: UIViewController { @@ -903,7 +904,7 @@ class MainViewController: UIViewController { func loadQueryInNewTab(_ query: String, reuseExisting: Bool = false) { dismissOmniBar() guard let url = URL.makeSearchURL(query: query) else { - os_log("Couldn‘t form URL for query “%s”", log: .lifecycleLog, type: .error, query) + Logger.lifecycle.error("Couldn‘t form URL for query: \(query, privacy: .public)") return } loadUrlInNewTab(url, reuseExisting: reuseExisting, inheritedAttribution: nil) @@ -949,11 +950,7 @@ class MainViewController: UIViewController { fileprivate func loadQuery(_ query: String) { guard let url = URL.makeSearchURL(query: query, queryContext: currentTab?.url) else { - os_log("Couldn‘t form URL for query “%s” with context “%s”", - log: .lifecycleLog, - type: .error, - query, - currentTab?.url?.absoluteString ?? "") + Logger.general.error("Couldn‘t form URL for query “\(query, privacy: .public)” with context “\(self.currentTab?.url?.absoluteString ?? "", privacy: .public)”") return } // Make sure that once query is submitted, we don't trigger the non-SERP flow @@ -1593,7 +1590,7 @@ class MainViewController: UIViewController { @objc private func onNetworkProtectionAccountSignIn(_ notification: Notification) { tunnelDefaults.resetEntitlementMessaging() - os_log("[NetP Subscription] Reset expired entitlement messaging", log: .networkProtection, type: .info) + Logger.networkProtection.info("[NetP Subscription] Reset expired entitlement messaging") } var networkProtectionTunnelController: NetworkProtectionTunnelController { @@ -2080,7 +2077,7 @@ extension MainViewController: AutocompleteViewControllerDelegate { if let url = URL.makeSearchURL(text: phrase) { loadUrl(url) } else { - os_log("Couldn‘t form URL for suggestion “%s”", log: .lifecycleLog, type: .error, phrase) + Logger.lifecycle.error("Couldn‘t form URL for suggestion: \(phrase, privacy: .public)") } case .website(url: let url): if url.isBookmarklet() { diff --git a/DuckDuckGo/OmniBar.swift b/DuckDuckGo/OmniBar.swift index b6f80f5dc7..0272bdec42 100644 --- a/DuckDuckGo/OmniBar.swift +++ b/DuckDuckGo/OmniBar.swift @@ -23,6 +23,7 @@ import Core import PrivacyDashboard import DesignResourcesKit import DuckPlayer +import os.log extension OmniBar: NibLoading {} @@ -350,7 +351,7 @@ class OmniBar: UIView { fileprivate func refreshState(_ newState: OmniBarState) { if state.name != newState.name { - os_log("OmniBar entering %s from %s", log: .generalLog, type: .debug, newState.name, state.name) + Logger.general.debug("OmniBar entering \(newState.name) from \(self.state.name)") if newState.clearTextOnStart { clear() } diff --git a/DuckDuckGo/PassKitPreviewHelper.swift b/DuckDuckGo/PassKitPreviewHelper.swift index 588f355d54..81ba8ef725 100644 --- a/DuckDuckGo/PassKitPreviewHelper.swift +++ b/DuckDuckGo/PassKitPreviewHelper.swift @@ -20,6 +20,7 @@ import Common import UIKit import PassKit +import os.log class PassKitPreviewHelper: FilePreview { private weak var viewController: UIViewController? @@ -38,7 +39,7 @@ class PassKitPreviewHelper: FilePreview { viewController?.present(controller, animated: true) } } catch { - os_log("Can't present passkit: %{public}s", type: .error, error.localizedDescription) + Logger.general.error("Can't present passkit: \(error.localizedDescription, privacy: .public)") } } } diff --git a/DuckDuckGo/PrivacyDashboard/PrivacyDashboardViewController.swift b/DuckDuckGo/PrivacyDashboard/PrivacyDashboardViewController.swift index 7bcaa5299f..fd759ebd1a 100644 --- a/DuckDuckGo/PrivacyDashboard/PrivacyDashboardViewController.swift +++ b/DuckDuckGo/PrivacyDashboard/PrivacyDashboardViewController.swift @@ -24,6 +24,7 @@ import Core import BrowserServicesKit import PrivacyDashboard import Common +import os.log extension PixelExperiment { @@ -250,7 +251,7 @@ extension PrivacyDashboardViewController: PrivacyDashboardControllerDelegate { let report = try await makeBrokenSiteReport(category: category, description: description, source: privacyDashboardController.source) try brokenSiteReporter.report(report, reportMode: .regular) } catch { - os_log("Failed to generate or send the broken site report: %@", type: .error, error.localizedDescription) + Logger.privacyDashboard.error("Failed to generate or send the broken site report: \(error.localizedDescription, privacy: .public)") } let message = PixelExperiment.cohort == .control ? UserText.feedbackSumbittedConfirmation : UserText.brokenSiteReportSuccessToast ActionMessageView.present(message: message) @@ -280,7 +281,7 @@ extension PrivacyDashboardViewController: PrivacyDashboardControllerDelegate { let report = try await makeBrokenSiteReport(source: source) try toggleProtectionsOffReporter.report(report, reportMode: .toggle) } catch { - os_log("Failed to generate or send the broken site report: %@", type: .error, error.localizedDescription) + Logger.general.error("Failed to generate or send the broken site report: \(error.localizedDescription, privacy: .public)") } privacyDashboardCloseHandler() diff --git a/DuckDuckGo/RootDebugViewController+VanillaBrowser.swift b/DuckDuckGo/RootDebugViewController+VanillaBrowser.swift index 58c6c2c5d6..c2900f153e 100644 --- a/DuckDuckGo/RootDebugViewController+VanillaBrowser.swift +++ b/DuckDuckGo/RootDebugViewController+VanillaBrowser.swift @@ -23,6 +23,7 @@ import SwiftUI import WebKit import Core import Common +import os.log extension RootDebugViewController { @@ -40,7 +41,7 @@ extension RootDebugViewController { }() fileprivate func openVanillaBrowser(url: URL) { - os_log(.debug, "Vanilla Browser open URL %s", url.absoluteString) + Logger.lifecycle.debug("Vanilla Browser open URL \(url.absoluteString)") let browserView = BareBonesBrowserView(initialURL: url, homeURL: RootDebugViewController.ddgURL, uiDelegate: nil, diff --git a/DuckDuckGo/SecureVaultReporter.swift b/DuckDuckGo/SecureVaultReporter.swift index d1339acbce..40d94c8b94 100644 --- a/DuckDuckGo/SecureVaultReporter.swift +++ b/DuckDuckGo/SecureVaultReporter.swift @@ -22,6 +22,7 @@ import BrowserServicesKit import Core import Common import SecureStorage +import os.log final class SecureVaultKeyStoreEventMapper: EventMapping { public init() { @@ -70,10 +71,7 @@ final class SecureVaultReporter: SecureVaultReporting { let secureVaultError = error as? SecureStorageError, let userInfo = secureVaultError.errorUserInfo["NSUnderlyingError"] as? NSError, userInfo.code == -25308 { - os_log("SecureVault attempt to access keystore while device is locked: %@", - log: .generalLog, - type: .debug, - error.localizedDescription) + Logger.general.error("SecureVault attempt to access keystore while device is locked: \(error.localizedDescription, privacy: .public)") return } DailyPixel.fire(pixel: .secureVaultInitFailedError, error: error, withAdditionalParameters: pixelParams) diff --git a/DuckDuckGo/ShortcutItemView.swift b/DuckDuckGo/ShortcutItemView.swift index b7f9b4da19..deb085d0b0 100644 --- a/DuckDuckGo/ShortcutItemView.swift +++ b/DuckDuckGo/ShortcutItemView.swift @@ -101,7 +101,7 @@ private extension NewTabPageShortcut { private extension ShortcutAccessoryView { @ViewBuilder func alignedForOverlay(edgeSize: CGFloat) -> some View { let offset = CGSize(width: edgeSize/4.0, height: -edgeSize/4.0) - let size = CGSize(width: edgeSize, height: edgeSize) +// let size = CGSize(width: edgeSize, height: edgeSize) if #available(iOS 16, *) { frame(width: edgeSize) diff --git a/DuckDuckGo/SyncSettingsViewController.swift b/DuckDuckGo/SyncSettingsViewController.swift index 25ff94a2ed..69b5a6b4a0 100644 --- a/DuckDuckGo/SyncSettingsViewController.swift +++ b/DuckDuckGo/SyncSettingsViewController.swift @@ -23,6 +23,7 @@ import Combine import SyncUI import DDGSync import Common +import os.log @MainActor class SyncSettingsViewController: UIHostingController { @@ -273,7 +274,7 @@ class SyncSettingsViewController: UIHostingController { mapDevices(devices) } catch { // Not displaying error since there is the spinner and it is called every few seconds - os_log(error.localizedDescription, log: .syncLog, type: .error) + Logger.sync.error("Error: \(error.localizedDescription, privacy: .public)") } } } diff --git a/DuckDuckGo/TabManager.swift b/DuckDuckGo/TabManager.swift index 1fc6bc98e6..41f5f695b6 100644 --- a/DuckDuckGo/TabManager.swift +++ b/DuckDuckGo/TabManager.swift @@ -24,6 +24,7 @@ import WebKit import BrowserServicesKit import Persistence import History +import os.log class TabManager { @@ -105,7 +106,7 @@ class TabManager { if let controller = controller(for: tab) { return controller } else if createIfNeeded { - os_log("Tab not in cache, creating", log: .generalLog, type: .debug) + Logger.general.debug("Tab not in cache, creating") let controller = buildController(forTab: tab, inheritedAttribution: nil) tabControllerCache.append(controller) return controller diff --git a/DuckDuckGo/TabSwitcherViewController.swift b/DuckDuckGo/TabSwitcherViewController.swift index 733612070e..5256e21bc9 100644 --- a/DuckDuckGo/TabSwitcherViewController.swift +++ b/DuckDuckGo/TabSwitcherViewController.swift @@ -24,6 +24,7 @@ import DDGSync import WebKit import Bookmarks import Persistence +import os.log class TabSwitcherViewController: UIViewController { @@ -223,7 +224,7 @@ class TabSwitcherViewController: UIViewController { ActionMessageView.present(message: UserText.bookmarkAllTabsSaved) } else { let failedToSaveCount = openTabsCount - results.newCount - results.existingCount - os_log("Failed to save %d tabs", log: .generalLog, type: .debug, failedToSaveCount) + Logger.general.debug("Failed to save \(failedToSaveCount) tabs") ActionMessageView.present(message: UserText.bookmarkAllTabsFailedToSave) } } diff --git a/DuckDuckGo/TabViewController.swift b/DuckDuckGo/TabViewController.swift index 153fa14d6b..844d53bf72 100644 --- a/DuckDuckGo/TabViewController.swift +++ b/DuckDuckGo/TabViewController.swift @@ -37,6 +37,7 @@ import SecureStorage import History import ContentScopeScripts import NetworkProtection +import os.log class TabViewController: UIViewController { @@ -701,7 +702,7 @@ class TabViewController: UIViewController { title = webView.title default: - os_log("Unhandled keyPath %s", log: .generalLog, type: .debug, keyPath) + Logger.general.debug("Unhandled keyPath \(keyPath)") } } @@ -1212,7 +1213,7 @@ extension TabViewController: WKNavigationDelegate { } private func onWebpageDidStartLoading(httpsForced: Bool) { - os_log("webpageLoading started", log: .generalLog, type: .debug) + Logger.general.debug("webpageLoading started") // Only fire when on the same page that the without trackers Dax Dialog was shown self.fireWoFollowUp = false @@ -1362,7 +1363,7 @@ extension TabViewController: WKNavigationDelegate { } private func onWebpageDidFinishLoading() { - os_log("webpageLoading finished", log: .generalLog, type: .debug) + Logger.general.debug("webpageLoading finished") tabModel.link = link delegate?.tabLoadingStateDidChange(tab: self) @@ -1483,7 +1484,7 @@ extension TabViewController: WKNavigationDelegate { } private func webpageDidFailToLoad() { - os_log("webpageLoading failed", log: .generalLog, type: .debug) + Logger.general.debug("webpageLoading failed") if isError { showBars(animated: true) privacyInfo = nil @@ -2792,7 +2793,7 @@ extension TabViewController: SaveLoginViewControllerDelegate { NotificationCenter.default.post(name: .autofillSaveEvent, object: nil) } catch { - os_log("%: failed to store credentials %s", type: .error, #function, error.localizedDescription) + Logger.general.error("failed to store credentials: \(error.localizedDescription, privacy: .public)") } } @@ -2814,7 +2815,7 @@ extension TabViewController: SaveLoginViewControllerDelegate { } } } catch { - os_log("%: failed to fetch credentials %s", type: .error, #function, error.localizedDescription) + Logger.general.error("failed to fetch credentials: \(error.localizedDescription, privacy: .public)") } } @@ -2842,7 +2843,7 @@ extension TabViewController: SaveLoginViewControllerDelegate { do { _ = try autofillNeverPromptWebsitesManager.saveNeverPromptWebsite(domain) } catch { - os_log("%: failed to save never prompt for website %s", type: .error, #function, error.localizedDescription) + Logger.general.error("failed to save never prompt for website: \(error.localizedDescription, privacy: .public)") } } diff --git a/DuckDuckGo/TabsModelPersistenceExtension.swift b/DuckDuckGo/TabsModelPersistenceExtension.swift index a7a046b890..df815e5fce 100644 --- a/DuckDuckGo/TabsModelPersistenceExtension.swift +++ b/DuckDuckGo/TabsModelPersistenceExtension.swift @@ -19,7 +19,7 @@ import Foundation import Core -import Common +import os.log extension TabsModel { @@ -40,7 +40,7 @@ extension TabsModel { throw error } } catch { - os_log("Something went wrong unarchiving TabsModel %@", log: .generalLog, type: .error, error.localizedDescription) + Logger.general.error("Something went wrong unarchiving TabsModel \(error.localizedDescription, privacy: .public)") } return tabsModel } @@ -54,7 +54,7 @@ extension TabsModel { let data = try NSKeyedArchiver.archivedData(withRootObject: self, requiringSecureCoding: false) UserDefaults.app.set(data, forKey: Constants.key) } catch { - os_log("Something went wrong archiving TabsModel %@", log: .generalLog, type: .error, error.localizedDescription) + Logger.general.error("Something went wrong archiving TabsModel: \(error.localizedDescription, privacy: .public)") } } } diff --git a/DuckDuckGo/UserAuthenticator.swift b/DuckDuckGo/UserAuthenticator.swift index 2c29616776..b49310c02c 100644 --- a/DuckDuckGo/UserAuthenticator.swift +++ b/DuckDuckGo/UserAuthenticator.swift @@ -21,6 +21,7 @@ import Common import Foundation import LocalAuthentication import Core +import os.log class UserAuthenticator { enum AuthError: Error, Equatable { @@ -75,7 +76,7 @@ class UserAuthenticator { self?.state = .loggedIn completion?(nil) } else { - os_log("Failed to authenticate: %s", log: .generalLog, type: .debug, error?.localizedDescription ?? "nil error") + Logger.general.error("Failed to authenticate: \(error?.localizedDescription ?? "nil", privacy: .public)") completion?(.failedToAuthenticate) } } diff --git a/DuckDuckGo/WebContainerViewController.swift b/DuckDuckGo/WebContainerViewController.swift index 439bf07385..28718b15b7 100644 --- a/DuckDuckGo/WebContainerViewController.swift +++ b/DuckDuckGo/WebContainerViewController.swift @@ -22,6 +22,7 @@ import Core import UIKit import WebKit import Networking +import os.log /// Use title property to set the displayed title class WebContainerViewController: UIViewController { @@ -85,7 +86,7 @@ class WebContainerViewController: UIViewController { progress = Float(webView?.estimatedProgress ?? 0.0) default: - os_log("Unhandled keyPath %s", log: .generalLog, type: .debug, keyPath) + Logger.general.debug("Unhandled keyPath \(keyPath)") } } diff --git a/DuckDuckGo/ZippedPassKitPreviewHelper.swift b/DuckDuckGo/ZippedPassKitPreviewHelper.swift index 0213ccc7d2..781f3e0a7a 100644 --- a/DuckDuckGo/ZippedPassKitPreviewHelper.swift +++ b/DuckDuckGo/ZippedPassKitPreviewHelper.swift @@ -22,6 +22,7 @@ import Foundation import UIKit import PassKit import ZIPFoundation +import os.log class ZippedPassKitPreviewHelper: FilePreview { private weak var viewController: UIViewController? @@ -39,10 +40,10 @@ class ZippedPassKitPreviewHelper: FilePreview { let controller = PKAddPassesViewController(passes: passes) { viewController?.present(controller, animated: true) } else { - os_log("Can't present passkit: No valid passes in passes file", type: .error) + Logger.general.error("Can't present passkit: No valid passes in passes file") } } catch { - os_log("Can't present passkit: %{public}s", type: .error, error.localizedDescription) + Logger.general.error("Can't present passkit: \(error.localizedDescription, privacy: .public)") } } diff --git a/DuckDuckGoTests/BrokenSiteReportingTests.swift b/DuckDuckGoTests/BrokenSiteReportingTests.swift index 3c515cf373..a99c8b8f1f 100644 --- a/DuckDuckGoTests/BrokenSiteReportingTests.swift +++ b/DuckDuckGoTests/BrokenSiteReportingTests.swift @@ -88,7 +88,7 @@ final class BrokenSiteReportingTests: XCTestCase { return } - os_log("Testing [%s]", type: .info, test.name) + print("Testing [%s]", test.name) var errors: [Error]? if let errs = test.errorDescriptions { diff --git a/DuckDuckGoTests/DomainMatchingReportTests.swift b/DuckDuckGoTests/DomainMatchingReportTests.swift index bc2fa040af..3e1a04ec09 100644 --- a/DuckDuckGoTests/DomainMatchingReportTests.swift +++ b/DuckDuckGoTests/DomainMatchingReportTests.swift @@ -23,6 +23,7 @@ import XCTest import Foundation import BrowserServicesKit import Common +import os.log class DomainMatchingReportTests: XCTestCase { private var data = JsonTestDataLoader() @@ -41,10 +42,10 @@ class DomainMatchingReportTests: XCTestCase { for test in tests { let skip = test.exceptPlatforms?.contains("ios-browser") if skip == true { - os_log("!!SKIPPING TEST: %s", test.name) + print("!!SKIPPING TEST: %s", test.name) continue } - os_log("TEST: %s", test.name) + print("TEST: %s", test.name) let tracker = resolver.trackerFromUrl(test.requestURL, pageUrlString: test.siteURL, diff --git a/DuckDuckGoTests/DomainMatchingTests.swift b/DuckDuckGoTests/DomainMatchingTests.swift index 7a797fb43e..7587895b26 100644 --- a/DuckDuckGoTests/DomainMatchingTests.swift +++ b/DuckDuckGoTests/DomainMatchingTests.swift @@ -65,10 +65,10 @@ class DomainMatchingTests: XCTestCase { for test in tests { let skip = test.exceptPlatforms?.contains("ios-browser") if skip == true { - os_log("!!SKIPPING TEST: %s", test.name) + print("!!SKIPPING TEST: %s", test.name) continue } - os_log("TEST: %s", test.name) + print("TEST: %s", test.name) let requestURL = URL(string: test.requestURL) let siteURL = URL(string: test.siteURL) let requestType = ContentBlockerRulesBuilder.resourceMapping[test.requestType] diff --git a/DuckDuckGoTests/FireButtonReferenceTests.swift b/DuckDuckGoTests/FireButtonReferenceTests.swift index e37c970d27..95fe1ea718 100644 --- a/DuckDuckGoTests/FireButtonReferenceTests.swift +++ b/DuckDuckGoTests/FireButtonReferenceTests.swift @@ -52,7 +52,7 @@ final class FireButtonReferenceTests: XCTestCase { for site in testData.fireButtonFireproofing.fireproofedSites { let sanitizedSite = sanitizedSite(site) - os_log("Adding %s to fireproofed sites", sanitizedSite) + print("Adding %s to fireproofed sites", sanitizedSite) preservedLogins.addToAllowed(domain: sanitizedSite) } @@ -96,7 +96,7 @@ final class FireButtonReferenceTests: XCTestCase { for site in testData.fireButtonFireproofing.fireproofedSites { let sanitizedSite = sanitizedSite(site) - os_log("Adding %s to fireproofed sites", sanitizedSite) + print("Adding %s to fireproofed sites", sanitizedSite) preservedLogins.addToAllowed(domain: sanitizedSite) } diff --git a/OpenAction/ActionViewController.swift b/OpenAction/ActionViewController.swift index 3aaae8e55d..2a4c493ebf 100644 --- a/OpenAction/ActionViewController.swift +++ b/OpenAction/ActionViewController.swift @@ -22,6 +22,7 @@ import UIKit import MobileCoreServices import Core import UniformTypeIdentifiers +import os.log class ActionViewController: UIViewController { @@ -35,7 +36,7 @@ class ActionViewController: UIViewController { provider.loadItem(forTypeIdentifier: UTType.text.identifier, options: nil) { text, _ in guard let text = text as? String else { return } guard let url = URL.makeSearchURL(text: text) else { - os_log("Couldn‘t for URL for query “%s”", log: .lifecycleLog, type: .error, text) + Logger.lifecycle.error("Couldn‘t form URL for query “\(text, privacy: .public)”") return } self.launchBrowser(withUrl: url) diff --git a/PacketTunnelProvider/NetworkProtection/VPNLogger.swift b/PacketTunnelProvider/NetworkProtection/VPNLogger.swift deleted file mode 100644 index 2fa2a2b26f..0000000000 --- a/PacketTunnelProvider/NetworkProtection/VPNLogger.swift +++ /dev/null @@ -1,124 +0,0 @@ -// -// VPNLogger.swift -// DuckDuckGo -// -// Copyright © 2023 DuckDuckGo. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -import Foundation -import NetworkProtection - -import OSLog - -/// Logger for the VPN -/// -/// Since we'll want to ensure this adheres to our privacy standards, grouping the logging logic to be mostly -/// handled by a single class sounds like a good approach to be able to review what's being logged.. -/// -public final class VPNLogger { - public typealias AttemptStep = PacketTunnelProvider.AttemptStep - public typealias ConnectionAttempt = PacketTunnelProvider.ConnectionAttempt - public typealias ConnectionTesterStatus = PacketTunnelProvider.ConnectionTesterStatus - public typealias LogCallback = (OSLogType, OSLogMessage) -> Void - - public init() {} - - public func logStartingWithoutAuthToken() { - os_log("🔴 Starting tunnel without an auth token", log: .networkProtection, type: .error) - } - - public func log(_ step: AttemptStep, named name: String) { - let log = OSLog.networkProtection - - switch step { - case .begin: - os_log("🔵 %{public}@ attempt begins", log: log, name) - case .failure(let error): - os_log("🔴 %{public}@ attempt failed with error: %{public}@", log: log, type: .error, name, error.localizedDescription) - case .success: - os_log("🟢 %{public}@ attempt succeeded", log: log, name) - } - } - - public func log(_ step: ConnectionAttempt) { - let log = OSLog.networkProtection - - switch step { - case .connecting: - os_log("🔵 Connection attempt detected", log: log) - case .failure: - os_log("🔴 Connection attempt failed", log: log, type: .error) - case .success: - os_log("🟢 Connection attempt successful", log: log) - } - } - - public func log(_ status: ConnectionTesterStatus, server: String) { - let log = OSLog.networkProtectionConnectionTesterLog - - switch status { - case .failed(let duration): - os_log("🔴 Connection tester (%{public}@ - %{public}@) failure", log: log, type: .error, duration.rawValue, server) - case .recovered(let duration, let failureCount): - os_log("🟢 Connection tester (%{public}@ - %{public}@) recovery (after %{public}@ failures)", - log: log, - duration.rawValue, - server, - String(failureCount)) - } - } - - public func log(_ step: FailureRecoveryStep) { - let log = OSLog.networkProtectionTunnelFailureMonitorLog - - switch step { - case .started: - os_log("🔵 Failure Recovery attempt started", log: log) - case .failed(let error): - os_log("🔴 Failure Recovery attempt failed with error: %{public}@", log: log, type: .error, error.localizedDescription) - case .completed(let health): - switch health { - case .healthy: - os_log("🟢 Failure Recovery attempt completed", log: log) - case .unhealthy: - os_log("🔴 Failure Recovery attempt ended as unhealthy", log: log, type: .error) - } - } - } - - public func log(_ step: NetworkProtectionTunnelFailureMonitor.Result) { - let log = OSLog.networkProtectionTunnelFailureMonitorLog - - switch step { - case .failureDetected: - os_log("🔴 Tunnel failure detected", log: log, type: .error) - case .failureRecovered: - os_log("🟢 Tunnel failure recovered", log: log) - case .networkPathChanged: - os_log("🔵 Tunnel recovery detected path change", log: log) - } - } - - public func log(_ result: NetworkProtectionLatencyMonitor.Result) { - let log = OSLog.networkProtectionLatencyMonitorLog - - switch result { - case .error: - os_log("🔴 There was an error logging the latency", log: log, type: .error) - case .quality(let quality): - os_log("Connection quality is: %{public}@", log: log, quality.rawValue) - } - } -} diff --git a/ShareExtension/ShareViewController.swift b/ShareExtension/ShareViewController.swift index e75d501857..98829b4cbe 100644 --- a/ShareExtension/ShareViewController.swift +++ b/ShareExtension/ShareViewController.swift @@ -21,6 +21,7 @@ import Common import UIKit import Social import Core +import os.log class ShareViewController: SLComposeServiceViewController { @@ -71,7 +72,7 @@ class ShareViewController: SLComposeServiceViewController { textProvider.loadItem(forTypeIdentifier: Identifier.text, options: nil) { [weak self] (item, _) in guard let query = item as? String else { return } guard let url = URL.makeSearchURL(query: query) else { - os_log("Couldn‘t form URL for query “%s”", log: .lifecycleLog, type: .error, query) + Logger.lifecycle.error("Couldn‘t form URL for query “\(query, privacy: .public)”") return } self?.open(url: url) diff --git a/Widgets/Widgets.swift b/Widgets/Widgets.swift index 0e9f995ed9..4972055a03 100644 --- a/Widgets/Widgets.swift +++ b/Widgets/Widgets.swift @@ -26,6 +26,7 @@ import Kingfisher import Bookmarks import Persistence import NetworkExtension +import os.log struct Favorite { @@ -103,24 +104,24 @@ class Provider: TimelineProvider { if bookmarksDB == nil { let db = BookmarksDatabase.make(readOnly: true) - os_log("BookmarksDatabase load store started") + Logger.general.debug("BookmarksDatabase load store started") db.loadStore { _, error in guard error == nil else { return } self.bookmarksDB = db } - os_log("BookmarksDatabase store loaded") + Logger.general.debug("BookmarksDatabase store loaded") } if maxFavorites > 0, let db = bookmarksDB { let model = FavoritesListViewModel(bookmarksDatabase: db, favoritesDisplayMode: fetchFavoritesDisplayMode()) - os_log("model created") + Logger.general.debug("model created") let dbFavorites = model.favorites - os_log("dbFavorites loaded %d", dbFavorites.count) + Logger.general.debug("dbFavorites loaded \(dbFavorites.count)") let favorites = coreDataFavoritesToFavorites(dbFavorites, returningNoMoreThan: maxFavorites) - os_log("favorites converted %d", favorites.count) + Logger.general.debug("favorites converted \(favorites.count)") let entry = FavoritesEntry(date: Date(), favorites: favorites, isPreview: favorites.isEmpty && context.isPreview) - os_log("entry created") + Logger.general.debug("entry created") completion(entry) } else { let entry = FavoritesEntry(date: Date(), favorites: [], isPreview: context.isPreview) From e3d73bbc7f0edbe24241a28ae7e16b8494f2f138 Mon Sep 17 00:00:00 2001 From: Daniel Bernal Date: Wed, 28 Aug 2024 14:38:08 +0200 Subject: [PATCH 30/32] [DuckPlayer] 23. Ship Review Fixes (#3279) Task/Issue URL: https://app.asana.com/0/1204099484721401/1208094354951735/f **Description**: Fixes issues found in DuckPlayer ship review - Opens videos in Youtube app if present and user selects "Open in Youtube" - Updates bookmarks images - Updates history --- Core/URLExtension.swift | 4 - .../DuckPlayer/DuckNavigationHandling.swift | 1 + .../DuckPlayerNavigationHandler.swift | 82 +++++++++++++----- .../DuckPlayer.imageset/Contents.json | 22 +++++ .../DuckPlayer.imageset/PrivatePlayer.pdf | Bin 0 -> 2740 bytes .../PrivatePlayerDarkMode.pdf | Bin 0 -> 2740 bytes .../DuckPlayer/YoutubeOverlayUserScript.swift | 1 + DuckDuckGo/FaviconsHelper.swift | 5 ++ DuckDuckGo/Info.plist | 4 + DuckDuckGo/TabViewController.swift | 28 ++++-- ...YoutublePlayerNavigationHandlerTests.swift | 70 ++++++++++++--- 11 files changed, 174 insertions(+), 43 deletions(-) create mode 100644 DuckDuckGo/DuckPlayer/Resources/DuckPlayer.xcassets/DuckPlayer.imageset/Contents.json create mode 100644 DuckDuckGo/DuckPlayer/Resources/DuckPlayer.xcassets/DuckPlayer.imageset/PrivatePlayer.pdf create mode 100644 DuckDuckGo/DuckPlayer/Resources/DuckPlayer.xcassets/DuckPlayer.imageset/PrivatePlayerDarkMode.pdf diff --git a/Core/URLExtension.swift b/Core/URLExtension.swift index 573083a45f..f4d6fdf159 100644 --- a/Core/URLExtension.swift +++ b/Core/URLExtension.swift @@ -23,10 +23,6 @@ import BrowserServicesKit import Network import Common -public extension URL.NavigationalScheme { - static let duck = URL.NavigationalScheme(rawValue: "duck") -} - extension URL { enum Host: String { diff --git a/DuckDuckGo/DuckPlayer/DuckNavigationHandling.swift b/DuckDuckGo/DuckPlayer/DuckNavigationHandling.swift index 6bb9af7d13..4f41efb297 100644 --- a/DuckDuckGo/DuckPlayer/DuckNavigationHandling.swift +++ b/DuckDuckGo/DuckPlayer/DuckNavigationHandling.swift @@ -30,4 +30,5 @@ protocol DuckNavigationHandling: AnyObject { func handleGoBack(webView: WKWebView) func handleReload(webView: WKWebView) func handleAttach(webView: WKWebView) + func getDuckURLFor(_ url: URL) -> URL } diff --git a/DuckDuckGo/DuckPlayer/DuckPlayerNavigationHandler.swift b/DuckDuckGo/DuckPlayer/DuckPlayerNavigationHandler.swift index bf9fc77e1b..68fc1ba6e4 100644 --- a/DuckDuckGo/DuckPlayer/DuckPlayerNavigationHandler.swift +++ b/DuckDuckGo/DuckPlayer/DuckPlayerNavigationHandler.swift @@ -32,9 +32,10 @@ final class DuckPlayerNavigationHandler { var referrer: DuckPlayerReferrer = .other var lastHandledVideoID: String? var featureFlagger: FeatureFlagger + var appSettings: AppSettings private struct Constants { - static let SERPURL = "https://duckduckgo.com/" + static let SERPURL = "duckduckgo.com/" static let refererHeader = "Referer" static let templateDirectory = "pages/duckplayer" static let templateName = "index" @@ -47,12 +48,16 @@ final class DuckPlayerNavigationHandler { static let watchInYoutubePath = "openInYoutube" static let watchInYoutubeVideoParameter = "v" static let urlInternalReferrer = "embeds_referring_euri" + static let youtubeScheme = "youtube://" + static let duckPlayerScheme = URL.NavigationalScheme.duck.rawValue } init(duckPlayer: DuckPlayerProtocol = DuckPlayer(), - featureFlagger: FeatureFlagger = AppDependencyProvider.shared.featureFlagger) { + featureFlagger: FeatureFlagger = AppDependencyProvider.shared.featureFlagger, + appSettings: AppSettings) { self.duckPlayer = duckPlayer self.featureFlagger = featureFlagger + self.appSettings = appSettings } static var htmlTemplatePath: String { @@ -137,6 +142,35 @@ final class DuckPlayerNavigationHandler { } } + // Get the duck:// URL youtube-no-cookie URL + func getDuckURLFor(_ url: URL) -> URL { + guard let (youtubeVideoID, timestamp) = url.youtubeVideoParams, + url.isDuckPlayer, + !url.isDuckURLScheme, + duckPlayer.settings.mode != .disabled + else { + return url + } + return URL.duckPlayer(youtubeVideoID, timestamp: timestamp) + } + + private var isYouTubeAppInstalled: Bool { + if let youtubeURL = URL(string: Constants.youtubeScheme) { + return UIApplication.shared.canOpenURL(youtubeURL) + } + return false + } + + private func isSERPLink(navigationAction: WKNavigationAction) -> Bool { + guard let referrer = navigationAction.request.allHTTPHeaderFields?[Constants.refererHeader] else { + return false + } + if referrer.contains(Constants.SERPURL) { + return true + } + return false + } + } extension DuckPlayerNavigationHandler: DuckNavigationHandling { @@ -166,22 +200,28 @@ extension DuckPlayerNavigationHandler: DuckNavigationHandling { // Handle Open in Youtube Links // duck://player/openInYoutube?v=12345 - if url.scheme == "duck" { - let urlComponents = URLComponents(url: url, resolvingAgainstBaseURL: false) - - if urlComponents?.path == "/\(Constants.watchInYoutubePath)", - let queryItems = urlComponents?.queryItems { - - if let videoParameterItem = queryItems.first(where: { $0.name == Constants.watchInYoutubeVideoParameter }), - let id = videoParameterItem.value, - let newURL = URL.youtube(id, timestamp: nil).addingWatchInYoutubeQueryParameter() { - // These links should always skip the overlay - duckPlayer.settings.allowFirstVideo = true - Pixel.fire(pixel: Pixel.Event.duckPlayerWatchOnYoutube) - webView.load(URLRequest(url: newURL)) - return - } + if url.scheme == Constants.duckPlayerScheme, + let urlComponents = URLComponents(url: url, resolvingAgainstBaseURL: false), + urlComponents.path == "/\(Constants.watchInYoutubePath)", + let videoParameterItem = urlComponents.queryItems?.first(where: { $0.name == Constants.watchInYoutubeVideoParameter }), + let id = videoParameterItem.value, + let newURL = URL.youtube(id, timestamp: nil).addingWatchInYoutubeQueryParameter() { + + Pixel.fire(pixel: Pixel.Event.duckPlayerWatchOnYoutube) + + // These links should always skip the overlay + duckPlayer.settings.allowFirstVideo = true + + // Attempt to open in YouTube app (if installed) or load in webView + if isSERPLink(navigationAction: navigationAction), + appSettings.allowUniversalLinks, + isYouTubeAppInstalled, + let url = URL(string: "\(Constants.youtubeScheme)\(id)") { + UIApplication.shared.open(url) + } else { + webView.load(URLRequest(url: newURL)) } + return } // Daily Unique View Pixel @@ -251,13 +291,14 @@ extension DuckPlayerNavigationHandler: DuckNavigationHandling { } // Pixel for Views From SERP - if navigationAction.request.allHTTPHeaderFields?[Constants.refererHeader] == Constants.SERPURL, - duckPlayer.settings.mode == .enabled, !url.isDuckPlayer { + if isSERPLink(navigationAction: navigationAction), + duckPlayer.settings.mode == .enabled, !url.isDuckPlayer { Pixel.fire(pixel: Pixel.Event.duckPlayerViewFromSERP, debounce: 2) } else { Pixel.fire(pixel: Pixel.Event.duckPlayerViewFromOther, debounce: 2) } + if url.isYoutubeVideo, !url.isDuckPlayer, duckPlayer.settings.mode == .enabled || duckPlayer.settings.mode == .alwaysAsk { @@ -309,7 +350,7 @@ extension DuckPlayerNavigationHandler: DuckNavigationHandling { break } - if let nonYoutubeItem = nonYoutubeItem { + if let nonYoutubeItem = nonYoutubeItem, duckPlayer.settings.mode == .enabled { Logger.duckPlayer.debug("DP: Navigating back to \(nonYoutubeItem.url.absoluteString)") webView.go(to: nonYoutubeItem) } else { @@ -355,4 +396,5 @@ extension DuckPlayerNavigationHandler: DuckNavigationHandling { } } + } diff --git a/DuckDuckGo/DuckPlayer/Resources/DuckPlayer.xcassets/DuckPlayer.imageset/Contents.json b/DuckDuckGo/DuckPlayer/Resources/DuckPlayer.xcassets/DuckPlayer.imageset/Contents.json new file mode 100644 index 0000000000..bca56c2cf3 --- /dev/null +++ b/DuckDuckGo/DuckPlayer/Resources/DuckPlayer.xcassets/DuckPlayer.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "filename" : "PrivatePlayer.pdf", + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "filename" : "PrivatePlayerDarkMode.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DuckDuckGo/DuckPlayer/Resources/DuckPlayer.xcassets/DuckPlayer.imageset/PrivatePlayer.pdf b/DuckDuckGo/DuckPlayer/Resources/DuckPlayer.xcassets/DuckPlayer.imageset/PrivatePlayer.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4ab20ee821474b93f6facee5f644ad032545dae6 GIT binary patch literal 2740 zcma)8%Wm5+5WMp%cnOdch|H&C0fB+Wd7x;ECQgAKf*w>^v0d0wYbizAukTP6mvn8Q zkq@Ru+}T;~a>=B(>?-S}qf9v@|J~#?RA!5TKIDBj}o8hUX!3nUa0*5-^ejPC~6W0VRQY zCk-0Oi}Le=9D+(l5(xvHkB=}~8R92|WR%fTk>E93vM+B~jn#EoU9=z{7MU2%X>|CF z6qHdWXg&?vvJR0*kz}?nuT7i+LJ=TEjgi{TT}K2*!N`8;k~sLteLQeRAo0Uj<~Bm;2pn~;rG@1%m-i}-%D33*=0@YEFtX(M$N+N7|ME!;# z(^^}hu)78m8XSHiwvq)c1g;}cV6&+#7w9>|;D|whq76arT@8oake4{$L7`6aG&T7+ z3WF?&F>VdPH&)AH=VeL?9?(!f6hVN98jMsu1opz|?VoMoWl~uOf}CO?PRcVJQ9%3j?IL6CAozX_VludBaHKqfMkzDeTt3&>N*qfoYQ~onsdb-5YH`H5#7?!GR-k zEwi4Bdi;2tW?2fZ(B(yf(=+SI26~a;G<7HIAi@oFrj4*5I}Ea4WOu0CGk5$CXS=@$ zxHEru1yK-B_X9()yP3SL>!xe@xK3nXGff+8jtU`q~h@frf37G1G!7W<|z+vVzsWe%w_N06_(?)Z8p^zKV8kwc8fBaHBHA| e!2JS`9#(%UsPAuo#kT9i!PXkHlauRDH-7=#pC>v1 literal 0 HcmV?d00001 diff --git a/DuckDuckGo/DuckPlayer/Resources/DuckPlayer.xcassets/DuckPlayer.imageset/PrivatePlayerDarkMode.pdf b/DuckDuckGo/DuckPlayer/Resources/DuckPlayer.xcassets/DuckPlayer.imageset/PrivatePlayerDarkMode.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5a158ccaa3408eb2cd5b1e28e4e416828c0da6c6 GIT binary patch literal 2740 zcma)8%Wm5+5WMp%cnOdcsLZDxKwzM89w^$PiBq75pa)e}92d6KT1t`j>pPUiB@G*B zXc+H;J*Eg&|b=|BkJCKh>CWf~(I{Zco zs!i}DGa7VN6Ecw^$?UMa;6wQZ6bS}YCu(QAjtGu|#OiWFdB+%q&j-N>B!0xoe1xMQ zxxw;FP;{AbP`E~YSS=uxyA0;s$C)@sWEj}KbaFyf7e zq(+MFAxOy_3uhlv^1w>x$a>$(*x=Z2%hkHxGBwo`bCqMuI literal 0 HcmV?d00001 diff --git a/DuckDuckGo/DuckPlayer/YoutubeOverlayUserScript.swift b/DuckDuckGo/DuckPlayer/YoutubeOverlayUserScript.swift index 35fef664e7..f5dfac7248 100644 --- a/DuckDuckGo/DuckPlayer/YoutubeOverlayUserScript.swift +++ b/DuckDuckGo/DuckPlayer/YoutubeOverlayUserScript.swift @@ -88,6 +88,7 @@ final class YoutubeOverlayUserScript: NSObject, Subfeature { let messageOriginPolicy: MessageOriginPolicy = .only(rules: [ .exact(hostname: "sosbourne.duckduckgo.com"), + .exact(hostname: "use-devtesting18.duckduckgo.com"), .exact(hostname: DuckPlayerSettings.OriginDomains.duckduckgo), .exact(hostname: DuckPlayerSettings.OriginDomains.youtube), .exact(hostname: DuckPlayerSettings.OriginDomains.youtubeMobile) diff --git a/DuckDuckGo/FaviconsHelper.swift b/DuckDuckGo/FaviconsHelper.swift index c37364fc42..4f64181e46 100644 --- a/DuckDuckGo/FaviconsHelper.swift +++ b/DuckDuckGo/FaviconsHelper.swift @@ -47,6 +47,11 @@ struct FaviconsHelper { completion?(resultImage, fake) } + if domain == "player" { + complete(UIImage(named: "DuckPlayer")) + return + } + if URL.isDuckDuckGo(domain: domain) { complete(UIImage(named: "Logo")) return diff --git a/DuckDuckGo/Info.plist b/DuckDuckGo/Info.plist index bd6d42fb7c..a19b12c025 100644 --- a/DuckDuckGo/Info.plist +++ b/DuckDuckGo/Info.plist @@ -2,6 +2,10 @@ + LSApplicationQueriesSchemes + + youtube + BGTaskSchedulerPermittedIdentifiers com.duckduckgo.app.configurationRefresh diff --git a/DuckDuckGo/TabViewController.swift b/DuckDuckGo/TabViewController.swift index 844d53bf72..340294715f 100644 --- a/DuckDuckGo/TabViewController.swift +++ b/DuckDuckGo/TabViewController.swift @@ -193,7 +193,10 @@ class TabViewController: UIViewController { didSet { updateTabModel() delegate?.tabLoadingStateDidChange(tab: self) - historyCapture.titleDidChange(title, forURL: url) + if let url { + let finalURL = duckPlayerNavigationHandler?.getDuckURLFor(url) + historyCapture.titleDidChange(title, forURL: finalURL) + } } } @@ -226,8 +229,9 @@ class TabViewController: UIViewController { guard let url = url else { return tabModel.link } - - let activeLink = Link(title: title, url: url) + + let finalURL = duckPlayerNavigationHandler?.getDuckURLFor(url) ?? url + let activeLink = Link(title: title, url: finalURL) guard let storedLink = tabModel.link else { return activeLink } @@ -350,7 +354,8 @@ class TabViewController: UIViewController { self.syncService = syncService self.duckPlayer = duckPlayer if let duckPlayer { - self.duckPlayerNavigationHandler = DuckPlayerNavigationHandler(duckPlayer: duckPlayer) + self.duckPlayerNavigationHandler = DuckPlayerNavigationHandler(duckPlayer: duckPlayer, + appSettings: appSettings) } self.privacyProDataReporter = privacyProDataReporter self.contextualOnboardingPresenter = contextualOnboardingPresenter @@ -798,9 +803,15 @@ class TabViewController: UIViewController { if let url = url, url.isDuckPlayer { webView.stopLoading() - duckPlayerNavigationHandler?.handleGoBack(webView: webView) - chromeDelegate?.omniBar.resignFirstResponder() - return + if webView.canGoBack { + duckPlayerNavigationHandler?.handleGoBack(webView: webView) + chromeDelegate?.omniBar.resignFirstResponder() + return + } + if openingTab != nil { + delegate?.tabDidRequestClose(self) + return + } } if isError { @@ -1202,7 +1213,8 @@ extension TabViewController: WKNavigationDelegate { func webView(_ webView: WKWebView, didCommit navigation: WKNavigation!) { if let url = webView.url { - historyCapture.webViewDidCommit(url: url) + let finalURL = duckPlayerNavigationHandler?.getDuckURLFor(url) ?? url + historyCapture.webViewDidCommit(url: finalURL) instrumentation.willLoad(url: url) } diff --git a/DuckDuckGoTests/YoutublePlayerNavigationHandlerTests.swift b/DuckDuckGoTests/YoutublePlayerNavigationHandlerTests.swift index 1bf0672f35..78f006ddd4 100644 --- a/DuckDuckGoTests/YoutublePlayerNavigationHandlerTests.swift +++ b/DuckDuckGoTests/YoutublePlayerNavigationHandlerTests.swift @@ -109,7 +109,7 @@ class DuckPlayerNavigationHandlerTests: XCTestCase { let expectation = self.expectation(description: "Completion handler called") let playerSettings = MockDuckPlayerSettings(appSettings: mockAppSettings, privacyConfigManager: mockPrivacyConfig) let player = MockDuckPlayer(settings: playerSettings) - let handler = DuckPlayerNavigationHandler(duckPlayer: player, featureFlagger: featureFlagger) + let handler = DuckPlayerNavigationHandler(duckPlayer: player, featureFlagger: featureFlagger, appSettings: mockAppSettings) var navigationPolicy: WKNavigationActionPolicy? handler.lastHandledVideoID = "abc123" @@ -133,7 +133,7 @@ class DuckPlayerNavigationHandlerTests: XCTestCase { let expectation = self.expectation(description: "Completion handler called") let playerSettings = MockDuckPlayerSettings(appSettings: mockAppSettings, privacyConfigManager: mockPrivacyConfig) let player = MockDuckPlayer(settings: playerSettings) - let handler = DuckPlayerNavigationHandler(duckPlayer: player, featureFlagger: featureFlagger) + let handler = DuckPlayerNavigationHandler(duckPlayer: player, featureFlagger: featureFlagger, appSettings: mockAppSettings) var navigationPolicy: WKNavigationActionPolicy? handler.handleDecidePolicyFor(navigationAction, completion: { policy in @@ -156,7 +156,7 @@ class DuckPlayerNavigationHandlerTests: XCTestCase { let playerSettings = MockDuckPlayerSettings(appSettings: mockAppSettings, privacyConfigManager: mockPrivacyConfig) playerSettings.mode = .enabled let player = MockDuckPlayer(settings: playerSettings) - let handler = DuckPlayerNavigationHandler(duckPlayer: player, featureFlagger: featureFlagger) + let handler = DuckPlayerNavigationHandler(duckPlayer: player, featureFlagger: featureFlagger, appSettings: mockAppSettings) var navigationPolicy: WKNavigationActionPolicy? handler.handleDecidePolicyFor(navigationAction, completion: { policy in @@ -179,7 +179,7 @@ class DuckPlayerNavigationHandlerTests: XCTestCase { let playerSettings = MockDuckPlayerSettings(appSettings: mockAppSettings, privacyConfigManager: mockPrivacyConfig) playerSettings.mode = .enabled let player = MockDuckPlayer(settings: playerSettings) - let handler = DuckPlayerNavigationHandler(duckPlayer: player, featureFlagger: featureFlagger) + let handler = DuckPlayerNavigationHandler(duckPlayer: player, featureFlagger: featureFlagger, appSettings: mockAppSettings) var navigationPolicy: WKNavigationActionPolicy? handler.handleDecidePolicyFor(navigationAction, completion: { policy in @@ -204,7 +204,7 @@ class DuckPlayerNavigationHandlerTests: XCTestCase { let playerSettings = MockDuckPlayerSettings(appSettings: mockAppSettings, privacyConfigManager: mockPrivacyConfig) let player = MockDuckPlayer(settings: playerSettings) - let handler = DuckPlayerNavigationHandler(duckPlayer: player, featureFlagger: featureFlagger) + let handler = DuckPlayerNavigationHandler(duckPlayer: player, featureFlagger: featureFlagger, appSettings: mockAppSettings) handler.lastHandledVideoID = "abc123" handler.handleJSNavigation(url: youtubeURL, webView: webView) @@ -221,7 +221,7 @@ class DuckPlayerNavigationHandlerTests: XCTestCase { let playerSettings = MockDuckPlayerSettings(appSettings: mockAppSettings, privacyConfigManager: mockPrivacyConfig) let player = MockDuckPlayer(settings: playerSettings) - let handler = DuckPlayerNavigationHandler(duckPlayer: player, featureFlagger: featureFlagger) + let handler = DuckPlayerNavigationHandler(duckPlayer: player, featureFlagger: featureFlagger, appSettings: mockAppSettings) handler.handleJSNavigation(url: youtubeURL, webView: webView) @@ -237,7 +237,7 @@ class DuckPlayerNavigationHandlerTests: XCTestCase { let playerSettings = MockDuckPlayerSettings(appSettings: mockAppSettings, privacyConfigManager: mockPrivacyConfig) playerSettings.mode = .enabled let player = MockDuckPlayer(settings: playerSettings) - let handler = DuckPlayerNavigationHandler(duckPlayer: player, featureFlagger: featureFlagger) + let handler = DuckPlayerNavigationHandler(duckPlayer: player, featureFlagger: featureFlagger, appSettings: mockAppSettings) handler.handleJSNavigation(url: youtubeURL, webView: webView) @@ -254,7 +254,7 @@ class DuckPlayerNavigationHandlerTests: XCTestCase { let playerSettings = MockDuckPlayerSettings(appSettings: mockAppSettings, privacyConfigManager: mockPrivacyConfig) playerSettings.mode = .enabled let player = MockDuckPlayer(settings: playerSettings) - let handler = DuckPlayerNavigationHandler(duckPlayer: player, featureFlagger: featureFlagger) + let handler = DuckPlayerNavigationHandler(duckPlayer: player, featureFlagger: featureFlagger, appSettings: mockAppSettings) handler.handleNavigation(navigationAction, webView: webView) XCTAssertEqual(webView.url, nil) @@ -269,7 +269,7 @@ class DuckPlayerNavigationHandlerTests: XCTestCase { let playerSettings = MockDuckPlayerSettings(appSettings: mockAppSettings, privacyConfigManager: mockPrivacyConfig) playerSettings.mode = .enabled let player = MockDuckPlayer(settings: playerSettings) - let handler = DuckPlayerNavigationHandler(duckPlayer: player, featureFlagger: featureFlagger) + let handler = DuckPlayerNavigationHandler(duckPlayer: player, featureFlagger: featureFlagger, appSettings: mockAppSettings) handler.handleNavigation(navigationAction, webView: webView) @@ -291,7 +291,7 @@ class DuckPlayerNavigationHandlerTests: XCTestCase { let playerSettings = MockDuckPlayerSettings(appSettings: mockAppSettings, privacyConfigManager: mockPrivacyConfig) playerSettings.mode = .enabled let player = MockDuckPlayer(settings: playerSettings) - let handler = DuckPlayerNavigationHandler(duckPlayer: player, featureFlagger: featureFlagger) + let handler = DuckPlayerNavigationHandler(duckPlayer: player, featureFlagger: featureFlagger, appSettings: mockAppSettings) handler.handleReload(webView: mockWebView) if let loadedRequest = mockWebView.lastLoadedRequest { @@ -309,7 +309,7 @@ class DuckPlayerNavigationHandlerTests: XCTestCase { let playerSettings = MockDuckPlayerSettings(appSettings: mockAppSettings, privacyConfigManager: mockPrivacyConfig) playerSettings.mode = .enabled let player = MockDuckPlayer(settings: playerSettings) - let handler = DuckPlayerNavigationHandler(duckPlayer: player, featureFlagger: featureFlagger) + let handler = DuckPlayerNavigationHandler(duckPlayer: player, featureFlagger: featureFlagger, appSettings: mockAppSettings) handler.handleAttach(webView: mockWebView) if let loadedRequest = mockWebView.lastLoadedRequest { @@ -320,5 +320,53 @@ class DuckPlayerNavigationHandlerTests: XCTestCase { } } + func testGetURLForYoutubeNoCookieWithDuckPlayerEnabled() { + let playerSettings = MockDuckPlayerSettings(appSettings: mockAppSettings, privacyConfigManager: mockPrivacyConfig) + playerSettings.mode = .enabled + + let player = MockDuckPlayer(settings: playerSettings) + let handler = DuckPlayerNavigationHandler(duckPlayer: player, featureFlagger: featureFlagger, appSettings: mockAppSettings) + var url = URL(string: "https://www.youtube-nocookie.com/embed/abc123?t=10s")! + var duckURL = handler.getDuckURLFor(url).absoluteString + XCTAssertEqual(duckURL, "duck://player/abc123?t=10s") + + url = URL(string: "https://www.youtube.com/watch?v=I9J120SZT14")! + duckURL = handler.getDuckURLFor(url).absoluteString + XCTAssertEqual(duckURL, url.absoluteString) + + } + + func testGetURLForYoutubeNoCookieWithDuckPlayerAskMode() { + let playerSettings = MockDuckPlayerSettings(appSettings: mockAppSettings, privacyConfigManager: mockPrivacyConfig) + playerSettings.mode = .alwaysAsk + + let player = MockDuckPlayer(settings: playerSettings) + let handler = DuckPlayerNavigationHandler(duckPlayer: player, featureFlagger: featureFlagger, appSettings: mockAppSettings) + var url = URL(string: "https://www.youtube-nocookie.com/embed/abc123?t=10s")! + var duckURL = handler.getDuckURLFor(url).absoluteString + XCTAssertEqual(duckURL, "duck://player/abc123?t=10s") + + url = URL(string: "https://www.youtube.com/watch?v=I9J120SZT14")! + duckURL = handler.getDuckURLFor(url).absoluteString + XCTAssertEqual(duckURL, url.absoluteString) + + } + + func testGetURLForYoutubeNoCookieWithDuckPlayerDisabled() { + let playerSettings = MockDuckPlayerSettings(appSettings: mockAppSettings, privacyConfigManager: mockPrivacyConfig) + playerSettings.mode = .disabled + + let player = MockDuckPlayer(settings: playerSettings) + let handler = DuckPlayerNavigationHandler(duckPlayer: player, featureFlagger: featureFlagger, appSettings: mockAppSettings) + var url = URL(string: "https://www.youtube-nocookie.com/embed/abc123?t=10s")! + var duckURL = handler.getDuckURLFor(url).absoluteString + XCTAssertEqual(duckURL, url.absoluteString) + + url = URL(string: "https://www.youtube.com/watch?v=I9J120SZT14")! + duckURL = handler.getDuckURLFor(url).absoluteString + XCTAssertEqual(duckURL, url.absoluteString) + + } + } From fc0ea9b681d42d5e1f8c7c41c2b9678cee5c25a3 Mon Sep 17 00:00:00 2001 From: Daniel Bernal Date: Wed, 28 Aug 2024 14:38:33 +0200 Subject: [PATCH 31/32] [DuckPlayer] 24. FrontEnd Translation (#3281) Task/Issue URL: https://app.asana.com/0/1204099484721401/1208149666429213/f Description: Translates Duckplayer FrontEnd and updates copy based on Ship Review Removes copy from DP footer in settings Updates Copy for DuckPlayer Prompt and Settings to be new, and the same --- DuckDuckGo/DuckPlayer/DuckPlayer.swift | 37 +++++++++++++++++-------- DuckDuckGo/SettingsDuckPlayerView.swift | 4 --- DuckDuckGo/UserText.swift | 6 ++-- DuckDuckGo/en.lproj/Localizable.strings | 6 ++-- 4 files changed, 31 insertions(+), 22 deletions(-) diff --git a/DuckDuckGo/DuckPlayer/DuckPlayer.swift b/DuckDuckGo/DuckPlayer/DuckPlayer.swift index 2a74174274..a861d7b478 100644 --- a/DuckDuckGo/DuckPlayer/DuckPlayer.swift +++ b/DuckDuckGo/DuckPlayer/DuckPlayer.swift @@ -24,6 +24,7 @@ import Foundation import WebKit import UserScript import Core +import ContentScopeScripts /// Values that the Frontend can use to determine the current state. struct InitialPlayerSettings: Codable { @@ -48,16 +49,13 @@ struct InitialPlayerSettings: Codable { case development case production } - - enum Locale: String, Codable { - case en - } let userValues: UserValues let ui: UIValues let settings: PlayerSettings let platform: Platform - let locale: Locale + let locale: String + let localeStrings: String? } /// Values that the Frontend can use to determine user settings @@ -105,11 +103,25 @@ final class DuckPlayer: DuckPlayerProtocol { struct Constants { static let duckPlayerHost: String = "player" static let commonName = "Duck Player" + static let translationFile = "duckplayer" + static let translationFileExtension = "json" + static let defaultLocale = "en" + static let translationPath = "pages/duckplayer/locales/" } private(set) var settings: DuckPlayerSettingsProtocol private(set) weak var hostView: UIViewController? + private lazy var localeStrings: String? = { + let languageCode = Locale.current.languageCode ?? Constants.defaultLocale + if let localizedFile = ContentScopeScripts.Bundle.path(forResource: Constants.translationFile, + ofType: Constants.translationFileExtension, + inDirectory: "\(Constants.translationPath)\(languageCode)") { + return try? String(contentsOfFile: localizedFile) + } + return nil + }() + private struct WKMessageData: Codable { var context: String? var featureName: String? @@ -213,16 +225,17 @@ final class DuckPlayer: DuckPlayerProtocol { let isPiPEnabled = webView?.configuration.allowsPictureInPictureMediaPlayback == true let pip = InitialPlayerSettings.PIP(status: isPiPEnabled ? .enabled : .disabled) let platform = InitialPlayerSettings.Platform(name: "ios") -// let environment = InitialPlayerSettings.Environment.development - let locale = InitialPlayerSettings.Locale.en + let locale = Locale.current.languageCode ?? "en" let playerSettings = InitialPlayerSettings.PlayerSettings(pip: pip) let userValues = encodeUserValues() let uiValues = encodeUIValues() - return InitialPlayerSettings(userValues: userValues, - ui: uiValues, - settings: playerSettings, - platform: platform, - locale: locale) + let settings = InitialPlayerSettings(userValues: userValues, + ui: uiValues, + settings: playerSettings, + platform: platform, + locale: locale, + localeStrings: localeStrings) + return settings } // Accessing WKMessage needs main thread diff --git a/DuckDuckGo/SettingsDuckPlayerView.swift b/DuckDuckGo/SettingsDuckPlayerView.swift index d9ef668ad1..8df6eb7678 100644 --- a/DuckDuckGo/SettingsDuckPlayerView.swift +++ b/DuckDuckGo/SettingsDuckPlayerView.swift @@ -72,10 +72,6 @@ struct SettingsDuckPlayerView: View { options: DuckPlayerMode.allCases, selectedOption: viewModel.duckPlayerModeBinding) .disabled(viewModel.shouldDisplayDuckPlayerContingencyMessage) - } footer: { - Text(UserText.settingsDuckPlayerFooter) - .daxFootnoteRegular() - .multilineTextAlignment(.center) } } .applySettingsListModifiers(title: UserText.duckPlayerFeatureName, diff --git a/DuckDuckGo/UserText.swift b/DuckDuckGo/UserText.swift index c3f08921e0..31e83f13d1 100644 --- a/DuckDuckGo/UserText.swift +++ b/DuckDuckGo/UserText.swift @@ -1267,10 +1267,10 @@ But if you *do* want a peek under the hood, you can find more information about public static let settingsOpenVideosInDuckPlayerTitle = NSLocalizedString("duckplayer.settings.title", value: "Duck Player", comment: "Settings screen cell text for DuckPlayer settings") public static let settingsDuckPlayerFooter = NSLocalizedString("duckplayer.settings.footer", value: "DuckDuckGo provides all the privacy essentials you need to protect yourself as you browse the web.", comment: "Footer label in the settings screen for Duck Player") public static let settingsDuckPlayerLearnMore = NSLocalizedString("duckplayer.settings.learn-more", value: "Learn More", comment: "Button that takes the user to learn more about Duck Player.") - public static let settingsDuckPlayerInfoText = NSLocalizedString("duckplayer.settings.info-text", value: "Duck Player provides a clean viewing experience without personalized ads and prevents viewing activity from influencing your YouTube recommendations.", comment: "Text explaining what Duck Player is in the settings screen.") + public static let settingsDuckPlayerInfoText = NSLocalizedString("duckplayer.settings.info-text", value: "Duck Player lets you watch YouTube without targeted ads in DuckDuckGo and what you watch won’t influence your recommendations.", comment: "Text explaining what Duck Player is in the settings screen.") - public static let duckPlayerPresentationModalTitle = NSLocalizedString("duckplayer.presentation.modal.title", value: "Drowning in ads on YouTube? Try Duck Player!", comment: "Two line title (separated by \n) for the feature explanation") - public static let duckPlayerPresentationModalBody = NSLocalizedString("duckplayer.presentation.modal.body", value: "Duck Player lets you watch YouTube without targeted ads in a theater-like experience in DuckDuckGo and what you watch won’t influence your recommendations.", comment: "Body text for the modal feature explanation") + public static let duckPlayerPresentationModalTitle = NSLocalizedString("duckplayer.presentation.modal.title", value: "Drowning in ads on YouTube? Not with Duck Player!", comment: "Two line title (separated by \n) for the feature explanation") + public static let duckPlayerPresentationModalBody = NSLocalizedString("duckplayer.presentation.modal.body", value: "Duck Player lets you watch YouTube without targeted ads in DuckDuckGo and what you watch won’t influence your recommendations.", comment: "Body text for the modal feature explanation") public static let duckPlayerPresentationModalDismissButton = NSLocalizedString("duckplayer.presentation.modal.dismiss-button", value: "Got it!", comment: "Button that will dismiss the modal") static let duckPlayerContingencyMessageTitle = NSLocalizedString("duck-player.contingency-title", value: "Duck Player Unavailable", comment: "Title for message explaining to the user that Duck Player is not available") diff --git a/DuckDuckGo/en.lproj/Localizable.strings b/DuckDuckGo/en.lproj/Localizable.strings index b38a28e564..1ff95f6617 100644 --- a/DuckDuckGo/en.lproj/Localizable.strings +++ b/DuckDuckGo/en.lproj/Localizable.strings @@ -1002,19 +1002,19 @@ "duckPlayer.never.label" = "Never"; /* Body text for the modal feature explanation */ -"duckplayer.presentation.modal.body" = "Duck Player lets you watch YouTube without targeted ads in a theater-like experience in DuckDuckGo and what you watch won’t influence your recommendations."; +"duckplayer.presentation.modal.body" = "Duck Player lets you watch YouTube without targeted ads in DuckDuckGo and what you watch won’t influence your recommendations."; /* Button that will dismiss the modal */ "duckplayer.presentation.modal.dismiss-button" = "Got it!"; /* Two line title (separated by \n) for the feature explanation */ -"duckplayer.presentation.modal.title" = "Drowning in ads on YouTube? Try Duck Player!"; +"duckplayer.presentation.modal.title" = "Drowning in ads on YouTube? Not with Duck Player!"; /* Footer label in the settings screen for Duck Player */ "duckplayer.settings.footer" = "DuckDuckGo provides all the privacy essentials you need to protect yourself as you browse the web."; /* Text explaining what Duck Player is in the settings screen. */ -"duckplayer.settings.info-text" = "Duck Player provides a clean viewing experience without personalized ads and prevents viewing activity from influencing your YouTube recommendations."; +"duckplayer.settings.info-text" = "Duck Player lets you watch YouTube without targeted ads in DuckDuckGo and what you watch won’t influence your recommendations."; /* Button that takes the user to learn more about Duck Player. */ "duckplayer.settings.learn-more" = "Learn More"; From aeb6f67398b8c709cdca15338c980bcf68a0b23e Mon Sep 17 00:00:00 2001 From: Michal Smaga Date: Wed, 28 Aug 2024 17:12:03 +0200 Subject: [PATCH 32/32] Add error pixels for Subscription keychain access errors (#3276) Task/Issue URL: https://app.asana.com/0/1201037661562251/1208146974665104/f **Description**: Add missing pixel reporting for subscription related keychain access errors. --- Core/Pixel.swift | 5 +++ Core/PixelEvent.swift | 2 ++ DuckDuckGo.xcodeproj/project.pbxproj | 6 +++- .../xcshareddata/swiftpm/Package.resolved | 6 ++-- DuckDuckGo/AppDependencyProvider.swift | 13 ++++--- ...AccountManagerKeychainAccessDelegate.swift | 36 +++++++++++++++++++ ...etworkProtectionPacketTunnelProvider.swift | 16 +++++++++ 7 files changed, 75 insertions(+), 9 deletions(-) create mode 100644 DuckDuckGo/Subscription/DefaultSubscriptionManager+AccountManagerKeychainAccessDelegate.swift diff --git a/Core/Pixel.swift b/Core/Pixel.swift index 9f87a0dec6..9b50dae725 100644 --- a/Core/Pixel.swift +++ b/Core/Pixel.swift @@ -84,6 +84,7 @@ public struct PixelParameters { public static let tabControllerCacheCount = "tab_controller_cache_count" public static let count = "count" + public static let source = "source" public static let textSizeInitial = "text_size_initial" public static let textSizeUpdated = "text_size_updated" @@ -147,6 +148,10 @@ public struct PixelParameters { // Privacy Dashboard public static let daysSinceInstall = "daysSinceInstall" public static let fromOnboarding = "from_onboarding" + + // Subscription + public static let privacyProKeychainAccessType = "access_type" + public static let privacyProKeychainError = "error" } public struct PixelValues { diff --git a/Core/PixelEvent.swift b/Core/PixelEvent.swift index 0ee619340d..fa146fdf3a 100644 --- a/Core/PixelEvent.swift +++ b/Core/PixelEvent.swift @@ -688,6 +688,7 @@ extension Pixel { case privacyProSubscriptionManagementRemoval case privacyProTransactionProgressNotHiddenAfter60s case privacyProSuccessfulSubscriptionAttribution + case privacyProKeychainAccessError // MARK: Pixel Experiment case pixelExperimentEnrollment @@ -1460,6 +1461,7 @@ extension Pixel.Event { case .privacyProSubscriptionManagementRemoval: return "m_privacy-pro_settings_remove-from-device_click" case .privacyProTransactionProgressNotHiddenAfter60s: return "m_privacy-pro_progress_not_hidden_after_60s" case .privacyProSuccessfulSubscriptionAttribution: return "m_subscribe" + case .privacyProKeychainAccessError: return "m_privacy-pro_keychain_access_error" // MARK: Pixel Experiment case .pixelExperimentEnrollment: return "pixel_experiment_enrollment" diff --git a/DuckDuckGo.xcodeproj/project.pbxproj b/DuckDuckGo.xcodeproj/project.pbxproj index 17e3b6058f..4fa2e17d10 100644 --- a/DuckDuckGo.xcodeproj/project.pbxproj +++ b/DuckDuckGo.xcodeproj/project.pbxproj @@ -67,6 +67,7 @@ 1E4F4A5A297193DE00625985 /* MainViewController+CookiesManaged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E4F4A59297193DE00625985 /* MainViewController+CookiesManaged.swift */; }; 1E4FAA6427D8DFB900ADC5B3 /* OngoingDownloadRowViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E4FAA6327D8DFB900ADC5B3 /* OngoingDownloadRowViewModel.swift */; }; 1E4FAA6627D8DFC800ADC5B3 /* CompleteDownloadRowViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E4FAA6527D8DFC800ADC5B3 /* CompleteDownloadRowViewModel.swift */; }; + 1E53508F2C7C9A1F00818DAA /* DefaultSubscriptionManager+AccountManagerKeychainAccessDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E53508E2C7C9A1F00818DAA /* DefaultSubscriptionManager+AccountManagerKeychainAccessDelegate.swift */; }; 1E60989B290009C700A508F9 /* Common in Frameworks */ = {isa = PBXBuildFile; productRef = 1E7060BD28F88EE200E4CCDB /* Common */; }; 1E60989D290011E600A508F9 /* ContentBlocking in Frameworks */ = {isa = PBXBuildFile; productRef = 1E60989C290011E600A508F9 /* ContentBlocking */; }; 1E6098A1290011E600A508F9 /* UserScript in Frameworks */ = {isa = PBXBuildFile; productRef = 1E6098A0290011E600A508F9 /* UserScript */; }; @@ -1312,6 +1313,7 @@ 1E4F4A59297193DE00625985 /* MainViewController+CookiesManaged.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "MainViewController+CookiesManaged.swift"; sourceTree = ""; }; 1E4FAA6327D8DFB900ADC5B3 /* OngoingDownloadRowViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OngoingDownloadRowViewModel.swift; sourceTree = ""; }; 1E4FAA6527D8DFC800ADC5B3 /* CompleteDownloadRowViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompleteDownloadRowViewModel.swift; sourceTree = ""; }; + 1E53508E2C7C9A1F00818DAA /* DefaultSubscriptionManager+AccountManagerKeychainAccessDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "DefaultSubscriptionManager+AccountManagerKeychainAccessDelegate.swift"; sourceTree = ""; }; 1E61BC2927074BED00B2854D /* TextSizeUserScript.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextSizeUserScript.swift; sourceTree = ""; }; 1E6A4D682984208800A371D3 /* LocaleExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocaleExtension.swift; sourceTree = ""; }; 1E7A71162934EB6400B7EA19 /* OmniBarNotificationAnimator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OmniBarNotificationAnimator.swift; sourceTree = ""; }; @@ -5079,6 +5081,7 @@ BDE91CD42C6292BF0005CB74 /* Feedback */, F1FDC92F2BF4E0B3006B1435 /* SubscriptionEnvironment+Default.swift */, D60170BB2BA32DD6001911B5 /* Subscription.swift */, + 1E53508E2C7C9A1F00818DAA /* DefaultSubscriptionManager+AccountManagerKeychainAccessDelegate.swift */, D6D95CE42B6DA3F200960317 /* AsyncHeadlessWebview */, D664C7952B289AA000CBFA76 /* Subscription.storekit */, D664C7932B289AA000CBFA76 /* ViewModel */, @@ -7457,6 +7460,7 @@ B6CB93E5286445AB0090FEB4 /* Base64DownloadSession.swift in Sources */, 1EEF387D285B1A1100383393 /* TrackerImageCache.swift in Sources */, 3151F0EC27357FEE00226F58 /* VoiceSearchFeedbackViewModel.swift in Sources */, + 1E53508F2C7C9A1F00818DAA /* DefaultSubscriptionManager+AccountManagerKeychainAccessDelegate.swift in Sources */, 1DDF402D2BA09482006850D9 /* SettingsMainSettingsView.swift in Sources */, 85010502292FB1000033978F /* FireproofFaviconUpdater.swift in Sources */, F1C4A70E1E57725800A6CA1B /* OmniBar.swift in Sources */, @@ -10627,7 +10631,7 @@ repositoryURL = "https://github.com/DuckDuckGo/BrowserServicesKit"; requirement = { kind = exactVersion; - version = 188.0.0; + version = 188.1.0; }; }; 9F8FE9472BAE50E50071E372 /* XCRemoteSwiftPackageReference "lottie-spm" */ = { diff --git a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 036f584a2e..a184ff8d6b 100644 --- a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -32,8 +32,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/DuckDuckGo/BrowserServicesKit", "state" : { - "revision" : "faf25f57d1d61ff855216178c454616031585c07", - "version" : "188.0.0" + "revision" : "ce1b7228a38d2b18525590256051a012109cfee6", + "version" : "188.1.0" } }, { @@ -138,7 +138,7 @@ { "identity" : "swift-argument-parser", "kind" : "remoteSourceControl", - "location" : "https://github.com/apple/swift-argument-parser", + "location" : "https://github.com/apple/swift-argument-parser.git", "state" : { "revision" : "0fbc8848e389af3bb55c182bc19ca9d5dc2f255b", "version" : "1.4.0" diff --git a/DuckDuckGo/AppDependencyProvider.swift b/DuckDuckGo/AppDependencyProvider.swift index 9fb8e62f7c..2577e88ea6 100644 --- a/DuckDuckGo/AppDependencyProvider.swift +++ b/DuckDuckGo/AppDependencyProvider.swift @@ -112,11 +112,14 @@ class AppDependencyProvider: DependencyProvider { subscriptionEndpointService: subscriptionService, authEndpointService: authService) - subscriptionManager = DefaultSubscriptionManager(storePurchaseManager: DefaultStorePurchaseManager(), - accountManager: accountManager, - subscriptionEndpointService: subscriptionService, - authEndpointService: authService, - subscriptionEnvironment: subscriptionEnvironment) + let subscriptionManager = DefaultSubscriptionManager(storePurchaseManager: DefaultStorePurchaseManager(), + accountManager: accountManager, + subscriptionEndpointService: subscriptionService, + authEndpointService: authService, + subscriptionEnvironment: subscriptionEnvironment) + accountManager.delegate = subscriptionManager + + self.subscriptionManager = subscriptionManager let subscriptionFeatureAvailability: SubscriptionFeatureAvailability = DefaultSubscriptionFeatureAvailability( privacyConfigurationManager: ContentBlocking.shared.privacyConfigurationManager, diff --git a/DuckDuckGo/Subscription/DefaultSubscriptionManager+AccountManagerKeychainAccessDelegate.swift b/DuckDuckGo/Subscription/DefaultSubscriptionManager+AccountManagerKeychainAccessDelegate.swift new file mode 100644 index 0000000000..dbd2042c86 --- /dev/null +++ b/DuckDuckGo/Subscription/DefaultSubscriptionManager+AccountManagerKeychainAccessDelegate.swift @@ -0,0 +1,36 @@ +// +// DefaultSubscriptionManager+AccountManagerKeychainAccessDelegate.swift +// DuckDuckGo +// +// Copyright © 2024 DuckDuckGo. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import Foundation +import Core +import Subscription + +extension DefaultSubscriptionManager: AccountManagerKeychainAccessDelegate { + + public func accountManagerKeychainAccessFailed(accessType: AccountKeychainAccessType, error: AccountKeychainAccessError) { + let parameters = [ + PixelParameters.privacyProKeychainAccessType: accessType.rawValue, + PixelParameters.privacyProKeychainError: error.errorDescription, + PixelParameters.source: "browser" + ] + + DailyPixel.fireDailyAndCount(pixel: .privacyProKeychainAccessError, + withAdditionalParameters: parameters) + } +} diff --git a/PacketTunnelProvider/NetworkProtection/NetworkProtectionPacketTunnelProvider.swift b/PacketTunnelProvider/NetworkProtection/NetworkProtectionPacketTunnelProvider.swift index ea6020ff0e..c3ff764a5c 100644 --- a/PacketTunnelProvider/NetworkProtection/NetworkProtectionPacketTunnelProvider.swift +++ b/PacketTunnelProvider/NetworkProtection/NetworkProtectionPacketTunnelProvider.swift @@ -384,6 +384,8 @@ final class NetworkProtectionPacketTunnelProvider: PacketTunnelProvider { defaults: .networkProtectionGroupDefaults, isSubscriptionEnabled: true, entitlementCheck: { return await Self.entitlementCheck(accountManager: accountManager) }) + + accountManager.delegate = self startMonitoringMemoryPressureEvents() observeServerChanges() APIRequest.Headers.setUserAgent(DefaultUserAgentManager.duckDuckGoUserAgent) @@ -476,3 +478,17 @@ final class DefaultWireGuardInterface: WireGuardInterface { wgSetLogger(context, logFunction) } } + +extension NetworkProtectionPacketTunnelProvider: AccountManagerKeychainAccessDelegate { + + public func accountManagerKeychainAccessFailed(accessType: AccountKeychainAccessType, error: AccountKeychainAccessError) { + let parameters = [ + PixelParameters.privacyProKeychainAccessType: accessType.rawValue, + PixelParameters.privacyProKeychainError: error.errorDescription, + PixelParameters.source: "vpn" + ] + + DailyPixel.fireDailyAndCount(pixel: .privacyProKeychainAccessError, + withAdditionalParameters: parameters) + } +}