From 21442ba6d70da9c1f80bc1ab91a1874d7c1252b9 Mon Sep 17 00:00:00 2001 From: Stefan Arentz Date: Tue, 10 Nov 2015 20:18:11 -0500 Subject: [PATCH] Initial import --- .gitignore | 30 + .gitmodules | 6 + Blockzilla-Bridging-Header.h | 2 + Blockzilla.xcodeproj/project.pbxproj | 811 ++ .../contents.xcworkspacedata | 7 + Blockzilla/AboutContentViewController.swift | 47 + Blockzilla/AboutViewController.swift | 264 + Blockzilla/AppDelegate.swift | 82 + .../AppIcon.appiconset/Contents.json | 140 + .../AppIcon.appiconset/Icon-60.png | Bin 0 -> 31895 bytes .../AppIcon.appiconset/Icon-60@2x-1.png | Bin 0 -> 40015 bytes .../AppIcon.appiconset/Icon-60@2x.png | Bin 0 -> 40015 bytes .../AppIcon.appiconset/Icon-60@3x-1.png | Bin 0 -> 49164 bytes .../AppIcon.appiconset/Icon-60@3x.png | Bin 0 -> 49164 bytes .../AppIcon.appiconset/Icon-72.png | Bin 0 -> 33379 bytes .../AppIcon.appiconset/Icon-72@2x.png | Bin 0 -> 43620 bytes .../AppIcon.appiconset/Icon-76.png | Bin 0 -> 33876 bytes .../AppIcon.appiconset/Icon-76@2x.png | Bin 0 -> 44847 bytes .../AppIcon.appiconset/Icon-Small-1.png | Bin 0 -> 29416 bytes .../AppIcon.appiconset/Icon-Small-40.png | Bin 0 -> 30155 bytes .../AppIcon.appiconset/Icon-Small-40@2x-1.png | Bin 0 -> 34336 bytes .../AppIcon.appiconset/Icon-Small-40@2x.png | Bin 0 -> 34336 bytes .../AppIcon.appiconset/Icon-Small-40@3x.png | Bin 0 -> 40000 bytes .../AppIcon.appiconset/Icon-Small-50.png | Bin 0 -> 30889 bytes .../AppIcon.appiconset/Icon-Small-50@2x.png | Bin 0 -> 37083 bytes .../AppIcon.appiconset/Icon-Small.png | Bin 0 -> 29416 bytes .../AppIcon.appiconset/Icon-Small@2x-1.png | Bin 0 -> 31757 bytes .../AppIcon.appiconset/Icon-Small@2x.png | Bin 0 -> 31757 bytes .../AppIcon.appiconset/Icon-Small@3x.png | Bin 0 -> 35194 bytes .../AppIcon.appiconset/Icon.png | Bin 0 -> 31622 bytes .../AppIcon.appiconset/Icon@2x.png | Bin 0 -> 39087 bytes .../AppIcon.appiconset/iTunesArtwork@2x.png | Bin 0 -> 129028 bytes Blockzilla/Assets.xcassets/Contents.json | 6 + .../FooterLogo.imageset/Contents.json | 23 + .../FooterLogo.imageset/focus-icon-footer.png | Bin 0 -> 2294 bytes .../focus-icon-footer@2x.png | Bin 0 -> 6149 bytes .../focus-icon-footer@3x.png | Bin 0 -> 10071 bytes .../HeaderLogo.imageset/Contents.json | 21 + .../HeaderLogo.imageset/focus-wordmark.pdf | Bin 0 -> 44293 bytes .../Icon.imageset/Contents.json | 23 + .../Assets.xcassets/Icon.imageset/icon.png | Bin 0 -> 10839 bytes .../Assets.xcassets/Icon.imageset/icon@2x.png | Bin 0 -> 22224 bytes .../Assets.xcassets/Icon.imageset/icon@3x.png | Bin 0 -> 33839 bytes .../Logo.imageset/Contents.json | 23 + .../Logo.imageset/focus-logo.png | Bin 0 -> 12090 bytes .../Logo.imageset/focus-logo@2x.png | Bin 0 -> 25423 bytes .../Logo.imageset/focus-logo@3x.png | Bin 0 -> 38954 bytes Blockzilla/BlockerEnabledDetector.swift | 63 + Blockzilla/Blockzilla.entitlements | 10 + Blockzilla/ErrorFooterView.swift | 81 + Blockzilla/Info.plist | 50 + Blockzilla/IntroTour/InstructionsView.swift | 76 + .../IntroAssets.xcassets/Contents.json | 6 + .../enabled-no.imageset/Contents.json | 21 + .../enabled-no.imageset/enabled-no.pdf | Bin 0 -> 73007 bytes .../enabled-yes.imageset/Contents.json | 21 + .../enabled-yes.imageset/enabled-yes.pdf | Bin 0 -> 55237 bytes .../instructions-cog.imageset/Contents.json | 21 + .../instructions-cog.pdf | Bin 0 -> 4524 bytes .../Contents.json | 21 + .../instructions-safari.pdf | Bin 0 -> 4125 bytes .../Contents.json | 21 + .../instructions-switch.pdf | Bin 0 -> 4441 bytes Blockzilla/IntroTour/IntroSlideFinish.swift | 229 + Blockzilla/IntroTour/IntroSlideHowTo.swift | 60 + Blockzilla/IntroTour/IntroSlideWelcome.swift | 47 + .../IntroTour/IntroViewController.swift | 157 + Blockzilla/LaunchScreen.storyboard | 42 + .../LocalWebServer/LocalWebServer.swift | 37 + Blockzilla/LocalWebServer/gpl.html | 718 ++ Blockzilla/LocalWebServer/licenses.html | 244 + Blockzilla/LocalWebServer/rights.html | 18 + Blockzilla/LocalWebServer/style.css | 9 + Blockzilla/MainHeaderView.swift | 46 + Blockzilla/MainViewController.swift | 326 + Blockzilla/TitleView.swift | 28 + Blockzilla/UIColorExtensions.swift | 43 + Blockzilla/UIConstants.swift | 44 + Blockzilla/UIViewExtensions.swift | 17 + Blockzilla/WaveView.swift | 96 + ContentBlocker/ActionRequestHandler.swift | 47 + ContentBlocker/ContentBlocker.entitlements | 10 + ContentBlocker/Info.plist | 33 + LICENSE | 363 + Lists/blocker-enabled-detector.json | 4 + Lists/web-fonts.json | 4 + README.md | 1 + SCSiriWaveformView/.gitignore | 18 + .../project.pbxproj | 332 + .../Base.lproj/Main_iPad.storyboard | 51 + .../SCSiriWaveformView/Main_iPhone.storyboard | 52 + .../Demo/SCSiriWaveformView/SCAppDelegate.h | 15 + .../Demo/SCSiriWaveformView/SCAppDelegate.m | 19 + .../SCSiriWaveformView-Info.plist | 50 + .../SCSiriWaveformView/SCViewController.h | 13 + .../SCSiriWaveformView/SCViewController.m | 133 + .../Demo/SCSiriWaveformView/main.m | 18 + .../Demo/SCSiriWaveformView/sample.m4a | Bin 0 -> 46468 bytes SCSiriWaveformView/LICENSE | 24 + SCSiriWaveformView/README.md | 21 + SCSiriWaveformView/SCSiriWaveformView.podspec | 17 + .../SCSiriWaveformView/SCSiriWaveformView.h | 80 + .../SCSiriWaveformView/SCSiriWaveformView.m | 120 + Shared/Settings.swift | 35 + build-disconnect.py | 122 + checkout.sh | 9 + shavar-prod-lists/README.md | 24 + shavar-prod-lists/disconnect-blacklist.json | 8928 +++++++++++++++ shavar-prod-lists/disconnect-entitylist.json | 9674 +++++++++++++++++ shavar-prod-lists/google_mapping.json | 55 + 110 files changed, 24309 insertions(+) create mode 100644 .gitignore create mode 100644 .gitmodules create mode 100644 Blockzilla-Bridging-Header.h create mode 100644 Blockzilla.xcodeproj/project.pbxproj create mode 100644 Blockzilla.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Blockzilla/AboutContentViewController.swift create mode 100644 Blockzilla/AboutViewController.swift create mode 100644 Blockzilla/AppDelegate.swift create mode 100644 Blockzilla/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-60.png create mode 100644 Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-60@2x-1.png create mode 100644 Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png create mode 100644 Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-60@3x-1.png create mode 100644 Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png create mode 100644 Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-72.png create mode 100644 Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-72@2x.png create mode 100644 Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-76.png create mode 100644 Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png create mode 100644 Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-Small-1.png create mode 100644 Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-Small-40.png create mode 100644 Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@2x-1.png create mode 100644 Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@2x.png create mode 100644 Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@3x.png create mode 100644 Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-Small-50.png create mode 100644 Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-Small-50@2x.png create mode 100644 Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-Small.png create mode 100644 Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x-1.png create mode 100644 Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x.png create mode 100644 Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-Small@3x.png create mode 100644 Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon.png create mode 100644 Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon@2x.png create mode 100644 Blockzilla/Assets.xcassets/AppIcon.appiconset/iTunesArtwork@2x.png create mode 100644 Blockzilla/Assets.xcassets/Contents.json create mode 100644 Blockzilla/Assets.xcassets/FooterLogo.imageset/Contents.json create mode 100644 Blockzilla/Assets.xcassets/FooterLogo.imageset/focus-icon-footer.png create mode 100644 Blockzilla/Assets.xcassets/FooterLogo.imageset/focus-icon-footer@2x.png create mode 100644 Blockzilla/Assets.xcassets/FooterLogo.imageset/focus-icon-footer@3x.png create mode 100644 Blockzilla/Assets.xcassets/HeaderLogo.imageset/Contents.json create mode 100644 Blockzilla/Assets.xcassets/HeaderLogo.imageset/focus-wordmark.pdf create mode 100644 Blockzilla/Assets.xcassets/Icon.imageset/Contents.json create mode 100644 Blockzilla/Assets.xcassets/Icon.imageset/icon.png create mode 100644 Blockzilla/Assets.xcassets/Icon.imageset/icon@2x.png create mode 100644 Blockzilla/Assets.xcassets/Icon.imageset/icon@3x.png create mode 100644 Blockzilla/Assets.xcassets/Logo.imageset/Contents.json create mode 100644 Blockzilla/Assets.xcassets/Logo.imageset/focus-logo.png create mode 100644 Blockzilla/Assets.xcassets/Logo.imageset/focus-logo@2x.png create mode 100644 Blockzilla/Assets.xcassets/Logo.imageset/focus-logo@3x.png create mode 100644 Blockzilla/BlockerEnabledDetector.swift create mode 100644 Blockzilla/Blockzilla.entitlements create mode 100644 Blockzilla/ErrorFooterView.swift create mode 100644 Blockzilla/Info.plist create mode 100644 Blockzilla/IntroTour/InstructionsView.swift create mode 100644 Blockzilla/IntroTour/IntroAssets.xcassets/Contents.json create mode 100644 Blockzilla/IntroTour/IntroAssets.xcassets/enabled-no.imageset/Contents.json create mode 100644 Blockzilla/IntroTour/IntroAssets.xcassets/enabled-no.imageset/enabled-no.pdf create mode 100644 Blockzilla/IntroTour/IntroAssets.xcassets/enabled-yes.imageset/Contents.json create mode 100644 Blockzilla/IntroTour/IntroAssets.xcassets/enabled-yes.imageset/enabled-yes.pdf create mode 100644 Blockzilla/IntroTour/IntroAssets.xcassets/instructions-cog.imageset/Contents.json create mode 100644 Blockzilla/IntroTour/IntroAssets.xcassets/instructions-cog.imageset/instructions-cog.pdf create mode 100644 Blockzilla/IntroTour/IntroAssets.xcassets/instructions-safari.imageset/Contents.json create mode 100644 Blockzilla/IntroTour/IntroAssets.xcassets/instructions-safari.imageset/instructions-safari.pdf create mode 100644 Blockzilla/IntroTour/IntroAssets.xcassets/instructions-switch.imageset/Contents.json create mode 100644 Blockzilla/IntroTour/IntroAssets.xcassets/instructions-switch.imageset/instructions-switch.pdf create mode 100644 Blockzilla/IntroTour/IntroSlideFinish.swift create mode 100644 Blockzilla/IntroTour/IntroSlideHowTo.swift create mode 100644 Blockzilla/IntroTour/IntroSlideWelcome.swift create mode 100644 Blockzilla/IntroTour/IntroViewController.swift create mode 100644 Blockzilla/LaunchScreen.storyboard create mode 100644 Blockzilla/LocalWebServer/LocalWebServer.swift create mode 100644 Blockzilla/LocalWebServer/gpl.html create mode 100644 Blockzilla/LocalWebServer/licenses.html create mode 100644 Blockzilla/LocalWebServer/rights.html create mode 100644 Blockzilla/LocalWebServer/style.css create mode 100644 Blockzilla/MainHeaderView.swift create mode 100644 Blockzilla/MainViewController.swift create mode 100644 Blockzilla/TitleView.swift create mode 100644 Blockzilla/UIColorExtensions.swift create mode 100644 Blockzilla/UIConstants.swift create mode 100644 Blockzilla/UIViewExtensions.swift create mode 100644 Blockzilla/WaveView.swift create mode 100644 ContentBlocker/ActionRequestHandler.swift create mode 100644 ContentBlocker/ContentBlocker.entitlements create mode 100644 ContentBlocker/Info.plist create mode 100644 LICENSE create mode 100644 Lists/blocker-enabled-detector.json create mode 100644 Lists/web-fonts.json create mode 100644 README.md create mode 100644 SCSiriWaveformView/.gitignore create mode 100644 SCSiriWaveformView/Demo/SCSiriWaveformView.xcodeproj/project.pbxproj create mode 100644 SCSiriWaveformView/Demo/SCSiriWaveformView/Base.lproj/Main_iPad.storyboard create mode 100644 SCSiriWaveformView/Demo/SCSiriWaveformView/Main_iPhone.storyboard create mode 100644 SCSiriWaveformView/Demo/SCSiriWaveformView/SCAppDelegate.h create mode 100644 SCSiriWaveformView/Demo/SCSiriWaveformView/SCAppDelegate.m create mode 100644 SCSiriWaveformView/Demo/SCSiriWaveformView/SCSiriWaveformView-Info.plist create mode 100644 SCSiriWaveformView/Demo/SCSiriWaveformView/SCViewController.h create mode 100644 SCSiriWaveformView/Demo/SCSiriWaveformView/SCViewController.m create mode 100644 SCSiriWaveformView/Demo/SCSiriWaveformView/main.m create mode 100644 SCSiriWaveformView/Demo/SCSiriWaveformView/sample.m4a create mode 100644 SCSiriWaveformView/LICENSE create mode 100644 SCSiriWaveformView/README.md create mode 100644 SCSiriWaveformView/SCSiriWaveformView.podspec create mode 100755 SCSiriWaveformView/SCSiriWaveformView/SCSiriWaveformView.h create mode 100755 SCSiriWaveformView/SCSiriWaveformView/SCSiriWaveformView.m create mode 100644 Shared/Settings.swift create mode 100755 build-disconnect.py create mode 100755 checkout.sh create mode 100644 shavar-prod-lists/README.md create mode 100644 shavar-prod-lists/disconnect-blacklist.json create mode 100644 shavar-prod-lists/disconnect-entitylist.json create mode 100644 shavar-prod-lists/google_mapping.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000..752f50bef0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,30 @@ +# Xcode +build/ +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +xcuserdata +*.xccheckout +*.moved-aside +DerivedData +*.hmap +*.ipa +*.xcuserstate +*.xcscmblueprint + +# OS X +.DS_Store + +# Vim +*~ +.*.sw* + +# IDEA +.idea + +Lists/disconnect-* diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000000..7d4fa101dc --- /dev/null +++ b/.gitmodules @@ -0,0 +1,6 @@ +[submodule "SnapKit"] + path = SnapKit + url = https://github.com/SnapKit/SnapKit.git +[submodule "GCDWebServer"] + path = GCDWebServer + url = https://github.com/swisspol/GCDWebServer.git diff --git a/Blockzilla-Bridging-Header.h b/Blockzilla-Bridging-Header.h new file mode 100644 index 0000000000..ce8fb867e2 --- /dev/null +++ b/Blockzilla-Bridging-Header.h @@ -0,0 +1,2 @@ + +#import "SCSiriWaveformView/SCSiriWaveformView/SCSiriWaveformView.h" \ No newline at end of file diff --git a/Blockzilla.xcodeproj/project.pbxproj b/Blockzilla.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..e9cd8d71ae --- /dev/null +++ b/Blockzilla.xcodeproj/project.pbxproj @@ -0,0 +1,811 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 6616A36F1BD17EFA00C7E493 /* style.css in Resources */ = {isa = PBXBuildFile; fileRef = 6616A36E1BD17EFA00C7E493 /* style.css */; }; + D30179071BC6CB19009AD388 /* BlockerEnabledDetector.swift in Sources */ = {isa = PBXBuildFile; fileRef = D30179061BC6CB19009AD388 /* BlockerEnabledDetector.swift */; }; + D30179211BC6D26B009AD388 /* GCDWebServers.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = D301791B1BC6D222009AD388 /* GCDWebServers.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + D30179C11BCC67FE009AD388 /* ErrorFooterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D30179C01BCC67FE009AD388 /* ErrorFooterView.swift */; }; + D30179C31BCC6F65009AD388 /* AboutViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D30179C21BCC6F65009AD388 /* AboutViewController.swift */; }; + D30179C81BCD78E2009AD388 /* SCSiriWaveformView.m in Sources */ = {isa = PBXBuildFile; fileRef = D30179C71BCD78E2009AD388 /* SCSiriWaveformView.m */; }; + D32817221BD0689800185845 /* disconnect-advertising.json in Resources */ = {isa = PBXBuildFile; fileRef = D328171E1BD0689800185845 /* disconnect-advertising.json */; }; + D32817231BD0689800185845 /* disconnect-analytics.json in Resources */ = {isa = PBXBuildFile; fileRef = D328171F1BD0689800185845 /* disconnect-analytics.json */; }; + D32817241BD0689800185845 /* disconnect-content.json in Resources */ = {isa = PBXBuildFile; fileRef = D32817201BD0689800185845 /* disconnect-content.json */; }; + D32817251BD0689800185845 /* disconnect-social.json in Resources */ = {isa = PBXBuildFile; fileRef = D32817211BD0689800185845 /* disconnect-social.json */; }; + D32F71D31BCEF67C006D44FC /* UIViewExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D32F71D21BCEF67C006D44FC /* UIViewExtensions.swift */; }; + D33A1AB11BC48FAC0003D929 /* MainViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D33A1AB01BC48FAC0003D929 /* MainViewController.swift */; }; + D37DE5451BCDB7EF00906364 /* IntroViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D37DE5441BCDB7EF00906364 /* IntroViewController.swift */; }; + D37DE5471BCDB80B00906364 /* InstructionsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D37DE5461BCDB80B00906364 /* InstructionsView.swift */; }; + D37DE5491BCDB82B00906364 /* IntroSlideWelcome.swift in Sources */ = {isa = PBXBuildFile; fileRef = D37DE5481BCDB82B00906364 /* IntroSlideWelcome.swift */; }; + D37DE54B1BCDB84600906364 /* IntroSlideHowTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = D37DE54A1BCDB84600906364 /* IntroSlideHowTo.swift */; }; + D37DE54D1BCDB86100906364 /* IntroSlideFinish.swift in Sources */ = {isa = PBXBuildFile; fileRef = D37DE54C1BCDB86100906364 /* IntroSlideFinish.swift */; }; + D37DE54F1BCDB8D500906364 /* IntroAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D37DE54E1BCDB8D500906364 /* IntroAssets.xcassets */; }; + D37DE55D1BCDBD6100906364 /* WaveView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D37DE55C1BCDBD6100906364 /* WaveView.swift */; }; + D392881D1BC5CF180016A9A0 /* UIColorExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D392881C1BC5CF180016A9A0 /* UIColorExtensions.swift */; }; + D39288761BC5D1D40016A9A0 /* SnapKit.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = D392886C1BC5D1670016A9A0 /* SnapKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + D392887D1BC5E4510016A9A0 /* MainHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D392887C1BC5E4510016A9A0 /* MainHeaderView.swift */; }; + D392887F1BC5E47E0016A9A0 /* UIConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = D392887E1BC5E47E0016A9A0 /* UIConstants.swift */; }; + D3B3232D1BD16A0F00B0EEE4 /* gpl.html in Resources */ = {isa = PBXBuildFile; fileRef = D3B3232B1BD16A0F00B0EEE4 /* gpl.html */; }; + D3B3232E1BD16A0F00B0EEE4 /* licenses.html in Resources */ = {isa = PBXBuildFile; fileRef = D3B3232C1BD16A0F00B0EEE4 /* licenses.html */; }; + D3B323521BD1A7EE00B0EEE4 /* web-fonts.json in Resources */ = {isa = PBXBuildFile; fileRef = D3B323511BD1A7EE00B0EEE4 /* web-fonts.json */; }; + D3BFCB3F1BD14F5900AD22D1 /* LocalWebServer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3BFCB3E1BD14F5900AD22D1 /* LocalWebServer.swift */; }; + D3BFCB511BD1559300AD22D1 /* AboutContentViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3BFCB501BD1559300AD22D1 /* AboutContentViewController.swift */; }; + D3BFCB5B1BD15CD000AD22D1 /* rights.html in Resources */ = {isa = PBXBuildFile; fileRef = D3BFCB5A1BD15CD000AD22D1 /* rights.html */; }; + D3C0EEF11BE97D9300BD89C1 /* TitleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3C0EEF01BE97D9300BD89C1 /* TitleView.swift */; }; + D3C0EEFD1BE97F9300BD89C1 /* blocker-enabled-detector.json in Resources */ = {isa = PBXBuildFile; fileRef = D3C0EEFC1BE97F9300BD89C1 /* blocker-enabled-detector.json */; }; + E4BF2DD71BACE8CA00DA9D68 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4BF2DD61BACE8CA00DA9D68 /* AppDelegate.swift */; }; + E4BF2DDE1BACE8CA00DA9D68 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E4BF2DDD1BACE8CA00DA9D68 /* Assets.xcassets */; }; + E4BF2DF11BACE92400DA9D68 /* ActionRequestHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4BF2DF01BACE92400DA9D68 /* ActionRequestHandler.swift */; }; + E4BF2DF51BACE92400DA9D68 /* ContentBlocker.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = E4BF2DEC1BACE92400DA9D68 /* ContentBlocker.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + E4BF2E111BAD8AC500DA9D68 /* Settings.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4BF2E101BAD8AC500DA9D68 /* Settings.swift */; }; + E4BF2E121BAD8AC500DA9D68 /* Settings.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4BF2E101BAD8AC500DA9D68 /* Settings.swift */; }; + E4BF2E141BAE324400DA9D68 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = E4BF2E131BAE324400DA9D68 /* LaunchScreen.storyboard */; }; + E4BF2E151BAE324400DA9D68 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = E4BF2E131BAE324400DA9D68 /* LaunchScreen.storyboard */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + D30179141BC6D222009AD388 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D301790B1BC6D222009AD388 /* GCDWebServer.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 8DD76FB20486AB0100D96B5E; + remoteInfo = "GCDWebServer (Mac)"; + }; + D30179161BC6D222009AD388 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D301790B1BC6D222009AD388 /* GCDWebServer.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = E221125A1690B4DE0048D2B2; + remoteInfo = "GCDWebServer (iOS)"; + }; + D30179181BC6D222009AD388 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D301790B1BC6D222009AD388 /* GCDWebServer.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = CEE28CD11AE004D800F4023C; + remoteInfo = "GCDWebServers (Mac)"; + }; + D301791A1BC6D222009AD388 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D301790B1BC6D222009AD388 /* GCDWebServer.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = CEE28CEF1AE0051F00F4023C; + remoteInfo = "GCDWebServers (iOS)"; + }; + D301791C1BC6D222009AD388 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D301790B1BC6D222009AD388 /* GCDWebServer.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = E24039251BA09207000B7089; + remoteInfo = "Tests (Mac)"; + }; + D301791E1BC6D24A009AD388 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D301790B1BC6D222009AD388 /* GCDWebServer.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = CEE28CEE1AE0051F00F4023C; + remoteInfo = "GCDWebServers (iOS)"; + }; + D392886B1BC5D1670016A9A0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D39288641BC5D1670016A9A0 /* SnapKit.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = EEBCC9D819CC627D0083B827; + remoteInfo = "SnapKit iOS"; + }; + D392886D1BC5D1670016A9A0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D39288641BC5D1670016A9A0 /* SnapKit.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = EECDB37A1AC0C9D4006BBC11; + remoteInfo = "SnapKit OSX"; + }; + D392886F1BC5D1670016A9A0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D39288641BC5D1670016A9A0 /* SnapKit.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = EEBCC9E219CC627E0083B827; + remoteInfo = "SnapKit iOS Tests"; + }; + D39288711BC5D1670016A9A0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D39288641BC5D1670016A9A0 /* SnapKit.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = EECDB3841AC0C9D4006BBC11; + remoteInfo = "SnapKit OSX Tests"; + }; + D39288731BC5D1B50016A9A0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D39288641BC5D1670016A9A0 /* SnapKit.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = EEBCC9D719CC627D0083B827; + remoteInfo = "SnapKit iOS"; + }; + E4BF2DF31BACE92400DA9D68 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = E4BF2DCB1BACE8CA00DA9D68 /* Project object */; + proxyType = 1; + remoteGlobalIDString = E4BF2DEB1BACE92400DA9D68; + remoteInfo = ContentBlocker; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + D39288751BC5D1BF0016A9A0 /* Copy Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + D30179211BC6D26B009AD388 /* GCDWebServers.framework in Copy Frameworks */, + D39288761BC5D1D40016A9A0 /* SnapKit.framework in Copy Frameworks */, + ); + name = "Copy Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + E4BF2DF91BACE92400DA9D68 /* Embed App Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 13; + files = ( + E4BF2DF51BACE92400DA9D68 /* ContentBlocker.appex in Embed App Extensions */, + ); + name = "Embed App Extensions"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 6616A36E1BD17EFA00C7E493 /* style.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = style.css; sourceTree = ""; }; + D30179061BC6CB19009AD388 /* BlockerEnabledDetector.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BlockerEnabledDetector.swift; sourceTree = ""; }; + D301790B1BC6D222009AD388 /* GCDWebServer.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = GCDWebServer.xcodeproj; path = GCDWebServer/GCDWebServer.xcodeproj; sourceTree = ""; }; + D30179C01BCC67FE009AD388 /* ErrorFooterView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ErrorFooterView.swift; sourceTree = ""; }; + D30179C21BCC6F65009AD388 /* AboutViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AboutViewController.swift; sourceTree = ""; }; + D30179C51BCD78E1009AD388 /* Blockzilla-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Blockzilla-Bridging-Header.h"; sourceTree = SOURCE_ROOT; }; + D30179C61BCD78E2009AD388 /* SCSiriWaveformView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SCSiriWaveformView.h; path = SCSiriWaveformView/SCSiriWaveformView/SCSiriWaveformView.h; sourceTree = ""; }; + D30179C71BCD78E2009AD388 /* SCSiriWaveformView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SCSiriWaveformView.m; path = SCSiriWaveformView/SCSiriWaveformView/SCSiriWaveformView.m; sourceTree = ""; }; + D328171E1BD0689800185845 /* disconnect-advertising.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = "disconnect-advertising.json"; path = "Lists/disconnect-advertising.json"; sourceTree = SOURCE_ROOT; }; + D328171F1BD0689800185845 /* disconnect-analytics.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = "disconnect-analytics.json"; path = "Lists/disconnect-analytics.json"; sourceTree = SOURCE_ROOT; }; + D32817201BD0689800185845 /* disconnect-content.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = "disconnect-content.json"; path = "Lists/disconnect-content.json"; sourceTree = SOURCE_ROOT; }; + D32817211BD0689800185845 /* disconnect-social.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = "disconnect-social.json"; path = "Lists/disconnect-social.json"; sourceTree = SOURCE_ROOT; }; + D32F71D21BCEF67C006D44FC /* UIViewExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIViewExtensions.swift; sourceTree = ""; }; + D33A1AB01BC48FAC0003D929 /* MainViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainViewController.swift; sourceTree = ""; }; + D37DE5441BCDB7EF00906364 /* IntroViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IntroViewController.swift; sourceTree = ""; }; + D37DE5461BCDB80B00906364 /* InstructionsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InstructionsView.swift; sourceTree = ""; }; + D37DE5481BCDB82B00906364 /* IntroSlideWelcome.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IntroSlideWelcome.swift; sourceTree = ""; }; + D37DE54A1BCDB84600906364 /* IntroSlideHowTo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IntroSlideHowTo.swift; sourceTree = ""; }; + D37DE54C1BCDB86100906364 /* IntroSlideFinish.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IntroSlideFinish.swift; sourceTree = ""; }; + D37DE54E1BCDB8D500906364 /* IntroAssets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = IntroAssets.xcassets; sourceTree = ""; }; + D37DE55C1BCDBD6100906364 /* WaveView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WaveView.swift; sourceTree = ""; }; + D392881C1BC5CF180016A9A0 /* UIColorExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIColorExtensions.swift; sourceTree = ""; }; + D39288641BC5D1670016A9A0 /* SnapKit.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SnapKit.xcodeproj; path = SnapKit/SnapKit.xcodeproj; sourceTree = ""; }; + D392887C1BC5E4510016A9A0 /* MainHeaderView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainHeaderView.swift; sourceTree = ""; }; + D392887E1BC5E47E0016A9A0 /* UIConstants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIConstants.swift; sourceTree = ""; }; + D3B3232B1BD16A0F00B0EEE4 /* gpl.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = gpl.html; sourceTree = ""; }; + D3B3232C1BD16A0F00B0EEE4 /* licenses.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = licenses.html; sourceTree = ""; }; + D3B323511BD1A7EE00B0EEE4 /* web-fonts.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = "web-fonts.json"; path = "Lists/web-fonts.json"; sourceTree = SOURCE_ROOT; }; + D3BFCB3E1BD14F5900AD22D1 /* LocalWebServer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LocalWebServer.swift; sourceTree = ""; }; + D3BFCB501BD1559300AD22D1 /* AboutContentViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AboutContentViewController.swift; sourceTree = ""; }; + D3BFCB5A1BD15CD000AD22D1 /* rights.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = rights.html; sourceTree = ""; }; + D3C0EEF01BE97D9300BD89C1 /* TitleView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TitleView.swift; sourceTree = ""; }; + D3C0EEFC1BE97F9300BD89C1 /* blocker-enabled-detector.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = "blocker-enabled-detector.json"; path = "Lists/blocker-enabled-detector.json"; sourceTree = SOURCE_ROOT; }; + E4BF2DD31BACE8CA00DA9D68 /* Focus.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Focus.app; sourceTree = BUILT_PRODUCTS_DIR; }; + E4BF2DD61BACE8CA00DA9D68 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + E4BF2DDD1BACE8CA00DA9D68 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + E4BF2DE21BACE8CA00DA9D68 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + E4BF2DEC1BACE92400DA9D68 /* ContentBlocker.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = ContentBlocker.appex; sourceTree = BUILT_PRODUCTS_DIR; }; + E4BF2DF01BACE92400DA9D68 /* ActionRequestHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActionRequestHandler.swift; sourceTree = ""; }; + E4BF2DF21BACE92400DA9D68 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + E4BF2DFA1BACEEDE00DA9D68 /* Blockzilla.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = Blockzilla.entitlements; sourceTree = ""; }; + E4BF2DFB1BACEF1B00DA9D68 /* ContentBlocker.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = ContentBlocker.entitlements; sourceTree = ""; }; + E4BF2E101BAD8AC500DA9D68 /* Settings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Settings.swift; path = Shared/Settings.swift; sourceTree = SOURCE_ROOT; }; + E4BF2E131BAE324400DA9D68 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + E4BF2DD01BACE8CA00DA9D68 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E4BF2DE91BACE92400DA9D68 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D301790C1BC6D222009AD388 /* Products */ = { + isa = PBXGroup; + children = ( + D30179151BC6D222009AD388 /* GCDWebServer */, + D30179171BC6D222009AD388 /* GCDWebServer.app */, + D30179191BC6D222009AD388 /* GCDWebServers.framework */, + D301791B1BC6D222009AD388 /* GCDWebServers.framework */, + D301791D1BC6D222009AD388 /* Tests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + D30179C41BCD78BF009AD388 /* SCSiriWaveformView */ = { + isa = PBXGroup; + children = ( + D30179C61BCD78E2009AD388 /* SCSiriWaveformView.h */, + D30179C71BCD78E2009AD388 /* SCSiriWaveformView.m */, + ); + name = SCSiriWaveformView; + sourceTree = ""; + }; + D30179D31BCDA5EE009AD388 /* ThirdParty */ = { + isa = PBXGroup; + children = ( + D30179C41BCD78BF009AD388 /* SCSiriWaveformView */, + ); + name = ThirdParty; + sourceTree = ""; + }; + D33A1A391BC476D40003D929 /* Shared */ = { + isa = PBXGroup; + children = ( + E4BF2E101BAD8AC500DA9D68 /* Settings.swift */, + ); + name = Shared; + sourceTree = ""; + }; + D37DE5431BCDB7EF00906364 /* IntroTour */ = { + isa = PBXGroup; + children = ( + D37DE5441BCDB7EF00906364 /* IntroViewController.swift */, + D37DE5461BCDB80B00906364 /* InstructionsView.swift */, + D37DE5481BCDB82B00906364 /* IntroSlideWelcome.swift */, + D37DE54A1BCDB84600906364 /* IntroSlideHowTo.swift */, + D37DE54C1BCDB86100906364 /* IntroSlideFinish.swift */, + D37DE54E1BCDB8D500906364 /* IntroAssets.xcassets */, + ); + path = IntroTour; + sourceTree = ""; + }; + D39288651BC5D1670016A9A0 /* Products */ = { + isa = PBXGroup; + children = ( + D392886C1BC5D1670016A9A0 /* SnapKit.framework */, + D392886E1BC5D1670016A9A0 /* SnapKit.framework */, + D39288701BC5D1670016A9A0 /* SnapKit iOS Tests.xctest */, + D39288721BC5D1670016A9A0 /* SnapKit OSX Tests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + D3BFCB3D1BD14F4E00AD22D1 /* LocalWebServer */ = { + isa = PBXGroup; + children = ( + D3B3232B1BD16A0F00B0EEE4 /* gpl.html */, + D3B3232C1BD16A0F00B0EEE4 /* licenses.html */, + D3BFCB5A1BD15CD000AD22D1 /* rights.html */, + D3BFCB3E1BD14F5900AD22D1 /* LocalWebServer.swift */, + 6616A36E1BD17EFA00C7E493 /* style.css */, + ); + path = LocalWebServer; + sourceTree = ""; + }; + E4BF2DCA1BACE8CA00DA9D68 = { + isa = PBXGroup; + children = ( + D301790B1BC6D222009AD388 /* GCDWebServer.xcodeproj */, + D39288641BC5D1670016A9A0 /* SnapKit.xcodeproj */, + E4BF2DD51BACE8CA00DA9D68 /* Blockzilla */, + E4BF2DED1BACE92400DA9D68 /* ContentBlocker */, + E4BF2DD41BACE8CA00DA9D68 /* Products */, + D33A1A391BC476D40003D929 /* Shared */, + D30179D31BCDA5EE009AD388 /* ThirdParty */, + ); + sourceTree = ""; + }; + E4BF2DD41BACE8CA00DA9D68 /* Products */ = { + isa = PBXGroup; + children = ( + E4BF2DD31BACE8CA00DA9D68 /* Focus.app */, + E4BF2DEC1BACE92400DA9D68 /* ContentBlocker.appex */, + ); + name = Products; + sourceTree = ""; + }; + E4BF2DD51BACE8CA00DA9D68 /* Blockzilla */ = { + isa = PBXGroup; + children = ( + E4BF2DFA1BACEEDE00DA9D68 /* Blockzilla.entitlements */, + D30179C51BCD78E1009AD388 /* Blockzilla-Bridging-Header.h */, + E4BF2DE21BACE8CA00DA9D68 /* Info.plist */, + E4BF2E131BAE324400DA9D68 /* LaunchScreen.storyboard */, + D3BFCB501BD1559300AD22D1 /* AboutContentViewController.swift */, + D30179C21BCC6F65009AD388 /* AboutViewController.swift */, + E4BF2DD61BACE8CA00DA9D68 /* AppDelegate.swift */, + D30179061BC6CB19009AD388 /* BlockerEnabledDetector.swift */, + D30179C01BCC67FE009AD388 /* ErrorFooterView.swift */, + D392887C1BC5E4510016A9A0 /* MainHeaderView.swift */, + D33A1AB01BC48FAC0003D929 /* MainViewController.swift */, + D3C0EEF01BE97D9300BD89C1 /* TitleView.swift */, + D392881C1BC5CF180016A9A0 /* UIColorExtensions.swift */, + D392887E1BC5E47E0016A9A0 /* UIConstants.swift */, + D32F71D21BCEF67C006D44FC /* UIViewExtensions.swift */, + D37DE55C1BCDBD6100906364 /* WaveView.swift */, + E4BF2DDD1BACE8CA00DA9D68 /* Assets.xcassets */, + D37DE5431BCDB7EF00906364 /* IntroTour */, + D3BFCB3D1BD14F4E00AD22D1 /* LocalWebServer */, + ); + path = Blockzilla; + sourceTree = ""; + }; + E4BF2DED1BACE92400DA9D68 /* ContentBlocker */ = { + isa = PBXGroup; + children = ( + E4BF2DFB1BACEF1B00DA9D68 /* ContentBlocker.entitlements */, + D3C0EEFC1BE97F9300BD89C1 /* blocker-enabled-detector.json */, + D328171E1BD0689800185845 /* disconnect-advertising.json */, + D328171F1BD0689800185845 /* disconnect-analytics.json */, + D32817201BD0689800185845 /* disconnect-content.json */, + D32817211BD0689800185845 /* disconnect-social.json */, + D3B323511BD1A7EE00B0EEE4 /* web-fonts.json */, + E4BF2DF21BACE92400DA9D68 /* Info.plist */, + E4BF2DF01BACE92400DA9D68 /* ActionRequestHandler.swift */, + ); + path = ContentBlocker; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + E4BF2DD21BACE8CA00DA9D68 /* Focus */ = { + isa = PBXNativeTarget; + buildConfigurationList = E4BF2DE51BACE8CA00DA9D68 /* Build configuration list for PBXNativeTarget "Focus" */; + buildPhases = ( + E4BF2DCF1BACE8CA00DA9D68 /* Sources */, + E4BF2DD01BACE8CA00DA9D68 /* Frameworks */, + E4BF2DD11BACE8CA00DA9D68 /* Resources */, + E4BF2DF91BACE92400DA9D68 /* Embed App Extensions */, + D39288751BC5D1BF0016A9A0 /* Copy Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + D301791F1BC6D24A009AD388 /* PBXTargetDependency */, + D39288741BC5D1B50016A9A0 /* PBXTargetDependency */, + E4BF2DF41BACE92400DA9D68 /* PBXTargetDependency */, + ); + name = Focus; + productName = Blockzilla; + productReference = E4BF2DD31BACE8CA00DA9D68 /* Focus.app */; + productType = "com.apple.product-type.application"; + }; + E4BF2DEB1BACE92400DA9D68 /* ContentBlocker */ = { + isa = PBXNativeTarget; + buildConfigurationList = E4BF2DF61BACE92400DA9D68 /* Build configuration list for PBXNativeTarget "ContentBlocker" */; + buildPhases = ( + E4BF2DE81BACE92400DA9D68 /* Sources */, + E4BF2DE91BACE92400DA9D68 /* Frameworks */, + E4BF2DEA1BACE92400DA9D68 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = ContentBlocker; + productName = ContentBlocker; + productReference = E4BF2DEC1BACE92400DA9D68 /* ContentBlocker.appex */; + productType = "com.apple.product-type.app-extension"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + E4BF2DCB1BACE8CA00DA9D68 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0700; + LastUpgradeCheck = 0700; + ORGANIZATIONNAME = "Stefan Arentz"; + TargetAttributes = { + E4BF2DD21BACE8CA00DA9D68 = { + CreatedOnToolsVersion = 7.0; + DevelopmentTeam = 43AQ936H96; + SystemCapabilities = { + com.apple.ApplicationGroups.iOS = { + enabled = 1; + }; + }; + }; + E4BF2DEB1BACE92400DA9D68 = { + CreatedOnToolsVersion = 7.0; + DevelopmentTeam = 43AQ936H96; + SystemCapabilities = { + com.apple.ApplicationGroups.iOS = { + enabled = 1; + }; + }; + }; + }; + }; + buildConfigurationList = E4BF2DCE1BACE8CA00DA9D68 /* Build configuration list for PBXProject "Blockzilla" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = E4BF2DCA1BACE8CA00DA9D68; + productRefGroup = E4BF2DD41BACE8CA00DA9D68 /* Products */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = D301790C1BC6D222009AD388 /* Products */; + ProjectRef = D301790B1BC6D222009AD388 /* GCDWebServer.xcodeproj */; + }, + { + ProductGroup = D39288651BC5D1670016A9A0 /* Products */; + ProjectRef = D39288641BC5D1670016A9A0 /* SnapKit.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + E4BF2DD21BACE8CA00DA9D68 /* Focus */, + E4BF2DEB1BACE92400DA9D68 /* ContentBlocker */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + D30179151BC6D222009AD388 /* GCDWebServer */ = { + isa = PBXReferenceProxy; + fileType = "compiled.mach-o.executable"; + path = GCDWebServer; + remoteRef = D30179141BC6D222009AD388 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + D30179171BC6D222009AD388 /* GCDWebServer.app */ = { + isa = PBXReferenceProxy; + fileType = wrapper.application; + path = GCDWebServer.app; + remoteRef = D30179161BC6D222009AD388 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + D30179191BC6D222009AD388 /* GCDWebServers.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = GCDWebServers.framework; + remoteRef = D30179181BC6D222009AD388 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + D301791B1BC6D222009AD388 /* GCDWebServers.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = GCDWebServers.framework; + remoteRef = D301791A1BC6D222009AD388 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + D301791D1BC6D222009AD388 /* Tests.xctest */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = Tests.xctest; + remoteRef = D301791C1BC6D222009AD388 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + D392886C1BC5D1670016A9A0 /* SnapKit.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = SnapKit.framework; + remoteRef = D392886B1BC5D1670016A9A0 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + D392886E1BC5D1670016A9A0 /* SnapKit.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = SnapKit.framework; + remoteRef = D392886D1BC5D1670016A9A0 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + D39288701BC5D1670016A9A0 /* SnapKit iOS Tests.xctest */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = "SnapKit iOS Tests.xctest"; + remoteRef = D392886F1BC5D1670016A9A0 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + D39288721BC5D1670016A9A0 /* SnapKit OSX Tests.xctest */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = "SnapKit OSX Tests.xctest"; + remoteRef = D39288711BC5D1670016A9A0 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + E4BF2DD11BACE8CA00DA9D68 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D3B3232E1BD16A0F00B0EEE4 /* licenses.html in Resources */, + E4BF2DDE1BACE8CA00DA9D68 /* Assets.xcassets in Resources */, + 6616A36F1BD17EFA00C7E493 /* style.css in Resources */, + D37DE54F1BCDB8D500906364 /* IntroAssets.xcassets in Resources */, + D3B3232D1BD16A0F00B0EEE4 /* gpl.html in Resources */, + E4BF2E141BAE324400DA9D68 /* LaunchScreen.storyboard in Resources */, + D3BFCB5B1BD15CD000AD22D1 /* rights.html in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E4BF2DEA1BACE92400DA9D68 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D3C0EEFD1BE97F9300BD89C1 /* blocker-enabled-detector.json in Resources */, + D32817251BD0689800185845 /* disconnect-social.json in Resources */, + D32817231BD0689800185845 /* disconnect-analytics.json in Resources */, + D32817221BD0689800185845 /* disconnect-advertising.json in Resources */, + D32817241BD0689800185845 /* disconnect-content.json in Resources */, + E4BF2E151BAE324400DA9D68 /* LaunchScreen.storyboard in Resources */, + D3B323521BD1A7EE00B0EEE4 /* web-fonts.json in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + E4BF2DCF1BACE8CA00DA9D68 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D30179C11BCC67FE009AD388 /* ErrorFooterView.swift in Sources */, + D3BFCB3F1BD14F5900AD22D1 /* LocalWebServer.swift in Sources */, + D37DE5491BCDB82B00906364 /* IntroSlideWelcome.swift in Sources */, + E4BF2E111BAD8AC500DA9D68 /* Settings.swift in Sources */, + D30179C81BCD78E2009AD388 /* SCSiriWaveformView.m in Sources */, + D37DE5451BCDB7EF00906364 /* IntroViewController.swift in Sources */, + D30179C31BCC6F65009AD388 /* AboutViewController.swift in Sources */, + D30179071BC6CB19009AD388 /* BlockerEnabledDetector.swift in Sources */, + D37DE55D1BCDBD6100906364 /* WaveView.swift in Sources */, + E4BF2DD71BACE8CA00DA9D68 /* AppDelegate.swift in Sources */, + D33A1AB11BC48FAC0003D929 /* MainViewController.swift in Sources */, + D392881D1BC5CF180016A9A0 /* UIColorExtensions.swift in Sources */, + D37DE54B1BCDB84600906364 /* IntroSlideHowTo.swift in Sources */, + D392887D1BC5E4510016A9A0 /* MainHeaderView.swift in Sources */, + D392887F1BC5E47E0016A9A0 /* UIConstants.swift in Sources */, + D37DE5471BCDB80B00906364 /* InstructionsView.swift in Sources */, + D32F71D31BCEF67C006D44FC /* UIViewExtensions.swift in Sources */, + D3BFCB511BD1559300AD22D1 /* AboutContentViewController.swift in Sources */, + D37DE54D1BCDB86100906364 /* IntroSlideFinish.swift in Sources */, + D3C0EEF11BE97D9300BD89C1 /* TitleView.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E4BF2DE81BACE92400DA9D68 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + E4BF2E121BAD8AC500DA9D68 /* Settings.swift in Sources */, + E4BF2DF11BACE92400DA9D68 /* ActionRequestHandler.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + D301791F1BC6D24A009AD388 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "GCDWebServers (iOS)"; + targetProxy = D301791E1BC6D24A009AD388 /* PBXContainerItemProxy */; + }; + D39288741BC5D1B50016A9A0 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "SnapKit iOS"; + targetProxy = D39288731BC5D1B50016A9A0 /* PBXContainerItemProxy */; + }; + E4BF2DF41BACE92400DA9D68 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = E4BF2DEB1BACE92400DA9D68 /* ContentBlocker */; + targetProxy = E4BF2DF31BACE92400DA9D68 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + E4BF2DE31BACE8CA00DA9D68 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + E4BF2DE41BACE8CA00DA9D68 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + E4BF2DE61BACE8CA00DA9D68 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Blockzilla/Blockzilla.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + EMBEDDED_CONTENT_CONTAINS_SWIFT = YES; + INFOPLIST_FILE = Blockzilla/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = org.mozilla.ios.Focus; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + SWIFT_OBJC_BRIDGING_HEADER = "Blockzilla-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VALID_ARCHS = arm64; + }; + name = Debug; + }; + E4BF2DE71BACE8CA00DA9D68 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Blockzilla/Blockzilla.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + EMBEDDED_CONTENT_CONTAINS_SWIFT = YES; + INFOPLIST_FILE = Blockzilla/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = org.mozilla.ios.Focus; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + SWIFT_OBJC_BRIDGING_HEADER = "Blockzilla-Bridging-Header.h"; + VALID_ARCHS = arm64; + }; + name = Release; + }; + E4BF2DF71BACE92400DA9D68 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD)"; + CODE_SIGN_ENTITLEMENTS = ContentBlocker/ContentBlocker.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + INFOPLIST_FILE = ContentBlocker/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = org.mozilla.ios.Focus.ContentBlocker; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + SKIP_INSTALL = YES; + VALID_ARCHS = arm64; + }; + name = Debug; + }; + E4BF2DF81BACE92400DA9D68 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD)"; + CODE_SIGN_ENTITLEMENTS = ContentBlocker/ContentBlocker.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + INFOPLIST_FILE = ContentBlocker/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = org.mozilla.ios.Focus.ContentBlocker; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + SKIP_INSTALL = YES; + VALID_ARCHS = arm64; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + E4BF2DCE1BACE8CA00DA9D68 /* Build configuration list for PBXProject "Blockzilla" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + E4BF2DE31BACE8CA00DA9D68 /* Debug */, + E4BF2DE41BACE8CA00DA9D68 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + E4BF2DE51BACE8CA00DA9D68 /* Build configuration list for PBXNativeTarget "Focus" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + E4BF2DE61BACE8CA00DA9D68 /* Debug */, + E4BF2DE71BACE8CA00DA9D68 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + E4BF2DF61BACE92400DA9D68 /* Build configuration list for PBXNativeTarget "ContentBlocker" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + E4BF2DF71BACE92400DA9D68 /* Debug */, + E4BF2DF81BACE92400DA9D68 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = E4BF2DCB1BACE8CA00DA9D68 /* Project object */; +} diff --git a/Blockzilla.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Blockzilla.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000000..f4701f1912 --- /dev/null +++ b/Blockzilla.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Blockzilla/AboutContentViewController.swift b/Blockzilla/AboutContentViewController.swift new file mode 100644 index 0000000000..300598285e --- /dev/null +++ b/Blockzilla/AboutContentViewController.swift @@ -0,0 +1,47 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +import Foundation +import SnapKit +import UIKit +import WebKit + +class AboutContentViewController: UIViewController, WKNavigationDelegate { + var url: NSURL! + private var webView: WKWebView! + + override func viewDidLoad() { + super.viewDidLoad() + + view.backgroundColor = UIConstants.Colors.Background + + webView = WKWebView() + webView.alpha = 0 + view.addSubview(webView) + + webView.snp_remakeConstraints { make in + make.edges.equalTo(self.view) + } + + webView.navigationDelegate = self + webView.loadRequest(NSURLRequest(URL: url)) + } + + override func viewWillAppear(animated: Bool) { + navigationController?.setNavigationBarHidden(false, animated: true) + super.viewWillAppear(animated) + } + + override func preferredStatusBarStyle() -> UIStatusBarStyle { + return UIStatusBarStyle.LightContent + } + + func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) { + // Add a small delay to allow the stylesheets to load and avoid flicker. + let delayTime = dispatch_time(DISPATCH_TIME_NOW, Int64(200 * Double(NSEC_PER_MSEC))) + dispatch_after(delayTime, dispatch_get_main_queue()) { + webView.animateHidden(false, duration: 0.3) + } + } +} diff --git a/Blockzilla/AboutViewController.swift b/Blockzilla/AboutViewController.swift new file mode 100644 index 0000000000..5ac57fb9b7 --- /dev/null +++ b/Blockzilla/AboutViewController.swift @@ -0,0 +1,264 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +import Foundation +import UIKit + +protocol AboutViewControllerDelegate: class { + func aboutViewControllerDidPressIntro(aboutViewController: AboutViewController) +} + +class AboutViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, AboutHeaderViewDelegate { + weak var delegate: AboutViewControllerDelegate? + + private let tableView = UITableView() + private let headerView = AboutHeaderView() + + override func viewDidLoad() { + view.backgroundColor = UIConstants.Colors.Background + + headerView.delegate = self + + let aboutLabel = UILabel() + aboutLabel.text = NSLocalizedString("About", comment: "Title for the About screen") + aboutLabel.textColor = UIConstants.Colors.NavigationTitle + aboutLabel.font = UIConstants.Fonts.DefaultFontMedium + view.addSubview(aboutLabel) + + let doneButton = UIButton() + doneButton.setTitle(NSLocalizedString("Done", comment: "Button at top of app that goes to the About screen"), forState: UIControlState.Normal) + doneButton.setTitleColor(UIConstants.Colors.FocusBlue, forState: UIControlState.Normal) + doneButton.setTitleColor(UIConstants.Colors.ButtonHighlightedColor, forState: UIControlState.Highlighted) + doneButton.addTarget(self, action: "doneClicked:", forControlEvents: UIControlEvents.TouchUpInside) + doneButton.titleLabel?.font = UIConstants.Fonts.DefaultFontSemibold + view.addSubview(doneButton) + + view.addSubview(tableView) + + aboutLabel.snp_makeConstraints { make in + make.top.equalTo(self.view).offset(30) + make.centerX.equalTo(self.view) + } + + doneButton.snp_makeConstraints { make in + make.centerY.equalTo(aboutLabel) + make.trailing.equalTo(self.view).offset(UIConstants.Layout.NavigationDoneOffset) + } + + tableView.snp_makeConstraints { make in + make.top.equalTo(aboutLabel.snp_bottom) + make.leading.trailing.bottom.equalTo(self.view) + } + + tableView.dataSource = self + tableView.delegate = self + tableView.backgroundColor = UIConstants.Colors.Background + tableView.layoutMargins = UIEdgeInsetsZero + tableView.separatorColor = UIColor(rgb: 0x333333) + tableView.estimatedRowHeight = 44 + + // Don't show trailing rows. + tableView.tableFooterView = UIView(frame: CGRectZero) + } + + override func preferredStatusBarStyle() -> UIStatusBarStyle { + return UIStatusBarStyle.LightContent + } + + override func viewWillAppear(animated: Bool) { + navigationController?.setNavigationBarHidden(true, animated: true) + super.viewWillAppear(animated) + } + + func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return 4 + } + + func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { + let cell = UITableViewCell() + switch indexPath.row { + case 0: + cell.contentView.addSubview(headerView) + headerView.snp_makeConstraints { make in + make.edges.equalTo(cell) + } + case 1: + cell.textLabel?.text = NSLocalizedString("Setup Instructions", comment: "Label in About screen") + cell.accessoryType = UITableViewCellAccessoryType.DisclosureIndicator + case 2: + cell.textLabel?.text = NSLocalizedString("Help", comment: "Label in About screen") + case 3: + cell.textLabel?.text = NSLocalizedString("Your Rights", comment: "Label in About screen") + default: + break + } + + cell.backgroundColor = UIConstants.Colors.Background + + let cellBG = UIView() + cellBG.backgroundColor = UIConstants.Colors.CellSelected + cell.selectedBackgroundView = cellBG + + cell.textLabel?.textColor = UIConstants.Colors.DefaultFont + cell.layoutMargins = UIEdgeInsetsZero + cell.separatorInset = UIEdgeInsetsZero + + return cell + } + + func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { + switch indexPath.row { + case 0: + // We ask for the height before we do a layout pass, so manually trigger a layout here + // so we can calculate the view's height. + headerView.layoutIfNeeded() + + return headerView.systemLayoutSizeFittingSize(UILayoutFittingCompressedSize).height + default: + break + } + + return 44 + } + + func tableView(tableView: UITableView, shouldHighlightRowAtIndexPath indexPath: NSIndexPath) -> Bool { + return indexPath.row != 0 + } + + func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { + + switch indexPath.row { + case 1: + dismissViewControllerAnimated(true, completion: nil) + delegate?.aboutViewControllerDidPressIntro(self) + case 2: + let contentViewController = AboutContentViewController() + contentViewController.url = NSURL(string: "https://support.mozilla.org/en-US/kb/focus") + navigationController?.pushViewController(contentViewController, animated: true) + case 3: + let contentViewController = AboutContentViewController() + contentViewController.url = LocalWebServer.sharedInstance.URLForPath("/rights.html") + navigationController?.pushViewController(contentViewController, animated: true) + default: + break + } + + tableView.deselectRowAtIndexPath(indexPath, animated: false) + } + + @objc func doneClicked(sender: UIButton) { + dismissViewControllerAnimated(true, completion: nil) + } + + private func aboutHeaderViewDidPressReadMore(aboutHeaderView: AboutHeaderView) { + let contentViewController = AboutContentViewController() + contentViewController.url = NSURL(string: "https://www.mozilla.org/en-US/about/manifesto/") + navigationController?.pushViewController(contentViewController, animated: true) + } +} + +class AboutNavigationController: UINavigationController { + override func preferredStatusBarStyle() -> UIStatusBarStyle { + return UIStatusBarStyle.LightContent + } + + override func viewDidLoad() { + navigationBar.barTintColor = UIConstants.Colors.Background + navigationBar.translucent = false + navigationBar.tintColor = UIConstants.Colors.FocusBlue + } +} + +private protocol AboutHeaderViewDelegate: class { + func aboutHeaderViewDidPressReadMore(aboutHeaderView: AboutHeaderView) +} + +private class AboutHeaderView: UIView { + weak var delegate: AboutHeaderViewDelegate? + + init() { + super.init(frame: CGRectZero) + + let logo = UIImageView(image: UIImage(named: "Logo")) + addSubview(logo) + + let descriptionLabel1 = UILabel() + descriptionLabel1.text = NSLocalizedString("Focus puts you in control and brings added privacy and performance to your mobile browsing experience.", comment: "About copy on the about page") + descriptionLabel1.textColor = UIConstants.Colors.DefaultFont + descriptionLabel1.font = descriptionLabel1.font.fontWithSize(14) + descriptionLabel1.numberOfLines = 0 + descriptionLabel1.textAlignment = NSTextAlignment.Center + addSubview(descriptionLabel1) + + let descriptionLabel2 = UILabel() + descriptionLabel2.text = NSLocalizedString("Focus is produced by Mozilla, the people behind the Firefox Web browser.", comment: "About copy on the about page") + descriptionLabel2.textColor = UIConstants.Colors.DefaultFont + descriptionLabel2.font = descriptionLabel2.font.fontWithSize(14) + descriptionLabel2.numberOfLines = 0 + descriptionLabel2.textAlignment = NSTextAlignment.Center + addSubview(descriptionLabel2) + + let descriptionLabel3 = UILabel() + descriptionLabel3.text = NSLocalizedString("Our mission is to foster a healthy, open Internet.", comment: "About copy on the about page") + descriptionLabel3.textColor = UIConstants.Colors.DefaultFont + descriptionLabel3.font = descriptionLabel3.font.fontWithSize(14) + descriptionLabel3.numberOfLines = 0 + descriptionLabel3.textAlignment = NSTextAlignment.Center + addSubview(descriptionLabel3) + + let readMoreButton = UIButton() + readMoreButton.setTitle(NSLocalizedString("Read more.", comment: "Button on the about page"), forState: UIControlState.Normal) + readMoreButton.setTitleColor(UIConstants.Colors.FocusBlue, forState: UIControlState.Normal) + readMoreButton.setTitleColor(UIConstants.Colors.ButtonHighlightedColor, forState: UIControlState.Highlighted) + readMoreButton.titleLabel?.font = readMoreButton.titleLabel!.font.fontWithSize(14) + readMoreButton.addTarget(self, action: "clickedReadMore:", forControlEvents: UIControlEvents.TouchUpInside) + addSubview(readMoreButton) + + descriptionLabel3.font = descriptionLabel3.font.fontWithSize(14) + descriptionLabel3.numberOfLines = 0 + descriptionLabel3.textAlignment = NSTextAlignment.Center + addSubview(descriptionLabel3) + + translatesAutoresizingMaskIntoConstraints = false + + logo.snp_makeConstraints { make in + make.centerX.equalTo(self) + make.top.equalTo(self).offset(50) + make.width.equalTo(275) + make.height.equalTo(84) + } + + descriptionLabel1.snp_makeConstraints { make in + make.leading.trailing.equalTo(self).inset(30) + + // Priority hack is needed to avoid conflicting constraints with the cell height. + // See http://stackoverflow.com/a/25795758 + make.top.equalTo(logo.snp_bottom).offset(50).priority(999) + } + + descriptionLabel2.snp_makeConstraints { make in + make.leading.trailing.equalTo(self).inset(30) + make.top.equalTo(descriptionLabel1.snp_bottom).offset(15) + } + + descriptionLabel3.snp_makeConstraints { make in + make.leading.trailing.equalTo(self).inset(30) + make.top.equalTo(descriptionLabel2.snp_bottom).offset(15) + } + + readMoreButton.snp_makeConstraints { make in + make.centerX.equalTo(self) + make.top.equalTo(descriptionLabel3.snp_bottom).offset(-7) + make.bottom.equalTo(self).inset(50) + } + } + + @objc func clickedReadMore(sender: UIButton) { + delegate?.aboutHeaderViewDidPressReadMore(self) + } + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } +} \ No newline at end of file diff --git a/Blockzilla/AppDelegate.swift b/Blockzilla/AppDelegate.swift new file mode 100644 index 0000000000..2044990b0e --- /dev/null +++ b/Blockzilla/AppDelegate.swift @@ -0,0 +1,82 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +import SafariServices +import UIKit + +private let ContentBlockerBundleIdentifier = "org.mozilla.ios.Focus.ContentBlocker" + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate, MainViewControllerDelegate, IntroViewControllerDelegate { + var window: UIWindow? + + func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { + // If one of the toggles isn't enabled or disabled, this is the first launch. Load the list. + if Settings.getBool(Settings.KeyBlockAds) == nil { + Settings.registerDefaults() + reloadContentBlocker() + } + + LocalWebServer.sharedInstance.start() + + window = UIWindow(frame: UIScreen.mainScreen().bounds) + let mainViewController = MainViewController() + mainViewController.delegate = self + let rootViewController = UINavigationController(rootViewController: mainViewController) + rootViewController.navigationBarHidden = true + window?.rootViewController = rootViewController + window?.makeKeyAndVisible() + + if !(Settings.getBool(Settings.KeyIntroDone) ?? false) { + let introViewController = IntroViewController() + introViewController.delegate = self + rootViewController.presentViewController(introViewController, animated: true, completion: nil) + } + + displaySplashAnimation() + + return true + } + + func introViewControllerWillDismiss(introViewController: IntroViewController) { + Settings.set(true, forKey: Settings.KeyIntroDone) + } + + func mainViewControllerDidToggleList(mainViewController: MainViewController) { + reloadContentBlocker() + } + + private func displaySplashAnimation() { + let splashView = UIView(frame: (window?.frame)!) + splashView.backgroundColor = UIConstants.Colors.Background + let logoImage = UIImageView(image: UIImage(named: "Icon")) + splashView.addSubview(logoImage) + logoImage.snp_makeConstraints { make in + make.center.equalTo(splashView) + } + + window?.addSubview(splashView) + + let animationDuration = 0.25 + UIView.animateWithDuration(animationDuration, delay: 0.0, options: .CurveEaseInOut, animations: { + logoImage.layer.transform = CATransform3DMakeScale(0.8, 0.8, 1.0) + }, completion: { success in + UIView.animateWithDuration(animationDuration, delay: 0.0, options: .CurveEaseInOut, animations: { + splashView.alpha = 0 + logoImage.layer.transform = CATransform3DMakeScale(2.0, 2.0, 1.0) + }, completion: { success in + splashView.removeFromSuperview() + }) + }) + + } + + private func reloadContentBlocker() { + SFContentBlockerManager.reloadContentBlockerWithIdentifier(ContentBlockerBundleIdentifier, completionHandler: { (error) -> Void in + if let error = error { + NSLog("Failed to reload \(ContentBlockerBundleIdentifier): \(error.description)") + } + }) + } +} \ No newline at end of file diff --git a/Blockzilla/Assets.xcassets/AppIcon.appiconset/Contents.json b/Blockzilla/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000000..d589d90db5 --- /dev/null +++ b/Blockzilla/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,140 @@ +{ + "images" : [ + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-Small.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-Small@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-Small@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-Small-40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-Small-40@3x.png", + "scale" : "3x" + }, + { + "size" : "57x57", + "idiom" : "iphone", + "filename" : "Icon.png", + "scale" : "1x" + }, + { + "size" : "57x57", + "idiom" : "iphone", + "filename" : "Icon@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-60@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-Small-1.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-Small@2x-1.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-Small-40.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-Small-40@2x-1.png", + "scale" : "2x" + }, + { + "size" : "50x50", + "idiom" : "ipad", + "filename" : "Icon-Small-50.png", + "scale" : "1x" + }, + { + "size" : "50x50", + "idiom" : "ipad", + "filename" : "Icon-Small-50@2x.png", + "scale" : "2x" + }, + { + "size" : "72x72", + "idiom" : "ipad", + "filename" : "Icon-72.png", + "scale" : "1x" + }, + { + "size" : "72x72", + "idiom" : "ipad", + "filename" : "Icon-72@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-76.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-76@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "car", + "filename" : "Icon-60@2x-1.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "car", + "filename" : "Icon-60@3x-1.png", + "scale" : "3x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "iTunesArtwork@2x.png", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-60.png b/Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-60.png new file mode 100644 index 0000000000000000000000000000000000000000..59bc55379aa0cab6c9034591a689d3250a545a45 GIT binary patch literal 31895 zcmb__2VjkN_dlYjS*1o45qsR^*&|k;StDkm_PEKt8DvR#eI|8m|9+X0{v`_)DpaO* zE44HJznSq*i6Z#-mPPIB;{U3qYTZ)95~EUwSd;CABwJ#HJ)m{GHQL_UZnX^^_@f;Z z@lk4s1iNoyYH=r;s^Hhvr& z7~p7lmOUCfftpAkGp=aC`tS29Ye!GklW(iXhowf)1t$3q^-8LGtHX$W@o3LTQY1X7*GKesi z~n z*3`u0@WjM8=P7q|t~WqY9H$!4pq(``Ho@40hQ^TDRCd*xYHuEhb0;kLA0dR3YzW1L z&|G7J3L%KBrtK1Ku~9>Fnz9y>v=E}BDIY>m7J_}%6ijEcrdmBVwnc_SB__vPv1PHw zJqb=qh<1$Du3bp$gp^ckLZrR5+B^_b4T_Dmg-9|*F%&KHIw_H)#>ynehzw2ZDy^`r zpgU>R#K=L$`8#QCuV@udv>lRTardloW_@U!!ZWhY5Hdw@0!hl6s%Q#H$t154ETtRV zox?^U;r6uDQ0q{8a!U5Kk*(3$e~OC@c-79)roA;DXAm9}n-Y*}k57ujkpv8}rUXP9 z=W4eFL<|jR7aJL4wZ{eMan|HPNdXPsi*o#-VL->&G<#e!I4Ur2uf`Pq&%Gw62I1-j z)U(DXH4TuGl42th6P$B2eiIn%VO6mm!VJ2A)*uWBcdm{JB3;bab$d@Ekp#sAbhfAB z0AGy=7IXY14EMwCVn{CtJ&he^PsO;=II_f~p)Q7Tw(+=SVM&Rpak0@cscw67HuBgV z$x;EvuJXZxi<#wa;c2A;;i0o!4LtS53XZ;5i>ry{YT&6aO7zfIt_Gg^B8jX;vca6I z9n00iQ*Vr?9n00gQ(vs7iREhGsV|aYvbN0iDs#2))Em!v;EP-hJoc5vu&%eCf7QTK zU$GsnHW!EJ_?0L69NFdOW;@$>yo&EpY3}Yce(kvn(tQ`C=PqJl93;3BhS|ULc3WI* zt=Bt}BkNpr^y>GXW|Sjd&Glf;uRZni9-Zc5F2-*>QsW5CC*bAbx}x^tT*+Lb*L)7S zTXQso_gyJx7+XrTy&N5Yft^up@KxwMJHLm^VCC!s3^FG0j(1(#y)oh z8W3Ymv8M#M=+tF%Pvf*pOplF=v%2Wk`CCuDgvCa~DR$9G_Afp4;T+5SqC0=x+{K{v4&9{H`V<%`J0k}wkyJ_b6w*bx}Fch!yw8E&2s&ItF z6RM)fnyzq+!Z&ja85f)5Rkt8mnx#lhM>9d>6p|2Wjg&=J5GYX-WX6O7y^}m8DYUE; zq$Wx-uW6#9GOQ};EXn1kASsH?D61>EjjiJaS%ZRc>Xspgi8Yzh)scQ^Hi5yKyl*t%6*30muuFy0~%9OxK zGAU>v;jlPe&QC!R1kG?9LF*E!>%2x%9OkK#G!86rKZGrO+C~ViR~-qFIF& zG?SIngve1cOJOA}$EutzU@{V^Fp8{@B5QIUG@+|lgh~mTEb)p)3BYq@LZ&%^5m?S- zuV@TFD2yy{lrD;brt*|1NVI{i2|WIrf915mVtZ(nA_edUAyN`cfDb8x6z~(lsgME!uuC4N zh8rgGyvC9uFPfY=IFOWZb|NEi9EJT+IE|+{o>K_yE^9I?o{%|#gFNFoN+BeMWhG8! zWN;YIYLa3`!AS~%6X$hS6=_z}z=Sl-)7UCPkvWt5!SlKx$&$!}H*`!$q#06F!Ol7b zR+P#7D;F3^;uM-w64Tr*tf*~F#K_+NTGoz4s8eGNGD#5CntSS^Qssg9W9QH~u z*#ONYRu&hRttisSDhr)%LMILJo_|&%C-a7sf$-rNU6ydu869)O&6G(>GdT}Y)>(;UHD1zr zQDF&PFfKhVIIDvl1=eH?O~qZ1C>~l+mua{Lf*|3}<5JQzu1S6hiQsWL2vwy?nbbK_ z(pYRWE$N)h@El<>D;c)~2T0+jQYyGY69mXRouCkE0RNioE;J-VvLZArt<$ooP*@7C zA1*TV8ew+NWf6R?V`37dxeUo-bWQ3q&QMY~iq5|d@DQhI3Vx}pD)fLZNw~T+DeAnc zYpMzFDiBlzEkMJv&|%Q!I6;Mw8HLkn!|*T}gJEb$4xLcJTQvToYYO5jstj$-^Qy`2 zLT-SAV2n^C$H^iEHHbSRDI|221g&c_hQta`6pE&E5SrL$++RsSNClUYR~QrNqr#q$ z!5tKIn8uJ4squ z0HzBG3zWio!F&|0>o^aIl4MTj44IOD44q)H@i;6+WhK~pu$D+shUA74f%PGpP>=-F zo=CzPrWrvID6l;wF<}^kFqq87fR>;c*htXi6rj zaibu!j9bD;IDS}z`Dc|C>bE6EBF6d35h2JZl3^nm3mFk5B2;UOuvnvb&LS{TR1_OQ z+ey)c8(j27MR6PxL0N3}sK~6oM4K(rVugJb5hZ{*&GfT*Uo3C8*&$jiQ3PW*`VuS= zbOdXOvWr%R=4>|BZnE<(`m(X2-6oP2)<#EU^(7h$6(b`B$_gn=izd>+yf0W9d<4r| zEgZ#V&r6I#gxh9|u-fbb1JUU9ydniezav?ju}1#?xJFwAsNXIz}7Tjx_ z1^!Zm%}Uy6KGI}fg9d>a2(TP0!Y5!PLDeB>B$$#4OOvX@>@i`!EHaIN7YZ3@I714= zjV6*RA194Bo+&3|mvd9=&6LtKT;Yyd zG!C36QBVktfFL44gc0mmr9|>|kXE)+Q;z*W=*A znR)k)NwO?Z78<4;U=0VECh{tLWw=c&V+x04k#Qui!1;#56A2^0!|ALWmj0&qBc1;1vBpqB!DR5p3a^H|;BNEWVkPWm7UKTVC z-m}iq6rn(~n?N{@E#V*$G(sidpu*u%RlqHpO2CblpmU*yUGO9<1fU>rci=c1=LR1U z(gohF0zpBGu4D<%h!8Y@G77dOU@01AnpjXW9kLwmolF!+CN-7+d zf^mt0a|W~m2oS2n(566JR2fDsoIqAKGnpNuDH_KrBB63XTU4x0CUDFG{BQVHa5!8| z5{iXkc^wR0AjzeYfO`R{0udw)<}#EV1iE2BYXGubSqdu97KIaN6?)BB8|-uq+CZRG z06EC7b8$^oxQrlSfSWtiqKFG2kpM?kQAhHfE7bufkyPN*!!?EDjC0d*_z;|=LIKL4 zOrQ_PPGU*eby0#6aEt~NiiJFY$IeUeLS2)oz+e>>9+YM%Vc?aD!UBaf1SqY#nk3*7 zIFL*MSlP&kG_o2ALV)=L_TsZL5(Pq_0a!>d)C|+hL=U^9gad`;0@Y>U)-xuj_lgq0 zAEFR6kv*nDG6wRjIM5X{n>&XR$p^2^7XBJ=BlHDxLZD2J-W?^R7+^dO_@!oo%DAS~ zbimLYD>8r<%#?{sO6-sZpb6jt0bAO{fObjg`wr>ZbsK!9NX!+(V-1UNGPRdz=So|O=ojhetPzBU>jE^$9pC1eEld#+CWQh+4hmj3@sVBatqh9}qKM`J z+5k~Cu?JpJ%D_zFguoSYaDt&709&J01Yr}+9VgIv&J!95u}{ccRYK6u#0t+DGcTq0 z+94mM*F2P$659jo+_0e_7&sG!?P|8hc>)j=0rhd5$h%#qgjx$kXrX=_;00_21So(C zA}IjqsvGV@DC2eg>GeAEQW_l3WAV783|n$` z-JD8ZN+W+nF+eHM5}G@iz(Goi0F;#i-)xRkU~vNkrx-`|3nwCIBLgZ#K7eT?Cg(i4 zyr+U}00Y+2;CCr*wS8VnoC?hHMvP8%r$6&jdcQ+?DIF3Fi6}TN17q@jwzxKmsIzc#WkEm)%nc>5Kin{e zGyX9u#k{{OFtlFd1niK4$UW{ihIXqR@>1eFp|g#Q1WD8tcT!WzGp6@@n}^cSg1}RZ zgapW2&YhhAU;>f@=^L-SNP!h;3K3_*MlW$2N zUp`VoHT!m+$hQEz#mkhQJzJco$l;3VGGdvMo4bO#LXPH*Jh5y_$Ue#N$YdJ0p5jKv z!!_3l9&ReKPLTRRNkFhQL`G@YUqIX3@GT@A@&zGaop^$PjYigi#vxk~nNhAe-q7tZ ze_+_WTBmn>3y>a}bgYEnfWzwm3dl*oZ3qIOi^{u^31Bc^_ZB9ej2H`o4zKK6qlOcC zUASd#G%te0fRnJ30FWG(vDeasgz@7WCjf5%sDxZ4AmC1G95HvAKx7$qjhkCWQ99y) zG{Q4kloB`(d5%axU|D3FxTA#JQc-D3<+`8nm^sZrKY*;e<^;H?FrInDj|#d&I1pbc zk#Oqcn1J%Md9-CY<3eAQKI+ zCi0OuUIW5|puZan0~sSCQgjR-J%)hcnG)G6KJpL}NqNY5B$;G!g4g$x24?Exn3B(wvd@%? z&y*@aJEXkja33%lMB;hfNIm7ua+z~v0^mdh2w@mx?=5T-Bl%cT1Z4KP)Aq=nMlzb9 z0x!#vL*C&-u+e;+Ed#I5$PE^=H4>6*5dnZg(n%!Gy7QLtLr-K{DukHyf@5!tK%pi?Pzx@p8PRu2NNKQw z(>6g;7>B$-z}paf663~t1K#E9Y+<_jxK3o}`b>%ZCPW#WZ-3}0MKKcZvD?VBa)TKo zxZvxUs(`4cj*^jAvJYmwk$8kWCUcL<3TG9Y8hX&D>wGE`w`@a~b4 z;l|bk7VYDhaEMX4py2J5tQ|5UGw|_{<%>*C#3Nl>Z!9X1c;sOy$ZT`i)X*yi4guT+ zrBG&7SWc-4VZ)(V1PPp3V|stHksgK82>j#puDrISSV;uy0(W^KDGj5@`rvBOeS256HZS9!7M}i14B6L~vtaut@GjzV@rAwD;>&e4ef9 z^O#1mm2W!)_}<5L8tMKcDPMzCyu+GdSLeMXD@H<&d-qN5mvo zHizSZ3HZ29unWpnaKE!9n1N36C^f_n5eappKau_I<2tb*A7{%EK96bO;y&#yhXiup z_Lf76zi)gCN>p^hs?L^R4qQ`!JVe?*RGAx{4I|vw*&@N-$JxSp^Kpl0pT{(UVm?VQ zq)FHu;0*_2*m zZ$|Df{5PYpB5R%S%a9m@LN1wNWYvx41>EcFn3T_yEZiYvwgWZJ;USbCA&ZwcawOeI z6COpC@KI5dkQF6CaF~M0p`hx@C=zmWD)8l4fGh|epbsOFoIrU4$`6r7N}}Y{jXi|Y zBUGaD!2FCX;euFFh>-wqg+J%CZ@otH1p~}BDzcr3sP~kN&tsz4(Z|_}K2yTJRZvZg zf=?7MalBW`!0`dq_m`DqaS_YO^Q}{fR0?BvwoCA_zB85=bkE z1K8Bac68WaUdIKEvNQonG#U-_#^76kq3{5BB!d~neQsm|@>ozvbt5+z70a+WSk#N)T?*HF z1!XVDYGP$P2azRBytWu|@IZ)BZj-%E?`1r)x@8739p&wgF};sxOQ&Ca2@tT8=WAZ$OXFu@RLiRdgo5&auB^RoUE9#nuWQ11W zyrOIe(}o-}vZ9TkA}Tfr<8cf(l)A5!sOZAO69}<7Ehz{u0k#S%(hLda#!kQkve2Gz zhMe(ioG0>ZAe9(IBh9k*opJ~&7Y`R0)y~;=f^nW+W$8gi<7F4*QaO=dP{IyU0mIP7 zJ0q@l2-$xK%0hoSPX)6@1wI3<3sAu9U6P#H!lYz43AJ3==Lu=z9hzmxb{200M!NZsS}h>KJg8$m&GFWWi)S z7{F&rB;Z4#!Kwkj7sRT;D+dOpfh-l25|Lz1qVQbHs~rNfa|mZrEaNVtRYlZ+=1{ST za(>7C^cs6pajA?qgmSVBAoRV z0(?jLRY7l=@vxO@z%EYxi5>DTPYO9SzK)3!L%bJ(>`bEw3HK9eZ%E`vQ4)9$3G!}s z2yY<(kH$M#*?eo9r&n=%O*6O*#&Lni1m_WWmqSI0a+VDSsp(x@5QUR?r@<)XD(E_) zs*(1F`gErU;I)j$nE;|kBNtiUd!);>_ZAH z0|yo!zdPFm51-_tglP^*!JrO~c7rVCqlC5>@uHE8^fCZFZtkZUrG#n1rh{Eixv~4q zC^bB#1Wyl1&hGLPOetA-Sa`t4cw)`SjOY-PB1D5`f9Um|u_5K7?x zqVe<=gF1ZJ$ORY^z7{gg5vqnYM7XO*0*-|uTfCu!$BP{H5K=rvBO4L_Cg7a98B@r^ z@sJ4s-E_Pygaj&gF;@f+UcW1b)Wj=;@I>%1lDljtFgJW0yd;;c%LGhYW&ss4cr%Ms z-0dwyf{zjmA+^_J0@jJw1B~KYIGCCnI{`0cy-o>f;-yT;Ly6LGyz2wOK%+n%uhqFZ z6$q-=W^0Uz2PBYn3RUHc$sJ@>Jz|$+xo4W5T6FrU6{e0&79zn<%+wYiK0ny-n1e0g`j4 z9e^L<=`~-ppz&r>?lBFGgunxy1K|nXUDl>tOPeB{QH8SbPV5@Sb) zZob-+HF8S!_o$?3d=SUv(?DTtK+acza=*p=`n*%DgYEc+Le>w>W)0X551MJfEwW6; ze4ob2rp-TVE`-8YhD7JLhJ2WHcGq}6IU(APuVn@QAJ#$IMLRD>u@)+dv|1Q3lERx= zR>C6Ce3TuJm*FiJd^RC#k~wS1`4|#md^d^B`52OSYccycQx;{O6*;&vi@AdH@?F;7 zReN$Q4oXkP_j(*3lL|3AD{t3`uSS~DVaZ=6)8kU;Z-rl5<%hpEL>_lQN?mr zi%7Cjg3Wjw!%8|1#4-I`AO6A}ar_8h6Epsp=KPEq{*v<{G|c(^}?R8D(6a5L~6x~>qq&Q>iCcsp|QmM#CLHT&lVv-X1{OJeGNzw>tPZICIFwIP$HNjs4CYom6{f)h~urz8AT%lzOhKU+Vq4OJo1FS}*Oc z)B4|AzkYb{z}j=s)>7lG_iLWnTrY5Wo5E3jlP~rRUrIi(y;<~G@t)<@SsK6BujP<^ z0o^~1_;tpK)$uznES*sIZ~4&sl4^f3HmGj-?ze3%ht6BsJt$=U>cjErAN)S{eD$E9 zk{9lGB4YTTLi+69B%i+Z_QTAteq7b$`OnMMO*8se9=&u_-1Z4;7rlS-_aQ&7jDGTP zc+8&88$UhM_SCrlo&F*!V_x};ubPZ3`{~GPr_Y=}czbf@r*BaEOAVa=)*NfwU8gSX zT{zf(u*EK}YB=0}p-|6F3#r;K{_32$pz@0?zg}6}>)MmLnY&l_8Pa;r2af_P2FIM~ zx_Zi{jMIGw>|gXV0MO-t{Ak-|Sp(R`T-|J*Hi{ zvaW)E%d<R9_1leXhtsRy3*B+;?1%jq4jX*D;-rf$?84R>ml6{@9lbkaLZQp^ zhQ}NpbL2wl_^Njs>82BB&Azs>%|DSp+Be)5rD|m}W)=5~zj>&{hS0#8H@@sHzO?sy z=kI@()^Ge>*o~zN>zy9cTr0cheR0i) z_Zfe5Ysb{(CH&ZrPnNGi4@*ldR_aF6q`n^xp0=j=h?I=wH@6kvm~f07U6v2c29!*6dd4|#ZIR{wohKdG>#O@sFZTm-GJ(l?LrP^utSB>^=6OZ4vW9P#45&eeMOp9ntk!%RsVOs4_$utKfO+q*&FAbSXm>5>aitV zT5@CT=$PGWyWcEPG3@YUwqj{T#~hjryZd${(3l0Td%(&LxXMMvxzyKYb0s-xRouV`y??`3?2 zKNFf>v8*0^Uagq%?TOC`x%o;AMe`TL#HNxKWZxANJB_{z5v zYEoz4zn@m=*~IUf=sgB6K6_>y8xwf8*V5kic3kCr&;R&|=TX#UGxjHfx*hzIxX0$>6<{!ZNt#TaU)1|32mP zjFl0~$K5Exl#wp$#rD+fNBlS^`QC#fU--ZABJSl|JI`izU-Z1yKzij&dhJf7i=_0t z+xuGi7NzTrUD0n@Y_Wf8H2ONU@`WRD8@9Gtd5HddcCk{YE}ktboZB4n`0~Bd+uyGh zI%VALBFz5LiF<;M)cVgqz0l_$|5f(0B7GbDHvB%D`1i3GAoTQWh+e?+0N2j800dhObe+pR43^2mcvp7u`+D*o&GkkI4)OHQR->p)c5TRc5^ zCKr}E_peH0|Kdhny7}ObzJ)9H`?XffFD5??uTXXTiYEyrimBG+wPt;{WYOl*NyS#3 zKi6p1xT5dQnfGOlX7zS0I%@kp=KKF{HEhvo8dulvMWItGM<*n!X_c!kv0ZPuJe;~a zqHcgCv~s!Yi(|e$MUA`HYGi8HnKw?}zcYQ{!hfnaS-;67#b4l%nCY%WP_Te9enxaTgc=T+)Bax__>}U!l>Ns!}v`- z#>}gDlN-8z)vkA*S1ql^Jihn8{@wS++__ZVZ_V2N9jny(RB84uo3uLi=8;Jv3w3DOMyoLB%DdBc-yAVo?b5K}JDZw) zyR(;&{%C@J>+GC`+~hK6;s!((`tnRn#?aqtce}Z6%h;-xgED(;@{vuEFYAT-Z6SZC zdVaGWTQqJ(Wc}mc4f*fKDIZmvaJG8$pF(>7RPoliNgX#=rOT`@v}p18KL=i#(`HiL z`se4LyIJ)2m8~1^fAQqP@hi2*2UmS~`cYWdMScIcX&-c_k7e$>)mLWu^_u=@T_-s` z^uAR2+QdN}Gp&8fTGAuB%x`52_;C7^u!@yv?MX4)8y_#UMUIMFVTH>M_l+=-qpI) zyxXOlRkv>G`}m!;e;$hg6JzZF<fWhW&gfa{Bx|+Zz_GxTSuPaeUX0sxR?d zd~xn?@eysUeajyBLav$0%vgGB?2<9}rtcatX`Hao9wuz^kI(pe@sWK8_6L#tn=^ORJ~jGS=f^wm-v4}Mn+0WCc3U34 zVAAcsYkc|T=!$19e>1mZRG*m_T2%SrtD&>{zp?yQ%;M|8$whal;n7s71&x}G*)*!d z+26Mu{^>*wX~p%sJ0ptE{Z$Gp7d^MlAA6_q)uhMeuWp=d>A$Skw3KaMjPi}gFi9p$Ip;MVmkx$x=2?T3=C`<0-_9vUfpI#hXZsmZdR zzB|AEX!F5-@6M>xr+-LtyV)1}S?>;w?342D&BSZh_FZi{qsfZ)(Vbguwmkau%9YOZ zCjC*S;;@mn3w!q^TwilN?cXy`OO5iYKk(4~E0>?%IvQ{96#jL~i<6`OK67a6f(pL{ zNz1;8PxnK|a+!BVGA$xk268G1my_kG#-j|X34UZ#I#>HB3IIk-xd zkbVP-G$}QqOt0!UpDp}W9zG$o%{k(|IfE?f04R2d}5^$MXQHi*?e$f`zd?6 z3LENaf8W}%@v>%*Zd+~RN7SV|vD6Ck`-3aSwg2^y|3A;~X9Ue1+`jtJx5u2Vzi;PP zTbGymFzxEy%|+@oEH7u)s$L|tYS$W58=QORUj5Y{1b^6#de)+F+hdg$w{2HM*%%%F zb^BJG=4^ZG>Y+B{D@t2W{qXa_i$S4l*RGuXUr7AI`wwR<9x-D3z^*kdMJ_)aTlLW8 z#M%eOMT9Or)VBl^w_-DWV&8iq?|yb7BXv=klau^zTE|-!iTgW--~GdXXdC_ZNAI+L zHl%`dzbBNl8~JOA1KHx>-vn(*$!{UtLj752^VGOL{blsP|rqR&(($$iF! zpSSkf9$Yh2c$~4Tk}$K^>O!TC6~FcKS6^55o6_j*%H`TT8!eQm67;Ti_=ASC+eRtV zx*beOoccoV+3U&iKbY1x%Jn|h<3ZSolaCh{*_O(zriMhv-#tJ7pMC!>>-6KE>U%Q7 z9}(9(t-Al);OH?+wom_IvY<^qsSBTV%J`^s;gn-*+pJoCy>hWBN%d>aEn0X+)9Vv^ zzF*;oo00XW@l!`MubFhW=(5!xB+RH2UB2F~`k#bO>`-pRt>S-dV*hwvVL^xU!-=$d zt5<%o>OuFp{_}ceR%qXIOO2Pm{PTOY8-tFN7CWE$bxZpNmur?j{C3&a!53ym&8a%7 zdg!^Kk>l@;FSGg4qd))K`LunBjwc&eJlg2n8grSI0Sih^R(Fo*p8oIQZ)aU=TX}d$ z!oN@V?cHT21GEvhZ~5o)4?uf7v5;*YKP8+U=}2e@(An zV^GiC*I!0`^7itLySj95+;viFg+22cHmWf9MUP9=f%9jl-FZ2`L(S2bXEnUFX8R|j zYy3XE@u3!(Z5tg+;o7%4c;j*PQ-$~a_e}m}bmrO7nXCEgZ})9XtXzBgw@*8V2HpNV zY$oSupkK#6Tdv^Gj%Oi_cDdhic@UoYQH5VJ73U95oSJ%n? G#{56cu&E9J literal 0 HcmV?d00001 diff --git a/Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-60@2x-1.png b/Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-60@2x-1.png new file mode 100644 index 0000000000000000000000000000000000000000..15e53cdbd81693946105e7e2e02169e050f3e1fd GIT binary patch literal 40015 zcmb?^2SAN)`@a!|P%0xL4MORhXP&1t&Uw!BXviwch}LOomqN0oC?g5kd#8|$6iP<6 zh)_lug^UQP{?}8&>w7w--~WBz@Aswd>z>zrjn8#m_Y*yO`X(o#7h*)U8?#Gn*0M>^e;nqUj>>@bWX!DnFg6rRn8nqGgZU z@N5ETiKmyvtRRW)tdVxEv!=OHZdzuhn!{!oK?lB)5NFL9zCM1zMl(#b>iRW;KXX4e z)Y7bL5;Dz1tA0`rHlsCZ{~(DbK9n$UM+-&^a&tEtD`tO=1%ETq@(c+HFfud@3kw?>h7R=)@-XC66lKUm3=zZtS{MY+ z^b2vGVc-|6-Oz(r66_k}6%gX(@2AQ2=%R)H@KUtp~OexEAa~nhPM1)Z38_0L;Qn1{Tu1}*RTI)0N7d^ zn_pu{or|yUuOWg%m{3^8&kd2=J5^0R8)sK9KW-BSaYO#3l8Bu{BqmyL?mPqd zA5UP%$Bhue2qlK_5F;M1zNwABo0t2{UrliXKHq>x)iouJc!&WH|J@Xr&doW*xyimnyIKhISuNA5RThE1%>Ym_ZVr)dd#Qtc|R9}1ytKYK5 zSNTVarg|fZCivoy22J)=&#;YeKl!^sQ+;`jc6Mvz5bJ)`6#XyRCF5o{v}y7xnjDV`l3RbaXsR~>*@Srbqd`-B z{h<}4FY}KEP4)GMR*>G;9}Sx7tI6&Eqd`-B{h<@2&+Cr{P4(5Vghu839}Sx7t6^&! z?dy*QP4)FB|43itpDmi~jo+j?`=douz17*}nvEH$O^N}csk`$>gQli}*I%8+wc#HP zn(B*_%XOx(roC6Nr{)N+;E+ZHj7*; z0B$$u4K&i#uU|LSj}9`Fq8jO>{&!9FFv{H>TtiJuKLc)`M*|w*=^QKx)@-EHMw>S^ zj*b5;FCQQ0M!IeIZBxD2dU=3T+(;)sf7w(Y4P!~a=ncPZs+a#CGpRcvS!USpBQ)gT zsd~@d@VC$YKfe9%A2)yoLI5s;!QGVR`I`dHBES$*OrkU<#>6zi6OueJO^XD zRyU-N*DtTyl!v1@!e>}$CZGtK&!bR=FQRaP0HGLx2$Mnqz4J*#NTVW_$7d*^h-4Uw z7Gto6gVGn7cop7RwH655f8)p ztN@`&ibo0wX=BhLK8{f$A&`NWv@^Q;XpF605}n45k|-gNdzNFK3_nN&yp7I1b*p zP()K=5dysP-&tWOhVz63%VTH~Ma6J1LLB206d;8phLTe52mF*o8A?DQe3D?r2+5!f z93VytVf`YJl)b`mn38}JA{0%NJena1hDY%z8dyb$2^gW2S+S^)LRk?j;<2Mmj)4nMfuphPS#$pMBt_(V&Do!AOLyC@(>6$0RKwaUC@viAE!XWqAV(+Xatr5*AFf- z=rx|SdoH4Y&smt55Tv;XBn#IypB2Fw3TXmC|GN(0A%bCO_$4bAgC1aoLb$pppJGWd z%ZR1$E)9Z;hYCQ$;-JGom%|CtJP}3{EXo-kQpUhA6eI`B69aFd@E?|;A+918fwm?| zv6S5fxd9vm#t6bE2oZ&V8iYF{r1_w$grIe$j3LAYpeSgDB|vDxKEwSL(hyRCOG(n0 z6zL-ddqM=Yj)6T#lTtX50r3GB3hWEc&f~$2U=dKw6e}i#I4ezx zGD1>F0bh%NarvOXMFK>KQY;}BL41Q?q^(1Qf~6=Taj;4R6bok$77#34h@v3sF)4cm zIzuETP>Q>U3}{*r!jLp@8I2+!kXfk|sDOqWM^RwR;1r(+=Aw|Ld3=~EAIAId3Br|T zcwm8nEy>+Pj6nr_3{D5^1raM0NYMshy70jQMPR+adO=i*{;m+? z{OySF`0jiRcf}0&F76bBYTaB6oZU&nK!CX;?zjso;Zst$p^?52cY?rN5Cb=fyK8-4 zl$)EYfiu`wF75(gPHFmCdS5sxag%^(F>vQ$60R?SfeY$_8@Nj-XAC9W+;EAMoo}Qs zH=L5VQG5g34RxvSi{chaxw;AvXOO}uB}F<&?+Yvq(gi1-4G4tzIWNi`BHV6nF3xTe z0S2P6+4FK0K=j)ccjMMb{vX%q=Hl++f>Q1Vn7eD;ISLHmUb`89zvSZP%y&acS1I$F zJ{_2W2P}tE;1gg%ftUqBBLq{D#!yDG9DL+Sr$WS zkY%Dq$>83Bv5sLN8yOIyAQKre`~|cj3`|H7DfOd)l~04g2R6XJtPQR?n55tqfJaid zlNiRQDR4qXLcVkpt!^{~tRq87FwO`eXf7OtKa2*#5-dEh4H*Q?T`Bsdo($TE2p)z3_5fxm zXdG~!C;`o55HP5vxi$4<;K1_5;F^J81MLFdAPJTXNKz2eIBd>;r{E zz{>)L0PmT_QG`c>W|sot)NKg?5`p1~dElUe!y^_0+`@=?;6@8U=Ykq; zgeSp502Bn=9dMkva|0g{qzibrGzbcmYD|`p7zKg`pp1Xp5@0D5%rxp>$yku(;NFRN z|0EOy7+6E#BY^WmaXTrb#e5bJJMdxwNfI=+lYj>a2|zpkaguPY88Eh)etF#%|c7*;3Z!7&TK{|4U*9FE2&35o^7NfsFTpCp%<4{$F)s(=XcIp*S& z90+vIfMx*5YRpm)1KL6p0#poojawVo=?rKC0U`z<2lDG0xu#-p8G!@?+`LXLQg9)J zd;mwq6bs3Bjj0ZB68SXv^x&F;;|%AM}CxzgJHclo643-vy2gPto81PD(#sP)o1Sl$QY?1(%fCGvB11obGkz7_Ik0${0 z2iS|O&qx&T1SkL&LNL@g(@TmTZj=%nC|E9_x)`|in3U7|O$opsL?KY#&oOB}#v#vi z9l9dT=Ke(q$p`;4TkzKaH-f&voDd*Vj$RfeNHKu%2*58HDX2{2lne_nG=WnXKnv28 zNu!joLks{-050&rmX=~bH%i&^9byS^GsPs>WpIo6|FA>gXH#M!1BjUjcvu>4)!1w~ zN*3ke1O^+6OS5+xr33^B?0@iI!4v{G^1oME7A5ek5aKmLh^0tTx{XqT=mHNEY7l?&{ zXpwQA$bWA(C={@UVb(%aioE}VnL{*AC@S9Qum?=0R;0o1o0;e4SwuV{}2%9jnI060ZJV7Ht>=R_JSO`Hs zDOUKeG5@A)zIONzWwUwcZ%Wu6u+BLf3IqcoMPWBKTkbpo5TpR=BM6F=xlSR}T0n#r z)K49F0k#4JC;%0NqyRuyWpE#aGX7V8HhZ0aQ*sYlKYWWcd$xa5HeXWzO$jmqxQ{2`qX64T zi&g(R&%Y?S$R7ksLFYnh6QsAu;9J38>jdopab}QvT#QaEOMm`N+58>)o3c)VK_UvA z7Kbr4f3|RKXo|(b$rT9%5CW4y3D_UpFpS{-;VQ+Ne^fUB`G9=2kP=jL%gz(>EdbskMF{(Iws4*l z0auI_K`c`!(Me~Jhik`D3(LBKZP2?E$?$U0yM$X0~RsKz;-)9qmXfMN4{oz3H00O=u<4i`dp zSe@4aC?FvO+=j;k&_ztjkO{zGE!|r%@k9_~fuO^0`gFHt_ zK)`XxHjzaMa!V|NB%?p>CwR;R!=WF5tT)aH;G%-@OhWwVUv~%&q@|RQaN5E#IjbEq z0e|_taLXVi2_z^OF+% zdPs!g0h&udh*Q?yVlAF6NKFjT(*{WmNpO%`3Gf?adBJ(f(7bRBTe?F8AA@vg9Q1qL z4%PXe5ZQ)w5i#WT%0QM-qQzs9EvAI*l@{_4B$ARK=OM|Yo)emVKT*I;TR5h$#gw8J zQ_?M_6a#1nDQ~~H4=@^t#FH$SdP+#kW&R}-08WGeAs7Zf_ZDmuF8NqU3m~&kmbQo7 zX-GyBhygGAC5M`a4}p!=!r5Zr^>Mku)K85B$+Zvx0ENWzA$eAow+v52fNm#SfM!9) z2E-U4P}E?9fgFPT43Z10L2jW8?EtVe$Z1H(__;%(W}gZMtAY>{`|sErCP1JjL?Hfm zNsUo0rvxbttk7VaKvEb1d4T|LgWwZlGORbiyIMM1Fx^_XPRPz}F(u?TL6o84?GF}8 zQMkl=*lozPl7SgRaG|ARiUkn$WT9l_x9kHmo=ZG}JSJIo9|YoCIwqtZwQz?ZkwOHJ zG16cebMZ2$!eGF=hm;H%wkBZFEgTaZVyIl8;q8_B9pWN0;NwA-FJy8;JhE}?4TlOO z67n!;$ZV^#sX?!BI0WD>Pzoij3adeCg0LZ=SOgL{>&I;V&4%aynhWe|L6>1i{k+kXyH16U7%bA?)Og##-WoWlp4YhArdM> ze?s=%aPb!HEddGSE!$fHQv6%Sw?GLMonTe}lwftZrU2w2r2T^` zlcBT02yf|ZA;G?dvjyj^g*$|{cuX!R)*=Z8X_71}fI~&=^$LfLQ}9+9WOZ^Vj*N&R zRK&D&haim7!r4NmDGOW=$-?z^JfK-LB$wk5#}IufI51ggy7SvWwBP#F@8fFeQ?%9_BYu3Kka!~$~V1YCX{fyv0LfmAx2 zU}ynXZN^DW4uYjoAynCL)pvvpJOMIzc~A!khyRnZ+1MMG`wRXXS6ETMPVmbhF$M~` zLWH4yf@j9)j{C$l@ir97!3{goL6>@KK>Ap*~6i!C?eU z4jQVixFR7Lrvknl4j>Bz51wR4N!gvX{3B8IhA1#LFo}xqLP65aaqFuVo5=a z1n^ey=NjzWW+V9m4$S5%vKtW5=2K!V9utZkTR2;)#gt&*(ojtd1)osB40nZ#bHKfW z+%>2w;mOeU0x?`;9MWk1v=dlJegn@N7s!fOa5dOC%R*K5Pws0ru1O&f9f1lBNFS@e z*{pyDJQj-001y>OE3{~^hbTy1g_i+fwe^&o{)8$;NURou7r~PeB>`y#;s9)F$abu= z!I~Wxz_Ns#pvMe4G5M&-Z(8oXTvc<^Z>$n4RWa2dkZOn z1e9w6^!0O{0!T0iR)7*|3aV^n`1T@r&7p;3k|YApe!yc3Ki3Jii3mo7k_)j2u4v;t zB!bWiIImE)1JedM#AQWuK}D$8;Bk**$e?6fN(mKR@bCnLSQ{)U5MBbXRiGk`lVCFJ z1b9Fev?n-24e@L^Psp!QyWeND4Q3RrXgbyQW+re?DuTpr3J_s!67ax?RA@m zbwV8j93^CRLc!#}$#`IZ7E?k3J}5M>YJlJW#j1f<4me5h$It21fFa8y+gq4 z1cWmY9FvvNDu$>7Nl^V1?XAdQNexMWpaG#G@88GdUZDT8Vhdy+q`+d}z=Fpw%Qk_BPyRy*ra4Fo4C>%e z8OYLqC_&p(@S>3j(#rtok#RqzQ3_$2VAFwJkI1n5q){^PloEJ)kmM{YKS3%b4jvXf z;KMz!*7#ldo01}h5H7}``VpQ&fGV?ppahQ&9)$t)8m_F=H+&kj{eQ*;bB@d3hM+OL zu1(1Bk^ZIxCz(T+!0vz&At=Rc{%l3y+Cfo$UGXKv?*4@m@PCSXdJBU(e6W%KVNCF~ zAk!Q|)nED$WFl`YIP$33yX7OoRdkZ3=g%S)x zYX2h>V4d)K09RZK4kjbRPJoxP{+AM@Ni$`_UzAW94)6MaU_hZj9bT)GaVj9F{%5w_ znDBrEWSxSll2tPUp`ZVygyEVg6aJ=z^Mt432*_)Mh@rH1LVn#(p$IUZmQ<^P%?Alw z@Ty*eMrwAZCkuI#|Fc8Q=UY*W#{`!SG7Z4x{AVo)-&FaZ*>W0*dv6o!&H$2=r5yl2 zf~VJ7q6N7(lm66#oJNAc13U*p@>p3}m+aq^ob}eM%s_Yz6zbQSRoy84(N}4&y8@fR z$7(F#5oQ0NnLl4_wUq?^db?G#?vp@9&aT|2j!d+Ee$GYf=a0RleB`DnGrWN|%u@m# z%J^ze{m8*TzegqXfDhtG`81F%uKDY$K!3i){J--Kb`F)mHx%lBC~ejN+rfio4B!^^ zCgXoTjq{WCzq2Nc5ctXv)$pyM7R>r**YJL_pN9m#mSy;VSO;H1Nl3~aH$dF^&ITCe zioly$&O8GFO1ewn@iKVJ1wNZlKgnNf`Smd*9{1fO{MW~jnzt5dA7`qk{A)#ZTv^Xt zhJW*2{olosATKy5HVD4gQ};0`BWY*V+%>}2rHtTVv0tB3lKym-tH9MAUKPU(To8Ca z3obQ0QH2xE1{5E67r1ecV>t8c4y11Se|-20?nvE_;A>*sA7?at#ti=Q>qBS~KRC}I z_{^EL1L57O)zG7sVxirPf;W!xvsER9n@x|Nk&qh-J1v^BOJQs~@ff)ag=d2{Z=W)z z;@!chc4g5e`dh;k?yVlM)vk4iZL~uFGih(9f4^Ee66x@)!#brwThe2ymK{B6Y<%NK z(aVU9X?F9j(;r3!{2nB-ZXRMqsTRp}b(3`Bb^@ zE+-W#n5~9ws>26|FCA88J^N*G-u-g1j3I@lCw5((tNiMnVb$^(kLGlzSEcKm8MiDVe5>SYS=Bp-IR^)2 zJMLWmPCwsfWGCd=^`-Or&94ac^;?j!YIVZw2?gCs@*h1Y)4KV1{P)UZ2BlsP(+^87 z-z)I9p50gB_5*BXY+`~(+ww>%rTBd-tAvXVv|& zcMXc}@=BMvkOM=XPdH_;y=0y|F|mKo4D+W+T?5gz{T@$vwyRrbg=qFn$U*vap!)4nHy-Wh&Ixg( zzs~0CKfAT*>DS-i|?Ce`nruRL4(rd8+* z&{0!G`R%W}Pc~eiaPs|?5f3gV_aCXUW7h=dk1vOt>3!H7UaB;ti+Ib)@o}2>69(Y< zqWSY)n=MY(-Ti#tt7&t0WPWwn@2ffR29}Zb#_f?-d##$zRSVilwk_|b7NurVRPam&#W+RK(b3QHQaL?PR0hiJ|G+$GtEPY++6*2tL_peHr{#`faKdh;_v@^I=@quUYt_jF+ z?GM!0vjfA`r+3X{Mx<|hYjgRo(yR(LWoOUa-g>#o4xx&%qs+U-jf!$PT$C9y&Z#=d z)2maTvYkh|i4{~F)=ldW;5=q`Mdap@Wy!_Cw~6Z(q+#Z^m+wl?{>Y89>{(c{JR>#j zb$M2|BeBH~b}xT5gj6_vZ>v{ZiP7NrzV{wgs?WS@GWbgDxNT!153|I@bxYdo#YCKP8U?#PS%w0y^-$-QTP9sHnt z`0a4>F|6KTo!wWFVV_1RWQ|MOyZ=kZdvCY0DVIuj&hqHgE$8%)7-K8nM#+%Jao;ayOwi`7!k8#83Bf=S8V!9MQ?_ztJ@xKk8y0e_*%Az_Ry8*Ooci8=RN75k1R0 zW*%~G)0+hUmB%uaa+j9qCQhn3xc-yF#dBBft(!y*>#J*QbrTrnW3hRu z!E=@#87nW}bP0`p#~#?c0SH+Adq>6qTGo|nsqR4+4n z(D|NC_jJ82H9q~@jE)?Wa%xc@V@Kn#`4h{xuX?rNhUI76GbmB=!DGf0fBpWZUv{Kb z+!>mwsTqoj9`>`}v(B$n&Gw}SzvuRluXmO_j>(Ijf8y~T|IaV^r zCl-x3rXsp^JgjZlNay^67s4y~>8Yx@Z`(Nvb`3sXbn3WIn4@RW+lcUWYTvF#1)cw> z)qR16(e~RnOdb{0cu%c*U_F>$J7;20e*Z6W4_-zpiEE3Wb&1a!Rdl1DzGlt}6-R?@ zW<~NH&M#i@u`>1C#>y|gLq730&bXMc|M(`=j%Mi1UeWIt=ue8xF1wKN*6)S>m?bmZ zj88vx#ZJoWbR0{s`EqXUt%_meE}y9#_UT$T{R4aSqmbSgf<6u1s^cB8?qy=uP8-)_ z)56xwnmQyT^=+nE{yoEy_PvYetzYR_L3UnswDqy8M=Rn6Ivwhug}FHPB7C~>-x-bb zE`QkF@khsm2c1OxlxICD_an|Vy){XDz?0ucJx-vxv_eB@@;dNhe}JdW);sP z11|3B=Ja-*PRc>KXzP^O8EVNLLxgHiI%w1u^mw6rda-xtonS-D84>FW)}A4!IC_NNL~mjEF5Y#ZR9un)Vqtm&#|qUInya@+^grM0c5Ld z<+bhat&6|rbN2fPpMk42s~!)J(ry>WTpnkAeTKsAR}=l0DNU#l>?DUAbab?eS#LEW zqx-3qx!cEFRx)JTUG~<=)T<=LcWZVSnLpUL&ZmE%$_HOGVz+s&@(R1u-h@$qVnI)h z>=`(7v3!c|J+-Wyo)5}JXw|CK{{CdivTx^S3kb`O-<(7{HdN_{%wIcX?1+VTu5Q+x zmc7bzQSDAUjnCoMiMPDBrEh$-^=3cEkc<_^+FM)uTf7^*F3+;Y9Sc@)iMF3#SVJYx zUa4pKZdTBFgLzStR$F!Z^!DOj6J?8j`?gIqt{S7$zul?#xo1pV;}gb2hD?03&~?i3 zyGj!+Re93|=U1B_>G<*XsY|_D8>srui@ukqtHOrIyt_XtCPO*5uioA6S@B(ZBaGzj zp<1=vu36oeys6we=t17+FuK<8O6-L3d+3+jXD(@P=pQ{NWJKrE34@kSRMCmjxi$UT zF}*M~&jyvhe&(d|VS9$s-@j~+THrprp zBP4&_d5zy#-x2$9zr~o6M-~{`AsNodF}ed`tO?mF}N3F79$sx0#b^Vy9j zJ*^Vn99~g=|+2!c`bFB3Sg${;at-qFd%+8N-x1T#*_@qlpXT`mDy{6?p49zKf|MpJsS{sWE>;2k)KlS`chmi(yS#fe_7p#c*fvv0=O))V8min}f7ws!exO|60v&JlO6 zDlJx4ZQt(X;oMR9vLVcpJ>DrwqaXAfTl(_&#*HQ;J08m$s~#~YAf!h3>NCpaLeiae ziS$D^qT@}up~~fCpFHi7-jA+5de?8B@)ALJe&XH(hmC_(1!m6;KYz1IKenMJc3zIs z*PJP#QBT)g7b(_cys&e<-D=s+(tzt($G=h*V;xT4$?Kosr#x+`)1+>h;XRz%V-c_R z6^C9nb(kh+r0x`3*?Zsi%;1H2c1w1bbVyAtUU|!5&Hls7N{R8atQUlgjvuYS z@Af^!_T#JK!u-$kP8olj#YC2jF*(-(*?D1(Pt2m3mMgYkTIJUeoLRK0!>J8pE2?e8 zd*&xZOiyOpmbt8SFpSHqv>VKOr93Uy>C6O|?NMm2T#c=5B6$6@2I>0u?x3Qb6Y}jy z^5AItx@ZCV5!bj74hgGy?FyXvR>R% zUOsF{yoNBwz1RE5yOCY{7N$-Mt#$a8RdFHdhqrCgO$t4^*|0;X>2~^>((d_kt?%`8 zvYs5i)U{ojFO_(+ZEo+_&tqe^-*;#|Tl@VWgx+DfzV!NwS(jf%c8FC~bm>KTP8{DO zi5TsW`RVuySZ1B*w=N7Ra%F**>}I}P94`@*W0G}jMuC(!w*+2wG#J~MD-9^S`<6QcHr-IT=^)n z^1+SnF@vw` zwcZjwOfLTDzNp+II#=SO^Cs>~?KD^Qls~*&vNEKn{-Ch#NnJJ#*xvQ~1dE015AN); zu=j+0DtY}EC+g1CHXnYg+mp!!UzA7lVsr;;S)S26v&;4D$viuQlWpP-ObMz|T7Agz zSYB?3U3=%DOQY@~Q?=?F1=aKXvzeOXwbDaM{cmpVc+=Nx@tWf6cw{o(D|JBaFdw%7 zD~I;Nj?dJMO|OjVa-zgj;okcA=m{EOOb3q%m!GcM)c5Qq?AteU)&98e*UniaiJgfF>j+yd9=hI!SD4r<(+=+m8>RSrBw0l$&Ju+W%_RYu3 z38wMJCw4l{*=syWxYp>}m|5KxS{!@p*0ar)8L7z=B?Yw^9>LcV_s<(iD@NTl=)1;z zTjrPBMt7*r+5u&k&mPe4sFAfi`xL@BDeWxwi?8);Gu|qTM}LYp9w5|MPj&g>vrlcZWsdTbm3h@= z2ikr%-JPxBIOSbsvdfb53+?)@RxZ9ezy1BzIj!V6Ut0UpZR9oLth>D2F=F3*OW#S3 zwxQmi&EKZ((vY0GWBXa*fN+D$%XH-lhtzz}?GFm+{iXE4V3DTL)x}6JZ)^X8e56n=Al27v8bMV5gF6M`Hth@scwYMgp7>!_7D3^S(QuLHFwcR?uYP7n! z(j~q2#Y_5(_b56Se|*hp<#`#ZV}l)eH)lRcnpdr$zhr^qXpQB8Gbi&3?)4f}yD`0B z@v%o^9%#-D)(N&~Q}~TCj5Tl9sau-`_VIm;Qbls}Za>l0&0rqnZT{{i7v25r$ex-> zjIwWdmqBt9t(Cs}I%#?+h79R%Z7n6RQK4x|9r^U8C zcqbKc?@fm}9g6CFQ!y$%Z|v($8BPlxY%4n-J$SOR!f;_(r=CXnN#6H%E66|b>GUc7 z%OL+)<#Y6>@diT!kEEDfJ?DR9wS!l%KuJwgMQzl!$E`5auU5&`!v^+V+eT&Q`Rj|= zg9f(FLD^aCvNxZy*wv%Q>l6331#TLde8I7B+Sz4y!fL1E>)i(S8DKGNm07DxdRHS) z=2#W&3hUYj(LUTsZ{dCY;Ng}XJAK-IS=`0K?r6w`cYAMVT)q-J0^4hD-_BvP8qehY z{Oz%Jtr_L7rvpC}-5Z{Ea(y3E%{p|rcnH4h+nxpKOi@>TK3AGuLuDm%YRyjwWo>7o5yDW8Jwi8o@&kbsJ$93}BqE3Hm+w~Es1 zuBPgvkDu?cJ^sV$8Uu4})V9LOc#Um&pDUXSE~&UOVLMdaKAclgG@P?X&flk_`r4uK zYUkP04)*=y`(#&ju|1!8WAuxMhn3}8zl(gB5nbxN#5u=i;jimFK& ztgR8s2wSBcKO1o4%iXo1C)W+EJbA47Eq8KUFMll3Azi2t*mkw+ zvxy$3TAvBLsdjg4&mmSj+n4p&QSg{tmR`1EM*ar8_R&j6VvzIrxOZ2_$$M75@w}%* z6}L;8*k#tDXC{NgD*N8c@r=54Ud?B`SYc~?{D|~&rIcOD_e!%1yuX~j>#=T(c8uMR z;&sxT+}(xE5!gm zhpa#j=G|CI4LGuAg6_MIn(`M%hoY^$Zm#w+-rGsLCgshxc^Z=pR_lyc+izSID^fw# z&JDagxn@Ah$Thw4O7hzf_CebGl!{a1Zq6KU`gNQ7tInWjsS zIs>g%cF7zt$>v9QEOJ}q)+OB+wIa_ZMFzXt>2(d9)u(en+?}WufukMeC+a=AH2dRT zJNun3iKy!Bb*i0`(iC*7?poycN-12ca6yuMdH9dO*AD(X(rELFn;qa{N52rgGTjE|ieH+=s$;4;x<6g5%+Ic@J z;W3-Kn%92Ficsn}t;4aCrh@5iR_?~i29L(Hbv7qOqIFxotI%8g1{7`Hi&>=hAG*&m z$j3XXRoi_6@su~t*{9dpwK1J!ms4S!V(KNjFlD`8L`J)9=Yp146}n4COu?@D*)CK~ zxzJ5}sJz~?aTm49hZ**meOFy%Wh zU>@(|n`4vLq;|!7yxD)jHKb3#-HAUE3I|Us_fxEmpi5q;>#ki{q2ipDG;~3?y?KMv zpo?{=M6eb9`Saq?R{m@nWFu%x1)Ml1qoG^hij!pEbcSLw%3s&jjwl7 zGbk1M(-s92vow>}&bMyNv^Y4pZI_O@m)>W7QJ*xU_|f)9&pi582W+|JZ0;<$t(5NJ z9h&JjJ=(Pmt=aiHxu|$>?W@A&8E?l2=PY%-acHQ<=?aVQ^77U{ypf=^Wrg{w(YKuD zj6Aab{h+|aq&=1?Q=XS3kD?SWe623pXIvGNGi$O|)dre~~hB`24y-Cv}(!NL)hf3svvAO6Dy zhBw;YOe?XsF+6i%=f*as!|=r>LC0nmu726EWMI*t`^VBu2R=|Ok-Mz%?a4b~!k3M= z=7!$uP7V+9Ex^M*AD-oYb>0{E_iw9h%-vS;R6D11Ra~0uZ8MC&{l_?F<;`a<2j-uA z8h`wKg}L@}3_Fzh#(zG}?%TGg_Jj2}LDx-7??00ah`Im#!H?;)&$VB(%72bR3Z=WH zcWkW6kk%72w-zR+XGCTWyWDR`LOWr1CU1sc_t&%izn$xvX?h#I)+TE-z03c_8Y-=; z?S-5TllJ?~oMm13pLz}?FJ}+FxY%F`eSBI@RM(8VY_sC z&OdEz_d55=@(Ht6B=+~}5ZJZ4s#StyO+fL5u+Yr3(;3fgE0YWsIw(gOrLFC?+Wp;~ z&4uU_EAPX%vXc9Tj!o}w?6~&c>-jmu3wP>YQEunpI{T^LzI`Ieie6p&kC)6g>$V}g z-;Y&~-!Hy$DgRM)Wxt_$@maIl9=s*jH)CAK1BZ6K-BKHre&*7*LaklXW|l2~=4@|w zb^V?S`|2+xscD~zCZ-QW@4DP{x`5ZXE%D2;bq%yT^JB==2mOz>Nsi(Td1ms~Hu!Gw z2`dyQ;zJnCi1>v(Rsy)`6Q}7L|I(+zwqCva17A}LQPV6)LP1m;( zeDymKb3qgScpO=}p`0ER>;E`m`?MPKeh0q4)eKD)_YMDXdWD(E%8j1btM|9Rw~Ep1 z{bH2G@qH;XtK`EweYt1+JXUewm3Oa<^DD1-&n?TitE)8Mldto{J*o70&-Ec~p2tSr zofFP@e>R{Z^!H5N(RmZ;-`8^U3jvmD=wgnC8Dv+D8s#+Gg;JmPG)qenNsRSv6c6u18G_D_imPx z>z%5KpOUB_KBxSGCni8VxGYR#RC6P5drt&-+Wu0 z=e%H)&!LGasS|s6v^q54MsDumvZr~qq8sIhdnIKBK04e+{l3z{B0=_>mBT)-YL_2u zoY9}1nqLsTYj}nGmxn8q52z3Y_pc54uzBH4)siL8B9?R<{^dh>=+>0zdGxEp3EFHY zzJ-RH&F8ne*s(>SZ{{0xzuIdEdost6{1&Qa8=aDYr-6w6SRCrLx!1?ptFUwC$A+2*1?3Mp+Pb-VUl=a78b?{UJ?^>@P0kaJyP zm{hgeZ`(?b+lM~sZWFV3e;9)sxjalC^X1FB>a6{)lJMTg_9Y~5u?#4^_c*UN{RC}& zO2xYRX20t7Q$BVqoEvq2to-WscjTAM>tsKx_u%C-Jif$Hm)@tPVfjUKUBX5zoOVTX z!pf9l{aa0O;0pgS+HtiKf`S~^G|+BY3pKG zCV5>wt;cikeHGnb=D#Z%KOtl*f3T(chU1rMvy^}QvpZ z%p)4h@$4K=$2k)f10PP=j3HSCfoG4Go;|ds@BYD`=p*T+A6D6-hdjofF-q&R;f;S6 z)1VI7AC}G>M2Q^(SA@PZyKDUA`NSu~FY)ip-PTw2-KRoIV>=}nDNT|GNVwrjFEhzU`u3 zvT)eIWapvxyM4jsstumLP@j5@Z@+BFQgw?>cQl{t4YdB&ZhF>0cf;A0iCd0-kw3kq zwp@7=Lno#V?bo&<=i~67*&(8OS_)V`*u6n?%ju5uWK~q zy^E$kEu12^Ks~rk4r!s(aklRB=j)=fJ4D5-R$_$e2I4raHogdGZL&RxZiWysNp$wdfk9-tOY9Dj(V1o%^nRP@BDGR_4UuirBg3 zhdiU-SF9H`H_7QcgOn$@AG&QJgI-%eOHsbmuGxDdvkc?z)k2@iT$C< z7j_D}6zA5)^dwSMG)}+kp07c&m3>6WC!Is9J}r7}wD!gARnfIGEb^=5oG)Ut5{bUv z-=FTS^bF2shSPDH=dRp0T@W`~>H3MN^KJBlk6c~WP1{PV{SJ2N5pUnu#}8V^g*zs` z7-8!C_U09^rmbB8!gy&7wUA`Sm!g?n>ut&>QP5n0E#_GA1XR5aOtXT4V ztofq$U;5mQ?URu9qI&AEb%E`&QVY!&8;^e40gu$~o7ly=Pp4?T_ojL-nu9isFUK6l zUOSE*z|Xk_{TO!Cc2Y@|&$s!9jHe|ojM09e_}syF9(7;!RL#;yVSW4f-P*72`gYsy zL599d0y5J{?|{xqj)iwJSyI_tw@l zYvuRV<#CKKFzal@#__cg-#!$MGJT|xpcA~2uYIjsw+q@Oeuu_Y7A%AX&7A%Iet7TP z@`$un_mo4IT<_tgYgqm0&HTqvA77t7GIGZk)0xYse9`5Ht}FKIGAwZ6gJ+uUm)8_! zWtSqApI1kjF4XsrXrpW;_xkY3iKzRC+-3emM&&-e=hsii8{1WXzy0iG;qI})`(o^J zqcV<(wU)RAyYRT-H-b%_!%F`0*Ia9d~vP==tgPymYig$I~VDgphs^vZ&@n+R_u+Z3f=% zPZURE_Or^YCa=*=O6=%A^JL||U1XQcVd44rmR@|3boN@}UPVdqh3gv&!%M$j-BOc& z+U)+PnyPj$<^-|^6JGAno#-&*#uKyHai6L$rdRYnU|qgxU-g)0{>dN4m6WE+*&jXI$bxIA=%AO(0Pz(Qdqf#$!cI6mDE^WP0F( z)ARjH?Az?>uNe^kLK{2m_90M?oOURs{i^KzIiUeJC9mn>dsZZ_bjc}i++wro((pRY`?wUKq>>b%@+d3Ul(vG3iZk*Vu?4^5P zSy;yD)yKRT%U&T?>Vpp19N>GMEqbc(GH`hM=2zOIVHE_hEl>_r{qG?+-FBDXO<2-`ndBp{^7TZ?Rq*UZSv}PIH{8f z@+>B#Z}Jn5?|a(>-8T3>npg3r->MKfn=4Aw21kTVb)F-ks23e|OF>iiJKW{^T>bP{ zYWJU+cS97;#6CE)hp6?d&KvT!Yav~-H+NL;B^7NZ8C^S-*4O93_*c~E62q|J)qRCI zlF8c2IwQPvBz`NAN0Zi{TG+beR%usl{rCDCbw15YkBQfP5Qie4<19~pIkDxFGj03o zOo@C##MJSKirLgtIu~ow9?JJD7@q8}7dUE$cE4x3TDQ*L9+n-w z`sl%zaXUtN_B4wysmO7)7@_47qnx85Ru6@m%N?rnQA&Z#+cmD~l?GJT# zyw&PLc4AVZOGZ$7pl9ZmWq!*md))iJv~(dprNDZLSU-tVhgdBQEbyWzKV zkz{@7i#~Ty|3NDH1<9S3{1|1X{Nv5E)>=>Ud^+SO3nRS(tS7FX^Hu5Lu@A>T(ER6? z;e~RM@~dJ}hfFnU^-k?@if6Lz^<8?Vx6><%!b3HDd^#fc1Pkx&jkfx@s{765AMflb z9vb1M^Vv-O#nI}{N2h#KM#iq(a>m2G@N|ChW=in*$1plH%YOdctF6U~0=ezIGEOLz z7~ie8Ru zQ#z~lja0iGuD7TvzbbRe(RU8l&&tJX^;FpZLEQWN> z$F3?MMvd7U7BQ~k*3xHt{NGlt`0)Dif)SNwg1CpD7S`U{pnF)}`fY1r)aY@#sV5A| zBeqe20U-ew23N{&0d=NqX^^;5L3!4c1ry9vK8WQyXuD_>^!19|yf3HkpvaItLvOJU zD&AkdeGXCmz(mBJd*MCR@#LQUdE>_BO)gTMD*S*pgD_5x8 zKGKJre5dTofsqc|OYYviFt@s5YtJz++)V;5o+Uj7@86d*eBh*0Z-wfamsN}|>^}9R z$Q_-OzoXYoo+#jS<)j{Mx6XBbJEZ8!=Zx~>GYK``X1!+tXIYgeDp12c-mT4K?2@%Y zbWg<-*A`q{r?hGO^J6hzt8}hxKU6UOWci)yU^*)#Cq89@PT7GChj-)TQE?9ijem=B}KO_2I4k?Ruiyf&Q(YL}hsNWxVe&zHomV%AuE@iY)m^ z)EOfC3N_;b9aZOyV7ECy4&QILVEgE(1c!fb>A8d?N!13%q+Xv*O6*#x0n-SGc`Sgm=I z1j(`?#VkltU8UFPG`uo<@a)lPzY!p3fJ z-uS(wF+*|b5}{@N;o!ca+#MVA!v{(<%hWb%vwu16WKm+gVGi(bh!uIs(I*~ljnjq$ z4IIM*Pl#!7%0L29jAEUhz3|DJ#h(5lUAY{cS}mB$Ll&+=?8&|WfB#wbDQ5`?%gPX|~|gk?&H*{rzL3>4nL z$F6h^N)u?V=!=6KEn)@|v|v0hMnh~kKnJ{0uPf|zhdo|8MDrC@zI&dXe9J?l&MTnL z&GRqYPzEL8kvWjw7%Zw`d{L3oA!ZAvH|We35=MCe;TS1g?XEv|(3BkyfUe$B`sHm) z2%{C!U;+y92qa;MgrgFPBA`js;6|HPkD);AHPradH}*Kk4;r;h83(q|{-fR<2STNF zfufpFWeXkPMVyqi23VuT^;(0;3b!_Ne3UcT&Bio`h`=HWi5RT>fxtWrGaK(1F5A|B-5cX=9+m6{-(}T~Q_w(#I<*5D1K*%gb`G zL}CDF9)$!LmPt$|QB+U1_JSK?QmnRQ%Ow+Y&o`jY4M+dV!gxZFIu9FUoR?%FILe3F z1D_N`d@M|1%IZf1ifVAeNa?IvyEDHnmh2=qmu zFP4iyUj+JhU*MCi0D7@>vomaHXt=1O&w`HrKLG{+->TL(;gl{K00000NkvXXu0mjf DTJCyJ literal 0 HcmV?d00001 diff --git a/Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png b/Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..15e53cdbd81693946105e7e2e02169e050f3e1fd GIT binary patch literal 40015 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 DTJCyJ literal 0 HcmV?d00001 diff --git a/Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-60@3x-1.png b/Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-60@3x-1.png new file mode 100644 index 0000000000000000000000000000000000000000..041a458c60b927f20686d57d5c0012c965761c0f GIT binary patch literal 49164 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ν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ν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 be-`9+@8Bstvh1NMZusS|1*og!pppL%b_uHm literal 0 HcmV?d00001 diff --git a/Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-72@2x.png b/Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-72@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..efc5923c257c0714c2666a1c93ecb96a6aa9cd66 GIT binary patch literal 43620 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 AdjJ3c literal 0 HcmV?d00001 diff --git a/Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@2x-1.png b/Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@2x-1.png new file mode 100644 index 0000000000000000000000000000000000000000..5e05547d7cec6b7ae37d51edadd9c05c9b9a9880 GIT binary patch literal 34336 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 E4;OWKGynhq literal 0 HcmV?d00001 diff --git a/Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@2x.png b/Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5e05547d7cec6b7ae37d51edadd9c05c9b9a9880 GIT binary patch literal 34336 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 E4;OWKGynhq literal 0 HcmV?d00001 diff --git a/Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@3x.png b/Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..3c41f1935a95d80843e5544d7d9ffd0a48c4de13 GIT binary patch literal 40000 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 F{{s$w#eDz( literal 0 HcmV?d00001 diff --git a/Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-Small-50@2x.png b/Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-Small-50@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..32b43c4eb933dc39233461bfe184cf6d51b1f5a4 GIT binary patch literal 37083 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 Q8sHx*sk=5pV?Xi#0s18ECjbBd literal 0 HcmV?d00001 diff --git a/Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-Small.png b/Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon-Small.png new file mode 100644 index 0000000000000000000000000000000000000000..3a580e1ba947e47a030bed6bebece14573cf1e55 GIT binary patch literal 29416 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%0DZ+RXn*R`k<9} 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 BFnIs~ literal 0 HcmV?d00001 diff --git a/Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon.png b/Blockzilla/Assets.xcassets/AppIcon.appiconset/Icon.png new file mode 100644 index 0000000000000000000000000000000000000000..49e8c49c9e5d213bc7227cc833cf8e1b48675f2d GIT binary patch literal 31622 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

`~oT-|Z?v?fgjE=Ft$f?XcQ~K9L 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

jUvOk8-~+Sy>!x#J?yk!vVfw zg?g4g%Ec`xjKJ>WyuyFvuNThr;eg;m!U>}r8Ye?)$hYL_)~B4pUn#i2q}hcF?lFjP zh#-bSQa*B{Ze2nC^2b3MZL<560xWuh4unw|O`WCBMn%<_Bv2&#!l*Q-_9$lz>*6%O z2+ao%!hEIiX<~bbHl^4yxAAz+dnh&2yGdBsOQ@W5_{k$D1IO)ntfediM{A^8Ss)J!e|6#$oy}*h)l1rH4Raw#n*&&Q4nT8?Z@BtWw z>a!{RT&y=9Xb@;_I_VGjyl5-~XUb^BLw#}xsOdSkRoxu;9r+rD?8QX@^v7t+lP`Bi zxc0lR!RuK5C!Mkpd=IIm)&Fj($v&qr15VEA>#(<}Pm&&tEsJjTpO;lJT%Ivv7e!tG zbdn}3$N6wkn*Rbj;2mrf$!Ymf@{AB7h>DV5lwAo)wKoyzmv8k~ee9t$L4wx=Z4GTG z=sUj;h*g^S2iY97_U%USCo_A?g?xt!Mj?Po0C0Mhq(G>HCn$wDqgXCNgZJy}dH4AY zSed^q49CMx16xqxjrHsGVy3eDd3{9wj8$q09(5uBevOQ~Eq<%Jr2n}-`u=>kQ|epa zY1!d`_dMQ#O=Me~@m{}%4wd(YzqLDW2!OufBT2@4+$8;;f>O?eLe{AnlH_hxj>qAp z!el%23KKvP0GNm$^?dGqYF8_4|8WWluN|z`(<-}pj4g>wW~OQkXMnL+bb!x^$viwQ z&5~2~ifVH6i8m(Fnzgy|IVWfm5#35s^KFYp|L<}<-q56dzC^|{tI0it2TE2h+pPmc zA4w~Srb3uro^6(svS;RF1MK6H-ij8xl@Q{O$1FG+P6^vzsZE8-Hv>4S|o^J-pI%X3s8z|vJfIrTCBO^DmC(Xg$w)tO< zXZOFK|5*SiY+K@riYln({7>5~ZR1SOShxC38+^=Vg9Y3>y<+{9_7hR;H`(6CF!|qT zJ>J6rI;fP``R(@jLFwcu;q`vh*+6bp2`(JcKd+at;Z9&w3P3rn+g<#A$U{uO1ekt- zkU<9SixRc$7Ar-Zu8(|vj&b?CthHNWf&i(zyHYP7*bK11^67)t)2r!X<->$+$m$=@ z6@Ln)Tk7@2HM!*fOZ$E z{0WvaI*KA1dc@_=dXel!2O8n0X74hGm2bsUX(Y{VMUb|Kg}WAE?vNwYhp`Gd3m!$fz-SviXv79(;ngepT37aJ{Zv_b zRzlK9CBw&@h>pKpn?QOUx0XpW#|m^VLq6YsQUKzMX_kv!MDJ_~DB^7P&Wpd!*d@KK z=_jq}Pk%odb?pkEyFBtKu}+kg#=kaS&I$?pdCxrWtdTA}H`659mj2150bR1;EqY&x z*GAl0AJoyWu=CpRylJ#lcEJfO(o1UlO3SD12B~NCJLsQW{(6vp@HyX0QG=+H^gKZv@Pp;pn()xV8RZd0cjBJa^$x#z><-Q&-n#?4|$n_qMYOK~!uAL~24YCNT)-7oSpa9Z7vnR!rvLC%}&*2J8O1 z?J+1wA)7hquBAmvWrgo-i}2IXLK@!7H&yf61`@nN06a(?=bJ8%b;14|=s0%>FTxSk z!m;#w;ojQwZk90tfsW=Scz1q{-%2e~eq$yJqyhZnD86*?PsC5?L%(xFpSBh|I)pS@^QUTeh zo_+r1q3v;}`fMNMIA-?tCL08!|7evKYwla>`8KOC&Jg2IC%2aZAZ1UvCANpwsKua+s7vfkyq2BtgYjDCp_gq9M3zhhc35$RsDFteL7fkt6qObs z2K;uHyQEXLq&}a?05;LnV}Kub!h?hea!$lf8-n;17uk(s;}JZ{U%~5A+UM~Ovsv{m z0N;?lN{l`>q56A#!jiJI?W;l+d8V^9$;ngW&lKuE!HP{?z6$^Woxcd3A-cVQ50>`F zJ1yf&tCkszO08x<|Eo;$bJNhS%J;8@bY*D$pf#&thyBMZ8zsSLc{`o#vDuFdS$(UV zJNAMZmbwfCIzHc~j*%_LnV9z6kv|y=-53XyF?C|)^7^~3SXnVlh~PK6mnyig?5QVR zBE1iZDb36TP5x97OFH6M;N8!68jVj2hs54;}qmS|Tp)c2I%b^i27xByN30#_mNCJn~_F(W>HnOc!{tM#ymLsrBuH&~t_ ztP_vjSoXyixT}kIOzTC;>HDqs6#S`u0F>;68}Xt7?6_t}0tFAp`tQD#->oTJgv1gW z04JZwMQJ_!Tc5mqrMvCjDtgi?rB~C=-z;E2#GEEs8R5$?6u?COowa5B*16T_9{zE&>dsQ1$m!cw`)1t7eDF2Q|C^ zD6hkm*ThaK5a!>;Dr9BQKCaTLYevh0HjlgD(d{kw!`|F`6+-{pFx^5MSC`eT+X0g< zMp|m?yH}?bew=~O_eeD9pB($=PPP9G{mAEm)&KPd+Q_>(#>xuMAm)#zQs{bL-SFBZ znyV6klq7xqSb8&_3Iy*O)Uz!^Y=5~*-PH*>Jf24+P(%u#V8bV;g2a{78U#NgQR=& zRx$n7gWHv#&ovyNe!@F`ExQOQIds__&Mbc1QP*I0BL&X)^j$uuGK83#cPoXY$G%u| zl=`H=qc)dJ9J02Xlo)iyBEMe%>M8M`sf5Rua;9r|oi2%{7POwW~k zhl3ur5#eUFF-ZmGSyV|qio3vjDNwR4X}U^9)UJ)fti%BVsDM2TW-MlzK=u$}`I4|B zQ7|S( z)8E2a<%C}UkLk^h#LA3rQ*QU>reRkK3&j(*#5&({RIm0LZ8@6fE!w-mhK8|+5Gm=& zy>V-!>f&hI=*ewN(QI6IbFkh+ z^Ol#50aD5$_J2g5vJh_8zaJV<$+*k}K+*eVD6C1xJf zbb55G32|h!gGLw~`Z?&}KI>)rvqP`)GA+R7^!~gWcrU1`>^U8zh>_%8ivp&_aF7hS za*S7hNhDCCa*{8W1}y%{KhmE$C{afPxMpbqk$~A{Vw!-J0*z-Eo1AJLqNrK; zJ<~_0c4LyH06mxsI!4(nWVscr(>39>aK^0hd*(ZH*@QT!5+4A|VsY1B{+GE8F`_Z} zIa+$3{WE$V5nA@>=u58mF^Ttr59M@z8c&<)<+JyqLCOrKz0@mPVR!uE(hry zB1Uh=PpA4vl(j2Zi|cZs7$~UxX15H$o@f&{^9U1#pY1vdz80iBOF%+UdLO6AE zD9(v^ST)NpEm{eMVr(^euEda{BQ6n_#s1TgXfK-M&4pX09)ZbeXVE}KgTjYyo$`xj z=jO7fsrRy^25b+arHyu-n z3=twJO~cb|()p7cCsbg6Triy7q^DQEfi3~ppg`R5>o>eKl?(Q}YlWYDMnh%45Wr2O zK)EoV=W>(;wyUnWYsiO@c-{dtS`rUZ01$OP1B=(N{(fiFjDN=2`Ag zd*vtBEn6sf9SFZZ60Nod3?eo_Vlb0cj9zr;j zD#vx%U|}g35Hj|ARM2#&@5ttMLoA82Uims0{?tiJJjnjpyZ`f&ovNdR+V??faZb3A zlv$4>!#)GPr42-CO;SQ1|ErTJy)MXFA1)jZ{h0q!=c7co>i;0YwMKcSX1NZ`DgU@4 z3{)~qjuxLQ8O2sb`2KQkHgXWFkhyLy9^Mqi!`;M+4b*Q-a9u>0kd$6*W1J~3eBrjW zqk!h|%ITj21d*rg=SPoE^Dntme;?_Z6=}~wz_=|1^cw&I5HM>A#19zwp(aRD!c^T( z*09Kuv`QQi555s=bGMFjA_AlAc+qfTZ*zxCoBj%rPeEaHyiJX_mc)+b*D%OgjJdKCOoiuW($dA8Se@xur;tK*g>uJV>teGuEI zq?U4uJnnEZ94a%oT=v6-gZ73sp9EA_ruxd^hTcxB<>Zq7ChhPu!G&vEdJLLgUcrL# zAq=`VN$*_?^}|h`11K#|dxC1}?$1|FgXP*gwT|{)cNqvkvU>I1TGh*oI?sgf$+pj9 zX}n@-d;c=vz)EVO6v4=0$H=D0W#-+PdjbG4{4#K(I_NIX)+-V&EkS08Y5^vToSVNA zY@95#am#bQGkcYiRJnZ>LIC^s4>R42c^(av(7N1~+rd_MUfVMOl)~~=ckV}FT&Eg# zub<2RW2C(CqNgt*uQ=`_;1r@gDE3aUp>iVnPu$DnEh(Vo##gZ10vk^vy{9`yP=6wV zo&UXF6CYSv zhkP%F@(zOO;GlWOdZK1`CtWsUE%4?($kL~GH$fkQtH%q`-wGu0yA?TFXik1(NyD4u z+jfJQVU(`#xpp5unF_ZZu_Zq*d48b-amyT@YX{ZNs*E?ag&IW}&376qsU5?&jD&!d zjH1%@Gp@Mbe?qfNPo`aN?ZIGD3!s)?U=aE~emS3m{xOPepJ&B)>*1mi0Ze1);yDtE zw&HI&%e$uK6{V#)`Ds!JE{lRu>5c-`WfR#jk2S^!vD@5F`_u`rx|urv0XW4D!u+>i z?%#&rU*dElwNpv9O}wAB=`Wl9x;6FHps?gs!rIVZv?Um(EpH@1C-(EsZ`{InT`E>} zYV-g7S{r)+F6dz{t%AtFH%6&E`{I1*Pfg@(e~Xpw3% zO4Bg;+oopn_S84SQZ4x!J}Z*nit%%702`OdZ!J-%(K&9VMEJXV%b+@F+jvcx5-;p7 zNfs@Wvpw7OmgjupXV|%|1CvKD5;$JOc|J&a#h?B+eEqGfVQF_)9&NnYAIfA%nah8a z5&4A7Hmu&tPsqOqi(7sp(7|0jA1)7fqS92ddh@PwRCj+;Fw-m{MZkHKF+ZD>PgUK zb-h!QEO^5-$;ci)Y#xx8ryu+yrCLMHS4yFY`OJ=`Y$jE?z?XXp=3(um#^y9YLpBqwG{REZOK$3AL z>w-R&I`O-OdMxypgNj(0=>*cqwAfGpz-6$~HkP%P$gv9yx4b}sv0wld1dZshgXwRT z74`4>zo?%$V0}a(gFk3}pRNVhX=&1NoD);)Ts{pbb!%_66gBGZ@`BNw99{v!MeIsW zb~z%_R}nAhmg^-%v*%ncB`4DDocfE(^@X2`NXO^XU8~zSoZ=-`L;$C!Iw2v|7(dmre9{>)x&$<-Txoi*NJ9^zE?Hu#rHyJJIIuE8CG zBTuzx`+vYO_)B@~Nbx`lJkn>&OLfEk0skwh-gfURW>~2yZA!N#8qFgjtjx3kn10Qo z8jmHV3U1>T&7pozYC(TlLHl9|b`gq#Nn(?(UG1kd*H3de`6k|HhYxy*u~r%-l0) z&eXcdPy80GU4a1@WT7s}KZJ+I$27!8er7&Mv4h8v14B>E9?1?GA=&Ps$fxXuBhgCR z(bC$RbFgM7K?VK$M4)&I8{Lxn-}|^VI_f=+GYx!d6-Ebw_F~U_8aqOoeVtQBd~3zd z|K>JnY+k|oAOdAb!_Bwj_+tU2pFMSr_9D$~%n&B8$N@_~Ld3Xkw74@#sV7Gc(R3}$ z%ddV-P|$4TT4kC<@pFvk^*So$Ka#Y4{j5?{bt`KVGfk=8zrO**nnFET2!);+Dp27J z9%k3jYSFJKfxh?h1(yxT8+ z`2*gmV4(e}Ol33Q3xWD?b6}wfuMcj?#T|A)P=*;5GmYB!nIu`V<;6yUs?zWY(9rzz z8|j7;;AZ}1`nRu=tx!hV>tjC`6VD=7X18)3NK{{~dmRY0`aldrgE(l|g>tb0kK`pT zVUlt@xQodaAfh|=tr!#Eb~=qmHB#}X=Dd|!P^Domt&l(7xj{bX!N(gaCiDS14ggjv z%ur9D9;M*!VY4@BBHE_f!2{mkU-E+B>KXL!pDhGj~?pqCLhwy#3=*vX|j-)MgBp1pp(i?{Sw>Mh(e>*e)z=6zKAO zR51_$MkT)TjYxLkA|T0;J7DQm92p!8C)rzLP(1(pu+BL{x?pbZaE>!$(a6522i?HI zW-?O(%#UuGG3-Ij>Gd#m3bG@2;0yzIS&+u->idV}cjaHy%)bX1BY1&u=-6)MHzM$! zhn4_x*=kEeYhB0yN_l2Xm-+NrOAaG|67+;CtLzC|rE6&+`}JUXHMtZJW9CvF>IW>% zQ*1X-N5vbDTO})CfD;fgFNf;#4lpxE#czKi9*@3oQAzM?uYQQuw}bib#_K5q0QCq! z)hGa2IPQc2fmQ(MzyrE6pdhv12FCgQpPGn@hcWVIw65$oR~hH(h36Sr)n_&7uaMjO z%Nt!*j-K7xnyq_1OGl!5*}(@=DnbD#xWGD?qKx4Imi)opn)+(Ne)p;Hv=ULs#8#n^6xetWZDzl`#Pf(E!uu$7 zn)NFKMsnDZ&?Pw7K`&b=k6WkOc9^h|1J$a7Io*Tzim1{{MlA!v zpxAEJN+1w;-&38#>g#mZq_y=sr}k?gtP=CsQ^ZI`r#cEE<6t`EUDaV%-YrtsZqH`+bv)K)|-{(0OwLRO(>Fg z9-a0>at^L=kthC+Kx5qH#X$dk``vW%?OMB^!T1FomOFmQ}paLLhRzz0<(*rV-SvZl{#cE}tC5QA(T4-cScE+ZTmf%#Z zxkUx3Kg47rvNn;cb~h|nWU~evJ{&_=83?|sZe+>;ObkzQc4at|$q+JdD*U~@7f2iw zeQg%=>gq5T4tGK~YxYi8cJ1$?(bkXs{Ix#U=~~E2f`g|EmQSu<>`>Vgi~zjIr!1+oHtwc)QHd;^aU^#a34f#M`wyf?iGpRx=&OB~ud z3H~^GOYiOV0gcbgXIg73lW3qcMH{?%VmD3nJG4u_^$z^u679X1li> zVbSo(_^rm)sDQq{*}HL`qI^1YF|H}H=2yN8z8U6SM#^w>WSHxv7uM?QbLZ~SP-*Q1 z2f`oyTJWO1=mmUN!V;w6UPO+D1z$vZ|UT%oo&+9w0^-D(SfBR zGh5UU4|!ICKye(z#lG<2Jn=kDf7$1U_W9rTqtEs}tHICn7U)w;p1z9nX-VQ7 zKhWspxV>GJu7Ep7!cLa4cmSNcntkQU06@^8Aj+;LV#>)ye9O=y z*0T<;o+q1YZ2FAx8glj5#HQ^7YC5F?DY}=3FA@n8@l*3ziiaZ~$Z5%tuv{84EBD-i z?`W8|2I(oQgDZah$nEzPYc*gmxPZU~ISlaEFmhnXVmdeoiHh>StYAM~iWb{0Lg18? z2nrwok<_GbSl%-~oupll*iqfo$eD8?f)Azlmz@q@t( zCjO@wY!Yr4a0ny(%)XmBPt+Vd7$$%kKx{2O`#UQdOm+;a^i@c?=9->QOO;-z@ zq_{RctbPltpi}+li)?oMT&8Ej(4RdxaMReu4J1%Ts&eZTN~lOT#;uEb^~9TGqJ~21 zIhOAfZb3?dtU<<2X!p--3;?vhvIm!#34Db{_B>nTm9~EP%4rwU2{g#mwne(96-kb#G$m-KALZrlnXl5rewq;&d7@Dp$0GhgzDHt zKu{o3+;suLS1<^1Cj?h<)QGr?3;kxD@cP0nxXJ?iU@Q_>rrp(vBcd_Akmc4}C_yA;4yGFHQ zl=X)a1@Tn6ekjZ=J$yffn9k)}T6MFW7W-tXti!i&?6FF#z8hy7 zS|NxC!1Osf-eJ<#(jPC+^a1C}ad(;~vogs%uR(bmQN~?iiATEcI0adqcY8z=+phg9pQCM;0W1I&D%fNn9UnTxdVnx^mdX@HI2b zd(8SuFl#kfDXjTs{!di>Tx?^B4A=wgN(><8!=b>#`dDPZ9teC9S{AFgt6)E^-Ubt* zA(!_}8o7E6L!SFV2o*%3S$mtO3yo`1<(%A_^J?w)?%VQ}DROefGa}t0M6!NKEMp5b z)XwM32Dbc7_+Nw~3S9G|`37G1PQZ21kt&LeELl0(%^-SBwq zUiZO&H=1DkU2QKeEcpRcQ+wrUwlWkr9p_(O13R-fCXSkEA=R#St51na)D9~%F3vVg{wQg+90{c&&<6XiWo=+E0If}7~K z_I?i+@0KG#t|zcg4uAyn=r;BTd>6|@5wj)mQh+ADnjZUfv%+wK@jzF1X?@(@sXtAql16Z<4QR2m^K0~c zfk41#T;sy9Cr5~Hf)L1G;#~%*VOl zpy0jNZhFu0lRtQ$=`fWR_aA>b`wsw_$QHgj8oI(#G58hCq!ygjp!agt%EedCAdSmmJV%ZE9@DB>T774rKkGW^2QHj;-y{U{Ot@@pHZ;ea6=bjz z=A?Y`qsWxPQS}!h`ph{xxjj!dQ6cOPcI#SsomBN^jZdIOt(SvwxIM!o>QB356z{1c zIj}4B3l@mVhp%Up3;Cw;7;^G@79w=`s7enfE$2J)u> zz3NfJ#l*iAsX5&azR{liY=^~o$O-Mlj2s|z7Qq0P>)Q1*#BF!JS)%IbSv!toJN7*8 zK2|ZT>E+&4^v=&e`)QZ_+H?<=O0)g8h)1*(f3)^PlCY6mO#>wt&Ary&Y=zurDfBqJ zR{DKKde+qTrd~js=l#woXL&IX&U{VypWpC$!dI`53Iot0 zmU%VG;?tPw$rU!mC7ri_`1ri3*~gOP40biaTzYoYo?@*D<84&6XD9w8END~J^SB7R z>QleIM*eq5IsRwA8Hr?rbG3w`mcfYxFmHC(P8j)|m%-51``;}-x0b7roIadC3tv2Owg82H9412CSrKz1>&L%X;}vwY+PA< zX2GidRKrkM^&VYd0&gW3h#_TIeHq~I(;d@NE=_sqy*KgNJURuv3GA1Sl*E5LBM|)| zH-|7;s4)?2O2c>oT^CZs`e$RDzxNo(ea;G0m_+>s9nC1Dpt@RuvDVpATq^gXkk})4 zJ|^IEr5w80k4)^yPi`@xF#Q~G#{|UKpaCa9l$M8|m*ovFPcogEk9MuENUQV8TGC~u zd}v9yz`)@xH-O2smKG;sp-@MV%+V<=Y&D+pPXCfy*9>fFK=tDiep!tN*8Tr8Se1h2 zMA0!31Qqy2c@n7PY{7DtZSE@AP}KPX%eTjX4E%m1<$AN=Fwx#4o7;{GLu^wiK_je5 zDV)aE>Zq?<3vu6zoy>#1Q zi-b=n&ZbrW%pzwinp=1ODPsmecsy=0RzxxXYYBS)4xSQZd7DIL_5?h9Ox~#G$FD2X zI)Aa*`6_e(EoSN<_Tl?lx{ohyk0NK6M8$U%?`RCs4itP-53V= zc!*1G(_sO=-abdUFo9o2p}@%eJswqz7NG1H{-A)v{0w`3u2%wEtNnb~xFqWTg*~DL zfbcB`f;z509t%SYBLayGGCdUyOJfWfe^?NVR>sq#loA&ZWTOIOPtV52K}DZ-eI5=! zCGqNApaU_mNIlpvy*SX+*f22E?-8MWoTT0^4WKM0ki0hg)>l9yi!lOsuE=LE|4^aW6ev`9P!gbD5Z&?v8ZOqR?B3pKqo4C!L`@6^tZ$@0P@SS_Le1wLvUUt?$Y8W zRGp3<89)rgC*358#U)I{B+Ml2B5?AStbb#_MmG^}zm)2eYn;rs!`vEM2==5{Q=BV~ zM8S&~mJmLhn@U*x0J;i4{rw*mW*N0Ar<|i3y!;eV@x-j>VDiSJFv;Y1n2#Y=5V zEYWra$Y8bPgIJz}a)g6&or7|jgJT_Ar1+sQ52n;P4V}IHVxq3j&$`7pP@-XPMuzi* z0!vm3<<+&s^?ZkE3ksq{JIG3k`~SW!2OA~^1|Zha3A!D+Oy92+wxQ^qf+?9?8{E29 zLx2Qly|o=lP)OVJn8a;)KZ{}`7`3tFoKjPzqoM^;hgETZ@0H+X!ax_SUn@cu$VnYLQy@=oK&+bg0p-p|Cd*36H?SH%eSjqS5arSVt;>Dv{E{q$C1DJgM zCbO3DUP`c1#QSo)-0KY#Wb)*@K0D_BmzL=V0dUE|(OR1)TcY==7BhcLk(&?VZqWwO zy}`?r2MQNaPAJW@#Yc0gs~eI8+5Atq8cYteC1HnZQi&ezYMZ+$`@tS-*fdlb{Q>(3rn|kxV0gPF!{_4mgiZNytbsOW3k0jP zp7(AXMGvkqU)&3hLOWS~NP+K$27VT6A=6(WpZ@z!I5`bRRsHVXRLsPn0pC0K{XY37 z`bXS(^GDbCud&XRBs9tGgK}&xP;ipdh^Xs@bb<2OL`bvVUlC^WIo(ne)EVdFu~3}j zCT5R;E)2Yn_wM+*%X5gHq)YX#n&;;xjnDw!Oi*kC1RVqbdTS&SjT@(Io=e~ zLpt{uy{Quk0}cs*0>%TV!A^~xD)ZblI4TpvjcFx9q~c5-EDg=vr#s=z{Y{Vs-3S8= zF#zk}U-mFS3`l)Afdy=3Ol~c5>AvuL7V(dT9&ZM$k>ymU7-TUQjdBk0;1d>=&1*36 zsLRx3E~jqk??o=gU^x9_RGUEk<<|Gv~DKs^kG950xd~ zkA%VZFG9wYhJ^H(u*kl|_{^1nNVz8brE7#Kzdu8%^ZZHMQM%mNL?CFKRXm_79`3Uy zeKIJNz=O-TLku$73~I~+qj%ALE!A+hBceAv*E~pS0b_SXfz?QmLx%vM!oKXEnec}B_c={3b_E*@75;_uqyRP1~JFc>ZZsM#d;i|Q<__uFxiJAcnSWPFyjx}5I z?6le>?4WjJX+nla&Zq$S$Da<(i8Iv7-zMhkm~<;wa?zvp6@s>sHtO73-$LM`mL71G zk3kJK(GD=v*YfBt;s9CUmZTpPhdp8Fkmc1SKn0Ut6??J^CKM+CcqdxPAMU zh)chw{i_Rj0|NJ!>(z44naKa+_O|!yytW)AIRh4@KgXP$XnV5%p#*T zWA!h?Mi*MlB5_O`HJ%E}VvR*%&i$*x_cBrVM5v#~qH2mz06{~FByy?YMc_L&;ni?8 ziJJ~sh6{-*>typ%ErZoV7Xxo3MU#N~+mc3#ezW>Fu)yeM;vMb=6BCx`q*6tNsJHU{ zqD->h&PTBI$__ir`BC~|jYnL_pS}k^lNvKdA0^a;U?S;wP1Et-IicMA0vd=x)Yi^Y z$X9WvZU{FYaWc%{URbI1CI;?MmkJObBcq`83;sQ|O)9xe=lTY^t|T68QokRQVSZW* ziI^47pHw`B0S@O`tRx*sPDJgP>E5C05s0$N0hDWcL<`Zt)L!Fo}C`2wQ?CBs%iNQAwqzAPbyYX2tc`%RJ*zH5^KT> z{tf^DFE$v$s}j7)RA66KuhRk;YK`T*wEsQ%;o&)#*nsHVbd^l1+(0;q#N(7*%S zMdPF_+InD=GG*icL}n-(CFn9Hh((B4Iztmz_7b1nK9I6HEMCFYPggmRFynIk{UKz} z+9%W3ZimdmzmS~qjRZ9&m*6Gf<^)D0?41M5-Nel*U%NQADm_v=(pO|edS~h$s*!yk z@5I`yzh0i+g_+yvqh2=#^yCQm@5RK$!f+W>B_!yP_J{2oZdXz~ruoon(|B9GI&+X?I_Kkn$&sU39VncAJhCPUnqg7Dp&;OhrLl?~Wu9@eIo9T9Hl!mvf zlC2zkvG#MR-oX;E{o6pa@36*0^;V8pc9d0$<>JTID#}1X@Y_@$9ru`PC3s%<_5JoQ zP?TrIva%x|N1eG%$ayjM4oy%y0kKy~*+&_+mWDF(bv9s}qVQ`mm-(%5cTn$_1L850 z>W8i9Q#7HACX?z_!Th@qv!o&-AMA-U>(lxiAIu{-s=5<#9g9#WxoGJq5t8d%}-~nPf z)>wfMn5i}kWQEGItF3J*U%=9UQYb^tV-9v4&oqx{c)^TPq5bLTCXS8~TK)#qjCl9$ zY%<(=CsK);5NGa^sjL;8&0&+lS}7_=OBk1vnqINt(&EO{f*ohG%=D&D1)FF`|Nrakja3ITBNvVQ)yQIt8=2j)|1L=I_MCr|rx;+h#TA{4~h zTgo_Hk;|{neZX^g-P4vIQ<`yl0xI`+898}G1a!~z?qFIP@XN3dWg7WgIZRX~} zd1Mov0l@6U2a0&j{i>j{K@J@EqNEZwC!8d4WZmM}X{W{G#b`_Po;)0oa|v{zvjECu zu#n$y&y@&(J0euJRfBd;9^rA_)RI;18>^-`Am~du$>nc9?_}zCXuwt_9KbjWh&7-9 zZe*>cP+dwqu)$FW$H{ z9yAp~XWRRY0gOljK-J<=fI)`)Y2JHV0??dY7uyuILID)!wd}mWudFcJkMX|uTy0pU z$ust=CHEydsW#;f_E)K;(*Y6J8)=U>C;SAmP?QWBHw!uG zRsz*yR$DG}4Whn|cb>)h#uI`lz*WE|d}+taW>8FYyVLy;L*=okia81ufY^K#jgQ{$ zZ;8u`ECv9Uj8&toTAA%3WvmvqK+!8fgXdKFkF--Wj(upJi7bE4_LtzsJhN@0LN5i+ z)A`WAip$_^JV6DLDIvBzx2G}(Jl1j_R;DJnU=tPlTRP%e+z(K&RveVE8J zu?LCsPOu-3ry*+zrrdkE?rXLIZZ!r-NhU_+$^9 z!fNij51;fgfMLds0`q2~cguSOU`Tk!Y_`Jshbh_%{n*SIDEc!K{${$B0&60Dung9` zI#uLh=w?oOdY2>_bQ5lG12^kju?e%@QoQ>fiE=DHe=C7Is%$l-sq^fwT7cVMSR}A) z@Av1qH}UHn1u5zw;Ha&5l!d=r&^JU_pXW}nclx;Xp?Mfj>zfA$Q1s?WI9eg}Q?UQ# zin&cx<#T=s6BH$#VuO>mJ*xdR9B8H_W>eY65VjWHN^@txk}_FH-}@E0;j8u<_v6TD z*!`g zaL0-gzA^Blf!Lpg2F{V3 z5>Z@8eIYe?9rHkc)iVKybtR`%Xt$a*#Ydk~g1A98iXMq*eZZ5d%l*U{AZA+1U4!sC zLLvIi3TT-__5%_YdPgt%RIj$C^pdPJ2u!p@$ug+ek*U(R<4zdtdMSf}CKKPr*vShtRl{dZWHNm2-two$X=OOW}X= z`Sw;5YCqwChmBb6{b<7s@{9CeMC&hXm!blytH!`OX5Yo=r_3g2c7h~&kTw9RxFlUR z_Sv3{|I@z({5nI92HoyBM&RL z1<{&5BcuN~Ib!Q)u7t|y6nUh)A5yqJq~@7!pbKN=og}|FyPWTr+gq>69dNC)>hZ|= z2XjjNP6};;c-z<7ohv3!W|2yjGJquo7~ph8vxJ(pc!Z<`xV2+5iiQ-n__LV{ zGM2E2+R%#@vWb>fGV?whhV?_fR)#HMi_Oy5Z$}#|Js-CDbT-YSZDR*U2QNQHo4N3;RK9jYzvf#bXj9 zGOhgicM@SK8?jATB+pw~zv2|?V%~n&HCVvAtFyCRxfuN+@3qlz#l^@F3kQ7uV6(gT z!N>W}#aj}eSh#ESsSf36PMIqFXxD{fEFAeH9Wk_ z$ptz)}DU zX)>G3(uDWRqsTBOZ*vKp`+JZCP$nS->`^=&?cFo#UP_#d0%AV9 z1z6!SgQmUzE%3t2?zDYxsU<1}O6+-n(cW8QfroMXCb`j;uWWIhrSd(n*A4vIuyuSZ zp;9M7%0eJD+V84_`%F)8XhvNgPqQVpaC6|~Y3tpZKVZ+buusmkLUceLxvlY#MVx4` zelxFD&A|u!5{~Y4)z?$~bqoJ;6e#(p5&y~wP-Y6^8yn9Q6#n>Ti_`rr$C9wp^XXPe zyA(6^y0?%YInW0^u^PfAKNqI`kH9dt^H{dB!X2G{MlZbqu7kg$-{Y8RaEeuW$%a9d&=-XH` zVeI6wi?*Jki~ep+%OQn6dK}1YuyWNwMYo9@KfI`~IMTKw5k-aRin#Bs)P2Xeu=7r{ zDByE{q6iAWp)w8UQv3Pi$89GfKkJd;z_-x>{(6Q1^}k=xfGbMVAL@TjGa#j3{|RTg zcwI(o8{XkqakA3^Rd|fYEq2BMbPQoNWc;>wwt>&@$)Uw4z&Y(JvXf;Rr;QaM=Uh~9TL`qMJMac7f9$60H`D^A<(vj#WL-?h17=#TgukynoDzUC#dKDUz_ z9yTso!{q2BX~g0J@jCl64hBlFo%w8?ucal7HVz1oGVbGRmm1n=S<2*gww59fp{KXH~` zfSA(Om(Fno3St~vntrU-kdJUKX81N2{rFemM6i!YbB z+s-$pK+Ljpq1iqeR$A>5`sTnX8VRpY=@lX{h6K1x)-Gzc@v|BK&5j|kzn`jcAP2?x zW9>$~VIlIcKy32s(<4fAcUJWIEneDW2G5lmpls9cQbEk=qLZ3lta*c~X6#yVcY2P7 zAfMJCK?@H&P(-p#{H<~#2S8&4NqzG^Pv5=|c{cASOW18E2RwV7)nC1%S^KG5V-F{= zSN)V<`#(Qcw-sP0y3fM^bFzSu+pe_HRz3{SYPUUp!Vf5$#qdGfq#1j2{O4g^JKyNI zKQFC)13{tDqX*w%>%zr3Ri~Oj6ae=VG*IdXARbE_fu47f75u0@gg99|B%G_zI_zw^ z3n|Etya7tVW~_x@WqZwBArTZALmNTj#RuoH4!$0rxB1|B8`-k&9FT$c(XfCK?K%8!Y4$HnRt`OG7!U7HQKl=2hN>sN4R9eY zCrJGyBS*#?twp?CUf+lP@&rfo+uxmkuZLTQ*JU7viA^a%u4m_FIv;*8jAyVzK$ToN z+-=&3=eOOzbJe@#dSYV#IqJG!<{9s;-?=l_E>hw6!HX+>bO`rs6@6Iw6gIT67B`O! z;}mOpsXqIl_g#?jChzEKZ+vtg@dBIm1*0U1^d-%>s7wB*^qW`}=c1JQ& z^L@P{kJpr%Z|x3Okoj4~-6wNbN*>$EcN+}_8tpH3c6riO#jr>XmN2Kvn*ZAD;Cyww z<4FBDG!T_7XjndccC6UTC%BBqqlNUC{O9OmVcFNpktt$72kGNH8A5;%g#*3{(=<$l*3wEHC%xFam^)YxUz;ibCrzQO(|=jhV99rtv2^39CwNA)UZv)> z^^=f|VseJQnCkCdx+{_Z_G3XgFF$^yCJaSrdqV%!5P5E*?m1Sv`K*P@>FDb?Do1R` zDmtinj2`cYa*|mcS<62oQ@#0yWupEY5_apdT|(p*vkO5?g@qVsrIk-G?!atLz)O>0 zXR2AfH7lnPi^+~`7dDl}qhDN&sTnimd$1uuc@bKn-!nQ=|8iNq%1`>C=IG=^?KRUh zWITFBzIi1BZGC>8(9m<~rn5e*^#mt^h=4b8^(hdtsMBg^c-+`}{7p&=?-5epgKZ07 zG6q>To@8HcoJ+o)`D_u)`!F(egS`+iu)H9y>4jp;N`|Gta zpOdl|rCX#y#hA5w83St_{`xiv{CXq&6@f|pS%)R{$7dyjT0AB*Hh74$OI7aB=9Xon zJtIrW@eXcIj=9Pdma2!h-&U!yr_Oy7?%boi%a1vevPpK#swr4@F-(c-qizecfCmJs zA6H|r=E(OKg@*y((aWE1bu;zF7rzz->xZDLJ^QDe_XpfvZ+K{x)AKN#ccjVqp6e{t zViXlbzV*Dj`Kh@u!qOc@9WDjzu_8?5pjSP6e(OF!&n5bd(?_G3Z+E{5tMq)S3}v3H}idY<`?{K^v7{Pl)p@WyVMB!J1VCLS}i zhdJ0uV1yxef5O3I_T*`?>X>dcc7{3q`>abDp7<*?rD|xCL?#BG%ie?x1HoEB{ay15 z?cfHrB9-s$PHa;C-pS^k(8 zd+~ql?zc8;NF1svbmtRjz9%=~zA;%@E>2-%o78`mn-&g#EBT}P^Nj+4_(A|^tf+|b z?=|b@Y~oo4eSSE*e|TNO;&>#_2>Wk);o(^|YmP*=T~2G9*W^6I@l)a}q9s@*#WXo8Z>PP6UKg6Zl} z5nD;*V1|$UHMV`u6+rtI`otz&#@GGOG9fuc3LZ?M2 zp*}B=jLJ{ml`{Dp=-*vGEF~F~G?}N^jpE}I4Is=QZsz{APZd0BFLeGblywyX_W_!! z0>hwF(gDMrIUQk{tU7dLcFeL)vQ~UbHF$EPNxTGvWwhUkV4o~+A z8GXvzNzYrms->!p_1WyQe!P{lUS4$VLg8ZDYMQc=&XkcifwXDCx_;ktH58o}D@Wh3 zG~n1bH6voop%IaD*xn2nfToax1OULfR;jGJd` zf7jWZO2DW3wU$mhV9(YyX9nmpK?_YRf9}0IlQMp zDfaG-tjAo_ofMZ@%CK#0m#)pZ;EFyvp#K5~!9(f_c~XF3v19GbQA~ zA&*|~3r04a6-RTUoh!w{Hq$#9?eQSBiI1{43QcSsTxrB!bI;g(9PTxIw=XMfkFVGh^ezH$~hS@Y*(=L#F3_Nx=%o!YM+OyD zEb5Q1LU%T1cF{8~l8D543g`FzPD>g|I*#pqt#Z_rX8uqwk-^V!i;a@l3N@FVmtH}v zc$3Uoa2yzrwaL)%oA`AG@^v)-j!!CoT>D$A)6qk>)JecOYX}q-Xm2|%(hR&EZ|30R zRSEU`3{J6|T#)IgZuT=fd?q2P!iU3uIa-GS1dU>`SPqRh9nEGq^IsLGWDQywJg8Z( zVIUxBbWlhJBbB^8ZM*OR%thTO%3#?9WSg%Vr%MZPNENs0%ja$R$VW<7vMini)^ho1 zfW9cX^ye(NZr)89mo<-6eMBG$5ts@ciNLBR5^&m=G!3HGd$*%mrsa3lZujk(9C&e% z8;P4YmxXOQ1fe&OYEM00u=Ix@w*EmwDu4pid>3s#cPh#6Oc-zD{Ce7B)2S>z2yFiJ z-Hes!9OYt%fpAOvZwCMQYS(hzSXnBf9|`=T1%~GSQqlYk-s+pm?}Tm)MUyV>=J3C# zb$HGnes~MKvFdv@NcGWf!5@YGhrLoHzdmI9tVP>}zkqzgNDfN5!iQst#q<AD5I6d! zC8Q3nAGv^kIvp*#n>}fbe)Hr06V|j#mMwBQZaFz=s)wmo+aVV zy%=+BpR=<7+-g~{(R5(zyY&7sx99i9w$SpVky zBc3T~3tdSqdmIYPmmcCy6*6}hezGU4gw>o1e(?Buq%c1HZF+Q|7Jf|MxerOFB|MEM z_~f=#D6z-cWmU?>KXl(UGIJZV)*(XDtZIlEpEW(% z-m?k@SKNK7cb%dTeZ%-pHZ=GCafQOd;^k#L%iHR2lEwZ@^BX?dKoo8$Fv_q8-r9=u zPc%HQPyKDB_~`!(S0T+4LqMU)I2-k`ur*lp*}n2vLfwzBh&!viD!uYXCu1!Aa;v!5 z*5Hgllu9eq6lcQooqoPIlS6)83(YlKQuem^>Uj%=PTLB^!nKRoAztX`Jh zD@BbaFV9MH^+Zr;Z71v~74#D+EP*eYG$lu(6#CzeV9`;fxNRBTO#~e88d3qU-{^3P zYjE~h&tw~iH;T9ynG|lEAEqoT*##L7Uap#bUVcbgxzxx!`x*0sYErTj{ZbZk5fh*?DKMX{fk{^My{2mn#gG4Vs#aoN9!>f~r z-HETKliU@I8OsRS<76;8D+rWE=7kGEA6T(R;7syAl;F*%i>%1*hZ)i($jH8B#1hX= zCc#AI^*HHGJ0cITyoJ)@=h!cX>veU8(!u_Bm==9SdZ%rkdDJ&Z0Bl1~iFa1aiDqk; zOUo5H?~wS@uX3k0s$2HE)*D)c@E@vwt{pdcy=SauHXsr;Rz5hg?Wm)($*svXmzgJJ z5meo|zFR^7I)VoA&ONEg4f}RwJ$;d~P6!zKsq;U)Aqc~js7^ikDfs0BmC4VZ5bpqO zzoYR}lt45<5(k%!d6+CKSn%=RUIroEo=}V_Ju~>ih%Im4GJQ4--R3vC7xtIW@3(Tk z2y)x@my}6*v?N0O(tVJ5cBc`zGSd%a<6b6CPQI*c^Y0*luSU7Nuoke=@$l^U47Ywy zmlt;qs_tJ!=zGoab+ip`(y@^N{IE`=v+<&n6eWq&cKO)<*40j2pW&EY_&k1dedu)^)MZ6#M>pV%%_1)HjZMmQw&Y!@+?M_`mM1GpdQLT~7cZMg#RNiDSg7(m1ys6jP|2&K7?6-;_4OB$o1LMIj8WNN?;JQYD z66o7-ctK0~9(Nld!;phkk__nQ19+N#<)UrF3XW2|IIm&0&*NK$5mgI7A0i{57CyX% zS|ZN!vIv-Qf)v2gfs&#kzhisqa>=T6`BKg81qz^j?3IS7JiF~rJb`dd(6mDR-7rLT z1q_)HM-28IUp!?^qxhnMqr&~A2M0-j<_IGQ3Y9hPR{Z{(E1v?8c32BNx8i_Ib15Ta=NU=}A++i*-((5tM>39{R z{$SI`Oy`g6k-dbmt*W0nUI$fGewTpSa`8Z9qt2SLK&j63st9JG>I>6KFlhb>ij0E4 zS-?Rpd2DgQI$F&>Eg%69g|7lV8dffkm?Qm_Erk5&fFJ3YyV5HabPI84Us&SQYN7Pj zEdc5*DwJ+m@=lA){GGUY0G!d3`BeF^FooFl|Mh2ZR|4Z!U%lYebknhb^&)3kvDldW zdDeiT;akz0MR@Q0{J9SwS2mKFn1cs& zejI0H5u)^MPiC$EAu4NWWbxK(>|3`WGs|C$Uqb+;>+j8RNm1!_VpQ*`jzQBr#-=1o z%O+N8H7mERr4PA6`ij>q(1y*QX>1CxB<;i_4L(u0sNAk1R z9WP_9lsw73K_4xxZs#NCi4At*`V%t>oHwGIy{7PzFw}KV0hf1wT^`f$V1@$QoaF3% zacOQq<-L@wW=d`x?{aRt9IBGci;rZY5YwygCLW(mZMT(Em;YIP^uR5tCeMjKg~_>> z0vlw!!YxS10BIl z+O2wMY|)OXcI$G--V`{7iuJG{VUwO}Ht7CwA&wPOHkgVvbT^k(HN5*iL{TPq#v^DXMbYHXP+jg#dNvsGW)hg z!Q@;S>pvr`sogVT%PYFLBCe*Yp*yJiD(XJ>F$mULZPO2d85wNEoSnzVm(oOd+jFKn&u3l@w#Qv`KB zRvR2CljLEdS$VtHgT*DU;hgg2n*ICzhY1sK`q9VBs@EB1&Y#ri_klPa)~eXw>Mf|>DL-jZJ5F6gX%%TdMcoTO@XnIfr|oyGNsL`Ip;80-##W%yPS#ojad$t zR41eR0s-*gYcNNYkZYCi-k!lN_Bd3&-e!{~DYz)0V>f;bnLuj*{pVn!V>-81oQ*wJ zss@SC=z8tnF@qY-TZ7^m!_O0+m)(~b>xZ5gfDTrz{x)49ngoxnWLJFf&8w?&l}XKj z#e(v6*YbMKg;TvOq0*L#pjsMUqEC=RLnK-I@uSFjM}=_b3Gz*7D?$p~rXJ+D#eAz+ zxITQD7z!j188_J zT4vheBiQSi;lZDu`G=|3S=%b{&HR4$$Xu6TCLKir3vHS-r|4&K<-Rr*`okc>fqt43 z9r}=CK~mhwBzm_Lou?lXjR@Up=d{&e#RVcSYqQ~7P0MZ^+^^2|{YlJej_oyy?#gVK zn=sR{$?QY#7ten_gYSH?{hZ^5=aUgToWvix&ADRDwg#91Q#0Gc`C{TP+0FIGBn!cD zs`_xzIjhH;W1R&19Dx%HVNp;T%fw`Dud|UQxku>4!jU7^*1)(q z%y?Pt9sUz_67x71m`2^^iwz zSnzc{?5e%R71f#qLrA~brGwR3ym?)s#g?t5J~*I?H|A1FJq2J8>1XcM?lJ9p=MHj_ z&aV>AHpz8mU55Jh!X;N54;9jR(~V!s$O{HtXq6KnQ$qe#>vAtZf=`t_E;~Y}|8s$p z-8Hre@)MMjOVL7y>yD-2pXXoUy*{$Zm>a#W`_U%Mh10u+%owHUX)1&ot>6Mg)+cd(q5M$+#T znc%CM9rg@n!lyp9C&Q>;!W!B5$x*b_Gd|U2zG@qW!=;dfa${UL0jZX_ki+SD@mZsW z-TG?H&M%gVsFb_l2$v<1rFXC3wsRZsLJ7_MFgNdbfgC%TSgKP@e{aWn43D!X@Tn!V zK6=|ApR6xDOrv*EwcU4#F^b?+t+1vTI>liH!Sc^&RvDHX@(imlswL}YXBO?l3lW-p zqnglXg|sIw3Z$Wu*+QqMjMjc?RFK+24rzgB;(AvYVe@3qqc9g?c>(px)`Erp7b6pF zlTDSW03n&z@%c8Cr@PK?s^j!TCXd4j{?;DJ54{!h36Rigi$#J|7&_ox4zQ2+kzzd!x|Pw|i5|Htb0Q5{-? aZ6A#r8<#fl!k}9LfQG8BN{RCQfd2sck~1p+ literal 0 HcmV?d00001 diff --git a/Blockzilla/Assets.xcassets/Contents.json b/Blockzilla/Assets.xcassets/Contents.json new file mode 100644 index 0000000000..da4a164c91 --- /dev/null +++ b/Blockzilla/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Blockzilla/Assets.xcassets/FooterLogo.imageset/Contents.json b/Blockzilla/Assets.xcassets/FooterLogo.imageset/Contents.json new file mode 100644 index 0000000000..aebb8b215c --- /dev/null +++ b/Blockzilla/Assets.xcassets/FooterLogo.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "focus-icon-footer.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "focus-icon-footer@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "focus-icon-footer@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Blockzilla/Assets.xcassets/FooterLogo.imageset/focus-icon-footer.png b/Blockzilla/Assets.xcassets/FooterLogo.imageset/focus-icon-footer.png new file mode 100644 index 0000000000000000000000000000000000000000..326e51ffbeb88ee91b38c27d846e7c062f861e73 GIT binary patch literal 2294 zcmV004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 zVoOIv00000008+zyMF)x010qNS#tmY3labT3lag+-G2N400>%1L_t(o!_AocS5;*i z$3Nf0;no36K?XH1LFU2o(u(Oa5>%`dya3y5gun3QTBDnrLRyoiH8nLxD5fQ;rKTb{ zirnP#%n$oHE*4AD8_1c~RKK%A(hAT3@MWsCV`9;e z+pD)FB)uwert9NV{kv)^{?f=UNGFEQM>qiUnXo08T5_a&VLj{jaj zfK*HS70?Ob6{Lyx% zTY=S}bEz=wn-el^yJ{-sE-sSjk?5C{<1QWo&L8SLVUHOw2bcs^0XYUAzaNI90P(pl z5Ug{+A0@7PjAl#fdfadhSO~lh>ITjlyb5dpy1`?z_N~gSy0YN0Ot*U+8+cN4fE$s9Ms?pp8HUQdM(feGZGW0fWrz%`kh&lmd^t8gW~3(F`f!r9+|+s25$2N zNkeAOf}AqQjJJI7$wh#@b=AwH=s`k-NLz$HLuB|wJ-3EZd>%lEZWssVS|-E|mRRKK zdk#qu1gkt@zA%_JW=uiRqzpnC9)p>PJfR0j2+dQ1GzyH*0SGXf3R}kJy2>ES!6qyM z#$eK*z#z{*#|@@uj%vd~y+}8N#@xj@NW&r>V~<*@wZo8l=KuuMyFeV~JIJs>!rza2 zZNy;QV9=odA>_d$$ET2%36&y-+{Md;20=t|H@Br)+OL7W00xjofqu~EsWAL`0mx#9 z88ldGU5tALWKv~kKS*pue}di*;K#t-1}`uCg%oi zy#?H25wzf;P=l>DFcY|PwLk<~S^<=qk@RLQ8&&&SZN)LhCv40%?=NMwZTi>M6 zEzpXl`q~8OCTNMIXF%ToF&2o;MF8d)yy6OV8>}%XHTcvZ*I>CpzeU5wa)bU4!tg=N zWATdbEM$YekII`ig3e1C2fYA{A$+(-sZ9 z7+ma3w?wn=B0k{nd)|?vHdd;roNNKDkn|}iPPB>}0i6OB16zqYQy-`=6^0Y@!R-rz zERU~zFVa1();3q~bAwEG^-rB)*gg9m58KH8Jv&zVfN%x$ouo3*`BZDiRCD8=(nw7W z1OFy!p<6+DM2g%ddhiHQan5jsioDds3{HCd#SH#x@RY$f1~>hEnL$ri7(SR65}>KR zZW}26e%p}~vwzs!*iZ^=M4AS^jWV8R4Av6WIf&df^Dr+hmpyyex?5#%#sMq+^M_qw zIOiH_7Ua$>pJvK|uT!lZBMun#VCiY#B~Ui-u|WaRgW|x`?!K7E+lay4Lt*%!F$nTq zy@W+egs=Ve)wH5rVff>GA(Jul!`TbpPi;zWC;*;AD&CY#UO#*O!qlc@atqRC;1=i{ zQ4wASY&Ix$z__=#8{U7H7?dW<%ga3m*LYq0Pe&NuUteDSmbbtjgIi_E zTzEvyIY*o3#yw@8-9x|^NCmE7CK1FrkG<7EiMKWRu+VF;)!jYq?(TNw5(ee|XU2T` z88WlKVU{qn&yKaV4J-=MU0midI1ZflqaDz<60hWr@xV~x8q z-;c8ftG(S_bOm29vo)AqHM5>$ZEaKYas28gYI6|e5e4^JqI%Z{^m$QU>78MTPb{Mr z?LNHZe_+g_1=Z!lVc4I(=Z+v)YG##~4VYQ?v9`96g%}pS)7umT&semhkZJHQi*_1r z8}uIx!|@;p;$9yoT*dMBFr3~M1o6XR_{ik6y`iD#Xlv`DcIAH4cJ%%rh@S9+|FGtGyEVsCkQo-jiWZ?0(iTyNJLYA)9P2jqRX8{d5G Q=l}o!07*qoM6N<$f?@bNOaK4? literal 0 HcmV?d00001 diff --git a/Blockzilla/Assets.xcassets/FooterLogo.imageset/focus-icon-footer@2x.png b/Blockzilla/Assets.xcassets/FooterLogo.imageset/focus-icon-footer@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..018ff85d6569cbe5a8b3263c1321d8a39e90fa90 GIT binary patch literal 6149 zcmV+g82aalP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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 literal 0 HcmV?d00001 diff --git a/Blockzilla/Assets.xcassets/HeaderLogo.imageset/Contents.json b/Blockzilla/Assets.xcassets/HeaderLogo.imageset/Contents.json new file mode 100644 index 0000000000..b04b6004f4 --- /dev/null +++ b/Blockzilla/Assets.xcassets/HeaderLogo.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "focus-wordmark.pdf", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Blockzilla/Assets.xcassets/HeaderLogo.imageset/focus-wordmark.pdf b/Blockzilla/Assets.xcassets/HeaderLogo.imageset/focus-wordmark.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3931e749ae5c2cdcf39f5c512b5f6d5ea801a2b0 GIT binary patch literal 44293 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 literal 0 HcmV?d00001 diff --git a/Blockzilla/Assets.xcassets/Logo.imageset/Contents.json b/Blockzilla/Assets.xcassets/Logo.imageset/Contents.json new file mode 100644 index 0000000000..9eb28eb570 --- /dev/null +++ b/Blockzilla/Assets.xcassets/Logo.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "focus-logo.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "focus-logo@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "focus-logo@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Blockzilla/Assets.xcassets/Logo.imageset/focus-logo.png b/Blockzilla/Assets.xcassets/Logo.imageset/focus-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..0192d34d1c8c8167cce475e3619624edec06d912 GIT binary patch literal 12090 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 JE|)S2{2wZgi9G-S literal 0 HcmV?d00001 diff --git a/Blockzilla/Assets.xcassets/Logo.imageset/focus-logo@2x.png b/Blockzilla/Assets.xcassets/Logo.imageset/focus-logo@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3c40a9575b8b9fb0e084a81b888cad57992cf02c GIT binary patch literal 25423 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 bf&DL?ao&%nD~FhB5U{~vfW3vjW9 ())! + private var blocked = false + + override init() { + super.init() + + server.addHandlerForMethod("GET", path: "/focus-detector", requestClass: GCDWebServerRequest.self) { [weak self] request -> GCDWebServerResponse! in + if let loadedBlockedPage = request.query["blocked"] as? String where loadedBlockedPage == "1" { + // Second page loaded, so we aren't blocked. + self?.blocked = false + return nil + } + + // The blocker list is loaded asynchronously, so the first page load of the SVC may not be blocked + // even if we have a block rule enabled. As a workaround, try redirecting to a second page; if it + // still loads, assume the blocker isn't enabled. + return GCDWebServerDataResponse(HTML: "") + } + + server.startWithPort(0, bonjourName: nil) + } + + func detectEnabled(parentView: UIView, callback: Bool -> ()) { + guard self.svc == nil && self.callback == nil else { return } + + blocked = true + self.callback = callback + + let detectURL = NSURL(string: "http://localhost:\(server.port)/focus-detector")! + svc = SFSafariViewController(URL: detectURL) + svc.delegate = self + parentView.addSubview(svc.view) + } + + func safariViewController(controller: SFSafariViewController, didCompleteInitialLoad didLoadSuccessfully: Bool) { + // The trigger page loaded; now try loading the blocked page. We don't get any callback if the page + // was blocked, so set an arbitrary timeout. + let delayTime = dispatch_time(DISPATCH_TIME_NOW, Int64(100 * Double(NSEC_PER_MSEC))) + dispatch_after(delayTime, dispatch_get_main_queue()) { + self.svc.view.removeFromSuperview() + self.svc = nil + self.callback(self.blocked) + self.callback = nil + } + } + + deinit { + server.stop() + } +} diff --git a/Blockzilla/Blockzilla.entitlements b/Blockzilla/Blockzilla.entitlements new file mode 100644 index 0000000000..d791cd1200 --- /dev/null +++ b/Blockzilla/Blockzilla.entitlements @@ -0,0 +1,10 @@ + + + + + com.apple.security.application-groups + + group.org.mozilla.ios.Focus + + + diff --git a/Blockzilla/ErrorFooterView.swift b/Blockzilla/ErrorFooterView.swift new file mode 100644 index 0000000000..d3b23bb366 --- /dev/null +++ b/Blockzilla/ErrorFooterView.swift @@ -0,0 +1,81 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +import Foundation +import UIKit + +class ErrorFooterView: UIView { + init() { + super.init(frame: CGRectZero) + + backgroundColor = UIColor.blackColor() + + let upperBorder = UIView() + upperBorder.backgroundColor = UIConstants.Colors.FocusRed + addSubview(upperBorder) + + let notEnabledLabel = UILabel() + notEnabledLabel.text = UIConstants.Strings.NotEnabledError + notEnabledLabel.textColor = UIConstants.Colors.FocusRed + notEnabledLabel.textAlignment = NSTextAlignment.Center + notEnabledLabel.font = UIConstants.Fonts.SmallerFont + addSubview(notEnabledLabel) + + let instructionsLabel1 = UILabel() + instructionsLabel1.text = NSLocalizedString("Enable Focus in", comment: "Instructions shown in main app when Focus is disabled in system settings") + instructionsLabel1.textColor = UIConstants.Colors.DefaultFont + instructionsLabel1.font = UIConstants.Fonts.SmallerFont + addSubview(instructionsLabel1) + + let instructionsLabel2 = UILabel() + instructionsLabel2.text = NSLocalizedString("Settings → Safari → Content Blockers", comment: "Instructions shown in main app when Focus is disabled in system settings") + instructionsLabel2.textColor = UIConstants.Colors.DefaultFont + instructionsLabel2.numberOfLines = 0 + instructionsLabel2.textAlignment = NSTextAlignment.Center + instructionsLabel2.font = UIConstants.Fonts.SmallerFont + addSubview(instructionsLabel2) + + let settingsButton = UIButton() + settingsButton.setTitle(UIConstants.Strings.OpenSettings, forState: UIControlState.Normal) + settingsButton.setTitleColor(UIConstants.Colors.FocusBlue, forState: UIControlState.Normal) + settingsButton.setTitleColor(UIConstants.Colors.ButtonHighlightedColor, forState: UIControlState.Highlighted) + settingsButton.addTarget(self, action: "settingsClicked:", forControlEvents: UIControlEvents.TouchUpInside) + settingsButton.titleLabel?.font = UIConstants.Fonts.SmallerFontSemibold + addSubview(settingsButton) + + upperBorder.snp_makeConstraints { make in + make.height.equalTo(2) + make.top.width.equalTo(self) + } + + notEnabledLabel.snp_makeConstraints { make in + make.top.equalTo(self).offset(10) + make.leading.trailing.equalTo(self) + } + + instructionsLabel1.snp_makeConstraints { make in + make.top.equalTo(notEnabledLabel.snp_bottom).offset(10) + make.centerX.equalTo(self) + } + + instructionsLabel2.snp_makeConstraints { make in + make.top.equalTo(instructionsLabel1.snp_bottom) + make.leading.trailing.equalTo(self) + } + + settingsButton.snp_makeConstraints { make in + make.top.equalTo(instructionsLabel2.snp_bottom).offset(10) + make.centerX.equalTo(self) + make.bottom.equalTo(self).offset(-10) + } + } + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + @objc func settingsClicked(sender: UIButton) { + UIApplication.sharedApplication().openURL(NSURL(string: UIApplicationOpenSettingsURLString)!) + } +} \ No newline at end of file diff --git a/Blockzilla/Info.plist b/Blockzilla/Info.plist new file mode 100644 index 0000000000..389a14a074 --- /dev/null +++ b/Blockzilla/Info.plist @@ -0,0 +1,50 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + Focus + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 20 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + arm64 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + + + diff --git a/Blockzilla/IntroTour/InstructionsView.swift b/Blockzilla/IntroTour/InstructionsView.swift new file mode 100644 index 0000000000..79c8fbe1c1 --- /dev/null +++ b/Blockzilla/IntroTour/InstructionsView.swift @@ -0,0 +1,76 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +import Foundation + +class InstructionsView: UIView { + init() { + super.init(frame: CGRectZero) + + let settingsText = NSLocalizedString("Open Settings App", comment: "Label for instructions to enable shown on the second introduction screen") + let safariText = NSLocalizedString("Tap Safari, then select Content Blockers", comment: "Label for instructions to enable shown on the second introduction screen") + let enableText = NSLocalizedString("Enable Focus", comment: "Label for instructions to enable shown on the second introduction screen") + + let settingsInstruction = InstructionView(text: settingsText, image: UIImage(named: "instructions-cog")!) + let safariInstruction = InstructionView(text: safariText, image: UIImage(named: "instructions-safari")!) + let enableInstruction = InstructionView(text: enableText, image: UIImage(named: "instructions-switch")!) + + addSubview(settingsInstruction) + addSubview(safariInstruction) + addSubview(enableInstruction) + + let instructionOffset = 50 + + settingsInstruction.snp_makeConstraints { make in + make.top.leading.trailing.equalTo(self) + } + + safariInstruction.snp_makeConstraints { make in + make.leading.trailing.equalTo(self) + make.top.equalTo(settingsInstruction.snp_bottom).offset(instructionOffset) + } + + enableInstruction.snp_makeConstraints { make in + make.leading.trailing.bottom.equalTo(self) + make.top.equalTo(safariInstruction.snp_bottom).offset(instructionOffset) + } + } + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } +} + +private class InstructionView: UIView { + init(text: String, image: UIImage) { + super.init(frame: CGRectZero) + + let imageView = UIImageView() + imageView.image = image + addSubview(imageView) + + let label = UILabel() + label.text = text + label.textColor = UIConstants.Colors.DefaultFont + label.numberOfLines = 0 + label.font = UIConstants.Fonts.DefaultFontMedium + label.setContentCompressionResistancePriority(1000, forAxis: UILayoutConstraintAxis.Vertical) + addSubview(label) + + imageView.snp_makeConstraints { make in + make.leading.centerY.equalTo(self) + make.width.equalTo(image.size.width) + make.height.equalTo(image.size.height) + } + + label.snp_makeConstraints { make in + make.leading.equalTo(imageView.snp_trailing).offset(30) + make.trailing.top.bottom.equalTo(self) + } + } + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } +} \ No newline at end of file diff --git a/Blockzilla/IntroTour/IntroAssets.xcassets/Contents.json b/Blockzilla/IntroTour/IntroAssets.xcassets/Contents.json new file mode 100644 index 0000000000..da4a164c91 --- /dev/null +++ b/Blockzilla/IntroTour/IntroAssets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Blockzilla/IntroTour/IntroAssets.xcassets/enabled-no.imageset/Contents.json b/Blockzilla/IntroTour/IntroAssets.xcassets/enabled-no.imageset/Contents.json new file mode 100644 index 0000000000..c6a7541b2c --- /dev/null +++ b/Blockzilla/IntroTour/IntroAssets.xcassets/enabled-no.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "enabled-no.pdf", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Blockzilla/IntroTour/IntroAssets.xcassets/enabled-no.imageset/enabled-no.pdf b/Blockzilla/IntroTour/IntroAssets.xcassets/enabled-no.imageset/enabled-no.pdf new file mode 100644 index 0000000000000000000000000000000000000000..fd3f2a112bcf08e4d4aa9a4e7c19821f63f21db4 GIT binary patch literal 73007 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
!+$KI78Ule^=$+FLo+OigwwutUu_DGRo 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 literal 0 HcmV?d00001 diff --git a/Blockzilla/IntroTour/IntroAssets.xcassets/instructions-safari.imageset/Contents.json b/Blockzilla/IntroTour/IntroAssets.xcassets/instructions-safari.imageset/Contents.json new file mode 100644 index 0000000000..9b7ca1e732 --- /dev/null +++ b/Blockzilla/IntroTour/IntroAssets.xcassets/instructions-safari.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "instructions-safari.pdf", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Blockzilla/IntroTour/IntroAssets.xcassets/instructions-safari.imageset/instructions-safari.pdf b/Blockzilla/IntroTour/IntroAssets.xcassets/instructions-safari.imageset/instructions-safari.pdf new file mode 100644 index 0000000000000000000000000000000000000000..84c20bc5fb264e396cc207766d95fd947103a51b GIT binary patch literal 4125 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 HwITlp*o}n( literal 0 HcmV?d00001 diff --git a/Blockzilla/IntroTour/IntroSlideFinish.swift b/Blockzilla/IntroTour/IntroSlideFinish.swift new file mode 100644 index 0000000000..c18756f7e1 --- /dev/null +++ b/Blockzilla/IntroTour/IntroSlideFinish.swift @@ -0,0 +1,229 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +import Foundation + +protocol IntroSlideFinishDelegate: class { + func introSlideFinishDidPressGetStarted(introSlideFinish: IntroSlideFinish) + func introSlideFinishDidPressOpenSettings(introSlideFinish: IntroSlideFinish) +} + +class IntroSlideFinish: UIView { + weak var delegate: IntroSlideFinishDelegate? + + private let enabledStateContainer = UIView() + private let getStartedButton = UIButton() + private let settingsButton = UIButton() + private let enabledStateView = EnabledStateView() + private let checkingStateView = CheckingStateView() + private let disabledStateView = DisabledStateView() + + enum EnabledState { + case Enabled + case Disabled + case Checking + } + + init() { + super.init(frame: CGRectZero) + + addSubview(enabledStateContainer) + + enabledStateView.hidden = true + enabledStateContainer.addSubview(enabledStateView) + + checkingStateView.hidden = true + enabledStateContainer.addSubview(checkingStateView) + + disabledStateView.hidden = true + enabledStateContainer.addSubview(disabledStateView) + + getStartedButton.setTitle(NSLocalizedString("Get Started", comment: "Button to close the intro screen"), forState: UIControlState.Normal) + getStartedButton.setTitleColor(UIConstants.Colors.FocusBlue, forState: UIControlState.Normal) + getStartedButton.setTitleColor(UIConstants.Colors.ButtonHighlightedColor, forState: UIControlState.Highlighted) + getStartedButton.addTarget(self, action: "getStartedClicked:", forControlEvents: UIControlEvents.TouchUpInside) + getStartedButton.titleLabel?.font = UIConstants.Fonts.DefaultFontSemibold + addSubview(getStartedButton) + + settingsButton.setTitle(UIConstants.Strings.OpenSettings, forState: UIControlState.Normal) + settingsButton.setTitleColor(UIConstants.Colors.FocusBlue, forState: UIControlState.Normal) + settingsButton.setTitleColor(UIConstants.Colors.ButtonHighlightedColor, forState: UIControlState.Highlighted) + settingsButton.addTarget(self, action: "settingsClicked:", forControlEvents: UIControlEvents.TouchUpInside) + settingsButton.titleLabel?.font = UIConstants.Fonts.DefaultFontSemibold + addSubview(settingsButton) + + enabledStateContainer.snp_makeConstraints { make in + make.edges.equalTo(self) + } + + enabledStateView.snp_makeConstraints { make in + make.edges.equalTo(enabledStateContainer) + } + + checkingStateView.snp_makeConstraints { make in + make.edges.equalTo(enabledStateContainer) + } + + disabledStateView.snp_makeConstraints { make in + make.edges.equalTo(enabledStateContainer) + } + + getStartedButton.snp_makeConstraints { make in + make.centerX.equalTo(self) + make.bottom.equalTo(self).offset(-70) + } + + settingsButton.snp_makeConstraints { make in + make.center.equalTo(getStartedButton) + } + + updateButtons() + showEnabledStateView(CheckingStateView()) + } + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + var enabledState = EnabledState.Checking { + didSet { + updateButtons() + + switch enabledState { + case EnabledState.Enabled: + showEnabledStateView(enabledStateView) + case EnabledState.Disabled: + showEnabledStateView(disabledStateView) + case EnabledState.Checking: + showEnabledStateView(checkingStateView) + } + } + } + + private func updateButtons() { + let enabled = enabledState == EnabledState.Enabled + getStartedButton.animateHidden(!enabled, duration: 0.3) + settingsButton.animateHidden(enabled, duration: 0.3) + } + + private func showEnabledStateView(view: UIView) { + enabledStateContainer.subviews.forEach { v in + v.animateHidden(v != view, duration: 0.3) + } + } + + @objc func getStartedClicked(sender: UIButton) { + delegate?.introSlideFinishDidPressGetStarted(self) + } + + @objc func settingsClicked(sender: UIButton) { + delegate?.introSlideFinishDidPressOpenSettings(self) + } +} + +private class EnabledStateView: UIView { + init() { + super.init(frame: CGRectZero) + + let label = UILabel() + label.text = NSLocalizedString("Focus is enabled!", comment: "Text displayed at the final step of the intro screen") + label.textColor = UIConstants.Colors.FocusGreen + addSubview(label) + + let image = UIImageView(image: UIImage(named: "enabled-yes")) + addSubview(image) + + label.snp_makeConstraints { make in + make.center.equalTo(self) + } + + image.snp_makeConstraints { make in + make.centerX.equalTo(self) + make.baseline.equalTo(label.snp_top).offset(-30) + make.height.width.equalTo(650/7) + } + } + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + +} + +private class DisabledStateView: UIView { + init() { + super.init(frame: CGRectZero) + + let label = UILabel() + label.text = UIConstants.Strings.NotEnabledError + label.textColor = UIConstants.Colors.FocusRed + label.setContentCompressionResistancePriority(1000, forAxis: UILayoutConstraintAxis.Vertical) + addSubview(label) + + let instructionsView = InstructionsView() + addSubview(instructionsView) + + let image = UIImageView(image: UIImage(named: "enabled-no")) + addSubview(image) + + instructionsView.snp_makeConstraints { make in + make.center.equalTo(self) + make.width.equalTo(220) + } + + label.snp_makeConstraints { make in + make.centerX.equalTo(self) + make.bottom.equalTo(instructionsView.snp_top).offset(-50) + } + + image.snp_makeConstraints { make in + make.centerX.equalTo(self) + make.top.greaterThanOrEqualTo(self).offset(20) + make.bottom.lessThanOrEqualTo(label.snp_top).offset(-20) + make.size.lessThanOrEqualTo(650/7) + make.width.equalTo(image.snp_height) + } + } + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } +} + +private class CheckingStateView: UIView { + init() { + super.init(frame: CGRectZero) + + let indicator = UIActivityIndicatorView() + indicator.startAnimating() + addSubview(indicator) + + let label = UILabel() + label.text = NSLocalizedString("Checking installation…", comment: "Text displayed at the final step of the intro screen") + label.textColor = UIConstants.Colors.FocusOrange + addSubview(label) + + let instructionsView = InstructionsView() + addSubview(instructionsView) + + instructionsView.snp_makeConstraints { make in + make.center.equalTo(self) + make.width.equalTo(220) + } + + label.snp_makeConstraints { make in + make.centerX.equalTo(self) + make.bottom.equalTo(instructionsView.snp_top).offset(-50) + } + + indicator.snp_makeConstraints { make in + make.centerX.equalTo(self) + make.bottom.equalTo(label.snp_top).offset(-20) + } + } + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } +} diff --git a/Blockzilla/IntroTour/IntroSlideHowTo.swift b/Blockzilla/IntroTour/IntroSlideHowTo.swift new file mode 100644 index 0000000000..5458b59d9f --- /dev/null +++ b/Blockzilla/IntroTour/IntroSlideHowTo.swift @@ -0,0 +1,60 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +import Foundation + +protocol IntroSlideHowToDelegate: class { + func introSlideHowToDidPressSettings(introSlideHowTo: IntroSlideHowTo) +} + +class IntroSlideHowTo: UIView { + weak var delegate: IntroSlideHowToDelegate? + + init() { + super.init(frame: CGRectZero) + + let instructionsView = InstructionsView() + addSubview(instructionsView) + + let mustBeEnabledLabel = UILabel() + mustBeEnabledLabel.text = NSLocalizedString("Focus must be enabled in Settings to work.", comment: "Notice label show on second introduction screen") + mustBeEnabledLabel.numberOfLines = 0 + mustBeEnabledLabel.textAlignment = NSTextAlignment.Center + mustBeEnabledLabel.textColor = UIConstants.Colors.FocusOrange + addSubview(mustBeEnabledLabel) + + let openSettingsButton = UIButton() + openSettingsButton.setTitle(UIConstants.Strings.OpenSettings, forState: UIControlState.Normal) + openSettingsButton.setTitleColor(UIConstants.Colors.FocusBlue, forState: UIControlState.Normal) + openSettingsButton.setTitleColor(UIConstants.Colors.ButtonHighlightedColor, forState: UIControlState.Highlighted) + openSettingsButton.addTarget(self, action: "settingsClicked:", forControlEvents: UIControlEvents.TouchUpInside) + openSettingsButton.titleLabel?.font = UIConstants.Fonts.DefaultFontSemibold + + addSubview(openSettingsButton) + + instructionsView.snp_makeConstraints { make in + make.centerX.equalTo(self) + make.top.equalTo(self).offset(100) + make.width.equalTo(220) + } + + openSettingsButton.snp_makeConstraints { make in + make.centerX.equalTo(self) + make.bottom.equalTo(self).offset(-70) + } + + mustBeEnabledLabel.snp_makeConstraints { make in + make.leading.trailing.equalTo(self).inset(30) + make.bottom.equalTo(openSettingsButton.snp_top).offset(-30) + } + } + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + @objc func settingsClicked(sender: UIButton) { + delegate?.introSlideHowToDidPressSettings(self) + } +} \ No newline at end of file diff --git a/Blockzilla/IntroTour/IntroSlideWelcome.swift b/Blockzilla/IntroTour/IntroSlideWelcome.swift new file mode 100644 index 0000000000..555d1b62b2 --- /dev/null +++ b/Blockzilla/IntroTour/IntroSlideWelcome.swift @@ -0,0 +1,47 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +import Foundation + +class IntroSlideWelcome: UIView { + init() { + super.init(frame: CGRectZero) + + let welcomeLabel = UILabel() + welcomeLabel.text = NSLocalizedString("Welcome", comment: "Text displayed above Focus description when first launching the app") + welcomeLabel.textColor = UIConstants.Colors.FocusOrange + addSubview(welcomeLabel) + + let waveView = WaveView() + waveView.active = true + addSubview(waveView) + + let descriptionLabel = UILabel() + descriptionLabel.text = NSLocalizedString("Focus helps you improve the privacy and performance of your mobile browsing experience. You control what types of page content are allowed.", comment: "Description text shown on the welcome slide of the tour") + descriptionLabel.textColor = UIConstants.Colors.DefaultFont + descriptionLabel.numberOfLines = 0 + descriptionLabel.textAlignment = NSTextAlignment.Center + addSubview(descriptionLabel) + + waveView.snp_makeConstraints { make in + make.top.equalTo(self).offset(50) + make.leading.trailing.equalTo(self) + make.height.equalTo(200) + } + + welcomeLabel.snp_makeConstraints { make in + make.centerX.equalTo(self) + make.bottom.equalTo(descriptionLabel.snp_top).offset(-20) + } + + descriptionLabel.snp_makeConstraints { make in + make.bottom.equalTo(self).offset(-100) + make.leading.trailing.equalTo(self).inset(30) + } + } + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } +} diff --git a/Blockzilla/IntroTour/IntroViewController.swift b/Blockzilla/IntroTour/IntroViewController.swift new file mode 100644 index 0000000000..4d5cc94106 --- /dev/null +++ b/Blockzilla/IntroTour/IntroViewController.swift @@ -0,0 +1,157 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +import UIKit +import SnapKit + +protocol IntroViewControllerDelegate: class { + func introViewControllerWillDismiss(introViewController: IntroViewController) +} + +class IntroViewController: UIViewController, UIScrollViewDelegate, IntroSlideFinishDelegate, IntroSlideHowToDelegate { + weak var delegate: IntroViewControllerDelegate? + + private var pageControl: UIPageControl! + private var scrollView: UIScrollView! + private let enabledDetector = BlockerEnabledDetector() + private let finishSlide = IntroSlideFinish() + private let skipButton = UIButton() + + override func viewDidLoad() { + view.backgroundColor = UIConstants.Colors.Background + + let welcomeSlide = IntroSlideWelcome() + let howToSlide = IntroSlideHowTo() + howToSlide.delegate = self + finishSlide.delegate = self + let introSlides = [welcomeSlide, howToSlide, finishSlide] + + let titleView = TitleView() + view.addSubview(titleView) + + skipButton.setTitle(NSLocalizedString("Skip", comment: "Button at top of the last intro screen when Focus is not enabled"), forState: UIControlState.Normal) + skipButton.setTitleColor(UIConstants.Colors.FocusBlue, forState: UIControlState.Normal) + skipButton.setTitleColor(UIConstants.Colors.ButtonHighlightedColor, forState: UIControlState.Highlighted) + skipButton.addTarget(self, action: "skipClicked:", forControlEvents: UIControlEvents.TouchUpInside) + skipButton.titleLabel?.font = UIConstants.Fonts.DefaultFontSemibold + skipButton.hidden = true + view.addSubview(skipButton) + + scrollView = UIScrollView() + scrollView.delegate = self + scrollView.bounces = false + scrollView.pagingEnabled = true + scrollView.showsHorizontalScrollIndicator = false + view.addSubview(scrollView) + + let slideStack = UIStackView() + scrollView.addSubview(slideStack) + + pageControl = UIPageControl() + pageControl.pageIndicatorTintColor = UIConstants.Colors.DefaultFont.colorWithAlphaComponent(0.3) + pageControl.currentPageIndicatorTintColor = UIConstants.Colors.DefaultFont + pageControl.numberOfPages = introSlides.count + pageControl.addTarget(self, action: Selector("changePage:"), forControlEvents: UIControlEvents.ValueChanged) + view.addSubview(pageControl) + + titleView.snp_makeConstraints { make in + make.top.equalTo(self.view).offset(20) + make.centerX.equalTo(self.view) + } + + skipButton.snp_makeConstraints { make in + make.centerY.equalTo(titleView) + make.trailing.equalTo(self.view).offset(UIConstants.Layout.NavigationDoneOffset) + } + + scrollView.snp_makeConstraints { make in + make.top.equalTo(titleView.snp_bottom) + make.leading.trailing.bottom.equalTo(self.view) + } + + slideStack.snp_makeConstraints { make in + make.edges.equalTo(self.scrollView) + } + + for slide in introSlides { + slideStack.addArrangedSubview(slide) + slide.snp_makeConstraints { make in + make.size.equalTo(self.scrollView) + } + } + + pageControl.snp_makeConstraints { make in + make.centerX.equalTo(self.view) + make.bottom.equalTo(self.view.snp_bottom).offset(-15) + } + + updateEnabledState() + + NSNotificationCenter.defaultCenter().addObserver(self, selector: "applicationDidBecomeActive:", name: UIApplicationDidBecomeActiveNotification, object: nil) + } + + private func updateEnabledState() { + updateSkipButton() + finishSlide.enabledState = IntroSlideFinish.EnabledState.Checking + enabledDetector.detectEnabled(view) { enabled in + if enabled { + self.finishSlide.enabledState = IntroSlideFinish.EnabledState.Enabled + } else { + self.finishSlide.enabledState = IntroSlideFinish.EnabledState.Disabled + } + self.updateSkipButton() + } + } + + override func preferredStatusBarStyle() -> UIStatusBarStyle { + return UIStatusBarStyle.LightContent + } + + override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) { + coordinator.animateAlongsideTransition({ _ in + let pageXOffset = CGFloat(self.pageControl.currentPage) * self.scrollView.frame.size.width + self.scrollView.setContentOffset(CGPointMake(pageXOffset, 0), animated: false) + }, completion: nil) + } + + @objc func applicationDidBecomeActive(sender: UIApplication) { + updateEnabledState() + } + + @objc func changePage(sender: UIPageControl) { + let pageXOffset = CGFloat(pageControl.currentPage) * scrollView.frame.size.width + scrollView.setContentOffset(CGPointMake(pageXOffset, 0), animated: true) + updateSkipButton() + } + + @objc func skipClicked(sender: UIButton) { + delegate?.introViewControllerWillDismiss(self) + dismissViewControllerAnimated(true, completion: nil) + } + + func scrollViewDidEndDecelerating(scrollView: UIScrollView) { + // Update the page control indicator when swiping between slides. + let page = Int(scrollView.contentOffset.x / scrollView.frame.size.width) + pageControl.currentPage = page + updateSkipButton() + } + + private func updateSkipButton() { + let hidden = pageControl.currentPage < 2 || finishSlide.enabledState == IntroSlideFinish.EnabledState.Enabled + skipButton.animateHidden(hidden, duration: 0.2) + } + + func introSlideHowToDidPressSettings(introSlideHowTo: IntroSlideHowTo) { + UIApplication.sharedApplication().openURL(NSURL(string: UIApplicationOpenSettingsURLString)!) + } + + func introSlideFinishDidPressGetStarted(introSlideFinish: IntroSlideFinish) { + delegate?.introViewControllerWillDismiss(self) + dismissViewControllerAnimated(true, completion: nil) + } + + func introSlideFinishDidPressOpenSettings(introSlideFinish: IntroSlideFinish) { + UIApplication.sharedApplication().openURL(NSURL(string: UIApplicationOpenSettingsURLString)!) + } +} \ No newline at end of file diff --git a/Blockzilla/LaunchScreen.storyboard b/Blockzilla/LaunchScreen.storyboard new file mode 100644 index 0000000000..f24d582ad5 --- /dev/null +++ b/Blockzilla/LaunchScreen.storyboard @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Blockzilla/LocalWebServer/LocalWebServer.swift b/Blockzilla/LocalWebServer/LocalWebServer.swift new file mode 100644 index 0000000000..c26f14d580 --- /dev/null +++ b/Blockzilla/LocalWebServer/LocalWebServer.swift @@ -0,0 +1,37 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +import Foundation +import GCDWebServers + +private let LocalResources = ["rights", "licenses", "gpl"] + +class LocalWebServer { + static let sharedInstance = LocalWebServer(port: 6572) + + private let server = GCDWebServer() + private let port: UInt + private let base: String + + init(port: UInt) { + self.port = port + base = "http://localhost:\(port)" + } + + func start() { + LocalResources.forEach { resource in + let path = NSBundle.mainBundle().pathForResource(resource, ofType: "html") + server.addGETHandlerForPath("/\(resource).html", filePath: path, isAttachment: false, cacheAge: UInt.max, allowRangeRequests: true) + } + + let stylesPath = NSBundle.mainBundle().pathForResource("style", ofType: "css") + server.addGETHandlerForPath("/style.css", filePath: stylesPath, isAttachment: false, cacheAge: UInt.max, allowRangeRequests: true) + + server.startWithPort(port, bonjourName: nil) + } + + func URLForPath(path: String) -> NSURL! { + return NSURL(string: "\(base)\(path)") + } +} \ No newline at end of file diff --git a/Blockzilla/LocalWebServer/gpl.html b/Blockzilla/LocalWebServer/gpl.html new file mode 100644 index 0000000000..6f5faf8767 --- /dev/null +++ b/Blockzilla/LocalWebServer/gpl.html @@ -0,0 +1,718 @@ + + + + + + + + GNU General Public License 3.0 + + + + + + +

+ + + + +

GNU General Public License 3.0

+ + +
Version 3, 29 June 2007
+
+Copyright © 2007 Free Software Foundation, Inc.
+<http://fsf.org/>
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+ +

Preamble

+ +

The GNU General Public License is a free, copyleft license for +software and other kinds of works.

+ +

The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too.

+ +

When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things.

+ +

To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others.

+ +

For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights.

+ +

Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it.

+ +

For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions.

+ +

Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users.

+ +

Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free.

+ +

The precise terms and conditions for copying, distribution and +modification follow.

+ +

TERMS AND CONDITIONS

+ +

0. Definitions.

+ +

“This License” refers to version 3 of the GNU General Public License.

+ +

“Copyright” also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks.

+ +

“The Program” refers to any copyrightable work licensed under this +License. Each licensee is addressed as “you”. “Licensees” and +“recipients” may be individuals or organizations.

+ +

To “modify” a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a “modified version” of the +earlier work or a work “based on” the earlier work.

+ +

A “covered work” means either the unmodified Program or a work based +on the Program.

+ +

To “propagate” a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well.

+ +

To “convey” a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying.

+ +

An interactive user interface displays “Appropriate Legal Notices” +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion.

+ +

1. Source Code.

+ +

The “source code” for a work means the preferred form of the work +for making modifications to it. “Object code” means any non-source +form of a work.

+ +

A “Standard Interface” means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language.

+ +

The “System Libraries” of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +“Major Component”, in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it.

+ +

The “Corresponding Source” for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work.

+ +

The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source.

+ +

The Corresponding Source for a work in source code form is that +same work.

+ +

2. Basic Permissions.

+ +

All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law.

+ +

You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you.

+ +

Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary.

+ +

3. Protecting Users' Legal Rights From Anti-Circumvention Law.

+ +

No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures.

+ +

When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures.

+ +

4. Conveying Verbatim Copies.

+ +

You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program.

+ +

You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee.

+ +

5. Conveying Modified Source Versions.

+ +

You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions:

+ +
    +
  • a) The work must carry prominent notices stating that you modified + it, and giving a relevant date.
  • + +
  • b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + “keep intact all notices”.
  • + +
  • c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it.
  • + +
  • d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so.
  • +
+ +

A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +“aggregate” if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate.

+ +

6. Conveying Non-Source Forms.

+ +

You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways:

+ +
    +
  • a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange.
  • + +
  • b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge.
  • + +
  • c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b.
  • + +
  • d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements.
  • + +
  • e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d.
  • +
+ +

A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work.

+ +

A “User Product” is either (1) a “consumer product”, which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, “normally used” refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product.

+ +

“Installation Information” for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made.

+ +

If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM).

+ +

The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network.

+ +

Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying.

+ +

7. Additional Terms.

+ +

“Additional permissions” are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions.

+ +

When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission.

+ +

Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms:

+ +
    +
  • a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or
  • + +
  • b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or
  • + +
  • c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or
  • + +
  • d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or
  • + +
  • e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or
  • + +
  • f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors.
  • +
+ +

All other non-permissive additional terms are considered “further +restrictions” within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying.

+ +

If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms.

+ +

Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way.

+ +

8. Termination.

+ +

You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11).

+ +

However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation.

+ +

Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice.

+ +

Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10.

+ +

9. Acceptance Not Required for Having Copies.

+ +

You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so.

+ +

10. Automatic Licensing of Downstream Recipients.

+ +

Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License.

+ +

An “entity transaction” is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts.

+ +

You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it.

+ +

11. Patents.

+ +

A “contributor” is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's “contributor version”.

+ +

A contributor's “essential patent claims” are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, “control” includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License.

+ +

Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version.

+ +

In the following three paragraphs, a “patent license” is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To “grant” such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party.

+ +

If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. “Knowingly relying” means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid.

+ +

If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it.

+ +

A patent license is “discriminatory” if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007.

+ +

Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law.

+ +

12. No Surrender of Others' Freedom.

+ +

If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program.

+ +

13. Use with the GNU Affero General Public License.

+ +

Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such.

+ +

14. Revised Versions of this License.

+ +

The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns.

+ +

Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License “or any later version” applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation.

+ +

If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program.

+ +

Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version.

+ +

15. Disclaimer of Warranty.

+ +

THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

+ +

16. Limitation of Liability.

+ +

IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES.

+ +

17. Interpretation of Sections 15 and 16.

+ +

If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee.

+ +

END OF TERMS AND CONDITIONS

+ +

How to Apply These Terms to Your New Programs

+ +

If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms.

+ +

To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the “copyright” line and a pointer to where the full notice is found.

+ +
    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+ +

Also add information on how to contact you by electronic and paper mail.

+ +

If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode:

+ +
    <program>  Copyright (C) <year>  <name of author>
+    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+ +

The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an “about box”.

+ +

You should also get your employer (if you work as a programmer) or school, +if any, to sign a “copyright disclaimer” for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +<http://www.gnu.org/licenses/>.

+ +

The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +<http://www.gnu.org/philosophy/why-not-lgpl.html>.

+ + + diff --git a/Blockzilla/LocalWebServer/licenses.html b/Blockzilla/LocalWebServer/licenses.html new file mode 100644 index 0000000000..0707a7b741 --- /dev/null +++ b/Blockzilla/LocalWebServer/licenses.html @@ -0,0 +1,244 @@ + + + + + + + +

Licenses

+ +

Focus

+

github.com/mozilla/focus

+
+ + + + +

Mozilla Public License
Version 2.0

+

1. Definitions

+
+
1.1. “Contributor”
+

means each individual or legal entity that creates, contributes to the creation of, or owns Covered Software.

+
+
1.2. “Contributor Version”
+

means the combination of the Contributions of others (if any) used by a Contributor and that particular Contributor’s Contribution.

+
+
1.3. “Contribution”
+

means Covered Software of a particular Contributor.

+
+
1.4. “Covered Software”
+

means Source Code Form to which the initial Contributor has attached the notice in Exhibit A, the Executable Form of such Source Code Form, and Modifications of such Source Code Form, in each case including portions thereof.

+
+
1.5. “Incompatible With Secondary Licenses”
+

means

+
    +
  1. that the initial Contributor has attached the notice described in Exhibit B to the Covered Software; or

  2. +
  3. that the Covered Software was made available under the terms of version 1.1 or earlier of the License, but not also under the terms of a Secondary License.

  4. +
+
+
1.6. “Executable Form”
+

means any form of the work other than Source Code Form.

+
+
1.7. “Larger Work”
+

means a work that combines Covered Software with other material, in a separate file or files, that is not Covered Software.

+
+
1.8. “License”
+

means this document.

+
+
1.9. “Licensable”
+

means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently, any and all of the rights conveyed by this License.

+
+
1.10. “Modifications”
+

means any of the following:

+
    +
  1. any file in Source Code Form that results from an addition to, deletion from, or modification of the contents of Covered Software; or

  2. +
  3. any new file in Source Code Form that contains any Covered Software.

  4. +
+
+
1.11. “Patent Claims” of a Contributor
+

means any patent claim(s), including without limitation, method, process, and apparatus claims, in any patent Licensable by such Contributor that would be infringed, but for the grant of the License, by the making, using, selling, offering for sale, having made, import, or transfer of either its Contributions or its Contributor Version.

+
+
1.12. “Secondary License”
+

means either the GNU General Public License, Version 2.0, the GNU Lesser General Public License, Version 2.1, the GNU Affero General Public License, Version 3.0, or any later versions of those licenses.

+
+
1.13. “Source Code Form”
+

means the form of the work preferred for making modifications.

+
+
1.14. “You” (or “Your”)
+

means an individual or a legal entity exercising rights under this License. For legal entities, “You” includes any entity that controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity.

+
+
+

2. License Grants and Conditions

+

2.1. Grants

+

Each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license:

+
    +
  1. under intellectual property rights (other than patent or trademark) Licensable by such Contributor to use, reproduce, make available, modify, display, perform, distribute, and otherwise exploit its Contributions, either on an unmodified basis, with Modifications, or as part of a Larger Work; and

  2. +
  3. under Patent Claims of such Contributor to make, use, sell, offer for sale, have made, import, and otherwise transfer either its Contributions or its Contributor Version.

  4. +
+

2.2. Effective Date

+

The licenses granted in Section 2.1 with respect to any Contribution become effective for each Contribution on the date the Contributor first distributes such Contribution.

+

2.3. Limitations on Grant Scope

+

The licenses granted in this Section 2 are the only rights granted under this License. No additional rights or licenses will be implied from the distribution or licensing of Covered Software under this License. Notwithstanding Section 2.1(b) above, no patent license is granted by a Contributor:

+
    +
  1. for any code that a Contributor has removed from Covered Software; or

  2. +
  3. for infringements caused by: (i) Your and any other third party’s modifications of Covered Software, or (ii) the combination of its Contributions with other software (except as part of its Contributor Version); or

  4. +
  5. under Patent Claims infringed by Covered Software in the absence of its Contributions.

  6. +
+

This License does not grant any rights in the trademarks, service marks, or logos of any Contributor (except as may be necessary to comply with the notice requirements in Section 3.4).

+

2.4. Subsequent Licenses

+

No Contributor makes additional grants as a result of Your choice to distribute the Covered Software under a subsequent version of this License (see Section 10.2) or under the terms of a Secondary License (if permitted under the terms of Section 3.3).

+

2.5. Representation

+

Each Contributor represents that the Contributor believes its Contributions are its original creation(s) or it has sufficient rights to grant the rights to its Contributions conveyed by this License.

+

2.6. Fair Use

+

This License is not intended to limit any rights You have under applicable copyright doctrines of fair use, fair dealing, or other equivalents.

+

2.7. Conditions

+

Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in Section 2.1.

+

3. Responsibilities

+

3.1. Distribution of Source Form

+

All distribution of Covered Software in Source Code Form, including any Modifications that You create or to which You contribute, must be under the terms of this License. You must inform recipients that the Source Code Form of the Covered Software is governed by the terms of this License, and how they can obtain a copy of this License. You may not attempt to alter or restrict the recipients’ rights in the Source Code Form.

+

3.2. Distribution of Executable Form

+

If You distribute Covered Software in Executable Form then:

+
    +
  1. such Covered Software must also be made available in Source Code Form, as described in Section 3.1, and You must inform recipients of the Executable Form how they can obtain a copy of such Source Code Form by reasonable means in a timely manner, at a charge no more than the cost of distribution to the recipient; and

  2. +
  3. You may distribute such Executable Form under the terms of this License, or sublicense it under different terms, provided that the license for the Executable Form does not attempt to limit or alter the recipients’ rights in the Source Code Form under this License.

  4. +
+

3.3. Distribution of a Larger Work

+

You may create and distribute a Larger Work under terms of Your choice, provided that You also comply with the requirements of this License for the Covered Software. If the Larger Work is a combination of Covered Software with a work governed by one or more Secondary Licenses, and the Covered Software is not Incompatible With Secondary Licenses, this License permits You to additionally distribute such Covered Software under the terms of such Secondary License(s), so that the recipient of the Larger Work may, at their option, further distribute the Covered Software under the terms of either this License or such Secondary License(s).

+

3.4. Notices

+

You may not remove or alter the substance of any license notices (including copyright notices, patent notices, disclaimers of warranty, or limitations of liability) contained within the Source Code Form of the Covered Software, except that You may alter any license notices to the extent required to remedy known factual inaccuracies.

+

3.5. Application of Additional Terms

+

You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, You may do so only on Your own behalf, and not on behalf of any Contributor. You must make it absolutely clear that any such warranty, support, indemnity, or liability obligation is offered by You alone, and You hereby agree to indemnify every Contributor for any liability incurred by such Contributor as a result of warranty, support, indemnity or liability terms You offer. You may include additional disclaimers of warranty and limitations of liability specific to any jurisdiction.

+

4. Inability to Comply Due to Statute or Regulation

+

If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Software due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be placed in a text file included with all distributions of the Covered Software under this License. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it.

+

5. Termination

+

5.1. The rights granted under this License will terminate automatically if You fail to comply with any of its terms. However, if You become compliant, then the rights granted under this License from a particular Contributor are reinstated (a) provisionally, unless and until such Contributor explicitly and finally terminates Your grants, and (b) on an ongoing basis, if such Contributor fails to notify You of the non-compliance by some reasonable means prior to 60 days after You have come back into compliance. Moreover, Your grants from a particular Contributor are reinstated on an ongoing basis if such Contributor notifies You of the non-compliance by some reasonable means, this is the first time You have received notice of non-compliance with this License from such Contributor, and You become compliant prior to 30 days after Your receipt of the notice.

+

5.2. If You initiate litigation against any entity by asserting a patent infringement claim (excluding declaratory judgment actions, counter-claims, and cross-claims) alleging that a Contributor Version directly or indirectly infringes any patent, then the rights granted to You by any and all Contributors for the Covered Software under Section 2.1 of this License shall terminate.

+

5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or Your distributors under this License prior to termination shall survive termination.

+

6. Disclaimer of Warranty

+

Covered Software is provided under this License on an “as is” basis, without warranty of any kind, either expressed, implied, or statutory, including, without limitation, warranties that the Covered Software is free of defects, merchantable, fit for a particular purpose or non-infringing. The entire risk as to the quality and performance of the Covered Software is with You. Should any Covered Software prove defective in any respect, You (not any Contributor) assume the cost of any necessary servicing, repair, or correction. This disclaimer of warranty constitutes an essential part of this License. No use of any Covered Software is authorized under this License except under this disclaimer.

+

7. Limitation of Liability

+

Under no circumstances and under no legal theory, whether tort (including negligence), contract, or otherwise, shall any Contributor, or anyone who distributes Covered Software as permitted above, be liable to You for any direct, indirect, special, incidental, or consequential damages of any character including, without limitation, damages for lost profits, loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses, even if such party shall have been informed of the possibility of such damages. This limitation of liability shall not apply to liability for death or personal injury resulting from such party’s negligence to the extent applicable law prohibits such limitation. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so this exclusion and limitation may not apply to You.

+

8. Litigation

+

Any litigation relating to this License may be brought only in the courts of a jurisdiction where the defendant maintains its principal place of business and such litigation shall be governed by laws of that jurisdiction, without reference to its conflict-of-law provisions. Nothing in this Section shall prevent a party’s ability to bring cross-claims or counter-claims.

+

9. Miscellaneous

+

This License represents the complete agreement concerning the subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not be used to construe this License against a Contributor.

+

10. Versions of the License

+

10.1. New Versions

+

Mozilla Foundation is the license steward. Except as provided in Section 10.3, no one other than the license steward has the right to modify or publish new versions of this License. Each version will be given a distinguishing version number.

+

10.2. Effect of New Versions

+

You may distribute the Covered Software under the terms of the version of the License under which You originally received the Covered Software, or under the terms of any subsequent version published by the license steward.

+

10.3. Modified Versions

+

If you create software not governed by this License, and you want to create a new license for such software, you may create and use a modified version of this License if you rename the license and remove any references to the name of the license steward (except to note that such modified license differs from this License).

+

10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses

+

If You choose to distribute Source Code Form that is Incompatible With Secondary Licenses under the terms of this version of the License, the notice described in Exhibit B of this License must be attached.

+

Exhibit A - Source Code Form License Notice

+
+

This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

+
+

If it is not possible or desirable to put the notice in a particular file, then You may include the notice in a location (such as a LICENSE file in a relevant directory) where a recipient would be likely to look for such a notice.

+

You may add additional accurate notices of copyright ownership.

+

Exhibit B - “Incompatible With Secondary Licenses” Notice

+
+

This Source Code Form is “Incompatible With Secondary Licenses”, as defined by the Mozilla Public License, v. 2.0.

+
+ + + + + + + +
+ +

-

+ + + + +

GCDWebServer

+

github.com/swisspol/GCDWebServer

+
+

Copyright (c) 2012-2014, Pierre-Olivier Latour

+

All rights reserved.

+ +

Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met:

+ +
    +
  • Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer.
  • +
  • Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution.
  • +
  • The name of Pierre-Olivier Latour may not be used to endorse +or promote products derived from this software without specific +prior written permission.
  • +
+ +

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL PIERRE-OLIVIER LATOUR BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

+
+

-

+ +

Snap

+

github.com/SnapKit

+
+

Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit

+ +

Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions:

+ +

The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software.

+ +

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE.

+
+

-

+ + +

SCSiriWaveformView

+

github.com/stefanceriu/SCSiriWaveformView

+
+

The MIT License (MIT)

+ +

Copyright (c) [2013] [Stefan Ceriu]

+ +

Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions:

+ +

The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software.

+ +

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE.

+
+ + + diff --git a/Blockzilla/LocalWebServer/rights.html b/Blockzilla/LocalWebServer/rights.html new file mode 100644 index 0000000000..1510ced231 --- /dev/null +++ b/Blockzilla/LocalWebServer/rights.html @@ -0,0 +1,18 @@ + + + + + + + + +

Your Rights

+

Focus is free and open source software made by Mozilla and other contributors.

+

Focus is made available to you under the terms of the Mozilla Public License and other open source licenses.

+

You are not granted any rights or licenses to the trademarks of the Mozilla Foundation or any party, including the Mozilla, Firefox or Focus names or logos. Additional information may be found here.

+

Additional source code for Focus is available under various other free and open source licenses.

+

Focus also uses blocklists provided by Disconnect, Inc. as separate and independent works under the GNU General Public License v3, and available here.

+ + diff --git a/Blockzilla/LocalWebServer/style.css b/Blockzilla/LocalWebServer/style.css new file mode 100644 index 0000000000..f4f509fcf3 --- /dev/null +++ b/Blockzilla/LocalWebServer/style.css @@ -0,0 +1,9 @@ +body, html { + background: #221F1F; + color: #E1E5EA; + font: -apple-system-body; +} + +a { + color: #0A9AF4; +} \ No newline at end of file diff --git a/Blockzilla/MainHeaderView.swift b/Blockzilla/MainHeaderView.swift new file mode 100644 index 0000000000..b5be9c126d --- /dev/null +++ b/Blockzilla/MainHeaderView.swift @@ -0,0 +1,46 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +import Foundation +import SnapKit +import UIKit + +class MainHeaderView: UIView { + let waveView = WaveView() + + init() { + super.init(frame: CGRectZero) + + addSubview(waveView) + + let descriptionLabel = UILabel() + descriptionLabel.text = UIConstants.Strings.AppDescription + descriptionLabel.textColor = UIConstants.Colors.DefaultFont + descriptionLabel.font = descriptionLabel.font.fontWithSize(14) + descriptionLabel.numberOfLines = 0 + descriptionLabel.textAlignment = NSTextAlignment.Center + addSubview(descriptionLabel) + + translatesAutoresizingMaskIntoConstraints = false + + waveView.snp_makeConstraints { make in + make.top.equalTo(self).offset(10) + make.leading.trailing.equalTo(self) + make.height.equalTo(200) + } + + descriptionLabel.snp_makeConstraints { make in + make.leading.trailing.equalTo(self).inset(30) + + // Priority hack is needed to avoid conflicting constraints with the cell height. + // See http://stackoverflow.com/a/25795758 + make.top.equalTo(waveView.snp_bottom).offset(20).priority(999) + make.bottom.equalTo(self).inset(30).priority(999) + } + } + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } +} \ No newline at end of file diff --git a/Blockzilla/MainViewController.swift b/Blockzilla/MainViewController.swift new file mode 100644 index 0000000000..f305f81fdb --- /dev/null +++ b/Blockzilla/MainViewController.swift @@ -0,0 +1,326 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +import Foundation +import SnapKit +import UIKit + +private let LabelBlockAds = NSLocalizedString("Block ad trackers", comment: "Label for toggle on main screen") +private let LabelBlockAnalytics = NSLocalizedString("Block analytics trackers", comment: "Label for toggle on main screen") +private let LabelBlockSocial = NSLocalizedString("Block social trackers", comment: "Label for toggle on main screen") +private let LabelBlockOther = NSLocalizedString("Block other content trackers", comment: "Label for toggle on main screen") +private let LabelBlockFonts = NSLocalizedString("Block Web fonts", comment: "Label for toggle on main screen") + +private let SubtitleBlockOther = NSLocalizedString("May break some videos and Web pages", comment: "Label for toggle on main screen") + +protocol MainViewControllerDelegate: class { + func mainViewControllerDidToggleList(mainViewController: MainViewController) +} + +class MainViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, AboutViewControllerDelegate { + weak var delegate: MainViewControllerDelegate? + + private let tableView = UITableView() + private let enabledDetector = BlockerEnabledDetector() + + private let headerView = MainHeaderView() + private let errorFooterView = ErrorFooterView() + private var shouldUpdateEnabledWhenVisible = true + + private let toggles = [ + BlockerToggle(label: LabelBlockAds, key: Settings.KeyBlockAds), + BlockerToggle(label: LabelBlockAnalytics, key: Settings.KeyBlockAnalytics), + BlockerToggle(label: LabelBlockSocial, key: Settings.KeyBlockSocial), + BlockerToggle(label: LabelBlockOther, key: Settings.KeyBlockOther, subtitle: SubtitleBlockOther), + BlockerToggle(label: LabelBlockFonts, key: Settings.KeyBlockFonts), + ] + + override func viewDidLoad() { + view.backgroundColor = UIConstants.Colors.Background + + let titleView = TitleView() + view.addSubview(titleView) + + view.addSubview(tableView) + view.addSubview(errorFooterView) + + let aboutButton = UIButton() + aboutButton.setTitle(NSLocalizedString("About", comment: "Button at top of app that goes to the About screen"), forState: UIControlState.Normal) + aboutButton.setTitleColor(UIConstants.Colors.NavigationTitle, forState: UIControlState.Normal) + aboutButton.setTitleColor(UIConstants.Colors.ButtonHighlightedColor, forState: UIControlState.Highlighted) + aboutButton.addTarget(self, action: "aboutClicked:", forControlEvents: UIControlEvents.TouchUpInside) + aboutButton.titleLabel?.font = UIConstants.Fonts.DefaultFontSemibold + view.addSubview(aboutButton) + + titleView.snp_makeConstraints { make in + make.top.equalTo(self.view).offset(20) + make.centerX.equalTo(self.view) + } + + tableView.snp_makeConstraints { make in + make.top.equalTo(titleView.snp_bottom) + make.leading.trailing.bottom.equalTo(self.view) + } + + aboutButton.snp_makeConstraints { make in + make.centerY.equalTo(titleView) + make.leading.equalTo(self.view).offset(10) + } + + errorFooterView.snp_makeConstraints { make in + make.leading.trailing.equalTo(self.view) + make.top.equalTo(self.view.snp_bottom) + } + + tableView.dataSource = self + tableView.delegate = self + tableView.backgroundColor = UIConstants.Colors.Background + tableView.layoutMargins = UIEdgeInsetsZero + tableView.separatorColor = UIColor(rgb: 0x333333) + tableView.allowsSelection = false + tableView.estimatedRowHeight = 44 + + // Don't show trailing rows. + tableView.tableFooterView = TableFooterView(frame: CGRect(x: 0, y: 0, width: view.frame.width, height: 144)) + + toggles.forEach { blockerToggle in + let toggle = blockerToggle.toggle + toggle.onTintColor = UIConstants.Colors.FocusBlue + toggle.tintColor = UIColor(rgb: 0x585E64) + toggle.addTarget(self, action: Selector("toggleSwitched:"), forControlEvents: UIControlEvents.ValueChanged) + toggle.on = Settings.getBool(blockerToggle.key) ?? false + } + + NSNotificationCenter.defaultCenter().addObserver(self, selector: "applicationDidBecomeActive:", name: UIApplicationDidBecomeActiveNotification, object: nil) + } + + override func viewWillAppear(animated: Bool) { + guard shouldUpdateEnabledWhenVisible else { return } + + shouldUpdateEnabledWhenVisible = false + updateEnabledState() + } + + override func preferredStatusBarStyle() -> UIStatusBarStyle { + return UIStatusBarStyle.LightContent + } + + func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { + let cell = UITableViewCell(style: .Subtitle, reuseIdentifier: "toggleCell") + switch indexPath.section { + case 0: + cell.contentView.addSubview(headerView) + headerView.snp_makeConstraints { make in + make.edges.equalTo(cell) + } + case 1: + let toggle = toggles[indexPath.row] + cell.textLabel?.text = toggle.label + cell.accessoryView = toggle.toggle + cell.detailTextLabel?.text = toggle.subtitle + case 2: + let toggle = toggles[indexPath.row + 4] + cell.textLabel?.text = toggle.label + cell.accessoryView = toggle.toggle + default: + break + } + + cell.backgroundColor = UIConstants.Colors.Background + cell.textLabel?.textColor = UIConstants.Colors.DefaultFont + cell.layoutMargins = UIEdgeInsetsZero + cell.detailTextLabel?.textColor = UIConstants.Colors.NavigationTitle + + return cell + } + + func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + switch section { + case 0: + return 1 + case 1: + return 4 + case 2: + return 1 + default: + assertionFailure("Invalid section") + return 0 + } + } + + func numberOfSectionsInTableView(tableView: UITableView) -> Int { + return 3 + } + + func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { + switch indexPath.section { + case 0: + return heightForCustomCellWithView(headerView) + default: + break + } + + return 44 + } + + func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { + let labelText: String + + switch section { + case 1: + labelText = NSLocalizedString("PRIVACY", comment: "Section label for privacy toggles") + case 2: + labelText = NSLocalizedString("PERFORMANCE", comment: "Section label for performance toggles") + default: + return nil + } + + // Hack: We want the header view's margin to match the cells, so we create an empty + // cell with a blank space as text to layout the text label. From there, we can define + // constraints for our custom label based on the cell's label. + let cell = UITableViewCell() + cell.textLabel?.text = " " + cell.backgroundColor = UIConstants.Colors.Background + + let label = UILabel() + label.text = labelText + label.textColor = UIConstants.Colors.TableSectionHeader + label.font = UIConstants.Fonts.TableSectionHeader + cell.contentView.addSubview(label) + + label.snp_makeConstraints { make in + make.leading.trailing.equalTo(cell.textLabel!) + make.centerY.equalTo(cell.textLabel!).offset(10) + } + + return cell + } + + func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { + switch section { + case 1: + fallthrough + case 2: + return 30 + default: + return 0 + } + } + + func aboutViewControllerDidPressIntro(aboutViewController: AboutViewController) { + let introViewController = IntroViewController() + presentViewController(introViewController, animated: true, completion: nil) + } + + private func updateEnabledState() { + toggles.forEach { $0.toggle.enabled = false } + + enabledDetector.detectEnabled(view) { blocked in + let onToggles = self.toggles.filter { blockerToggle in + blockerToggle.toggle.enabled = blocked + return blockerToggle.toggle.on + } + self.headerView.waveView.active = blocked && !onToggles.isEmpty + + UIView.setAnimationBeginsFromCurrentState(true) + UIView.transitionWithView(self.errorFooterView, duration: 0.3, options: UIViewAnimationOptions.CurveEaseOut, animations: { + self.errorFooterView.snp_remakeConstraints { make in + let constraintPosition = blocked ? make.top : make.bottom + make.leading.trailing.equalTo(self.view) + constraintPosition.equalTo(self.view.snp_bottom) + } + self.errorFooterView.layoutIfNeeded() + }, completion: nil) + } + } + + private func heightForCustomCellWithView(view: UIView) -> CGFloat { + // We ask for the height before we do a layout pass, so manually trigger a layout here + // so we can calculate the view's height. + view.layoutIfNeeded() + + return view.systemLayoutSizeFittingSize(UILayoutFittingCompressedSize).height + } + + @objc func aboutClicked(sender: UIButton) { + let aboutViewController = AboutViewController() + aboutViewController.delegate = self + let navController = AboutNavigationController(rootViewController: aboutViewController) + navController.modalPresentationStyle = UIModalPresentationStyle.FormSheet + presentViewController(navController, animated: true, completion: nil) + } + + @objc func applicationDidBecomeActive(sender: UIApplication) { + if isViewLoaded() && view.window != nil { + updateEnabledState() + } else { + shouldUpdateEnabledWhenVisible = true + } + } + + @objc func toggleSwitched(sender: UISwitch) { + let toggle = toggles.filter { $0.toggle == sender }.first! + + func updateSetting() { + Settings.set(sender.on, forKey: toggle.key) + delegate?.mainViewControllerDidToggleList(self) + headerView.waveView.active = !toggles.filter { $0.toggle.on }.isEmpty + } + + if toggle.key == Settings.KeyBlockOther && sender.on { + let message = NSLocalizedString("Blocking other content trackers may break some videos and Web pages.", comment: "Alert message shown when toggling the Content blocker") + let yes = NSLocalizedString("I Understand", comment: "Button label for accepting Content blocker alert") + let no = NSLocalizedString("No, Thanks", comment: "Button label for declining Content blocker alert") + let alertController = UIAlertController(title: nil, message: message, preferredStyle: UIAlertControllerStyle.ActionSheet) + alertController.addAction(UIAlertAction(title: yes, style: UIAlertActionStyle.Destructive) { _ in + updateSetting() + }) + alertController.addAction(UIAlertAction(title: no, style: UIAlertActionStyle.Default) { _ in + sender.on = false + updateSetting() + }) + alertController.popoverPresentationController?.sourceView = sender + alertController.popoverPresentationController?.sourceRect = sender.bounds + presentViewController(alertController, animated: true, completion: nil) + } else { + updateSetting() + } + } +} + + +private class TableFooterView: UIView { + var logo: UIImageView = { + var image = UIImageView(image: UIImage(named: "FooterLogo")) + image.contentMode = UIViewContentMode.Center + return image + }() + + override init(frame: CGRect) { + super.init(frame: frame) + addSubview(logo) + } + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + override func layoutSubviews() { + super.layoutSubviews() + logo.center = CGPoint(x: frame.size.width / 2, y: frame.size.height / 2) + } +} + +private class BlockerToggle { + let toggle = UISwitch() + let label: String + let key: String + let subtitle: String? + + init(label: String, key: String, subtitle: String? = nil) { + self.label = label + self.key = key + self.subtitle = subtitle + } +} diff --git a/Blockzilla/TitleView.swift b/Blockzilla/TitleView.swift new file mode 100644 index 0000000000..b1a7affbd3 --- /dev/null +++ b/Blockzilla/TitleView.swift @@ -0,0 +1,28 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +import Foundation + +class TitleView: UIView { + init() { + super.init(frame: CGRectZero) + + let logo = UIImage(named: "HeaderLogo")! + let logoView = UIImageView(image: logo) + addSubview(logoView) + + translatesAutoresizingMaskIntoConstraints = false + + logoView.snp_makeConstraints { make in + make.bottom.equalTo(self).inset(5) + make.top.equalTo(self).inset(10) + make.centerX.equalTo(self) + make.size.equalTo(logo.size) + } + } + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } +} \ No newline at end of file diff --git a/Blockzilla/UIColorExtensions.swift b/Blockzilla/UIColorExtensions.swift new file mode 100644 index 0000000000..b8c5ca6ac7 --- /dev/null +++ b/Blockzilla/UIColorExtensions.swift @@ -0,0 +1,43 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +import Foundation +import UIKit + +private struct Color { + var red: CGFloat + var green: CGFloat + var blue: CGFloat +}; + +extension UIColor { + /** + * Initializes and returns a color object for the given RGB hex integer. + */ + public convenience init(rgb: Int) { + self.init( + red: CGFloat((rgb & 0xFF0000) >> 16) / 255.0, + green: CGFloat((rgb & 0x00FF00) >> 8) / 255.0, + blue: CGFloat((rgb & 0x0000FF) >> 0) / 255.0, + alpha: 1) + } + + func lerp(toColor toColor: UIColor, step: CGFloat) -> UIColor { + var fromR: CGFloat = 0 + var fromG: CGFloat = 0 + var fromB: CGFloat = 0 + getRed(&fromR, green: &fromG, blue: &fromB, alpha: nil) + + var toR: CGFloat = 0 + var toG: CGFloat = 0 + var toB: CGFloat = 0 + toColor.getRed(&toR, green: &toG, blue: &toB, alpha: nil) + + let r = fromR + (toR - fromR) * step + let g = fromG + (toG - fromG) * step + let b = fromB + (toB - fromB) * step + + return UIColor(red: r, green: g, blue: b, alpha: 1) + } +} diff --git a/Blockzilla/UIConstants.swift b/Blockzilla/UIConstants.swift new file mode 100644 index 0000000000..5bffb57398 --- /dev/null +++ b/Blockzilla/UIConstants.swift @@ -0,0 +1,44 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +import Foundation +import UIKit + +struct UIConstants { + struct Colors { + static let Background = UIColor(rgb: 0x221F1F) + static let ButtonHighlightedColor = UIColor(rgb: 0x333333) + static let CellSelected = UIColor(rgb: 0x2C6EC8) + static let DefaultFont = UIColor(rgb: 0xE1E5EA) + static let FocusLightBlue = UIColor(rgb: 0x00A7E0) + static let FocusDarkBlue = UIColor(rgb: 0x005DA5) + static let FocusBlue = UIColor(rgb: 0x00A7E0) + static let FocusGreen = UIColor(rgb: 0x7ED321) + static let FocusMaroon = UIColor(rgb: 0xE63D2F) + static let FocusOrange = UIColor(rgb: 0xF26C23) + static let FocusRed = UIColor(rgb: 0xE63D2F) + static let FocusViolet = UIColor(rgb: 0x95368C) + static let NavigationTitle = UIColor(rgb: 0x61666D) + static let TableSectionHeader = UIColor(rgb: 0x61666D) + } + + struct Fonts { + static let DefaultFont = UIFont.systemFontOfSize(16) + static let DefaultFontSemibold = UIFont.systemFontOfSize(16, weight: UIFontWeightSemibold) + static let DefaultFontMedium = UIFont.systemFontOfSize(16, weight: UIFontWeightMedium) + static let SmallerFont = UIFont.systemFontOfSize(14) + static let SmallerFontSemibold = UIFont.systemFontOfSize(14, weight: UIFontWeightSemibold) + static let TableSectionHeader = UIFont.systemFontOfSize(12, weight: UIFontWeightSemibold) + } + + struct Layout { + static let NavigationDoneOffset: Float = -10 + } + + struct Strings { + static let AppDescription = NSLocalizedString("Focus improves privacy and may boost page load speed and lower your mobile data usage.", comment: "Label displayed above toggles") + static let NotEnabledError = NSLocalizedString("Focus is not enabled.", comment: "Error label when Focus is not enabled, shown in the intro and main app when Focus is disabled") + static let OpenSettings = NSLocalizedString("Open Settings", comment: "Button to open the system Settings, shown in the intro and main app when Focus is disabled") + } +} \ No newline at end of file diff --git a/Blockzilla/UIViewExtensions.swift b/Blockzilla/UIViewExtensions.swift new file mode 100644 index 0000000000..6ece447663 --- /dev/null +++ b/Blockzilla/UIViewExtensions.swift @@ -0,0 +1,17 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +import Foundation + +extension UIView { + func animateHidden(hidden: Bool, duration: NSTimeInterval) { + self.hidden = false + UIView.setAnimationBeginsFromCurrentState(true) + UIView.transitionWithView(self, duration: duration, options: UIViewAnimationOptions.CurveLinear, animations: { + self.alpha = hidden ? 0 : 1 + }, completion: { _ in + self.hidden = hidden + }) + } +} \ No newline at end of file diff --git a/Blockzilla/WaveView.swift b/Blockzilla/WaveView.swift new file mode 100644 index 0000000000..55417d3394 --- /dev/null +++ b/Blockzilla/WaveView.swift @@ -0,0 +1,96 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +import Foundation +import UIKit + +private let ActiveInactiveTransitionStep: CGFloat = 0.05 +private let ColorTransitionStep: Float = 0.002 +private let PrimaryWaveActiveColors = [UIConstants.Colors.FocusOrange, UIConstants.Colors.FocusRed, UIConstants.Colors.FocusViolet, UIConstants.Colors.FocusLightBlue, UIConstants.Colors.FocusViolet, UIConstants.Colors.FocusRed] +private let PrimaryWaveColorCount = PrimaryWaveActiveColors.count +private let PrimaryWaveInactiveColor = UIColor.grayColor() +private let SecondaryWaveColor = UIColor.grayColor() +private let WaveLevel: CGFloat = 0.8 +private let PrimaryWaveFrequency: CGFloat = 1.2 +private let SecondaryWaveFrequency: CGFloat = 0.8 +private let BaseDeviceRatio: CGFloat = 1.875 + +class WaveView: UIView { + var active = false + + private let frontWaveView = SCSiriWaveformView() + private let backWaveView = SCSiriWaveformView() + private var waveLevel: CGFloat = 0 + private var colorLerp: Float = 0 + + init() { + super.init(frame: CGRectZero) + + backWaveView.backgroundColor = UIConstants.Colors.Background + backWaveView.phaseShift = -0.022 + backWaveView.primaryWaveLineWidth = 0.5 + backWaveView.primaryWaveColor = PrimaryWaveInactiveColor + backWaveView.secondaryWaveLineWidth = 0.5 + backWaveView.secondaryWaveColor = UIColor.darkGrayColor() + backWaveView.updateWithLevel(0) + addSubview(backWaveView) + + frontWaveView.backgroundColor = UIColor.clearColor() + frontWaveView.phaseShift = -0.02 + frontWaveView.primaryWaveLineWidth = 2 + frontWaveView.primaryWaveColor = PrimaryWaveInactiveColor + frontWaveView.secondaryWaveLineWidth = 0.5 + frontWaveView.secondaryWaveColor = SecondaryWaveColor + frontWaveView.updateWithLevel(0) + addSubview(frontWaveView) + + frontWaveView.snp_makeConstraints { make in + make.top.bottom.equalTo(self) + make.leading.trailing.equalTo(self).inset(-40) + } + + backWaveView.snp_makeConstraints { make in + make.top.bottom.equalTo(self) + make.leading.trailing.equalTo(self).inset(-15) + } + + clipsToBounds = true + + let displayLink = CADisplayLink(target: self, selector: "displayLink:") + displayLink.addToRunLoop(NSRunLoop.currentRunLoop(), forMode: NSRunLoopCommonModes) + } + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + @objc func displayLink(sender: CADisplayLink) { + colorLerp = (colorLerp + ColorTransitionStep) % Float(PrimaryWaveColorCount) + let colorIndex = Int(colorLerp) + let lerp = CGFloat(colorLerp - Float(colorIndex)) + let fromColor = PrimaryWaveActiveColors[colorIndex] + let toColor = PrimaryWaveActiveColors[(colorIndex + 1) % PrimaryWaveColorCount] + let currentColor = fromColor.lerp(toColor: toColor, step: lerp) + + if active && waveLevel < WaveLevel { + waveLevel += ActiveInactiveTransitionStep + frontWaveView.primaryWaveColor = PrimaryWaveInactiveColor.lerp(toColor: currentColor, step: waveLevel / WaveLevel) + } else if !active && waveLevel > 0 { + waveLevel -= ActiveInactiveTransitionStep + frontWaveView.primaryWaveColor = currentColor.lerp(toColor: PrimaryWaveInactiveColor, step: (WaveLevel - waveLevel) / WaveLevel) + } else if active { + frontWaveView.primaryWaveColor = currentColor + } + + backWaveView.updateWithLevel(waveLevel - 0.1) + frontWaveView.updateWithLevel(waveLevel) + } + + override func layoutSubviews() { + super.layoutSubviews() + let freqMultiplier: CGFloat = bounds.width / bounds.height / BaseDeviceRatio + frontWaveView.frequency = PrimaryWaveFrequency * freqMultiplier + backWaveView.frequency = SecondaryWaveFrequency * freqMultiplier + } +} \ No newline at end of file diff --git a/ContentBlocker/ActionRequestHandler.swift b/ContentBlocker/ActionRequestHandler.swift new file mode 100644 index 0000000000..9518ede5ba --- /dev/null +++ b/ContentBlocker/ActionRequestHandler.swift @@ -0,0 +1,47 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +import UIKit +import MobileCoreServices + +class ActionRequestHandler: NSObject, NSExtensionRequestHandling { + func beginRequestWithExtensionContext(context: NSExtensionContext) { + // NSItemProvider apparently doesn't support multiple attachments as a way to load multiple blocking lists. + // As a workaround, we load each list into memory, then merge them into a single attachment. + var mergedList = itemsFromFile("blocker-enabled-detector") + + if Settings.getBool(Settings.KeyBlockAds) ?? false { + mergedList.appendContentsOf(itemsFromFile("disconnect-advertising")) + } + + if Settings.getBool(Settings.KeyBlockAnalytics) ?? false { + mergedList.appendContentsOf(itemsFromFile("disconnect-analytics")) + } + + if Settings.getBool(Settings.KeyBlockSocial) ?? false { + mergedList.appendContentsOf(itemsFromFile("disconnect-social")) + } + + if Settings.getBool(Settings.KeyBlockOther) ?? false { + mergedList.appendContentsOf(itemsFromFile("disconnect-content")) + } + + if Settings.getBool(Settings.KeyBlockFonts) ?? false { + mergedList.appendContentsOf(itemsFromFile("web-fonts")) + } + + let mergedListJSON = try! NSJSONSerialization.dataWithJSONObject(mergedList, options: NSJSONWritingOptions(rawValue: 0)) + let attachment = NSItemProvider(item: mergedListJSON, typeIdentifier: kUTTypeJSON as String) + let item = NSExtensionItem() + item.attachments = [attachment] + context.completeRequestReturningItems([item], completionHandler: nil) + } + + /// Gets the dictionary form of the tracking list with the specified file name. + private func itemsFromFile(name: String) -> [NSDictionary] { + let url = NSBundle.mainBundle().URLForResource(name, withExtension: "json") + let data = NSData(contentsOfURL: url!) + return try! NSJSONSerialization.JSONObjectWithData(data!, options: []) as! [NSDictionary] + } +} diff --git a/ContentBlocker/ContentBlocker.entitlements b/ContentBlocker/ContentBlocker.entitlements new file mode 100644 index 0000000000..d791cd1200 --- /dev/null +++ b/ContentBlocker/ContentBlocker.entitlements @@ -0,0 +1,10 @@ + + + + + com.apple.security.application-groups + + group.org.mozilla.ios.Focus + + + diff --git a/ContentBlocker/Info.plist b/ContentBlocker/Info.plist new file mode 100644 index 0000000000..bc1d8f4f2a --- /dev/null +++ b/ContentBlocker/Info.plist @@ -0,0 +1,33 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + ContentBlocker + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + XPC! + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 20 + NSExtension + + NSExtensionPointIdentifier + com.apple.Safari.content-blocker + NSExtensionPrincipalClass + $(PRODUCT_MODULE_NAME).ActionRequestHandler + + + diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000000..e87a115e46 --- /dev/null +++ b/LICENSE @@ -0,0 +1,363 @@ +Mozilla Public License, version 2.0 + +1. Definitions + +1.1. "Contributor" + + means each individual or legal entity that creates, contributes to the + creation of, or owns Covered Software. + +1.2. "Contributor Version" + + means the combination of the Contributions of others (if any) used by a + Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + + means Source Code Form to which the initial Contributor has attached the + notice in Exhibit A, the Executable Form of such Source Code Form, and + Modifications of such Source Code Form, in each case including portions + thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + a. that the initial Contributor has attached the notice described in + Exhibit B to the Covered Software; or + + b. that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the terms of + a Secondary License. + +1.6. "Executable Form" + + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + + means a work that combines Covered Software with other material, in a + separate file or files, that is not Covered Software. + +1.8. "License" + + means this document. + +1.9. "Licensable" + + means having the right to grant, to the maximum extent possible, whether + at the time of the initial grant or subsequently, any and all of the + rights conveyed by this License. + +1.10. "Modifications" + + means any of the following: + + a. any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered Software; or + + b. any new file in Source Code Form that contains any Covered Software. + +1.11. "Patent Claims" of a Contributor + + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the License, + by the making, using, selling, offering for sale, having made, import, + or transfer of either its Contributions or its Contributor Version. + +1.12. "Secondary License" + + means either the GNU General Public License, Version 2.0, the GNU Lesser + General Public License, Version 2.1, the GNU Affero General Public + License, Version 3.0, or any later versions of those licenses. + +1.13. "Source Code Form" + + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that controls, is + controlled by, or is under common control with You. For purposes of this + definition, "control" means (a) the power, direct or indirect, to cause + the direction or management of such entity, whether by contract or + otherwise, or (b) ownership of more than fifty percent (50%) of the + outstanding shares or beneficial ownership of such entity. + + +2. License Grants and Conditions + +2.1. Grants + + Each Contributor hereby grants You a world-wide, royalty-free, + non-exclusive license: + + a. under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + + b. under Patent Claims of such Contributor to make, use, sell, offer for + sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + + The licenses granted in Section 2.1 with respect to any Contribution + become effective for each Contribution on the date the Contributor first + distributes such Contribution. + +2.3. Limitations on Grant Scope + + The licenses granted in this Section 2 are the only rights granted under + this License. No additional rights or licenses will be implied from the + distribution or licensing of Covered Software under this License. + Notwithstanding Section 2.1(b) above, no patent license is granted by a + Contributor: + + a. for any code that a Contributor has removed from Covered Software; or + + b. for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + + c. under Patent Claims infringed by Covered Software in the absence of + its Contributions. + + This License does not grant any rights in the trademarks, service marks, + or logos of any Contributor (except as may be necessary to comply with + the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + + No Contributor makes additional grants as a result of Your choice to + distribute the Covered Software under a subsequent version of this + License (see Section 10.2) or under the terms of a Secondary License (if + permitted under the terms of Section 3.3). + +2.5. Representation + + Each Contributor represents that the Contributor believes its + Contributions are its original creation(s) or it has sufficient rights to + grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + + This License is not intended to limit any rights You have under + applicable copyright doctrines of fair use, fair dealing, or other + equivalents. + +2.7. Conditions + + Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in + Section 2.1. + + +3. Responsibilities + +3.1. Distribution of Source Form + + All distribution of Covered Software in Source Code Form, including any + Modifications that You create or to which You contribute, must be under + the terms of this License. You must inform recipients that the Source + Code Form of the Covered Software is governed by the terms of this + License, and how they can obtain a copy of this License. You may not + attempt to alter or restrict the recipients' rights in the Source Code + Form. + +3.2. Distribution of Executable Form + + If You distribute Covered Software in Executable Form then: + + a. such Covered Software must also be made available in Source Code Form, + as described in Section 3.1, and You must inform recipients of the + Executable Form how they can obtain a copy of such Source Code Form by + reasonable means in a timely manner, at a charge no more than the cost + of distribution to the recipient; and + + b. You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter the + recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + + You may create and distribute a Larger Work under terms of Your choice, + provided that You also comply with the requirements of this License for + the Covered Software. If the Larger Work is a combination of Covered + Software with a work governed by one or more Secondary Licenses, and the + Covered Software is not Incompatible With Secondary Licenses, this + License permits You to additionally distribute such Covered Software + under the terms of such Secondary License(s), so that the recipient of + the Larger Work may, at their option, further distribute the Covered + Software under the terms of either this License or such Secondary + License(s). + +3.4. Notices + + You may not remove or alter the substance of any license notices + (including copyright notices, patent notices, disclaimers of warranty, or + limitations of liability) contained within the Source Code Form of the + Covered Software, except that You may alter any license notices to the + extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + + You may choose to offer, and to charge a fee for, warranty, support, + indemnity or liability obligations to one or more recipients of Covered + Software. However, You may do so only on Your own behalf, and not on + behalf of any Contributor. You must make it absolutely clear that any + such warranty, support, indemnity, or liability obligation is offered by + You alone, and You hereby agree to indemnify every Contributor for any + liability incurred by such Contributor as a result of warranty, support, + indemnity or liability terms You offer. You may include additional + disclaimers of warranty and limitations of liability specific to any + jurisdiction. + +4. Inability to Comply Due to Statute or Regulation + + If it is impossible for You to comply with any of the terms of this License + with respect to some or all of the Covered Software due to statute, + judicial order, or regulation then You must: (a) comply with the terms of + this License to the maximum extent possible; and (b) describe the + limitations and the code they affect. Such description must be placed in a + text file included with all distributions of the Covered Software under + this License. Except to the extent prohibited by statute or regulation, + such description must be sufficiently detailed for a recipient of ordinary + skill to be able to understand it. + +5. Termination + +5.1. The rights granted under this License will terminate automatically if You + fail to comply with any of its terms. However, if You become compliant, + then the rights granted under this License from a particular Contributor + are reinstated (a) provisionally, unless and until such Contributor + explicitly and finally terminates Your grants, and (b) on an ongoing + basis, if such Contributor fails to notify You of the non-compliance by + some reasonable means prior to 60 days after You have come back into + compliance. Moreover, Your grants from a particular Contributor are + reinstated on an ongoing basis if such Contributor notifies You of the + non-compliance by some reasonable means, this is the first time You have + received notice of non-compliance with this License from such + Contributor, and You become compliant prior to 30 days after Your receipt + of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent + infringement claim (excluding declaratory judgment actions, + counter-claims, and cross-claims) alleging that a Contributor Version + directly or indirectly infringes any patent, then the rights granted to + You by any and all Contributors for the Covered Software under Section + 2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user + license agreements (excluding distributors and resellers) which have been + validly granted by You or Your distributors under this License prior to + termination shall survive termination. + +6. Disclaimer of Warranty + + Covered Software is provided under this License on an "as is" basis, + without warranty of any kind, either expressed, implied, or statutory, + including, without limitation, warranties that the Covered Software is free + of defects, merchantable, fit for a particular purpose or non-infringing. + The entire risk as to the quality and performance of the Covered Software + is with You. Should any Covered Software prove defective in any respect, + You (not any Contributor) assume the cost of any necessary servicing, + repair, or correction. This disclaimer of warranty constitutes an essential + part of this License. No use of any Covered Software is authorized under + this License except under this disclaimer. + +7. Limitation of Liability + + Under no circumstances and under no legal theory, whether tort (including + negligence), contract, or otherwise, shall any Contributor, or anyone who + distributes Covered Software as permitted above, be liable to You for any + direct, indirect, special, incidental, or consequential damages of any + character including, without limitation, damages for lost profits, loss of + goodwill, work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses, even if such party shall have been + informed of the possibility of such damages. This limitation of liability + shall not apply to liability for death or personal injury resulting from + such party's negligence to the extent applicable law prohibits such + limitation. Some jurisdictions do not allow the exclusion or limitation of + incidental or consequential damages, so this exclusion and limitation may + not apply to You. + +8. Litigation + + Any litigation relating to this License may be brought only in the courts + of a jurisdiction where the defendant maintains its principal place of + business and such litigation shall be governed by laws of that + jurisdiction, without reference to its conflict-of-law provisions. Nothing + in this Section shall prevent a party's ability to bring cross-claims or + counter-claims. + +9. Miscellaneous + + This License represents the complete agreement concerning the subject + matter hereof. If any provision of this License is held to be + unenforceable, such provision shall be reformed only to the extent + necessary to make it enforceable. Any law or regulation which provides that + the language of a contract shall be construed against the drafter shall not + be used to construe this License against a Contributor. + + +10. Versions of the License + +10.1. New Versions + + Mozilla Foundation is the license steward. Except as provided in Section + 10.3, no one other than the license steward has the right to modify or + publish new versions of this License. Each version will be given a + distinguishing version number. + +10.2. Effect of New Versions + + You may distribute the Covered Software under the terms of the version + of the License under which You originally received the Covered Software, + or under the terms of any subsequent version published by the license + steward. + +10.3. Modified Versions + + If you create software not governed by this License, and you want to + create a new license for such software, you may create and use a + modified version of this License if you rename the license and remove + any references to the name of the license steward (except to note that + such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary + Licenses If You choose to distribute Source Code Form that is + Incompatible With Secondary Licenses under the terms of this version of + the License, the notice described in Exhibit B of this License must be + attached. + +Exhibit A - Source Code Form License Notice + + This Source Code Form is subject to the + terms of the Mozilla Public License, v. + 2.0. If a copy of the MPL was not + distributed with this file, You can + obtain one at + http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular file, +then You may include the notice in a location (such as a LICENSE file in a +relevant directory) where a recipient would be likely to look for such a +notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice + + This Source Code Form is "Incompatible + With Secondary Licenses", as defined by + the Mozilla Public License, v. 2.0. + diff --git a/Lists/blocker-enabled-detector.json b/Lists/blocker-enabled-detector.json new file mode 100644 index 0000000000..8cb4abecb5 --- /dev/null +++ b/Lists/blocker-enabled-detector.json @@ -0,0 +1,4 @@ +[{ + "action": { "type": "block" }, + "trigger": { "url-filter": "^http://localhost:[0-9]+/focus-detector\\?blocked=1$" } +}] diff --git a/Lists/web-fonts.json b/Lists/web-fonts.json new file mode 100644 index 0000000000..27ef597007 --- /dev/null +++ b/Lists/web-fonts.json @@ -0,0 +1,4 @@ +[{ + "action": { "type": "block" }, + "trigger": { "url-filter": ".*", "resource-type": ["font"] } +}] diff --git a/README.md b/README.md new file mode 100644 index 0000000000..a493a27977 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +Run ./checkout.sh to pull in dependencies and generate the block list. diff --git a/SCSiriWaveformView/.gitignore b/SCSiriWaveformView/.gitignore new file mode 100644 index 0000000000..89c499e451 --- /dev/null +++ b/SCSiriWaveformView/.gitignore @@ -0,0 +1,18 @@ +# Xcode +.DS_Store +build/ +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +*.xcworkspace +!default.xcworkspace +xcuserdata +profile +*.moved-aside +DerivedData +.idea/ diff --git a/SCSiriWaveformView/Demo/SCSiriWaveformView.xcodeproj/project.pbxproj b/SCSiriWaveformView/Demo/SCSiriWaveformView.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..aef19a1eaf --- /dev/null +++ b/SCSiriWaveformView/Demo/SCSiriWaveformView.xcodeproj/project.pbxproj @@ -0,0 +1,332 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 186F7B7818FAEC1100CCC606 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 186F7B7718FAEC1100CCC606 /* Foundation.framework */; }; + 186F7B7A18FAEC1100CCC606 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 186F7B7918FAEC1100CCC606 /* CoreGraphics.framework */; }; + 186F7B7C18FAEC1100CCC606 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 186F7B7B18FAEC1100CCC606 /* UIKit.framework */; }; + 186F7B8418FAEC1100CCC606 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 186F7B8318FAEC1100CCC606 /* main.m */; }; + 186F7B8818FAEC1100CCC606 /* SCAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 186F7B8718FAEC1100CCC606 /* SCAppDelegate.m */; }; + 186F7B8B18FAEC1100CCC606 /* Main_iPad.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 186F7B8918FAEC1100CCC606 /* Main_iPad.storyboard */; }; + 186F7B8E18FAEC1100CCC606 /* SCViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 186F7B8D18FAEC1100CCC606 /* SCViewController.m */; }; + 186F7BB018FAEC6A00CCC606 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 186F7BAF18FAEC6A00CCC606 /* AVFoundation.framework */; }; + 186F7BF618FAF5B500CCC606 /* Main_iPhone.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 186F7BF518FAF5B500CCC606 /* Main_iPhone.storyboard */; }; + 186F7BFA18FAF77500CCC606 /* SCSiriWaveformView.m in Sources */ = {isa = PBXBuildFile; fileRef = 186F7BF918FAF77500CCC606 /* SCSiriWaveformView.m */; }; + 18EF32411B2479B600204641 /* sample.m4a in Resources */ = {isa = PBXBuildFile; fileRef = 18EF32401B2479B600204641 /* sample.m4a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 186F7B7418FAEC1100CCC606 /* SCSiriWaveformView.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SCSiriWaveformView.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 186F7B7718FAEC1100CCC606 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 186F7B7918FAEC1100CCC606 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + 186F7B7B18FAEC1100CCC606 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 186F7B7F18FAEC1100CCC606 /* SCSiriWaveformView-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "SCSiriWaveformView-Info.plist"; sourceTree = ""; }; + 186F7B8318FAEC1100CCC606 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 186F7B8618FAEC1100CCC606 /* SCAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SCAppDelegate.h; sourceTree = ""; }; + 186F7B8718FAEC1100CCC606 /* SCAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SCAppDelegate.m; sourceTree = ""; }; + 186F7B8A18FAEC1100CCC606 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main_iPad.storyboard; sourceTree = ""; }; + 186F7B8C18FAEC1100CCC606 /* SCViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SCViewController.h; sourceTree = ""; }; + 186F7B8D18FAEC1100CCC606 /* SCViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SCViewController.m; sourceTree = ""; }; + 186F7BAF18FAEC6A00CCC606 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; + 186F7BF518FAF5B500CCC606 /* Main_iPhone.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Main_iPhone.storyboard; sourceTree = ""; }; + 186F7BF818FAF77500CCC606 /* SCSiriWaveformView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SCSiriWaveformView.h; sourceTree = ""; }; + 186F7BF918FAF77500CCC606 /* SCSiriWaveformView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SCSiriWaveformView.m; sourceTree = ""; }; + 18EF32401B2479B600204641 /* sample.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = sample.m4a; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 186F7B7118FAEC1100CCC606 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 186F7BB018FAEC6A00CCC606 /* AVFoundation.framework in Frameworks */, + 186F7B7A18FAEC1100CCC606 /* CoreGraphics.framework in Frameworks */, + 186F7B7C18FAEC1100CCC606 /* UIKit.framework in Frameworks */, + 186F7B7818FAEC1100CCC606 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 186F7B6B18FAEC1100CCC606 = { + isa = PBXGroup; + children = ( + 186F7BF718FAF77500CCC606 /* SCSiriWaveformView */, + 186F7B7D18FAEC1100CCC606 /* Demo */, + 186F7B7618FAEC1100CCC606 /* Frameworks */, + 186F7B7518FAEC1100CCC606 /* Products */, + ); + sourceTree = ""; + }; + 186F7B7518FAEC1100CCC606 /* Products */ = { + isa = PBXGroup; + children = ( + 186F7B7418FAEC1100CCC606 /* SCSiriWaveformView.app */, + ); + name = Products; + sourceTree = ""; + }; + 186F7B7618FAEC1100CCC606 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 186F7BAF18FAEC6A00CCC606 /* AVFoundation.framework */, + 186F7B7718FAEC1100CCC606 /* Foundation.framework */, + 186F7B7918FAEC1100CCC606 /* CoreGraphics.framework */, + 186F7B7B18FAEC1100CCC606 /* UIKit.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 186F7B7D18FAEC1100CCC606 /* Demo */ = { + isa = PBXGroup; + children = ( + 186F7B8618FAEC1100CCC606 /* SCAppDelegate.h */, + 186F7B8718FAEC1100CCC606 /* SCAppDelegate.m */, + 186F7B8918FAEC1100CCC606 /* Main_iPad.storyboard */, + 186F7BF518FAF5B500CCC606 /* Main_iPhone.storyboard */, + 186F7B8C18FAEC1100CCC606 /* SCViewController.h */, + 186F7B8D18FAEC1100CCC606 /* SCViewController.m */, + 186F7B7E18FAEC1100CCC606 /* Supporting Files */, + ); + name = Demo; + path = SCSiriWaveformView; + sourceTree = ""; + }; + 186F7B7E18FAEC1100CCC606 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 186F7B8318FAEC1100CCC606 /* main.m */, + 18EF32401B2479B600204641 /* sample.m4a */, + 186F7B7F18FAEC1100CCC606 /* SCSiriWaveformView-Info.plist */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 186F7BF718FAF77500CCC606 /* SCSiriWaveformView */ = { + isa = PBXGroup; + children = ( + 186F7BF818FAF77500CCC606 /* SCSiriWaveformView.h */, + 186F7BF918FAF77500CCC606 /* SCSiriWaveformView.m */, + ); + name = SCSiriWaveformView; + path = ../SCSiriWaveformView; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 186F7B7318FAEC1100CCC606 /* SCSiriWaveformView */ = { + isa = PBXNativeTarget; + buildConfigurationList = 186F7BA618FAEC1100CCC606 /* Build configuration list for PBXNativeTarget "SCSiriWaveformView" */; + buildPhases = ( + 186F7B7018FAEC1100CCC606 /* Sources */, + 186F7B7118FAEC1100CCC606 /* Frameworks */, + 186F7B7218FAEC1100CCC606 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = SCSiriWaveformView; + productName = SCSiriWaveformView; + productReference = 186F7B7418FAEC1100CCC606 /* SCSiriWaveformView.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 186F7B6C18FAEC1100CCC606 /* Project object */ = { + isa = PBXProject; + attributes = { + CLASSPREFIX = SC; + LastUpgradeCheck = 0510; + ORGANIZATIONNAME = "Stefan Ceriu"; + }; + buildConfigurationList = 186F7B6F18FAEC1100CCC606 /* Build configuration list for PBXProject "SCSiriWaveformView" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 186F7B6B18FAEC1100CCC606; + productRefGroup = 186F7B7518FAEC1100CCC606 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 186F7B7318FAEC1100CCC606 /* SCSiriWaveformView */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 186F7B7218FAEC1100CCC606 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 186F7BF618FAF5B500CCC606 /* Main_iPhone.storyboard in Resources */, + 18EF32411B2479B600204641 /* sample.m4a in Resources */, + 186F7B8B18FAEC1100CCC606 /* Main_iPad.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 186F7B7018FAEC1100CCC606 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 186F7B8818FAEC1100CCC606 /* SCAppDelegate.m in Sources */, + 186F7B8E18FAEC1100CCC606 /* SCViewController.m in Sources */, + 186F7BFA18FAF77500CCC606 /* SCSiriWaveformView.m in Sources */, + 186F7B8418FAEC1100CCC606 /* main.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 186F7B8918FAEC1100CCC606 /* Main_iPad.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 186F7B8A18FAEC1100CCC606 /* Base */, + ); + name = Main_iPad.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 186F7BA418FAEC1100CCC606 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 7.1; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = 2; + }; + name = Debug; + }; + 186F7BA518FAEC1100CCC606 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 7.1; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = 2; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 186F7BA718FAEC1100CCC606 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + GCC_PRECOMPILE_PREFIX_HEADER = NO; + GCC_PREFIX_HEADER = ""; + INFOPLIST_FILE = "SCSiriWaveformView/SCSiriWaveformView-Info.plist"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = app; + }; + name = Debug; + }; + 186F7BA818FAEC1100CCC606 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + GCC_PRECOMPILE_PREFIX_HEADER = NO; + GCC_PREFIX_HEADER = ""; + INFOPLIST_FILE = "SCSiriWaveformView/SCSiriWaveformView-Info.plist"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = app; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 186F7B6F18FAEC1100CCC606 /* Build configuration list for PBXProject "SCSiriWaveformView" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 186F7BA418FAEC1100CCC606 /* Debug */, + 186F7BA518FAEC1100CCC606 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 186F7BA618FAEC1100CCC606 /* Build configuration list for PBXNativeTarget "SCSiriWaveformView" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 186F7BA718FAEC1100CCC606 /* Debug */, + 186F7BA818FAEC1100CCC606 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 186F7B6C18FAEC1100CCC606 /* Project object */; +} diff --git a/SCSiriWaveformView/Demo/SCSiriWaveformView/Base.lproj/Main_iPad.storyboard b/SCSiriWaveformView/Demo/SCSiriWaveformView/Base.lproj/Main_iPad.storyboard new file mode 100644 index 0000000000..19078622cc --- /dev/null +++ b/SCSiriWaveformView/Demo/SCSiriWaveformView/Base.lproj/Main_iPad.storyboard @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SCSiriWaveformView/Demo/SCSiriWaveformView/Main_iPhone.storyboard b/SCSiriWaveformView/Demo/SCSiriWaveformView/Main_iPhone.storyboard new file mode 100644 index 0000000000..fddf066cfe --- /dev/null +++ b/SCSiriWaveformView/Demo/SCSiriWaveformView/Main_iPhone.storyboard @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SCSiriWaveformView/Demo/SCSiriWaveformView/SCAppDelegate.h b/SCSiriWaveformView/Demo/SCSiriWaveformView/SCAppDelegate.h new file mode 100644 index 0000000000..73a308c780 --- /dev/null +++ b/SCSiriWaveformView/Demo/SCSiriWaveformView/SCAppDelegate.h @@ -0,0 +1,15 @@ +// +// SCAppDelegate.h +// SCSiriWaveformView +// +// Created by Stefan Ceriu on 13/04/2014. +// Copyright (c) 2014 Stefan Ceriu. All rights reserved. +// + +#import + +@interface SCAppDelegate : UIResponder + +@property (strong, nonatomic) UIWindow *window; + +@end diff --git a/SCSiriWaveformView/Demo/SCSiriWaveformView/SCAppDelegate.m b/SCSiriWaveformView/Demo/SCSiriWaveformView/SCAppDelegate.m new file mode 100644 index 0000000000..f8184de3b4 --- /dev/null +++ b/SCSiriWaveformView/Demo/SCSiriWaveformView/SCAppDelegate.m @@ -0,0 +1,19 @@ +// +// SCAppDelegate.m +// SCSiriWaveformView +// +// Created by Stefan Ceriu on 13/04/2014. +// Copyright (c) 2014 Stefan Ceriu. All rights reserved. +// + +#import "SCAppDelegate.h" + +@implementation SCAppDelegate + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions +{ + // Override point for customization after application launch. + return YES; +} + +@end diff --git a/SCSiriWaveformView/Demo/SCSiriWaveformView/SCSiriWaveformView-Info.plist b/SCSiriWaveformView/Demo/SCSiriWaveformView/SCSiriWaveformView-Info.plist new file mode 100644 index 0000000000..e35849602c --- /dev/null +++ b/SCSiriWaveformView/Demo/SCSiriWaveformView/SCSiriWaveformView-Info.plist @@ -0,0 +1,50 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + ${PRODUCT_NAME} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + com.stefanceriu.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + LSRequiresIPhoneOS + + UIMainStoryboardFile + Main_iPhone + UIMainStoryboardFile~ipad + Main_iPhone + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/SCSiriWaveformView/Demo/SCSiriWaveformView/SCViewController.h b/SCSiriWaveformView/Demo/SCSiriWaveformView/SCViewController.h new file mode 100644 index 0000000000..e012277af0 --- /dev/null +++ b/SCSiriWaveformView/Demo/SCSiriWaveformView/SCViewController.h @@ -0,0 +1,13 @@ +// +// SCViewController.h +// SCSiriWaveformView +// +// Created by Stefan Ceriu on 13/04/2014. +// Copyright (c) 2014 Stefan Ceriu. All rights reserved. +// + +#import + +@interface SCViewController : UIViewController + +@end diff --git a/SCSiriWaveformView/Demo/SCSiriWaveformView/SCViewController.m b/SCSiriWaveformView/Demo/SCSiriWaveformView/SCViewController.m new file mode 100644 index 0000000000..28441aa4cb --- /dev/null +++ b/SCSiriWaveformView/Demo/SCSiriWaveformView/SCViewController.m @@ -0,0 +1,133 @@ +// +// SCViewController.m +// SCSiriWaveformView +// +// Created by Stefan Ceriu on 13/04/2014. +// Copyright (c) 2014 Stefan Ceriu. All rights reserved. +// + +#import "SCViewController.h" + +#import + +#import "SCSiriWaveformView.h" + +typedef NS_ENUM(NSUInteger, SCSiriWaveformViewInputType) { + SCSiriWaveformViewInputTypeRecorder, + SCSiriWaveformViewInputTypePlayer +}; + +@interface SCViewController () + +@property (nonatomic, strong) AVAudioRecorder *recorder; +@property (nonatomic, strong) AVAudioPlayer *player; + +@property (nonatomic, weak) IBOutlet SCSiriWaveformView *waveformView; + +@property (nonatomic, assign) SCSiriWaveformViewInputType selectedInputType; + +@end + +@implementation SCViewController + +- (void)viewDidLoad +{ + [super viewDidLoad]; + + NSDictionary *settings = @{AVSampleRateKey: [NSNumber numberWithFloat: 44100.0], + AVFormatIDKey: [NSNumber numberWithInt: kAudioFormatAppleLossless], + AVNumberOfChannelsKey: [NSNumber numberWithInt: 2], + AVEncoderAudioQualityKey: [NSNumber numberWithInt: AVAudioQualityMin]}; + + NSError *error; + NSURL *url = [NSURL fileURLWithPath:@"/dev/null"]; + self.recorder = [[AVAudioRecorder alloc] initWithURL:url settings:settings error:&error]; + + if(error) { + NSLog(@"Ups, could not create recorder %@", error); + return; + } + + self.player = [[AVAudioPlayer alloc] initWithContentsOfURL:[[NSBundle mainBundle] URLForResource:@"sample" withExtension:@"m4a"] error:&error]; + if(error) { + NSLog(@"Ups, could not create player %@", error); + return; + } + + [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:&error]; + + if (error) { + NSLog(@"Error setting category: %@", [error description]); + return; + } + + CADisplayLink *displaylink = [CADisplayLink displayLinkWithTarget:self selector:@selector(updateMeters)]; + [displaylink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes]; + + [self.waveformView setWaveColor:[UIColor whiteColor]]; + [self.waveformView setPrimaryWaveLineWidth:3.0f]; + [self.waveformView setSecondaryWaveLineWidth:1.0]; + + [self setSelectedInputType:SCSiriWaveformViewInputTypeRecorder]; +} + +- (void)setSelectedInputType:(SCSiriWaveformViewInputType)selectedInputType +{ + _selectedInputType = selectedInputType; + + switch (selectedInputType) { + case SCSiriWaveformViewInputTypeRecorder: { + [self.player stop]; + + [self.recorder prepareToRecord]; + [self.recorder setMeteringEnabled:YES]; + [self.recorder record]; + break; + } + case SCSiriWaveformViewInputTypePlayer: { + [self.recorder stop]; + + [self.player prepareToPlay]; + [self.player setMeteringEnabled:YES]; + [self.player play]; + break; + } + } +} + +- (IBAction)onSegmentedControlValueChanged:(UISegmentedControl *)sender +{ + [self setSelectedInputType:(SCSiriWaveformViewInputType)sender.selectedSegmentIndex]; +} + +- (void)updateMeters +{ + CGFloat normalizedValue; + switch (self.selectedInputType) { + case SCSiriWaveformViewInputTypeRecorder: { + [self.recorder updateMeters]; + normalizedValue = [self _normalizedPowerLevelFromDecibels:[self.recorder averagePowerForChannel:0]]; + break; + } + case SCSiriWaveformViewInputTypePlayer: { + [self.player updateMeters]; + normalizedValue = [self _normalizedPowerLevelFromDecibels:[self.player averagePowerForChannel:0]]; + break; + } + } + + [self.waveformView updateWithLevel:normalizedValue]; +} + +#pragma mark - Private + +- (CGFloat)_normalizedPowerLevelFromDecibels:(CGFloat)decibels +{ + if (decibels < -60.0f || decibels == 0.0f) { + return 0.0f; + } + + return powf((powf(10.0f, 0.05f * decibels) - powf(10.0f, 0.05f * -60.0f)) * (1.0f / (1.0f - powf(10.0f, 0.05f * -60.0f))), 1.0f / 2.0f); +} + +@end diff --git a/SCSiriWaveformView/Demo/SCSiriWaveformView/main.m b/SCSiriWaveformView/Demo/SCSiriWaveformView/main.m new file mode 100644 index 0000000000..28afa2c455 --- /dev/null +++ b/SCSiriWaveformView/Demo/SCSiriWaveformView/main.m @@ -0,0 +1,18 @@ +// +// main.m +// SCSiriWaveformView +// +// Created by Stefan Ceriu on 13/04/2014. +// Copyright (c) 2014 Stefan Ceriu. All rights reserved. +// + +#import + +#import "SCAppDelegate.h" + +int main(int argc, char * argv[]) +{ + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([SCAppDelegate class])); + } +} diff --git a/SCSiriWaveformView/Demo/SCSiriWaveformView/sample.m4a b/SCSiriWaveformView/Demo/SCSiriWaveformView/sample.m4a new file mode 100644 index 0000000000000000000000000000000000000000..8134b16b9e04bfbf8ea02dd09f09844079009702 GIT binary patch literal 46468 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 +Feel free to contact me at [stefan.ceriu@yahoo.com](mailto:stefan.ceriu@yahoo.com) or [@stefanceriu](https://twitter.com/stefanceriu). diff --git a/SCSiriWaveformView/SCSiriWaveformView.podspec b/SCSiriWaveformView/SCSiriWaveformView.podspec new file mode 100644 index 0000000000..f316f25e87 --- /dev/null +++ b/SCSiriWaveformView/SCSiriWaveformView.podspec @@ -0,0 +1,17 @@ +Pod::Spec.new do |s| + s.name = 'SCSiriWaveformView' + s.version = '1.0.3' + s.platform = :ios + s.ios.deployment_target = '7.0' + + s.summary = 'UIView subclass that reproduces the waveform effect seen in Siri on iOS 7' + s.homepage = 'https://github.com/stefanceriu/SCSiriWaveformView' + s.author = { 'Stefan Ceriu' => 'stefan.ceriu@yahoo.com' } + s.social_media_url = 'https://twitter.com/stefanceriu' + s.source = { :git => 'https://github.com/stefanceriu/SCSiriWaveformView.git', :tag => "v#{s.version}" } + s.license = { :type => 'MIT License', :file => 'LICENSE' } + s.source_files = 'SCSiriWaveformView/*' + s.requires_arc = true + s.frameworks = 'UIKit', 'QuartzCore', 'CoreGraphics', 'Foundation', 'AVFoundation' + s.screenshots = ["https://dl.dropboxusercontent.com/u/12748201/SCSiriWaveformView/SCSiriWaveformView.gif"] +end \ No newline at end of file diff --git a/SCSiriWaveformView/SCSiriWaveformView/SCSiriWaveformView.h b/SCSiriWaveformView/SCSiriWaveformView/SCSiriWaveformView.h new file mode 100755 index 0000000000..af0c76de35 --- /dev/null +++ b/SCSiriWaveformView/SCSiriWaveformView/SCSiriWaveformView.h @@ -0,0 +1,80 @@ +// +// SCSiriWaveformView.h +// SCSiriWaveformView +// +// Created by Stefan Ceriu on 12/04/2014. +// Copyright (c) 2014 Stefan Ceriu. All rights reserved. +// + +@import UIKit; + +IB_DESIGNABLE +@interface SCSiriWaveformView : UIView + +/* + * Tells the waveform to redraw itself using the given level (normalized value) + */ +- (void)updateWithLevel:(CGFloat)level; + +/* + * The total number of waves + * Default: 5 + */ +@property (nonatomic, assign) NSUInteger numberOfWaves; + +/* + * Color to use for primary wave + * Default: white + */ +@property (nonatomic, strong) IBInspectable UIColor *primaryWaveColor; + +/* + * Color to use for secondary waves + * Default: white + */ +@property (nonatomic, strong) IBInspectable UIColor *secondaryWaveColor; + +/* + * Line width used for the proeminent wave + * Default: 3.0f + */ +@property (nonatomic, assign) IBInspectable CGFloat primaryWaveLineWidth; + +/* + * Line width used for all secondary waves + * Default: 1.0f + */ +@property (nonatomic, assign) IBInspectable CGFloat secondaryWaveLineWidth; + +/* + * The amplitude that is used when the incoming amplitude is near zero. + * Setting a value greater 0 provides a more vivid visualization. + * Default: 0.01 + */ +@property (nonatomic, assign) IBInspectable CGFloat idleAmplitude; + +/* + * The frequency of the sinus wave. The higher the value, the more sinus wave peaks you will have. + * Default: 1.5 + */ +@property (nonatomic, assign) IBInspectable CGFloat frequency; + +/* + * The current amplitude + */ +@property (nonatomic, assign, readonly) IBInspectable CGFloat amplitude; + +/* + * The lines are joined stepwise, the more dense you draw, the more CPU power is used. + * Default: 5 + */ +@property (nonatomic, assign) IBInspectable CGFloat density; + +/* + * The phase shift that will be applied with each level setting + * Change this to modify the animation speed or direction + * Default: -0.15 + */ +@property (nonatomic, assign) IBInspectable CGFloat phaseShift; + +@end diff --git a/SCSiriWaveformView/SCSiriWaveformView/SCSiriWaveformView.m b/SCSiriWaveformView/SCSiriWaveformView/SCSiriWaveformView.m new file mode 100755 index 0000000000..f2310d9b23 --- /dev/null +++ b/SCSiriWaveformView/SCSiriWaveformView/SCSiriWaveformView.m @@ -0,0 +1,120 @@ +// +// SCSiriWaveformView.m +// SCSiriWaveformView +// +// Created by Stefan Ceriu on 12/04/2014. +// Copyright (c) 2014 Stefan Ceriu. All rights reserved. +// + +#import "SCSiriWaveformView.h" + +static const CGFloat kDefaultFrequency = 1.5f; +static const CGFloat kDefaultAmplitude = 1.0f; +static const CGFloat kDefaultIdleAmplitude = 0.01f; +static const CGFloat kDefaultNumberOfWaves = 5.0f; +static const CGFloat kDefaultPhaseShift = -0.15f; +static const CGFloat kDefaultDensity = 5.0f; +static const CGFloat kDefaultPrimaryLineWidth = 3.0f; +static const CGFloat kDefaultSecondaryLineWidth = 1.0f; + +@interface SCSiriWaveformView () + +@property (nonatomic, assign) CGFloat phase; +@property (nonatomic, assign) CGFloat amplitude; + +@end + +@implementation SCSiriWaveformView + +- (instancetype)initWithFrame:(CGRect)frame +{ + if (self = [super initWithFrame:frame]) { + [self setup]; + } + + return self; +} + +- (instancetype)initWithCoder:(NSCoder *)aDecoder +{ + if (self = [super initWithCoder:aDecoder]) { + [self setup]; + } + + return self; +} + +- (void)setup +{ + self.primaryWaveColor = [UIColor whiteColor]; + self.secondaryWaveColor = [UIColor whiteColor]; + + self.frequency = kDefaultFrequency; + + self.amplitude = kDefaultAmplitude; + self.idleAmplitude = kDefaultIdleAmplitude; + + self.numberOfWaves = kDefaultNumberOfWaves; + self.phaseShift = kDefaultPhaseShift; + self.density = kDefaultDensity; + + self.primaryWaveLineWidth = kDefaultPrimaryLineWidth; + self.secondaryWaveLineWidth = kDefaultSecondaryLineWidth; +} + +- (void)updateWithLevel:(CGFloat)level +{ + self.phase += self.phaseShift; + self.amplitude = fmax(level, self.idleAmplitude); + + [self setNeedsDisplay]; +} + +// Thanks to Raffael Hannemann https://github.com/raffael/SISinusWaveView +- (void)drawRect:(CGRect)rect +{ + CGContextRef context = UIGraphicsGetCurrentContext(); + CGContextClearRect(context, self.bounds); + + [self.backgroundColor set]; + CGContextFillRect(context, rect); + + // We draw multiple sinus waves, with equal phases but altered amplitudes, multiplied by a parable function. + for (long i = self.numberOfWaves; i >= 0; i--) { + CGContextRef context = UIGraphicsGetCurrentContext(); + + CGContextSetLineWidth(context, (i == 0 ? self.primaryWaveLineWidth : self.secondaryWaveLineWidth)); + + CGFloat halfHeight = CGRectGetHeight(self.bounds) / 2.0f; + CGFloat width = CGRectGetWidth(self.bounds); + CGFloat mid = width / 2.0f; + + const CGFloat maxAmplitude = halfHeight - 4.0f; // 4 corresponds to twice the stroke width + + // Progress is a value between 1.0 and -0.5, determined by the current wave idx, which is used to alter the wave's amplitude. + CGFloat progress = 1.0f - (CGFloat)i / self.numberOfWaves; + CGFloat normedAmplitude = (1.5f * progress - 0.5f) * self.amplitude; + + CGFloat multiplier = MIN(1.0, (progress / 3.0f * 2.0f) + (1.0f / 3.0f)); + + UIColor *waveColor = (i == 0) ? self.primaryWaveColor : self.secondaryWaveColor; + [[waveColor colorWithAlphaComponent:multiplier * CGColorGetAlpha(waveColor.CGColor)] set]; + + for (CGFloat x = 0; x Bool? { + return NSUserDefaults(suiteName: SuiteName)?.objectForKey(name) as? Bool + } + + static func set(value: Bool, forKey key: String) { + if let defaults = NSUserDefaults(suiteName: SuiteName) { + defaults.setBool(value, forKey: key) + defaults.synchronize() + } + } +} \ No newline at end of file diff --git a/build-disconnect.py b/build-disconnect.py new file mode 100755 index 0000000000..98fbf719e1 --- /dev/null +++ b/build-disconnect.py @@ -0,0 +1,122 @@ +#!/usr/bin/env python + +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +from __future__ import print_function + +import json +import urlparse + + +def url_filter(resource): + return "^https?://(.+\\.)?" + resource.replace(".", "\\.") + + +def unless_domain(properties): + return ["*" + domain for domain in properties] + + +def create_blocklist_entry(resource, properties): + return {"trigger": {"url-filter": url_filter(resource), + "load-type": ["third-party"], + "unless-domain": unless_domain(properties)}, + "action": {"type": "block"}} + + +def generate_entity_list(path="shavar-prod-lists/disconnect-entitylist.json"): + with open(path) as fp: + entitylist = json.load(fp) + + blocklist = [] + + for name, value in entitylist.items(): + for resource in value['resources']: + entry = create_blocklist_entry(resource, value['properties']) + blocklist.append(entry) + + f = open('Lists/disconnect.json', 'w') + out = json.dumps(blocklist, indent=0, + separators=(',', ':')).replace('\n', '') + f.write(out) + + # Human-readable output. + # print json.dumps(blocklist, indent=2) + + +def generate_blacklists(blacklist="shavar-prod-lists/disconnect-blacklist.json", entitylist="shavar-prod-lists/disconnect-entitylist.json"): + # Generating the categorical lists requires some manual tweaking to the + # data at the moment. + + def find_entry(entry, list_): + for d in list_: + if d.keys() == [entry]: + return d + + # First, massage the existing categorical data slightly + with open(blacklist) as fp: + categories = json.load(fp)["categories"] + # Remove what we know we don't care about + del categories["Legacy Disconnect"] + del categories["Legacy Content"] + # Move the Twitter and Facebook entries into the Social category from + # the Disconnect category + disconnect = categories["Disconnect"] + del categories["Disconnect"] + categories["Social"].append(find_entry("Facebook", disconnect)) + categories["Social"].append(find_entry("Twitter", disconnect)) + + # Load the entitylist to map the whitelist entries. + with open(entitylist) as fp: + entities = json.load(fp) + + # Change the Google entries for the respective categories + with open("shavar-prod-lists/google_mapping.json") as fp: + tweaks = json.load(fp)["categories"] + for category in ("Advertising", "Analytics", "Social"): + cat = categories[category] + goog = find_entry("Google", cat) or None + if goog is None: + # No data exist for this category, just append + cat.append(tweaks[category][0]) + else: + for prop, resources in tweaks[category]["Google"].items(): + if prop not in goog: + goog[prop] = resources + continue + for resource in resources: + if resource not in goog[prop]: + goog[prop].append(resource) + goog[prop].sort() + cat.sort() + + for category in ("Advertising", "Analytics", "Social", "Content"): + blocklist = [] + + for entity in categories[category]: + for name, domains in entity.iteritems(): + for property_, resources in domains.iteritems(): + if name in entities: + props = entities[name]["properties"] + else: + prop = urlparse.urlparse(property_).netloc.split(".") + if prop[0] == "www": + prop.pop(0) + props = [".".join(prop)] + for res in resources: + blocklist.append(create_blocklist_entry(res, props)) + + print("{cat} blacklist has {count} entries." + .format(cat=category, count=len(blocklist))) + + with open("Lists/disconnect-{0}.json".format(category.lower()), + "w") as fp: + out = json.dumps(blocklist, indent=0, + separators=(',', ':')).replace('\n', '') + fp.write(out) + + +if __name__ == "__main__": + # generate_entity_list() + generate_blacklists() diff --git a/checkout.sh b/checkout.sh new file mode 100755 index 0000000000..8e72f62cf0 --- /dev/null +++ b/checkout.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +git submodule init +git submodule update +./build-disconnect.py diff --git a/shavar-prod-lists/README.md b/shavar-prod-lists/README.md new file mode 100644 index 0000000000..dd1e5c4c27 --- /dev/null +++ b/shavar-prod-lists/README.md @@ -0,0 +1,24 @@ +# shavar-prod-lists +This repo serves as a staging area for shavar/tracking protection lists prior to production deployment to Firefox. This repo gives Mozilla a chance to manually review all updates before they go live, a fail-safe to prevent accidental deployment of a list that could break Firefox. + + +### Raw lists +These two JSON files power Tracking Protection in Firefox. + +* disconnect-blacklist.json is a version controlled copy of the Disconnect.me public GPL anti-tracking list available here: https://services.disconnect.me/disconnect-plaintext.json +* disconnect-entitylist.json is a transformed version of the public GPL list that Disconnect reformats for Firefox, in order to reduce the size of the entity list we send to Firefox via the Shavar service. + +These lists are processed and transformed and sent to Firefox via Shavar. + + +### Blacklist +The blacklist is the core of tracking protection in Firefox. Firefox 42 ships a single processed version of the blacklist, and that list excludes the "Content" category URLs. This is the "Basic protection" list. Firefox 43 adds a second "Strict protection" list which includes the "Content" category URLs for blocking. + +A vestige of the list is the "Disconnect" category, which contains Facebook, Twitter, and Google domains. We re-map the Facebook and Twitter domains to the Social category, per Disconnect guidance. The google_mapping.json file is used to remap the individual Google domains to their respective categories. This remapping is temporary while until the list is updated to fix these issues. + +### Entity list +Tracking protection technically works by blocking loads from blocked domains. But the Entity List conceptually changes it, so that it is no longer about domains, but about the companies. If you are visiting a website, engaged 1-on-1 with them, Tracking Protection will block the other companies who the user may not realize are even present and didn't explicitly intend to interact with. + +Tracking Protection blocks loads on the blacklist when they are third-party. The Entity list whitelists different domains that are wholly owned by the same company. For example, if abcd.com owns efgh.com and efgh.com is on the blacklist, it will not be blocked on abcd.com. Instead, efgh.com will be treated as first-party on abcd.com, since the same company owns both. But since efgh.com is on the blacklist it will be blocked on other third-party domains that are not all owned by the same parent company. + + diff --git a/shavar-prod-lists/disconnect-blacklist.json b/shavar-prod-lists/disconnect-blacklist.json new file mode 100644 index 0000000000..5950a55916 --- /dev/null +++ b/shavar-prod-lists/disconnect-blacklist.json @@ -0,0 +1,8928 @@ +{ + "license": "Copyright 2010-2015 Disconnect, Inc. / This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. / This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. / You should have received a copy of the GNU General Public License along with this program. If not, see .", + "categories": { + "Disconnect": [ + { + "Facebook": { + "http://www.facebook.com/": [ + "facebook.com", + "facebook.de", + "facebook.fr", + "facebook.net", + "fb.com", + "atlassolutions.com", + "friendfeed.com" + ] + } + }, + { + "Google": { + "http://www.google.com/": [ + "2mdn.net", + "admeld.com", + "admob.com", + "cc-dt.com", + "destinationurl.com", + "developers.google.com", + "doubleclick.net", + "gmail.com", + "google-analytics.com", + "adwords.google.com", + "mail.google.com", + "inbox.google.com", + "plus.google.com", + "plusone.google.com", + "voice.google.com", + "wave.google.com", + "googleadservices.com", + "googlemail.com", + "googlesyndication.com", + "googletagservices.com", + "invitemedia.com", + "orkut.com", + "postrank.com", + "smtad.net", + "teracent.com", + "teracent.net", + "ytsa.net" + ] + } + }, + { + "Twitter": { + "https://twitter.com/": [ + "backtype.com", + "crashlytics.com", + "tweetdeck.com", + "twimg.com", + "twitter.com", + "twitter.jp" + ] + } + } + ], + "Advertising": [ + { + "[x+1]": { + "http://www.xplusone.com/": [ + "ru4.com", + "xplusone.com" + ] + } + }, + { + "2leep.com": { + "http://2leep.com/": [ + "2leep.com" + ] + } + }, + { + "33Across": { + "http://33across.com/": [ + "33across.com" + ] + } + }, + { + "4INFO": { + "http://www.4info.com/": [ + "4info.com", + "adhaven.com" + ] + } + }, + { + "4mads": { + "http://4mads.com/": [ + "4mads.com" + ] + } + }, + { + "Abax Interactive": { + "http://abaxinteractive.com/": [ + "abaxinteractive.com" + ] + } + }, + { + "Accelia": { + "http://www.accelia.net/": [ + "accelia.net", + "durasite.net" + ] + } + }, + { + "Accordant Media": { + "http://www.accordantmedia.com/": [ + "accordantmedia.com" + ] + } + }, + { + "Acquisio": { + "http://www.acquisio.com/": [ + "acquisio.com", + "clickequations.net" + ] + } + }, + { + "Act-On": { + "http://www.act-on.com/": [ + "act-on.com", + "actonsoftware.com" + ] + } + }, + { + "Actisens": { + "http://www.actisens.com/": [ + "actisens.com", + "gestionpub.com" + ] + } + }, + { + "ActiveConversion": { + "http://www.activeconversion.com/": [ + "activeconversion.com", + "activemeter.com" + ] + } + }, + { + "Acuity": { + "http://www.acuity.com/": [ + "acuity.com", + "acuityads.com", + "acuityplatform.com" + ] + } + }, + { + "Ad Decisive": { + "http://www.addecisive.com/": [ + "a2dfp.net", + "addecisive.com" + ] + } + }, + { + "AdLeave": { + "http://www.adleave.com/": [ + "adleave.com" + ] + } + }, + { + "Ad Dynamo": { + "http://www.addynamo.com/": [ + "addynamo.com", + "addynamo.net" + ] + } + }, + { + "AD Europe": { + "http://www.adeurope.com/": [ + "adeurope.com" + ] + } + }, + { + "Ad Knife": { + "http://static.adknife.com/": [ + "adknife.com" + ] + } + }, + { + "Ad Magnet": { + "http://www.admagnet.com/": [ + "admagnet.com", + "admagnet.net" + ] + } + }, + { + "ad pepper media": { + "http://www.adpepper.us/": [ + "adpepper.com", + "adpepper.us" + ] + } + }, + { + "AD2ONE": { + "http://www.ad2onegroup.com/": [ + "ad2onegroup.com" + ] + } + }, + { + "Ad4Game": { + "http://ad4game.com/": [ + "ad4game.com" + ] + } + }, + { + "ad6media": { + "http://www.ad6media.fr/": [ + "ad6media.fr" + ] + } + }, + { + "AdaptiveAds": { + "http://www.adaptiveads.com/": [ + "adaptiveads.com" + ] + } + }, + { + "Adaptly": { + "http://adaptly.com/": [ + "adaptly.com" + ] + } + }, + { + "Adara Media": { + "http://www.adaramedia.com/": [ + "adaramedia.com", + "opinmind.com", + "yieldoptimizer.com" + ] + } + }, + { + "Adatus": { + "http://www.adatus.com/": [ + "adatus.com" + ] + } + }, + { + "adBrite": { + "http://www.adbrite.com/": [ + "adbrite.com" + ] + } + }, + { + "Adbroker.de": { + "http://adbroker.de/": [ + "adbroker.de" + ] + } + }, + { + "Adchemy": { + "http://www.adchemy.com/": [ + "adchemy.com" + ] + } + }, + { + "AdCirrus": { + "http://adcirrus.com/": [ + "adcirrus.com" + ] + } + }, + { + "Adconion": { + "http://www.adconion.com/": [ + "adconion.com", + "amgdgt.com", + "euroclick.com", + "smartclip.com" + ] + } + }, + { + "addGloo": { + "http://www.addgloo.com/": [ + "addgloo.com" + ] + } + }, + { + "Addvantage Media": { + "http://www.addvantagemedia.com/": [ + "addvantagemedia.com" + ] + } + }, + { + "AdEngage": { + "http://adengage.com/": [ + "adengage.com" + ] + } + }, + { + "AdExtent": { + "http://www.adextent.com/": [ + "adextent.com" + ] + } + }, + { + "AdF.ly": { + "http://adf.ly/": [ + "adf.ly" + ] + } + }, + { + "Adfonic": { + "http://adfonic.com/": [ + "adfonic.com" + ] + } + }, + { + "Adform": { + "http://www.adform.com/": [ + "adform.com", + "adform.net" + ] + } + }, + { + "AdFox": { + "http://adfox.ru/": [ + "adfox.ru" + ] + } + }, + { + "AdFrontiers": { + "http://www.adfrontiers.com/": [ + "adfrontiers.com" + ] + } + }, + { + "Adfunky": { + "http://www.adfunky.com/": [ + "adfunky.com", + "adfunkyserver.com" + ] + } + }, + { + "Adfusion": { + "http://www.adfusion.com/": [ + "adfusion.com" + ] + } + }, + { + "AdGent Digital": { + "http://www.adgentdigital.com/": [ + "adgentdigital.com", + "shorttailmedia.com" + ] + } + }, + { + "AdGibbon": { + "http://www.adgibbon.com/": [ + "adgibbon.com" + ] + } + }, + { + "adhood": { + "http://www.adhood.com/": [ + "adhood.com" + ] + } + }, + { + "Adiant": { + "http://www.adiant.com/": [ + "adblade.com", + "adiant.com" + ] + } + }, + { + "AdInsight": { + "http://www.adinsight.com/": [ + "adinsight.com", + "adinsight.eu" + ] + } + }, + { + "AdIQuity": { + "http://adiquity.com/": [ + "adiquity.com" + ] + } + }, + { + "ADITION": { + "http://www.adition.com/": [ + "adition.com" + ] + } + }, + { + "AdJug": { + "http://www.adjug.com/": [ + "adjug.com" + ] + } + }, + { + "AdJuggler": { + "http://www.adjuggler.com/": [ + "adjuggler.com", + "adjuggler.net" + ] + } + }, + { + "AdKeeper": { + "http://www.adkeeper.com/": [ + "adkeeper.com", + "akncdn.com" + ] + } + }, + { + "Adknowledge": { + "http://www.adknowledge.com/": [ + "adknowledge.com", + "adparlor.com", + "bidsystem.com", + "cubics.com", + "lookery.com" + ] + } + }, + { + "AdLantis": { + "http://www.adlantis.jp/": [ + "adimg.net", + "adlantis.jp" + ] + } + }, + { + "Adlibrium": { + "http://www.adlibrium.com/": [ + "adlibrium.com" + ] + } + }, + { + "Matomy Market": { + "http://www.matomy.com/": [ + "adsmarket.com", + "matomy.com" + ] + } + }, + { + "adMarketplace": { + "http://www.admarketplace.com/": [ + "admarketplace.com" + ] + } + }, + { + "AdMarvel": { + "http://www.admarvel.com/": [ + "admarvel.com" + ] + } + }, + { + "AdMaximizer Network": { + "http://admaximizer.com/": [ + "admaximizer.com" + ] + } + }, + { + "AdMedia": { + "http://www.admedia.com/": [ + "admedia.com" + ] + } + }, + { + "Admeta": { + "http://www.admeta.com/": [ + "admeta.com", + "atemda.com" + ] + } + }, + { + "Admicro": { + "http://www.admicro.vn/": [ + "admicro.vn", + "vcmedia.vn" + ] + } + }, + { + "Admotion": { + "http://www.admotion.com/": [ + "admotion.com", + "nspmotion.com" + ] + } + }, + { + "Admobile": { + "http://admobile.com/": [ + "admobile.com" + ] + } + }, + { + "Adnetik": { + "http://adnetik.com/": [ + "adnetik.com", + "wtp101.com" + ] + } + }, + { + "AdNetwork.net": { + "http://www.adnetwork.net/": [ + "adnetwork.net" + ] + } + }, + { + "adnologies": { + "http://www.adnologies.com/": [ + "adnologies.com", + "heias.com" + ] + } + }, + { + "Adobe": { + "http://www.adobe.com/": [ + "2o7.net", + "auditude.com", + "demdex.com", + "demdex.net", + "dmtracker.com", + "efrontier.com", + "everestads.net", + "everestjs.net", + "everesttech.net", + "hitbox.com", + "omniture.com", + "omtrdc.net", + "touchclarity.com" + ] + } + }, + { + "AdOcean": { + "http://www.adocean-global.com/": [ + "adocean-global.com", + "adocean.pl" + ] + } + }, + { + "Adometry": { + "http://www.adometry.com/": [ + "adometry.com", + "dmtry.com" + ] + } + }, + { + "AdOn Network": { + "http://adonnetwork.com/": [ + "adonnetwork.com", + "dashboardad.net" + ] + } + }, + { + "AdOnion": { + "http://www.adonion.com/": [ + "adonion.com" + ] + } + }, + { + "Adorika": { + "http://www.clickotmedia.com/": [ + "clickotmedia.com" + ] + } + }, + { + "ADP Dealer Services": { + "http://www.adpdealerservices.com/": [ + "admission.net", + "adpdealerservices.com", + "cobalt.com" + ] + } + }, + { + "AdPerfect": { + "http://www.adperfect.com/": [ + "adperfect.com" + ] + } + }, + { + "Adperium": { + "http://www.adperium.com/": [ + "adperium.com" + ] + } + }, + { + "Adpersia": { + "http://www.adpersia.com/": [ + "adpersia.com" + ] + } + }, + { + "adPrecision": { + "http://adprecision.net/": [ + "adprs.net", + "aprecision.net" + ] + } + }, + { + "AdPredictive": { + "http://www.adpredictive.com/": [ + "adpredictive.com" + ] + } + }, + { + "AdReactor": { + "http://www.adreactor.com/": [ + "adreactor.com" + ] + } + }, + { + "AdReady": { + "http://www.adready.com/": [ + "adready.com", + "adreadytractions.com" + ] + } + }, + { + "AdRevolution": { + "http://adrevolution.com/": [ + "adrevolution.com" + ] + } + }, + { + "AdRiver": { + "http://adriver.ru/": [ + "adriver.ru" + ] + } + }, + { + "adrolays": { + "http://adrolays.com/": [ + "adrolays.com", + "adrolays.de" + ] + } + }, + { + "AdRoll": { + "http://www.adroll.com/": [ + "adroll.com" + ] + } + }, + { + "Aloodo": { + "http://ad.aloodo.com/": [ + "ad.aloodo.com" + ] + } + }, + { + "AdSafe Media": { + "http://adsafemedia.com/": [ + "adsafemedia.com", + "adsafeprotected.com" + ] + } + }, + { + "adscale": { + "http://www.adscale.de/": [ + "adscale.de" + ] + } + }, + { + "AdServerPub": { + "http://www.adserverpub.com/": [ + "adserverpub.com" + ] + } + }, + { + "AdShuffle": { + "http://www.adshuffle.com/": [ + "adshuffle.com" + ] + } + }, + { + "AdSide": { + "http://www.adside.com/": [ + "adside.com", + "doclix.com" + ] + } + }, + { + "AdSmart": { + "http://adsmart.com/": [ + "adsmart.com" + ] + } + }, + { + "AdSpeed": { + "http://www.adspeed.com/": [ + "adspeed.com", + "adspeed.net" + ] + } + }, + { + "AdSpirit": { + "http://www.adspirit.de/": [ + "adspirit.com", + "adspirit.de", + "adspirit.net" + ] + } + }, + { + "AdsTours": { + "http://www.adstours.com/": [ + "adstours.com", + "clickintext.net" + ] + } + }, + { + "ADTECH": { + "http://www.adtech.com/": [ + "adtech.com", + "adtech.de", + "adtechus.com" + ] + } + }, + { + "Adsrevenue.net": { + "http://adsrevenue.net/": [ + "adsrevenue.net" + ] + } + }, + { + "Adtegrity.com": { + "http://www.adtegrity.com/": [ + "adtegrity.com", + "adtegrity.net" + ] + } + }, + { + "ADTELLIGENCE": { + "http://www.adtelligence.de/": [ + "adtelligence.de" + ] + } + }, + { + "AdTiger": { + "http://www.adtiger.de/": [ + "adtiger.de" + ] + } + }, + { + "AdTruth": { + "http://adtruth.com/": [ + "adtruth.com" + ] + } + }, + { + "Adult AdWorld": { + "http://adultadworld.com/": [ + "adultadworld.com" + ] + } + }, + { + "Adultmoda": { + "http://www.adultmoda.com/": [ + "adultmoda.com" + ] + } + }, + { + "Adverline": { + "http://www.adverline.com/": [ + "adnext.fr", + "adverline.com" + ] + } + }, + { + "Advert Stream": { + "http://www.advertstream.com/": [ + "advertstream.com" + ] + } + }, + { + "Advertise.com": { + "http://www.advertise.com/": [ + "advertise.com" + ] + } + }, + { + "AdvertiseSpace": { + "http://www.advertisespace.com/": [ + "advertisespace.com" + ] + } + }, + { + "Adversal.com": { + "http://www.adversal.com/": [ + "adversal.com", + "adv-adserver.com" + ] + } + }, + { + "Adverticum": { + "http://www.adverticum.com/": [ + "adverticum.com", + "adverticum.net" + ] + } + }, + { + "Advisor Media": { + "http://advisormedia.cz/": [ + "advisormedia.cz" + ] + } + }, + { + "AdXpansion": { + "http://www.adxpansion.com/": [ + "adxpansion.com" + ] + } + }, + { + "Adxvalue": { + "http://adxvalue.com/": [ + "adxvalue.com", + "adxvalue.de" + ] + } + }, + { + "adyard": { + "http://adyard.de/": [ + "adyard.de" + ] + } + }, + { + "Adworx": { + "http://adworx.at/": [ + "adworx.at", + "adworx.be", + "adworx.nl" + ] + } + }, + { + "ADZ": { + "http://www.adzcentral.com/": [ + "adzcentral.com" + ] + } + }, + { + "adzly": { + "http://www.adzly.com/": [ + "adzly.com" + ] + } + }, + { + "Adzerk": { + "http://www.adzerk.com/": [ + "adzerk.com", + "adzerk.net" + ] + } + }, + { + "Aegis Group": { + "http://www.aemedia.com/": [ + "aemedia.com", + "bluestreak.com" + ] + } + }, + { + "AERIFY MEDIA": { + "http://aerifymedia.com/": [ + "aerifymedia.com", + "anonymous-media.com" + ] + } + }, + { + "Affectv": { + "http://affectv.co.uk/": [ + "affectv.co.uk" + ] + } + }, + { + "ATN": { + "http://affiliatetracking.com/": [ + "affiliatetracking.com" + ] + } + }, + { + "affilinet": { + "http://www.affili.net/": [ + "affili.net", + "affilinet-inside.de", + "banner-rotation.com", + "successfultogether.co.uk" + ] + } + }, + { + "Affine": { + "http://www.affine.tv/": [ + "affine.tv", + "affinesystems.com" + ] + } + }, + { + "AfterDownload": { + "http://www.afterdownload.com/": [ + "afdads.com", + "afterdownload.com" + ] + } + }, + { + "AK": { + "http://www.aggregateknowledge.com/": [ + "aggregateknowledge.com", + "agkn.com" + ] + } + }, + { + "AllStar Media": { + "http://allstarmediagroup.com/": [ + "allstarmediagroup.com" + ] + } + }, + { + "Aim4Media": { + "http://aim4media.com/": [ + "aim4media.com" + ] + } + }, + { + "Airpush": { + "http://www.airpush.com/": [ + "airpush.com" + ] + } + }, + { + "Akamai": { + "http://www.akamai.com/": [ + "imiclk.com" + ] + } + }, + { + "Amazon.com": { + "http://www.amazon.com/": [ + "amazon-adsystem.com", + "amazon.ca", + "amazon.co.jp", + "amazon.co.uk", + "amazon.de", + "amazon.es", + "amazon.fr", + "amazon.it", + "assoc-amazon.com" + ] + } + }, + { + "Ambient Digital": { + "http://ambientdigital.com.vn/": [ + "adnetwork.vn", + "ambientdigital.com.vn" + ] + } + }, + { + "Amobee": { + "http://amobee.com/": [ + "amobee.com" + ] + } + }, + { + "AOL": { + "http://www.aol.com/": [ + "adsonar.com", + "advertising.com", + "atwola.com", + "leadback.com", + "tacoda.net" + ] + } + }, + { + "Appenda": { + "http://www.appenda.com/": [ + "appenda.com" + ] + } + }, + { + "Appier": { + "http://appier.com/": [ + "appier.com" + ] + } + }, + { + "Applifier": { + "http://www.applifier.com/": [ + "applifier.com" + ] + } + }, + { + "Applovin": { + "http://www.applovin.com/": [ + "applovin.com" + ] + } + }, + { + "AppFlood": { + "http://appflood.com/": [ + "appflood.com" + ] + } + }, + { + "AppNexus": { + "http://www.appnexus.com/": [ + "adlantic.nl", + "adnxs.com", + "adrdgt.com", + "appnexus.com", + "alenty.com" + ] + } + }, + { + "appssavvy": { + "http://appssavvy.com/": [ + "appssavvy.com" + ] + } + }, + { + "Arkwrights Homebrew": { + "http://www.arkwrightshomebrew.com/": [ + "arkwrightshomebrew.com", + "ctasnet.com" + ] + } + }, + { + "AT Internet": { + "http://www.atinternet.com/": [ + "hit-parade.com" + ] + } + }, + { + "AT&T": { + "http://www.att.com/": [ + "att.com", + "yp.com" + ] + } + }, + { + "Atoomic.com": { + "http://www.atoomic.com/": [ + "atoomic.com" + ] + } + }, + { + "Atrinsic": { + "http://atrinsic.com/": [ + "atrinsic.com" + ] + } + }, + { + "Audience Ad Network": { + "http://audienceadnetwork.com/": [ + "audienceadnetwork.com" + ] + } + }, + { + "Audience2Media": { + "http://www.audience2media.com/": [ + "audience2media.com" + ] + } + }, + { + "AudienceScience": { + "http://www.audiencescience.com/": [ + "audiencescience.com", + "revsci.net", + "targetingmarketplace.com", + "wunderloop.net" + ] + } + }, + { + "Augme": { + "http://www.augme.com/": [ + "augme.com", + "hipcricket.com" + ] + } + }, + { + "Augur": { + "http://www.augur.io/": [ + "augur.io" + ] + } + }, + { + "AUTOCENTRE.UA": { + "http://www.autocentre.ua/": [ + "am.ua", + "autocentre.ua" + ] + } + }, + { + "Avalanchers": { + "http://www.avalanchers.com/": [ + "avalanchers.com" + ] + } + }, + { + "AvantLink": { + "http://www.avantlink.com/": [ + "avantlink.com" + ] + } + }, + { + "Avsads": { + "http://avsads.com/": [ + "avsads.com" + ] + } + }, + { + "AWeber": { + "http://www.aweber.com/": [ + "aweber.com" + ] + } + }, + { + "BackBeat Media": { + "http://www.backbeatmedia.com/": [ + "backbeatmedia.com" + ] + } + }, + { + "Bannerconnect": { + "http://www.bannerconnect.net/": [ + "bannerconnect.net" + ] + } + }, + { + "Barilliance": { + "http://www.barilliance.com/": [ + "barilliance.com" + ] + } + }, + { + "BaronsNetworks": { + "http://baronsoffers.com/": [ + "baronsoffers.com" + ] + } + }, + { + "Batanga Network": { + "http://www.batanganetwork.com/": [ + "batanga.com", + "batanganetwork.com" + ] + } + }, + { + "Beanstock Media": { + "http://www.beanstockmedia.com/": [ + "beanstockmedia.com" + ] + } + }, + { + "beencounter": { + "http://www.beencounter.com/": [ + "beencounter.com" + ] + } + }, + { + "Begun": { + "http://www.begun.ru/": [ + "begun.ru" + ] + } + }, + { + "belboon": { + "http://www.belboon.com/": [ + "adbutler.de", + "belboon.com" + ] + } + }, + { + "Betgenius": { + "http://www.betgenius.com/": [ + "betgenius.com", + "connextra.com" + ] + } + }, + { + "BidVertiser": { + "http://www.bidvertiser.com/": [ + "bidvertiser.com" + ] + } + }, + { + "bigmir)net": { + "http://www.bigmir.net/": [ + "bigmir.net" + ] + } + }, + { + "BinLayer": { + "http://binlayer.com/": [ + "binlayer.com" + ] + } + }, + { + "Bitcoin Plus": { + "http://www.bitcoinplus.com/": [ + "bitcoinplus.com" + ] + } + }, + { + "BittAds": { + "http://www.bittads.com/": [ + "bittads.com" + ] + } + }, + { + "Bizo": { + "http://www.bizo.com/": [ + "bizo.com", + "bizographics.com" + ] + } + }, + { + "Black Label Ads": { + "http://www.blacklabelads.com/": [ + "blacklabelads.com" + ] + } + }, + { + "BlogCatalog": { + "http://www.blogcatalog.com/": [ + "blogcatalog.com" + ] + } + }, + { + "BlogFrog": { + "http://theblogfrog.com/": [ + "theblogfrog.com" + ] + } + }, + { + "BlogHer": { + "http://www.blogher.com/": [ + "blogher.com", + "blogherads.com" + ] + } + }, + { + "BlogRollr": { + "http://blogrollr.com/": [ + "blogrollr.com" + ] + } + }, + { + "BLOOM Digital Platforms": { + "http://bloom-hq.com/": [ + "adgear.com", + "bloom-hq.com" + ] + } + }, + { + "BloomReach": { + "http://www.bloomreach.com/": [ + "bloomreach.com", + "brcdn.com", + "brsrvr.com" + ] + } + }, + { + "Blu Trumpet": { + "http://www.blutrumpet.com/": [ + "blutrumpet.com" + ] + } + }, + { + "BlueCava": { + "http://www.bluecava.com/": [ + "bluecava.com" + ] + } + }, + { + "BlueKai": { + "http://www.bluekai.com/": [ + "bkrtx.com", + "bluekai.com", + "tracksimple.com" + ] + } + }, + { + "Brainient": { + "http://brainient.com/": [ + "brainient.com" + ] + } + }, + { + "Brand Affinity Technologies": { + "http://www.brandaffinity.net/": [ + "brandaffinity.net" + ] + } + }, + { + "Brand.net": { + "http://www.brand.net/": [ + "brand.net" + ] + } + }, + { + "Brandscreen": { + "http://www.brandscreen.com/": [ + "brandscreen.com", + "rtbidder.net" + ] + } + }, + { + "BrightRoll": { + "http://www.brightroll.com/": [ + "brightroll.com", + "btrll.com" + ] + } + }, + { + "BrightTag": { + "http://www.brighttag.com/": [ + "brighttag.com", + "btstatic.com", + "thebrighttag.com" + ] + } + }, + { + "Brilig": { + "http://www.brilig.com/": [ + "brilig.com" + ] + } + }, + { + "Burst Media": { + "http://www.burstmedia.com/": [ + "burstbeacon.com", + "burstdirectads.com", + "burstmedia.com", + "burstnet.com", + "giantrealm.com" + ] + } + }, + { + "Burstly": { + "http://www.burstly.com/": [ + "burstly.com" + ] + } + }, + { + "BusinessOnline": { + "http://www.businessol.com/": [ + "businessol.com" + ] + } + }, + { + "BuySellAds": { + "http://buysellads.com/": [ + "beaconads.com", + "buysellads.com" + ] + } + }, + { + "Buysight": { + "http://www.buysight.com/": [ + "buysight.com", + "permuto.com", + "pulsemgr.com" + ] + } + }, + { + "BuzzCity": { + "http://www.buzzcity.com/": [ + "buzzcity.com" + ] + } + }, + { + "BuzzParadise": { + "http://www.buzzparadise.com/": [ + "buzzparadise.com" + ] + } + }, + { + "BV! MEDIA": { + "http://www.buzzcity.com/": [ + "buzzcity.com", + "bvmedia.ca", + "networldmedia.com", + "networldmedia.net" + ] + } + }, + { + "Cadreon": { + "http://www.cadreon.com/": [ + "cadreon.com" + ] + } + }, + { + "CampaignGrid": { + "http://www.campaigngrid.com/": [ + "campaigngrid.com" + ] + } + }, + { + "CAPITALDATA": { + "http://www.capitaldata.fr/": [ + "capitaldata.fr" + ] + } + }, + { + "Caraytech": { + "http://www.caraytech.com.ar/": [ + "caraytech.com.ar", + "e-planning.net" + ] + } + }, + { + "Casale Media": { + "http://www.casalemedia.com/": [ + "casalemedia.com", + "medianet.com" + ] + } + }, + { + "CBproADS": { + "http://www.cbproads.com/": [ + "cbproads.com" + ] + } + }, + { + "Chango": { + "http://www.chango.com/": [ + "chango.ca", + "chango.com" + ] + } + }, + { + "Channel Intelligence": { + "http://www.channelintelligence.com/": [ + "channelintelligence.com" + ] + } + }, + { + "ChannelAdvisor": { + "http://www.channeladvisor.com/": [ + "channeladvisor.com", + "searchmarketing.com" + ] + } + }, + { + "Cart.ro": { + "http://www.cart.ro/": [ + "cart.ro", + "statistics.ro" + ] + } + }, + { + "Chartboost": { + "https://www.chartboost.com/": [ + "chartboost.com" + ] + } + }, + { + "CheckM8": { + "http://www.checkm8.com/": [ + "checkm8.com" + ] + } + }, + { + "Chitika": { + "http://chitika.com/": [ + "chitika.com", + "chitika.net" + ] + } + }, + { + "ChoiceStream": { + "http://www.choicestream.com/": [ + "choicestream.com" + ] + } + }, + { + "ClearSaleing": { + "http://www.clearsaleing.com/": [ + "clearsaleing.com", + "csdata1.com", + "csdata2.com", + "csdata3.com" + ] + } + }, + { + "Clearsearch Media": { + "http://www.clearsearchmedia.com/": [ + "clearsearchmedia.com", + "csm-secure.com" + ] + } + }, + { + "ClearSight Interactive": { + "http://www.clearsightinteractive.com/": [ + "clearsightinteractive.com", + "csi-tracking.com" + ] + } + }, + { + "ClickAider": { + "http://clickaider.com/": [ + "clickaider.com" + ] + } + }, + { + "ClickDimensions": { + "http://www.clickdimensions.com/": [ + "clickdimensions.com" + ] + } + }, + { + "ClickDistrict": { + "http://www.clickdistrict.com/": [ + "clickdistrict.com", + "creative-serving.com" + ] + } + }, + { + "ClickFuel": { + "http://clickfuel.com/": [ + "conversiondashboard.com" + ] + } + }, + { + "ClickInc": { + "http://www.clickinc.com/": [ + "clickinc.com" + ] + } + }, + { + "Clicksor": { + "http://www.clicksor.com/": [ + "clicksor.com", + "clicksor.net" + ] + } + }, + { + "Clickbooth": { + "http://www.clickbooth.com/": [ + "clickbooth.com", + "adtoll.com" + ] + } + }, + { + "Clickwinks": { + "http://www.clickwinks.com/": [ + "clickwinks.com" + ] + } + }, + { + "ClicManager": { + "http://www.clicmanager.fr/": [ + "clicmanager.fr" + ] + } + }, + { + "Clove Network": { + "http://www.clovenetwork.com/": [ + "clovenetwork.com" + ] + } + }, + { + "Cognitive Match": { + "http://www.cognitivematch.com/": [ + "cmads.com.tw", + "cmadsasia.com", + "cmadseu.com", + "cmmeglobal.com", + "cognitivematch.com" + ] + } + }, + { + "Collective": { + "http://collective.com/": [ + "collective-media.net", + "collective.com", + "oggifinogi.com", + "tumri.com", + "tumri.net", + "yt1187.net" + ] + } + }, + { + "Commission Junction": { + "http://www.cj.com/": [ + "apmebf.com", + "awltovhc.com", + "cj.com", + "ftjcfx.com", + "kcdwa.com", + "qksz.com", + "qksz.net", + "tqlkg.com", + "yceml.net" + ] + } + }, + { + "Compass Labs": { + "http://compasslabs.com/": [ + "compasslabs.com" + ] + } + }, + { + "comScore": { + "http://www.comscore.com/": [ + "adxpose.com" + ] + } + }, + { + "Communicator Corp": { + "http://www.communicatorcorp.com/": [ + "communicatorcorp.com" + ] + } + }, + { + "Complex Media": { + "http://www.complexmedianetwork.com/": [ + "complex.com", + "complexmedianetwork.com" + ] + } + }, + { + "Consilium Media": { + "http://www.consiliummedia.com/": [ + "consiliummedia.com" + ] + } + }, + { + "CONTAXE": { + "http://www.contaxe.com/": [ + "contaxe.com" + ] + } + }, + { + "CONTEXTin": { + "http://www.contextin.com/": [ + "admailtiser.com", + "contextin.com" + ] + } + }, + { + "ContextuAds": { + "http://www.contextuads.com/": [ + "agencytradingdesk.net", + "contextuads.com" + ] + } + }, + { + "CONTEXTWEB": { + "http://www.contextweb.com/": [ + "contextweb.com" + ] + } + }, + { + "ConvergeDirect": { + "http://www.convergedirect.com/": [ + "convergedirect.com", + "convergetrack.com" + ] + } + }, + { + "ConversionRuler": { + "http://www.conversionruler.com/": [ + "conversionruler.com" + ] + } + }, + { + "Conversive": { + "http://www.conversive.nl/": [ + "conversive.nl" + ] + } + }, + { + "CoreMotives": { + "http://coremotives.com/": [ + "coremotives.com" + ] + } + }, + { + "Cox Digital Solutions": { + "http://www.coxdigitalsolutions.com/": [ + "adify.com", + "afy11.net", + "coxdigitalsolutions.com" + ] + } + }, + { + "CPMStar": { + "http://www.cpmstar.com/": [ + "cpmstar.com" + ] + } + }, + { + "CPX Interactive": { + "http://www.cpxinteractive.com/": [ + "cpxadroit.com", + "cpxinteractive.com" + ] + } + }, + { + "Creafi": { + "http://www.creafi.com/": [ + "creafi.com" + ] + } + }, + { + "Crimtan": { + "http://www.crimtan.com/": [ + "crimtan.com" + ] + } + }, + { + "Crisp Media": { + "http://www.crispmedia.com/": [ + "crispmedia.com" + ] + } + }, + { + "Criteo": { + "http://www.criteo.com/": [ + "criteo.com", + "criteo.net" + ] + } + }, + { + "Cross Pixel": { + "http://crosspixel.net/": [ + "crosspixel.net", + "crosspixelmedia.com", + "crsspxl.com" + ] + } + }, + { + "cXense": { + "http://www.cxense.com/": [ + "cxense.com" + ] + } + }, + { + "Cyberplex": { + "http://www.cyberplex.com/": [ + "cyberplex.com" + ] + } + }, + { + "Dada": { + "http://dada.pro/": [ + "dada.pro", + "simply.com" + ] + } + }, + { + "Datalogix": { + "http://www.datalogix.com/": [ + "nexac.com", + "nextaction.net" + ] + } + }, + { + "DataXu": { + "http://www.dataxu.com/": [ + "dataxu.com", + "dataxu.net", + "mexad.com", + "w55c.net" + ] + } + }, + { + "Datonics": { + "http://datonics.com/": [ + "datonics.com", + "pro-market.net" + ] + } + }, + { + "Datran Media": { + "http://www.datranmedia.com/": [ + "datranmedia.com", + "displaymarketplace.com" + ] + } + }, + { + "Datvantage": { + "http://datvantage.com/": [ + "datvantage.com" + ] + } + }, + { + "DC Storm": { + "http://www.dc-storm.com/": [ + "dc-storm.com", + "stormiq.com" + ] + } + }, + { + "Dedicated Media": { + "http://www.dedicatedmedia.com/": [ + "dedicatedmedia.com", + "dedicatednetworks.com" + ] + } + }, + { + "Delivr": { + "http://delivr.com/": [ + "delivr.com", + "percentmobile.com" + ] + } + }, + { + "Demand Media": { + "http://www.demandmedia.com/": [ + "demandmedia.com", + "indieclick.com" + ] + } + }, + { + "Delta Projects": { + "http://www.deltaprojects.se/": [ + "adaction.se", + "de17a.com", + "deltaprojects.se" + ] + } + }, + { + "Deutsche Post DHL": { + "http://www.dp-dhl.com/": [ + "adcloud.com", + "adcloud.net", + "dp-dhl.com" + ] + } + }, + { + "Developer Media": { + "http://developermedia.com/": [ + "developermedia.com", + "lqcdn.com" + ] + } + }, + { + "DG": { + "http://www.dgit.com/": [ + "dgit.com", + "eyeblaster.com", + "eyewonder.com", + "mdadx.com", + "serving-sys.com", + "unicast.com" + ] + } + }, + { + "Directtrack": { + "http://directtrack.com/": [ + "directtrack.com" + ] + } + }, + { + "dianomi": { + "http://www.dianomi.com/": [ + "dianomi.com" + ] + } + }, + { + "Didit": { + "http://www.didit.com/": [ + "did-it.com", + "didit.com" + ] + } + }, + { + "Digital River": { + "http://www.digitalriver.com/": [ + "digitalriver.com", + "keywordmax.com", + "netflame.cc" + ] + } + }, + { + "Digital Window": { + "http://www.digitalwindow.com/": [ + "digitalwindow.com", + "perfiliate.com" + ] + } + }, + { + "Digitize": { + "http://www.digitize.ie/": [ + "digitize.ie" + ] + } + }, + { + "Direct Response Group": { + "http://www.directresponsegroup.com/": [ + "directresponsegroup.com", + "ppctracking.net" + ] + } + }, + { + "DoublePimp": { + "http://doublepimp.com/": [ + "doublepimp.com" + ] + } + }, + { + "DoublePositive": { + "http://www.doublepositive.com/": [ + "bid-tag.com", + "doublepositive.com" + ] + } + }, + { + "DoubleVerify": { + "http://www.doubleverify.com/": [ + "doubleverify.com" + ] + } + }, + { + "Drawbridge": { + "http://http://drawbrid.ge/": [ + "adsymptotic.com", + "drawbrid.ge" + ] + } + }, + { + "DS-IQ": { + "http://www.ds-iq.com/": [ + "ds-iq.com" + ] + } + }, + { + "DSNR Group": { + "http://www.dsnrmg.com/": [ + "dsnrgroup.com", + "dsnrmg.com", + "traffiliate.com", + "z5x.com", + "z5x.net" + ] + } + }, + { + "DynamicOxygen": { + "http://www.dynamicoxygen.com/": [ + "dynamicoxygen.com", + "exitjunction.com" + ] + } + }, + { + "Earnify": { + "http://earnify.com/": [ + "earnify.com" + ] + } + }, + { + "eBay": { + "http://www.ebay.com/": [ + "ebay.com", + "gopjn.com" + ] + } + }, + { + "Effective Measure": { + "http://www.effectivemeasure.com/": [ + "effectivemeasure.com", + "effectivemeasure.net" + ] + } + }, + { + "ekolay": { + "http://www.ekolay.net/": [ + "e-kolay.net", + "ekolay.net" + ] + } + }, + { + "Eleavers": { + "http://eleavers.com/": [ + "eleavers.com" + ] + } + }, + { + "Emediate": { + "http://www.emediate.com/": [ + "emediate.biz", + "emediate.com", + "emediate.dk", + "emediate.eu" + ] + } + }, + { + "Emego": { + "http://www.usemax.de/": [ + "usemax.de" + ] + } + }, + { + "Enecto": { + "http://www.enecto.com/": [ + "enecto.com" + ] + } + }, + { + "engage:BDR": { + "http://engagebdr.com/": [ + "bnmla.com", + "engagebdr.com" + ] + } + }, + { + "Engago Technology": { + "http://www.engago.com/": [ + "appmetrx.com", + "engago.com" + ] + } + }, + { + "Engine Network": { + "http://enginenetwork.com/": [ + "enginenetwork.com" + ] + } + }, + { + "Ensighten": { + "http://www.ensighten.com/": [ + "ensighten.com" + ] + } + }, + { + "Entireweb": { + "http://www.entireweb.com/": [ + "entireweb.com" + ] + } + }, + { + "Epic Media Group": { + "http://www.theepicmediagroup.com/": [ + "epicadvertising.com", + "epicmarketplace.com", + "epicmobileads.com", + "theepicmediagroup.com", + "trafficmp.com" + ] + } + }, + { + "Epsilon": { + "http://www.epsilon.com/": [ + "epsilon.com" + ] + } + }, + { + "EQ Ads": { + "http://www.eqads.com/": [ + "eqads.com" + ] + } + }, + { + "EroAdvertising": { + "http://www.ero-advertising.com/": [ + "ero-advertising.com" + ] + } + }, + { + "Etarget": { + "http://etargetnet.com/": [ + "etargetnet.com", + "etarget.eu" + ] + } + }, + { + "Etineria": { + "http://www.etineria.com/": [ + "adwitserver.com", + "etineria.com" + ] + } + }, + { + "eTrigue": { + "http://www.etrigue.com/": [ + "etrigue.com" + ] + } + }, + { + "Everyday Health": { + "http://www.everydayhealth.com/": [ + "everydayhealth.com", + "waterfrontmedia.com" + ] + } + }, + { + "Evidon": { + "http://www.evidon.com/": [ + "betrad.com", + "evidon.com" + ] + } + }, + { + "Evisions Marketing": { + "http://www.evisionsmarketing.com/": [ + "engineseeker.com", + "evisionsmarketing.com" + ] + } + }, + { + "Evolve": { + "http://www.evolvemediacorp.com/": [ + "evolvemediacorp.com", + "evolvemediametrics.com", + "gorillanation.com" + ] + } + }, + { + "eWayDirect": { + "http://www.ewaydirect.com/": [ + "ewaydirect.com", + "ixs1.net" + ] + } + }, + { + "ewebse": { + "http://ewebse.com/": [ + "777seo.com", + "ewebse.com" + ] + } + }, + { + "excitad": { + "http://excitad.com/": [ + "excitad.com" + ] + } + }, + { + "eXelate": { + "http://exelate.com/": [ + "exelate.com", + "exelator.com" + ] + } + }, + { + "ExoClick": { + "http://www.exoclick.com/": [ + "exoclick.com" + ] + } + }, + { + "Experian": { + "http://www.experian.com/": [ + "audienceiq.com", + "experian.com", + "pricegrabber.com" + ] + } + }, + { + "Exponential Interactive": { + "http://www.exponential.com/": [ + "adotube.com", + "exponential.com", + "fulltango.com", + "tribalfusion.com" + ] + } + }, + { + "expo-MAX": { + "http://expo-max.com/": [ + "expo-max.com" + ] + } + }, + { + "Extension Factory": { + "http://www.extensionfactory.com/": [ + "extensionfactory.com" + ] + } + }, + { + "EXTENSIONS.RU": { + "http://extensions.ru/": [ + "extensions.ru" + ] + } + }, + { + "Eyeconomy": { + "http://www.eyeconomy.co.uk/": [ + "eyeconomy.co.uk", + "eyeconomy.com", + "sublimemedia.net" + ] + } + }, + { + "eyeReturn Marketing": { + "http://www.eyereturnmarketing.com/": [ + "eyereturn.com", + "eyereturnmarketing.com" + ] + } + }, + { + "Eyeviewdigital": { + "http://www.eyeviewdigital.com/": [ + "eyeviewdigital.com" + ] + } + }, + { + "Facilitate Digital": { + "http://www.facilitatedigital.com/": [ + "adsfac.eu", + "adsfac.info", + "adsfac.net", + "adsfac.sg", + "adsfac.us", + "facilitatedigital.com" + ] + } + }, + { + "Fairfax Media": { + "http://www.fxj.com.au/": [ + "fairfax.com.au", + "fxj.com.au" + ] + } + }, + { + "faithadnet": { + "http://www.faithadnet.com/": [ + "faithadnet.com" + ] + } + }, + { + "Fathom": { + "http://www.fathomdelivers.com/": [ + "fathomdelivers.com", + "fathomseo.com" + ] + } + }, + { + "Federated Media": { + "http://www.federatedmedia.net/": [ + "federatedmedia.net", + "fmpub.net", + "lijit.com" + ] + } + }, + { + "FetchBack": { + "http://www.fetchback.com/": [ + "fetchback.com" + ] + } + }, + { + "Fiksu": { + "http://www.fiksu.com/": [ + "fiksu.com" + ] + } + }, + { + "FinancialContent": { + "http://www.financialcontent.com/": [ + "financialcontent.com" + ] + } + }, + { + "Fizz-Buzz Media": { + "http://www.fizzbuzzmedia.com/": [ + "fizzbuzzmedia.com", + "fizzbuzzmedia.net" + ] + } + }, + { + "Flashtalking": { + "http://www.flashtalking.com/": [ + "flashtalking.com" + ] + } + }, + { + "Flite": { + "http://www.flite.com/": [ + "flite.com", + "widgetserver.com" + ] + } + }, + { + "Flurry": { + "http://www.flurry.com/": [ + "flurry.com" + ] + } + }, + { + "Flytxt": { + "http://www.flytxt.com/": [ + "flytxt.com" + ] + } + }, + { + "Forbes": { + "http://www.forbes.com/": [ + "brandsideplatform.com", + "forbes.com" + ] + } + }, + { + "Fox One Stop Media": { + "http://www.foxonestop.com/": [ + "fimserve.com", + "foxnetworks.com", + "foxonestop.com", + "mobsmith.com", + "myads.com", + "othersonline.com", + "rubiconproject.com" + ] + } + }, + { + "FreakOut": { + "http://fout.jp/": [ + "fout.jp" + ] + } + }, + { + "Freedom Communications": { + "http://www.freedom.com/": [ + "freedom.com" + ] + } + }, + { + "FriendFinder Networks": { + "http://ffn.com/": [ + "adultfriendfinder.com", + "ffn.com", + "pop6.com" + ] + } + }, + { + "Frog Sex": { + "http://www.frogsex.com/": [ + "double-check.com", + "frogsex.com" + ] + } + }, + { + "Future Ads": { + "https://www.futureads.com/": [ + "futureads.com", + "resultlinks.com" + ] + } + }, + { + "Game Advertising Online": { + "http://www.game-advertising-online.com/": [ + "game-advertising-online.com" + ] + } + }, + { + "Games2win": { + "http://www.games2win.com/": [ + "games2win.com", + "inviziads.com" + ] + } + }, + { + "Gamned": { + "http://www.gamned.com/": [ + "gamned.com" + ] + } + }, + { + "Gannett": { + "http://www.gannett.com/": [ + "gannett.com", + "pointroll.com" + ] + } + }, + { + "GB-World": { + "http://www.gb-world.net/": [ + "gb-world.net" + ] + } + }, + { + "Gemius": { + "http://www.gemius.com/": [ + "gemius.com", + "gemius.pl" + ] + } + }, + { + "GENIE GROUP": { + "http://www.geniegroupltd.co.uk/": [ + "geniegroupltd.co.uk" + ] + } + }, + { + "GeoAds": { + "http://www.geoads.com/": [ + "geoads.com" + ] + } + }, + { + "GetGlue": { + "http://getglue.com/": [ + "getglue.com", + "smrtlnks.com" + ] + } + }, + { + "Glam Media": { + "http://www.glammedia.com/": [ + "glam.com", + "glammedia.com" + ] + } + }, + { + "Globe7": { + "http://www.globe7.com/": [ + "globe7.com" + ] + } + }, + { + "GoDataFeed": { + "http://godatafeed.com/": [ + "godatafeed.com" + ] + } + }, + { + "GoldSpot Media": { + "http://www.goldspotmedia.com/": [ + "goldspotmedia.com" + ] + } + }, + { + "Grapeshot": { + "http://www.grapeshot.co.uk/": [ + "grapeshot.co.uk" + ] + } + }, + { + "Grocery Shopping Network": { + "http://www.groceryshopping.net/": [ + "groceryshopping.net" + ] + } + }, + { + "GroovinAds": { + "http://www.groovinads.com/": [ + "groovinads.com" + ] + } + }, + { + "Gruner + Jahr": { + "http://www.guj.de/": [ + "guj.de", + "ligatus.com" + ] + } + }, + { + "GISMAds": { + "http://www.gismads.jp/": [ + "gismads.jp" + ] + } + }, + { + "GSI Commerce": { + "http://www.gsicommerce.com/": [ + "gsicommerce.com", + "gsimedia.net", + "pepperjam.com", + "pjatr.com", + "pjtra.com", + "pntra.com", + "pntrac.com", + "pntrs.com" + ] + } + }, + { + "GumGum": { + "http://gumgum.com/": [ + "gumgum.com" + ] + } + }, + { + "Gunggo": { + "http://www.gunggo.com/": [ + "gunggo.com" + ] + } + }, + { + "Hands Mobile": { + "http://www.hands.com.br/": [ + "hands.com.br" + ] + } + }, + { + "Harrenmedia": { + "http://www.harrenmedia.com/": [ + "harrenmedia.com", + "harrenmedianetwork.com" + ] + } + }, + { + "HealthPricer": { + "http://www.healthpricer.com/": [ + "adacado.com", + "healthpricer.com" + ] + } + }, + { + "Hearst": { + "http://www.hearst.com/": [ + "hearst.com", + "ic-live.com", + "iclive.com", + "icrossing.com", + "sptag.com", + "sptag1.com", + "sptag2.com", + "sptag3.com" + ] + } + }, + { + "Hi-media": { + "http://www.hi-media.com/": [ + "comclick.com", + "hi-media.com" + ] + } + }, + { + "HookLogic": { + "http://www.hooklogic.com/": [ + "hlserve.com", + "hooklogic.com" + ] + } + }, + { + "Horyzon Media": { + "http://www.horyzon-media.com/": [ + "horyzon-media.com", + "meetic-partners.com", + "smartadserver.com" + ] + } + }, + { + "HOTWords": { + "http://www.hotwords.com/": [ + "hotwords.com", + "hotwords.es" + ] + } + }, + { + "HP": { + "http://www.hp.com/": [ + "hp.com", + "optimost.com" + ] + } + }, + { + "Httpool": { + "http://www.httpool.com/": [ + "httpool.com" + ] + } + }, + { + "HUNT Mobile Ads": { + "http://www.huntmads.com/": [ + "huntmads.com" + ] + } + }, + { + "Hurra.com": { + "http://www.hurra.com/": [ + "hurra.com" + ] + } + }, + { + "I-Behavior": { + "http://www.i-behavior.com/": [ + "i-behavior.com", + "ib-ibi.com" + ] + } + }, + { + "I.UA": { + "http://www.i.ua/": [ + "i.ua" + ] + } + }, + { + "IAC": { + "http://www.iac.com/": [ + "iac.com", + "iacadvertising.com" + ] + } + }, + { + "IBM": { + "http://www.ibm.com/": [ + "unica.com" + ] + } + }, + { + "IDG": { + "http://www.idg.com/": [ + "idg.com", + "idgtechnetwork.com" + ] + } + }, + { + "iEntry": { + "http://www.ientry.com/": [ + "600z.com", + "ientry.com" + ] + } + }, + { + "IgnitAd": { + "http://www.ignitad.com/": [ + "ignitad.com" + ] + } + }, + { + "IgnitionOne": { + "http://www.ignitionone.com/": [ + "ignitionone.com", + "ignitionone.net", + "searchignite.com" + ] + } + }, + { + "Improve Digital": { + "www.improvedigital.com/": [ + "360yield.com", + "improvedigital.com" + ] + } + }, + { + "Inadco": { + "http://www.inadco.com/": [ + "anadcoads.com", + "inadco.com", + "inadcoads.com" + ] + } + }, + { + "Infectious Media": { + "http://www.infectiousmedia.com/": [ + "impressiondesk.com", + "infectiousmedia.com" + ] + } + }, + { + "Inflection Point Media": { + "http://www.inflectionpointmedia.com/": [ + "inflectionpointmedia.com" + ] + } + }, + { + "Infogroup": { + "http://www.infogroup.com/": [ + "infogroup.com" + ] + } + }, + { + "Infolinks": { + "http://www.infolinks.com/": [ + "infolinks.com" + ] + } + }, + { + "Infra-Ad": { + "http://www.infra-ad.com/": [ + "infra-ad.com" + ] + } + }, + { + "InMobi": { + "http://www.inmobi.com/": [ + "inmobi.com", + "sproutinc.com" + ] + } + }, + { + "inneractive": { + "http://inner-active.com/": [ + "inner-active.com" + ] + } + }, + { + "Innity": { + "http://innity.com/": [ + "innity.com" + ] + } + }, + { + "InsightExpress": { + "http://www.insightexpress.com/": [ + "insightexpress.com", + "insightexpressai.com" + ] + } + }, + { + "InSkin Media": { + "http://inskinmedia.com/": [ + "inskinmedia.com" + ] + } + }, + { + "Intent Media": { + "http://www.intentmedia.com/": [ + "intentmedia.com", + "intentmedia.net" + ] + } + }, + { + "Intergi": { + "http://intergi.com/": [ + "intergi.com" + ] + } + }, + { + "Intermarkets": { + "http://www.intermarkets.net/": [ + "intermarkets.net" + ] + } + }, + { + "Intermundo Media": { + "http://intermundomedia.com/": [ + "intermundomedia.com" + ] + } + }, + { + "Internet Brands": { + "http://www.internetbrands.com/": [ + "ibpxl.com", + "internetbrands.com" + ] + } + }, + { + "Interpolls": { + "http://www.interpolls.com/": [ + "interpolls.com" + ] + } + }, + { + "Inuvo": { + "http://inuvo.com/": [ + "inuvo.com" + ] + } + }, + { + "InvestingChannel": { + "http://investingchannel.com/": [ + "investingchannel.com" + ] + } + }, + { + "iPROM": { + "http://www.iprom.si/": [ + "centraliprom.com", + "iprom.net", + "iprom.si", + "mediaiprom.com" + ] + } + }, + { + "iPromote": { + "http://www.ipromote.com/": [ + "ipromote.com" + ] + } + }, + { + "iProspect": { + "http://www.iprospect.com/": [ + "iprospect.com", + "clickmanage.com" + ] + } + }, + { + "ISI Technologies": { + "http://digbro.com/": [ + "adversalservers.com", + "digbro.com" + ] + } + }, + { + "isocket": { + "https://www.isocket.com/": [ + "adsbyisocket.com", + "isocket.com" + ] + } + }, + { + "Jaroop": { + "http://www.jaroop.com/": [ + "jaroop.com" + ] + } + }, + { + "JasperLabs": { + "http://www.jasperlabs.com/": [ + "jasperlabs.com" + ] + } + }, + { + "Jemm": { + "http://jemmgroup.com/": [ + "jemmgroup.com" + ] + } + }, + { + "Jink": { + "http://www.jink.de/": [ + "jink.de", + "jinkads.com" + ] + } + }, + { + "Jirbo": { + "http://jirbo.com/": [ + "adcolony.com", + "jirbo.com" + ] + } + }, + { + "Jivox": { + "http://www.jivox.com/": [ + "jivox.com" + ] + } + }, + { + "JobThread": { + "http://www.jobthread.com/": [ + "jobthread.com" + ] + } + }, + { + "JuicyAds": { + "http://www.juicyads.com/": [ + "juicyads.com" + ] + } + }, + { + "Jumptap": { + "http://www.jumptap.com/": [ + "jumptap.com" + ] + } + }, + { + "Kenshoo": { + "http://www.kenshoo.com/": [ + "kenshoo.com", + "xg4ken.com" + ] + } + }, + { + "Keyade": { + "http://www.keyade.com/": [ + "keyade.com" + ] + } + }, + { + "KissMyAds": { + "http://kissmyads.com/": [ + "kissmyads.com" + ] + } + }, + { + "KIT digital": { + "http://kitd.com/": [ + "keewurd.com", + "kitd.com", + "peerset.com" + ] + } + }, + { + "Kitara Media": { + "http://www.kitaramedia.com/": [ + "103092804.com", + "kitaramedia.com" + ] + } + }, + { + "Kokteyl": { + "http://www.kokteyl.com/": [ + "admost.com", + "kokteyl.com" + ] + } + }, + { + "Komli": { + "http://www.komli.com/": [ + "komli.com" + ] + } + }, + { + "Kontera": { + "http://www.kontera.com/": [ + "kontera.com" + ] + } + }, + { + "Korrelate": { + "http://korrelate.com/": [ + "adsummos.com", + "adsummos.net", + "korrelate.com" + ] + } + }, + { + "Krux": { + "http://www.krux.com/": [ + "krux.com", + "kruxdigital.com", + "krxd.net" + ] + } + }, + { + "Lakana": { + "http://www.lakana.com/": [ + "lakana.com", + "ibsys.com" + ] + } + }, + { + "Layer-Ad.org": { + "http://layer-ad.org/": [ + "layer-ad.org" + ] + } + }, + { + "Layer Ads": { + "http://layer-ads.net/": [ + "layer-ads.net" + ] + } + }, + { + "LeadBolt": { + "http://www.leadbolt.com/": [ + "leadbolt.com" + ] + } + }, + { + "LeadFormix": { + "http://www.leadformix.com/": [ + "leadformix.com", + "leadforce1.com" + ] + } + }, + { + "LeadLander": { + "http://www.leadlander.com/": [ + "leadlander.com", + "trackalyzer.com" + ] + } + }, + { + "Legolas Media": { + "http://www.legolas-media.com/": [ + "legolas-media.com" + ] + } + }, + { + "Levexis": { + "http://www.levexis.com/": [ + "levexis.com" + ] + } + }, + { + "Lexos Media": { + "http://www.lexosmedia.com/": [ + "adbull.com", + "lexosmedia.com" + ] + } + }, + { + "LifeStreet": { + "http://lifestreetmedia.com/": [ + "lfstmedia.com", + "lifestreetmedia.com" + ] + } + }, + { + "LiveIntent": { + "http://www.liveintent.com/": [ + "liadm.com", + "liveintent.com" + ] + } + }, + { + "LiveInternet": { + "http://www.liveinternet.ru": [ + "liveinternet.ru", + "yadro.ru" + ] + } + }, + { + "LinkConnector": { + "http://www.linkconnector.com/": [ + "linkconnector.com" + ] + } + }, + { + "LinkShare": { + "http://www.linkshare.com/": [ + "linkshare.com", + "linksynergy.com" + ] + } + }, + { + "Linkz": { + "http://www.linkz.net/": [ + "linkz.net" + ] + } + }, + { + "Listrak": { + "http://www.listrak.com/": [ + "listrak.com", + "listrakbi.com" + ] + } + }, + { + "Local Yokel Media": { + "http://www.localyokelmedia.com/": [ + "localyokelmedia.com" + ] + } + }, + { + "Longboard Media": { + "http://longboardmedia.com/": [ + "longboardmedia.com" + ] + } + }, + { + "Loomia": { + "http://www.loomia.com/": [ + "loomia.com" + ] + } + }, + { + "LoopFuse": { + "https://www.loopfuse.net/": [ + "lfov.net", + "loopfuse.net" + ] + } + }, + { + "LucidMedia": { + "http://www.lucidmedia.com/": [ + "lucidmedia.com" + ] + } + }, + { + "m6d": { + "http://m6d.com/": [ + "m6d.com", + "media6degrees.com" + ] + } + }, + { + "Madhouse": { + "http://www.madhouse.cn/": [ + "madhouse.cn" + ] + } + }, + { + "Madison Logic": { + "http://www.madisonlogic.com/": [ + "dinclinx.com", + "madisonlogic.com" + ] + } + }, + { + "madvertise": { + "http://madvertise.com/": [ + "madvertise.com" + ] + } + }, + { + "Magnetic": { + "http://www.magnetic.com/": [ + "domdex.com", + "domdex.net", + "magnetic.com", + "qjex.net" + ] + } + }, + { + "Magnify360": { + "http://www.magnify360.com/": [ + "dialogmgr.com", + "magnify360.com" + ] + } + }, + { + "MailChimp": { + "http://mailchimp.com/": [ + "campaign-archive1.com", + "list-manage.com", + "mailchimp.com" + ] + } + }, + { + "Manifest": { + "http://www.manifest.ru/": [ + "bannerbank.ru", + "manifest.ru" + ] + } + }, + { + "Marchex": { + "http://www.marchex.com/": [ + "industrybrains.com", + "marchex.com" + ] + } + }, + { + "Marimedia": { + "http://www.marimedia.net/": [ + "marimedia.net" + ] + } + }, + { + "MarketGid": { + "http://www.marketgid.com/": [ + "dt00.net", + "dt07.net", + "marketgid.com" + ] + } + }, + { + "Marketo": { + "http://www.marketo.com/": [ + "marketo.com", + "marketo.net" + ] + } + }, + { + "Martini Media": { + "http://martinimedianetwork.com/": [ + "martiniadnetwork.com", + "martinimedianetwork.com" + ] + } + }, + { + "mashero": { + "http://www.mashero.com/": [ + "mashero.com" + ] + } + }, + { + "Match.com": { + "http://www.match.com/": [ + "chemistry.com", + "match.com" + ] + } + }, + { + "Matomy": { + "http://www.matomy.com/": [ + "matomy.com", + "matomymarket.com", + "matomymedia.com", + "xtendmedia.com" + ] + } + }, + { + "MaxBounty": { + "http://www.maxbounty.com/": [ + "maxbounty.com", + "mb01.com" + ] + } + }, + { + "MaxPoint": { + "http://maxpointinteractive.com/": [ + "maxpointinteractive.com", + "maxusglobal.com", + "mxptint.net" + ] + } + }, + { + "MdotM": { + "http://mdotm.com/": [ + "mdotm.com" + ] + } + }, + { + "media.net": { + "http://www.media.net/": [ + "media.net" + ] + } + }, + { + "MediaBrix": { + "http://www.mediabrix.com/": [ + "mediabrix.com" + ] + } + }, + { + "MediaCom": { + "http://www.mediacom.com/": [ + "mediacom.com" + ] + } + }, + { + "mediaFORGE": { + "http://www.mediaforge.com/": [ + "mediaforge.com" + ] + } + }, + { + "Medialets": { + "http://www.medialets.com/": [ + "medialets.com" + ] + } + }, + { + "MediaMath": { + "http://www.mediamath.com/": [ + "adroitinteractive.com", + "designbloxlive.com", + "mathtag.com", + "mediamath.com" + ] + } + }, + { + "Mediaocean": { + "http://www.mediaocean.com/": [ + "adbuyer.com", + "mediaocean.com" + ] + } + }, + { + "MediaShakers": { + "http://www.mediashakers.com/": [ + "media-servers.net", + "mediashakers.com" + ] + } + }, + { + "MediaTrust": { + "http://www.mediatrust.com/": [ + "mediatrust.com" + ] + } + }, + { + "MediaWhiz": { + "http://www.mediawhiz.com/": [ + "adnetinteractive.com", + "mediawhiz.com" + ] + } + }, + { + "Medicx Media Solutions": { + "http://www.medicxmedia.com/": [ + "medicxmedia.com" + ] + } + }, + { + "Mercent": { + "http://www.mercent.com/": [ + "mercent.com" + ] + } + }, + { + "MerchantAdvantage": { + "http://www.merchantadvantage.com/": [ + "merchantadvantage.com" + ] + } + }, + { + "Merchenta": { + "http://www.merchenta.com/": [ + "merchenta.com" + ] + } + }, + { + "MegaIndex": { + "http://www.megaindex.ru/": [ + "megaindex.ru" + ] + } + }, + { + "Meta Network": { + "http://www.metanetwork.com/": [ + "metanetwork.com" + ] + } + }, + { + "Meteor": { + "http://www.meteorsolutions.com/": [ + "meteorsolutions.com" + ] + } + }, + { + "MicroAd": { + "http://www.microad.jp/": [ + "microad.jp" + ] + } + }, + { + "Microsoft": { + "http://www.microsoft.com/": [ + "adbureau.net", + "adecn.com", + "aquantive.com", + "atdmt.com", + "msads.net", + "netconversions.com", + "roiservice.com" + ] + } + }, + { + "Millennial Media": { + "http://www.millennialmedia.com/": [ + "decktrade.com", + "millennialmedia.com", + "mydas.mobi" + ] + } + }, + { + "Mindset Media": { + "http://www.mindset-media.com/": [ + "mindset-media.com", + "mmismm.com" + ] + } + }, + { + "Mirando": { + "http://www.mirando.de/": [ + "mirando.de" + ] + } + }, + { + "Mixpo": { + "http://www.mixpo.com/": [ + "mixpo.com" + ] + } + }, + { + "Moat": { + "http://www.moat.com/": [ + "moat.com", + "moatads.com" + ] + } + }, + { + "MobFox": { + "http://www.mobfox.com/": [ + "mobfox.com" + ] + } + }, + { + "Mobile Meteor": { + "http://mobilemeteor.com/": [ + "mobilemeteor.com", + "showmeinn.com" + ] + } + }, + { + "Mobile Storm": { + "http://mobilestorm.com/": [ + "mobilestorm.com" + ] + } + }, + { + "MobVision": { + "http://www.mobvision.com/": [ + "admoda.com", + "mobvision.com" + ] + } + }, + { + "Mocean Mobile": { + "http://www.moceanmobile.com/": [ + "moceanmobile.com" + ] + } + }, + { + "Mochila": { + "http://www.mochila.com/": [ + "mochila.com" + ] + } + }, + { + "Mojiva": { + "http://www.mojiva.com/": [ + "mojiva.com" + ] + } + }, + { + "Monetate": { + "http://monetate.com/": [ + "monetate.com", + "monetate.net" + ] + } + }, + { + "MONETIZEdigital": { + "https://www.cpalead.com/": [ + "cpalead.com" + ] + } + }, + { + "Monoloop": { + "http://www.monoloop.com/": [ + "monoloop.com" + ] + } + }, + { + "Moolah Media": { + "http://www.moolahmedia.com/": [ + "moolah-media.com", + "moolahmedia.com" + ] + } + }, + { + "Monetize More": { + "http://monetizemore.com/": [ + "monetizemore.com" + ] + } + }, + { + "Monster": { + "http://www.monster.com/": [ + "monster.com" + ] + } + }, + { + "MoPub": { + "http://www.mopub.com/": [ + "mopub.com" + ] + } + }, + { + "MovieLush.com": { + "https://www.movielush.com/": [ + "affbuzzads.com", + "movielush.com" + ] + } + }, + { + "Multiple Stream Media": { + "http://www.multiplestreammktg.com/": [ + "adclickmedia.com", + "multiplestreammktg.com" + ] + } + }, + { + "MUNDO Media": { + "http://www.mundomedia.com/": [ + "mundomedia.com", + "silver-path.com" + ] + } + }, + { + "MyCounter": { + "http://mycounter.com.ua/": [ + "mycounter.com.ua" + ] + } + }, + { + "MyBuys": { + "http://www.mybuys.com/": [ + "mybuys.com", + "veruta.com" + ] + } + }, + { + "myThings": { + "http://www.mythings.com/": [ + "mythings.com", + "mythingsmedia.com" + ] + } + }, + { + "MyWebGrocer": { + "http://www.mywebgrocer.com/": [ + "mywebgrocer.com" + ] + } + }, + { + "Nanigans": { + "http://www.nanigans.com/": [ + "nanigans.com" + ] + } + }, + { + "Navegg": { + "http://www.navegg.com/": [ + "navdmp.com", + "navegg.com" + ] + } + }, + { + "Net-Results": { + "http://www.net-results.com/": [ + "cdnma.com", + "net-results.com", + "nr7.us" + ] + } + }, + { + "NetAffiliation": { + "http://www.netaffiliation.com/": [ + "netaffiliation.com" + ] + } + }, + { + "NetBina": { + "http://www.netbina.com/": [ + "netbina.com" + ] + } + }, + { + "NetElixir": { + "http://www.netelixir.com/": [ + "adelixir.com", + "netelixir.com" + ] + } + }, + { + "Netmining": { + "http://www.netmining.com/": [ + "netmining.com", + "netmng.com" + ] + } + }, + { + "NetSeer": { + "http://www.netseer.com/": [ + "netseer.com" + ] + } + }, + { + "NetShelter": { + "http://netshelter.com/": [ + "netshelter.com", + "netshelter.net" + ] + } + }, + { + "Neustar": { + "http://www.neustar.biz/": [ + "adadvisor.net", + "neustar.biz" + ] + } + }, + { + "newtention": { + "http://newtention.de/": [ + "newtention.de", + "newtention.net", + "newtentionassets.net" + ] + } + }, + { + "Nexage": { + "http://nexage.com/": [ + "nexage.com" + ] + } + }, + { + "Nextag": { + "http://www.nextag.com/": [ + "nextag.com" + ] + } + }, + { + "NextPerformance": { + "http://www.nextperformance.com/": [ + "nextperformance.com", + "nxtck.com" + ] + } + }, + { + "Nielsen": { + "http://www.nielsen.com/": [ + "imrworldwide.com", + "imrworldwide.net" + ] + } + }, + { + "Ninua": { + "http://www.ninua.com/": [ + "networkedblogs.com", + "ninua.com" + ] + } + }, + { + "Nokta": { + "http://www.noktamedya.com/": [ + "noktamedya.com", + "virgul.com" + ] + } + }, + { + "NowSpots": { + "http://nowspots.com/": [ + "nowspots.com" + ] + } + }, + { + "nrelate": { + "http://nrelate.com/": [ + "nrelate.com" + ] + } + }, + { + "Nuffnang": { + "http://www.nuffnang.com.my/": [ + "nuffnang.com", + "nuffnang.com.my" + ] + } + }, + { + "nugg.ad": { + "http://www.nugg.ad/": [ + "nugg.ad", + "nuggad.net" + ] + } + }, + { + "Ohana Media": { + "http://www.ohana-media.com/": [ + "adohana.com", + "ohana-media.com", + "ohanaqb.com" + ] + } + }, + { + "Omnicom Group": { + "http://www.omnicomgroup.com/": [ + "accuenmedia.com", + "omnicomgroup.com", + "p-td.com" + ] + } + }, + { + "onAd": { + "http://www.onad.eu/": [ + "onad.eu" + ] + } + }, + { + "One iota": { + "http://www.itsoneiota.com/": [ + "itsoneiota.com", + "oneiota.co.uk" + ] + } + }, + { + "Oneupweb": { + "http://www.oneupweb.com/": [ + "oneupweb.com", + "sodoit.com" + ] + } + }, + { + "Open New Media": { + "http://www.onm.de/": [ + "onm.de" + ] + } + }, + { + "OpenX": { + "http://openx.com/": [ + "liftdna.com", + "openx.com", + "openx.net", + "openx.org", + "openxenterprise.com", + "servedbyopenx.com" + ] + } + }, + { + "Opera": { + "http://www.opera.com/": [ + "mobiletheory.com", + "operamediaworks.com", + "operasoftware.com", + "opera.com" + ] + } + }, + { + "OPT": { + "http://www.opt.ne.jp/": [ + "advg.jp", + "opt.ne.jp", + "p-advg.com" + ] + } + }, + { + "Optify": { + "http://www.optify.net/": [ + "optify.net" + ] + } + }, + { + "Optimal": { + "http://optim.al/": [ + "cpmadvisors.com", + "cpmatic.com", + "nprove.com", + "optim.al", + "orbengine.com", + "xa.net" + ] + } + }, + { + "OptimumResponse": { + "http://www.optimumresponse.com/": [ + "optimumresponse.com" + ] + } + }, + { + "OptMD": { + "http://optmd.com/": [ + "optmd.com" + ] + } + }, + { + "Oracle": { + "http://www.oracle.com/": [ + "estara.com" + ] + } + }, + { + "OrangeSoda": { + "http://www.orangesoda.com/": [ + "orangesoda.com", + "otracking.com" + ] + } + }, + { + "Out There Media": { + "http://www.out-there-media.com/": [ + "out-there-media.com" + ] + } + }, + { + "Outbrain": { + "http://www.outbrain.com/": [ + "outbrain.com", + "sphere.com" + ] + } + }, + { + "Oversee.net": { + "http://www.oversee.net/": [ + "dsnextgen.com", + "oversee.net" + ] + } + }, + { + "OwnerIQ": { + "http://www.owneriq.com/": [ + "owneriq.com", + "owneriq.net" + ] + } + }, + { + "OxaMedia": { + "http://www.oxamedia.com/": [ + "adconnexa.com", + "adsbwm.com", + "oxamedia.com" + ] + } + }, + { + "Paid-To-Promote.net": { + "http://www.paid-to-promote.net/": [ + "paid-to-promote.net" + ] + } + }, + { + "Pardot": { + "http://www.pardot.com/": [ + "pardot.com" + ] + } + }, + { + "PayHit": { + "http://www.payhit.com/": [ + "payhit.com" + ] + } + }, + { + "Paypopup.com": { + "http://www.paypopup.com/": [ + "lzjl.com", + "paypopup.com" + ] + } + }, + { + "Peer39": { + "http://www.peer39.com/": [ + "peer39.com", + "peer39.net" + ] + } + }, + { + "PeerFly": { + "http://peerfly.com/": [ + "peerfly.com" + ] + } + }, + { + "Performancing": { + "http://performancing.com/": [ + "performancing.com" + ] + } + }, + { + "Pheedo": { + "http://site.pheedo.com/": [ + "pheedo.com" + ] + } + }, + { + "Pictela": { + "http://www.pictela.com/": [ + "pictela.com", + "pictela.net" + ] + } + }, + { + "Pixel.sg": { + "http://www.pixel.sg/": [ + "pixel.sg" + ] + } + }, + { + "Piximedia": { + "http://www.piximedia.com/": [ + "piximedia.com" + ] + } + }, + { + "PLATFORM ONE": { + "http://www.platform-one.co.jp/": [ + "platform-one.co.jp" + ] + } + }, + { + "plista": { + "http://www.plista.com/": [ + "plista.com" + ] + } + }, + { + "Po.st": { + "http://www.po.st/": [ + "po.st" + ] + } + }, + { + "PocketCents": { + "http://pocketcents.com/": [ + "pocketcents.com" + ] + } + }, + { + "Politads": { + "http://politads.com/": [ + "politads.com" + ] + } + }, + { + "Pontiflex": { + "http://www.pontiflex.com/": [ + "pontiflex.com" + ] + } + }, + { + "PopAds": { + "https://www.popads.net/": [ + "popads.net", + "popadscdn.net" + ] + } + }, + { + "PopRule": { + "http://poprule.com/": [ + "gocampaignlive.com", + "poprule.com" + ] + } + }, + { + "Popunder.ru": { + "http://popunder.ru/": [ + "popunder.ru" + ] + } + }, + { + "PrecisionClick": { + "http://www.precisionclick.com/": [ + "precisionclick.com" + ] + } + }, + { + "PredictAd": { + "http://www.predictad.com/": [ + "predictad.com" + ] + } + }, + { + "Pressflex": { + "http://www.pressflex.com/": [ + "blogads.com", + "pressflex.com" + ] + } + }, + { + "Proclivity": { + "http://www.proclivitymedia.com/": [ + "proclivitymedia.com", + "proclivitysystems.com", + "pswec.com" + ] + } + }, + { + "Project Wonderful": { + "http://www.projectwonderful.com/": [ + "projectwonderful.com" + ] + } + }, + { + "Prosperent": { + "http://prosperent.com/": [ + "prosperent.com" + ] + } + }, + { + "Propeller Ads": { + "http://propellerads.com/": [ + "propellerads.com" + ] + } + }, + { + "Proximic": { + "http://www.proximic.com/": [ + "proxilinks.com", + "proximic.com", + "proximic.net" + ] + } + }, + { + "Public-Idées": { + "http://www.publicidees.com/": [ + "publicidees.com" + ] + } + }, + { + "Publishers Clearing House": { + "http://www.pch.com/": [ + "pch.com" + ] + } + }, + { + "PubMatic": { + "http://www.pubmatic.com/": [ + "pubmatic.com", + "revinet.com" + ] + } + }, + { + "Prime Visibility": { + "http://www.primevisibility.com/": [ + "adcde.com", + "addlvr.com", + "adonnetwork.com", + "adonnetwork.net", + "adtrgt.com", + "bannertgt.com", + "cptgt.com", + "cpvfeed.com", + "cpvtgt.com", + "popcde.com", + "primevisibility.com", + "sdfje.com", + "urtbk.com" + ] + } + }, + { + "quadrantOne": { + "http://www.quadrantone.com/": [ + "quadrantone.com" + ] + } + }, + { + "Quake Marketing": { + "http://quakemarketing.com/": [ + "quakemarketing.com" + ] + } + }, + { + "Quantcast": { + "http://www.quantcast.com/": [ + "quantcast.com", + "quantserve.com" + ] + } + }, + { + "QuinStreet": { + "http://quinstreet.com/": [ + "qnsr.com", + "qsstats.com", + "quinstreet.com" + ] + } + }, + { + "QUISMA": { + "http://www.i-behavior.com/": [ + "i-behavior.com", + "iaded.com", + "quisma.com", + "quismatch.com", + "xaded.com", + "xmladed.com" + ] + } + }, + { + "Radiate Media": { + "http://www.radiatemedia.com/": [ + "matchbin.com", + "radiatemedia.com" + ] + } + }, + { + "RadiumOne": { + "http://www.radiumone.com/": [ + "gwallet.com", + "radiumone.com" + ] + } + }, + { + "Radius Marketing": { + "http://www.radiusmarketing.com/": [ + "radiusmarketing.com" + ] + } + }, + { + "Rambler": { + "http://www.rambler.ru/": [ + "rambler.ru" + ] + } + }, + { + "Rapleaf": { + "http://www.rapleaf.com/": [ + "liveramp.com", + "rapleaf.com", + "rlcdn.com" + ] + } + }, + { + "ReachLocal": { + "http://www.reachlocal.com/": [ + "reachlocal.com", + "rlcdn.net" + ] + } + }, + { + "React2Media": { + "http://www.react2media.com/": [ + "react2media.com" + ] + } + }, + { + "Redux Media": { + "http://reduxmedia.com/": [ + "reduxmedia.com" + ] + } + }, + { + "Rekko": { + "http://rekko.com/": [ + "convertglobal.com", + "rekko.com" + ] + } + }, + { + "Reklam Store": { + "http://reklamstore.com/": [ + "reklamstore.com" + ] + } + }, + { + "Reklamport": { + "http://www.reklamport.com/": [ + "reklamport.com" + ] + } + }, + { + "Reklamz": { + "http://www.reklamz.com/": [ + "reklamz.com" + ] + } + }, + { + "Relevad": { + "http://www.relevad.com/": [ + "relestar.com", + "relevad.com" + ] + } + }, + { + "Renegade Internet": { + "http://www.renegadeinternet.com/": [ + "advertserve.com", + "renegadeinternet.com" + ] + } + }, + { + "Resolution Media": { + "http://resolutionmedia.com/": [ + "resolutionmedia.com" + ] + } + }, + { + "Resonate": { + "http://www.resonateinsights.com/": [ + "resonateinsights.com", + "resonatenetworks.com" + ] + } + }, + { + "Responsys": { + "http://www.responsys.com/": [ + "responsys.com" + ] + } + }, + { + "ReTargeter": { + "http://www.retargeter.com/": [ + "retargeter.com" + ] + } + }, + { + "Retirement Living": { + "www.retirement-living.com/": [ + "blvdstatus.com", + "retirement-living.com" + ] + } + }, + { + "RevenueMax": { + "http://revenuemax.de/": [ + "revenuemax.de" + ] + } + }, + { + "RevContent": { + "http://revcontent.com/": [ + "revcontent.com" + ] + } + }, + { + "Rhythm": { + "http://rhythmnewmedia.com/": [ + "rhythmnewmedia.com", + "rnmd.net" + ] + } + }, + { + "RichRelevance": { + "http://www.richrelevance.com/": [ + "richrelevance.com" + ] + } + }, + { + "RightAction": { + "http://rightaction.com/": [ + "rightaction.com" + ] + } + }, + { + "RMBN": { + "http://rmbn.net/": [ + "rmbn.net", + "rmbn.ru" + ] + } + }, + { + "RMM": { + "http://www.rmmonline.com/": [ + "rmmonline.com" + ] + } + }, + { + "Rocket Fuel": { + "http://rocketfuel.com/": [ + "rfihub.com", + "rfihub.net", + "rocketfuel.com" + ] + } + }, + { + "Rovion": { + "http://www.rovion.com/": [ + "rovion.com" + ] + } + }, + { + "RuTarget": { + "http://www.rutarget.ru/": [ + "rutarget.ru" + ] + } + }, + { + "Sabre": { + "http://www.sabre.com/": [ + "reztrack.com", + "sabre.com", + "sabrehospitality.com" + ] + } + }, + { + "Salesforce.com": { + "http://www.salesforce.com/": [ + "salesforce.com" + ] + } + }, + { + "Samurai Factory": { + "http://www.samurai-factory.jp/": [ + "samurai-factory.jp", + "shinobi.jp" + ] + } + }, + { + "Sapient": { + "http://www.sapient.com/": [ + "bridgetrack.com", + "sapient.com" + ] + } + }, + { + "SAS": { + "http://www.sas.com/": [ + "aimatch.com", + "sas.com" + ] + } + }, + { + "Scandinavian AdNetworks": { + "http://www.scandinavianadnetworks.com/": [ + "scandinavianadnetworks.com" + ] + } + }, + { + "Scribol": { + "http://scribol.com/": [ + "scribol.com" + ] + } + }, + { + "SearchForce": { + "http://www.searchforce.com/": [ + "searchforce.com", + "searchforce.net" + ] + } + }, + { + "Seevast": { + "http://www.seevast.com/": [ + "kanoodle.com", + "pulse360.com", + "seevast.com", + "syndigonetworks.com" + ] + } + }, + { + "Selectable Media": { + "http://selectablemedia.com/": [ + "nabbr.com", + "selectablemedia.com" + ] + } + }, + { + "SevenAds": { + "http://www.sevenads.net/": [ + "sevenads.net" + ] + } + }, + { + "SexInYourCity": { + "http://www.sexinyourcity.com/": [ + "sexinyourcity.com" + ] + } + }, + { + "ShareASale": { + "http://www.shareasale.com/": [ + "shareasale.com" + ] + } + }, + { + "Shopzilla": { + "http://www.shopzilla.com/": [ + "shopzilla.com" + ] + } + }, + { + "Silverpop": { + "http://www.silverpop.com/": [ + "mkt51.net", + "pages05.net", + "silverpop.com", + "vtrenz.net" + ] + } + }, + { + "Simpli.fi": { + "http://www.simpli.fi/": [ + "simpli.fi" + ] + } + }, + { + "SiteScout": { + "http://www.sitescout.com/": [ + "sitescout.com" + ] + } + }, + { + "Skimlinks": { + "http://skimlinks.com/": [ + "skimlinks.com", + "skimresources.com" + ] + } + }, + { + "Skupe Net": { + "http://www.skupenet.com/": [ + "adcentriconline.com", + "skupenet.com" + ] + } + }, + { + "Smaato": { + "http://www.smaato.com/": [ + "smaato.com" + ] + } + }, + { + "Smiley Media": { + "http://www.smileymedia.com/": [ + "smileymedia.com" + ] + } + }, + { + "Smowtion": { + "http://smowtion.com/": [ + "smowtion.com" + ] + } + }, + { + "Snap": { + "http://www.snap.com/": [ + "snap.com" + ] + } + }, + { + "SocialChorus": { + "http://www.socialchorus.com/": [ + "halogenmediagroup.com", + "halogennetwork.com", + "socialchorus.com" + ] + } + }, + { + "SocialInterface": { + "http://socialinterface.com/": [ + "ratevoice.com", + "socialinterface.com" + ] + } + }, + { + "SocialTwist": { + "http://tellafriend.socialtwist.com/": [ + "socialtwist.com" + ] + } + }, + { + "sociomantic labs": { + "http://www.sociomantic.com/": [ + "sociomantic.com" + ] + } + }, + { + "sophus3": { + "http://www.sophus3.com/": [ + "sophus3.co.uk", + "sophus3.com" + ] + } + }, + { + "Space Chimp Media": { + "http://spacechimpmedia.com/": [ + "spacechimpmedia.com" + ] + } + }, + { + "Spark Studios": { + "http://www.sparkstudios.com/": [ + "sparkstudios.com" + ] + } + }, + { + "Sparklit": { + "http://www.sparklit.com/": [ + "adbutler.com", + "sparklit.com" + ] + } + }, + { + "Specific Media": { + "http://www.specificmedia.com/": [ + "adviva.co.uk", + "adviva.net", + "sitemeter.com", + "specificclick.net", + "specificmedia.com", + "specificmedia.co.uk" + ] + } + }, + { + "Spectate": { + "http://spectate.com/": [ + "spectate.com" + ] + } + }, + { + "Sponge": { + "http://spongegroup.com/": [ + "spongegroup.com" + ] + } + }, + { + "Spongecell": { + "http://www.spongecell.com/": [ + "spongecell.com" + ] + } + }, + { + "SponsorAds": { + "http://www.sponsorads.de/": [ + "sponsorads.de" + ] + } + }, + { + "Spot200": { + "http://spot200.com/": [ + "spot200.com" + ] + } + }, + { + "SpotXchange": { + "http://www.spotxchange.com/": [ + "spotxchange.com" + ] + } + }, + { + "StarGames": { + "https://www.stargames.net/": [ + "stargamesaffiliate.com" + ] + } + }, + { + "SteelHouse": { + "http://www.steelhouse.com/": [ + "steelhouse.com", + "steelhousemedia.com" + ] + } + }, + { + "Streamray": { + "http://streamray.com/": [ + "cams.com", + "streamray.com" + ] + } + }, + { + "StrikeAd": { + "http://www.strikead.com/": [ + "strikead.com" + ] + } + }, + { + "StrongMail": { + "http://www.strongmail.com/": [ + "popularmedia.com" + ] + } + }, + { + "Struq": { + "http://struq.com/": [ + "struq.com" + ] + } + }, + { + "Suite 66": { + "http://www.suite66.com/": [ + "suite66.com" + ] + } + }, + { + "Summit": { + "http://www.summit.co.uk/": [ + "summitmedia.co.uk" + ] + } + }, + { + "SupersonicAds": { + "http://www.supersonicads.com/": [ + "supersonicads.com" + ] + } + }, + { + "Switch": { + "http://www.switchconcepts.com/": [ + "switchadhub.com", + "switchconcepts.co.uk", + "switchconcepts.com", + "ethicalads.net" + ] + } + }, + { + "Swoop": { + "http://swoop.com/": [ + "swoop.com" + ] + } + }, + { + "SymphonyAM": { + "http://www.factortg.com/": [ + "factortg.com" + ] + } + }, + { + "Syncapse": { + "http://www.syncapse.com/": [ + "clickable.net", + "syncapse.com" + ] + } + }, + { + "Taboola": { + "https://www.taboola.com/": [ + "taboola.com" + ] + } + }, + { + "Tailsweep": { + "http://www.tailsweep.com/": [ + "tailsweep.com" + ] + } + }, + { + "Tap.me": { + "http://tap.me/": [ + "tap.me" + ] + } + }, + { + "Tapad": { + "http://www.tapad.com/": [ + "tapad.com" + ] + } + }, + { + "Tapgage": { + "http://www.tapgage.com/": [ + "bizmey.com", + "tapgage.com" + ] + } + }, + { + "TapIt!": { + "http://tapit.com/": [ + "tapit.com" + ] + } + }, + { + "Tatto Media": { + "http://tattomedia.com/": [ + "quicknoodles.com", + "tattomedia.com" + ] + } + }, + { + "Targetix": { + "http://targetix.net/": [ + "targetix.net" + ] + } + }, + { + "Teadma": { + "http://www.teadma.com/": [ + "teadma.com" + ] + } + }, + { + "Technorati": { + "http://technorati.com/": [ + "technorati.com", + "technoratimedia.com" + ] + } + }, + { + "Teads.tv": { + "http://teads.tv/": [ + "teads.tv", + "ebuzzing.com" + ] + } + }, + { + "TellApart": { + "http://tellapart.com/": [ + "tellapart.com", + "tellapt.com" + ] + } + }, + { + "Telstra": { + "http://www.telstra.com.au/": [ + "sensis.com.au", + "sensisdata.com.au", + "sensisdigitalmedia.com.au", + "telstra.com.au" + ] + } + }, + { + "Terra": { + "http://www.terra.com.br/": [ + "eztargetmedia.com", + "terra.com.br" + ] + } + }, + { + "The Numa Group": { + "http://www.thenumagroup.com/": [ + "hittail.com", + "thenumagroup.com" + ] + } + }, + { + "The Rimm-Kaufman Group": { + "http://www.rimmkaufman.com/": [ + "rimmkaufman.com", + "rkdms.com" + ] + } + }, + { + "The Search Agency": { + "http://www.thesearchagency.com/": [ + "thesearchagency.com", + "thesearchagency.net" + ] + } + }, + { + "The Trade Desk": { + "http://thetradedesk.com/": [ + "adsrvr.org", + "thetradedesk.com" + ] + } + }, + { + "Think Realtime": { + "http://www.thinkrealtime.com/": [ + "echosearch.com", + "esm1.net", + "thinkrealtime.com" + ] + } + }, + { + "Tinder": { + "http://tinder.com/": [ + "carbonads.com", + "tinder.com" + ] + } + }, + { + "TiqIQ": { + "http://www.tiqiq.com/": [ + "tiqiq.com" + ] + } + }, + { + "TLVMedia": { + "http://tlvmedia.com/": [ + "tlvmedia.com" + ] + } + }, + { + "Todacell": { + "http://www.todacell.com/": [ + "todacell.com" + ] + } + }, + { + "ToneFuse": { + "http://tonefuse.com/": [ + "tonefuse.com" + ] + } + }, + { + "ToneMedia": { + "http://tonemedia.com/": [ + "clickfuse.com", + "tonemedia.com" + ] + } + }, + { + "TouchCommerce": { + "http://www.touchcommerce.com/": [ + "inq.com", + "touchcommerce.com" + ] + } + }, + { + "TrackingSoft": { + "http://trackingsoft.com/": [ + "trackingsoft.com" + ] + } + }, + { + "Tradedoubler": { + "http://www.tradedoubler.com/": [ + "tradedoubler.com" + ] + } + }, + { + "TradeTracker": { + "http://www.tradetracker.com/": [ + "tradetracker.com", + "tradetracker.net" + ] + } + }, + { + "TrafficHaus": { + "http://www.traffichaus.com/": [ + "traffichaus.com", + "traffichouse.com" + ] + } + }, + { + "TrafficRevenue": { + "http://www.trafficrevenue.net/": [ + "trafficrevenue.net" + ] + } + }, + { + "Traffiq": { + "http://www.traffiq.com/": [ + "traffiq.com" + ] + } + }, + { + "Travora Media": { + "http://www.travoramedia.com/": [ + "traveladnetwork.com", + "traveladvertising.com", + "travoramedia.com" + ] + } + }, + { + "Tremor Video": { + "http://www.tremorvideo.com/": [ + "scanscout.com", + "tmnetads.com", + "tremormedia.com", + "tremorvideo.com" + ] + } + }, + { + "Triggit": { + "http://triggit.com/": [ + "triggit.com" + ] + } + }, + { + "TruEffect": { + "http://www.trueffect.com/": [ + "adlegend.com", + "trueffect.com" + ] + } + }, + { + "TubeMogul": { + "http://www.tubemogul.com/": [ + "tmogul.com", + "tubemogul.com" + ] + } + }, + { + "Twelvefold": { + "http://www.twelvefold.com/": [ + "buzzlogic.com", + "twelvefold.com" + ] + } + }, + { + "twyn group": { + "http://www.twyn.com/": [ + "twyn.com" + ] + } + }, + { + "Tyroo": { + "http://www.tyroo.com/": [ + "tyroo.com" + ] + } + }, + { + "uCoz": { + "http://www.ucoz.com/": [ + "ucoz.ae", + "ucoz.br", + "ucoz.com", + "ucoz.du", + "ucoz.fr", + "ucoz.net", + "ucoz.ru" + ] + } + }, + { + "Unanimis": { + "http://www.unanimis.co.uk/": [ + "unanimis.co.uk" + ] + } + }, + { + "Underdog Media": { + "http://www.underdogmedia.com/": [ + "udmserve.net", + "underdogmedia.com" + ] + } + }, + { + "Undertone": { + "http://www.undertone.com/": [ + "undertone.com", + "undertonenetworks.com", + "undertonevideo.com" + ] + } + }, + { + "UniQlick": { + "http://www.uniqlick.com/": [ + "51network.com", + "uniqlick.com", + "wanmo.com" + ] + } + }, + { + "Unruly": { + "http://www.unrulymedia.com/": [ + "unrulymedia.com" + ] + } + }, + { + "up-value": { + "http://www.up-value.de/": [ + "up-value.de" + ] + } + }, + { + "USI Technologies": { + "http://www.usitechnologies.com/": [ + "upsellit.com", + "usitechnologies.com" + ] + } + }, + { + "Value Ad": { + "http://valuead.com/": [ + "valuead.com" + ] + } + }, + { + "ValueClick": { + "http://www.valueclick.com/": [ + "adserver.com", + "dotomi.com", + "dtmpub.com", + "emjcd.com", + "fastclick.com", + "fastclick.net", + "greystripe.com", + "lduhtrp.net", + "mediaplex.com", + "valueclick.com", + "valueclick.net", + "valueclickmedia.com" + ] + } + }, + { + "Various": { + "http://www.various.com/": [ + "amigos.com", + "getiton.com", + "medley.com", + "nostringsattached.com", + "various.com" + ] + } + }, + { + "Vcmedia": { + "http://vcmedia.vn/": [ + "vcmedia.vn" + ] + } + }, + { + "Vdopia": { + "http://www.vdopia.com/": [ + "ivdopia.com", + "vdopia.com" + ] + } + }, + { + "Velocity Media": { + "http://adsvelocity.com/": [ + "adsvelocity.com" + ] + } + }, + { + "Velti": { + "http://www.velti.com/": [ + "mobclix.com", + "velti.com" + ] + } + }, + { + "Vemba": { + "https://www.vemba.com/": [ + "vemba.com" + ] + } + }, + { + "Vendio": { + "http://www.vendio.com/": [ + "singlefeed.com", + "vendio.com" + ] + } + }, + { + "Veoxa": { + "http://www.veoxa.com/": [ + "veoxa.com" + ] + } + }, + { + "Veremedia": { + "http://www.veremedia.com/": [ + "veremedia.com" + ] + } + }, + { + "VerticalResponse": { + "http://www.verticalresponse.com/": [ + "verticalresponse.com", + "vresp.com" + ] + } + }, + { + "Vibrant Media": { + "http://www.vibrantmedia.com/": [ + "intellitxt.com", + "picadmedia.com", + "vibrantmedia.com" + ] + } + }, + { + "VigLink": { + "http://www.viglink.com/": [ + "viglink.com" + ] + } + }, + { + "Visible Measures": { + "http://www.visiblemeasures.com/": [ + "viewablemedia.net", + "visiblemeasures.com" + ] + } + }, + { + "VisibleBrands": { + "http://www.visbrands.com/": [ + "visbrands.com" + ] + } + }, + { + "VisualDNA": { + "http://www.visualdna.com/": [ + "vdna-assets.com", + "visualdna-stats.com", + "visualdna.com" + ] + } + }, + { + "Vizu": { + "http://www.vizu.com/": [ + "vizu.com" + ] + } + }, + { + "Vizury": { + "http://www.vizury.com/": [ + "vizury.com" + ] + } + }, + { + "Vserv": { + "http://www.vserv.com/": [ + "vserv.com", + "vserv.mobi" + ] + } + }, + { + "Wahoha": { + "http://wahoha.com/": [ + "contentwidgets.net", + "wahoha.com" + ] + } + }, + { + "Web.com": { + "http://www.web.com/": [ + "feedperfect.com", + "web.com" + ] + } + }, + { + "WebAds": { + "http://www.webads.co.uk/": [ + "webads.co.uk" + ] + } + }, + { + "WebGozar.com": { + "http://www.webgozar.com/": [ + "webgozar.com", + "webgozar.ir" + ] + } + }, + { + "WebMetro": { + "http://www.webmetro.com/": [ + "dsmmadvantage.com", + "webmetro.com" + ] + } + }, + { + "Weborama": { + "http://weborama.com/": [ + "weborama.com", + "weborama.fr" + ] + } + }, + { + "Webtraffic": { + "http://www.webtraffic.se/": [ + "webtraffic.no", + "webtraffic.se" + ] + } + }, + { + "WiredMinds": { + "http://www.wiredminds.com/": [ + "wiredminds.com", + "wiredminds.de" + ] + } + }, + { + "Wirtualna Polska": { + "http://www.wp.pl/": [ + "adtotal.pl", + "wp.pl" + ] + } + }, + { + "WordStream": { + "http://www.wordstream.com/": [ + "wordstream.com" + ] + } + }, + { + "WPP": { + "http://www.wpp.com/": [ + "247realmedia.com", + "accelerator-media.com", + "acceleratorusa.com", + "decdna.net", + "decideinteractive.com", + "gmads.net", + "groupm.com", + "kantarmedia.com", + "mecglobal.com", + "mindshare.nl", + "mookie1.com", + "pm14.com", + "realmedia.com", + "targ.ad", + "themig.com", + "wpp.com", + "xaxis.com" + ] + } + }, + { + "xAd": { + "http://www.xad.com/": [ + "xad.com" + ] + } + }, + { + "Xertive Media": { + "http://www.xertivemedia.com/": [ + "admanager-xertive.com", + "xertivemedia.com" + ] + } + }, + { + "xplosion interactive": { + "http://www.xplosion.de/": [ + "xplosion.de" + ] + } + }, + { + "Xrost DS": { + "http://www.adplan-ds.com/": [ + "adplan-ds.com" + ] + } + }, + { + "Yabuka": { + "http://www.yabuka.com/": [ + "yabuka.com" + ] + } + }, + { + "Yahoo!": { + "http://www.yahoo.com/": [ + "adinterax.com", + "adrevolver.com", + "bluelithium.com", + "dapper.net", + "interclick.com", + "overture.com", + "rightmedia.com", + "rmxads.com", + "secure-adserver.com", + "adserver.yahoo.com", + "advertising.yahoo.com", + "marketingsolutions.yahoo.com", + "thewheelof.com", + "yieldmanager.com", + "yieldmanager.net", + "yldmgrimg.net" + ] + } + }, + { + "Yandex": { + "http://www.yandex.com/": [ + "web-visor.com", + "moikrug.ru", + "yandex.com", + "yandex.ru", + "yandex.st", + "yandex.ua", + "yandex.com.tr", + "yandex.by" + ] + } + }, + { + "Ybrant Digital": { + "http://www.ybrantdigital.com/": [ + "addynamix.com", + "adserverplus.com", + "oridian.com", + "ybrantdigital.com" + ] + } + }, + { + "YD": { + "http://www.ydworld.com/": [ + "ydworld.com", + "yieldivision.com" + ] + } + }, + { + "YellowHammer": { + "http://www.yhmg.com/": [ + "attracto.com", + "clickhype.com", + "yellowhammermg.com", + "yhmg.com" + ] + } + }, + { + "Yes Ads": { + "http://yesads.com/": [ + "yesads.com" + ] + } + }, + { + "YieldAds": { + "http://yieldads.com/": [ + "yieldads.com" + ] + } + }, + { + "YieldBuild": { + "http://yieldbuild.com/": [ + "yieldbuild.com" + ] + } + }, + { + "Yieldlab": { + "http://www.yieldlab.de/": [ + "yieldlab.de", + "yieldlab.net" + ] + } + }, + { + "Yoggrt": { + "http://www.yoggrt.com/": [ + "yoggrt.com" + ] + } + }, + { + "YOC": { + "http://group.yoc.com/": [ + "yoc.com", + "yoc-performance.com" + ] + } + }, + { + "youknowbest": { + "http://www.youknowbest.com/": [ + "youknowbest.com" + ] + } + }, + { + "YuMe": { + "http://www.yume.com/": [ + "yume.com", + "yumenetworks.com" + ] + } + }, + { + "Zango": { + "http://www.zango.com/": [ + "metricsdirect.com", + "zango.com" + ] + } + }, + { + "zanox": { + "http://www.zanox.com/": [ + "buy.at", + "zanox-affiliate.de", + "zanox.com" + ] + } + }, + { + "zapunited": { + "http://www.zapunited.com/": [ + "zaparena.com", + "zapunited.com" + ] + } + }, + { + "ZEDO": { + "http://www.zedo.com/": [ + "zedo.com", + "zincx.com" + ] + } + }, + { + "Zemanta": { + "http://www.zemanta.com/": [ + "zemanta.com" + ] + } + }, + { + "ZestAd": { + "http://www.zestad.com/": [ + "zestad.com" + ] + } + }, + { + "Zeta Email Solutions": { + "http://www.zetaemailsolutions.com/": [ + "insightgrit.com", + "zetaemailsolutions.com" + ] + } + }, + { + "Zumobi": { + "http://www.zumobi.com/": [ + "zumobi.com" + ] + } + } + ], + "Analytics": [ + { + "63 Squares": { + "http://63squares.com/": [ + "63squares.com", + "i-stats.com" + ] + } + }, + { + "Acxiom": { + "http://www.acxiom.com/": [ + "acxiom.com", + "mm7.net" + ] + } + }, + { + "AddFreeStats": { + "http://www.addfreestats.com/": [ + "3dstats.com", + "addfreestats.com" + ] + } + }, + { + "Amadesa": { + "http://www.amadesa.com/": [ + "amadesa.com" + ] + } + }, + { + "Amazon.com": { + "http://www.amazon.com/": [ + "alexa.com", + "alexametrics.com" + ] + } + }, + { + "Amazing Counters": { + "http://amazingcounters.com/": [ + "amazingcounters.com" + ] + } + }, + { + "anormal-media.de": { + "http://anormal-media.de/": [ + "anormal-media.de", + "anormal-tracker.de" + ] + } + }, + { + "AT Internet": { + "http://www.atinternet.com/": [ + "atinternet.com", + "xiti.com" + ] + } + }, + { + "Attracta": { + "https://www.attracta.com/": [ + "attracta.com" + ] + } + }, + { + "Automattic": { + "http://automattic.com/": [ + "polldaddy.com" + ] + } + }, + { + "Awio": { + "http://www.awio.com/": [ + "awio.com", + "w3counter.com", + "w3roi.com" + ] + } + }, + { + "Belstat": { + "http://www.belstat.com/": [ + "belstat.be", + "belstat.com", + "belstat.de", + "belstat.fr", + "belstat.nl" + ] + } + }, + { + "BlogCounter.com": { + "http://www.blogcounter.de/": [ + "blogcounter.de" + ] + } + }, + { + "Bluemetrix": { + "http://www.bluemetrix.com/": [ + "bluemetrix.com", + "bmmetrix.com" + ] + } + }, + { + "Branica": { + "http://www.branica.com/": [ + "branica.com" + ] + } + }, + { + "BrightEdge": { + "http://www.brightedge.com/": [ + "brightedge.com" + ] + } + }, + { + "Bubblestat": { + "http://www.bubblestat.com/": [ + "bubblestat.com" + ] + } + }, + { + "C3 Metrics": { + "http://c3metrics.com/": [ + "attributionmodel.com", + "c3metrics.com", + "c3tag.com" + ] + } + }, + { + "Chartbeat": { + "http://chartbeat.com/": [ + "chartbeat.com", + "chartbeat.net" + ] + } + }, + { + "Clickdensity": { + "http://www.clickdensity.com/": [ + "clickdensity.com" + ] + } + }, + { + "ClickTale": { + "http://www.clicktale.com/": [ + "clicktale.com", + "clicktale.net", + "pantherssl.com" + ] + } + }, + { + "ClixMetrix": { + "http://www.clixmetrix.com/": [ + "clixmetrix.com" + ] + } + }, + { + "Clixpy": { + "http://clixpy.com/": [ + "clixpy.com" + ] + } + }, + { + "ClustrMaps": { + "http://www.clustrmaps.com/": [ + "clustrmaps.com" + ] + } + }, + { + "CNZZ": { + "http://www.cnzz.com/": [ + "cnzz.com" + ] + } + }, + { + "Compuware": { + "http://www.compuware.com/": [ + "axf8.net", + "compuware.com", + "gomez.com" + ] + } + }, + { + "comScore": { + "http://www.comscore.com/": [ + "certifica.com", + "comscore.com", + "scorecardresearch.com", + "sitestat.com", + "voicefive.com" + ] + } + }, + { + "Connexity": { + "http://www.connexity.com/": [ + "connexity.com" + ] + } + }, + { + "Convert Insights": { + "http://www.convert.com/": [ + "convert.com", + "reedge.com" + ] + } + }, + { + "Conversant Media": { + "http://www.conversantmedia.com/": [ + "zmedia.com", + "conversantmedia.com" + ] + } + }, + { + "Convertro": { + "http://www.convertro.com/": [ + "convertro.com" + ] + } + }, + { + "Crazy Egg": { + "http://www.crazyegg.com/": [ + "cetrk.com", + "crazyegg.com" + ] + } + }, + { + "Crowd Science": { + "http://crowdscience.com/": [ + "crowdscience.com" + ] + } + }, + { + "Cya2": { + "http://cya2.net/": [ + "cya2.net" + ] + } + }, + { + "Dataium": { + "http://www.dataium.com/": [ + "collserve.com", + "dataium.com" + ] + } + }, + { + "Demandbase": { + "http://www.demandbase.com/": [ + "demandbase.com" + ] + } + }, + { + "DirectCORP": { + "http://www.directcorp.de/": [ + "ipcounter.de" + ] + } + }, + { + "dwstat.com": { + "http://www.dwstat.cn/": [ + "dwstat.cn" + ] + } + }, + { + "Eloqua": { + "http://www.eloqua.com/": [ + "eloqua.com" + ] + } + }, + { + "EFF": { + "https://www.eff.org/": [ + "trackersimulator.org", + "eviltracker.net", + "do-not-tracker.org" + ] + } + }, + { + "Encore": { + "http://www.encoremetrics.com/": [ + "encoremetrics.com", + "sitecompass.com" + ] + } + }, + { + "eProof.com": { + "http://www.eproof.com/": [ + "eproof.com" + ] + } + }, + { + "etracker": { + "http://www.etracker.com/": [ + "etracker.com", + "etracker.de", + "sedotracker.com", + "sedotracker.de" + ] + } + }, + { + "Eulerian Technologies": { + "http://www.eulerian.com/": [ + "eulerian.com", + "eulerian.net" + ] + } + }, + { + "eXTReMe digital": { + "http://extremetracking.com/": [ + "extreme-dm.com", + "extremetracking.com" + ] + } + }, + { + "Feedjit": { + "http://feedjit.com/": [ + "feedjit.com" + ] + } + }, + { + "Footprint": { + "http://www.footprintlive.com/": [ + "footprintlive.com" + ] + } + }, + { + "Free Online Users": { + "http://www.freeonlineusers.com/": [ + "freeonlineusers.com" + ] + } + }, + { + "Free-PageRank.com": { + "http://www.free-pagerank.com/": [ + "free-pagerank.com" + ] + } + }, + { + "GfK Group": { + "http://www.gfk.com/": [ + "daphnecm.com", + "gfk.com", + "gfkdaphne.com" + ] + } + }, + { + "GitHub": { + "https://github.com/": [ + "gaug.es" + ] + } + }, + { + "Go Daddy": { + "http://www.godaddy.com/": [ + "godaddy.com", + "trafficfacts.com" + ] + } + }, + { + "GoSquared": { + "https://www.gosquared.com/": [ + "gosquared.com" + ] + } + }, + { + "GoStats": { + "http://gostats.com/": [ + "gostats.com" + ] + } + }, + { + "GTop": { + "http://www.gtop.ro/": [ + "gtop.ro", + "gtopstats.com" + ] + } + }, + { + "Hearst": { + "http://www.hearst.com/": [ + "raasnet.com", + "redaril.com" + ] + } + }, + { + "Histats": { + "http://www.histats.com/": [ + "histats.com" + ] + } + }, + { + "Hit Sniffer": { + "http://www.hitsniffer.com/": [ + "hitsniffer.com" + ] + } + }, + { + "HitsLink": { + "http://www.hitslink.com/": [ + "hitslink.com" + ] + } + }, + { + "IBM": { + "http://www.ibm.com/": [ + "cmcore.com", + "coremetrics.com", + "ibm.com" + ] + } + }, + { + "InboundWriter": { + "http://www.inboundwriter.com/": [ + "enquisite.com", + "inboundwriter.com" + ] + } + }, + { + "INFOnline": { + "https://www.infonline.de/": [ + "infonline.de", + "ioam.de", + "ivwbox.de" + ] + } + }, + { + "InfoStars": { + "http://infostars.ru/": [ + "hotlog.ru", + "infostars.ru" + ] + } + }, + { + "Inspectlet": { + "http://www.inspectlet.com/": [ + "inspectlet.com" + ] + } + }, + { + "IntelligenceFocus": { + "http://www.intelligencefocus.com/": [ + "domodomain.com", + "intelligencefocus.com" + ] + } + }, + { + "Intercom": { + "https://www.intercom.io/": [ + "intercom.io" + ] + } + }, + { + "iPerceptions": { + "http://www.iperceptions.com/": [ + "iperceptions.com" + ] + } + }, + { + "KeyMetric": { + "http://www.keymetric.net/": [ + "keymetric.net" + ] + } + }, + { + "Kitcode": { + "http://src.kitcode.net/": [ + "src.kitcode.net" + ] + } + }, + { + "KISSmetrics": { + "http://kissmetrics.com/": [ + "kissmetrics.com" + ] + } + }, + { + "LineZing": { + "http://www.linezing.com/": [ + "linezing.com" + ] + } + }, + { + "LivePerson": { + "http://www.liveperson.com/": [ + "liveperson.com", + "nuconomy.com" + ] + } + }, + { + "Logdy": { + "http://logdy.com/": [ + "logdy.com" + ] + } + }, + { + "Lotame": { + "http://www.lotame.com/": [ + "crwdcntrl.net", + "lotame.com" + ] + } + }, + { + "Lynchpin": { + "http://www.lynchpin.com/": [ + "lynchpin.com", + "lypn.com" + ] + } + }, + { + "Lyris": { + "http://www.lyris.com/": [ + "clicktracks.com", + "lyris.com" + ] + } + }, + { + "Lytiks": { + "http://www.lytiks.com/": [ + "lytiks.com" + ] + } + }, + { + "Marktest": { + "http://www.marktest.com/": [ + "marktest.com", + "marktest.pt" + ] + } + }, + { + "Maxymiser": { + "http://www.maxymiser.com/": [ + "maxymiser.com" + ] + } + }, + { + "Médiamétrie-eStat": { + "http://www.mediametrie-estat.com/": [ + "estat.com", + "mediametrie-estat.com" + ] + } + }, + { + "Meetrics": { + "http://www.meetrics.de/": [ + "meetrics.de", + "meetrics.net", + "research.de.com" + ] + } + }, + { + "MetrixLab": { + "http://metrixlab.com/": [ + "crm-metrix.com", + "customerconversio.com", + "metrixlab.com" + ] + } + }, + { + "Mixpanel": { + "https://mixpanel.com/": [ + "mixpanel.com" + ] + } + }, + { + "Mongoose Metrics": { + "http://www.mongoosemetrics.com/": [ + "mongoosemetrics.com" + ] + } + }, + { + "Monitus": { + "http://www.monitus.net/": [ + "monitus.net" + ] + } + }, + { + "motigo": { + "http://motigo.com/": [ + "motigo.com", + "nedstatbasic.net" + ] + } + }, + { + "Mouseflow": { + "http://mouseflow.com/": [ + "mouseflow.com" + ] + } + }, + { + "MyPagerank.Net": { + "http://www.mypagerank.net/": [ + "mypagerank.net" + ] + } + }, + { + "Net Applications": { + "http://www.netapplications.com/": [ + "hitsprocessor.com", + "netapplications.com" + ] + } + }, + { + "New Relic": { + "http://newrelic.com/": [ + "newrelic.com" + ] + } + }, + { + "NewsRight": { + "http://www.newsright.com/": [ + "apnewsregistry.com" + ] + } + }, + { + "NextSTAT": { + "http://www.nextstat.com/": [ + "nextstat.com" + ] + } + }, + { + "Nielsen": { + "http://www.nielsen.com/": [ + "glanceguide.com", + "nielsen.com" + ] + } + }, + { + "nurago": { + "http://www.nurago.com/": [ + "nurago.com", + "nurago.de", + "sensic.net" + ] + } + }, + { + "Observer": { + "http://observerapp.com/": [ + "observerapp.com" + ] + } + }, + { + "OneStat": { + "http://www.onestat.com/": [ + "onestat.com" + ] + } + }, + { + "Openstat": { + "https://www.openstat.ru/": [ + "openstat.ru", + "spylog.com" + ] + } + }, + { + "Opentracker": { + "http://www.opentracker.net/": [ + "opentracker.net" + ] + } + }, + { + "ÖWA": { + "http://www.oewa.at/": [ + "oewa.at", + "oewabox.at" + ] + } + }, + { + "PersianStat.com": { + "http://www.persianstat.com/": [ + "persianstat.com" + ] + } + }, + { + "Phonalytics": { + "http://www.phonalytics.com/": [ + "phonalytics.com" + ] + } + }, + { + "phpMyVisites": { + "http://www.phpmyvisites.us/": [ + "phpmyvisites.us" + ] + } + }, + { + "Piwik": { + "http://piwik.org/": [ + "piwik.org" + ] + } + }, + { + "Pronunciator": { + "http://www.pronunciator.com/": [ + "pronunciator.com", + "visitorville.com" + ] + } + }, + { + "Qualaroo": { + "http://qualaroo.com/": [ + "kissinsights.com", + "qualaroo.com" + ] + } + }, + { + "QuinStreet": { + "http://quinstreet.com/": [ + "thecounter.com" + ] + } + }, + { + "Quintelligence": { + "http://www.quintelligence.com/": [ + "quintelligence.com" + ] + } + }, + { + "RadarURL": { + "http://radarurl.com/": [ + "radarurl.com" + ] + } + }, + { + "Research Now": { + "http://www.researchnow.com/": [ + "researchnow.com", + "valuedopinions.co.uk" + ] + } + }, + { + "Revtracks": { + "http://revtrax.com/": [ + "revtrax.com" + ] + } + }, + { + "Ringier": { + "http://ringier.cz/": [ + "ringier.cz" + ] + } + }, + { + "Roxr": { + "http://roxr.net/": [ + "getclicky.com", + "roxr.net", + "staticstuff.net" + ] + } + }, + { + "Safecount": { + "http://www.safecount.net/": [ + "dl-rms.com", + "dlqm.net", + "questionmarket.com", + "safecount.net" + ] + } + }, + { + "SageMetrics": { + "http://www.sagemetrics.com/": [ + "sageanalyst.net", + "sagemetrics.com" + ] + } + }, + { + "Segment.io": { + "https://segment.io/": [ + "segment.io" + ] + } + }, + { + "SeeVolution": { + "https://www.seevolution.com/": [ + "seevolution.com", + "svlu.net" + ] + } + }, + { + "Shortest": { + "http://shorte.st/": [ + "shorte.st" + ] + } + }, + { + "ShinyStat": { + "http://www.shinystat.com/": [ + "shinystat.com" + ] + } + }, + { + "Snoobi": { + "http://www.snoobi.com/": [ + "snoobi.com" + ] + } + }, + { + "StatCounter": { + "http://statcounter.com/": [ + "statcounter.com" + ] + } + }, + { + "Statisfy": { + "http://statisfy.net": [ + "statisfy.net" + ] + } + }, + { + "STATSIT": { + "http://www.statsit.com/": [ + "statsit.com" + ] + } + }, + { + "Stratigent": { + "http://www.stratigent.com/": [ + "stratigent.com" + ] + } + }, + { + "stat4u": { + "http://stat.4u.pl/": [ + "4u.pl" + ] + } + }, + { + "TENSQUARE": { + "http://www.tensquare.com/": [ + "tensquare.com" + ] + } + }, + { + "The Heron Partnership": { + "http://www.heronpartners.com.au/": [ + "heronpartners.com.au", + "marinsm.com" + ] + } + }, + { + "TNS": { + "http://www.tnsglobal.com/": [ + "sesamestats.com", + "statistik-gallup.net", + "tns-counter.ru", + "tns-cs.net", + "tnsglobal.com" + ] + } + }, + { + "TrackingSoft": { + "http://trackingsoft.com/": [ + "roia.biz", + "trackingsoft.com" + ] + } + }, + { + "Umbel": { + "https://www.umbel.com/": [ + "umbel.com" + ] + } + }, + { + "User Local": { + "http://nakanohito.jp/": [ + "nakanohito.jp" + ] + } + }, + { + "Vertster": { + "http://www.vertster.com/": [ + "vertster.com" + ] + } + }, + { + "VisiStat": { + "http://www.visistat.com/": [ + "sa-as.com", + "visistat.com" + ] + } + }, + { + "Visit Streamer": { + "http://www.visitstreamer.com/": [ + "visitstreamer.com" + ] + } + }, + { + "vistrac": { + "http://vistrac.com/": [ + "vistrac.com" + ] + } + }, + { + "ViziSense": { + "http://www.vizisense.com/": [ + "vizisense.com", + "vizisense.net" + ] + } + }, + { + "Web Stats": { + "http://www.onlinewebstats.com/": [ + "onlinewebstats.com" + ] + } + }, + { + "Web Tracking Services": { + "http://www.webtrackingservices.com/": [ + "web-stat.com", + "webtrackingservices.com" + ] + } + }, + { + "Web Traxs": { + "http://www.webtraxs.com/": [ + "webtraxs.com" + ] + } + }, + { + "Webclicktracker": { + "http://www.webclicktracker.com/": [ + "webclicktracker.com" + ] + } + }, + { + "Webtrekk": { + "http://www.webtrekk.com/": [ + "webtrekk.com", + "webtrekk.net" + ] + } + }, + { + "Webtrends": { + "http://webtrends.com/": [ + "reinvigorate.net", + "webtrends.com", + "webtrendslive.com" + ] + } + }, + { + "whos.amung.us": { + "http://whos.amung.us/": [ + "amung.us" + ] + } + }, + { + "Woopra": { + "http://www.woopra.com/": [ + "woopra-ns.com", + "woopra.com" + ] + } + }, + { + "WOW Analytics": { + "http://www.wowanalytics.co.uk/": [ + "wowanalytics.co.uk" + ] + } + }, + { + "WPP": { + "http://www.wpp.com/": [ + "compete.com" + ] + } + }, + { + "Wysistat": { + "http://www.wysistat.com/": [ + "wysistat.com" + ] + } + }, + { + "Yahoo!": { + "http://www.yahoo.com/": [ + "analytics.yahoo.com" + ] + } + }, + { + "YellowTracker": { + "http://www.yellowtracker.com/": [ + "yellowtracker.com" + ] + } + } + ], + "Content": [ + { + "33Across": { + "http://33across.com/": [ + "tynt.com" + ] + } + }, + { + "ActivEngage": { + "http://www.activengage.com/": [ + "activengage.com" + ] + } + }, + { + "Adap.tv": { + "http://adap.tv/": [ + "adap.tv" + ] + } + }, + { + "Adobe": { + "http://www.adobe.com/": [ + "adobe.com", + "typekit.com" + ] + } + }, + { + "Akamai": { + "http://www.akamai.com/": [ + "abmr.net", + "akamai.com", + "edgesuite.net" + ] + } + }, + { + "AKQA": { + "http://www.akqa.com/": [ + "akqa.com", + "srtk.net" + ] + } + }, + { + "Amazon.com": { + "http://www.amazon.com/": [ + "amazon.com", + "cloudfront.net" + ] + } + }, + { + "AOL": { + "http://www.aol.com/": [ + "5min.com", + "aim.com", + "aol.com", + "aolanswers.com", + "aolcdn.com", + "aoltechguru.com", + "autoblog.com", + "cambio.com", + "dailyfinance.com", + "editions.com", + "engadget.com", + "games.com", + "homesessive.com", + "huffingtonpost.com", + "joystiq.com", + "kitchendaily.com", + "makers.com", + "mandatory.com", + "mapquest.com", + "moviefone.com", + "noisecreep.com", + "patch.com", + "pawnation.com", + "shortcuts.com", + "shoutcast.com", + "spinner.com", + "stylelist.com", + "stylemepretty.com", + "surphace.com", + "techcrunch.com", + "theboombox.com", + "theboot.com", + "tuaw.com", + "userplane.com", + "winamp.com" + ] + } + }, + { + "Automattic": { + "http://automattic.com/": [ + "automattic.com", + "gravatar.com", + "intensedebate.com" + ] + } + }, + { + "Baynote": { + "http://www.baynote.com/": [ + "baynote.com", + "baynote.net" + ] + } + }, + { + "Bazaarvoice": { + "http://www.bazaarvoice.com/": [ + "bazaarvoice.com" + ] + } + }, + { + "BigDoor": { + "http://www.bigdoor.com/": [ + "bigdoor.com", + "onetruefan.com" + ] + } + }, + { + "Brightcove": { + "http://www.brightcove.com/": [ + "brightcove.com" + ] + } + }, + { + "Browser-Update.org": { + "www.browser-update.org/": [ + "browser-update.org" + ] + } + }, + { + "BTBuckets": { + "http://btbuckets.com/": [ + "btbuckets.com" + ] + } + }, + { + "Buffer": { + "http://bufferapp.com/": [ + "bufferapp.com" + ] + } + }, + { + "Bunchball": { + "http://www.bunchball.com/": [ + "bunchball.com" + ] + } + }, + { + "buySAFE": { + "http://www.buysafe.com/": [ + "buysafe.com" + ] + } + }, + { + "BuzzFeed": { + "http://www.buzzfeed.com/": [ + "buzzfed.com", + "buzzfeed.com" + ] + } + }, + { + "Cbox": { + "http://www.cbox.ws/": [ + "cbox.ws" + ] + } + }, + { + "CBS Interactive": { + "http://www.cbsinteractive.com/": [ + "cbsinteractive.com", + "com.com" + ] + } + }, + { + "Cedexis": { + "http://www.cedexis.com/": [ + "cedexis.com", + "cedexis.net" + ] + } + }, + { + "Certona": { + "http://www.certona.com/": [ + "certona.com", + "res-x.com" + ] + } + }, + { + "ClipSyndicate": { + "http://www.clipsyndicate.com/": [ + "clipsyndicate.com" + ] + } + }, + { + "Collarity": { + "http://www.collarity.com/": [ + "collarity.com" + ] + } + }, + { + "Conduit": { + "http://www.conduit.com/": [ + "conduit-banners.com", + "conduit-services.com", + "conduit.com", + "wibiya.com" + ] + } + }, + { + "Congoo": { + "http://www.congoo.com/": [ + "congoo.com" + ] + } + }, + { + "Contact At Once!": { + "http://www.contactatonce.com/": [ + "contactatonce.com" + ] + } + }, + { + "Conviva": { + "http://www.conviva.com/": [ + "conviva.com" + ] + } + }, + { + "DailyMe": { + "http://dailyme.com/": [ + "dailyme.com", + "newstogram.com" + ] + } + }, + { + "DataSift": { + "http://datasift.com/": [ + "datasift.com", + "tweetmeme.com" + ] + } + }, + { + "Disqus": { + "http://disqus.com/": [ + "disqus.com" + ] + } + }, + { + "Echo": { + "http://aboutecho.com/": [ + "aboutecho.com", + "haloscan.com", + "js-kit.com" + ] + } + }, + { + "Facebook": { + "http://www.facebook.com/": [ + "akamaihd.net", + "instagram.com", + "fbcdn.net" + ] + } + }, + { + "Flattr": { + "http://flattr.com/": [ + "flattr.com" + ] + } + }, + { + "FreeWheel": { + "http://www.freewheel.tv/": [ + "freewheel.tv", + "fwmrm.net" + ] + } + }, + { + "Genius.com": { + "http://www.genius.com/": [ + "genius.com" + ] + } + }, + { + "Get Satisfaction": { + "https://getsatisfaction.com/": [ + "getsatisfaction.com" + ] + } + }, + { + "Gigya": { + "http://www.gigya.com/": [ + "gigcount.com", + "gigya.com" + ] + } + }, + { + "Global Takeoff": { + "http://www.globaltakeoff.com/": [ + "globaltakeoff.com", + "globaltakeoff.net" + ] + } + }, + { + "GoGrid": { + "http://www.gogrid.com/": [ + "formalyzer.com", + "gogrid.com", + "komli.net" + ] + } + }, + { + "Google": { + "http://www.google.com/": [ + "apture.com", + "blogger.com", + "feedburner.com", + "ggpht.com", + "gmodules.com", + "google-melange.com", + "google.ad", + "google.ae", + "google.com.af", + "google.com.ag", + "google.com.ai", + "google.al", + "google.am", + "google.co.ao", + "google.com.ar", + "google.as", + "google.at", + "google.com.au", + "google.az", + "google.ba", + "google.com.bd", + "google.be", + "google.bf", + "google.bg", + "google.com.bh", + "google.bi", + "google.bj", + "google.com.bn", + "google.com.bo", + "google.com.br", + "google.bs", + "google.bt", + "google.co.bw", + "google.by", + "google.com.bz", + "google.ca", + "google.cd", + "google.cf", + "google.cg", + "google.ch", + "google.ci", + "google.co.ck", + "google.cl", + "google.cm", + "google.cn", + "google.com.co", + "accounts.google.com", + "apis.google.com", + "appengine.google.com", + "books.google.com", + "checkout.google.com", + "chrome.google.com", + "code.google.com", + "codesearch.google.com", + "docs.google.com", + "drive.google.com", + "earth.google.com", + "encrypted.google.com", + "feedburner.google.com", + "feedproxy.google.com", + "finance.google.com", + "groups.google.com", + "health.google.com", + "images.google.com", + "investor.google.com", + "knol.google.com", + "maps.google.com", + "music.google.com", + "news.google.com", + "picasa.google.com", + "picasaweb.google.com", + "play.google.com", + "script.google.com", + "shopping.google.com", + "sites.google.com", + "sketchup.google.com", + "support.google.com", + "talk.google.com", + "talkgadget.google.com", + "toolbar.google.com", + "translate.google.com", + "trends.google.com", + "video.google.com", + "videos.google.com", + "wallet.google.com", + "www.google.com", + "google.co.cr", + "google.com.cu", + "google.cv", + "google.com.cy", + "google.cz", + "google.de", + "google.dj", + "google.dk", + "google.dm", + "google.com.do", + "google.dz", + "google.com.ec", + "google.ee", + "google.com.eg", + "google.es", + "google.com.et", + "google.fi", + "google.com.fj", + "google.fm", + "google.fr", + "google.ga", + "google.ge", + "google.gg", + "google.com.gh", + "google.com.gi", + "google.gl", + "google.gm", + "google.gp", + "google.gr", + "google.com.gt", + "google.gy", + "google.com.hk", + "google.hn", + "google.hr", + "google.ht", + "google.hu", + "google.co.id", + "google.ie", + "google.co.il", + "google.im", + "google.co.in", + "google.iq", + "google.is", + "google.it", + "google.je", + "google.com.jm", + "google.jo", + "google.co.jp", + "google.co.ke", + "google.com.kh", + "google.ki", + "google.kg", + "google.co.kr", + "google.com.kw", + "google.kz", + "google.la", + "google.com.lb", + "google.li", + "google.lk", + "google.co.ls", + "google.lt", + "google.lu", + "google.lv", + "google.com.ly", + "google.co.ma", + "google.md", + "google.me", + "google.mg", + "google.mk", + "google.ml", + "google.com.mm", + "google.mn", + "google.ms", + "google.com.mt", + "google.mu", + "google.mv", + "google.mw", + "google.com.mx", + "google.com.my", + "google.co.mz", + "google.com.na", + "google.com.nf", + "google.com.ng", + "google.com.ni", + "google.ne", + "google.nl", + "google.no", + "google.com.np", + "google.nr", + "google.nu", + "google.co.nz", + "google.com.om", + "google.com.pa", + "google.com.pe", + "google.com.pg", + "google.com.ph", + "google.com.pk", + "google.pl", + "google.pn", + "google.com.pr", + "google.ps", + "google.pt", + "google.com.py", + "google.com.qa", + "google.ro", + "google.ru", + "google.rw", + "google.com.sa", + "google.com.sb", + "google.sc", + "google.se", + "google.com.sg", + "google.sh", + "google.si", + "google.sk", + "google.com.sl", + "google.sn", + "google.so", + "google.sm", + "google.st", + "google.com.sv", + "google.td", + "google.tg", + "google.co.th", + "google.com.tj", + "google.tk", + "google.tl", + "google.tm", + "google.tn", + "google.to", + "google.com.tr", + "google.tt", + "google.com.tw", + "google.co.tz", + "google.com.ua", + "google.co.ug", + "google.co.uk", + "google.com.uy", + "google.co.uz", + "google.com.vc", + "google.co.ve", + "google.vg", + "google.co.vi", + "google.com.vn", + "google.vu", + "google.ws", + "google.rs", + "google.co.za", + "google.co.zm", + "google.co.zw", + "google.cat", + "googleapis.com", + "googleartproject.com", + "googleusercontent.com", + "gstatic.com", + "panoramio.com", + "postini.com", + "recaptcha.net", + "youtube.com" + ] + } + }, + { + "Gravity": { + "http://www.gravity.com/": [ + "gravity.com", + "grvcdn.com" + ] + } + }, + { + "Heyzap": { + "http://www.heyzap.com/": [ + "heyzap.com" + ] + } + }, + { + "HubSpot": { + "http://www.hubspot.com/": [ + "hubspot.com" + ] + } + }, + { + "iovation": { + "http://www.iovation.com/": [ + "iesnare.com", + "iovation.com" + ] + } + }, + { + "Kaltura": { + "http://corp.kaltura.com/": [ + "kaltura.com" + ] + } + }, + { + "kikin": { + "http://www.kikin.com/": [ + "kikin.com" + ] + } + }, + { + "Limelight Networks": { + "http://www.limelight.com/": [ + "clickability.com", + "limelight.com", + "llnwd.net" + ] + } + }, + { + "Livefyre": { + "http://livefyre.com/": [ + "fyre.co", + "livefyre.com" + ] + } + }, + { + "LivePerson": { + "http://www.liveperson.net/": [ + "liveperson.net" + ] + } + }, + { + "LiveRail": { + "http://liverail.com/": [ + "liverail.com" + ] + } + }, + { + "LongTail Video": { + "http://www.longtailvideo.com/": [ + "longtailvideo.com", + "ltassrv.com" + ] + } + }, + { + "Luminate": { + "http://luminate.com/": [ + "luminate.com", + "pixazza.com" + ] + } + }, + { + "Markit": { + "http://www.markit.com/": [ + "markit.com", + "wsod.com" + ] + } + }, + { + "MashLogic": { + "http://www.mashlogic.com/": [ + "mashlogic.com" + ] + } + }, + { + "McAfee": { + "http://www.mcafee.com/": [ + "mcafee.com", + "scanalert.com" + ] + } + }, + { + "Microsoft": { + "http://www.microsoft.com/": [ + "bing.com", + "gamesforwindows.com", + "getgamesmart.com", + "healthvault.com", + "ieaddons.com", + "iegallery.com", + "live.com", + "microsoft.com", + "microsoftalumni.com", + "microsoftalumni.org", + "microsoftstore.com", + "msn.com", + "msnbc.com", + "msndirect.com", + "nbcnews.com", + "office.com", + "officelive.com", + "outlook.com", + "s-msn.com", + "skype.com", + "windowsphone.com", + "worldwidetelescope.org", + "xbox.com", + "zune.com", + "zune.net" + ] + } + }, + { + "NDN": { + "http://www.newsinc.com/": [ + "newsinc.com" + ] + } + }, + { + "Oberon Media": { + "http://www.oberon-media.com/": [ + "blaze.com", + "oberon-media.com" + ] + } + }, + { + "Olark": { + "http://www.olark.com/": [ + "olark.com" + ] + } + }, + { + "Ooyala": { + "http://www.ooyala.com/": [ + "oo4.com", + "ooyala.com" + ] + } + }, + { + "Optimizely": { + "https://www.optimizely.com/": [ + "optimizely.com" + ] + } + }, + { + "Oracle": { + "http://www.oracle.com/": [ + "atgsvcs.com", + "instantservice.com", + "istrack.com", + "oracle.com" + ] + } + }, + { + "Parse.ly": { + "http://parsely.com/": [ + "parsely.com" + ] + } + }, + { + "Peerius": { + "http://www.peerius.com/": [ + "peerius.com" + ] + } + }, + { + "Pinterest": { + "http://pinterest.com/": [ + "pinterest.com" + ] + } + }, + { + "PunchTab": { + "http://www.punchtab.com/": [ + "punchtab.com" + ] + } + }, + { + "RIM": { + "http://www.rim.com/": [ + "rim.com", + "scoreloop.com" + ] + } + }, + { + "SAY": { + "http://saymedia.com/": [ + "saymedia.com", + "typepad.com", + "videoegg.com" + ] + } + }, + { + "ScribeFire": { + "http://www.scribefire.com/": [ + "scribefire.com" + ] + } + }, + { + "Six Apart": { + "http://www.sixapart.com/": [ + "sixapart.com" + ] + } + }, + { + "Skribit": { + "http://skribit.com/": [ + "skribit.com" + ] + } + }, + { + "SnapEngage": { + "http://www.snapengage.com/": [ + "snapengage.com" + ] + } + }, + { + "Spring Metrics": { + "http://www.springmetrics.com/": [ + "springmetrics.com" + ] + } + }, + { + "Superfish": { + "http://www.superfish.com/": [ + "superfish.com" + ] + } + }, + { + "Synacor": { + "http://www.synacor.com/": [ + "synacor.com" + ] + } + }, + { + "ThingLink": { + "http://www.thinglink.com/": [ + "thinglink.com" + ] + } + }, + { + "Thismoment": { + "http://www.thismoment.com/": [ + "thismoment.com" + ] + } + }, + { + "Thummit": { + "http://www.thummit.com/": [ + "thummit.com" + ] + } + }, + { + "Topsy": { + "http://topsy.com/": [ + "topsy.com" + ] + } + }, + { + "TraceMyIP.org": { + "http://www.tracemyip.org/": [ + "tracemyip.org" + ] + } + }, + { + "Trackset": { + "http://www.trackset.com/": [ + "trackset.com" + ] + } + }, + { + "Trovus": { + "http://www.trovus.co.uk/": [ + "trovus.co.uk" + ] + } + }, + { + "Trumba": { + "http://www.trumba.com/": [ + "trumba.com" + ] + } + }, + { + "Tumblr": { + "http://www.tumblr.com/": [ + "tumblr.com" + ] + } + }, + { + "Turn": { + "http://www.turn.com/": [ + "turn.com" + ] + } + }, + { + "TurnTo": { + "http://www.turntonetworks.com/": [ + "turnto.com", + "turntonetworks.com" + ] + } + }, + { + "Tweetboard": { + "http://tweetboard.com/": [ + "tweetboard.com" + ] + } + }, + { + "TRUSTe": { + "http://www.truste.com/": [ + "truste.com" + ] + } + }, + { + "Twitter Counter": { + "http://twittercounter.com/": [ + "twittercounter.com" + ] + } + }, + { + "UberMedia": { + "http://ubermedia.com/": [ + "ubermedia.com", + "tweetup.com" + ] + } + }, + { + "UberTags": { + "http://ubertags.com/": [ + "ubertags.com" + ] + } + }, + { + "Unbounce": { + "http://unbounce.com/": [ + "unbounce.com" + ] + } + }, + { + "Uptrends": { + "http://www.uptrends.com/": [ + "uptrends.com" + ] + } + }, + { + "Usability Sciences": { + "http://www.usabilitysciences.com/": [ + "usabilitysciences.com", + "webiqonline.com" + ] + } + }, + { + "UserVoice": { + "http://www.uservoice.com/": [ + "uservoice.com" + ] + } + }, + { + "Vertical Acuity": { + "http://www.verticalacuity.com/": [ + "verticalacuity.com" + ] + } + }, + { + "VG WORT": { + "http://www.vgwort.de/": [ + "vgwort.de" + ] + } + }, + { + "Videology": { + "http://www.videologygroup.com/": [ + "tidaltv.com", + "videologygroup.com" + ] + } + }, + { + "Viewbix": { + "http://www.viewbix.com/": [ + "qoof.com", + "viewbix.com" + ] + } + }, + { + "Vimeo": { + "http://vimeo.com/": [ + "vimeo.com", + "vimeocdn.com" + ] + } + }, + { + "VINDICO": { + "http://vindicogroup.com/": [ + "vindicogroup.com", + "vindicosuite.com" + ] + } + }, + { + "Visual Revenue": { + "http://visualrevenue.com/": [ + "visualrevenue.com" + ] + } + }, + { + "Voice2Page": { + "http://www.voice2page.com/": [ + "voice2page.com" + ] + } + }, + { + "WebsiteAlive": { + "http://www.websitealive.com/": [ + "websitealive.com", + "websitealive0.com", + "websitealive1.com", + "websitealive2.com", + "websitealive3.com", + "websitealive4.com", + "websitealive5.com", + "websitealive6.com", + "websitealive7.com", + "websitealive8.com", + "websitealive9.com" + ] + } + }, + { + "Wingify": { + "http://wingify.com/": [ + "visualwebsiteoptimizer.com", + "wingify.com" + ] + } + }, + { + "Xtify": { + "http://xtify.com/": [ + "xtify.com" + ] + } + }, + { + "Yahoo!": { + "http://www.yahoo.com/": [ + "flickr.com", + "staticflickr.com", + "answers.yahoo.com", + "apps.yahoo.com", + "autos.yahoo.com", + "biz.yahoo.com", + "developer.yahoo.com", + "everything.yahoo.com", + "finance.yahoo.com", + "games.yahoo.com", + "groups.yahoo.com", + "help.yahoo.com", + "hotjobs.yahoo.com", + "info.yahoo.com", + "local.yahoo.com", + "messages.yahoo.com", + "movies.yahoo.com", + "msg.yahoo.com", + "news.yahoo.com", + "omg.yahoo.com", + "pipes.yahoo.com", + "realestate.yahoo.com", + "search.yahoo.com", + "shine.yahoo.com", + "smallbusiness.yahoo.com", + "sports.yahoo.com", + "suggestions.yahoo.com", + "travel.yahoo.com", + "upcoming.yahoo.com", + "webhosting.yahoo.com", + "widgets.yahoo.com", + "www.yahoo.com", + "yahooapis.com", + "yahoofs.com", + "yimg.com", + "ypolicyblog.com", + "yuilibrary.com", + "zenfs.com" + ] + } + }, + { + "Zendesk": { + "http://www.zendesk.com/": [ + "zendesk.com" + ] + } + }, + { + "Zopim": { + "https://www.zopim.com/": [ + "zopim.com" + ] + } + } + ], + "Social": [ + { + "AddThis": { + "http://www.addthis.com/": [ + "addthis.com", + "addthiscdn.com", + "addthisedge.com", + "clearspring.com", + "connectedads.net", + "xgraph.com", + "xgraph.net" + ] + } + }, + { + "Causes": { + "http://www.causes.com/": [ + "causes.com" + ] + } + }, + { + "Digg": { + "http://digg.com/": [ + "digg.com" + ] + } + }, + { + "LinkedIn": { + "http://www.linkedin.com/": [ + "licdn.com", + "linkedin.com" + ] + } + }, + { + "Lockerz": { + "http://lockerz.com/": [ + "addtoany.com", + "lockerz.com" + ] + } + }, + { + "Mail.Ru": { + "http://mail.ru/": [ + "list.ru", + "mail.ru" + ] + } + }, + { + "Meebo": { + "https://www.meebo.com/": [ + "meebo.com", + "meebocdn.net" + ] + } + }, + { + "Papaya": { + "http://papayamobile.com/": [ + "papayamobile.com" + ] + } + }, + { + "reddit": { + "http://www.reddit.com/": [ + "reddit.com" + ] + } + }, + { + "ShareThis": { + "http://sharethis.com/": [ + "sharethis.com" + ] + } + }, + { + "Shareaholic": { + "http://www.shareaholic.com/": [ + "buzzster.com", + "shareaholic.com" + ] + } + }, + { + "StumbleUpon": { + "http://www.stumbleupon.com/": [ + "stumble-upon.com", + "stumbleupon.com" + ] + } + }, + { + "VKontakte": { + "http://vk.com/": [ + "userapi.com", + "vk.com", + "vkontakte.ru" + ] + } + }, + { + "Yahoo!": { + "http://www.yahoo.com/": [ + "mybloglog.com", + "rocketmail.com", + "address.yahoo.com", + "alerts.yahoo.com", + "avatars.yahoo.com", + "buzz.yahoo.com", + "calendar.yahoo.com", + "edit.yahoo.com", + "legalredirect.yahoo.com", + "login.yahoo.com", + "mail.yahoo.com", + "my.yahoo.com", + "notepad.yahoo.com", + "pulse.yahoo.com", + "webmessenger.yahoo.com", + "ymail.com" + ] + } + } + ], + "Legacy Disconnect": [ + { + "Facebook": { + "http://www.facebook.com/": [ + "facebook.com", + "facebook.de", + "facebook.fr", + "facebook.net", + "facebookofsex.com", + "fb.com", + "fbcdn.net", + "friendfeed.com" + ] + } + }, + { + "Google": { + "http://www.google.com/": [ + "2mdn.net", + "admeld.com", + "admob.com", + "cc-dt.com", + "destinationurl.com", + "doubleclick.net", + "gmail.com", + "google-analytics.com", + "adwords.google.com", + "mail.google.com", + "plus.google.com", + "plusone.google.com", + "voice.google.com", + "wave.google.com", + "keep.google.com", + "googleadservices.com", + "googlemail.com", + "googlesyndication.com", + "googletagservices.com", + "invitemedia.com", + "index.google.com", + "orkut.com", + "smtad.net", + "teracent.com", + "teracent.net", + "ytsa.net" + ] + } + }, + { + "LinkedIn": { + "http://www.linkedin.com/": [ + "licdn.com", + "linkedin.com" + ] + } + }, + { + "Twitter": { + "https://twitter.com/": [ + "backtype.com", + "crashlytics.com", + "tweetdeck.com", + "twimg.com", + "twitter.com", + "twitter.jp" + ] + } + }, + { + "Yahoo": { + "http://www.yahoo.com/": [ + "adinterax.com", + "adrevolver.com", + "bluelithium.com", + "dapper.net", + "interclick.com", + "overture.com", + "rightmedia.com", + "rmxads.com", + "rocketmail.com", + "secure-adserver.com", + "address.yahoo.com", + "adserver.yahoo.com", + "advertising.yahoo.com", + "alerts.yahoo.com", + "analytics.yahoo.com", + "avatars.yahoo.com", + "buzz.yahoo.com", + "calendar.yahoo.com", + "edit.yahoo.com", + "legalredirect.yahoo.com", + "login.yahoo.com", + "mail.yahoo.com", + "my.yahoo.com", + "notepad.yahoo.com", + "pulse.yahoo.com", + "webmessenger.yahoo.com", + "yieldmanager.com", + "yieldmanager.net", + "yldmgrimg.net", + "ymail.com" + ] + } + } + ], + "Legacy Content": [ + { + "Facebook": { + "http://www.facebook.com/": [ + "akamaihd.net" + ] + } + }, + { + "Google": { + "http://www.google.com/": [ + "apture.com", + "blogger.com", + "feedburner.com", + "ggpht.com", + "gmodules.com", + "google-melange.com", + "google.ad", + "google.ae", + "google.com.af", + "google.com.ag", + "google.com.ai", + "google.al", + "google.am", + "google.co.ao", + "google.com.ar", + "google.as", + "google.at", + "google.com.au", + "google.az", + "google.ba", + "google.com.bd", + "google.be", + "google.bf", + "google.bg", + "google.com.bh", + "google.bi", + "google.bj", + "google.com.bn", + "google.com.bo", + "google.com.br", + "google.bs", + "google.bt", + "google.co.bw", + "google.by", + "google.com.bz", + "google.ca", + "google.cd", + "google.cf", + "google.cg", + "google.ch", + "google.ci", + "google.co.ck", + "google.cl", + "google.cm", + "google.cn", + "google.com.co", + "accounts.google.com", + "apis.google.com", + "appengine.google.com", + "books.google.com", + "checkout.google.com", + "chrome.google.com", + "code.google.com", + "codesearch.google.com", + "docs.google.com", + "drive.google.com", + "earth.google.com", + "encrypted.google.com", + "feedburner.google.com", + "feedproxy.google.com", + "finance.google.com", + "groups.google.com", + "health.google.com", + "images.google.com", + "investor.google.com", + "knol.google.com", + "maps.google.com", + "music.google.com", + "news.google.com", + "picasa.google.com", + "picasaweb.google.com", + "play.google.com", + "script.google.com", + "shopping.google.com", + "sites.google.com", + "sketchup.google.com", + "support.google.com", + "talk.google.com", + "talkgadget.google.com", + "toolbar.google.com", + "translate.google.com", + "trends.google.com", + "video.google.com", + "videos.google.com", + "wallet.google.com", + "www.google.com", + "google.co.cr", + "google.com.cu", + "google.cv", + "google.com.cy", + "google.cz", + "google.de", + "google.dj", + "google.dk", + "google.dm", + "google.com.do", + "google.dz", + "google.com.ec", + "google.ee", + "google.com.eg", + "google.es", + "google.com.et", + "google.fi", + "google.com.fj", + "google.fm", + "google.fr", + "google.ga", + "google.ge", + "google.gg", + "google.com.gh", + "google.com.gi", + "google.gl", + "google.gm", + "google.gp", + "google.gr", + "google.com.gt", + "google.gy", + "google.com.hk", + "google.hn", + "google.hr", + "google.ht", + "google.hu", + "google.co.id", + "google.ie", + "google.co.il", + "google.im", + "google.co.in", + "google.iq", + "google.is", + "google.it", + "google.je", + "google.com.jm", + "google.jo", + "google.co.jp", + "google.co.ke", + "google.com.kh", + "google.ki", + "google.kg", + "google.co.kr", + "google.com.kw", + "google.kz", + "google.la", + "google.com.lb", + "google.li", + "google.lk", + "google.co.ls", + "google.lt", + "google.lu", + "google.lv", + "google.com.ly", + "google.co.ma", + "google.md", + "google.me", + "google.mg", + "google.mk", + "google.ml", + "google.com.mm", + "google.mn", + "google.ms", + "google.com.mt", + "google.mu", + "google.mv", + "google.mw", + "google.com.mx", + "google.com.my", + "google.co.mz", + "google.com.na", + "google.com.nf", + "google.com.ng", + "google.com.ni", + "google.ne", + "google.nl", + "google.no", + "google.com.np", + "google.nr", + "google.nu", + "google.co.nz", + "google.com.om", + "google.com.pa", + "google.com.pe", + "google.com.pg", + "google.com.ph", + "google.com.pk", + "google.pl", + "google.pn", + "google.com.pr", + "google.ps", + "google.pt", + "google.com.py", + "google.com.qa", + "google.ro", + "google.ru", + "google.rw", + "google.com.sa", + "google.com.sb", + "google.sc", + "google.se", + "google.com.sg", + "google.sh", + "google.si", + "google.sk", + "google.com.sl", + "google.sn", + "google.so", + "google.sm", + "google.st", + "google.com.sv", + "google.td", + "google.tg", + "google.co.th", + "google.com.tj", + "google.tk", + "google.tl", + "google.tm", + "google.tn", + "google.to", + "google.com.tr", + "google.tt", + "google.com.tw", + "google.co.tz", + "google.com.ua", + "google.co.ug", + "google.co.uk", + "google.com.uy", + "google.co.uz", + "google.com.vc", + "google.co.ve", + "google.vg", + "google.co.vi", + "google.com.vn", + "google.vu", + "google.ws", + "google.rs", + "google.co.za", + "google.co.zm", + "google.co.zw", + "google.cat", + "googleapis.com", + "googleartproject.com", + "googleusercontent.com", + "gstatic.com", + "panoramio.com", + "postini.com", + "recaptcha.net", + "youtube.com" + ] + } + }, + { + "Yahoo": { + "http://www.yahoo.com/": [ + "flickr.com", + "staticflickr.com", + "answers.yahoo.com", + "apps.yahoo.com", + "autos.yahoo.com", + "biz.yahoo.com", + "developer.yahoo.com", + "everything.yahoo.com", + "finance.yahoo.com", + "games.yahoo.com", + "groups.yahoo.com", + "help.yahoo.com", + "hotjobs.yahoo.com", + "info.yahoo.com", + "local.yahoo.com", + "messages.yahoo.com", + "movies.yahoo.com", + "news.yahoo.com", + "omg.yahoo.com", + "pipes.yahoo.com", + "realestate.yahoo.com", + "search.yahoo.com", + "shine.yahoo.com", + "smallbusiness.yahoo.com", + "sports.yahoo.com", + "suggestions.yahoo.com", + "travel.yahoo.com", + "upcoming.yahoo.com", + "widgets.yahoo.com", + "www.yahoo.com", + "yahooapis.com", + "yahoofs.com", + "yimg.com", + "ypolicyblog.com", + "yuilibrary.com", + "zenfs.com" + ] + } + } + ] + }, + "filteringRules": { + "apis.google.com": [ + "\\/js\\/plusone\\.js", + "Disconnect" + ], + "www.google.com": [ + "\\/uds\\/afs", + "Disconnect" + ], + "msg.yahoo.com": [ + "insider\\.msg\\.yahoo\\.com", + "Advertising" + ] + }, + "hardeningRules": [], + "moreRules": [ + [ + "^https?:\\/\\/www\\.google\\.com\\/search\\?q=(.*?)&.*?sourceid=chrome&ie=.*", + "https://proxy.disconnect.me/search?s=d2hhdGlmaWRpZHRoaXMx&q=$1" + ], + [ + "^http:\\/\\/www\\.bing\\.com\\/search\\?setmkt=.*?&q=(.*)", + "https://proxy.disconnect.me/search?s=d2hhdGlmaWRpZHRoaXMx&q=$1" + ], + [ + "^http:\\/\\/search\\.yahoo\\.com\\/search\\?ei=.*?&fr=crmas&p=(.*)", + "https://proxy.disconnect.me/search?s=d2hhdGlmaWRpZHRoaXMx&q=$1" + ] + ] +} diff --git a/shavar-prod-lists/disconnect-entitylist.json b/shavar-prod-lists/disconnect-entitylist.json new file mode 100644 index 0000000000..e295973ced --- /dev/null +++ b/shavar-prod-lists/disconnect-entitylist.json @@ -0,0 +1,9674 @@ +{ + "Facebook": { + "properties": [ + "facebook.com", + "facebook.de", + "facebook.fr", + "facebook.net", + "fb.com", + "fb.me", + "friendfeed.com", + "instagram.com", + "fbcdn.net", + "messenger.com" + ], + "resources": [ + "facebook.com", + "facebook.de", + "facebook.fr", + "facebook.net", + "fb.com", + "fb.me", + "friendfeed.com", + "akamaihd.net", + "instagram.com", + "fbcdn.net", + "messenger.com" + ] + }, + "Google": { + "properties": [ + "abc.xyz", + "google.com", + "ingress.com", + "admeld.com", + "blogger.com", + "google-melange.com", + "google.ad", + "google.ae", + "google.com.af", + "google.com.ag", + "google.com.ai", + "google.al", + "google.am", + "google.co.ao", + "google.com.ar", + "google.as", + "google.at", + "google.com.au", + "google.az", + "google.ba", + "google.com.bd", + "google.be", + "google.bf", + "google.bg", + "google.com.bh", + "google.bi", + "google.bj", + "google.com.bn", + "google.com.bo", + "google.com.br", + "google.bs", + "google.bt", + "google.co.bw", + "google.by", + "google.com.bz", + "google.ca", + "google.cd", + "google.cf", + "google.cg", + "google.ch", + "google.ci", + "google.co.ck", + "google.cl", + "google.cm", + "google.cn", + "google.com.co", + "google.co.cr", + "google.com.cu", + "google.cv", + "google.com.cy", + "google.cz", + "google.de", + "google.dj", + "google.dk", + "google.dm", + "google.com.do", + "google.dz", + "google.com.ec", + "google.ee", + "google.com.eg", + "google.es", + "google.com.et", + "google.fi", + "google.com.fj", + "google.fm", + "google.fr", + "google.ga", + "google.ge", + "google.gg", + "google.com.gh", + "google.com.gi", + "google.gl", + "google.gm", + "google.gp", + "google.gr", + "google.com.gt", + "google.gy", + "google.com.hk", + "google.hn", + "google.hr", + "google.ht", + "google.hu", + "google.co.id", + "google.ie", + "google.co.il", + "google.im", + "google.co.in", + "google.iq", + "google.is", + "google.it", + "google.je", + "google.com.jm", + "google.jo", + "google.co.jp", + "google.co.ke", + "google.com.kh", + "google.ki", + "google.kg", + "google.co.kr", + "google.com.kw", + "google.kz", + "google.la", + "google.com.lb", + "google.li", + "google.lk", + "google.co.ls", + "google.lt", + "google.lu", + "google.lv", + "google.com.ly", + "google.co.ma", + "google.md", + "google.me", + "google.mg", + "google.mk", + "google.ml", + "google.com.mm", + "google.mn", + "google.ms", + "google.com.mt", + "google.mu", + "google.mv", + "google.mw", + "google.com.mx", + "google.com.my", + "google.co.mz", + "google.com.na", + "google.com.nf", + "google.com.ng", + "google.com.ni", + "google.ne", + "google.nl", + "google.no", + "google.com.np", + "google.nr", + "google.nu", + "google.co.nz", + "google.com.om", + "google.com.pa", + "google.com.pe", + "google.com.pg", + "google.com.ph", + "google.com.pk", + "google.pl", + "google.pn", + "google.com.pr", + "google.ps", + "google.pt", + "google.com.py", + "google.com.qa", + "google.ro", + "google.ru", + "google.rw", + "google.com.sa", + "google.com.sb", + "google.sc", + "google.se", + "google.com.sg", + "google.sh", + "google.si", + "google.sk", + "google.com.sl", + "google.sn", + "google.so", + "google.sm", + "google.st", + "google.com.sv", + "google.td", + "google.tg", + "google.co.th", + "google.com.tj", + "google.tk", + "google.tl", + "google.tm", + "google.tn", + "google.to", + "google.com.tr", + "google.tt", + "google.com.tw", + "google.co.tz", + "google.com.ua", + "google.co.ug", + "google.co.uk", + "google.com.uy", + "google.co.uz", + "google.com.vc", + "google.co.ve", + "google.vg", + "google.co.vi", + "google.com.vn", + "google.vu", + "google.ws", + "google.rs", + "google.co.za", + "google.co.zm", + "google.co.zw", + "google.cat", + "panoramio.com", + "youtube.com" + ], + "resources": [ + "google.com", + "2mdn.net", + "admeld.com", + "admob.com", + "cc-dt.com", + "destinationurl.com", + "doubleclick.net", + "gmail.com", + "google-analytics.com", + "googleadservices.com", + "googlemail.com", + "googlesyndication.com", + "googlevideo.com", + "googletagservices.com", + "invitemedia.com", + "postrank.com", + "smtad.net", + "apture.com", + "blogger.com", + "ggpht.com", + "gmodules.com", + "googleapis.com", + "googleusercontent.com", + "gstatic.com", + "recaptcha.net", + "youtube.com" + ] + }, + "Twitter": { + "properties": [ + "twitter.com", + "backtype.com", + "crashlytics.com", + "tweetdeck.com", + "twimg.com", + "twitter.jp" + ], + "resources": [ + "twitter.com", + "backtype.com", + "crashlytics.com", + "tweetdeck.com", + "twimg.com", + "twitter.jp" + ] + }, + "[x+1]": { + "properties": [ + "xplusone.com", + "ru4.com" + ], + "resources": [ + "xplusone.com", + "ru4.com" + ] + }, + "2leep.com": { + "properties": [ + "2leep.com" + ], + "resources": [ + "2leep.com" + ] + }, + "33Across": { + "properties": [ + "33across.com", + "tynt.com" + ], + "resources": [ + "33across.com", + "tynt.com" + ] + }, + "4INFO": { + "properties": [ + "4info.com", + "adhaven.com" + ], + "resources": [ + "4info.com", + "adhaven.com" + ] + }, + "Abax Interactive": { + "properties": [ + "abaxinteractive.com" + ], + "resources": [ + "abaxinteractive.com" + ] + }, + "Accelia": { + "properties": [ + "accelia.net", + "durasite.net" + ], + "resources": [ + "accelia.net", + "durasite.net" + ] + }, + "Accordant Media": { + "properties": [ + "accordantmedia.com" + ], + "resources": [ + "accordantmedia.com" + ] + }, + "Acquisio": { + "properties": [ + "acquisio.com", + "clickequations.net" + ], + "resources": [ + "acquisio.com", + "clickequations.net" + ] + }, + "Act-On": { + "properties": [ + "act-on.com", + "actonsoftware.com" + ], + "resources": [ + "act-on.com", + "actonsoftware.com" + ] + }, + "Actisens": { + "properties": [ + "actisens.com", + "gestionpub.com" + ], + "resources": [ + "actisens.com", + "gestionpub.com" + ] + }, + "ActiveConversion": { + "properties": [ + "activeconversion.com", + "activemeter.com" + ], + "resources": [ + "activeconversion.com", + "activemeter.com" + ] + }, + "Acuity": { + "properties": [ + "acuity.com", + "acuityads.com", + "acuityplatform.com" + ], + "resources": [ + "acuity.com", + "acuityads.com", + "acuityplatform.com" + ] + }, + "Ad Decisive": { + "properties": [ + "addecisive.com", + "a2dfp.net" + ], + "resources": [ + "addecisive.com", + "a2dfp.net" + ] + }, + "Ad Dynamo": { + "properties": [ + "addynamo.com", + "addynamo.net" + ], + "resources": [ + "addynamo.com", + "addynamo.net" + ] + }, + "AD Europe": { + "properties": [ + "adeurope.com" + ], + "resources": [ + "adeurope.com" + ] + }, + "Ad Knife": { + "properties": [ + "adknife.com" + ], + "resources": [ + "adknife.com" + ] + }, + "Ad Magnet": { + "properties": [ + "admagnet.com", + "admagnet.net" + ], + "resources": [ + "admagnet.com", + "admagnet.net" + ] + }, + "ad pepper media": { + "properties": [ + "adpepper.us", + "adpepper.com" + ], + "resources": [ + "adpepper.us", + "adpepper.com" + ] + }, + "AD2ONE": { + "properties": [ + "ad2onegroup.com" + ], + "resources": [ + "ad2onegroup.com" + ] + }, + "Ad4Game": { + "properties": [ + "ad4game.com" + ], + "resources": [ + "ad4game.com" + ] + }, + "ad6media": { + "properties": [ + "ad6media.fr" + ], + "resources": [ + "ad6media.fr" + ] + }, + "AdaptiveAds": { + "properties": [ + "adaptiveads.com" + ], + "resources": [ + "adaptiveads.com" + ] + }, + "Adaptly": { + "properties": [ + "adaptly.com" + ], + "resources": [ + "adaptly.com" + ] + }, + "Adara Media": { + "properties": [ + "adaramedia.com", + "opinmind.com", + "yieldoptimizer.com" + ], + "resources": [ + "adaramedia.com", + "opinmind.com", + "yieldoptimizer.com" + ] + }, + "Adatus": { + "properties": [ + "adatus.com" + ], + "resources": [ + "adatus.com" + ] + }, + "adBrite": { + "properties": [ + "adbrite.com" + ], + "resources": [ + "adbrite.com" + ] + }, + "Adchemy": { + "properties": [ + "adchemy.com" + ], + "resources": [ + "adchemy.com" + ] + }, + "AdCirrus": { + "properties": [ + "adcirrus.com" + ], + "resources": [ + "adcirrus.com" + ] + }, + "Adconion": { + "properties": [ + "adconion.com", + "amgdgt.com", + "euroclick.com", + "smartclip.com" + ], + "resources": [ + "adconion.com", + "amgdgt.com", + "euroclick.com", + "smartclip.com" + ] + }, + "addGloo": { + "properties": [ + "addgloo.com" + ], + "resources": [ + "addgloo.com" + ] + }, + "Addvantage Media": { + "properties": [ + "addvantagemedia.com" + ], + "resources": [ + "addvantagemedia.com" + ] + }, + "AdEngage": { + "properties": [ + "adengage.com" + ], + "resources": [ + "adengage.com" + ] + }, + "AdExtent": { + "properties": [ + "adextent.com" + ], + "resources": [ + "adextent.com" + ] + }, + "AdF.ly": { + "properties": [ + "adf.ly" + ], + "resources": [ + "adf.ly" + ] + }, + "Adfonic": { + "properties": [ + "adfonic.com" + ], + "resources": [ + "adfonic.com" + ] + }, + "Adform": { + "properties": [ + "adform.com", + "adform.net" + ], + "resources": [ + "adform.com", + "adform.net" + ] + }, + "AdFox": { + "properties": [ + "adfox.ru" + ], + "resources": [ + "adfox.ru" + ] + }, + "AdFrontiers": { + "properties": [ + "adfrontiers.com" + ], + "resources": [ + "adfrontiers.com" + ] + }, + "Adfunky": { + "properties": [ + "adfunky.com", + "adfunkyserver.com" + ], + "resources": [ + "adfunky.com", + "adfunkyserver.com" + ] + }, + "Adfusion": { + "properties": [ + "adfusion.com" + ], + "resources": [ + "adfusion.com" + ] + }, + "AdGent Digital": { + "properties": [ + "adgentdigital.com", + "shorttailmedia.com" + ], + "resources": [ + "adgentdigital.com", + "shorttailmedia.com" + ] + }, + "AdGibbon": { + "properties": [ + "adgibbon.com" + ], + "resources": [ + "adgibbon.com" + ] + }, + "adhood": { + "properties": [ + "adhood.com" + ], + "resources": [ + "adhood.com" + ] + }, + "Adiant": { + "properties": [ + "adiant.com", + "adblade.com" + ], + "resources": [ + "adiant.com", + "adblade.com" + ] + }, + "AdInsight": { + "properties": [ + "adinsight.com", + "adinsight.eu" + ], + "resources": [ + "adinsight.com", + "adinsight.eu" + ] + }, + "AdIQuity": { + "properties": [ + "adiquity.com" + ], + "resources": [ + "adiquity.com" + ] + }, + "ADITION": { + "properties": [ + "adition.com" + ], + "resources": [ + "adition.com" + ] + }, + "AdJug": { + "properties": [ + "adjug.com" + ], + "resources": [ + "adjug.com" + ] + }, + "AdJuggler": { + "properties": [ + "adjuggler.com", + "adjuggler.net" + ], + "resources": [ + "adjuggler.com", + "adjuggler.net" + ] + }, + "AdKeeper": { + "properties": [ + "adkeeper.com", + "akncdn.com" + ], + "resources": [ + "adkeeper.com", + "akncdn.com" + ] + }, + "Adknowledge": { + "properties": [ + "adknowledge.com", + "adparlor.com", + "bidsystem.com", + "cubics.com", + "lookery.com" + ], + "resources": [ + "adknowledge.com", + "adparlor.com", + "bidsystem.com", + "cubics.com", + "lookery.com" + ] + }, + "AdLantis": { + "properties": [ + "www.adlantis.jp", + "adimg.net", + "adlantis.jp" + ], + "resources": [ + "www.adlantis.jp", + "adimg.net", + "adlantis.jp" + ] + }, + "Adlibrium": { + "properties": [ + "adlibrium.com" + ], + "resources": [ + "adlibrium.com" + ] + }, + "adMarketplace": { + "properties": [ + "admarketplace.com" + ], + "resources": [ + "admarketplace.com" + ] + }, + "AdMarvel": { + "properties": [ + "admarvel.com" + ], + "resources": [ + "admarvel.com" + ] + }, + "AdMaximizer Network": { + "properties": [ + "admaximizer.com" + ], + "resources": [ + "admaximizer.com" + ] + }, + "AdMedia": { + "properties": [ + "admedia.com" + ], + "resources": [ + "admedia.com" + ] + }, + "Admeta": { + "properties": [ + "admeta.com", + "atemda.com" + ], + "resources": [ + "admeta.com", + "atemda.com" + ] + }, + "Admicro": { + "properties": [ + "admicro.vn", + "vcmedia.vn" + ], + "resources": [ + "admicro.vn", + "vcmedia.vn" + ] + }, + "Admotion": { + "properties": [ + "admotion.com", + "nspmotion.com" + ], + "resources": [ + "admotion.com", + "nspmotion.com" + ] + }, + "Adnetik": { + "properties": [ + "adnetik.com", + "wtp101.com" + ], + "resources": [ + "adnetik.com", + "wtp101.com" + ] + }, + "AdNetwork.net": { + "properties": [ + "adnetwork.net" + ], + "resources": [ + "adnetwork.net" + ] + }, + "adnologies": { + "properties": [ + "adnologies.com", + "heias.com" + ], + "resources": [ + "adnologies.com", + "heias.com" + ] + }, + "Adobe": { + "properties": [ + "adobe.com", + "2o7.net", + "auditude.com", + "demdex.com", + "demdex.net", + "dmtracker.com", + "efrontier.com", + "everestads.net", + "everestjs.net", + "everesttech.net", + "hitbox.com", + "omniture.com", + "omtrdc.net", + "touchclarity.com", + "typekit.com" + ], + "resources": [ + "adobe.com", + "2o7.net", + "auditude.com", + "demdex.com", + "demdex.net", + "dmtracker.com", + "efrontier.com", + "everestads.net", + "everestjs.net", + "everesttech.net", + "hitbox.com", + "omniture.com", + "omtrdc.net", + "touchclarity.com", + "typekit.com" + ] + }, + "AdOcean": { + "properties": [ + "adocean-global.com", + "adocean.pl" + ], + "resources": [ + "adocean-global.com", + "adocean.pl" + ] + }, + "Adometry": { + "properties": [ + "adometry.com", + "dmtry.com" + ], + "resources": [ + "adometry.com", + "dmtry.com" + ] + }, + "AdOn Network": { + "properties": [ + "adonnetwork.com", + "dashboardad.net" + ], + "resources": [ + "adonnetwork.com", + "dashboardad.net" + ] + }, + "AdOnion": { + "properties": [ + "adonion.com" + ], + "resources": [ + "adonion.com" + ] + }, + "Adorika": { + "properties": [ + "clickotmedia.com" + ], + "resources": [ + "clickotmedia.com" + ] + }, + "ADP Dealer Services": { + "properties": [ + "adpdealerservices.com", + "admission.net", + "cobalt.com" + ], + "resources": [ + "adpdealerservices.com", + "admission.net", + "cobalt.com" + ] + }, + "AdPerfect": { + "properties": [ + "adperfect.com" + ], + "resources": [ + "adperfect.com" + ] + }, + "Adperium": { + "properties": [ + "adperium.com" + ], + "resources": [ + "adperium.com" + ] + }, + "Adpersia": { + "properties": [ + "adpersia.com" + ], + "resources": [ + "adpersia.com" + ] + }, + "adPrecision": { + "properties": [ + "adprecision.net", + "adprs.net", + "aprecision.net" + ], + "resources": [ + "adprecision.net", + "adprs.net", + "aprecision.net" + ] + }, + "AdPredictive": { + "properties": [ + "adpredictive.com" + ], + "resources": [ + "adpredictive.com" + ] + }, + "AdReactor": { + "properties": [ + "adreactor.com" + ], + "resources": [ + "adreactor.com" + ] + }, + "AdReady": { + "properties": [ + "adready.com", + "adreadytractions.com" + ], + "resources": [ + "adready.com", + "adreadytractions.com" + ] + }, + "AdRevolution": { + "properties": [ + "adrevolution.com" + ], + "resources": [ + "adrevolution.com" + ] + }, + "AdRiver": { + "properties": [ + "adriver.ru" + ], + "resources": [ + "adriver.ru" + ] + }, + "adrolays": { + "properties": [ + "adrolays.com", + "adrolays.de" + ], + "resources": [ + "adrolays.com", + "adrolays.de" + ] + }, + "AdRoll": { + "properties": [ + "adroll.com" + ], + "resources": [ + "adroll.com" + ] + }, + "AdSafe Media": { + "properties": [ + "adsafemedia.com", + "adsafeprotected.com" + ], + "resources": [ + "adsafemedia.com", + "adsafeprotected.com" + ] + }, + "adscale": { + "properties": [ + "adscale.de" + ], + "resources": [ + "adscale.de" + ] + }, + "AdServerPub": { + "properties": [ + "adserverpub.com" + ], + "resources": [ + "adserverpub.com" + ] + }, + "AdShuffle": { + "properties": [ + "adshuffle.com" + ], + "resources": [ + "adshuffle.com" + ] + }, + "AdSide": { + "properties": [ + "adside.com", + "doclix.com" + ], + "resources": [ + "adside.com", + "doclix.com" + ] + }, + "AdSpeed": { + "properties": [ + "adspeed.com", + "adspeed.net" + ], + "resources": [ + "adspeed.com", + "adspeed.net" + ] + }, + "AdSpirit": { + "properties": [ + "adspirit.de", + "adspirit.com", + "adspirit.net" + ], + "resources": [ + "adspirit.de", + "adspirit.com", + "adspirit.net" + ] + }, + "AdsTours": { + "properties": [ + "adstours.com", + "clickintext.net" + ], + "resources": [ + "adstours.com", + "clickintext.net" + ] + }, + "ADTECH": { + "properties": [ + "adtech.com", + "adtech.de", + "adtechus.com" + ], + "resources": [ + "adtech.com", + "adtech.de", + "adtechus.com" + ] + }, + "Adtegrity.com": { + "properties": [ + "adtegrity.com", + "adtegrity.net" + ], + "resources": [ + "adtegrity.com", + "adtegrity.net" + ] + }, + "ADTELLIGENCE": { + "properties": [ + "adtelligence.de" + ], + "resources": [ + "adtelligence.de" + ] + }, + "AdTiger": { + "properties": [ + "adtiger.de" + ], + "resources": [ + "adtiger.de" + ] + }, + "AdTruth": { + "properties": [ + "adtruth.com" + ], + "resources": [ + "adtruth.com" + ] + }, + "Adult AdWorld": { + "properties": [ + "adultadworld.com" + ], + "resources": [ + "adultadworld.com" + ] + }, + "Adultmoda": { + "properties": [ + "adultmoda.com" + ], + "resources": [ + "adultmoda.com" + ] + }, + "Adverline": { + "properties": [ + "adverline.com", + "adnext.fr" + ], + "resources": [ + "adverline.com", + "adnext.fr" + ] + }, + "Advert Stream": { + "properties": [ + "advertstream.com" + ], + "resources": [ + "advertstream.com" + ] + }, + "Advertise.com": { + "properties": [ + "advertise.com" + ], + "resources": [ + "advertise.com" + ] + }, + "AdvertiseSpace": { + "properties": [ + "advertisespace.com" + ], + "resources": [ + "advertisespace.com" + ] + }, + "AdXpansion": { + "properties": [ + "adxpansion.com" + ], + "resources": [ + "adxpansion.com" + ] + }, + "adyard": { + "properties": [ + "adyard.de" + ], + "resources": [ + "adyard.de" + ] + }, + "ADZ": { + "properties": [ + "adzcentral.com" + ], + "resources": [ + "adzcentral.com" + ] + }, + "adzly": { + "properties": [ + "adzly.com" + ], + "resources": [ + "adzly.com" + ] + }, + "Adzerk": { + "properties": [ + "adzerk.com", + "adzerk.net" + ], + "resources": [ + "adzerk.com", + "adzerk.net" + ] + }, + "Aegis Group": { + "properties": [ + "aemedia.com", + "bluestreak.com" + ], + "resources": [ + "aemedia.com", + "bluestreak.com" + ] + }, + "AERIFY MEDIA": { + "properties": [ + "aerifymedia.com", + "anonymous-media.com" + ], + "resources": [ + "aerifymedia.com", + "anonymous-media.com" + ] + }, + "Affectv": { + "properties": [ + "affectv.co.uk" + ], + "resources": [ + "affectv.co.uk" + ] + }, + "affilinet": { + "properties": [ + "affili.net", + "affilinet-inside.de", + "banner-rotation.com", + "successfultogether.co.uk" + ], + "resources": [ + "affili.net", + "affilinet-inside.de", + "banner-rotation.com", + "successfultogether.co.uk" + ] + }, + "Affine": { + "properties": [ + "affine.tv", + "affinesystems.com" + ], + "resources": [ + "affine.tv", + "affinesystems.com" + ] + }, + "AfterDownload": { + "properties": [ + "afterdownload.com", + "afdads.com" + ], + "resources": [ + "afterdownload.com", + "afdads.com" + ] + }, + "AK": { + "properties": [ + "aggregateknowledge.com", + "agkn.com" + ], + "resources": [ + "aggregateknowledge.com", + "agkn.com" + ] + }, + "Airpush": { + "properties": [ + "airpush.com" + ], + "resources": [ + "airpush.com" + ] + }, + "Akamai": { + "properties": [ + "akamai.com", + "imiclk.com", + "abmr.net", + "edgesuite.net" + ], + "resources": [ + "akamai.com", + "imiclk.com", + "abmr.net", + "edgesuite.net" + ] + }, + "Amazon.com": { + "properties": [ + "amazon.com", + "amazon-adsystem.com", + "amazon.ca", + "amazon.co.jp", + "amazon.co.uk", + "amazon.de", + "amazon.es", + "amazon.fr", + "amazon.it", + "assoc-amazon.com", + "alexa.com", + "alexametrics.com", + "cloudfront.net" + ], + "resources": [ + "amazon.com", + "amazon-adsystem.com", + "amazon.ca", + "amazon.co.jp", + "amazon.co.uk", + "amazon.de", + "amazon.es", + "amazon.fr", + "amazon.it", + "assoc-amazon.com", + "alexa.com", + "alexametrics.com", + "cloudfront.net" + ] + }, + "Ambient Digital": { + "properties": [ + "ambientdigital.com.vn", + "adnetwork.vn" + ], + "resources": [ + "ambientdigital.com.vn", + "adnetwork.vn" + ] + }, + "Amobee": { + "properties": [ + "amobee.com" + ], + "resources": [ + "amobee.com" + ] + }, + "AOL": { + "properties": [ + "aol.com", + "adsonar.com", + "advertising.com", + "atwola.com", + "leadback.com", + "tacoda.net", + "5min.com", + "aim.com", + "aolcdn.com", + "aoltechguru.com", + "autoblog.com", + "cambio.com", + "dailyfinance.com", + "editions.com", + "engadget.com", + "games.com", + "homesessive.com", + "huffingtonpost.com", + "joystiq.com", + "kitchendaily.com", + "makers.com", + "mandatory.com", + "mapquest.com", + "moviefone.com", + "noisecreep.com", + "patch.com", + "pawnation.com", + "shortcuts.com", + "shoutcast.com", + "spinner.com", + "stylelist.com", + "stylemepretty.com", + "surphace.com", + "techcrunch.com", + "theboombox.com", + "theboot.com", + "tuaw.com", + "userplane.com", + "winamp.com" + ], + "resources": [ + "aol.com", + "adsonar.com", + "advertising.com", + "atwola.com", + "leadback.com", + "tacoda.net", + "5min.com", + "aim.com", + "aolcdn.com", + "editions.com", + "mapquest.com", + "patch.com", + "shortcuts.com", + "shoutcast.com", + "spinner.com", + "surphace.com", + "userplane.com", + "winamp.com" + ] + }, + "Appenda": { + "properties": [ + "appenda.com" + ], + "resources": [ + "appenda.com" + ] + }, + "Applifier": { + "properties": [ + "applifier.com" + ], + "resources": [ + "applifier.com" + ] + }, + "AppNexus": { + "properties": [ + "appnexus.com", + "adlantic.nl", + "adnxs.com", + "adrdgt.com" + ], + "resources": [ + "appnexus.com", + "adlantic.nl", + "adnxs.com", + "adrdgt.com" + ] + }, + "appssavvy": { + "properties": [ + "appssavvy.com" + ], + "resources": [ + "appssavvy.com" + ] + }, + "Arkwrights Homebrew": { + "properties": [ + "arkwrightshomebrew.com", + "ctasnet.com" + ], + "resources": [ + "arkwrightshomebrew.com", + "ctasnet.com" + ] + }, + "AT Internet": { + "properties": [ + "atinternet.com", + "hit-parade.com", + "xiti.com" + ], + "resources": [ + "atinternet.com", + "hit-parade.com", + "xiti.com" + ] + }, + "AT&T": { + "properties": [ + "att.com", + "yp.com" + ], + "resources": [ + "att.com", + "yp.com" + ] + }, + "Atoomic.com": { + "properties": [ + "atoomic.com" + ], + "resources": [ + "atoomic.com" + ] + }, + "Atrinsic": { + "properties": [ + "atrinsic.com" + ], + "resources": [ + "atrinsic.com" + ] + }, + "Audience Ad Network": { + "properties": [ + "audienceadnetwork.com" + ], + "resources": [ + "audienceadnetwork.com" + ] + }, + "Audience2Media": { + "properties": [ + "audience2media.com" + ], + "resources": [ + "audience2media.com" + ] + }, + "AudienceScience": { + "properties": [ + "audiencescience.com", + "revsci.net", + "targetingmarketplace.com", + "wunderloop.net" + ], + "resources": [ + "audiencescience.com", + "revsci.net", + "targetingmarketplace.com", + "wunderloop.net" + ] + }, + "Augme": { + "properties": [ + "augme.com", + "hipcricket.com" + ], + "resources": [ + "augme.com", + "hipcricket.com" + ] + }, + "AUTOCENTRE.UA": { + "properties": [ + "autocentre.ua", + "am.ua" + ], + "resources": [ + "autocentre.ua", + "am.ua" + ] + }, + "Avalanchers": { + "properties": [ + "avalanchers.com" + ], + "resources": [ + "avalanchers.com" + ] + }, + "AvantLink": { + "properties": [ + "avantlink.com" + ], + "resources": [ + "avantlink.com" + ] + }, + "AWeber": { + "properties": [ + "aweber.com" + ], + "resources": [ + "aweber.com" + ] + }, + "BackBeat Media": { + "properties": [ + "backbeatmedia.com" + ], + "resources": [ + "backbeatmedia.com" + ] + }, + "Bannerconnect": { + "properties": [ + "bannerconnect.net" + ], + "resources": [ + "bannerconnect.net" + ] + }, + "Barilliance": { + "properties": [ + "barilliance.com" + ], + "resources": [ + "barilliance.com" + ] + }, + "BaronsNetworks": { + "properties": [ + "baronsoffers.com" + ], + "resources": [ + "baronsoffers.com" + ] + }, + "Batanga Network": { + "properties": [ + "batanganetwork.com", + "batanga.com" + ], + "resources": [ + "batanganetwork.com", + "batanga.com" + ] + }, + "Beanstock Media": { + "properties": [ + "beanstockmedia.com" + ], + "resources": [ + "beanstockmedia.com" + ] + }, + "beencounter": { + "properties": [ + "beencounter.com" + ], + "resources": [ + "beencounter.com" + ] + }, + "Begun": { + "properties": [ + "begun.ru" + ], + "resources": [ + "begun.ru" + ] + }, + "belboon": { + "properties": [ + "belboon.com", + "adbutler.de" + ], + "resources": [ + "belboon.com", + "adbutler.de" + ] + }, + "Betgenius": { + "properties": [ + "betgenius.com", + "connextra.com" + ], + "resources": [ + "betgenius.com", + "connextra.com" + ] + }, + "BidVertiser": { + "properties": [ + "bidvertiser.com" + ], + "resources": [ + "bidvertiser.com" + ] + }, + "bigmir)net": { + "properties": [ + "bigmir.net" + ], + "resources": [ + "bigmir.net" + ] + }, + "BinLayer": { + "properties": [ + "binlayer.com" + ], + "resources": [ + "binlayer.com" + ] + }, + "Bitcoin Plus": { + "properties": [ + "bitcoinplus.com" + ], + "resources": [ + "bitcoinplus.com" + ] + }, + "BittAds": { + "properties": [ + "bittads.com" + ], + "resources": [ + "bittads.com" + ] + }, + "Bizo": { + "properties": [ + "bizo.com", + "bizographics.com" + ], + "resources": [ + "bizo.com", + "bizographics.com" + ] + }, + "Black Label Ads": { + "properties": [ + "blacklabelads.com" + ], + "resources": [ + "blacklabelads.com" + ] + }, + "BlogCatalog": { + "properties": [ + "blogcatalog.com" + ], + "resources": [ + "blogcatalog.com" + ] + }, + "BlogFrog": { + "properties": [ + "theblogfrog.com" + ], + "resources": [ + "theblogfrog.com" + ] + }, + "BlogHer": { + "properties": [ + "blogher.com", + "blogherads.com" + ], + "resources": [ + "blogher.com", + "blogherads.com" + ] + }, + "BlogRollr": { + "properties": [ + "blogrollr.com" + ], + "resources": [ + "blogrollr.com" + ] + }, + "BLOOM Digital Platforms": { + "properties": [ + "bloom-hq.com", + "adgear.com" + ], + "resources": [ + "bloom-hq.com", + "adgear.com" + ] + }, + "BloomReach": { + "properties": [ + "bloomreach.com", + "brcdn.com", + "brsrvr.com" + ], + "resources": [ + "bloomreach.com", + "brcdn.com", + "brsrvr.com" + ] + }, + "Blu Trumpet": { + "properties": [ + "blutrumpet.com" + ], + "resources": [ + "blutrumpet.com" + ] + }, + "BlueCava": { + "properties": [ + "bluecava.com" + ], + "resources": [ + "bluecava.com" + ] + }, + "BlueKai": { + "properties": [ + "bluekai.com", + "bkrtx.com", + "tracksimple.com" + ], + "resources": [ + "bluekai.com", + "bkrtx.com", + "tracksimple.com" + ] + }, + "Brainient": { + "properties": [ + "brainient.com" + ], + "resources": [ + "brainient.com" + ] + }, + "Brand Affinity Technologies": { + "properties": [ + "brandaffinity.net" + ], + "resources": [ + "brandaffinity.net" + ] + }, + "Brand.net": { + "properties": [ + "brand.net" + ], + "resources": [ + "brand.net" + ] + }, + "Brandscreen": { + "properties": [ + "brandscreen.com", + "rtbidder.net" + ], + "resources": [ + "brandscreen.com", + "rtbidder.net" + ] + }, + "BrightRoll": { + "properties": [ + "brightroll.com", + "btrll.com" + ], + "resources": [ + "brightroll.com", + "btrll.com" + ] + }, + "BrightTag": { + "properties": [ + "brighttag.com", + "btstatic.com", + "thebrighttag.com" + ], + "resources": [ + "brighttag.com", + "btstatic.com", + "thebrighttag.com" + ] + }, + "Brilig": { + "properties": [ + "brilig.com" + ], + "resources": [ + "brilig.com" + ] + }, + "Burst Media": { + "properties": [ + "burstmedia.com", + "burstbeacon.com", + "burstdirectads.com", + "burstnet.com", + "giantrealm.com" + ], + "resources": [ + "burstmedia.com", + "burstbeacon.com", + "burstdirectads.com", + "burstnet.com", + "giantrealm.com" + ] + }, + "Burstly": { + "properties": [ + "burstly.com" + ], + "resources": [ + "burstly.com" + ] + }, + "BusinessOnline": { + "properties": [ + "businessol.com" + ], + "resources": [ + "businessol.com" + ] + }, + "BuySellAds": { + "properties": [ + "buysellads.com", + "beaconads.com" + ], + "resources": [ + "buysellads.com", + "beaconads.com" + ] + }, + "Buysight": { + "properties": [ + "buysight.com", + "permuto.com", + "pulsemgr.com" + ], + "resources": [ + "buysight.com", + "permuto.com", + "pulsemgr.com" + ] + }, + "BuzzCity": { + "properties": [ + "buzzcity.com" + ], + "resources": [ + "buzzcity.com" + ] + }, + "BuzzParadise": { + "properties": [ + "buzzparadise.com" + ], + "resources": [ + "buzzparadise.com" + ] + }, + "BV! MEDIA": { + "properties": [ + "buzzcity.com", + "bvmedia.ca", + "networldmedia.com", + "networldmedia.net" + ], + "resources": [ + "buzzcity.com", + "bvmedia.ca", + "networldmedia.com", + "networldmedia.net" + ] + }, + "Cadreon": { + "properties": [ + "cadreon.com" + ], + "resources": [ + "cadreon.com" + ] + }, + "CampaignGrid": { + "properties": [ + "campaigngrid.com" + ], + "resources": [ + "campaigngrid.com" + ] + }, + "CAPITALDATA": { + "properties": [ + "capitaldata.fr" + ], + "resources": [ + "capitaldata.fr" + ] + }, + "Caraytech": { + "properties": [ + "www.caraytech.com.ar", + "caraytech.com.ar", + "e-planning.net" + ], + "resources": [ + "www.caraytech.com.ar", + "caraytech.com.ar", + "e-planning.net" + ] + }, + "Casale Media": { + "properties": [ + "casalemedia.com", + "medianet.com" + ], + "resources": [ + "casalemedia.com", + "medianet.com" + ] + }, + "CBproADS": { + "properties": [ + "cbproads.com" + ], + "resources": [ + "cbproads.com" + ] + }, + "Chango": { + "properties": [ + "chango.com", + "chango.ca" + ], + "resources": [ + "chango.com", + "chango.ca" + ] + }, + "Channel Intelligence": { + "properties": [ + "channelintelligence.com" + ], + "resources": [ + "channelintelligence.com" + ] + }, + "ChannelAdvisor": { + "properties": [ + "channeladvisor.com", + "searchmarketing.com" + ], + "resources": [ + "channeladvisor.com", + "searchmarketing.com" + ] + }, + "Cart.ro": { + "properties": [ + "cart.ro", + "statistics.ro" + ], + "resources": [ + "cart.ro", + "statistics.ro" + ] + }, + "Chartboost": { + "properties": [ + "chartboost.com" + ], + "resources": [ + "chartboost.com" + ] + }, + "CheckM8": { + "properties": [ + "checkm8.com" + ], + "resources": [ + "checkm8.com" + ] + }, + "Chitika": { + "properties": [ + "chitika.com", + "chitika.net" + ], + "resources": [ + "chitika.com", + "chitika.net" + ] + }, + "ChoiceStream": { + "properties": [ + "choicestream.com" + ], + "resources": [ + "choicestream.com" + ] + }, + "ClearSaleing": { + "properties": [ + "clearsaleing.com", + "csdata1.com", + "csdata2.com", + "csdata3.com" + ], + "resources": [ + "clearsaleing.com", + "csdata1.com", + "csdata2.com", + "csdata3.com" + ] + }, + "Clearsearch Media": { + "properties": [ + "clearsearchmedia.com", + "csm-secure.com" + ], + "resources": [ + "clearsearchmedia.com", + "csm-secure.com" + ] + }, + "ClearSight Interactive": { + "properties": [ + "clearsightinteractive.com", + "csi-tracking.com" + ], + "resources": [ + "clearsightinteractive.com", + "csi-tracking.com" + ] + }, + "ClickAider": { + "properties": [ + "clickaider.com" + ], + "resources": [ + "clickaider.com" + ] + }, + "ClickDimensions": { + "properties": [ + "clickdimensions.com" + ], + "resources": [ + "clickdimensions.com" + ] + }, + "ClickDistrict": { + "properties": [ + "clickdistrict.com", + "creative-serving.com" + ], + "resources": [ + "clickdistrict.com", + "creative-serving.com" + ] + }, + "ClickFuel": { + "properties": [ + "clickfuel.com", + "conversiondashboard.com" + ], + "resources": [ + "clickfuel.com", + "conversiondashboard.com" + ] + }, + "ClickInc": { + "properties": [ + "clickinc.com" + ], + "resources": [ + "clickinc.com" + ] + }, + "Clicksor": { + "properties": [ + "clicksor.com", + "clicksor.net" + ], + "resources": [ + "clicksor.com", + "clicksor.net" + ] + }, + "Clickwinks": { + "properties": [ + "clickwinks.com" + ], + "resources": [ + "clickwinks.com" + ] + }, + "ClicManager": { + "properties": [ + "clicmanager.fr" + ], + "resources": [ + "clicmanager.fr" + ] + }, + "Clove Network": { + "properties": [ + "clovenetwork.com" + ], + "resources": [ + "clovenetwork.com" + ] + }, + "Cognitive Match": { + "properties": [ + "cognitivematch.com", + "cmads.com.tw", + "cmadsasia.com", + "cmadseu.com", + "cmmeglobal.com" + ], + "resources": [ + "cognitivematch.com", + "cmads.com.tw", + "cmadsasia.com", + "cmadseu.com", + "cmmeglobal.com" + ] + }, + "Collective": { + "properties": [ + "collective.com", + "collective-media.net", + "oggifinogi.com", + "tumri.com", + "tumri.net", + "yt1187.net" + ], + "resources": [ + "collective.com", + "collective-media.net", + "oggifinogi.com", + "tumri.com", + "tumri.net", + "yt1187.net" + ] + }, + "Commission Junction": { + "properties": [ + "cj.com", + "apmebf.com", + "awltovhc.com", + "ftjcfx.com", + "kcdwa.com", + "qksz.com", + "qksz.net", + "tqlkg.com", + "yceml.net" + ], + "resources": [ + "cj.com", + "apmebf.com", + "awltovhc.com", + "ftjcfx.com", + "kcdwa.com", + "qksz.com", + "qksz.net", + "tqlkg.com", + "yceml.net" + ] + }, + "Compass Labs": { + "properties": [ + "compasslabs.com" + ], + "resources": [ + "compasslabs.com" + ] + }, + "comScore": { + "properties": [ + "comscore.com", + "adxpose.com", + "certifica.com", + "scorecardresearch.com", + "sitestat.com", + "voicefive.com" + ], + "resources": [ + "comscore.com", + "adxpose.com", + "certifica.com", + "scorecardresearch.com", + "sitestat.com", + "voicefive.com" + ] + }, + "Communicator Corp": { + "properties": [ + "communicatorcorp.com" + ], + "resources": [ + "communicatorcorp.com" + ] + }, + "Complex Media": { + "properties": [ + "complexmedianetwork.com", + "complex.com" + ], + "resources": [ + "complexmedianetwork.com", + "complex.com" + ] + }, + "Consilium Media": { + "properties": [ + "consiliummedia.com" + ], + "resources": [ + "consiliummedia.com" + ] + }, + "CONTAXE": { + "properties": [ + "contaxe.com" + ], + "resources": [ + "contaxe.com" + ] + }, + "CONTEXTin": { + "properties": [ + "contextin.com", + "admailtiser.com" + ], + "resources": [ + "contextin.com", + "admailtiser.com" + ] + }, + "ContextuAds": { + "properties": [ + "contextuads.com", + "agencytradingdesk.net" + ], + "resources": [ + "contextuads.com", + "agencytradingdesk.net" + ] + }, + "CONTEXTWEB": { + "properties": [ + "contextweb.com" + ], + "resources": [ + "contextweb.com" + ] + }, + "ConvergeDirect": { + "properties": [ + "convergedirect.com", + "convergetrack.com" + ], + "resources": [ + "convergedirect.com", + "convergetrack.com" + ] + }, + "ConversionRuler": { + "properties": [ + "conversionruler.com" + ], + "resources": [ + "conversionruler.com" + ] + }, + "Conversive": { + "properties": [ + "conversive.nl" + ], + "resources": [ + "conversive.nl" + ] + }, + "CoreMotives": { + "properties": [ + "coremotives.com" + ], + "resources": [ + "coremotives.com" + ] + }, + "Cox Digital Solutions": { + "properties": [ + "coxdigitalsolutions.com", + "adify.com", + "afy11.net" + ], + "resources": [ + "coxdigitalsolutions.com", + "adify.com", + "afy11.net" + ] + }, + "CPMStar": { + "properties": [ + "cpmstar.com" + ], + "resources": [ + "cpmstar.com" + ] + }, + "CPX Interactive": { + "properties": [ + "cpxinteractive.com", + "cpxadroit.com" + ], + "resources": [ + "cpxinteractive.com", + "cpxadroit.com" + ] + }, + "Creafi": { + "properties": [ + "creafi.com" + ], + "resources": [ + "creafi.com" + ] + }, + "Crimtan": { + "properties": [ + "crimtan.com" + ], + "resources": [ + "crimtan.com" + ] + }, + "Crisp Media": { + "properties": [ + "crispmedia.com" + ], + "resources": [ + "crispmedia.com" + ] + }, + "Criteo": { + "properties": [ + "criteo.com", + "criteo.net" + ], + "resources": [ + "criteo.com", + "criteo.net" + ] + }, + "Cross Pixel": { + "properties": [ + "crosspixel.net", + "crosspixelmedia.com", + "crsspxl.com" + ], + "resources": [ + "crosspixel.net", + "crosspixelmedia.com", + "crsspxl.com" + ] + }, + "cXense": { + "properties": [ + "cxense.com" + ], + "resources": [ + "cxense.com" + ] + }, + "Cyberplex": { + "properties": [ + "cyberplex.com" + ], + "resources": [ + "cyberplex.com" + ] + }, + "Dada": { + "properties": [ + "dada.pro", + "simply.com" + ], + "resources": [ + "dada.pro", + "simply.com" + ] + }, + "Datalogix": { + "properties": [ + "datalogix.com", + "nexac.com", + "nextaction.net" + ], + "resources": [ + "datalogix.com", + "nexac.com", + "nextaction.net" + ] + }, + "DataXu": { + "properties": [ + "dataxu.com", + "dataxu.net", + "mexad.com", + "w55c.net" + ], + "resources": [ + "dataxu.com", + "dataxu.net", + "mexad.com", + "w55c.net" + ] + }, + "Datonics": { + "properties": [ + "datonics.com", + "pro-market.net" + ], + "resources": [ + "datonics.com", + "pro-market.net" + ] + }, + "Datran Media": { + "properties": [ + "datranmedia.com", + "displaymarketplace.com" + ], + "resources": [ + "datranmedia.com", + "displaymarketplace.com" + ] + }, + "Datvantage": { + "properties": [ + "datvantage.com" + ], + "resources": [ + "datvantage.com" + ] + }, + "DC Storm": { + "properties": [ + "dc-storm.com", + "stormiq.com" + ], + "resources": [ + "dc-storm.com", + "stormiq.com" + ] + }, + "Dedicated Media": { + "properties": [ + "dedicatedmedia.com", + "dedicatednetworks.com" + ], + "resources": [ + "dedicatedmedia.com", + "dedicatednetworks.com" + ] + }, + "Delivr": { + "properties": [ + "delivr.com", + "percentmobile.com" + ], + "resources": [ + "delivr.com", + "percentmobile.com" + ] + }, + "Demand Media": { + "properties": [ + "demandmedia.com", + "indieclick.com" + ], + "resources": [ + "demandmedia.com", + "indieclick.com" + ] + }, + "Delta Projects": { + "properties": [ + "deltaprojects.se", + "adaction.se", + "de17a.com" + ], + "resources": [ + "deltaprojects.se", + "adaction.se", + "de17a.com" + ] + }, + "Deutsche Post DHL": { + "properties": [ + "dp-dhl.com", + "adcloud.com", + "adcloud.net" + ], + "resources": [ + "dp-dhl.com", + "adcloud.com", + "adcloud.net" + ] + }, + "Developer Media": { + "properties": [ + "developermedia.com", + "lqcdn.com" + ], + "resources": [ + "developermedia.com", + "lqcdn.com" + ] + }, + "dianomi": { + "properties": [ + "dianomi.com" + ], + "resources": [ + "dianomi.com" + ] + }, + "Didit": { + "properties": [ + "didit.com", + "did-it.com" + ], + "resources": [ + "didit.com", + "did-it.com" + ] + }, + "Digital River": { + "properties": [ + "digitalriver.com", + "keywordmax.com", + "netflame.cc" + ], + "resources": [ + "digitalriver.com", + "keywordmax.com", + "netflame.cc" + ] + }, + "Digital Window": { + "properties": [ + "digitalwindow.com", + "perfiliate.com" + ], + "resources": [ + "digitalwindow.com", + "perfiliate.com" + ] + }, + "Digitize": { + "properties": [ + "digitize.ie" + ], + "resources": [ + "digitize.ie" + ] + }, + "Direct Response Group": { + "properties": [ + "directresponsegroup.com", + "ppctracking.net" + ], + "resources": [ + "directresponsegroup.com", + "ppctracking.net" + ] + }, + "DoublePimp": { + "properties": [ + "doublepimp.com" + ], + "resources": [ + "doublepimp.com" + ] + }, + "DoublePositive": { + "properties": [ + "doublepositive.com", + "bid-tag.com" + ], + "resources": [ + "doublepositive.com", + "bid-tag.com" + ] + }, + "DoubleVerify": { + "properties": [ + "doubleverify.com" + ], + "resources": [ + "doubleverify.com" + ] + }, + "Drawbridge": { + "properties": [ + "drawbrid.ge", + "adsymptotic.com" + ], + "resources": [ + "drawbrid.ge", + "adsymptotic.com" + ] + }, + "DS-IQ": { + "properties": [ + "ds-iq.com" + ], + "resources": [ + "ds-iq.com" + ] + }, + "DSNR Group": { + "properties": [ + "dsnrmg.com", + "dsnrgroup.com", + "traffiliate.com", + "z5x.com", + "z5x.net" + ], + "resources": [ + "dsnrmg.com", + "dsnrgroup.com", + "traffiliate.com", + "z5x.com", + "z5x.net" + ] + }, + "DynamicOxygen": { + "properties": [ + "dynamicoxygen.com", + "exitjunction.com" + ], + "resources": [ + "dynamicoxygen.com", + "exitjunction.com" + ] + }, + "eBay": { + "properties": [ + "ebay.com", + "gopjn.com" + ], + "resources": [ + "ebay.com", + "gopjn.com" + ] + }, + "Effective Measure": { + "properties": [ + "effectivemeasure.com", + "effectivemeasure.net" + ], + "resources": [ + "effectivemeasure.com", + "effectivemeasure.net" + ] + }, + "ekolay": { + "properties": [ + "ekolay.net", + "e-kolay.net" + ], + "resources": [ + "ekolay.net", + "e-kolay.net" + ] + }, + "Emediate": { + "properties": [ + "emediate.com", + "emediate.biz", + "emediate.dk", + "emediate.eu" + ], + "resources": [ + "emediate.com", + "emediate.biz", + "emediate.dk", + "emediate.eu" + ] + }, + "Emego": { + "properties": [ + "usemax.de" + ], + "resources": [ + "usemax.de" + ] + }, + "Enecto": { + "properties": [ + "enecto.com" + ], + "resources": [ + "enecto.com" + ] + }, + "engage:BDR": { + "properties": [ + "engagebdr.com", + "bnmla.com" + ], + "resources": [ + "engagebdr.com", + "bnmla.com" + ] + }, + "Engago Technology": { + "properties": [ + "engago.com", + "appmetrx.com" + ], + "resources": [ + "engago.com", + "appmetrx.com" + ] + }, + "Ensighten": { + "properties": [ + "ensighten.com" + ], + "resources": [ + "ensighten.com" + ] + }, + "Entireweb": { + "properties": [ + "entireweb.com" + ], + "resources": [ + "entireweb.com" + ] + }, + "Epic Media Group": { + "properties": [ + "theepicmediagroup.com", + "epicadvertising.com", + "epicmarketplace.com", + "epicmobileads.com", + "trafficmp.com" + ], + "resources": [ + "theepicmediagroup.com", + "epicadvertising.com", + "epicmarketplace.com", + "epicmobileads.com", + "trafficmp.com" + ] + }, + "Epsilon": { + "properties": [ + "epsilon.com" + ], + "resources": [ + "epsilon.com" + ] + }, + "EQ Ads": { + "properties": [ + "eqads.com" + ], + "resources": [ + "eqads.com" + ] + }, + "EroAdvertising": { + "properties": [ + "ero-advertising.com" + ], + "resources": [ + "ero-advertising.com" + ] + }, + "Etineria": { + "properties": [ + "etineria.com", + "adwitserver.com" + ], + "resources": [ + "etineria.com", + "adwitserver.com" + ] + }, + "eTrigue": { + "properties": [ + "etrigue.com" + ], + "resources": [ + "etrigue.com" + ] + }, + "Everyday Health": { + "properties": [ + "everydayhealth.com", + "waterfrontmedia.com" + ], + "resources": [ + "everydayhealth.com", + "waterfrontmedia.com" + ] + }, + "Evidon": { + "properties": [ + "evidon.com", + "betrad.com" + ], + "resources": [ + "evidon.com", + "betrad.com" + ] + }, + "Evisions Marketing": { + "properties": [ + "evisionsmarketing.com", + "engineseeker.com" + ], + "resources": [ + "evisionsmarketing.com", + "engineseeker.com" + ] + }, + "Evolve": { + "properties": [ + "evolvemediacorp.com", + "evolvemediametrics.com", + "gorillanation.com" + ], + "resources": [ + "evolvemediacorp.com", + "evolvemediametrics.com", + "gorillanation.com" + ] + }, + "eWayDirect": { + "properties": [ + "ewaydirect.com", + "ixs1.net" + ], + "resources": [ + "ewaydirect.com", + "ixs1.net" + ] + }, + "ewebse": { + "properties": [ + "ewebse.com", + "777seo.com" + ], + "resources": [ + "ewebse.com", + "777seo.com" + ] + }, + "excitad": { + "properties": [ + "excitad.com" + ], + "resources": [ + "excitad.com" + ] + }, + "eXelate": { + "properties": [ + "exelate.com", + "exelator.com" + ], + "resources": [ + "exelate.com", + "exelator.com" + ] + }, + "ExoClick": { + "properties": [ + "exoclick.com" + ], + "resources": [ + "exoclick.com" + ] + }, + "Experian": { + "properties": [ + "experian.com", + "audienceiq.com", + "pricegrabber.com" + ], + "resources": [ + "experian.com", + "audienceiq.com", + "pricegrabber.com" + ] + }, + "Exponential Interactive": { + "properties": [ + "exponential.com", + "adotube.com", + "fulltango.com", + "tribalfusion.com" + ], + "resources": [ + "exponential.com", + "adotube.com", + "fulltango.com", + "tribalfusion.com" + ] + }, + "expo-MAX": { + "properties": [ + "expo-max.com" + ], + "resources": [ + "expo-max.com" + ] + }, + "Extension Factory": { + "properties": [ + "extensionfactory.com" + ], + "resources": [ + "extensionfactory.com" + ] + }, + "EXTENSIONS.RU": { + "properties": [ + "extensions.ru" + ], + "resources": [ + "extensions.ru" + ] + }, + "Eyeconomy": { + "properties": [ + "www.eyeconomy.co.uk", + "eyeconomy.co.uk", + "eyeconomy.com", + "sublimemedia.net" + ], + "resources": [ + "www.eyeconomy.co.uk", + "eyeconomy.co.uk", + "eyeconomy.com", + "sublimemedia.net" + ] + }, + "eyeReturn Marketing": { + "properties": [ + "eyereturnmarketing.com", + "eyereturn.com" + ], + "resources": [ + "eyereturnmarketing.com", + "eyereturn.com" + ] + }, + "Eyeviewdigital": { + "properties": [ + "eyeviewdigital.com" + ], + "resources": [ + "eyeviewdigital.com" + ] + }, + "Facilitate Digital": { + "properties": [ + "facilitatedigital.com", + "adsfac.eu", + "adsfac.info", + "adsfac.net", + "adsfac.sg", + "adsfac.us" + ], + "resources": [ + "facilitatedigital.com", + "adsfac.eu", + "adsfac.info", + "adsfac.net", + "adsfac.sg", + "adsfac.us" + ] + }, + "Fairfax Media": { + "properties": [ + "www.fxj.com.au", + "fairfax.com.au", + "fxj.com.au" + ], + "resources": [ + "www.fxj.com.au", + "fairfax.com.au", + "fxj.com.au" + ] + }, + "faithadnet": { + "properties": [ + "faithadnet.com" + ], + "resources": [ + "faithadnet.com" + ] + }, + "Fathom": { + "properties": [ + "fathomdelivers.com", + "fathomseo.com" + ], + "resources": [ + "fathomdelivers.com", + "fathomseo.com" + ] + }, + "Federated Media": { + "properties": [ + "federatedmedia.net", + "fmpub.net", + "lijit.com" + ], + "resources": [ + "federatedmedia.net", + "fmpub.net", + "lijit.com" + ] + }, + "FetchBack": { + "properties": [ + "fetchback.com" + ], + "resources": [ + "fetchback.com" + ] + }, + "Fiksu": { + "properties": [ + "fiksu.com" + ], + "resources": [ + "fiksu.com" + ] + }, + "FinancialContent": { + "properties": [ + "financialcontent.com" + ], + "resources": [ + "financialcontent.com" + ] + }, + "Fizz-Buzz Media": { + "properties": [ + "fizzbuzzmedia.com", + "fizzbuzzmedia.net" + ], + "resources": [ + "fizzbuzzmedia.com", + "fizzbuzzmedia.net" + ] + }, + "Flashtalking": { + "properties": [ + "flashtalking.com" + ], + "resources": [ + "flashtalking.com" + ] + }, + "Flite": { + "properties": [ + "flite.com", + "widgetserver.com" + ], + "resources": [ + "flite.com", + "widgetserver.com" + ] + }, + "Flurry": { + "properties": [ + "flurry.com" + ], + "resources": [ + "flurry.com" + ] + }, + "Flytxt": { + "properties": [ + "flytxt.com" + ], + "resources": [ + "flytxt.com" + ] + }, + "Forbes": { + "properties": [ + "forbes.com", + "brandsideplatform.com" + ], + "resources": [ + "forbes.com", + "brandsideplatform.com" + ] + }, + "Fox One Stop Media": { + "properties": [ + "foxonestop.com", + "fimserve.com", + "foxnetworks.com", + "mobsmith.com", + "myads.com", + "othersonline.com", + "rubiconproject.com" + ], + "resources": [ + "foxonestop.com", + "fimserve.com", + "foxnetworks.com", + "mobsmith.com", + "myads.com", + "othersonline.com", + "rubiconproject.com" + ] + }, + "FreakOut": { + "properties": [ + "fout.jp" + ], + "resources": [ + "fout.jp" + ] + }, + "Freedom Communications": { + "properties": [ + "freedom.com" + ], + "resources": [ + "freedom.com" + ] + }, + "FriendFinder Networks": { + "properties": [ + "ffn.com", + "adultfriendfinder.com", + "pop6.com" + ], + "resources": [ + "ffn.com", + "adultfriendfinder.com", + "pop6.com" + ] + }, + "Frog Sex": { + "properties": [ + "frogsex.com", + "double-check.com" + ], + "resources": [ + "frogsex.com", + "double-check.com" + ] + }, + "Future Ads": { + "properties": [ + "futureads.com", + "resultlinks.com" + ], + "resources": [ + "futureads.com", + "resultlinks.com" + ] + }, + "Game Advertising Online": { + "properties": [ + "game-advertising-online.com" + ], + "resources": [ + "game-advertising-online.com" + ] + }, + "Games2win": { + "properties": [ + "games2win.com", + "inviziads.com" + ], + "resources": [ + "games2win.com", + "inviziads.com" + ] + }, + "Gamned": { + "properties": [ + "gamned.com" + ], + "resources": [ + "gamned.com" + ] + }, + "Gannett": { + "properties": [ + "gannett.com", + "pointroll.com" + ], + "resources": [ + "gannett.com", + "pointroll.com" + ] + }, + "GB-World": { + "properties": [ + "gb-world.net" + ], + "resources": [ + "gb-world.net" + ] + }, + "Gemius": { + "properties": [ + "gemius.com", + "gemius.pl" + ], + "resources": [ + "gemius.com", + "gemius.pl" + ] + }, + "GENIE GROUP": { + "properties": [ + "www.geniegroupltd.co.uk", + "geniegroupltd.co.uk" + ], + "resources": [ + "www.geniegroupltd.co.uk", + "geniegroupltd.co.uk" + ] + }, + "Genius.com": { + "properties": [ + "genius.com", + "rsvpgenius.com" + ], + "resources": [ + "genius.com", + "rsvpgenius.com" + ] + }, + "GeoAds": { + "properties": [ + "geoads.com" + ], + "resources": [ + "geoads.com" + ] + }, + "GetGlue": { + "properties": [ + "getglue.com", + "smrtlnks.com" + ], + "resources": [ + "getglue.com", + "smrtlnks.com" + ] + }, + "Glam Media": { + "properties": [ + "glammedia.com", + "glam.com" + ], + "resources": [ + "glammedia.com", + "glam.com" + ] + }, + "Globe7": { + "properties": [ + "globe7.com" + ], + "resources": [ + "globe7.com" + ] + }, + "GoDataFeed": { + "properties": [ + "godatafeed.com" + ], + "resources": [ + "godatafeed.com" + ] + }, + "GoldSpot Media": { + "properties": [ + "goldspotmedia.com" + ], + "resources": [ + "goldspotmedia.com" + ] + }, + "Grapeshot": { + "properties": [ + "www.grapeshot.co.uk", + "grapeshot.co.uk" + ], + "resources": [ + "www.grapeshot.co.uk", + "grapeshot.co.uk" + ] + }, + "Grocery Shopping Network": { + "properties": [ + "groceryshopping.net" + ], + "resources": [ + "groceryshopping.net" + ] + }, + "GroovinAds": { + "properties": [ + "groovinads.com" + ], + "resources": [ + "groovinads.com" + ] + }, + "Gruner + Jahr": { + "properties": [ + "guj.de", + "ligatus.com" + ], + "resources": [ + "guj.de", + "ligatus.com" + ] + }, + "GISMAds": { + "properties": [ + "www.gismads.jp", + "gismads.jp" + ], + "resources": [ + "www.gismads.jp", + "gismads.jp" + ] + }, + "GSI Commerce": { + "properties": [ + "gsicommerce.com", + "gsimedia.net", + "pepperjam.com", + "pjatr.com", + "pjtra.com", + "pntra.com", + "pntrac.com", + "pntrs.com" + ], + "resources": [ + "gsicommerce.com", + "gsimedia.net", + "pepperjam.com", + "pjatr.com", + "pjtra.com", + "pntra.com", + "pntrac.com", + "pntrs.com" + ] + }, + "GumGum": { + "properties": [ + "gumgum.com" + ], + "resources": [ + "gumgum.com" + ] + }, + "Gunggo": { + "properties": [ + "gunggo.com" + ], + "resources": [ + "gunggo.com" + ] + }, + "Hands Mobile": { + "properties": [ + "www.hands.com.br", + "hands.com.br" + ], + "resources": [ + "www.hands.com.br", + "hands.com.br" + ] + }, + "Harrenmedia": { + "properties": [ + "harrenmedia.com", + "harrenmedianetwork.com" + ], + "resources": [ + "harrenmedia.com", + "harrenmedianetwork.com" + ] + }, + "HealthPricer": { + "properties": [ + "healthpricer.com", + "adacado.com" + ], + "resources": [ + "healthpricer.com", + "adacado.com" + ] + }, + "Hearst": { + "properties": [ + "hearst.com", + "ic-live.com", + "iclive.com", + "icrossing.com", + "sptag.com", + "sptag1.com", + "sptag2.com", + "sptag3.com", + "raasnet.com", + "redaril.com" + ], + "resources": [ + "hearst.com", + "ic-live.com", + "iclive.com", + "icrossing.com", + "sptag.com", + "sptag1.com", + "sptag2.com", + "sptag3.com", + "raasnet.com", + "redaril.com" + ] + }, + "Hi-media": { + "properties": [ + "hi-media.com", + "comclick.com" + ], + "resources": [ + "hi-media.com", + "comclick.com" + ] + }, + "HookLogic": { + "properties": [ + "hooklogic.com", + "hlserve.com" + ], + "resources": [ + "hooklogic.com", + "hlserve.com" + ] + }, + "Horyzon Media": { + "properties": [ + "horyzon-media.com", + "meetic-partners.com", + "smartadserver.com" + ], + "resources": [ + "horyzon-media.com", + "meetic-partners.com", + "smartadserver.com" + ] + }, + "HOTWords": { + "properties": [ + "hotwords.com", + "hotwords.es" + ], + "resources": [ + "hotwords.com", + "hotwords.es" + ] + }, + "HP": { + "properties": [ + "hp.com", + "optimost.com" + ], + "resources": [ + "hp.com", + "optimost.com" + ] + }, + "Httpool": { + "properties": [ + "httpool.com" + ], + "resources": [ + "httpool.com" + ] + }, + "HUNT Mobile Ads": { + "properties": [ + "huntmads.com" + ], + "resources": [ + "huntmads.com" + ] + }, + "Hurra.com": { + "properties": [ + "hurra.com" + ], + "resources": [ + "hurra.com" + ] + }, + "I-Behavior": { + "properties": [ + "i-behavior.com", + "ib-ibi.com" + ], + "resources": [ + "i-behavior.com", + "ib-ibi.com" + ] + }, + "I.UA": { + "properties": [ + "i.ua" + ], + "resources": [ + "i.ua" + ] + }, + "IAC": { + "properties": [ + "iac.com", + "iacadvertising.com" + ], + "resources": [ + "iac.com", + "iacadvertising.com" + ] + }, + "IBM": { + "properties": [ + "ibm.com", + "unica.com", + "cmcore.com", + "coremetrics.com" + ], + "resources": [ + "ibm.com", + "unica.com", + "cmcore.com", + "coremetrics.com" + ] + }, + "IDG": { + "properties": [ + "idg.com", + "idgtechnetwork.com" + ], + "resources": [ + "idg.com", + "idgtechnetwork.com" + ] + }, + "iEntry": { + "properties": [ + "ientry.com", + "600z.com" + ], + "resources": [ + "ientry.com", + "600z.com" + ] + }, + "IgnitAd": { + "properties": [ + "ignitad.com" + ], + "resources": [ + "ignitad.com" + ] + }, + "IgnitionOne": { + "properties": [ + "ignitionone.com", + "ignitionone.net", + "searchignite.com" + ], + "resources": [ + "ignitionone.com", + "ignitionone.net", + "searchignite.com" + ] + }, + "Improve Digital": { + "properties": [ + "improvedigital.com", + "360yield.com" + ], + "resources": [ + "improvedigital.com", + "360yield.com" + ] + }, + "Inadco": { + "properties": [ + "inadco.com", + "anadcoads.com", + "inadcoads.com" + ], + "resources": [ + "inadco.com", + "anadcoads.com", + "inadcoads.com" + ] + }, + "Infectious Media": { + "properties": [ + "infectiousmedia.com", + "impressiondesk.com" + ], + "resources": [ + "infectiousmedia.com", + "impressiondesk.com" + ] + }, + "Inflection Point Media": { + "properties": [ + "inflectionpointmedia.com" + ], + "resources": [ + "inflectionpointmedia.com" + ] + }, + "Infogroup": { + "properties": [ + "infogroup.com" + ], + "resources": [ + "infogroup.com" + ] + }, + "Infolinks": { + "properties": [ + "infolinks.com" + ], + "resources": [ + "infolinks.com" + ] + }, + "Infra-Ad": { + "properties": [ + "infra-ad.com" + ], + "resources": [ + "infra-ad.com" + ] + }, + "InMobi": { + "properties": [ + "inmobi.com", + "sproutinc.com" + ], + "resources": [ + "inmobi.com", + "sproutinc.com" + ] + }, + "inneractive": { + "properties": [ + "inner-active.com" + ], + "resources": [ + "inner-active.com" + ] + }, + "Innity": { + "properties": [ + "innity.com" + ], + "resources": [ + "innity.com" + ] + }, + "InsightExpress": { + "properties": [ + "insightexpress.com", + "insightexpressai.com" + ], + "resources": [ + "insightexpress.com", + "insightexpressai.com" + ] + }, + "InSkin Media": { + "properties": [ + "inskinmedia.com" + ], + "resources": [ + "inskinmedia.com" + ] + }, + "Intent Media": { + "properties": [ + "intentmedia.com", + "intentmedia.net" + ], + "resources": [ + "intentmedia.com", + "intentmedia.net" + ] + }, + "Intergi": { + "properties": [ + "intergi.com" + ], + "resources": [ + "intergi.com" + ] + }, + "Intermarkets": { + "properties": [ + "intermarkets.net" + ], + "resources": [ + "intermarkets.net" + ] + }, + "Intermundo Media": { + "properties": [ + "intermundomedia.com" + ], + "resources": [ + "intermundomedia.com" + ] + }, + "Internet Brands": { + "properties": [ + "internetbrands.com", + "ibpxl.com" + ], + "resources": [ + "internetbrands.com", + "ibpxl.com" + ] + }, + "Interpolls": { + "properties": [ + "interpolls.com" + ], + "resources": [ + "interpolls.com" + ] + }, + "Inuvo": { + "properties": [ + "inuvo.com" + ], + "resources": [ + "inuvo.com" + ] + }, + "InvestingChannel": { + "properties": [ + "investingchannel.com" + ], + "resources": [ + "investingchannel.com" + ] + }, + "iPROM": { + "properties": [ + "iprom.si", + "centraliprom.com", + "iprom.net", + "mediaiprom.com" + ], + "resources": [ + "iprom.si", + "centraliprom.com", + "iprom.net", + "mediaiprom.com" + ] + }, + "iPromote": { + "properties": [ + "ipromote.com" + ], + "resources": [ + "ipromote.com" + ] + }, + "iProspect": { + "properties": [ + "iprospect.com", + "clickmanage.com" + ], + "resources": [ + "iprospect.com", + "clickmanage.com" + ] + }, + "ISI Technologies": { + "properties": [ + "digbro.com", + "adversalservers.com" + ], + "resources": [ + "digbro.com", + "adversalservers.com" + ] + }, + "isocket": { + "properties": [ + "isocket.com", + "adsbyisocket.com" + ], + "resources": [ + "isocket.com", + "adsbyisocket.com" + ] + }, + "Jaroop": { + "properties": [ + "jaroop.com" + ], + "resources": [ + "jaroop.com" + ] + }, + "JasperLabs": { + "properties": [ + "jasperlabs.com" + ], + "resources": [ + "jasperlabs.com" + ] + }, + "Jemm": { + "properties": [ + "jemmgroup.com" + ], + "resources": [ + "jemmgroup.com" + ] + }, + "Jink": { + "properties": [ + "jink.de", + "jinkads.com" + ], + "resources": [ + "jink.de", + "jinkads.com" + ] + }, + "Jirbo": { + "properties": [ + "jirbo.com", + "adcolony.com" + ], + "resources": [ + "jirbo.com", + "adcolony.com" + ] + }, + "Jivox": { + "properties": [ + "jivox.com" + ], + "resources": [ + "jivox.com" + ] + }, + "JobThread": { + "properties": [ + "jobthread.com" + ], + "resources": [ + "jobthread.com" + ] + }, + "JuicyAds": { + "properties": [ + "juicyads.com" + ], + "resources": [ + "juicyads.com" + ] + }, + "Jumptap": { + "properties": [ + "jumptap.com" + ], + "resources": [ + "jumptap.com" + ] + }, + "Kenshoo": { + "properties": [ + "kenshoo.com", + "xg4ken.com" + ], + "resources": [ + "kenshoo.com", + "xg4ken.com" + ] + }, + "Keyade": { + "properties": [ + "keyade.com" + ], + "resources": [ + "keyade.com" + ] + }, + "KissMyAds": { + "properties": [ + "kissmyads.com" + ], + "resources": [ + "kissmyads.com" + ] + }, + "KIT digital": { + "properties": [ + "kitd.com", + "keewurd.com", + "peerset.com" + ], + "resources": [ + "kitd.com", + "keewurd.com", + "peerset.com" + ] + }, + "Kitara Media": { + "properties": [ + "kitaramedia.com", + "103092804.com" + ], + "resources": [ + "kitaramedia.com", + "103092804.com" + ] + }, + "Kokteyl": { + "properties": [ + "kokteyl.com", + "admost.com" + ], + "resources": [ + "kokteyl.com", + "admost.com" + ] + }, + "Komli": { + "properties": [ + "komli.com" + ], + "resources": [ + "komli.com" + ] + }, + "Kontera": { + "properties": [ + "kontera.com" + ], + "resources": [ + "kontera.com" + ] + }, + "Korrelate": { + "properties": [ + "korrelate.com", + "adsummos.com", + "adsummos.net" + ], + "resources": [ + "korrelate.com", + "adsummos.com", + "adsummos.net" + ] + }, + "Krux": { + "properties": [ + "krux.com", + "kruxdigital.com", + "krxd.net" + ], + "resources": [ + "krux.com", + "kruxdigital.com", + "krxd.net" + ] + }, + "Layer-Ad.org": { + "properties": [ + "layer-ad.org" + ], + "resources": [ + "layer-ad.org" + ] + }, + "LeadBolt": { + "properties": [ + "leadbolt.com" + ], + "resources": [ + "leadbolt.com" + ] + }, + "LeadFormix": { + "properties": [ + "leadformix.com", + "leadforce1.com" + ], + "resources": [ + "leadformix.com", + "leadforce1.com" + ] + }, + "LeadLander": { + "properties": [ + "leadlander.com", + "trackalyzer.com" + ], + "resources": [ + "leadlander.com", + "trackalyzer.com" + ] + }, + "Legolas Media": { + "properties": [ + "legolas-media.com" + ], + "resources": [ + "legolas-media.com" + ] + }, + "Levexis": { + "properties": [ + "levexis.com" + ], + "resources": [ + "levexis.com" + ] + }, + "Lexos Media": { + "properties": [ + "lexosmedia.com", + "adbull.com" + ], + "resources": [ + "lexosmedia.com", + "adbull.com" + ] + }, + "LifeStreet": { + "properties": [ + "lifestreetmedia.com", + "lfstmedia.com" + ], + "resources": [ + "lifestreetmedia.com", + "lfstmedia.com" + ] + }, + "LiveIntent": { + "properties": [ + "liveintent.com", + "liadm.com" + ], + "resources": [ + "liveintent.com", + "liadm.com" + ] + }, + "LiveInternet": { + "properties": [ + "liveinternet.ru", + "yadro.ru" + ], + "resources": [ + "liveinternet.ru", + "yadro.ru" + ] + }, + "LinkConnector": { + "properties": [ + "linkconnector.com" + ], + "resources": [ + "linkconnector.com" + ] + }, + "LinkShare": { + "properties": [ + "linkshare.com", + "linksynergy.com" + ], + "resources": [ + "linkshare.com", + "linksynergy.com" + ] + }, + "Linkz": { + "properties": [ + "linkz.net" + ], + "resources": [ + "linkz.net" + ] + }, + "Listrak": { + "properties": [ + "listrak.com", + "listrakbi.com" + ], + "resources": [ + "listrak.com", + "listrakbi.com" + ] + }, + "Local Yokel Media": { + "properties": [ + "localyokelmedia.com" + ], + "resources": [ + "localyokelmedia.com" + ] + }, + "Longboard Media": { + "properties": [ + "longboardmedia.com" + ], + "resources": [ + "longboardmedia.com" + ] + }, + "Loomia": { + "properties": [ + "loomia.com" + ], + "resources": [ + "loomia.com" + ] + }, + "LoopFuse": { + "properties": [ + "loopfuse.net", + "lfov.net" + ], + "resources": [ + "loopfuse.net", + "lfov.net" + ] + }, + "LucidMedia": { + "properties": [ + "lucidmedia.com" + ], + "resources": [ + "lucidmedia.com" + ] + }, + "m6d": { + "properties": [ + "m6d.com", + "media6degrees.com" + ], + "resources": [ + "m6d.com", + "media6degrees.com" + ] + }, + "Madhouse": { + "properties": [ + "madhouse.cn" + ], + "resources": [ + "madhouse.cn" + ] + }, + "Madison Logic": { + "properties": [ + "madisonlogic.com", + "dinclinx.com" + ], + "resources": [ + "madisonlogic.com", + "dinclinx.com" + ] + }, + "madvertise": { + "properties": [ + "madvertise.com" + ], + "resources": [ + "madvertise.com" + ] + }, + "Magnetic": { + "properties": [ + "magnetic.com", + "domdex.com", + "domdex.net", + "qjex.net" + ], + "resources": [ + "magnetic.com", + "domdex.com", + "domdex.net", + "qjex.net" + ] + }, + "Magnify360": { + "properties": [ + "magnify360.com", + "dialogmgr.com" + ], + "resources": [ + "magnify360.com", + "dialogmgr.com" + ] + }, + "MailChimp": { + "properties": [ + "mailchimp.com", + "campaign-archive1.com", + "list-manage.com" + ], + "resources": [ + "mailchimp.com", + "campaign-archive1.com", + "list-manage.com" + ] + }, + "Manifest": { + "properties": [ + "manifest.ru", + "bannerbank.ru" + ], + "resources": [ + "manifest.ru", + "bannerbank.ru" + ] + }, + "Marchex": { + "properties": [ + "marchex.com", + "industrybrains.com" + ], + "resources": [ + "marchex.com", + "industrybrains.com" + ] + }, + "Marimedia": { + "properties": [ + "marimedia.net" + ], + "resources": [ + "marimedia.net" + ] + }, + "MarketGid": { + "properties": [ + "marketgid.com", + "dt00.net", + "dt07.net" + ], + "resources": [ + "marketgid.com", + "dt00.net", + "dt07.net" + ] + }, + "Marketo": { + "properties": [ + "marketo.com", + "marketo.net" + ], + "resources": [ + "marketo.com", + "marketo.net" + ] + }, + "Martini Media": { + "properties": [ + "martinimedianetwork.com", + "martiniadnetwork.com" + ], + "resources": [ + "martinimedianetwork.com", + "martiniadnetwork.com" + ] + }, + "mashero": { + "properties": [ + "mashero.com" + ], + "resources": [ + "mashero.com" + ] + }, + "Match.com": { + "properties": [ + "match.com", + "chemistry.com" + ], + "resources": [ + "match.com", + "chemistry.com" + ] + }, + "Matomy": { + "properties": [ + "matomy.com", + "matomymarket.com", + "matomymedia.com", + "xtendmedia.com" + ], + "resources": [ + "matomy.com", + "matomymarket.com", + "matomymedia.com", + "xtendmedia.com" + ] + }, + "MaxBounty": { + "properties": [ + "maxbounty.com", + "mb01.com" + ], + "resources": [ + "maxbounty.com", + "mb01.com" + ] + }, + "MaxPoint": { + "properties": [ + "maxpointinteractive.com", + "maxusglobal.com", + "mxptint.net" + ], + "resources": [ + "maxpointinteractive.com", + "maxusglobal.com", + "mxptint.net" + ] + }, + "MdotM": { + "properties": [ + "mdotm.com" + ], + "resources": [ + "mdotm.com" + ] + }, + "media.net": { + "properties": [ + "media.net" + ], + "resources": [ + "media.net" + ] + }, + "MediaBrix": { + "properties": [ + "mediabrix.com" + ], + "resources": [ + "mediabrix.com" + ] + }, + "MediaCom": { + "properties": [ + "mediacom.com" + ], + "resources": [ + "mediacom.com" + ] + }, + "mediaFORGE": { + "properties": [ + "mediaforge.com" + ], + "resources": [ + "mediaforge.com" + ] + }, + "Medialets": { + "properties": [ + "medialets.com" + ], + "resources": [ + "medialets.com" + ] + }, + "MediaMath": { + "properties": [ + "mediamath.com", + "adroitinteractive.com", + "designbloxlive.com", + "mathtag.com" + ], + "resources": [ + "mediamath.com", + "adroitinteractive.com", + "designbloxlive.com", + "mathtag.com" + ] + }, + "Mediaocean": { + "properties": [ + "mediaocean.com", + "adbuyer.com" + ], + "resources": [ + "mediaocean.com", + "adbuyer.com" + ] + }, + "MediaShakers": { + "properties": [ + "mediashakers.com", + "media-servers.net" + ], + "resources": [ + "mediashakers.com", + "media-servers.net" + ] + }, + "MediaTrust": { + "properties": [ + "mediatrust.com" + ], + "resources": [ + "mediatrust.com" + ] + }, + "MediaWhiz": { + "properties": [ + "mediawhiz.com", + "adnetinteractive.com" + ], + "resources": [ + "mediawhiz.com", + "adnetinteractive.com" + ] + }, + "Medicx Media Solutions": { + "properties": [ + "medicxmedia.com" + ], + "resources": [ + "medicxmedia.com" + ] + }, + "Mercent": { + "properties": [ + "mercent.com" + ], + "resources": [ + "mercent.com" + ] + }, + "MerchantAdvantage": { + "properties": [ + "merchantadvantage.com" + ], + "resources": [ + "merchantadvantage.com" + ] + }, + "Merchenta": { + "properties": [ + "merchenta.com" + ], + "resources": [ + "merchenta.com" + ] + }, + "MegaIndex": { + "properties": [ + "megaindex.ru" + ], + "resources": [ + "megaindex.ru" + ] + }, + "Meta Network": { + "properties": [ + "metanetwork.com" + ], + "resources": [ + "metanetwork.com" + ] + }, + "Meteor": { + "properties": [ + "meteorsolutions.com" + ], + "resources": [ + "meteorsolutions.com" + ] + }, + "MicroAd": { + "properties": [ + "www.microad.jp", + "microad.jp" + ], + "resources": [ + "www.microad.jp", + "microad.jp" + ] + }, + "Microsoft": { + "properties": [ + "microsoft.com", + "adbureau.net", + "adecn.com", + "aquantive.com", + "atdmt.com", + "msads.net", + "netconversions.com", + "roiservice.com", + "bing.com", + "gamesforwindows.com", + "getgamesmart.com", + "healthvault.com", + "ieaddons.com", + "iegallery.com", + "live.com", + "microsoftalumni.com", + "microsoftalumni.org", + "microsoftstore.com", + "msn.com", + "msnbc.com", + "nbcnews.com", + "office.com", + "officelive.com", + "outlook.com", + "s-msn.com", + "skype.com", + "windowsphone.com", + "worldwidetelescope.org", + "xbox.com" + ], + "resources": [ + "microsoft.com", + "adbureau.net", + "adecn.com", + "aquantive.com", + "atdmt.com", + "msads.net", + "netconversions.com", + "roiservice.com", + "bing.com", + "gamesforwindows.com", + "getgamesmart.com", + "healthvault.com", + "live.com", + "microsoftstore.com", + "msndirect.com", + "office.com", + "officelive.com", + "outlook.com", + "s-msn.com", + "skype.com" + ] + }, + "Millennial Media": { + "properties": [ + "millennialmedia.com", + "decktrade.com", + "mydas.mobi" + ], + "resources": [ + "millennialmedia.com", + "decktrade.com", + "mydas.mobi" + ] + }, + "Mindset Media": { + "properties": [ + "mindset-media.com", + "mmismm.com" + ], + "resources": [ + "mindset-media.com", + "mmismm.com" + ] + }, + "Mirando": { + "properties": [ + "mirando.de" + ], + "resources": [ + "mirando.de" + ] + }, + "Mixpo": { + "properties": [ + "mixpo.com" + ], + "resources": [ + "mixpo.com" + ] + }, + "Moat": { + "properties": [ + "moat.com", + "moatads.com" + ], + "resources": [ + "moat.com", + "moatads.com" + ] + }, + "MobFox": { + "properties": [ + "mobfox.com" + ], + "resources": [ + "mobfox.com" + ] + }, + "Mobile Meteor": { + "properties": [ + "mobilemeteor.com", + "showmeinn.com" + ], + "resources": [ + "mobilemeteor.com", + "showmeinn.com" + ] + }, + "MobVision": { + "properties": [ + "mobvision.com", + "admoda.com" + ], + "resources": [ + "mobvision.com", + "admoda.com" + ] + }, + "Mocean Mobile": { + "properties": [ + "moceanmobile.com" + ], + "resources": [ + "moceanmobile.com" + ] + }, + "Mochila": { + "properties": [ + "mochila.com" + ], + "resources": [ + "mochila.com" + ] + }, + "Mojiva": { + "properties": [ + "mojiva.com" + ], + "resources": [ + "mojiva.com" + ] + }, + "Monetate": { + "properties": [ + "monetate.com", + "monetate.net" + ], + "resources": [ + "monetate.com", + "monetate.net" + ] + }, + "MONETIZEdigital": { + "properties": [ + "cpalead.com" + ], + "resources": [ + "cpalead.com" + ] + }, + "Monoloop": { + "properties": [ + "monoloop.com" + ], + "resources": [ + "monoloop.com" + ] + }, + "Moolah Media": { + "properties": [ + "moolahmedia.com", + "moolah-media.com" + ], + "resources": [ + "moolahmedia.com", + "moolah-media.com" + ] + }, + "Monster": { + "properties": [ + "monster.com" + ], + "resources": [ + "monster.com" + ] + }, + "MoPub": { + "properties": [ + "mopub.com" + ], + "resources": [ + "mopub.com" + ] + }, + "MovieLush.com": { + "properties": [ + "movielush.com", + "affbuzzads.com" + ], + "resources": [ + "movielush.com", + "affbuzzads.com" + ] + }, + "Mozilla": { + "properties": [ + "mozilla.com", + "mozilla.org", + "firefox.com" + ], + "resources": [ + "mozilla.com", + "mozilla.org", + "firefox.com", + "mozaws.net" + ] + }, + "Multiple Stream Media": { + "properties": [ + "multiplestreammktg.com", + "adclickmedia.com" + ], + "resources": [ + "multiplestreammktg.com", + "adclickmedia.com" + ] + }, + "MUNDO Media": { + "properties": [ + "mundomedia.com", + "silver-path.com" + ], + "resources": [ + "mundomedia.com", + "silver-path.com" + ] + }, + "MyCounter": { + "properties": [ + "mycounter.com.ua" + ], + "resources": [ + "mycounter.com.ua" + ] + }, + "MyBuys": { + "properties": [ + "mybuys.com", + "veruta.com" + ], + "resources": [ + "mybuys.com", + "veruta.com" + ] + }, + "myThings": { + "properties": [ + "mythings.com", + "mythingsmedia.com" + ], + "resources": [ + "mythings.com", + "mythingsmedia.com" + ] + }, + "MyWebGrocer": { + "properties": [ + "mywebgrocer.com" + ], + "resources": [ + "mywebgrocer.com" + ] + }, + "Nanigans": { + "properties": [ + "nanigans.com" + ], + "resources": [ + "nanigans.com" + ] + }, + "Navegg": { + "properties": [ + "navegg.com", + "navdmp.com" + ], + "resources": [ + "navegg.com", + "navdmp.com" + ] + }, + "Net-Results": { + "properties": [ + "net-results.com", + "cdnma.com", + "nr7.us" + ], + "resources": [ + "net-results.com", + "cdnma.com", + "nr7.us" + ] + }, + "NetAffiliation": { + "properties": [ + "netaffiliation.com" + ], + "resources": [ + "netaffiliation.com" + ] + }, + "NetBina": { + "properties": [ + "netbina.com" + ], + "resources": [ + "netbina.com" + ] + }, + "NetElixir": { + "properties": [ + "netelixir.com", + "adelixir.com" + ], + "resources": [ + "netelixir.com", + "adelixir.com" + ] + }, + "Netmining": { + "properties": [ + "netmining.com", + "netmng.com" + ], + "resources": [ + "netmining.com", + "netmng.com" + ] + }, + "NetSeer": { + "properties": [ + "netseer.com" + ], + "resources": [ + "netseer.com" + ] + }, + "NetShelter": { + "properties": [ + "netshelter.com", + "netshelter.net" + ], + "resources": [ + "netshelter.com", + "netshelter.net" + ] + }, + "Neustar": { + "properties": [ + "neustar.biz", + "adadvisor.net" + ], + "resources": [ + "neustar.biz", + "adadvisor.net" + ] + }, + "newtention": { + "properties": [ + "newtention.de", + "newtention.net", + "newtentionassets.net" + ], + "resources": [ + "newtention.de", + "newtention.net", + "newtentionassets.net" + ] + }, + "Nexage": { + "properties": [ + "nexage.com" + ], + "resources": [ + "nexage.com" + ] + }, + "Nextag": { + "properties": [ + "nextag.com" + ], + "resources": [ + "nextag.com" + ] + }, + "NextPerformance": { + "properties": [ + "nextperformance.com", + "nxtck.com" + ], + "resources": [ + "nextperformance.com", + "nxtck.com" + ] + }, + "Nielsen": { + "properties": [ + "nielsen.com", + "imrworldwide.com", + "imrworldwide.net", + "glanceguide.com" + ], + "resources": [ + "nielsen.com", + "imrworldwide.com", + "imrworldwide.net", + "glanceguide.com" + ] + }, + "Ninua": { + "properties": [ + "ninua.com", + "networkedblogs.com" + ], + "resources": [ + "ninua.com", + "networkedblogs.com" + ] + }, + "Nokta": { + "properties": [ + "noktamedya.com", + "virgul.com" + ], + "resources": [ + "noktamedya.com", + "virgul.com" + ] + }, + "NowSpots": { + "properties": [ + "nowspots.com" + ], + "resources": [ + "nowspots.com" + ] + }, + "nrelate": { + "properties": [ + "nrelate.com" + ], + "resources": [ + "nrelate.com" + ] + }, + "Nuffnang": { + "properties": [ + "www.nuffnang.com.my", + "nuffnang.com", + "nuffnang.com.my" + ], + "resources": [ + "www.nuffnang.com.my", + "nuffnang.com", + "nuffnang.com.my" + ] + }, + "nugg.ad": { + "properties": [ + "nugg.ad", + "nuggad.net" + ], + "resources": [ + "nugg.ad", + "nuggad.net" + ] + }, + "Ohana Media": { + "properties": [ + "ohana-media.com", + "adohana.com", + "ohanaqb.com" + ], + "resources": [ + "ohana-media.com", + "adohana.com", + "ohanaqb.com" + ] + }, + "Omnicom Group": { + "properties": [ + "omnicomgroup.com", + "accuenmedia.com", + "p-td.com" + ], + "resources": [ + "omnicomgroup.com", + "accuenmedia.com", + "p-td.com" + ] + }, + "onAd": { + "properties": [ + "onad.eu" + ], + "resources": [ + "onad.eu" + ] + }, + "One iota": { + "properties": [ + "itsoneiota.com", + "oneiota.co.uk" + ], + "resources": [ + "itsoneiota.com", + "oneiota.co.uk" + ] + }, + "Oneupweb": { + "properties": [ + "oneupweb.com", + "sodoit.com" + ], + "resources": [ + "oneupweb.com", + "sodoit.com" + ] + }, + "Open New Media": { + "properties": [ + "onm.de" + ], + "resources": [ + "onm.de" + ] + }, + "OpenX": { + "properties": [ + "openx.com", + "openx.net" + ], + "resources": [ + "openx.com", + "liftdna.com", + "openx.net", + "openx.org", + "openxenterprise.com", + "servedbyopenx.com" + ] + }, + "Opera": { + "properties": [ + "opera.com", + "mobiletheory.com" + ], + "resources": [ + "opera.com", + "mobiletheory.com" + ] + }, + "OPT": { + "properties": [ + "www.opt.ne.jp", + "advg.jp", + "opt.ne.jp", + "p-advg.com" + ], + "resources": [ + "www.opt.ne.jp", + "advg.jp", + "opt.ne.jp", + "p-advg.com" + ] + }, + "Optify": { + "properties": [ + "optify.net" + ], + "resources": [ + "optify.net" + ] + }, + "Optimal": { + "properties": [ + "bn.co" + ], + "resources": [ + "optim.al", + "cpmadvisors.com", + "cpmatic.com", + "nprove.com", + "orbengine.com", + "xa.net" + ] + }, + "OptimumResponse": { + "properties": [ + "optimumresponse.com" + ], + "resources": [ + "optimumresponse.com" + ] + }, + "OptMD": { + "properties": [ + "optmd.com" + ], + "resources": [ + "optmd.com" + ] + }, + "Oracle": { + "properties": [ + "oracle.com", + "estara.com", + "atgsvcs.com", + "instantservice.com", + "istrack.com" + ], + "resources": [ + "oracle.com", + "estara.com", + "atgsvcs.com", + "instantservice.com", + "istrack.com" + ] + }, + "OrangeSoda": { + "properties": [ + "orangesoda.com", + "otracking.com" + ], + "resources": [ + "orangesoda.com", + "otracking.com" + ] + }, + "Out There Media": { + "properties": [ + "out-there-media.com" + ], + "resources": [ + "out-there-media.com" + ] + }, + "Outbrain": { + "properties": [ + "outbrain.com", + "sphere.com" + ], + "resources": [ + "outbrain.com", + "sphere.com" + ] + }, + "Oversee.net": { + "properties": [ + "oversee.net", + "dsnextgen.com" + ], + "resources": [ + "oversee.net", + "dsnextgen.com" + ] + }, + "OwnerIQ": { + "properties": [ + "owneriq.com", + "owneriq.net" + ], + "resources": [ + "owneriq.com", + "owneriq.net" + ] + }, + "OxaMedia": { + "properties": [ + "oxamedia.com", + "adconnexa.com", + "adsbwm.com" + ], + "resources": [ + "oxamedia.com", + "adconnexa.com", + "adsbwm.com" + ] + }, + "Paid-To-Promote.net": { + "properties": [ + "paid-to-promote.net" + ], + "resources": [ + "paid-to-promote.net" + ] + }, + "Pardot": { + "properties": [ + "pardot.com" + ], + "resources": [ + "pardot.com" + ] + }, + "PayHit": { + "properties": [ + "payhit.com" + ], + "resources": [ + "payhit.com" + ] + }, + "Paypopup.com": { + "properties": [ + "paypopup.com", + "lzjl.com" + ], + "resources": [ + "paypopup.com", + "lzjl.com" + ] + }, + "Peer39": { + "properties": [ + "peer39.com", + "peer39.net" + ], + "resources": [ + "peer39.com", + "peer39.net" + ] + }, + "PeerFly": { + "properties": [ + "peerfly.com" + ], + "resources": [ + "peerfly.com" + ] + }, + "Performancing": { + "properties": [ + "performancing.com" + ], + "resources": [ + "performancing.com" + ] + }, + "Pheedo": { + "properties": [ + "pheedo.com" + ], + "resources": [ + "pheedo.com" + ] + }, + "Pictela": { + "properties": [ + "pictela.com", + "pictela.net" + ], + "resources": [ + "pictela.com", + "pictela.net" + ] + }, + "Pixel.sg": { + "properties": [ + "pixel.sg" + ], + "resources": [ + "pixel.sg" + ] + }, + "Piximedia": { + "properties": [ + "piximedia.com" + ], + "resources": [ + "piximedia.com" + ] + }, + "PLATFORM ONE": { + "properties": [ + "www.platform-one.co.jp", + "platform-one.co.jp" + ], + "resources": [ + "www.platform-one.co.jp", + "platform-one.co.jp" + ] + }, + "plista": { + "properties": [ + "plista.com" + ], + "resources": [ + "plista.com" + ] + }, + "Po.st": { + "properties": [ + "po.st" + ], + "resources": [ + "po.st" + ] + }, + "PocketCents": { + "properties": [ + "pocketcents.com" + ], + "resources": [ + "pocketcents.com" + ] + }, + "Pontiflex": { + "properties": [ + "pontiflex.com" + ], + "resources": [ + "pontiflex.com" + ] + }, + "PopAds": { + "properties": [ + "popads.net", + "popadscdn.net" + ], + "resources": [ + "popads.net", + "popadscdn.net" + ] + }, + "PopRule": { + "properties": [ + "poprule.com", + "gocampaignlive.com" + ], + "resources": [ + "poprule.com", + "gocampaignlive.com" + ] + }, + "PrecisionClick": { + "properties": [ + "precisionclick.com" + ], + "resources": [ + "precisionclick.com" + ] + }, + "PredictAd": { + "properties": [ + "predictad.com" + ], + "resources": [ + "predictad.com" + ] + }, + "Pressflex": { + "properties": [ + "pressflex.com", + "blogads.com" + ], + "resources": [ + "pressflex.com", + "blogads.com" + ] + }, + "Proclivity": { + "properties": [ + "proclivitymedia.com", + "proclivitysystems.com", + "pswec.com" + ], + "resources": [ + "proclivitymedia.com", + "proclivitysystems.com", + "pswec.com" + ] + }, + "Project Wonderful": { + "properties": [ + "projectwonderful.com" + ], + "resources": [ + "projectwonderful.com" + ] + }, + "Prosperent": { + "properties": [ + "prosperent.com" + ], + "resources": [ + "prosperent.com" + ] + }, + "Proximic": { + "properties": [ + "proximic.com", + "proxilinks.com", + "proximic.net" + ], + "resources": [ + "proximic.com", + "proxilinks.com", + "proximic.net" + ] + }, + "Public-Idées": { + "properties": [ + "publicidees.com" + ], + "resources": [ + "publicidees.com" + ] + }, + "Publishers Clearing House": { + "properties": [ + "pch.com" + ], + "resources": [ + "pch.com" + ] + }, + "PubMatic": { + "properties": [ + "pubmatic.com", + "revinet.com" + ], + "resources": [ + "pubmatic.com", + "revinet.com" + ] + }, + "Prime Visibility": { + "properties": [ + "primevisibility.com", + "adonnetwork.com", + "adonnetwork.net" + ], + "resources": [ + "primevisibility.com", + "adcde.com", + "addlvr.com", + "adonnetwork.com", + "adonnetwork.net", + "adtrgt.com", + "bannertgt.com", + "cptgt.com", + "cpvfeed.com", + "cpvtgt.com", + "popcde.com", + "sdfje.com", + "urtbk.com" + ] + }, + "quadrantOne": { + "properties": [ + "quadrantone.com" + ], + "resources": [ + "quadrantone.com" + ] + }, + "Quantcast": { + "properties": [ + "quantcast.com", + "quantserve.com" + ], + "resources": [ + "quantcast.com", + "quantserve.com" + ] + }, + "QuinStreet": { + "properties": [ + "quinstreet.com", + "thecounter.com" + ], + "resources": [ + "quinstreet.com", + "qnsr.com", + "qsstats.com", + "thecounter.com" + ] + }, + "QUISMA": { + "properties": [ + "i-behavior.com", + "iaded.com", + "quisma.com", + "quismatch.com", + "xmladed.com" + ], + "resources": [ + "i-behavior.com", + "iaded.com", + "quisma.com", + "quismatch.com", + "xaded.com", + "xmladed.com" + ] + }, + "Radiate Media": { + "properties": [ + "radiatemedia.com", + "matchbin.com" + ], + "resources": [ + "radiatemedia.com", + "matchbin.com" + ] + }, + "RadiumOne": { + "properties": [ + "radiumone.com", + "gwallet.com" + ], + "resources": [ + "radiumone.com", + "gwallet.com" + ] + }, + "Radius Marketing": { + "properties": [ + "radiusmarketing.com" + ], + "resources": [ + "radiusmarketing.com" + ] + }, + "Rambler": { + "properties": [ + "rambler.ru" + ], + "resources": [ + "rambler.ru" + ] + }, + "Rapleaf": { + "properties": [ + "rapleaf.com", + "liveramp.com", + "rlcdn.com" + ], + "resources": [ + "rapleaf.com", + "liveramp.com", + "rlcdn.com" + ] + }, + "ReachLocal": { + "properties": [ + "reachlocal.com", + "rlcdn.net" + ], + "resources": [ + "reachlocal.com", + "rlcdn.net" + ] + }, + "React2Media": { + "properties": [ + "react2media.com" + ], + "resources": [ + "react2media.com" + ] + }, + "Redux Media": { + "properties": [ + "reduxmedia.com" + ], + "resources": [ + "reduxmedia.com" + ] + }, + "Rekko": { + "properties": [ + "rekko.com", + "convertglobal.com" + ], + "resources": [ + "rekko.com", + "convertglobal.com" + ] + }, + "Reklam Store": { + "properties": [ + "reklamstore.com" + ], + "resources": [ + "reklamstore.com" + ] + }, + "Reklamport": { + "properties": [ + "reklamport.com" + ], + "resources": [ + "reklamport.com" + ] + }, + "Reklamz": { + "properties": [ + "reklamz.com" + ], + "resources": [ + "reklamz.com" + ] + }, + "Relevad": { + "properties": [ + "relevad.com", + "relestar.com" + ], + "resources": [ + "relevad.com", + "relestar.com" + ] + }, + "Renegade Internet": { + "properties": [ + "renegadeinternet.com", + "advertserve.com" + ], + "resources": [ + "renegadeinternet.com", + "advertserve.com" + ] + }, + "Resolution Media": { + "properties": [ + "resolutionmedia.com" + ], + "resources": [ + "resolutionmedia.com" + ] + }, + "Resonate": { + "properties": [ + "resonateinsights.com", + "resonatenetworks.com" + ], + "resources": [ + "resonateinsights.com", + "resonatenetworks.com" + ] + }, + "Responsys": { + "properties": [ + "responsys.com" + ], + "resources": [ + "responsys.com" + ] + }, + "ReTargeter": { + "properties": [ + "retargeter.com" + ], + "resources": [ + "retargeter.com" + ] + }, + "Retirement Living": { + "properties": [ + "retirement-living.com", + "blvdstatus.com" + ], + "resources": [ + "retirement-living.com", + "blvdstatus.com" + ] + }, + "RevenueMax": { + "properties": [ + "revenuemax.de" + ], + "resources": [ + "revenuemax.de" + ] + }, + "Rhythm": { + "properties": [ + "rhythmnewmedia.com", + "rnmd.net" + ], + "resources": [ + "rhythmnewmedia.com", + "rnmd.net" + ] + }, + "RichRelevance": { + "properties": [ + "richrelevance.com" + ], + "resources": [ + "richrelevance.com" + ] + }, + "RightAction": { + "properties": [ + "rightaction.com" + ], + "resources": [ + "rightaction.com" + ] + }, + "RMBN": { + "properties": [ + "rmbn.net", + "rmbn.ru" + ], + "resources": [ + "rmbn.net", + "rmbn.ru" + ] + }, + "RMM": { + "properties": [ + "rmmonline.com" + ], + "resources": [ + "rmmonline.com" + ] + }, + "Rocket Fuel": { + "properties": [ + "rocketfuel.com", + "rfihub.com", + "rfihub.net" + ], + "resources": [ + "rocketfuel.com", + "rfihub.com", + "rfihub.net" + ] + }, + "Rovion": { + "properties": [ + "rovion.com" + ], + "resources": [ + "rovion.com" + ] + }, + "RuTarget": { + "properties": [ + "rutarget.ru" + ], + "resources": [ + "rutarget.ru" + ] + }, + "Sabre": { + "properties": [ + "sabre.com", + "reztrack.com", + "sabrehospitality.com" + ], + "resources": [ + "sabre.com", + "reztrack.com", + "sabrehospitality.com" + ] + }, + "Salesforce.com": { + "properties": [ + "salesforce.com" + ], + "resources": [ + "salesforce.com" + ] + }, + "Samurai Factory": { + "properties": [ + "samurai-factory.jp", + "shinobi.jp" + ], + "resources": [ + "samurai-factory.jp", + "shinobi.jp" + ] + }, + "Sapient": { + "properties": [ + "sapient.com", + "bridgetrack.com" + ], + "resources": [ + "sapient.com", + "bridgetrack.com" + ] + }, + "SAS": { + "properties": [ + "sas.com", + "aimatch.com" + ], + "resources": [ + "sas.com", + "aimatch.com" + ] + }, + "Scandinavian AdNetworks": { + "properties": [ + "scandinavianadnetworks.com" + ], + "resources": [ + "scandinavianadnetworks.com" + ] + }, + "Scribol": { + "properties": [ + "scribol.com" + ], + "resources": [ + "scribol.com" + ] + }, + "SearchForce": { + "properties": [ + "searchforce.com", + "searchforce.net" + ], + "resources": [ + "searchforce.com", + "searchforce.net" + ] + }, + "Seevast": { + "properties": [ + "seevast.com", + "kanoodle.com", + "pulse360.com" + ], + "resources": [ + "seevast.com", + "kanoodle.com", + "pulse360.com", + "syndigonetworks.com" + ] + }, + "Selectable Media": { + "properties": [ + "selectablemedia.com", + "nabbr.com" + ], + "resources": [ + "selectablemedia.com", + "nabbr.com" + ] + }, + "SevenAds": { + "properties": [ + "sevenads.net" + ], + "resources": [ + "sevenads.net" + ] + }, + "SexInYourCity": { + "properties": [ + "sexinyourcity.com" + ], + "resources": [ + "sexinyourcity.com" + ] + }, + "ShareASale": { + "properties": [ + "shareasale.com" + ], + "resources": [ + "shareasale.com" + ] + }, + "Shopzilla": { + "properties": [ + "shopzilla.com" + ], + "resources": [ + "shopzilla.com" + ] + }, + "Silverpop": { + "properties": [ + "silverpop.com", + "mkt51.net" + ], + "resources": [ + "silverpop.com", + "mkt51.net", + "pages05.net", + "vtrenz.net" + ] + }, + "Simpli.fi": { + "properties": [ + "simpli.fi" + ], + "resources": [ + "simpli.fi" + ] + }, + "SiteScout": { + "properties": [ + "sitescout.com" + ], + "resources": [ + "sitescout.com" + ] + }, + "Skimlinks": { + "properties": [ + "skimlinks.com", + "skimresources.com" + ], + "resources": [ + "skimlinks.com", + "skimresources.com" + ] + }, + "Skupe Net": { + "properties": [ + "skupenet.com", + "adcentriconline.com" + ], + "resources": [ + "skupenet.com", + "adcentriconline.com" + ] + }, + "Smaato": { + "properties": [ + "smaato.com" + ], + "resources": [ + "smaato.com" + ] + }, + "Smiley Media": { + "properties": [ + "smileymedia.com" + ], + "resources": [ + "smileymedia.com" + ] + }, + "Smowtion": { + "properties": [ + "smowtion.com" + ], + "resources": [ + "smowtion.com" + ] + }, + "Snap": { + "properties": [ + "snap.com" + ], + "resources": [ + "snap.com" + ] + }, + "SocialChorus": { + "properties": [ + "socialchorus.com" + ], + "resources": [ + "socialchorus.com", + "halogenmediagroup.com", + "halogennetwork.com" + ] + }, + "SocialInterface": { + "properties": [ + "socialinterface.com", + "ratevoice.com" + ], + "resources": [ + "socialinterface.com", + "ratevoice.com" + ] + }, + "SocialTwist": { + "properties": [ + "socialtwist.com" + ], + "resources": [ + "socialtwist.com" + ] + }, + "sociomantic labs": { + "properties": [ + "sociomantic.com" + ], + "resources": [ + "sociomantic.com" + ] + }, + "sophus3": { + "properties": [ + "sophus3.com", + "sophus3.co.uk" + ], + "resources": [ + "sophus3.com", + "sophus3.co.uk" + ] + }, + "Space Chimp Media": { + "properties": [ + "spacechimpmedia.com" + ], + "resources": [ + "spacechimpmedia.com" + ] + }, + "Spark Studios": { + "properties": [ + "sparkstudios.com" + ], + "resources": [ + "sparkstudios.com" + ] + }, + "Sparklit": { + "properties": [ + "sparklit.com", + "adbutler.com" + ], + "resources": [ + "sparklit.com", + "adbutler.com" + ] + }, + "Specific Media": { + "properties": [ + "specificmedia.com", + "sitemeter.com" + ], + "resources": [ + "specificmedia.com", + "adviva.co.uk", + "adviva.net", + "sitemeter.com", + "specificclick.net" + ] + }, + "Spectate": { + "properties": [ + "spectate.com" + ], + "resources": [ + "spectate.com" + ] + }, + "Sponge": { + "properties": [ + "spongegroup.com" + ], + "resources": [ + "spongegroup.com" + ] + }, + "Spongecell": { + "properties": [ + "spongecell.com" + ], + "resources": [ + "spongecell.com" + ] + }, + "SponsorAds": { + "properties": [ + "sponsorads.de" + ], + "resources": [ + "sponsorads.de" + ] + }, + "Spot200": { + "properties": [ + "spot200.com" + ], + "resources": [ + "spot200.com" + ] + }, + "SpotXchange": { + "properties": [ + "spotxchange.com" + ], + "resources": [ + "spotxchange.com" + ] + }, + "StarGames": { + "properties": [ + "stargames.net", + "stargamesaffiliate.com" + ], + "resources": [ + "stargames.net", + "stargamesaffiliate.com" + ] + }, + "SteelHouse": { + "properties": [ + "steelhouse.com", + "steelhousemedia.com" + ], + "resources": [ + "steelhouse.com", + "steelhousemedia.com" + ] + }, + "Streamray": { + "properties": [ + "streamray.com", + "cams.com" + ], + "resources": [ + "streamray.com", + "cams.com" + ] + }, + "StrikeAd": { + "properties": [ + "strikead.com" + ], + "resources": [ + "strikead.com" + ] + }, + "StrongMail": { + "properties": [ + "strongmail.com", + "popularmedia.com" + ], + "resources": [ + "strongmail.com", + "popularmedia.com" + ] + }, + "Struq": { + "properties": [ + "struq.com" + ], + "resources": [ + "struq.com" + ] + }, + "Suite 66": { + "properties": [ + "suite66.com" + ], + "resources": [ + "suite66.com" + ] + }, + "Summit": { + "properties": [ + "www.summit.co.uk", + "summitmedia.co.uk" + ], + "resources": [ + "www.summit.co.uk", + "summitmedia.co.uk" + ] + }, + "SupersonicAds": { + "properties": [ + "supersonicads.com" + ], + "resources": [ + "supersonicads.com" + ] + }, + "Switch": { + "properties": [ + "switchconcepts.com", + "switchadhub.com", + "switchconcepts.co.uk" + ], + "resources": [ + "switchconcepts.com", + "switchadhub.com", + "switchconcepts.co.uk" + ] + }, + "Swoop": { + "properties": [ + "swoop.com" + ], + "resources": [ + "swoop.com" + ] + }, + "SymphonyAM": { + "properties": [ + "factortg.com" + ], + "resources": [ + "factortg.com" + ] + }, + "Syncapse": { + "properties": [ + "syncapse.com", + "clickable.net" + ], + "resources": [ + "syncapse.com", + "clickable.net" + ] + }, + "Taboola": { + "properties": [ + "taboola.com" + ], + "resources": [ + "taboola.com" + ] + }, + "Tailsweep": { + "properties": [ + "tailsweep.com" + ], + "resources": [ + "tailsweep.com" + ] + }, + "Tap.me": { + "properties": [ + "tap.me" + ], + "resources": [ + "tap.me" + ] + }, + "Tapad": { + "properties": [ + "tapad.com" + ], + "resources": [ + "tapad.com" + ] + }, + "Tapgage": { + "properties": [ + "tapgage.com", + "bizmey.com" + ], + "resources": [ + "tapgage.com", + "bizmey.com" + ] + }, + "TapIt!": { + "properties": [ + "tapit.com" + ], + "resources": [ + "tapit.com" + ] + }, + "Tatto Media": { + "properties": [ + "tattomedia.com", + "quicknoodles.com" + ], + "resources": [ + "tattomedia.com", + "quicknoodles.com" + ] + }, + "Targetix": { + "properties": [ + "targetix.net" + ], + "resources": [ + "targetix.net" + ] + }, + "Teadma": { + "properties": [ + "teadma.com" + ], + "resources": [ + "teadma.com" + ] + }, + "Technorati": { + "properties": [ + "technorati.com", + "technoratimedia.com" + ], + "resources": [ + "technorati.com", + "technoratimedia.com" + ] + }, + "TellApart": { + "properties": [ + "tellapart.com", + "tellapt.com" + ], + "resources": [ + "tellapart.com", + "tellapt.com" + ] + }, + "Telstra": { + "properties": [ + "telstra.com.au", + "sensis.com.au", + "sensisdata.com.au", + "sensisdigitalmedia.com.au" + ], + "resources": [ + "telstra.com.au", + "sensis.com.au", + "sensisdata.com.au", + "sensisdigitalmedia.com.au" + ] + }, + "Terra": { + "properties": [ + "www.terra.com.br", + "eztargetmedia.com", + "terra.com.br" + ], + "resources": [ + "www.terra.com.br", + "eztargetmedia.com", + "terra.com.br" + ] + }, + "The Numa Group": { + "properties": [ + "thenumagroup.com", + "hittail.com" + ], + "resources": [ + "thenumagroup.com", + "hittail.com" + ] + }, + "The Rimm-Kaufman Group": { + "properties": [ + "rimmkaufman.com", + "rkdms.com" + ], + "resources": [ + "rimmkaufman.com", + "rkdms.com" + ] + }, + "The Search Agency": { + "properties": [ + "thesearchagency.com" + ], + "resources": [ + "thesearchagency.com", + "thesearchagency.net" + ] + }, + "The Trade Desk": { + "properties": [ + "thetradedesk.com" + ], + "resources": [ + "thetradedesk.com", + "adsrvr.org" + ] + }, + "Think Realtime": { + "properties": [ + "thinkrealtime.com", + "echosearch.com" + ], + "resources": [ + "thinkrealtime.com", + "echosearch.com", + "esm1.net" + ] + }, + "Tinder": { + "properties": [ + "tinder.com", + "carbonads.com" + ], + "resources": [ + "tinder.com", + "carbonads.com" + ] + }, + "TiqIQ": { + "properties": [ + "tiqiq.com" + ], + "resources": [ + "tiqiq.com" + ] + }, + "TLVMedia": { + "properties": [ + "tlvmedia.com" + ], + "resources": [ + "tlvmedia.com" + ] + }, + "Todacell": { + "properties": [ + "todacell.com" + ], + "resources": [ + "todacell.com" + ] + }, + "ToneFuse": { + "properties": [ + "tonefuse.com" + ], + "resources": [ + "tonefuse.com" + ] + }, + "ToneMedia": { + "properties": [ + "tonemedia.com", + "clickfuse.com" + ], + "resources": [ + "tonemedia.com", + "clickfuse.com" + ] + }, + "TouchCommerce": { + "properties": [ + "touchcommerce.com", + "inq.com" + ], + "resources": [ + "touchcommerce.com", + "inq.com" + ] + }, + "TrackingSoft": { + "properties": [ + "trackingsoft.com", + "roia.biz" + ], + "resources": [ + "trackingsoft.com", + "roia.biz" + ] + }, + "Tradedoubler": { + "properties": [ + "tradedoubler.com" + ], + "resources": [ + "tradedoubler.com" + ] + }, + "TradeTracker": { + "properties": [ + "tradetracker.com", + "tradetracker.net" + ], + "resources": [ + "tradetracker.com", + "tradetracker.net" + ] + }, + "TrafficHaus": { + "properties": [ + "traffichaus.com", + "traffichouse.com" + ], + "resources": [ + "traffichaus.com", + "traffichouse.com" + ] + }, + "TrafficRevenue": { + "properties": [ + "trafficrevenue.net" + ], + "resources": [ + "trafficrevenue.net" + ] + }, + "Traffiq": { + "properties": [ + "traffiq.com" + ], + "resources": [ + "traffiq.com" + ] + }, + "Travora Media": { + "properties": [ + "travoramedia.com" + ], + "resources": [ + "travoramedia.com", + "traveladnetwork.com", + "traveladvertising.com" + ] + }, + "Tremor Video": { + "properties": [ + "tremorvideo.com" + ], + "resources": [ + "tremorvideo.com", + "scanscout.com", + "tmnetads.com", + "tremormedia.com" + ] + }, + "Triggit": { + "properties": [ + "triggit.com" + ], + "resources": [ + "triggit.com" + ] + }, + "TruEffect": { + "properties": [ + "trueffect.com", + "adlegend.com" + ], + "resources": [ + "trueffect.com", + "adlegend.com" + ] + }, + "TRUSTe": { + "properties": [ + "truste.com" + ], + "resources": [ + "truste.com" + ] + }, + "TubeMogul": { + "properties": [ + "tubemogul.com", + "tmogul.com" + ], + "resources": [ + "tubemogul.com", + "tmogul.com" + ] + }, + "Twelvefold": { + "properties": [ + "twelvefold.com", + "buzzlogic.com" + ], + "resources": [ + "twelvefold.com", + "buzzlogic.com" + ] + }, + "twyn group": { + "properties": [ + "twyn.com" + ], + "resources": [ + "twyn.com" + ] + }, + "Tyroo": { + "properties": [ + "tyroo.com" + ], + "resources": [ + "tyroo.com" + ] + }, + "uCoz": { + "properties": [ + "ucoz.com", + "ucoz.ae", + "ucoz.fr", + "ucoz.net", + "ucoz.ru" + ], + "resources": [ + "ucoz.com", + "ucoz.ae", + "ucoz.br", + "ucoz.du", + "ucoz.fr", + "ucoz.net", + "ucoz.ru" + ] + }, + "Unanimis": { + "properties": [ + "www.unanimis.co.uk", + "unanimis.co.uk" + ], + "resources": [ + "www.unanimis.co.uk", + "unanimis.co.uk" + ] + }, + "Underdog Media": { + "properties": [ + "underdogmedia.com", + "udmserve.net" + ], + "resources": [ + "underdogmedia.com", + "udmserve.net" + ] + }, + "Undertone": { + "properties": [ + "undertone.com", + "undertonenetworks.com", + "undertonevideo.com" + ], + "resources": [ + "undertone.com", + "undertonenetworks.com", + "undertonevideo.com" + ] + }, + "UniQlick": { + "properties": [ + "uniqlick.com", + "51network.com", + "wanmo.com" + ], + "resources": [ + "uniqlick.com", + "51network.com", + "wanmo.com" + ] + }, + "Unruly": { + "properties": [ + "unrulymedia.com" + ], + "resources": [ + "unrulymedia.com" + ] + }, + "up-value": { + "properties": [ + "up-value.de" + ], + "resources": [ + "up-value.de" + ] + }, + "USI Technologies": { + "properties": [ + "usitechnologies.com", + "upsellit.com" + ], + "resources": [ + "usitechnologies.com", + "upsellit.com" + ] + }, + "ValueClick": { + "properties": [ + "conversantmedia.com" + ], + "resources": [ + "valueclick.com", + "adserver.com", + "dotomi.com", + "dtmpub.com", + "emjcd.com", + "fastclick.com", + "fastclick.net", + "greystripe.com", + "lduhtrp.net", + "mediaplex.com", + "valueclick.net", + "valueclickmedia.com" + ] + }, + "Various": { + "properties": [ + "various.com", + "amigos.com", + "getiton.com", + "medley.com", + "nostringsattached.com" + ], + "resources": [ + "various.com", + "amigos.com", + "getiton.com", + "medley.com", + "nostringsattached.com" + ] + }, + "Vdopia": { + "properties": [ + "vdopia.com", + "ivdopia.com" + ], + "resources": [ + "vdopia.com", + "ivdopia.com" + ] + }, + "Velocity Media": { + "properties": [ + "adsvelocity.com" + ], + "resources": [ + "adsvelocity.com" + ] + }, + "Velti": { + "properties": [ + "velti.com", + "mobclix.com" + ], + "resources": [ + "velti.com", + "mobclix.com" + ] + }, + "Vemba": { + "properties": [ + "vemba.com" + ], + "resources": [ + "vemba.com" + ] + }, + "Vendio": { + "properties": [ + "vendio.com", + "singlefeed.com" + ], + "resources": [ + "vendio.com", + "singlefeed.com" + ] + }, + "Veoxa": { + "properties": [ + "veoxa.com" + ], + "resources": [ + "veoxa.com" + ] + }, + "Veremedia": { + "properties": [ + "veremedia.com" + ], + "resources": [ + "veremedia.com" + ] + }, + "VerticalResponse": { + "properties": [ + "verticalresponse.com", + "vresp.com" + ], + "resources": [ + "verticalresponse.com", + "vresp.com" + ] + }, + "Vibrant Media": { + "properties": [ + "vibrantmedia.com", + "intellitxt.com", + "picadmedia.com" + ], + "resources": [ + "vibrantmedia.com", + "intellitxt.com", + "picadmedia.com" + ] + }, + "VigLink": { + "properties": [ + "viglink.com" + ], + "resources": [ + "viglink.com" + ] + }, + "Visible Measures": { + "properties": [ + "visiblemeasures.com", + "viewablemedia.net" + ], + "resources": [ + "visiblemeasures.com", + "viewablemedia.net" + ] + }, + "VisibleBrands": { + "properties": [ + "visbrands.com" + ], + "resources": [ + "visbrands.com" + ] + }, + "VisualDNA": { + "properties": [ + "visualdna.com", + "vdna-assets.com", + "visualdna-stats.com" + ], + "resources": [ + "visualdna.com", + "vdna-assets.com", + "visualdna-stats.com" + ] + }, + "Vizu": { + "properties": [ + "vizu.com" + ], + "resources": [ + "vizu.com" + ] + }, + "Vizury": { + "properties": [ + "vizury.com" + ], + "resources": [ + "vizury.com" + ] + }, + "Vserv": { + "properties": [ + "vserv.com", + "vserv.mobi" + ], + "resources": [ + "vserv.com", + "vserv.mobi" + ] + }, + "Wahoha": { + "properties": [ + "wahoha.com", + "contentwidgets.net" + ], + "resources": [ + "wahoha.com", + "contentwidgets.net" + ] + }, + "Web.com": { + "properties": [ + "web.com", + "feedperfect.com" + ], + "resources": [ + "web.com", + "feedperfect.com" + ] + }, + "WebAds": { + "properties": [ + "www.webads.co.uk", + "webads.co.uk" + ], + "resources": [ + "www.webads.co.uk", + "webads.co.uk" + ] + }, + "WebGozar.com": { + "properties": [ + "webgozar.com", + "webgozar.ir" + ], + "resources": [ + "webgozar.com", + "webgozar.ir" + ] + }, + "WebMetro": { + "properties": [ + "webmetro.com", + "dsmmadvantage.com" + ], + "resources": [ + "webmetro.com", + "dsmmadvantage.com" + ] + }, + "Weborama": { + "properties": [ + "weborama.com", + "weborama.fr" + ], + "resources": [ + "weborama.com", + "weborama.fr" + ] + }, + "Webtraffic": { + "properties": [ + "webtraffic.se", + "webtraffic.no" + ], + "resources": [ + "webtraffic.se", + "webtraffic.no" + ] + }, + "WiredMinds": { + "properties": [ + "wiredminds.com", + "wiredminds.de" + ], + "resources": [ + "wiredminds.com", + "wiredminds.de" + ] + }, + "Wirtualna Polska": { + "properties": [ + "wp.pl", + "adtotal.pl" + ], + "resources": [ + "wp.pl", + "adtotal.pl" + ] + }, + "WordStream": { + "properties": [ + "wordstream.com" + ], + "resources": [ + "wordstream.com" + ] + }, + "WPP": { + "properties": [ + "wpp.com", + "247realmedia.com", + "accelerator-media.com", + "acceleratorusa.com", + "decdna.net", + "decideinteractive.com", + "gmads.net", + "groupm.com", + "kantarmedia.com", + "mecglobal.com", + "mindshare.nl", + "mookie1.com", + "pm14.com", + "realmedia.com", + "targ.ad", + "themig.com", + "xaxis.com", + "compete.com" + ], + "resources": [ + "wpp.com", + "247realmedia.com", + "accelerator-media.com", + "acceleratorusa.com", + "decdna.net", + "decideinteractive.com", + "gmads.net", + "groupm.com", + "kantarmedia.com", + "mecglobal.com", + "mindshare.nl", + "mookie1.com", + "pm14.com", + "realmedia.com", + "targ.ad", + "themig.com", + "xaxis.com", + "compete.com" + ] + }, + "xAd": { + "properties": [ + "xad.com" + ], + "resources": [ + "xad.com" + ] + }, + "Xertive Media": { + "properties": [ + "xertivemedia.com", + "admanager-xertive.com" + ], + "resources": [ + "xertivemedia.com", + "admanager-xertive.com" + ] + }, + "xplosion interactive": { + "properties": [ + "xplosion.de" + ], + "resources": [ + "xplosion.de" + ] + }, + "Xrost DS": { + "properties": [ + "adplan-ds.com" + ], + "resources": [ + "adplan-ds.com" + ] + }, + "Yabuka": { + "properties": [ + "yabuka.com" + ], + "resources": [ + "yabuka.com" + ] + }, + "Yandex": { + "properties": [ + "yandex.com", + "web-visor.com", + "moikrug.ru", + "yandex.ru", + "yandex.st", + "yandex.ua", + "yandex.com.tr", + "yandex.by" + ], + "resources": [ + "yandex.com", + "web-visor.com", + "moikrug.ru", + "yandex.ru", + "yandex.st", + "yandex.ua", + "yandex.com.tr", + "yandex.by" + ] + }, + "Ybrant Digital": { + "properties": [ + "ybrantdigital.com", + "addynamix.com", + "adserverplus.com", + "oridian.com" + ], + "resources": [ + "ybrantdigital.com", + "addynamix.com", + "adserverplus.com", + "oridian.com" + ] + }, + "YD": { + "properties": [ + "ydworld.com", + "yieldivision.com" + ], + "resources": [ + "ydworld.com", + "yieldivision.com" + ] + }, + "YellowHammer": { + "properties": [ + "yhmg.com", + "attracto.com", + "clickhype.com", + "yellowhammermg.com" + ], + "resources": [ + "yhmg.com", + "attracto.com", + "clickhype.com", + "yellowhammermg.com" + ] + }, + "YieldAds": { + "properties": [ + "yieldads.com" + ], + "resources": [ + "yieldads.com" + ] + }, + "YieldBuild": { + "properties": [ + "yieldbuild.com" + ], + "resources": [ + "yieldbuild.com" + ] + }, + "Yieldlab": { + "properties": [ + "yieldlab.de", + "yieldlab.net" + ], + "resources": [ + "yieldlab.de", + "yieldlab.net" + ] + }, + "YOC": { + "properties": [ + "yoc.com" + ], + "resources": [ + "yoc.com" + ] + }, + "youknowbest": { + "properties": [ + "youknowbest.com" + ], + "resources": [ + "youknowbest.com" + ] + }, + "YuMe": { + "properties": [ + "yume.com", + "yumenetworks.com" + ], + "resources": [ + "yume.com", + "yumenetworks.com" + ] + }, + "Zango": { + "properties": [ + "zango.com", + "metricsdirect.com" + ], + "resources": [ + "zango.com", + "metricsdirect.com" + ] + }, + "zanox": { + "properties": [ + "zanox.com", + "buy.at", + "zanox-affiliate.de" + ], + "resources": [ + "zanox.com", + "buy.at", + "zanox-affiliate.de" + ] + }, + "zapunited": { + "properties": [ + "zapunited.com", + "zaparena.com" + ], + "resources": [ + "zapunited.com", + "zaparena.com" + ] + }, + "ZEDO": { + "properties": [ + "zedo.com", + "zincx.com" + ], + "resources": [ + "zedo.com", + "zincx.com" + ] + }, + "Zemanta": { + "properties": [ + "zemanta.com" + ], + "resources": [ + "zemanta.com" + ] + }, + "ZestAd": { + "properties": [ + "zestad.com" + ], + "resources": [ + "zestad.com" + ] + }, + "Zeta Email Solutions": { + "properties": [ + "zetaemailsolutions.com", + "insightgrit.com" + ], + "resources": [ + "zetaemailsolutions.com", + "insightgrit.com" + ] + }, + "Zumobi": { + "properties": [ + "zumobi.com" + ], + "resources": [ + "zumobi.com" + ] + }, + "63 Squares": { + "properties": [ + "63squares.com", + "i-stats.com" + ], + "resources": [ + "63squares.com", + "i-stats.com" + ] + }, + "Acxiom": { + "properties": [ + "acxiom.com", + "mm7.net" + ], + "resources": [ + "acxiom.com", + "mm7.net" + ] + }, + "AddFreeStats": { + "properties": [ + "addfreestats.com", + "3dstats.com" + ], + "resources": [ + "addfreestats.com", + "3dstats.com" + ] + }, + "Amadesa": { + "properties": [ + "amadesa.com" + ], + "resources": [ + "amadesa.com" + ] + }, + "anormal-media.de": { + "properties": [ + "anormal-media.de", + "anormal-tracker.de" + ], + "resources": [ + "anormal-media.de", + "anormal-tracker.de" + ] + }, + "Attracta": { + "properties": [ + "attracta.com" + ], + "resources": [ + "attracta.com" + ] + }, + "Automattic": { + "properties": [ + "automattic.com", + "polldaddy.com", + "gravatar.com", + "intensedebate.com" + ], + "resources": [ + "automattic.com", + "polldaddy.com", + "gravatar.com", + "intensedebate.com" + ] + }, + "Awio": { + "properties": [ + "awio.com", + "w3counter.com", + "w3roi.com" + ], + "resources": [ + "awio.com", + "w3counter.com", + "w3roi.com" + ] + }, + "Belstat": { + "properties": [ + "belstat.com", + "belstat.be", + "belstat.de", + "belstat.fr", + "belstat.nl" + ], + "resources": [ + "belstat.com", + "belstat.be", + "belstat.de", + "belstat.fr", + "belstat.nl" + ] + }, + "BlogCounter.com": { + "properties": [ + "blogcounter.de" + ], + "resources": [ + "blogcounter.de" + ] + }, + "Bluemetrix": { + "properties": [ + "bluemetrix.com", + "bmmetrix.com" + ], + "resources": [ + "bluemetrix.com", + "bmmetrix.com" + ] + }, + "Branica": { + "properties": [ + "branica.com" + ], + "resources": [ + "branica.com" + ] + }, + "BrightEdge": { + "properties": [ + "brightedge.com" + ], + "resources": [ + "brightedge.com" + ] + }, + "Bubblestat": { + "properties": [ + "bubblestat.com" + ], + "resources": [ + "bubblestat.com" + ] + }, + "C3 Metrics": { + "properties": [ + "c3metrics.com", + "attributionmodel.com", + "c3tag.com" + ], + "resources": [ + "c3metrics.com", + "attributionmodel.com", + "c3tag.com" + ] + }, + "Chartbeat": { + "properties": [ + "chartbeat.com", + "chartbeat.net" + ], + "resources": [ + "chartbeat.com", + "chartbeat.net" + ] + }, + "Clickdensity": { + "properties": [ + "clickdensity.com" + ], + "resources": [ + "clickdensity.com" + ] + }, + "ClickTale": { + "properties": [ + "clicktale.com", + "clicktale.net", + "pantherssl.com" + ], + "resources": [ + "clicktale.com", + "clicktale.net", + "pantherssl.com" + ] + }, + "ClixMetrix": { + "properties": [ + "clixmetrix.com" + ], + "resources": [ + "clixmetrix.com" + ] + }, + "Clixpy": { + "properties": [ + "clixpy.com" + ], + "resources": [ + "clixpy.com" + ] + }, + "ClustrMaps": { + "properties": [ + "clustrmaps.com" + ], + "resources": [ + "clustrmaps.com" + ] + }, + "CNZZ": { + "properties": [ + "cnzz.com" + ], + "resources": [ + "cnzz.com" + ] + }, + "Compuware": { + "properties": [ + "compuware.com", + "axf8.net", + "gomez.com" + ], + "resources": [ + "compuware.com", + "axf8.net", + "gomez.com" + ] + }, + "Connexity": { + "properties": [ + "connexity.com" + ], + "resources": [ + "connexity.com" + ] + }, + "Convert Insights": { + "properties": [ + "convert.com", + "reedge.com" + ], + "resources": [ + "convert.com", + "reedge.com" + ] + }, + "Convertro": { + "properties": [ + "convertro.com" + ], + "resources": [ + "convertro.com" + ] + }, + "Crazy Egg": { + "properties": [ + "crazyegg.com", + "cetrk.com" + ], + "resources": [ + "crazyegg.com", + "cetrk.com" + ] + }, + "Crowd Science": { + "properties": [ + "crowdscience.com" + ], + "resources": [ + "crowdscience.com" + ] + }, + "Dataium": { + "properties": [ + "dataium.com", + "collserve.com" + ], + "resources": [ + "dataium.com", + "collserve.com" + ] + }, + "Demandbase": { + "properties": [ + "demandbase.com" + ], + "resources": [ + "demandbase.com" + ] + }, + "DirectCORP": { + "properties": [ + "directcorp.de", + "ipcounter.de" + ], + "resources": [ + "directcorp.de", + "ipcounter.de" + ] + }, + "dwstat.com": { + "properties": [ + "dwstat.cn" + ], + "resources": [ + "dwstat.cn" + ] + }, + "Eloqua": { + "properties": [ + "eloqua.com" + ], + "resources": [ + "eloqua.com" + ] + }, + "Encore": { + "properties": [ + "encoremetrics.com", + "sitecompass.com" + ], + "resources": [ + "encoremetrics.com", + "sitecompass.com" + ] + }, + "eProof.com": { + "properties": [ + "eproof.com" + ], + "resources": [ + "eproof.com" + ] + }, + "etracker": { + "properties": [ + "etracker.com", + "etracker.de", + "sedotracker.com", + "sedotracker.de" + ], + "resources": [ + "etracker.com", + "etracker.de", + "sedotracker.com", + "sedotracker.de" + ] + }, + "Eulerian Technologies": { + "properties": [ + "eulerian.com", + "eulerian.net" + ], + "resources": [ + "eulerian.com", + "eulerian.net" + ] + }, + "eXTReMe digital": { + "properties": [ + "extremetracking.com", + "extreme-dm.com" + ], + "resources": [ + "extremetracking.com", + "extreme-dm.com" + ] + }, + "Feedjit": { + "properties": [ + "feedjit.com" + ], + "resources": [ + "feedjit.com" + ] + }, + "Footprint": { + "properties": [ + "footprintlive.com" + ], + "resources": [ + "footprintlive.com" + ] + }, + "Free Online Users": { + "properties": [ + "freeonlineusers.com" + ], + "resources": [ + "freeonlineusers.com" + ] + }, + "Free-PageRank.com": { + "properties": [ + "free-pagerank.com" + ], + "resources": [ + "free-pagerank.com" + ] + }, + "GfK Group": { + "properties": [ + "gfk.com", + "daphnecm.com", + "gfkdaphne.com" + ], + "resources": [ + "gfk.com", + "daphnecm.com", + "gfkdaphne.com" + ] + }, + "GitHub": { + "properties": [ + "github.com", + "gaug.es" + ], + "resources": [ + "github.com", + "gaug.es" + ] + }, + "Go Daddy": { + "properties": [ + "godaddy.com", + "trafficfacts.com" + ], + "resources": [ + "godaddy.com", + "trafficfacts.com" + ] + }, + "GoSquared": { + "properties": [ + "gosquared.com" + ], + "resources": [ + "gosquared.com" + ] + }, + "GoStats": { + "properties": [ + "gostats.com" + ], + "resources": [ + "gostats.com" + ] + }, + "GTop": { + "properties": [ + "gtop.ro", + "gtopstats.com" + ], + "resources": [ + "gtop.ro", + "gtopstats.com" + ] + }, + "Histats": { + "properties": [ + "histats.com" + ], + "resources": [ + "histats.com" + ] + }, + "Hit Sniffer": { + "properties": [ + "hitsniffer.com" + ], + "resources": [ + "hitsniffer.com" + ] + }, + "HitsLink": { + "properties": [ + "hitslink.com" + ], + "resources": [ + "hitslink.com" + ] + }, + "InboundWriter": { + "properties": [ + "inboundwriter.com", + "enquisite.com" + ], + "resources": [ + "inboundwriter.com", + "enquisite.com" + ] + }, + "INFOnline": { + "properties": [ + "infonline.de", + "ioam.de", + "ivwbox.de" + ], + "resources": [ + "infonline.de", + "ioam.de", + "ivwbox.de" + ] + }, + "InfoStars": { + "properties": [ + "infostars.ru", + "hotlog.ru" + ], + "resources": [ + "infostars.ru", + "hotlog.ru" + ] + }, + "Inspectlet": { + "properties": [ + "inspectlet.com" + ], + "resources": [ + "inspectlet.com" + ] + }, + "IntelligenceFocus": { + "properties": [ + "intelligencefocus.com", + "domodomain.com" + ], + "resources": [ + "intelligencefocus.com", + "domodomain.com" + ] + }, + "Intercom": { + "properties": [ + "intercom.io" + ], + "resources": [ + "intercom.io" + ] + }, + "iPerceptions": { + "properties": [ + "iperceptions.com" + ], + "resources": [ + "iperceptions.com" + ] + }, + "KeyMetric": { + "properties": [ + "keymetric.net" + ], + "resources": [ + "keymetric.net" + ] + }, + "KISSmetrics": { + "properties": [ + "kissmetrics.com" + ], + "resources": [ + "kissmetrics.com" + ] + }, + "LineZing": { + "properties": [ + "linezing.com" + ], + "resources": [ + "linezing.com" + ] + }, + "LivePerson": { + "properties": [ + "liveperson.com", + "nuconomy.com", + "liveperson.net" + ], + "resources": [ + "liveperson.com", + "nuconomy.com", + "liveperson.net" + ] + }, + "Logdy": { + "properties": [ + "logdy.com" + ], + "resources": [ + "logdy.com" + ] + }, + "Lotame": { + "properties": [ + "lotame.com", + "crwdcntrl.net" + ], + "resources": [ + "lotame.com", + "crwdcntrl.net" + ] + }, + "Lynchpin": { + "properties": [ + "lynchpin.com", + "lypn.com" + ], + "resources": [ + "lynchpin.com", + "lypn.com" + ] + }, + "Lyris": { + "properties": [ + "lyris.com", + "clicktracks.com" + ], + "resources": [ + "lyris.com", + "clicktracks.com" + ] + }, + "Lytiks": { + "properties": [ + "lytiks.com" + ], + "resources": [ + "lytiks.com" + ] + }, + "Marktest": { + "properties": [ + "marktest.com", + "marktest.pt" + ], + "resources": [ + "marktest.com", + "marktest.pt" + ] + }, + "Maxymiser": { + "properties": [ + "maxymiser.com" + ], + "resources": [ + "maxymiser.com" + ] + }, + "Médiamétrie-eStat": { + "properties": [ + "mediametrie-estat.com", + "estat.com" + ], + "resources": [ + "mediametrie-estat.com", + "estat.com" + ] + }, + "Meetrics": { + "properties": [ + "meetrics.de", + "meetrics.net", + "de.com" + ], + "resources": [ + "meetrics.de", + "meetrics.net", + "de.com" + ] + }, + "MetrixLab": { + "properties": [ + "metrixlab.com", + "crm-metrix.com", + "customerconversio.com" + ], + "resources": [ + "metrixlab.com", + "crm-metrix.com", + "customerconversio.com" + ] + }, + "Mixpanel": { + "properties": [ + "mixpanel.com" + ], + "resources": [ + "mixpanel.com" + ] + }, + "Mongoose Metrics": { + "properties": [ + "mongoosemetrics.com" + ], + "resources": [ + "mongoosemetrics.com" + ] + }, + "Monitus": { + "properties": [ + "monitus.net" + ], + "resources": [ + "monitus.net" + ] + }, + "motigo": { + "properties": [ + "motigo.com", + "nedstatbasic.net" + ], + "resources": [ + "motigo.com", + "nedstatbasic.net" + ] + }, + "Mouseflow": { + "properties": [ + "mouseflow.com" + ], + "resources": [ + "mouseflow.com" + ] + }, + "MyPagerank.Net": { + "properties": [ + "mypagerank.net" + ], + "resources": [ + "mypagerank.net" + ] + }, + "Net Applications": { + "properties": [ + "netapplications.com", + "hitsprocessor.com" + ], + "resources": [ + "netapplications.com", + "hitsprocessor.com" + ] + }, + "New Relic": { + "properties": [ + "newrelic.com" + ], + "resources": [ + "newrelic.com" + ] + }, + "NewsRight": { + "properties": [ + "newsright.com", + "apnewsregistry.com" + ], + "resources": [ + "newsright.com", + "apnewsregistry.com" + ] + }, + "NextSTAT": { + "properties": [ + "nextstat.com" + ], + "resources": [ + "nextstat.com" + ] + }, + "nurago": { + "properties": [ + "nurago.com", + "nurago.de", + "sensic.net" + ], + "resources": [ + "nurago.com", + "nurago.de", + "sensic.net" + ] + }, + "Observer": { + "properties": [ + "observerapp.com" + ], + "resources": [ + "observerapp.com" + ] + }, + "OneStat": { + "properties": [ + "onestat.com" + ], + "resources": [ + "onestat.com" + ] + }, + "Openstat": { + "properties": [ + "openstat.ru", + "spylog.com" + ], + "resources": [ + "openstat.ru", + "spylog.com" + ] + }, + "Opentracker": { + "properties": [ + "opentracker.net" + ], + "resources": [ + "opentracker.net" + ] + }, + "ÖWA": { + "properties": [ + "oewa.at", + "oewabox.at" + ], + "resources": [ + "oewa.at", + "oewabox.at" + ] + }, + "PersianStat.com": { + "properties": [ + "persianstat.com" + ], + "resources": [ + "persianstat.com" + ] + }, + "Phonalytics": { + "properties": [ + "phonalytics.com" + ], + "resources": [ + "phonalytics.com" + ] + }, + "phpMyVisites": { + "properties": [ + "phpmyvisites.us" + ], + "resources": [ + "phpmyvisites.us" + ] + }, + "Piwik": { + "properties": [ + "piwik.org" + ], + "resources": [ + "piwik.org" + ] + }, + "Pronunciator": { + "properties": [ + "pronunciator.com", + "visitorville.com" + ], + "resources": [ + "pronunciator.com", + "visitorville.com" + ] + }, + "Qualaroo": { + "properties": [ + "qualaroo.com", + "kissinsights.com" + ], + "resources": [ + "qualaroo.com", + "kissinsights.com" + ] + }, + "Quintelligence": { + "properties": [ + "quintelligence.com" + ], + "resources": [ + "quintelligence.com" + ] + }, + "RadarURL": { + "properties": [ + "radarurl.com" + ], + "resources": [ + "radarurl.com" + ] + }, + "Research Now": { + "properties": [ + "researchnow.com", + "valuedopinions.co.uk" + ], + "resources": [ + "researchnow.com", + "valuedopinions.co.uk" + ] + }, + "Roxr": { + "properties": [ + "roxr.net", + "getclicky.com", + "staticstuff.net" + ], + "resources": [ + "roxr.net", + "getclicky.com", + "staticstuff.net" + ] + }, + "Safecount": { + "properties": [ + "safecount.net", + "dl-rms.com", + "dlqm.net", + "questionmarket.com" + ], + "resources": [ + "safecount.net", + "dl-rms.com", + "dlqm.net", + "questionmarket.com" + ] + }, + "SageMetrics": { + "properties": [ + "sagemetrics.com", + "sageanalyst.net" + ], + "resources": [ + "sagemetrics.com", + "sageanalyst.net" + ] + }, + "Segment.io": { + "properties": [ + "segment.io" + ], + "resources": [ + "segment.io" + ] + }, + "SeeVolution": { + "properties": [ + "seevolution.com", + "svlu.net" + ], + "resources": [ + "seevolution.com", + "svlu.net" + ] + }, + "ShinyStat": { + "properties": [ + "shinystat.com" + ], + "resources": [ + "shinystat.com" + ] + }, + "Snoobi": { + "properties": [ + "snoobi.com" + ], + "resources": [ + "snoobi.com" + ] + }, + "StatCounter": { + "properties": [ + "statcounter.com" + ], + "resources": [ + "statcounter.com" + ] + }, + "Statisfy": { + "properties": [ + "statisfy.net" + ], + "resources": [ + "statisfy.net" + ] + }, + "STATSIT": { + "properties": [ + "statsit.com" + ], + "resources": [ + "statsit.com" + ] + }, + "Stratigent": { + "properties": [ + "stratigent.com" + ], + "resources": [ + "stratigent.com" + ] + }, + "stat4u": { + "properties": [ + "4u.pl" + ], + "resources": [ + "4u.pl" + ] + }, + "TENSQUARE": { + "properties": [ + "tensquare.com" + ], + "resources": [ + "tensquare.com" + ] + }, + "The Heron Partnership": { + "properties": [ + "www.heronpartners.com.au", + "heronpartners.com.au", + "marinsm.com" + ], + "resources": [ + "www.heronpartners.com.au", + "heronpartners.com.au", + "marinsm.com" + ] + }, + "TNS": { + "properties": [ + "tnsglobal.com", + "sesamestats.com", + "statistik-gallup.net", + "tns-counter.ru", + "tns-cs.net" + ], + "resources": [ + "tnsglobal.com", + "sesamestats.com", + "statistik-gallup.net", + "tns-counter.ru", + "tns-cs.net" + ] + }, + "Umbel": { + "properties": [ + "umbel.com" + ], + "resources": [ + "umbel.com" + ] + }, + "User Local": { + "properties": [ + "nakanohito.jp" + ], + "resources": [ + "nakanohito.jp" + ] + }, + "Vertster": { + "properties": [ + "vertster.com" + ], + "resources": [ + "vertster.com" + ] + }, + "VisiStat": { + "properties": [ + "visistat.com", + "sa-as.com" + ], + "resources": [ + "visistat.com", + "sa-as.com" + ] + }, + "Visit Streamer": { + "properties": [ + "visitstreamer.com" + ], + "resources": [ + "visitstreamer.com" + ] + }, + "vistrac": { + "properties": [ + "vistrac.com" + ], + "resources": [ + "vistrac.com" + ] + }, + "ViziSense": { + "properties": [ + "vizisense.com", + "vizisense.net" + ], + "resources": [ + "vizisense.com", + "vizisense.net" + ] + }, + "Web Stats": { + "properties": [ + "onlinewebstats.com" + ], + "resources": [ + "onlinewebstats.com" + ] + }, + "Web Tracking Services": { + "properties": [ + "webtrackingservices.com", + "web-stat.com" + ], + "resources": [ + "webtrackingservices.com", + "web-stat.com" + ] + }, + "Web Traxs": { + "properties": [ + "webtraxs.com" + ], + "resources": [ + "webtraxs.com" + ] + }, + "Webclicktracker": { + "properties": [ + "webclicktracker.com" + ], + "resources": [ + "webclicktracker.com" + ] + }, + "Webtrekk": { + "properties": [ + "webtrekk.com", + "webtrekk.net" + ], + "resources": [ + "webtrekk.com", + "webtrekk.net" + ] + }, + "Webtrends": { + "properties": [ + "webtrends.com", + "reinvigorate.net", + "webtrendslive.com" + ], + "resources": [ + "webtrends.com", + "reinvigorate.net", + "webtrendslive.com" + ] + }, + "whos.amung.us": { + "properties": [ + "amung.us" + ], + "resources": [ + "amung.us" + ] + }, + "Woopra": { + "properties": [ + "woopra.com", + "woopra-ns.com" + ], + "resources": [ + "woopra.com", + "woopra-ns.com" + ] + }, + "WOW Analytics": { + "properties": [ + "wowanalytics.co.uk" + ], + "resources": [ + "wowanalytics.co.uk" + ] + }, + "Wysistat": { + "properties": [ + "wysistat.com" + ], + "resources": [ + "wysistat.com" + ] + }, + "YellowTracker": { + "properties": [ + "yellowtracker.com" + ], + "resources": [ + "yellowtracker.com" + ] + }, + "ActivEngage": { + "properties": [ + "activengage.com" + ], + "resources": [ + "activengage.com" + ] + }, + "Adap.tv": { + "properties": [ + "adap.tv" + ], + "resources": [ + "adap.tv" + ] + }, + "AKQA": { + "properties": [ + "akqa.com", + "srtk.net" + ], + "resources": [ + "akqa.com", + "srtk.net" + ] + }, + "Baycloud Systems": { + "properties": [ + "cookieq.com" + ], + "resources": [ + "cookieq.com" + ] + }, + "Baynote": { + "properties": [ + "baynote.com", + "baynote.net" + ], + "resources": [ + "baynote.com", + "baynote.net" + ] + }, + "Bazaarvoice": { + "properties": [ + "bazaarvoice.com" + ], + "resources": [ + "bazaarvoice.com" + ] + }, + "BigDoor": { + "properties": [ + "bigdoor.com", + "onetruefan.com" + ], + "resources": [ + "bigdoor.com", + "onetruefan.com" + ] + }, + "Brightcove": { + "properties": [ + "brightcove.com" + ], + "resources": [ + "brightcove.com" + ] + }, + "Browser-Update.org": { + "properties": [ + "browser-update.org" + ], + "resources": [ + "browser-update.org" + ] + }, + "BTBuckets": { + "properties": [ + "btbuckets.com" + ], + "resources": [ + "btbuckets.com" + ] + }, + "Buffer": { + "properties": [ + "bufferapp.com" + ], + "resources": [ + "bufferapp.com" + ] + }, + "Bunchball": { + "properties": [ + "bunchball.com" + ], + "resources": [ + "bunchball.com" + ] + }, + "buySAFE": { + "properties": [ + "buysafe.com" + ], + "resources": [ + "buysafe.com" + ] + }, + "BuzzFeed": { + "properties": [ + "buzzfeed.com", + "buzzfed.com" + ], + "resources": [ + "buzzfeed.com", + "buzzfed.com" + ] + }, + "Cbox": { + "properties": [ + "cbox.ws" + ], + "resources": [ + "cbox.ws" + ] + }, + "CBS Interactive": { + "properties": [ + "cbsinteractive.com", + "com.com" + ], + "resources": [ + "cbsinteractive.com", + "com.com" + ] + }, + "Cedexis": { + "properties": [ + "cedexis.com", + "cedexis.net" + ], + "resources": [ + "cedexis.com", + "cedexis.net" + ] + }, + "Certona": { + "properties": [ + "certona.com", + "res-x.com" + ], + "resources": [ + "certona.com", + "res-x.com" + ] + }, + "ClipSyndicate": { + "properties": [ + "clipsyndicate.com" + ], + "resources": [ + "clipsyndicate.com" + ] + }, + "Collarity": { + "properties": [ + "collarity.com" + ], + "resources": [ + "collarity.com" + ] + }, + "Conduit": { + "properties": [ + "conduit.com", + "conduit-banners.com", + "conduit-services.com", + "wibiya.com" + ], + "resources": [ + "conduit.com", + "conduit-banners.com", + "conduit-services.com", + "wibiya.com" + ] + }, + "Congoo": { + "properties": [ + "congoo.com" + ], + "resources": [ + "congoo.com" + ] + }, + "Contact At Once!": { + "properties": [ + "contactatonce.com" + ], + "resources": [ + "contactatonce.com" + ] + }, + "Conviva": { + "properties": [ + "conviva.com" + ], + "resources": [ + "conviva.com" + ] + }, + "DailyMe": { + "properties": [ + "dailyme.com", + "newstogram.com" + ], + "resources": [ + "dailyme.com", + "newstogram.com" + ] + }, + "DataSift": { + "properties": [ + "datasift.com", + "tweetmeme.com" + ], + "resources": [ + "datasift.com", + "tweetmeme.com" + ] + }, + "DG": { + "properties": [ + "dgit.com", + "eyeblaster.com", + "eyewonder.com", + "mdadx.com", + "serving-sys.com", + "unicast.com" + ], + "resources": [ + "dgit.com", + "eyeblaster.com", + "eyewonder.com", + "mdadx.com", + "serving-sys.com", + "unicast.com" + ] + }, + "Disqus": { + "properties": [ + "disqus.com" + ], + "resources": [ + "disqus.com" + ] + }, + "Echo": { + "properties": [ + "aboutecho.com", + "haloscan.com", + "js-kit.com" + ], + "resources": [ + "aboutecho.com", + "haloscan.com", + "js-kit.com" + ] + }, + "Flattr": { + "properties": [ + "flattr.com" + ], + "resources": [ + "flattr.com" + ] + }, + "FreeWheel": { + "properties": [ + "freewheel.tv", + "fwmrm.net" + ], + "resources": [ + "freewheel.tv", + "fwmrm.net" + ] + }, + "Get Satisfaction": { + "properties": [ + "getsatisfaction.com" + ], + "resources": [ + "getsatisfaction.com" + ] + }, + "Gigya": { + "properties": [ + "gigya.com", + "gigcount.com" + ], + "resources": [ + "gigya.com", + "gigcount.com" + ] + }, + "Global Takeoff": { + "properties": [ + "globaltakeoff.com", + "globaltakeoff.net" + ], + "resources": [ + "globaltakeoff.com", + "globaltakeoff.net" + ] + }, + "GoGrid": { + "properties": [ + "gogrid.com", + "formalyzer.com", + "komli.net" + ], + "resources": [ + "gogrid.com", + "formalyzer.com", + "komli.net" + ] + }, + "Gravity": { + "properties": [ + "gravity.com", + "grvcdn.com" + ], + "resources": [ + "gravity.com", + "grvcdn.com" + ] + }, + "Heyzap": { + "properties": [ + "heyzap.com" + ], + "resources": [ + "heyzap.com" + ] + }, + "HubSpot": { + "properties": [ + "hubspot.com" + ], + "resources": [ + "hubspot.com" + ] + }, + "iovation": { + "properties": [ + "iovation.com", + "iesnare.com" + ], + "resources": [ + "iovation.com", + "iesnare.com" + ] + }, + "Kaltura": { + "properties": [ + "kaltura.com" + ], + "resources": [ + "kaltura.com" + ] + }, + "kikin": { + "properties": [ + "kikin.com" + ], + "resources": [ + "kikin.com" + ] + }, + "Limelight Networks": { + "properties": [ + "limelight.com", + "clickability.com", + "llnwd.net" + ], + "resources": [ + "limelight.com", + "clickability.com", + "llnwd.net" + ] + }, + "Livefyre": { + "properties": [ + "livefyre.com", + "fyre.co" + ], + "resources": [ + "livefyre.com", + "fyre.co" + ] + }, + "LiveRail": { + "properties": [ + "liverail.com" + ], + "resources": [ + "liverail.com" + ] + }, + "LongTail Video": { + "properties": [ + "longtailvideo.com", + "ltassrv.com" + ], + "resources": [ + "longtailvideo.com", + "ltassrv.com" + ] + }, + "Luminate": { + "properties": [ + "luminate.com", + "pixazza.com" + ], + "resources": [ + "luminate.com", + "pixazza.com" + ] + }, + "Markit": { + "properties": [ + "markit.com", + "wsod.com" + ], + "resources": [ + "markit.com", + "wsod.com" + ] + }, + "MashLogic": { + "properties": [ + "mashlogic.com" + ], + "resources": [ + "mashlogic.com" + ] + }, + "McAfee": { + "properties": [ + "mcafee.com", + "scanalert.com" + ], + "resources": [ + "mcafee.com", + "scanalert.com" + ] + }, + "NDN": { + "properties": [ + "newsinc.com" + ], + "resources": [ + "newsinc.com" + ] + }, + "Oberon Media": { + "properties": [ + "oberon-media.com", + "blaze.com" + ], + "resources": [ + "oberon-media.com", + "blaze.com" + ] + }, + "Olark": { + "properties": [ + "olark.com" + ], + "resources": [ + "olark.com" + ] + }, + "Ooyala": { + "properties": [ + "ooyala.com", + "oo4.com" + ], + "resources": [ + "ooyala.com", + "oo4.com" + ] + }, + "Optimizely": { + "properties": [ + "optimizely.com" + ], + "resources": [ + "optimizely.com" + ] + }, + "Parse.ly": { + "properties": [ + "parsely.com" + ], + "resources": [ + "parsely.com" + ] + }, + "Peerius": { + "properties": [ + "peerius.com" + ], + "resources": [ + "peerius.com" + ] + }, + "Pinterest": { + "properties": [ + "pinterest.com" + ], + "resources": [ + "pinterest.com" + ] + }, + "PunchTab": { + "properties": [ + "punchtab.com" + ], + "resources": [ + "punchtab.com" + ] + }, + "RIM": { + "properties": [ + "rim.com", + "scoreloop.com" + ], + "resources": [ + "rim.com", + "scoreloop.com" + ] + }, + "SAY": { + "properties": [ + "saymedia.com", + "typepad.com", + "videoegg.com" + ], + "resources": [ + "saymedia.com", + "typepad.com", + "videoegg.com" + ] + }, + "ScribeFire": { + "properties": [ + "scribefire.com" + ], + "resources": [ + "scribefire.com" + ] + }, + "Six Apart": { + "properties": [ + "sixapart.com" + ], + "resources": [ + "sixapart.com" + ] + }, + "Skribit": { + "properties": [ + "skribit.com" + ], + "resources": [ + "skribit.com" + ] + }, + "SnapEngage": { + "properties": [ + "snapengage.com" + ], + "resources": [ + "snapengage.com" + ] + }, + "Spring Metrics": { + "properties": [ + "springmetrics.com" + ], + "resources": [ + "springmetrics.com" + ] + }, + "Superfish": { + "properties": [ + "superfish.com" + ], + "resources": [ + "superfish.com" + ] + }, + "Synacor": { + "properties": [ + "synacor.com" + ], + "resources": [ + "synacor.com" + ] + }, + "ThingLink": { + "properties": [ + "thinglink.com" + ], + "resources": [ + "thinglink.com" + ] + }, + "Thismoment": { + "properties": [ + "thismoment.com" + ], + "resources": [ + "thismoment.com" + ] + }, + "Thummit": { + "properties": [ + "thummit.com" + ], + "resources": [ + "thummit.com" + ] + }, + "Topsy": { + "properties": [ + "topsy.com" + ], + "resources": [ + "topsy.com" + ] + }, + "TraceMyIP.org": { + "properties": [ + "tracemyip.org" + ], + "resources": [ + "tracemyip.org" + ] + }, + "Trackset": { + "properties": [ + "trackset.com" + ], + "resources": [ + "trackset.com" + ] + }, + "Trovus": { + "properties": [ + "www.trovus.co.uk", + "trovus.co.uk" + ], + "resources": [ + "www.trovus.co.uk", + "trovus.co.uk" + ] + }, + "Trumba": { + "properties": [ + "trumba.com" + ], + "resources": [ + "trumba.com" + ] + }, + "Tumblr": { + "properties": [ + "tumblr.com" + ], + "resources": [ + "tumblr.com" + ] + }, + "Turn": { + "properties": [ + "turn.com" + ], + "resources": [ + "turn.com" + ] + }, + "TurnTo": { + "properties": [ + "turntonetworks.com", + "turnto.com" + ], + "resources": [ + "turntonetworks.com", + "turnto.com" + ] + }, + "Tweetboard": { + "properties": [ + "tweetboard.com" + ], + "resources": [ + "tweetboard.com" + ] + }, + "Twitter Counter": { + "properties": [ + "twittercounter.com" + ], + "resources": [ + "twittercounter.com" + ] + }, + "UberMedia": { + "properties": [ + "ubermedia.com", + "tweetup.com" + ], + "resources": [ + "ubermedia.com", + "tweetup.com" + ] + }, + "UberTags": { + "properties": [ + "ubertags.com" + ], + "resources": [ + "ubertags.com" + ] + }, + "Unbounce": { + "properties": [ + "unbounce.com" + ], + "resources": [ + "unbounce.com" + ] + }, + "Uptrends": { + "properties": [ + "uptrends.com" + ], + "resources": [ + "uptrends.com" + ] + }, + "Usability Sciences": { + "properties": [ + "usabilitysciences.com", + "webiqonline.com" + ], + "resources": [ + "usabilitysciences.com", + "webiqonline.com" + ] + }, + "UserVoice": { + "properties": [ + "uservoice.com" + ], + "resources": [ + "uservoice.com" + ] + }, + "Vertical Acuity": { + "properties": [ + "verticalacuity.com" + ], + "resources": [ + "verticalacuity.com" + ] + }, + "VG WORT": { + "properties": [ + "vgwort.de" + ], + "resources": [ + "vgwort.de" + ] + }, + "Videology": { + "properties": [ + "videologygroup.com", + "tidaltv.com" + ], + "resources": [ + "videologygroup.com", + "tidaltv.com" + ] + }, + "Viewbix": { + "properties": [ + "viewbix.com", + "qoof.com" + ], + "resources": [ + "viewbix.com", + "qoof.com" + ] + }, + "Vimeo": { + "properties": [ + "vimeo.com", + "vimeocdn.com" + ], + "resources": [ + "vimeo.com", + "vimeocdn.com" + ] + }, + "VINDICO": { + "properties": [ + "vindicogroup.com", + "vindicosuite.com" + ], + "resources": [ + "vindicogroup.com", + "vindicosuite.com" + ] + }, + "Visual Revenue": { + "properties": [ + "visualrevenue.com" + ], + "resources": [ + "visualrevenue.com" + ] + }, + "Voice2Page": { + "properties": [ + "voice2page.com" + ], + "resources": [ + "voice2page.com" + ] + }, + "WebsiteAlive": { + "properties": [ + "websitealive.com", + "websitealive0.com", + "websitealive1.com", + "websitealive2.com", + "websitealive3.com", + "websitealive4.com", + "websitealive5.com", + "websitealive6.com", + "websitealive7.com", + "websitealive8.com", + "websitealive9.com" + ], + "resources": [ + "websitealive.com" + ] + }, + "Wingify": { + "properties": [ + "wingify.com", + "visualwebsiteoptimizer.com" + ], + "resources": [ + "wingify.com", + "visualwebsiteoptimizer.com" + ] + }, + "Xtify": { + "properties": [ + "xtify.com" + ], + "resources": [ + "xtify.com" + ] + }, + "Zendesk": { + "properties": [ + "zendesk.com" + ], + "resources": [ + "zendesk.com" + ] + }, + "Zopim": { + "properties": [ + "zopim.com" + ], + "resources": [ + "zopim.com" + ] + }, + "AddThis": { + "properties": [ + "addthis.com", + "addthiscdn.com", + "addthisedge.com", + "clearspring.com", + "connectedads.net", + "xgraph.com", + "xgraph.net" + ], + "resources": [ + "addthis.com", + "addthiscdn.com", + "addthisedge.com", + "clearspring.com", + "connectedads.net", + "xgraph.com", + "xgraph.net" + ] + }, + "Causes": { + "properties": [ + "causes.com" + ], + "resources": [ + "causes.com" + ] + }, + "Digg": { + "properties": [ + "digg.com" + ], + "resources": [ + "digg.com" + ] + }, + "LinkedIn": { + "properties": [ + "linkedin.com", + "licdn.com" + ], + "resources": [ + "linkedin.com", + "licdn.com" + ] + }, + "Lockerz": { + "properties": [ + "lockerz.com", + "addtoany.com" + ], + "resources": [ + "lockerz.com", + "addtoany.com" + ] + }, + "Mail.Ru": { + "properties": [ + "mail.ru", + "list.ru" + ], + "resources": [ + "mail.ru", + "list.ru" + ] + }, + "Meebo": { + "properties": [ + "meebo.com", + "meebocdn.net" + ], + "resources": [ + "meebo.com", + "meebocdn.net" + ] + }, + "Papaya": { + "properties": [ + "papayamobile.com" + ], + "resources": [ + "papayamobile.com" + ] + }, + "reddit": { + "properties": [ + "reddit.com" + ], + "resources": [ + "reddit.com" + ] + }, + "ShareThis": { + "properties": [ + "sharethis.com" + ], + "resources": [ + "sharethis.com" + ] + }, + "Shareaholic": { + "properties": [ + "shareaholic.com", + "buzzster.com" + ], + "resources": [ + "shareaholic.com", + "buzzster.com" + ] + }, + "StumbleUpon": { + "properties": [ + "stumbleupon.com", + "stumble-upon.com" + ], + "resources": [ + "stumbleupon.com", + "stumble-upon.com" + ] + }, + "VKontakte": { + "properties": [ + "vk.com", + "userapi.com", + "vkontakte.ru" + ], + "resources": [ + "vk.com", + "userapi.com", + "vkontakte.ru" + ] + }, + "Yahoo!": { + "properties": [ + "flickr.com", + "yuilibrary.com", + "tumblr.com", + "yahoo.com", + "yahoostudios.com", + "yahoo.co.jp" + ], + "resources": [ + "adinterax.com", + "adrevolver.com", + "bluelithium.com", + "flickr.com", + "interclick.com", + "mybloglog.com", + "overture.com", + "rightmedia.com", + "rmxads.com", + "rocketmail.com", + "secure-adserver.com", + "staticflickr.com", + "yahooapis.com", + "yahoofs.com", + "yieldmanager.com", + "yieldmanager.net", + "yimg.com", + "yldmgrimg.net", + "ymail.com", + "yuilibrary.com", + "zenfs.com", + "tumblr.com", + "yahoo.com", + "yahoo.co.jp", + "yimg.jp", + "yahooapis.jp", + "flurry.com", + "dapper.net" + ] + } +} \ No newline at end of file diff --git a/shavar-prod-lists/google_mapping.json b/shavar-prod-lists/google_mapping.json new file mode 100644 index 0000000000..e09ce2fb3c --- /dev/null +++ b/shavar-prod-lists/google_mapping.json @@ -0,0 +1,55 @@ +{ + "categories": { + "Advertising": [ + { + "Google": { + "http://www.google.com/": [ + "2mdn.net", + "admeld.com", + "admob.com", + "cc-dt.com", + "destinationurl.com", + "doubleclick.net", + "adwords.google.com", + "googleadservices.com", + "googlesyndication.com", + "googletagservices.com", + "invitemedia.com", + "smtad.net", + "teracent.com", + "teracent.net", + "ytsa.net" + ] + } + } + ], + "Analytics": [ + { + "Google": { + "http://www.google.com/": [ + "google-analytics.com", + "postrank.com" + ] + } + } + ], + "Social": [ + { + "Google": { + "http://www.google.com/": [ + "developers.google.com", + "gmail.com", + "mail.google.com", + "inbox.google.com", + "orkut.com", + "plus.google.com", + "plusone.google.com", + "voice.google.com", + "wave.google.com", + "googlemail.com" + ] + } + } + ] + } +}

about:license