gricer 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.rdoc +84 -0
  3. data/Rakefile +49 -0
  4. data/app/assets/images/gricer/fluid/breadcrumb.png +0 -0
  5. data/app/assets/javascripts/gricer.js.coffee +85 -0
  6. data/app/assets/javascripts/gricer_backend_jquery.js.coffee +352 -0
  7. data/app/assets/javascripts/jquery.flot.js +2599 -0
  8. data/app/assets/javascripts/jquery.flot.pie.js +750 -0
  9. data/app/assets/javascripts/jquery.flot.resize.js +60 -0
  10. data/app/assets/javascripts/jquery.flot.symbol.js +70 -0
  11. data/app/assets/javascripts/worldmap.js +146 -0
  12. data/app/assets/stylesheets/gricer/fluid-jquery-ui.css.scss +1298 -0
  13. data/app/assets/stylesheets/gricer/fluid.css.scss +240 -0
  14. data/app/assets/stylesheets/gricer/helpers/css3.css.scss +21 -0
  15. data/app/controllers/gricer/base_controller.rb +141 -0
  16. data/app/controllers/gricer/capture_controller.rb +42 -0
  17. data/app/controllers/gricer/dashboard_controller.rb +18 -0
  18. data/app/controllers/gricer/requests_controller.rb +42 -0
  19. data/app/controllers/gricer/sessions_controller.rb +24 -0
  20. data/app/helpers/gricer/base_helper.rb +22 -0
  21. data/app/models/gricer/agent.rb +789 -0
  22. data/app/models/gricer/request.rb +239 -0
  23. data/app/models/gricer/session.rb +433 -0
  24. data/app/views/gricer/capture/index.html.erb +1 -0
  25. data/app/views/gricer/dashboard/_menu.html.erb +10 -0
  26. data/app/views/gricer/dashboard/_overview.html.erb +33 -0
  27. data/app/views/gricer/dashboard/index.html.erb +19 -0
  28. data/config/routes.rb +51 -0
  29. data/lib/gricer.rb +36 -0
  30. data/lib/gricer/action_controller/base.rb +28 -0
  31. data/lib/gricer/action_controller/track.rb +132 -0
  32. data/lib/gricer/active_model/statistics.rb +167 -0
  33. data/lib/gricer/config.rb +125 -0
  34. data/lib/gricer/engine.rb +9 -0
  35. data/lib/gricer/localization.rb +3 -0
  36. data/lib/tasks/gricer_tasks.rake +92 -0
  37. data/spec/controllers/gricer/base_controller_spec.rb +207 -0
  38. data/spec/controllers/gricer/capture_controller_spec.rb +44 -0
  39. data/spec/controllers/gricer/dashboard_controller_spec.rb +44 -0
  40. data/spec/controllers/gricer/requests_controller_spec.rb +36 -0
  41. data/spec/controllers/gricer/sessions_controller_spec.rb +37 -0
  42. data/spec/dummy/Rakefile +7 -0
  43. data/spec/dummy/app/assets/javascripts/application.js +9 -0
  44. data/spec/dummy/app/assets/stylesheets/application.css +13 -0
  45. data/spec/dummy/app/assets/stylesheets/dashboard.css +4 -0
  46. data/spec/dummy/app/assets/stylesheets/scaffold.css +56 -0
  47. data/spec/dummy/app/assets/stylesheets/sessions.css +4 -0
  48. data/spec/dummy/app/controllers/application_controller.rb +23 -0
  49. data/spec/dummy/app/controllers/dashboard_controller.rb +19 -0
  50. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  51. data/spec/dummy/app/helpers/dashboard_helper.rb +2 -0
  52. data/spec/dummy/app/views/dashboard/index.html.erb +236 -0
  53. data/spec/dummy/app/views/layouts/application.html.erb +16 -0
  54. data/spec/dummy/config.ru +4 -0
  55. data/spec/dummy/config/application.rb +48 -0
  56. data/spec/dummy/config/boot.rb +10 -0
  57. data/spec/dummy/config/cucumber.yml +9 -0
  58. data/spec/dummy/config/database.yml +25 -0
  59. data/spec/dummy/config/environment.rb +5 -0
  60. data/spec/dummy/config/environments/development.rb +27 -0
  61. data/spec/dummy/config/environments/production.rb +51 -0
  62. data/spec/dummy/config/environments/test.rb +39 -0
  63. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  64. data/spec/dummy/config/initializers/inflections.rb +10 -0
  65. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  66. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  67. data/spec/dummy/config/initializers/session_store.rb +8 -0
  68. data/spec/dummy/config/initializers/wrap_parameters.rb +12 -0
  69. data/spec/dummy/config/locales/en.yml +5 -0
  70. data/spec/dummy/config/routes.rb +11 -0
  71. data/spec/dummy/db/schema.rb +241 -0
  72. data/spec/dummy/log/development.log +0 -0
  73. data/spec/dummy/public/404.html +26 -0
  74. data/spec/dummy/public/422.html +26 -0
  75. data/spec/dummy/public/500.html +26 -0
  76. data/spec/dummy/public/favicon.ico +0 -0
  77. data/spec/dummy/script/rails +6 -0
  78. data/spec/helpers/gricer/base_helper_spec.rb +28 -0
  79. data/spec/lib/gricer/action_controller/track_spec.rb +63 -0
  80. data/spec/models/gricer/agent_spec.rb +829 -0
  81. data/spec/models/gricer/request_spec.rb +145 -0
  82. data/spec/models/gricer/session_spec.rb +209 -0
  83. data/spec/routing/capture_routes_spec.rb +6 -0
  84. data/spec/routing/dashboard_routes_spec.rb +9 -0
  85. data/spec/routing/requests_routes_spec.rb +90 -0
  86. data/spec/routing/sessions_routes_spec.rb +115 -0
  87. data/spec/spec_helper.rb +23 -0
  88. metadata +185 -0
