line |
true |
false |
branch |
493
|
2 |
7251 |
unless (defined $user_agent) |
497
|
7251 |
2 |
defined $user_agent ? : |
522
|
5517 |
45159 |
unless $self->{'os_tests'} |
546
|
5766 |
24930 |
unless $self->{'robot_tests'} |
559
|
4466 |
19916 |
unless $self->{'version_tests'} |
569
|
7253 |
15100 |
unless $self->{'device_tests'} |
576
|
0 |
1 |
if (defined $user_agent) { } |
648
|
30 |
7223 |
if ($ua =~ m[edge/([\d\.]+)]) { } |
|
944 |
6279 |
elsif ($ua =~ m[trident/([\w\.\d]*)]) { } |
|
732 |
5547 |
elsif (index($ua, 'gecko') != -1 and index($ua, 'like gecko') == -1) { } |
|
2634 |
2913 |
elsif ($ua =~ m[applewebkit/([\d.\+]+)] and not $tests->{'edgehtml'}) { } |
|
138 |
2775 |
elsif ($ua =~ m[presto/([\d.]+)]) { } |
|
12 |
2763 |
elsif ($ua =~ m[khtml/([\d.]+)]) { } |
659
|
660 |
72 |
if ($ua =~ /\([^)]*rv:([\w.\d]*)/) |
678
|
12 |
7241 |
if (index($ua, 'galeon') != -1) { } |
|
6 |
7235 |
elsif (index($ua, 'epiphany') != -1) { } |
|
24 |
7211 |
elsif ($ua =~ m[(?:edg|edga|edgios)/[\d.]+]) { } |
|
30 |
7181 |
elsif ($ua =~ m[edge/[\d.]+]) { } |
|
636 |
6545 |
elsif ($ua =~ m[
(firebird|iceweasel|phoenix|namoroka|firefox|fxios)
\/
( [^.]* ) # Major version number is everything before first dot
\. # The first dot
( [\d]* ) # Minor version nnumber is digits after first dot
]ox and index($ua, 'not firefox') == -1) { } |
|
78 |
6467 |
elsif ($self->{'user_agent'} =~ / \[ FB (?: AN | _IAB ) /x) { } |
|
264 |
6203 |
elsif ($ua =~ m[opera|opr\/]) { } |
|
1730 |
4473 |
elsif ($tests->{'trident'} or index($ua, 'msie') != -1 or index($ua, 'microsoft internet explorer') != -1) { } |
|
12 |
4461 |
elsif (0 < index($self->{'user_agent'}, ' Instagram ')) { } |
|
12 |
4449 |
elsif (index($ua, 'brave') != -1) { } |
|
72 |
4377 |
elsif (index($ua, 'silk') != -1) { } |
|
6 |
4371 |
elsif (index($ua, 'samsungbrowser') != -1) { } |
|
336 |
4035 |
elsif (index($ua, 'ucbrowser') != -1) { } |
|
36 |
3999 |
elsif (0 < index($self->{'user_agent'}, ' YaBrowser/')) { } |
|
1350 |
2649 |
elsif (index($ua, 'chrome/') != -1 or index($ua, 'crios') != -1) { } |
|
42 |
2607 |
elsif (index($ua, 'blackberry') != -1 or index($ua, 'bb10') != -1 or index($ua, 'rim tablet os') != -1) { } |
|
960 |
1647 |
elsif (index($ua, 'safari') != -1 or index($ua, 'applewebkit') != -1) { } |
|
0 |
1647 |
elsif (index($ua, 'neoplanet') != -1) { } |
|
0 |
1647 |
elsif (index($ua, 'webtv') != -1) { } |
|
6 |
1641 |
elsif (index($ua, 'nintendo 3ds') != -1) { } |
|
0 |
1641 |
elsif (index($ua, 'nintendo dsi') != -1) { } |
|
42 |
1599 |
elsif (index($ua, 'playstation 3') != -1 or index($ua, 'playstation portable') != -1 or index($ua, 'netfront') != -1) { } |
|
6 |
1593 |
elsif (index($ua, 'browsex') != -1) { } |
|
18 |
1575 |
elsif (index($ua, 'polaris') != -1) { } |
|
168 |
1407 |
elsif (index($ua, 'mozilla') != -1 and index($ua, 'compatible') == -1) { } |
|
12 |
1395 |
elsif (index($ua, 'staroffice') != -1) { } |
|
6 |
1389 |
elsif (index($ua, 'icab') != -1) { } |
|
6 |
1383 |
elsif (index($ua, 'lotus-notes') != -1) { } |
|
24 |
1359 |
elsif (index($ua, 'konqueror') != -1) { } |
|
6 |
1353 |
elsif (index($ua, 'lynx') != -1) { } |
|
6 |
1347 |
elsif (index($ua, 'elinks') != -1) { } |
|
12 |
1335 |
elsif (index($ua, 'links') != -1) { } |
|
0 |
1335 |
elsif (index($ua, 'mosaic') != -1) { } |
|
6 |
1329 |
elsif (index($ua, 'emacs') != -1) { } |
|
30 |
1299 |
elsif (index($ua, 'obigo') != -1) { } |
|
54 |
1245 |
elsif (index($ua, 'teleca') != -1) { } |
|
36 |
1209 |
elsif (index($ua, 'libcurl') != -1 or $ua =~ /^curl/) { } |
|
6 |
1203 |
elsif (index($ua, 'puf/') != -1) { } |
|
6 |
1197 |
elsif (index($ua, 'applecoremedia/') != -1) { } |
|
6 |
1191 |
elsif (index($ua, 'androiddownloadmanager') != -1) { } |
|
12 |
1179 |
elsif (index($ua, 'dalvik') != -1) { } |
|
6 |
1173 |
elsif (index($ua, 'apple-pubsub') != -1) { } |
|
6 |
1167 |
elsif (index($ua, 'imagesearcherpro') != -1) { } |
718
|
6 |
630 |
$1 eq 'fxios' ? : |
756
|
42 |
1688 |
if (index($ua, "aol") != -1 or index($ua, "america online browser") != -1) |
822
|
12 |
1338 |
if (index($ua, "chromium") != -1) |
840
|
276 |
684 |
if (index($ua, " mobile safari/") != -1 or index($ua, "mobilesafari") != -1) |
845
|
18 |
942 |
if (index($ua, "puffin") != -1) |
856
|
0 |
0 |
if index($ua, "2.") != -1 |
895
|
108 |
60 |
if (index($ua, 'netscape') != -1 or not $tests->{'gecko'}) { } |
|
6 |
54 |
elsif (index($ua, 'seamonkey') != -1) { } |
981
|
6086 |
1167 |
if defined $browser |
986
|
462 |
6791 |
if index($ua, "x11") != -1 |
987
|
1086 |
6167 |
if index($ua, ".net clr") != -1 |
989
|
18 |
7235 |
if (index($ua, "realplayer") != -1) |
1006
|
12 |
6 |
if ($ua =~ m[realplayer/([\d+\.]+)]) { } |
|
6 |
0 |
elsif ($ua =~ /realplayer\s(\w+)/) { } |
1010
|
12 |
0 |
if defined $self->{'minor'} |
1017
|
18 |
7235 |
if (index($ua, "(r1 ") != -1) |
1024
|
486 |
894 |
if ($self->android and index($ua, "; wv)") > 0 or $self->chrome and $self->android and $self->browser_major >= 30) |
1039
|
78 |
186 |
if not ref $m and 0 < index($self->{'user_agent'}, $m) |
1040
|
0 |
186 |
if "Regexp" eq ref $m and $self->{'user_agent'} =~ /$m/ |
1096
|
18 |
8779 |
if (index($ua, 'libwww-perl') != -1 or index($ua, 'lwp-') != -1) { } |
|
12 |
8767 |
elsif (index($ua, 'slurp') != -1) { } |
|
6 |
8761 |
elsif (index($ua, 'yahoo') != -1 and index($ua, 'jp.co.yahoo') == -1) { } |
|
6 |
8755 |
elsif (index($ua, 'msnbot-mobile') != -1) { } |
|
0 |
8755 |
elsif (index($ua, 'bingbot-mobile') != -1) { } |
|
6 |
8749 |
elsif (index($ua, 'msnbot') != -1) { } |
|
30 |
8719 |
elsif (index($ua, 'binglocalsearch') != -1 or index($ua, 'bingbot') != -1 or index($ua, 'bingpreview') != -1) { } |
|
6 |
8713 |
elsif (index($ua, 'microsoft office existence discovery') != -1) { } |
|
6 |
8707 |
elsif (index($ua, 'ahrefsbot') != -1) { } |
|
0 |
8707 |
elsif (index($ua, 'altavista') != -1) { } |
|
12 |
8695 |
elsif (index($ua, 'apache-httpclient') != -1) { } |
|
6 |
8689 |
elsif ($ua =~ /\( *\) *\{ *\: *\; */) { } |
|
0 |
8689 |
elsif (index($ua, 'ask jeeves/teoma') != -1) { } |
|
18 |
8671 |
elsif (index($ua, 'baiduspider') != -1) { } |
|
36 |
8635 |
elsif (index($ua, 'libcurl') != -1 or $ua =~ /^curl/) { } |
|
6 |
8629 |
elsif (index($ua, 'facebookexternalhit') != -1) { } |
|
6 |
8623 |
elsif (index($ua, 'getright') != -1) { } |
|
12 |
8611 |
elsif (index($ua, 'adsbot-google') != -1) { } |
|
6 |
8605 |
elsif (index($ua, 'mediapartners-google') != -1) { } |
|
6 |
8599 |
elsif (index($ua, 'google favicon') != -1) { } |
|
6 |
8593 |
elsif (index($ua, 'googlebot-image') != -1) { } |
|
6 |
8587 |
elsif (index($ua, 'googlebot-news') != -1) { } |
|
6 |
8581 |
elsif (index($ua, 'googlebot-video') != -1) { } |
|
18 |
8563 |
elsif (index($ua, 'googlebot-mobile') != -1) { } |
|
36 |
8527 |
elsif (index($ua, 'googlebot') != -1) { } |
|
6 |
8521 |
elsif ($ua =~ /go.*package http/) { } |
|
6 |
8515 |
elsif ($ua =~ /^http_request/) { } |
|
0 |
8515 |
elsif ($ua =~ /^http_request/) { } |
|
6 |
8509 |
elsif (index($ua, 'indy library') != -1) { } |
|
0 |
8509 |
elsif (index($ua, 'infoseek') != -1) { } |
|
6 |
8503 |
elsif (index($ua, 'ips-agent') != -1) { } |
|
0 |
8503 |
elsif (index($ua, 'lecodechecker') != -1) { } |
|
12 |
8491 |
elsif (index($ua, 'linkchecker') != -1) { } |
|
0 |
8491 |
elsif (index($ua, 'lycos') != -1) { } |
|
12 |
8479 |
elsif (index($ua, 'mechanize') != -1) { } |
|
6 |
8473 |
elsif (index($ua, 'mj12bot/') != -1) { } |
|
18 |
8455 |
elsif (index($ua, 'nutch') != -1) { } |
|
6 |
8449 |
elsif (index($ua, 'puf/') != -1) { } |
|
0 |
8449 |
elsif (index($ua, 'scooter') != -1) { } |
|
6 |
8443 |
elsif (index($ua, 'special_archiver') != -1) { } |
|
12 |
8431 |
elsif (index($ua, 'wget') == 0) { } |
|
6 |
8425 |
elsif (index($ua, 'yandexbot') != -1) { } |
|
6 |
8419 |
elsif (index($ua, 'yandeximages') != -1) { } |
|
6 |
8413 |
elsif (index($ua, 'headlesschrome') != -1) { } |
|
42 |
8371 |
elsif ($ua =~ /^java/ and not $self->{'browser'}) { } |
|
0 |
8371 |
elsif (index($ua, 'jdk') != -1) { } |
|
6 |
8365 |
elsif (index($ua, 'jakarta commons-httpclient') != -1) { } |
|
6 |
8359 |
elsif (index($ua, 'google-http-java-client') != -1) { } |
|
6 |
8353 |
elsif (index($ua, 'researchscan.comsys.rwth-aachen.de') != -1) { } |
1099
|
18 |
0 |
index($ua, 'libwww-perl') != -1 ? : |
1305
|
48 |
249750 |
if (index($ua, lc $match) != -1) |
1314
|
21 |
8769 |
if ($browser_tests->{'applecoremedia'} or $browser_tests->{'dalvik'} or $browser_tests->{'adm'}) |
1320
|
492 |
8305 |
if ($r) { } |
|
0 |
8305 |
elsif ($ua =~ /seek (?! mo (?: toolbar )? \s+ \d+\.\d+ )/x) { } |
|
42 |
8263 |
elsif ($ua =~ /search (?! [\w\s]* toolbar \b | bar \b | erpro \b )/x) { } |
|
246 |
8017 |
elsif ($self->{'user_agent'} =~ m[([\w /\.\-]+)[ \;\(\)]*\+https?\:]i) { } |
1324
|
444 |
48 |
unless ($id) |
1328
|
492 |
0 |
unless (exists $robot_tests->{'robot_id'}) |
1335
|
270 |
222 |
unless defined $robot_fragment |
1361
|
7975 |
203373 |
if ($ROBOT_FRAGMENT_EXCEPTIONS{$fragment}) |
1363
|
0 |
7975 |
unless $ROBOT_FRAGMENT_EXCEPTIONS{$fragment} |
1364
|
7 |
7968 |
if (index($ua, $exception) != -1) |
1370
|
311 |
211030 |
if (index($ua, $fragment) != -1) |
1378
|
599 |
8198 |
if (exists $robot_tests->{'robot'} and $robot_tests->{'robot'} eq "unknown") |
1383
|
1091 |
7706 |
if (defined $robot_fragment) |
1388
|
1019 |
72 |
if ($self->{'user_agent'} =~ m[\s* # Beginning whitespace
([\w .:,\-\@\/]* # Words before fragment
$robot_fragment # Match the fragment
[\w .:,\-\@\/]*) # Words after fragment
]xi) |
1397
|
36 |
276 |
if ($self->{'user_agent'} eq $full_string and $self->{'user_agent'} =~ m[\/.*\/] and $self->{'user_agent'} =~ m[
([\w]* # Words before fragment
$robot_fragment # Match the fragment
(\/[\d\.]+)? # Version
[\w]*) # Beta stuff
]xi) |
1414
|
654 |
365 |
if ($full_string and $full_string =~ s[[/ \.v]*(\d+)(\.\d+)?([\.\w]*)$][]) { } |
1424
|
353 |
666 |
unless (defined $self->{'robot_string'}) |
1430
|
6216 |
2581 |
if (not exists $self->{'robot_version'}) |
1450
|
0 |
7248 |
if (index($ua, "16bit") != -1) |
1456
|
2964 |
4284 |
if (index($ua, "win") != -1) |
1457
|
12 |
2952 |
if (index($ua, 'win16') != -1 or index($ua, 'windows 3') != -1 or index($ua, 'windows 16-bit') != -1) { } |
|
72 |
2880 |
elsif (index($ua, 'win95') != -1 or index($ua, 'windows 95') != -1) { } |
|
30 |
2850 |
elsif (index($ua, 'win 9x 4.90') != -1 or index($ua, 'windows me') != -1) { } |
|
24 |
2826 |
elsif (index($ua, 'win98') != -1 or index($ua, 'windows 98') != -1) { } |
|
12 |
2814 |
elsif (index($ua, 'windows 2000') != -1) { } |
|
12 |
2802 |
elsif (index($ua, 'windows ce') != -1) { } |
|
54 |
2748 |
elsif (index($ua, 'windows phone') != -1) { } |
1463
|
6 |
6 |
if (index($ua, 'windows 3.1') != -1) { } |
1505
|
6 |
48 |
if (index($ua, 'windows phone os 7.0') != -1) { } |
|
12 |
36 |
elsif (index($ua, 'windows phone os 7.5') != -1) { } |
|
12 |
24 |
elsif (index($ua, 'windows phone 8.0') != -1) { } |
|
18 |
6 |
elsif (index($ua, 'windows phone 8.1') != -1) { } |
|
6 |
0 |
elsif (index($ua, 'windows phone 10.0') != -1) { } |
1523
|
3804 |
3444 |
if (index($ua, "nt") != -1) |
1524
|
90 |
3714 |
if (index($ua, 'nt 5.0') != -1 or index($ua, 'nt5') != -1) { } |
|
984 |
2730 |
elsif (index($ua, 'nt 5.1') != -1) { } |
|
126 |
2604 |
elsif (index($ua, 'nt 5.2') != -1) { } |
|
204 |
2400 |
elsif (index($ua, 'nt 6.0') != -1) { } |
|
966 |
1434 |
elsif (index($ua, 'nt 6.1') != -1) { } |
|
96 |
1338 |
elsif (index($ua, 'nt 6.2') != -1) { } |
|
78 |
1260 |
elsif (index($ua, 'nt 6.3') != -1) { } |
|
36 |
1224 |
elsif (index($ua, 'nt 10.0') != -1) { } |
|
54 |
1170 |
elsif (index($ua, 'winnt') != -1 or index($ua, 'windows nt') != -1 or index($ua, 'nt4') != -1 or index($ua, 'nt3') != -1) { } |
1579
|
2850 |
4398 |
if ($os) { } |
|
462 |
3936 |
elsif (index($ua, 'macintosh') != -1 or index($ua, 'mac_') != -1) { } |
|
420 |
3516 |
elsif ($ua =~ /\b(ipad|iphone|ipod)\b/) { } |
|
1014 |
2502 |
elsif (index($ua, 'android') != -1) { } |
|
498 |
2004 |
elsif (index($ua, 'inux') != -1) { } |
|
42 |
1962 |
elsif ($tests->{'x11'} and index($ua, 'cros') != -1) { } |
|
6 |
1956 |
elsif (index($ua, 'amiga') != -1) { } |
|
6 |
1950 |
elsif (index($ua, 'os/2') != -1) { } |
|
6 |
1944 |
elsif (index($ua, 'solaris') != -1) { } |
|
0 |
1944 |
elsif (index($ua, 'samsung') == -1 and index($ua, 'sun') != -1) { } |
|
0 |
1944 |
elsif (index($ua, 'irix') != -1) { } |
|
0 |
1944 |
elsif (index($ua, 'hp-ux') != -1) { } |
|
0 |
1944 |
elsif (index($ua, 'aix') != -1) { } |
|
0 |
1944 |
elsif ($ua =~ /\bsco\b/ or index($ua, 'unix_sv') != -1) { } |
|
0 |
1944 |
elsif (index($ua, 'unix_system_v') != -1) { } |
|
0 |
1944 |
elsif ($ua =~ /\bncr\b/) { } |
|
0 |
1944 |
elsif (index($ua, 'reliantunix') != -1) { } |
|
0 |
1944 |
elsif (index($ua, 'dec') != -1 or index($ua, 'osf1') != -1 or index($ua, 'declpha') != -1 or index($ua, 'alphaserver') != -1 or index($ua, 'ultrix') != -1 or index($ua, 'alphastation') != -1) { } |
|
0 |
1944 |
elsif (index($ua, 'sinix') != -1) { } |
|
30 |
1914 |
elsif (index($ua, 'bsd') != -1) { } |
|
12 |
1902 |
elsif ($tests->{'x11'}) { } |
|
0 |
1902 |
elsif (index($ua, 'vax') != -1 or index($ua, 'openvms') != -1) { } |
|
12 |
1890 |
elsif (index($ua, 'bb10') != -1) { } |
|
6 |
1884 |
elsif (index($ua, 'rim tablet os') != -1) { } |
|
6 |
1878 |
elsif (index($ua, 'playstation 3') != -1) { } |
|
6 |
1872 |
elsif (index($ua, 'playstation portable') != -1) { } |
|
54 |
1818 |
elsif (index($ua, 'windows') != -1) { } |
|
18 |
1800 |
elsif (index($ua, 'win32') != -1) { } |
|
144 |
1656 |
elsif ($self->{'user_agent'} =~ /(brew)|(\bbmp\b)/i) { } |
1583
|
0 |
2850 |
if index($ua, "win32") != -1 |
1589
|
438 |
24 |
if (index($ua, 'mac os x') != -1) { } |
1596
|
0 |
462 |
if (index($ua, '68k') != -1 or index($ua, '68000') != -1) { } |
|
126 |
336 |
elsif (index($ua, 'ppc') != -1 or index($ua, 'powerpc') != -1) { } |
1644
|
0 |
0 |
if index($ua, "i86") != -1 |
1645
|
0 |
0 |
if index($ua, "sunos 4") != -1 |
1646
|
0 |
0 |
if index($ua, "sunos 5") != -1 |
1652
|
0 |
0 |
if index($ua, "irix5") != -1 |
1653
|
0 |
0 |
if index($ua, "irix6") != -1 |
1659
|
0 |
0 |
if index($ua, "09.") != -1 |
1660
|
0 |
0 |
if index($ua, "10.") != -1 |
1666
|
0 |
0 |
if index($ua, "aix 1") != -1 |
1667
|
0 |
0 |
if index($ua, "aix 2") != -1 |
1668
|
0 |
0 |
if index($ua, "aix 3") != -1 |
1669
|
0 |
0 |
if index($ua, "aix 4") != -1 |
1706
|
30 |
0 |
if ($self->{'user_agent'} =~ /(\w*bsd\w*)/i) |
1710
|
30 |
0 |
if index($ua, "freebsd") != -1 |
1749
|
102 |
42 |
if ($1) { } |
1765
|
12 |
6 |
if (not $os and $browser_tests->{'firefox'} and index($ua, "fennec") == -1 and $self->mobile || $self->tablet) |
1774
|
2556 |
4692 |
if ($os and not $os_string) |
1789
|
541 |
2035 |
if (not defined $os) { } |
|
20 |
2015 |
elsif ($os eq 'winphone') { } |
|
196 |
1819 |
elsif ($os eq 'macosx') { } |
|
185 |
1634 |
elsif ($os eq 'ios') { } |
|
18 |
1616 |
elsif ($os eq 'chromeos') { } |
|
478 |
1138 |
elsif ($os eq 'android') { } |
|
6 |
1132 |
elsif ($os eq 'firefoxos') { } |
|
70 |
1062 |
elsif ($os eq 'brew') { } |
1794
|
20 |
0 |
if ($ua =~ /windows phone (?:os )?(\d+)(\.?\d*)([\.\d]*)/) |
1799
|
157 |
39 |
if ($ua =~ /os x (\d+)[\._](\d+)[\._]?(\d*)/) |
1800
|
139 |
18 |
length $3 ? : |
1804
|
184 |
1 |
if ($ua =~ / os (\d+)[\._ ](\d+)[\._ ]?(\d*)/) |
1805
|
117 |
67 |
length $3 ? : |
1809
|
18 |
0 |
if ($ua =~ / cros \S* (\d+)(\.?\d*)([\.\d]*)/) |
1814
|
466 |
12 |
if ($ua =~ /android (\d+)(\.?\d*)([\w\-\.]*)[\;\)]/) |
1819
|
6 |
0 |
if ($ua =~ m[firefox/(\d+)(\.?\d*)([\.\d]*)]) |
1824
|
49 |
21 |
if ($ua =~ /(brew|\bbmp) (\d+)(\.?\d*)([\.\d]*)/) |
1853
|
264 |
6944 |
if (defined $browser and $browser eq 'opera') { } |
|
1883 |
5061 |
elsif ($ua =~ m[\b compatible; \s* [\w\-]* [/\s] ( [0-9]+ ) (?: .([0-9]+) (\S*) )? ;]x) { } |
|
955 |
4106 |
elsif (not $browser) { } |
|
24 |
4082 |
elsif ($browser_tests->{'edge'}) { } |
|
940 |
3142 |
elsif ($browser_tests->{'safari'}) { } |
|
6 |
3136 |
elsif ($browser_tests->{'fxios'}) { } |
|
78 |
3058 |
elsif ($tests->{'meta_app'}) { } |
|
12 |
3046 |
elsif ($browser_tests->{'instagram'}) { } |
|
100 |
2946 |
elsif ($browser_tests->{'ie'}) { } |
|
6 |
2940 |
elsif ($browser eq 'n3ds') { } |
|
6 |
2934 |
elsif ($browser eq 'browsex') { } |
|
6 |
2928 |
elsif ($ua =~ m[netscape6/(\d+)\.(\d+)([\d.]*)]) { } |
|
12 |
2916 |
elsif ($browser eq 'brave') { } |
|
18 |
2898 |
elsif ($browser eq 'chrome' and $ua =~ m[crios/(\d+)\.(\d+)([\d.]*)]) { } |
|
6 |
2892 |
elsif ($browser eq 'pubsub' and $ua =~ m[apple-pubsub/(\d+)\.?(\d+)?([\d.]*)]) { } |
|
78 |
2814 |
elsif ($browser eq 'obigo' and $self->{'user_agent'} =~ m[(obigo[\w\-]*|teleca)[\/ ]\w(\d+)(\w*)]i) { } |
|
6 |
2808 |
elsif ($browser eq 'polaris' and $ua =~ m[polaris[ \/](\d+)\.?(\d+)?([\d\.]*)]) { } |
|
336 |
2472 |
elsif ($browser eq 'ucbrowser' and $ua =~ m[ucbrowser[\/ ]*(\d+)\.?(\d+)?([\d\.]*)]) { } |
|
6 |
2466 |
elsif ($browser eq 'samsung' and $ua =~ m[samsungbrowser/(\d+)\.(\d+)\s]) { } |
|
36 |
2430 |
elsif ($browser_tests->{'yandex_browser'}) { } |
1863
|
90 |
174 |
if ($ua =~ m[\AOpera.*\sVersion/(\d*)\.(\d*)\z]i) { } |
|
48 |
126 |
elsif ($ua =~ m[\bOPR/(\d+)\.(\d+)]i) { } |
|
126 |
0 |
elsif ($ua =~ m[Opera[ /](\d+).(\d+)]i) { } |
1890
|
24 |
0 |
unless defined $major |
1898
|
874 |
66 |
if (do {
$ua =~ m[ safari/ ( \d+ (?: \.\d+ )* ) ]x
}) { } |
|
54 |
12 |
elsif ($ua =~ m[applewebkit\/([\d\.]{1,})]xi) { } |
1911
|
874 |
0 |
if (my($safari_build, $safari_minor) = split(/\./, $1, 3)) |
1914
|
809 |
65 |
if defined $safari_minor |
1918
|
54 |
0 |
if (my($safari_build, $safari_minor) = split(/\./, $1, 3)) |
1921
|
42 |
12 |
if $safari_minor |
1934
|
60 |
18 |
if ($ua =~ m[ \b fbav/ ([^;]*) ]x) |
1936
|
60 |
0 |
if ($beta) |
1946
|
12 |
0 |
if ($self->{'user_agent'} =~ / \b Instagram [ ]+ ([0-9.]+) [ ] /x) |
1948
|
12 |
0 |
if ($beta) |
1957
|
18 |
82 |
if ($ua =~ /\b msie \s ( [0-9\.]+ ) (?: [a-z]+ [a-z0-9]* )? ;/x) { } |
|
71 |
11 |
elsif ($ua =~ /\b rv: ( [0-9\.]+ ) \b/x) { } |
1969
|
6 |
0 |
if ($ua =~ m[Nintendo 3DS;.*\sVersion/(\d*)\.(\d*)]i) |
1975
|
6 |
0 |
if ($ua =~ /BrowseX \((\d+)\.(\d+)([\d.]*)/i) |
1997
|
12 |
0 |
if ($ua =~ m[brave/(\d+)\.(\d+)([\d.]*)]) |
2041
|
36 |
0 |
if ($self->{'user_agent'} =~ m[ \b YaBrowser / ([0-9.]+) [ ] ]x) |
2043
|
36 |
0 |
if ($beta) |
2051
|
2448 |
4760 |
if (not defined $major and defined $self->{'browser_string'}) |
2053
|
2251 |
197 |
if ($version_index != -1) |
2056
|
2239 |
12 |
if ($version_str =~ m[/(\d+)\.(\d+)([\w.]*)]) |
2065
|
1169 |
6039 |
unless (defined $major) |
2066
|
24 |
1145 |
if ($ua =~ m[version/(\d+)\.(\d+)([\w.]*)]) |
2075
|
1145 |
6063 |
unless (defined $major) |
2092
|
323 |
6885 |
unless (defined $major) |
2094
|
0 |
323 |
if ($ua =~ m[[A-Za-z]+/(\d+)\;]) |
2101
|
502 |
6706 |
unless $major |
2102
|
4697 |
2511 |
unless $minor |
2103
|
2880 |
4328 |
if defined $beta and $beta eq "" |
2107
|
168 |
7040 |
if ($browser_tests->{'netscape'}) |
2110
|
12 |
156 |
if $major == 2 |
2111
|
18 |
150 |
if $major == 3 |
2112
|
24 |
144 |
if $major == 4 |
2113
|
114 |
54 |
if $major >= 4 |
2114
|
6 |
162 |
if $major == 4 and $minor == 5 |
2115
|
96 |
72 |
if $major == 4 and ".$minor" >= "0.5" or $major >= 5 |
2118
|
6 |
162 |
if defined $beta and index($beta, "gold") != -1 |
2120
|
84 |
84 |
if $major == 5 or $major == 6 |
2122
|
90 |
78 |
if $major >= 5 |
2124
|
6 |
162 |
if ($browser eq "seamonkey") |
2135
|
1708 |
5500 |
if ($browser_tests->{'ie'}) |
2136
|
23 |
1685 |
if $major == 3 |
2137
|
35 |
1673 |
if $major == 4 |
2138
|
1673 |
35 |
if $major >= 4 |
2139
|
70 |
1638 |
if $major == 5 |
2140
|
1638 |
70 |
if $major >= 5 |
2141
|
23 |
1685 |
if $major == 5 and $minor == 5 |
2142
|
1591 |
117 |
if ".$minor" >= "0.5" or $major >= 6 |
2143
|
389 |
1319 |
if $major == 6 |
2144
|
319 |
1389 |
if $major == 7 |
2145
|
605 |
1103 |
if $major == 8 |
2146
|
112 |
1596 |
if $major == 9 |
2147
|
66 |
1642 |
if $major == 10 |
2148
|
71 |
1637 |
if $major == 11 |
2157
|
41 |
7167 |
if ($browser_tests->{'aol'}) |
2160
|
6 |
35 |
if index($ua, "aol 3.0") != -1 or $version_tests->{'ie3'} |
2163
|
0 |
41 |
if index($ua, "aol 4.0") != -1 or $version_tests->{'ie4'} |
2164
|
0 |
41 |
if index($ua, "aol 5.0") != -1 |
2165
|
6 |
35 |
if index($ua, "aol 6.0") != -1 |
2166
|
0 |
41 |
if index($ua, "navio") != -1 |
2169
|
264 |
6944 |
if ($browser_tests->{'opera'}) |
2170
|
6 |
258 |
if index($ua, "opera 3") != -1 or index($ua, "opera/3") != -1 |
2172
|
0 |
264 |
if index($ua, "opera 4") != -1 or index($ua, "opera/4") != -1 and index($ua, "nintendo dsi") == -1 |
2176
|
0 |
264 |
if index($ua, "opera 5") != -1 or index($ua, "opera/5") != -1 |
2179
|
12 |
252 |
if index($ua, "opera 6") != -1 or index($ua, "opera/6") != -1 |
2182
|
30 |
234 |
if index($ua, "opera 7") != -1 or index($ua, "opera/7") != -1 |
2207
|
55 |
8274 |
if (index($ua, 'windows phone') != -1) { } |
|
1020 |
7254 |
elsif (index($ua, 'android') != -1 or index($ua, 'silk-accelerated') != -1) { } |
|
42 |
7212 |
elsif (index($ua, 'blackberry') != -1 or index($ua, 'bb10') != -1 or index($ua, 'rim tablet os') != -1) { } |
|
18 |
7194 |
elsif (index($ua, 'ipod') != -1) { } |
|
162 |
7032 |
elsif (index($ua, 'ipad') != -1) { } |
|
240 |
6792 |
elsif (index($ua, 'iphone') != -1) { } |
|
6 |
6786 |
elsif (index($ua, 'webos') != -1) { } |
|
12 |
6774 |
elsif (index($ua, 'kindle') != -1) { } |
|
0 |
6774 |
elsif (index($ua, 'audrey') != -1) { } |
|
0 |
6774 |
elsif (index($ua, 'i-opener') != -1) { } |
|
0 |
6774 |
elsif (index($ua, 'avantgo') != -1) { } |
|
0 |
6774 |
elsif (index($ua, 'palmos') != -1) { } |
|
6 |
6768 |
elsif (index($ua, 'playstation 3') != -1) { } |
|
6 |
6762 |
elsif (index($ua, 'playstation portable') != -1) { } |
|
6 |
6756 |
elsif (index($ua, 'nintendo dsi') != -1) { } |
|
6 |
6750 |
elsif (index($ua, 'nintendo 3ds') != -1) { } |
|
582 |
6168 |
elsif ($browser_tests->{'obigo'} or $browser_tests->{'ucbrowser'} or index($ua, 'up.browser') != -1 or index($ua, 'nokia') != -1 and index($ua, 'windows phone') == -1 or index($ua, 'alcatel') != -1 or $ua =~ /\bbrew\b/ or $ua =~ /\bbmp\b/ or index($ua, 'ericsson') != -1 or index($ua, 'sie-') == 0 or index($ua, 'wmlib') != -1 or index($ua, ' wap') != -1 or index($ua, 'wap ') != -1 or index($ua, 'wap/') != -1 or index($ua, '-wap') != -1 or index($ua, 'wap-') != -1 or index($ua, 'wap') == 0 or index($ua, 'wapper') != -1 or index($ua, 'zetor') != -1) { } |
2337
|
7989 |
340 |
unless ($device_tests->{'tablet'}) |
2391
|
276 |
8053 |
if ($browser_tests->{'ucbrowser'} and $self->{'user_agent'} =~ m[ucweb/2.0\s*\(([^\;\)]*\;){3,4}\s*([^\;\)]*?)\s*\)]i) { } |
|
12 |
8041 |
elsif ($ua =~ m[^(\bmot-[^ /]+)]) { } |
|
108 |
7933 |
elsif ($browser_tests->{'obigo'} || index($ua, 'brew') != -1 and $self->{'user_agent'} =~ m[\d+x\d+ ([\d\w\- ]+?)( \S+\/\S+)*$]i) { } |
|
18 |
7915 |
elsif ($ua =~ m[windows phone os [^\)]+ iemobile/[^;]+; ([^;]+; [^;\)]+)]g) { } |
|
12 |
7903 |
elsif ($ua =~ m[windows phone [^\)]+ iemobile/[^;]+; arm; touch; ([^;]+; [^;\)]+)]g) { } |
|
18 |
7885 |
elsif ($ua =~ m[windows phone 8[^\)]+ iemobile/[^;]+; ([^;]+; [^;\)]+)]g) { } |
|
12 |
7873 |
elsif ($ua =~ /bb10; ([^;\)]+)/g) { } |
|
6 |
7867 |
elsif ($ua =~ /blackberry ([\w.]+)/) { } |
|
18 |
7849 |
elsif ($ua =~ m[blackberry(\d+)/]) { } |
|
12 |
7837 |
elsif ($ua =~ /silk-accelerated/) { } |
|
948 |
6889 |
elsif ($self->{'user_agent'} =~ /android .*\; ([^;]*) build/i) { } |
|
114 |
6775 |
elsif ($self->{'user_agent'} =~ m[\b((alcatel|huawei|lg|nokia|samsung|sonyericsson)[\w\-]*)/]i) { } |
|
6 |
6769 |
elsif ($self->{'user_agent'} =~ /CrKey/) { } |
|
607 |
6162 |
elsif ($device) { } |
2447
|
54 |
894 |
if ($model =~ /^KF/ or $model =~ /kindle fire/i) { } |
|
84 |
810 |
elsif ($device_tests->{'tablet'}) { } |
2476
|
2167 |
6162 |
if ($device) { } |
2484
|
2160 |
6169 |
if ($device_string) |
2493
|
0 |
1727 |
unless defined $self->{'user_agent'} |
2499
|
0 |
1696 |
unless defined $self->{'user_agent'} |
2506
|
1892 |
363 |
unless exists $self->{'robot_string'} |
2513
|
642 |
292 |
unless exists $self->{'robot_string'} |
2526
|
0 |
0 |
$self->robot ? : |
|
546 |
0 |
$self->{'robot_tests'}{'robot_id'} ? : |
2532
|
0 |
415 |
unless exists $self->{'robot_string'} |
2533
|
415 |
0 |
if ($self->{'robot_version'}) { } |
2544
|
106 |
0 |
if (defined $major) { } |
2545
|
105 |
1 |
if (defined $minor) { } |
2578
|
0 |
4228 |
unless defined $self->{'user_agent'} |
2579
|
1278 |
2950 |
unless $self->{'os_tests'} |
2586
|
0 |
4203 |
unless defined $self->{'user_agent'} |
2587
|
85 |
4118 |
unless $self->{'os_tests'} |
2593
|
2576 |
1439 |
unless exists $self->{'os_version'} |
2594
|
1952 |
2063 |
if ($self->{'os_version'}) { } |
2605
|
478 |
521 |
defined $major ? : |
2629
|
0 |
0 |
unless $self->{'version_tests'} |
2641
|
75 |
609 |
if ($self->gecko) { } |
2651
|
212 |
683 |
unless $self->{'version_tests'} |
2653
|
895 |
0 |
defined $self->{'major'} ? : |
2658
|
260 |
899 |
unless $self->{'version_tests'} |
2666
|
138 |
827 |
unless $self->{'version_tests'} |
2677
|
884 |
0 |
defined $major ? : |
2706
|
21 |
1 |
defined $major ? : |
2734
|
643 |
4764 |
if ($self->safari) |
2738
|
456 |
187 |
if ($ua =~ m[
version/
( \d+ ) # Major version number is everything before first dot
( \. \d+ )? # Minor version number is first dot and following digits
]x) |
2751
|
153 |
34 |
if ($ua =~ m[ safari/ ( \d+ (?: \.\d+ )* ) ]x) |
2754
|
114 |
39 |
unless ($version) |
2763
|
104 |
403 |
if $self->_cmp_versions($build, $maybe_build) >= 0 |
2768
|
5 |
109 |
if $ua =~ m[safari/12x] |
2771
|
5 |
143 |
unless defined $version |
2774
|
1 |
142 |
if $minor =~ s/(\D.*)// |
2776
|
1 |
142 |
$beta ? : |
2780
|
1744 |
3054 |
unless $self->{'version_tests'} |
2791
|
5539 |
5316 |
if @a == 0 or $a[0] < $b[0] |
2792
|
3643 |
1673 |
if @b == 0 or $b[0] < $a[0] |
2804
|
193 |
1202 |
$self->engine_string eq 'MSIE' ? : |
|
191 |
1395 |
!$self->engine_string ? : |
2812
|
750 |
4908 |
if ($self->gecko) |
2816
|
1025 |
3883 |
if ($self->trident) |
2820
|
571 |
3312 |
if ($self->ie) |
2824
|
37 |
3275 |
if ($self->edgelegacy) |
2828
|
2696 |
579 |
if ($self->webkit) |
2832
|
146 |
433 |
if ($self->presto) |
2836
|
43 |
390 |
if ($self->netfront) |
2840
|
16 |
374 |
if ($self->khtml) |
2851
|
1295 |
280 |
$self->{'engine_version'} && $self->{'engine_version'} =~ /^(\d+(\.\d+)?)/ ? : |
2858
|
1641 |
587 |
$self->{'engine_version'} && $self->{'engine_version'} =~ /^(\d+)/ ? : |
2865
|
1554 |
560 |
$self->{'engine_version'} && $self->{'engine_version'} =~ /^\d+(\.\d+)/ ? : |
2872
|
1123 |
301 |
$self->{'engine_version'} && $self->{'engine_version'} =~ /^\d+\.\d+([\.\d\+]*)/ ? : |
2878
|
140 |
593 |
unless $self->{'version_tests'} |
2901
|
0 |
4169 |
unless exists $self->{'device'} |
2908
|
1076 |
761 |
unless exists $self->{'device_string'} |
2920
|
252 |
1600 |
if ($self->safari) |
2921
|
10 |
242 |
if ($self->major == 1 and $self->{'user_agent'} =~ /\s ( [a-z]{2} ) \)/msx) |
2925
|
138 |
104 |
if ($self->{'user_agent'} =~ /\s ([a-z]{2})-([A-Za-z]{2})/msx) |
2930
|
3 |
1701 |
if ($self->aol and $self->{'user_agent'} =~ /;([A-Z]{2})_([A-Z]{2})\)/) |
2935
|
14 |
1687 |
if ($self->meta_app and $self->{'user_agent'} =~ m[ ;FBLC/ ([a-z]{2}) (?: [_-] ([A-Z]{2}) )? ]x) |
2938
|
11 |
3 |
$2 ? : |
2941
|
4 |
1683 |
if ($self->instagram and $self->{'user_agent'} =~ / (?: [(] | ;[ ] ) ([a-z]{2}) [_-] ([A-Z]{2}) [;)] /x) |
2944
|
4 |
0 |
$2 ? : |
2947
|
356 |
1327 |
if ($self->{'user_agent'} =~ /\b([a-z]{2})-([A-Za-z]{2})\b/msx) |
2951
|
27 |
1300 |
if ($self->{'user_agent'} =~ /\[([a-z]{2})\]/msx) |
2955
|
1147 |
153 |
if ($self->{'user_agent'} =~ /\(([^)]+)\)/msx) |
2960
|
132 |
4676 |
if ($part =~ /^\s*([a-z]{2})\s*$/ and not $self->webview && $1 eq 'wv') |
2978
|
1787 |
0 |
if $value |
2981
|
1716 |
18 |
if $value |
2984
|
0 |
1939 |
unless $self->{'device_tests'} |
2985
|
368 |
1571 |
unless $self->{'os_tests'} |
2986
|
496 |
1443 |
unless $self->{'robot_tests'} |
2987
|
230 |
1709 |
unless $self->{'version_tests'} |
2990
|
1144 |
3212 |
if $value |
2993
|
3854 |
0 |
if $value |
2996
|
760 |
0 |
if $value |
2999
|
1953 |
449 |
if $value |
3004
|
562 |
1377 |
if $self->device |
3012
|
1 |
27 |
unless $self->{'robot_tests'} |
3028
|
0 |
0 |
if $self->chrome and $self->browser_major and $self->browser_major >= 41 |
3034
|
0 |
0 |
if $self->opera and $self->browser_major and $self->browser_major == 40 || $self->browser_major >= 42 |