diff --git a/chat/preview/ImagePreview.vue b/chat/preview/ImagePreview.vue
index 09a26f5..332639d 100644
--- a/chat/preview/ImagePreview.vue
+++ b/chat/preview/ImagePreview.vue
@@ -1,6 +1,6 @@
 <template>
     <!-- hiding elements instead of using 'v-if' is used here as an optimization -->
-    <div class="image-preview-wrapper" :class="{interactive: sticky}" v-show="visible">
+    <div class="image-preview-wrapper" :class="{interactive: sticky, visible: visible}">
         <div class="image-preview-toolbar" v-show="sticky || debug">
             <a @click="toggleDevMode()" :class="{toggled: debug}" title="Debug Mode"><i class="fa fa-terminal"></i></a>
             <a @click="toggleJsMode()" :class="{toggled: runJs}" title="Expand Images"><i class="fa fa-magic"></i></a>
@@ -44,8 +44,12 @@
     import Timer = NodeJS.Timer;
     import IpcMessageEvent = Electron.IpcMessageEvent;
 
-    const screen = remote.screen;
+    import { ElectronBlocker } from '@cliqz/adblocker-electron';
+    import fetch from 'node-fetch';
 
+    // import { promises as fs } from 'fs';
+
+    const screen = remote.screen;
 
     interface DidFailLoadEvent extends Event {
         errorCode: number;
@@ -160,8 +164,11 @@
                     const e = event as DidFailLoadEvent;
 
                     if (e.errorCode < 0) {
-                      const url = webview.getURL();
-                      const qjs = this.jsMutator.getMutatorJsForSite(url, 'update-target-url');
+                      console.error('DID FAIL LOAD', event);
+                      const url = this.getUrl() || '';
+
+                      const qjs = this.jsMutator.getMutatorJsForSite(url, 'update-target-url')
+                        || this.jsMutator.getMutatorJsForSite(url, 'dom-ready');
 
                       // tslint:disable-next-line
                       this.executeJavaScript(qjs, 'did-fail-load-but-still-loading', event);
@@ -254,9 +261,45 @@
                 },
                 50
             );
+
+            // this.initAdBlocker();
         }
 
 
+        async initAdBlocker() {
+            const webview = this.getWebview();
+            const contents = remote.webContents.fromId(webview.getWebContentsId());
+
+            console.log('INITADBLOCKER');
+
+            const blocker = await ElectronBlocker.fromLists(
+                fetch,
+                [
+                    'https://easylist.to/easylist/easylist.txt',
+                    'https://easylist.to/easylist/easyprivacy.txt', // EasyPrivacy
+                    'https://easylist.to/easylist/fanboy-social.txt', // Fanboy Social
+                    'https://easylist.to/easylist/fanboy-annoyance.txt', // Fanboy Annoyances
+                    'https://filters.adtidy.org/extension/chromium/filters/2.txt', // AdGuard Base
+                    'https://filters.adtidy.org/extension/chromium/filters/11.txt', // AdGuard Mobile Ads
+                    'https://filters.adtidy.org/extension/chromium/filters/4.txt', // AdGuard Social Media
+                    'https://filters.adtidy.org/extension/chromium/filters/14.txt', // AdGuard Annoyances
+                    'https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/filters.txt', // uBlock Origin Filters
+                    'https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/privacy.txt', // uBlock Origin Privacy
+                    'https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/resource-abuse.txt', // uBlock Origin Resource Abuse
+                ],
+              {
+                enableCompression: true,
+              },
+              // {
+              //   path: 'engine.bin',
+              //   read: fs.readFile,
+              //   write: fs.writeFile
+              // }
+            );
+
+            blocker.enableBlockingInSession(contents.session);
+        }
+
         reRenderStyles(): void {
             // tslint:disable-next-line:no-unsafe-any
             this.externalPreviewStyle = this.externalPreviewHelper.renderStyle();
@@ -476,13 +519,17 @@
                 return;
             }
 
-            this.debugLog(`ImagePreview ${context}`, js, logDetails);
+            this.debugLog(`ImagePreview execute-${context}`, js, logDetails);
 
-            const result = await (webview.executeJavaScript(js) as unknown as Promise<any>);
+            try {
+                const result = await (webview.executeJavaScript(js) as unknown as Promise<any>);
 
-            this.debugLog(`ImagePreview result-${context}`, result);
+                this.debugLog(`ImagePreview result-${context}`, result);
 
-            return result;
+                return result;
+            } catch (err) {
+                this.debugLog(`ImagePreview error-${context}`, err);
+            }
         }
 
         debugLog(...args: any[]): void {
@@ -515,6 +562,7 @@
             return this.$refs.imagePreviewExt as WebviewTag;
         }
 
