This repository has been archived by the owner on Jun 6, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy path2015_11_26_nginx-regexes.json
1 lines (1 loc) · 71.2 KB
/
2015_11_26_nginx-regexes.json
1
{"devices":[{"regex":"(?:(?:iPhone|Windows CE|Android).*(?:(?:Bot|Yeti)-Mobile|YRSpider|bots?/\\d|(?:bot|spider)\\.html)|AdsBot-Google-Mobile.*iPhone)","replacement":"Spider"},{"regex":"(?:DoCoMo|\\bMOT\\b|\\bLG\\b|Nokia|Samsung|SonyEricsson).*(?:(?:Bot|Yeti)-Mobile|bots?/\\d|(?:bot|crawler)\\.html|(?:jump|google|Wukong)bot|ichiro/mobile|/spider|YahooSeeker)","replacement":"Spider"},{"regex":"\\bSmartWatch *\\( *([^;]+) *; *([^;]+) *;","replacement":"%s $2"},{"regex":"Android Application[^\\-]+ - (Sony) ?(Ericsson)? (.+) \\w+ - ","replacement":"%s $2"},{"regex":"Android Application[^\\-]+ - (?:HTC|HUAWEI|LGE|LENOVO|MEDION|TCT) (HTC|HUAWEI|LG|LENOVO|MEDION|ALCATEL)[ _\\-](.+) \\w+ - ","replacement":"%s $2"},{"regex":"Android Application[^\\-]+ - ([^ ]+) (.+) \\w+ - ","replacement":"%s $2"},{"regex":"; *([BLRQ]C\\d{4}[A-Z]+) +Build/","replacement":"3Q %s"},{"regex":"; *(?:3Q_)([^;/]+) +Build","replacement":"3Q %s"},{"regex":"Android [34].*; *(A100|A101|A110|A200|A210|A211|A500|A501|A510|A511|A700(?: Lite| 3G)?|A701|B1-A71|A1-\\d{3}|B1-\\d{3}|V360|V370|W500|W500P|W501|W501P|W510|W511|W700|Slider SL101|DA22[^;/]+) Build","replacement":"%s"},{"regex":"; *Acer Iconia Tab ([^;/]+) Build","replacement":"%s"},{"regex":"; *(Z1[1235]0|E320[^/]*|S500|S510|Liquid[^;/]*|Iconia A\\d+) Build","replacement":"%s"},{"regex":"; *(Acer |ACER )([^;/]+) Build","replacement":"%s$2"},{"regex":"; *(Advent )?(Vega(?:Bean|Comb)?).* Build","replacement":"%s$2"},{"regex":"; *(Ainol )?((?:NOVO|[Nn]ovo)[^;/]+) Build","replacement":"%s$2"},{"regex":"; *AIRIS[ _\\-]?([^/;\\)]+) *(?:;|\\)|Build)","replacement":"%s"},{"regex":"; *(OnePAD[^;/]+) Build","replacement":"%s"},{"regex":"; *Airpad[ \\-]([^;/]+) Build","replacement":"Airpad %s"},{"regex":"; *(one ?touch) (EVO7|T10|T20) Build","replacement":"Alcatel One Touch $2"},{"regex":"; *(?:alcatel[ _])?(?:(?:one[ _]?touch[ _])|ot[ \\-])([^;/]+);? Build","replacement":"Alcatel One Touch %s"},{"regex":"; *(TCL)[ _]([^;/]+) Build","replacement":"%s $2"},{"regex":"; *(Vodafone Smart II|Optimus_Madrid) Build","replacement":"Alcatel %s"},{"regex":"; *BASE_Lutea_3 Build","replacement":"Alcatel One Touch 998"},{"regex":"; *BASE_Varia Build","replacement":"Alcatel One Touch 918D"},{"regex":"; *((?:FINE|Fine)\\d[^;/]+) Build","replacement":"%s"},{"regex":"; *(ALLVIEW[ _]?|Allview[ _]?)((?:Speed|SPEED).*) Build/","replacement":"%s$2"},{"regex":"; *(ALLVIEW[ _]?|Allview[ _]?)?(AX1_Shine|AX2_Frenzy) Build","replacement":"%s$2"},{"regex":"; *(ALLVIEW[ _]?|Allview[ _]?)([^;/]*) Build","replacement":"%s$2"},{"regex":"; *(A13-MID) Build","replacement":"%s"},{"regex":"; *(Allwinner)[ _\\-]?([^;/]+) Build","replacement":"%s $2"},{"regex":"; *(A651|A701B?|A702|A703|A705|A706|A707|A711|A712|A713|A717|A722|A785|A801|A802|A803|A901|A902|A1002|A1003|A1006|A1007|A9701|A9703|Q710|Q80) Build","replacement":"%s"},{"regex":"; *(?:AMOI|Amoi)[ _]([^;/]+) Build","replacement":"Amoi %s"},{"regex":"^(?:AMOI|Amoi)[ _]([^;/]+) Linux","replacement":"Amoi %s"},{"regex":"; *(MW(?:0[789]|10)[^;/]+) Build","replacement":"%s"},{"regex":"; *(G7|M1013|M1015G|M11[CG]?|M-?12[B]?|M15|M19[G]?|M30[ACQ]?|M31[GQ]|M32|M33[GQ]|M36|M37|M38|M701T|M710|M712B|M713|M715G|M716G|M71(?:G|GS|T)?|M72[T]?|M73[T]?|M75[GT]?|M77G|M79T|M7L|M7LN|M81|M810|M81T|M82|M92|M92KS|M92S|M717G|M721|M722G|M723|M725G|M739|M785|M791|M92SK|M93D) Build","replacement":"Aoson %s"},{"regex":"; *Aoson ([^;/]+) Build","replacement":"Aoson %s"},{"regex":"; *[Aa]panda[ _\\-]([^;/]+) Build","replacement":"Apanda %s"},{"regex":"; *(?:ARCHOS|Archos) ?(GAMEPAD.*?)(?: Build|[;/\\(\\)\\-])","replacement":"Archos %s"},{"regex":"ARCHOS; GOGI; ([^;]+);","replacement":"Archos %s"},{"regex":"(?:ARCHOS|Archos)[ _]?(.*?)(?: Build|[;/\\(\\)\\-]|$)","replacement":"Archos %s"},{"regex":"; *(AN(?:7|8|9|10|13)[A-Z0-9]{1,4}) Build","replacement":"Archos %s"},{"regex":"; *(A28|A32|A43|A70(?:BHT|CHT|HB|S|X)|A101(?:B|C|IT)|A7EB|A7EB-WK|101G9|80G9) Build","replacement":"Archos %s"},{"regex":"; *(PAD-FMD[^;/]+) Build","replacement":"%s"},{"regex":"; *(BioniQ) ?([^;/]+) Build","replacement":"%s $2"},{"regex":"; *(AN\\d[^;/]+|ARCHM\\d+) Build","replacement":"Arnova %s"},{"regex":"; *(?:ARNOVA|Arnova) ?([^;/]+) Build","replacement":"Arnova %s"},{"regex":"; *(?:ASSISTANT )?(AP)-?([1789]\\d{2}[A-Z]{0,2}|80104) Build","replacement":"Assistant %s-$2"},{"regex":"; *(ME17\\d[^;/]*|ME3\\d{2}[^;/]+|K00[A-Z]|Nexus 10|Nexus 7(?: 2013)?|PadFone[^;/]*|Transformer[^;/]*|TF\\d{3}[^;/]*|eeepc) Build","replacement":"Asus %s"},{"regex":"; *ASUS[ _]*([^;/]+) Build","replacement":"Asus %s"},{"regex":"; *Garmin-Asus ([^;/]+) Build","replacement":"Garmin-Asus %s"},{"regex":"; *(Garminfone) Build","replacement":"Garmin %s"},{"regex":"; (@TAB-[^;/]+) Build","replacement":"%s"},{"regex":"; *(T-(?:07|[^0]\\d)[^;/]+) Build","replacement":"%s"},{"regex":"; *(?:Axioo[ _\\-]([^;/]+)|(picopad)[ _\\-]([^;/]+)) Build","replacement":"Axioo %s$2 $3"},{"regex":"; *(V(?:100|700|800)[^;/]*) Build","replacement":"%s"},{"regex":"; *(IBAK\\-[^;/]*) Build","replacement":"%s"},{"regex":"; *(HY5001|HY6501|X12|X21|I5) Build","replacement":"Bedove %s"},{"regex":"; *(JC-[^;/]*) Build","replacement":"Benss %s"},{"regex":"; *(BB) ([^;/]+) Build","replacement":"%s $2"},{"regex":"; *(BlackBird)[ _](I8.*) Build","replacement":"%s $2"},{"regex":"; *(BlackBird)[ _](.*) Build","replacement":"%s $2"},{"regex":"; *([0-9]+BP[EM][^;/]*|Endeavour[^;/]+) Build","replacement":"Blaupunkt %s"},{"regex":"; *((?:BLU|Blu)[ _\\-])([^;/]+) Build","replacement":"%s$2"},{"regex":"; *(?:BMOBILE )?(Blu|BLU|DASH [^;/]+|VIVO 4\\.3|TANK 4\\.5) Build","replacement":"%s"},{"regex":"; *(TOUCH\\d[^;/]+) Build","replacement":"%s"},{"regex":"; *(AX5\\d+) Build","replacement":"%s"},{"regex":"; *([Bb]q) ([^;/]+);? Build","replacement":"%s $2"},{"regex":"; *(Maxwell [^;/]+) Build","replacement":"%s"},{"regex":"; *((?:B-Tab|B-TAB) ?\\d[^;/]+) Build","replacement":"%s"},{"regex":"; *(Broncho) ([^;/]+) Build","replacement":"%s $2"},{"regex":"; *CAPTIVA ([^;/]+) Build","replacement":"Captiva %s"},{"regex":"; *(C771|CAL21|IS11CA) Build","replacement":"%s"},{"regex":"; *(?:Cat|CAT) ([^;/]+) Build","replacement":"Cat %s"},{"regex":"; *(?:Cat)(Nova.*) Build","replacement":"Cat %s"},{"regex":"; *(INM8002KP|ADM8000KP_[AB]) Build","replacement":"%s"},{"regex":"; *(?:[Cc]elkon[ _\\*]|CELKON[ _\\*])([^;/\\)]+) ?(?:Build|;|\\))","replacement":"%s"},{"regex":"Build/(?:[Cc]elkon)+_?([^;/_\\)]+)","replacement":"%s"},{"regex":"; *(CT)-?(\\d+) Build","replacement":"%s$2"},{"regex":"; *(A19|A19Q|A105|A107[^;/\\)]*) ?(?:Build|;|\\))","replacement":"%s"},{"regex":"; *(TPC[0-9]{4,5}) Build","replacement":"%s"},{"regex":"; *(Cloudfone)[ _](Excite)([^ ][^;/]+) Build","replacement":"%s $2 $3"},{"regex":"; *(Excite|ICE)[ _](\\d+[^;/]+) Build","replacement":"Cloudfone %s $2"},{"regex":"; *(Cloudfone|CloudPad)[ _]([^;/]+) Build","replacement":"%s $2"},{"regex":"; *((?:Aquila|Clanga|Rapax)[^;/]+) Build","replacement":"%s"},{"regex":"; *(?:CFW-|Kyros )?(MID[0-9]{4}(?:[ABC]|SR|TV)?)(\\(3G\\)-4G| GB 8K| 3G| 8K| GB)? *(?:Build|[;\\)])","replacement":"CobyKyros %s$2"},{"regex":"; *([^;/]*)Coolpad[ _]([^;/]+) Build","replacement":"%s$2"},{"regex":"; *(CUBE[ _])?([KU][0-9]+ ?GT.*|A5300) Build","replacement":"%s$2"},{"regex":"; *CUBOT ([^;/]+) Build","replacement":"%s"},{"regex":"; *(BOBBY) Build","replacement":"%s"},{"regex":"; *(Dslide [^;/]+) Build","replacement":"%s"},{"regex":"; *(XCD)[ _]?(28|35) Build","replacement":"Dell %s$2"},{"regex":"; *(001DL) Build","replacement":"Dell %s"},{"regex":"; *(?:Dell|DELL) (Streak) Build","replacement":"Dell %s"},{"regex":"; *(101DL|GS01|Streak Pro[^;/]*) Build","replacement":"Dell %s"},{"regex":"; *([Ss]treak ?7) Build","replacement":"Dell %s"},{"regex":"; *(Mini-3iX) Build","replacement":"Dell %s"},{"regex":"; *(?:Dell|DELL)[ _](Aero|Venue|Thunder|Mini.*|Streak[ _]Pro) Build","replacement":"Dell %s"},{"regex":"; *Dell[ _]([^;/]+) Build","replacement":"Dell %s"},{"regex":"; *Dell ([^;/]+) Build","replacement":"Dell %s"},{"regex":"; *(TA[CD]-\\d+[^;/]*) Build","replacement":"%s"},{"regex":"; *(iP[789]\\d{2}(?:-3G)?|IP10\\d{2}(?:-8GB)?) Build","replacement":"%s"},{"regex":"; *(AirTab)[ _\\-]([^;/]+) Build","replacement":"%s $2"},{"regex":"; *(F\\-\\d[^;/]+) Build","replacement":"%s"},{"regex":"; *(HT-03A) Build","replacement":"%s"},{"regex":"; *(HT\\-\\d[^;/]+) Build","replacement":"%s"},{"regex":"; *(L\\-\\d[^;/]+) Build","replacement":"%s"},{"regex":"; *(N\\-\\d[^;/]+) Build","replacement":"%s"},{"regex":"; *(P\\-\\d[^;/]+) Build","replacement":"%s"},{"regex":"; *(SC\\-\\d[^;/]+) Build","replacement":"%s"},{"regex":"; *(SH\\-\\d[^;/]+) Build","replacement":"%s"},{"regex":"; *(SO\\-\\d[^;/]+) Build","replacement":"%s"},{"regex":"; *(T\\-0[12][^;/]+) Build","replacement":"%s"},{"regex":"; *(DOOV)[ _]([^;/]+) Build","replacement":"%s $2"},{"regex":"; *(Enot|ENOT)[ -]?([^;/]+) Build","replacement":"%s $2"},{"regex":"; *[^;/]+ Build/(?:CROSS|Cross)+[ _\\-]([^\\)]+)","replacement":"CROSS %s"},{"regex":"; *(CROSS|Cross)[ _\\-]([^;/]+) Build","replacement":"%s $2"},{"regex":"; *Explay[_ ](.+?)(?:[\\)]| Build)","replacement":"%s"},{"regex":"; *(IQ.*) Build","replacement":"%s"},{"regex":"; *(Fly|FLY)[ _](IQ[^;]+|F[34]\\d+[^;]*);? Build","replacement":"%s $2"},{"regex":"; *(M532|Q572|FJL21) Build/","replacement":"%s"},{"regex":"; *(G1) Build","replacement":"%s"},{"regex":"; *(Geeksphone) ([^;/]+) Build","replacement":"%s $2"},{"regex":"; *(G[^F]?FIVE) ([^;/]+) Build","replacement":"%s $2"},{"regex":"; *(Gionee)[ _\\-]([^;/]+)(?:/[^;/]+)? Build","replacement":"%s $2"},{"regex":"; *(GN\\d+[A-Z]?|INFINITY_PASSION|Ctrl_V1) Build","replacement":"Gionee %s"},{"regex":"; *(E3) Build/JOP40D","replacement":"Gionee %s"},{"regex":"; *((?:FONE|QUANTUM|INSIGNIA) \\d+[^;/]*|PLAYTAB) Build","replacement":"GoClever %s"},{"regex":"; *GOCLEVER ([^;/]+) Build","replacement":"GoClever %s"},{"regex":"; *(Glass \\d+) Build","replacement":"%s"},{"regex":"; *(GSmart)[ -]([^/]+) Build","replacement":"%s $2"},{"regex":"; *(imx5[13]_[^/]+) Build","replacement":"Freescale %s"},{"regex":"; *Haier[ _\\-]([^/]+) Build","replacement":"Haier %s"},{"regex":"; *(PAD1016) Build","replacement":"Haipad %s"},{"regex":"; *(M701|M7|M8|M9) Build","replacement":"Haipad %s"},{"regex":"; *(SN\\d+T[^;\\)/]*)(?: Build|[;\\)])","replacement":"Hannspree %s"},{"regex":"Build/HCL ME Tablet ([^;\\)]+)[\\);]","replacement":"HCLme %s"},{"regex":"; *([^;\\/]+) Build/HCL","replacement":"HCLme %s"},{"regex":"; *(MID-?\\d{4}C[EM]) Build","replacement":"Hena %s"},{"regex":"; *(EG\\d{2,}|HS-[^;/]+|MIRA[^;/]+) Build","replacement":"Hisense %s"},{"regex":"; *(andromax[^;/]+) Build","replacement":"Hisense %s"},{"regex":"; *(?:AMAZE[ _](S\\d+)|(S\\d+)[ _]AMAZE) Build","replacement":"AMAZE %s$2"},{"regex":"; *(PlayBook) Build","replacement":"HP %s"},{"regex":"; *HP ([^/]+) Build","replacement":"HP %s"},{"regex":"; *([^/]+_tenderloin) Build","replacement":"HP TouchPad"},{"regex":"; *(HUAWEI |Huawei-)?([UY][^;/]+) Build/(?:Huawei|HUAWEI)([UY][^\\);]+)\\)","replacement":"%s$2"},{"regex":"; *([^;/]+) Build[/ ]Huawei(MT1-U06|[A-Z]+\\d+[^\\);]+)[^\\);]*\\)","replacement":"%s"},{"regex":"; *(S7|M860) Build","replacement":"%s"},{"regex":"; *((?:HUAWEI|Huawei)[ \\-]?)(MediaPad) Build","replacement":"%s$2"},{"regex":"; *((?:HUAWEI[ _]?|Huawei[ _])?Ascend[ _])([^;/]+) Build","replacement":"%s$2"},{"regex":"; *((?:HUAWEI|Huawei)[ _\\-]?)((?:G700-|MT-)[^;/]+) Build","replacement":"%s$2"},{"regex":"; *((?:HUAWEI|Huawei)[ _\\-]?)([^;/]+) Build","replacement":"%s$2"},{"regex":"; *(MediaPad[^;]+|SpringBoard) Build/Huawei","replacement":"%s"},{"regex":"; *([^;]+) Build/Huawei","replacement":"%s"},{"regex":"; *([Uu])([89]\\d{3}) Build","replacement":"%s$2"},{"regex":"; *(?:Ideos |IDEOS )(S7) Build","replacement":"Huawei Ideos%s"},{"regex":"; *(?:Ideos |IDEOS )([^;/]+\\s*|\\s*)Build","replacement":"Huawei Ideos%s"},{"regex":"; *(Orange Daytona|Pulse|Pulse Mini|Vodafone 858|C8500|C8600|C8650|C8660) Build","replacement":"Huawei %s"},{"regex":"; *HTC[ _]([^;]+); Windows Phone","replacement":"HTC %s"},{"regex":"; *(?:HTC[ _/])+([^ _/]+)(?:[/\\\\]1\\.0 | V|/| +)\\d+\\.\\d[\\d\\.]*(?: *Build|\\))","replacement":"HTC %s"},{"regex":"; *(?:HTC[ _/])+([^ _/]+)(?:[ _/]([^ _/]+))?(?:[/\\\\]1\\.0 | V|/| +)\\d+\\.\\d[\\d\\.]*(?: *Build|\\))","replacement":"HTC %s $2"},{"regex":"; *(?:HTC[ _/])+([^ _/]+)(?:[ _/]([^ _/]+)(?:[ _/]([^ _/]+))?)?(?:[/\\\\]1\\.0 | V|/| +)\\d+\\.\\d[\\d\\.]*(?: *Build|\\))","replacement":"HTC %s $2 $3"},{"regex":"; *(?:HTC[ _/])+([^ _/]+)(?:[ _/]([^ _/]+)(?:[ _/]([^ _/]+)(?:[ _/]([^ _/]+))?)?)?(?:[/\\\\]1\\.0 | V|/| +)\\d+\\.\\d[\\d\\.]*(?: *Build|\\))","replacement":"HTC %s $2 $3 $4"},{"regex":"; *(?:(?:HTC|htc)(?:_blocked)*[ _/])+([^ _/;]+)(?: *Build|[;\\)]| - )","replacement":"HTC %s"},{"regex":"; *(?:(?:HTC|htc)(?:_blocked)*[ _/])+([^ _/]+)(?:[ _/]([^ _/;\\)]+))?(?: *Build|[;\\)]| - )","replacement":"HTC %s $2"},{"regex":"; *(?:(?:HTC|htc)(?:_blocked)*[ _/])+([^ _/]+)(?:[ _/]([^ _/]+)(?:[ _/]([^ _/;\\)]+))?)?(?: *Build|[;\\)]| - )","replacement":"HTC %s $2 $3"},{"regex":"; *(?:(?:HTC|htc)(?:_blocked)*[ _/])+([^ _/]+)(?:[ _/]([^ _/]+)(?:[ _/]([^ _/]+)(?:[ _/]([^ /;]+))?)?)?(?: *Build|[;\\)]| - )","replacement":"HTC %s $2 $3 $4"},{"regex":"HTC Streaming Player [^\\/]*/[^\\/]*/ htc_([^/]+) /","replacement":"HTC %s"},{"regex":"(?:[;,] *|^)(?:htccn_chs-)?HTC[ _-]?([^;]+?)(?: *Build|clay|Android|-?Mozilla| Opera| Profile| UNTRUSTED|[;/\\(\\)]|$)","replacement":"HTC %s"},{"regex":"; *(A6277|ADR6200|ADR6300|ADR6350|ADR6400[A-Z]*|ADR6425[A-Z]*|APX515CKT|ARIA|Desire[^_ ]*|Dream|EndeavorU|Eris|Evo|Flyer|HD2|Hero|HERO200|Hero CDMA|HTL21|Incredible|Inspire[A-Z0-9]*|Legend|Liberty|Nexus ?(?:One|HD2)|One|One S C2|One[ _]?(?:S|V|X\\+?)\\w*|PC36100|PG06100|PG86100|S31HT|Sensation|Wildfire)(?: Build|[/;\\(\\)])","replacement":"HTC %s"},{"regex":"; *(ADR6200|ADR6400L|ADR6425LVW|Amaze|DesireS?|EndeavorU|Eris|EVO|Evo\\d[A-Z]+|HD2|IncredibleS?|Inspire[A-Z0-9]*|Inspire[A-Z0-9]*|Sensation[A-Z0-9]*|Wildfire)[ _-](.+?)(?:[/;\\)]|Build|MIUI|1\\.0)","replacement":"HTC %s $2"},{"regex":"; *HYUNDAI (T\\d[^/]*) Build","replacement":"Hyundai %s"},{"regex":"; *HYUNDAI ([^;/]+) Build","replacement":"Hyundai %s"},{"regex":"; *(X700|Hold X|MB-6900) Build","replacement":"Hyundai %s"},{"regex":"; *(?:iBall[ _\\-])?(Andi)[ _]?(\\d[^;/]*) Build","replacement":"%s $2"},{"regex":"; *(IBall)(?:[ _]([^;/]+)|) Build","replacement":"%s $2"},{"regex":"; *(NT-\\d+[^ ;/]*|Net[Tt]AB [^;/]+|Mercury [A-Z]+|iconBIT)(?: S/N:[^;/]+)? Build","replacement":"%s"},{"regex":"; *(IMO)[ _]([^;/]+) Build","replacement":"%s $2"},{"regex":"; *i-?mobile[ _]([^/]+) Build/","replacement":"i-mobile %s"},{"regex":"; *(i-(?:style|note)[^/]*) Build/","replacement":"i-mobile %s"},{"regex":"; *(ImPAD) ?(\\d+(?:.)*) Build","replacement":"%s $2"},{"regex":"; *(Infinix)[ _]([^;/]+) Build","replacement":"%s $2"},{"regex":"; *(Informer)[ \\-]([^;/]+) Build","replacement":"%s $2"},{"regex":"; *(TAB) ?([78][12]4) Build","replacement":"Intenso %s"},{"regex":"; *(?:Intex[ _])?(AQUA|Aqua)([ _\\.\\-])([^;/]+) *(?:Build|;)","replacement":"%s$2$3"},{"regex":"; *(?:INTEX|Intex)(?:[_ ]([^\\ _;/]+))(?:[_ ]([^\\ _;/]+))? *(?:Build|;)","replacement":"%s $2"},{"regex":"; *([iI]Buddy)[ _]?(Connect)(?:_|\\?_| )?([^;/]*) *(?:Build|;)","replacement":"%s $2 $3"},{"regex":"; *(I-Buddy)[ _]([^;/]+) *(?:Build|;)","replacement":"%s $2"},{"regex":"; *(iOCEAN) ([^/]+) Build","replacement":"%s $2"},{"regex":"; *(TP\\d+(?:\\.\\d+)?\\-\\d[^;/]+) Build","replacement":"ionik %s"},{"regex":"; *(M702pro) Build","replacement":"%s"},{"regex":"; *(DE88Plus|MD70) Build","replacement":"%s"},{"regex":"; *IVIO[_\\-]([^;/]+) Build","replacement":"%s"},{"regex":"; *(TPC-\\d+|JAY-TECH) Build","replacement":"%s"},{"regex":"; *(JY-[^;/]+|G[234]S?) Build","replacement":"%s"},{"regex":"; *(JXD)[ _\\-]([^;/]+) Build","replacement":"%s $2"},{"regex":"; *Karbonn[ _]?([^;/]+) *(?:Build|;)","replacement":"%s"},{"regex":"; *([^;]+) Build/Karbonn","replacement":"%s"},{"regex":"; *(A11|A39|A37|A34|ST8|ST10|ST7|Smart Tab3|Smart Tab2|Titanium S\\d) +Build","replacement":"%s"},{"regex":"; *(IS01|IS03|IS05|IS\\d{2}SH) Build","replacement":"%s"},{"regex":"; *(IS04) Build","replacement":"%s"},{"regex":"; *(IS06|IS\\d{2}PT) Build","replacement":"%s"},{"regex":"; *(IS11S) Build","replacement":"%s"},{"regex":"; *(IS11CA) Build","replacement":"%s"},{"regex":"; *(IS11LG) Build","replacement":"%s"},{"regex":"; *(IS11N) Build","replacement":"%s"},{"regex":"; *(IS11PT) Build","replacement":"%s"},{"regex":"; *(IS12F) Build","replacement":"%s"},{"regex":"; *(IS12M) Build","replacement":"%s"},{"regex":"; *(IS12S) Build","replacement":"%s"},{"regex":"; *(ISW11F) Build","replacement":"%s"},{"regex":"; *(ISW11HT) Build","replacement":"%s"},{"regex":"; *(ISW11K) Build","replacement":"%s"},{"regex":"; *(ISW11M) Build","replacement":"%s"},{"regex":"; *(ISW11SC) Build","replacement":"%s"},{"regex":"; *(ISW12HT) Build","replacement":"%s"},{"regex":"; *(ISW13HT) Build","replacement":"%s"},{"regex":"; *(ISW?[0-9]{2}[A-Z]{0,2}) Build","replacement":"%s"},{"regex":"; *(INFOBAR [^;/]+) Build","replacement":"%s"},{"regex":"; *(JOYPAD|Joypad)[ _]([^;/]+) Build/","replacement":"%s $2"},{"regex":"; *(Vox|VOX|Arc|K080) Build/","replacement":"%s"},{"regex":"\\b(Kobo Touch)\\b","replacement":"%s"},{"regex":"; *(K-Touch)[ _]([^;/]+) Build","replacement":"%s $2"},{"regex":"; *((?:EV|KM)-S\\d+[A-Z]?) Build","replacement":"%s"},{"regex":"; *(Zio|Hydro|Torque|Event|EVENT|Echo|Milano|Rise|URBANO PROGRESSO|WX04K|WX06K|WX10K|KYL21|101K|C5[12]\\d{2}) Build/","replacement":"%s"},{"regex":"; *(?:LAVA[ _])?IRIS[ _\\-]?([^/;\\)]+) *(?:;|\\)|Build)","replacement":"Iris %s"},{"regex":"; *LAVA[ _]([^;/]+) Build","replacement":"%s"},{"regex":"; *(?:(Aspire A1)|(?:LEMON|Lemon)[ _]([^;/]+))_? Build","replacement":"Lemon %s$2"},{"regex":"; *(TAB-1012) Build/","replacement":"Lenco %s"},{"regex":"; Lenco ([^;/]+) Build/","replacement":"Lenco %s"},{"regex":"; *(A1_07|A2107A-H|S2005A-H|S1-37AH0) Build","replacement":"%s"},{"regex":"; *(Idea[Tp]ab)[ _]([^;/]+);? Build","replacement":"Lenovo %s $2"},{"regex":"; *(Idea(?:Tab|pad)) ?([^;/]+) Build","replacement":"Lenovo %s $2"},{"regex":"; *(ThinkPad) ?(Tablet) Build/","replacement":"Lenovo %s $2"},{"regex":"; *(?:LNV-)?(?:=?[Ll]enovo[ _\\-]?|LENOVO[ _])+(.+?)(?:Build|[;/\\)])","replacement":"Lenovo %s"},{"regex":"[;,] (?:Vodafone )?(SmartTab) ?(II) ?(\\d+) Build/","replacement":"Lenovo %s $2 $3"},{"regex":"; *(?:Ideapad )?K1 Build/","replacement":"Lenovo Ideapad K1"},{"regex":"; *(3GC101|3GW10[01]|A390) Build/","replacement":"%s"},{"regex":"\\b(?:Lenovo|LENOVO)+[ _\\-]?([^,;:/ ]+)","replacement":"Lenovo %s"},{"regex":"; *(MFC\\d+)[A-Z]{2}([^;,/]*),? Build","replacement":"%s$2"},{"regex":"; *(E[34][0-9]{2}|LS[6-8][0-9]{2}|VS[6-9][0-9]+[^;/]+|Nexus [45]|GT540f?|Optimus (?:2X|G|4X HD)|OptimusX4HD) *(?:Build|;)","replacement":"%s"},{"regex":"[;:] *(L-\\d+[A-Z]|LGL\\d+[A-Z]?)(?:/V\\d+)? *(?:Build|[;\\)])","replacement":"%s"},{"regex":"; *(LG-)([A-Z]{1,2}\\d{2,}[^,;/\\)\\(]*?)(?:Build| V\\d+|[,;/\\)\\(]|$)","replacement":"%s$2"},{"regex":"; *(LG[ \\-]|LG)([^;/]+)[;/]? Build","replacement":"%s$2"},{"regex":"^(LG)-([^;/]+)/ Mozilla/.*; Android","replacement":"%s $2"},{"regex":"; *((?:SMB|smb)[^;/]+) Build/","replacement":"%s"},{"regex":"; *(?:Malata|MALATA) ([^;/]+) Build/","replacement":"%s"},{"regex":"; *(MS[45][0-9]{3}|MID0[568][NS]?|MID[1-9]|MID[78]0[1-9]|MID970[1-9]|MID100[1-9]) Build/","replacement":"%s"},{"regex":"; *(M1052|M806|M9000|M9100|M9701|MID100|MID120|MID125|MID130|MID135|MID140|MID701|MID710|MID713|MID727|MID728|MID731|MID732|MID733|MID735|MID736|MID737|MID760|MID800|MID810|MID820|MID830|MID833|MID835|MID860|MID900|MID930|MID933|MID960|MID980) Build/","replacement":"%s"},{"regex":"; *(GenxDroid7|MSD7.*|AX\\d.*|Tab 701|Tab 722) Build/","replacement":"Maxx %s"},{"regex":"; *(M-PP[^;/]+|PhonePad ?\\d{2,}[^;/]+) Build","replacement":"Mediacom %s"},{"regex":"; *(M-MP[^;/]+|SmartPad ?\\d{2,}[^;/]+) Build","replacement":"Mediacom %s"},{"regex":"; *(?:MD_)?LIFETAB[ _]([^;/]+) Build","replacement":"Medion Lifetab %s"},{"regex":"; *MEDION ([^;/]+) Build","replacement":"Medion %s"},{"regex":"; *(M030|M031|M035|M040|M065|m9) Build","replacement":"Meizu %s"},{"regex":"; *(?:meizu_|MEIZU )(.+?) *(?:Build|[;\\)])","replacement":"Meizu %s"},{"regex":"; *(?:Micromax[ _](A111|A240)|(A111|A240)) Build","replacement":"Micromax %s$2"},{"regex":"; *Micromax[ _](A\\d{2,3}[^;/]*) Build","replacement":"Micromax %s"},{"regex":"; *(A\\d{2}|A[12]\\d{2}|A90S|A110Q) Build","replacement":"Micromax %s"},{"regex":"; *Micromax[ _](P\\d{3}[^;/]*) Build","replacement":"Micromax %s"},{"regex":"; *(P\\d{3}|P\\d{3}\\(Funbook\\)) Build","replacement":"Micromax %s"},{"regex":"; *(MITO)[ _\\-]?([^;/]+) Build","replacement":"%s $2"},{"regex":"; *(Cynus)[ _](F5|T\\d|.+?) *(?:Build|[;/\\)])","replacement":"%s $2"},{"regex":"; *(MODECOM )?(FreeTab) ?([^;/]+) Build","replacement":"%s$2 $3"},{"regex":"; *(MODECOM )([^;/]+) Build","replacement":"%s $2"},{"regex":"; *(MZ\\d{3}\\+?|MZ\\d{3} 4G|Xoom|XOOM[^;/]*) Build","replacement":"Motorola %s"},{"regex":"; *(Milestone )(XT[^;/]*) Build","replacement":"Motorola %s$2"},{"regex":"; *(Motoroi ?x|Droid X|DROIDX) Build","replacement":"Motorola %s"},{"regex":"; *(Droid[^;/]*|DROID[^;/]*|Milestone[^;/]*|Photon|Triumph|Devour|Titanium) Build","replacement":"Motorola %s"},{"regex":"; *(A555|A85[34][^;/]*|A95[356]|ME[58]\\d{2}\\+?|ME600|ME632|ME722|MB\\d{3}\\+?|MT680|MT710|MT870|MT887|MT917|WX435|WX453|WX44[25]|XT\\d{3,4}[A-Z\\+]*|CL[iI]Q|CL[iI]Q XT) Build","replacement":"%s"},{"regex":"; *(Motorola MOT-|Motorola[ _\\-]|MOT\\-?)([^;/]+) Build","replacement":"%s$2"},{"regex":"; *(Moto[_ ]?|MOT\\-)([^;/]+) Build","replacement":"%s$2"},{"regex":"; *((?:MP[DQ]C|MPG\\d{1,4}|MP\\d{3,4}|MID(?:(?:10[234]|114|43|7[247]|8[24]|7)C|8[01]1))[^;/]*) Build","replacement":"%s"},{"regex":"; *(?:MSI[ _])?(Primo\\d+|Enjoy[ _\\-][^;/]+) Build","replacement":"%s"},{"regex":"; *Multilaser[ _]([^;/]+) Build","replacement":"%s"},{"regex":"; *(My)[_]?(Pad)[ _]([^;/]+) Build","replacement":"%s$2 $3"},{"regex":"; *(My)\\|?(Phone)[ _]([^;/]+) Build","replacement":"%s$2 $3"},{"regex":"; *(A\\d+)[ _](Duo)? Build","replacement":"%s $2"},{"regex":"; *(myTab[^;/]*) Build","replacement":"%s"},{"regex":"; *(NABI2?-)([^;/]+) Build/","replacement":"%s$2"},{"regex":"; *(N-\\d+[CDE]) Build/","replacement":"%s"},{"regex":"; ?(NEC-)(.*) Build/","replacement":"%s$2"},{"regex":"; *(LT-NA7) Build/","replacement":"%s"},{"regex":"; *(NXM\\d+[A-z0-9_]*|Next\\d[A-z0-9_ \\-]*|NEXT\\d[A-z0-9_ \\-]*|Nextbook [A-z0-9_ ]*|DATAM803HC|M805)(?: Build|[\\);])","replacement":"%s"},{"regex":"; *(Nokia)([ _\\-]*)([^;/]*) Build","replacement":"%s$2$3"},{"regex":"; *(Nook ?|Barnes & Noble Nook |BN )([^;/]+) Build","replacement":"%s$2"},{"regex":"; *(NOOK )?(BNRV200|BNRV200A|BNTV250|BNTV250A|BNTV400|BNTV600|LogicPD Zoom2) Build","replacement":"%s$2"},{"regex":"; Build/(Nook)","replacement":"%s"},{"regex":"; *(OP110|OliPad[^;/]+) Build","replacement":"Olivetti %s"},{"regex":"; *OMEGA[ _\\-](MID[^;/]+) Build","replacement":"Omega %s"},{"regex":"^(MID7500|MID\\d+) Mozilla/5\\.0 \\(iPad;","replacement":"Omega %s"},{"regex":"; *((?:CIUS|cius)[^;/]*) Build","replacement":"Openpeak %s"},{"regex":"; *(Find ?(?:5|7a)|R8[012]\\d{1,2}|T703\\d{0,1}|U70\\d{1,2}T?|X90\\d{1,2}) Build","replacement":"Oppo %s"},{"regex":"; *OPPO ?([^;/]+) Build/","replacement":"Oppo %s"},{"regex":"; *(?:Odys\\-|ODYS\\-|ODYS )([^;/]+) Build","replacement":"Odys %s"},{"regex":"; *(SELECT) ?(7) Build","replacement":"Odys %s $2"},{"regex":"; *(PEDI)_(PLUS)_(W) Build","replacement":"Odys %s $2 $3"},{"regex":"; *(AEON|BRAVIO|FUSION|FUSION2IN1|Genio|EOS10|IEOS[^;/]*|IRON|Loox|LOOX|LOOX Plus|Motion|NOON|NOON_PRO|NEXT|OPOS|PEDI[^;/]*|PRIME[^;/]*|STUDYTAB|TABLO|Tablet-PC-4|UNO_X8|XELIO[^;/]*|Xelio ?\\d+ ?[Pp]ro|XENO10|XPRESS PRO) Build","replacement":"Odys %s"},{"regex":"; *(TP-\\d+) Build/","replacement":"Orion %s"},{"regex":"; *(G100W?) Build/","replacement":"PackardBell %s"},{"regex":"; *(Panasonic)[_ ]([^;/]+) Build","replacement":"%s $2"},{"regex":"; *(FZ-A1B|JT-B1) Build","replacement":"Panasonic %s"},{"regex":"; *(dL1|DL1) Build","replacement":"Panasonic %s"},{"regex":"; *(SKY[ _])?(IM\\-[AT]\\d{3}[^;/]+).* Build/","replacement":"Pantech %s$2"},{"regex":"; *((?:ADR8995|ADR910L|ADR930L|ADR930VW|PTL21|P8000)(?: 4G)?) Build/","replacement":"%s"},{"regex":"; *Pantech([^;/]+).* Build/","replacement":"Pantech %s"},{"regex":"; *(papyre)[ _\\-]([^;/]+) Build/","replacement":"%s $2"},{"regex":"; *(?:Touchlet )?(X10\\.[^;/]+) Build/","replacement":"Pearl %s"},{"regex":"; PHICOMM (i800) Build/","replacement":"Phicomm %s"},{"regex":"; PHICOMM ([^;/]+) Build/","replacement":"Phicomm %s"},{"regex":"; *(FWS\\d{3}[^;/]+) Build/","replacement":"Phicomm %s"},{"regex":"; *(D633|D822|D833|T539|T939|V726|W335|W336|W337|W3568|W536|W5510|W626|W632|W6350|W6360|W6500|W732|W736|W737|W7376|W820|W832|W8355|W8500|W8510|W930) Build","replacement":"%s"},{"regex":"; *(?:Philips|PHILIPS)[ _]([^;/]+) Build","replacement":"Philips %s"},{"regex":"Android 4\\..*; *(M[12356789]|U[12368]|S[123])\\ ?(pro)? Build","replacement":"Pipo %s$2"},{"regex":"; *(MOMO[^;/]+) Build","replacement":"%s"},{"regex":"; *(?:Polaroid[ _])?((?:MIDC\\d{3,}|PMID\\d{2,}|PTAB\\d{3,})[^;/]*)(\\/[^;/]*)? Build/","replacement":"%s"},{"regex":"; *(?:Polaroid )(Tablet) Build/","replacement":"%s"},{"regex":"; *(POMP)[ _\\-](.+?) *(?:Build|[;/\\)])","replacement":"%s $2"},{"regex":"; *(TB07STA|TB10STA|TB07FTA|TB10FTA) Build/","replacement":"%s"},{"regex":"; *(?:Positivo )?((?:YPY|Ypy)[^;/]+) Build/","replacement":"%s"},{"regex":"; *(MOB-[^;/]+) Build/","replacement":"%s"},{"regex":"; *POV[ _\\-]([^;/]+) Build/","replacement":"POV %s"},{"regex":"; *((?:TAB-PLAYTAB|TAB-PROTAB|PROTAB|PlayTabPro|Mobii[ _\\-]|TAB-P)[^;/]*) Build/","replacement":"POV %s"},{"regex":"; *(?:Prestigio )?((?:PAP|PMP)\\d[^;/]+) Build/","replacement":"Prestigio %s"},{"regex":"; *(PLT[0-9]{4}.*) Build/","replacement":"%s"},{"regex":"; *(A2|A5|A8|A900)_?(Classic)? Build","replacement":"%s $2"},{"regex":"; *(Q[Mm]obile)_([^_]+)_([^_]+) Build","replacement":"Qmobile $2 $3"},{"regex":"; *(Q\\-?[Mm]obile)[_ ](A[^;/]+) Build","replacement":"Qmobile $2"},{"regex":"; *(Q\\-Smart)[ _]([^;/]+) Build/","replacement":"%s $2"},{"regex":"; *(Q\\-?[Mm]obile)[ _\\-](S[^;/]+) Build/","replacement":"%s $2"},{"regex":"; *(TA1013) Build","replacement":"%s"},{"regex":"; *(RK\\d+),? Build/","replacement":"%s"},{"regex":" Build/(RK\\d+)","replacement":"%s"},{"regex":"; *(SAMSUNG |Samsung )?((?:Galaxy (?:Note II|S\\d)|GT-I9082|GT-I9205|GT-N7\\d{3}|SM-N9005)[^;/]*)\\/?[^;/]* Build/","replacement":"Samsung %s$2"},{"regex":"; *(Google )?(Nexus [Ss](?: 4G)?) Build/","replacement":"Samsung %s$2"},{"regex":"; *(SAMSUNG |Samsung )([^\\/]*)\\/[^ ]* Build/","replacement":"Samsung $2"},{"regex":"; *(Galaxy(?: Ace| Nexus| S ?II+|Nexus S| with MCR 1.2| Mini Plus 4G)?) Build/","replacement":"Samsung %s"},{"regex":"; *(SAMSUNG[ _\\-] *)+([^;/]+) Build","replacement":"Samsung $2"},{"regex":"; *(SAMSUNG-)?(GT\\-[BINPS]\\d{4}[^\\/]*)(\\/[^ ]*) Build","replacement":"Samsung %s$2$3"},{"regex":"(?:; *|^)((?:GT\\-[BIiNPS]\\d{4}|I9\\d{2}0[A-Za-z\\+]?\\b)[^;/\\)]*?)(?:Build|Linux|MIUI|[;/\\)])","replacement":"Samsung %s"},{"regex":"; (SAMSUNG-)([A-Za-z0-9\\-]+).* Build/","replacement":"Samsung %s$2"},{"regex":"; *((?:SCH|SGH|SHV|SHW|SPH|SC|SM)\\-[A-Za-z0-9 ]+)(/?[^ ]*)? Build","replacement":"Samsung %s"},{"regex":" ((?:SCH)\\-[A-Za-z0-9 ]+)(/?[^ ]*)? Build","replacement":"Samsung %s"},{"regex":"; *(Behold ?(?:2|II)|YP\\-G[^;/]+|EK-GC100|SCL21|I9300) Build","replacement":"Samsung %s"},{"regex":"; *(SH\\-?\\d\\d[^;/]+|SBM\\d[^;/]+) Build","replacement":"%s"},{"regex":"; *(SHARP[ -])([^;/]+) Build","replacement":"%s$2"},{"regex":"; *(SPX[_\\-]\\d[^;/]*) Build/","replacement":"%s"},{"regex":"; *(SX7\\-PEARL\\.GmbH) Build/","replacement":"%s"},{"regex":"; *(SP[T]?\\-\\d{2}[^;/]*) Build/","replacement":"%s"},{"regex":"; *(SK\\-.*) Build/","replacement":"%s"},{"regex":"; *(?:SKYTEX|SX)-([^;/]+) Build","replacement":"%s"},{"regex":"; *(IMAGINE [^;/]+) Build","replacement":"%s"},{"regex":"; *(SmartQ) ?([^;/]+) Build/","replacement":"%s $2"},{"regex":"; *(WF7C|WF10C|SBT[^;/]+) Build","replacement":"%s"},{"regex":"; *(SBM(?:003SH|005SH|006SH|007SH|102SH)) Build","replacement":"%s"},{"regex":"; *(003P|101P|101P11C|102P) Build","replacement":"%s"},{"regex":"; *(00\\dZ) Build/","replacement":"%s"},{"regex":"; HTC(X06HT) Build","replacement":"%s"},{"regex":"; *(001HT|X06HT) Build","replacement":"%s"},{"regex":"; *(201M) Build","replacement":"%s"},{"regex":"; *(ST\\d{4}.*)Build/ST","replacement":"Trekstor %s"},{"regex":"; *(ST\\d{4}.*) Build/","replacement":"Trekstor %s"},{"regex":"; *(Sony ?Ericsson ?)([^;/]+) Build","replacement":"%s$2"},{"regex":"; *((?:SK|ST|E|X|LT|MK|MT|WT)\\d{2}[a-z0-9]*(?:-o)?|R800i|U20i) Build","replacement":"%s"},{"regex":"; *(Xperia (?:A8|Arc|Acro|Active|Live with Walkman|Mini|Neo|Play|Pro|Ray|X\\d+)[^;/]*) Build","replacement":"%s"},{"regex":"; Sony (Tablet[^;/]+) Build","replacement":"Sony %s"},{"regex":"; Sony ([^;/]+) Build","replacement":"Sony %s"},{"regex":"; *(Sony)([A-Za-z0-9\\-]+) Build","replacement":"%s $2"},{"regex":"; *(Xperia [^;/]+) Build","replacement":"%s"},{"regex":"; *(C(?:1[0-9]|2[0-9]|53|55|6[0-9])[0-9]{2}|D[25]\\d{3}|D6[56]\\d{2}) Build","replacement":"%s"},{"regex":"; *(SGP\\d{3}|SGPT\\d{2}) Build","replacement":"%s"},{"regex":"; *(NW-Z1000Series) Build","replacement":"%s"},{"regex":"PLAYSTATION 3","replacement":"PlayStation 3"},{"regex":"(PlayStation (?:Portable|Vita|\\d+))","replacement":"%s"},{"regex":"; *((?:CSL_Spice|Spice|SPICE|CSL)[ _\\-]?)?([Mm][Ii])([ _\\-])?(\\d{3}[^;/]*) Build/","replacement":"%s$2$3$4"},{"regex":"; *(Sprint )(.+?) *(?:Build|[;/])","replacement":"%s$2"},{"regex":"\\b(Sprint)[: ]([^;,/ ]+)","replacement":"%s$2"},{"regex":"; *(TAGI[ ]?)(MID) ?([^;/]+) Build/","replacement":"%s$2$3"},{"regex":"; *(Oyster500|Opal 800) Build","replacement":"Tecmobile %s"},{"regex":"; *(TECNO[ _])([^;/]+) Build/","replacement":"%s$2"},{"regex":"; *Android for (Telechips|Techvision) ([^ ]+) ","replacement":"%s $2"},{"regex":"; *(T-Hub2) Build/","replacement":"%s"},{"regex":"; *(PAD) ?(100[12]) Build/","replacement":"Terra %s$2"},{"regex":"; *(T[BM]-\\d{3}[^;/]+) Build/","replacement":"%s"},{"regex":"; *(tolino [^;/]+) Build","replacement":"%s"},{"regex":"; *Build/.* (TOLINO_BROWSER)","replacement":"%s"},{"regex":"; *(?:CJ[ -])?(ThL|THL)[ -]([^;/]+) Build/","replacement":"%s $2"},{"regex":"; *(T100|T200|T5|W100|W200|W8s) Build/","replacement":"%s"},{"regex":"; *(T-Mobile[ _]G2[ _]Touch) Build","replacement":"%s"},{"regex":"; *(T-Mobile[ _]G2) Build","replacement":"%s"},{"regex":"; *(T-Mobile myTouch Q) Build","replacement":"%s"},{"regex":"; *(T-Mobile myTouch) Build","replacement":"%s"},{"regex":"; *(T-Mobile_Espresso) Build","replacement":"%s"},{"regex":"; *(T-Mobile G1) Build","replacement":"%s"},{"regex":"\\b(T-Mobile ?)?(myTouch)[ _]?([34]G)[ _]?([^\\/]*) (?:Mozilla|Build)","replacement":"%s$2 $3 $4"},{"regex":"\\b(T-Mobile)_([^_]+)_(.*) Build","replacement":"%s $2 $3"},{"regex":"\\b(T-Mobile)[_ ]?(.*?)Build","replacement":"%s $2"},{"regex":" (ATP[0-9]{4}) Build","replacement":"%s"},{"regex":" *(TOOKY)[ _\\-]([^;/]+) ?(?:Build|;)","replacement":"%s $2"},{"regex":"\\b(TOSHIBA_AC_AND_AZ|TOSHIBA_FOLIO_AND_A|FOLIO_AND_A)","replacement":"%s"},{"regex":"; *([Ff]olio ?100) Build/","replacement":"%s"},{"regex":"; *(AT[0-9]{2,3}(?:\\-A|LE\\-A|PE\\-A|SE|a)?|AT7-A|AT1S0|Hikari-iFrame/WDPF-[^;/]+|THRiVE|Thrive) Build/","replacement":"Toshiba %s"},{"regex":"; *(TM-MID\\d+[^;/]+|TOUCHMATE|MID-750) Build","replacement":"%s"},{"regex":"; *(TM-SM\\d+[^;/]+) Build","replacement":"%s"},{"regex":"; *(A10 [Bb]asic2?) Build/","replacement":"%s"},{"regex":"; *(TREQ[ _\\-])([^;/]+) Build","replacement":"%s$2"},{"regex":"; *(X-?5|X-?3) Build/","replacement":"%s"},{"regex":"; *(A502\\+?|A936|A603|X1|X2) Build/","replacement":"%s"},{"regex":"(TOUCH(?:TAB|PAD).+?) Build/","replacement":"Versus %s"},{"regex":"(VERTU) ([^;/]+) Build/","replacement":"%s $2"},{"regex":"; *(Videocon)[ _\\-]([^;/]+) *(?:Build|;)","replacement":"%s $2"},{"regex":" (VT\\d{2}[A-Za-z]*) Build","replacement":"%s"},{"regex":"; *((?:ViewPad|ViewPhone|VSD)[^;/]+) Build/","replacement":"%s"},{"regex":"; *(ViewSonic-)([^;/]+) Build/","replacement":"%s$2"},{"regex":"; *(GTablet.*) Build/","replacement":"%s"},{"regex":"; *([Vv]ivo)[ _]([^;/]+) Build","replacement":"%s $2"},{"regex":"(Vodafone) (.*) Build/","replacement":"%s $2"},{"regex":"; *(?:Walton[ _\\-])?(Primo[ _\\-][^;/]+) Build","replacement":"Walton %s"},{"regex":"; *(?:WIKO[ \\-])?(CINK\\+?|BARRY|BLOOM|DARKFULL|DARKMOON|DARKNIGHT|DARKSIDE|FIZZ|HIGHWAY|IGGY|OZZY|RAINBOW|STAIRWAY|SUBLIM|WAX|CINK [^;/]+) Build/","replacement":"Wiko %s"},{"regex":"; *WellcoM-([^;/]+) Build","replacement":"Wellcom %s"},{"regex":"(?:(WeTab)-Browser|; (wetab) Build)","replacement":"%s"},{"regex":"; *(AT-AS[^;/]+) Build","replacement":"Wolfgang %s"},{"regex":"; *(?:Woxter|Wxt) ([^;/]+) Build","replacement":"Woxter %s"},{"regex":"; *(?:Xenta |Luna )?(TAB[234][0-9]{2}|TAB0[78]-\\d{3}|TAB0?9-\\d{3}|TAB1[03]-\\d{3}|SMP\\d{2}-\\d{3}) Build/","replacement":"Yarvik %s"},{"regex":"; *([A-Z]{2,4})(M\\d{3,}[A-Z]{2})([^;\\)\\/]*)(?: Build|[;\\)])","replacement":"Yifang %s$2$3"},{"regex":"; *((MI|HM|MI-ONE|Redmi)[ -](NOTE |Note )?[^;/]*) Build/","replacement":"XiaoMi %s"},{"regex":"; *XOLO[ _]([^;/]*tab.*) Build","replacement":"Xolo %s"},{"regex":"; *XOLO[ _]([^;/]+) Build","replacement":"Xolo %s"},{"regex":"; *(q\\d0{2,3}[a-z]?) Build","replacement":"Xolo %s"},{"regex":"; *(PAD ?[79]\\d+[^;/]*|TelePAD\\d+[^;/]) Build","replacement":"Xoro %s"},{"regex":"; *(?:(?:ZOPO|Zopo)[ _]([^;/]+)|(ZP ?(?:\\d{2}[^;/]+|C2))|(C[2379])) Build","replacement":"%s$2$3"},{"regex":"; *(ZiiLABS) (Zii[^;/]*) Build","replacement":"%s $2"},{"regex":"; *(Zii)_([^;/]*) Build","replacement":"%s $2"},{"regex":"; *(ARIZONA|(?:ATLAS|Atlas) W|D930|Grand (?:[SX][^;]*|Era|Memo[^;]*)|JOE|(?:Kis|KIS)\\b[^;]*|Libra|Light [^;]*|N8[056][01]|N850L|N8000|N9[15]\\d{2}|N9810|NX501|Optik|(?:Vip )Racer[^;]*|RacerII|RACERII|San Francisco[^;]*|V9[AC]|V55|V881|Z[679][0-9]{2}[A-z]?) Build","replacement":"%s"},{"regex":"; *([A-Z]\\d+)_USA_[^;]* Build","replacement":"%s"},{"regex":"; *(SmartTab\\d+)[^;]* Build","replacement":"%s"},{"regex":"; *(?:Blade|BLADE|ZTE-BLADE)([^;/]*) Build","replacement":"ZTE Blade%s"},{"regex":"; *(?:Skate|SKATE|ZTE-SKATE)([^;/]*) Build","replacement":"ZTE Skate%s"},{"regex":"; *(Orange |Optimus )(Monte Carlo|San Francisco) Build","replacement":"%s$2"},{"regex":"; *(?:ZXY-ZTE_|ZTE\\-U |ZTE[\\- _]|ZTE-C[_ ])([^;/]+) Build","replacement":"ZTE %s"},{"regex":"; (BASE) (lutea|Lutea 2|Tab[^;]*) Build","replacement":"%s $2"},{"regex":"; (Avea inTouch 2|soft stone|tmn smart a7|Movistar[ _]Link) Build","replacement":"%s"},{"regex":"; *(vp9plus)\\)","replacement":"%s"},{"regex":"; ?(Cloud[ _]Z5|z1000|Z99 2G|z99|z930|z999|z990|z909|Z919|z900) Build/","replacement":"%s"},{"regex":"; ?(KFOT|Kindle Fire) Build\\b","replacement":"Kindle Fire"},{"regex":"; ?(KFOTE|Amazon Kindle Fire2) Build\\b","replacement":"Kindle Fire 2"},{"regex":"; ?(KFTT) Build\\b","replacement":"Kindle Fire HD"},{"regex":"; ?(KFJWI) Build\\b","replacement":"Kindle Fire HD 8.9\" WiFi"},{"regex":"; ?(KFJWA) Build\\b","replacement":"Kindle Fire HD 8.9\" 4G"},{"regex":"; ?(KFSOWI) Build\\b","replacement":"Kindle Fire HD 7\" WiFi"},{"regex":"; ?(KFTHWI) Build\\b","replacement":"Kindle Fire HDX 7\" WiFi"},{"regex":"; ?(KFTHWA) Build\\b","replacement":"Kindle Fire HDX 7\" 4G"},{"regex":"; ?(KFAPWI) Build\\b","replacement":"Kindle Fire HDX 8.9\" WiFi"},{"regex":"; ?(KFAPWA) Build\\b","replacement":"Kindle Fire HDX 8.9\" 4G"},{"regex":"; ?Amazon ([^;/]+) Build\\b","replacement":"%s"},{"regex":"; ?(Kindle) Build\\b","replacement":"Kindle"},{"regex":"; ?(Silk)/(\\d+)\\.(\\d+)(?:\\.([0-9\\-]+))? Build\\b","replacement":"Kindle Fire"},{"regex":" (Kindle)/(\\d+\\.\\d+)","replacement":"Kindle"},{"regex":" (Silk|Kindle)/(\\d+)\\.","replacement":"Kindle"},{"regex":"(sprd)\\-([^/]+)/","replacement":"%s $2"},{"regex":"; *(H\\d{2}00\\+?) Build","replacement":"%s"},{"regex":"; *(iphone|iPhone5) Build/","replacement":"Xianghe %s"},{"regex":"; *(e\\d{4}[a-z]?_?v\\d+|v89_[^;/]+)[^;/]+ Build/","replacement":"Xianghe %s"},{"regex":"\\bUSCC[_\\-]?([^ ;/\\)]+)","replacement":"%s"},{"regex":"Windows Phone [^;]+; .*?IEMobile/[^;\\)]+[;\\)] ?(?:ARM; ?Touch; ?|Touch; ?)?(?:ALCATEL)[^;]*; *([^;,\\)]+)","replacement":"Alcatel %s"},{"regex":"Windows Phone [^;]+; .*?IEMobile/[^;\\)]+[;\\)] ?(?:ARM; ?Touch; ?|Touch; ?|WpsLondonTest; ?)?(?:ASUS|Asus)[^;]*; *([^;,\\)]+)","replacement":"Asus %s"},{"regex":"Windows Phone [^;]+; .*?IEMobile/[^;\\)]+[;\\)] ?(?:ARM; ?Touch; ?|Touch; ?)?(?:DELL|Dell)[^;]*; *([^;,\\)]+)","replacement":"Dell %s"},{"regex":"Windows Phone [^;]+; .*?IEMobile/[^;\\)]+[;\\)] ?(?:ARM; ?Touch; ?|Touch; ?|WpsLondonTest; ?)?(?:HTC|Htc|HTC_blocked[^;]*)[^;]*; *(?:HTC)?([^;,\\)]+)","replacement":"HTC %s"},{"regex":"Windows Phone [^;]+; .*?IEMobile/[^;\\)]+[;\\)] ?(?:ARM; ?Touch; ?|Touch; ?)?(?:HUAWEI)[^;]*; *(?:HUAWEI )?([^;,\\)]+)","replacement":"Huawei %s"},{"regex":"Windows Phone [^;]+; .*?IEMobile/[^;\\)]+[;\\)] ?(?:ARM; ?Touch; ?|Touch; ?)?(?:LG|Lg)[^;]*; *(?:LG[ \\-])?([^;,\\)]+)","replacement":"LG %s"},{"regex":"Windows Phone [^;]+; .*?IEMobile/[^;\\)]+[;\\)] ?(?:ARM; ?Touch; ?|Touch; ?)?(?:NOKIA|Nokia)[^;]*; *(?:NOKIA ?|Nokia ?|LUMIA ?|[Ll]umia ?)*(\\d{3,}[^;\\)]*)","replacement":"Lumia %s"},{"regex":"Windows Phone [^;]+; .*?IEMobile/[^;\\)]+[;\\)] ?(?:ARM; ?Touch; ?|Touch; ?)?(?:NOKIA|Nokia)[^;]*; *(RM-\\d{3,})","replacement":"Nokia %s"},{"regex":"(?:Windows Phone [^;]+; .*?IEMobile/[^;\\)]+[;\\)]|WPDesktop;) ?(?:ARM; ?Touch; ?|Touch; ?)?(?:NOKIA|Nokia)[^;]*; *(?:NOKIA ?|Nokia ?|LUMIA ?|[Ll]umia ?)*([^;\\)]+)","replacement":"Nokia %s"},{"regex":"Windows Phone [^;]+; .*?IEMobile/[^;\\)]+[;\\)] ?(?:ARM; ?Touch; ?|Touch; ?)?(?:Microsoft(?: Corporation)?)[^;]*; *([^;,\\)]+)","replacement":"Microsoft %s"},{"regex":"Windows Phone [^;]+; .*?IEMobile/[^;\\)]+[;\\)] ?(?:ARM; ?Touch; ?|Touch; ?|WpsLondonTest; ?)?(?:SAMSUNG)[^;]*; *(?:SAMSUNG )?([^;,\\.\\)]+)","replacement":"Samsung %s"},{"regex":"Windows Phone [^;]+; .*?IEMobile/[^;\\)]+[;\\)] ?(?:ARM; ?Touch; ?|Touch; ?|WpsLondonTest; ?)?(?:TOSHIBA|FujitsuToshibaMobileCommun)[^;]*; *([^;,\\)]+)","replacement":"Toshiba %s"},{"regex":"Windows Phone [^;]+; .*?IEMobile/[^;\\)]+[;\\)] ?(?:ARM; ?Touch; ?|Touch; ?|WpsLondonTest; ?)?([^;]+); *([^;,\\)]+)","replacement":"%s $2"},{"regex":"(?:^|; )SAMSUNG\\-([A-Za-z0-9\\-]+).* Bada/","replacement":"Samsung %s"},{"regex":"\\(Mobile; ALCATEL ?(One|ONE) ?(Touch|TOUCH) ?([^;/]+)(?:/[^;]+)?; rv:[^\\)]+\\) Gecko/[^\\/]+ Firefox/","replacement":"Alcatel %s $2 $3"},{"regex":"\\(Mobile; (?:ZTE([^;]+)|(OpenC)); rv:[^\\)]+\\) Gecko/[^\\/]+ Firefox/","replacement":"ZTE %s$2"},{"regex":"Nokia(N[0-9]+)([A-z_\\-][A-z0-9_\\-]*)","replacement":"Nokia %s"},{"regex":"(?:NOKIA|Nokia)(?:\\-| *)(?:([A-Za-z0-9]+)\\-[0-9a-f]{32}|([A-Za-z0-9\\-]+)(?:UCBrowser)|([A-Za-z0-9\\-]+))","replacement":"Nokia %s$2$3"},{"regex":"Lumia ([A-Za-z0-9\\-]+)","replacement":"Lumia %s"},{"regex":"\\(Symbian; U; S60 V5; [A-z]{2}\\-[A-z]{2}; (SonyEricsson|Samsung|Nokia|LG)([^;/]+)\\)","replacement":"%s $2"},{"regex":"\\(Symbian(?:/3)?; U; ([^;]+);","replacement":"Nokia %s"},{"regex":"BB10; ([A-Za-z0-9\\- ]+)\\)","replacement":"BlackBerry %s"},{"regex":"Play[Bb]ook.+RIM Tablet OS","replacement":"BlackBerry Playbook"},{"regex":"Black[Bb]erry ([0-9]+);","replacement":"BlackBerry %s"},{"regex":"Black[Bb]erry([0-9]+)","replacement":"BlackBerry %s"},{"regex":"Black[Bb]erry;","replacement":"BlackBerry"},{"regex":"(Pre|Pixi)/\\d+\\.\\d+","replacement":"Palm %s"},{"regex":"Palm([0-9]+)","replacement":"Palm %s"},{"regex":"Treo([A-Za-z0-9]+)","replacement":"Palm Treo %s"},{"regex":"webOS.*(P160U(?:NA)?)/(\\d+).(\\d+)","replacement":"HP Veer"},{"regex":"(Touch[Pp]ad)/\\d+\\.\\d+","replacement":"HP TouchPad"},{"regex":"HPiPAQ([A-Za-z0-9]+)/\\d+.\\d+","replacement":"HP iPAQ %s"},{"regex":"PDA; (PalmOS)/sony/model ([a-z]+)/Revision","replacement":"%s"},{"regex":"(Apple\\s?TV)","replacement":"AppleTV"},{"regex":"(QtCarBrowser)","replacement":"Tesla Model S"},{"regex":"((?:iPhone|iPad|iPod)\\d+,\\d+)","replacement":"%s"},{"regex":"(iPad)(?:;| Simulator;)","replacement":"%s"},{"regex":"(iPod)(?:;| touch;| Simulator;)","replacement":"%s"},{"regex":"(iPhone)(?:;| Simulator;)","replacement":"%s"},{"regex":"CFNetwork/.* Darwin/\\d.*\\(((?:Mac|iMac|PowerMac|PowerBook)[^\\d]*)(\\d+)(?:,|%2C)(\\d+)","replacement":"%s$2,$3"},{"regex":"CFNetwork/.* Darwin/\\d","replacement":"iOS-Device"},{"regex":"acer_([A-Za-z0-9]+)_","replacement":"Acer %s"},{"regex":"(?:ALCATEL|Alcatel)-([A-Za-z0-9\\-]+)","replacement":"Alcatel %s"},{"regex":"(?:Amoi|AMOI)\\-([A-Za-z0-9]+)","replacement":"Amoi %s"},{"regex":"(?:; |\\/|^)((?:Transformer (?:Pad|Prime) |Transformer |PadFone[ _]?)[A-Za-z0-9]*)","replacement":"Asus %s"},{"regex":"(?:asus.*?ASUS|Asus|ASUS|asus)[\\- ;]*((?:Transformer (?:Pad|Prime) |Transformer |Padfone |Nexus[ _])?[A-Za-z0-9]+)","replacement":"Asus %s"},{"regex":"\\bBIRD[ \\-\\.]([A-Za-z0-9]+)","replacement":"Bird %s"},{"regex":"\\bDell ([A-Za-z0-9]+)","replacement":"Dell %s"},{"regex":"DoCoMo/2\\.0 ([A-Za-z0-9]+)","replacement":"DoCoMo %s"},{"regex":"([A-Za-z0-9]+)_W;FOMA","replacement":"DoCoMo %s"},{"regex":"([A-Za-z0-9]+);FOMA","replacement":"DoCoMo %s"},{"regex":"\\b(?:HTC/|HTC/[a-z0-9]+/)?HTC[ _\\-;]? *(.*?)(?:-?Mozilla|fingerPrint|[;/\\(\\)]|$)","replacement":"HTC %s"},{"regex":"Huawei([A-Za-z0-9]+)","replacement":"Huawei %s"},{"regex":"HUAWEI-([A-Za-z0-9]+)","replacement":"Huawei %s"},{"regex":"vodafone([A-Za-z0-9]+)","replacement":"Huawei Vodafone %s"},{"regex":"i\\-mate ([A-Za-z0-9]+)","replacement":"i-mate %s"},{"regex":"Kyocera\\-([A-Za-z0-9]+)","replacement":"Kyocera %s"},{"regex":"KWC\\-([A-Za-z0-9]+)","replacement":"Kyocera %s"},{"regex":"Lenovo[_\\-]([A-Za-z0-9]+)","replacement":"Lenovo %s"},{"regex":"(HbbTV)/[0-9]+\\.[0-9]+\\.[0-9]+ \\([^;]*; *(LG)E *; *([^;]*) *;[^;]*;[^;]*;\\)","replacement":"%s"},{"regex":"(HbbTV)/1\\.1\\.1.*CE-HTML/1\\.\\d;(Vendor/)*(THOM[^;]*?)[;\\s](?:.*SW-Version/.*)*(LF[^;]+);?","replacement":"%s"},{"regex":"(HbbTV)(?:/1\\.1\\.1)?(?: ?\\(;;;;;\\))?; *CE-HTML(?:/1\\.\\d)?; *([^ ]+) ([^;]+);","replacement":"%s"},{"regex":"(HbbTV)/1\\.1\\.1 \\(;;;;;\\) Maple_2011","replacement":"%s"},{"regex":"(HbbTV)/[0-9]+\\.[0-9]+\\.[0-9]+ \\([^;]*; *(?:CUS:([^;]*)|([^;]+)) *; *([^;]*) *;.*;","replacement":"%s"},{"regex":"(HbbTV)/[0-9]+\\.[0-9]+\\.[0-9]+","replacement":"%s"},{"regex":"LGE; (?:Media\\/)?([^;]*);[^;]*;[^;]*;?\\); \"?LG NetCast(\\.TV|\\.Media|)-\\d+","replacement":"NetCast$2"},{"regex":"InettvBrowser/[0-9]+\\.[0-9A-Z]+ \\([^;]*;(Sony)([^;]*);[^;]*;[^\\)]*\\)","replacement":"Inettv"},{"regex":"InettvBrowser/[0-9]+\\.[0-9A-Z]+ \\([^;]*;([^;]*);[^;]*;[^\\)]*\\)","replacement":"Inettv"},{"regex":"(?:InettvBrowser|TSBNetTV|NETTV|HBBTV)","replacement":"Inettv"},{"regex":"Series60/\\d\\.\\d (LG)[\\-]?([A-Za-z0-9 \\-]+)","replacement":"%s $2"},{"regex":"\\b(?:LGE[ \\-]LG\\-(?:AX)?|LGE |LGE?-LG|LGE?[ \\-]|LG[ /\\-]|lg[\\-])([A-Za-z0-9]+)\\b","replacement":"LG %s"},{"regex":"(?:^LG[\\-]?|^LGE[\\-/]?)([A-Za-z]+[0-9]+[A-Za-z]*)","replacement":"LG %s"},{"regex":"^LG([0-9]+[A-Za-z]*)","replacement":"LG %s"},{"regex":"(KIN\\.[^ ]+) (\\d+)\\.(\\d+)","replacement":"Microsoft %s"},{"regex":"(?:MSIE|XBMC).*\\b(Xbox)\\b","replacement":"%s"},{"regex":"; ARM; Trident/6\\.0; Touch[\\);]","replacement":"Microsoft Surface RT"},{"regex":"Motorola\\-([A-Za-z0-9]+)","replacement":"Motorola %s"},{"regex":"MOTO\\-([A-Za-z0-9]+)","replacement":"Motorola %s"},{"regex":"MOT\\-([A-z0-9][A-z0-9\\-]*)","replacement":"Motorola %s"},{"regex":"Nintendo WiiU","replacement":"Nintendo Wii U"},{"regex":"Nintendo (DS|3DS|DSi|Wii);","replacement":"Nintendo %s"},{"regex":"(?:Pantech|PANTECH)[ _-]?([A-Za-z0-9\\-]+)","replacement":"Pantech %s"},{"regex":"Philips([A-Za-z0-9]+)","replacement":"Philips %s"},{"regex":"Philips ([A-Za-z0-9]+)","replacement":"Philips %s"},{"regex":"SymbianOS/9\\.\\d.* Samsung[/\\-]([A-Za-z0-9 \\-]+)","replacement":"Samsung %s"},{"regex":"(Samsung)(SGH)(i[0-9]+)","replacement":"%s $2$3"},{"regex":"SAMSUNG-ANDROID-MMS/([^;/]+)","replacement":"%s"},{"regex":"SAMSUNG(?:; |[ -/])([A-Za-z0-9\\-]+)","replacement":"Samsung %s"},{"regex":"(Dreamcast)","replacement":"Sega %s"},{"regex":"^SIE-([A-Za-z0-9]+)","replacement":"Siemens %s"},{"regex":"Softbank/[12]\\.0/([A-Za-z0-9]+)","replacement":"Softbank %s"},{"regex":"SonyEricsson ?([A-Za-z0-9\\-]+)","replacement":"Ericsson %s"},{"regex":"Android [^;]+; ([^ ]+) (Sony)/","replacement":"$2 %s"},{"regex":"(Sony)(?:BDP\\/|\\/)?([^ /;\\)]+)[ /;\\)]","replacement":"%s $2"},{"regex":"Puffin/[\\d\\.]+IT","replacement":"iPad"},{"regex":"Puffin/[\\d\\.]+IP","replacement":"iPhone"},{"regex":"Puffin/[\\d\\.]+AT","replacement":"Generic Tablet"},{"regex":"Puffin/[\\d\\.]+AP","replacement":"Generic Smartphone"},{"regex":"Android[\\- ][\\d]+\\.[\\d]+; [A-Za-z]{2}\\-[A-Za-z]{0,2}; WOWMobile (.+) Build"},{"regex":"Android[\\- ][\\d]+\\.[\\d]+\\-update1; [A-Za-z]{2}\\-[A-Za-z]{0,2} *; *(.+?) Build"},{"regex":"Android[\\- ][\\d]+(?:\\.[\\d]+){1,2}; *[A-Za-z]{2}[_\\-][A-Za-z]{0,2}\\-? *; *(.+?) Build"},{"regex":"Android[\\- ][\\d]+(?:\\.[\\d]+){1,2}; *[A-Za-z]{0,2}\\- *; *(.+?) Build"},{"regex":"Android[\\- ][\\d]+(?:\\.[\\d]+){1,2}; *[a-z]{0,2}[_\\-]?[A-Za-z]{0,2};? Build","replacement":"Generic Smartphone"},{"regex":"Android[\\- ][\\d]+(?:\\.[\\d]+){1,2}; *\\-?[A-Za-z]{2}; *(.+?) Build"},{"regex":"Android[\\- ][\\d]+(?:\\.[\\d]+){1,2}(?:;.*)?; *(.+?) Build"},{"regex":"(GoogleTV)"},{"regex":"(WebTV)/\\d+.\\d+"},{"regex":"(Android 3\\.\\d|Opera Tablet|Tablet; .+Firefox/|Android.*(?:Tab|Pad))","replacement":"Generic Tablet"},{"regex":"(Symbian|\\bS60(Version|V\\d)|\\bS60\\b|\\((Series 60|Windows Mobile|Palm OS|Bada); Opera Mini|Windows CE|Opera Mobi|BREW|Brew|Mobile; .+Firefox/|iPhone OS|Android|MobileSafari|Windows *Phone|\\(webOS/|PalmOS)","replacement":"Generic Smartphone"},{"regex":"(hiptop|avantgo|plucker|xiino|blazer|elaine)","replacement":"Generic Smartphone"},{"regex":"(bot|zao|borg|DBot|oegp|silk|Xenu|zeal|^NING|CCBot|crawl|htdig|lycos|slurp|teoma|voila|yahoo|Sogou|CiBra|Nutch|^Java/|^JNLP/|Daumoa|Genieo|ichiro|larbin|pompos|Scrapy|snappy|speedy|spider|msnbot|msrbot|vortex|^vortex|crawler|favicon|indexer|Riddler|scooter|scraper|scrubby|WhatWeb|WinHTTP|bingbot|openbot|gigabot|furlbot|polybot|seekbot|^voyager|archiver|Icarus6j|mogimogi|Netvibes|blitzbot|altavista|charlotte|findlinks|Retreiver|TLSProber|WordPress|SeznamBot|ProoXiBot|wsr\\-agent|Squrl Java|EtaoSpider|PaperLiBot|SputnikBot|A6\\-Indexer|netresearch|searchsight|baiduspider|YisouSpider|ICC\\-Crawler|http%20client|Python-urllib|dataparksearch|converacrawler|Screaming Frog|AppEngine-Google|YahooCacheSystem|fast\\-webcrawler|Sogou Pic Spider|semanticdiscovery|Innovazion Crawler|facebookexternalhit|Google.*/\\+/web/snippet|Google-HTTP-Java-Client|BlogBridge|IlTrovatore-Setaccio|InternetArchive|GomezAgent|WebThumbnail|heritrix|NewsGator|PagePeeker|Reaper|ZooShot|holmes)","replacement":"Spider"},{"regex":"^(1207|3gso|4thp|501i|502i|503i|504i|505i|506i|6310|6590|770s|802s|a wa|acer|acs\\-|airn|alav|asus|attw|au\\-m|aur |aus |abac|acoo|aiko|alco|alca|amoi|anex|anny|anyw|aptu|arch|argo|bmobile|bell|bird|bw\\-n|bw\\-u|beck|benq|bilb|blac|c55/|cdm\\-|chtm|capi|comp|cond|dall|dbte|dc\\-s|dica|ds\\-d|ds12|dait|devi|dmob|doco|dopo|dorado|el(?:38|39|48|49|50|55|58|68)|el[3456]\\d{2}dual|erk0|esl8|ex300|ez40|ez60|ez70|ezos|ezze|elai|emul|eric|ezwa|fake|fly\\-|fly_|g\\-mo|g1 u|g560|gf\\-5|grun|gene|go.w|good|grad|hcit|hd\\-m|hd\\-p|hd\\-t|hei\\-|hp i|hpip|hs\\-c|htc |htc\\-|htca|htcg)","replacement":"Generic Feature Phone"},{"regex":"^(htcp|htcs|htct|htc_|haie|hita|huaw|hutc|i\\-20|i\\-go|i\\-ma|i\\-mobile|i230|iac|iac\\-|iac/|ig01|im1k|inno|iris|jata|kddi|kgt|kgt/|kpt |kwc\\-|klon|lexi|lg g|lg\\-a|lg\\-b|lg\\-c|lg\\-d|lg\\-f|lg\\-g|lg\\-k|lg\\-l|lg\\-m|lg\\-o|lg\\-p|lg\\-s|lg\\-t|lg\\-u|lg\\-w|lg/k|lg/l|lg/u|lg50|lg54|lge\\-|lge/|leno|m1\\-w|m3ga|m50/|maui|mc01|mc21|mcca|medi|meri|mio8|mioa|mo01|mo02|mode|modo|mot |mot\\-|mt50|mtp1|mtv |mate|maxo|merc|mits|mobi|motv|mozz|n100|n101|n102|n202|n203|n300|n302|n500|n502|n505|n700|n701|n710|nec\\-|nem\\-|newg|neon)","replacement":"Generic Feature Phone"},{"regex":"^(netf|noki|nzph|o2 x|o2\\-x|opwv|owg1|opti|oran|ot\\-s|p800|pand|pg\\-1|pg\\-2|pg\\-3|pg\\-6|pg\\-8|pg\\-c|pg13|phil|pn\\-2|pt\\-g|palm|pana|pire|pock|pose|psio|qa\\-a|qc\\-2|qc\\-3|qc\\-5|qc\\-7|qc07|qc12|qc21|qc32|qc60|qci\\-|qwap|qtek|r380|r600|raks|rim9|rove|s55/|sage|sams|sc01|sch\\-|scp\\-|sdk/|se47|sec\\-|sec0|sec1|semc|sgh\\-|shar|sie\\-|sk\\-0|sl45|slid|smb3|smt5|sp01|sph\\-|spv |spv\\-|sy01|samm|sany|sava|scoo|send|siem|smar|smit|soft|sony|t\\-mo|t218|t250|t600|t610|t618|tcl\\-|tdg\\-|telm|tim\\-|ts70|tsm\\-|tsm3|tsm5|tx\\-9|tagt)","replacement":"Generic Feature Phone"},{"regex":"^(talk|teli|topl|tosh|up.b|upg1|utst|v400|v750|veri|vk\\-v|vk40|vk50|vk52|vk53|vm40|vx98|virg|vertu|vite|voda|vulc|w3c |w3c\\-|wapj|wapp|wapu|wapm|wig |wapi|wapr|wapv|wapy|wapa|waps|wapt|winc|winw|wonu|x700|xda2|xdag|yas\\-|your|zte\\-|zeto|aste|audi|avan|blaz|brew|brvw|bumb|ccwa|cell|cldc|cmd\\-|dang|eml2|fetc|hipt|http|ibro|idea|ikom|ipaq|jbro|jemu|jigs|keji|kyoc|kyok|libw|m\\-cr|midp|mmef|moto|mwbp|mywa|newt|nok6|o2im|pant|pdxg|play|pluc|port|prox|rozo|sama|seri|smal|symb|treo|upsi|vx52|vx53|vx60|vx61|vx70|vx80|vx81|vx83|vx85|wap\\-|webc|whit|wmlb|xda\\-|xda_)","replacement":"Generic Feature Phone"},{"regex":"^(Ice)$","replacement":"Generic Feature Phone"},{"regex":"(wap[\\-\\ ]browser|maui|netfront|obigo|teleca|up\\.browser|midp|Opera Mini)","replacement":"Generic Feature Phone"}],"os":[{"regex":"HbbTV/\\d+\\.\\d+\\.\\d+ \\( ;(LG)E ;NetCast 4.0"},{"regex":"HbbTV/\\d+\\.\\d+\\.\\d+ \\( ;(LG)E ;NetCast 3.0"},{"regex":"HbbTV/1.1.1 \\(;;;;;\\) Maple_2011","replacement":"Samsung"},{"regex":"HbbTV/\\d+\\.\\d+\\.\\d+ \\(;(Samsung);SmartTV([0-9]{4});.*FXPDEUC"},{"regex":"HbbTV/\\d+\\.\\d+\\.\\d+ \\(;(Samsung);SmartTV([0-9]{4});.*MST12DEUC"},{"regex":"HbbTV/1.1.1 \\(; (Philips);.*NETTV/4"},{"regex":"HbbTV/1.1.1 \\(; (Philips);.*NETTV/3"},{"regex":"HbbTV/1.1.1 \\(; (Philips);.*NETTV/2"},{"regex":"HbbTV/\\d+\\.\\d+\\.\\d+.*(firetv)-firefox-plugin (\\d+).(\\d+).(\\d+)","replacement":"FireHbbTV"},{"regex":"HbbTV/\\d+\\.\\d+\\.\\d+ \\(.*; ?([a-zA-Z]+) ?;.*(201[1-9]).*\\)"},{"regex":"(Windows Phone) (?:OS[ /])?(\\d+)\\.(\\d+)"},{"regex":"(Android)[ \\-/](\\d+)\\.(\\d+)(?:[.\\-]([a-z0-9]+))?"},{"regex":"(Android) Donut"},{"regex":"(Android) Eclair"},{"regex":"(Android) Froyo"},{"regex":"(Android) Gingerbread"},{"regex":"(Android) Honeycomb"},{"regex":"^UCWEB.*; (Adr) (\\d+)\\.(\\d+)(?:[.\\-]([a-z0-9]+))?;","replacement":"Android"},{"regex":"^UCWEB.*; (iPad OS|iPh OS) (\\d+)_(\\d+)(?:_(\\d+))?;","replacement":"iOS"},{"regex":"^UCWEB.*; (wds) (\\d+)\\.(\\d+)(?:\\.(\\d+))?;","replacement":"Windows Phone"},{"regex":"^(JUC).*; ?U; ?(?:Android)?(\\d+)\\.(\\d+)(?:[\\.\\-]([a-z0-9]+))?","replacement":"Android"},{"regex":"(Silk-Accelerated=[a-z]{4,5})","replacement":"Android"},{"regex":"(XBLWP7)","replacement":"Windows Phone"},{"regex":"(Windows ?Mobile)","replacement":"Windows Mobile"},{"regex":"(Windows (?:NT 5\\.2|NT 5\\.1))","replacement":"Windows XP"},{"regex":"(Windows NT 6\\.1)","replacement":"Windows 7"},{"regex":"(Windows NT 6\\.0)","replacement":"Windows Vista"},{"regex":"(Win 9x 4\\.90)","replacement":"Windows ME"},{"regex":"(Windows 98|Windows XP|Windows ME|Windows 95|Windows CE|Windows 7|Windows NT 4\\.0|Windows Vista|Windows 2000|Windows 3.1)"},{"regex":"(Windows NT 6\\.2; ARM;)","replacement":"Windows RT"},{"regex":"(Windows NT 6\\.2)","replacement":"Windows 8"},{"regex":"(Windows NT 6\\.3; ARM;)","replacement":"Windows RT 8.1"},{"regex":"(Windows NT 6\\.3)","replacement":"Windows 8.1"},{"regex":"(Windows NT 6\\.4)","replacement":"Windows 10"},{"regex":"(Windows NT 10\\.0)","replacement":"Windows 10"},{"regex":"(Windows NT 5\\.0)","replacement":"Windows 2000"},{"regex":"(WinNT4.0)","replacement":"Windows NT 4.0"},{"regex":"(Windows ?CE)","replacement":"Windows CE"},{"regex":"Win ?(95|98|3.1|NT|ME|2000)","replacement":"Windows %s"},{"regex":"Win16","replacement":"Windows 3.1"},{"regex":"Win32","replacement":"Windows 95"},{"regex":"(Tizen)/(\\d+)\\.(\\d+)"},{"regex":"((?:Mac ?|; )OS X)[\\s/](?:(\\d+)[_.](\\d+)(?:[_.](\\d+))?|Mach-O)","replacement":"Mac OS X"},{"regex":" (Dar)(win)/(9).(\\d+).*\\((?:i386|x86_64|Power Macintosh)\\)","replacement":"Mac OS X"},{"regex":" (Dar)(win)/(10).(\\d+).*\\((?:i386|x86_64)\\)","replacement":"Mac OS X"},{"regex":" (Dar)(win)/(11).(\\d+).*\\((?:i386|x86_64)\\)","replacement":"Mac OS X"},{"regex":" (Dar)(win)/(12).(\\d+).*\\((?:i386|x86_64)\\)","replacement":"Mac OS X"},{"regex":" (Dar)(win)/(13).(\\d+).*\\((?:i386|x86_64)\\)","replacement":"Mac OS X"},{"regex":"Mac_PowerPC","replacement":"Mac OS"},{"regex":"(?:PPC|Intel) (Mac OS X)"},{"regex":"(Apple\\s?TV)(?:/(\\d+)\\.(\\d+))?","replacement":"ATV OS X"},{"regex":"(CPU OS|iPhone OS|CPU iPhone) +(\\d+)[_\\.](\\d+)(?:[_\\.](\\d+))?","replacement":"iOS"},{"regex":"(iPhone|iPad|iPod); Opera","replacement":"iOS"},{"regex":"(iPhone|iPad|iPod).*Mac OS X.*Version/(\\d+)\\.(\\d+)","replacement":"iOS"},{"regex":"(CFNetwork)/(5)48\\.0\\.3.* Darwin/11\\.0\\.0","replacement":"iOS"},{"regex":"(CFNetwork)/(5)48\\.(0)\\.4.* Darwin/(1)1\\.0\\.0","replacement":"iOS"},{"regex":"(CFNetwork)/(5)48\\.(1)\\.4","replacement":"iOS"},{"regex":"(CFNetwork)/(4)85\\.1(3)\\.9","replacement":"iOS"},{"regex":"(CFNetwork)/(6)09\\.(1)\\.4","replacement":"iOS"},{"regex":"(CFNetwork)/(6)(0)9","replacement":"iOS"},{"regex":"(CFNetwork)/6(7)2\\.(1)\\.13","replacement":"iOS"},{"regex":"(CFNetwork)/6(7)2\\.(1)\\.(1)4","replacement":"iOS"},{"regex":"(CF)(Network)/6(7)(2)\\.1\\.15","replacement":"iOS"},{"regex":"(CFNetwork)/6(7)2\\.(0)\\.(?:2|8)","replacement":"iOS"},{"regex":"(CFNetwork)/709\\.1","replacement":"iOS"},{"regex":"(CF)(Network)/711\\.(\\d)","replacement":"iOS"},{"regex":"(CF)(Network)/(720)\\.(\\d)","replacement":"Mac OS X"},{"regex":"(CF)(Network)/758\\.(\\d)","replacement":"iOS"},{"regex":"CFNetwork/.* Darwin/(9)\\.\\d+","replacement":"iOS"},{"regex":"CFNetwork/.* Darwin/(10)\\.\\d+","replacement":"iOS"},{"regex":"CFNetwork/.* Darwin/(11)\\.\\d+","replacement":"iOS"},{"regex":"CFNetwork/.* Darwin/(13)\\.\\d+","replacement":"iOS"},{"regex":"CFNetwork/6.* Darwin/(14)\\.\\d+","replacement":"iOS"},{"regex":"CFNetwork/7.* Darwin/(14)\\.\\d+","replacement":"iOS"},{"regex":"CFNetwork/7.* Darwin/(15)\\.\\d+","replacement":"iOS"},{"regex":"\\b(iOS[ /]|iPhone(?:/| v|[ _]OS[/,]|; | OS : |\\d,\\d/|\\d,\\d; )|iPad/)(\\d{1,2})[_\\.](\\d{1,2})(?:[_\\.](\\d+))?","replacement":"iOS"},{"regex":"(tvOS)/(\\d+).(\\d+)","replacement":"tvOS"},{"regex":"(CrOS) [a-z0-9_]+ (\\d+)\\.(\\d+)(?:\\.(\\d+))?","replacement":"Chrome OS"},{"regex":"([Dd]ebian)","replacement":"Debian"},{"regex":"(Linux Mint)(?:/(\\d+))?"},{"regex":"(Mandriva)(?: Linux)?/(?:[\\d.-]+m[a-z]{2}(\\d+).(\\d))?"},{"regex":"(Symbian[Oo][Ss])[/ ](\\d+)\\.(\\d+)","replacement":"Symbian OS"},{"regex":"(Symbian/3).+NokiaBrowser/7\\.3","replacement":"Symbian^3 Anna"},{"regex":"(Symbian/3).+NokiaBrowser/7\\.4","replacement":"Symbian^3 Belle"},{"regex":"(Symbian/3)","replacement":"Symbian^3"},{"regex":"\\b(Series 60|SymbOS|S60Version|S60V\\d|S60\\b)","replacement":"Symbian OS"},{"regex":"(MeeGo)"},{"regex":"Symbian [Oo][Ss]","replacement":"Symbian OS"},{"regex":"Series40;","replacement":"Nokia Series 40"},{"regex":"Series30Plus;","replacement":"Nokia Series 30 Plus"},{"regex":"(BB10);.+Version/(\\d+)\\.(\\d+)\\.(\\d+)","replacement":"BlackBerry OS"},{"regex":"(Black[Bb]erry)[0-9a-z]+/(\\d+)\\.(\\d+)\\.(\\d+)(?:\\.(\\d+))?","replacement":"BlackBerry OS"},{"regex":"(Black[Bb]erry).+Version/(\\d+)\\.(\\d+)\\.(\\d+)(?:\\.(\\d+))?","replacement":"BlackBerry OS"},{"regex":"(RIM Tablet OS) (\\d+)\\.(\\d+)\\.(\\d+)","replacement":"BlackBerry Tablet OS"},{"regex":"(Play[Bb]ook)","replacement":"BlackBerry Tablet OS"},{"regex":"(Black[Bb]erry)","replacement":"BlackBerry OS"},{"regex":"\\((?:Mobile|Tablet);.+Gecko/18.0 Firefox/\\d+\\.\\d+","replacement":"Firefox OS"},{"regex":"\\((?:Mobile|Tablet);.+Gecko/18.1 Firefox/\\d+\\.\\d+","replacement":"Firefox OS"},{"regex":"\\((?:Mobile|Tablet);.+Gecko/26.0 Firefox/\\d+\\.\\d+","replacement":"Firefox OS"},{"regex":"\\((?:Mobile|Tablet);.+Gecko/28.0 Firefox/\\d+\\.\\d+","replacement":"Firefox OS"},{"regex":"\\((?:Mobile|Tablet);.+Gecko/30.0 Firefox/\\d+\\.\\d+","replacement":"Firefox OS"},{"regex":"\\((?:Mobile|Tablet);.+Gecko/32.0 Firefox/\\d+\\.\\d+","replacement":"Firefox OS"},{"regex":"\\((?:Mobile|Tablet);.+Gecko/34.0 Firefox/\\d+\\.\\d+","replacement":"Firefox OS"},{"regex":"\\((?:Mobile|Tablet);.+Firefox/\\d+\\.\\d+","replacement":"Firefox OS"},{"regex":"(BREW)[ /](\\d+)\\.(\\d+)\\.(\\d+)"},{"regex":"(BREW);"},{"regex":"(Brew MP|BMP)[ /](\\d+)\\.(\\d+)\\.(\\d+)","replacement":"Brew MP"},{"regex":"BMP;","replacement":"Brew MP"},{"regex":"(GoogleTV)(?: (\\d+)\\.(\\d+)(?:\\.(\\d+))?|/[\\da-z]+)"},{"regex":"(WebTV)/(\\d+).(\\d+)"},{"regex":"(hpw|web)OS/(\\d+)\\.(\\d+)(?:\\.(\\d+))?","replacement":"webOS"},{"regex":"(VRE);"},{"regex":"(Fedora|Red Hat|PCLinuxOS|Puppy|Ubuntu|Kindle|Bada|Lubuntu|BackTrack|Slackware|(?:Free|Open|Net|\\b)BSD)[/ ](\\d+)\\.(\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?"},{"regex":"(Linux)[ /](\\d+)\\.(\\d+)(?:\\.(\\d+))?.*gentoo","replacement":"Gentoo"},{"regex":"\\((Bada);"},{"regex":"(Windows|Android|WeTab|Maemo)"},{"regex":"(Ubuntu|Kubuntu|Arch Linux|CentOS|Slackware|Gentoo|openSUSE|SUSE|Red Hat|Fedora|PCLinuxOS|Mageia|(?:Free|Open|Net|\\b)BSD)"},{"regex":"(Linux)(?:[ /](\\d+)\\.(\\d+)(?:\\.(\\d+))?)?"},{"regex":"SunOS","replacement":"Solaris"}],"browsers":[{"regex":"(CFNetwork)(?:/(\\d+)\\.(\\d+)\\.?(\\d+)?)?","replacement":"CFNetwork"},{"regex":"(Pingdom.com_bot_version_)(\\d+)\\.(\\d+)","replacement":"PingdomBot"},{"regex":"(facebookexternalhit)/(\\d+)\\.(\\d+)","replacement":"FacebookBot"},{"regex":"Google.*/\\+/web/snippet","replacement":"GooglePlusBot"},{"regex":"/((?:Ant-)?Nutch|[A-z]+[Bb]ot|[A-z]+[Ss]pider|Axtaris|fetchurl|Isara|ShopSalad|Tailsweep)[ \\-](\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?"},{"regex":"(008|Altresium|Argus|BaiduMobaider|BoardReader|DNSGroup|DataparkSearch|EDI|Goodzer|Grub|INGRID|Infohelfer|LinkedInBot|LOOQ|Nutch|PathDefender|Peew|PostPost|Steeler|Twitterbot|VSE|WebCrunch|WebZIP|Y!J-BR[A-Z]|YahooSeeker|envolk|sproose|wminer)/(\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?"},{"regex":"(MSIE) (\\d+)\\.(\\d+)([a-z]\\d?)?;.* MSIECrawler","replacement":"MSIECrawler"},{"regex":"(Google-HTTP-Java-Client|Apache-HttpClient|http%20client|Python-urllib|HttpMonitor|TLSProber|WinHTTP|JNLP)(?:[ /](\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?)?"},{"regex":"(1470\\.net crawler|50\\.nu|8bo Crawler Bot|Aboundex|Accoona-[A-z]+-Agent|AdsBot-Google(?:-[a-z]+)?|altavista|AppEngine-Google|archive.*?\\.org_bot|archiver|Ask Jeeves|[Bb]ai[Dd]u[Ss]pider(?:-[A-Za-z]+)*|bingbot|BingPreview|blitzbot|BlogBridge|BoardReader(?: [A-Za-z]+)*|boitho.com-dc|BotSeer|\\b\\w*favicon\\w*\\b|\\bYeti(?:-[a-z]+)?|Catchpoint bot|[Cc]harlotte|Checklinks|clumboot|Comodo HTTP\\(S\\) Crawler|Comodo-Webinspector-Crawler|ConveraCrawler|CRAWL-E|CrawlConvera|Daumoa(?:-feedfetcher)?|Feed Seeker Bot|findlinks|Flamingo_SearchEngine|FollowSite Bot|furlbot|Genieo|gigabot|GomezAgent|gonzo1|(?:[a-zA-Z]+-)?Googlebot(?:-[a-zA-Z]+)?|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]+Bot|jbot\\b|KaloogaBot|Kraken|Kurzor|larbin|LEIA|LesnikBot|Linguee Bot|LinkAider|LinkedInBot|Lite Bot|Llaut|lycos|Mail\\.RU_Bot|masidani_bot|Mediapartners-Google|Microsoft .*? Bot|mogimogi|mozDex|MJ12bot|msnbot(?:-media *)?|msrbot|netresearch|Netvibes|NewsGator[^/]*|^NING|Nutch[^/]*|Nymesis|ObjectsSearch|Orbiter|OOZBOT|PagePeeker|PagesInventory|PaxleFramework|Peeplo Screenshot Bot|PlantyNet_WebRobot|Pompos|Read%20Later|Reaper|RedCarpet|Retreiver|Riddler|Rival IQ|scooter|Scrapy|Scrubby|searchsight|seekbot|semanticdiscovery|Simpy|SimplePie|SEOstats|SimpleRSS|SiteCon|Slurp|snappy|Speedy Spider|Squrl Java|TheUsefulbot|ThumbShotsBot|Thumbshots\\.ru|TwitterBot|URL2PNG|Vagabondo|VoilaBot|^vortex|Votay bot|^voyager|WASALive.Bot|Web-sniffer|WebThumb|WeSEE:[A-z]+|WhatWeb|WIRE|WordPress|Wotbox|www\\.almaden\\.ibm\\.com|Xenu(?:.s)? Link Sleuth|Xerka [A-z]+Bot|yacy(?:bot)?|Yahoo[a-z]*Seeker|Yahoo! Slurp|Yandex\\w+|YodaoBot(?:-[A-z]+)?|YottaaMonitor|Yowedo|^Zao|^Zao-Crawler|ZeBot_www\\.ze\\.bz|ZooShot|ZyBorg)(?:[ /]v?(\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?)?"},{"regex":"(?:\\/[A-Za-z0-9\\.]+)? *([A-Za-z0-9 \\-_\\!\\[\\]:]*(?:[Aa]rchiver|[Ii]ndexer|[Ss]craper|[Bb]ot|[Ss]pider|[Cc]rawl[a-z]*))/(\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?"},{"regex":"(?:\\/[A-Za-z0-9\\.]+)? *([A-Za-z0-9 _\\!\\[\\]:]*(?:[Aa]rchiver|[Ii]ndexer|[Ss]craper|[Bb]ot|[Ss]pider|[Cc]rawl[a-z]*)) (\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?"},{"regex":"((?:[A-z0-9]+|[A-z\\-]+ ?)?(?: the )?(?:[Ss][Pp][Ii][Dd][Ee][Rr]|[Ss]crape|[A-Za-z0-9-]*(?:[^C][^Uu])[Bb]ot|[Cc][Rr][Aa][Ww][Ll])[A-z0-9]*)(?:(?:[ /]| v)(\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?)?"},{"regex":"(HbbTV)/(\\d+)\\.(\\d+)\\.(\\d+) \\("},{"regex":"(Chimera|SeaMonkey|Camino)/(\\d+)\\.(\\d+)\\.?([ab]?\\d+[a-z]*)?"},{"regex":"\\[FB.*;(FBAV)/(\\d+)(?:\\.(\\d+)(?:\\.(\\d)+)?)?","replacement":"Facebook"},{"regex":"\\[(Pinterest)/[^\\]]+\\]"},{"regex":"(Pinterest)(?: for Android(?: Tablet)?)?/(\\d+)(?:\\.(\\d+)(?:\\.(\\d)+)?)?"},{"regex":"(Pale[Mm]oon)/(\\d+)\\.(\\d+)\\.?(\\d+)?","replacement":"Pale Moon (Firefox Variant)"},{"regex":"(Fennec)/(\\d+)\\.(\\d+)\\.?([ab]?\\d+[a-z]*)","replacement":"Firefox Mobile"},{"regex":"(Fennec)/(\\d+)\\.(\\d+)(pre)","replacement":"Firefox Mobile"},{"regex":"(Fennec)/(\\d+)\\.(\\d+)","replacement":"Firefox Mobile"},{"regex":"(?:Mobile|Tablet);.*(Firefox)/(\\d+)\\.(\\d+)","replacement":"Firefox Mobile"},{"regex":"(Namoroka|Shiretoko|Minefield)/(\\d+)\\.(\\d+)\\.(\\d+(?:pre)?)","replacement":"Firefox (%s)"},{"regex":"(Firefox)/(\\d+)\\.(\\d+)(a\\d+[a-z]*)","replacement":"Firefox Alpha"},{"regex":"(Firefox)/(\\d+)\\.(\\d+)(b\\d+[a-z]*)","replacement":"Firefox Beta"},{"regex":"(Firefox)-(?:\\d+\\.\\d+)?/(\\d+)\\.(\\d+)(a\\d+[a-z]*)","replacement":"Firefox Alpha"},{"regex":"(Firefox)-(?:\\d+\\.\\d+)?/(\\d+)\\.(\\d+)(b\\d+[a-z]*)","replacement":"Firefox Beta"},{"regex":"(Namoroka|Shiretoko|Minefield)/(\\d+)\\.(\\d+)([ab]\\d+[a-z]*)?","replacement":"Firefox (%s)"},{"regex":"(Firefox).*Tablet browser (\\d+)\\.(\\d+)\\.(\\d+)","replacement":"MicroB"},{"regex":"(MozillaDeveloperPreview)/(\\d+)\\.(\\d+)([ab]\\d+[a-z]*)?"},{"regex":"(FxiOS)/(\\d+)\\.(\\d+)(\\.(\\d+))?(\\.(\\d+))?","replacement":"Firefox iOS"},{"regex":"(Flock)/(\\d+)\\.(\\d+)(b\\d+?)"},{"regex":"(RockMelt)/(\\d+)\\.(\\d+)\\.(\\d+)"},{"regex":"(Navigator)/(\\d+)\\.(\\d+)\\.(\\d+)","replacement":"Netscape"},{"regex":"(Navigator)/(\\d+)\\.(\\d+)([ab]\\d+)","replacement":"Netscape"},{"regex":"(Netscape6)/(\\d+)\\.(\\d+)\\.?([ab]?\\d+)?","replacement":"Netscape"},{"regex":"(MyIBrow)/(\\d+)\\.(\\d+)","replacement":"My Internet Browser"},{"regex":"(Opera Tablet).*Version/(\\d+)\\.(\\d+)(?:\\.(\\d+))?"},{"regex":"(Opera Mini)(?:/att)?/(\\d+)?(?:\\.(\\d+))?(?:\\.(\\d+))?"},{"regex":"(Opera)/.+Opera Mobi.+Version/(\\d+)\\.(\\d+)","replacement":"Opera Mobile"},{"regex":"(Opera)/(\\d+)\\.(\\d+).+Opera Mobi","replacement":"Opera Mobile"},{"regex":"Opera Mobi.+(Opera)(?:/|\\s+)(\\d+)\\.(\\d+)","replacement":"Opera Mobile"},{"regex":"Opera Mobi","replacement":"Opera Mobile"},{"regex":"(Opera)/9.80.*Version/(\\d+)\\.(\\d+)(?:\\.(\\d+))?"},{"regex":"(?:Mobile Safari).*(OPR)/(\\d+)\\.(\\d+)\\.(\\d+)","replacement":"Opera Mobile"},{"regex":"(?:Chrome).*(OPR)/(\\d+)\\.(\\d+)\\.(\\d+)","replacement":"Opera"},{"regex":"(Coast)/(\\d+).(\\d+).(\\d+)","replacement":"Opera Coast"},{"regex":"(OPiOS)/(\\d+).(\\d+).(\\d+)","replacement":"Opera Mini"},{"regex":"(hpw|web)OS/(\\d+)\\.(\\d+)(?:\\.(\\d+))?","replacement":"webOS Browser"},{"regex":"(luakit)","replacement":"LuaKit"},{"regex":"(Snowshoe)/(\\d+)\\.(\\d+).(\\d+)"},{"regex":"(Lightning)/(\\d+)\\.(\\d+)\\.?((?:[ab]?\\d+[a-z]*)|(?:\\d*))"},{"regex":"(Firefox)/(\\d+)\\.(\\d+)\\.(\\d+(?:pre)?) \\(Swiftfox\\)","replacement":"Swiftfox"},{"regex":"(Firefox)/(\\d+)\\.(\\d+)([ab]\\d+[a-z]*)? \\(Swiftfox\\)","replacement":"Swiftfox"},{"regex":"(rekonq)/(\\d+)\\.(\\d+)\\.?(\\d+)? Safari","replacement":"Rekonq"},{"regex":"rekonq","replacement":"Rekonq"},{"regex":"(conkeror|Conkeror)/(\\d+)\\.(\\d+)\\.?(\\d+)?","replacement":"Conkeror"},{"regex":"(konqueror)/(\\d+)\\.(\\d+)\\.(\\d+)","replacement":"Konqueror"},{"regex":"(WeTab)-Browser"},{"regex":"(Comodo_Dragon)/(\\d+)\\.(\\d+)\\.(\\d+)","replacement":"Comodo Dragon"},{"regex":"(Symphony) (\\d+).(\\d+)"},{"regex":"(Minimo)"},{"regex":"PLAYSTATION 3.+WebKit","replacement":"NetFront NX"},{"regex":"PLAYSTATION 3","replacement":"NetFront"},{"regex":"(PlayStation Portable)","replacement":"NetFront"},{"regex":"(PlayStation Vita)","replacement":"NetFront NX"},{"regex":"AppleWebKit.+ (NX)/(\\d+)\\.(\\d+)\\.(\\d+)","replacement":"NetFront NX"},{"regex":"(Nintendo 3DS)","replacement":"NetFront NX"},{"regex":"(Silk)/(\\d+)\\.(\\d+)(?:\\.([0-9\\-]+))?","replacement":"Amazon Silk"},{"regex":"(Puffin)/(\\d+)\\.(\\d+)(?:\\.(\\d+))?"},{"regex":"Windows Phone .*(Edge)/(\\d+)\\.(\\d+)","replacement":"Edge Mobile"},{"regex":"(CrMo)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)","replacement":"Chrome Mobile"},{"regex":"(CriOS)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)","replacement":"Chrome Mobile iOS"},{"regex":"(Chrome)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+) Mobile","replacement":"Chrome Mobile"},{"regex":"(chromeframe)/(\\d+)\\.(\\d+)\\.(\\d+)","replacement":"Chrome Frame"},{"regex":"(UCBrowser)[ /](\\d+)\\.(\\d+)\\.(\\d+)","replacement":"UC Browser"},{"regex":"(UC Browser)[ /](\\d+)\\.(\\d+)\\.(\\d+)"},{"regex":"(UC Browser|UCBrowser|UCWEB)(\\d+)\\.(\\d+)\\.(\\d+)","replacement":"UC Browser"},{"regex":"(SLP Browser)/(\\d+)\\.(\\d+)","replacement":"Tizen Browser"},{"regex":"(SE 2\\.X) MetaSr (\\d+)\\.(\\d+)","replacement":"Sogou Explorer"},{"regex":"(baidubrowser)[/\\s](\\d+)","replacement":"Baidu Browser"},{"regex":"(FlyFlow)/(\\d+)\\.(\\d+)","replacement":"Baidu Explorer"},{"regex":"(MQQBrowser/Mini)(?:(\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?)?","replacement":"QQ Browser Mini"},{"regex":"(MQQBrowser)(?:/(\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?)?","replacement":"QQ Browser Mobile"},{"regex":"(QQBrowser)(?:/(\\d+)(?:\\.(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?)?","replacement":"QQ Browser"},{"regex":"(Rackspace Monitoring)/(\\d+)\\.(\\d+)","replacement":"RackspaceBot"},{"regex":"(PyAMF)/(\\d+)\\.(\\d+)\\.(\\d+)"},{"regex":"(YaBrowser)/(\\d+)\\.(\\d+)\\.(\\d+)","replacement":"Yandex Browser"},{"regex":"(Chrome)/(\\d+)\\.(\\d+)\\.(\\d+).* MRCHROME","replacement":"Mail.ru Chromium Browser"},{"regex":"(AOL) (\\d+)\\.(\\d+); AOLBuild (\\d+)"},{"regex":"(AdobeAIR|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)/(\\d+)\\.(\\d+)\\.(\\d+)"},{"regex":"MSOffice 12","replacement":"Outlook"},{"regex":"MSOffice 14","replacement":"Outlook"},{"regex":"Microsoft Outlook 15\\.\\d+\\.\\d+","replacement":"Outlook"},{"regex":"(Airmail) (\\d+)\\.(\\d+)(?:\\.(\\d+))?"},{"regex":"(Thunderbird)/(\\d+)\\.(\\d+)\\.(\\d+(?:pre)?)","replacement":"Thunderbird"},{"regex":"(Vivaldi)/(\\d+)\\.(\\d+)\\.(\\d+)"},{"regex":"(Edge)/(\\d+)\\.(\\d+)"},{"regex":"(Chromium|Chrome)/(\\d+)\\.(\\d+)\\.(\\d+)"},{"regex":"\\b(Dolphin)(?: |HDCN/|/INT\\-)(\\d+)\\.(\\d+)\\.?(\\d+)?"},{"regex":"(bingbot|Bolt|Jasmine|IceCat|Skyfire|Midori|Maxthon|Lynx|Arora|IBrowse|Dillo|Camino|Shiira|Fennec|Phoenix|Chrome|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)/(\\d+)\\.(\\d+)\\.?(\\d+)?"},{"regex":"(Chromium|Chrome)/(\\d+)\\.(\\d+)"},{"regex":"(IEMobile)[ /](\\d+)\\.(\\d+)","replacement":"IE Mobile"},{"regex":"(iRider|Crazy Browser|SkipStone|iCab|Lunascape|Sleipnir|Maemo Browser) (\\d+)\\.(\\d+)\\.(\\d+)"},{"regex":"(iCab|Lunascape|Opera|Android|Jasmine|Polaris) (\\d+)\\.(\\d+)\\.?(\\d+)?"},{"regex":"(Kindle)/(\\d+)\\.(\\d+)"},{"regex":"(Android) Donut"},{"regex":"(Android) Eclair"},{"regex":"(Android) Froyo"},{"regex":"(Android) Gingerbread"},{"regex":"(Android) Honeycomb"},{"regex":"(MSIE) (\\d+)\\.(\\d+).*XBLWP7","replacement":"IE Large Screen"},{"regex":"(Obigo)InternetBrowser"},{"regex":"(Obigo)\\-Browser"},{"regex":"(Obigo|OBIGO)[^\\d]*(\\d+)(?:.(\\d+))?","replacement":"Obigo"},{"regex":"(MAXTHON|Maxthon) (\\d+)\\.(\\d+)","replacement":"Maxthon"},{"regex":"(Maxthon|MyIE2|Uzbl|Shiira)"},{"regex":"(BrowseX) \\((\\d+)\\.(\\d+)\\.(\\d+)"},{"regex":"(NCSA_Mosaic)/(\\d+)\\.(\\d+)","replacement":"NCSA Mosaic"},{"regex":"(POLARIS)/(\\d+)\\.(\\d+)","replacement":"Polaris"},{"regex":"(Embider)/(\\d+)\\.(\\d+)","replacement":"Polaris"},{"regex":"(BonEcho)/(\\d+)\\.(\\d+)\\.?([ab]?\\d+)?","replacement":"Bon Echo"},{"regex":"(iPod|iPhone|iPad).+Version/(\\d+)\\.(\\d+)(?:\\.(\\d+))?.* Safari","replacement":"Mobile Safari"},{"regex":"(iPod|iPhone|iPad).+Version/(\\d+)\\.(\\d+)(?:\\.(\\d+))?","replacement":"Mobile Safari UIWebView"},{"regex":"(iPod|iPhone|iPad);.*CPU.*OS (\\d+)_(\\d+)(?:_(\\d+))?.*Mobile.* Safari","replacement":"Mobile Safari"},{"regex":"(iPod|iPhone|iPad);.*CPU.*OS (\\d+)_(\\d+)(?:_(\\d+))?.*Mobile","replacement":"Mobile Safari UIWebView"},{"regex":"(iPod|iPhone|iPad).* Safari","replacement":"Mobile Safari"},{"regex":"(iPod|iPhone|iPad)","replacement":"Mobile Safari UIWebView"},{"regex":"(AvantGo) (\\d+).(\\d+)"},{"regex":"(OneBrowser)/(\\d+).(\\d+)","replacement":"ONE Browser"},{"regex":"(Avant)"},{"regex":"(QtCarBrowser)"},{"regex":"^(iBrowser/Mini)(\\d+).(\\d+)","replacement":"iBrowser Mini"},{"regex":"^(iBrowser|iRAPP)/(\\d+).(\\d+)"},{"regex":"^(Nokia)","replacement":"Nokia Services (WAP) Browser"},{"regex":"(NokiaBrowser)/(\\d+)\\.(\\d+).(\\d+)\\.(\\d+)","replacement":"Nokia Browser"},{"regex":"(NokiaBrowser)/(\\d+)\\.(\\d+).(\\d+)","replacement":"Nokia Browser"},{"regex":"(NokiaBrowser)/(\\d+)\\.(\\d+)","replacement":"Nokia Browser"},{"regex":"(BrowserNG)/(\\d+)\\.(\\d+).(\\d+)","replacement":"Nokia Browser"},{"regex":"(Series60)/5\\.0","replacement":"Nokia Browser"},{"regex":"(Series60)/(\\d+)\\.(\\d+)","replacement":"Nokia OSS Browser"},{"regex":"(S40OviBrowser)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)","replacement":"Ovi Browser"},{"regex":"(Nokia)[EN]?(\\d+)"},{"regex":"(PlayBook).+RIM Tablet OS (\\d+)\\.(\\d+)\\.(\\d+)","replacement":"BlackBerry WebKit"},{"regex":"(Black[bB]erry|BB10).+Version/(\\d+)\\.(\\d+)\\.(\\d+)","replacement":"BlackBerry WebKit"},{"regex":"(Black[bB]erry)\\s?(\\d+)","replacement":"BlackBerry"},{"regex":"(OmniWeb)/v(\\d+)\\.(\\d+)"},{"regex":"(Blazer)/(\\d+)\\.(\\d+)","replacement":"Palm Blazer"},{"regex":"(Pre)/(\\d+)\\.(\\d+)","replacement":"Palm Pre"},{"regex":"(ELinks)/(\\d+)\\.(\\d+)"},{"regex":"(ELinks) \\((\\d+)\\.(\\d+)"},{"regex":"(Links) \\((\\d+)\\.(\\d+)"},{"regex":"(QtWeb) Internet Browser/(\\d+)\\.(\\d+)"},{"regex":"(PhantomJS)/(\\d+)\\.(\\d+)\\.(\\d+)"},{"regex":"(AppleWebKit)/(\\d+)\\.?(\\d+)?\\+ .* Safari","replacement":"WebKit Nightly"},{"regex":"(Version)/(\\d+)\\.(\\d+)(?:\\.(\\d+))?.*Safari/","replacement":"Safari"},{"regex":"(Safari)/\\d+"},{"regex":"(OLPC)/Update(\\d+)\\.(\\d+)"},{"regex":"(OLPC)/Update()\\.(\\d+)"},{"regex":"(SEMC\\-Browser)/(\\d+)\\.(\\d+)"},{"regex":"(Teleca)","replacement":"Teleca Browser"},{"regex":"(Phantom)/V(\\d+)\\.(\\d+)","replacement":"Phantom Browser"},{"regex":"Trident(.*)rv.(\\d+)\\.(\\d+)","replacement":"IE"},{"regex":"(Espial)/(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?"},{"regex":"(AppleWebKit)/(\\d+)\\.(\\d+)\\.(\\d+)","replacement":"AppleMail"},{"regex":"(Firefox)/(\\d+)\\.(\\d+)\\.(\\d+)"},{"regex":"(Firefox)/(\\d+)\\.(\\d+)(pre|[ab]\\d+[a-z]*)?"},{"regex":"([MS]?IE) (\\d+)\\.(\\d+)","replacement":"IE"},{"regex":"(python-requests)/(\\d+)\\.(\\d+)","replacement":"Python Requests"},{"regex":"(Java)[/ ]{0,1}\\d+\\.(\\d+)\\.(\\d+)[_-]*([a-zA-Z0-9]+)*"}]}