codekingpro/portable-devtools
114k
1# -*- coding: utf-8 -*-2############################################3# NOTICE: This file is autogenerated from #4# regexes.yaml. Do not edit by hand, #5# instead, re-run `setup.py build_regexes` #6############################################7 8from __future__ import absolute_import, unicode_literals9from .user_agent_parser import (10 UserAgentParser, DeviceParser, OSParser,11)12 13__all__ = ('USER_AGENT_PARSERS', 'DEVICE_PARSERS', 'OS_PARSERS')14 15USER_AGENT_PARSERS = [16 UserAgentParser(17 '(GeoEvent Server) (\\d+)(?:\\.(\\d+)(?:\\.(\\d+)|)|)',18 ),19 UserAgentParser(20 '(ArcGIS Pro)(?: (\\d+)\\.(\\d+)\\.([^ ]+)|)',21 ),22 UserAgentParser(23 'ArcGIS Client Using WinInet',24 'ArcMap',25 ),26 UserAgentParser(27 '(OperationsDashboard)-(?:Windows)-(\\d+)\\.(\\d+)\\.(\\d+)',28 'Operations Dashboard for ArcGIS',29 ),30 UserAgentParser(31 '(arcgisearth)/(\\d+)\\.(\\d+)(?:\\.(\\d+)|)',32 'ArcGIS Earth',33 ),34 UserAgentParser(35 'com.esri.(earth).phone/(\\d+)\\.(\\d+)(?:\\.(\\d+)|)',36 'ArcGIS Earth',37 ),38 UserAgentParser(39 '(arcgis-explorer)/(\\d+)\\.(\\d+)\\.(\\d+)',40 'Explorer for ArcGIS',41 ),42 UserAgentParser(43 'arcgis-(collector|aurora)/(\\d+)\\.(\\d+)\\.(\\d+)',44 'Collector for ArcGIS',45 ),46 UserAgentParser(47 '(arcgis-workforce)/(\\d+)\\.(\\d+)\\.(\\d+)',48 'Workforce for ArcGIS',49 ),50 UserAgentParser(51 '(Collector|Explorer|Workforce)-(?:Android|iOS)-(\\d+)\\.(\\d+)(?:\\.(\\d+)|)',52 '$1 for ArcGIS',53 ),54 UserAgentParser(55 '(Explorer|Collector)/(\\d+) CFNetwork',56 '$1 for ArcGIS',57 ),58 UserAgentParser(59 'ArcGISRuntime-(Android|iOS|NET|Qt)/(\\d+)\\.(\\d+)(?:\\.(\\d+)|)',60 'ArcGIS Runtime SDK for $1',61 ),62 UserAgentParser(63 'ArcGIS\\.?(iOS|Android|NET|Qt)(?:-|\\.)(\\d+)\\.(\\d+)(?:\\.(\\d+)|)',64 'ArcGIS Runtime SDK for $1',65 ),66 UserAgentParser(67 'ArcGIS\\.Runtime\\.(Qt)\\.(\\d+)\\.(\\d+)(?:\\.(\\d+)|)',68 'ArcGIS Runtime SDK for $1',69 ),70 UserAgentParser(71 '^(Luminary)[Stage]+/(\\d+) CFNetwork',72 ),73 UserAgentParser(74 '(ESPN)[%20| ]+Radio/(\\d+)\\.(\\d+)\\.(\\d+) CFNetwork',75 ),76 UserAgentParser(77 '(Antenna)/(\\d+) CFNetwork',78 'AntennaPod',79 ),80 UserAgentParser(81 '(TopPodcasts)Pro/(\\d+) CFNetwork',82 ),83 UserAgentParser(84 '(MusicDownloader)Lite/(\\d+)\\.(\\d+)\\.(\\d+) CFNetwork',85 ),86 UserAgentParser(87 '^(.{0,200})-iPad\\/(\\d+)(?:\\.(\\d+)|)(?:\\.(\\d+)|)(?:\\.(\\d+)|) CFNetwork',88 ),89 UserAgentParser(90 '^(.{0,200})-iPhone/(\\d+)(?:\\.(\\d+)|)(?:\\.(\\d+)|)(?:\\.(\\d+)|) CFNetwork',91 ),92 UserAgentParser(93 '^(.{0,200})/(\\d+)(?:\\.(\\d+)|)(?:\\.(\\d+)|)(?:\\.(\\d+)|) CFNetwork',94 ),95 UserAgentParser(96 '^(Luminary)/(\\d+)(?:\\.(\\d+)|)(?:\\.(\\d+)|)',97 ),98 UserAgentParser(99 '(espn\\.go)',100 'ESPN',101 ),102 UserAgentParser(103 '(espnradio\\.com)',104 'ESPN',105 ),106 UserAgentParser(107 'ESPN APP$',108 'ESPN',109 ),110 UserAgentParser(111 '(audioboom\\.com)',112 'AudioBoom',113 ),114 UserAgentParser(115 ' (Rivo) RHYTHM',116 ),117 UserAgentParser(118 '(CFNetwork)(?:/(\\d+)\\.(\\d+)(?:\\.(\\d+)|)|)',119 'CFNetwork',120 ),121 UserAgentParser(122 '(Pingdom\\.com_bot_version_)(\\d+)\\.(\\d+)',123 'PingdomBot',124 ),125 UserAgentParser(126 '(PingdomTMS)/(\\d+)\\.(\\d+)\\.(\\d+)',127 'PingdomBot',128 ),129 UserAgentParser(130 '(PingdomPageSpeed)/(\\d+)\\.(\\d+)',131 'PingdomBot',132 ),133 UserAgentParser(134 ' (PTST)/(\\d+)(?:\\.(\\d+)|)$',135 'WebPageTest.org bot',136 ),137 UserAgentParser(138 'X11; (Datanyze); Linux',139 ),140 UserAgentParser(141 '(NewRelicPinger)/(\\d+)\\.(\\d+)',142 'NewRelicPingerBot',143 ),144 UserAgentParser(145 '(Tableau)/(\\d+)\\.(\\d+)',146 'Tableau',147 ),148 UserAgentParser(149 'AppleWebKit/\\d{1,10}\\.\\d{1,10}.{0,200} Safari.{0,200} (CreativeCloud)/(\\d+)\\.(\\d+).(\\d+)',150 'Adobe CreativeCloud',151 ),152 UserAgentParser(153 '(Salesforce)(?:.)\\/(\\d+)\\.(\\d?)',154 ),155 UserAgentParser(156 '(\\(StatusCake\\))',157 'StatusCakeBot',158 ),159 UserAgentParser(160 '(facebookexternalhit)/(\\d+)\\.(\\d+)',161 'FacebookBot',162 ),163 UserAgentParser(164 'Google.{0,50}/\\+/web/snippet',165 'GooglePlusBot',166 ),167 UserAgentParser(168 'via ggpht\\.com GoogleImageProxy',169 'GmailImageProxy',170 ),171 UserAgentParser(172 'YahooMailProxy; https://help\\.yahoo\\.com/kb/yahoo-mail-proxy-SLN28749\\.html',173 'YahooMailProxy',174 ),175 UserAgentParser(176 '(Twitterbot)/(\\d+)\\.(\\d+)',177 'Twitterbot',178 ),179 UserAgentParser(180 '/((?:Ant-|)Nutch|[A-z]+[Bb]ot|[A-z]+[Ss]pider|Axtaris|fetchurl|Isara|ShopSalad|Tailsweep)[ \\-](\\d+)(?:\\.(\\d+)|)(?:\\.(\\d+)|)',181 ),182 UserAgentParser(183 '\\b(008|Altresium|Argus|BaiduMobaider|BoardReader|DNSGroup|DataparkSearch|EDI|Goodzer|Grub|INGRID|Infohelfer|LinkedInBot|LOOQ|Nutch|OgScrper|Pandora|PathDefender|Peew|PostPost|Steeler|Twitterbot|VSE|WebCrunch|WebZIP|Y!J-BR[A-Z]|YahooSeeker|envolk|sproose|wminer)/(\\d+)(?:\\.(\\d+)|)(?:\\.(\\d+)|)',184 ),185 UserAgentParser(186 '(MSIE) (\\d+)\\.(\\d+)([a-z]\\d|[a-z]|);.{0,200} MSIECrawler',187 'MSIECrawler',188 ),189 UserAgentParser(190 '(DAVdroid)/(\\d+)\\.(\\d+)(?:\\.(\\d+)|)',191 ),192 UserAgentParser(193 '(Google-HTTP-Java-Client|Apache-HttpClient|PostmanRuntime|Go-http-client|scalaj-http|http%20client|Python-urllib|HttpMonitor|TLSProber|WinHTTP|JNLP|okhttp|aihttp|reqwest|axios|unirest-(?:java|python|ruby|nodejs|php|net))(?:[ /](\\d+)(?:\\.(\\d+)|)(?:\\.(\\d+)|)|)',194 ),195 UserAgentParser(196 '(Pinterest(?:bot|))/(\\d+)(?:\\.(\\d+)|)(?:\\.(\\d+)|)[;\\s(]+\\+https://www.pinterest.com/bot.html',197 'Pinterestbot',198 ),199 UserAgentParser(200 '(CSimpleSpider|Cityreview Robot|CrawlDaddy|CrawlFire|Finderbots|Index crawler|Job Roboter|KiwiStatus Spider|Lijit Crawler|QuerySeekerSpider|ScollSpider|Trends Crawler|USyd-NLP-Spider|SiteCat Webbot|BotName\\/\\$BotVersion|123metaspider-Bot|1470\\.net crawler|50\\.nu|8bo Crawler Bot|Aboundex|Accoona-[A-z]{1,30}-Agent|AdsBot-Google(?:-[a-z]{1,30}|)|altavista|AppEngine-Google|archive.{0,30}\\.org_bot|archiver|Ask Jeeves|[Bb]ai[Dd]u[Ss]pider(?:-[A-Za-z]{1,30})(?:-[A-Za-z]{1,30}|)|bingbot|BingPreview|blitzbot|BlogBridge|Bloglovin|BoardReader Blog Indexer|BoardReader Favicon Fetcher|boitho.com-dc|BotSeer|BUbiNG|\\b\\w{0,30}favicon\\w{0,30}\\b|\\bYeti(?:-[a-z]{1,30}|)|Catchpoint(?: bot|)|[Cc]harlotte|Checklinks|clumboot|Comodo HTTP\\(S\\) Crawler|Comodo-Webinspector-Crawler|ConveraCrawler|CRAWL-E|CrawlConvera|Daumoa(?:-feedfetcher|)|Feed Seeker Bot|Feedbin|findlinks|Flamingo_SearchEngine|FollowSite Bot|furlbot|Genieo|gigabot|GomezAgent|gonzo1|(?:[a-zA-Z]{1,30}-|)Googlebot(?:-[a-zA-Z]{1,30}|)|Google SketchUp|grub-client|gsa-crawler|heritrix|HiddenMarket|holmes|HooWWWer|htdig|ia_archiver|ICC-Crawler|Icarus6j|ichiro(?:/mobile|)|IconSurf|IlTrovatore(?:-Setaccio|)|InfuzApp|Innovazion Crawler|InternetArchive|IP2[a-z]{1,30}Bot|jbot\\b|KaloogaBot|Kraken|Kurzor|larbin|LEIA|LesnikBot|Linguee Bot|LinkAider|LinkedInBot|Lite Bot|Llaut|lycos|Mail\\.RU_Bot|masscan|masidani_bot|Mediapartners-Google|Microsoft .{0,30} Bot|mogimogi|mozDex|MJ12bot|msnbot(?:-media {0,2}|)|msrbot|Mtps Feed Aggregation System|netresearch|Netvibes|NewsGator[^/]{0,30}|^NING|Nutch[^/]{0,30}|Nymesis|ObjectsSearch|OgScrper|Orbiter|OOZBOT|PagePeeker|PagesInventory|PaxleFramework|Peeplo Screenshot Bot|PHPCrawl|PlantyNet_WebRobot|Pompos|Qwantify|Read%20Later|Reaper|RedCarpet|Retreiver|Riddler|Rival IQ|scooter|Scrapy|Scrubby|searchsight|seekbot|semanticdiscovery|SemrushBot|Simpy|SimplePie|SEOstats|SimpleRSS|SiteCon|Slackbot-LinkExpanding|Slack-ImgProxy|Slurp|snappy|Speedy Spider|Squrl Java|Stringer|TheUsefulbot|ThumbShotsBot|Thumbshots\\.ru|Tiny Tiny RSS|Twitterbot|WhatsApp|URL2PNG|Vagabondo|VoilaBot|^vortex|Votay bot|^voyager|WASALive.Bot|Web-sniffer|WebThumb|WeSEE:[A-z]{1,30}|WhatWeb|WIRE|WordPress|Wotbox|www\\.almaden\\.ibm\\.com|Xenu(?:.s|) Link Sleuth|Xerka [A-z]{1,30}Bot|yacy(?:bot|)|YahooSeeker|Yahoo! Slurp|Yandex\\w{1,30}|YodaoBot(?:-[A-z]{1,30}|)|YottaaMonitor|Yowedo|^Zao|^Zao-Crawler|ZeBot_www\\.ze\\.bz|ZooShot|ZyBorg|ArcGIS Hub Indexer)(?:[ /]v?(\\d+)(?:\\.(\\d+)(?:\\.(\\d+)|)|)|)',201 ),202 UserAgentParser(203 '\\b(Boto3?|JetS3t|aws-(?:cli|sdk-(?:cpp|go|java|nodejs|ruby2?|dotnet-(?:\\d{1,2}|core)))|s3fs)/(\\d+)\\.(\\d+)(?:\\.(\\d+)|)',204 ),205 UserAgentParser(206 '(FME)\\/(\\d+\\.\\d+)\\.(\\d+)\\.(\\d+)',207 ),208 UserAgentParser(209 '(QGIS)\\/(\\d)\\.?0?(\\d{1,2})\\.?0?(\\d{1,2})',210 ),211 UserAgentParser(212 '(JOSM)/(\\d+)\\.(\\d+)',213 ),214 UserAgentParser(215 '(Tygron Platform) \\((\\d+)\\.(\\d+)\\.(\\d+(?:\\.\\d+| RC \\d+\\.\\d+))',216 ),217 UserAgentParser(218 '\\[(FBAN/MessengerForiOS|FB_IAB/MESSENGER);FBAV/(\\d+)(?:\\.(\\d+)(?:\\.(\\d+)(?:\\.(\\d+)|)|)|)',219 'Facebook Messenger',220 ),221 UserAgentParser(222 '\\[FB.{0,300};(FBAV)/(\\d+)(?:\\.(\\d+)|)(?:\\.(\\d+)|)',223 'Facebook',224 ),225 UserAgentParser(226 '\\[FB.{0,300};',227 'Facebook',228 ),229 UserAgentParser(230 '^.{0,200}?(?:\\/[A-Za-z0-9\\.]{0,50}|) {0,2}([A-Za-z0-9 \\-_\\!\\[\\]:]{0,50}(?:[Aa]rchiver|[Ii]ndexer|[Ss]craper|[Bb]ot|[Ss]pider|[Cc]rawl[a-z]{0,50}))[/ ](\\d+)(?:\\.(\\d+)(?:\\.(\\d+)|)|)',231 ),232 UserAgentParser(233 '^.{0,200}?((?:[A-Za-z][A-Za-z0-9 -]{0,50}|)[^C][^Uu][Bb]ot)\\b(?:(?:[ /]| v)(\\d+)(?:\\.(\\d+)|)(?:\\.(\\d+)|)|)',234 ),235 UserAgentParser(236 '^.{0,200}?((?:[A-z0-9]{1,50}|[A-z\\-]{1,50} ?|)(?: the |)(?:[Ss][Pp][Ii][Dd][Ee][Rr]|[Ss]crape|[Cc][Rr][Aa][Ww][Ll])[A-z0-9]{0,50})(?:(?:[ /]| v)(\\d+)(?:\\.(\\d+)|)(?:\\.(\\d+)|)|)',237 ),238 UserAgentParser(239 '(HbbTV)/(\\d+)\\.(\\d+)\\.(\\d+) \\(',240 ),241 UserAgentParser(242 '(Chimera|SeaMonkey|Camino|Waterfox)/(\\d+)\\.(\\d+)\\.?([ab]?\\d+[a-z]*|)',243 ),244 UserAgentParser(245 '(SailfishBrowser)/(\\d+)\\.(\\d+)(?:\\.(\\d+)|)',246 'Sailfish Browser',247 ),248 UserAgentParser(249 '\\[(Pinterest)/[^\\]]{1,50}\\]',250 ),251 UserAgentParser(252 '(Pinterest)(?: for Android(?: Tablet|)|)/(\\d+)(?:\\.(\\d+)|)(?:\\.(\\d+)|)',253 ),254 UserAgentParser(255 'Mozilla.{1,200}Mobile.{1,100}(Instagram).(\\d+)\\.(\\d+)\\.(\\d+)',256 ),257 UserAgentParser(258 'Mozilla.{1,200}Mobile.{1,100}(Flipboard).(\\d+)\\.(\\d+)\\.(\\d+)',259 ),260 UserAgentParser(261 'Mozilla.{1,200}Mobile.{1,100}(Flipboard-Briefing).(\\d+)\\.(\\d+)\\.(\\d+)',262 ),263 UserAgentParser(264 'Mozilla.{1,200}Mobile.{1,100}(Onefootball)\\/Android.(\\d+)\\.(\\d+)\\.(\\d+)',265 ),266 UserAgentParser(267 '(Snapchat)\\/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)',268 ),269 UserAgentParser(270 '(Twitter for (?:iPhone|iPad)|TwitterAndroid)(?:\\/(\\d+)\\.(\\d+)|)',271 'Twitter',272 ),273 UserAgentParser(274 'Mozilla.{1,200}Mobile.{1,100}(Phantom\\/ios|android).(\\d+)\\.(\\d+)\\.(\\d+)',275 'Phantom',276 ),277 UserAgentParser(278 'Mozilla.{1,100}Mobile.{1,100}(AspiegelBot|PetalBot)',279 'Spider',280 ),281 UserAgentParser(282 'AspiegelBot|PetalBot',283 'Spider',284 ),285 UserAgentParser(286 '(Firefox)/(\\d+)\\.(\\d+) Basilisk/(\\d+)',287 'Basilisk',288 ),289 UserAgentParser(290 '(PaleMoon)/(\\d+)\\.(\\d+)(?:\\.(\\d+)|)',291 'Pale Moon',292 ),293 UserAgentParser(294 '(Fennec)/(\\d+)\\.(\\d+)\\.?([ab]?\\d+[a-z]*)',295 'Firefox Mobile',296 ),297 UserAgentParser(298 '(Fennec)/(\\d+)\\.(\\d+)(pre)',299 'Firefox Mobile',300 ),301 UserAgentParser(302 '(Fennec)/(\\d+)\\.(\\d+)',303 'Firefox Mobile',304 ),305 UserAgentParser(306 '(?:Mobile|Tablet);.{0,200}(Firefox)/(\\d+)\\.(\\d+)',307 'Firefox Mobile',308 ),309 UserAgentParser(310 '(Namoroka|Shiretoko|Minefield)/(\\d+)\\.(\\d+)\\.(\\d+(?:pre|))',311 'Firefox ($1)',312 ),313 UserAgentParser(314 '(Firefox)/(\\d+)\\.(\\d+)(a\\d+[a-z]*)',315 'Firefox Alpha',316 ),317 UserAgentParser(318 '(Firefox)/(\\d+)\\.(\\d+)(b\\d+[a-z]*)',319 'Firefox Beta',320 ),321 UserAgentParser(322 '(Firefox)-(?:\\d+\\.\\d+|)/(\\d+)\\.(\\d+)(a\\d+[a-z]*)',323 'Firefox Alpha',324 ),325 UserAgentParser(326 '(Firefox)-(?:\\d+\\.\\d+|)/(\\d+)\\.(\\d+)(b\\d+[a-z]*)',327 'Firefox Beta',328 ),329 UserAgentParser(330 '(Namoroka|Shiretoko|Minefield)/(\\d+)\\.(\\d+)([ab]\\d+[a-z]*|)',331 'Firefox ($1)',332 ),333 UserAgentParser(334 '(Firefox).{0,200}Tablet browser (\\d+)\\.(\\d+)\\.(\\d+)',335 'MicroB',336 ),337 UserAgentParser(338 '(MozillaDeveloperPreview)/(\\d+)\\.(\\d+)([ab]\\d+[a-z]*|)',339 ),340 UserAgentParser(341 '(FxiOS)/(\\d+)\\.(\\d+)(\\.(\\d+)|)(\\.(\\d+)|)',342 'Firefox iOS',343 ),344 UserAgentParser(345 '(Flock)/(\\d+)\\.(\\d+)(b\\d+?)',346 ),347 UserAgentParser(348 '(RockMelt)/(\\d+)\\.(\\d+)\\.(\\d+)',349 ),350 UserAgentParser(351 '(Navigator)/(\\d+)\\.(\\d+)\\.(\\d+)',352 'Netscape',353 ),354 UserAgentParser(355 '(Navigator)/(\\d+)\\.(\\d+)([ab]\\d+)',356 'Netscape',357 ),358 UserAgentParser(359 '(Netscape6)/(\\d+)\\.(\\d+)\\.?([ab]?\\d+|)',360 'Netscape',361 ),362 UserAgentParser(363 '(MyIBrow)/(\\d+)\\.(\\d+)',364 'My Internet Browser',365 ),366 UserAgentParser(367 '(UC? ?Browser|UCWEB|U3)[ /]?(\\d+)\\.(\\d+)\\.(\\d+)',368 'UC Browser',369 ),370 UserAgentParser(371 '(Opera Tablet).{0,200}Version/(\\d+)\\.(\\d+)(?:\\.(\\d+)|)',372 ),373 UserAgentParser(374 '(Opera Mini)(?:/att|)/?(\\d+|)(?:\\.(\\d+)|)(?:\\.(\\d+)|)',375 ),376 UserAgentParser(377 '(Opera)/.{1,100}Opera Mobi.{1,100}Version/(\\d+)\\.(\\d+)',378 'Opera Mobile',379 ),380 UserAgentParser(381 '(Opera)/(\\d+)\\.(\\d+).{1,100}Opera Mobi',382 'Opera Mobile',383 ),384 UserAgentParser(385 'Opera Mobi.{1,100}(Opera)(?:/|\\s+)(\\d+)\\.(\\d+)',386 'Opera Mobile',387 ),388 UserAgentParser(389 'Opera Mobi',390 'Opera Mobile',391 ),392 UserAgentParser(393 '(Opera)/9.80.{0,200}Version/(\\d+)\\.(\\d+)(?:\\.(\\d+)|)',394 ),395 UserAgentParser(396 '(?:Mobile Safari).{1,300}(OPR)/(\\d+)\\.(\\d+)\\.(\\d+)',397 'Opera Mobile',398 ),399 UserAgentParser(400 '(?:Chrome).{1,300}(OPR)/(\\d+)\\.(\\d+)\\.(\\d+)',401 'Opera',402 ),403 UserAgentParser(404 '(Coast)/(\\d+).(\\d+).(\\d+)',405 'Opera Coast',406 ),407 UserAgentParser(408 '(OPiOS)/(\\d+).(\\d+).(\\d+)',409 'Opera Mini',410 ),411 UserAgentParser(412 'Chrome/.{1,200}( MMS)/(\\d+).(\\d+).(\\d+)',413 'Opera Neon',414 ),415 UserAgentParser(416 '(hpw|web)OS/(\\d+)\\.(\\d+)(?:\\.(\\d+)|)',417 'webOS Browser',418 ),419 UserAgentParser(420 '(luakit)',421 'LuaKit',422 ),423 UserAgentParser(424 '(Snowshoe)/(\\d+)\\.(\\d+).(\\d+)',425 ),426 UserAgentParser(427 'Gecko/\\d+ (Lightning)/(\\d+)\\.(\\d+)\\.?((?:[ab]?\\d+[a-z]*)|(?:\\d*))',428 ),429 UserAgentParser(430 '(Firefox)/(\\d+)\\.(\\d+)\\.(\\d+(?:pre|)) \\(Swiftfox\\)',431 'Swiftfox',432 ),433 UserAgentParser(434 '(Firefox)/(\\d+)\\.(\\d+)([ab]\\d+[a-z]*|) \\(Swiftfox\\)',435 'Swiftfox',436 ),437 UserAgentParser(438 '(rekonq)/(\\d+)\\.(\\d+)(?:\\.(\\d+)|) Safari',439 'Rekonq',440 ),441 UserAgentParser(442 'rekonq',443 'Rekonq',444 ),445 UserAgentParser(446 '(conkeror|Conkeror)/(\\d+)\\.(\\d+)(?:\\.(\\d+)|)',447 'Conkeror',448 ),449 UserAgentParser(450 '(konqueror)/(\\d+)\\.(\\d+)\\.(\\d+)',451 'Konqueror',452 ),453 UserAgentParser(454 '(WeTab)-Browser',455 ),456 UserAgentParser(457 '(Comodo_Dragon)/(\\d+)\\.(\\d+)\\.(\\d+)',458 'Comodo Dragon',459 ),460 UserAgentParser(461 '(Symphony) (\\d+).(\\d+)',462 ),463 UserAgentParser(464 'PLAYSTATION 3.{1,200}WebKit',465 'NetFront NX',466 ),467 UserAgentParser(468 'PLAYSTATION 3',469 'NetFront',470 ),471 UserAgentParser(472 '(PlayStation Portable)',473 'NetFront',474 ),475 UserAgentParser(476 '(PlayStation Vita)',477 'NetFront NX',478 ),479 UserAgentParser(480 'AppleWebKit.{1,200} (NX)/(\\d+)\\.(\\d+)\\.(\\d+)',481 'NetFront NX',482 ),483 UserAgentParser(484 '(Nintendo 3DS)',485 'NetFront NX',486 ),487 UserAgentParser(488 '(Silk)/(\\d+)\\.(\\d+)(?:\\.([0-9\\-]+)|)',489 'Amazon Silk',490 ),491 UserAgentParser(492 '(Puffin)/(\\d+)\\.(\\d+)(?:\\.(\\d+)|)',493 ),494 UserAgentParser(495 'Windows Phone .{0,200}(Edge)/(\\d+)\\.(\\d+)',496 'Edge Mobile',497 ),498 UserAgentParser(499 '(EdgiOS|EdgA)/(\\d+)\\.(\\d+)\\.(\\d+)(?:\\.(\\d+)|)',500 'Edge Mobile',501 ),502 UserAgentParser(503 '(OculusBrowser)/(\\d+)\\.(\\d+).0.0(?:\\.([0-9\\-]+)|)',504 'Oculus Browser',505 ),506 UserAgentParser(507 '(SamsungBrowser)/(\\d+)\\.(\\d+)',508 'Samsung Internet',509 ),510 UserAgentParser(511 '(SznProhlizec)/(\\d+)\\.(\\d+)(?:\\.(\\d+)|)',512 'Seznam prohlížeč',513 ),514 UserAgentParser(515 '(coc_coc_browser)/(\\d+)\\.(\\d+)(?:\\.(\\d+)|)',516 'Coc Coc',517 ),518 UserAgentParser(519 '(baidubrowser)[/\\s](\\d+)(?:\\.(\\d+)|)(?:\\.(\\d+)|)',520 'Baidu Browser',521 ),522 UserAgentParser(523 '(FlyFlow)/(\\d+)\\.(\\d+)',524 'Baidu Explorer',525 ),526 UserAgentParser(527 '(MxBrowser)/(\\d+)\\.(\\d+)(?:\\.(\\d+)|)',528 'Maxthon',529 ),530 UserAgentParser(531 '(Crosswalk)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)',532 ),533 UserAgentParser(534 '(Line)/(\\d+)\\.(\\d+)\\.(\\d+)',535 'LINE',536 ),537 UserAgentParser(538 '(MiuiBrowser)/(\\d+)\\.(\\d+)\\.(\\d+)',539 'MiuiBrowser',540 ),541 UserAgentParser(542 '(Mint Browser)/(\\d+)\\.(\\d+)\\.(\\d+)',543 'Mint Browser',544 ),545 UserAgentParser(546 '(TopBuzz)/(\\d+).(\\d+).(\\d+)',547 'TopBuzz',548 ),549 UserAgentParser(550 'Mozilla.{1,200}Android.{1,200}(GSA)/(\\d+)\\.(\\d+)\\.(\\d+)',551 'Google',552 ),553 UserAgentParser(554 '(MQQBrowser/Mini)(?:(\\d+)(?:\\.(\\d+)|)(?:\\.(\\d+)|)|)',555 'QQ Browser Mini',556 ),557 UserAgentParser(558 '(MQQBrowser)(?:/(\\d+)(?:\\.(\\d+)|)(?:\\.(\\d+)|)|)',559 'QQ Browser Mobile',560 ),561 UserAgentParser(562 '(QQBrowser)(?:/(\\d+)(?:\\.(\\d+)\\.(\\d+)(?:\\.(\\d+)|)|)|)',563 'QQ Browser',564 ),565 UserAgentParser(566 'Mobile.{0,200}(DuckDuckGo)/(\\d+)',567 'DuckDuckGo Mobile',568 ),569 UserAgentParser(570 '(Tenta/)(\\d+)\\.(\\d+)\\.(\\d+)',571 'Tenta Browser',572 ),573 UserAgentParser(574 'Version/.{1,300}(Chrome)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)',575 'Chrome Mobile WebView',576 ),577 UserAgentParser(578 '; wv\\).{1,300}(Chrome)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)',579 'Chrome Mobile WebView',580 ),581 UserAgentParser(582 '(CrMo)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)',583 'Chrome Mobile',584 ),585 UserAgentParser(586 '(CriOS)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)',587 'Chrome Mobile iOS',588 ),589 UserAgentParser(590 '(Chrome)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+) Mobile(?:[ /]|$)',591 'Chrome Mobile',592 ),593 UserAgentParser(594 ' Mobile .{1,300}(Chrome)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)',595 'Chrome Mobile',596 ),597 UserAgentParser(598 '(chromeframe)/(\\d+)\\.(\\d+)\\.(\\d+)',599 'Chrome Frame',600 ),601 UserAgentParser(602 '(SLP Browser)/(\\d+)\\.(\\d+)',603 'Tizen Browser',604 ),605 UserAgentParser(606 '(SE 2\\.X) MetaSr (\\d+)\\.(\\d+)',607 'Sogou Explorer',608 ),609 UserAgentParser(610 '(Rackspace Monitoring)/(\\d+)\\.(\\d+)',611 'RackspaceBot',612 ),613 UserAgentParser(614 '(PRTG Network Monitor)',615 ),616 UserAgentParser(617 '(PyAMF)/(\\d+)\\.(\\d+)\\.(\\d+)',618 ),619 UserAgentParser(620 '(YaBrowser)/(\\d+)\\.(\\d+)\\.(\\d+)',621 'Yandex Browser',622 ),623 UserAgentParser(624 '(Chrome)/(\\d+)\\.(\\d+)\\.(\\d+).{0,100} MRCHROME',625 'Mail.ru Chromium Browser',626 ),627 UserAgentParser(628 '(AOL) (\\d+)\\.(\\d+); AOLBuild (\\d+)',629 ),630 UserAgentParser(631 '(PodCruncher|Downcast)[ /]?(\\d+)(?:\\.(\\d+)|)(?:\\.(\\d+)|)(?:\\.(\\d+)|)',632 ),633 UserAgentParser(634 ' (BoxNotes)/(\\d+)\\.(\\d+)\\.(\\d+)',635 ),636 UserAgentParser(637 '(Whale)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+) Mobile(?:[ /]|$)',638 'Whale',639 ),640 UserAgentParser(641 '(Whale)/(\\d+)\\.(\\d+)\\.(\\d+)',642 'Whale',643 ),644 UserAgentParser(645 '(1Password)/(\\d+)\\.(\\d+)\\.(\\d+)',646 ),647 UserAgentParser(648 '(Ghost)/(\\d+)\\.(\\d+)\\.(\\d+)',649 ),650 UserAgentParser(651 'PAN (GlobalProtect)/(\\d+)\\.(\\d+)\\.(\\d+) .{1,100} \\(X11; Linux x86_64\\)',652 ),653 UserAgentParser(654 '^(surveyon)/(\\d+)\\.(\\d+)\\.(\\d+)',655 'Surveyon',656 ),657 UserAgentParser(658 '(Slack_SSB)/(\\d+)\\.(\\d+)\\.(\\d+)',659 'Slack Desktop Client',660 ),661 UserAgentParser(662 '(HipChat)/?(\\d+|)',663 'HipChat Desktop Client',664 ),665 UserAgentParser(666 '\\b(MobileIron|FireWeb|Jasmine|ANTGalio|Midori|Fresco|Lobo|PaleMoon|Maxthon|Lynx|OmniWeb|Dillo|Camino|Demeter|Fluid|Fennec|Epiphany|Shiira|Sunrise|Spotify|Flock|Netscape|Lunascape|WebPilot|NetFront|Netfront|Konqueror|SeaMonkey|Kazehakase|Vienna|Iceape|Iceweasel|IceWeasel|Iron|K-Meleon|Sleipnir|Galeon|GranParadiso|Opera Mini|iCab|NetNewsWire|ThunderBrowse|Iris|UP\\.Browser|Bunjalloo|Google Earth|Raven for Mac|Openwave|MacOutlook|Electron|OktaMobile)/(\\d+)\\.(\\d+)\\.(\\d+)',667 ),668 UserAgentParser(669 'Microsoft Office Outlook 12\\.\\d+\\.\\d+|MSOffice 12',670 'Outlook',671 '2007',672 ),673 UserAgentParser(674 'Microsoft Outlook 14\\.\\d+\\.\\d+|MSOffice 14',675 'Outlook',676 '2010',677 ),678 UserAgentParser(679 'Microsoft Outlook 15\\.\\d+\\.\\d+',680 'Outlook',681 '2013',682 ),683 UserAgentParser(684 'Microsoft Outlook (?:Mail )?16\\.\\d+\\.\\d+|MSOffice 16',685 'Outlook',686 '2016',687 ),688 UserAgentParser(689 'Microsoft Office (Word) 2014',690 ),691 UserAgentParser(692 'Outlook-Express\\/7\\.0',693 'Windows Live Mail',694 ),695 UserAgentParser(696 '(Airmail) (\\d+)\\.(\\d+)(?:\\.(\\d+)|)',697 ),698 UserAgentParser(699 '(Thunderbird)/(\\d+)\\.(\\d+)(?:\\.(\\d+(?:pre|))|)',700 'Thunderbird',701 ),702 UserAgentParser(703 '(Postbox)/(\\d+)\\.(\\d+)\\.(\\d+)',704 'Postbox',705 ),706 UserAgentParser(707 '(Barca(?:Pro)?)/(\\d+)\\.(\\d+)(?:\\.(\\d+)|)',708 'Barca',709 ),710 UserAgentParser(711 '(Lotus-Notes)/(\\d+)\\.(\\d+)(?:\\.(\\d+)|)',712 'Lotus Notes',713 ),714 UserAgentParser(715 'Superhuman',716 'Superhuman',717 ),718 UserAgentParser(719 '(Vivaldi)/(\\d+)\\.(\\d+)\\.(\\d+)',720 ),721 UserAgentParser(722 '(Edge?)/(\\d+)(?:\\.(\\d+)|)(?:\\.(\\d+)|)(?:\\.(\\d+)|)',723 'Edge',724 ),725 UserAgentParser(726 '(brave)/(\\d+)\\.(\\d+)\\.(\\d+) Chrome',727 'Brave',728 ),729 UserAgentParser(730 '(Chrome)/(\\d+)\\.(\\d+)\\.(\\d+)[\\d.]{0,100} Iron[^/]',731 'Iron',732 ),733 UserAgentParser(734 '\\b(Dolphin)(?: |HDCN/|/INT\\-)(\\d+)\\.(\\d+)(?:\\.(\\d+)|)',735 ),736 UserAgentParser(737 '(HeadlessChrome)(?:/(\\d+)\\.(\\d+)\\.(\\d+)|)',738 ),739 UserAgentParser(740 '(Evolution)/(\\d+)\\.(\\d+)\\.(\\d+\\.\\d+)',741 ),742 UserAgentParser(743 '(RCM CardDAV plugin)/(\\d+)\\.(\\d+)\\.(\\d+(?:-dev|))',744 ),745 UserAgentParser(746 '(bingbot|Bolt|AdobeAIR|Jasmine|IceCat|Skyfire|Midori|Maxthon|Lynx|Arora|IBrowse|Dillo|Camino|Shiira|Fennec|Phoenix|Flock|Netscape|Lunascape|Epiphany|WebPilot|Opera Mini|Opera|NetFront|Netfront|Konqueror|Googlebot|SeaMonkey|Kazehakase|Vienna|Iceape|Iceweasel|IceWeasel|Iron|K-Meleon|Sleipnir|Galeon|GranParadiso|iCab|iTunes|MacAppStore|NetNewsWire|Space Bison|Stainless|Orca|Dolfin|BOLT|Minimo|Tizen Browser|Polaris|Abrowser|Planetweb|ICE Browser|mDolphin|qutebrowser|Otter|QupZilla|MailBar|kmail2|YahooMobileMail|ExchangeWebServices|ExchangeServicesClient|Dragon|Outlook-iOS-Android)/(\\d+)\\.(\\d+)(?:\\.(\\d+)|)',747 ),748 UserAgentParser(749 '(Chromium|Chrome)/(\\d+)\\.(\\d+)(?:\\.(\\d+)|)(?:\\.(\\d+)|)',750 ),751 UserAgentParser(752 '(IEMobile)[ /](\\d+)\\.(\\d+)',753 'IE Mobile',754 ),755 UserAgentParser(756 '(BacaBerita App)\\/(\\d+)\\.(\\d+)\\.(\\d+)',757 ),758 UserAgentParser(759 '^(bPod|Pocket Casts|Player FM)$',760 ),761 UserAgentParser(762 '^(AlexaMediaPlayer|VLC)/(\\d+)\\.(\\d+)\\.([^.\\s]+)',763 ),764 UserAgentParser(765 '^(AntennaPod|WMPlayer|Zune|Podkicker|Radio|ExoPlayerDemo|Overcast|PocketTunes|NSPlayer|okhttp|DoggCatcher|QuickNews|QuickTime|Peapod|Podcasts|GoldenPod|VLC|Spotify|Miro|MediaGo|Juice|iPodder|gPodder|Banshee)/(\\d+)\\.(\\d+)(?:\\.(\\d+)|)(?:\\.(\\d+)|)',766 ),767 UserAgentParser(768 '^(Peapod|Liferea)/([^.\\s]+)\\.([^.\\s]+|)\\.?([^.\\s]+|)',769 ),770 UserAgentParser(771 '^(bPod|Player FM) BMID/(\\S+)',772 ),773 UserAgentParser(774 '^(Podcast ?Addict)/v(\\d+) ',775 ),776 UserAgentParser(777 '^(Podcast ?Addict) ',778 'PodcastAddict',779 ),780 UserAgentParser(781 '(Replay) AV',782 ),783 UserAgentParser(784 '(VOX) Music Player',785 ),786 UserAgentParser(787 '(CITA) RSS Aggregator/(\\d+)\\.(\\d+)',788 ),789 UserAgentParser(790 '(Pocket Casts)$',791 ),792 UserAgentParser(793 '(Player FM)$',794 ),795 UserAgentParser(796 '(LG Player|Doppler|FancyMusic|MediaMonkey|Clementine) (\\d+)\\.(\\d+)\\.?([^.\\s]+|)\\.?([^.\\s]+|)',797 ),798 UserAgentParser(799 '(philpodder)/(\\d+)\\.(\\d+)\\.?([^.\\s]+|)\\.?([^.\\s]+|)',800 ),801 UserAgentParser(802 '(Player FM|Pocket Casts|DoggCatcher|Spotify|MediaMonkey|MediaGo|BashPodder)',803 ),804 UserAgentParser(805 '(QuickTime)\\.(\\d+)\\.(\\d+)\\.(\\d+)',806 ),807 UserAgentParser(808 '(Kinoma)(\\d+)',809 ),810 UserAgentParser(811 '(Fancy) Cloud Music (\\d+)\\.(\\d+)',812 'FancyMusic',813 ),814 UserAgentParser(815 'EspnDownloadManager',816 'ESPN',817 ),818 UserAgentParser(819 '(ESPN) Radio (\\d+)\\.(\\d+)(?:\\.(\\d+)|) ?(?:rv:(\\d+)|) ',820 ),821 UserAgentParser(822 '(podracer|jPodder) v ?(\\d+)\\.(\\d+)(?:\\.(\\d+)|)',823 ),824 UserAgentParser(825 '(ZDM)/(\\d+)\\.(\\d+)[; ]?',826 ),827 UserAgentParser(828 '(Zune|BeyondPod) (\\d+)(?:\\.(\\d+)|)[\\);]',829 ),830 UserAgentParser(831 '(WMPlayer)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)',832 ),833 UserAgentParser(834 '^(Lavf)',835 'WMPlayer',836 ),837 UserAgentParser(838 '^(RSSRadio)[ /]?(\\d+|)',839 ),840 UserAgentParser(841 '(RSS_Radio) (\\d+)\\.(\\d+)',842 'RSSRadio',843 ),844 UserAgentParser(845 '(Podkicker) \\S+/(\\d+)\\.(\\d+)\\.(\\d+)',846 'Podkicker',847 ),848 UserAgentParser(849 '^(HTC) Streaming Player \\S+ / \\S+ / \\S+ / (\\d+)\\.(\\d+)(?:\\.(\\d+)|)',850 ),851 UserAgentParser(852 '^(Stitcher)/iOS',853 ),854 UserAgentParser(855 '^(Stitcher)/Android',856 ),857 UserAgentParser(858 '^(VLC) .{0,200}version (\\d+)\\.(\\d+)\\.(\\d+)',859 ),860 UserAgentParser(861 ' (VLC) for',862 ),863 UserAgentParser(864 '(vlc)/(\\d+)\\.(\\d+)\\.(\\d+)',865 'VLC',866 ),867 UserAgentParser(868 '^(foobar)\\S{1,10}/(\\d+)\\.(\\d+|)\\.?([\\da-z]+|)',869 ),870 UserAgentParser(871 '^(Clementine)\\S{1,10} (\\d+)\\.(\\d+|)\\.?(\\d+|)',872 ),873 UserAgentParser(874 '(amarok)/(\\d+)\\.(\\d+|)\\.?(\\d+|)',875 'Amarok',876 ),877 UserAgentParser(878 '(Custom)-Feed Reader',879 ),880 UserAgentParser(881 '(iRider|Crazy Browser|SkipStone|iCab|Lunascape|Sleipnir|Maemo Browser) (\\d+)\\.(\\d+)\\.(\\d+)',882 ),883 UserAgentParser(884 '(iCab|Lunascape|Opera|Android|Jasmine|Polaris|Microsoft SkyDriveSync|The Bat!) (\\d+)(?:\\.(\\d+)|)(?:\\.(\\d+)|)',885 ),886 UserAgentParser(887 '(Kindle)/(\\d+)\\.(\\d+)',888 ),889 UserAgentParser(890 '(Android) Donut',891 None,892 '1',893 '2',894 ),895 UserAgentParser(896 '(Android) Eclair',897 None,898 '2',899 '1',900 ),901 UserAgentParser(902 '(Android) Froyo',903 None,904 '2',905 '2',906 ),907 UserAgentParser(908 '(Android) Gingerbread',909 None,910 '2',911 '3',912 ),913 UserAgentParser(914 '(Android) Honeycomb',915 None,916 '3',917 ),918 UserAgentParser(919 '(MSIE) (\\d+)\\.(\\d+).{0,100}XBLWP7',920 'IE Large Screen',921 ),922 UserAgentParser(923 '(Nextcloud)',924 ),925 UserAgentParser(926 '(mirall)/(\\d+)\\.(\\d+)\\.(\\d+)',927 ),928 UserAgentParser(929 '(ownCloud-android)/(\\d+)\\.(\\d+)\\.(\\d+)',930 'Owncloud',931 ),932 UserAgentParser(933 '(OC)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+) \\(Skype for Business\\)',934 'Skype',935 ),936 UserAgentParser(937 '(OpenVAS)(?:-VT)?(?:[ \\/](\\d+)(?:\\.(\\d+)|)(?:\\.(\\d+)|)|)',938 'OpenVAS Scanner',939 ),940 UserAgentParser(941 '(AnyConnect)\\/(\\d+)(?:\\.(\\d+)(?:\\.(\\d+)|)|)',942 ),943 UserAgentParser(944 'compatible; monitis',945 'Monitis',946 ),947 UserAgentParser(948 '(Obigo)InternetBrowser',949 ),950 UserAgentParser(951 '(Obigo)\\-Browser',952 ),953 UserAgentParser(954 '(Obigo|OBIGO)[^\\d]*(\\d+)(?:.(\\d+)|)',955 'Obigo',956 ),957 UserAgentParser(958 '(MAXTHON|Maxthon) (\\d+)\\.(\\d+)',959 'Maxthon',960 ),961 UserAgentParser(962 '(Maxthon|MyIE2|Uzbl|Shiira)',963 None,964 '0',965 ),966 UserAgentParser(967 '(BrowseX) \\((\\d+)\\.(\\d+)\\.(\\d+)',968 ),969 UserAgentParser(970 '(NCSA_Mosaic)/(\\d+)\\.(\\d+)',971 'NCSA Mosaic',972 ),973 UserAgentParser(974 '(POLARIS)/(\\d+)\\.(\\d+)',975 'Polaris',976 ),977 UserAgentParser(978 '(Embider)/(\\d+)\\.(\\d+)',979 'Polaris',980 ),981 UserAgentParser(982 '(BonEcho)/(\\d+)\\.(\\d+)\\.?([ab]?\\d+|)',983 'Bon Echo',984 ),985 UserAgentParser(986 '(TopBuzz) com.alex.NewsMaster/(\\d+).(\\d+).(\\d+)',987 'TopBuzz',988 ),989 UserAgentParser(990 '(TopBuzz) com.mobilesrepublic.newsrepublic/(\\d+).(\\d+).(\\d+)',991 'TopBuzz',992 ),993 UserAgentParser(994 '(TopBuzz) com.topbuzz.videoen/(\\d+).(\\d+).(\\d+)',995 'TopBuzz',996 ),997 UserAgentParser(998 '(iPod|iPhone|iPad).{1,200}GSA/(\\d+)\\.(\\d+)\\.(\\d+)(?:\\.(\\d+)|) Mobile',999 'Google',1000 ),1001 UserAgentParser(1002 '(iPod|iPhone|iPad).{1,200}Version/(\\d+)\\.(\\d+)(?:\\.(\\d+)|).{1,200}[ +]Safari',1003 'Mobile Safari',1004 ),1005 UserAgentParser(1006 '(iPod|iPod touch|iPhone|iPad);.{0,30}CPU.{0,30}OS[ +](\\d+)_(\\d+)(?:_(\\d+)|).{0,30} AppleNews\\/\\d+\\.\\d+(?:\\.\\d+|)',1007 'Mobile Safari UI/WKWebView',1008 ),1009 UserAgentParser(1010 '(iPod|iPhone|iPad).{1,200}Version/(\\d+)\\.(\\d+)(?:\\.(\\d+)|)',1011 'Mobile Safari UI/WKWebView',1012 ),1013 UserAgentParser(1014 '(iPod|iPod touch|iPhone|iPad).{0,200} Safari',1015 'Mobile Safari',1016 ),1017 UserAgentParser(1018 '(iPod|iPod touch|iPhone|iPad)',1019 'Mobile Safari UI/WKWebView',1020 ),1021 UserAgentParser(1022 '(Watch)(\\d+),(\\d+)',1023 'Apple $1 App',1024 ),1025 UserAgentParser(1026 '(Outlook-iOS)/\\d+\\.\\d+\\.prod\\.iphone \\((\\d+)\\.(\\d+)\\.(\\d+)\\)',1027 ),1028 UserAgentParser(1029 '(AvantGo) (\\d+).(\\d+)',1030 ),1031 UserAgentParser(1032 '(OneBrowser)/(\\d+).(\\d+)',1033 'ONE Browser',1034 ),1035 UserAgentParser(1036 '(Avant)',1037 None,1038 '1',1039 ),1040 UserAgentParser(1041 '(QtCarBrowser)',1042 None,1043 '1',1044 ),1045 UserAgentParser(1046 '^(iBrowser/Mini)(\\d+).(\\d+)',1047 'iBrowser Mini',1048 ),1049 UserAgentParser(1050 '^(iBrowser|iRAPP)/(\\d+).(\\d+)',1051 ),1052 UserAgentParser(1053 '^(Nokia)',1054 'Nokia Services (WAP) Browser',1055 ),1056 UserAgentParser(1057 '(NokiaBrowser)/(\\d+)\\.(\\d+).(\\d+)\\.(\\d+)',1058 'Nokia Browser',1059 ),1060 UserAgentParser(1061 '(NokiaBrowser)/(\\d+)\\.(\\d+).(\\d+)',1062 'Nokia Browser',1063 ),1064 UserAgentParser(1065 '(NokiaBrowser)/(\\d+)\\.(\\d+)',1066 'Nokia Browser',1067 ),1068 UserAgentParser(1069 '(BrowserNG)/(\\d+)\\.(\\d+).(\\d+)',1070 'Nokia Browser',1071 ),1072 UserAgentParser(1073 '(Series60)/5\\.0',1074 'Nokia Browser',1075 '7',1076 '0',1077 ),1078 UserAgentParser(1079 '(Series60)/(\\d+)\\.(\\d+)',1080 'Nokia OSS Browser',1081 ),1082 UserAgentParser(1083 '(S40OviBrowser)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)',1084 'Ovi Browser',1085 ),1086 UserAgentParser(1087 '(Nokia)[EN]?(\\d+)',1088 ),1089 UserAgentParser(1090 '(PlayBook).{1,200}RIM Tablet OS (\\d+)\\.(\\d+)\\.(\\d+)',1091 'BlackBerry WebKit',1092 ),1093 UserAgentParser(1094 '(Black[bB]erry|BB10).{1,200}Version/(\\d+)\\.(\\d+)\\.(\\d+)',1095 'BlackBerry WebKit',1096 ),1097 UserAgentParser(1098 '(Black[bB]erry)\\s?(\\d+)',1099 'BlackBerry',1100 ),1101 UserAgentParser(1102 '(OmniWeb)/v(\\d+)\\.(\\d+)',1103 ),1104 UserAgentParser(1105 '(Blazer)/(\\d+)\\.(\\d+)',1106 'Palm Blazer',1107 ),1108 UserAgentParser(1109 '(Pre)/(\\d+)\\.(\\d+)',1110 'Palm Pre',1111 ),1112 UserAgentParser(1113 '(ELinks)/(\\d+)\\.(\\d+)',1114 ),1115 UserAgentParser(1116 '(ELinks) \\((\\d+)\\.(\\d+)',1117 ),1118 UserAgentParser(1119 '(Links) \\((\\d+)\\.(\\d+)',1120 ),1121 UserAgentParser(1122 '(QtWeb) Internet Browser/(\\d+)\\.(\\d+)',1123 ),1124 UserAgentParser(1125 '(PhantomJS)/(\\d+)\\.(\\d+)\\.(\\d+)',1126 ),1127 UserAgentParser(1128 '(AppleWebKit)/(\\d+)(?:\\.(\\d+)|)\\+ .{0,200} Safari',1129 'WebKit Nightly',1130 ),1131 UserAgentParser(1132 '(Version)/(\\d+)\\.(\\d+)(?:\\.(\\d+)|).{0,100}Safari/',1133 'Safari',1134 ),1135 UserAgentParser(1136 '(Safari)/\\d+',1137 ),1138 UserAgentParser(1139 '(OLPC)/Update(\\d+)\\.(\\d+)',1140 ),1141 UserAgentParser(1142 '(OLPC)/Update()\\.(\\d+)',1143 None,1144 '0',1145 ),1146 UserAgentParser(1147 '(SEMC\\-Browser)/(\\d+)\\.(\\d+)',1148 ),1149 UserAgentParser(1150 '(Teleca)',1151 'Teleca Browser',1152 ),1153 UserAgentParser(1154 '(Phantom)/V(\\d+)\\.(\\d+)',1155 'Phantom Browser',1156 ),1157 UserAgentParser(1158 '(Trident)/(7|8)\\.(0)',1159 'IE',1160 '11',1161 ),1162 UserAgentParser(1163 '(Trident)/(6)\\.(0)',1164 'IE',1165 '10',1166 ),1167 UserAgentParser(1168 '(Trident)/(5)\\.(0)',1169 'IE',1170 '9',1171 ),1172 UserAgentParser(1173 '(Trident)/(4)\\.(0)',1174 'IE',1175 '8',1176 ),1177 UserAgentParser(1178 '(Espial)/(\\d+)(?:\\.(\\d+)|)(?:\\.(\\d+)|)',1179 ),1180 UserAgentParser(1181 '(AppleWebKit)/(\\d+)\\.(\\d+)\\.(\\d+)',1182 'Apple Mail',1183 ),1184 UserAgentParser(1185 '(Firefox)/(\\d+)\\.(\\d+)(?:\\.(\\d+)|$)',1186 ),1187 UserAgentParser(1188 '(Firefox)/(\\d+)\\.(\\d+)(pre|[ab]\\d+[a-z]*|)',1189 ),1190 UserAgentParser(1191 '([MS]?IE) (\\d+)\\.(\\d+)',1192 'IE',1193 ),1194 UserAgentParser(1195 '(python-requests)/(\\d+)\\.(\\d+)',1196 'Python Requests',1197 ),1198 UserAgentParser(1199 '\\b(Windows-Update-Agent|WindowsPowerShell|Microsoft-CryptoAPI|SophosUpdateManager|SophosAgent|Debian APT-HTTP|Ubuntu APT-HTTP|libcurl-agent|libwww-perl|urlgrabber|curl|PycURL|Wget|wget2|aria2|Axel|OpenBSD ftp|lftp|jupdate|insomnia|fetch libfetch|akka-http|got|CloudCockpitBackend|ReactorNetty|axios|Jersey|Vert.x-WebClient|Apache-CXF|Go-CF-client|go-resty|AHC|HTTPie)(?:[ /](\\d+)(?:\\.(\\d+)|)(?:\\.(\\d+)|)|)',1200 ),