+
         reset(): void {
             this.externalPreviewHelper = new ExternalImagePreviewHelper(this);
             this.localPreviewHelper = new LocalImagePreviewHelper(this);
diff --git a/chat/preview/assets/browser.pre.js b/chat/preview/assets/browser.pre.js
index f1840b2..52d731c 100644
--- a/chat/preview/assets/browser.pre.js
+++ b/chat/preview/assets/browser.pre.js
@@ -1,7 +1,7 @@
 (() => {
     try {
         const clear = () => {
-            if (window.location.href.match(/https?:\/\/(www.)?pornhub.com/)) {
+            if (window.location.href.match(/^https?:\/\/(www.)?pornhub.com/)) {
                 if (!window.zest) {
                     window.zest = (q) => (document.querySelectorAll(q));
                 }
@@ -37,39 +37,38 @@
             }
 
 
-            const intervalCount = setInterval(() => {}, 10000);
-
-            for (let i = 0; i <= intervalCount; i++) {
-                try {
-                    clearInterval(i);
-                } catch (e) {
-                    console.error('Clear interval', i, e);
-                }
-            }
-
-
-            const timeoutCount = setTimeout(() => {}, 10000);
-
-            for (let i = 0; i <= timeoutCount; i++) {
-                try {
-                    clearTimeout(i);
-                } catch (e) {
-                    console.error('Clear timeout', i, e);
-                }
-            }
+            // const intervalCount = setInterval(() => {}, 10000);
+            //
+            // for (let i = 0; i <= intervalCount; i++) {
+            //     try {
+            //         clearInterval(i);
+            //     } catch (e) {
+            //         console.error('Clear interval', i, e);
+            //     }
+            // }
+            //
+            //
+            // const timeoutCount = setTimeout(() => {}, 10000);
+            //
+            // for (let i = 0; i <= timeoutCount; i++) {
+            //     try {
+            //         clearTimeout(i);
+            //     } catch (e) {
+            //         console.error('Clear timeout', i, e);
+            //     }
+            // }
         };
 
         console.log('Document loading', Date.now());
         clear();
 
-        // window.stop();
-
         window.addEventListener('DOMContentLoaded', (event) => {
             console.log('DOM fully loaded and parsed', Date.now());
             clear();
         });
     } catch(e) {
-        console.error(e);
+        console.error('browser.pre', e);
+        console.trace();
     }
 })();
 
diff --git a/chat/preview/image-preview-mutator.ts b/chat/preview/image-preview-mutator.ts
index 6719be2..ccd27e6 100644
--- a/chat/preview/image-preview-mutator.ts
+++ b/chat/preview/image-preview-mutator.ts
@@ -123,8 +123,8 @@ export class ImagePreviewMutator {
         this.add('gelbooru.com', this.getBaseJsMutatorScript(['video', '#image']));
         this.add('chan.sankakucomplex.com', this.getBaseJsMutatorScript(['video', '#image']));
         this.add('danbooru.donmai.us', this.getBaseJsMutatorScript(['video', '#image']));
-        this.add('gfycat.com', this.getBaseJsMutatorScript(['video']), undefined, 'dom-ready');
-        this.add('gfycatporn.com', this.getBaseJsMutatorScript(['video']), undefined, 'dom-ready');
+        this.add('gfycat.com', this.getBaseJsMutatorScript(['video']) /*, undefined, 'dom-ready' */);
+        this.add('gfycatporn.com', this.getBaseJsMutatorScript(['video']) /*, undefined, 'dom-ready'*/);
         this.add('youtube.com', this.getBaseJsMutatorScript(['video']), undefined, 'dom-ready');
         this.add('instantfap.com', this.getBaseJsMutatorScript(['#post video', '#post img']));
         this.add('webmshare.com', this.getBaseJsMutatorScript(['video']));
@@ -236,24 +236,27 @@ export class ImagePreviewMutator {
                 ['width', 'height'],
             ];
 
-            const imSize = sizePairs.reduce(
-                (acc, val) => {
-                    if ((acc.width) && (acc.height)) {
-                        return acc;
-                    }
-
-                    if ((img[val[0]]) && (img[val[1]])) {
-                        return {
-                            width: img[val[0]],
-                            height: img[val[1]]
+            const resolveImgSize = function() {
+                return sizePairs.reduce(
+                    (acc, val) => {
+                        if ((acc.width) && (acc.height)) {
+                            return acc;
                         }
-                    }
 
-                    return acc;
-                },
-                {}
-            );
+                        if ((img[val[0]]) && (img[val[1]])) {
+                            return {
+                                width: img[val[0]],
+                                height: img[val[1]]
+                            }
+                        }
 
+                        return acc;
+                    },
+                    {}
+                );
+            }
+
+            const imSize = resolveImgSize();
             ipcRenderer.sendToHost('webview.img', imSize.width, imSize.height);
 
             const el = document.createElement('div');
@@ -285,14 +288,14 @@ export class ImagePreviewMutator {
             body.style = 'border: 0 !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important;'
                 + 'width: 100% !important; height: 100% !important; opacity: 1 !important;'
                 + 'top: 0 !important; left: 0 !important; position: absolute !important;'
-                + 'min-width: unset !important; min-height: unset !important; max-width: unset !important; max-height: unset !important;'
+                + 'min-width: initial !important; min-height: initial !important; max-width: initial !important; max-height: initial !important;'
                 + 'display: block !important; visibility: visible !important';
 
             img.style = 'object-position: top left !important; object-fit: contain !important;'
                 + 'width: 100% !important; height: 100% !important; opacity: 1 !important;'
                 + 'margin: 0 !imporant; border: 0 !important; padding: 0 !important;'
-                + 'min-width: unset !important; min-height: unset !important; max-width: unset !important; max-height: unset !important;'
-                + 'display: block !important; visibility: visible !important';
+                + 'min-width: initial !important; min-height: initial !important; max-width: initial !important; max-height: initial !important;'
+                + 'display: block !important; visibility: visible !important;';
 
             img.class = '';
             el.class = '';
@@ -301,7 +304,7 @@ export class ImagePreviewMutator {
             html.style = 'border: 0 !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important;'
                 + 'width: 100% !important; height: 100% !important; opacity: 1 !important;'
                 + 'top: 0 !important; left: 0 !important; position: absolute !important;'
-                + 'min-width: unset !important; min-height: unset !important; max-width: unset !important; max-height: unset !important;'
+                + 'min-width: initial !important; min-height: initial !important; max-width: initial !important; max-height: initial !important;'
                 + 'display: block !important; visibility: visible !important';
 
             ${this.debug ? "console.log('Wrapper', el);" : ''}
@@ -327,7 +330,8 @@ export class ImagePreviewMutator {
             document.addEventListener('DOMContentLoaded', (event) => {
                 ${this.debug ? "console.log('on DOMContentLoaded');" : ''}
 
-                ipcRenderer.sendToHost('webview.img', img.width || img.naturalWidth, img.height || img.naturalHeight);
+                const imSize = resolveImgSize();
+                ipcRenderer.sendToHost('webview.img', imSize.width, imSize.height);
 
                 if (
                     (img.play)
@@ -339,7 +343,8 @@ export class ImagePreviewMutator {
             document.addEventListener('load', (event) => {
                 ${this.debug ? "console.log('on load');" : ''}
 
-                ipcRenderer.sendToHost('webview.img', img.width || img.naturalWidth, img.height || img.naturalHeight);
+                const imSize = resolveImgSize();
+                ipcRenderer.sendToHost('webview.img', imSize.width, imSize.height);
 
                 if (
                     (img.play)
@@ -369,8 +374,6 @@ export class ImagePreviewMutator {
 
             ${skipElementRemove ? '' : 'removeList.forEach((el) => el.remove());'}
             removeList = [];
-
-            window.stop();
         `;
     }
 
diff --git a/chat/preview/image-url-mutator.ts b/chat/preview/image-url-mutator.ts
index fa3c8e3..f2fc57f 100644
--- a/chat/preview/image-url-mutator.ts
+++ b/chat/preview/image-url-mutator.ts
@@ -37,6 +37,15 @@ export class ImageUrlMutator {
           }
         );
 
+        this.add(
+          /^https?:\/\/(www.)?gfycat.com\/([a-z0-9A-Z\-]+)\/?$/,
+          async(_url: string, match: RegExpMatchArray): Promise<string> => {
+            const gfyId = match[2];
+
+            return `https://gfycat.com/ifr/${gfyId}?controls=0&hd=1`;
+          }
+        );
+
         this.add(
             /^https?:\/\/imgur.com\/gallery\/([a-zA-Z0-9]+)/,
             async(url: string, match: RegExpMatchArray): Promise<string> => {
diff --git a/electron/Window.vue b/electron/Window.vue
index 0b1f2fc..6501047 100644
--- a/electron/Window.vue
+++ b/electron/Window.vue
@@ -85,7 +85,7 @@
         @Hook('mounted')
         async mounted(): Promise<void> {
             // top bar devtools
-            // browserWindow.webContents.openDevTools( { mode: 'detach' } );
+            browserWindow.webContents.openDevTools( { mode: 'detach' } );
 
             await this.addTab();
 
@@ -196,10 +196,10 @@
             const tray = new electron.remote.Tray(trayIcon);
             tray.setToolTip(l('title'));
             tray.on('click', (_) => this.trayClicked(tab));
-            const view = new electron.remote.BrowserView({webPreferences: {webviewTag: true, nodeIntegration: true}});
+            const view = new electron.remote.BrowserView({webPreferences: {webviewTag: true, nodeIntegration: true, spellcheck: true}});
 
             // tab devtools
-            // view.webContents.openDevTools();
+            view.webContents.openDevTools();
 
             view.setAutoResize({width: true, height: true});
             electron.ipcRenderer.send('tab-added', view.webContents.id);
diff --git a/electron/chat.ts b/electron/chat.ts
index 7ac027e..6ad9688 100644
--- a/electron/chat.ts
+++ b/electron/chat.ts
@@ -47,18 +47,19 @@ import {setupRaven} from '../chat/vue-raven';
 import Socket from '../chat/WebSocket';
 import Connection from '../fchat/connection';
 import {Keys} from '../keys';
-import {GeneralSettings, nativeRequire} from './common';
+import {GeneralSettings /*, nativeRequire*/ } from './common';
 import {Logs, SettingsStore} from './filesystem';
 import Notifications from './notifications';
 import * as SlimcatImporter from './importer';
 import Index from './Index.vue';
 
+
 document.addEventListener('keydown', (e: KeyboardEvent) => {
     if(e.ctrlKey && e.shiftKey && getKey(e) === Keys.KeyI)
         electron.remote.getCurrentWebContents().toggleDevTools();
 });
 
-process.env.SPELLCHECKER_PREFER_HUNSPELL = '1';
+/* process.env.SPELLCHECKER_PREFER_HUNSPELL = '1';
 const sc = nativeRequire<{
     Spellchecker: new() => {
         add(word: string): void
@@ -68,7 +69,7 @@ const sc = nativeRequire<{
         getCorrectionsForMisspelling(word: string): ReadonlyArray<string>
     }
 }>('spellchecker/build/Release/spellchecker.node');
-const spellchecker = new sc.Spellchecker();
+const spellchecker = new sc.Spellchecker();*/
 
 Axios.defaults.params = {__fchat: `desktop/${electron.remote.app.getVersion()}`};
 
@@ -160,17 +161,17 @@ webContents.on('context-menu', (_, props) => {
             click: () => electron.clipboard.writeText(props.selectionText)
         });
     if(props.misspelledWord !== '') {
-        const corrections = spellchecker.getCorrectionsForMisspelling(props.misspelledWord);
-        menuTemplate.unshift({
-            label: l('spellchecker.add'),
-            click: () => electron.ipcRenderer.send('dictionary-add', props.misspelledWord)
-        }, {type: 'separator'});
-        if(corrections.length > 0)
-            menuTemplate.unshift(...corrections.map((correction: string) => ({
-                label: correction,
-                click: () => webContents.replaceMisspelling(correction)
-            })));
-        else menuTemplate.unshift({enabled: false, label: l('spellchecker.noCorrections')});
+        // const corrections = spellchecker.getCorrectionsForMisspelling(props.misspelledWord);
+        // menuTemplate.unshift({
+        //     label: l('spellchecker.add'),
+        //     click: () => electron.ipcRenderer.send('dictionary-add', props.misspelledWord)
+        // }, {type: 'separator'});
+        // if(corrections.length > 0)
+        //     menuTemplate.unshift(...corrections.map((correction: string) => ({
+        //         label: correction,
+        //         click: () => webContents.replaceMisspelling(correction)
+        //     })));
+        // else menuTemplate.unshift({enabled: false, label: l('spellchecker.noCorrections')});
     } else if(settings.customDictionary.indexOf(props.selectionText) !== -1)
         menuTemplate.unshift({
             label: l('spellchecker.remove'),
@@ -181,14 +182,17 @@ webContents.on('context-menu', (_, props) => {
 });
 
 let dictDir = path.join(electron.remote.app.getPath('userData'), 'spellchecker');
+
 if(process.platform === 'win32') //get the path in DOS (8-character) format as special characters cause problems otherwise
     exec(`for /d %I in ("${dictDir}") do @echo %~sI`, (_, stdout) => dictDir = stdout.trim());
-electron.webFrame.setSpellCheckProvider('', {spellCheck: (words, callback) => callback(words.filter((x) => spellchecker.isMisspelled(x)))});
+
+// electron.webFrame.setSpellCheckProvider('', {spellCheck: (words, callback) => callback(words.filter((x) => spellchecker.isMisspelled(x)))});
 
 function onSettings(s: GeneralSettings): void {
     settings = s;
-    spellchecker.setDictionary(s.spellcheckLang, dictDir);
-    for(const word of s.customDictionary) spellchecker.add(word);
+
+    // spellchecker.setDictionary(s.spellcheckLang, dictDir);
+    // for(const word of s.customDictionary) spellchecker.add(word);
 }
 
 electron.ipcRenderer.on('settings', (_: Event, s: GeneralSettings) => onSettings(s));
diff --git a/electron/main.ts b/electron/main.ts
index 5ae2250..ee85616 100644
--- a/electron/main.ts
+++ b/electron/main.ts
@@ -45,6 +45,8 @@ import {ensureDictionary, getAvailableDictionaries} from './dictionaries';
 import * as windowState from './window_state';
 import BrowserWindow = Electron.BrowserWindow;
 import MenuItem = Electron.MenuItem;
+import { ElectronBlocker } from '@cliqz/adblocker-electron';
+import fetch from 'node-fetch';
 
 // Module to control application life.
 const app = electron.app;
@@ -124,7 +126,7 @@ function createWindow(): Electron.BrowserWindow | undefined {
     const lastState = windowState.getSavedWindowState();
     const windowProperties: Electron.BrowserWindowConstructorOptions & {maximized: boolean} = {
         ...lastState, center: lastState.x === undefined, show: false,
-        webPreferences: { webviewTag: true, nodeIntegration: true }
+        webPreferences: { webviewTag: true, nodeIntegration: true, spellcheck: true }
     };
 
     if(process.platform === 'darwin') {
@@ -137,6 +139,39 @@ function createWindow(): Electron.BrowserWindow | undefined {
     const window = new electron.BrowserWindow(windowProperties);
     windows.push(window);
 
+    ElectronBlocker.fromPrebuiltAdsAndTracking(fetch)
+      .then(
+        (blocker) => {
+            blocker.enableBlockingInSession(electron.session.defaultSession);
+
+            console.log('Got this far!!!!');
+
+            blocker.on('request-blocked', (request: Request) => {
+                console.log('blocked', request.url);
+              });
+
+              blocker.on('request-redirected', (request: Request) => {
+                console.log('redirected', request.url);
+              });
+
+              blocker.on('request-whitelisted', (request: Request) => {
+                console.log('whitelisted', request.url);
+              });
+
+              blocker.on('csp-injected', (request: Request) => {
+                console.log('csp', request.url);
+              });
+
+              blocker.on('script-injected', (script: string, url: string) => {
+                console.log('script', script.length, url);
+              });
+
+              blocker.on('style-injected', (style: string, url: string) => {
+                console.log('style', style.length, url);
+              });
+        }
+      );
+
     window.loadFile(
         path.join(__dirname, 'window.html'),
         {
@@ -144,6 +179,7 @@ function createWindow(): Electron.BrowserWindow | undefined {
         }
     );
 
+
     // window.loadURL(url.format({ //tslint:disable-line:no-floating-promises
     //     pathname: path.join(__dirname, 'window.html'),
     //     protocol: 'file:',
diff --git a/electron/pack.js b/electron/pack.js
index 50a60f8..a2dd977 100644
--- a/electron/pack.js
+++ b/electron/pack.js
@@ -20,7 +20,7 @@ const modules = path.join(__dirname, 'app', 'node_modules');
 // fs.copyFileSync(require.resolve(keytarPath), path.join(modules, keytarPath));
 
 const includedPaths = [
-    'spellchecker/build/Release/spellchecker.node',
+    // 'spellchecker/build/Release/spellchecker.node',
     'keytar/build/Release/keytar.node',
     'throat'
 ];
diff --git a/package.json b/package.json
index fcd637e..1b7ba63 100644
--- a/package.json
+++ b/package.json
@@ -9,15 +9,16 @@
     "@f-list/vue-ts": "^1.0.3",
     "@fortawesome/fontawesome-free": "^5.9.0",
     "@types/lodash": "^4.14.134",
+    "@types/node-fetch": "^2.5.5",
     "@types/qs": "^6.9.1",
     "@types/sortablejs": "^1.7.2",
     "@vue/devtools": "^5.1.0",
     "axios": "^0.19.0",
     "bootstrap": "^4.3.1",
-    "css-loader": "^3.0.0",
     "copy-webpack-plugin": "^5.1.1",
+    "css-loader": "^3.0.0",
     "date-fns": "^1.30.1",
-    "electron": "^5.0.4",
+    "electron": "^8.2.0",
     "electron-log": "^3.0.1",
     "electron-packager": "^14.0.0",
     "electron-rebuild": "^1.8.4",
@@ -42,8 +43,9 @@
     "webpack": "^4.35.0"
   },
   "dependencies": {
+    "@cliqz/adblocker-electron": "^1.13.0",
     "keytar": "^4.10.0",
-    "spellchecker": "^3.6.0"
+    "node-fetch": "^2.6.0"
   },
   "optionalDependencies": {
     "appdmg": "^0.6.0",
@@ -51,6 +53,6 @@
     "electron-winstaller": "^3.0.4"
   },
   "scripts": {
-    "postinstall": "electron-rebuild -fo spellchecker,keytar"
+    "postinstall": "electron-rebuild -fo keytar"
   }
 }
diff --git a/yarn.lock b/yarn.lock
index fa93359..8c55f36 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -25,6 +25,37 @@
   dependencies:
     regenerator-runtime "^0.13.4"
 
+"@cliqz/adblocker-content@^1.13.0":
+  version "1.13.0"
+  resolved "https://registry.yarnpkg.com/@cliqz/adblocker-content/-/adblocker-content-1.13.0.tgz#0301fd77b8b821893d53d0c6d02d3b26e028c4f7"
+  integrity sha512-2kStPzaON6qLe+/fY1mKnrRcmgnt2ZNJM6HJW+pcINquk6uEQ60R4kObbOJdVqtoKtGEH4OjyiOUUej2xxTxrg==
+
+"@cliqz/adblocker-electron-preload@^1.13.0":
+  version "1.13.0"
+  resolved "https://registry.yarnpkg.com/@cliqz/adblocker-electron-preload/-/adblocker-electron-preload-1.13.0.tgz#83e90d196244d5498789df4e3f780855cb056348"
+  integrity sha512-kUQm/s3R8WxYKsXFCN15GW1G4VWvXxMI+37KtY/9Chbi23GwgYe8T8J1Qx+GxLWiQU7X4xFgvkjySw5Le57VKA==
+  dependencies:
+    "@cliqz/adblocker-content" "^1.13.0"
+
+"@cliqz/adblocker-electron@^1.13.0":
+  version "1.13.0"
+  resolved "https://registry.yarnpkg.com/@cliqz/adblocker-electron/-/adblocker-electron-1.13.0.tgz#848244f7cdab7dbde2601b096664c9f57c817dc8"
+  integrity sha512-G6C88p0kDpucNx4lPSfv4HU96gT2XJifWajdND3oFX+zvhuq09eT3RHxzANLLAfKV2XnMZQ6OtfdmIzuZHZ3rQ==
+  dependencies:
+    "@cliqz/adblocker" "^1.13.0"
+    "@cliqz/adblocker-electron-preload" "^1.13.0"
+    tldts-experimental "^5.6.3"
+
+"@cliqz/adblocker@^1.13.0":
+  version "1.13.0"
+  resolved "https://registry.yarnpkg.com/@cliqz/adblocker/-/adblocker-1.13.0.tgz#e3b77c9226dc5906d100a7e60f5e4f1636dbe574"
+  integrity sha512-6QQmUqsHBUOtPT7xRkSAojiT/mrLYagfmdMudlOVskF/+Rm78zLJBg0HxRGl4rCZsxTaFVl8Wy87dz32Xa4mTA==
+  dependencies:
+    "@remusao/smaz" "^1.7.1"
+    "@types/chrome" "^0.0.103"
+    "@types/firefox-webext-browser" "^70.0.1"
+    tldts-experimental "^5.6.3"
+
 "@electron/get@^1.0.1", "@electron/get@^1.6.0":
   version "1.9.0"
   resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.9.0.tgz#7fa6e61d7ff50fb82a8a41f437af7de3b97aa9a5"
@@ -68,6 +99,31 @@
   resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.12.1.tgz#2a98fea9fbb8a606ddc79a4680034e9d5591c550"
   integrity sha512-ZtjIIFplxncqxvogq148C3hBLQE+W3iJ8E4UvJ09zIJUgzwLcROsWwFDErVSXY2Plzao5J9KUYNHKHMEUYDMKw==
 
+"@remusao/smaz-compress@^1.8.0":
+  version "1.8.0"
+  resolved "https://registry.yarnpkg.com/@remusao/smaz-compress/-/smaz-compress-1.8.0.tgz#efdc3857cec1396349e52e44b89891e617448024"
+  integrity sha512-gDlnWyYmDppwdVZZkBuN8/gzpcqxFwEEev8QxyArWbOn/1rIXMfnm+bwY/N80rmakHTWaybL0yNxTMJSoVXrUw==
+  dependencies:
+    "@remusao/trie" "^1.3.0"
+
+"@remusao/smaz-decompress@^1.8.0":
+  version "1.8.0"
+  resolved "https://registry.yarnpkg.com/@remusao/smaz-decompress/-/smaz-decompress-1.8.0.tgz#32cea68586d6d67a4b30c561d1ccde527805e3d7"
+  integrity sha512-DDGL8wB2L1OUPbUEashqBQzuEVk1xmVOR+35lERkwl3Qg5UoiL//9GWSq38jq8XlTqUG5R+BY2dQa4XX2NDeeQ==
+
+"@remusao/smaz@^1.7.1":
+  version "1.8.0"
+  resolved "https://registry.yarnpkg.com/@remusao/smaz/-/smaz-1.8.0.tgz#6b03c39f99afaafa2113772cae900fad896061c0"
+  integrity sha512-tpyluMIHQSCOX1VHBBrn7KP+S1m/fovJg9Tizo06qR9OYopYehDqkuBJGLnUthE3uhm7tbxb1XI2IN4tUjOFhw==
+  dependencies:
+    "@remusao/smaz-compress" "^1.8.0"
+    "@remusao/smaz-decompress" "^1.8.0"
+
+"@remusao/trie@^1.3.0":
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/@remusao/trie/-/trie-1.3.0.tgz#146b6f7f223d29db7106c19b9f4d4fab2754986a"
+  integrity sha512-IykMLl0vr8L1sJzvtGR4izkNh1Ous2njaeC4NEvAcfALCdCo7Y4VpISU0I8DaZFU2lGAFKyeh2Jz4WaM/3hbEw==
+
 "@sindresorhus/is@^0.14.0":
   version "0.14.0"
   resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea"
@@ -80,11 +136,36 @@
   dependencies:
     defer-to-connect "^1.0.1"
 
+"@types/chrome@^0.0.103":
+  version "0.0.103"
+  resolved "https://registry.yarnpkg.com/@types/chrome/-/chrome-0.0.103.tgz#604f3d94ab4465cc8cde302c4916f4955eb7e8b6"
+  integrity sha512-s8So1IG1fIu2dg2MRV3k6W5OjlVaJriNXIxIWDHi+Rdz5dLeuzPKcWzkVlcaVL4gONfn44JKC0RhW+P0UohLfg==
+  dependencies:
+    "@types/filesystem" "*"
+    "@types/har-format" "*"
+
 "@types/events@*":
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7"
   integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==
 
+"@types/filesystem@*":
+  version "0.0.29"
+  resolved "https://registry.yarnpkg.com/@types/filesystem/-/filesystem-0.0.29.tgz#ee3748eb5be140dcf980c3bd35f11aec5f7a3748"
+  integrity sha512-85/1KfRedmfPGsbK8YzeaQUyV1FQAvMPMTuWFQ5EkLd2w7szhNO96bk3Rh/SKmOfd9co2rCLf0Voy4o7ECBOvw==
+  dependencies:
+    "@types/filewriter" "*"
+
+"@types/filewriter@*":
+  version "0.0.28"
+  resolved "https://registry.yarnpkg.com/@types/filewriter/-/filewriter-0.0.28.tgz#c054e8af4d9dd75db4e63abc76f885168714d4b3"
+  integrity sha1-wFTor02d11205jq8dviFFocU1LM=
+
+"@types/firefox-webext-browser@^70.0.1":
+  version "70.0.1"
+  resolved "https://registry.yarnpkg.com/@types/firefox-webext-browser/-/firefox-webext-browser-70.0.1.tgz#53a3915bfbe25e2c5ec439dbdbe6e303610012bb"
+  integrity sha512-hjHsTR9vKs+yikWbNS/s7TVCx15M/MEn+VYx47wtT/W/wORsIZDD75gfUfP7lkzi+IxRvKMQBB/5/wMFlfgvgQ==
+
 "@types/glob@^7.1.1":
   version "7.1.1"
   resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575"
@@ -94,6 +175,11 @@
     "@types/minimatch" "*"
     "@types/node" "*"
 
+"@types/har-format@*":
+  version "1.2.4"
+  resolved "https://registry.yarnpkg.com/@types/har-format/-/har-format-1.2.4.tgz#3275842095abb60d14b47fa798cc9ff708dab6d4"
+  integrity sha512-iUxzm1meBm3stxUMzRqgOVHjj4Kgpgu5w9fm4X7kPRfSgVRzythsucEN7/jtOo8SQzm+HfcxWWzJS0mJDH/3DQ==
+
 "@types/lodash@^4.14.134":
   version "4.14.149"
   resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.149.tgz#1342d63d948c6062838fbf961012f74d4e638440"
@@ -104,16 +190,19 @@
   resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"
   integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==
 
+"@types/node-fetch@^2.5.5":
+  version "2.5.5"
+  resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.5.tgz#cd264e20a81f4600a6c52864d38e7fef72485e92"
+  integrity sha512-IWwjsyYjGw+em3xTvWVQi5MgYKbRs0du57klfTaZkv/B24AEQ/p/IopNeqIYNy3EsfHOpg8ieQSDomPcsYMHpA==
+  dependencies:
+    "@types/node" "*"
+    form-data "^3.0.0"
+
 "@types/node@*":
   version "13.9.1"
   resolved "https://registry.yarnpkg.com/@types/node/-/node-13.9.1.tgz#96f606f8cd67fb018847d9b61e93997dabdefc72"
   integrity sha512-E6M6N0blf/jiZx8Q3nb0vNaswQeEyn0XlupO+xN6DtJ6r6IT4nXrTry7zhIfYvFCl3/8Cu6WIysmUBKiqV0bqQ==
 
-"@types/node@^10.12.18":
-  version "10.17.17"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.17.tgz#7a183163a9e6ff720d86502db23ba4aade5999b8"
-  integrity sha512-gpNnRnZP3VWzzj5k3qrpRC6Rk3H/uclhAVo1aIvwzK5p5cOrs9yEyQ8H/HBsBY0u5rrWxXEiVPQ0dEB6pkjE8Q==
-
 "@types/node@^12.0.12":
   version "12.12.30"
   resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.30.tgz#3501e6f09b954de9c404671cefdbcc5d9d7c45f6"
@@ -401,11 +490,6 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1:
   dependencies:
     color-convert "^1.9.0"
 
-any-promise@^1.3.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
-  integrity sha1-q8av7tzqUugJzcA3au0845Y10X8=
-
 anymatch@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"
@@ -1272,7 +1356,7 @@ colors@^1.3.3:
   resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78"
   integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==
 
-combined-stream@^1.0.6, combined-stream@~1.0.6:
+combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6:
   version "1.0.8"
   resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
   integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
@@ -1702,7 +1786,7 @@ de-indent@^1.0.2:
   resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"
   integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=
 
-debug@2.6.9, debug@^2.1.3, debug@^2.2.0, debug@^2.3.3, debug@^2.5.1, debug@^2.6.8:
+debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.5.1, debug@^2.6.8:
   version "2.6.9"
   resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
   integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
@@ -1716,7 +1800,7 @@ debug@=3.1.0, debug@~3.1.0:
   dependencies:
     ms "2.0.0"
 
-debug@^3.0.0, debug@^3.1.0:
+debug@^3.1.0:
   version "3.2.6"
   resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
   integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==
@@ -1927,21 +2011,6 @@ ee-first@1.1.1:
   resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
   integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
 
-electron-download@^4.1.0:
-  version "4.1.1"
-  resolved "https://registry.yarnpkg.com/electron-download/-/electron-download-4.1.1.tgz#02e69556705cc456e520f9e035556ed5a015ebe8"
-  integrity sha512-FjEWG9Jb/ppK/2zToP+U5dds114fM1ZOJqMAR4aXXL5CvyPE9fiqBK/9YcwC9poIFQTEJk/EM/zyRwziziRZrg==
-  dependencies:
-    debug "^3.0.0"
-    env-paths "^1.0.0"
-    fs-extra "^4.0.1"
-    minimist "^1.2.0"
-    nugget "^2.0.1"
-    path-exists "^3.0.0"
-    rc "^1.2.1"
-    semver "^5.4.1"
-    sumchecker "^2.0.2"
-
 electron-log@^3.0.1:
   version "3.0.9"
   resolved "https://registry.yarnpkg.com/electron-log/-/electron-log-3.0.9.tgz#53ff1fcdb2f3e4a73ea7096d2f7204121109ec6f"
@@ -2030,15 +2099,6 @@ electron-winstaller@^3.0.4:
     pify "^4.0.1"
     temp "^0.9.0"
 
-electron@^5.0.4:
-  version "5.0.13"
-  resolved "https://registry.yarnpkg.com/electron/-/electron-5.0.13.tgz#81d44f2078fb13d306279cf3854d3734f2c390b4"
-  integrity sha512-AM73AMZpb/5zm8eIXsIcp2eMdniD5WO+FqMtlIzhhtSjixflDm0pLtgudz0fHtiT/w6V+6YcpDVb4TtHtrJbHQ==
-  dependencies:
-    "@types/node" "^10.12.18"
-    electron-download "^4.1.0"
-    extract-zip "^1.0.3"
-
 electron@^7.0.0:
   version "7.1.14"
   resolved "https://registry.yarnpkg.com/electron/-/electron-7.1.14.tgz#1a58aa5968677a4fe564442f3b72771166c8904c"
@@ -2048,6 +2108,15 @@ electron@^7.0.0:
     "@types/node" "^12.0.12"
     extract-zip "^1.0.3"
 
+electron@^8.2.0:
+  version "8.2.0"
+  resolved "https://registry.yarnpkg.com/electron/-/electron-8.2.0.tgz#f3e3de23a6178b5ad7baa70f4814d6332a3212c2"
+  integrity sha512-mnV43gKCrCUMHLmGws/DU/l8LhaxrFD53A4ofwtthdCqOZWGIdk1+eMphiVumXR5a3lC64XVvmXQ2k28i7F/zw==
+  dependencies:
+    "@electron/get" "^1.0.1"
+    "@types/node" "^12.0.12"
+    extract-zip "^1.0.3"
+
 elliptic@^6.0.0:
   version "6.5.2"
   resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762"
@@ -2137,11 +2206,6 @@ entities@^2.0.0:
   resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4"
   integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==
 
-env-paths@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-1.0.0.tgz#4168133b42bb05c38a35b1ae4397c8298ab369e0"
-  integrity sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA=
-
 env-paths@^2.2.0:
   version "2.2.0"
   resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43"
@@ -2522,6 +2586,15 @@ forever-agent@~0.6.1:
   resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
   integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
 
+form-data@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.0.tgz#31b7e39c85f1355b7139ee0c647cf0de7f83c682"
+  integrity sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==
+  dependencies:
+    asynckit "^0.4.0"
+    combined-stream "^1.0.8"
+    mime-types "^2.1.12"
+
 form-data@~2.3.2:
   version "2.3.3"
   resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
@@ -2561,7 +2634,7 @@ fs-constants@^1.0.0:
   resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
   integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==
 
-fs-extra@^4.0.0, fs-extra@^4.0.1:
+fs-extra@^4.0.0:
   version "4.0.3"
   resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94"
   integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==
@@ -3409,11 +3482,6 @@ is-wsl@^1.1.0:
   resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d"
   integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=
 
-isarray@0.0.1:
-  version "0.0.1"
-  resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
-  integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=
-
 isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
@@ -3809,7 +3877,7 @@ memory-fs@^0.5.0:
     errno "^0.1.3"
     readable-stream "^2.0.1"
 
-meow@^3.1.0, meow@^3.7.0:
+meow@^3.7.0:
   version "3.7.0"
   resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb"
   integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=
@@ -3931,7 +3999,7 @@ minimist@0.0.8:
   resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
   integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
 
-minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0:
+minimist@^1.1.3, minimist@^1.2.0:
   version "1.2.5"
   resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
   integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
@@ -4018,7 +4086,7 @@ murmur-32@^0.1.0:
     fmix "^0.1.0"
     imul "^1.0.0"
 
-nan@2.14.0, nan@^2.12.1, nan@^2.13.2, nan@^2.14.0, nan@^2.4.0:
+nan@2.14.0, nan@^2.12.1, nan@^2.13.2, nan@^2.4.0:
   version "2.14.0"
   resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c"
   integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==
@@ -4067,6 +4135,11 @@ node-abi@^2.11.0, node-abi@^2.7.0:
   dependencies:
     semver "^5.4.1"
 
+node-fetch@^2.6.0:
+  version "2.6.0"
+  resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd"
+  integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==
+
 node-gyp@^3.8.0:
   version "3.8.0"
   resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c"
@@ -4245,19 +4318,6 @@ nth-check@^1.0.2:
   dependencies:
     boolbase "~1.0.0"
 
-nugget@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/nugget/-/nugget-2.0.1.tgz#201095a487e1ad36081b3432fa3cada4f8d071b0"
-  integrity sha1-IBCVpIfhrTYIGzQy+jytpPjQcbA=
-  dependencies:
-    debug "^2.1.3"
-    minimist "^1.1.0"
-    pretty-bytes "^1.0.2"
-    progress-stream "^1.1.0"
-    request "^2.45.0"
-    single-line-log "^1.1.2"
-    throttleit "0.0.2"
-
 number-is-nan@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
@@ -4297,11 +4357,6 @@ object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1:
   resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
   integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
 
-object-keys@~0.4.0:
-  version "0.4.0"
-  resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336"
-  integrity sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=
-
 object-visit@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
@@ -5035,14 +5090,6 @@ prettier@^1.18.2:
   resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb"
   integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==
 
-pretty-bytes@^1.0.2:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-1.0.4.tgz#0a22e8210609ad35542f8c8d5d2159aff0751c84"
-  integrity sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=
-  dependencies:
-    get-stdin "^4.0.1"
-    meow "^3.1.0"
-
 process-nextick-args@~2.0.0:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
@@ -5053,14 +5100,6 @@ process@^0.11.10:
   resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
   integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
 
-progress-stream@^1.1.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/progress-stream/-/progress-stream-1.2.0.tgz#2cd3cfea33ba3a89c9c121ec3347abe9ab125f77"
-  integrity sha1-LNPP6jO6OonJwSHsM0er6asSX3c=
-  dependencies:
-    speedometer "~0.1.2"
-    through2 "~0.2.3"
-
 progress@^2.0.3:
   version "2.0.3"
   resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
@@ -5232,7 +5271,7 @@ raw-body@2.4.0:
     iconv-lite "0.4.24"
     unpipe "1.0.0"
 
-rc@^1.2.1, rc@^1.2.7:
+rc@^1.2.7:
   version "1.2.8"
   resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
   integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
@@ -5294,16 +5333,6 @@ read-pkg@^2.0.0:
     string_decoder "~1.1.1"
     util-deprecate "~1.0.1"
 
-readable-stream@~1.1.9:
-  version "1.1.14"
-  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9"
-  integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk=
-  dependencies:
-    core-util-is "~1.0.0"
-    inherits "~2.0.1"
-    isarray "0.0.1"
-    string_decoder "~0.10.x"
-
 readdirp@^2.2.1:
   version "2.2.1"
   resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525"
@@ -5368,7 +5397,7 @@ repeating@^2.0.0:
   dependencies:
     is-finite "^1.0.0"
 
-request@^2.45.0, request@^2.87.0, request@^2.88.0:
+request@^2.87.0, request@^2.88.0:
   version "2.88.2"
   resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
   integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
@@ -5735,13 +5764,6 @@ simple-swizzle@^0.2.2:
   dependencies:
     is-arrayish "^0.3.1"
 
-single-line-log@^1.1.2:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/single-line-log/-/single-line-log-1.1.2.tgz#c2f83f273a3e1a16edb0995661da0ed5ef033364"
-  integrity sha1-wvg/Jzo+GhbtsJlWYdoO1e8DM2Q=
-  dependencies:
-    string-width "^1.0.1"
-
 slash@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
@@ -5918,19 +5940,6 @@ spdx-license-ids@^3.0.0:
   resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654"
   integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==
 
-speedometer@~0.1.2:
-  version "0.1.4"
-  resolved "https://registry.yarnpkg.com/speedometer/-/speedometer-0.1.4.tgz#9876dbd2a169d3115402d48e6ea6329c8816a50d"
-  integrity sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0=
-
-spellchecker@^3.6.0:
-  version "3.7.0"
-  resolved "https://registry.yarnpkg.com/spellchecker/-/spellchecker-3.7.0.tgz#d63e6fd612352b0108e7bbf942f271665ff63c8b"
-  integrity sha512-saQT4BR9nivbK70s0YjyIlSbZzO6bfWRULcGL2JU7fi7wotOnWl70P0QoUwwLywNQJQ47osgCo6GmOlqzRTxbQ==
-  dependencies:
-    any-promise "^1.3.0"
-    nan "^2.14.0"
-
 split-string@^3.0.1, split-string@^3.0.2:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
@@ -6081,11 +6090,6 @@ string_decoder@^1.0.0:
   dependencies:
     safe-buffer "~5.2.0"
 
-string_decoder@~0.10.x:
-  version "0.10.31"
-  resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
-  integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=
-
 string_decoder@~1.1.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
@@ -6160,13 +6164,6 @@ stylehacks@^4.0.0:
     postcss "^7.0.0"
     postcss-selector-parser "^3.0.0"
 
-sumchecker@^2.0.2:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-2.0.2.tgz#0f42c10e5d05da5d42eea3e56c3399a37d6c5b3e"
-  integrity sha1-D0LBDl0F2l1C7qPlbDOZo31sWz4=
-  dependencies:
-    debug "^2.2.0"
-
 sumchecker@^3.0.1:
   version "3.0.1"
   resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.1.tgz#6377e996795abb0b6d348e9b3e1dfb24345a8e42"
@@ -6298,11 +6295,6 @@ throat@^5.0.0:
   resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b"
   integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==
 
-throttleit@0.0.2:
-  version "0.0.2"
-  resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-0.0.2.tgz#cfedf88e60c00dd9697b61fdd2a8343a9b680eaf"
-  integrity sha1-z+34jmDADdlpe2H90qg0OptoDq8=
-
 through2@^2.0.0:
   version "2.0.5"
   resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
@@ -6311,14 +6303,6 @@ through2@^2.0.0:
     readable-stream "~2.3.6"
     xtend "~4.0.1"
 
-through2@~0.2.3:
-  version "0.2.3"
-  resolved "https://registry.yarnpkg.com/through2/-/through2-0.2.3.tgz#eb3284da4ea311b6cc8ace3653748a52abf25a3f"
-  integrity sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=
-  dependencies:
-    readable-stream "~1.1.9"
-    xtend "~2.1.1"
-
 timers-browserify@^2.0.4:
   version "2.0.11"
   resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f"
@@ -6331,6 +6315,18 @@ timsort@^0.3.0:
   resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
   integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=
 
+tldts-core@^5.6.17:
+  version "5.6.17"
+  resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-5.6.17.tgz#32ecfd710173a1841fe4e1447ff827b98cacfed1"
+  integrity sha512-34o7eZ1DR2OxotxKCtFYceTHJRwSnFzhIz3hL6Mbker0aPlVysy/nFxixC8LUREo8ytzPd6HbsR2Tm/WVgrcwA==
+
+tldts-experimental@^5.6.3:
+  version "5.6.17"
+  resolved "https://registry.yarnpkg.com/tldts-experimental/-/tldts-experimental-5.6.17.tgz#6c94e18fafb598784659d28e0127e99ee2dfbfb5"
+  integrity sha512-pdesifhl8cmjUFLrnVMG0YkO+VlJuKlfgmFUehBR20Ow1gPw/6oZAP0m2WVoejyCSWYC6TNjMSO720VuLNtEHg==
+  dependencies:
+    tldts-core "^5.6.17"
+
 tmp-promise@^1.0.5:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-1.1.0.tgz#bb924d239029157b9bc1d506a6aa341f8b13e64c"
@@ -6899,13 +6895,6 @@ xtend@^4.0.0, xtend@~4.0.1:
   resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
   integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
 
-xtend@~2.1.1:
-  version "2.1.2"
-  resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b"
-  integrity sha1-bv7MKk2tjmlixJAbM3znuoe10os=
-  dependencies:
-    object-keys "~0.4.0"
-
 y18n@^3.2.1:
   version "3.2.1"
   resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"