{"version":3,"sources":["webpack:///./assets/javascripts/modules/components/SimpleCarouselComponent.js","webpack:///./assets/javascripts/modules/utils/mediaBreakpoints.js","webpack:///./node_modules/es6-crawler-detect/src/lib/crawler/provider.js","webpack:///./assets/javascripts/modules/components/RecommendationEngineComponent.js","webpack:///./node_modules/es6-crawler-detect/src/index.js","webpack:///./node_modules/es6-crawler-detect/src/lib/crawler.js","webpack:///./node_modules/es6-crawler-detect/src/lib/crawler/crawlers.js","webpack:///./node_modules/es6-crawler-detect/src/lib/crawler/exclusions.js","webpack:///./node_modules/es6-crawler-detect/src/lib/crawler/headers.js"],"names":["SimpleCarouselComponent","htmlEl","_classCallCheck","this","_possibleConstructorReturn","__proto__","Object","getPrototypeOf","call","Component","main","prevArrow","nextArrow","navDots","_this2","_get","prototype","dom","readDOM","matchBreakpoints","importLibrary","then","initCarousel","interval","_interval","_slicedToArray","minpx","maxpx","window","matchMedia","matches","_this3","bps","$component","dataset","activeBreakpoint","split","map","bp","trim","filter","length","reduce","acc","mediaMatch","MEDIA_BREAKPOINTS","_this4","Promise","resolve","reject","moduleLoader","loadCarouselAndExecute","module","error","querySelector","SELECTORS","_this5","$main","$","toBoolean","str","def","undefined","toNumber","Number","responsive","carouselSm","breakpointSMSettings","slidesToShow","slidesToShowSm","dots","dotsSm","arrows","arrowsSm","centerMode","centerModeSm","centerPadding","centerPaddingSm","infinite","infiniteSm","swipeToSlide","swipeToSlideSm","breakpointSM","breakpoint","parseInt","settings","carouselSmDisable","push","carouselMd","breakpointMDSettings","slidesToShowMd","dotsMd","arrowsMd","centerModeMd","centerPaddingMd","infiniteMd","swipeToSlideMd","breakpointMD","carouselMdDisable","carouselLg","breakpointLGSettings","slidesToShowLg","dotsLg","arrowsLg","centerModeLg","centerPaddingLg","infiniteLg","swipeToSlideLg","breakpointLG","carouselLgDisable","opts","fade","autoplay","autoplaySpeed","slidesToScroll","appendDots","variableWidth","on","e","slick","emit","$customEvents","SIMPLE_CAROUSEL","init","originalEvent","curr","next","beforeChange","console","log","_this6","sm","md","lg","xl","exports","[object Object]","data","require","Crawler","RecommendationEngineComponent","middleware","_this","recommendationContainer","recommendationProductsContainer","recommendationProductsCarousel","recommendationUrl","get","recommendationComponent","template","codes","paramsObj","callBackOnSuccess","callBackOnFailure","timeoutTime","xhttp","XMLHttpRequest","params","URLSearchParams","key","append","timeout","open","CONSTANTS","toString","replace","onreadystatechange","readyState","status","ontimeout","onerror","send","recommendationProductsComponent","innerHTML","responseText","initAsynchCarousel","callServer","getSimilarOpts","renderData","bind","hideComponent","CrawlerDetector","userAgentString","navigator","userAgent","isCrawler","getMarketingOpts","tryAgain","setup","__webpack_require__","req","res","Crawlers","Exclusions","Headers","request","headers","_init","compiledRegexList","compileRegex","crawlers","getAll","compiledExclusions","exclusions","setHttpHeaders","setUserAgent","patterns","flags","RegExp","join","keys","httpHeaders","header","getUaHttpHeaders","indexOf","toLowerCase","agent","exec","Provider","super"],"mappings":"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","file":"component-RecommendationEngineComponent.chunks.js","sourcesContent":["import Component from \"../abstracts/Component\";\nimport MEDIA_BREAKPOINTS from '../utils/mediaBreakpoints';\n\nexport default class SimpleCarouselComponent extends Component {\n\n get COMPONENTNAME() {\n return 'SimpleCarouselComponent';\n }\n\n get SELECTORS() {\n return {\n main: '[data-carousel=\"true\"]:not(.slick-initialized)',\n prevArrow: '[data-prev-arrow]',\n nextArrow: '[data-next-arrow]',\n navDots: '[data-nav-dots]',\n };\n }\n\n constructor(htmlEl) {\n super(htmlEl);\n }\n\n render() {\n super.render();\n this.dom = this.readDOM();\n\n if (!this.dom.main || !this.matchBreakpoints()) return;\n\n this.importLibrary().then(() => {\n this.initCarousel();\n });\n }\n\n mediaMatch(interval) {\n const [minpx, maxpx] = interval;\n return window.matchMedia(`screen and (min-width: ${minpx}px) and (max-width: ${maxpx}px)`).matches;\n }\n\n matchBreakpoints() {\n const bps = (this.$component.dataset.activeBreakpoint || '')\n .split(',')\n .map(bp => bp.trim())\n .filter(bp => bp);\n\n if (!bps.length) return true;\n\n return bps.reduce((acc, bp) => {\n return acc || this.mediaMatch(MEDIA_BREAKPOINTS[bp]);\n }, false);\n }\n\n importLibrary() {\n return new Promise((resolve, reject) => {\n this.moduleLoader.loadCarouselAndExecute(\n module => { resolve(module) },\n error => { reject(error) }\n );\n })\n }\n\n readDOM() {\n return {\n main: this.$component.querySelector(this.SELECTORS.main),\n prevArrow: this.$component.querySelector(this.SELECTORS.prevArrow),\n nextArrow: this.$component.querySelector(this.SELECTORS.nextArrow),\n navDots: this.$component.querySelector(this.SELECTORS.navDots),\n }\n }\n\n initCarousel() {\n const $main = $(this.dom.main);\n const toBoolean = (str, def) => str !== undefined ? str === 'true' : def;\n const toNumber = (str, def) => str !== undefined ? Number(str) : def;\n\n // responsive json\n let responsive = [];\n // breakpoints settings to add only if active\n // SM\n if (typeof this.dom.main.dataset.carouselSm !== 'undefined' ) {\n const breakpointSMSettings = {\n slidesToShow: toNumber(this.dom.main.dataset.slidesToShowSm, 1),\n dots: toBoolean(this.dom.main.dataset.dotsSm, true),\n arrows: toBoolean(this.dom.main.dataset.arrowsSm, true),\n centerMode: toBoolean(this.dom.main.dataset.centerModeSm, false),\n centerPadding: this.dom.main.dataset.centerPaddingSm,\n infinite: toBoolean(this.dom.main.dataset.infiniteSm, true),\n swipeToSlide: toBoolean(this.dom.main.dataset.swipeToSlideSm, false)\n };\n const breakpointSM = {\n breakpoint: (this.dom.main.dataset.carouselSm !== '') ? parseInt(this.dom.main.dataset.carouselSm,10) : 375,\n settings: (toBoolean(this.dom.main.dataset.carouselSmDisable, false) ? \"unslick\" : breakpointSMSettings)\n };\n responsive.push(breakpointSM);\n }\n // MD\n if (typeof this.dom.main.dataset.carouselMd !== 'undefined' ) {\n let breakpointMDSettings = {\n slidesToShow: toNumber(this.dom.main.dataset.slidesToShowMd, 1),\n dots: toBoolean(this.dom.main.dataset.dotsMd, true),\n arrows: toBoolean(this.dom.main.dataset.arrowsMd, true),\n centerMode: toBoolean(this.dom.main.dataset.centerModeMd, false),\n centerPadding: this.dom.main.dataset.centerPaddingMd,\n infinite: toBoolean(this.dom.main.dataset.infiniteMd, true),\n swipeToSlide: toBoolean(this.dom.main.dataset.swipeToSlideMd, false)\n };\n let breakpointMD = {\n breakpoint: (this.dom.main.dataset.carouselMd !== '') ? parseInt(this.dom.main.dataset.carouselMd,10) : 768,\n settings: (toBoolean(this.dom.main.dataset.carouselMdDisable, false) ? \"unslick\" : breakpointMDSettings)\n };\n responsive.push(breakpointMD);\n }\n // LG\n if (typeof this.dom.main.dataset.carouselLg !== 'undefined' ) {\n const breakpointLGSettings = {\n slidesToShow: toNumber(this.dom.main.dataset.slidesToShowLg, 1),\n dots: toBoolean(this.dom.main.dataset.dotsLg, true),\n arrows: toBoolean(this.dom.main.dataset.arrowsLg, true),\n centerMode: toBoolean(this.dom.main.dataset.centerModeLg, false),\n centerPadding: this.dom.main.dataset.centerPaddingLg,\n infinite: toBoolean(this.dom.main.dataset.infiniteLg, true),\n swipeToSlide: toBoolean(this.dom.main.dataset.swipeToSlideLg, false)\n };\n const breakpointLG = {\n breakpoint: (this.dom.main.dataset.carouselLg !== '') ? parseInt(this.dom.main.dataset.carouselLg,10) : 992,\n settings: (toBoolean(this.dom.main.dataset.carouselLgDisable, false) ? \"unslick\" : breakpointLGSettings)\n };\n responsive.push(breakpointLG);\n }\n // all options\n let opts = {\n dots: toBoolean(this.dom.main.dataset.dots, true),\n fade: toBoolean(this.dom.main.dataset.fade, false),\n centerMode: toBoolean(this.dom.main.dataset.centerMode, false),\n arrows: toBoolean(this.dom.main.dataset.arrows, true),\n autoplay: toBoolean(this.dom.main.dataset.autoplay, true),\n infinite: toBoolean(this.dom.main.dataset.infinite, true),\n autoplaySpeed: toNumber(this.dom.main.dataset.autoplaySpeed, 3000),\n slidesToShow: toNumber(this.dom.main.dataset.slidesToShow, 1),\n slidesToScroll: toNumber(this.dom.main.dataset.slidesToScroll, 1),\n prevArrow: this.dom.prevArrow,\n nextArrow: this.dom.nextArrow,\n appendDots: this.dom.navDots ? this.dom.navDots : this.dom.main,\n variableWidth: toBoolean(this.dom.main.dataset.variableWidth, false),\n swipeToSlide: toBoolean(this.dom.main.dataset.swipeToSlide, false),\n responsive: responsive\n }\n\n if (typeof this.dom.main.dataset.centerPadding !== 'undefined' ) opts.centerPadding = this.dom.main.dataset.centerPadding;\n\n $main.on('init', (e, slick) => {\n this.emit(this.$customEvents.SIMPLE_CAROUSEL.init, {originalEvent: e, slick});\n });\n\n $main.on('beforeChange', (e, slick, curr, next) => {\n this.emit(this.$customEvents.SIMPLE_CAROUSEL.beforeChange, {originalEvent: e, slick, curr, next});\n });\n console.log('[SimpleCarouselComponent]',opts);\n $main.slick(opts);\n }\n\n initAsynchCarousel() {\n this.dom = this.readDOM();\n this.importLibrary().then(() => {\n this.initCarousel();\n });\n }\n}\n","const MEDIA_BREAKPOINTS = {\n sm: [0, 767],\n md: [768, 991],\n lg: [992, 1279],\n xl: [1280, 99999],\n};\n\nexport default MEDIA_BREAKPOINTS;","'use strict';\r\n\r\nclass Provider\r\n{\r\n\tconstructor(){}\r\n\r\n\tgetAll()\r\n\t{\r\n\t\treturn this.data;\r\n\t}\r\n}\r\n\r\nmodule.exports = Provider;","import Component from '../abstracts/Component';\nconst {Crawler, middleware} = require('./../../../../node_modules/es6-crawler-detect/src')\nimport SimpleCarouselComponent from \"./SimpleCarouselComponent\";\n/**\n Recommendation Engine Component\n */\nexport default class RecommendationEngineComponent extends Component {\n\n get COMPONENTNAME() {\n return 'RecommendationEngineComponent';\n }\n\n get SELECTORS() {\n return {\n recommendationProductsContainer: '[data-recommendation-engine-products-container]',\n recommendationProductsCarousel: '[data-recommendation-engine-products-carousel]',\n };\n }\n\n get CONSTANTS() {\n return {\n recommendationUrl: \"/ajax/recommendation\",\n get: \"GET\",\n };\n }\n\n constructor(htmlEl) {\n super(htmlEl);\n this.recommendationContainer = this.$component;\n this.recommendationProductsContainer = this.$component.querySelector(this.SELECTORS.recommendationProductsContainer);\n this.recommendationProductsCarousel = this.$component.querySelector(this.SELECTORS.recommendationProductsCarousel);\n }\n\n getMarketingOpts(recommendationComponent) {\n let opts = {};\n opts.webRecommendationHtmlData = true;\n opts.template = recommendationComponent.dataset.template;\n opts.codes = recommendationComponent.dataset.codes;\n return opts;\n }\n\n getSimilarOpts(recommendationComponent) {\n let opts = {};\n opts.similarHtmlData = true;\n opts.template = recommendationComponent.dataset.template;\n opts.codes = recommendationComponent.dataset.codes;\n return opts;\n }\n\n callServer(paramsObj, callBackOnSuccess, callBackOnFailure, timeoutTime) {\n let xhttp = new XMLHttpRequest();\n let params = new URLSearchParams();\n\n for(let key in paramsObj) {\n params.append(key, paramsObj[key]);\n }\n\n if(timeoutTime != null) {\n xhttp.timeout = timeoutTime;\n }\n\n xhttp.open(this.CONSTANTS.get, this.CONSTANTS.recommendationUrl + \"?\" + params.toString().replace(/\\+/gi ,\"%20\"), true);\n\n xhttp.onreadystatechange = function() {\n if (this.readyState === 4 && this.status === 200) {\n callBackOnSuccess(this);\n }else{\n if (this.readyState === 4 && (this.status === 500 || this.status === 404)) {\n callBackOnFailure();\n }\n }\n };\n\n xhttp.ontimeout = function () {\n callBackOnFailure();\n };\n\n xhttp.onerror = function () {\n callBackOnFailure();\n };\n\n xhttp.send();\n }\n\n renderData(data) {\n let recommendationProductsComponent = this.recommendationProductsContainer ;\n if(recommendationProductsComponent != null){\n recommendationProductsComponent.innerHTML = data.responseText;\n let simpleCarousel = new SimpleCarouselComponent(this.recommendationProductsCarousel);\n simpleCarousel.initAsynchCarousel();\n }\n }\n\n tryAgain() {\n let recommendationComponent = this.recommendationContainer;\n this.callServer(this.getSimilarOpts(recommendationComponent), this.renderData.bind(this), this.hideComponent.bind(this), null);\n }\n\n hideComponent() {\n let recommendationComponent = this.recommendationContainer;\n\n if(recommendationComponent != null){\n recommendationComponent.innerHTML = \"\";\n }\n }\n\n setup (recommendationComponent) {\n let timeout = recommendationComponent.dataset.timeout;\n let template = recommendationComponent.dataset.template;\n let CrawlerDetector = new Crawler();\n let userAgentString = navigator.userAgent;\n\n if(!CrawlerDetector.isCrawler(userAgentString)) {\n this.callServer(this.getMarketingOpts(recommendationComponent), this.renderData.bind(this), template === \"t-product\" ? this.tryAgain.bind(this) : this.hideComponent.bind(this), timeout);\n }else{\n this.hideComponent();\n }\n }\n\n render() {\n this.log('Rendering...');\n // launch component\n if(this.recommendationContainer != null){\n this.setup(this.recommendationContainer);\n }\n }\n\n}\n","const Crawler = require(\"./lib/crawler\")\r\n\r\nmodule.exports = {\r\n Crawler,\r\n\r\n middleware (req, res, next) {\r\n req.Crawler = new Crawler(req)\r\n next()\r\n }\r\n}","'use strict';\r\n\r\nconst Crawlers = require('./crawler/crawlers');\r\nconst Exclusions = require('./crawler/exclusions');\r\nconst Headers = require('./crawler/headers');\r\n\r\nclass Crawler\r\n{\r\n\tconstructor(request, headers, userAgent)\r\n\t{\r\n\t\t/**\r\n\t\t * Init classes\r\n\t\t */\r\n\t\tthis._init();\r\n\r\n\t\t/**\r\n\t\t * This request must be an object\r\n\t\t */\r\n\t\tthis.request = typeof request === 'object' ? request : {};\r\n\r\n\t\t// The regex-list must not be used with g-flag!\r\n\t\t// See: https://stackoverflow.com/questions/1520800/why-does-a-regexp-with-global-flag-give-wrong-results\r\n\t\tthis.compiledRegexList = this.compileRegex(this.crawlers.getAll(), 'i');\r\n\r\n\t\t// The exclusions should be used with g-flag in order to remove each value.\r\n\t\tthis.compiledExclusions = this.compileRegex(this.exclusions.getAll(), 'g');\r\n\r\n\t\t/**\r\n\t\t * Set http headers\r\n\t\t */\r\n\t\tthis.setHttpHeaders(headers);\r\n\r\n\t\t/**\r\n\t\t * Set userAgent\r\n\t\t */\r\n\t\tthis.userAgent = this.setUserAgent(userAgent);\r\n\t}\r\n\r\n\t/**\r\n\t * Init Classes Instances\r\n\t */\r\n\t_init()\r\n\t{\r\n\t\tthis.crawlers = new Crawlers();\r\n\t\tthis.headers = new Headers();\r\n\t\tthis.exclusions = new Exclusions();\r\n\t}\r\n\r\n\tcompileRegex(patterns, flags) {\r\n\t\treturn new RegExp(patterns.join('|').trim(), flags);\r\n\t}\r\n\r\n\t/**\r\n\t * Set HTTP headers.\r\n\t */\r\n\tsetHttpHeaders(headers)\r\n\t{\r\n\t\t// Use the Request headers if httpHeaders is not defined\r\n if ( typeof headers === 'undefined' || Object.keys(headers).length === 0 )\r\n {\r\n \theaders = Object.keys(this.request).length ? this.request.headers : {};\r\n }\r\n\r\n\t\t// Clear existing headers.\r\n\t\tthis.httpHeaders = [];\r\n\r\n // Only save HTTP headers.\r\n\t\tfor ( const key in headers )\r\n\t\t{\r\n\t\t\tthis.httpHeaders[key] = headers[key];\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Set user agent\r\n\t */\r\n\tsetUserAgent(userAgent)\r\n\t{\r\n\t\tif ( typeof userAgent === 'undefined' || userAgent === null || ! userAgent.length )\r\n\t\t{\r\n\t\t\tfor ( const header of this.getUaHttpHeaders() )\r\n\t\t\t{\r\n\t\t\t\tif ( Object.keys(this.httpHeaders).indexOf(header.toLowerCase()) >= 0 )\r\n\t\t\t\t{\r\n\t\t\t\t\tuserAgent += this.httpHeaders[header] + ' ';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn userAgent;\r\n\t}\r\n\r\n\t/**\r\n\t * Get user agent headers\r\n\t */\r\n\tgetUaHttpHeaders()\r\n\t{\r\n\t\treturn this.headers.getAll();\r\n\t}\r\n\r\n\t/**\r\n\t * Check user agent string against the regex.\r\n\t */\r\n\tisCrawler(userAgent = undefined)\r\n\t{\r\n\t\tvar agent = (typeof userAgent === 'undefined' || userAgent === null ? this.userAgent : userAgent);\r\n\r\n\t\t// test on compiled regx\r\n\t\tagent = agent.replace(this.compiledExclusions, '');\r\n\r\n\t\tif ( agent.trim().length === 0 )\r\n\t\t{\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar matches = this.compiledRegexList.exec(agent.trim());\r\n\r\n\t\tif ( matches )\r\n\t\t{\r\n\t\t\tthis.matches = matches;\r\n\t\t}\r\n\r\n\t\treturn matches !== null ? (matches.length ? true : false) : false;\r\n\t}\r\n\r\n\t/**\r\n\t * Return the matches.\r\n\t */\r\n\tgetMatches()\r\n\t{\r\n\t\treturn this.matches !== undefined ? (this.matches.length ? this.matches[0] : null) : {};\r\n\t}\r\n}\r\n\r\nmodule.exports = Crawler;\r\n","'use strict';\r\n\r\nconst Provider = require(\"./provider\");\r\n\r\nclass Crawlers extends Provider\r\n{\r\n\tconstructor()\r\n\t{\r\n\t\tsuper();\r\n\t\t\r\n\t\tthis.data = [\".*Java.*outbrain\",\" YLT\",\"^b0t$\",\"^bluefish \",\"^Calypso v\\\\\\/\",\"^COMODO DCV\",\"^DangDang\",\"^DavClnt\",\"^FDM \",\"^git\\\\\\/\",\"^Goose\\\\\\/\",\"^Grabber\",\"^HTTPClient\\\\\\/\",\"^Java\\\\\\/\",\"^Jeode\\\\\\/\",\"^Jetty\\\\\\/\",\"^Mail\\\\\\/\",\"^Mget\",\"^Microsoft URL Control\",\"^NG\\\\\\/[0-9\\\\.]\",\"^NING\\\\\\/\",\"^PHP\\\\\\/[0-9]\",\"^RMA\\\\\\/\",\"^Ruby|Ruby\\\\\\/[0-9]\",\"^VSE\\\\\\/[0-9]\",\"^WordPress\\\\.com\",\"^XRL\\\\\\/[0-9]\",\"^ZmEu\",\"008\\\\\\/\",\"13TABS\",\"192\\\\.comAgent\",\"2ip\\\\.ru\",\"404enemy\",\"7Siters\",\"80legs\",\"a\\\\.pr-cy\\\\.ru\",\"a3logics\\\\.in\",\"A6-Indexer\",\"Abonti\",\"Aboundex\",\"aboutthedomain\",\"Accoona-AI-Agent\",\"acoon\",\"acrylicapps\\\\.com\\\\\\/pulp\",\"Acunetix\",\"AdAuth\\\\\\/\",\"adbeat\",\"AddThis\",\"ADmantX\",\"AdminLabs\",\"adressendeutschland\",\"adreview\\\\\\/\",\"adscanner\",\"Adstxtaggregator\",\"adstxt-worker\",\"adstxt\\\\.com\",\"agentslug\",\"AHC\",\"aihit\",\"aiohttp\\\\\\/\",\"Airmail\",\"akka-http\\\\\\/\",\"akula\\\\\\/\",\"alertra\",\"alexa site audit\",\"Alibaba\\\\.Security\\\\.Heimdall\",\"Alligator\",\"allloadin\",\"AllSubmitter\",\"alyze\\\\.info\",\"amagit\",\"^Amazon Simple Notification Service Agent$\",\"Anarchie\",\"AndroidDownloadManager\",\"Anemone\",\"AngleSharp\",\"annotate_google\",\"Ant\\\\.com\",\"Anturis Agent\",\"AnyEvent-HTTP\\\\\\/\",\"Apache Droid\",\"Apache OpenOffice\",\"Apache-HttpAsyncClient\",\"Apache-HttpClient\",\"ApacheBench\",\"Apexoo\",\"APIs-Google\",\"AportWorm\\\\\\/\",\"AppBeat\\\\\\/\",\"AppEngine-Google\",\"AppleSyndication\",\"Aprc\\\\\\/[0-9]\",\"Arachmo\",\"arachnode\",\"Arachnophilia\",\"aria2\",\"Arukereso\",\"asafaweb\",\"AskQuickly\",\"Ask Jeeves\",\"ASPSeek\",\"Asterias\",\"Astute\",\"asynchttp\",\"Attach\",\"attohttpc\",\"autocite\",\"AutomaticWPTester\",\"Autonomy\",\"axios\\\\\\/\",\"AWS Security Scanner\",\"B-l-i-t-z-B-O-T\",\"Backlink-Ceck\",\"backlink-check\",\"BacklinkHttpStatus\",\"BackStreet\",\"BackWeb\",\"Bad-Neighborhood\",\"Badass\",\"baidu\\\\.com\",\"Bandit\",\"basicstate\",\"BatchFTP\",\"Battleztar Bazinga\",\"baypup\\\\\\/\",\"BazQux\",\"BBBike\",\"BCKLINKS\",\"BDFetch\",\"BegunAdvertising\",\"Bewica-security-scan\",\"Bidtellect\",\"BigBozz\",\"Bigfoot\",\"biglotron\",\"BingLocalSearch\",\"BingPreview\",\"binlar\",\"biNu image cacher\",\"Bitacle\",\"biz_Directory\",\"Black Hole\",\"Blackboard Safeassign\",\"BlackWidow\",\"BlockNote\\\\.Net\",\"BlogBridge\",\"Bloglines\",\"Bloglovin\",\"BlogPulseLive\",\"BlogSearch\",\"Blogtrottr\",\"BlowFish\",\"boitho\\\\.com-dc\",\"Boost\\\\.Beast\",\"BPImageWalker\",\"Braintree-Webhooks\",\"Branch Metrics API\",\"Branch-Passthrough\",\"Brandprotect\",\"BrandVerity\",\"Brandwatch\",\"Brodie\\\\\\/\",\"Browsershots\",\"BUbiNG\",\"Buck\\\\\\/\",\"Buddy\",\"BuiltWith\",\"Bullseye\",\"BunnySlippers\",\"Burf Search\",\"Butterfly\\\\\\/\",\"BuzzSumo\",\"CAAM\\\\\\/[0-9]\",\"CakePHP\",\"Calculon\",\"Canary%20Mail\",\"CaretNail\",\"catexplorador\",\"CC Metadata Scaper\",\"Cegbfeieh\",\"censys\",\"Cerberian Drtrs\",\"CERT\\\\.at-Statistics-Survey\",\"cg-eye\",\"changedetection\",\"ChangesMeter\",\"Charlotte\",\"CheckHost\",\"checkprivacy\",\"CherryPicker\",\"ChinaClaw\",\"Chirp\\\\\\/\",\"chkme\\\\.com\",\"Chlooe\",\"Chromaxa\",\"CirrusExplorer\",\"CISPA Vulnerability Notification\",\"Citoid\",\"CJNetworkQuality\",\"Clarsentia\",\"clips\\\\.ua\\\\.ac\\\\.be\",\"Cloud mapping\",\"CloudEndure\",\"CloudFlare-AlwaysOnline\",\"Cloudflare-Healthchecks\",\"Cloudinary\",\"cmcm\\\\.com\",\"coccoc\",\"cognitiveseo\",\"colly -\",\"CommaFeed\",\"Commons-HttpClient\",\"commonscan\",\"contactbigdatafr\",\"contentkingapp\",\"convera\",\"CookieReports\",\"copyright sheriff\",\"CopyRightCheck\",\"Copyscape\",\"cortex\\\\\\/\",\"Cosmos4j\\\\.feedback\",\"Covario-IDS\",\"Craw\\\\\\/\",\"Crescent\",\"Crowsnest\",\"Criteo\",\"CSHttp\",\"CSSCheck\",\"curb\",\"Curious George\",\"curl\",\"cuwhois\\\\\\/\",\"cybo\\\\.com\",\"DAP\\\\\\/NetHTTP\",\"DareBoost\",\"DatabaseDriverMysqli\",\"DataCha0s\",\"Datafeedwatch\",\"Datanyze\",\"DataparkSearch\",\"dataprovider\",\"DataXu\",\"Daum(oa)?[ \\\\\\/][0-9]\",\"dBpoweramp\",\"ddline\",\"deeris\",\"delve\\\\.ai\",\"Demon\",\"DeuSu\",\"developers\\\\.google\\\\.com\\\\\\/\\\\+\\\\\\/web\\\\\\/snippet\\\\\\/\",\"Devil\",\"Digg\",\"Digincore\",\"DigitalPebble\",\"Dirbuster\",\"Discourse Forum Onebox\",\"Disqus\\\\\\/\",\"Dispatch\\\\\\/\",\"DittoSpyder\",\"dlvr\",\"DMBrowser\",\"DNSPod-reporting\",\"docoloc\",\"Dolphin http client\",\"DomainAppender\",\"DomainLabz\",\"Donuts Content Explorer\",\"dotMailer content retrieval\",\"dotSemantic\",\"downforeveryoneorjustme\",\"Download Wonder\",\"downnotifier\",\"DowntimeDetector\",\"Drip\",\"drupact\",\"Drupal \\\\(\\\\+http:\\\\\\/\\\\\\/drupal\\\\.org\\\\\\/\\\\)\",\"DTS Agent\",\"dubaiindex\",\"DuplexWeb-Google\",\"DynatraceSynthetic\",\"EARTHCOM\",\"Easy-Thumb\",\"EasyDL\",\"Ebingbong\",\"ec2linkfinder\",\"eCairn-Grabber\",\"eCatch\",\"ECCP\",\"eContext\\\\\\/\",\"Ecxi\",\"EirGrabber\",\"ElectricMonk\",\"elefent\",\"EMail Exractor\",\"EMail Wolf\",\"EmailWolf\",\"Embarcadero\",\"Embed PHP Library\",\"Embedly\",\"endo\\\\\\/\",\"europarchive\\\\.org\",\"evc-batch\",\"EventMachine HttpClient\",\"Everwall Link Expander\",\"Evidon\",\"Evrinid\",\"ExactSearch\",\"ExaleadCloudview\",\"Excel\\\\\\/\",\"exif\",\"ExoRank\",\"Exploratodo\",\"Express WebPictures\",\"Extreme Picture Finder\",\"EyeNetIE\",\"ezooms\",\"facebookexternalhit\",\"facebookexternalua\",\"facebookplatform\",\"fairshare\",\"Faraday v\",\"fasthttp\",\"Faveeo\",\"Favicon downloader\",\"faviconkit\",\"faviconarchive\",\"FavOrg\",\"Feed Wrangler\",\"Feedable\\\\\\/\",\"Feedbin\",\"FeedBooster\",\"FeedBucket\",\"FeedBunch\\\\\\/\",\"FeedBurner\",\"feeder\",\"Feedly\",\"FeedshowOnline\",\"Feedspot\",\"Feedwind\\\\\\/\",\"FeedZcollector\",\"feeltiptop\",\"Fetch API\",\"Fetch\\\\\\/[0-9]\",\"Fever\\\\\\/[0-9]\",\"FHscan\",\"Filestack\",\"Fimap\",\"findlink\",\"findthatfile\",\"FlashGet\",\"FlipboardBrowserProxy\",\"FlipboardProxy\",\"FlipboardRSS\",\"Flock\\\\\\/\",\"fluffy\",\"Flunky\",\"flynxapp\",\"forensiq\",\"FoundSeoTool\",\"http:\\\\\\/\\\\\\/www.neomo.de\\\\\\/\",\"free thumbnails\",\"Freeuploader\",\"Funnelback\",\"Fuzz Faster U Fool\",\"G-i-g-a-b-o-t\",\"g00g1e\\\\.net\",\"ganarvisitas\",\"geek-tools\",\"Genieo\",\"GentleSource\",\"GetCode\",\"Getintent\",\"GetLinkInfo\",\"getprismatic\",\"GetRight\",\"getroot\",\"GetURLInfo\\\\\\/\",\"GetWeb\",\"Geziyor\",\"Ghost Inspector\",\"GigablastOpenSource\",\"GIS-LABS\",\"github-camo\",\"github\\\\.com\",\"Goldfire Server\",\"Go [\\\\d\\\\.]* package http\",\"Go http package\",\"Go-Ahead-Got-It\",\"Go-http-client\",\"Go!Zilla\",\"gobyus\",\"gofetch\",\"GomezAgent\",\"gooblog\",\"Goodzer\\\\\\/\",\"Google AppsViewer\",\"Google Desktop\",\"Google favicon\",\"Google Keyword Suggestion\",\"Google Keyword Tool\",\"Google Page Speed Insights\",\"Google PP Default\",\"Google Search Console\",\"Google Web Preview\",\"Google-Ads-Overview\",\"Google-Adwords\",\"Google-Apps-Script\",\"Google-Calendar-Importer\",\"Google-HotelAdsVerifier\",\"Google-HTTP-Java-Client\",\"Google-Publisher-Plugin\",\"Google-Read-Aloud\",\"Google-SearchByImage\",\"Google-Site-Verification\",\"Google-speakr\",\"Google-Structured-Data-Testing-Tool\",\"Google-Youtube-Links\",\"google-xrawler\",\"GoogleDocs\",\"GoogleHC\\\\\\/\",\"GoogleProducer\",\"GoogleSites\",\"Google-Transparency-Report\",\"Gookey\",\"GoSpotCheck\",\"gosquared-thumbnailer\",\"Gotit\",\"GoZilla\",\"grabify\",\"GrabNet\",\"Grafula\",\"Grammarly\",\"GrapeFX\",\"GreatNews\",\"Gregarius\",\"GRequests\",\"grokkit\",\"grouphigh\",\"grub-client\",\"gSOAP\\\\\\/\",\"GT::WWW\",\"GTmetrix\",\"GuzzleHttp\",\"gvfs\\\\\\/\",\"HAA(A)?RTLAND http client\",\"Haansoft\",\"hackney\\\\\\/\",\"Hadi Agent\",\"HappyApps-WebCheck\",\"Hatena\",\"Havij\",\"HaxerMen\",\"HeadlessChrome\",\"HEADMasterSEO\",\"HeartRails_Capture\",\"help@dataminr\\\\.com\",\"heritrix\",\"Hexometer\",\"historious\",\"hkedcity\",\"hledejLevne\\\\.cz\",\"Hloader\",\"HMView\",\"Holmes\",\"HonesoSearchEngine\",\"HootSuite Image proxy\",\"Hootsuite-WebFeed\",\"hosterstats\",\"HostTracker\",\"ht:\\\\\\/\\\\\\/check\",\"htdig\",\"HTMLparser\",\"htmlyse\",\"HTTP Banner Detection\",\"HTTP_Compression_Test\",\"http_request2\",\"http_requester\",\"http-get\",\"HTTP-Header-Abfrage\",\"http-kit\",\"http-request\\\\\\/\",\"HTTP-Tiny\",\"HTTP::Lite\",\"http\\\\.rb\\\\\\/\",\"http_get\",\"HttpComponents\",\"httphr\",\"HTTPMon\",\"HTTPie\",\"httpRequest\",\"httpscheck\",\"httpssites_power\",\"httpunit\",\"HttpUrlConnection\",\"httrack\",\"huaweisymantec\",\"HubSpot \",\"Humanlinks\",\"i2kconnect\\\\\\/\",\"Iblog\",\"ichiro\",\"Id-search\",\"IdeelaborPlagiaat\",\"IDG Twitter Links Resolver\",\"IDwhois\\\\\\/\",\"Iframely\",\"igdeSpyder\",\"IlTrovatore\",\"Image Fetch\",\"Image Sucker\",\"ImageEngine\\\\\\/\",\"ImageVisu\\\\\\/\",\"Imagga\",\"imagineeasy\",\"imgsizer\",\"InAGist\",\"inbound\\\\.li parser\",\"InDesign%20CC\",\"Indy Library\",\"InetURL\",\"infegy\",\"infohelfer\",\"InfoTekies\",\"InfoWizards Reciprocal Link\",\"inpwrd\\\\.com\",\"instabid\",\"Instapaper\",\"Integrity\",\"integromedb\",\"Intelliseek\",\"InterGET\",\"internet_archive\",\"Internet Ninja\",\"InternetSeer\",\"internetVista monitor\",\"internetwache\",\"intraVnews\",\"IODC\",\"IOI\",\"iplabel\",\"ips-agent\",\"IPS\\\\\\/[0-9]\",\"IPWorks HTTP\\\\\\/S Component\",\"iqdb\\\\\\/\",\"Iria\",\"Irokez\",\"isitup\\\\.org\",\"iskanie\",\"isUp\\\\.li\",\"iThemes Sync\\\\\\/\",\"IZaBEE\",\"iZSearch\",\"JAHHO\",\"janforman\",\"Jaunt\\\\\\/\",\"Jbrofuzz\",\"Jersey\\\\\\/\",\"JetCar\",\"Jigsaw\",\"Jobboerse\",\"JobFeed discovery\",\"Jobg8 URL Monitor\",\"jobo\",\"Jobrapido\",\"Jobsearch1\\\\.5\",\"JoinVision Generic\",\"JolokiaPwn\",\"Joomla\",\"Jorgee\",\"JS-Kit\",\"JustView\",\"Kaspersky Lab CFR link resolver\",\"Kelny\\\\\\/\",\"Kerrigan\\\\\\/\",\"KeyCDN\",\"Keyword Density\",\"Keywords Research\",\"khttp\\\\\\/\",\"KickFire\",\"KimonoLabs\\\\\\/\",\"Kml-Google\",\"knows\\\\.is\",\"KOCMOHABT\",\"kouio\",\"kubectl\",\"kube-probe\",\"kulturarw3\",\"KumKie\",\"L\\\\.webis\",\"Larbin\",\"Lavf\\\\\\/\",\"LeechFTP\",\"LeechGet\",\"letsencrypt\",\"Lftp\",\"LibVLC\",\"LibWeb\",\"Libwhisker\",\"libwww\",\"Licorne\",\"Liferea\\\\\\/\",\"Lightspeedsystems\",\"Lighthouse\",\"Likse\",\"limber\\\\.io\",\"Link Valet\",\"link_thumbnailer\",\"LinkAlarm\\\\\\/\",\"linkCheck\",\"linkdex\",\"LinkExaminer\",\"linkfluence\",\"linkpeek\",\"LinkPreviewGenerator\",\"LinkScan\",\"LinksManager\",\"LinkTiger\",\"LinkWalker\",\"Lipperhey\",\"Litemage_walker\",\"livedoor ScreenShot\",\"LoadImpactRload\",\"localsearch-web\",\"LongURL API\",\"longurl-r-package\",\"looid\\\\.com\",\"looksystems\\\\.net\",\"ltx71\",\"lua-resty-http\",\"lwp-request\",\"lwp-trivial\",\"LWP::Simple\",\"lycos\",\"LYT\\\\.SR\",\"mabontland\",\"Mag-Net\",\"MagpieRSS\",\"Mail\\\\.Ru\",\"MailChimp\",\"Majestic12\",\"makecontact\\\\\\/\",\"Mandrill\",\"MapperCmd\",\"marketinggrader\",\"MarkMonitor\",\"MarkWatch\",\"Mass Downloader\",\"masscan\\\\\\/\",\"Mata Hari\",\"Mediametric\",\"Mediapartners-Google\",\"mediawords\",\"MegaIndex\\\\.ru\",\"MeltwaterNews\",\"Melvil Rawi\",\"MemGator\",\"Metaspinner\",\"MetaURI\",\"MFC_Tear_Sample\",\"MicroMessenger\\\\\\/\",\"Microsearch\",\"Microsoft Office \",\"Microsoft Outlook\",\"Microsoft Windows Network Diagnostics\",\"Microsoft-WebDAV-MiniRedir\",\"Microsoft Data Access\",\"MIDown tool\",\"MIIxpc\",\"Mindjet\",\"Miniature\\\\.io\",\"Miniflux\",\"Mister PiX\",\"mixdata dot com\",\"mixed-content-scan\",\"Mixmax-LinkPreview\",\"mixnode\",\"Mnogosearch\",\"mogimogi\",\"Mojeek\",\"Mojolicious \\\\(Perl\\\\)\",\"Monit\\\\\\/\",\"monitis\",\"Monitority\\\\\\/\",\"montastic\",\"MonTools\",\"Moreover\",\"Morfeus Fucking Scanner\",\"Morning Paper\",\"MovableType\",\"mowser\",\"Mr\\\\.4x3 Powered\",\"Mrcgiguy\",\"MS Web Services Client Protocol\",\"MSFrontPage\",\"mShots\",\"MuckRack\\\\\\/\",\"muhstik-scan\",\"MVAClient\",\"MxToolbox\\\\\\/\",\"nagios\",\"Najdi\\\\.si\",\"Name Intelligence\",\"Nameprotect\",\"Navroad\",\"NearSite\",\"Needle\",\"Nessus\",\"Net Vampire\",\"NetAnts\",\"NETCRAFT\",\"NetLyzer\",\"NetMechanic\",\"NetNewsWire\",\"Netpursual\",\"netresearch\",\"NetShelter ContentScan\",\"Netsparker\",\"NetTrack\",\"Netvibes\",\"NetZIP\",\"Neustar WPM\",\"NeutrinoAPI\",\"NewRelicPinger\",\"NewsBlur .*Finder\",\"NewsGator\",\"newsme\",\"newspaper\\\\\\/\",\"NetSystemsResearch\",\"Nexgate Ruby Client\",\"NG-Search\",\"Nibbler\",\"NICErsPRO\",\"Nikto\",\"nineconnections\",\"NLNZ_IAHarvester\",\"Nmap Scripting Engine\",\"node-superagent\",\"node-urllib\",\"node\\\\.io\",\"Nodemeter\",\"NodePing\",\"nominet\\\\.org\\\\.uk\",\"nominet\\\\.uk\",\"Norton-Safeweb\",\"Notifixious\",\"notifyninja\",\"NotionEmbedder\",\"nuhk\",\"nutch\",\"Nuzzel\",\"nWormFeedFinder\",\"nyawc\\\\\\/\",\"Nymesis\",\"NYU\",\"Ocelli\\\\\\/\",\"Octopus\",\"oegp\",\"Offline Explorer\",\"Offline Navigator\",\"OgScrper\",\"okhttp\",\"omgili\",\"OMSC\",\"Online Domain Tools\",\"OpenCalaisSemanticProxy\",\"Openfind\",\"OpenLinkProfiler\",\"Openstat\\\\\\/\",\"OpenVAS\",\"OPPO A33\",\"Optimizer\",\"Orbiter\",\"OrgProbe\\\\\\/\",\"orion-semantics\",\"Outlook-Express\",\"Outlook-iOS\",\"ow\\\\.ly\",\"Owler\",\"ownCloud News\",\"OxfordCloudService\",\"Page Valet\",\"page_verifier\",\"page scorer\",\"page2rss\",\"PageFreezer\",\"PageGrabber\",\"PagePeeker\",\"PageScorer\",\"Pagespeed\\\\\\/\",\"Panopta\",\"panscient\",\"Papa Foto\",\"parsijoo\",\"Pavuk\",\"PayPal IPN\",\"pcBrowser\",\"Pcore-HTTP\",\"Pearltrees\",\"PECL::HTTP\",\"peerindex\",\"Peew\",\"PeoplePal\",\"Perlu -\",\"PhantomJS Screenshoter\",\"PhantomJS\\\\\\/\",\"Photon\\\\\\/\",\"phpservermon\",\"Pi-Monster\",\"Picscout\",\"Picsearch\",\"PictureFinder\",\"Pimonster\",\"ping\\\\.blo\\\\.gs\",\"Pingability\",\"PingAdmin\\\\.Ru\",\"Pingdom\",\"Pingoscope\",\"PingSpot\",\"pinterest\\\\.com\",\"Pixray\",\"Pizilla\",\"Plagger\\\\\\/\",\"Ploetz \\\\+ Zeller\",\"Plukkie\",\"plumanalytics\",\"PocketImageCache\",\"PocketParser\",\"Pockey\",\"POE-Component-Client-HTTP\",\"Polymail\\\\\\/\",\"Pompos\",\"Porkbun\",\"Port Monitor\",\"postano\",\"PostmanRuntime\",\"PostPost\",\"postrank\",\"PowerPoint\\\\\\/\",\"Prebid\",\"Priceonomics Analysis Engine\",\"PrintFriendly\",\"PritTorrent\",\"Prlog\",\"probethenet\",\"Project 25499\",\"prospectb2b\",\"Protopage\",\"ProWebWalker\",\"proximic\",\"PRTG Network Monitor\",\"pshtt, https scanning\",\"PTST \",\"PTST\\\\\\/[0-9]+\",\"Pump\",\"python-httpx\",\"Python-httplib2\",\"python-requests\",\"Python-urllib\",\"Qirina Hurdler\",\"QQDownload\",\"QrafterPro\",\"Qseero\",\"Qualidator\",\"QueryN Metasearch\",\"queuedriver\",\"Quora Link Preview\",\"Qwantify\",\"Radian6\",\"RankActive\",\"RankFlex\",\"RankSonicSiteAuditor\",\"Re-re Studio\",\"ReactorNetty\",\"Readability\",\"RealDownload\",\"RealPlayer%20Downloader\",\"RebelMouse\",\"Recorder\",\"RecurPost\\\\\\/\",\"redback\\\\\\/\",\"ReederForMac\",\"Reeder\\\\\\/\",\"ReGet\",\"RepoMonkey\",\"request\\\\.js\",\"reqwest\\\\\\/\",\"ResponseCodeTest\",\"RestSharp\",\"Riddler\",\"Rival IQ\",\"Robosourcer\",\"Robozilla\",\"ROI Hunter\",\"RPT-HTTPClient\",\"RSSOwl\",\"RyowlEngine\",\"safe-agent-scanner\",\"SalesIntelligent\",\"Saleslift\",\"Sendsay\\\\.Ru\",\"SauceNAO\",\"SBIder\",\"sc-downloader\",\"scalaj-http\",\"Scamadviser-Frontend\",\"scan\\\\.lol\",\"ScanAlert\",\"Scoop\",\"scooter\",\"ScoutJet\",\"ScoutURLMonitor\",\"ScrapeBox Page Scanner\",\"Scrapy\",\"Screaming\",\"ScreenShotService\",\"Scrubby\",\"Scrutiny\\\\\\/\",\"search\\\\.thunderstone\",\"Search37\",\"searchenginepromotionhelp\",\"Searchestate\",\"SearchExpress\",\"SearchSight\",\"Seeker\",\"semanticdiscovery\",\"semanticjuice\",\"Semiocast HTTP client\",\"Semrush\",\"sentry\\\\\\/\",\"SEO Browser\",\"Seo Servis\",\"seo-nastroj\\\\.cz\",\"seo4ajax\",\"Seobility\",\"SEOCentro\",\"SeoCheck\",\"SEOkicks\",\"SEOlizer\",\"Seomoz\",\"SEOprofiler\",\"SEOsearch\",\"seoscanners\",\"seositecheckup\",\"SEOstats\",\"servernfo\",\"sexsearcher\",\"Seznam\",\"Shelob\",\"Shodan\",\"Shoppimon\",\"ShopWiki\",\"shortURL lengthener\",\"ShortLinkTranslate\",\"shrinktheweb\",\"Sideqik\",\"SimplePie\",\"SimplyFast\",\"Siphon\",\"SISTRIX\",\"Site-Shot\\\\\\/\",\"Site Sucker\",\"Site24x7\",\"SiteBar\",\"Sitebeam\",\"Sitebulb\\\\\\/\",\"SiteCondor\",\"SiteExplorer\",\"SiteGuardian\",\"Siteimprove\",\"SiteIndexed\",\"Sitemap(s)? Generator\",\"SitemapGenerator\",\"SiteMonitor\",\"Siteshooter B0t\",\"SiteSnagger\",\"SiteSucker\",\"SiteTruth\",\"Sitevigil\",\"sitexy\\\\.com\",\"SkypeUriPreview\",\"Slack\\\\\\/\",\"slider\\\\.com\",\"slurp\",\"SlySearch\",\"SmartDownload\",\"SMRF URL Expander\",\"SMUrlExpander\",\"Snake\",\"Snappy\",\"SnapSearch\",\"Snarfer\\\\\\/\",\"SniffRSS\",\"sniptracker\",\"Snoopy\",\"SnowHaze Search\",\"sogou web\",\"SortSite\",\"Sottopop\",\"sovereign\\\\.ai\",\"SpaceBison\",\"SpamExperts\",\"Spammen\",\"Spanner\",\"spaziodati\",\"SPDYCheck\",\"Specificfeeds\",\"speedy\",\"SPEng\",\"Spinn3r\",\"spray-can\",\"Sprinklr \",\"spyonweb\",\"sqlmap\",\"Sqlworm\",\"Sqworm\",\"SSL Labs\",\"ssl-tools\",\"StackRambler\",\"Statastico\\\\\\/\",\"StatusCake\",\"Steeler\",\"Stratagems Kumo\",\"Stroke\\\\.cz\",\"StudioFACA\",\"StumbleUpon\",\"suchen\",\"Sucuri\",\"summify\",\"SuperHTTP\",\"Surphace Scout\",\"Suzuran\",\"Symfony BrowserKit\",\"Symfony2 BrowserKit\",\"SynHttpClient-Built\",\"Sysomos\",\"sysscan\",\"Szukacz\",\"T0PHackTeam\",\"tAkeOut\",\"Tarantula\\\\\\/\",\"Taringa UGC\",\"TarmotGezgin\",\"Teleport\",\"Telesoft\",\"Telesphoreo\",\"Telesphorep\",\"Tenon\\\\.io\",\"teoma\",\"terrainformatica\",\"Test Certificate Info\",\"testuri\",\"Tetrahedron\",\"TextRazor Downloader\",\"The Drop Reaper\",\"The Expert HTML Source Viewer\",\"The Knowledge AI\",\"The Intraformant\",\"theinternetrules\",\"TheNomad\",\"Thinklab\",\"Thumbshots\",\"ThumbSniper\",\"Thumbor\",\"timewe\\\\.net\",\"TinEye\",\"Tiny Tiny RSS\",\"TLSProbe\\\\\\/\",\"Toata\",\"topster\",\"touche\\\\.com\",\"Traackr\\\\.com\",\"tracemyfile\",\"Trackuity\",\"TrapitAgent\",\"Trendiction\",\"Trendsmap\",\"trendspottr\",\"truwoGPS\",\"TryJsoup\",\"TulipChain\",\"Turingos\",\"Turnitin\",\"tweetedtimes\",\"Tweetminster\",\"Tweezler\\\\\\/\",\"twibble\",\"Twice\",\"Twikle\",\"Twingly\",\"Twisted PageGetter\",\"Typhoeus\",\"ubermetrics-technologies\",\"uclassify\",\"UdmSearch\",\"unchaos\",\"unirest-java\",\"UniversalFeedParser\",\"Unshorten\\\\.It\",\"Untiny\",\"UnwindFetchor\",\"updated\",\"updown\\\\.io daemon\",\"Upflow\",\"Uptimia\",\"Urlcheckr\",\"URL Verifier\",\"URLitor\",\"urlresolver\",\"Urlstat\",\"URLTester\",\"UrlTrends Ranking Updater\",\"URLy Warning\",\"URLy\\\\.Warning\",\"Vacuum\",\"Vagabondo\",\"VB Project\",\"vBSEO\",\"VCI\",\"via ggpht\\\\.com GoogleImageProxy\",\"Virusdie\",\"visionutils\",\"vkShare\",\"VoidEYE\",\"Voil\",\"voltron\",\"voyager\\\\\\/\",\"VSAgent\\\\\\/\",\"VSB-TUO\\\\\\/\",\"Vulnbusters Meter\",\"VYU2\",\"w3af\\\\.org\",\"W3C_Unicorn\",\"W3C-checklink\",\"W3C-mobileOK\",\"WAC-OFU\",\"Wallpapers\\\\\\/[0-9]+\",\"WallpapersHD\",\"wangling\",\"Wappalyzer\",\"WatchMouse\",\"WbSrch\\\\\\/\",\"WDT\\\\.io\",\"web-capture\\\\.net\",\"Web-sniffer\",\"Web Auto\",\"Web Collage\",\"Web Enhancer\",\"Web Fetch\",\"Web Fuck\",\"Web Pix\",\"Web Sauger\",\"Web spyder\",\"Web Sucker\",\"Webalta\",\"Webauskunft\",\"WebAuto\",\"WebCapture\",\"WebClient\\\\\\/\",\"webcollage\",\"WebCookies\",\"WebCopier\",\"WebCorp\",\"WebDataStats\",\"WebDoc\",\"WebEnhancer\",\"WebFetch\",\"WebFuck\",\"WebGazer\",\"WebGo IS\",\"WebImageCollector\",\"WebImages\",\"WebIndex\",\"webkit2png\",\"WebLeacher\",\"webmastercoffee\",\"webmon \",\"WebPix\",\"WebReaper\",\"WebSauger\",\"webscreenie\",\"Webshag\",\"Webshot\",\"Website Quester\",\"websitepulse agent\",\"WebsiteQuester\",\"Websnapr\",\"WebSniffer\",\"Webster\",\"WebStripper\",\"WebSucker\",\"Webthumb\\\\\\/\",\"WebThumbnail\",\"WebWhacker\",\"WebZIP\",\"WeLikeLinks\",\"WEPA\",\"WeSEE\",\"wf84\",\"Wfuzz\\\\\\/\",\"wget\",\"WhatsApp\",\"WhatsMyIP\",\"WhatWeb\",\"WhereGoes\\\\?\",\"Whibse\",\"WhoRunsCoinHive\",\"Whynder Magnet\",\"WinHttp-Autoproxy-Service\",\"Windows-RSS-Platform\",\"WinPodder\",\"wkhtmlto\",\"wmtips\",\"Woko\",\"Wolfram HTTPClient\",\"woorankreview\",\"Word\\\\\\/\",\"WordPress\\\\\\/\",\"worldping-api\",\"WordupinfoSearch\",\"wotbox\",\"WP Engine Install Performance API\",\"wpif\",\"wprecon\\\\.com survey\",\"WPScan\",\"wscheck\",\"Wtrace\",\"WWW-Collector-E\",\"WWW-Mechanize\",\"WWW::Document\",\"WWW::Mechanize\",\"www\\\\.monitor\\\\.us\",\"WWWOFFLE\",\"x09Mozilla\",\"x22Mozilla\",\"XaxisSemanticsClassifier\",\"Xenu Link Sleuth\",\"XING-contenttabreceiver\",\"xpymep([0-9]?)\\\\.exe\",\"Y!J-(ASR|BSC)\",\"Y\\\\!J-BRW\",\"Yaanb\",\"yacy\",\"Yahoo Link Preview\",\"YahooCacheSystem\",\"YahooYSMcm\",\"YandeG\",\"Yandex(?!Search)\",\"yanga\",\"yeti\",\"Yo-yo\",\"Yoleo Consumer\",\"yoogliFetchAgent\",\"YottaaMonitor\",\"Your-Website-Sucks\",\"yourls\\\\.org\",\"YoYs\\\\.net\",\"YP\\\\.PL\",\"Zabbix\",\"Zade\",\"Zao\",\"Zauba\",\"Zemanta Aggregator\",\"Zend_Http_Client\",\"Zend\\\\\\\\Http\\\\\\\\Client\",\"Zermelo\",\"Zeus \",\"zgrab\",\"ZnajdzFoto\",\"ZnHTTP\",\"Zombie\\\\.js\",\"Zoom\\\\.Mac\",\"ZyBorg\",\"[a-z0-9\\\\-_]*(bot|crawl|archiver|transcoder|spider|uptime|validator|fetcher|cron|checker|reader|extractor|monitoring|analyzer|scraper)\"];\r\n\t}\r\n}\r\n\r\nmodule.exports = Crawlers;","'use strict';\r\n\r\nconst Provider = require(\"./provider\");\r\n\r\nclass Exclusions extends Provider\r\n{\r\n\tconstructor()\r\n\t{\r\n\t\tsuper();\r\n\r\n\t\tthis.data = [\"Safari.[\\\\d\\\\.]*\",\"Firefox.[\\\\d\\\\.]*\",\" Chrome.[\\\\d\\\\.]*\",\"Chromium.[\\\\d\\\\.]*\",\"MSIE.[\\\\d\\\\.]\",\"Opera\\\\\\/[\\\\d\\\\.]*\",\"Mozilla.[\\\\d\\\\.]*\",\"AppleWebKit.[\\\\d\\\\.]*\",\"Trident.[\\\\d\\\\.]*\",\"Windows NT.[\\\\d\\\\.]*\",\"Android [\\\\d\\\\.]*\",\"Macintosh.\",\"Ubuntu\",\"Linux\",\"[ ]Intel\",\"Mac OS X [\\\\d_]*\",\"(like )?Gecko(.[\\\\d\\\\.]*)?\",\"KHTML,\",\"CriOS.[\\\\d\\\\.]*\",\"CPU iPhone OS ([0-9_])* like Mac OS X\",\"CPU OS ([0-9_])* like Mac OS X\",\"iPod\",\"compatible\",\"x86_..\",\"i686\",\"x64\",\"X11\",\"rv:[\\\\d\\\\.]*\",\"Version.[\\\\d\\\\.]*\",\"WOW64\",\"Win64\",\"Dalvik.[\\\\d\\\\.]*\",\" \\\\.NET CLR [\\\\d\\\\.]*\",\"Presto.[\\\\d\\\\.]*\",\"Media Center PC\",\"BlackBerry\",\"Build\",\"Opera Mini\\\\\\/\\\\d{1,2}\\\\.\\\\d{1,2}\\\\.[\\\\d\\\\.]*\\\\\\/\\\\d{1,2}\\\\.\",\"Opera\",\" \\\\.NET[\\\\d\\\\.]*\",\"cubot\",\"; M bot\",\"; CRONO\",\"; B bot\",\"; IDbot\",\"; ID bot\",\"; POWER BOT\",\";\"];\r\n\t}\r\n}\r\n\r\nmodule.exports = Exclusions;","'use strict';\r\n\r\nconst Provider = require(\"./provider\");\r\n\r\nclass Headers extends Provider\r\n{\r\n\tconstructor()\r\n\t{\r\n\t\tsuper();\r\n\r\n\t\tthis.data = [\"USER-AGENT\",\"X-OPERAMINI-PHONE-UA\",\"X-DEVICE-USER-AGENT\",\"X-ORIGINAL-USER-AGENT\",\"X-SKYFIRE-PHONE\",\"X-BOLT-PHONE-UA\",\"DEVICE-STOCK-UA\",\"X-UCBROWSER-DEVICE-UA\",\"FROM\",\"X-SCANNER\"];\r\n\t}\r\n}\r\n\r\nmodule.exports = Headers;"],"sourceRoot":""}