gricer 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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