Release 67.0.3396.95

This commit is contained in:
csagan5 2018-06-22 08:45:35 +02:00
parent ff372ffe53
commit 10661f0b36
5 changed files with 378 additions and 189 deletions

View file

@ -1,3 +1,10 @@
# 67.0.3396.95
* reduce headers sent in DoH requests (fixes https://github.com/bromite/bromite/issues/70)
* serve DoH requests with maximum priority
* `CloudFlare` -> `Cloudflare` (fixes https://github.com/bromite/bromite/issues/73)
* fingerprint miitagions: cover also `ConvertToArrayBufferContents`
* updated AdBlock filters
# 67.0.3396.92
* improve randomisation for each retrieved Canvas data (fixes https://github.com/bromite/bromite/issues/69)
* updated AdBlock filters

View file

@ -19,7 +19,7 @@ struct adblock_entry {
const char **domains, **domains_neg;
};
#define ADBLOCK_ENTRY_COUNT 51488
#define ADBLOCK_ENTRY_COUNT 51545
const char *m10030a28[] = { "/InsightTrk/", NULL };
const char *m10045299[] = { "award.sitekeuring.net^", NULL };
const char *m100458cd[] = { "eluhhfyxx.com^", NULL };
@ -231,6 +231,7 @@ const char *m10fcfdf3[] = { "vejlbuixnknc.com^", NULL };
const char *m10fd0c07[] = { ".ie/ads/", NULL };
const char *m10fe2ae1[] = { "imagebam.com/JS/pt.js", NULL };
const char *m10fec0f3[] = { "adviva.net^", NULL };
const char *m10ffb484[] = { "tmjpoimnbgltkn.com^", NULL };
const char *m10ffdd69[] = { "/randomad120x600nsfw.", NULL };
const char *m1101c744[] = { "_80x468.", NULL };
const char *m110254ee[] = { "/ga1.js", NULL };
@ -2271,11 +2272,13 @@ const char *m1aeb8bd8[] = { "_images/ads/", NULL };
const char *m1aeca530[] = { "bikeradar.com/media/img/commercial/", NULL };
const char *m1aecf8a6[] = { "/ad2/index.", NULL };
const char *m1aed4e5a[] = { "sourceforge.net/log/", NULL };
const char *m1aeefbf7[] = { "qcrvwgsfz.com^", NULL };
const char *m1af1e11e[] = { "d-markets.net^", NULL };
const char *m1af4e76b[] = { "tower.moviepilot.com^", NULL };
const char *m1af5e127[] = { "adtools2.amakings.com^", NULL };
const char *m1af7cb82[] = { "chinadaily.com.cn/s?", NULL };
const char *m1af7e6c5[] = { "shimory.com/js/show_ads.js", NULL };
const char *m1af8e0a [] = { "piwik.pro^", NULL };
const char *m1afa2a6a[] = { "banner.titan-dsl.de^", NULL };
const char *m1afb0712[] = { "_ads/horiz/", NULL };
const char *m1afcab9e[] = { "quantum-advertising.com^", NULL };
@ -2541,6 +2544,7 @@ const char *m1c1fb0e4[] = { "5advertise.com^", NULL };
const char *m1c205bf9[] = { "b88c9bd1dcedfc3.com^", NULL };
const char *m1c20e709[] = { "content.jwplatform.com^", NULL };
const char *m1c21dc37[] = { "songspk.cc/pop", ".html", NULL };
const char *m1c24edf5[] = { "xbmnbfzoeug.com^", NULL };
const char *m1c252064[] = { "/bannerrotater/", NULL };
const char *m1c27edb1[] = { "boylesportsreklame.com^", NULL };
const char *m1c29271 [] = { "adnotbad.com^", NULL };
@ -4498,6 +4502,7 @@ const char *m25516836[] = { "fullstory.com^", NULL };
const char *m25535865[] = { "/contextads.", NULL };
const char *m2553f473[] = { "/statcounter.js", NULL };
const char *m255600c8[] = { "pop-myads.weebly.com^", NULL };
const char *m255645ee[] = { "dngsuhxuzb.com^", NULL };
const char *m2556adeb[] = { "ct.pinterest.com^", NULL };
const char *m2556e074[] = { "qqatllrijx.com^", NULL };
const char *m2557cf22[] = { "adprs.net^", NULL };
@ -5551,6 +5556,7 @@ const char *m2a4491a3[] = { "/webad.", NULL };
const char *m2a44da18[] = { "stats.yourminis.com^", NULL };
const char *m2a4502f1[] = { "das5ku9q.com^", NULL };
const char *m2a46db4a[] = { "uptolike.com/widgets/", "/imp?", NULL };
const char *m2a482d43[] = { "rxjlimrpfziuqh.com^", NULL };
const char *m2a490e58[] = { "shelterstraw.com^", NULL };
const char *m2a4a6b76[] = { "ezknqsblzmsl.com^", NULL };
const char *m2a4d21a6[] = { "hotkellymadison.com^", "^kelly1.jpg", NULL };
@ -5900,6 +5906,7 @@ const char *m2c0d4e23[] = { "ad.lupa.cz^", NULL };
const char *m2c0d87a7[] = { "/top_ads/", NULL };
const char *m2c0e8a7 [] = { "tongji.mafengwo.cn^", NULL };
const char *m2c0fc463[] = { "top100.mrwebmaster.it^", NULL };
const char *m2c11137b[] = { "zbhlfwpnp.com^", NULL };
const char *m2c121137[] = { "gsspat.jp^", NULL };
const char *m2c13656a[] = { "/thirdpartyads/", NULL };
const char *m2c144e64[] = { "dynad.net^", NULL };
@ -7124,6 +7131,7 @@ const char *m31c6fc75[] = { "atrack.art.com^", NULL };
const char *m31c98e36[] = { "stlyrics.com^", "_st.js", NULL };
const char *m31cb92c4[] = { "analitica.webrpp.com^", NULL };
const char *m31cc10c7[] = { "aiya.com.cn/stat.js", NULL };
const char *m31ce41d9[] = { "mtmzmcztix.com^", NULL };
const char *m31d02a99[] = { "/ads/assets/", NULL };
const char *m31d32a05[] = { "/rr/t?step=", NULL };
const char *m31d3ae2c[] = { "fogl1onf.com^", NULL };
@ -7516,6 +7524,7 @@ const char *m33a863bf[] = { "im-apps.net^", NULL };
const char *m33a99177[] = { "43d6f284d10bfbbb3.com^", NULL };
const char *m33a9cef [] = { "bjvynucz.bid^", NULL };
const char *m33a9e7a9[] = { "_adhoriz.", NULL };
const char *m33aa03a8[] = { "vixqjiypv.com^", NULL };
const char *m33aa96e8[] = { "dialerporn.com^", NULL };
const char *m33ad002a[] = { "rcgi.video.qq.com^", NULL };
const char *m33aed946[] = { "swimnewslibrary.com^", "_960x120.jpg", NULL };
@ -7689,6 +7698,7 @@ const char *m3477cb69[] = { "/loading_ads.", NULL };
const char *m3478d5b [] = { "tracking.carsales.com.au^", NULL };
const char *m34796d48[] = { "/adsense/", NULL };
const char *m34797b22[] = { "adswizz.com^", NULL };
const char *m347b449f[] = { "/swa_t.gif?", NULL };
const char *m347c0e67[] = { "omnicalculator.com/sdk.js", NULL };
const char *m347c6738[] = { "/gate-ad-", NULL };
const char *m347ea58f[] = { "intellicast.com/travel/cheapflightswidget.htm", NULL };
@ -8190,6 +8200,7 @@ const char *m36d7cf6f[] = { "/toprightads.", NULL };
const char *m36d85e72[] = { "munically.com^", NULL };
const char *m36d8d57 [] = { "biksibo.ru^", NULL };
const char *m36daf2e8[] = { "morningstaronline.co.uk/offsite/progressive-listings/", NULL };
const char *m36de6c6e[] = { "ypecrrktyo.com^", NULL };
const char *m36e2f287[] = { "leadboltads.net^", NULL };
const char *m36e7e555[] = { "ulajilala.com^", NULL };
const char *m36e9d79 [] = { "associmg.com^", ".gif^tag-", NULL };
@ -9659,6 +9670,7 @@ const char *m3e142d1e[] = { "izlzayrcegfvke.bid^", NULL };
const char *m3e150d8a[] = { "/googleAdTaggingSubSec.", NULL };
const char *m3e158d54[] = { "/ad_commonside.", NULL };
const char *m3e16bf5b[] = { "160x600.htm", NULL };
const char *m3e192806[] = { "wzfxaqhiapptsz.com^", NULL };
const char *m3e1b7ec7[] = { "/yesbaby.", NULL };
const char *m3e1bc3b1[] = { "observer.com.na/images/banners/", NULL };
const char *m3e1c52b [] = { "deb.gs/track/", NULL };
@ -11064,6 +11076,7 @@ const char *m44ba387a[] = { "pop.billionuploads.com^", NULL };
const char *m44bcd46 [] = { "/doubleclick/iframe.", NULL };
const char *m44bf2d51[] = { "filecloud.io/banner_ads.js", NULL };
const char *m44bf4f1b[] = { "cellstats.mako.co.il^", NULL };
const char *m44bf8b0e[] = { "analytics.edgekey.net/ma_library/javascript/javascript_malibrary.js", NULL };
const char *m44c1b5d5[] = { "_admanager/", NULL };
const char *m44c2faa6[] = { "/bannerinc.", NULL };
const char *m44c33a2e[] = { "tiveriches.pro^", NULL };
@ -11697,6 +11710,7 @@ const char *m47a465b8[] = { "/wordpress/wp-admin/", "-ads-manager/", NULL };
const char *m47a48106[] = { "/buttonads.", NULL };
const char *m47a6fe0a[] = { "phncdn.com/www-static/js/mg-utils.js", NULL };
const char *m47a7d6ae[] = { "patrick-wied.at/static/heatmapjs/src/heatmap.js", NULL };
const char *m47a7ee99[] = { "/webbug_c.gif?", NULL };
const char *m47a80d70[] = { "tracking.rce.veeseo.com^", NULL };
const char *m47a9bb2e[] = { "indiaresults.com/advertisements/submit.png", NULL };
const char *m47aa33bb[] = { "ver-pelis.net^", NULL };
@ -11846,6 +11860,7 @@ const char *m484fdadf[] = { "pakbanners.com^", NULL };
const char *m48518ace[] = { "/ads_gallery/", NULL };
const char *m485268b2[] = { "/ads/dj_", NULL };
const char *m4852b4 [] = { "unser-star-fuer-oslo.de^", "^stats.php", NULL };
const char *m4853548d[] = { "ytbpmzbabph.com^", NULL };
const char *m48574ff8[] = { "vjgfelirts.bid^", NULL };
const char *m485ac22b[] = { "fc2.com^", NULL };
const char *m485bc5cc[] = { "jfvoyuxmp.bid^", NULL };
@ -12121,6 +12136,7 @@ const char *m49c327a2[] = { "lanacion.com.ar/apw.js", NULL };
const char *m49c6aca9[] = { "adro.co^", NULL };
const char *m49ca029a[] = { "nufc.com^", "^altoonative_Cardiff.gif", NULL };
const char *m49cbf82d[] = { "jyvtidkx.com^", NULL };
const char *m49cc253e[] = { "ipllxfcftp.com^", NULL };
const char *m49cd23f [] = { "letour.fr/img/v6/sprite_partners_2x.png", NULL };
const char *m49cf7eaa[] = { "metrics.cnn.com^", NULL };
const char *m49d044d [] = { "bhphotovideo.com/imp/", NULL };
@ -12985,6 +13001,7 @@ const char *m4e0663f8[] = { "juyfhwxcvzft.com^", NULL };
const char *m4e07827c[] = { "/ad-top/", NULL };
const char *m4e080843[] = { "godspeaks.net^", NULL };
const char *m4e09ea52[] = { "clicksor.net^", NULL };
const char *m4e0a4873[] = { "lwbextsnjgw.com^", NULL };
const char *m4e0bbdf [] = { "_468x120.", NULL };
const char *m4e0d797e[] = { "static.adzerk.net/ados.js", NULL };
const char *m4e0ec30c[] = { "mixpanel.com/site_media/js/api/mixpanel.js", NULL };
@ -13300,6 +13317,7 @@ const char *m4f7304d5[] = { "threadloom.com/ga/", NULL };
const char *m4f73b66f[] = { "mk-ads.com^", NULL };
const char *m4f74701b[] = { "84544232a4185d6.com^", NULL };
const char *m4f782a3f[] = { "dvf2u7vwmkr5w.cloudfront.net^", NULL };
const char *m4f7b8a8e[] = { "fwfsnhixricu.com^", NULL };
const char *m4f7eaf62[] = { "watchnowlive.eu^", NULL };
const char *m4f7ef032[] = { "mdotlabs.com^", NULL };
const char *m4f806fa6[] = { "/np?log=", NULL };
@ -13534,6 +13552,7 @@ const char *m50ba0ab3[] = { ".php?affid=", NULL };
const char *m50bc2d4d[] = { "/partners/ads/", NULL };
const char *m50bc964c[] = { "/bserver/", NULL };
const char *m50bdaa9f[] = { "bermudasun.bm/stats/", NULL };
const char *m50be5a7a[] = { "juno.com/start/view/redesign/common/phoenix/", NULL };
const char *m50bee288[] = { "?trackingCategory=", NULL };
const char *m50bef372[] = { "gravity4.com^", NULL };
const char *m50bf32be[] = { "psmlgjalddqu.com^", NULL };
@ -15383,6 +15402,7 @@ const char *m597be3da[] = { "/attachad.", NULL };
const char *m597c52dc[] = { "itavisen.no/cdn-cgi/apps/head/", NULL };
const char *m597c7e2a[] = { "hwcdn.net/js/common/locker.js", NULL };
const char *m597da949[] = { "c1f9b35b00f.com^", NULL };
const char *m597f865a[] = { "dc08i221b0n8a.cloudfront.net^", NULL };
const char *m5980c14d[] = { "reachandrich.antevenio.com^", NULL };
const char *m59828da0[] = { "/xtclicks-", NULL };
const char *m59834fe0[] = { "/Box-ad-", NULL };
@ -15891,7 +15911,6 @@ const char *m5c0af4f2[] = { "bidderrtb.com^", NULL };
const char *m5c0cccb8[] = { "bizanti.youwatch.org^", NULL };
const char *m5c0e2c9b[] = { "ozelmedikal.com^", NULL };
const char *m5c0ec6b3[] = { "baidu.com/ecom?", NULL };
const char *m5c0f0fdd[] = { ".iframetracker.", NULL };
const char *m5c0f4511[] = { "walletpop.com/track/", NULL };
const char *m5c0f81 [] = { "media.expedia.com/", "/ads/", NULL };
const char *m5c0fa434[] = { "onvasortir.com/advert", NULL };
@ -16495,6 +16514,7 @@ const char *m5edfcdd2[] = { "ptwebcams.com^", NULL };
const char *m5ee13fa5[] = { "/pixel1/impression.", NULL };
const char *m5ee15d8 [] = { ".728x90/", NULL };
const char *m5ee19595[] = { "d5e.info/1.gif", NULL };
const char *m5ee1d016[] = { "lqrlhmdwy.com^", NULL };
const char *m5ee2af98[] = { "ads.tbs.com/html.ng/site=", "600x400_", NULL };
const char *m5ee2b3f3[] = { "wamnetwork.com^", NULL };
const char *m5ee31f2f[] = { "audit.pcadvisor.co.uk^", NULL };
@ -18037,6 +18057,7 @@ const char *m65d7c481[] = { "exitexchange.com^", NULL };
const char *m65d85b31[] = { "lucky-ace-casino.net/banners/", NULL };
const char *m65d987bd[] = { "events.realgravity.com^", NULL };
const char *m65d9d3ce[] = { "szjgylwamcxo.com^", NULL };
const char *m65dd45ca[] = { "rsqcrylqremctr.com^", NULL };
const char *m65dd6885[] = { "/adbrite2.", NULL };
const char *m65ddb916[] = { "voxmedia.com/beacon-min.js", NULL };
const char *m65de712 [] = { "waynsnuu.bid^", NULL };
@ -19809,6 +19830,7 @@ const char *m6e2d43d4[] = { "thecharlottepost.com/cache/sql/fba/", NULL };
const char *m6e2e0bad[] = { "dictionary.cambridge.org/info/frame.html?zone=", NULL };
const char *m6e31be2a[] = { "/linkads.", NULL };
const char *m6e325e08[] = { "stacksocial.com/bundles/", NULL };
const char *m6e330900[] = { "phncdn.com/www-static/js/amateur/amateur-signup.js", NULL };
const char *m6e33e265[] = { "tntclix.co.uk^", NULL };
const char *m6e34509b[] = { "/doubleclick.php", NULL };
const char *m6e35eebe[] = { "24porn7.com/imads/", NULL };
@ -19967,6 +19989,7 @@ const char *m6f012639[] = { "_homad.", NULL };
const char *m6f030de4[] = { "ahkpdnrtjwat.com^", NULL };
const char *m6f03f22f[] = { "hexagram.com^", NULL };
const char *m6f056cd1[] = { "ads.ask.com^", NULL };
const char *m6f07e831[] = { "xexklpgrsg.com^", NULL };
const char *m6f083613[] = { "czrtrfoin.com^", NULL };
const char *m6f084df5[] = { "etglnloj.com^", NULL };
const char *m6f08c45f[] = { "alicdn.com^", "^class.js", "^base.js", "^widget.js", NULL };
@ -21661,6 +21684,7 @@ const char *m76d48b93[] = { "doubleclick.net^", "^pfadx^embed.ytpwatch.", NULL }
const char *m76d5368b[] = { "freedom.com^", "^analytic^", NULL };
const char *m76d5aaf1[] = { "flipflapflo.net^", NULL };
const char *m76d63d99[] = { "/msnpopsingle2.", NULL };
const char *m76d81068[] = { "elvenar.com^", "^ref^", NULL };
const char *m76d96146[] = { "pqwbcpqqiiznu.bid^", NULL };
const char *m76d99524[] = { "/aggbug.aspx?", NULL };
const char *m76dabea7[] = { "/ads/behicon.", NULL };
@ -21761,6 +21785,7 @@ const char *m773667c1[] = { "/ad_srv.", NULL };
const char *m77398e6c[] = { "/commspace_ad.", NULL };
const char *m77399200[] = { "/root_ad.", NULL };
const char *m773a7b8d[] = { "zjvlymwonwbp.bid^", NULL };
const char *m773a8ea [] = { "prtjzzyfi.com^", NULL };
const char *m773a974e[] = { "&video_ads_", NULL };
const char *m773ed49e[] = { "4downfiles.com/open1.js", NULL };
const char *m773f461a[] = { "hiadone.com^", NULL };
@ -22463,6 +22488,7 @@ const char *m7aab00b6[] = { "/admedia/", NULL };
const char *m7aad1fc [] = { "linkedin.com/analytics/", NULL };
const char *m7aaf79dc[] = { "/ad_include.", NULL };
const char *m7ab230ba[] = { "-footerads-", NULL };
const char *m7ab267bf[] = { "wsyuiudkoqrf.com^", NULL };
const char *m7ab3635c[] = { "/mstat/", NULL };
const char *m7ab3a8e7[] = { "s7.addthis.com^", NULL };
const char *m7ab40a1a[] = { "pussyeatingclub.com^", NULL };
@ -22817,6 +22843,7 @@ const char *m7c6a93d7[] = { "gorillanation.com/js/triggertag.js", NULL };
const char *m7c6aa73c[] = { "linuxsat-support.com/vsa_banners/", NULL };
const char *m7c6cb85e[] = { "onlinepresse.info/counter.php?", NULL };
const char *m7c6fabf6[] = { "/dot.gif?", NULL };
const char *m7c7021ec[] = { "ktbcsulyildmm.com^", NULL };
const char *m7c70a0c7[] = { "/adsup.", NULL };
const char *m7c70ef20[] = { "jokeroo.com/i/.gif", NULL };
const char *m7c756cdb[] = { "dexerto.com/app/uploads/", "-300600.", NULL };
@ -24776,6 +24803,7 @@ const char *m85ba489d[] = { "urpscavikbyv.com^", NULL };
const char *m85ba4ae9[] = { "boydadvertising.co.uk^", NULL };
const char *m85bc1432[] = { "watchuseek.com/media/wus-image.jpg", NULL };
const char *m85bf314 [] = { "king.com^", "^banners^", NULL };
const char *m85c0d5b6[] = { "qerlrppx.com^", NULL };
const char *m85c47ab0[] = { "50bang.org^", NULL };
const char *m85c49717[] = { "advertrev.com^", NULL };
const char *m85c5c1f2[] = { "pussy.org^", "^track.php", NULL };
@ -25117,6 +25145,7 @@ const char *m8781d24f[] = { "/advertsquare.", NULL };
const char *m87833689[] = { "mmaigzevcfws.com^", NULL };
const char *m878499cd[] = { "inringtone.com^", NULL };
const char *m87867dab[] = { "vintage-erotica-forum.com/clientscript/vbulletin_menu.js?", NULL };
const char *m8789c20f[] = { "", ".php", NULL };
const char *m878a0a4 [] = { "/popunders.", NULL };
const char *m878a21a [] = { "sayellow.com/Clients/Banners/", NULL };
const char *m878a3c70[] = { "yahoo.co.jp/s?s=", NULL };
@ -26028,6 +26057,7 @@ const char *m8bd89d44[] = { "journeychristiannews.com/images/banners/", NULL };
const char *m8bda5df1[] = { "sponsoredtweets.com^", NULL };
const char *m8bdb87df[] = { "/buddyw_ad.", NULL };
const char *m8bde20fd[] = { "glnqvqbedbmvtcdzcokrfczopbddhopygrvrnlgmalgvhnsfsc.com^", NULL };
const char *m8bde606e[] = { "hdliveextra-a.akamaihd.net/HD/scripts/", "/config/ads.js", NULL };
const char *m8bdf9b9f[] = { "assoc-amazon.co.uk^", NULL };
const char *m8be1144f[] = { "/rbi_us.js", NULL };
const char *m8be40cab[] = { "fotolog.com/styles/flags/ad.gif", NULL };
@ -26981,6 +27011,7 @@ const char *m907574a6[] = { "clicksagent.com^", NULL };
const char *m9076182a[] = { "addkt.com/slader", NULL };
const char *m90761e56[] = { "gzkoehgbpozz.com^", NULL };
const char *m907ac7fd[] = { "cisfjtamphuqt.com^", NULL };
const char *m907aea68[] = { ".click/track?", NULL };
const char *m907bad3d[] = { "click.aristotle.net^", NULL };
const char *m907c61 [] = { ".openx.", NULL };
const char *m907ee387[] = { "partypartners.com^", NULL };
@ -27524,6 +27555,7 @@ const char *m93158c08[] = { "evisitcs.com^", NULL };
const char *m9315adbb[] = { "tbwaaekocue.bid^", NULL };
const char *m9315fca4[] = { "jzthapvjlq.bid^", NULL };
const char *m93166799[] = { ".jsp/?Log=", NULL };
const char *m9318fdbf[] = { "dcmhpbpdcsy.com^", NULL };
const char *m931a6179[] = { "dkvzpqcqan.com^", NULL };
const char *m931d5eb [] = { "iyi.net^", NULL };
const char *m931f6003[] = { "bbtlombqjr.bid^", NULL };
@ -28049,6 +28081,7 @@ const char *m95cc85e5[] = { "log.ideamelt.com^", NULL };
const char *m95cefcf5[] = { "bijk.com^", "^banners^", NULL };
const char *m95d05e3b[] = { "dll5uyyj.date^", NULL };
const char *m95d091cc[] = { "rtl.nl/system/s4m/xldata/get_comscore.js?", NULL };
const char *m95d12c4e[] = { "cuecxgwkjtan.com^", NULL };
const char *m95d1bad2[] = { "vpntunnel.se/aff/", NULL };
const char *m95d27de3[] = { "comicgenesis.com/tcontent.php?out=", NULL };
const char *m95d3776d[] = { "mkini.net/banners/", NULL };
@ -29575,6 +29608,7 @@ const char *m9d3a193e[] = { "/metrics.xml", NULL };
const char *m9d3b9b8c[] = { "gkiryieltcbg.com^", NULL };
const char *m9d3d077a[] = { "torrentproject.org/out/", NULL };
const char *m9d3e486d[] = { "generic4all.com^", ".dhtml^refid^", NULL };
const char *m9d3fe981[] = { "ctohqzii.com^", NULL };
const char *m9d403438[] = { "bowqvvztlkzn.com^", NULL };
const char *m9d414be7[] = { "/footerads.", NULL };
const char *m9d4352d [] = { "rscgfvsximqdpowcmruwitolouncrmnribnfobxzfhrpdmahqe.com^", NULL };
@ -29627,6 +29661,7 @@ const char *m9d8e7a38[] = { "pixel.colorupmedia.com^", NULL };
const char *m9d8eca72[] = { "rbc.ru/count/", NULL };
const char *m9d8ff9c1[] = { "/advert1.", NULL };
const char *m9d91e79 [] = { "topgamesites.net^", NULL };
const char *m9d921c2d[] = { "d3jcjsor8fnmka.cloudfront.net^ ", NULL };
const char *m9d95f484[] = { "pornslash.com/cbp.php", NULL };
const char *m9d9762b7[] = { "zhbzxeis.bid^", NULL };
const char *m9d978bfe[] = { "dnbizcdn.com^", NULL };
@ -29830,6 +29865,7 @@ const char *m9e79e407[] = { "neteventsmedia.be/hit.cfm?", NULL };
const char *m9e7a905f[] = { "ybotvisit.com^", NULL };
const char *m9e7c806e[] = { "radiomanlibya.com^", NULL };
const char *m9e7cc9f1[] = { "addirector.vindicosuite.com^", NULL };
const char *m9e7d5472[] = { "vhuhrhowm.com^", NULL };
const char *m9e7e3a4c[] = { "publichd.eu/images/directdownload.png", NULL };
const char *m9e810816[] = { "playmobileads.com^", NULL };
const char *m9e82cd08[] = { "/track/visits/?", NULL };
@ -30625,6 +30661,7 @@ const char *ma249d9de[] = { "dinkstat.com^", NULL };
const char *ma24cc9aa[] = { "vxuhavco.com^", NULL };
const char *ma24d65b0[] = { "bizsolutions.strands.com^", NULL };
const char *ma24ed82e[] = { "/pop_under.", NULL };
const char *ma2501a2e[] = { "masterani.me/static/jaja/", NULL };
const char *ma250bc29[] = { "juventus.com/pics/sponsors/", NULL };
const char *ma2513c70[] = { "rszzpjttufuw.bid^", NULL };
const char *ma257ba3 [] = { "upload.ee/image/", "/B_descarga_tipo12.gif", NULL };
@ -30996,6 +31033,7 @@ const char *ma40719b8[] = { "ucaster.eu/static/scripts/adscript.js", NULL };
const char *ma4073622[] = { "checkpagerank.net/banners/", NULL };
const char *ma4078cd5[] = { "filmey.com/Filmey.Ad.js", NULL };
const char *ma4079ba5[] = { "digwzeutydo.com^", NULL };
const char *ma407c8a0[] = { "jackettrain.com^", NULL };
const char *ma4082c3b[] = { "whoson.com/include.js?", NULL };
const char *ma40a1928[] = { "jkjoxlhkwnxd.com^", NULL };
const char *ma40aca3b[] = { "embed.docstoc.com/Flash.asmx/StoreReffer?", NULL };
@ -31926,6 +31964,7 @@ const char *ma87dcf54[] = { "/amazon-async-", NULL };
const char *ma87de212[] = { "trafficvance.com^", NULL };
const char *ma87df34a[] = { "tower-colocation.info^", NULL };
const char *ma881e0dc[] = { "evergage.com^", NULL };
const char *ma8820fda[] = { "ikcwcxhgibmumf.com^", NULL };
const char *ma88540f8[] = { "/468x060.", NULL };
const char *ma88648a0[] = { "fvrvxmksxhut.com^", NULL };
const char *ma8881cf4[] = { "pxvnhcdzuozqn.com^", NULL };
@ -32933,6 +32972,7 @@ const char *mad18e90b[] = { "familiarfloor.com^", NULL };
const char *mad18f295[] = { "thermstats.com^", NULL };
const char *mad19464a[] = { "canvas.thenextweb.com^", NULL };
const char *mad1bd6d8[] = { "ybikaghc.bid^", NULL };
const char *mad1ce84c[] = { "/res/x.gif?", NULL };
const char *mad1d484e[] = { "popflawlessads.com^", NULL };
const char *mad1e3158[] = { "interactive.forthnet.gr^", NULL };
const char *mad1f1cb9[] = { "escokuro.com^", NULL };
@ -36679,6 +36719,7 @@ const char *mbebf86c1[] = { "blyppvdjofkqg.bid^", NULL };
const char *mbebf925f[] = { "androidpolice.com/wp-content/", "/images/das/", NULL };
const char *mbec026af[] = { "ti.com/assets/js/headerfooter/", NULL };
const char *mbec0d454[] = { "amazon.com/gp/", "&linkCode", NULL };
const char *mbec2fc13[] = { "/gainjectmin.", NULL };
const char *mbec3a180[] = { "nzads.net.nz^", NULL };
const char *mbec3aba5[] = { "/floatingad.", NULL };
const char *mbec5004d[] = { "d3q2dpprdsteo.cloudfront.net^", NULL };
@ -37124,6 +37165,7 @@ const char *mc0e4d106[] = { "office365.com^", "^owa.Analytics.js", NULL };
const char *mc0e5dbc3[] = { "mediaseeding.com^", NULL };
const char *mc0e608dc[] = { "wksu.org/graphics/banners/", NULL };
const char *mc0e60d52[] = { "dt00.net^", NULL };
const char *mc0e64d5b[] = { "pcqmqyqeswnrd.com^", NULL };
const char *mc0e66fbb[] = { "dailypioneer.com/images/banners/", NULL };
const char *mc0e7d478[] = { "pimpmypr.de^", NULL };
const char *mc0ecd8fb[] = { "routesonline.com/banner/", NULL };
@ -37336,6 +37378,7 @@ const char *mc1e18fdc[] = { "mb38.com^", NULL };
const char *mc1e1a2e1[] = { "flashx1.tv/js/", "ad", ".js", NULL };
const char *mc1e2238c[] = { "townnews.com^", "^upickem-deals.js^", NULL };
const char *mc1e33b3b[] = { "offers.lendingtree.com/splitter/", NULL };
const char *mc1e40aee[] = { "/seed.gif?", NULL };
const char *mc1e423af[] = { "/scn.php?", NULL };
const char *mc1e4c2d [] = { "-ad_injector/", NULL };
const char *mc1e5cd32[] = { "/ping?h=", NULL };
@ -37449,6 +37492,7 @@ const char *mc26d54c3[] = { "assoc-amazon.es^", NULL };
const char *mc26e0a71[] = { "newswire.ca/rt.gif?", NULL };
const char *mc26fae81[] = { "freehookupaffair.com^", NULL };
const char *mc2710285[] = { "rapidyl.net^", NULL };
const char *mc2724597[] = { "bewcmime.com^", NULL };
const char *mc2728e09[] = { "phncdn.com/www-static/js/footer.js", NULL };
const char *mc27300a3[] = { "link.codeyear.com/img/", NULL };
const char *mc2738876[] = { "ffhwzaenzoue.com^", NULL };
@ -37840,6 +37884,7 @@ const char *mc44b010c[] = { "hcomicbook.com^", "_banner1.gif", NULL };
const char *mc44eb204[] = { "dom002.site^", NULL };
const char *mc44f12fb[] = { "ajax.cloudflare.com^", NULL };
const char *mc44fe6a [] = { "cts.channelintelligence.com^", NULL };
const char *mc450d1bf[] = { "laborates.com^", NULL };
const char *mc453bd3b[] = { "cloudfront.net/images/super-banner/", NULL };
const char *mc455ff72[] = { "bing.com/action/", NULL };
const char *mc45b87bb[] = { "github.com/hydro_browser_events", NULL };
@ -38013,6 +38058,7 @@ const char *mc54a6c5 [] = { "c-webstats.de^", NULL };
const char *mc54b0db1[] = { "minuripsmed.ee/templates/", "/images/advert.gif", NULL };
const char *mc54bb0bc[] = { "maases.com/i/br/", NULL };
const char *mc54f1cb9[] = { "findonlinesurveysforcash.com^", NULL };
const char *mc54fbcd2[] = { "fwmrm.net/p/msn_live/AdManager.js", NULL };
const char *mc54fbceb[] = { "popuptraffic.com^", NULL };
const char *mc550246f[] = { "/salog.js", NULL };
const char *mc5527e6e[] = { "ecommstats.com^", NULL };
@ -39143,6 +39189,7 @@ const char *mca86e85f[] = { "lookery.com^", NULL };
const char *mca86efed[] = { "neentjsdrgsf.com^", NULL };
const char *mca879b4c[] = { "stormcontainertag.com^", NULL };
const char *mca893000[] = { "slashdot.org/purple.gif", NULL };
const char *mca8ee16f[] = { "?trackGroup=", "&referrer=", NULL };
const char *mca8f5611[] = { "/kitad.", NULL };
const char *mca90dfbb[] = { "/vld.ads?", NULL };
const char *mca91d0b3[] = { "assets.vice.com^", "_120x60.jpg", NULL };
@ -39483,6 +39530,7 @@ const char *mcc27224f[] = { "xihwtdncwtxc.com^", NULL };
const char *mcc278309[] = { "/oas.aspx", NULL };
const char *mcc28aa02[] = { "rhapsody.com^", "^pixel^", NULL };
const char *mcc2a538f[] = { "adhoc2.net^", NULL };
const char *mcc2aa263[] = { "35.184.188.", NULL };
const char *mcc2b3e0b[] = { "clickboothlnk.com^", NULL };
const char *mcc2b82a0[] = { "microsoft.com/LTS/default.aspx", NULL };
const char *mcc2cb73d[] = { "lwenrqtarmdx.com^", NULL };
@ -40910,6 +40958,7 @@ const char *md2c4078f[] = { "371b2fb677e071.men^", NULL };
const char *md2c6583 [] = { "negolist.com^", NULL };
const char *md2c6e07d[] = { "/interstitial-ad/", NULL };
const char *md2c96373[] = { "online-right-now.net^", NULL };
const char *md2cd1b01[] = { "ygkovmqdty.com^", NULL };
const char *md2cffbaf[] = { "clickmatic.pl^", NULL };
const char *md2d2222b[] = { "mynewcarquote.us^", NULL };
const char *md2d439df[] = { "netdna-cdn.com/wp-includes/js/", NULL };
@ -40943,6 +40992,7 @@ const char *md2e425d4[] = { ".cn/r.gif?", NULL };
const char *md2e4cd0a[] = { "/adslide.", NULL };
const char *md2e542e6[] = { "/burt/adv_", NULL };
const char *md2e94ed0[] = { "nmouzlbragpyp.com^", NULL };
const char *md2ead77b[] = { "/track?wm_", NULL };
const char *md2ef82ed[] = { "/interstitial-ad?", NULL };
const char *md2f025b5[] = { "xx00.info^", NULL };
const char *md2f06b58[] = { "/PageTracker?", NULL };
@ -43960,6 +44010,7 @@ const char *me12f18aa[] = { "/adtimage.", NULL };
const char *me130dd75[] = { ".az/adv/", NULL };
const char *me1319b4c[] = { "dtc-v6t.com^", NULL };
const char *me132301 [] = { "mgnetwork.com/dealtaker/", NULL };
const char *me132d88 [] = { "msavideo-a.akamaihd.net^", "^msn_logo_anim-main-", ".mp4", NULL };
const char *me1361e64[] = { "clickhype.com^", NULL };
const char *me13806df[] = { "sociallypublish.com^", NULL };
const char *me1394739[] = { "/paidads/", NULL };
@ -44923,7 +44974,6 @@ const char *me5fe44d9[] = { "baskettexture.com^", NULL };
const char *me5fe6cbe[] = { "204.236.233.138/tracker/", NULL };
const char *me5ff59f0[] = { "wowanalytics.co.uk^", NULL };
const char *me5ff5f12[] = { "mbfvfdkawpoi.com^", NULL };
const char *me5ff647c[] = { "^^https^^\\^\\^([0-9a-z\\-]+\\.)^(9anime|gogoanime|kimcartoon|memecenter|readcomiconline|watchcartoononline)\\.[a-z]{2,4}\\^(^!(Content|Uploads|static|thumbs|player|wp-content|wp-includes))(.", ")^", NULL };
const char *me5ff716e[] = { "/scripts/sweet/", NULL };
const char *me600f495[] = { "phncdn.com/pagespeed.js", NULL };
const char *me601e3dd[] = { "divxden.com^", "^tracker.js", NULL };
@ -45044,6 +45094,7 @@ const char *me6891a85[] = { "isubdom.com^", NULL };
const char *me68931d1[] = { "jdmconkw.com^", NULL };
const char *me68a4455[] = { "officeworks.com.au^", "^site-tracker.js", NULL };
const char *me68a915e[] = { "blingbucks.com^", NULL };
const char *me68c42c2[] = { "adslala.com^", NULL };
const char *me68c7b05[] = { "motorcycles-motorbikes.com/pictures/sponsors/", NULL };
const char *me68cfed [] = { "footprintlive.com^", NULL };
const char *me68ea0dc[] = { "amazon.", "/action-impressions/", NULL };
@ -47882,7 +47933,6 @@ const char *mf431f0e4[] = { "media.washingtonpost.com/wp-srv/ad/photo-ad-config.
const char *mf433129d[] = { "radley.co.uk^", "^Affiliate^", NULL };
const char *mf433853b[] = { "poterrupte.co^", NULL };
const char *mf433949c[] = { "ads.financialcontent.com^", NULL };
const char *mf4357552[] = { "stroeerdp.de/iplocation/", NULL };
const char *mf43584ba[] = { "clickcertain.com^", NULL };
const char *mf435ca72[] = { "clickpoint.com^", NULL };
const char *mf437f9b8[] = { "audience.atex.com^", NULL };
@ -48280,6 +48330,7 @@ const char *mf612e699[] = { "liveuniversenetwork.com^", NULL };
const char *mf6171eb1[] = { "xgxmhvcppp.bid^", NULL };
const char *mf617237d[] = { "alloydigital.com^", NULL };
const char *mf617495b[] = { "720-trail.co.uk^", NULL };
const char *mf6184320[] = { "-adskin.", NULL };
const char *mf6185d87[] = { "begun.ru^", NULL };
const char *mf618b96 [] = { "egouyziyto.bid^", NULL };
const char *mf618cf6f[] = { "ncruzwye.com^", NULL };
@ -48319,6 +48370,7 @@ const char *mf645b011[] = { "vortex.accuweather.com^", "_120x60_bg.jpg", NULL };
const char *mf646fa4d[] = { "kpcflxxodhoxev.bid^", NULL };
const char *mf64853b [] = { "ajax.googleapis.com/ajax/libs/", NULL };
const char *mf648b3d4[] = { "nifyalnngdhb.com^", NULL };
const char *mf6492be3[] = { "quadran.eu^", NULL };
const char *mf64b75b [] = { "doubleclick.net/adj/ctv.muchmusicblog.com/", NULL };
const char *mf64b821c[] = { "_juicyads.", NULL };
const char *mf64ce750[] = { "stats.yme.com^", NULL };
@ -48546,6 +48598,7 @@ const char *mf75ec33 [] = { "admeira.ch^", NULL };
const char *mf7608299[] = { "/showadvertising.", NULL };
const char *mf7634e92[] = { "czasnaherbate.info^", NULL };
const char *mf763b75f[] = { "smartbn.ru^", NULL };
const char *mf7643da8[] = { "stream.porntv69.com/", "/advertisement.js", NULL };
const char *mf7649abb[] = { "adbmi.com^", NULL };
const char *mf766492a[] = { "metapelite.com^", NULL };
const char *mf766fc12[] = { "/pop.js", NULL };
@ -48556,6 +48609,7 @@ const char *mf76c7e1f[] = { "radioinfo.com^", "^575x112-", NULL };
const char *mf76ca2ef[] = { "mms.nola.com^", NULL };
const char *mf76d0541[] = { "sniperlog.ru^", NULL };
const char *mf76d5fee[] = { "/c2_count.js", NULL };
const char *mf76db196[] = { "fwmrm.net/ad/g/1?", NULL };
const char *mf76dd8a0[] = { "=888x10;", NULL };
const char *mf76e13f4[] = { "answerscloud.com^", NULL };
const char *mf76e7ae2[] = { "slack.com/beacon/", NULL };
@ -49531,6 +49585,7 @@ const char *mfbf14fc1[] = { "formisimo.com^", NULL };
const char *mfbf22cd8[] = { "/video_count.php?", NULL };
const char *mfbf418fc[] = { "mahndi.com/images/banner/", NULL };
const char *mfbf4f3d [] = { "thenonleaguefootballpaper.com^", "^140x140_", NULL };
const char *mfbf71244[] = { "leadlab.click^", NULL };
const char *mfbf7ba66[] = { "phncdn.com/www-static/js/pornstars-photo.js?", NULL };
const char *mfbf95fc0[] = { "sugarcurtain.com^", NULL };
const char *mfbfb2a26[] = { "seethisinaction.com^", NULL };
@ -49820,6 +49875,7 @@ const char *mfd5c5299[] = { "/mbcom.tracking.", NULL };
const char *mfd5eaba6[] = { "/display/ads/", NULL };
const char *mfd5fa28a[] = { "servustats.com^", NULL };
const char *mfd60c88e[] = { "/netconversions.", NULL };
const char *mfd616738[] = { "xzfhewclnun.com^", NULL };
const char *mfd63869a[] = { "/ad300x250-", NULL };
const char *mfd6468d8[] = { "rt.prnewswire.com^", NULL };
const char *mfd64bc89[] = { "runt-of-the-web.com/wrap1.jpg", NULL };
@ -50421,6 +50477,7 @@ const char *d13f79a7a[] = { "yourtailorednews.com", NULL };
const char *d142d04f5[] = { "sedoparking.com", NULL };
const char *d143d3e80[] = { "verliga.net", NULL };
const char *d143df0d8[] = { "batmanstream.com", "collectivelyconscious.net", "live.robinwidget.com", NULL };
const char *d14492721[] = { "0dt.net", "123movies.net", "animesonlinetk.info", "asianvote.com", "biqle.ru", "bittorrent.am", "bmovies.to", "bonstreams.net", "briansarmiento.website", "bro.adca.st", "buzzfil.net", "clicknupload.org", "clik.pw", "ddlvalley.me", "divxatope1.com", "dropapk.com", "dwatchseries.to", "ewatchseries.to", "eztv.ag", "fbstreams.me", "fileone.tv", "firstrowsports.eu", "flash-x.tv", "flashsx.tv", "flashx.me", "flashx.run", "flashx.sx", "flashx.to", "flashx.tv", "flashx.ws", "flashx1.tv", "flashxx.tv", "gamestorrent.co", "gorillavid.in", "icefilms.info", "igg-games.com", "jkanime.net", "katcr.host", "kissanime.ru", "lavamovies.se", "livecamtv.me", "m4ufree.com", "m4ufree.tv", "masterani.me", "megaup.net", "mlbstream.me", "moecdn.io", "monova.org", "movpod.in", "my-project-free.tv", "myfeed4u.me", "nbastreams.me", "newpct.com", "newpct1.com", "nflstreams.me", "nhlstreams.me", "nowvideo.sx", "oload.site", "oloadcdn.net", "openload.co", "opensubtitles.org", "pcgames-download.com", "pelispedia.tv", "pelisplus.tv", "pirateproxy.ist", "pirateproxy.sh", "putlockertv.se", "rapidvideo.com", "readmanga.today", "sawlive.tv", "serietvsubita.net", "skidrowcrack.com", "sportshd.me", "stream.moe", "stream2watch.cc", "streamango.com", "streamfilmzzz.com", "streamzzz.online", "strikeout.co", "subtorrents.io", "sunmusiq.com", "telepisodes.co", "thehiddenbay.ws", "thepiratebay.cr", "thepixstate.com", "thevideobee.to", "torrentz2.eu", "unblocked.mx", "unblocked.sh", "unblocked.vet", "unblocker.cc", "uptobox.com", "vidgg.to", "vidlox.me", "vidlox.tv", "vidtod.me", "vidtudu.com", "vidup.me", "vidup.tv", "vidzi.tv", "vodlock.co", "watchers.to", "watchonline.to", "watchonlinemovies.com.pk", "yts.ag", "yts.am", "yts.gs", "zooqle.com", NULL };
const char *d144b8e9 [] = { "hanime.tv", NULL };
const char *d145428c4[] = { "weather.com", NULL };
const char *d146d9e46[] = { "dplay.dk", NULL };
@ -50459,7 +50516,6 @@ const char *d179eb31 [] = { "dataprivacycareers.com", NULL };
const char *d17a9fea5[] = { "qoinfaucet.com", NULL };
const char *d17bf038 [] = { "homepath.com", NULL };
const char *d17cd2973[] = { "cnn.com", NULL };
const char *d17f55371[] = { "affili.net", "bingads.microsoft.com", "linkpizza.com", "mobileapptracking.com", "trialpay.com", NULL };
const char *d182f7cc4[] = { "triage.superservice.com", NULL };
const char *d18502143[] = { "vidzi.si", "vidzi.tv", NULL };
const char *d185c245c[] = { "ifirstrowus.eu", NULL };
@ -50642,6 +50698,7 @@ const char *d2f918ad [] = { "eskago.pl", NULL };
const char *d2f9e7ca5[] = { "businessinsider.com", "givemesport.com", "grubstreet.com", "madison.com", "nowloading.co", "thesouthern.com", "trendblog.net", "twitchy.com", NULL };
const char *d2fd04d3c[] = { "bits.yt", NULL };
const char *d2fe98bd6[] = { "dubs.me", "filestore123.info", "myfilestore.com", "portable77download.blogspot.com", NULL };
const char *d30155ba [] = { "alrincon.com", NULL };
const char *d3020e38c[] = { "100percentfedup.com", "activistpost.com", "addictinginfo.com", "alfonzorachel.com", "allenwestrepublic.com", "allthingsvegas.com", "americansublime.com", "askmefast.com", "auntyacid.com", "barbwire.com", "bestfunnyjokes4u.com", "bighealthreport.com", "bipartisanreport.com", "boredomtherapy.com", "breaking911.com", "breathecast.com", "bugout.news", "bulletsfirst.net", "celebrity-gossip.net", "clashdaily.com", "classicalite.com", "collapse.news", "comicallyincorrect.com", "conservativebyte.com", "conservativevideos.com", "constitution.com", "coviral.com", "craigjames.com", "creepybasement.com", "crossmap.com", "cyberwar.news", "dailyfeed.co.uk", "dailyheadlines.net", "dailyhealthpost.com", "dailysurge.com", "damnlol.com", "dccrimestories.com", "deneenborelli.com", "digitaljournal.com", "eaglerising.com", "earnthenecklace.com", "enstarz.com", "evil.news", "faithit.com", "fitnessconnoisseur.com", "foreverymom.com", "freedom.news", "freedomdaily.com", "freedomforce.com", "freedomoutpost.com", "gamerant.com", "girlsjustwannahaveguns.com", "glitch.news", "gosocial.co", "groopspeak.com", "guardianlv.com", "guns.news", "gymflow100.com", "hallels.com", "hautereport.com", "headcramp.com", "healthstatus.com", "hispolitica.com", "hngn.com", "honesttopaws.com", "hypable.com", "ifyouonlynews.com", "infowars.com", "instigatornews.com", "intellectualconservative.com", "janmorganmedia.com", "jobsnhire.com", "joeforamerica.com", "juicerhead.com", "justdiy.com", "kdramastars.com", "keepandbear.com", "knowledgedish.com", "kpopstarz.com", "lastresistance.com", "latinpost.com", "legalinsurrection.com", "liberty.news", "libertyalliance.com", "libertyunyielding.com", "lidblog.com", "lifebuzz.com", "medicine.news", "mentalflare.com", "minutemennews.com", "moneyversed.com", "musictimes.com", "myscienceacademy.org", "natural.news", "naturalblaze.com", "naturalnews.com", "naturalsociety.com", "natureworldnews.com", "newser.com", "newseveryday.com", "newsthump.com", "oddee.com", "opednews.com", "parentherald.com", "patriotoutdoornews.com", "patriottribune.com", "pickthebrain.com", "politicaloutcast.com", "politichicks.com", "practicallyviral.com", "quirlycues.com", "rantlifestyle.com", "realfarmacy.com", "realmomsrealreviews.com", "realtytoday.com", "redhotchacha.com", "redmaryland.com", "returnofkings.com", "rightwingnews.com", "robotics.news", "shark-tank.com", "shedthoselbs.com", "slender.news", "sonsoflibertymedia.com", "spectator.org", "stevedeace.com", "stupid.news", "supercheats.com", "techconsumer.com", "techtimes.com", "theblacksphere.net", "theboredmind.com", "thefreethoughtproject.com", "thegatewaypundit.com", "thehayride.com", "thelibertarianrepublic.com", "themattwalshblog.com", "thepoke.co.uk", "therealside.com", "theviralmob.com", "tosavealife.com", "traileraddict.com", "truththeory.com", "twisted.news", "universityherald.com", "urbantabloid.com", "usherald.com", "valuewalk.com", "vcpost.com", "victoriajackson.com", "videogamesblogger.com", "viralnova.com", "viralthread.com", "visiontoamerica.com", "wakingtimes.com", "westernjournalism.com", "winningdemocrats.com", "xtribune.com", "youthhealthmag.com", NULL };
const char *d3025d169[] = { "microsoftvirtualacademy.com", NULL };
const char *d30269278[] = { "sprueche-zitate.net.ip", NULL };
@ -50897,7 +50954,6 @@ const char *d541a4bd9[] = { "nidec-copal-electronics.com", NULL };
const char *d541eee3e[] = { "adview.online", NULL };
const char *d542bc248[] = { "100percentfedup.com", "activistpost.com", "addictinginfo.com", "alfonzorachel.com", "allenwestrepublic.com", "allthingsvegas.com", "americansublime.com", "askmefast.com", "auntyacid.com", "barbwire.com", "bestfunnyjokes4u.com", "bighealthreport.com", "bipartisanreport.com", "breaking911.com", "breathecast.com", "bulletsfirst.net", "celebrity-gossip.net", "clashdaily.com", "classicalite.com", "collapse.news", "comicallyincorrect.com", "conservativebyte.com", "conservativeintel.com", "conservativevideos.com", "constitution.com", "coviral.com", "craigjames.com", "creepybasement.com", "crossmap.com", "cyberwar.news", "dailyfeed.co.uk", "dailyheadlines.net", "dailyhealthpost.com", "dailysurge.com", "dccrimestories.com", "deneenborelli.com", "digitaljournal.com", "eaglerising.com", "earnthenecklace.com", "enstarz.com", "evil.news", "fitnessconnoisseur.com", "foreverymom.com", "freedom.news", "freedomdaily.com", "freedomforce.com", "freedomoutpost.com", "freewarefiles.com", "gamerant.com", "girlsjustwannahaveguns.com", "glitch.news", "godfatherpolitics.com", "groopspeak.com", "guardianlv.com", "guns.news", "gymflow100.com", "hallels.com", "hautereport.com", "healthstatus.com", "hispolitica.com", "hngn.com", "honesttopaws.com", "hypable.com", "ifyouonlynews.com", "infowars.com", "instigatornews.com", "janmorganmedia.com", "jobsnhire.com", "joeforamerica.com", "juicerhead.com", "justdiy.com", "kdramastars.com", "keepandbear.com", "kpopstarz.com", "lastresistance.com", "latinpost.com", "legalinsurrection.com", "liberty.news", "libertyalliance.com", "libertyunyielding.com", "lidblog.com", "medicine.news", "mentalflare.com", "minutemennews.com", "musictimes.com", "myscienceacademy.org", "natural.news", "naturalblaze.com", "naturalnews.com", "naturalsociety.com", "natureworldnews.com", "newser.com", "newseveryday.com", "newsthump.com", "oddee.com", "patriotoutdoornews.com", "patriottribune.com", "pickthebrain.com", "politicaloutcast.com", "politichicks.com", "practicallyviral.com", "quirlycues.com", "rantlifestyle.com", "realfarmacy.com", "realmomsrealreviews.com", "realtytoday.com", "redhotchacha.com", "redmaryland.com", "returnofkings.com", "robotics.news", "shark-tank.com", "shedthoselbs.com", "slender.news", "sonsoflibertymedia.com", "spectator.org", "stevedeace.com", "stupid.news", "techconsumer.com", "techtimes.com", "theblacksphere.net", "theboredmind.com", "thefreethoughtproject.com", "thegatewaypundit.com", "thehayride.com", "themattwalshblog.com", "thepoke.co.uk", "therealside.com", "theviralmob.com", "tosavealife.com", "traileraddict.com", "truththeory.com", "twisted.news", "usherald.com", "valuewalk.com", "vcpost.com", "vgpie.com", "victoriajackson.com", "videogamesblogger.com", "viralnova.com", "viralthread.com", "visiontoamerica.com", "wakingtimes.com", "wnd.com", "xtribune.com", "youthhealthmag.com", NULL };
const char *d543f7f0e[] = { "adguard.com", NULL };
const char *d5453b1c1[] = { "0dt.net", "123movies.net", "animesonlinetk.info", "asianvote.com", "biqle.ru", "bittorrent.am", "bmovies.to", "bonstreams.net", "briansarmiento.website", "bro.adca.st", "buzzfil.net", "clicknupload.org", "clik.pw", "ddlvalley.me", "divxatope1.com", "dropapk.com", "dwatchseries.to", "ewatchseries.to", "eztv.ag", "fbstreams.me", "fileone.tv", "firstrowsports.eu", "flash-x.tv", "flashsx.tv", "flashx.me", "flashx.run", "flashx.sx", "flashx.to", "flashx.tv", "flashx.ws", "flashx1.tv", "flashxx.tv", "gamestorrent.co", "gorillavid.in", "icefilms.info", "igg-games.com", "jkanime.net", "katcr.host", "kissanime.ru", "lavamovies.se", "livecamtv.me", "m4ufree.com", "m4ufree.tv", "masterani.me", "megaup.net", "mlbstream.me", "moecdn.io", "monova.org", "movpod.in", "my-project-free.tv", "myfeed4u.me", "nbastreams.me", "newpct.com", "newpct1.com", "nflstreams.me", "nhlstreams.me", "nowvideo.sx", "oload.site", "oloadcdn.net", "openload.co", "opensubtitles.org", "pcgames-download.com", "pelispedia.tv", "pelisplus.tv", "pirateproxy.ist", "pirateproxy.sh", "putlockertv.se", "rapidvideo.com", "readmanga.today", "sawlive.tv", "serietvsubita.net", "skidrowcrack.com", "sportshd.me", "stream.moe", "stream2watch.cc", "streamango.com", "streamfilmzzz.com", "streamzzz.online", "strikeout.co", "subtorrents.io", "sunmusiq.com", "telepisodes.co", "thehiddenbay.ws", "thepiratebay.cr", "thepixstate.com", "thevideobee.to", "torrentz2.eu", "unblocked.mx", "unblocked.sh", "unblocker.cc", "uptobox.com", "vidgg.to", "vidlox.me", "vidlox.tv", "vidtod.me", "vidtudu.com", "vidup.me", "vidup.tv", "vidzi.tv", "vodlock.co", "watchers.to", "watchonline.to", "watchonlinemovies.com.pk", "yts.ag", "yts.am", "yts.gs", "zooqle.com", NULL };
const char *d545fb141[] = { "bluray-disc.de", NULL };
const char *d546a53a1[] = { "aftonbladet.se", NULL };
const char *d548b5f66[] = { "catalogfavoritesvip.com", "freeshipping.com", "freeshippingrewards.com", "habandvipplus.com", "inthecompanyofdogsvip.com", "naturesjewelryvip.com", "northstylevip.com", "pyramidcollectionvip.com", "serengeticatalogvip.com", "travelplus.com", NULL };
@ -51110,6 +51166,7 @@ const char *d7142fef3[] = { "thewatchseries.to", NULL };
const char *d7149959b[] = { "100percentfedup.com", "activistpost.com", "addictinginfo.com", "alfonzorachel.com", "allenwestrepublic.com", "allthingsvegas.com", "americansublime.com", "askmefast.com", "auntyacid.com", "barbwire.com", "bighealthreport.com", "bipartisanreport.com", "breaking911.com", "breathecast.com", "bulletsfirst.net", "clashdaily.com", "classicalite.com", "collapse.news", "comicallyincorrect.com", "conservativebyte.com", "conservativevideos.com", "coviral.com", "craigjames.com", "creepybasement.com", "crossmap.com", "cyberwar.news", "dailyfeed.co.uk", "dailyheadlines.net", "dailyhealthpost.com", "dailysurge.com", "dccrimestories.com", "deneenborelli.com", "digitaljournal.com", "eaglerising.com", "earnthenecklace.com", "enstarz.com", "evil.news", "fitnessconnoisseur.com", "foreverymom.com", "freedom.news", "freedomforce.com", "freedomoutpost.com", "girlsjustwannahaveguns.com", "glitch.news", "groopspeak.com", "guardianlv.com", "guns.news", "gymflow100.com", "hallels.com", "hautereport.com", "hngn.com", "hypable.com", "ifyouonlynews.com", "infowars.com", "instigatornews.com", "jobsnhire.com", "joeforamerica.com", "juicerhead.com", "justdiy.com", "kdramastars.com", "keepandbear.com", "kpopstarz.com", "lastresistance.com", "latinpost.com", "liberty.news", "libertyalliance.com", "libertyunyielding.com", "medicine.news", "minutemennews.com", "musictimes.com", "myscienceacademy.org", "natural.news", "naturalblaze.com", "naturalnews.com", "natureworldnews.com", "newser.com", "newseveryday.com", "newsthump.com", "oddee.com", "patriotoutdoornews.com", "patriottribune.com", "pickthebrain.com", "politicaloutcast.com", "politichicks.com", "practicallyviral.com", "quirlycues.com", "rantlifestyle.com", "realfarmacy.com", "realmomsrealreviews.com", "redhotchacha.com", "redmaryland.com", "returnofkings.com", "rightwingnews.com", "robotics.news", "shark-tank.com", "shedthoselbs.com", "slender.news", "sonsoflibertymedia.com", "spectator.org", "stevedeace.com", "stupid.news", "techconsumer.com", "techtimes.com", "theblacksphere.net", "theboredmind.com", "thefreethoughtproject.com", "thegatewaypundit.com", "themattwalshblog.com", "thepoke.co.uk", "theviralmob.com", "traileraddict.com", "truththeory.com", "twisted.news", "valuewalk.com", "vcpost.com", "victoriajackson.com", "videogamesblogger.com", "viralnova.com", "viralthread.com", "visiontoamerica.com", "winningdemocrats.com", "xtribune.com", NULL };
const char *d715c2612[] = { "100percentfedup.com", "activistpost.com", "addictinginfo.com", "alfonzorachel.com", "allenwestrepublic.com", "askmefast.com", "barbwire.com", "bestfunnyjokes4u.com", "bighealthreport.com", "bipartisanreport.com", "boredomtherapy.com", "breathecast.com", "bugout.news", "bulletsfirst.net", "celebrity-gossip.net", "clashdaily.com", "classicalite.com", "collapse.news", "comicallyincorrect.com", "conservativebyte.com", "conservativevideos.com", "constitution.com", "coviral.com", "creepybasement.com", "crossmap.com", "cyberwar.news", "dailyfeed.co.uk", "dailyheadlines.net", "dailysurge.com", "damnlol.com", "dccrimestories.com", "deneenborelli.com", "digitaljournal.com", "eaglerising.com", "enstarz.com", "evil.news", "freedom.news", "freedomoutpost.com", "girlsjustwannahaveguns.com", "glitch.news", "godfatherpolitics.com", "guns.news", "gymflow100.com", "healthstatus.com", "hispolitica.com", "hngn.com", "honesttopaws.com", "infowars.com", "instigatornews.com", "janmorganmedia.com", "jobsnhire.com", "joeforamerica.com", "juicerhead.com", "justdiy.com", "kdramastars.com", "keepandbear.com", "kpopstarz.com", "latinpost.com", "legalinsurrection.com", "liberty.news", "libertyalliance.com", "libertyunyielding.com", "lidblog.com", "medicine.news", "mentalflare.com", "minutemennews.com", "musictimes.com", "natural.news", "naturalblaze.com", "naturalnews.com", "naturalsociety.com", "natureworldnews.com", "newser.com", "oddee.com", "opednews.com", "patriotoutdoornews.com", "patriottribune.com", "politichicks.com", "rantlifestyle.com", "realfarmacy.com", "realmomsrealreviews.com", "realtytoday.com", "redmaryland.com", "returnofkings.com", "rightwingnews.com", "robotics.news", "shark-tank.com", "slender.news", "sonsoflibertymedia.com", "spectator.org", "stevedeace.com", "stupid.news", "supercheats.com", "techtimes.com", "theblacksphere.net", "theboredmind.com", "thefreethoughtproject.com", "thegatewaypundit.com", "thelibertarianrepublic.com", "themattwalshblog.com", "thepoke.co.uk", "therealside.com", "theviralmob.com", "tosavealife.com", "traileraddict.com", "truththeory.com", "twisted.news", "usherald.com", "valuewalk.com", "vcpost.com", "victoriajackson.com", "videogamesblogger.com", "viralnova.com", "viralthread.com", "wakingtimes.com", "winningdemocrats.com", "xtribune.com", "youthhealthmag.com", NULL };
const char *d71aa88a9[] = { "resignationbrewery.com", "threenow.co.nz", "video.foxnews.com", NULL };
const char *d71dc8d1f[] = { "telemundodeportes.com", NULL };
const char *d721141d1[] = { "tbs.com", NULL };
const char *d7220f601[] = { "viewcube.org", NULL };
const char *d723da48b[] = { "clark.de", NULL };
@ -51255,6 +51312,7 @@ const char *d855bda0c[] = { "uol.com.br", NULL };
const char *d855c519a[] = { "tune.pk", NULL };
const char *d85638058[] = { "spankwire.com", NULL };
const char *d856d0a43[] = { "tradera.com", "xxl.se", NULL };
const char *d8587dbf3[] = { "hbsmediasetit.deltatre.net", NULL };
const char *d858f11ee[] = { "kissanime.com", NULL };
const char *d85b9a6c9[] = { "heromaza.in", NULL };
const char *d85d847eb[] = { "casinobonus24.se", NULL };
@ -51508,6 +51566,7 @@ const char *da75f0901[] = { "mlbtraderumors.com", NULL };
const char *da763cd1d[] = { "ostrow24.tv", NULL };
const char *da7a0e3f0[] = { "1fichier.com", "limetorrents.cc", "thepiratebay.みんな", NULL };
const char *da7d09f54[] = { "subaru.com", NULL };
const char *da7eccbe6[] = { "affili.net", "affiliprint.com", "bingads.microsoft.com", "linkpizza.com", "mobileapptracking.com", "trialpay.com", NULL };
const char *da7f79682[] = { "gaytube.com", "pornhub.com", "redtube.com", "redtube.it", "tube8.com", "tube8.es", "tube8.fr", "xtube.com", "youjizz.com", "youporn.com", "youporngay.com", NULL };
const char *da7ff8ce9[] = { "classifieds.nydailynews.com", NULL };
const char *da8079d1b[] = { "fcportables.com", NULL };
@ -51791,6 +51850,7 @@ const char *dcf6c29e6[] = { "msn.com", NULL };
const char *dcfa45e3a[] = { "autoscout24.com", "autoscout24.de", "autoscout24.hr", "autoscout24.hu", "autoscout24.it", NULL };
const char *dcfa7f212[] = { "batmanstream.com", "betteam.ru", "guardacalcio.com", "robinwidget.com", "stream2watch.biz", "zorrostream.com", NULL };
const char *dcfe03352[] = { "tim.it", NULL };
const char *dd02bd5ff[] = { "zappistore.com", NULL };
const char *dd041a781[] = { "dayt.se", NULL };
const char *dd05c43d7[] = { "nintendo.com", NULL };
const char *dd072cc1e[] = { "informer.com", NULL };
@ -52079,6 +52139,7 @@ const char *df9f0a9b2[] = { "horny.net", "xmatch.com", NULL };
const char *dfa0c9f7f[] = { "extremetube.com", "spankwire.com", NULL };
const char *dfa2f7a26[] = { "uptobox.com", "uptostream.com", NULL };
const char *dfab8b56d[] = { "userad.info", NULL };
const char *dfb33c21d[] = { "advt.ch", NULL };
const char *dfb50afd9[] = { "100percentfedup.com", "activistpost.com", "addictinginfo.com", "alfonzorachel.com", "allenwestrepublic.com", "allthingsvegas.com", "americansublime.com", "askmefast.com", "auntyacid.com", "barbwire.com", "bighealthreport.com", "bipartisanreport.com", "breaking911.com", "breakingnews.ie", "breathecast.com", "bulletsfirst.net", "clashdaily.com", "classicalite.com", "comicallyincorrect.com", "conservativebyte.com", "conservativevideos.com", "coviral.com", "craigjames.com", "creepybasement.com", "crossmap.com", "dailyfeed.co.uk", "dailyheadlines.net", "dailyhealthpost.com", "dailysurge.com", "dccrimestories.com", "deneenborelli.com", "digitaljournal.com", "eaglerising.com", "earnthenecklace.com", "enstarz.com", "fitnessconnoisseur.com", "foreverymom.com", "freedomforce.com", "girlsjustwannahaveguns.com", "glitch.news", "groopspeak.com", "guardianlv.com", "gymflow100.com", "hallels.com", "hautereport.com", "hispolitica.com", "hngn.com", "hypable.com", "ifyouonlynews.com", "infowars.com", "instigatornews.com", "joeforamerica.com", "juicerhead.com", "justdiy.com", "kdramastars.com", "keepandbear.com", "kpopstarz.com", "lastresistance.com", "latinpost.com", "libertyunyielding.com", "minutemennews.com", "musictimes.com", "myscienceacademy.org", "naturalblaze.com", "naturalnews.com", "natureworldnews.com", "newser.com", "newseveryday.com", "newsthump.com", "oddee.com", "patriotoutdoornews.com", "patriottribune.com", "pickthebrain.com", "politicaloutcast.com", "politichicks.com", "practicallyviral.com", "quirlycues.com", "rantlifestyle.com", "realfarmacy.com", "realmomsrealreviews.com", "realtytoday.com", "redhotchacha.com", "redmaryland.com", "returnofkings.com", "rightwingnews.com", "shark-tank.com", "shedthoselbs.com", "sonsoflibertymedia.com", "spectator.org", "stevedeace.com", "techconsumer.com", "techtimes.com", "theblacksphere.net", "theboredmind.com", "thefreethoughtproject.com", "thegatewaypundit.com", "themattwalshblog.com", "thepoke.co.uk", "theviralmob.com", "truththeory.com", "valuewalk.com", "vcpost.com", "victoriajackson.com", "videogamesblogger.com", "viralnova.com", "viralthread.com", "visiontoamerica.com", "xtribune.com", NULL };
const char *dfbe96f49[] = { "theoutline.com", NULL };
const char *dfbf04acb[] = { "miniclip.com", NULL };
@ -52308,7 +52369,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m6fa4dac1, 0, NULL, NULL },
{m70e021ef, 0, NULL, NULL },
{md6147b7b, 0, NULL, NULL },
{mb0e05cc5, 0, NULL, NULL },
{mb0e05cc5, 0, dd02bd5ff, NULL },
{me03da109, 0, NULL, NULL },
{mbc976ec7, 0, NULL, NULL },
{m45b02888, 0, NULL, NULL },
@ -52355,6 +52416,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m86758599, 0, NULL, NULL },
{md750c7c5, 0, NULL, NULL },
{m134b160b, 0, NULL, NULL },
{mf6184320, 0, NULL, NULL },
{md1258d5a, 0, NULL, NULL },
{m82bffee7, 0, NULL, NULL },
{mc7d73a9a, 0, NULL, NULL },
@ -55336,7 +55398,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{mc598574a, 0, NULL, NULL },
{mcc5d4e81, 0, NULL, NULL },
{m1cb4b88f, 0, d78ddc57f, NULL },
{m20b6fd72, 0, d17f55371, NULL },
{m20b6fd72, 0, da7eccbe6, NULL },
{m23b4f137, 0, defc54fef, NULL },
{ma72af7a3, 0, NULL, NULL },
{m8e2e525d, 0, NULL, NULL },
@ -55423,7 +55485,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m3d87d4ca, 0, NULL, NULL },
{m65a4b4b4, 0, NULL, NULL },
{mf611b84c, 0, NULL, NULL },
{m239f9d95, 0, NULL, NULL },
{m239f9d95, 0, dfb33c21d, NULL },
{m1fa1d5e0, 0, NULL, NULL },
{m9013990f, 0, NULL, NULL },
{ma93d1e31, 0, NULL, NULL },
@ -60892,6 +60954,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m9ad07476, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m83226ed2, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m4e904585, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{me68c42c2, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m6bc45faa, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{md63f4022, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m9df87421, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -64264,6 +64327,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m44d709d6, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m88de1eb2, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{ma1c94d2d, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m9090068c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m21e6a08c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{md8c864fd, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m54abfbd1, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -66489,6 +66553,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m81bb7119, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{me5fae0a6, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m315fac56, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mc2724597, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m990f081a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m8f05aa92, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mf437fd2b, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -66900,11 +66965,13 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{mf48bbdcd, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mc51e5e3e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mcdad7cc7, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m9d3fe981, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m3de90ba9, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mbcb5a14, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m767f6d73, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m87eb184f, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m4aa1c707, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m95d12c4e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mba2e6892, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{madfc590e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mad65de15, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -66986,6 +67053,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{made2274, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m5c3e80e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m3c0e79a6, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m9318fdbf, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mb920e62b, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m8affa829, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m72d6da4f, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -67083,6 +67151,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{mbf74eabb, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m818f026, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mb4259c68, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m255645ee, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m4d2ccd76, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{md2fbe81f, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{ma5a3863c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -67656,6 +67725,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{mcb3b504f, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m18197823, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m3ec1ca67, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m4f7b8a8e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m3ca66794, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m49909716, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m7d40dd96, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -68313,6 +68383,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{mbf72778, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m1055addb, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mf65e7c2d, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{ma8820fda, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{md767de70, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m5be75ef2, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mefa92b8c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -68367,6 +68438,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{mf0e5f1ef, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mf8ffd7a2, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{md5babee0, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m49cc253e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{ma32c6234, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mb63c2120, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m855c662b, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -68922,6 +68994,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m9e1bb1a9, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m2b2f4946, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m7f4d10bd, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m7c7021ec, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m6052eb93, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m664cd0c9, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m213b4294, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -69183,6 +69256,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{mdaff3b44, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mdd7c0bee, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mb736ba3, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m5ee1d016, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mdc7e7642, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mb0b2f3dc, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m51b549e0, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -69244,6 +69318,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m84230b69, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m66e4eab0, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mb1b7174a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m4e0a4873, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mcc2cb73d, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m9281f9f, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mfc6d31c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -69502,6 +69577,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m245d111e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m7ef58580, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{maff29720, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m31ce41d9, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mef9c4640, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{me31a4d3c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m13659885, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -70075,6 +70151,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m412c3576, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mfed2cac1, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m9512bd8d, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mc0e64d5b, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{me3cb2a4d, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mdc290fd4, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m4e8d1cf2, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -70220,6 +70297,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{mc6e91588, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mf8501e68, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{meb24e4a8, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m773a8ea, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mf951c6d4, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m42866fc, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m7825c43d, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -70328,6 +70406,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m5519ae1e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mfc952a23, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mcfff7609, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m1aeefbf7, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m97ce95de, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m1ef8e98d, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mbd79ef33, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -70347,6 +70426,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{mc1ef9a64, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mac9b5a0e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m15d001ca, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m85c0d5b6, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m8613c9fb, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{md156d495, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m18f93df0, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -70732,6 +70812,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{ma5435ea8, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m18f8f04e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mf68241bc, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m65dd45ca, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m673401fa, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mc96d39e5, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mf30f18be, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -70771,6 +70852,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m2cb37037, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m8ea42459, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mfae96bf0, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m2a482d43, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mf92bfbe8, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{ma6145e21, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mfbc7effa, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -71168,6 +71250,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{mb2a8d36a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m95fd116b, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mec647d37, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m10ffb484, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m828ecb45, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{ma5a872ba, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m51bd46af, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -71640,6 +71723,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m27da5460, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m45110292, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m57e28ac1, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m9e7d5472, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m8cb4d22c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mefd2c148, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mf56c7890, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -71652,6 +71736,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{md0a19b38, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m5e4f6b65, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{md08dc9e9, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m33aa03a8, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m4882edec, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m8f6f4088, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m48574ff8, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -72009,6 +72094,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{mca80387, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m9f122a3c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mc682cca5, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m7ab267bf, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{md9ae36e7, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mc75f7bed, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m6d16446, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -72069,6 +72155,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{me9a61470, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mb28b5dbd, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{medca361d, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m3e192806, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m5a16740f, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m4c2fbb40, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mba202cf7, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -72084,6 +72171,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m79849c5c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m67f21562, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m2ae55db2, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m1c24edf5, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m58198bf, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m5920d481, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m8e32db51, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -72115,6 +72203,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m7e9d4cdd, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m6a55d39b, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mbf85b01e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m6f07e831, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mdfa54e17, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{me42000, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m3bbff8ca, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -72289,6 +72378,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m420eb898, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m41f95243, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m52fc0446, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mfd616738, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mc677ac26, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m4807ca1f, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mafc51eb6, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -72366,6 +72456,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m92577d7, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mbca0a289, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m8bcff1dd, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{md2cd1b01, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m23a25dd6, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m34fc9ed7, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mfbc13284, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -72444,6 +72535,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{mbb199521, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mdb31aa6b, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m94aa9f56, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m36de6c6e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m6cd4a84a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mdea49732, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m165effdf, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -72480,6 +72572,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m10c96067, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m539e36b6, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m63663411, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m4853548d, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mc0672fcf, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m80662fcf, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m64ccfd5, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -72560,6 +72653,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m1e3fcad5, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m28de198b, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{ma45a55ad, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m2c11137b, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m8999b974, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{md92d6085, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m8e5a4b0e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -75631,6 +75725,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m53a671be, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mad3b7314, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{m89b4b516, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{m597f865a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mbe43e1fd, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{m318a5e3, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{m3bebb6d1, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -76859,6 +76954,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m42e80113, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{ma46623e4, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{m67e177d1, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{mcc2aa263, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{m13c59376, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{m470728db, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{m70301ebe, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -76891,6 +76987,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m7611f54b, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{md9c268d3, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{mac951d3a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m76d81068, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{m4d4df7df, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{m87745d40, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m8b96f194, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
@ -76920,6 +77017,8 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{md23d27cd, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mcbb18202, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mc86c7298, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, d2de0c68, NULL },
{ma407c8a0, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mc450d1bf, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mde14a4d6, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{m5a616cb, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m384c7f6, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
@ -79327,6 +79426,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{ma6bb0fe7, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{me57ec8ca, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{m44c39e1a, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{m50be5a7a, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{mbc408620, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{mf4fef763, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{mce56ba54, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD, NULL, NULL },
@ -79604,6 +79704,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{ma50a737d, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{md2fa9523, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{mf1107615, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{ma2501a2e, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{m8dd1b766, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{mee210c0f, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{m49fac0f0, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
@ -79762,6 +79863,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{ma54a9b40, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD, NULL, NULL },
{mddb98abf, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{mcacbf666, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, daebf9323, NULL },
{me132d88, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD | ADBLOCK_FLAG_HAS_SEPARATOR, dcf6c29e6, NULL },
{m66bf0d19, ADBLOCK_FLAG_MATCH_DOMAIN, dbf5a7cc, NULL },
{mdb92d75a, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{mf4e49c6b, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
@ -81652,7 +81754,6 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{ma9b66181, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, db94bccb1, NULL },
{m34ceab24, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, d5038c71a, NULL },
{m905f762e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, d5038c71a, NULL },
{me5ff647c, ADBLOCK_FLAG_HAS_WILDCARD | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_FIRST_PARTY, NULL, NULL },
{me7aed79f, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, d4cdde2f2, NULL },
{m2db15b3, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{m89e4b38b, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
@ -82277,7 +82378,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m23a277f3, ADBLOCK_FLAG_MATCH_BEGIN | ADBLOCK_FLAG_HAS_SEPARATOR, d230e59ac, NULL },
{m84aed8cf, ADBLOCK_FLAG_HAS_WILDCARD | ADBLOCK_FLAG_THIRD_PARTY, d6e3f992d, NULL },
{m77c42d90, ADBLOCK_FLAG_MATCH_BEGIN | ADBLOCK_FLAG_HAS_SEPARATOR, db370b6b2, NULL },
{m3e78e63e, ADBLOCK_FLAG_HAS_SEPARATOR, d5453b1c1, NULL },
{m3e78e63e, ADBLOCK_FLAG_HAS_SEPARATOR, d14492721, NULL },
{m4a6c85a9, ADBLOCK_FLAG_HAS_SEPARATOR, daed18dd1, NULL },
{mf28fd7c5, ADBLOCK_FLAG_HAS_SEPARATOR, d63b1a8b3, NULL },
{mba742503, 0, daed18dd1, NULL },
@ -83862,6 +83963,8 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{mdfdf81d2, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{m3e949eeb, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, db7f66c5d, NULL },
{m105cb6bb, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD, NULL, NULL },
{mf76db196, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, dcf6c29e6, NULL },
{mc54fbcd2, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, dcf6c29e6, NULL },
{m10ac934a, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD | ADBLOCK_FLAG_HAS_SEPARATOR, d8cd3c1a8, NULL },
{m8909f75b, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD | ADBLOCK_FLAG_HAS_SEPARATOR, d7af7dc7c, NULL },
{m974c1f7b, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, d970a5ca0, NULL },
@ -85857,6 +85960,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m5ecce2d3, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD, NULL, NULL },
{m7168a260, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD, NULL, NULL },
{m7b0ed3b5, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{m6e330900, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{mc0dd8256, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{m34559afd, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{mdda6977a, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
@ -86622,6 +86726,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{mb931125a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{m5b23b6ad, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_FIRST_PARTY, NULL, NULL },
{me16f9cc9, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mf7643da8, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD | ADBLOCK_FLAG_FIRST_PARTY, NULL, NULL },
{m996c37d9, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m3bbdcb3e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{me86b6221, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
@ -86700,6 +86805,9 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m44bf2d51, ADBLOCK_FLAG_MATCH_DOMAIN, de9d10838, NULL },
{mbcd2f850, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m3f1a61ba, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_FIRST_PARTY, NULL, NULL },
{m8bde606e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD, d71dc8d1f, NULL },
{m9d921c2d, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{m8789c20f, ADBLOCK_FLAG_HAS_WILDCARD, d30155ba, NULL },
{m480a1f0f, ADBLOCK_FLAG_HAS_WILDCARD, NULL, NULL },
{mbdfd5ddc, ADBLOCK_FLAG_HAS_WILDCARD, NULL, NULL },
{mb82b6e67, 0, NULL, NULL },
@ -86775,6 +86883,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m3fd41bbc, 0, NULL, NULL },
{mfe0219de, 0, NULL, NULL },
{me2f24e0, 0, NULL, NULL },
{m907aea68, 0, NULL, NULL },
{mcc35e17a, 0, NULL, NULL },
{m8a5d8da5, 0, NULL, NULL },
{m7b6d114, 0, NULL, NULL },
@ -86878,7 +86987,6 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m4948f9eb, 0, NULL, NULL },
{m413789c5, 0, NULL, NULL },
{m204836fa, 0, NULL, NULL },
{m5c0f0fdd, 0, NULL, NULL },
{m9811ace8, 0, NULL, NULL },
{mf043609, 0, NULL, NULL },
{mc6b7bc7b, 0, NULL, NULL },
@ -88121,6 +88229,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{me8f278dd, 0, NULL, NULL },
{m413e0e18, 0, NULL, NULL },
{mf4f7c111, ADBLOCK_FLAG_MATCH_END, NULL, NULL },
{mbec2fc13, 0, NULL, NULL },
{mca1445f3, 0, NULL, NULL },
{m821194a2, 0, NULL, NULL },
{mde4a1707, 0, NULL, NULL },
@ -89248,6 +89357,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m1cc13d24, 0, NULL, NULL },
{mcf8dc201, 0, NULL, NULL },
{md622f870, 0, NULL, NULL },
{mad1ce84c, 0, NULL, NULL },
{m4da28538, 0, NULL, NULL },
{m5fe28a60, 0, NULL, NULL },
{m654f849e, 0, NULL, NULL },
@ -89350,6 +89460,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m6dcf6ca0, 0, NULL, NULL },
{me5c815fe, 0, NULL, NULL },
{me2f064ff, 0, NULL, NULL },
{mc1e40aee, 0, NULL, NULL },
{m3f9b40c8, 0, NULL, NULL },
{m94a6d688, 0, NULL, NULL },
{m4f32b679, 0, NULL, NULL },
@ -89634,6 +89745,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m51e2d85b, 0, NULL, NULL },
{m7d44c6c7, 0, NULL, NULL },
{m58cc178b, 0, NULL, NULL },
{m347b449f, 0, NULL, NULL },
{mf48283e1, 0, NULL, NULL },
{m9198bc2b, 0, NULL, NULL },
{m74209d4b, 0, NULL, NULL },
@ -89766,6 +89878,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{me9d2922b, 0, NULL, NULL },
{mf2714206, 0, NULL, NULL },
{m7cf00c06, 0, NULL, NULL },
{md2ead77b, 0, NULL, NULL },
{mc9ac344e, 0, NULL, NULL },
{md570c060, 0, NULL, NULL },
{m57ca6fa2, 0, NULL, NULL },
@ -90202,6 +90315,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m24bc55ea, 0, NULL, NULL },
{mdf25167e, 0, NULL, NULL },
{maf9a38ab, 0, NULL, NULL },
{m47a7ee99, 0, NULL, NULL },
{m3f2a6d15, 0, NULL, NULL },
{mee0f51cd, 0, NULL, NULL },
{m981a527e, 0, NULL, NULL },
@ -90423,6 +90537,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m1699d7e0, 0, NULL, NULL },
{mda6e5d18, 0, NULL, NULL },
{m64e73064, ADBLOCK_FLAG_HAS_WILDCARD, NULL, NULL },
{mca8ee16f, ADBLOCK_FLAG_HAS_WILDCARD, NULL, NULL },
{m50bee288, 0, NULL, NULL },
{me0dc12da, 0, NULL, NULL },
{md2236669, ADBLOCK_FLAG_HAS_WILDCARD, NULL, NULL },
@ -91771,6 +91886,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m711ace5d, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mef43f4d3, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m11aba8d4, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mfbf71244, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m4bd02eb0, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m877e7e9f, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{md86b6e2, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -92127,6 +92243,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{mc4a8e585, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mf070b549, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m71cbae27, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m1af8e0a, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m2c9c2e4, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m101ca9e, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m94e9cc76, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -92209,6 +92326,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{m89b0e3bd, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m55431071, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m377dbff3, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{mf6492be3, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m9db0f442, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m1986b5b8, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{ma244cd02, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
@ -96243,7 +96361,6 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{mb5769288, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{m948933cc, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_SEPARATOR | ADBLOCK_FLAG_THIRD_PARTY, NULL, NULL },
{m3aaee9b0, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{mf4357552, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{m24727a6c, ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{m1b46ea18, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{m79d621e0, ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
@ -100842,6 +100959,7 @@ struct adblock_entry ADBLOCK_ENTRIES[ADBLOCK_ENTRY_COUNT] = {
{ma73797a5, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{m24594901, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD | ADBLOCK_FLAG_HAS_SEPARATOR, NULL, NULL },
{m6ae3aed9, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, dcfe03352, NULL },
{m44bf8b0e, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, d8587dbf3, NULL },
{m11767955, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN | ADBLOCK_FLAG_HAS_WILDCARD, NULL, NULL },
{m5a8f9aae, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, NULL, NULL },
{m81c3a959, ADBLOCK_FLAG_EXCEPTION | ADBLOCK_FLAG_MATCH_DOMAIN, d74b5cc58, NULL },

View file

@ -19,106 +19,14 @@ Subject: Removed Sync and Translate menu
diff --git a/chrome/android/java/res/drawable-hdpi/settings_translate.png b/chrome/android/java/res/drawable-hdpi/settings_translate.png
deleted file mode 100644
GIT binary patch
literal 0
HcmV?d00001
literal 399
zcmV;A0dW3_P)<h;3K|Lk000e1NJLTq001Na001Ni1ONa4O9@aD00042Nkl<ZcwWuc
zJxjwt0LJme7er{c_yr2Oml}2V3s~G9aP6!}z(tU5et?4AT-<~%x+sFhO}e^tsU(Y=
z0hgddd^pNsLc+Z{l>hP^9KR_C@$!FaVIla45F@WCMg$)o)DW3mQKSdON+{NY%D^rw
zQ6|u}ti|NX7$R7iF@)z*9c+qa0?AUm<7d7%a4MD+^aKw>u^zc5))3o43mLu<Vh_0s
z^onI1i*NbG31VmP*$I~u^o9@~3%Mjy{|2j}Ph4OPO<b`i*Ms^ERzc?^JnUm8&>5G;
z8!SRo0o`C5w_HXQp+hq2?!?{u8c0%8C3Jue>()aulqxVESiz93aydblXyA)AxSXIZ
z^u+3MIY49igeSZ=wug@XJ`tWQp%m)~(480Xl-fZ9?!ILEyg9Ig+E_v&p@gTlA*4tf
tij`2N2SrL~qywpbE;5V|EcpMCd%u4DGPZTzo=E@z002ovPDHLkV1m$asKNjM
diff --git a/chrome/android/java/res/drawable-mdpi/settings_translate.png b/chrome/android/java/res/drawable-mdpi/settings_translate.png
deleted file mode 100644
GIT binary patch
literal 0
HcmV?d00001
literal 284
zcmV+%0ptFOP)<h;3K|Lk000e1NJLTq000;O000;W1ONa4N`Cco0002vNkl<ZcwV*C
zy$-=p90hPI21^H{kVr7~0h$;*gq(zkcms==tbG8pC$M2)sTe$f#Kz1feE^(W(wipt
z>YqeTIHw=KscAEhFY_CKhZ7#j@Qh~#`t~HT1AWt&iOFYBic(;rl@5Y9UG&&#fH`9r
zbqhPT0Nhc-8hg~aB!JnVj0zT9La;<0Ijq#SJr@m*036I22Uj!E;6TtuAD4*o-y97Z
ziWuYbs-FagXn-mvsLH_>O?Hzl1RVtIfGq+yWZ%bGZULC0h?xp|DgiD=uf=xl!2Uvo
icHkLEh=B&e`~;qlBW{m=6s{@&0000<MNUMnLSTX)y>C|l
diff --git a/chrome/android/java/res/drawable-xhdpi/settings_translate.png b/chrome/android/java/res/drawable-xhdpi/settings_translate.png
deleted file mode 100644
GIT binary patch
literal 0
HcmV?d00001
literal 547
zcmV+;0^I$HP)<h;3K|Lk000e1NJLTq001xm001xu1ONa4{R=S+0005%Nkl<ZcwX(-
zziU%b9ER~X&>vK2=pT?4!CJ8B5V|`lSO?MdsRak2|3E2<Ew~ov3nC6K4yBGdHyIT=
z*iKQTa&gEaRP2_R<9E1(_FiJ{F<-%<Je=X3K5*}FI12x`^1wNOsFIKphLn;}MY&1<
zRa%6SwW!7e2_d2+9!QG-C&)S}0;KUkhyudj0~b#<hpahU{YD2gq>+I}uBO%C0%8~2
zqX2{ZjJTXFC*U;?c-ddi5s!R<4~S{LXX_djTCRX~3-JV7yh7Y2cms!wTkrY83}bwB
z2dpi`B^D8n3HSqaSVYzpI`{+pWDRAl*>VMX>`+5Y@YI?>wsz=YK)L(kPe6xV>d0E+
zF#Fw0h$>%W?u)^|9b`@O%&0zU>qXpsF&Oy9RW@l8a&@DCv<Q46cvb|~;{k3U>t;Ei
z!kb9ohzhbQ9F+l#U_I(XZ6fPFVyg@=tm03vA!hhtr^YXT;4QKq66}a~{=i*iH3)XZ
zJ#V1R7-E(l!Okq>w0(hXWNl<?1F`K3EFkM3TL*{*PoRnN1<~{aRuPk2Kh<Oqt6sn{
zQ;3x_<Vp}z9QyzXvi8mZd)X7f1*jwDbN5@1`5@{JK-uDfGz#d(14$IH9}C1i5_>Gi
l0_C5%UG`c2pI-Xsz;EN&!BMZ3jZy#r002ovPDHLkV1l>+@2da+
diff --git a/chrome/android/java/res/drawable-xxhdpi/settings_translate.png b/chrome/android/java/res/drawable-xxhdpi/settings_translate.png
deleted file mode 100644
GIT binary patch
literal 0
HcmV?d00001
literal 793
zcmV+!1LpjRP)<h;3K|Lk000e1NJLTq002k;002k`1ONa4|Kxkj0008uNkl<ZcwX(=
z%}Z2a6vy!qU&7QD6$CjgbzuaFrMYX-gy1F-TYN#>*(&T0P^f5;ixxw==!FDzQOmLj
zW)TU|$~Iz9Aez>~5MeSGNzOdU;V@i=JI&0U$NLB~{9rb}%fp9z&%hk!M$92gIe;pl
z3Wyj9l9(csBteWw5h(;j9dXi_fJqal&Mqj9DKT-2AY!CT2BnGF10^sPlCTEKJIX71
z)JmT5wgxg*K&DJUmwnQupf11mfI$K*D&+>^c2@3W<t}H1aS^@Zph5Z5CZJigaScjR
zMTBa$!Uuig{eHe=HE-q67$$tsm>kf|A8$jyfS$PkZE!?L6P{+3Y9btC#|6l6Q$SJA
zJsJ|?2*wTQCyfHQr_G#j>iOXcWOyKi8a`n7&M5)i$G8LSaX}DgSmV5K&hghJ$naGk
zn|yMVCHFr+W;};YV_bu_81R4w*m4VcMRV41&CGcb!S=Xdpk;b9jBZ}iok8`oEP#^s
zxZ*(HxIwJ~nwTJkA;knuN_trO9#=T%BSV6b(8Ic?TcZbSdt70l>n4JR)6DpO>*nq3
zafN}FIj#?Cl$~5NU<H)S4chdQct;y?eqjzexj|EYm%9W-*|Z3FLPYa42uQ+JQr19S
z8PKI*ASGG4OG`vN`5X|W4{pi=YD6F%bO`8HV30TDOK#3CCj|0{M*=#@u3OM^=^OdI
zpGG0Qa0|L3{jfB{0*bi=tx_fZf;0;Ps$$h0XjBJU8y)O1SD-zjI?&qaU`I*00lm%)
zv^JT+e&Yso%`?y%9qc|Apbcs~1Fg})u4N;9(71N~84n-S`d?6M*r0iB`k2m2pEmR1
zf(Er&%x+lJW-v@pl6q-6F+S;(uAXFgph;~W`+^>8I~g9RU77~AeL>qaNZ%d;C_u^s
zlss&pgcZ=5Jy6WbGCgY#WaDr39a`*x^u>dcIQ=590n!A0HN&vZEG?C{V=ABuDD3<L
X<=DewY$H`b00000NkvXXu0mjfrJ!K8
diff --git a/chrome/android/java/res/drawable-xxxhdpi/settings_translate.png b/chrome/android/java/res/drawable-xxxhdpi/settings_translate.png
deleted file mode 100644
GIT binary patch
literal 0
HcmV?d00001
literal 1038
zcmV+p1o8WcP)<h;3K|Lk000e1NJLTq003YB003YJ1ONa4NRhv@000BkNkl<ZcwX(>
zK}Zx)90u@NR77ZDqzI8+I%LtIBq1>CB9(`rB#V~#N{sTXQQ#UFR4mj+L_yL)FVdw5
zWziyt2t7o(5K@$fpoFMU*4D8)xU9Pq43Ec~9k(6b`LAza_%8CfJov%x+j;ZfQFNEb
z12`KG-~l{<2LKCHgb{}Zy~t>YBMcRaBe4w#ApzaNBoHbkpa(iZdP)TdK_^P66aW<o
zGC%?<Js=F7FkyN?+%{m2FFR)&5T^%dqyUW`ppydhRRcUgbKdOZfPML2wf+F5xOe~$
za5X2_a&lcrfC1Ws*OwkpL^d<PXBoFq``hX^=<WnOVSo$r0_HGoWCB?$0G$l*T3*0U
zRIr6&7Qk=#4L}fCncqTZ7+{YDaF5Y0%Y7~MjxY7x)Mrs=v_5>56u{HU0Q*gCKWkg%
zzZ!iHpXGBfgAJ^klo-HsmH{^5htXtkfHkMxaUPh*CPp}jjBvX|#jNB2o*};A4dL$x
zZaR^jWPl1(GQd%H9Vr*E#k6n`zua~vj+y|s+;yl=;Uat{fDf0DatmMzyH{Mi0aNk=
z7SV+=VZjqPArQ*Yg+(*KsriBvfHVeB1BIss!$v=x(+(m{a9cQ39AFtk*a}5R2a=qY
zM2G2rH)-YzYX!{XHtL`Vsl}LuIEGp%Af7L*1<;Mkoc-n;k}EEs#5wq==L@R`yh6DE
zXe@BOIf?tU^9B0=>sf0D9wH09K(eHO_}X@%^EiwcGSJsOT46u}y38pI7<D_Kr9^-i
zP=vg64xr$P1wcPDKIJ5!8q?%}`J8W;O8jyTpdd(2xC138cbx<%s3v|R?c{)Z)Ej_Z
zjsbXDFiNzkzJbCM<!8IM&H##xEx>u<B=-&9*y*m*Er37RzyZxh(`*3z`0Eb9fWRFv
zHG}Q|Gzy#Ng3&CnO?9su03QYHao!$h%_sQ*-2z~Qw<D~%AUhz1jU1q2iT6uT*&Xkc
z+<->{wR6Q0;bXZ0hXla52{6vu7MTGve7a+uW@Zs&Q??m-0eu3rC-3h{ugD5mMnC|3
zumC<VKmZvz0Z(nO@k~y@G24JP83D5>w+*PktbBkdCkD`$Cjm}~$_Loa0g=4O2nTGJ
z4KN`LLB8h&d>4i%6LJCCIpB!UT62U0+GPT0sN#Uwe*rNLsDdUBpr7+<3XGr9!nmqm
z9zX*J^g=I?UJhtjCjd!2fc<E02gFGMDSAMd6fjK>P)UbW5mEs8p!*B_)Bwsy8PjNj
zLJc5zn3UxUnxN1F9DJOYCxvN5;D?e6@Sf=Q03N^tcmNOZ5BbKcjE%x^TL1t607*qo
IM6N<$g2Gw1A^-pY
diff --git a/chrome/android/java/res/xml/site_settings_preferences.xml b/chrome/android/java/res/xml/site_settings_preferences.xml
--- a/chrome/android/java/res/xml/site_settings_preferences.xml
+++ b/chrome/android/java/res/xml/site_settings_preferences.xml

View file

@ -3,22 +3,22 @@ Date: Sat, 24 Mar 2018 05:18:03 +0100
Subject: Canvas: fingerprinting mitigations for image data, font metrics and
webGL
Disable webGL renderering info, add shuffling to TextMetrics;
additionally, the color data returned by ToBlob and ToDataURL will
contain randomly manipulated pixels (maximum 10) that slightly
change the color R,G,B components without visibly altering the rendering.
Disable webGL renderer info, add shuffling to TextMetrics.
Additionally, the color data returned by ToBlob, ToDataURL and getImageData
will contain randomly manipulated pixels (maximum 10) that slightly
change the color of the R,G,B components without a visible effect.
Credits to Slaviro (https://github.com/Slaviro) for coming up with a better
approach to change color components.
---
.../renderer/core/html/canvas/text_metrics.cc | 20 +++
.../blink/renderer/core/html/canvas/text_metrics.h | 2 +
.../canvas/canvas2d/base_rendering_context_2d.cc | 3 +
.../canvas/canvas2d/canvas_rendering_context_2d.cc | 6 +-
.../modules/webgl/webgl_debug_renderer_info.cc | 4 +-
.../platform/graphics/image_data_buffer.cc | 137 +++++++++++++++++++++
.../renderer/platform/graphics/image_data_buffer.h | 2 +
7 files changed, 171 insertions(+), 3 deletions(-)
.../platform/graphics/image_data_buffer.cc | 4 +
.../platform/graphics/static_bitmap_image.cc | 151 +++++++++++++++++++++
.../platform/graphics/static_bitmap_image.h | 2 +
7 files changed, 186 insertions(+), 3 deletions(-)
diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.cc b/third_party/blink/renderer/core/html/canvas/text_metrics.cc
--- a/third_party/blink/renderer/core/html/canvas/text_metrics.cc
@ -62,19 +62,6 @@ diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.h b/third_
private:
void Update(const Font&,
const TextDirection&,
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
--- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
@@ -1620,6 +1620,9 @@ ImageData* BaseRenderingContext2D::getImageData(
const CanvasColorParams& color_params = ColorParams();
scoped_refptr<StaticBitmapImage> snapshot = GetImage(kPreferNoAcceleration);
+ //TODO: calculate some random value and use it to shuffle pixel data in 'snapshot'
+ // it should be a StaticBitmapImage somehow
+
if (!StaticBitmapImage::ConvertToArrayBufferContents(
snapshot, contents, image_data_rect, color_params, IsAccelerated())) {
exception_state.ThrowRangeError("Out of memory at ImageData creation");
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
--- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
@ -120,24 +107,67 @@ diff --git a/third_party/blink/renderer/platform/graphics/image_data_buffer.cc b
#include "third_party/blink/renderer/platform/graphics/static_bitmap_image.h"
#include "third_party/blink/renderer/platform/image-encoders/image_encoder.h"
#include "third_party/blink/renderer/platform/network/mime/mime_type_registry.h"
@@ -44,6 +45,7 @@
#include "third_party/blink/renderer/platform/wtf/vector.h"
#include "third_party/skia/include/core/SkSwizzle.h"
#include "third_party/skia/include/encode/SkJpegEncoder.h"
@@ -121,6 +122,9 @@ bool ImageDataBuffer::EncodeImage(const String& mime_type,
Vector<unsigned char>* encoded_image) const {
DCHECK(is_valid_);
+ // shuffle subchannel color data within the pixmap
+ StaticBitmapImage::ShuffleSubchannelColorData(pixmap_.writable_addr(), pixmap_.info(), 0, 0);
+
if (mime_type == "image/jpeg") {
SkJpegEncoder::Options options;
options.fQuality = ImageEncoder::ComputeJpegQuality(quality);
diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc b/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc
--- a/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc
+++ b/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc
@@ -4,6 +4,7 @@
#include "third_party/blink/renderer/platform/graphics/static_bitmap_image.h"
+#include "base/rand_util.h"
#include "gpu/command_buffer/client/gles2_interface.h"
#include "skia/ext/texture_handle.h"
#include "third_party/blink/renderer/platform/graphics/accelerated_static_bitmap_image.h"
@@ -16,6 +17,7 @@
#include "third_party/skia/include/core/SkCanvas.h"
#include "third_party/skia/include/core/SkImage.h"
#include "third_party/skia/include/core/SkPaint.h"
+#include "third_party/skia/src/core/SkColorData.h"
#include "third_party/skia/include/gpu/GrContext.h"
namespace blink {
@@ -116,11 +118,146 @@ const unsigned char* ImageDataBuffer::Pixels() const {
return static_cast<const unsigned char*>(pixmap_.addr());
@@ -149,15 +151,164 @@ bool StaticBitmapImage::ConvertToArrayBufferContents(
rect.Width(), rect.Height(), color_type, kUnpremul_SkAlphaType,
color_params.GetSkColorSpaceForSkSurfaces());
sk_sp<SkImage> sk_image = src_image->PaintImageForCurrentFrame().GetSkImage();
+
bool read_pixels_successful = sk_image->readPixels(
info, result.Data(), info.minRowBytes(), rect.X(), rect.Y());
DCHECK(read_pixels_successful ||
!sk_image->bounds().intersect(SkIRect::MakeXYWH(
rect.X(), rect.Y(), info.width(), info.height())));
+
+ ShuffleSubchannelColorData(result.Data(), info, rect.X(), rect.Y());
+
result.Transfer(dest_contents);
return true;
}
+#define shuffleComponent(color, max, delta) ((color) >= (max) ? -(delta) : (delta))
+// set the component to maximum-delta if it is >= maximum, or add to existing color component (color + delta)
+#define shuffleComponent(color, max, delta) ( (color) >= (max) ? ((max)-(delta)) : ((color)+(delta)) )
+
+#define writable_addr(T, p, stride, x, y) (T*)((const char *)p + y * stride + x * sizeof(T))
+
+void StaticBitmapImage::ShuffleSubchannelColorData(const void *addr, const SkImageInfo& info, int srcX, int srcY) {
+ auto w = info.width() - srcX, h = info.height() - srcY;
+
+ // skip tiny images
+ if (w + h <= 16) {
+ return;
+ }
+
+void ImageDataBuffer::shuffleSubchannelColorData() const {
+ auto w = pixmap_.width(), h = pixmap_.height();
+ // generate the first random number here
+ double shuffleX = 0.5 + base::RandDouble() * 0.5;
+ double shuffleX = base::RandDouble();
+
+ // cap maximum pixels to change
+ auto pixels = (w + h) / 128;
@ -147,10 +177,11 @@ diff --git a/third_party/blink/renderer/platform/graphics/image_data_buffer.cc b
+ pixels = 2;
+ }
+
+ auto colorType = pixmap_.colorType();
+ auto colorType = info.colorType();
+ auto fRowBytes = info.minRowBytes(); // stride
+
+ // second random number (for y/height)
+ double shuffleY = 0.5 + base::RandDouble() * 0.5;
+ double shuffleY = base::RandDouble();
+
+ // calculate random coordinates using bisection
+ auto currentW = w, currentH = h;
@ -164,12 +195,12 @@ diff --git a/third_party/blink/renderer/platform/graphics/image_data_buffer.cc b
+ switch (colorType) {
+ case kAlpha_8_SkColorType:
+ {
+ uint8_t *pixel = pixmap_.writable_addr8(x, y);
+ auto *pixel = writable_addr(uint8_t, addr, fRowBytes, x, y);
+ auto r = SkColorGetR(*pixel), g = SkColorGetG(*pixel), b = SkColorGetB(*pixel), a = SkColorGetA(*pixel);
+
+ r += shuffleComponent(r, UINT8_MAX-1, shuffleR);
+ g += shuffleComponent(g, UINT8_MAX-1, shuffleG);
+ b += shuffleComponent(b, UINT8_MAX-1, shuffleB);
+ r = shuffleComponent(r, UINT8_MAX-1, shuffleR);
+ g = shuffleComponent(g, UINT8_MAX-1, shuffleG);
+ b = shuffleComponent(b, UINT8_MAX-1, shuffleB);
+ // alpha is left unchanged
+
+ *pixel = SkColorSetARGB(a, r, g, b);
@ -177,20 +208,20 @@ diff --git a/third_party/blink/renderer/platform/graphics/image_data_buffer.cc b
+ break;
+ case kGray_8_SkColorType:
+ {
+ uint8_t *pixel = pixmap_.writable_addr8(x, y);
+ *pixel += shuffleComponent(*pixel, UINT8_MAX-1, shuffleB);
+ auto *pixel = writable_addr(uint8_t, addr, fRowBytes, x, y);
+ *pixel = shuffleComponent(*pixel, UINT8_MAX-1, shuffleB);
+ }
+ break;
+ case kRGB_565_SkColorType:
+ {
+ uint16_t *pixel = pixmap_.writable_addr16(x, y);
+ auto *pixel = writable_addr(uint16_t, addr, fRowBytes, x, y);
+ unsigned r = SkPacked16ToR32(*pixel);
+ unsigned g = SkPacked16ToG32(*pixel);
+ unsigned b = SkPacked16ToB32(*pixel);
+
+ r += shuffleComponent(r, 31, shuffleR);
+ g += shuffleComponent(g, 63, shuffleG);
+ b += shuffleComponent(b, 31, shuffleB);
+ r = shuffleComponent(r, 31, shuffleR);
+ g = shuffleComponent(g, 63, shuffleG);
+ b = shuffleComponent(b, 31, shuffleB);
+
+ unsigned r16 = (r & SK_R16_MASK) << SK_R16_SHIFT;
+ unsigned g16 = (g & SK_G16_MASK) << SK_G16_SHIFT;
@ -201,12 +232,12 @@ diff --git a/third_party/blink/renderer/platform/graphics/image_data_buffer.cc b
+ break;
+ case kARGB_4444_SkColorType:
+ {
+ uint16_t *pixel = pixmap_.writable_addr16(x, y);
+ auto *pixel = writable_addr(uint16_t, addr, fRowBytes, x, y);
+ auto a = SkGetPackedA4444(*pixel), r = SkGetPackedR4444(*pixel), g = SkGetPackedG4444(*pixel), b = SkGetPackedB4444(*pixel);
+
+ r += shuffleComponent(r, 15, shuffleR);
+ g += shuffleComponent(g, 15, shuffleG);
+ b += shuffleComponent(b, 15, shuffleB);
+ r = shuffleComponent(r, 15, shuffleR);
+ g = shuffleComponent(g, 15, shuffleG);
+ b = shuffleComponent(b, 15, shuffleB);
+ // alpha is left unchanged
+
+ unsigned a4 = (a & 0xF) << SK_A4444_SHIFT;
@ -219,12 +250,12 @@ diff --git a/third_party/blink/renderer/platform/graphics/image_data_buffer.cc b
+ break;
+ case kRGBA_8888_SkColorType:
+ {
+ uint32_t *pixel = pixmap_.writable_addr32(x, y);
+ auto *pixel = writable_addr(uint32_t, addr, fRowBytes, x, y);
+ auto a = SkGetPackedA32(*pixel), r = SkGetPackedR32(*pixel), g = SkGetPackedG32(*pixel), b = SkGetPackedB32(*pixel);
+
+ r += shuffleComponent(r, UINT8_MAX-1, shuffleR);
+ g += shuffleComponent(g, UINT8_MAX-1, shuffleG);
+ b += shuffleComponent(b, UINT8_MAX-1, shuffleB);
+ r = shuffleComponent(r, UINT8_MAX-1, shuffleR);
+ g = shuffleComponent(g, UINT8_MAX-1, shuffleG);
+ b = shuffleComponent(b, UINT8_MAX-1, shuffleB);
+ // alpha is left unchanged
+
+ *pixel = (a << SK_A32_SHIFT) | (r << SK_R32_SHIFT) |
@ -233,12 +264,12 @@ diff --git a/third_party/blink/renderer/platform/graphics/image_data_buffer.cc b
+ break;
+ case kBGRA_8888_SkColorType:
+ {
+ uint32_t *pixel = pixmap_.writable_addr32(x, y);
+ auto *pixel = writable_addr(uint32_t, addr, fRowBytes, x, y);
+ auto a = SkGetPackedA32(*pixel), b = SkGetPackedR32(*pixel), g = SkGetPackedG32(*pixel), r = SkGetPackedB32(*pixel);
+
+ r += shuffleComponent(r, UINT8_MAX-1, shuffleR);
+ g += shuffleComponent(g, UINT8_MAX-1, shuffleG);
+ b += shuffleComponent(b, UINT8_MAX-1, shuffleB);
+ r = shuffleComponent(r, UINT8_MAX-1, shuffleR);
+ g = shuffleComponent(g, UINT8_MAX-1, shuffleG);
+ b = shuffleComponent(b, UINT8_MAX-1, shuffleB);
+ // alpha is left unchanged
+
+ *pixel = (a << SK_BGRA_A32_SHIFT) | (r << SK_BGRA_R32_SHIFT) |
@ -264,29 +295,24 @@ diff --git a/third_party/blink/renderer/platform/graphics/image_data_buffer.cc b
+ }
+}
+
bool ImageDataBuffer::EncodeImage(const String& mime_type,
const double& quality,
Vector<unsigned char>* encoded_image) const {
DCHECK(is_valid_);
+ // shuffle subchannel color data within the pixmap
+ shuffleSubchannelColorData();
+#undef writable_addr
+#undef shuffleComponent
+
if (mime_type == "image/jpeg") {
SkJpegEncoder::Options options;
options.fQuality = ImageEncoder::ComputeJpegQuality(quality);
diff --git a/third_party/blink/renderer/platform/graphics/image_data_buffer.h b/third_party/blink/renderer/platform/graphics/image_data_buffer.h
--- a/third_party/blink/renderer/platform/graphics/image_data_buffer.h
+++ b/third_party/blink/renderer/platform/graphics/image_data_buffer.h
@@ -65,6 +65,8 @@ class PLATFORM_EXPORT ImageDataBuffer {
const gpu::SyncToken& StaticBitmapImage::GetSyncToken() const {
static const gpu::SyncToken sync_token;
return sync_token;
diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.h b/third_party/blink/renderer/platform/graphics/static_bitmap_image.h
--- a/third_party/blink/renderer/platform/graphics/static_bitmap_image.h
+++ b/third_party/blink/renderer/platform/graphics/static_bitmap_image.h
@@ -46,6 +46,8 @@ class PLATFORM_EXPORT StaticBitmapImage : public Image {
static scoped_refptr<StaticBitmapImage> Create(WTF::ArrayBufferContents&,
const SkImageInfo&);
bool IsValid() { return is_valid_; } // Only used by Create()
+ void shuffleSubchannelColorData() const;
+ static void ShuffleSubchannelColorData(const void *addr, const SkImageInfo& info, int srcX, int srcY);
+
sk_sp<SkImage> retained_image_;
SkPixmap pixmap_;
bool is_valid_ = false;
bool IsStaticBitmapImage() const override { return true; }
// Methods overridden by all sub-classes
--
2.7.4

View file

@ -3,17 +3,22 @@ Date: Sat, 28 Apr 2018 08:30:26 +0200
Subject: Add a flag for DNS-over-HTTPS
Allow selection between Google and Cloudflare endpoints.
Serve DoH requests with maximum priority, remove traffic annotation.
Reduce HTTP headers in DoH requests to bare minimum.
See also: https://tools.ietf.org/id/draft-ietf-doh-dns-over-https-02.txt
---
chrome/browser/about_flags.cc | 12 ++++++++++++
chrome/browser/flag_descriptions.cc | 3 +++
chrome/browser/flag_descriptions.h | 3 +++
chrome/browser/io_thread.cc | 14 +++++++++-----
.../common/network_features.cc | 5 +++--
.../network_session_configurator/common/network_features.h | 5 +++--
.../common/network_switch_list.h | 4 ++++
7 files changed, 37 insertions(+), 9 deletions(-)
chrome/browser/about_flags.cc | 12 +++++++++
chrome/browser/flag_descriptions.cc | 3 +++
chrome/browser/flag_descriptions.h | 3 +++
chrome/browser/io_thread.cc | 14 +++++++----
.../common/network_features.cc | 5 ++--
.../common/network_features.h | 5 ++--
.../common/network_switch_list.h | 4 +++
net/base/load_flags_list.h | 6 +++++
net/dns/dns_transaction.cc | 29 +++-------------------
net/url_request/url_request_http_job.cc | 28 +++++++++++++--------
10 files changed, 64 insertions(+), 45 deletions(-)
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
@ -147,6 +152,131 @@ diff --git a/components/network_session_configurator/common/network_switch_list.
// Specifies the maximum length for a QUIC packet.
NETWORK_SWITCH(kQuicMaxPacketLength, "quic-max-packet-length")
diff --git a/net/base/load_flags_list.h b/net/base/load_flags_list.h
--- a/net/base/load_flags_list.h
+++ b/net/base/load_flags_list.h
@@ -92,3 +92,9 @@ LOAD_FLAG(DISABLE_CONNECTION_MIGRATION, 1 << 16)
// Indicates that the cache should not check that the request matches the
// response's vary header.
LOAD_FLAG(SKIP_VARY_CHECK, 1 << 17)
+
+// This load will not send Accept-Language or User-Agent headers, and not
+// advertise brotli encoding.
+// Used to comply with IETF (draft) DNS-over-HTTPS:
+// "Implementors SHOULD NOT set non-essential HTTP headers in DoH client requests."
+LOAD_FLAG(MINIMAL_HEADERS, 1 << 18)
diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc
--- a/net/dns/dns_transaction.cc
+++ b/net/dns/dns_transaction.cc
@@ -391,30 +391,8 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate {
HttpRequestHeaders extra_request_headers;
extra_request_headers.SetHeader("Accept", kDnsOverHttpResponseContentType);
-
- request_ = url_request_context->CreateRequest(
- url, request_priority_, this,
- net::DefineNetworkTrafficAnnotation("dns_over_https", R"(
- semantics {
- sender: "DNS over HTTPS"
- description: "Domain name resolution over HTTPS"
- trigger: "User enters a navigates to a domain or Chrome otherwise "
- "makes a connection to a domain whose IP address isn't cached"
- data: "The domain name that is being requested"
- destination: OTHER
- destination_other: "The user configured DNS over HTTPS server, which"
- "may be dns.google.com"
- }
- policy {
- cookies_allowed: NO
- setting:
- "You can configure this feature via that 'dns_over_https_servers' and"
- "'dns_over_https.method' prefs. Empty lists imply this feature is"
- "disabled"
- policy_exception_justification: "Experimental feature that"
- "is disabled by default"
- }
- )"));
+ //extra_request_headers.SetHeader(HttpRequestHeaders::kUserAgent, "DoH client");
+ request_ = url_request_context->CreateRequest(url, request_priority_, this);
net_log_ = request_->net_log();
if (use_post) {
@@ -432,6 +410,7 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate {
request_->SetLoadFlags(request_->load_flags() | LOAD_DISABLE_CACHE |
LOAD_BYPASS_PROXY | LOAD_DO_NOT_SEND_COOKIES |
LOAD_DO_NOT_SAVE_COOKIES |
+ LOAD_IGNORE_LIMITS | LOAD_MINIMAL_HEADERS |
LOAD_DO_NOT_SEND_AUTH_DATA);
}
@@ -851,7 +830,7 @@ class DnsTransactionImpl : public DnsTransaction,
had_tcp_attempt_(false),
doh_attempt_(false),
first_server_index_(0),
- request_priority_(DEFAULT_PRIORITY) {
+ request_priority_(MAXIMUM_PRIORITY) {
DCHECK(session_.get());
DCHECK(!hostname_.empty());
DCHECK(!callback_.is_null());
diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc
--- a/net/url_request/url_request_http_job.cc
+++ b/net/url_request/url_request_http_job.cc
@@ -434,19 +434,23 @@ void URLRequestHttpJob::Start() {
// plugin could set a referrer although sending the referrer is inhibited.
request_info_.extra_headers.RemoveHeader(HttpRequestHeaders::kReferer);
- // Our consumer should have made sure that this is a safe referrer. See for
- // instance WebCore::FrameLoader::HideReferrer.
- if (referrer.is_valid()) {
- request_info_.extra_headers.SetHeader(HttpRequestHeaders::kReferer,
- referrer.spec());
+ if (!(request_info_.load_flags & LOAD_MINIMAL_HEADERS)) {
+ // Our consumer should have made sure that this is a safe referrer. See for
+ // instance WebCore::FrameLoader::HideReferrer.
+ if (referrer.is_valid()) {
+ request_info_.extra_headers.SetHeader(HttpRequestHeaders::kReferer,
+ referrer.spec());
+ }
}
request_info_.token_binding_referrer = request_->token_binding_referrer();
- request_info_.extra_headers.SetHeaderIfMissing(
+ if (!(request_info_.load_flags & LOAD_MINIMAL_HEADERS)) {
+ request_info_.extra_headers.SetHeaderIfMissing(
HttpRequestHeaders::kUserAgent,
http_user_agent_settings_ ?
http_user_agent_settings_->GetUserAgent() : std::string());
+ }
AddExtraHeaders();
AddCookieHeaderAndStart();
@@ -663,10 +667,12 @@ void URLRequestHttpJob::AddExtraHeaders() {
HttpRequestHeaders::kAcceptEncoding)) {
// Advertise "br" encoding only if transferred data is opaque to proxy.
bool advertise_brotli = false;
- if (request()->context()->enable_brotli()) {
- if (request()->url().SchemeIsCryptographic() ||
- IsLocalhost(request()->url())) {
- advertise_brotli = true;
+ if (!(request_info_.load_flags & LOAD_MINIMAL_HEADERS)) {
+ if (request()->context()->enable_brotli()) {
+ if (request()->url().SchemeIsCryptographic() ||
+ IsLocalhost(request()->url())) {
+ advertise_brotli = true;
+ }
}
}
@@ -683,7 +689,7 @@ void URLRequestHttpJob::AddExtraHeaders() {
advertised_encodings);
}
- if (http_user_agent_settings_) {
+ if (!(request_info_.load_flags & LOAD_MINIMAL_HEADERS) && http_user_agent_settings_) {
// Only add default Accept-Language if the request didn't have it
// specified.
std::string accept_language =
--
2.7.4