useragent.js
Version:
A simple project that allows you to display details about a computer's operating system or web browser with a user-agent.
7 lines • 27.4 kB
JavaScript
/*!
* useragent.js
* version: 0.5.7
* build: Fri Jun 15 2018 16:46:37 GMT+0800 (China Standard Time)
* author: zsx<zsx@zsxsoft.com>
*/
;!function(e){var a={},u={"360se":{title:"360 Explorer"},"360ee":{title:"360 Chrome",image:"360se"},"360 aphone browser":{title:"360 Aphone Browser",image:"360se"},abolimba:{title:"Abolimba"},"acoo browser":{title:"{%Acoo Browser%}",image:"acoobrowser"},"amiga-aweb":{title:"Amiga {%AWeb%}",image:"amiga-aweb"},antfresco:{title:"ANT {%Fresco%}"},mrchrome:{title:"Amigo",image:"amigo"},myibrow:{title:"{%myibrow%}",image:"my-internet-browser"},"america online browser":{title:"{%America Online Browser%}",image:"aol"},amigavoyager:{title:"Amiga {%Voyager%}"},aol:{upper:[0,1,2]},atomicbrowser:{upper:[0,6],image:"atomicwebbrowser"},barcapro:{title:"{%BarcaPro%}",image:"barca"},baidubrowser:{image:"bidubrowser"},baiduboxapp:{title:"{%BaiduBoxApp%}",image:"bidubrowser"},baiduhd:{title:"{%BaiduHD%}",image:"bidubrowser"},blackhawk:{upper:[0,5]},bonecho:{title:"{%BonEcho%}",image:"firefoxdevpre"},browsex:{upper:[0,6]},"cayman browser":{title:"{%Cayman Browser%}",image:"caymanbrowser"},charon:{image:"null"},cheshire:{image:"aol"},chimera:{image:"null"},chromeframe:{image:"chrome"},chromeplus:{title:"{%ChromePlus%}"},iron:{title:"SRWare {%Iron%}",image:"srwareiron"},cometbird:{upper:[0,5]},comodo_dragon:{title:"Comodo {%Dragon%}",image:"comodo-dragon"},coolnovo:{upper:[0,4]},corom:{upper:[0,2]},"crazy browser":{upper:[0,6],image:"crazybrowser"},crmo:{upper:[0,2],image:"chrome"},dplus:{upper:[0,1],image:"dillo"},"deepnet explorer":{upper:[0,8],image:"deepnetexplorer"},deskbrowse:{upper:[0,4]},docomo:{upper:[0,2,4],image:"null"},doczilla:{upper:[0,3]},dolfin:{image:"samsung"},dorothy:{image:"dorothybrowser"},"element browser":{upper:[0,8],image:"elementbrowser"},"enigma browser":{upper:[0,7],image:"enigmabrowser"},enigmafox:{upper:[0,6],image:"null"},epic:{image:"epicbrowser"},escape:{image:"espialtvbrowser"},espial:{image:"espialtvbrowser"},"fireweb navigator":{upper:[0,8],image:"firewebnavigator"},fbav:{title:"{%FBAV%}",image:"facebook"},globalmojo:{upper:[0,6]},gobrowser:{upper:[0,1,2]},"google wireless transcoder":{title:"Google Wireless Transcoder",image:"google"},"google earth":{upper:[0,7],image:"google"},"google.android.apps":{title:"Google App",image:"google"},googleplus:{title:"Google+",image:"google"},youtube:{title:"{%Youtube%}",image:"google"},gosurf:{upper:[0,2]},granparadiso:{upper:[0,4],image:"firefoxdevpre"},greenbrowser:{upper:[0,5]},gsa:{upper:[0,1,2],image:"google"},hotjava:{upper:[0,3]},"hydra browser":{title:"Hydra Browser",image:"hydrabrowser"},"ibm webexplorer":{title:"IBM {%WebExplorer%}",image:"ibmwebexplorer"},juzibrowser:{upper:[0,4]},miuibrowser:{upper:[0,4]},mxnitro:{upper:[0,2]},ibrowse:{upper:[0,1]},icab:{upper:[1]},icebrowser:{upper:[0,3]},icecat:{title:"GNU {%IceCat%}"},icedragon:{upper:[0,3]},iceweasel:{upper:[0,3]},"inet browser":{upper:[1,5],image:"null"},irider:{upper:[1]},internetsurfboard:{upper:[0,8]},itunes:{upper:[1]},jasmine:{image:"samsung"},"k-meleon":{upper:[0,2],image:"kmeleon"},"k-ninja":{upper:[0,2],image:"kninja"},strata:{title:"Kirix {%Strata%}",image:"kirix-strata"},sailfishbrowser:{title:"{%SailfishBrowser%}",upper:[0,8]},kkman:{upper:[0,1]},kmail:{upper:[0,1]},kmlite:{upper:[0,1,2],image:"kmeleon"},lbrowser:{upper:[0,1]},links:{image:"null"},lbbrowser:{title:"Liebao Browser"},liebaofast:{image:"lbbrowser"},leechcraft:{title:"LeechCraft",image:"null"},lobo:{upper:[0]},lorentz:{upper:[0],image:"firefoxdevpre"},"maemo browser":{upper:[0,6],image:"maemo"}," mib/":{title:"{%MIB%}",image:"mib"},micromessenger:{upper:[0,5],image:"wechat"},"microsoft office":{title:"{%Microsoft Office%}",upper:[0,10],image:"office"},minibrowser:{upper:[0,5]},mozilladeveloperpreview:{title:"{%MozillaDeveloperPreview%}",image:"firefoxdevpre"},mqqbrowser:{upper:[0,1,2,3],image:"qqbrowser"},"multi-browser":{upper:[0,6],image:"multi-browserxp"},multizilla:{upper:[0,5],image:"mozilla"},myie2:{upper:[0,2,3]},namoroka:{image:"firefoxdevpre"},navigator:{title:"Netscape {%Navigator%}",image:"netscape"},netbox:{upper:[0,3]},netcaptor:{upper:[0,3]},netfront:{upper:[0,3]},netnewswire:{upper:[0,3,7]},netpositive:{upper:[0,3]},netsurf:{upper:[0,3]},"nf-browser":{upper:[0,1,2,4],image:"netfront"},"nichrome/self":{title:"{%Nichrome/self%}",image:"nichromeself"},nokiabrowser:{title:"Nokia {%Browser%}",image:"nokia"},"novarra-vision":{title:"Novarra {%Vision%}",image:"novarra"},offbyone:{title:"Off By One"},omniweb:{upper:[0,4]},onebrowser:{upper:[0,3]},"origyn web browser":{title:"Oregano Web Browser",image:"owb"},"osb-browser":{image:"null"}," pre/":{title:"Palm {%Pre%}",image:"palmpre"},palemoon:{title:"Pale {%Moon%}"},"patriott::browser":{title:"Patriott {%Browser%}",image:"patriott"},phaseout:{title:"Phaseout"},"playstation 4":{title:"PS4 Web Browser",image:"webkit"},"podkicker pro":{upper:[0,8],image:"podkicker"},qqbrowser:{upper:[0,1,2]},"qtweb internet browser":{title:"{%QtWeb Internet Browser%}",image:"qtwebinternetbrowser"},qtcarbrowser:{image:"tesla"},qupzilla:{upper:[0,3]},rekonq:{title:"rekonq"},retawq:{image:"terminal"},rockmelt:{upper:[0,4]},saayaa:{title:"SaaYaa Explorer"},seamonkey:{upper:[0,3]},"semc-browser":{upper:[0,1,2,3,5],image:"semcbrowser"},"semc-java":{upper:[0,1,2,3],image:"semcbrowser"},shiretoko:{upper:[0],image:"firefoxdevpre"},sitekiosk:{upper:[0,4]},skipstone:{upper:[0,4]},silk:{title:"Amazon {%Silk%}"},slimboat:{upper:[0,4]},slimbrowser:{upper:[0,4]},smarttv:{upper:[0,5,6],image:"maplebrowser"},substream:{upper:[0,3]},sulfur:{title:"Flock {%Sulfur%}",image:"flock"},sylera:{upper:[0],image:"null"},taobrowser:{upper:[0,3]},tear:{title:"Tear"},teashark:{upper:[0,3]},teleca:{image:"obigo"},tencenttraveler:{title:"Tencent {%Traveler%}"},tenfourfox:{upper:[0,3,7]},tizenbrowser:{title:"{%TizenBrowser%}",image:"tizen"},"tizen browser":{title:"{%Tizen Browser%}",image:"tizen"},theworld:{title:"TheWorld Browser"},ubrowser:{upper:[0,1],image:"ucbrowser"},ucbrowser:{upper:[0,1,2,3]},"uc browser":{upper:[0,1,2,4],image:"ucbrowser"},ucweb:{upper:[0,1,2,3,4],image:"ucbrowser"},ultrabrowser:{upper:[0,5]},"up.browser":{upper:[0,3],image:"openwave"},"up.link":{upper:[0,3],image:"openwave"},uzardweb:{title:"{%uZardWeb%}"},uzard:{upper:[1],image:"uzardweb"},uzbl:{title:"uzbl"},vimprobable:{upper:[0],image:"null"},vonkeror:{upper:[0],image:"null"},w3m:{upper:[0,2]},wget:{image:"null"},curl:{image:"null"},iemobile:{upper:[0,1,2],image:"msie-mobile"},waterfox:{upper:[0,5]},webianshell:{title:"Webian {%Shell%}"},webrender:{upper:[0]},weltweitimnetzbrowser:{title:"Weltweitimnetz {%Browser%}",image:"weltweitimnetzbrowser"},"whitehat aviator":{upper:[0,5,9],image:"aviator"},wkiosk:{title:"wKiosk"},worldwideweb:{upper:[0,5,9]},"x-smiles":{upper:[0,2]},xiino:{image:"null"},yabrowser:{upper:[0,2],image:"yandex"},zbrowser:{upper:[1]},zipzap:{upper:[0,3]},abrowse:{title:"{%ABrowse Browser%}"},none:{title:"Unknown",image:"unknown"}},p=new RegExp(["11(4|5)Browser","2345(Explorer|chrome)","Conkeror","Alienforce","Amaya","Arora","Beamrise","Beonex","Blazer","bidubrowser","Blackbird","Bolt","Browzar","Bunjalloo","Camino","Chromium","Classilla","Coast","Columbus","Cruz","Cyberdog","Demeter","Dooble","dillo","Doris","Edbrowse","E?links","Epiphany","Escape|Espial","Fennec","Firebird","Flock","Fluid","Galeon","Hv3","Iris","lolifox","Iceape","Hana","Kapiko","Kazehakase","Kinza","Konqueror","Kylo","Lunascape","Lynx","Madfox","Maxthon","Midori","Minefield","Minimo","Mosaic","Netscape","Obigo","Orca","Oregano","Otter","Perk","Phoenix","Podkicker","Ryouko","Sleipnir","Shiira","Skyfire","Stainless","Sundance","Sunrise","Surf","Swiftfox","Swiftweasel","Thunderbird","Tjusig","UC? ?Browser|UCWEB","polarity","polaris","pogo","prism","superbird","songbird","Usejump","Vivaldi","Wyzo","WhatsApp","Weibo"].concat(Object.keys(u)).join("|"),"i"),s={msie:{callback:function(e,i){"7.0"===i.version&&/Trident\/4.0/i.test(i.ua)?(i.name=" 8.0 (Compatibility Mode)",i.version=""):i.name=""}},"microsoft office":{callback:function(e,i){i.version=""}},"nf-browser":{name:"NetFront"},"semc-browser":{name:"SEMC Browser"},ucweb:{name:"UC Browser"},ubrowser:{name:"UC Browser"},ucbrowser:{name:"UC Browser"},"uc browser":{name:"UC Browser"},bidubrowser:{name:"Baidu Browser"},baidubrowser:{name:"Baidu Browser"},baiduhd:{name:"Baidu Browser"},"up.browser":{name:"Openwave Mobile Browser"},"up.link":{name:"Openwave Mobile Browser"},chromeframe:{name:"Google Chrome Frame"},mozilladeveloperpreview:{name:"Mozilla Developer Preview"},"opera mobi":{name:"Opera Mobile"},"osb-browser":{name:"Gtk+ WebCore"},"tablet browser":{name:"MicroB"},crmo:{name:"Chrome Mobile"},smarttv:{name:"Maple Browser"},miuibrowser:{name:"MIUI Browser"},sailfishbrowser:{name:"Sailfish Browser"},fbav:{name:"Facebook"},atomicbrowser:{name:"Atomic Web Browser"},dplus:{name:"D+"},micromessenger:{name:"WeChat"},"nichrome/self":{name:"NiChrome"},tizenbrowser:{name:"Tizen Browser"},gsa:{name:"Google Search App"},"opera labs":{callback:function(e,i){e=i.ua.match(/Edition Labs([ ._0-9a-zA-Z]+);/i),i.version=null!==e?e[1]:""}},qtcarbrowser:{name:"Tesla Car Browser",version:""},iceweasel:{callback:function(e,i){"Firefox"===i.version&&(i.version="")}},yabrowser:{callback:function(e,i){i.name="Yandex.Browser"}}},d=function(e,i){var r=i.toLowerCase(),a=r;e.name=i,"opera"!==r&&"opera next"!==r&&"opera developer"!==r||!/OPR/i.test(e.ua)?("opera"===r||"opera next"===r||"opera labs"===r)&&/Version/i.test(e.ua)||"opera mobi"===r&&/Version/i.test(e.ua)||"safari"===r&&/Version/i.test(e.ua)||"pre"===r&&/Version/i.test(e.ua)||"android webkit"===r?a="Version":"links"===r?a="Links (":"smarttv"===r?a="WebBrowser":"ucweb"===r&&/UCBrowser/i.test(e.ua)?a="UCBrowser":"tenfourfox"!==r&&"classilla"!==r&&"msie"!==r||!/ rv:([.0-9a-zA-Z]+)/i.test(e.ua)?"nichrome/self"===r?a="self":"edga"===r&&(e.name="Edge Android"):a=" rv":a="OPR",a=a.replace(new RegExp("[.\\\\+*?\\[\\^\\]$(){}=!<>|:\\-]","g"),"\\$&");var o=new RegExp(a+"[ |/|:]?([.0-9a-zA-Z]+)","i"),n=e.ua.match(o);if(e.version=null!==n?n[1]:"","build"===e.version.toLowerCase()&&(e.version=""),r in s)if("callback"in s[r])s[r].callback(n,e);else for(var t in s[r])e[t]=s[r][t];return e.name+(""!==e.version?" "+e.version:"")};a.analyze=function(e){var r,i,a={ua:e,name:"",version:"",full:"",image:"",dir:"browser"},o=e.match(p),n=null;if(null!==o){var t=o[0].toLowerCase(),s=null;if(n={},u[t]&&Object.keys(u[t]).forEach(function(e){"upper"!==e?n[e]=u[t][e]:s=u[t].upper}),!("title"in n))if(null!==s){var l=t;s.forEach(function(e){l=l.substr(0,e)+l.substr(e,1).toUpperCase()+l.substr(e+1,l.length)}),n.title="{%"+l+"%}"}else n.title="{%"+t.toLowerCase().replace(/[a-z]/,function(e){return e.toUpperCase()})+"%}";"image"in n||(n.image=t),i=n,(r=a).image=i.image,r.full=i.title.replace(/\{%(.+)%\}/,function(e,i){return d(r,i)})}else if(/QQ(?!Download|Pinyin)/.test(a.ua))a.full=d(a,"QQ"),a.image="qq";else if(/Galaxy/i.test(a.ua)&&!/Chrome/i.test(a.ua))a.full=d(a,"Galaxy"),a.image="galaxy";else if(/Opera Mini/i.test(a.ua))a.full=d(a,"Opera Mini"),a.image="opera-2";else if(/Opera Mobi/i.test(a.ua))a.full=d(a,"Opera Mobi"),a.image="opera-2";else if(/Opera/i.test(a.ua))a.full=d(a,"Opera"),a.image="opera-1",/Version/i.test(a.ua)&&(a.image="opera-2");else if(/OPR/i.test(a.ua))/(Edition Next)/i.test(a.ua)?(a.full=d(a,"Opera Next"),a.image="opera-next"):/(Edition Developer)/i.test(a.ua)?(a.full=d(a,"Opera Developer"),a.image="opera-developer"):(a.full=d(a,"Opera"),a.image="opera-1");else if(/SE /i.test(a.ua)&&/MetaSr/i.test(a.ua))a.name=a.full="Sogou Explorer",a.image="sogou";else if((/Ubuntu; Mobile/i.test(a.ua)||/Ubuntu; Tablet/i.test(a.ua))&&/WebKit/i.test(a.ua))a.name=a.full="Ubuntu Web Browser",a.image="ubuntuwebbrowser";else if(/Avant Browser/i.test(a.ua))a.full="Avant "+d(a,"Browser"),a.image="avantbrowser";else if(/AppleWebkit/i.test(a.ua)&&/Android/i.test(a.ua)&&!/Chrome/i.test(a.ua))a.full=d(a,"Android Webkit"),a.image="android-webkit";else if(/Windows.+Chrome.+Edge/i.test(a.ua))a.full=d(a,"Edge"),a.image="edge";else if(/Edga/i.test(a.ua))a.full=d(a,"Edga"),a.image="edge";else if(/Chrome|crios/i.test(a.ua))/crios/i.test(a.ua)?a.full="Google "+d(a,"CriOS"):a.full="Google "+d(a,"Chrome"),a.image="chrome";else if(/Nokia/i.test(a.ua)&&!/Trident/i.test(a.ua))a.full="Nokia Web Browser",a.image="maemo";else if(/Safari/i.test(a.ua))a.name="Safari",/Version/i.test(a.ua)?a.full=d(a,"Safari"):a.full=a.name,/Mobile ?Safari/i.test(a.ua)&&(a.name="Mobile "+a.name,a.full="Mobile "+a.full),a.image="safari";else if(/Firefox/i.test(a.ua))a.full=d(a,"Firefox"),a.image="firefox";else if(/MSIE/i.test(a.ua)||/Trident/i.test(a.ua)){if(a.full="Internet Explorer"+d(a,"MSIE"),a.image="msie",null!==(n=a.ua.match(/(MSIE[ |/]?| rv:)([.0-9a-zA-Z]+)/i))){var m=parseInt(n[2]);11<=m?a.image="msie11":10<=m?a.image="msie10":9<=m?a.image="msie9":7<=m?a.image="msie7":6<=m?a.image="msie6":4<=m?a.image="msie4":3<=m?a.image="msie3":2<=m&&(a.image="msie2")}}else/Mozilla/i.test(a.ua)?(a.full="Mozilla Compatible",a.image="mozilla"):(a.name="Unknown",a.image="null",a.full=a.name);return a},"undefined"!=typeof module&&module.exports?module.exports=a:"undefined"!=typeof define&&define.amd?define([],function(){return a}):"undefined"!=typeof define&&define.cmd?define([],function(e,i,r){r.exports=a}):(e.USERAGENT_BROWSER=function(){},e.USERAGENT_BROWSER.prototype.analyze=a.analyze)}(this),function(e){var a=[{regEx:/MEIZU (MX|M9)|MX[0-9]{0,1}[; ]|M0(4|5)\d|M35\d|M\d note/i,brand:"Meizu",image:"meizu",childItem:[{regEx:/(M(04|05|35)\d)/i,model:"$1"},{regEx:/(MX[0-9]{0,1})/i,model:"$1"},{regEx:/(m\d Note)/i,model:"$1"}]},{regEx:/MI-ONE|MI[ -]\d/i,brand:"Xiaomi",image:"xiaomi",childItem:[{regEx:/MI-ONE/i,model:"1"},{regEx:/MI[ -]([A-Z0-9]+)/i,model:"$1"}]},{regEx:/HM NOTE|HM \d|Redmi/i,brand:"Redmi",image:"xiaomi",childItem:[{regEx:/HM NOTE ([A-Z0-9]+)/i,model:"Note $1"},{regEx:/HM ([A-Z0-9]+)/i,model:"$1"},{regEx:/RedMi Note ([A-Z0-9]+)/i,model:"Note $1"}]},{regEx:/BlackBerry/i,brand:"BlackBerry",image:"blackberry",version:{start:"blackberry ?"}},{regEx:/Coolpad/i,brand:"CoolPad",image:"coolpad",version:{start:"CoolPad( |_)?",item:2}},{regEx:/Dell/i,brand:"Dell",image:"dell",childItem:[{regEx:/Dell Streak/i,model:"Streak"}]},{regEx:/Hasee/i,brand:"Hasee",image:"hasee",childItem:[{regEx:/Hasee (([^;/]+) Build|([^;/)]+)[);/ ])/i,model:"$2"}]},{regEx:/Hisense|HS-(?:U|EG?|I|T|X)[0-9]+[a-z0-9-]*/i,brand:"Hisense",image:"hisense",childItem:[{regEx:/(HS-(?:U|EG?|I|T|X)[0-9]+[a-z0-9-]*)/i,model:"$1"}]},{regEx:/HTC|Desire|Rhodium|WMD-50433/i,brand:"HTC",image:"htc",childItem:[{regEx:/Desire/i,model:"Desire"},{regEx:/Rhodium|WMD-50433|HTC[_| ]Touch[_| ]Pro2/i,model:"Touch Pro2"},{regEx:/HTC[_| ]Touch[_| ]Pro/i,model:"Touch Pro"},{regEx:/Windows Phone .+ by HTC/i,version:{start:"Windows Phone ",end:" by HTC"}}],version:{start:"HTC[ |_|-]?"}},{regEx:/huawei|Honor|Che\d|H60-L/i,brand:"Huawei",image:"huawei",version:{start:"HUAWEI( |_)?",item:2},childItem:[{regEx:/HONOR[ ]?([A-Za-z0-9]{3,4}-[A-Za-z0-9]{3,4})|(Che[0-9]{1}-[a-zA-Z0-9]{4})/i,model:"$1"},{regEx:/(H60-L\d+)/i,model:"$1"}]},{regEx:/Kindle/i,brand:"Amazon",model:"Kindle",image:"kindle",version:{start:"Kindle/"}},{regEx:/K-Touch/i,brand:"K-Touch",image:"k-touch",version:{start:"k-touch[ _]"}},{regEx:/Lenovo|lepad|Yoga/i,brand:"Lenovo",image:"lenovo",childItem:[{regEx:"lepad",model:"LePad"},{regEx:/Yoga( Tablet)?[ |-|/|_]([.0-9a-zA-Z]+)/i,model:"Yoga $2"}],version:{start:"Lenovo[ |-|/|_]"}},{regEx:/Letv/i,brand:"Letv",image:"letv",version:{start:"Letv[- /]"}},{regEx:/LG/i,brand:"LG",image:"lg",version:{start:"LGE?([- /])",item:2}},{regEx:/ Droid|XT720|MOT-|MIB|XOOM/i,brand:"Motorola",image:"motorola",childItem:[{regEx:/ Droid/i,model:"Droid"},{regEx:/MOT-|MIB/i,version:{start:"MOT(O|-)",item:2}},{regEx:/XOOM/i,model:"Xoom"},{regEx:/XT720/i,model:"XT720"}]},{regEx:/Microsoft/i,brand:"Microsoft",image:"microsoft",childItem:[{regEx:/Lumia/i,model:"Lumia",version:{start:"(Lumia )",item:2}}]},{regEx:/Nintendo/i,brand:"Nintendo",image:"nintendo",childItem:[{regEx:/DSi/,model:"DSi",image:"nintendodsi"},{regEx:/DS/,model:"DS",image:"nintendods"},{regEx:/WiiU/,model:"Wii U",image:"nintendowiiu"},{regEx:/Wii/,model:"Wii",image:"nintendowii"}]},{regEx:/Nokia/i,brand:"Nokia",image:"nokia",childItem:[{regEx:/Nokia 909/i,model:"Lumia 1020"},{regEx:/IEMobile|WPDesktop|Edge/i,model:"Lumia",version:{start:"(Nokia |Lumia |Nokia;)",item:2}}],version:{start:"Nokia",item:1}},{regEx:/Onda/i,brand:"Onda",image:"onda"},{regEx:/oppo/i,brand:"OPPO",image:"oppo"},{regEx:/A0001|A2005|A3000|E1003|One [A-Z]\d{4}/i,brand:"OnePlus",image:"oneplus",childItem:[{regEx:/A0001/,model:"1"},{regEx:/A2005/,model:"2"},{regEx:/E1003/,model:"X"},{regEx:/A3000/,model:"3"}]},{regEx:/ Pixi\/| Pre\/|Palm|webos/i,brand:"Palm",image:"palm",childItem:[{regEx:/Pixi/i,model:"Pixi"},{regEx:/Pre/i,model:"Pre"}]},{regEx:/Galaxy Nexus|Smart-?TV|GT-|SM-|SCH-|SHV-|Samsung/i,brand:"Samsung",image:"samsung",childItem:[{regEx:/Smart-?TV/i,model:"Smart TV"},{regEx:/Galaxy Nexus/i,model:"Galaxy Nexus"}],version:{start:"(Samsung-(SCH-)?|GT-|SM-|SCH-|SHV-)",item:3}},{regEx:/PlayStation/i,brand:"Sony",model:"PlayStation",image:"playstation",version:{start:"PlayStation "}},{regEx:/SonyEricsson/i,brand:"SonyEricsson",image:"sonyericsson",version:{start:"SonyEricsson"}},{regEx:/TCL/i,brand:"TCL",image:"tcl",version:{start:"TCL ?"}},{regEx:/vivo/i,brand:"vivo",image:"vivo",version:{start:"VIVO "}},{regEx:/Xperia/i,brand:"Sony",model:"Xperia",image:"xperia",version:{start:"Xperia(-T)?( |_|-)?",item:3}},{regEx:/zte/i,brand:"ZTE",image:"zte",version:{start:"ZTE "}},{regEx:/Ubuntu; (Mobile|Tablet)/i,brand:"Ubuntu",image:"ubuntutouch",childItem:[{regEx:/Mobile/i,model:"Phone"},{regEx:/Tablet/i,model:"Tablet"}]},{regEx:/Nexus/i,brand:"Google",model:"Nexus",image:"google-nexusone",version:{start:"Nexus "}}],g=function(e,i){"end"in i.version||(i.version.end=""),"item"in i.version||(i.version.item=1);var r=new RegExp(i.version.start+"([.0-9a-zA-Z]+)"+i.version.end,"i"),a=e.ua.match(r);a&&(e.model+=(""===e.model?"":" ")+a[i.version.item].replace(/_/g,""))},b=function(e,i){for(var r=null,a="",o=null,n=Object.keys(i),t=0;t<n.length;t++)if(o=i[n[t]],r=e.ua.match(o.regEx)){for(var s=Object.keys(o),l=0;l<s.length;l++){var m=s[l],u=o[m];switch(m){case"childItem":case"version":case"regEx":break;case"brand":case"model":if(0===r.length)continue;""!==e[m]&&(e[m]+=" "),a=u;for(var p=1;p<r.length;p++)a=a.replace(new RegExp("\\$"+p,"g"),r[p]);e[m]+=a;break;default:e[m]=u}}var d="version"in o;return"childItem"in o&&b(e,o.childItem)&&(d=!1),d&&g(e,o),delete e.addVersion,!0}return!1},o={};o.analyze=function(e){var i,r={ua:e,name:"",image:"",brand:"",model:"",dir:"device"};return b(i=r,a)||(/iPad/i.test(i.ua)?(i.brand="Apple",i.model="iPad",i.image="ipad"):/iPod/i.test(i.ua)?(i.brand="Apple",i.model="iPod",i.image="iphone"):/iPhone/i.test(i.ua)?(i.brand="Apple",i.model="iPhone",i.image="iphone"):(/MSIE.+?Windows.+?Trident/i.test(i.ua)&&!/Windows ?Phone/i.test(i.ua)&&(i.brand="",i.model=""),i.image="null")),r.name=""===r.brand&&""===r.model?"":r.brand+(""===r.model?"":" ")+r.model,r.full=r.name,r},"undefined"!=typeof module&&module.exports?module.exports=o:"undefined"!=typeof define&&define.amd?define([],function(){return o}):"undefined"!=typeof define&&define.cmd?define([],function(e,i,r){r.exports=o}):(e.USERAGENT_DEVICE=function(){},e.USERAGENT_DEVICE.prototype.analyze=o.analyze)}(this),function(e){var a={6.4:["10","6"],"10.0":["10","6"],6.3:["8.1","5"],6.2:["8","5"],6.1:["7","4"],"6.0":["Vista","3"],5.2:["Server 2003","2"],5.1:["XP","2"],5.01:["2000 Service Pack 1","1"],"5.0":["2000","1"],"4.0":["NT 4.0","1"],3.51:["NT 3.11","1"]},s=new RegExp(["BB10","BeOS","DragonFly","FreeBSD","Inferno","SunOS","Solaris","J2ME/MIDP","MorphOS","NetBSD","OpenBSD","Unix","webOS"].join("|"),"i"),l={bb10:{name:"BlackBerry OS 10",image:"blackberry"},dragonfly:{name:"DragonFly BSD",image:"dragonflybsd"},freebsd:{name:"FreeBSD"},morphos:{name:"MorphOS"},openbsd:{name:"OpenBSD"},netbsd:{name:"NetBSD"},beos:{name:"BeOS"},webos:{name:"Palm webOS",image:"palm"},sunos:{name:"Solaris",image:"solaris"},"j2me/midp":{name:"J2ME/MIDP Device",image:"java"}},n=new RegExp(["Arch ?Linux","Chakra","Crunchbang","Debian","Gentoo","Kanotix","Knoppix","Jolla","LindowsOS","Linspire","Mageia","Pardus","Rosa","Sabayon","Slackware","Suse","VectorLinux","Venenux","Xandros","Zenwalk"].join("|"),"i"),t={"arch linux":{image:"archlinux",name:"Arch Linux"},archlinux:{name:"Arch Linux"},suse:{name:"openSUSE"},lindowsos:{name:"LindowsOS"},linspire:{image:"lindowsos"}},m={centos:["centos",/.el([.0-9a-zA-Z]+).centos/i],fedora:["fedora",/.fc([.0-9a-zA-Z]+)/i],"foresight linux":["foresight",/Foresight Linux\/([.0-9a-zA-Z]+)/i],"linux mint":["linuxmint",/Linux Mint\/([.0-9a-zA-Z]+)/i],mandriva:["mandriva",/mdv\/([.0-9a-zA-Z]+)/i],moonos:["moonos",/moonos\/([.0-9a-zA-Z]+)/i]},u=new RegExp("("+Object.keys(m).join("|")+")","i"),o=function(e,i){e.full+=" "+a[i][0],e.image="win-"+a[i][1],e.version=i},p={};p.analyze=function(e){var i={ua:e,name:"",version:"",full:"",windows:!1,linux:!1,x64:!1,dir:"os"};return/x86_64|Win64; x64|WOW64/i.test(i.ua)&&(i.x64=!0),/Windows|Win(NT|32|95|98|16)|ZuneWP7|WPDesktop/i.test(i.ua)?(i.windows=!0,function(e){e.full="Windows",e.name="Windows",e.image="win-2",e.version="";var i=null;if(/Windows Phone|WPDesktop|ZuneWP7|WP7/i.test(e.ua)){if(e.name+=" Phone",e.image="windowsphone",null!==(i=e.ua.match(/Windows Phone (OS )?([0-9.]+)/i))){e.version=i[2];var r=parseInt(e.version);7===r?e.image="wp7":10===r&&(e.name="Windows",e.version="10 Mobile",e.image="win-6")}e.full=e.name+(""===e.version?"":" "+e.version)}else/Windows NT/i.test(e.ua)&&(e.name="Windows NT",null!==(i=e.ua.match(/Windows NT (\d+\.\d+)/i))&&a[i[1]]&&o(e,i[1]));if("Windows"!==e.full)return;/Windows XP/i.test(e.ua)?o(e,"5.1"):/Windows 2000/i.test(e.ua)?o(e,"5.0"):/WinNT4.0/i.test(e.ua)?o(e,"4.0"):/WinNT3.51/i.test(e.ua)?o(e,"3.51"):/Win(dows )?3.11|Win16/i.test(e.ua)?(e.full+=" 3.11",e.image="win-1"):/Windows 3.1/i.test(e.ua)?(e.full+=" 3.1",e.image="win-1"):/Win 9x 4.90|Windows ME/i.test(e.ua)?(e.full+=" Me",e.image="win-1"):/Win98/i.test(e.ua)?(e.full+=" 98 SE",e.image="win-1"):/Windows (98|4\.10)/i.test(e.ua)?(e.full+=" 98",e.image="win-1"):/Windows 95/i.test(e.ua)||/Win95/i.test(e.ua)?(e.full+=" 95",e.image="win-1"):/Windows CE|Windows .+Mobile/i.test(e.ua)?(e.full+=" CE",e.image="win-2"):/WM5/i.test(e.ua)?(e.name+=" Mobile",e.version="5",e.full=e.name+" "+e.version,e.image="win-phone"):/WindowsMobile/i.test(e.ua)&&(e.name+=" Mobile",e.full=e.name,e.image="win-phone")}(i)):/Linux/i.test(i.ua)&&!/Android|ADR|Tizen/.test(i.ua)?(i.linux=!0,function(e){e.name="",e.image="",e.version="";var i=null,r=e.ua.match(n),a="";if(u.lastIndex=0,null!==r)a=r[0].toLowerCase(),e.name=a.replace(/(\w)/,function(e){return e.toUpperCase()}),e.image=a,t[a]&&(e.name=t[a].name||e.name,e.image=t[a].image||e.image);else if(/(L|K|X|Ed)?Ubuntu/i.test(e.ua)){if(e.name="Ubuntu",(i=e.ua.match(/Ubuntu[/| ]([.0-9]+[.0-9a-zA-Z]+)/i))&&(e.version=i[1],parseInt(e.version)<10&&(e.image="ubuntu-1")),""===e.image&&(e.image="ubuntu-2"),i=e.ua.match(/(L|K|X|Ed)Ubuntu/i)){var o=i[1].toLowerCase();e.name=o+e.name,e.name=e.name.toLowerCase().replace(/(\w)/,function(e){return e.toUpperCase()}),e.image=o+e.image}}else u.test(e.ua)?(a=(i=e.ua.match(u))[1].toLowerCase(),e.name=i[1],(i=e.ua.match(m[a][1]))&&(e.version=i[1]),e.image=m[a][0]):/Red Hat/i.test(e.ua)||/RedHat/i.test(e.ua)?(e.name="Red Hat",(i=e.ua.match(/.el([._0-9a-zA-Z]+)/i))&&(e.name+=" Enterprise Linux",e.version=i[1].replace(/_/g,".")),e.image="red-hat"):(e.name="GNU/Linux",e.image="linux");e.full=e.name,""!==e.version&&(e.full+=" "+e.version)}(i)):function(e){e.name="",e.image="",e.version="",e.full="";var i,r=e.ua.match(s);if(null!==r){var a=r[0].toLowerCase();e.name=a.replace(/(\w)/,function(e){return e.toUpperCase()}),e.image=a,l[a]&&(e.name=l[a].name||e.name,e.image=l[a].image||e.image)}else if(/Android|ADR /i.test(e.ua))e.name="Android",e.image="android",(i=e.ua.match(/(Android|Adr)[ |/]([.0-9]+)/i))&&(e.version=i[2]);else if(/Tizen/i.test(e.ua))e.name="Tizen",e.image="tizen";else if(/(iPhone|CPU) OS/.test(e.ua))e.name="iOS",e.image="mac-3",(i=e.ua.match(/(iPhone|CPU) OS ([._0-9]+)/i))&&(e.version=i[2].replace(/_/g,"."));else if(/AmigaOS/i.test(e.ua))e.name="AmigaOS",(i=e.ua.match(/AmigaOS ([.0-9a-zA-Z]+)/i))&&(e.version=i[1]),e.image="amigaos";else if(/\b(?!Mi)CrOS(?!oft)/i.test(e.ua))e.name="Google Chrome OS",e.image="chromeos";else if(/IRIX/i.test(e.ua))e.name="IRIX",(i=e.ua.match(/IRIX(64)? ([.0-9a-zA-Z]+)/i))&&(void 0!==i[1]&&""!==i[1]&&(e.x64=!0),void 0!==i[2]&&""!==i[2]&&(e.version=i[2])),e.image="irix";else if(/Mac/i.test(e.ua)||/Darwin/i.test(e.ua))if(i=e.ua.match(/(Mac OS ?X)/i)){e.version=e.ua.substr(e.ua.toLowerCase().indexOf(i[1].toLowerCase())),e.version=e.version.substr(0,e.version.indexOf(")")),0<e.version.indexOf(";")&&(e.version=e.version.substr(0,e.version.indexOf(";"))),e.version=e.version.replace(/_/g,"."),e.version=e.version.replace(/Mac OS ?X ?/,"");var o=e.version.split(".");if(1<o.length){var n=parseInt(o[0]),t=parseInt(o[1]);10<=n&&12<=t&&(e.name="macOS")}""===e.name&&(e.name="Mac OS X"),e.full=e.name+" "+e.version,e.image="Mac OSX"===i[1]?"mac-2":"mac-3"}else/Darwin/i.test(e.ua)?e.name="Mac OS Darwin":e.name="Macintosh",e.image="mac-1";else/Meego/i.test(e.ua)?(e.name="Meego",e.image="meego"):/RISC OS/i.test(e.ua)?(e.name="RISC OS",e.image="risc",(i=e.ua.match(/RISC OS ([.0-9a-zA-Z]+)/i))&&(e.version=i[1])):/Symb(ian)?(OS)?/i.test(e.ua)?(e.name="SymbianOS",(i=e.ua.match(/Symb(ian)?(OS)?\/([.0-9a-zA-Z]+)/i))&&(e.version=i[3]),e.image="symbian"):(e.name="Unknown",e.image="null");e.full=e.name+(""===e.version?"":" "+e.version)}(i),""===i.full&&(i.full=i.name),i.x64&&(i.full+=" x64"),i},"undefined"!=typeof module&&module.exports?module.exports=p:"undefined"!=typeof define&&define.amd?define([],function(){return p}):"undefined"!=typeof define&&define.cmd?define([],function(e,i,r){r.exports=p}):(e.USERAGENT_OS=function(){},e.USERAGENT_OS.prototype.analyze=p.analyze)}(this),function(e){var i="undefined"!=typeof module&&module.exports,r="undefined"!=typeof define&&define.cmd,a="undefined"!=typeof define&&define.amd,o={analyze:function(e){var i={};return i.ua=e,this.osDetect&&(i.os=this.osDetect.analyze(e)),this.deviceDetect&&(i.device=this.deviceDetect.analyze(e)),this.browserDetect&&(i.browser=this.browserDetect.analyze(e)),i.device&&(i.platform=i.device),i.device&&i.os&&""===i.device.name&&(i.platform=i.os),i}},n=function(e,i,r,a){e.osDetect=i,e.deviceDetect=r,e.browserDetect=a};if(i){if(process.env.UAJS_COV){var t=["-cov/os","-cov/device","-cov/browser"];n(o,require("./lib"+t[0]),require("./lib"+t[1]),require("./lib"+t[2]))}else n(o,require("./lib/os"),require("./lib/device"),require("./lib/browser"));module.exports=o}else a?define(["./lib/os","./lib/device","./lib/browser"],function(e,i,r){return n(o,e,i,r),o}):r?define(function(e,i,r){n(o,e("./lib/os"),e("./lib/device"),e("./lib/browser")),r.exports=o}):("undefined"!=typeof USERAGENT_OS&&(o.osDetect=new USERAGENT_OS),"undefined"!=typeof USERAGENT_DEVICE&&(o.deviceDetect=new USERAGENT_DEVICE),"undefined"!=typeof USERAGENT_BROWSER&&(o.browserDetect=new USERAGENT_BROWSER),e.USERAGENT=o)}(this);