PageSourceSearch

https://www.yu-dental.jp/cms/wp-content/themes/dental-smart/assets/lib/js/ua-parser.min.js

js yu-dental.jp collected 2026-10-06 08:14:08 UTC 23,279 bytes, 571 lines download raw bytes

vendor: 17,216 bytes, lines 1-420
1/* UAParser.js v1.0.2
2   Copyright © 2012-2021 Faisal Salman <[email protected]>
3   MIT License */
4(function (window, undefined) {
5	'use strict';
6	var LIBVERSION = '1.0.2',
7		EMPTY = '',
8		UNKNOWN = '?',
9		FUNC_TYPE = 'function',
10		UNDEF_TYPE = 'undefined',
11		OBJ_TYPE = 'object',
12		STR_TYPE = 'string',
13		MAJOR = 'major',
14		MODEL = 'model',
15		NAME = 'name',
16		TYPE = 'type',
17		VENDOR = 'vendor',
18		VERSION = 'version',
19		ARCHITECTURE = 'architecture',
20		CONSOLE = 'console',
21		MOBILE = 'mobile',
22		TABLET = 'tablet',
23		SMARTTV = 'smarttv',
24		WEARABLE = 'wearable',
25		EMBEDDED = 'embedded',
26		UA_MAX_LENGTH = 255;
27	var AMAZON = 'Amazon',
28		APPLE = 'Apple',
29		ASUS = 'ASUS',
30		BLACKBERRY = 'BlackBerry',
31		BROWSER = 'Browser',
32		CHROME = 'Chrome',
33		EDGE = 'Edge',
34		FIREFOX = 'Firefox',
35		GOOGLE = 'Google',
36		HUAWEI = 'Huawei',
37		LG = 'LG',
38		MICROSOFT = 'Microsoft',
39		MOTOROLA = 'Motorola',
40		OPERA = 'Opera',
41		SAMSUNG = 'Samsung',
42		SONY = 'Sony',
43		XIAOMI = 'Xiaomi',
44		ZEBRA = 'Zebra',
45		FACEBOOK = 'Facebook';
46	var extend = function (regexes, extensions) {
47			var mergedRegexes = {};
48			for (var i in regexes) {
49				if (extensions[i] && extensions[i].length % 2 === 0) {
50					mergedRegexes[i] = extensions[i].concat(regexes[i]);
51				} else {
52					mergedRegexes[i] = regexes[i];
53				}
54			}
55			return mergedRegexes;
56		},
57		enumerize = function (arr) {
58			var enums = {};
59			for (var i = 0; i < arr.length; i++) {
60				enums[arr[i].toUpperCase()] = arr[i];
61			}
62			return enums;
63		},
64		has = function (str1, str2) {
65			return typeof str1 === STR_TYPE ? lowerize(str2).indexOf(lowerize(str1)) !== -1 : false;
66		},
67		lowerize = function (str) {
68			return str.toLowerCase();
69		},
70		majorize = function (version) {
71			return typeof version === STR_TYPE ? version.replace(/[^\d\.]/g, EMPTY).split('.')[0] : undefined;
72		},
73		trim = function (str, len) {
74			if (typeof str === STR_TYPE) {
75				str = str.replace(/^\s\s*/, EMPTY).replace(/\s\s*$/, EMPTY);
76				return typeof len === UNDEF_TYPE ? str : str.substring(0, UA_MAX_LENGTH);
77			}
78		};
79	var rgxMapper = function (ua, arrays) {
80			var i = 0,
81				j,
82				k,
83				p,
84				q,
85				matches,
86				match;
87			while (i < arrays.length && !matches) {
88				var regex = arrays[i],
89					props = arrays[i + 1];
90				j = k = 0;
91				while (j < regex.length && !matches) {
92					matches = regex[j++].exec(ua);
93					if (!!matches) {
94						for (p = 0; p < props.length; p++) {
95							match = matches[++k];
96							q = props[p];
97							if (typeof q === OBJ_TYPE && q.length > 0) {
98								if (q.length === 2) {
99									if (typeof q[1] == FUNC_TYPE) {
100										this[q[0]] = q[1].call(this, match);
101									} else {
102										this[q[0]] = q[1];
103									}
104								} else if (q.length === 3) {
105									if (typeof q[1] === FUNC_TYPE && !(q[1].exec && q[1].test)) {
106										this[q[0]] = match ? q[1].call(this, match, q[2]) : undefined;
107									} else {
108										this[q[0]] = match ? match.replace(q[1], q[2]) : undefined;
109									}
110								} else if (q.length === 4) {
111									this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined;
112								}
113							} else {
114								this[q] = match ? match : undefined;
115							}
116						}
117					}
118				}
119				i += 2;
120			}
121		},
122		strMapper = function (str, map) {
123			for (var i in map) {
124				if (typeof map[i] === OBJ_TYPE && map[i].length > 0) {
125					for (var j = 0; j < map[i].length; j++) {
126						if (has(map[i][j], str)) {
127							return i === UNKNOWN ? undefined : i;
128						}
129					}
130				} else if (has(map[i], str)) {
131					return i === UNKNOWN ? undefined : i;
132				}
133			}
134			return str;
135		};
136	var oldSafariMap = {'1.0': '/8', 1.2: '/1', 1.3: '/3', '2.0': '/412', '2.0.2': '/416', '2.0.3': '/417', '2.0.4': '/419', '?': '/'},
137		windowsVersionMap = {ME: '4.90', 'NT 3.11': 'NT3.51', 'NT 4.0': 'NT4.0', 2e3: 'NT 5.0', XP: ['NT 5.1', 'NT 5.2'], Vista: 'NT 6.0', 7: 'NT 6.1', 8: 'NT 6.2', 8.1: 'NT 6.3', 10: ['NT 6.4', 'NT 10.0'], RT: 'ARM'};
138	var regexes = {
139		browser: [
140			[/\b(?:crmo|crios)\/([\w\.]+)/i],
141			[VERSION, [NAME, 'Chrome']],
142			[/edg(?:e|ios|a)?\/([\w\.]+)/i],
143			[VERSION, [NAME, 'Edge']],
144			[/(opera mini)\/([-\w\.]+)/i, /(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i, /(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],
145			[NAME, VERSION],
146			[/opios[\/ ]+([\w\.]+)/i],
147			[VERSION, [NAME, OPERA + ' Mini']],
148			[/\bopr\/([\w\.]+)/i],
149			[VERSION, [NAME, OPERA]],
150			[/(kindle)\/([\w\.]+)/i, /(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i, /(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i, /(ba?idubrowser)[\/ ]?([\w\.]+)/i, /(?:ms|\()(ie) ([\w\.]+)/i, /(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale|qqbrowserlite|qq)\/([-\w\.]+)/i, /(weibo)__([\d\.]+)/i],
151			[NAME, VERSION],
152			[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],
153			[VERSION, [NAME, 'UC' + BROWSER]],
154			[/\bqbcore\/([\w\.]+)/i],
155			[VERSION, [NAME, 'WeChat(Win) Desktop']],
156			[/micromessenger\/([\w\.]+)/i],
157			[VERSION, [NAME, 'WeChat']],
158			[/konqueror\/([\w\.]+)/i],
159			[VERSION, [NAME, 'Konqueror']],
160			[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],
161			[VERSION, [NAME, 'IE']],
162			[/yabrowser\/([\w\.]+)/i],
163			[VERSION, [NAME, 'Yandex']],
164			[/(avast|avg)\/([\w\.]+)/i],
165			[[NAME, /(.+)/, '$1 Secure ' + BROWSER], VERSION],
166			[/\bfocus\/([\w\.]+)/i],
167			[VERSION, [NAME, FIREFOX + ' Focus']],
168			[/\bopt\/([\w\.]+)/i],
169			[VERSION, [NAME, OPERA + ' Touch']],
170			[/coc_coc\w+\/([\w\.]+)/i],
171			[VERSION, [NAME, 'Coc Coc']],
172			[/dolfin\/([\w\.]+)/i],
173			[VERSION, [NAME, 'Dolphin']],
174			[/coast\/([\w\.]+)/i],
175			[VERSION, [NAME, OPERA + ' Coast']],
176			[/miuibrowser\/([\w\.]+)/i],
177			[VERSION, [NAME, 'MIUI ' + BROWSER]],
178			[/fxios\/([-\w\.]+)/i],
179			[VERSION, [NAME, FIREFOX]],
180			[/\bqihu|(qi?ho?o?|360)browser/i],
181			[[NAME, '360 ' + BROWSER]],
182			[/(oculus|samsung|sailfish)browser\/([\w\.]+)/i],
183			[[NAME, /(.+)/, '$1 ' + BROWSER], VERSION],
184			[/(comodo_dragon)\/([\w\.]+)/i],
185			[[NAME, /_/g, ' '], VERSION],
186			[/(electron)\/([\w\.]+) safari/i, /(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i, /m?(qqbrowser|baiduboxapp|2345Explorer)[\/ ]?([\w\.]+)/i],
187			[NAME, VERSION],
188			[/(metasr)[\/ ]?([\w\.]+)/i, /(lbbrowser)/i],
189			[NAME],
190			[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],
191			[[NAME, FACEBOOK], VERSION],
192			[/safari (line)\/([\w\.]+)/i, /\b(line)\/([\w\.]+)\/iab/i, /(chromium|instagram)[\/ ]([-\w\.]+)/i],
193			[NAME, VERSION],
194			[/\bgsa\/([\w\.]+) .*safari\//i],
195			[VERSION, [NAME, 'GSA']],
196			[/headlesschrome(?:\/([\w\.]+)| )/i],
197			[VERSION, [NAME, CHROME + ' Headless']],
198			[/ wv\).+(chrome)\/([\w\.]+)/i],
199			[[NAME, CHROME + ' WebView'], VERSION],
200			[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],
201			[VERSION, [NAME, 'Android ' + BROWSER]],
202			[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],
203			[NAME, VERSION],
204			[/version\/([\w\.]+) .*mobile\/\w+ (safari)/i],
205			[VERSION, [NAME, 'Mobile Safari']],
206			[/version\/([\w\.]+) .*(mobile ?safari|safari)/i],
207			[VERSION, NAME],
208			[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],
209			[NAME, [VERSION, strMapper, oldSafariMap]],
210			[/(webkit|khtml)\/([\w\.]+)/i],
211			[NAME, VERSION],
212			[/(navigator|netscape\d?)\/([-\w\.]+)/i],
213			[[NAME, 'Netscape'], VERSION],
214			[/mobile vr; rv:([\w\.]+)\).+firefox/i],
215			[VERSION, [NAME, FIREFOX + ' Reality']],
216			[/ekiohf.+(flow)\/([\w\.]+)/i, /(swiftfox)/i, /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i, /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i, /(firefox)\/([\w\.]+)/i, /(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i, /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i, /(links) \(([\w\.]+)/i],
217			[NAME, VERSION],
218		],
219		cpu: [[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i], [[ARCHITECTURE, 'amd64']], [/(ia32(?=;))/i], [[ARCHITECTURE, lowerize]], [/((?:i[346]|x)86)[;\)]/i], [[ARCHITECTURE, 'ia32']], [/\b(aarch64|arm(v?8e?l?|_?64))\b/i], [[ARCHITECTURE, 'arm64']], [/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i], [[ARCHITECTURE, 'armhf']], [/windows (ce|mobile); ppc;/i], [[ARCHITECTURE, 'arm']], [/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i], [[ARCHITECTURE, /ower/, EMPTY, lowerize]], [/(sun4\w)[;\)]/i], [[ARCHITECTURE, 'sparc']], [/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i], [[ARCHITECTURE, lowerize]]],
220		device: [
221			[/\b(sch-i[89]0\d|shw-m380s|sm-[pt]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],
222			[MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]],
223			[/\b((?:s[cgp]h|gt|sm)-\w+|galaxy nexus)/i, /samsung[- ]([-\w]+)/i, /sec-(sgh\w+)/i],
224			[MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]],
225			[/\((ip(?:hone|od)[\w ]*);/i],
226			[MODEL, [VENDOR, APPLE], [TYPE, MOBILE]],
227			[/\((ipad);[-\w\),; ]+apple/i, /applecoremedia\/[\w\.]+ \((ipad)/i, /\b(ipad)\d\d?,\d\d?[;\]].+ios/i],
228			[MODEL, [VENDOR, APPLE], [TYPE, TABLET]],
229			[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],
230			[MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]],
231			[/(?:huawei|honor)([-\w ]+)[;\)]/i, /\b(nexus 6p|\w{2,4}-[atu]?[ln][01259x][012359][an]?)\b(?!.+d\/s)/i],
232			[MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]],
233			[/\b(poco[\w ]+)(?: bui|\))/i, /\b; (\w+) build\/hm\1/i, /\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i, /\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i, /\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i],
234			[
235				[MODEL, /_/g, ' '],
236				[VENDOR, XIAOMI],
237				[TYPE, MOBILE],
238			],
239			[/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],
240			[
241				[MODEL, /_/g, ' '],
242				[VENDOR, XIAOMI],
243				[TYPE, TABLET],
244			],
245			[/; (\w+) bui.+ oppo/i, /\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],
246			[MODEL, [VENDOR, 'OPPO'], [TYPE, MOBILE]],
247			[/vivo (\w+)(?: bui|\))/i, /\b(v[12]\d{3}\w?[at])(?: bui|;)/i],
248			[MODEL, [VENDOR, 'Vivo'], [TYPE, MOBILE]],
249			[/\b(rmx[12]\d{3})(?: bui|;|\))/i],
250			[MODEL, [VENDOR, 'Realme'], [TYPE, MOBILE]],
251			[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i, /\bmot(?:orola)?[- ](\w*)/i, /((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],
252			[MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]],
253			[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],
254			[MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]],
255			[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],
256			[MODEL, [VENDOR, LG], [TYPE, TABLET]],
257			[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i, /\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i, /\blg-?([\d\w]+) bui/i],
258			[MODEL, [VENDOR, LG], [TYPE, MOBILE]],
259			[/(ideatab[-\w ]+)/i, /lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i],
260			[MODEL, [VENDOR, 'Lenovo'], [TYPE, TABLET]],
261			[/(?:maemo|nokia).*(n900|lumia \d+)/i, /nokia[-_ ]?([-\w\.]*)/i],
262			[
263				[MODEL, /_/g, ' '],
264				[VENDOR, 'Nokia'],
265				[TYPE, MOBILE],
266			],
267			[/(pixel c)\b/i],
268			[MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]],
269			[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],
270			[MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]],
271			[/droid.+ ([c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],
272			[MODEL, [VENDOR, SONY], [TYPE, MOBILE]],
273			[/sony tablet [ps]/i, /\b(?:sony)?sgp\w+(?: bui|\))/i],
274			[
275				[MODEL, 'Xperia Tablet'],
276				[VENDOR, SONY],
277				[TYPE, TABLET],
278			],
279			[/ (kb2005|in20[12]5|be20[12][59])\b/i, /(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],
280			[MODEL, [VENDOR, 'OnePlus'], [TYPE, MOBILE]],
281			[/(alexa)webm/i, /(kf[a-z]{2}wi)( bui|\))/i, /(kf[a-z]+)( bui|\)).+silk\//i],
282			[MODEL, [VENDOR, AMAZON], [TYPE, TABLET]],
283			[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],
284			[
285				[MODEL, /(.+)/g, 'Fire Phone $1'],
286				[VENDOR, AMAZON],
287				[TYPE, MOBILE],
288			],
289			[/(playbook);[-\w\),; ]+(rim)/i],
290			[MODEL, VENDOR, [TYPE, TABLET]],
291			[/\b((?:bb[a-f]|st[hv])100-\d)/i, /\(bb10; (\w+)/i],
292			[MODEL, [VENDOR, BLACKBERRY], [TYPE, MOBILE]],
293			[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],
294			[MODEL, [VENDOR, ASUS], [TYPE, TABLET]],
295			[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],
296			[MODEL, [VENDOR, ASUS], [TYPE, MOBILE]],
297			[/(nexus 9)/i],
298			[MODEL, [VENDOR, 'HTC'], [TYPE, TABLET]],
299			[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i, /(zte)[- ]([\w ]+?)(?: bui|\/|\))/i, /(alcatel|geeksphone|nexian|panasonic|sony)[-_ ]?([-\w]*)/i],
300			[VENDOR, [MODEL, /_/g, ' '], [TYPE, MOBILE]],
301			[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],
302			[MODEL, [VENDOR, 'Acer'], [TYPE, TABLET]],
303			[/droid.+; (m[1-5] note) bui/i, /\bmz-([-\w]{2,})/i],
304			[MODEL, [VENDOR, 'Meizu'], [TYPE, MOBILE]],
305			[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],
306			[MODEL, [VENDOR, 'Sharp'], [TYPE, MOBILE]],
307			[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\w]*)/i, /(hp) ([\w ]+\w)/i, /(asus)-?(\w+)/i, /(microsoft); (lumia[\w ]+)/i, /(lenovo)[-_ ]?([-\w]+)/i, /(jolla)/i, /(oppo) ?([\w ]+) bui/i],
308			[VENDOR, MODEL, [TYPE, MOBILE]],
309			[/(archos) (gamepad2?)/i, /(hp).+(touchpad(?!.+tablet)|tablet)/i, /(kindle)\/([\w\.]+)/i, /(nook)[\w ]+build\/(\w+)/i, /(dell) (strea[kpr\d ]*[\dko])/i, /(le[- ]+pan)[- ]+(\w{1,9}) bui/i, /(trinity)[- ]*(t\d{3}) bui/i, /(gigaset)[- ]+(q\w{1,9}) bui/i, /(vodafone) ([\w ]+)(?:\)| bui)/i],
310			[VENDOR, MODEL, [TYPE, TABLET]],
311			[/(surface duo)/i],
312			[MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]],
313			[/droid [\d\.]+; (fp\du?)(?: b|\))/i],
314			[MODEL, [VENDOR, 'Fairphone'], [TYPE, MOBILE]],
315			[/(u304aa)/i],
316			[MODEL, [VENDOR, 'AT&T'], [TYPE, MOBILE]],
317			[/\bsie-(\w*)/i],
318			[MODEL, [VENDOR, 'Siemens'], [TYPE, MOBILE]],
319			[/\b(rct\w+) b/i],
320			[MODEL, [VENDOR, 'RCA'], [TYPE, TABLET]],
321			[/\b(venue[\d ]{2,7}) b/i],
322			[MODEL, [VENDOR, 'Dell'], [TYPE, TABLET]],
323			[/\b(q(?:mv|ta)\w+) b/i],
324			[MODEL, [VENDOR, 'Verizon'], [TYPE, TABLET]],
325			[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],
326			[MODEL, [VENDOR, 'Barnes & Noble'], [TYPE, TABLET]],
327			[/\b(tm\d{3}\w+) b/i],
328			[MODEL, [VENDOR, 'NuVision'], [TYPE, TABLET]],
329			[/\b(k88) b/i],
330			[MODEL, [VENDOR, 'ZTE'], [TYPE, TABLET]],
331			[/\b(nx\d{3}j) b/i],
332			[MODEL, [VENDOR, 'ZTE'], [TYPE, MOBILE]],
333			[/\b(gen\d{3}) b.+49h/i],
334			[MODEL, [VENDOR, 'Swiss'], [TYPE, MOBILE]],
335			[/\b(zur\d{3}) b/i],
336			[MODEL, [VENDOR, 'Swiss'], [TYPE, TABLET]],
337			[/\b((zeki)?tb.*\b) b/i],
338			[MODEL, [VENDOR, 'Zeki'], [TYPE, TABLET]],
339			[/\b([yr]\d{2}) b/i, /\b(dragon[- ]+touch |dt)(\w{5}) b/i],
340			[[VENDOR, 'Dragon Touch'], MODEL, [TYPE, TABLET]],
341			[/\b(ns-?\w{0,9}) b/i],
342			[MODEL, [VENDOR, 'Insignia'], [TYPE, TABLET]],
343			[/\b((nxa|next)-?\w{0,9}) b/i],
344			[MODEL, [VENDOR, 'NextBook'], [TYPE, TABLET]],
345			[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],
346			[[VENDOR, 'Voice'], MODEL, [TYPE, MOBILE]],
347			[/\b(lvtel\-)?(v1[12]) b/i],
348			[[VENDOR, 'LvTel'], MODEL, [TYPE, MOBILE]],
349			[/\b(ph-1) /i],
350			[MODEL, [VENDOR, 'Essential'], [TYPE, MOBILE]],
351			[/\b(v(100md|700na|7011|917g).*\b) b/i],
352			[MODEL, [VENDOR, 'Envizen'], [TYPE, TABLET]],
353			[/\b(trio[-\w\. ]+) b/i],
354			[MODEL, [VENDOR, 'MachSpeed'], [TYPE, TABLET]],
355			[/\btu_(1491) b/i],
356			[MODEL, [VENDOR, 'Rotor'], [TYPE, TABLET]],
357			[/(shield[\w ]+) b/i],
358			[MODEL, [VENDOR, 'Nvidia'], [TYPE, TABLET]],
359			[/(sprint) (\w+)/i],
360			[VENDOR, MODEL, [TYPE, MOBILE]],
361			[/(kin\.[onetw]{3})/i],
362			[
363				[MODEL, /\./g, ' '],
364				[VENDOR, MICROSOFT],
365				[TYPE, MOBILE],
366			],
367			[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],
368			[MODEL, [VENDOR, ZEBRA], [TYPE, TABLET]],
369			[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],
370			[MODEL, [VENDOR, ZEBRA], [TYPE, MOBILE]],
371			[/(ouya)/i, /(nintendo) ([wids3utch]+)/i],
372			[VENDOR, MODEL, [TYPE, CONSOLE]],
373			[/droid.+; (shield) bui/i],
374			[MODEL, [VENDOR, 'Nvidia'], [TYPE, CONSOLE]],
375			[/(playstation [345portablevi]+)/i],
376			[MODEL, [VENDOR, SONY], [TYPE, CONSOLE]],
377			[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],
378			[MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]],
379			[/smart-tv.+(samsung)/i],
380			[VENDOR, [TYPE, SMARTTV]],
381			[/hbbtv.+maple;(\d+)/i],
382			[
383				[MODEL, /^/, 'SmartTV'],
384				[VENDOR, SAMSUNG],
385				[TYPE, SMARTTV],
386			],
387			[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],
388			[
389				[VENDOR, LG],
390				[TYPE, SMARTTV],
391			],
392			[/(apple) ?tv/i],
393			[VENDOR, [MODEL, APPLE + ' TV'], [TYPE, SMARTTV]],
394			[/crkey/i],
395			[
396				[MODEL, CHROME + 'cast'],
397				[VENDOR, GOOGLE],
398				[TYPE, SMARTTV],
399			],
400			[/droid.+aft(\w)( bui|\))/i],
401			[MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]],
402			[/\(dtv[\);].+(aquos)/i],
403			[MODEL, [VENDOR, 'Sharp'], [TYPE, SMARTTV]],
404			[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i, /hbbtv\/\d+\.\d+\.\d+ +\([\w ]*; *(\w[^;]*);([^;]*)/i],
405			[
406				[VENDOR, trim],
407				[MODEL, trim],
408				[TYPE, SMARTTV],
409			],
410			[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],
411			[[TYPE, SMARTTV]],
412			[/((pebble))app/i],
413			[VENDOR, MODEL, [TYPE, WEARABLE]],
414			[/droid.+; (glass) \d/i],
415			[MODEL, [VENDOR, GOOGLE], [TYPE, WEARABLE]],
416			[/droid.+; (wt63?0{2,3})\)/i],
417			[MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]],
418			[/(quest( 2)?)/i],
419			[MODEL, [VENDOR, FACEBOOK], [TYPE, WEARABLE]],
420			[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],
vendor: 5,218 bytes, lines 421-540
421			[VENDOR, [TYPE, EMBEDDED]],
422			[/droid .+?; ([^;]+?)(?: bui|\) applew).+? mobile safari/i],
423			[MODEL, [TYPE, MOBILE]],
424			[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],
425			[MODEL, [TYPE, TABLET]],
426			[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],
427			[[TYPE, TABLET]],
428			[/(phone|mobile(?:[;\/]| safari)|pda(?=.+windows ce))/i],
429			[[TYPE, MOBILE]],
430			[/(android[-\w\. ]{0,9});.+buil/i],
431			[MODEL, [VENDOR, 'Generic']],
432		],
433		engine: [[/windows.+ edge\/([\w\.]+)/i], [VERSION, [NAME, EDGE + 'HTML']], [/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i], [VERSION, [NAME, 'Blink']], [/(presto)\/([\w\.]+)/i, /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i, /ekioh(flow)\/([\w\.]+)/i, /(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i, /(icab)[\/ ]([23]\.[\d\.]+)/i], [NAME, VERSION], [/rv\:([\w\.]{1,9})\b.+(gecko)/i], [VERSION, NAME]],
434		os: [
435			[/microsoft (windows) (vista|xp)/i],
436			[NAME, VERSION],
437			[/(windows) nt 6\.2; (arm)/i, /(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i, /(windows)[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i],
438			[NAME, [VERSION, strMapper, windowsVersionMap]],
439			[/(win(?=3|9|n)|win 9x )([nt\d\.]+)/i],
440			[
441				[NAME, 'Windows'],
442				[VERSION, strMapper, windowsVersionMap],
443			],
444			[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i, /cfnetwork\/.+darwin/i],
445			[
446				[VERSION, /_/g, '.'],
447				[NAME, 'iOS'],
448			],
449			[/(mac os x) ?([\w\. ]*)/i, /(macintosh|mac_powerpc\b)(?!.+haiku)/i],
450			[
451				[NAME, 'Mac OS'],
452				[VERSION, /_/g, '.'],
453			],
454			[/droid ([\w\.]+)\b.+(android[- ]x86)/i],
455			[VERSION, NAME],
456			[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i, /(blackberry)\w*\/([\w\.]*)/i, /(tizen|kaios)[\/ ]([\w\.]+)/i, /\((series40);/i],
457			[NAME, VERSION],
458			[/\(bb(10);/i],
459			[VERSION, [NAME, BLACKBERRY]],
460			[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],
461			[VERSION, [NAME, 'Symbian']],
462			[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],
463			[VERSION, [NAME, FIREFOX + ' OS']],
464			[/web0s;.+rt(tv)/i, /\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],
465			[VERSION, [NAME, 'webOS']],
466			[/crkey\/([\d\.]+)/i],
467			[VERSION, [NAME, CHROME + 'cast']],
468			[/(cros) [\w]+ ([\w\.]+\w)/i],
469			[[NAME, 'Chromium OS'], VERSION],
470			[/(nintendo|playstation) ([wids345portablevuch]+)/i, /(xbox); +xbox ([^\);]+)/i, /\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i, /(mint)[\/\(\) ]?(\w*)/i, /(mageia|vectorlinux)[; ]/i, /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i, /(hurd|linux) ?([\w\.]*)/i, /(gnu) ?([\w\.]*)/i, /\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i, /(haiku) (\w+)/i],
471			[NAME, VERSION],
472			[/(sunos) ?([\w\.\d]*)/i],
473			[[NAME, 'Solaris'], VERSION],
474			[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i, /(aix) ((\d)(?=\.|\)| )[\w\.])*/i, /\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux)/i, /(unix) ?([\w\.]*)/i],
475			[NAME, VERSION],
476		],
477	};
478	var UAParser = function (ua, extensions) {
479		if (typeof ua === OBJ_TYPE) {
480			extensions = ua;
481			ua = undefined;
482		}
483		if (!(this instanceof UAParser)) {
484			return new UAParser(ua, extensions).getResult();
485		}
486		var _ua = ua || (typeof window !== UNDEF_TYPE && window.navigator && window.navigator.userAgent ? window.navigator.userAgent : EMPTY);
487		var _rgxmap = extensions ? extend(regexes, extensions) : regexes;
488		this.getBrowser = function () {
489			var _browser = {};
490			_browser[NAME] = undefined;
491			_browser[VERSION] = undefined;
492			rgxMapper.call(_browser, _ua, _rgxmap.browser);
493			_browser.major = majorize(_browser.version);
494			return _browser;
495		};
496		this.getCPU = function () {
497			var _cpu = {};
498			_cpu[ARCHITECTURE] = undefined;
499			rgxMapper.call(_cpu, _ua, _rgxmap.cpu);
500			return _cpu;
501		};
502		this.getDevice = function () {
503			var _device = {};
504			_device[VENDOR] = undefined;
505			_device[MODEL] = undefined;
506			_device[TYPE] = undefined;
507			rgxMapper.call(_device, _ua, _rgxmap.device);
508			return _device;
509		};
510		this.getEngine = function () {
511			var _engine = {};
512			_engine[NAME] = undefined;
513			_engine[VERSION] = undefined;
514			rgxMapper.call(_engine, _ua, _rgxmap.engine);
515			return _engine;
516		};
517		this.getOS = function () {
518			var _os = {};
519			_os[NAME] = undefined;
520			_os[VERSION] = undefined;
521			rgxMapper.call(_os, _ua, _rgxmap.os);
522			return _os;
523		};
524		this.getResult = function () {
525			return {ua: this.getUA(), browser: this.getBrowser(), engine: this.getEngine(), os: this.getOS(), device: this.getDevice(), cpu: this.getCPU()};
526		};
527		this.getUA = function () {
528			return _ua;
529		};
530		this.setUA = function (ua) {
531			_ua = typeof ua === STR_TYPE && ua.length > UA_MAX_LENGTH ? trim(ua, UA_MAX_LENGTH) : ua;
532			return this;
533		};
534		this.setUA(_ua);
535		return this;
536	};
537	UAParser.VERSION = LIBVERSION;
538	UAParser.BROWSER = enumerize([NAME, VERSION, MAJOR]);
539	UAParser.CPU = enumerize([ARCHITECTURE]);
540	UAParser.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);
vendor: 845 bytes, lines 541-571
541	UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]);
542	if (typeof exports !== UNDEF_TYPE) {
543		if (typeof module !== UNDEF_TYPE && module.exports) {
544			exports = module.exports = UAParser;
545		}
546		exports.UAParser = UAParser;
547	} else {
548		if (typeof define === FUNC_TYPE && define.amd) {
549			define(function () {
550				return UAParser;
551			});
552		} else if (typeof window !== UNDEF_TYPE) {
553			window.UAParser = UAParser;
554		}
555	}
556	var $ = typeof window !== UNDEF_TYPE && (window.jQuery || window.Zepto);
557	if ($ && !$.ua) {
558		var parser = new UAParser();
559		$.ua = parser.getResult();
560		$.ua.get = function () {
561			return parser.getUA();
562		};
563		$.ua.set = function (ua) {
564			parser.setUA(ua);
565			var result = parser.getResult();
566			for (var prop in result) {
567				$.ua[prop] = result[prop];
568			}
569		};
570	}
571})(typeof window === 'object' ? window : this);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.