File without changes
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/404.html -->
21
+ <div class="dialog">
22
+ <h1>The page you were looking for doesn't exist.</h1>
23
+ <p>You may have mistyped the address or the page may have moved.</p>
24
+ </div>
25
+ </body>
26
+ </html>
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/422.html -->
21
+ <div class="dialog">
22
+ <h1>The change you wanted was rejected.</h1>
23
+ <p>Maybe you tried to change something you didn't have access to.</p>
24
+ </div>
25
+ </body>
26
+ </html>
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/500.html -->
21
+ <div class="dialog">
22
+ <h1>We're sorry, but something went wrong.</h1>
23
+ <p>We've been notified about this issue and we'll take a look at it shortly.</p>
24
+ </div>
25
+ </body>
26
+ </html>
File without changes
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
3
+
4
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
5
+ require File.expand_path('../../config/boot', __FILE__)
6
+ require 'rails/commands'
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+
3
+ describe Gricer::BaseHelper do
4
+ context 'format_percentage' do
5
+ it 'should render a float as percentage' do
6
+ format_percentage(0.4223432342352345).should == '42.23 %'
7
+ end
8
+ end
9
+
10
+ context 'format_seconds' do
11
+ it 'should render a time less than a minute' do
12
+ format_seconds(42.42).should == '00:00:42'
13
+ end
14
+
15
+ it 'should render a time of full minutes' do
16
+ format_seconds(2*60).should == '00:02:00'
17
+ end
18
+
19
+ it 'should render a time of full hours' do
20
+ format_seconds(3*60*60).should == '03:00:00'
21
+ end
22
+
23
+ it 'should render a time combined of hours, minutes and seconds' do
24
+ format_seconds(1*60*60 + 42*60 + 23).should == '01:42:23'
25
+ end
26
+ end
27
+
28
+ end
@@ -0,0 +1,63 @@
1
+ require 'spec_helper'
2
+
3
+ describe Gricer::TrackRequestFilter do
4
+ context 'filter out specific urls' do
5
+ let(:request) do
6
+ mock 'Request',
7
+ remote_ip: '127.0.0.1',
8
+ host: 'localhost',
9
+ path: '/my_action',
10
+ request_method: 'GET',
11
+ protocol: 'http://',
12
+ headers: {}
13
+ end
14
+
15
+ let(:response) do
16
+ mock 'Response',
17
+ content_type: 'text/html',
18
+ body: '<html><head></head><body></body></html>',
19
+ status: 404
20
+ end
21
+
22
+ let(:controller) do
23
+ mock 'MyController',
24
+ controller_path: 'my_controller',
25
+ action_name: 'my_action',
26
+ params: {},
27
+ session: {},
28
+ gricer_user_id: nil,
29
+ request: request,
30
+ response: response
31
+ end
32
+
33
+ before do
34
+ controller.stub(:gricer_request=)
35
+ end
36
+
37
+ it 'should not track /gricer urls' do
38
+ controller.stub(:controller_path) { 'gricer/capture' }
39
+
40
+ my_command = mock 'MyCommand'
41
+ my_command.should_receive(:test)
42
+ Gricer::Request.should_not_receive(:create)
43
+
44
+ Gricer::TrackRequestFilter.filter controller do
45
+ my_command.test
46
+ end
47
+ end
48
+
49
+ it 'should not track configured urls' do
50
+ request.stub(:path) { '/this/is/my/exception' }
51
+
52
+ Gricer.config.stub(:exclude_paths) { /^\/this/ }
53
+
54
+ my_command = mock 'MyCommand'
55
+ my_command.should_receive(:test)
56
+ Gricer::Request.should_not_receive(:create)
57
+
58
+ Gricer::TrackRequestFilter.filter controller do
59
+ my_command.test
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,829 @@
1
+ require 'spec_helper'
2
+
3
+ describe Gricer::Agent do
4
+ context 'agent detection' do
5
+ [
6
+ #
7
+ # Browsers on Desktop
8
+ #
9
+
10
+ # ABrowse
11
+ ['Mozilla/5.0 (compatible; U; ABrowse 0.6; Syllable) AppleWebKit/420+ (KHTML, like Gecko)', 'ABrowse', '0.6', '0.6', 'WebKit', '420', 'Syllable', :browser],
12
+ ['Mozilla/5.0 (compatible; ABrowse 0.4; Syllable)', 'ABrowse', '0.4', '0.4', nil, nil, 'Syllable', :browser],
13
+
14
+ # Acoo Browser
15
+ ['Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Acoo Browser; GTB5; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; Maxthon; InfoPath.1; .NET CLR 3.5.30729; .NET CLR 3.0.30618)', 'Internet Explorer', '7.0', '7.0', 'Trident', '3.1', 'Windows', :browser],
16
+ ['Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; Acoo Browser; GTB6; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; InfoPath.1; .NET CLR 3.5.30729; .NET CLR 3.0.30618)', 'Internet Explorer', '8.0', '8.0', 'Trident', '4.0', 'Windows', :browser],
17
+ ['Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; Acoo Browser; GTB5; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; InfoPath.1; .NET CLR 3.5.30729; .NET CLR 3.0.30618)', 'Internet Explorer', '8.0', '8.0', 'Trident', '4.0', 'Windows', :browser],
18
+ ['Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6; Acoo Browser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)', 'Internet Explorer', '8.0', '8.0', 'Trident', '4.0', 'Windows', :browser],
19
+ ['Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Acoo Browser; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)', 'Internet Explorer', '7.0', '7.0', 'Trident', '3.1', 'Windows', :browser],
20
+ ['Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Acoo Browser; GTB5; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)', 'Internet Explorer', '7.0', '7.0', 'Trident', '3.1', 'Windows', :browser],
21
+ ['Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Acoo Browser; GTB5; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; InfoPath.1; .NET CLR 3.5.30729; .NET CLR 3.0.30618)', 'Internet Explorer', '7.0', '7.0', 'Trident', '3.1', 'Windows', :browser],
22
+ ['Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Acoo Browser; InfoPath.2; .NET CLR 2.0.50727; Alexa Toolbar)', 'Internet Explorer', '7.0', '7.0', 'Trident', '3.1', 'Windows', :browser],
23
+ ['Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Acoo Browser; .NET CLR 2.0.50727; .NET CLR 1.1.4322)', 'Internet Explorer', '7.0', '7.0', 'Trident', '3.1', 'Windows', :browser],
24
+ ['Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Acoo Browser; .NET CLR 1.0.3705; .NET CLR 1.1.4322; .NET CLR 2.0.50727; FDM; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; InfoPath.2)', 'Internet Explorer', '7.0', '7.0', 'Trident', '3.1', 'Windows', :browser],
25
+ ['Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Acoo Browser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)', 'Internet Explorer', '6.0', '6.0', 'Trident', '3.0', 'Windows', :browser],
26
+ ['Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Acoo Browser; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727)', 'Internet Explorer', '6.0', '6.0', 'Trident', '3.0', 'Windows', :browser],
27
+ # This is probably and IE 8.0 engine reporting as 7.0 and 6.0
28
+ ['Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0; Acoo Browser; GTB5; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; InfoPath.1; .NET CLR 3.5.30729; .NET CLR 3.0.30618)', 'Internet Explorer', '7.0', '7.0', 'Trident', '4.0', 'Windows', :browser],
29
+
30
+ # AmigaVoyager
31
+ ['AmigaVoyager/3.2 (AmigaOS/MC680x0)', 'AmigaVoyager', '3.2', '3.2', nil, nil, 'AmigaOS', :browser],
32
+ ['AmigaVoyager/2.95 (compatible; MC680x0; AmigaOS; SV1)', 'AmigaVoyager', '2.95', '2.95', nil, nil, 'AmigaOS', :browser],
33
+ ['AmigaVoyager/2.95 (compatible; MC680x0; AmigaOS)', 'AmigaVoyager', '2.95', '2.95', nil, nil, 'AmigaOS', :browser],
34
+
35
+ # Arora
36
+ ['Mozilla/5.0 (Unknown; U; UNIX BSD/SYSV system; C -) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.10.2', 'Arora', '0.10.2', '0.10', 'WebKit', '527', 'UNIX', :browser],
37
+ ['Mozilla/5.0 (X11; U; Linux; de-DE) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.8.0', 'Arora', '0.8.0', '0.8', 'WebKit', '527', 'Linux', :browser],
38
+ ['Mozilla/5.0 (Windows; U; ; en-NZ) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.8.0', 'Arora', '0.8.0', '0.8', 'WebKit', '527', 'Windows', :browser],
39
+ ['Mozilla/5.0 (Windows; U; ; en-NZ) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.8.0', 'Arora', '0.8.0', '0.8', 'WebKit', '527', 'Windows', :browser],
40
+ ['Mozilla/5.0 (X11; U; Linux; ru-RU) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.6 (Change: 802 025a17d)', 'Arora', '0.6', '0.6', 'WebKit', '527', 'Linux', :browser],
41
+ ['Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.6 (Change: )', 'Arora', '0.6', '0.6', 'WebKit', '527', 'Windows', :browser],
42
+
43
+ ['Mozilla/5.0 (X11; U; Linux; pt-PT) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.4', 'Arora', '0.4', '0.4', 'WebKit', '523.15', 'Linux', :browser],
44
+ ['Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.4 (Change: )', 'Arora', '0.4', '0.4', 'WebKit', '527', 'Windows', :browser],
45
+
46
+ ['Mozilla/5.0 (X11; U; Linux; en-GB) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.3 (Change: 239 52c6958)', 'Arora', '0.3', '0.3', 'WebKit', '527', 'Linux', :browser],
47
+ ['Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.3 (Change: 287 c9dfb30)', 'Arora', '0.3', '0.3', 'WebKit', '523.15', 'Windows', :browser],
48
+
49
+ ['Mozilla/5.0 (X11; U; Linux; sk-SK) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.2 (Change: 0 )', 'Arora', '0.2', '0.2', 'WebKit', '523.15', 'Linux', :browser],
50
+ ['Mozilla/5.0 (Windows; U; Windows NT 6.0; de-DE) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.2', 'Arora', '0.2', '0.2', 'WebKit', '523.15', 'Windows', :browser],
51
+ ['Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/533.3 (KHTML, like Gecko) Arora/0.11.0 Safari/533.3', 'Arora', '0.11.0', '0.11', 'WebKit', '533.3', 'Linux', :browser],
52
+
53
+ # Avant
54
+ ['Avant Browser/1.2.789rel1 (http://www.avantbrowser.com)', 'Avant Browser', '1.2.789', '1.2', nil, nil, 'Windows', :browser],
55
+ ['Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Avant Browser; Avant Browser; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)', 'Avant Browser', nil, nil, 'Trident', '3.1', 'Windows', :browser],
56
+
57
+ # Beonex
58
+ ['Mozilla/5.0 (Windows; U; WinNT; en; rv:1.0.2) Gecko/20030311 Beonex/0.8.2-stable', 'Beonex', '0.8.2', '0.8', 'Gecko', '1.0.2', 'Windows', :browser],
59
+
60
+ # BonEcho (Firefox 2 preview)
61
+ ['Mozilla/5.0 (X11; U; Linux i686; nl; rv:1.8.1b2) Gecko/20060821 BonEcho/2.0b2 (Debian-1.99+2.0b2+dfsg-1)', 'Firefox', '2.0', '2.0', 'Gecko', '1.8.1', 'Linux', :browser],
62
+ ['Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1b2) Gecko/20060826 BonEcho/2.0b2', 'Firefox', '2.0', '2.0', 'Gecko', '1.8.1', 'Windows', :browser],
63
+ ['Mozilla/5.0 (X11; U; Linux x86_64; en-GB; rv:1.8.1b1) Gecko/20060601 BonEcho/2.0b1 (Ubuntu-edgy)', 'Firefox', '2.0', '2.0', 'Gecko', '1.8.1', 'Linux', :browser],
64
+ ['Mozilla/5.0 (X11; U; OpenBSD ppc; en-US; rv:1.8.1.9) Gecko/20070223 BonEcho/2.0.0.9', 'Firefox', '2.0.0.9', '2.0', 'Gecko', '1.8.1.9', 'OpenBSD', :browser],
65
+ ['Mozilla/5.0 (BeOS; U; BeOS BePC; en-US; rv:1.8.1.7) Gecko/20070917 BonEcho/2.0.0.7', 'Firefox', '2.0.0.7', '2.0', 'Gecko', '1.8.1.7', 'BeOS', :browser],
66
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8.1.3) Gecko/20070329 BonEcho/2.0.0.3', 'Firefox', '2.0.0.3', '2.0', 'Gecko', '1.8.1.3', 'OS X', :browser],
67
+ ['Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1.3) Gecko/20070322 BonEcho/2.0.0.3', 'Firefox', '2.0.0.3', '2.0', 'Gecko', '1.8.1.3', 'OS X', :browser],
68
+ ['Mozilla/5.0 (BeOS; U; Haiku BePC; en-US; rv:1.8.1.18) Gecko/20081114 BonEcho/2.0.0.18', 'Firefox', '2.0.0.18', '2.0', 'Gecko', '1.8.1.18', 'BeOS', :browser],
69
+ ['Mozilla/5.0 (X11; U; Win95; en-US; rv:1.8.1) Gecko/20061125 BonEcho/2.0', 'Firefox', '2.0', '2.0', 'Gecko', '1.8.1', 'Windows', :browser],
70
+
71
+ # Browzar
72
+ # Reporting IS 7.0 but using IE 8.0's Trident
73
+ ['Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 1.1.4322; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; Browzar)', 'Internet Explorer', '7.0', '7.0', 'Trident', '4.0', 'Windows', :browser],
74
+
75
+ # Camino
76
+ ['Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en; rv:1.9.2.14pre) Gecko/20101212 Camino/2.1a1pre (like Firefox/3.6.14pre)', 'Camino', '2.1', '2.1', 'Gecko', '1.9.2.14', 'OS X', :browser],
77
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.5; it; rv:1.9.0.19) Gecko/2010111021 Camino/2.0.6 (MultiLang) (like Firefox/3.0.19)', 'Camino', '2.0.6', '2.0', 'Gecko', '1.9.0.19', 'OS X', :browser],
78
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en; rv:1.8.1.4pre) Gecko/20070511 Camino/1.6pre', 'Camino', '1.6', '1.6', 'Gecko', '1.8.1.4', 'OS X', :browser],
79
+ ['Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en; rv:1.8.1.4pre) Gecko/20070521 Camino/1.6a1pre', 'Camino', '1.6', '1.6', 'Gecko', '1.8.1.4', 'OS X', :browser],
80
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; it; rv:1.8.1.21) Gecko/20090327 Camino/1.6.7 (MultiLang) (like Firefox/2.0.0.21pre)', 'Camino', '1.6.7', '1.6', 'Gecko', '1.8.1.21', 'OS X', :browser],
81
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en; rv:1.9a4pre) Gecko/20070404 Camino/1.2+', 'Camino', '1.2', '1.2', 'Gecko', '1.9', 'OS X', :browser],
82
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7.8) Gecko/20050427 Camino/0.8.4', 'Camino', '0.8.4', '0.8', 'Gecko', '1.7.8', 'OS X', :browser],
83
+
84
+ # Charon
85
+ ['Mozilla/4.08 (Charon; Inferno)', 'Charon', nil, nil, nil, nil, 'Inferno', :browser],
86
+
87
+ # Chimera
88
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; pl-PL; rv:1.0.1) Gecko/20021111 Chimera/0.6', 'Chimera', '0.6', '0.6', 'Gecko', '1.0.1', 'OS X', :browser],
89
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.0.1) Gecko/20030109 Chimera/0.6', 'Chimera', '0.6', '0.6', 'Gecko', '1.0.1', 'OS X', :browser],
90
+
91
+ # Chrome
92
+ ['Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.0 Safari/532.5', 'Chrome', '4.0.249.0', '4.0', 'WebKit', '532.5', 'Windows', :browser],
93
+ ['Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/532.9 (KHTML, like Gecko) Chrome/5.0.310.0 Safari/532.9', 'Chrome', '5.0.310.0', '5.0', 'WebKit', '532.9', 'Windows', :browser],
94
+ ['Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.514.0 Safari/534.7', 'Chrome', '7.0.514.0', '7.0', 'WebKit', '534.7', 'Windows', :browser],
95
+ ['Mozilla/5.0 (Windows NT 5.2) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.792.0 Safari/535.1', 'Chrome', '14.0.792.0', '14.0', 'WebKit', '535.1', 'Windows', :browser],
96
+ ['Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_7) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.790.0 Safari/535.1', 'Chrome', '14.0.790.0', '14.0', 'WebKit', '535.1', 'OS X', :browser],
97
+ ['Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.20 Safari/535.1', 'Chrome', '13.0.782.20', '13.0', 'WebKit', '535.1', 'Linux', :browser],
98
+ ['Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.35 (KHTML, like Gecko) Ubuntu/10.10 Chromium/13.0.764.0 Chrome/13.0.764.0 Safari/534.35', 'Chrome', '13.0.764.0', '13.0', 'WebKit', '534.35', 'Linux', :browser],
99
+ ['Mozilla/5.0 ArchLinux (X11; U; Linux x86_64; en-US) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.100 Safari/534.30', 'Chrome', '12.0.742.100', '12.0', 'WebKit', '534.30', 'Linux', :browser],
100
+ ['Mozilla/5.0 ArchLinux (X11; U; Linux x86_64; en-US) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.100', 'Chrome', '12.0.742.100', '12.0', 'WebKit', '534.30', 'Linux', :browser],
101
+ ['Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Ubuntu/10.10 Chromium/12.0.703.0 Chrome/12.0.703.0 Safari/534.24', 'Chrome', '12.0.703.0', '12.0', 'WebKit', '534.24', 'Linux', :browser],
102
+ ['Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.0 Safari/534.13', 'Chrome', '9.0.597.0', '9.0', 'WebKit', '534.13', 'Linux', :browser],
103
+ ['Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.0 Safari/534.13', 'Chrome', '9.0.597.0', '9.0', 'WebKit', '534.13', 'Windows', :browser],
104
+ ['Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_5; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.0 Safari/534.13', 'Chrome', '9.0.597.0', '9.0', 'WebKit', '534.13', 'OS X', :browser],
105
+ ['Mozilla/5.0 (X11; U; CrOS i686 0.9.130; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.344 Safari/534.10', 'Chrome', '8.0.552.344', '8.0', 'WebKit', '534.10', 'CrOS', :browser],
106
+ ['Mozilla/5.0 (X11; U; OpenBSD i386; en-US) AppleWebKit/533.3 (KHTML, like Gecko) Chrome/5.0.359.0 Safari/533.3', 'Chrome', '5.0.359.0', '5.0', 'WebKit', '533.3', 'OpenBSD', :browser],
107
+ ['Mozilla/5.0 (Macintosh; U; Mac OS X 10_6_1; en-US) AppleWebKit/530.5 (KHTML, like Gecko) Chrome/ Safari/530.5', 'Chrome', nil, nil, 'WebKit', '530.5', 'OS X', :browser],
108
+
109
+ # ChromePlus
110
+ ['Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.2 (KHTML, like Gecko) ChromePlus/4.0.222.3 Chrome/4.0.222.3 Safari/532.2', 'Chrome', '4.0.222.3', '4.0', 'WebKit', '532.2', 'Windows', :browser],
111
+ ['Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.215 Safari/534.10 ChromePlus/1.5.1.0alpha3 ChromePlus/1.5.1.0alpha3 ChromePlus/1.5.1.0alpha3', 'Chrome', '8.0.552.215', '8.0', 'WebKit', '534.10', 'Windows', :browser],
112
+
113
+ # CometBird
114
+ ['Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.5) Gecko/2009011615 Firefox/3.0.5 CometBird/3.0.5', 'Firefox', '3.0.5', '3.0', 'Gecko', '1.9.0.5', 'Windows', :browser],
115
+
116
+ # Comodo_Dragon
117
+ ['Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Comodo_Dragon/4.1.1.11 Chrome/4.1.249.1042 Safari/532.5', 'Chrome', '4.1.249.1042', '4.1', 'WebKit', '532.5', 'Linux', :browser],
118
+
119
+ # Conkeror
120
+ ['Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.16) Gecko/20101209 Conkeror/0.9.2 (Debian-0.9.2+git100804-1)', 'Conkeror', '0.9.2', '0.9', 'Gecko', '1.9.1.16', 'Linux', :browser],
121
+
122
+ # Cyberdog
123
+ ['Cyberdog/2.0 (Macintosh; PPC)', 'Cyberdog', '2.0', '2.0', nil, nil, 'Classic Macintosh', :browser],
124
+ ['Cyberdog/2.0 (Macintosh; 68k)', 'Cyberdog', '2.0', '2.0', nil, nil, 'Classic Macintosh', :browser],
125
+
126
+ # Dillo
127
+ ['Dillo/2.0', 'Dillo', '2.0', '2.0', nil, nil, nil, :browser],
128
+ ['Dillo/0.8.6-i18n-misc', 'Dillo', '0.8.6', '0.8', nil, nil, nil, :browser],
129
+
130
+ # Elinks
131
+ ['ELinks/0.9.3 (textmode; Linux 2.6.9-kanotix-8 i686; 127x41)', 'ELinks', '0.9.3', '0.9', nil, nil, 'Linux', :browser],
132
+ ['ELinks (0.4pre6; Linux 2.2.19ext3 alpha; 80x25)', 'ELinks', '0.4', '0.4', nil, nil, 'Linux', :browser],
133
+ ['ELinks (0.4.3; NetBSD 3.0.2_PATCH sparc64; 126x14)', 'ELinks', '0.4.3', '0.4', nil, nil, 'NetBSD', :browser],
134
+ ['ELinks/0.12~pre5-1-lite (textmode; Debian; Linux 2.6.31-1+e517a5e9 x86_64; 100x45-2)', 'ELinks', '0.12', '0.12', nil, nil, 'Linux', :browser],
135
+ ['ELinks/0.12pre1.GIT', 'ELinks', '0.12', '0.12', nil, nil, nil, :browser],
136
+ ['ELinks/0.11.4rc1 (textmode; Darwin 8.11.0 Power Macintosh; 169x55-3)', 'ELinks', '0.11.4', '0.11', nil, nil, 'Darwin', :browser],
137
+ ['Elinks (textmode)', 'ELinks', nil, nil, nil, nil, nil, :browser],
138
+
139
+ # Epiphany (versions since 2.30 use WebKit)
140
+ ['Mozilla/5.0 (X11; U; Linux x86_64; it-it) AppleWebKit/534.26+ (KHTML, like Gecko) Ubuntu/11.04 Epiphany/2.30.6', 'Epiphany', '2.30.6', '2.30', 'WebKit', '534.26', 'Linux', :browser],
141
+ ['Mozilla/5.0 (X11; U; OpenBSD arm; en-us) AppleWebKit/531.2+ (KHTML, like Gecko) Safari/531.2+ Epiphany/2.30.0', 'Epiphany', '2.30.0', '2.30', 'WebKit', '531.2', 'OpenBSD', :browser],
142
+
143
+ # Epiphany (older versions use Gecko)
144
+ ['Mozilla/5.0 (X11; U; Linux x86_64; en; rv:1.9.0.8) Gecko/20080528 Fedora/2.24.3-4.fc10 Epiphany/2.22 Firefox/3.0', 'Epiphany', '2.22', '2.22', 'Gecko', '1.9.0.8', 'Linux', :browser],
145
+ ['Mozilla/5.0 (X11; U; Linux x86_64; en; rv:1.9.0.7) Gecko/20080528 Epiphany/2.22', 'Epiphany', '2.22', '2.22', 'Gecko', '1.9.0.7', 'Linux', :browser],
146
+ ['Mozilla/5.0 (X11; U; Linux i686; en; rv:1.9b3) Gecko Epiphany/2.20', 'Epiphany', '2.20', '2.20', 'Gecko', '1.9', 'Linux', :browser],
147
+ ['Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.12) Gecko/20051215 Epiphany/1.8.4.1', 'Epiphany', '1.8.4.1', '1.8', 'Gecko', '1.7.12', 'Linux', :browser],
148
+ ['Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030908 Epiphany/0.9.2', 'Epiphany', '0.9.2', '0.9', 'Gecko', '1.4', 'Linux', :browser],
149
+
150
+ # Epiphany (broken agents are common for it)
151
+ ['Mozilla/5.0 (X11; U; Linux i686; pl-pl) AppleWebKit/525.1+ (KHTML, like Gecko, Safari/525.1+) epiphany-browser', 'Epiphany', nil, nil, 'WebKit', '525.1', 'Linux', :browser],
152
+ ['Mozilla/5.0 (X11; U; Linux i686; en-gb) AppleWebKit/525.1+ (KHTML, like Gecko, Safari/525.1+) epiphany-webkit', 'Epiphany', nil, nil, 'WebKit', '525.1', 'Linux', :browser],
153
+
154
+ # Firebird
155
+ ['Mozilla/5.0 (Windows; U; Windows NT 6.1; x64; fr; rv:1.9.2.13) Gecko/20101203 Firebird/3.6.13', 'Firefox', '3.6.13', '3.6', 'Gecko', '1.9.2.13', 'Windows', :browser],
156
+ ['Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6a) Gecko/20031002 Firebird/0.7', 'Firefox', '0.7', '0.7', 'Gecko', '1.6', 'Windows', :browser],
157
+ ['Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.4b) Gecko/20030517 Mozilla Firebird/0.6', 'Firefox', '0.6', '0.6', 'Gecko', '1.4', 'SunOS', :browser],
158
+
159
+ # Firefox
160
+ ['Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0a2) Gecko/20110613 Firefox/6.0a2', 'Firefox', '6.0', '6.0', 'Gecko', '6.0', 'Windows', :browser],
161
+ ['Mozilla/5.0 (Windows NT 6.1; U; ru; rv:5.0.1.6) Gecko/20110501 Firefox/5.0.1 Firefox/5.0.1', 'Firefox', '5.0.1', '5.0', 'Gecko', '5.0.1.6', 'Windows', :browser],
162
+ ['Mozilla/5.0 (X11; U; Linux amd64; en-US; rv:5.0) Gecko/20110619 Firefox/5.0', 'Firefox', '5.0', '5.0', 'Gecko', '5.0', 'Linux', :browser],
163
+ ['Mozilla/5.0 (X11; Linux x86_64; rv:5.0) Gecko/20100101 Firefox/5.0 FirePHP/0.5', 'Firefox', '5.0', '5.0', 'Gecko', '5.0', 'Linux', :browser],
164
+ ['Mozilla/5.0 (U; Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0', 'Firefox', '5.0', '5.0', 'Gecko', '5.0', 'Windows', :browser],
165
+ ['Mozilla/5.0 (X11; Linux x86_64; rv:2.2a1pre) Gecko/20110324 Firefox/4.2a1pre', 'Firefox', '4.2', '4.2', 'Gecko', '2.2', 'Linux', :browser],
166
+ ['Mozilla/5.0 (WindowsCE 6.0; rv:2.0.1) Gecko/20100101 Firefox/4.0.1', 'Firefox', '4.0.1', '4.0', 'Gecko', '2.0.1', 'Windows CE', :browser],
167
+ ['Mozilla/5.0 (X11; Arch Linux i686; rv:2.0) Gecko/20110321 Firefox/4.0', 'Firefox', '4.0', '4.0', 'Gecko', '2.0', 'Linux', :browser],
168
+ ['Mozilla/5.0 (BeOS; U; BeOS BePC; en-US; rv:1.8.1b2) Gecko/20060901 Firefox/2.0b2', 'Firefox', '2.0', '2.0', 'Gecko', '1.8.1', 'BeOS', :browser],
169
+ ['Mozilla/5.0 (X11; U; Gentoo Linux x86_64; pl-PL; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7', 'Firefox', '2.0.0.7', '2.0', 'Gecko', '1.8.1.7', 'Linux', :browser],
170
+ ['Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.8) Gecko/20051130 Firefox/1.5', 'Firefox', '1.5', '1.5', 'Gecko', '1.8', 'SunOS', :browser],
171
+ ['Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.19) Gecko/20081202 Firefox (Debian-2.0.0.19-0etch1)', 'Firefox', nil, nil, 'Gecko', '1.8.1.19', 'Linux', :browser],
172
+ ['Mozilla/5.0 (X11; U; Gentoo Linux x86_64; pl-PL) Gecko Firefox', 'Firefox', nil, nil, 'Gecko', nil, 'Linux', :browser],
173
+ ['Mozilla/5.0 (X11; ; Linux x86_64; rv:1.8.1.6) Gecko/20070802 Firefox', 'Firefox', nil, nil, 'Gecko', '1.8.1.6', 'Linux', :browser],
174
+ ['Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.6) Gecko/2009011913 Firefox', 'Firefox', nil, nil, 'Gecko', '1.9.0.6', 'Windows', :browser],
175
+
176
+ # Flock (versions since 3.0 use WebKit)
177
+ ['Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Flock/3.5.3.4628 Chrome/7.0.517.450 Safari/534.7', 'Flock', '3.5.3.4628', '3.5', 'WebKit', '534.7', 'OS X', :browser],
178
+
179
+ # Flock (older versions use Gecko)
180
+ ['Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.0.19) Gecko/2010062819 Firefox/3.0.19 Flock/2.6.1', 'Flock', '2.6.1', '2.6', 'Gecko', '1.9.0.19', 'OS X', :browser],
181
+ ['Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8) Gecko/20060102 Flock/0.4.11 Firefox/1.5', 'Flock', '0.4.11', '0.4', 'Gecko', '1.8', 'Linux', :browser],
182
+
183
+ # Fluid
184
+ ['Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_1; nl-nl) AppleWebKit/532.3+ (KHTML, like Gecko) Fluid/0.9.6 Safari/532.3+', 'Fluid', '0.9.6', '0.9', 'WebKit', '532.3', 'OS X', :browser],
185
+ ['Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Fluid/0.9.4 Safari/525.13', 'Fluid', '0.9.4', '0.9', 'WebKit', '525.13', 'Windows', :browser],
186
+
187
+ # Galaxy
188
+ ['Galaxy 1.0', 'Galaxy', '1.0', '1.0', nil, nil, nil, :browser],
189
+ ['Galaxy/1.0 [en] (Mac OS X 10.5.6; U; en)', 'Galaxy', '1.0', '1.0', nil, nil, 'OS X', :browser],
190
+ ['Galaxy/1.0 [en] (Mac OS X 10.5.6)', 'Galaxy', '1.0', '1.0', nil, nil, 'OS X', :browser],
191
+
192
+ # Galeon
193
+ ['Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.8) Gecko/20090327 Galeon/2.0.7', 'Galeon', '2.0.7', '2.0', 'Gecko', '1.9.0.8', 'Linux', :browser],
194
+ ['Mozilla/5.0 Galeon/1.2.9 (X11; Linux i686; U;) Gecko/20021213 Debian/1.2.9-0.bunk', 'Galeon', '1.2.9', '1.2', 'Gecko', nil, 'Linux', :browser],
195
+ ['Mozilla/5.0 Galeon/1.0.3 (X11; Linux i686; U;) Gecko/0', 'Galeon', '1.0.3', '1.0', 'Gecko', nil, 'Linux', :browser],
196
+
197
+ # GranParadiso
198
+ ['Mozilla/5.0(X11;U;Linux(x86_64);en;rv:1.9a8)Gecko/2007100619;GranParadiso/3.1', 'Firefox', '3.1', '3.1', 'Gecko', '1.9', 'Linux', :browser],
199
+ ['Mozilla/5.0 (X11; U; Linux ppc; en-US; rv:1.9a8) Gecko/2007100620 GranParadiso/3.1', 'Firefox', '3.1', '3.1', 'Gecko', '1.9', 'Linux', :browser],
200
+
201
+ # Hana
202
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/418.9 (KHTML, like Gecko) Hana/1.1', 'Hana', '1.1', '1.1', 'WebKit', '418.9', 'OS X', :browser],
203
+ ['Mozilla/5.0 (Macintosh; U; i386 Mac OS X; en) AppleWebKit/417.9 (KHTML, like Gecko) Hana/1.0', 'Hana', '1.0', '1.0', 'WebKit', '417.9', 'OS X', :browser],
204
+
205
+ # HotJava
206
+ ['HotJava/1.1.2 FCS', 'HotJava', '1.1.2', '1.1', nil, nil, nil, :browser],
207
+ ['HotJava 1.0.1', 'HotJava', '1.0.1', '1.0', nil, nil, nil, :browser],
208
+ ['HotJava/1.0.1/JRE1.1.x', 'HotJava', '1.0.1', '1.0', nil, nil, nil, :browser],
209
+
210
+ # IBM WebExplorer
211
+ ['IBM WebExplorer /v0.94', 'IBM WebExplorer', '0.94', '0.94', nil, nil, 'OS/2', :browser],
212
+
213
+ # IBrowse
214
+ ['Mozilla/5.0 (compatible; IBrowse 3.0; AmigaOS4.0)', 'IBrowse', '3.0', '3.0', nil, nil, 'AmigaOS', :browser],
215
+ ['IBrowse/2.4demo (AmigaOS 3.9; 68K)', 'IBrowse', '2.4', '2.4', nil, nil, 'AmigaOS', :browser],
216
+ ['IBrowse/2.4 (AmigaOS 3.9; 68K)', 'IBrowse', '2.4', '2.4', nil, nil, 'AmigaOS', :browser],
217
+ ['Mozilla/4.0 (compatible; IBrowse 2.3; AmigaOS4.0)', 'IBrowse', '2.3', '2.3', nil, nil, 'AmigaOS', :browser],
218
+ ['IBrowse/2.3 (AmigaOS 3.9)', 'IBrowse', '2.3', '2.3', nil, nil, 'AmigaOS', :browser],
219
+
220
+ # iCab
221
+ ['iCab/4.7 (Macintosh; U; PPC Mac OS X)', 'iCab', '4.7', '4.7', nil, nil, 'OS X', :browser],
222
+ ['Mozilla/5.0 (compatible; iCab 3.0.5; Macintosh; U; PPC Mac OS)', 'iCab', '3.0.5', '3.0', nil, nil, 'OS X', :browser],
223
+ ['iCab/3.0.5 (Macintosh; U; PPC Mac OS X)', 'iCab', '3.0.5', '3.0', nil, nil, 'OS X', :browser],
224
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS; en) iCab 3', 'iCab', '3.0', '3.0', nil, nil, 'OS X', :browser],
225
+
226
+ # Iceape (like Seamonkey)
227
+ ['Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.13) Gecko/20100916 Iceape/2.0.8', 'Iceape', '2.0.8', '2.0', 'Gecko', '1.9.1.13', 'Linux', :browser],
228
+
229
+ # IceCat
230
+ ['Mozilla/5.0 (X11; U; Linux sparc64; es-PY; rv:5.0) Gecko/20100101 IceCat/5.0 (like Firefox/5.0; Debian-6.0.1)', 'Firefox', '5.0', '5.0', 'Gecko', '5.0', 'Linux', :browser],
231
+ ['Mozilla/5.0 (X11; Linux i686; rv:2.0b8) Gecko/20101227 IceCat/4.0b8', 'Firefox', '4.0', '4.0', 'Gecko', '2.0', 'Linux', :browser],
232
+
233
+ # Iceweasel
234
+ ['Mozilla/5.0 (X11; Linux x86_64; rv:5.0) Gecko/20100101 Firefox/5.0 Iceweasel/5.0', 'Firefox', '5.0', '5.0', 'Gecko', '5.0', 'Linux', :browser],
235
+ ['Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.2.13) Gecko/20101203 Iceweasel/3.6.7 (like Firefox/3.6.13)', 'Firefox', '3.6.13', '3.6', 'Gecko', '1.9.2.13', 'Linux', :browser],
236
+ ['Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1) Gecko/20090704 Iceweasel/3.5 (Debian-3.5-0)', 'Firefox', '3.5', '3.5', 'Gecko', '1.9.1', 'Linux', :browser],
237
+ ['Mozilla/5.0 (Linux X86; U; Debian SID; it; rv:1.9.0.1) Gecko/2008070208 Debian IceWeasel/3.0.1', 'Firefox', '3.0.1', '3.0', 'Gecko', '1.9.0.1', 'Linux', :browser],
238
+ ['Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.8pre) Gecko/20061001 Firefox/1.5.0.8pre (Iceweasel)', 'Firefox', '1.5.0.8', '1.5', 'Gecko', '1.8.0.8', 'Linux', :browser],
239
+ ['Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.0.7) Gecko/2009030814 Iceweasel Firefox/3.0.7 (Debian-3.0.7-1)', 'Firefox', '3.0.7', '3.0', 'Gecko', '1.9.0.7', 'Linux', :browser],
240
+ ['Mozilla/5.0 (Linux) Gecko Iceweasel (Debian) Mnenhy', 'Firefox', nil, nil, 'Gecko', nil, 'Linux', :browser],
241
+
242
+ # Internet Explorer
243
+ ['Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)', 'Internet Explorer', '10.0', '10.0', 'Trident', '6.0', 'Windows', :browser],
244
+ ['Mozilla/1.22 (compatible; MSIE 10.0; Windows 3.1)', 'Internet Explorer', '10.0', '10.0', 'Trident', '6.0', 'Windows', :browser],
245
+ ['Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 7.1; Trident/5.0)', 'Internet Explorer', '9.0', '9.0', 'Trident', '5.0', 'Windows', :browser],
246
+ ['Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; Media Center PC 6.0; InfoPath.3; MS-RTC LM 8; Zune 4.7)', 'Internet Explorer', '9.0', '9.0', 'Trident', '5.0', 'Windows', :browser],
247
+ ['Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0; chromeframe/11.0.696.57)', 'Internet Explorer', '9.0', '9.0', 'Trident', '5.0', 'Windows', :browser],
248
+ ['Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; Media Center PC 4.0; SLCC1; .NET CLR 3.0.04320)', 'Internet Explorer', '8.0', '8.0', 'Trident', '4.0', 'Windows', :browser],
249
+ ['Mozilla/4.0(compatible; MSIE 7.0b; Windows NT 6.0)', 'Internet Explorer', '7.0', '7.0', 'Trident', '3.1', 'Windows', :browser],
250
+ ['Mozilla/4.0 (compatible; MSIE 6.1; Windows XP; .NET CLR 1.1.4322; .NET CLR 2.0.50727)', 'Internet Explorer', '6.1', '6.1', 'Trident', '3.0', 'Windows', :browser],
251
+ ['Mozilla/4.0 (Compatible; Windows NT 5.1; MSIE 6.0) (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)', 'Internet Explorer', '6.0', '6.0', 'Trident', '3.0', 'Windows', :browser],
252
+ ['Mozilla/4.0 (compatible; MSIE 5.5b1; Mac_PowerPC)', 'Internet Explorer', '5.5', '5.5', 'Trident', '2.2', 'OS X', :browser],
253
+ ['Mozilla/4.0 (compatible; MSIE 5.23; Mac_PowerPC)', 'Internet Explorer', '5.23', '5.23', 'Trident', '2.1', 'OS X', :browser],
254
+ ['Mozilla/4.0 PPC (compatible; MSIE 4.01; Windows CE; PPC; 240x320; Sprint:PPC-6700; PPC; 240x320)', 'Internet Explorer', '4.01', '4.01', 'Trident', '1.0', 'Windows', :browser],
255
+ ['Mozilla/4.0 (compatible; MSIE 4.01; Mac_PowerPC)', 'Internet Explorer', '4.01', '4.01', 'Trident', '1.0', 'OS X', :browser],
256
+ ['Mozilla/1.22 (compatible; MSIE 2.0; Windows 95)', 'Internet Explorer', '2.0', '2.0', nil, nil, 'Windows', :browser],
257
+ ['Mozilla/1.22 (compatible; MSIE 2.0; Windows 3.1)', 'Internet Explorer', '2.0', '2.0', nil, nil, 'Windows', :browser],
258
+ # This is probaly an IE 8.0 engine reporting as IE 6.0
259
+ ['Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.0; YComp 5.0.0.0) (Compatible; ; ; Trident/4.0)', 'Internet Explorer', '6.0', '6.0', 'Trident', '4.0', 'Windows', :browser],
260
+ # This is probaly an IE 8.0 engine reporting as IE 7.0
261
+ ['Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 5.0; Trident/4.0; FBSMTWB; .NET CLR 2.0.34861; .NET CLR 3.0.3746.3218; .NET CLR 3.5.33652; msn OptimizedIE8;ENUS)', 'Internet Explorer', '7.0', '7.0', 'Trident', '4.0', 'Windows', :browser],
262
+ # This is a very strange entry
263
+ ['Mozilla/4.0 (compatible; MSIE 2.0; Windows NT 5.0; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)', 'Internet Explorer', '2.0', '2.0', 'Trident', '4.0', 'Windows', :browser],
264
+ # Probably bots?
265
+ ###['Mozilla/4.0 (X11; MSIE 6.0; i686; .NET CLR 1.1.4322; .NET CLR 2.0.50727; FDM)', 'Internet Explorer', '6.0', '6.0', 'Trident', '3.0', 'Windows', :browser],
266
+ ###['Mozilla/4.0 (MSIE 6.0; Windows NT 5.0)', 'Internet Explorer', '6.0', '6.0', 'Trident', '3.0', 'Windows', :browser],
267
+ ###['Mozilla/4.0 (compatible;MSIE 6.0;Windows 98;Q312461)', 'Internet Explorer', '6.0', '6.0', 'Trident', '3.0', 'Windows', :browser],
268
+ ###['Mozilla/4.0 WebTV/2.6 (compatible; MSIE 4.0)', 'Internet Explorer', '4.0', 'Windows', :browser],
269
+
270
+
271
+ # Iron
272
+ ['Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.30 (KHTML, like Gecko) Iron/12.0.750.0 Chrome/12.0.750.0 Safari/534.30', 'Chrome', '12.0.750.0', '12.0', 'WebKit', '534.30', 'Windows', :browser],
273
+ ['Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Iron/3.0.197.0 Safari/532.0', 'Chrome', '3.0.197.0', '3.0', 'WebKit', '532.0', 'Windows', :browser],
274
+
275
+ # K-Meleon
276
+ ['Mozilla/5.0 (Windows; U; Windows NT 5.1; pl-PL; rv:1.8.1.24pre) Gecko/20100228 K-Meleon/1.5.4', 'K-Meleon', '1.5.4', '1.5', 'Gecko', '1.8.1.24', 'Windows', :browser],
277
+
278
+ # K-Ninja, K-Meleon derivate
279
+ ['Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.4pre) Gecko/20070404 K-Ninja/2.1.3', 'K-Ninja', '2.1.3', '2.1', 'Gecko', '1.8.1.4', 'Windows', :browser],
280
+
281
+ # KMLite, K-Ninja derivate
282
+ ['Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.19) Gecko/20081217 KMLite/1.1.2', 'KMLite', '1.1.2', '1.1', 'Gecko', '1.8.1.19', 'Windows', :browser],
283
+
284
+ # Kapiko
285
+ ['Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.1) Gecko/20080722 Firefox/3.0.1 Kapiko/3.0', 'Kapiko', '3.0', '3.0', 'Gecko', '1.9.0.1', 'Windows', :browser],
286
+
287
+ # Kazehakase
288
+ ['Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.7) Gecko Kazehakase/0.5.6', 'Kazehakase', '0.5.6', '0.5', 'Gecko', '1.9.0.7', 'Linux', :browser],
289
+
290
+ # Konqueror
291
+ ['Mozilla/5.0 (compatible; Konqueror/4.5; FreeBSD) KHTML/4.5.4 (like Gecko)', 'Konqueror', '4.5', '4.5', 'KHTML', '4.5.4', 'FreeBSD', :browser],
292
+ ['Mozilla/5.0 (compatible; Konqueror/4.5; Windows) KHTML/4.5.4 (like Gecko)', 'Konqueror', '4.5', '4.5', 'KHTML', '4.5.4', 'Windows', :browser],
293
+ ['Mozilla/5.0 (compatible; Konqueror/4.2) KHTML/4.2.4 (like Gecko) Fedora/4.2.4-2.fc11', 'Konqueror', '4.2', '4.2', 'KHTML', '4.2.4', nil, :browser],
294
+ ['Mozilla/5.0 (compatible; Konqueror/3.1-rc6; i686 Linux; 20020614)', 'Konqueror', '3.1', '3.1', 'KHTML', '3.1', 'Linux', :browser],
295
+ ['Mozilla/5.0 (compatible; Konqueror/3.0; i686 Linux; 20020510)', 'Konqueror', '3.0', '3.0', 'KHTML', '3.0', 'Linux', :browser],
296
+ ['Mozilla/5.0 (compatible; Konqueror/2.2.2-3; Linux)', 'Konqueror', '2.2.2', '2.2', 'KHTML', '2.2.2', 'Linux', :browser],
297
+ ['Mozilla/5.0 (compatible; Konqueror/2.2.2; Linux 2.4.14-xfs; X11; i686)', 'Konqueror', '2.2.2', '2.2', 'KHTML', '2.2.2', 'Linux', :browser],
298
+ ['Mozilla/5.0 (compatible; Konqueror/2.2.2)', 'Konqueror', '2.2.2', '2.2', 'KHTML', '2.2.2', nil, :browser],
299
+ ['Mozilla/5.0 (compatible; Konqueror/2.2-11; Linux)', 'Konqueror', '2.2', '2.2', 'KHTML', '2.2', 'Linux', :browser],
300
+ ['Mozilla/5.0 (compatible; Konqueror/2.1.2; X11)', 'Konqueror', '2.1.2', '2.1', 'KHTML', '2.1.2', nil, :browser],
301
+
302
+ # Links
303
+ ['Links (6.9; Unix 6.9-astral sparc; 80x25)', 'Links', '6.9', '6.9', nil, nil, nil, :browser],
304
+ ['Links (2.3pre1; Linux 2.6.35-22-generic i686; 177x51)', 'Links', '2.3', '2.3', nil, nil, 'Linux', :browser],
305
+ ['Links (2.2; OpenBSD 4.8 i386; x)', 'Links', '2.2', '2.2', nil, nil, 'OpenBSD', :browser],
306
+ ['Links (2.2; NetBSD 5.0 i386; 80x25)', 'Links', '2.2', '2.2', nil, nil, 'NetBSD', :browser],
307
+ ['Links (2.1pre33; Darwin 8.11.0 Power Macintosh; 169x55)', 'Links', '2.1', '2.1', nil, nil, 'OS X', :browser],
308
+ ['Links (2.1pre; Linux)', 'Links', '2.1', '2.1', nil, nil, 'Linux', :browser],
309
+ ['Links (2.xpre7; Linux 2.4.18 i586; x)', 'Links', '2.0', '2.0', nil, nil, 'Linux', :browser],
310
+ ['Links 2.0 (http://gossamer-threads.com/scripts/links/)', 'Links', '2.0', '2.0', nil, nil, nil, :browser],
311
+ ['Links (0.98; Unix)', 'Links', '0.98', '0.98', nil, nil, nil, :browser],
312
+
313
+ # Lynx
314
+ ['Lynx/2.8.8dev.3 libwww-FM/2.14 SSL-MM/1.4.1', 'Lynx', '2.8.8', '2.8', nil, nil, nil, :browser],
315
+ ['Lynx/2.8.5dev.16', 'Lynx', '2.8.5', '2.8', nil, nil, nil, :browser],
316
+ ['Lynx (textmode)', 'Lynx', nil, nil, nil, nil, nil, :browser],
317
+
318
+ # Midori
319
+ ['Midori/0.1.10 (X11; Linux i686; U; en-us) WebKit/(531).(2)+', 'Midori', '0.1.10', '0.1', 'WebKit', '531', 'Linux', :browser],
320
+
321
+ # Minefield (Firefox Alpha)
322
+ ['Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b4pre) Gecko/20100815 Minefield/4.0b4pre', 'Firefox', '4.0', '4.0', 'Gecko', '2.0', 'Windows', :browser],
323
+ ['Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.3a1pre) Gecko/20091022 Minefield/3.7a1pre', 'Firefox', '3.7', '3.7', 'Gecko', '1.9.3', 'Linux', :browser],
324
+ ['Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.3a1pre) Gecko/20091130 Minefield/3.7a1pre GTB6', 'Firefox', '3.7', '3.7', 'Gecko', '1.9.3', 'Windows', :browser],
325
+
326
+ # Multizilla 1.6
327
+ ['Mozilla/5.0 (Windows; U; Windows XP) Gecko MultiZilla/1.6.1.0a', 'MultiZilla', '1.6.1.0', '1.6', 'Gecko', nil, 'Windows', :browser],
328
+
329
+ # NetPositive
330
+ ['Mozilla/3.0 (compatible; NetPositive/2.1.1; BeOS)', 'NetPositive', '2.1.1', '2.1', nil, nil, 'BeOS', :browser],
331
+
332
+ # NetSurf
333
+ ['NetSurf/1.2 (NetBSD; amd64)', 'NetSurf', '1.2', '1.2', nil, nil, 'NetBSD', :browser],
334
+
335
+ # Namoroka (Firefox Beta)
336
+ ['Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2a2pre) Gecko/20090825 Namoroka/3.6a2pre', 'Firefox', '3.6', '3.6', 'Gecko', '1.9.2', 'Linux', :browser],
337
+ ['Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.9pre) Gecko/20100812 Namoroka/3.6.9pre', 'Firefox', '3.6.9', '3.6', 'Gecko', '1.9.2.9', 'Windows', :browser],
338
+
339
+ # NCSA Mosaic
340
+ ['NCSA Mosaic/3.0 (Windows 95)', 'Mosaic', '3.0', '3.0', nil, nil, 'Windows', :browser],
341
+ ['NCSA_Mosaic/2.7b4 (X11;AIX 1 000180663000)', 'Mosaic', '2.7', '2.7', nil, nil, 'AIX', :browser],
342
+ ['NCSA_Mosaic/2.6 (X11; SunOS 4.1.3 sun4m)', 'Mosaic', '2.6', '2.6', nil, nil, 'SunOS', :browser],
343
+ ['NCSA_Mosaic/2.0 (Windows 3.1)', 'Mosaic', '2.0', '2.0', nil, nil, 'Windows', :browser],
344
+ ['NCSA Mosaic/1.0 (X11;SunOS 4.1.4 sun4m)', 'Mosaic', '1.0', '1.0', nil, nil, 'SunOS', :browser],
345
+
346
+ # Netscape
347
+ ['Mozilla/5.0 (Windows; U; Win 9x 4.90; SG; rv:1.9.2.4) Gecko/20101104 Netscape/9.1.0285', 'Netscape Navigator', '9.1.0285', '9.1', 'Gecko', '1.9.2.4', 'Windows', :browser],
348
+ ['Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.8pre) Gecko/20070928 Firefox/2.0.0.7 Navigator/9.0RC1', 'Netscape Navigator', '9.0', '9.0', 'Gecko', '1.8.1.8', 'Windows', :browser],
349
+ ['Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.4) Gecko Netscape/7.1 (ax)', 'Netscape Navigator', '7.1', '7.1', 'Gecko', '1.4', 'Windows', :browser],
350
+ ### Old Netscapes up to version 4.8
351
+ # Mozilla/4.8 [pl] (Windows NT 5.1; U)
352
+ # Mozilla/4.8 [en] (Windows NT 5.1; U)
353
+ # Mozilla/4.8 [en] (X11; U; SunOS; 5.7 sun4u)
354
+ # Mozilla/4.78 [fr] (X11; U; Linux 2.4.18-14 i686)
355
+ # Mozilla/4.77 [en] (X11; I; IRIX;64 6.5 IP30)
356
+ # Mozilla/4.6 (Macintosh; I; PPC)
357
+ # Mozilla/4.6 [de] (Win98; I)
358
+ # Mozilla/4.08 [en] (WinNT; U ;Nav)
359
+ # Mozilla/4.08 [en] (WinNT; I ;Nav)
360
+ # Mozilla/4.08 [en] (Win98; I ;Nav)
361
+ # Mozilla/4.08 [en] (Win95; I ;Nav)
362
+ # Mozilla/3.04Gold (WinNT; U)
363
+ # Mozilla/3.04 (WinNT; I)
364
+ # Mozilla/3.01Gold (Win95; I)
365
+ # Mozilla/3.0 (Macintosh; I; 68K)
366
+ # Mozilla/2.02Gold (Win95; I)
367
+ # Mozilla/2.02E (Win95; U)
368
+
369
+ # OmniWeb
370
+ ['Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US) AppleWebKit/528.16 (KHTML, like Gecko, Safari/528.16) OmniWeb/v622.8.0.112941', 'OmniWeb', '622.8.0.112941', '622.8', 'WebKit', '528.16', 'OS X', :browser],
371
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/85 (KHTML, like Gecko) OmniWeb/v496', 'OmniWeb', '496.0', '496.0', 'WebKit', '85', 'OS X', :browser],
372
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/522+ (KHTML, like Gecko) OmniWeb', 'OmniWeb', nil, nil, 'WebKit', '522', 'OS X', :browser],
373
+
374
+ # OmniWeb (before WebKit)
375
+ ['Mozilla/4.5 (compatible; OmniWeb/4.2.1-v435.9; Mac_PowerPC)', 'OmniWeb', '4.2.1', '4.2', nil, nil, 'OS X', :browser],
376
+
377
+ # Opera
378
+ ['Opera/9.80 (X11; Linux i686; U; ru) Presto/2.8.131 Version/11.11', 'Opera', '11.11', '11.11', 'Presto', '2.8.131', 'Linux', :browser],
379
+ ['Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.1) Gecko/20061208 Firefox/5.0 Opera 11.11', 'Opera', '11.11', '11.11', 'Presto', '2.8.131', 'Windows', :browser],
380
+ ['Opera/9.80 (Windows NT 6.1; Opera Tablet/15165; U; en) Presto/2.8.149 Version/11.1', 'Opera', '11.1', '11.1', 'Presto', '2.8.149', 'Windows', :browser],
381
+ ['Mozilla/4.0 (compatible; MSIE 8.0; Linux i686; en) Opera 10.51', 'Opera', '10.51', '10.51', 'Presto', '2.5.24', 'Linux', :browser],
382
+ ['Opera/9.99 (Windows NT 5.1; U; pl) Presto/9.9.9', 'Opera', '9.99', '9.99', 'Presto', '9.9.9', 'Windows', :browser],
383
+
384
+ ['Opera/9.70 (Linux i686 ; U; ; en) Presto/2.2.1', 'Opera', '9.70', '9.70', 'Presto', '2.2.1', 'Linux', :browser],
385
+ ['Mozilla/5.0 (Linux i686 ; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.70', 'Opera', '9.70', '9.70', 'Presto', '2.1.1', 'Linux', :browser],
386
+ # Actually this is a Opera Mobile, which is reporting as Desktop - handle a Desktop
387
+ ['HTC_HD2_T8585 Opera/9.70 (Windows NT 5.1; U; de)', 'Opera', '9.70', '9.70', 'Presto', '2.1.1', 'Windows', :browser],
388
+ ['Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9b3) Gecko/2008020514 Opera 9.5', 'Opera', '9.5', '9.5', 'Presto', '2.1', 'Windows', :browser],
389
+ ['Mozilla/4.0 (compatible; MSIE 6.0; X11; Linux i686; en) Opera 9.27', 'Opera', '9.27', '9.27', 'Presto', '2.0', 'Linux', :browser],
390
+ ['Opera/8.51 (X11; Linux i686; U; en)', 'Opera', '8.51', '8.51', 'Presto', '1.0', 'Linux', :browser],
391
+ ['Mozilla/5.0 (Windows NT 5.1; U; fr) Opera 8.51', 'Opera', '8.51', '8.51', 'Presto', '1.0', 'Windows', :browser],
392
+ ['Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Opera 7.52 [en]', 'Opera', '7.52', '7.52', 'Presto', '1.0', 'Windows', :browser],
393
+ ['Mozilla/5.0 (X11; U; Linux x86_64; de; rv:1.9.0.6) Gecko/2009020911 Ubuntu/8.10 (intrepid) Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.1) Opera 7.03 [de]', 'Opera', '7.03', '7.03', 'Presto', '1.0', 'Linux', :browser],
394
+ ['Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows 95) Opera 7.03 [de]', 'Opera', '7.03', '7.03', 'Presto', '1.0', 'Windows', :browser],
395
+ ['Mozilla/5.0 (Macintosh; ; Intel Mac OS X; fr; rv:1.8.1.1) Gecko/20061204 Opera', 'Opera', nil, nil, nil, nil, 'OS X', :browser],
396
+ ['Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera', 'Opera', nil, nil, nil, nil, 'Windows', :browser],
397
+ ['Mozilla/4.0 (compatible; MSIE 6.0; Windows CE) Opera', 'Opera', nil, nil, nil, nil, 'Windows', :browser],
398
+ ['Opera/7.50 (Windows XP; U)', 'Opera', '7.50', '7.50', 'Presto', '1.0', 'Windows', :browser],
399
+ ['Opera/7.50 (Windows ME; U) [en]', 'Opera', '7.50', '7.50', 'Presto', '1.0', 'Windows', :browser],
400
+ ['Opera/7.51 (Windows NT 5.1; U) [en]', 'Opera', '7.51', '7.51', 'Presto', '1.0', 'Windows', :browser],
401
+ ['Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; en) Opera 8.0', 'Opera', '8.0', '8.0', 'Presto', '1.0', 'Windows', :browser],
402
+ ['HTC-ST7377/1.59.502.3 (67150) Opera/9.50 (Windows NT 5.1; U; en) UP.Link/6.3.1.17.0', 'Opera', '9.50', '9.50', 'Presto', '2.1', 'Windows', :browser],
403
+
404
+ # Palemoon
405
+ ['Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP; rv:1.9.2.8) Gecko/20100817 Firefox/3.6.8 (Palemoon/3.6.8a)', 'Firefox', '3.6.8', '3.6', 'Gecko', '1.9.2.8', 'Windows', :browser],
406
+
407
+ # Phoenix
408
+ ['Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3a) Gecko/20021207 Phoenix/0.5', 'Firefox', '0.5', '0.5', 'Gecko', '1.3', 'Linux', :browser],
409
+ ['Mozilla/5.0 (Windows; U; WinNT4.0; en-US; rv:1.2b) Gecko/20021001 Phoenix/0.2', 'Firefox', '0.2', '0.2', 'Gecko', '1.2', 'Windows', :browser],
410
+
411
+ # Pogo
412
+ ['Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080414 Firefox/2.0.0.13 Pogo/2.0.0.13.6866', 'Firefox', '2.0.0.13', '2.0', 'Gecko', '1.8.1.13', 'Windows', :browser],
413
+
414
+ # Prism
415
+ ['Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.3) Gecko/20100402 Prism/1.0b4', 'Prism', '1.0', '1.0', 'Gecko', '1.9.2.3', 'OS X', :browser],
416
+ ['Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.17) Gecko/2010010604 prism/0.8', 'Prism', '0.8', '0.8', 'Gecko', '1.9.0.17', 'Linux', :browser],
417
+
418
+ # QtWeb Internet Browser
419
+ ['Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR) AppleWebKit/533.3 (KHTML, like Gecko) QtWeb Internet Browser/3.7 http://www.QtWeb.net', 'QtWeb Internet Browser', '3.7', '3.7', 'WebKit', '533.3', 'Windows', :browser],
420
+
421
+ # Rekonq
422
+ ['Mozilla/5.0 (X11; U; Linux x86_64; cs-CZ) AppleWebKit/533.3 (KHTML, like Gecko) rekonq Safari/533.3', 'Safari', nil, nil, 'WebKit', '533.3', 'Linux', :browser],
423
+
424
+ # RockMelt
425
+ ['Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) RockMelt/0.9.48.51 Chrome/9.0.597.107 Safari/534.13', 'Chrome', '9.0.597.107', '9.0', 'WebKit', '534.13', 'Windows', :browser],
426
+
427
+ # Safari
428
+ ['Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; da-dk) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1', 'Safari', '5.0.5', '5.0', 'WebKit', '533.21.1', 'OS X', :browser],
429
+ ['Mozilla/5.0 (Windows; U; Windows NT 6.1; cs-CZ) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27', 'Safari', '5.0.4', '5.0', 'WebKit', '533.20.25', 'Windows', :browser],
430
+ ['Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; th-th) AppleWebKit/533.17.8 (KHTML, like Gecko) Version/5.0.1 Safari/533.17.8', 'Safari', '5.0.1', '5.0', 'WebKit', '533.17.8', 'OS X', :browser],
431
+ ['Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; el-gr) AppleWebKit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16', 'Safari', '5.0', '5.0', 'WebKit', '533.16', 'OS X', :browser],
432
+ ['Mozilla/5.0 (Windows; U; Windows NT 5.0; en-en) AppleWebKit/533.16 (KHTML, like Gecko) Version/4.1 Safari/533.16', 'Safari', '4.1', '4.1', 'WebKit', '533.16', 'Windows', :browser],
433
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_4_11; tr) AppleWebKit/528.4+ (KHTML, like Gecko) Version/4.0dp1 Safari/526.11.2', 'Safari', '4.0', '4.0', 'WebKit', '528.4', 'OS X', :browser],
434
+ ['Mozilla/5.0 (Windows; U; Windows NT 5.1; de-DE) AppleWebKit/532+ (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10', 'Safari', '4.0.4', '4.0', 'WebKit', '532', 'Windows', :browser],
435
+ ['Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/528.16 (KHTML, like Gecko) Version/4.0 Safari/528.16', 'Safari', '4.0', '4.0', 'WebKit', '528.16', 'Windows', :browser],
436
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_5_8; ja-jp) AppleWebKit/530.19.2 (KHTML, like Gecko) Version/3.2.3 Safari/525.28.3', 'Safari', '3.2.3', '3.2', 'WebKit', '530.19.2', 'OS X', :browser],
437
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; nl-nl) AppleWebKit/418.8 (KHTML, like Gecko) Safari/419.3', 'Safari', '2.0.4', '2.0', 'WebKit', '418.8', 'OS X', :browser],
438
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; sv-se) AppleWebKit/417.9 (KHTML, like Gecko) Safari/417.8_Adobe', 'Safari', '2.0.3', '2.0', 'WebKit', '417.9', 'OS X', :browser],
439
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; nl-nl) AppleWebKit/418 (KHTML, like Gecko) Safari/417.9.3', 'Safari', '2.0.3', '2.0', 'WebKit', '418', 'OS X', :browser],
440
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; nl-nl) AppleWebKit/417.9 (KHTML, like Gecko) Safari/417.9.2', 'Safari', '2.0.3', '2.0', 'WebKit', '417.9', 'OS X', :browser],
441
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; nl-nl) AppleWebKit/416.12 (KHTML, like Gecko) Safari/416.13', 'Safari', '2.0.2', '2.0', 'WebKit', '416.12', 'OS X', :browser],
442
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; nl-nl) AppleWebKit/416.11 (KHTML, like Gecko) Safari/416.12', 'Safari', '2.0.2', '2.0', 'WebKit', '416.11', 'OS X', :browser],
443
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; nl-nl) AppleWebKit/416.11 (KHTML, like Gecko) Safari/312', 'Safari', '1.3', '1.3', 'WebKit', '416.11', 'OS X', :browser],
444
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; fr) AppleWebKit/416.12 (KHTML, like Gecko) Safari/412.5', 'Safari', '2.0.1', '2.0', 'WebKit', '416.12', 'OS X', :browser],
445
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/416.11 (KHTML, like Gecko)', 'WebKit Browser', nil, nil, 'WebKit', '416.11', 'OS X', :browser],
446
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; ja-jp) AppleWebKit/412.7 (KHTML, like Gecko) Safari/412.5', 'Safari', '2.0.1', '2.0', 'WebKit', '412.7', 'OS X', :browser],
447
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/412.7 (KHTML, like Gecko) Safari/412.6', 'Safari', '2.0.1', '2.0', 'WebKit', '412.7', 'OS X', :browser],
448
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/412.7 (KHTML, like Gecko) Safari/412.5_Adobe', 'Safari', '2.0.1', '2.0', 'WebKit', '412.7', 'OS X', :browser],
449
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS; pl-pl) AppleWebKit/412 (KHTML, like Gecko) Safari/412', 'Safari', '2.0', '2.0', 'WebKit', '412', 'OS X', :browser],
450
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; fr) AppleWebKit/412.6 (KHTML, like Gecko) Safari/412.2', 'Safari', '2.0', '2.0', 'WebKit', '412.6', 'OS X', :browser],
451
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/412.6.2 (KHTML, like Gecko) Safari/412.2.2', 'Safari', '2.0', '2.0', 'WebKit', '412.6.2', 'OS X', :browser],
452
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; sv-se) AppleWebKit/312.8 (KHTML, like Gecko) Safari/312.5', 'Safari', '1.3.2', '1.3', 'WebKit', '312.8', 'OS X', :browser],
453
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; it-it) AppleWebKit/312.8 (KHTML, like Gecko) Safari/312.6', 'Safari', '1.3.2', '1.3', 'WebKit', '312.8', 'OS X', :browser],
454
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/312.8 (KHTML, like Gecko) Safari/312.3.3', 'Safari', '1.3.1', '1.3', 'WebKit', '312.8', 'OS X', :browser],
455
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; sv-se) AppleWebKit/312.5.2 (KHTML, like Gecko) Safari/312.3.3', 'Safari', '1.3.1', '1.3', 'WebKit', '312.5.2', 'OS X', :browser],
456
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; sv-se) AppleWebKit/312.5.1 (KHTML, like Gecko) Safari/312.3.1', 'Safari', '1.3.1', '1.3', 'WebKit', '312.5.1', 'OS X', :browser],
457
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; fr-fr) AppleWebKit/312.5 (KHTML, like Gecko) Safari/312.3', 'Safari', '1.3.1', '1.3', 'WebKit', '312.5', 'OS X', :browser],
458
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/312.5.2 (KHTML, like Gecko) Safari/125', 'Safari', '1.2', '1.2', 'WebKit', '312.5.2', 'OS X', :browser],
459
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/312.5.1 (KHTML, like Gecko) Safari/125.9', 'Safari', '1.2.3', '1.2', 'WebKit', '312.5.1', 'OS X', :browser],
460
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; it-it) AppleWebKit/312.1 (KHTML, like Gecko) Safari/312', 'Safari', '1.3', '1.3', 'WebKit', '312.1', 'OS X', :browser],
461
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; fr-fr) AppleWebKit/312.1 (KHTML, like Gecko) Safari/125', 'Safari', '1.2', '1.2', 'WebKit', '312.1', 'OS X', :browser],
462
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/312.1 (KHTML, like Gecko) Safari/312.3.1', 'Safari', '1.3.1', '1.3', 'WebKit', '312.1', 'OS X', :browser],
463
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; fr-fr) AppleWebKit/125.5.6 (KHTML, like Gecko) Safari/125.12', 'Safari', '1.2.4', '1.2', 'WebKit', '125.5.6', 'OS X', :browser],
464
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; fr-fr) AppleWebKit/125.5.5 (KHTML, like Gecko) Safari/125.11', 'Safari', '1.2.4', '1.2', 'WebKit', '125.5.5', 'OS X', :browser],
465
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/125.5.5 (KHTML, like Gecko) Safari/125.5.5', 'Safari', '1.2.2', '1.2', 'WebKit', '125.5.5', 'OS X', :browser],
466
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/125.5.5 (KHTML, like Gecko) Safari/125', 'Safari', '1.2', '1.2', 'WebKit', '125.5.5', 'OS X', :browser],
467
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; ja-jp) AppleWebKit/125.4 (KHTML, like Gecko) Safari/125.9', 'Safari', '1.2.3', '1.2', 'WebKit', '125.4', 'OS X', :browser],
468
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/125.4 (KHTML, like Gecko) Safari/100', 'Safari', nil, nil, 'WebKit', '125.4', 'OS X', :browser],
469
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; es-es) AppleWebKit/125.2 (KHTML, like Gecko) Safari/125.8', 'Safari', '1.2.2', '1.2', 'WebKit', '125.2', 'OS X', :browser],
470
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-us) AppleWebKit/125.2 (KHTML, like Gecko) Safari/125.7', 'Safari', '1.2.2', '1.2', 'WebKit', '125.2', 'OS X', :browser],
471
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/125.2 (KHTML, like Gecko) Safari/85.8', 'Safari', '1.0.3', '1.0', 'WebKit', '125.2', 'OS X', :browser],
472
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; it-it) AppleWebKit/124 (KHTML, like Gecko) Safari/125.1', 'Safari', '1.2', '1.2', 'WebKit', '124', 'OS X', :browser],
473
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-us) AppleWebKit/124 (KHTML, like Gecko) Safari/125', 'Safari', '1.2', '1.2', 'WebKit', '124', 'OS X', :browser],
474
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; fr-fr) AppleWebKit/85.8.5 (KHTML, like Gecko) Safari/85.8.1', 'Safari', '1.0.3', '1.0', 'WebKit', '85.8.5', 'OS X', :browser],
475
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-us) AppleWebKit/85.8.2 (KHTML, like Gecko) Safari/85.8', 'Safari', '1.0.3', '1.0', 'WebKit', '85.8.2', 'OS X', :browser],
476
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.8.5 (KHTML, like Gecko) Safari/85', 'Safari', '1.0', '1.0', 'WebKit', '85.8.5', 'OS X', :browser],
477
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; sv-se) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5', 'Safari', '1.0', '1.0', 'WebKit', '85.7', 'OS X', :browser],
478
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-us) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.6', 'Safari', '1.0', '1.0', 'WebKit', '85.7', 'OS X', :browser],
479
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.7', 'Safari', '1.0', '1.0', 'WebKit', '85.7', 'OS X', :browser],
480
+
481
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; fi-fi) AppleWebKit/420+ (KHTML, like Gecko) Safari/419.3', 'Safari', '2.0.4', '2.0', 'WebKit', '420', 'OS X', :browser],
482
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/312.8.1 (KHTML, like Gecko) Safari/312.6', 'Safari', '1.3.2', '1.3', 'WebKit', '312.8.1', 'OS X', :browser],
483
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-ch) AppleWebKit/85 (KHTML, like Gecko) Safari/85', 'Safari', '1.0', '1.0', 'WebKit', '85', 'OS X', :browser],
484
+ ['Mozilla/5.0 (Macintosh; U; Intel Mac OS X; it-IT) AppleWebKit/521.25 (KHTML, like Gecko) Safari/521.24', 'Safari', nil, nil, 'WebKit', '521.25', 'OS X', :browser],
485
+ ['Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en) AppleWebKit/521.32.1 (KHTML, like Gecko) Safari/521.32.1', 'Safari', nil, nil, 'WebKit', '521.32.1', 'OS X', :browser],
486
+ ['Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.0.6) Gecko/2009011912 Safari/525.27.1', 'Gecko Browser', '1.9.0.6', '1.9', 'Gecko', '1.9.0.6', 'OS X', :browser],
487
+
488
+ # SeaMonkey
489
+ ['Mozilla/5.0 (Windows NT 5.2; rv:7.0a1) Gecko/20110613 SeaMonkey/2.4a1', 'SeaMonkey', '2.4', '2.4', 'Gecko', '7.0', 'Windows', :browser],
490
+ ['Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0b11) Gecko/20110209 Firefox/ SeaMonkey/2.1b2', 'SeaMonkey', '2.1', '2.1', 'Gecko', '2.0', 'OS X', :browser],
491
+ ['Mozilla/5.0 (Windows NT 5.2; rv:2.0b7pre) Gecko/20100915 Firefox/4.0b7pre SeaMonkey/2.1b1pre', 'SeaMonkey', '2.1', '2.1', 'Gecko', '2.0', 'Windows', :browser],
492
+ ['Firefox/2.0b1 SeaMonkey/1.1.1 Mozilla/5.0 Gecko/20061101', 'SeaMonkey', '1.1.1', '1.1', 'Gecko', nil, nil, :browser],
493
+ ['Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.8) Gecko/20071008 SeaMonkey', 'SeaMonkey', nil, nil, 'Gecko', '1.8.1.8', 'Windows', :browser],
494
+
495
+ # Shadowfox
496
+ ['Mozilla/5.0 (X11; U; Linux x86_64; us; rv:1.9.1.19) Gecko/20110430 shadowfox/7.0 (like Firefox/7.0', 'Firefox', '7.0', '7.0', 'Gecko', '1.9.1.19', 'Linux', :browser],
497
+
498
+ # Shiira
499
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; ja-jp) AppleWebKit/419 (KHTML, like Gecko) Shiira/1.2.3 Safari/125', 'Shiira', '1.2.3', '1.2', 'WebKit', '419', 'OS X', :browser],
500
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-us) AppleWebKit/523.15.1 (KHTML, like Gecko) Shiira Safari/125', 'Shiira', nil, nil, 'WebKit', '523.15.1', 'OS X', :browser],
501
+
502
+ # Shiretoko
503
+ ['Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1b5pre) Gecko/20090424 Shiretoko/3.5b5pre', 'Firefox', '3.5', '3.5', 'Gecko', '1.9.1', 'Linux', :browser],
504
+ ['Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.5) Gecko/20100309 Ubuntu/9.04 (jaunty) Shiretoko/3.5.5', 'Firefox', '3.5.5', '3.5', 'Gecko', '1.9.1.5', 'Linux', :browser],
505
+ ['Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1b3pre) Gecko/20081222 Shiretoko/3.1b3pre', 'Firefox', '3.1', '3.1', 'Gecko', '1.9.1', 'Linux', :browser],
506
+
507
+ # Stainless
508
+ ['Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/528.16 (KHTML, like Gecko) Stainless/0.5.3 Safari/525.20.1', 'Stainless', '0.5.3', '0.5', 'WebKit', '528.16', 'OS X', :browser],
509
+
510
+ # Sunrise
511
+ ['Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_5; ja-jp) AppleWebKit/525.18 (KHTML, like Gecko) Sunrise/1.7.5 like Safari/5525.20.1', 'Sunrise', '1.7.5', '1.7', 'WebKit', '525.18', 'OS X', :browser],
512
+ ['Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-us) AppleWebKit/125.5.7 (KHTML, like Gecko) SunriseBrowser/0.895', 'Sunrise', '0.895', '0.895', 'WebKit', '125.5.7', 'OS X', :browser],
513
+
514
+ # Swiftfox
515
+ ['Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1) Gecko/20061024 Firefox/2.0 (Swiftfox)', 'Firefox', '2.0', '2.0', 'Gecko', '1.8.1', 'Linux', :browser],
516
+ ['Mozilla/5.0 (X11; U; Linux i686; it; rv:1.9.2.3) Gecko/20100406 Firefox/3.6.3 (Swiftfox)', 'Firefox', '3.6.3', '3.6', 'Gecko', '1.9.2.3', 'Linux', :browser],
517
+
518
+ # w3m
519
+ ['w3m/0.52', 'w3m', '0.5.2', '0.5', nil, nil, nil, :browser],
520
+ ['w3m 0.5.2', 'w3m', '0.5.2', '0.5', nil, nil, nil, :browser],
521
+ ['w3m/0.5.2 (Linux i686; it; Debian-3.0.6-3)', 'w3m', '0.5.2', '0.5', nil, nil, 'Linux', :browser],
522
+ ['w3m/0.5.2 (Debian-3.0.6-3)', 'w3m', '0.5.2', '0.5', nil, nil, 'Linux', :browser],
523
+ ['w3m/0.5.1+cvs-1.968', 'w3m', '0.5.1', '0.5', nil, nil, nil, :browser],
524
+
525
+ # WorldWideweb (the first internet browser ever!)
526
+ ['WorldWideweb (NEXT)', 'WorldWideweb', nil, nil, nil, nil, 'NeXT OS', :browser],
527
+
528
+ #
529
+ # Browsers on Consoles
530
+ #
531
+
532
+ # Nintendo DS
533
+ ['Bunjalloo/0.7.6(Nintendo DS;U;en)', 'Bunjalloo', '0.7.6', '0.7', nil, nil, 'Nintendo DS', :browser],
534
+
535
+ # PS 3
536
+ ['Mozilla/5.0 (PLAYSTATION 3; 3.55)', 'Playstation 3', '3.55', '3.55', nil, nil, 'Playstation 3', :browser],
537
+ ['Mozilla/5.0 (PLAYSTATION 3; 1.00)', 'Playstation 3', '1.00', '1.00', nil, nil, 'Playstation 3', :browser],
538
+ ['Mozilla/4.0 (PS3 (PlayStation 3); 1.00)', 'Playstation 3', '1.00', '1.00', nil, nil, 'Playstation 3', :browser],
539
+
540
+ # PSP
541
+ ['PSP (PlayStation Portable); 2.00', 'PlayStation Portable', '2.00', '2.00', nil, nil, 'PlayStation Portable', :browser],
542
+ ['Mozilla/4.0 (PSP (PlayStation Portable); 2.00)', 'PlayStation Portable', '2.00', '2.00', nil, nil, 'PlayStation Portable', :browser],
543
+
544
+ # Wii
545
+ ['wii libnup/1.0', 'Wii Browser', '1.0', '1.0', nil, nil, 'Nintendo Wii', :browser],
546
+ ['Opera/9.30 (Nintendo Wii; U; ; 2071; Wii Shop Channel/1.0; en)', 'Opera', '9.30', '9.30', 'Presto', '2.0', 'Nintendo Wii', :browser],
547
+ ['Opera/9.30 (Nintendo Wii; U; ; 2047-7;pt-br)', 'Opera', '9.30', '9.30', 'Presto', '2.0', 'Nintendo Wii', :browser],
548
+ ['Opera/9.23 (Nintendo Wii; U; ; 1038-58; Wii Internet Channel/1.0; en)', 'Opera', '9.23', '9.23', 'Presto', '2.0', 'Nintendo Wii', :browser],
549
+ ['Opera/9.00 (Nintendo Wii; U; ; 1038-58; Wii Internet Channel/1.0; en)', 'Opera', '9.00', '9.00', 'Presto', '2.0', 'Nintendo Wii', :browser],
550
+
551
+ #
552
+ # Browsers on Mobile
553
+ #
554
+
555
+ # Android Webkit Browser
556
+ ['Mozilla/5.0 (Linux; U; Android 3.0.1; fr-fr; A500 Build/HRI66) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13', 'Mobile Safari', '4.0', '4.0', 'WebKit', '534.13', 'Android', :mobile_browser],
557
+ ['Mozilla/5.0 (Linux; U; Android 3.0; en-us; Xoom Build/HRI39) AppleWebKit/525.10+ (KHTML, like Gecko) Version/3.0.4 Mobile Safari/523.12.2', 'Mobile Safari', '3.0.4', '3.0', 'WebKit', '525.10', 'Android', :mobile_browser],
558
+ ['Mozilla/5.0 (Linux; U; Android 1.5; de-de; Galaxy Build/CUPCAKE) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1', 'Mobile Safari', '3.1.2', '3.1', 'WebKit', '528.5', 'Android', :mobile_browser],
559
+ ['Mozilla/5.0 (Linux; U; Android 2.2; en-ca; GT-P1000M Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1', 'Mobile Safari', '4.0', '4.0', 'WebKit', '533.1', 'Android', :mobile_browser],
560
+ ['Mozilla/5.0 (Linux; U; Android 3.0.1; en-us; GT-P7100 Build/HRI83) AppleWebkit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13', 'Mobile Safari', '4.0', '4.0', 'WebKit', '534.13', 'Android', :mobile_browser],
561
+ ['Mozilla/5.0 (Linux; U; Android 2.3.4; fr-fr; HTC Desire Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1', 'Mobile Safari', '4.0', '4.0', 'WebKit', '533.1', 'Android', :mobile_browser],
562
+ ['Mozilla/5.0 (Linux; U; Android 2.3.3; zh-tw; HTC_Pyramid Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1', 'Mobile Safari', '4.0', '4.0', 'WebKit', '533.1', 'Android', :mobile_browser],
563
+ ['Mozilla/5.0 (Linux; U; Android 2.3.3; zh-tw; HTC_Pyramid Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari', 'Mobile Safari', '4.0', '4.0', 'WebKit', '533.1', 'Android', :mobile_browser],
564
+ ['Mozilla/5.0 (Linux; U; Android 3.0.1; fr-fr; A500 Build/HRI66) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13', 'Mobile Safari', '4.0', '4.0', 'WebKit', '534.13', 'Android', :mobile_browser],
565
+ ['Mozilla/5.0 (Linux; U; Android 2.3.3; de-de; HTC Desire Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1', 'Mobile Safari', '4.0', '4.0', 'WebKit', '533.1', 'Android', :mobile_browser],
566
+ ['Mozilla/5.0 (Linux; U; Android 2.2; en-sa; HTC_DesireHD_A9191 Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1', 'Mobile Safari', '4.0', '4.0', 'WebKit', '533.1', 'Android', :mobile_browser],
567
+ ['Mozilla/5.0 (Linux; U; Android 2.2.1; fr-fr; HTC_DesireZ_A7272 Build/FRG83D) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1', 'Mobile Safari', '4.0', '4.0', 'WebKit', '533.1', 'Android', :mobile_browser],
568
+ ['Mozilla/5.0 (Linux; U; Android 2.2.1; en-ca; LG-P505R Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1', 'Mobile Safari', '4.0', '4.0', 'WebKit', '533.1', 'Android', :mobile_browser],
569
+ ['Mozilla/5.0 (Linux; U; Android 2.2.1; de-de; HTC_Wildfire_A3333 Build/FRG83D) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1', 'Mobile Safari', '4.0', '4.0', 'WebKit', '533.1', 'Android', :mobile_browser],
570
+ ['Mozilla/5.0 (Linux; U; Android 2.0; en-us; Droid Build/ESD20) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17', 'Mobile Safari', '4.0', '4.0', 'WebKit', '530.17', 'Android', :mobile_browser],
571
+ ['Mozilla/5.0 (Linux; U; Android 1.6; ar-us; SonyEricssonX10i Build/R2BA026) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1', 'Mobile Safari', '3.1.2', '3.1', 'WebKit', '528.5', 'Android', :mobile_browser],
572
+ ['Mozilla/5.0 (Android 2.2; Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4', 'Mobile Safari', '5.0.3', '5.0', 'WebKit', '533.19.4', 'Android', :mobile_browser],
573
+
574
+ # BlackBerry
575
+ ['Mozilla/5.0 (BlackBerry; U; BlackBerry 9850; en-US) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.0.0.115 Mobile Safari/534.11+', 'BlackBerry Browser', '7.0.0.115', '7.0', 'WebKit', '534.11', 'BlackBerry', :mobile_browser],
576
+ ['Mozilla/5.0 (BlackBerry; U; BlackBerry 9800; zh-TW) AppleWebKit/534.8+ (KHTML, like Gecko) Version/6.0.0.448 Mobile Safari/534.8+', 'BlackBerry Browser', '6.0.0.448', '6.0', 'WebKit', '534.8', 'BlackBerry', :mobile_browser],
577
+ ['Mozilla/5.0 (BlackBerry; U; BlackBerry 9700; pt) AppleWebKit/534.8+ (KHTML, like Gecko) Version/6.0.0.546 Mobile Safari/534.8+', 'BlackBerry Browser', '6.0.0.546', '6.0', 'WebKit', '534.8', 'BlackBerry', :mobile_browser],
578
+ ['BlackBerry9800/5.0.0.862 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/331 UNTRUSTED/1.0 3gpp-gba', 'BlackBerry Browser', '5.0.0.862', '5.0', nil, nil, 'BlackBerry', :mobile_browser],
579
+ ['BlackBerry9700/5.0.0.862 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/331 UNTRUSTED/1.0 3gpp-gba', 'BlackBerry Browser', '5.0.0.862', '5.0', nil, nil, 'BlackBerry', :mobile_browser],
580
+ ['BlackBerry7100i/4.1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/103', 'BlackBerry Browser', '4.1.0', '4.1', nil, nil, 'BlackBerry', :mobile_browser],
581
+
582
+ # Blazer (Palm Browser)
583
+ ['Mozilla/4.0 (compatible; MSIE 6.0; Windows 95; PalmSource; Blazer 3.0) 16; 160x160', 'Blazer', '3.0', '3.0', nil, nil, 'Palm OS', :mobile_browser],
584
+ ['Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; PalmSource/hspr-H102; Blazer/4.0) 16;320x320', 'Blazer', '4.0', '4.0', nil, nil, 'Palm OS', :mobile_browser],
585
+
586
+ # Bolt
587
+ ['Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; BOLT/2.340) AppleWebKit/530+ (KHTML, like Gecko) Version/4.0 Safari/530.17 UNTRUSTED/1.0 3gpp-gba', 'Bolt', '2.340', '2.340', 'WebKit', '530', 'J2ME', :mobile_browser],
588
+
589
+ # Browser for S60
590
+ ['SamsungI8910/SymbianOS/9.1 Series60/3.0', 'Browser for S60', '3.0', '3.0', nil, nil, 'Symbian OS', :mobile_browser],
591
+ ['NokiaN97i/SymbianOS/9.1 Series60/3.0', 'Browser for S60', '3.0', '3.0', nil, nil, 'Symbian OS', :mobile_browser],
592
+ ['NokiaE52-1/SymbianOS/9.1 Series60/3.0 3gpp-gba', 'Browser for S60', '3.0', '3.0', nil, nil, 'Symbian OS', :mobile_browser],
593
+ ['NokiaE5-00/SymbianOS/9.1 Series60/3.0 3gpp-gba', 'Browser for S60', '3.0', '3.0', nil, nil, 'Symbian OS', :mobile_browser],
594
+ ['NokiaC7-00/SymbianOS/9.1 Series60/3.0 3gpp-gba', 'Browser for S60', '3.0', '3.0', nil, nil, 'Symbian OS', :mobile_browser],
595
+ ['Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 NokiaC6-00/20.0.042; Profile/MIDP-2.1 Configuration/CLDC-1.1; zh-hk) AppleWebKit/525 (KHTML, like Gecko) BrowserNG/7.2.6.9 3gpp-gba', 'Browser for S60', '5.0', '5.0', 'WebKit', '525', 'Symbian OS', :mobile_browser],
596
+ ['Mozilla/5.0 (SymbianOS/9.3; Series60/3.2 NokiaE52-1/052.003; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 BrowserNG/7.2.6.2 3gpp-gba', 'Browser for S60', '3.2', '3.2', 'WebKit', '525', 'Symbian OS', :mobile_browser],
597
+ ['NokiaC6-00/10.0.021 (SymbianOS/9.4; Series60/5.0 Mozilla/5.0; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebkit/525 (KHTML, like Gecko) BrowserNG/7.2.6 UNTRUSTED/1.0 3gpp-gba', 'Browser for S60', '5.0', '5.0', 'WebKit', '525', 'Symbian OS', :mobile_browser],
598
+ ['NokiaN97/21.1.107 (SymbianOS/9.4; Series60/5.0 Mozilla/5.0; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebkit/525 (KHTML, like Gecko) BrowserNG/7.1.4', 'Browser for S60', '5.0', '5.0', 'WebKit', '525', 'Symbian OS', :mobile_browser],
599
+ ['NokiaC5-00/061.005 (SymbianOS/9.3; U; Series60/3.2 Mozilla/5.0; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 Safari/525 3gpp-gba', 'Browser for S60', '3.2', '3.2', 'WebKit', '525', 'Symbian OS', :mobile_browser],
600
+ ['Nokia5250/11.0.008 (SymbianOS/9.4; U; Series60/5.0 Mozilla/5.0; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/525 (KHTML, like Gecko) Safari/525 3gpp-gba', 'Browser for S60', '5.0', '5.0', 'WebKit', '525', 'Symbian OS', :mobile_browser],
601
+ ['Nokia5250/10.0.011 (SymbianOS/9.4; U; Series60/5.0 Mozilla/5.0; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/525 (KHTML, like Gecko) Safari/525 3gpp-gba', 'Browser for S60', '5.0', '5.0', 'WebKit', '525', 'Symbian OS', :mobile_browser],
602
+
603
+ # Doris (Symbian)
604
+ ['Doris/1.15 [en] (Symbian)', 'Doris', '1.15', '1.15', nil, nil, 'Symbian OS', :mobile_browser],
605
+
606
+ # Dorothy
607
+ ['Mozilla/5.0 (Windows; U; Windows CE; Mobile; like iPhone; ko-kr) AppleWebKit/533.3 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.3 Dorothy', 'Dorothy', '4.0', '4.0', 'WebKit', '533.3', 'Windows CE', :mobile_browser],
608
+ ['Mozilla/5.0 (Windows; U; Windows CE; Mobile; like Android; ko-kr) AppleWebKit/533.3 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.3 Dorothy', 'Dorothy', '4.0', '4.0', 'WebKit', '533.3', 'Windows CE', :mobile_browser],
609
+ ['Mozilla/5.0 (Windows; U; Mobile; Dorothy Browser; en-US) AppleWebKit/533.3 (KHTML, like Gecko) Version/3.1.2 Mobile Safari/533.3', 'Dorothy', '3.1.2', '3.1', 'WebKit', '533.3', 'Windows CE', :mobile_browser],
610
+ ['Mozilla/5.0 (Windows; U; Dorothy Browser; ko-kr) AppleWebKit/533.3 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.3', 'Dorothy', '4.0', '4.0', 'WebKit', '533.3', 'Windows CE', :mobile_browser],
611
+
612
+ # EudoraWeb
613
+ ['Mozilla/1.22 (compatible; MSIE 5.01; PalmOS 3.0) EudoraWeb 2.1', 'EudoraWeb', '2.1', '2.1', nil, nil, 'PalmOS', :mobile_browser],
614
+
615
+ # Fennec
616
+ ['Mozilla/5.0 (Maemo; Linux armv7l; rv:5.0) Gecko/20110615 Firefox/5.0 Fennec/5.0', 'Fennec', '5.0', '5.0', 'Gecko', '5.0', 'Maemo', :mobile_browser],
617
+ ['Mozilla/5.0 (Android; WOW64; Linux armv7l;rv:5.0) Gecko/20110603 Firefox/5.0 Fennec/5.0', 'Fennec', '5.0', '5.0', 'Gecko', '5.0', 'Android', :mobile_browser],
618
+ ['Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b8) Gecko/20101221 Firefox/4.0b8 Fennec/4.0b3', 'Fennec', '4.0', '4.0', 'Gecko', '2.0', 'Windows', :mobile_browser],
619
+ ['Mozilla/5.0 (X11; Linux armv7l; rv:2.0b4pre) Gecko/20100812 Firefox/4.0b4pre Fennec/2.0a1pre', 'Fennec', '2.0', '2.0', 'Gecko', '2.0', 'Linux', :mobile_browser],
620
+ ['Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2a1pre) Gecko/20090626 Fennec/1.0b2', 'Fennec', '1.0', '1.0', 'Gecko', '1.9.2', 'OS X', :mobile_browser],
621
+ ['Mozilla/5.0 (Windows; U; Windows CE 5.2; en-US; rv:1.9.2a1pre) Gecko/20090210 Fennec/0.11', 'Fennec', '0.11', '0.11', 'Gecko', '1.9.2', 'Windows CE', :mobile_browser],
622
+
623
+ # Go Browser
624
+ ['NokiaE66/GoBrowser/2.0.297', 'GoBrowser', '2.0.297', '2.0', nil, nil, nil, :mobile_browser],
625
+ ['NokiaX6/GoBrowser', 'GoBrowser', nil, nil, nil, nil, nil, :mobile_browser],
626
+ ['Mozilla/5.0 (Android 2.2; zh-cn; HTC Desire)/GoBrowser', 'GoBrowser', nil, nil, nil, nil, 'Android', :mobile_browser],
627
+
628
+ # IE Mobile
629
+ ['Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0)', 'IE Mobile', '9.0', '9.0', 'Trident', '5.0', 'Windows Phone', :mobile_browser],
630
+ ['HTC_Touch_3G Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 7.11)', 'IE Mobile', '7.11', '7.11', 'Trident', '3.1', 'Windows CE', :mobile_browser],
631
+ ['Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; Nokia;N70)', 'IE Mobile', '7.0', '7.0', 'Trident', '3.1', 'Windows Phone', :mobile_browser],
632
+ ['Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 6.12; Microsoft ZuneHD 4.3)', 'IE Mobile', '6.12', '6.12', 'Trident', '3.0', 'Windows CE', :mobile_browser],
633
+ ['Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPC; MDA Pro/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1)', 'IE Mobile', '4.01', '4.01', 'Trident', '1.0', 'Windows CE', :mobile_browser],
634
+
635
+ # IMode mobile browser
636
+ ['portalmmm/2.0 N410i(c20;TB) ', 'IMode mobile browser', '2.0', '2.0', nil, nil, nil, :mobile_browser],
637
+
638
+ # LG MIDP browsers
639
+ ['LG-LX550 AU-MIC-LX550/2.0 MMP/2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1', 'MIDP Browser', '2.0', '2.0', nil, nil, 'J2ME', :mobile_browser],
640
+ ['LG-GC900/V10a Obigo/WAP2.0 Profile/MIDP-2.1 Configuration/CLDC-1.1', 'MIDP Browser', '2.1', '2.1', nil, nil, 'J2ME', :mobile_browser],
641
+
642
+ # Maemo Browser
643
+ ['Mozilla/5.0 (X11; U; Linux armv7l; ru-RU; rv:1.9.2.3pre) Gecko/20100723 Firefox/3.5 Maemo Browser 1.7.4.8 RX-51 N900', 'Maemo Browser', '1.7.4.8', '1.7', 'Gecko', '1.9.2.3', 'Maemo', :mobile_browser],
644
+
645
+ # Motorola Internet Browser (MIB)
646
+ ['MOT-L7/NA.ACR_RB MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.1', 'Motorola Internet Browser', '2.2.1', '2.2', nil, nil, 'J2ME', :mobile_browser],
647
+ ['MOT-V300/0B.09.19R MIB/2.2 Profile/MIDP-2.0 Configuration/CLDC-1.0', 'Motorola Internet Browser', '2.2', '2.2', nil, nil, 'J2ME', :mobile_browser],
648
+ ['MOT-L7v/08.B7.5DR MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Link/6.3.0.0.0', 'Motorola Internet Browser', '2.2.1', '2.2', nil, nil, 'J2ME', :mobile_browser],
649
+ ['MOT-V9mm/00.62 UP.Browser/6.2.3.4.c.1.123 (GUI) MMP/2.0', 'UP Browser', '6.2.3.4', '6.2', nil, nil, 'J2ME', :mobile_browser],
650
+ ['MOTORIZR-Z8/46.00.00 Mozilla/4.0 (compatible; MSIE 6.0; Symbian OS; 356) Opera 8.65 [it] UP.Link/6.3.0.0.0', 'Opera Mobile', '8.65', '8.65', 'Presto', '2.1', 'Symbian OS', :mobile_browser],
651
+ ['MOT-V177/0.1.75 UP.Browser/6.2.3.9.c.12 (GUI) MMP/2.0 UP.Link/6.3.1.13.0', 'UP Browser', '6.2.3.9', '6.2', nil, nil, 'J2ME', :mobile_browser],
652
+
653
+ # Mini Mozilla (Minimo)
654
+ ['Mozilla/5.0 (X11; U; Linux arm7tdmi; rv:1.8.1.11) Gecko/20071130 Minimo/0.025', 'Minimo', '0.025', '0.025', 'Gecko', '1.8.1.11', 'Linux', :mobile_browser],
655
+ ['Mozilla/5.0 (Windows; Windows; U; Windows NT 5.1; Windows CE 5.2; rv:1.8.1.4pre) Gecko/20070327 Minimo/0.020', 'Minimo', '0.020', '0.020', 'Gecko', '1.8.1.4', 'Windows CE', :mobile_browser],
656
+ ['Mozilla/5.0 (Windows; U; Windows CE 5.2; rv:1.8.1.4pre) Gecko/20070327 Minimo/0.020', 'Minimo', '0.020', '0.020', 'Gecko', '1.8.1.4', 'Windows CE', :mobile_browser],
657
+ ['Mozilla/5.0 (X11; U; OpenBSD macppc; rv:1.8.1) Gecko/20070222 Minimo/0.016', 'Minimo', '0.016', '0.016', 'Gecko', '1.8.1', 'OpenBSD', :mobile_browser],
658
+
659
+ # NetFront
660
+ ['SAMSUNG-C5212/C5212XDIK1 NetFront/3.4 Profile/MIDP-2.0 Configuration/CLDC-1.1', 'NetFront', '3.4', '3.4', nil, nil, nil, :mobile_browser],
661
+ ['MozillaMozilla/4.0 (compatible; Linux 2.6.22) NetFront/3.4 Kindle/2.5 (screen 824x1200;rotate)', 'NetFront', '3.4', '3.4', nil, nil, 'Kindle', :mobile_browser],
662
+ ['Mozilla/4.0 (compatible; Linux 2.6.22) NetFront/3.4 Kindle/2.5 (screen 824x1200;rotate)', 'NetFront', '3.4', '3.4', nil, nil, 'Kindle', :mobile_browser],
663
+ ['SonyEricssonK800c/R8BF Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1', 'NetFront', '3.3', '3.3', nil, nil, nil, :mobile_browser],
664
+ ['Mozilla/4.0 (compatible; Linux 2.6.10) NetFront/3.3 Kindle/1.0 (screen 600x800)', 'NetFront', '3.3', '3.3', nil, nil, 'Kindle', :mobile_browser],
665
+ ['Mozilla/4.0 (PDA; PalmOS/sony/model prmr/Revision:1.1.54 (en)) NetFront/3.0', 'NetFront', '3.0', '3.0', nil, nil, 'PalmOS', :mobile_browser],
666
+
667
+ # Nokia browsers
668
+ ['Nokia3230/2.0 (5.0614.0) SymbianOS/7.0s Series60/2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0', 'Browser for S60', '2.1', '2.1', nil, nil, 'Symbian OS', :mobile_browser],
669
+ ['Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 Nokia6120c/3.70; Profile/MIDP-2.0 Configuration/CLDC-1.1) AppleWebKit/413 (KHTML, like Gecko) Safari/413', 'Browser for S60', '3.1', '3.1', 'WebKit', '413', 'Symbian OS', :mobile_browser],
670
+ ['Nokia6230/2.0 (04.44) Profile/MIDP-2.0 Configuration/CLDC-1.1', 'MIDP Browser', '2.0', '2.0', nil, nil, 'J2ME', :mobile_browser],
671
+ ['Mozilla/4.1 (compatible; MSIE 5.0; Symbian OS; Nokia 6600;452) Opera 6.20 [en-US]', 'Opera Mobile', '6.20', '6.20', nil, nil, 'Symbian OS', :mobile_browser],
672
+ ['Nokia6630/1.0 (2.39.15) SymbianOS/8.0 Series60/2.6 Profile/MIDP-2.0 Configuration/CLDC-1.1', 'Browser for S60', '2.6', '2.6', nil, nil, 'Symbian OS', :mobile_browser],
673
+ ['Mozilla/4.0 (compatible; MSIE 5.0; Series80/2.0 Nokia9500/4.51 Profile/MIDP-2.0 Configuration/CLDC-1.1)', 'Browser for S80', '2.0', '2.0', nil, nil, 'Symbian OS', :mobile_browser],
674
+ ['Mozilla/5.0 (Symbian/3; Series60/5.2 NokiaC6-01/011.010; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 BrowserNG/7.2.7.2 3gpp-gba', 'Browser for S60', '5.2', '5.2', 'WebKit', '525', 'Symbian OS', :mobile_browser],
675
+ ['Mozilla/5.0 (Symbian/3; Series60/5.2 NokiaC7-00/012.003; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 BrowserNG/7.2.7.3 3gpp-gba', 'Browser for S60', '5.2', '5.2', 'WebKit', '525', 'Symbian OS', :mobile_browser],
676
+ ['Mozilla/5.0 (SymbianOS/9.1; U; en-us) AppleWebKit/413 (KHTML, like Gecko) Safari/413 es50', 'Browser for S60', nil, nil, 'WebKit', '413', 'Symbian OS', :mobile_browser],
677
+ ['Mozilla/5.0 (Symbian/3; Series60/5.2 NokiaE6-00/021.002; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.16 Mobile Safari/533.4 3gpp-gba', 'Browser for S60', '5.2', '5.2', 'WebKit', '533.4', 'Symbian OS', :mobile_browser],
678
+ ['Mozilla/5.0 (SymbianOS/9.1; U; en-us) AppleWebKit/413 (KHTML, like Gecko) Safari/413 es65', 'Browser for S60', nil, nil, 'WebKit', '413', 'Symbian OS', :mobile_browser],
679
+ ['Mozilla/5.0 (Symbian/3; Series60/5.2 NokiaE7-00/010.016; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 BrowserNG/7.2.7.3 3gpp-gba', 'Browser for S60', '5.2', '5.2', 'WebKit', '525', 'Symbian OS', :mobile_browser],
680
+ ['Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaE90-1/07.24.0.3; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413 UP.Link/6.2.3.18.0', 'Browser for S60', '3.1', '3.1', 'WebKit', '413', 'Symbian OS', :mobile_browser],
681
+ ['NokiaN70-1/5.0609.2.0.1 Series60/2.8 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Link/6.3.1.13.0', 'Browser for S60', '2.8', '2.8', nil, nil, 'Symbian OS', :mobile_browser],
682
+ ['Mozilla/5.0 (SymbianOS/9.1; U; en-us) AppleWebKit/413 (KHTML, like Gecko) Safari/413', 'Browser for S60', nil, nil, 'WebKit', '413', 'Symbian OS', :mobile_browser],
683
+ ['NokiaN73-1/3.0649.0.0.1 Series60/3.0 Profile/MIDP2.0 Configuration/CLDC-1.1', 'Browser for S60', '3.0', '3.0', nil, nil, 'Symbian OS', :mobile_browser],
684
+ ['Mozilla/5.0 (Symbian/3; Series60/5.2 NokiaN8-00/014.002; Profile/MIDP-2.1 Configuration/CLDC-1.1; en-us) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 BrowserNG/7.2.6.4 3gpp-gba', 'Browser for S60', '5.2', '5.2', 'WebKit', '525', 'Symbian OS', :mobile_browser],
685
+ ['Mozilla/5.0 (SymbianOS/9.1; U; en-us) AppleWebKit/413 (KHTML, like Gecko) Safari/413', 'Browser for S60', nil, nil, 'WebKit', '413', 'Symbian OS', :mobile_browser],
686
+ ['Mozilla/5.0 (SymbianOS/9.1; U; de) AppleWebKit/413 (KHTML, like Gecko) Safari/413', 'Browser for S60', nil, nil, 'WebKit', '413', 'Symbian OS', :mobile_browser],
687
+ ['Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaN95/10.0.018; Profile/MIDP-2.0 Configuration/CLDC-1.1) AppleWebKit/413 (KHTML, like Gecko) Safari/413 UP.Link/6.3.0.0.0', 'Browser for S60', '3.1', '3.1', 'WebKit', '413', 'Symbian OS', :mobile_browser],
688
+ ['Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 NokiaN97-1/10.0.012; Profile/MIDP-2.1 Configuration/CLDC-1.1; en-us) AppleWebKit/525 (KHTML, like Gecko) WicKed/7.1.12344', 'Browser for S60', '5.0', '5.0', 'WebKit', '525', 'Symbian OS', :mobile_browser],
689
+ ['Mozilla/5.0 (Symbian/3; Series60/5.2 NokiaX7-00/021.004; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.21 Mobile Safari/533.4 3gpp-gba', 'Browser for S60', '5.2', '5.2', 'WebKit', '533.4', 'Symbian OS', :mobile_browser],
690
+
691
+ # Opera Mini
692
+ ['Opera/9.80 (J2ME/MIDP; Opera Mini/5.0 (Windows; U; Windows NT 5.1; en) AppleWebKit/886; U; en) Presto/2.4.15', 'Opera Mini', '5.0', '5.0', 'Presto', '2.4.15', 'J2ME', :mobile_browser],
693
+ ['Opera/9.80 (J2ME/MIDP; Opera Mini/9.80 (J2ME/22.478; U; en) Presto/2.5.25 Version/10.54', 'Opera Mini', '9.80', '9.80', 'Presto', '2.5.25', 'J2ME', :mobile_browser],
694
+ ['Opera/9.80 (J2ME/MIDP; Opera Mini/9 (Compatible; MSIE:9.0; iPhone; BlackBerry9700; AppleWebKit/24.746; U; en) Presto/2.5.25 Version/10.54', 'Opera Mini', '10.54', '10.54', 'Presto', '2.5.25', 'BlackBerry', :mobile_browser],
695
+ ['Opera/9.80 (Android;Opera Mini/6.0.24212/24.746 U;en) Presto/2.5.25 Version/10.5454', 'Opera Mini', '6.0.24212', '6.0', 'Presto', '2.5.25', 'Android', :mobile_browser],
696
+ ['Opera/9.80 (Series 60; Opera Mini/6.0.24095/24.741; U; zh) Presto/2.5.25 Version/10.54', 'Opera Mini', '6.0.24095', '6.0', 'Presto', '2.5.25', 'Symbian OS', :mobile_browser],
697
+ ['Opera/9.80 (Android; Opera Mini/5.1.22460/22.414; U; de) Presto/2.5.25 Version/10.54', 'Opera Mini', '5.1.22460', '5.1', 'Presto', '2.5.25', 'Android', :mobile_browser],
698
+ ['Opera/9.80 (BlackBerry; Opera Mini/5.1.22303/22.387; U; en) Presto/2.5.25 Version/10.54', 'Opera Mini', '5.1.22303', '5.1', 'Presto', '2.5.25', 'BlackBerry', :mobile_browser],
699
+ ['Opera/9.80 (J2ME/MIDP; Opera Mini/5.1.22296; BlackBerry9800; U; AppleWebKit/23.370; U; en) Presto/2.5.25 Version/10.54', 'Opera Mini', '5.1.22296', '5.1', 'Presto', '2.5.25', 'BlackBerry', :mobile_browser],
700
+ ['Opera/9.80 (J2ME/MIDP; Opera Mini/5.1.22296/22.87; U; fr) Presto/2.5.25', 'Opera Mini', '5.1.22296', '5.1', 'Presto', '2.5.25', 'J2ME', :mobile_browser],
701
+ ['Opera/9.80 (Windows Mobile; Opera Mini/5.1.21594/22.387; U; ru) Presto/2.5.25 Version/10.54', 'Opera Mini', '5.1.21594', '5.1', 'Presto', '2.5.25', 'Windows Mobile', :mobile_browser],
702
+ ['Opera/9.80 (iPhone; Opera Mini/5.0.019802/22.414; U; de) Presto/2.5.25 Version/10.54', 'Opera Mini', '5.0.019802', '5.0', 'Presto', '2.5.25', 'iOS', :mobile_browser],
703
+ ['Opera/9.80 (J2ME/MIDP; Opera Mini/SymbianOS/22.478; U; en) Presto/2.5.25 Version/10.54', 'Opera Mini', '10.54', '10.54', 'Presto', '2.5.25', 'Symbian OS', :mobile_browser],
704
+ ['Opera/9.80 (J2ME/MIDP; Opera Mini/Nokia2730c-1/22.478; U; en) Presto/2.5.25 Version/10.54', 'Opera Mini', '10.54', '10.54', 'Presto', '2.5.25', 'J2ME', :mobile_browser],
705
+ ['Opera/9.80 (J2ME/MIDP; Opera Mini/Mozilla/23.334; U; en) Presto/2.5.25 Version/10.54', 'Opera Mini', '10.54', '10.54', 'Presto', '2.5.25', 'J2ME', :mobile_browser],
706
+ ['Opera/9.80 (J2ME/MIDP; Opera Mini/(Windows; U; Windows NT 5.1; en-US) AppleWebKit/23.411; U; en) Presto/2.5.25 Version/10.54', 'Opera Mini', '10.54', '10.54', 'Presto', '2.5.25', 'J2ME', :mobile_browser],
707
+ ['Opera/9.60 (J2ME/MIDP; Opera Mini/4.1.11320/608; U; en) Presto/2.2.0', 'Opera Mini', '4.1.11320', '4.1', 'Presto', '2.2.0', 'J2ME', :mobile_browser],
708
+ ['Opera/9.60 (J2ME/MIDP; Opera Mini/4.2.14320/554; U; cs) Presto/2.2.0', 'Opera Mini', '4.2.14320', '4.2', 'Presto', '2.2.0', 'J2ME', :mobile_browser],
709
+ ['Opera/10.61 (J2ME/MIDP; Opera Mini/5.1.21219/19.999; en-US; rv:1.9.3a5) WebKit/534.5 Presto/2.6.30', 'Opera Mini', '5.1.21219', '5.1', 'Presto', '2.6.30', 'J2ME', :mobile_browser],
710
+ ['Opera/9.80 (iPad; Opera Mini/6.1.15738/25.692; U; de) Presto/2.5.25 Version/10.54', 'Opera Mini', '6.1.15738', '6.1', 'Presto', '2.5.25', 'iOS', :mobile_browser],
711
+
712
+ # Opera Mobile
713
+ ['Opera/9.80 (J2ME/MIDP; Opera Mini/9.80 (S60; SymbOS; Opera Mobi/23.348; U; en) Presto/2.5.25 Version/10.54', 'Opera Mobile', '9.80', '9.80', 'Presto', '2.5.25', 'Symbian OS', :mobile_browser],
714
+ ['Opera/9.80 (S60; SymbOS; Opera Mobi/SYB-1103211396; U; es-LA) Presto/2.7.81 Version/11.00', 'Opera Mobile', '11.00', '11.00', 'Presto', '2.7.81', 'Symbian OS', :mobile_browser],
715
+ ['Opera/9.80 (Android; Linux; Opera Mobi/ADR-1012221546; U; pl) Presto/2.7.60 Version/10.5', 'Opera Mobile', '10.5', '10.5', 'Presto', '2.7.60', 'Android', :mobile_browser],
716
+ ['Opera/9.80 (Android 2.2;;; Linux; Opera Mobi/ADR-1012291359; U; en) Presto/2.7.60 Version/10.5', 'Opera Mobile', '10.5', '10.5', 'Presto', '2.7.60', 'Android', :mobile_browser],
717
+ ['Mozilla/4.0 (compatible; Windows Mobile; WCE; Opera Mobi/WMD-50433; U; de) Presto/2.4.13 Version/10.00', 'Opera Mobile', '10.00', '10.00', 'Presto', '2.4.13', 'Windows CE', :mobile_browser],
718
+ ['Opera/9.80 (Windows NT 6.1; Opera Mobi/49; U; en) Presto/2.4.18 Version/10.00', 'Opera Mobile', '10.00', '10.00', 'Presto', '2.4.18', 'Windows', :mobile_browser],
719
+ ['Opera/9.80 (Macintosh; Intel Mac OS X; Opera Mobi/27; U; en) Presto/2.4.18 Version/10.00', 'Opera Mobile', '10.00', '10.00', 'Presto', '2.4.18', 'OS X', :mobile_browser],
720
+ ['Mozilla/5.0 (Linux armv7l; Maemo; Opera Mobi/4; U; fr; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 10.1', 'Opera Mobile', '10.1', '10.1', 'Presto', '2.5.24', 'Maemo', :mobile_browser],
721
+ ['Mozilla/4.0 (compatible; MSIE 8.0; Linux armv6l; Maemo; Opera Mobi/8; en-GB) Opera 11.00', 'Opera Mobile', '11.00', '11.00', 'Presto', '2.7.62', 'Maemo', :mobile_browser],
722
+ ['Mozilla/4.0 (compatible; MSIE 8.0; Android 2.2.2; Linux; Opera Mobi/ADR-1103311355; en) Opera 11.00', 'Opera Mobile', '11.00', '11.00', 'Presto', '2.7.62', 'Android', :mobile_browser],
723
+ ['Mozilla/4.0 (compatible; MSIE 6.0; S60; SymbOS; Opera Mobi/498; en) Opera 10.00', 'Opera Mobile', '10.00', '10.00', 'Presto', '2.4', 'Symbian OS', :mobile_browser],
724
+ ['Opera/9.51 Beta (Microsoft Windows; PPC; Opera Mobi/1718; U; en)', 'Opera Mobile', '9.51', '9.51', 'Presto', '2.1', 'Windows Mobile', :mobile_browser],
725
+ ['Opera/9.80 (S60; SymbOS; Opera Mobi/499; U; ru) Presto/2.4.18 Version/10.00', 'Opera Mobile', '10.00', '10.00', 'Presto', '2.4.18', 'Symbian OS', :mobile_browser],
726
+
727
+ # Polaris
728
+ ['POLARIS/6.01 (BREW 3.1.5; U; en-us; LG; LX265; POLARIS/6.01/WAP) MMP/2.0 profile/MIDP-2.1 Configuration/CLDC-1.1', 'Polaris', '6.01', '6.01', nil, nil, 'Brew', :mobile_browser],
729
+
730
+ # Safari Mobile
731
+ ['Mozilla/5.0 (iPod; U; CPU iPhone OS 4_2_1 like Mac OS X; he-il) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5', 'Mobile Safari', '5.0.2', '5.0', 'WebKit', '533.17.9', 'iOS', :mobile_browser],
732
+ ['Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_1 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8B117', 'Mobile Safari', '4.0.5', '4.0', 'WebKit', '532.9', 'iOS', :mobile_browser],
733
+ ['Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/123', 'Mobile Safari', '4.0.4', '4.0', 'WebKit', '531.21.10', 'iOS', :mobile_browser],
734
+
735
+ # Samsung Browser
736
+ ['SEC-SGHE900/1.0 NetFront/3.2 Profile/MIDP-2.0 Configuration/CLDC-1.1 Opera/8.01 (J2ME/MIDP; Opera Mini/2.0.4509/1378; nl; U; ssr)', 'Opera Mini', '2.0.4509', '2.0', nil, nil, 'J2ME', :mobile_browser],
737
+ ['Mozilla/5.0 (Linux; U; Android 3.0.1; en-us; GT-P7100 Build/HRI83) AppleWebkit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13', 'Mobile Safari', '4.0', '4.0', 'WebKit', '534.13', 'Android', :mobile_browser],
738
+ ['SAMSUNG-S8000/S8000XXIF3 SHP/VPP/R5 Jasmine/1.0 Nextreaming SMM-MMS/1.2.0 profile/MIDP-2.1 configuration/CLDC-1.1 FirePHP/0.3', 'MIDP Browser', '2.1', '2.1', nil, nil, 'J2ME', :mobile_browser],
739
+
740
+ # SEMC Browser
741
+ ['SonyEricssonW700c/R1DB Browser/SEMC-Browser/4.2 Profile/MIDP-2.0 Configuration/CLDC-1.1', 'SonyEricsson Browser', '4.2', '4.2', nil, nil, 'J2ME', :mobile_browser],
742
+ ['SonyEricssonK500c/R2L SEMC-Browser/4.0.1 Profile/MIDP-2.0 Configuration/CLDC-1.1', 'SonyEricsson Browser', '4.0.1', '4.0', nil, nil, 'J2ME', :mobile_browser],
743
+
744
+ ['SonyEricssonT68/R201A', 'SonyEricsson Browser', nil, nil, nil, nil, 'J2ME', :mobile_browser],
745
+ ['SonyEricssonT100/R101', 'SonyEricsson Browser', nil, nil, nil, nil, 'J2ME', :mobile_browser],
746
+ ['SonyEricssonT610/R201 Profile/MIDP-1.0 Configuration/CLDC-1.0', 'SonyEricsson Browser', nil, nil, nil, nil, 'J2ME', :mobile_browser],
747
+ ['SonyEricssonW950i/R100 Mozilla/4.0 (compatible; MSIE 6.0; Symbian OS; 323) Opera 8.60 [en-US]', 'Opera Mobile', '8.60', '8.60', 'Presto', '2.1', 'Symbian OS', :mobile_browser],
748
+ ['SonyEricssonW995/R1EA Profile/MIDP-2.1 Configuration/CLDC-1.1 UNTRUSTED/1.0', 'SonyEricsson Browser', nil, nil, nil, nil, 'J2ME', :mobile_browser],
749
+ ['Opera/9.5 (Microsoft Windows; PPC; Opera Mobi; U) SonyEricssonX1i/R2AA Profile/MIDP-2.0 Configuration/CLDC-1.1', 'Opera Mobile', '9.5', '9.5', 'Presto', '2.1', 'Windows Mobile', :mobile_browser],
750
+ ['SonyEricssonZ800/R1Y Browser/SEMC-Browser/4.1 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Link/6.3.0.0.0', 'SonyEricsson Browser', '4.1', '4.1', nil, nil, 'J2ME', :mobile_browser],
751
+
752
+ # Skyfire (Android)
753
+ ['Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_7; en-us) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Safari/530.17 Skyfire/2.0', 'Skyfire', '2.0', '2.0', 'WebKit', '530.17', 'Android', :mobile_browser],
754
+
755
+ # TeaShark (MIDP)
756
+ ['Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en) AppleWebKit/418.9.1 (KHTML, like Gecko) Safari/419.3 TeaShark/0.8', 'TeaShark', '0.8', '0.8', 'WebKit', '418.9.1', 'J2ME', :mobile_browser],
757
+
758
+ # Teleca-Obigo
759
+ ['Mozilla/5.0 (compatible; Teleca Q7; Brew 3.1.5; U; en) 480X800 LGE VX11000', 'Teleca-Obigo', 'Q7', 'Q7', nil, nil, 'Brew', :mobile_browser],
760
+
761
+ # webOS
762
+ ['Mozilla/5.0 (webOS/1.3; U; en-US) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/1.0 Safari/525.27.1 Desktop/1.0', 'webOS Browser', '1.3', '1.3', 'WebKit', '525.27.1', 'webOS', :mobile_browser],
763
+
764
+ # uZard Web
765
+ ['Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; WOW64; Trident/4.0; uZardWeb/1.0; Server_USA)', 'uZard', '1.0', '1.0', 'Trident', '4.0', nil, :mobile_browser],
766
+ ['Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; WOW64; Trident/4.0; uZard/1.0; Server_KO_SKT)', 'uZard', '1.0', '1.0', 'Trident', '4.0', nil, :mobile_browser],
767
+ ['Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; WOW64; SV1; uZardWeb/1.0; Server_HK)', 'uZard', '1.0', '1.0', 'Trident', '3.0', nil, :mobile_browser],
768
+
769
+
770
+
771
+ ### ToDo: Web Editors
772
+ ### ToDo: Special Clients like iPhoto
773
+ # iTunes/9.0.2 (Windows; N)
774
+ # iTunes/4.2 (Macintosh; U; PPC Mac OS X 10.2)
775
+ # iTunes/9.0.3 (Macintosh; U; Intel Mac OS X 10_6_2; en-ca)
776
+ ### ToDo: Mirror Tools like wget
777
+ ### ToDo: Bots
778
+
779
+
780
+
781
+
782
+ ].each do |agent|
783
+ context "for '#{agent[0]}'" do
784
+ it "should detect agent name as '#{agent[1]}'" do
785
+ subject.request_header = agent[0]
786
+ subject.guess_agent_type
787
+ subject.name.should == agent[1]
788
+ end
789
+
790
+ it "should detect agent version as '#{agent[2]}'" do
791
+ subject.request_header = agent[0]
792
+ subject.guess_agent_type
793
+ subject.full_version.should == agent[2]
794
+ end
795
+
796
+ it "should detect agent major version as '#{agent[3]}'" do
797
+ subject.request_header = agent[0]
798
+ subject.guess_agent_type
799
+ subject.major_version.should == agent[3]
800
+ end
801
+
802
+ it "should detect agent engine name as '#{agent[4]}'" do
803
+ subject.request_header = agent[0]
804
+ subject.guess_agent_type
805
+ subject.engine_name.should == agent[4]
806
+ end
807
+
808
+ it "should detect agent engine version as '#{agent[5]}'" do
809
+ subject.request_header = agent[0]
810
+ subject.guess_agent_type
811
+ subject.engine_version.should == agent[5]
812
+ end
813
+
814
+ it "should detect agent os as '#{agent[6]}'" do
815
+ subject.request_header = agent[0]
816
+ subject.guess_agent_type
817
+ subject.os.should == agent[6]
818
+ end
819
+
820
+ it "should detect agent class as '#{agent[7]}'" do
821
+ subject.request_header = agent[0]
822
+ subject.guess_agent_type
823
+ subject.agent_class.should == agent[7]
824
+ end
825
+ end
826
+
827
+ end
828
+ end
829
+ end