Shortlinks by Pretty Links – Best WordPress Link Tracking Plugin - Version 1.4.49

Version Description

  • Fixed Keyword Caching Issue for Pro Users
  • Fixed recording duplicate tweet issue for Pro Users
Download this release

Release Info

Developer supercleanse
Plugin Icon 128x128 Shortlinks by Pretty Links – Best WordPress Link Tracking Plugin
Version 1.4.49
Comparing to
See all releases

Version 1.4.49

Files changed (110) hide show
  1. classes/models/PrliClick.php +309 -0
  2. classes/models/PrliGroup.php +124 -0
  3. classes/models/PrliLink.php +412 -0
  4. classes/models/PrliLinkMeta.php +59 -0
  5. classes/models/PrliOptions.php +271 -0
  6. classes/models/PrliUpdate.php +330 -0
  7. classes/models/PrliUrlUtils.php +164 -0
  8. classes/models/PrliUtils.php +1113 -0
  9. classes/models/models.inc.php +61 -0
  10. classes/views/prli-clicks/csv.php +23 -0
  11. classes/views/prli-clicks/csv_download.php +89 -0
  12. classes/views/prli-clicks/head.php +105 -0
  13. classes/views/prli-clicks/list.php +151 -0
  14. classes/views/prli-dashboard-widget/widget.php +23 -0
  15. classes/views/prli-groups/edit.php +58 -0
  16. classes/views/prli-groups/head.php +35 -0
  17. classes/views/prli-groups/list.php +85 -0
  18. classes/views/prli-groups/new.php +59 -0
  19. classes/views/prli-links/bar.php +13 -0
  20. classes/views/prli-links/edit.php +22 -0
  21. classes/views/prli-links/form.php +94 -0
  22. classes/views/prli-links/head.php +91 -0
  23. classes/views/prli-links/list.php +185 -0
  24. classes/views/prli-links/new.php +22 -0
  25. classes/views/prli-links/ultra-cloak.php +12 -0
  26. classes/views/prli-options/form.php +190 -0
  27. classes/views/prli-options/head.php +54 -0
  28. classes/views/prli-options/pro-settings.php +18 -0
  29. classes/views/prli-tools/form.php +20 -0
  30. classes/views/shared/errors.php +19 -0
  31. classes/views/shared/link-table-nav.php +102 -0
  32. classes/views/shared/nav.php +18 -0
  33. classes/views/shared/table-nav.php +93 -0
  34. images/arrow_down.png +0 -0
  35. images/arrow_up.png +0 -0
  36. images/bar_background.png +0 -0
  37. images/bar_map.png +0 -0
  38. images/bookmark.png +0 -0
  39. images/co.mments.gif +0 -0
  40. images/delicious_32.png +0 -0
  41. images/digg_32.png +0 -0
  42. images/email_32.png +0 -0
  43. images/facebook.png +0 -0
  44. images/facebook_32.png +0 -0
  45. images/forward_params.png +0 -0
  46. images/hyves_32.png +0 -0
  47. images/linkedin_32.png +0 -0
  48. images/mixx_32.png +0 -0
  49. images/newsvine_32.png +0 -0
  50. images/nofollow.png +0 -0
  51. images/not_tracking.png +0 -0
  52. images/pixel_track.png +0 -0
  53. images/pretty-link-48x48.png +0 -0
  54. images/pretty-link-add.png +0 -0
  55. images/pretty-link-med.png +0 -0
  56. images/pretty-link-small.png +0 -0
  57. images/prettylink_logo.jpg +0 -0
  58. images/prettylink_logo_med.jpg +0 -0
  59. images/prettylink_logo_small.jpg +0 -0
  60. images/reddit_32.png +0 -0
  61. images/sphinn_32.png +0 -0
  62. images/stumbleupon_32.png +0 -0
  63. images/technorati_32.png +0 -0
  64. images/tracking.png +0 -0
  65. images/twitter.png +0 -0
  66. images/twitter_32.png +0 -0
  67. images/ultra-cloak.png +0 -0
  68. images/url_icon.gif +0 -0
  69. images/whatever.txt +13 -0
  70. images/yahoobuzz_32.png +0 -0
  71. includes/jquery/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  72. includes/jquery/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  73. includes/jquery/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png +0 -0
  74. includes/jquery/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  75. includes/jquery/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  76. includes/jquery/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  77. includes/jquery/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  78. includes/jquery/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  79. includes/jquery/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  80. includes/jquery/css/ui-lightness/images/ui-icons_222222_256x240.png +0 -0
  81. includes/jquery/css/ui-lightness/images/ui-icons_228ef1_256x240.png +0 -0
  82. includes/jquery/css/ui-lightness/images/ui-icons_ef8c08_256x240.png +0 -0
  83. includes/jquery/css/ui-lightness/images/ui-icons_ffd27a_256x240.png +0 -0
  84. includes/jquery/css/ui-lightness/images/ui-icons_ffffff_256x240.png +0 -0
  85. includes/jquery/css/ui-lightness/jquery-ui-1.7.1.custom.css +404 -0
  86. includes/jquery/js/jquery-1.3.2.min.js +19 -0
  87. includes/jquery/js/jquery-ui-1.7.1.custom.min.js +273 -0
  88. includes/php/php_browsecap.ini +17350 -0
  89. includes/version-2-kvasir/README.txt +8 -0
  90. includes/version-2-kvasir/js/README.txt +12 -0
  91. includes/version-2-kvasir/js/json/json2.js +461 -0
  92. includes/version-2-kvasir/js/swfobject.js +5 -0
  93. includes/version-2-kvasir/open-flash-chart.swf +0 -0
  94. pretty-bar.php +243 -0
  95. pretty-link.php +38 -0
  96. prli-add-link.php +9 -0
  97. prli-api.php +233 -0
  98. prli-bookmarklet.php +94 -0
  99. prli-clicks.php +454 -0
  100. prli-config.php +130 -0
  101. prli-dashboard-widget.php +13 -0
  102. prli-groups.php +175 -0
  103. prli-image-lookups.php +136 -0
  104. prli-links.php +236 -0
  105. prli-main.php +362 -0
  106. prli-options.php +157 -0
  107. prli-pro-settings.php +34 -0
  108. prli-tools.php +3 -0
  109. prli-xmlrpc.php +333 -0
  110. readme.txt +300 -0
classes/models/PrliClick.php ADDED
@@ -0,0 +1,309 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class PrliClick
3
+ {
4
+ var $table_name;
5
+
6
+ function PrliClick()
7
+ {
8
+ global $wpdb;
9
+ $this->table_name = "{$wpdb->prefix}prli_clicks";
10
+ }
11
+
12
+ function get_exclude_where_clause( $where = '', $abbr = 'cl')
13
+ {
14
+ global $prli_options;
15
+ $exclude_list = trim($prli_options->prli_exclude_ips);
16
+ $filter_bots = (int)$prli_options->filter_robots;
17
+ $return_stmt = '';
18
+
19
+ if(empty($exclude_list) and $filter_bots == 0)
20
+ return $return_stmt;
21
+
22
+ $return_stmt .= (empty($where)?'':' AND');
23
+
24
+ if(!empty($exclude_list))
25
+ {
26
+ $exclude_ips = explode(',',$exclude_list);
27
+ for($i = 0; $i < count($exclude_ips); $i++)
28
+ {
29
+ $exclude_ip = trim(preg_replace('#\*#','%',$exclude_ips[$i]));
30
+
31
+ if($i > 0)
32
+ $return_stmt .= ' AND';
33
+
34
+ $return_stmt .= " {$abbr}.ip NOT LIKE '{$exclude_ip}'";
35
+ }
36
+ }
37
+
38
+ if($filter_bots != 0)
39
+ {
40
+ $return_stmt .= (empty($exclude_list)?' (':' AND (');
41
+ $whitelist = trim($prli_options->whitelist_ips);
42
+
43
+ if(!empty($whitelist))
44
+ {
45
+ $whitelist_ips = explode(',',$whitelist);
46
+ for($i = 0; $i <= count($whitelist_ips); $i++)
47
+ {
48
+ if($i == count($whitelist_ips))
49
+ {
50
+ $return_stmt .= ' OR';
51
+ break;
52
+ }
53
+
54
+ $whitelist_ip = trim(preg_replace('#\*#','%',$whitelist_ips[$i]));
55
+
56
+ if($i > 0)
57
+ $return_stmt .= ' OR';
58
+
59
+ $return_stmt .= " {$abbr}.ip LIKE '{$whitelist_ip}'";
60
+ }
61
+
62
+ }
63
+
64
+ $return_stmt .= " {$abbr}.robot=0 )";
65
+ }
66
+
67
+ return $return_stmt;
68
+ }
69
+
70
+ function getOne( $id )
71
+ {
72
+ global $wpdb, $prli_link, $prli_utils;
73
+ $query = 'SELECT cl.*, (SELECT count(*) FROM '. $this->table_name .' cl2 WHERE cl2.ip = cl.ip) as ip_count, (SELECT count(*) FROM '. $this->table_name .' cl3 WHERE cl3.vuid = cl.vuid) as vuid_count, li.name as link_name FROM ' . $this->table_name . ' cl, ' . $prli_link->table_name . ' li WHERE li.id = cl.link_id AND id=' . $id . $prli_utils->prepend_and_or_where(' AND',$this->get_exclude_where_clause());
74
+
75
+ return $wpdb->get_row($query);
76
+ }
77
+
78
+ // SELECT cl.*,li.name as link_name FROM wp_prli_clicks cl, wp_prli_links li WHERE li.id = cl.link_id ORDER BY created_at DESC
79
+ function getAll($where = '', $order = '', $include_stats = false, $limit = '')
80
+ {
81
+ global $wpdb, $prli_link, $prli_utils;
82
+ $where .= $this->get_exclude_where_clause( $where );
83
+ $where = $prli_utils->prepend_and_or_where(' AND', $where);
84
+ $limit = (empty($limit)?'':" LIMIT {$limit}");
85
+ if($include_stats)
86
+ $query = 'SELECT cl.*, (SELECT count(*) FROM '. $this->table_name .' cl2 WHERE cl2.ip = cl.ip) as ip_count, (SELECT count(*) FROM '. $this->table_name .' cl3 WHERE cl3.vuid = cl.vuid) as vuid_count, li.name as link_name FROM ' . $this->table_name . ' cl, ' . $prli_link->table_name . ' li WHERE li.id = cl.link_id' . $where . $order . $limit;
87
+ else
88
+ $query = 'SELECT cl.*, li.name as link_name FROM ' . $this->table_name . ' cl, ' . $prli_link->table_name . ' li WHERE li.id = cl.link_id' . $where . $order . $limit;
89
+
90
+ return $wpdb->get_results($query);
91
+ }
92
+
93
+ // Delete all of the clicks from the database.
94
+ function clearAllClicks()
95
+ {
96
+ global $wpdb;
97
+ $query = "TRUNCATE TABLE " . $this->table_name;
98
+ return $wpdb->query($query);
99
+ }
100
+
101
+ /* This will delete all the clicks in the database by their age measured in days. */
102
+ function clear_clicks_by_age_in_days($days)
103
+ {
104
+ global $wpdb;
105
+
106
+ $days_in_seconds = $days * 24 * 60 * 60;
107
+ $oldest_time = time() - $days_in_seconds;
108
+
109
+ $num_records = $this->getRecordCount( " UNIX_TIMESTAMP(created_at) < {$oldest_time}" );
110
+
111
+ if($num_records)
112
+ {
113
+ $query = "DELETE FROM {$this->table_name} WHERE UNIX_TIMESTAMP(created_at) < %d";
114
+ $query = $wpdb->prepare( $query, $oldest_time );
115
+
116
+ $wpdb->query($query);
117
+ }
118
+
119
+ return $num_records;
120
+ }
121
+
122
+ function get_distinct_ip_count($where='')
123
+ {
124
+ global $wpdb, $prli_link, $prli_utils;
125
+ $where .= $this->get_exclude_where_clause( $where );
126
+ $where = $prli_utils->prepend_and_or_where(' WHERE', $where);
127
+ $query = 'SELECT COUNT(DISTINCT ip) FROM ' . $this->table_name . ' cl'. $where;
128
+ return $wpdb->get_var($query);
129
+ }
130
+
131
+ // Pagination Methods
132
+ function getRecordCount($where='')
133
+ {
134
+ global $wpdb, $prli_link, $prli_utils;
135
+ $where .= $this->get_exclude_where_clause( $where );
136
+ $where = $prli_utils->prepend_and_or_where(' WHERE', $where);
137
+ $query = 'SELECT COUNT(*) FROM ' . $this->table_name . ' cl'. $where;
138
+
139
+ return $wpdb->get_var($query);
140
+ }
141
+
142
+ function getPageCount($p_size, $where='')
143
+ {
144
+ return ceil((int)$this->getRecordCount($where) / (int)$p_size);
145
+ }
146
+
147
+ function getPage($current_p,$p_size, $where = '', $order = '',$include_stats=false)
148
+ {
149
+ global $wpdb, $prli_link, $prli_utils;
150
+ $end_index = $current_p * $p_size;
151
+ $start_index = $end_index - $p_size;
152
+ $where .= $this->get_exclude_where_clause( $where );
153
+ $where = $prli_utils->prepend_and_or_where(' AND', $where);
154
+ if($include_stats)
155
+ $query = 'SELECT cl.*, (SELECT count(*) FROM '. $this->table_name .' cl2 WHERE cl2.ip = cl.ip) as ip_count, (SELECT count(*) FROM '. $this->table_name .' cl3 WHERE cl3.vuid = cl.vuid) as vuid_count, li.name as link_name FROM ' . $this->table_name . ' cl, ' . $prli_link->table_name . ' li WHERE li.id = cl.link_id' . $where . $order . ' LIMIT ' . $start_index . ',' . $p_size . ';';
156
+ else
157
+ $query = 'SELECT cl.*, li.name as link_name FROM ' . $this->table_name . ' cl, ' . $prli_link->table_name . ' li WHERE li.id = cl.link_id' . $where . $order . ' LIMIT ' . $start_index . ',' . $p_size . ';';
158
+ $results = $wpdb->get_results($query);
159
+ return $results;
160
+ }
161
+
162
+ function generateUniqueVisitorId($num_chars = 6)
163
+ {
164
+ global $wpdb, $prli_utils;
165
+
166
+ // We're doing a base 36 hash which is why we're always doing everything by 36
167
+ $max_vuid_value = pow(36,$num_chars);
168
+ $min_vuid_value = 37;
169
+ $vuid = base_convert( mt_rand($min_vuid_value,$max_vuid_value), 10, 36 );
170
+
171
+ $query = "SELECT DISTINCT vuid FROM ".$this->table_name;
172
+ $vuids = $wpdb->get_col($query,0);
173
+
174
+ // It is highly unlikely that we'll ever see 2 identical random vuids
175
+ // but just in case, here's some code to prevent collisions
176
+ while( in_array($vuid,$vuids) )
177
+ $vuid = base_convert( mt_rand($min_vuid_value,$max_vuid_value), 10, 36 );
178
+
179
+ return $vuid;
180
+ }
181
+
182
+ function get_counts_by_days($start_timestamp, $end_timestamp, $link_id = "all", $type = "all", $group = '')
183
+ {
184
+ global $wpdb, $prli_link;
185
+
186
+ $query = "SELECT DATE(cl.created_at) as cldate,COUNT(*) as clcount FROM ".$this->table_name." cl WHERE cl.created_at BETWEEN '".date("Y-n-j",$start_timestamp)." 00:00:00' AND '".date("Y-n-j",$end_timestamp)." 23:59:59'".$search_where.$this->get_exclude_where_clause( ' AND' );
187
+
188
+ if($link_id != "all")
189
+ $query .= " AND link_id=$link_id";
190
+
191
+ if(!empty($group))
192
+ $query .= " AND link_id IN (SELECT id FROM " . $prli_link->table_name . " WHERE group_id=$group)";
193
+
194
+ if($type == "unique")
195
+ $query .= " AND first_click=1";
196
+
197
+ $query .= ' GROUP BY DATE(cl.created_at)';
198
+
199
+ $clicks_array = $wpdb->get_results($query);
200
+
201
+ $temp_array = array();
202
+ $counts_array = array();
203
+ $dates_array = array();
204
+
205
+ // Refactor Array for use later on
206
+ foreach($clicks_array as $c)
207
+ $temp_array[$c->cldate] = $c->clcount;
208
+
209
+ // Get the dates array
210
+ for($c = $start_timestamp; $c <= $end_timestamp; $c += 60*60*24)
211
+ $dates_array[] = date("Y-m-d",$c);
212
+
213
+ // Make sure counts array is in order and includes zero click days
214
+ foreach($dates_array as $date_str)
215
+ {
216
+ if(isset($temp_array[$date_str]))
217
+ $counts_array[$date_str] = $temp_array[$date_str];
218
+ else
219
+ $counts_array[$date_str] = 0;
220
+ }
221
+
222
+ return $counts_array;
223
+ }
224
+
225
+
226
+ function setupClickLineGraph($start_timestamp,$end_timestamp, $link_id = "all", $type = "all", $group = '')
227
+ {
228
+ global $wpdb, $prli_utils, $prli_link, $prli_group;
229
+
230
+ $dates_array = $this->get_counts_by_days($start_timestamp,$end_timestamp,$link_id,$type,$group);
231
+
232
+ $top_click_count = $prli_utils->getTopValue(array_values($dates_array));
233
+
234
+ if(!empty($group))
235
+ $link_slug = "group: '" . $wpdb->get_var("SELECT name FROM ".$prli_group->table_name." WHERE id=$group") . "'";
236
+ else if($link_id == "all")
237
+ $link_slug = "all links";
238
+ else
239
+ $link_slug = "'/".$wpdb->get_var("SELECT slug FROM ".$prli_link->table_name." WHERE id=$link_id") . "'";
240
+
241
+ if($type == "all")
242
+ $type_string = "All hits";
243
+ else
244
+ $type_string = "Unique hits";
245
+
246
+ $json_array = array(
247
+ "elements" => array( array(
248
+ "type" => "line",
249
+ "values" => array_values($dates_array),
250
+ "dot-style" => array(
251
+ "type" => "dot",
252
+ "dot-size" => 4,
253
+ "colour" => "#ffc94e",
254
+ "halo-size" => 1,
255
+ "tip" => "#val# Hits<br>#x_label#"
256
+ ),
257
+ "width" => 2
258
+ ) ),
259
+ "title" => array(
260
+ "text" => 'Pretty Link: '.$type_string.' on '.$link_slug. ' between ' . date("Y-n-j",$start_timestamp) . ' and ' . date("Y-n-j",$end_timestamp),
261
+ "style" => "font-size: 16px; font-weight: bold; color: #3030d0; text-align: center; padding-bottom: 5px;"
262
+ ),
263
+ "bg_colour" => "-1",
264
+ "y_axis" => array(
265
+ "min" => 0,
266
+ "max" => $top_click_count,
267
+ "steps" => (int)(($top_click_count>=10)?$top_click_count/10:1),
268
+ "colour" => "#A2ACBA"
269
+ ),
270
+ "x_axis" => array(
271
+ "colour" => "#A2ACBA",
272
+ "grid-colour" => "#ffefa7",
273
+ "offset" => false,
274
+ "steps" => 4,
275
+ "labels" => array(
276
+ "steps" => 2,
277
+ "rotate" => 25,
278
+ "colour" => "#000000",
279
+ "labels" => array_keys($dates_array)
280
+ )
281
+ )
282
+ );
283
+
284
+ return $prli_utils->prli_json_encode($json_array);
285
+ }
286
+
287
+
288
+ // Set defaults and grab get or post of each possible param
289
+ function get_params_array()
290
+ {
291
+ $values = array(
292
+ 'paged' => (isset($_GET['paged'])?$_GET['paged']:(isset($_POST['paged'])?$_POST['paged']:1)),
293
+ 'l' => (isset($_GET['l'])?$_GET['l']:(isset($_POST['l'])?$_POST['l']:'all')),
294
+ 'group' => (isset($_GET['group'])?$_GET['group']:(isset($_POST['group'])?$_POST['group']:'')),
295
+ 'ip' => (isset($_GET['ip'])?$_GET['ip']:(isset($_POST['ip'])?$_POST['ip']:'')),
296
+ 'vuid' => (isset($_GET['vuid'])?$_GET['vuid']:(isset($_POST['vuid'])?$_POST['vuid']:'')),
297
+ 'sdate' => (isset($_GET['sdate'])?$_GET['sdate']:(isset($_POST['sdate'])?$_POST['sdate']:'')),
298
+ 'edate' => (isset($_GET['edate'])?$_GET['edate']:(isset($_POST['edate'])?$_POST['edate']:'')),
299
+ 'type' => (isset($_GET['type'])?$_GET['type']:(isset($_POST['type'])?$_POST['type']:'all')),
300
+ 'search' => (isset($_GET['search'])?$_GET['search']:(isset($_POST['search'])?$_POST['search']:'')),
301
+ 'sort' => (isset($_GET['sort'])?$_GET['sort']:(isset($_POST['sort'])?$_POST['sort']:'')),
302
+ 'sdir' => (isset($_GET['sdir'])?$_GET['sdir']:(isset($_POST['sdir'])?$_POST['sdir']:''))
303
+ );
304
+
305
+ return $values;
306
+ }
307
+
308
+ }
309
+ ?>
classes/models/PrliGroup.php ADDED
@@ -0,0 +1,124 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class PrliGroup
3
+ {
4
+ var $table_name;
5
+
6
+ function PrliGroup()
7
+ {
8
+ global $wpdb;
9
+ $this->table_name = "{$wpdb->prefix}prli_groups";
10
+ }
11
+
12
+ function create( $values )
13
+ {
14
+ global $wpdb, $wp_rewrite;
15
+
16
+ $query = 'INSERT INTO ' . $this->table_name .
17
+ ' (name,description,created_at) VALUES (\'' .
18
+ $values['name'] . '\',\'' .
19
+ $values['description'] . '\',' .
20
+ 'NOW())';
21
+ $query_results = $wpdb->query($query);
22
+ return $wpdb->insert_id;
23
+ }
24
+
25
+ function update( $id, $values )
26
+ {
27
+ global $wpdb, $wp_rewrite;
28
+
29
+ $query = 'UPDATE ' . $this->table_name .
30
+ ' SET name=\'' . $values['name'] . '\', ' .
31
+ ' description=\'' . $values['description'] . '\' ' .
32
+ ' WHERE id='.$id;
33
+ $query_results = $wpdb->query($query);
34
+ return $query_results;
35
+ }
36
+
37
+ function destroy( $id )
38
+ {
39
+ require_once(PRLI_MODELS_PATH.'/models.inc.php');
40
+ global $wpdb, $prli_link, $wp_rewrite;
41
+
42
+ // Disconnect the links from this group
43
+ $query = 'UPDATE ' . $prli_link->table_name .
44
+ ' SET group_id = NULL ' .
45
+ ' WHERE group_id='.$id;
46
+ $query_results = $wpdb->query($query);
47
+
48
+ $destroy = 'DELETE FROM ' . $this->table_name . ' WHERE id=' . $id;
49
+ return $wpdb->query($destroy);
50
+ }
51
+
52
+ function getOne( $id, $include_stats = false )
53
+ {
54
+ global $wpdb, $prli_link, $prli_click;
55
+
56
+ if($include_stats)
57
+ $query = 'SELECT gr.*, (SELECT COUNT(*) FROM ' . $prli_link->table_name . ' li WHERE li.group_id = gr.id) as link_count FROM ' . $this->table_name . ' gr WHERE id=' . $id;
58
+ else
59
+ $query = 'SELECT gr.* FROM ' . $this->table_name . ' gr WHERE id=' . $id;
60
+ return $wpdb->get_row($query);
61
+ }
62
+
63
+ function getAll( $where = '', $order_by = '', $return_type = OBJECT, $include_stats = false )
64
+ {
65
+ global $wpdb, $prli_utils, $prli_link, $prli_click;
66
+
67
+ if($include_stats)
68
+ $query = 'SELECT gr.*, (SELECT COUNT(*) FROM ' . $prli_link->table_name . ' li WHERE li.group_id = gr.id) as link_count FROM ' . $this->table_name . ' gr' . $prli_utils->prepend_and_or_where(' WHERE', $where) . $order_by;
69
+ else
70
+ $query = 'SELECT gr.* FROM ' . $this->table_name . " gr" . $prli_utils->prepend_and_or_where(' WHERE', $where) . $order_by;
71
+ return $wpdb->get_results($query, $return_type);
72
+ }
73
+
74
+ // Pagination Methods
75
+ function getRecordCount($where="")
76
+ {
77
+ global $wpdb, $prli_utils;
78
+ $query = 'SELECT COUNT(*) FROM ' . $this->table_name . $prli_utils->prepend_and_or_where(' WHERE', $where);
79
+ return $wpdb->get_var($query);
80
+ }
81
+
82
+ function getPageCount($p_size, $where="")
83
+ {
84
+ return ceil((int)$this->getRecordCount($where) / (int)$p_size);
85
+ }
86
+
87
+ function getPage($current_p,$p_size, $where = "", $order_by = '')
88
+ {
89
+ global $wpdb, $prli_link, $prli_utils, $prli_click;
90
+ $end_index = $current_p * $p_size;
91
+ $start_index = $end_index - $p_size;
92
+ $query = 'SELECT gr.*, (SELECT COUNT(*) FROM ' . $prli_link->table_name . ' li WHERE li.group_id = gr.id) as link_count FROM ' . $this->table_name . ' gr' . $prli_utils->prepend_and_or_where(' WHERE', $where) . $order_by .' LIMIT ' . $start_index . ',' . $p_size;
93
+ $results = $wpdb->get_results($query);
94
+ return $results;
95
+ }
96
+
97
+ // Set defaults and grab get or post of each possible param
98
+ function get_params_array()
99
+ {
100
+ $values = array(
101
+ 'action' => (isset($_GET['action'])?$_GET['action']:(isset($_POST['action'])?$_POST['action']:'list')),
102
+ 'id' => (isset($_GET['id'])?$_GET['id']:(isset($_POST['id'])?$_POST['id']:'')),
103
+ 'paged' => (isset($_GET['paged'])?$_GET['paged']:(isset($_POST['paged'])?$_POST['paged']:1)),
104
+ 'group' => (isset($_GET['group'])?$_GET['group']:(isset($_POST['group'])?$_POST['group']:'')),
105
+ 'search' => (isset($_GET['search'])?$_GET['search']:(isset($_POST['search'])?$_POST['search']:'')),
106
+ 'sort' => (isset($_GET['sort'])?$_GET['sort']:(isset($_POST['sort'])?$_POST['sort']:'')),
107
+ 'sdir' => (isset($_GET['sdir'])?$_GET['sdir']:(isset($_POST['sdir'])?$_POST['sdir']:''))
108
+ );
109
+
110
+ return $values;
111
+ }
112
+
113
+ function validate( $values )
114
+ {
115
+ global $wpdb, $prli_utils;
116
+
117
+ $errors = array();
118
+ if( empty($values['name']) )
119
+ $errors[] = "Group must have a name.";
120
+
121
+ return $errors;
122
+ }
123
+ }
124
+ ?>
classes/models/PrliLink.php ADDED
@@ -0,0 +1,412 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class PrliLink
3
+ {
4
+ var $table_name;
5
+
6
+ function PrliLink()
7
+ {
8
+ global $wpdb;
9
+ $this->table_name = "{$wpdb->prefix}prli_links";
10
+ }
11
+
12
+ function create( $values )
13
+ {
14
+ global $wpdb, $prli_url_utils;
15
+
16
+ if($values['redirect_type'] == 'pixel')
17
+ $values['name'] = (!empty($values['name'])?$values['name']:$values['slug']);
18
+ else
19
+ $values['name'] = (!empty($values['name'])?$values['name']:$prli_url_utils->get_title($values['url'],$values['slug']));
20
+
21
+ $query_str = "INSERT INTO {$this->table_name} " .
22
+ '(url,'.
23
+ 'slug,'.
24
+ 'name,'.
25
+ 'param_forwarding,'.
26
+ 'param_struct,'.
27
+ 'redirect_type,'.
28
+ 'description,'.
29
+ 'track_me,'.
30
+ 'nofollow,'.
31
+ 'group_id,'.
32
+ 'created_at) ' .
33
+ 'VALUES (%s,%s,%s,%s,%s,%s,%s,%d,%d,%d,NOW())';
34
+
35
+ $query = $wpdb->prepare( $query_str,
36
+ $values['url'],
37
+ $values['slug'],
38
+ $values['name'],
39
+ $values['param_forwarding'],
40
+ $values['param_struct'],
41
+ $values['redirect_type'],
42
+ $values['description'],
43
+ (int)isset($values['track_me']),
44
+ (int)isset($values['nofollow']),
45
+ (isset($values['group_id'])?(int)$values['group_id']:'NULL') );
46
+ $query_results = $wpdb->query($query);
47
+
48
+ if($query_results)
49
+ return $wpdb->insert_id;
50
+ else
51
+ return false;
52
+ }
53
+
54
+ function update( $id, $values )
55
+ {
56
+ global $wpdb, $prli_url_utils;
57
+
58
+ if($values['redirect_type'] == 'pixel')
59
+ $values['name'] = (!empty($values['name'])?$values['name']:$values['slug']);
60
+ else
61
+ $values['name'] = (!empty($values['name'])?$values['name']:$prli_url_utils->get_title($values['url'],$values['slug']));
62
+
63
+ $query_str = "UPDATE {$this->table_name} " .
64
+ 'SET url=%s, ' .
65
+ 'slug=%s, ' .
66
+ 'name=%s, ' .
67
+ 'param_forwarding=%s, ' .
68
+ 'param_struct=%s, ' .
69
+ 'redirect_type=%s, ' .
70
+ 'description=%s, ' .
71
+ 'track_me=%d, ' .
72
+ 'nofollow=%d, ' .
73
+ 'group_id=%d ' .
74
+ ' WHERE id=%d';
75
+
76
+ $query = $wpdb->prepare( $query_str,
77
+ $values['url'],
78
+ $values['slug'],
79
+ $values['name'],
80
+ $values['param_forwarding'],
81
+ $values['param_struct'],
82
+ $values['redirect_type'],
83
+ $values['description'],
84
+ (int)isset($values['track_me']),
85
+ (int)isset($values['nofollow']),
86
+ (isset($values['group_id'])?(int)$values['group_id']:'NULL'),
87
+ $id );
88
+
89
+ $query_results = $wpdb->query($query);
90
+ return $query_results;
91
+ }
92
+
93
+ function update_group( $id, $value, $group_id )
94
+ {
95
+ global $wpdb;
96
+ $query = 'UPDATE ' . $this->table_name .
97
+ ' SET group_id=' . (isset($value)?$group_id:'NULL') .
98
+ ' WHERE id='.$id;
99
+ $query_results = $wpdb->query($query);
100
+ return $query_results;
101
+ }
102
+
103
+ function destroy( $id )
104
+ {
105
+ require_once(PRLI_MODELS_PATH.'/models.inc.php');
106
+ global $wpdb, $prli_click;
107
+
108
+ $reset = 'DELETE FROM ' . $prli_click->table_name . ' WHERE link_id=' . $id;
109
+ $destroy = 'DELETE FROM ' . $this->table_name . ' WHERE id=' . $id;
110
+
111
+ $wpdb->query($reset);
112
+ return $wpdb->query($destroy);
113
+ }
114
+
115
+ function reset( $id )
116
+ {
117
+ require_once(PRLI_MODELS_PATH.'/models.inc.php');
118
+ global $wpdb, $prli_click;
119
+
120
+ $reset = 'DELETE FROM ' . $prli_click->table_name . ' WHERE link_id=' . $id;
121
+ return $wpdb->query($reset);
122
+ }
123
+
124
+ function getOneFromSlug( $slug, $return_type = OBJECT, $include_stats = false )
125
+ {
126
+ global $wpdb, $prli_click;
127
+ if($include_stats)
128
+ $query = 'SELECT li.*, ' .
129
+ '(SELECT COUNT(*) FROM ' . $prli_click->table_name . ' cl ' .
130
+ 'WHERE cl.link_id = li.id' . $prli_click->get_exclude_where_clause( ' AND' ) . ') as clicks, ' .
131
+ '(SELECT COUNT(*) FROM ' . $prli_click->table_name . ' cl ' .
132
+ 'WHERE cl.link_id = li.id ' .
133
+ 'AND cl.first_click <> 0' . $prli_click->get_exclude_where_clause( ' AND' ) . ') as uniques ' .
134
+ "FROM {$this->table_name} li " .
135
+ 'WHERE slug=%s';
136
+ else
137
+ $query = "SELECT * FROM {$this->table_name} WHERE slug=%s";
138
+
139
+ $query = $wpdb->prepare($query, $slug);
140
+ return $wpdb->get_row($query, $return_type);
141
+ }
142
+
143
+ function getOne( $id, $return_type = OBJECT, $include_stats = false )
144
+ {
145
+ global $wpdb, $prli_click;
146
+ if( !isset($id) or empty($id) )
147
+ return false;
148
+
149
+ if($include_stats)
150
+ $query = 'SELECT li.*, ' .
151
+ '(SELECT COUNT(*) FROM ' . $prli_click->table_name . ' cl ' .
152
+ 'WHERE cl.link_id = li.id' . $prli_click->get_exclude_where_clause( ' AND' ) . ') as clicks, ' .
153
+ '(SELECT COUNT(*) FROM ' . $prli_click->table_name . ' cl ' .
154
+ 'WHERE cl.link_id = li.id ' .
155
+ 'AND cl.first_click <> 0' . $prli_click->get_exclude_where_clause( ' AND' ) . ') as uniques ' .
156
+ 'FROM ' . $this->table_name . ' li ' .
157
+ 'WHERE id=%d';
158
+ else
159
+ $query = "SELECT * FROM {$this->table_name} WHERE id=%d";
160
+
161
+ $query = $wpdb->prepare($query, $id);
162
+ return $wpdb->get_row($query, $return_type);
163
+ }
164
+
165
+ function find_first_target_url($target_url)
166
+ {
167
+ global $wpdb;
168
+ $query_str = "SELECT id FROM {$this->table_name} WHERE url=%s LIMIT 1";
169
+ $query = $wpdb->prepare($query_str,$target_url);
170
+ return $wpdb->get_var($query);
171
+ }
172
+
173
+ function &get_or_create_pretty_link_for_target_url( $target_url, $group=0 )
174
+ {
175
+ $pretty_link_id = $this->find_first_target_url( $target_url );
176
+ $pretty_link = $this->getOne($pretty_link_id);
177
+
178
+ if(empty($pretty_link) or !$pretty_link)
179
+ {
180
+ $pl_insert_id = prli_create_pretty_link( $target_url, '', '', '', $group );
181
+ $pretty_link = $this->getOne($pl_insert_id);
182
+ }
183
+ else
184
+ prli_update_pretty_link( $pretty_link->id, '', '', '', '', $group );
185
+
186
+ if( !isset($pretty_link) or
187
+ empty($pretty_link) or
188
+ !$pretty_link )
189
+ return false;
190
+ else
191
+ return $pretty_link;
192
+ }
193
+
194
+ function &is_pretty_link($url, $check_domain=true)
195
+ {
196
+ global $prli_blogurl;
197
+
198
+ if( !$check_domain or preg_match( '#^' . preg_quote( $prli_blogurl ) . '#', $url ) )
199
+ {
200
+ $uri = preg_replace('#' . preg_quote($prli_blogurl) . '#', '', $url);
201
+
202
+ // Resolve WP installs in sub-directories
203
+ preg_match('#^(https?://.*?)(/.*)$#', $prli_blogurl, $subdir);
204
+
205
+ $struct = PrliUtils::get_permalink_pre_slug_regex();
206
+
207
+ $subdir_str = (isset($subdir[2])?$subdir[2]:'');
208
+
209
+ $match_str = '#^'.$subdir_str.'('.$struct.')([^\?]*?)([\?].*?)?$#';
210
+
211
+ if(preg_match($match_str, $uri, $match_val))
212
+ {
213
+ // Match longest slug -- this is the most common
214
+ $params = $match_val[3];
215
+ if( $pretty_link_found =& $this->is_pretty_link_slug( $match_val[2] ) )
216
+ return compact('pretty_link_found','pretty_link_params');
217
+
218
+ // Trim down the matched link
219
+ $matched_link = preg_replace('#/[^/]*?$#','',$match_val[2],1);
220
+
221
+ // cycle through the links (maximum depth 25 folders so we don't get out
222
+ // of control -- that should be enough eh?) and trim the link down each time
223
+ for( $i=0; ($i < 25) and
224
+ $matched_link and
225
+ !empty($matched_link) and
226
+ $matched_link != $match_val[2]; $i++ )
227
+ {
228
+ $new_match_str ="#^{$subdir_str}({$struct})({$matched_link})(.*?)?$#";
229
+
230
+ $params = $match_val[3];
231
+ if( $pretty_link_found =& $this->is_pretty_link_slug( $match_val[2] ) )
232
+ return compact('pretty_link_found','pretty_link_params');
233
+
234
+ // Trim down the matched link and try again
235
+ $matched_link = preg_replace('#/[^/]*$#','',$match_val[2],1);
236
+ }
237
+ }
238
+ }
239
+
240
+ return false;
241
+ }
242
+
243
+ function &is_pretty_link_slug($slug)
244
+ {
245
+ return $this->getOneFromSlug( urldecode($slug) );
246
+ }
247
+
248
+ function get_link_min( $id, $return_type = OBJECT )
249
+ {
250
+ global $wpdb;
251
+ $query_str = "SELECT * FROM {$this->table_name} WHERE id=%d";
252
+ $query = $wpdb->prepare($query_str, $id);
253
+ return $wpdb->get_row($query, $return_type);
254
+ }
255
+
256
+ function getAll($where = '', $order_by = '', $return_type = OBJECT, $include_stats = false)
257
+ {
258
+ global $wpdb, $prli_click, $prli_group, $prli_utils;
259
+
260
+ if($include_stats)
261
+ $query = 'SELECT li.*, ' .
262
+ '(SELECT COUNT(*) FROM ' . $prli_click->table_name . ' cl ' .
263
+ 'WHERE cl.link_id = li.id' . $prli_click->get_exclude_where_clause( ' AND' ) . ') as clicks, ' .
264
+ '(SELECT COUNT(*) FROM ' . $prli_click->table_name . ' cl ' .
265
+ 'WHERE cl.link_id = li.id ' .
266
+ 'AND cl.first_click <> 0' . $prli_click->get_exclude_where_clause( ' AND' ) . ') as uniques, ' .
267
+ 'gr.name as group_name ' .
268
+ 'FROM '. $this->table_name . ' li ' .
269
+ 'LEFT OUTER JOIN ' . $prli_group->table_name . ' gr ON li.group_id=gr.id' .
270
+ $prli_utils->prepend_and_or_where(' WHERE', $where) . $order_by;
271
+ else
272
+ $query = "SELECT li.*, gr.name as group_name FROM {$this->table_name} li " .
273
+ 'LEFT OUTER JOIN ' . $prli_group->table_name . ' gr ON li.group_id=gr.id' .
274
+ $prli_utils->prepend_and_or_where(' WHERE', $where) . $order_by;
275
+
276
+ return $wpdb->get_results($query, $return_type);
277
+ }
278
+
279
+ // Pagination Methods
280
+ function getRecordCount($where="")
281
+ {
282
+ global $wpdb, $prli_utils;
283
+ $query = 'SELECT COUNT(*) FROM ' . $this->table_name . ' li' . $prli_utils->prepend_and_or_where(' WHERE', $where);
284
+ return $wpdb->get_var($query);
285
+ }
286
+
287
+ function getPageCount($p_size, $where="")
288
+ {
289
+ return ceil((int)$this->getRecordCount($where) / (int)$p_size);
290
+ }
291
+
292
+ function getPage($current_p,$p_size, $where = "", $order_by = '', $return_type = OBJECT)
293
+ {
294
+ global $wpdb, $prli_click, $prli_utils, $prli_group;
295
+ $end_index = $current_p * $p_size;
296
+ $start_index = $end_index - $p_size;
297
+ $query = 'SELECT li.*, ' .
298
+ '(SELECT COUNT(*) FROM ' . $prli_click->table_name . ' cl ' .
299
+ 'WHERE cl.link_id = li.id' . $prli_click->get_exclude_where_clause( ' AND' ) . ') as clicks, ' .
300
+ '(SELECT COUNT(*) FROM ' . $prli_click->table_name . ' cl ' .
301
+ 'WHERE cl.link_id = li.id ' .
302
+ 'AND cl.first_click <> 0' . $prli_click->get_exclude_where_clause( ' AND' ) . ') as uniques, ' .
303
+ 'gr.name as group_name ' .
304
+ 'FROM ' . $this->table_name . ' li ' .
305
+ 'LEFT OUTER JOIN ' . $prli_group->table_name . ' gr ON li.group_id=gr.id' .
306
+ $prli_utils->prepend_and_or_where(' WHERE', $where) . $order_by . ' ' .
307
+ 'LIMIT ' . $start_index . ',' . $p_size . ';';
308
+ $results = $wpdb->get_results($query, $return_type);
309
+ return $results;
310
+ }
311
+
312
+ /** I'm generating a slug that is by default 2-3 characters long.
313
+ * This gives us a possibility of 36^3 - 37 = 46,619 possible
314
+ * random slugs. That should be *more* than enough slugs for
315
+ * any website -- if I get any feedback that we need more then
316
+ * I can always make a config option to raise the # of chars.
317
+ */
318
+ function generateValidSlug($num_chars = 3)
319
+ {
320
+ global $wpdb, $prli_utils;
321
+
322
+ // We're doing a base 36 hash which is why we're always doing everything by 36
323
+ $max_slug_value = pow(36,$num_chars);
324
+ $min_slug_value = 37; // we want to have at least 2 characters in the slug
325
+ $slug = base_convert( rand($min_slug_value,$max_slug_value), 10, 36 );
326
+
327
+ $query = "SELECT slug FROM " . $this->table_name; // . " WHERE slug='" . $slug . "'";
328
+ $slugs = $wpdb->get_col($query,0);
329
+
330
+ // It is highly unlikely that we'll ever see 2 identical random slugs
331
+ // but just in case, here's some code to prevent collisions
332
+ while( in_array($slug,$slugs) or !$prli_utils->slugIsAvailable($slug) )
333
+ $slug = base_convert( rand($min_slug_value,$max_slug_value), 10, 36 );
334
+
335
+ return $slug;
336
+ }
337
+
338
+ function get_pretty_link_url($slug)
339
+ {
340
+ global $prli_blogurl;
341
+
342
+ $link = $this->getOneFromSlug($slug);
343
+
344
+ if((isset($link->param_forwarding) and $link->param_forwarding == 'custom') and
345
+ (isset($link->redirect_type) and $link->redirect_type == 'pixel'))
346
+ return "&lt;img src=\"".$prli_blogurl . PrliUtils::get_permalink_pre_slug_uri() . $link->slug . $link->param_struct . "\" width=\"1\" height=\"1\" style=\"display: none\" /&gt;";
347
+ else if((!isset($link->param_forwarding) or $link->param_forwarding != 'custom') and
348
+ (isset($link->redirect_type) and $link->redirect_type == 'pixel'))
349
+ return "&lt;img src=\"".$prli_blogurl . PrliUtils::get_permalink_pre_slug_uri() . $link->slug . "\" width=\"1\" height=\"1\" style=\"display: none\" /&gt;";
350
+ else if((isset($link->param_forwarding) and $link->param_forwarding == 'custom') and
351
+ (!isset($link->redirect_type) or $link->redirect_type != 'pixel'))
352
+ return $prli_blogurl . PrliUtils::get_permalink_pre_slug_uri() . $link->slug . $link->param_struct;
353
+ else
354
+ return $prli_blogurl . PrliUtils::get_permalink_pre_slug_uri() . $link->slug;
355
+ }
356
+
357
+ // Set defaults and grab get or post of each possible param
358
+ function get_params_array()
359
+ {
360
+ $values = array(
361
+ 'action' => (isset($_GET['action'])?$_GET['action']:(isset($_POST['action'])?$_POST['action']:'list')),
362
+ 'regenerate' => (isset($_GET['regenerate'])?$_GET['regenerate']:(isset($_POST['regenerate'])?$_POST['regenerate']:'false')),
363
+ 'id' => (isset($_GET['id'])?$_GET['id']:(isset($_POST['id'])?$_POST['id']:'')),
364
+ 'group_name' => (isset($_GET['group_name'])?$_GET['group_name']:(isset($_POST['group_name'])?$_POST['group_name']:'')),
365
+ 'paged' => (isset($_GET['paged'])?$_GET['paged']:(isset($_POST['paged'])?$_POST['paged']:1)),
366
+ 'group' => (isset($_GET['group'])?$_GET['group']:(isset($_POST['group'])?$_POST['group']:'')),
367
+ 'search' => (isset($_GET['search'])?$_GET['search']:(isset($_POST['search'])?$_POST['search']:'')),
368
+ 'sort' => (isset($_GET['sort'])?$_GET['sort']:(isset($_POST['sort'])?$_POST['sort']:'')),
369
+ 'sdir' => (isset($_GET['sdir'])?$_GET['sdir']:(isset($_POST['sdir'])?$_POST['sdir']:''))
370
+ );
371
+
372
+ return $values;
373
+ }
374
+
375
+ function validate( $values )
376
+ {
377
+ global $wpdb, $prli_utils, $prli_blogurl;
378
+
379
+ $errors = array();
380
+ if( ( $values['url'] == null or $values['url'] == '') and $values['redirect_type'] != 'pixel' )
381
+ $errors[] = "Target URL can't be blank";
382
+
383
+ if( $values['slug'] == null or $values['slug'] == '' )
384
+ $errors[] = "Pretty Link can't be blank";
385
+
386
+ if( $values['url'] == $prli_blogurl.PrliUtils::get_permalink_pre_slug_uri().$values['slug'] )
387
+ $errors[] = "Target URL must be different than the Pretty Link";
388
+
389
+ if( !empty($values['url']) and
390
+ !preg_match('/^http.?:\/\/.*\..*$/', $values['url'] ) and
391
+ !preg_match('!^(http|https)://(localhost|127\.0\.0\.1)(:\d+)?(/[\w- ./?%&=]*)?!', $values['url'] ) )
392
+ $errors[] = "Link URL must be a correctly formatted url";
393
+
394
+ if( preg_match('/^[\?\&\#]+$/', $values['slug'] ) )
395
+ $errors[] = "Pretty Link slugs must not contain question marks, ampersands or number signs.";
396
+
397
+ if( preg_match('#/$#', $values['slug']) )
398
+ $errors[] = "Pretty Link slugs must not end with a slash (\"/\")";
399
+
400
+ if( !$prli_utils->slugIsAvailable($values['slug'],$values['id']) )
401
+ $errors[] = "This Pretty Link Slug is already taken. Check to make sure it isn't being used by another pretty link, post, page, category or tag slug. If none of these are true then check to see that this slug isn't the name of a file in the root folder of your wordpress install.";
402
+
403
+ if( isset($values['param_forwarding']) and $values['param_forwarding'] == 'custom' and empty($values['param_struct']) )
404
+ $errors[] = "If Custom Parameter Forwarding has been selected then you must specify a forwarding format.";
405
+
406
+ if( isset($values['param_forwarding']) and $values['param_forwarding'] == 'custom' and !preg_match('#%.*?%#', $values['param_struct']) )
407
+ $errors[] = "Your parameter forwarding must have at least one parameter specified in the format ex: <code>/%var1%/%var_two%/%varname3% ...</code>";
408
+
409
+ return $errors;
410
+ }
411
+ }
412
+ ?>
classes/models/PrliLinkMeta.php ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class PrliLinkMeta
3
+ {
4
+ var $table_name;
5
+
6
+ function PrliLinkMeta()
7
+ {
8
+ global $wpdb;
9
+ $this->table_name = "{$wpdb->prefix}prli_link_metas";
10
+ }
11
+
12
+ function get_link_meta($link_id,$meta_key,$return_var=false)
13
+ {
14
+ global $wpdb;
15
+ $query_str = "SELECT meta_value FROM {$this->table_name} WHERE meta_key=%s and link_id=%d";
16
+ $query = $wpdb->prepare($query_str,$meta_key,$link_id);
17
+
18
+ if($return_var)
19
+ return $wpdb->get_var("{$query} LIMIT 1");
20
+ else
21
+ return $wpdb->get_col($query, 0);
22
+ }
23
+
24
+ function add_link_meta($link_id, $meta_key, $meta_value)
25
+ {
26
+ global $wpdb;
27
+
28
+ $query_str = "INSERT INTO {$this->table_name} " .
29
+ '(meta_key,meta_value,link_id,created_at) VALUES (%s,%s,%d,NOW())';
30
+ $query = $wpdb->prepare($query_str, $meta_key, $meta_value, $link_id);
31
+ return $wpdb->query($query);
32
+ }
33
+
34
+ function update_link_meta($link_id, $meta_key, $meta_values)
35
+ {
36
+ global $wpdb;
37
+ $this->delete_link_meta($link_id, $meta_key);
38
+
39
+ if(!is_array($meta_values))
40
+ $meta_values = array($meta_values);
41
+
42
+ $status = false;
43
+ foreach($meta_values as $meta_value)
44
+ $status = $this->add_link_meta($link_id, $meta_key, $meta_value);
45
+
46
+ return $status;
47
+ }
48
+
49
+ function delete_link_meta($link_id, $meta_key)
50
+ {
51
+ global $wpdb;
52
+
53
+ $query_str = "DELETE FROM {$this->table_name} " .
54
+ "WHERE meta_key=%s AND link_id=%d";
55
+ $query = $wpdb->prepare($query_str, $meta_key, $link_id);
56
+ return $wpdb->query($query);
57
+ }
58
+ }
59
+ ?>
classes/models/PrliOptions.php ADDED
@@ -0,0 +1,271 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class PrliOptions
3
+ {
4
+ var $prli_exclude_ips;
5
+ var $whitelist_ips;
6
+ var $filter_robots;
7
+ var $prettybar_image_url;
8
+ var $prettybar_background_image_url;
9
+ var $prettybar_color;
10
+ var $prettybar_text_color;
11
+ var $prettybar_link_color;
12
+ var $prettybar_hover_color;
13
+ var $prettybar_visited_color;
14
+ var $prettybar_show_title;
15
+ var $prettybar_show_description;
16
+ var $prettybar_show_share_links;
17
+ var $prettybar_show_target_url_link;
18
+ var $prettybar_title_limit;
19
+ var $prettybar_desc_limit;
20
+ var $prettybar_link_limit;
21
+
22
+ var $link_redirect_type;
23
+ var $link_prefix;
24
+ var $link_track_me;
25
+ var $link_nofollow;
26
+
27
+ var $bookmarklet_auth;
28
+
29
+ function PrliOptions()
30
+ {
31
+ $this->set_default_options();
32
+ }
33
+
34
+ function set_default_options()
35
+ {
36
+ // Must account for the Legacy Options
37
+ $prli_exclude_ips = 'prli_exclude_ips';
38
+ $prettybar_image_url = 'prli_prettybar_image_url';
39
+ $prettybar_background_image_url = 'prli_prettybar_background_image_url';
40
+ $prettybar_color = 'prli_prettybar_color';
41
+ $prettybar_text_color = 'prli_prettybar_text_color';
42
+ $prettybar_link_color = 'prli_prettybar_link_color';
43
+ $prettybar_hover_color = 'prli_prettybar_hover_color';
44
+ $prettybar_visited_color = 'prli_prettybar_visited_color';
45
+ $prettybar_show_title = 'prli_prettybar_show_title';
46
+ $prettybar_show_description = 'prli_prettybar_show_description';
47
+ $prettybar_show_share_links = 'prli_prettybar_show_share_links';
48
+ $prettybar_show_target_url_link = 'prli_prettybar_show_target_url_link';
49
+ $prettybar_title_limit = 'prli_prettybar_title_limit';
50
+ $prettybar_desc_limit = 'prli_prettybar_desc_limit';
51
+ $prettybar_link_limit = 'prli_prettybar_link_limit';
52
+ $link_show_prettybar = 'prli_link_show_prettybar';
53
+ $link_ultra_cloak = 'prli_link_ultra_cloak';
54
+ $link_track_me = 'prli_link_track_me';
55
+ $link_prefix = 'prli_link_prefix';
56
+ $link_track_as_pixel = 'prli_link_track_as_pixel';
57
+ $link_nofollow = 'prli_link_nofollow';
58
+ $link_redirect_type = 'prli_link_redirect_type';
59
+
60
+
61
+ if(!isset($this->prettybar_show_title)) {
62
+ if($var = get_option( $prettybar_show_title )) {
63
+ $this->prettybar_show_title = $var;
64
+ delete_option( $prettybar_show_title );
65
+ }
66
+ else
67
+ $this->prettybar_show_title = '1';
68
+ }
69
+
70
+ if(!isset($this->prettybar_show_description)) {
71
+ if($var = get_option( $prettybar_show_description )) {
72
+ $this->prettybar_show_description = $var;
73
+ delete_option( $prettybar_show_description );
74
+ }
75
+ else
76
+ $this->prettybar_show_description = '1';
77
+ }
78
+
79
+ if(!isset($this->prettybar_show_share_links)) {
80
+ if($var = get_option( $prettybar_show_share_links )) {
81
+ $this->prettybar_show_share_links = $var;
82
+ delete_option( $prettybar_show_share_links );
83
+ }
84
+ else
85
+ $this->prettybar_show_share_links = '1';
86
+ }
87
+
88
+ if(!isset($this->prettybar_show_target_url_link)) {
89
+ if($var = get_option( $prettybar_show_target_url_link )) {
90
+ $this->prettybar_show_target_url_link = $var;
91
+ delete_option( $prettybar_show_target_url_link );
92
+ }
93
+ else
94
+ $this->prettybar_show_target_url_link = '1';
95
+ }
96
+
97
+ if(!isset($this->link_track_me)) {
98
+ if($var = get_option( $link_track_me )) {
99
+ $this->link_track_me = $var;
100
+ delete_option( $link_track_me );
101
+ }
102
+ else
103
+ $this->link_track_me = '1';
104
+ }
105
+
106
+ if(!isset($this->link_prefix))
107
+ $this->link_prefix = 0;
108
+
109
+ if(!isset($this->link_nofollow)) {
110
+ if($var = get_option( $link_nofollow )) {
111
+ $this->link_nofollow = $var;
112
+ delete_option( $link_nofollow );
113
+ }
114
+ else
115
+ $this->link_nofollow = '0';
116
+ }
117
+
118
+ if(!isset($this->link_redirect_type)) {
119
+ if($var = get_option( $link_track_as_pixel )) {
120
+ $this->link_redirect_type = 'pixel';
121
+ delete_option( $link_show_prettybar );
122
+ delete_option( $link_ultra_cloak );
123
+ delete_option( $link_track_as_pixel );
124
+ delete_option( $link_redirect_type );
125
+ }
126
+ if($var = get_option( $link_show_prettybar )) {
127
+ $this->link_redirect_type = 'prettybar';
128
+ delete_option( $link_show_prettybar );
129
+ delete_option( $link_ultra_cloak );
130
+ delete_option( $link_track_as_pixel );
131
+ delete_option( $link_redirect_type );
132
+ }
133
+ if($var = get_option( $link_ultra_cloak )) {
134
+ $this->link_redirect_type = 'cloak';
135
+ delete_option( $link_show_prettybar );
136
+ delete_option( $link_ultra_cloak );
137
+ delete_option( $link_track_as_pixel );
138
+ delete_option( $link_redirect_type );
139
+ }
140
+ if($var = get_option( $link_redirect_type )) {
141
+ $this->link_redirect_type = $var;
142
+ delete_option( $link_show_prettybar );
143
+ delete_option( $link_ultra_cloak );
144
+ delete_option( $link_track_as_pixel );
145
+ delete_option( $link_redirect_type );
146
+ }
147
+ else
148
+ $this->link_redirect_type = '307';
149
+ }
150
+
151
+ if(!isset($this->prli_exclude_ips))
152
+ {
153
+ if($var = get_option( $prli_exclude_ips )) {
154
+ $this->prli_exclude_ips = $var;
155
+ delete_option( $prli_exclude_ips );
156
+ }
157
+ else
158
+ $this->prli_exclude_ips = '';
159
+ }
160
+
161
+ if(!isset($this->prettybar_image_url))
162
+ {
163
+ if($var = get_option( $prettybar_image_url )) {
164
+ $this->prettybar_image_url = $var;
165
+ delete_option( $prettybar_image_url );
166
+ }
167
+ else
168
+ $this->prettybar_image_url = PRLI_URL . '/images/pretty-link-48x48.png';
169
+ }
170
+
171
+ if(!isset($this->prettybar_background_image_url))
172
+ {
173
+ if($var = get_option( $prettybar_background_image_url )) {
174
+ $this->prettybar_background_image_url = $var;
175
+ delete_option( $prettybar_background_image_url );
176
+ }
177
+ else
178
+ $this->prettybar_background_image_url = PRLI_URL . '/images/bar_background.png';
179
+ }
180
+
181
+ if(!isset($this->prettybar_color))
182
+ {
183
+ if($var = get_option( $prettybar_color )) {
184
+ $this->prettybar_color = $var;
185
+ delete_option( $prettybar_color );
186
+ }
187
+ else
188
+ $this->prettybar_color = '';
189
+ }
190
+
191
+ if(!isset($this->prettybar_text_color))
192
+ {
193
+ if($var = get_option( $prettybar_text_color )) {
194
+ $this->prettybar_text_color = $var;
195
+ delete_option( $prettybar_text_color );
196
+ }
197
+ else
198
+ $this->prettybar_text_color = '000000';
199
+ }
200
+
201
+ if(!isset($this->prettybar_link_color))
202
+ {
203
+ if($var = get_option( $prettybar_link_color )) {
204
+ $this->prettybar_link_color = $var;
205
+ delete_option( $prettybar_link_color );
206
+ }
207
+ else
208
+ $this->prettybar_link_color = '0000ee';
209
+ }
210
+
211
+ if(!isset($this->prettybar_hover_color))
212
+ {
213
+ if($var = get_option( $prettybar_hover_color )) {
214
+ $this->prettybar_hover_color = $var;
215
+ delete_option( $prettybar_hover_color );
216
+ }
217
+ else
218
+ $this->prettybar_hover_color = 'ababab';
219
+ }
220
+
221
+ if(!isset($this->prettybar_visited_color))
222
+ {
223
+ if($var = get_option( $prettybar_visited_color )) {
224
+ $this->prettybar_visited_color = $var;
225
+ delete_option( $prettybar_visited_color );
226
+ }
227
+ else
228
+ $this->prettybar_visited_color = '551a8b';
229
+ }
230
+
231
+ if(!isset($this->prettybar_title_limit))
232
+ {
233
+ if($var = get_option( $prettybar_title_limit )) {
234
+ $this->prettybar_title_limit = $var;
235
+ delete_option( $prettybar_title_limit );
236
+ }
237
+ else
238
+ $this->prettybar_title_limit = '25';
239
+ }
240
+
241
+ if(!isset($this->prettybar_desc_limit))
242
+ {
243
+ if($var = get_option( $prettybar_desc_limit )) {
244
+ $this->prettybar_desc_limit = $var;
245
+ delete_option( $prettybar_desc_limit );
246
+ }
247
+ else
248
+ $this->prettybar_desc_limit = '30';
249
+ }
250
+
251
+ if(!isset($this->prettybar_link_limit))
252
+ {
253
+ if($var = get_option( $prettybar_link_limit )) {
254
+ $this->prettybar_link_limit = $var;
255
+ delete_option( $prettybar_link_limit );
256
+ }
257
+ else
258
+ $this->prettybar_link_limit = '30';
259
+ }
260
+
261
+ if(!isset($this->bookmarklet_auth))
262
+ $this->bookmarklet_auth = md5(get_option('auth_salt') . time());
263
+
264
+ if(!isset($this->whitelist_ips))
265
+ $this->whitelist_ips = '';
266
+
267
+ if(!isset($this->filter_robots))
268
+ $this->filter_robots = 0;
269
+ }
270
+ }
271
+ ?>
classes/models/PrliUpdate.php ADDED
@@ -0,0 +1,330 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /** Okay, this class is not a pure model -- it contains all the functions
4
+ * necessary to successfully provide an update mechanism for PrettyLinkPro!
5
+ */
6
+ class PrliUpdate
7
+ {
8
+ var $plugin_name;
9
+ var $plugin_slug;
10
+ var $plugin_url;
11
+ var $pro_script;
12
+ var $pro_mothership;
13
+
14
+ var $pro_cred_store;
15
+ var $pro_auth_store;
16
+
17
+ var $pro_username_label;
18
+ var $pro_password_label;
19
+
20
+ var $pro_username_str;
21
+ var $pro_password_str;
22
+
23
+ var $pro_error_message_str;
24
+
25
+ var $pro_check_interval;
26
+ var $pro_last_checked_store;
27
+
28
+ var $pro_username;
29
+ var $pro_password;
30
+ var $pro_mothership_xmlrpc_url;
31
+
32
+ var $wordpress_version;
33
+
34
+ function PrliUpdate()
35
+ {
36
+ // Where all the vitals are defined for this plugin
37
+ $this->plugin_name = 'pretty-link/pretty-link.php';
38
+ $this->plugin_slug = 'pretty-link';
39
+ $this->plugin_url = 'http://blairwilliams.com/pl';
40
+ $this->pro_script = PRLI_PATH . '/pro/pretty-link-pro.php';
41
+ $this->pro_mothership = 'http://prettylinkpro.com';
42
+ $this->pro_cred_store = 'prlipro-credentials';
43
+ $this->pro_auth_store = 'prlipro_activated';
44
+ $this->pro_last_checked_store = 'prlipro_last_checked_update';
45
+ $this->pro_username_label = __('Pretty Link Pro Username');
46
+ $this->pro_password_label = __('Pretty Link Pro Password');
47
+ $this->pro_error_message_str = __('Your Pretty Link Pro Username or Password was Invalid');
48
+
49
+ // Don't modify these variables
50
+ $this->pro_check_interval = 60*15; // Checking every 15 minutes
51
+ $this->pro_username_str = 'proplug-username';
52
+ $this->pro_password_str = 'proplug-password';
53
+ $this->pro_mothership_xmlrpc_url = $this->pro_mothership . '/xmlrpc.php';
54
+
55
+ // Get the numerical version of wordpress
56
+ $this->wordpress_version = (float)preg_replace( "#^([\d\.]*).*$#", '$1', get_bloginfo('version') );
57
+
58
+ // Retrieve Pro Credentials
59
+ $creds = get_option($this->pro_cred_store);
60
+ if($creds and is_array($creds))
61
+ {
62
+ extract($creds);
63
+ $this->pro_username = ((isset($username) and !empty($username))?$username:'');
64
+ $this->pro_password = ((isset($password) and !empty($password))?$password:'');
65
+
66
+ // Plugin Update Actions -- gotta make sure the right url is used with pro ... don't want any downgrades of course
67
+ add_action('update_option_update_plugins', array($this, 'check_for_update_now')); // for WordPress 2.7
68
+ add_action('update_option__transient_update_plugins', array($this, 'check_for_update_now')); // for WordPress 2.8
69
+ add_action("admin_init", array($this, 'periodically_check_for_update'));
70
+ }
71
+ }
72
+
73
+ function pro_is_installed()
74
+ {
75
+ return file_exists($this->pro_script);
76
+ }
77
+
78
+ function pro_is_authorized($force_check=false)
79
+ {
80
+ if( !empty($this->pro_username) and
81
+ !empty($this->pro_password) )
82
+ {
83
+ $authorized = get_option($this->pro_auth_store);
84
+ if(!$force_check and isset($authorized))
85
+ return $authorized;
86
+ else
87
+ {
88
+ $new_auth = $this->authorize_user($this->pro_username,$this->pro_password);
89
+ update_option($this->pro_auth_store, $new_auth);
90
+ return $new_auth;
91
+ }
92
+ }
93
+
94
+ return false;
95
+ }
96
+
97
+ function pro_is_installed_and_authorized()
98
+ {
99
+ return ($this->pro_is_installed() and $this->pro_is_authorized());
100
+ }
101
+
102
+ function authorize_user($username, $password)
103
+ {
104
+ include_once( ABSPATH . 'wp-includes/class-IXR.php' );
105
+
106
+ $client = new IXR_Client( $this->pro_mothership_xmlrpc_url );
107
+
108
+ if ( !$client->query( 'proplug.is_user_authorized', $username, $password ) )
109
+ return false;
110
+
111
+ return $client->getResponse();
112
+ }
113
+
114
+ function user_allowed_to_download()
115
+ {
116
+ include_once( ABSPATH . 'wp-includes/class-IXR.php' );
117
+
118
+ $client = new IXR_Client( $this->pro_mothership_xmlrpc_url );
119
+
120
+ if ( !$client->query( 'proplug.is_user_allowed_to_download', $this->pro_username, $this->pro_password, get_option('home') ) )
121
+ return false;
122
+
123
+ return $client->getResponse();
124
+ }
125
+
126
+ function pro_cred_form()
127
+ {
128
+ if(isset($_POST) and
129
+ isset($_POST['process_cred_form']) and
130
+ $_POST['process_cred_form'] == 'Y')
131
+ {
132
+ if($this->process_pro_cred_form())
133
+ {
134
+ if(!$this->pro_is_installed())
135
+ {
136
+ $inst_install_url = wp_nonce_url('update.php?action=upgrade-plugin&plugin=' . $this->plugin_name, 'upgrade-plugin_' . $this->plugin_name);
137
+
138
+ ?>
139
+ <div id="message" class="updated fade">
140
+ <strong><?php printf(__('Your Username & Password was accepted<br/>Now you can %1$sUpgrade Automatically!%2$s'), "<a href=\"{$inst_install_url}\">","</a>"); ?></strong>
141
+ </div>
142
+ <?php
143
+ }
144
+ }
145
+ else
146
+ {
147
+ ?>
148
+ <div class="error">
149
+ <ul>
150
+ <li><strong><?php _e('ERROR', 'pretty-link'); ?></strong>: <?php echo $this->pro_error_message_str; ?></li>
151
+ </ul>
152
+ </div>
153
+ <?php
154
+ }
155
+ }
156
+
157
+ $this->display_pro_cred_form();
158
+ }
159
+
160
+ function display_pro_cred_form()
161
+ {
162
+ // Yah, this is the view for the credentials form -- this class isn't a true model
163
+ extract($this->get_pro_cred_form_vals());
164
+ ?>
165
+ <form name="cred_form" method="post" action="">
166
+ <input type="hidden" name="process_cred_form" value="Y">
167
+ <?php wp_nonce_field('cred_form'); ?>
168
+
169
+ <table class="form-table">
170
+ <tr class="form-field">
171
+ <td valign="top" width="15%"><?php echo $this->pro_username_label; ?>:</td>
172
+ <td width="85%">
173
+ <input type="text" name="<?php echo $this->pro_username_str; ?>" value="<?php echo $username; ?>"/>
174
+ </td>
175
+ </tr>
176
+ <tr class="form-field">
177
+ <td valign="top" width="15%"><?php echo $this->pro_password_label; ?>:</td>
178
+ <td width="85%">
179
+ <input type="password" name="<?php echo $this->pro_password_str; ?>" value="<?php echo $password; ?>"/>
180
+ </td>
181
+ </tr>
182
+ </table>
183
+ <p class="submit">
184
+ <input type="submit" name="Submit" value="<?php _e('Save'); ?>" />
185
+ </p>
186
+ </form>
187
+ <?php
188
+ }
189
+
190
+ function process_pro_cred_form()
191
+ {
192
+ $creds = $this->get_pro_cred_form_vals();
193
+ $user_authorized = $this->authorize_user($creds['username'], $creds['password']);
194
+
195
+ if(!empty($user_authorized) and $user_authorized)
196
+ {
197
+ update_option($this->pro_cred_store, $creds);
198
+ update_option($this->pro_auth_store, $user_authorized);
199
+
200
+ extract($creds);
201
+ $this->pro_username = ((isset($username) and !empty($username))?$username:'');
202
+ $this->pro_password = ((isset($password) and !empty($password))?$password:'');
203
+
204
+ if(!$this->pro_is_installed())
205
+ $this->queue_update(true);
206
+ }
207
+
208
+ return $user_authorized;
209
+ }
210
+
211
+ function get_pro_cred_form_vals()
212
+ {
213
+ $username = ((isset($_POST[$this->pro_username_str]))?$_POST[$this->pro_username_str]:$this->pro_username);
214
+ $password = ((isset($_POST[$this->pro_password_str]))?$_POST[$this->pro_password_str]:$this->pro_password);
215
+
216
+ return compact('username','password');
217
+ }
218
+
219
+ function get_download_url($version)
220
+ {
221
+ include_once( ABSPATH . 'wp-includes/class-IXR.php' );
222
+
223
+ $client = new IXR_Client( $this->pro_mothership_xmlrpc_url );
224
+
225
+ if( !$client->query( 'proplug.get_encoded_download_url', $this->pro_username, $this->pro_password, $version ) )
226
+ return false;
227
+
228
+ return base64_decode($client->getResponse());
229
+ }
230
+
231
+ function get_current_version()
232
+ {
233
+ include_once( ABSPATH . 'wp-includes/class-IXR.php' );
234
+
235
+ $client = new IXR_Client( $this->pro_mothership_xmlrpc_url );
236
+
237
+ if( !$client->query( 'proplug.get_current_version' ) )
238
+ return false;
239
+
240
+ return $client->getResponse();
241
+ }
242
+
243
+ function queue_update($force=false)
244
+ {
245
+ static $already_set_option, $already_set_transient, $already_set_site_transient;
246
+
247
+ if(!is_admin())
248
+ return;
249
+
250
+ // Make sure this method doesn't check back with the mothership too often
251
+ if($already_set_option or $already_set_transient or $already_set_site_transient)
252
+ return;
253
+
254
+ if($this->pro_is_authorized())
255
+ {
256
+ // If pro is authorized but not installed then we need to force an upgrade
257
+ if(!$this->pro_is_installed())
258
+ $force=true;
259
+
260
+ if($this->wordpress_version >= 3.0)
261
+ $plugin_updates = get_site_transient("update_plugins");
262
+ else
263
+ {
264
+ if(function_exists('get_transient'))
265
+ $plugin_updates = get_transient("update_plugins");
266
+ else
267
+ $plugin_updates = get_option("update_plugins");
268
+ }
269
+
270
+ $curr_version = $this->get_current_version();
271
+ $installed_version = $plugin_updates->checked[$this->plugin_name];
272
+
273
+ if( $force or ( $curr_version != $installed_version ) )
274
+ {
275
+ $download_url = $this->get_download_url($curr_version);
276
+
277
+ if(!empty($download_url) and $download_url and $this->user_allowed_to_download())
278
+ {
279
+ if(isset($plugin_updates->response[$this->plugin_name]))
280
+ unset($plugin_updates->response[$this->plugin_name]);
281
+
282
+ $plugin_updates->response[$this->plugin_name] = new stdClass();
283
+ $plugin_updates->response[$this->plugin_name]->id = '0';
284
+ $plugin_updates->response[$this->plugin_name]->slug = $this->plugin_slug;
285
+ $plugin_updates->response[$this->plugin_name]->new_version = $curr_version;
286
+ $plugin_updates->response[$this->plugin_name]->url = $this->plugin_url;
287
+ $plugin_updates->response[$this->plugin_name]->package = $download_url;
288
+ }
289
+ }
290
+ else
291
+ {
292
+ if(isset($plugin_updates->response[$this->plugin_name]))
293
+ unset($plugin_updates->response[$this->plugin_name]);
294
+ }
295
+
296
+ if( ( $this->wordpress_version >= 3.0 ) and !$already_set_site_transient )
297
+ {
298
+ $already_set_site_transient = true;
299
+ set_site_transient("update_plugins", $plugin_updates); // for WordPress 3.0
300
+ }
301
+ else if( function_exists('set_transient') and !$already_set_transient )
302
+ {
303
+ $already_set_transient = true;
304
+ set_transient("update_plugins", $plugin_updates); // for WordPress 2.8+
305
+ }
306
+ else if( !$already_set_option )
307
+ {
308
+ $already_set_option = true;
309
+ update_option("update_plugins", $plugin_updates); // for WordPress 2.7+
310
+ }
311
+ }
312
+ }
313
+
314
+ function check_for_update_now()
315
+ {
316
+ $this->queue_update();
317
+ }
318
+
319
+ function periodically_check_for_update()
320
+ {
321
+ $last_checked = get_option($this->pro_last_checked_store);
322
+
323
+ if(!$last_checked or ((time() - $last_checked) >= $this->pro_check_interval))
324
+ {
325
+ $this->queue_update();
326
+ update_option($this->pro_last_checked_store, time());
327
+ }
328
+ }
329
+ }
330
+ ?>
classes/models/PrliUrlUtils.php ADDED
@@ -0,0 +1,164 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class PrliUrlUtils {
3
+
4
+ function get_title($url, $slug='')
5
+ {
6
+ $title = '';
7
+
8
+ $data = PrliUrlUtils::curl_read_remote_file($url);
9
+
10
+ // Look for <title>(.*?)</title> in the text
11
+ if($data and preg_match('#<title>[\s\n\r]*?(.*?)[\s\n\r]*?</title>#im', $data, $matches))
12
+ $title = trim($matches[1]);
13
+
14
+ if(empty($title) or !$title)
15
+ return $slug;
16
+
17
+ return $title;
18
+ }
19
+
20
+ function valid_url($url)
21
+ {
22
+ $data = PrliUrlUtils::curl_read_remote_header($url);
23
+
24
+ if(!empty($data) and $data)
25
+ {
26
+ preg_match("/HTTP\/1\.[1|0]\s(\d{3})/",$data,$matches);
27
+ return ($matches[1] == '200');
28
+ }
29
+
30
+ // Let's just assume its valid if we can't test it
31
+ return true;
32
+ }
33
+
34
+ function curl_read_remote_header($url)
35
+ {
36
+ if(function_exists('curl_init'))
37
+ {
38
+ $ch = curl_init();
39
+
40
+ curl_setopt($ch, CURLOPT_URL, $url);
41
+ curl_setopt($ch, CURLOPT_HEADER, true);
42
+ curl_setopt($ch, CURLOPT_NOBODY, true);
43
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
44
+ curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
45
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
46
+
47
+ $data = curl_exec($ch);
48
+
49
+ curl_close($ch);
50
+
51
+ return $data;
52
+ }
53
+
54
+ return false;
55
+ }
56
+
57
+ function curl_read_remote_file($url)
58
+ {
59
+ if(function_exists('curl_init'))
60
+ {
61
+ $ch = curl_init();
62
+
63
+ curl_setopt($ch, CURLOPT_URL, $url);
64
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
65
+ curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
66
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
67
+
68
+ $data = curl_exec($ch);
69
+
70
+ curl_close($ch);
71
+
72
+ return $data;
73
+ }
74
+
75
+ return false;
76
+ }
77
+
78
+ /**
79
+ * Sends http request ensuring the request will fail before $timeout seconds
80
+ * gotta use a socket connection because some hosting setups don't allow fopen.
81
+ * Supports SSL sites as well as 301, 302 & 307 redirects
82
+ * Returns the response content (no header, trimmed)
83
+ * @param string $url
84
+ * @param string $num_chunks Set to 0 if you want to read the full file
85
+ * @param string $chunk_size In bytes
86
+ * @param int $timeout
87
+ * @return string|false false if request failed
88
+ */
89
+ function read_remote_file($url, $num_chunks=0, $headers='', $params='', $chunk_size=1024, $timeout=30 )
90
+ {
91
+ $purl = @parse_url($url);
92
+
93
+ $sock_host = $purl['host'];
94
+ $sock_port = ($purl['port']?(int)$purl['port']:80);
95
+ $sock_scheme = $purl['scheme'];
96
+
97
+ $req_host = $purl['host'];
98
+ $req_path = $purl['path'];
99
+
100
+ if(empty($req_path))
101
+ $req_path = "/";
102
+
103
+ if($sock_scheme == 'https')
104
+ {
105
+ $sock_port = 443;
106
+ $sock_host = "ssl://{$sock_host}";
107
+ }
108
+
109
+ $fp = fsockopen($sock_host, $sock_port, $errno, $errstr, $timeout);
110
+ $contents = '';
111
+ $header = '';
112
+
113
+ if (!$fp)
114
+ return false;
115
+ else
116
+ {
117
+ // Send get request
118
+ $request = "GET {$req_path}{$params} HTTP/1.1\r\n";
119
+ $request .= "Host: {$req_host}\r\n";
120
+ $request .= $headers;
121
+ $request .= "Connection: Close\r\n\r\n";
122
+ fwrite($fp, $request);
123
+
124
+ // Read response
125
+ $head_end_found = false;
126
+ $buffer = '';
127
+ for($i = 0; !feof($fp); $i++)
128
+ {
129
+ if($num_chunks > 0 and $i >= $num_chunks)
130
+ break;
131
+
132
+ $out = fread($fp,$chunk_size);
133
+ if($head_end_found)
134
+ $contents .= $out;
135
+ else
136
+ {
137
+ $buffer .= $out;
138
+ $head_end = strpos($buffer, "\r\n\r\n");
139
+ if($head_end !== false)
140
+ {
141
+ $head_end_found = true;
142
+ $contents .= substr($buffer, ($head_end + 4));
143
+ $header .= substr($buffer, 0, $head_end);
144
+ // Follow HTTP redirects
145
+ if(preg_match("#http/1\.1 (301|302|307)#i",$header))
146
+ {
147
+ preg_match("#^Location:(.*?)$#im",$header,$matches);
148
+ return PrliUrlUtils::read_remote_file(trim($matches[1]));
149
+ }
150
+ else if(preg_match("#http/1\.1 (400|401|402|403|404|405|406|407|408|409|410|411|412|413|414|415|416|417|500|501|502|503|504|505)#i",$header))
151
+ return false; // The file wasn't found
152
+ }
153
+ }
154
+ }
155
+ fclose($fp);
156
+ }
157
+
158
+ if(empty($contents))
159
+ return false;
160
+ else
161
+ return trim($contents);
162
+ }
163
+ }
164
+ ?>
classes/models/PrliUtils.php ADDED
@@ -0,0 +1,1113 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ require_once('models.inc.php');
3
+
4
+ class PrliUtils
5
+ {
6
+ /** Okay I realize that Percentagize isn't really a word but
7
+ * this is so that the values we have will work with google
8
+ * charts.
9
+ */
10
+ function percentagizeArray($data,$max_value)
11
+ {
12
+ $new_data = array();
13
+ foreach($data as $point)
14
+ {
15
+ if( $max_value > 0 )
16
+ {
17
+ $new_data[] = $point / $max_value * 100;
18
+ }
19
+ else
20
+ {
21
+ $new_data[] = 0;
22
+ }
23
+ }
24
+ return $new_data;
25
+ }
26
+
27
+ function getTopValue($values_array)
28
+ {
29
+ rsort($values_array);
30
+ return $values_array[0];
31
+ }
32
+
33
+ function getFirstClickDate()
34
+ {
35
+ global $wpdb;
36
+
37
+ $clicks_table = $wpdb->prefix . "prli_clicks";
38
+ $query = "SELECT created_at FROM $clicks_table ORDER BY created_at LIMIT 1";
39
+ $first_click = $wpdb->get_var($query);
40
+
41
+ if(isset($first_click))
42
+ {
43
+ return strtotime($first_click);
44
+ }
45
+ else
46
+ return null;
47
+ }
48
+
49
+ function getMonthsArray()
50
+ {
51
+ global $wpdb;
52
+ global $prli_click;
53
+
54
+ $months = array();
55
+ $year = date("Y");
56
+ $month = date("m");
57
+ $current_timestamp = time();
58
+ $current_month_timestamp = mktime(0, 0, 0, date("m", $current_timestamp), 1, date("Y", $current_timestamp));
59
+
60
+ $clicks_table = $prli_click->tableName();
61
+ $first_click = $wpdb->get_var("SELECT created_at FROM $clicks_table ORDER BY created_at LIMIT 1;");
62
+ $first_timestamp = ((empty($first_click))?$current_timestamp:strtotime($first_click));
63
+ $first_date = mktime(0, 0, 0, date("m", $first_timestamp), 1, date("Y", $first_timestamp));
64
+
65
+ while($current_month_timestamp >= $first_date)
66
+ {
67
+ $months[] = $current_month_timestamp;
68
+ if(date("m") == 1)
69
+ $current_month_timestamp = mktime(0, 0, 0, 12, 1, date("Y", $current_month_timestamp)-1);
70
+ else
71
+ $current_month_timestamp = mktime(0, 0, 0, date("m", $current_month_timestamp)-1, 1, date("Y", $current_month_timestamp));
72
+ }
73
+ return $months;
74
+ }
75
+
76
+ // For Pagination
77
+ function getLastRecordNum($r_count,$current_p,$p_size)
78
+ {
79
+ return (($r_count < ($current_p * $p_size))?$r_count:($current_p * $p_size));
80
+ }
81
+
82
+ // For Pagination
83
+ function getFirstRecordNum($r_count,$current_p,$p_size)
84
+ {
85
+ if($current_p == 1)
86
+ return 1;
87
+ else
88
+ return ($this->getLastRecordNum($r_count,($current_p - 1),$p_size) + 1);
89
+ }
90
+
91
+ function slugIsAvailable( $full_slug, $id = '' )
92
+ {
93
+ global $wpdb, $prli_blogurl, $prli_link;
94
+
95
+ // We don't care about anything after the slash for now because we don't want
96
+ // to have to worry about comparing against every imaginable combination in WordPress
97
+ $slug_components = explode('/',$full_slug);
98
+ $slug = $slug_components[0];
99
+
100
+ // Check slug uniqueness against posts, pages and categories
101
+ $posts_table = $wpdb->prefix . "posts";
102
+ $terms_table = $wpdb->prefix . "terms";
103
+
104
+ $post_slug = $wpdb->get_var("SELECT post_name FROM $posts_table WHERE post_name='$slug'");
105
+ $term_slug = $wpdb->get_col("SELECT slug FROM $terms_table WHERE slug='$slug'");
106
+
107
+ if( $post_slug == $slug or $term_slug == $slug )
108
+ return false;
109
+
110
+ // Check slug against files on the root wordpress install
111
+ $root_dir = opendir(ABSPATH);
112
+
113
+ while (($file = readdir($root_dir)) !== false) {
114
+ $haystack = strtolower($file);
115
+ if($haystack == $slug)
116
+ return false;
117
+ }
118
+
119
+ // Check slug against other slugs in the prli links database.
120
+ // We'll use the full_slug here because its easier to guarantee uniqueness.
121
+ if($id != null and $id != '')
122
+ $query = "SELECT slug FROM " . $prli_link->table_name . " WHERE slug='" . $full_slug . "' AND id <> " . $id;
123
+ else
124
+ $query = "SELECT slug FROM " . $prli_link->table_name . " WHERE slug='" . $full_slug . "'";
125
+
126
+ $link_slug = $wpdb->get_var($query);
127
+
128
+ if( $link_slug == $full_slug )
129
+ return false;
130
+
131
+ $pre_slug_slug = PrliUtils::get_permalink_pre_slug_uri(true,true);
132
+
133
+ if($full_slug == $pre_slug_slug)
134
+ return false;
135
+
136
+ // TODO: Check permalink structure to avoid the ability of creating a year or something as a slug
137
+
138
+ return true;
139
+ }
140
+
141
+ function &php_get_browsercap_ini()
142
+ {
143
+ // Since it's a fairly expensive proposition to load the ini file
144
+ // let's make sure we only do it once
145
+ static $browsecap_ini;
146
+
147
+ if(!isset($browsecap_ini))
148
+ {
149
+ if( version_compare(PHP_VERSION, '5.3.0') >= 0 )
150
+ $browsecap_ini =& parse_ini_file( PRLI_PATH . "/includes/php/php_browsecap.ini", true, INI_SCANNER_RAW );
151
+ else
152
+ $browsecap_ini =& parse_ini_file( PRLI_PATH . "/includes/php/php_browsecap.ini", true );
153
+ }
154
+
155
+ return $browsecap_ini;
156
+ }
157
+
158
+ /* Needed because we don't know if the target uesr will have a browsercap file installed
159
+ on their server ... particularly in a shared hosting environment this is difficult
160
+ */
161
+ function php_get_browser($agent = NULL)
162
+ {
163
+ $agent=$agent?$agent:$_SERVER['HTTP_USER_AGENT'];
164
+ $yu=array();
165
+ $q_s=array("#\.#","#\*#","#\?#");
166
+ $q_r=array("\.",".*",".?");
167
+ $brows =& $this->php_get_browsercap_ini();
168
+
169
+ if(!empty($brows) and $brows and is_array($brows))
170
+ {
171
+ foreach($brows as $k=>$t)
172
+ {
173
+ if(fnmatch($k,$agent))
174
+ {
175
+ $yu['browser_name_pattern']=$k;
176
+ $pat=preg_replace($q_s,$q_r,$k);
177
+ $yu['browser_name_regex']=strtolower("^$pat$");
178
+ foreach($brows as $g=>$r)
179
+ {
180
+ if($t['Parent']==$g)
181
+ {
182
+ foreach($brows as $a=>$b)
183
+ {
184
+ if($r['Parent']==$a)
185
+ {
186
+ $yu=array_merge($yu,$b,$r,$t);
187
+ foreach($yu as $d=>$z)
188
+ {
189
+ $l=strtolower($d);
190
+ $hu[$l]=$z;
191
+ }
192
+ }
193
+ }
194
+ }
195
+ }
196
+
197
+ break;
198
+ }
199
+ }
200
+ }
201
+
202
+ return $hu;
203
+ }
204
+
205
+ // This is where the magic happens!
206
+ function track_link($slug,$values)
207
+ {
208
+ global $wpdb, $prli_click, $prli_link;
209
+
210
+ $query = "SELECT * FROM ".$prli_link->table_name." WHERE slug='$slug' LIMIT 1";
211
+ $pretty_link = $wpdb->get_row($query);
212
+ $pretty_link_target = apply_filters('prli_target_url',array('url' => $pretty_link->url, 'link_id' => $pretty_link->id));
213
+ $pretty_link_url = $pretty_link_target['url'];
214
+
215
+ if(isset($pretty_link->track_me) and $pretty_link->track_me)
216
+ {
217
+ $first_click = 0;
218
+
219
+ $click_ip = $_SERVER['REMOTE_ADDR'];
220
+ $click_referer = $_SERVER['HTTP_REFERER'];
221
+ $click_host = gethostbyaddr($click_ip);
222
+
223
+ $click_uri = $_SERVER['REQUEST_URI'];
224
+ $click_user_agent = $_SERVER['HTTP_USER_AGENT'];
225
+ $click_browser = $this->php_get_browser();
226
+
227
+ //Set Cookie if it doesn't exist
228
+ $cookie_name = 'prli_click_' . $pretty_link->id;
229
+ //Used for unique click tracking
230
+ $cookie_expire_time = time()+60*60*24*30; // Expire in 30 days
231
+
232
+ $visitor_cookie = 'prli_visitor';
233
+ //Used for visitor activity
234
+ $visitor_cookie_expire_time = time()+60*60*24*365; // Expire in 1 year
235
+
236
+
237
+ if($_COOKIE[$cookie_name] == null)
238
+ {
239
+ setcookie($cookie_name,$slug,$cookie_expire_time,'/');
240
+ $first_click = 1;
241
+ }
242
+
243
+ // Retrieve / Generate visitor id
244
+ if($_COOKIE[$visitor_cookie] == null)
245
+ {
246
+ $visitor_uid = $prli_click->generateUniqueVisitorId();
247
+ setcookie($visitor_cookie,$visitor_uid,$visitor_cookie_expire_time,'/');
248
+ }
249
+ else
250
+ $visitor_uid = $_COOKIE[$visitor_cookie];
251
+
252
+ //Record Click in DB
253
+ $insert_str = "INSERT INTO {$prli_click->table_name} (link_id,vuid,ip,browser,btype,bversion,os,referer,uri,host,first_click,robot,created_at) VALUES (%d,%s,%s,%s,%s,%s,%s,%s,%s,%s,%d,%d,NOW())";
254
+ $insert = $wpdb->prepare($insert_str, $pretty_link->id,
255
+ $visitor_uid,
256
+ $click_ip,
257
+ $click_user_agent,
258
+ $click_browser['browser'],
259
+ $click_browser['version'],
260
+ $click_browser['platform'],
261
+ $click_referer,
262
+ $click_uri,
263
+ $click_host,
264
+ $first_click,
265
+ $this->this_is_a_robot($click_user_agent,$click_browser));
266
+
267
+ $results = $wpdb->query( $insert );
268
+
269
+ do_action('prli_record_click',array('link_id' => $pretty_link->id, 'click_id' => $wpdb->insert_id, 'url' => $pretty_link_url));
270
+ }
271
+
272
+ // Reformat Parameters
273
+ $param_string = '';
274
+
275
+ if(isset($pretty_link->param_forwarding) and ($pretty_link->param_forwarding == 'custom' OR $pretty_link->param_forwarding == 'on') and isset($values) and count($values) >= 1)
276
+ {
277
+ $first_param = true;
278
+ foreach($values as $key => $value)
279
+ {
280
+ if($first_param)
281
+ {
282
+ $param_string = (preg_match("#\?#", $pretty_link_url)?"&":"?");
283
+ $first_param = false;
284
+ }
285
+ else
286
+ $param_string .= "&";
287
+
288
+ $param_string .= "$key=$value";
289
+ }
290
+ }
291
+
292
+ if(isset($pretty_link->nofollow) and $pretty_link->nofollow)
293
+ header("X-Robots-Tag: noindex, nofollow", true);
294
+
295
+ switch($pretty_link->redirect_type)
296
+ {
297
+ case 'pixel':
298
+ header("HTTP/1.1 200 OK");
299
+ break;
300
+ case 'prettybar':
301
+ global $prli_blogurl;
302
+ header("HTTP/1.1 200 OK");
303
+ require_once PRLI_VIEWS_PATH . '/prli-links/bar.php';
304
+ break;
305
+ case 'cloak':
306
+ header("HTTP/1.1 200 OK");
307
+ require_once PRLI_VIEWS_PATH . '/prli-links/ultra-cloak.php';
308
+ break;
309
+ case '301':
310
+ header("HTTP/1.1 301 Moved Permanently");
311
+ header('Location: '.$pretty_link_url.$param_string);
312
+ break;
313
+ default:
314
+ if($_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.0')
315
+ header("HTTP/1.1 302 Found");
316
+ else
317
+ header("HTTP/1.1 307 Temporary Redirect");
318
+ header('Location: '.$pretty_link_url.$param_string);
319
+ }
320
+ }
321
+
322
+ function get_custom_forwarding_rule($param_struct)
323
+ {
324
+ $param_struct = preg_replace('#%.*?%#','(.*?)',$param_struct);
325
+ return preg_replace('#\(\.\*\?\)$#','(.*)',$param_struct); // replace the last one with a greedy operator
326
+ }
327
+
328
+ function get_custom_forwarding_params($param_struct, $start_index = 1)
329
+ {
330
+ preg_match_all('#%(.*?)%#', $param_struct, $matches);
331
+
332
+ $param_string = '';
333
+ $match_index = $start_index;
334
+ for($i = 0; $i < count($matches[1]); $i++)
335
+ {
336
+ if($i == 0 and $start_index == 1)
337
+ $param_string .= "?";
338
+ else
339
+ $param_string .= "&";
340
+
341
+ $param_string .= $matches[1][$i] . "=$$match_index";
342
+ $match_index++;
343
+ }
344
+
345
+ return $param_string;
346
+ }
347
+
348
+ function decode_custom_param_str($param_struct, $uri_string)
349
+ {
350
+ // Get the structure matches (param names)
351
+ preg_match_all('#%(.*?)%#', $param_struct, $struct_matches);
352
+
353
+ // Get the uri matches (param values)
354
+ $match_str = '#'.$this->get_custom_forwarding_rule($param_struct).'#';
355
+ preg_match($match_str, $uri_string, $uri_matches);
356
+
357
+ $param_array = array();
358
+ for($i = 0; $i < count($struct_matches[1]); $i++)
359
+ $param_array[$struct_matches[1][$i]] = $uri_matches[$i+1];
360
+
361
+ return $param_array;
362
+ }
363
+
364
+ // Detects whether an array is a true numerical array or an
365
+ // associative array (or hash).
366
+ function prli_array_type($item)
367
+ {
368
+ $array_type = 'unknown';
369
+
370
+ if(is_array($item))
371
+ {
372
+ $array_type = 'array';
373
+
374
+ foreach($item as $key => $value)
375
+ {
376
+ if(!is_numeric($key))
377
+ {
378
+ $array_type = 'hash';
379
+ break;
380
+ }
381
+ }
382
+ }
383
+
384
+ return $array_type;
385
+ }
386
+
387
+ // This eliminates the need to use php's built in json_encoder
388
+ // which only works with PHP 5.2 and above.
389
+ function prli_json_encode($json_array)
390
+ {
391
+ $json_str = '';
392
+
393
+ if(is_array($json_array))
394
+ {
395
+ if($this->prli_array_type($json_array) == 'array')
396
+ {
397
+ $first = true;
398
+ $json_str .= "[";
399
+ foreach($json_array as $item)
400
+ {
401
+ if(!$first)
402
+ $json_str .= ",";
403
+
404
+ if(is_numeric($item))
405
+ $json_str .= (($item < 0)?"\"$item\"":$item);
406
+ else if(is_array($item))
407
+ $json_str .= $this->prli_json_encode($item);
408
+ else if(is_string($item))
409
+ $json_str .= '"'.$item.'"';
410
+ else if(is_bool($item))
411
+ $json_str .= (($item)?"true":"false");
412
+
413
+ $first = false;
414
+ }
415
+ $json_str .= "]";
416
+ }
417
+ else if($this->prli_array_type($json_array) == 'hash')
418
+ {
419
+ $first = true;
420
+ $json_str .= "{";
421
+ foreach($json_array as $key => $item)
422
+ {
423
+ if(!$first)
424
+ $json_str .= ",";
425
+
426
+ $json_str .= "\"$key\":";
427
+
428
+ if(is_numeric($item))
429
+ $json_str .= (($item < 0)?"\"$item\"":$item);
430
+ else if(is_array($item))
431
+ $json_str .= $this->prli_json_encode($item);
432
+ else if(is_string($item))
433
+ $json_str .= "\"$item\"";
434
+ else if(is_bool($item))
435
+ $json_str .= (($item)?"true":"false");
436
+
437
+ $first = false;
438
+ }
439
+ $json_str .= "}";
440
+ }
441
+ }
442
+
443
+ return $json_str;
444
+ }
445
+
446
+ // This eliminates the need to use php's built in json_encoder
447
+ // which only works with PHP 5.2 and above.
448
+ function prli_json_decode(&$json_str,$type='array',$index = 0)
449
+ {
450
+ $json_array = array();
451
+ $index_str = '';
452
+ $value_str = '';
453
+ $in_string = false;
454
+ $in_index = ($type=='hash'); //first char in hash is an index
455
+ $in_value = ($type=='array'); //first char in array is a value
456
+
457
+ $json_special_chars_array = array('{','[','}',']','"',',',':');
458
+
459
+ // On the first pass we need to do some special stuff
460
+ if($index == 0)
461
+ {
462
+ if($json_str[$index] == '{')
463
+ {
464
+ $type = 'hash';
465
+ $in_index = true;
466
+ $in_value = false;
467
+ }
468
+ else if($json_str[$index]=='[')
469
+ {
470
+ $type = 'array';
471
+ $in_index = false;
472
+ $in_value = true;
473
+ }
474
+ else
475
+ return false; // not valid json
476
+
477
+ // skip to next index
478
+ $index++;
479
+ }
480
+
481
+ for($i = $index; $i < strlen($json_str); $i++)
482
+ {
483
+ if($in_string and in_array($json_str[$i],$json_special_chars_array))
484
+ {
485
+ if($json_str[$i] == '"')
486
+ $in_string = false;
487
+ else
488
+ {
489
+ if($in_value)
490
+ $value_str .= $json_str[$i];
491
+ else if($in_index)
492
+ $index_str .= $json_str[$i];
493
+ }
494
+ }
495
+ else
496
+ {
497
+ switch($json_str[$i])
498
+ {
499
+ case '{':
500
+ $array_vals = $this->prli_json_decode($json_str,'hash',$i + 1);
501
+
502
+ if($type=='hash')
503
+ $json_array[$index_str] = $array_vals[1]; // We'll never get an array as an index
504
+ else if($type=='array')
505
+ $json_array[] = $array_vals[1];
506
+
507
+ $i = $array_vals[0]; // Skip ahead to the new index
508
+ break;
509
+
510
+ case '[':
511
+ $array_vals = $this->prli_json_decode($json_str,'array',$i + 1);
512
+
513
+ if($type=='hash')
514
+ $json_array[$index_str] = $array_vals[1];
515
+ else if($type=='array')
516
+ $json_array[] = $array_vals[1];
517
+
518
+ $i = $array_vals[0]; // Skip ahead to the new index
519
+ break;
520
+
521
+ case '}':
522
+ if(!empty($index_str) and !empty($value_str))
523
+ {
524
+ $json_array[$index_str] = $this->prli_decode_json_unicode($value_str);
525
+ $index_str = '';
526
+ $value_str = '';
527
+ }
528
+ return array($i,$json_array);
529
+
530
+ case ']':
531
+ if(!empty($value_str))
532
+ {
533
+ $json_array[] = $this->prli_decode_json_unicode($value_str);
534
+ $value_str = '';
535
+ }
536
+ return array($i,$json_array);
537
+
538
+ // skip the null character
539
+ case '\0':
540
+ break;
541
+
542
+ // Handle Escapes
543
+ case '\\':
544
+ if($in_string)
545
+ {
546
+ if(in_array($json_str[$i + 1],$json_special_chars_array))
547
+ {
548
+ if($in_value)
549
+ $value_str .= '\\'.$json_str[$i + 1];
550
+ else if($in_index)
551
+ $index_str .= '\\'.$json_str[$i + 1];
552
+
553
+ $i++; // skip the escaped char now that its been recorded
554
+ }
555
+ else
556
+ {
557
+ if($in_value)
558
+ $value_str .= $json_str[$i];
559
+ else if($in_index)
560
+ $index_str .= $json_str[$i];
561
+ }
562
+ }
563
+ break;
564
+
565
+ case '"':
566
+ $in_string = !$in_string; // just tells us if we're in a string
567
+ break;
568
+
569
+ case ':':
570
+ if($type == 'hash')
571
+ {
572
+ $in_value = true;
573
+ $in_index = false;
574
+ }
575
+ break;
576
+
577
+ case ',':
578
+ if($type == 'hash')
579
+ {
580
+ if(!empty($index_str) and !empty($value_str))
581
+ {
582
+ $json_array[$index_str] = $this->prli_decode_json_unicode($value_str);
583
+ $index_str = '';
584
+ $value_str = '';
585
+ }
586
+
587
+ $in_index = true;
588
+ $in_value = false;
589
+ }
590
+ else if($type == 'array')
591
+ {
592
+ if(!empty($value_str))
593
+ {
594
+ $json_array[] = $this->prli_decode_json_unicode($value_str);
595
+ $value_str = '';
596
+ }
597
+
598
+ $in_value = true;
599
+ $in_index = false; // always false in an array
600
+ }
601
+ break;
602
+
603
+ // record index and value
604
+ default:
605
+ if($in_value)
606
+ $value_str .= $json_str[$i];
607
+ else if($in_index)
608
+ $index_str .= $json_str[$i];
609
+ }
610
+ }
611
+ }
612
+
613
+ return array(-1,$json_array);
614
+ }
615
+
616
+ function prli_decode_json_unicode($val)
617
+ {
618
+ $val = preg_replace_callback("/\\\u([0-9a-fA-F]{4})/",
619
+ create_function(
620
+ '$matches',
621
+ 'return html_entity_decode("&#".hexdec($matches[1]).";",ENT_COMPAT,"UTF-8");'
622
+ ),
623
+ $val);
624
+ return $val;
625
+ }
626
+
627
+ // Get the timestamp of the start date
628
+ function get_start_date($values,$min_date = '')
629
+ {
630
+ // set default to 30 days ago
631
+ if(empty($min_date))
632
+ $min_date = 30;
633
+
634
+ if(!empty($values['sdate']))
635
+ {
636
+ $sdate = explode("-",$values['sdate']);
637
+ $start_timestamp = mktime(0,0,0,$sdate[1],$sdate[2],$sdate[0]);
638
+ }
639
+ else
640
+ $start_timestamp = time()-60*60*24*(int)$min_date;
641
+
642
+ return $start_timestamp;
643
+ }
644
+
645
+ // Get the timestamp of the end date
646
+ function get_end_date($values)
647
+ {
648
+ if(!empty($values['edate']))
649
+ {
650
+ $edate = explode("-",$values['edate']);
651
+ $end_timestamp = mktime(0,0,0,$edate[1],$edate[2],$edate[0]);
652
+ }
653
+ else
654
+ $end_timestamp = time();
655
+
656
+ return $end_timestamp;
657
+ }
658
+
659
+ function prepend_and_or_where( $starts_with = ' WHERE', $where = '' )
660
+ {
661
+ return (( $where == '' )?'':$starts_with . $where);
662
+ }
663
+
664
+ function uninstall_pro()
665
+ {
666
+ $prlipro_path = PRLI_PATH . '/pro';
667
+
668
+ // unlink pro directory
669
+ $this->delete_dir($prlipro_path);
670
+
671
+ delete_option( 'prlipro_activated' );
672
+ delete_option( 'prlipro_username' );
673
+ delete_option( 'prlipro_password' );
674
+ delete_option( 'prlipro-credentials' );
675
+
676
+ // Yah- I just leave the pro database tables & data hanging
677
+ // around in case you want to re-install it at some point
678
+ }
679
+
680
+ function install_pro_db()
681
+ {
682
+ global $wpdb;
683
+
684
+ $pro_db_version = 1; // this is the version of the database we're moving to
685
+ $old_pro_db_version = get_option('prlipro_db_version');
686
+
687
+ if($pro_db_version != $old_pro_db_version)
688
+ {
689
+ $upgrade_path = ABSPATH . 'wp-admin/includes/upgrade.php';
690
+ require_once($upgrade_path);
691
+
692
+ // Pretty Link Pro Tables
693
+ $tweets_table = "{$wpdb->prefix}prli_tweets";
694
+ $keywords_table = "{$wpdb->prefix}prli_keywords";
695
+ $reports_table = "{$wpdb->prefix}prli_reports";
696
+ $report_links_table = "{$wpdb->prefix}prli_report_links";
697
+ $link_rotations_table = "{$wpdb->prefix}prli_link_rotations";
698
+ $clicks_rotations_table = "{$wpdb->prefix}prli_clicks_rotations";
699
+
700
+ $charset_collate = '';
701
+ if( $wpdb->has_cap( 'collation' ) )
702
+ {
703
+ if( !empty($wpdb->charset) )
704
+ $charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
705
+ if( !empty($wpdb->collate) )
706
+ $charset_collate .= " COLLATE $wpdb->collate";
707
+ }
708
+
709
+ /* Create/Upgrade Tweets Table */
710
+ $sql = "CREATE TABLE {$tweets_table} (
711
+ id int(11) NOT NULL auto_increment,
712
+ twid varchar(255) NOT NULL,
713
+ tw_text varchar(255) default NULL,
714
+ tw_to_user_id varchar(255) default NULL,
715
+ tw_from_user varchar(255) default NULL,
716
+ tw_from_user_id varchar(255) NOT NULL,
717
+ tw_iso_language_code varchar(255) default NULL,
718
+ tw_source varchar(255) default NULL,
719
+ tw_profile_image_url varchar(255) default NULL,
720
+ tw_created_at varchar(255) NOT NULL,
721
+ created_at datetime NOT NULL,
722
+ link_id int(11) default NULL,
723
+ PRIMARY KEY (id),
724
+ KEY link_id (link_id),
725
+ KEY twid (twid)
726
+ ) {$charset_collate};";
727
+
728
+ dbDelta($sql);
729
+
730
+ /* Create/Upgrade Keywords Table */
731
+ $sql = "CREATE TABLE {$keywords_table} (
732
+ id int(11) NOT NULL auto_increment,
733
+ text varchar(255) NOT NULL,
734
+ link_id int(11) NOT NULL,
735
+ created_at datetime NOT NULL,
736
+ PRIMARY KEY (id),
737
+ KEY link_id (link_id)
738
+ ) {$charset_collate};";
739
+
740
+ dbDelta($sql);
741
+
742
+ /* Create/Upgrade Reports Table */
743
+ $sql = "CREATE TABLE {$reports_table} (
744
+ id int(11) NOT NULL auto_increment,
745
+ name varchar(255) NOT NULL,
746
+ goal_link_id int(11) default NULL,
747
+ created_at datetime NOT NULL,
748
+ PRIMARY KEY (id),
749
+ KEY goal_link_id (goal_link_id)
750
+ ) {$charset_collate};";
751
+
752
+ dbDelta($sql);
753
+
754
+ /* Create/Upgrade Reports Table */
755
+ $sql = "CREATE TABLE {$report_links_table} (
756
+ id int(11) NOT NULL auto_increment,
757
+ report_id int(11) NOT NULL,
758
+ link_id int(11) NOT NULL,
759
+ created_at datetime NOT NULL,
760
+ PRIMARY KEY (id),
761
+ KEY report_id (report_id),
762
+ KEY link_id (link_id)
763
+ ) {$charset_collate};";
764
+
765
+ dbDelta($sql);
766
+
767
+ /* Create/Upgrade Link Rotations Table */
768
+ $sql = "CREATE TABLE {$link_rotations_table} (
769
+ id int(11) NOT NULL auto_increment,
770
+ url varchar(255) default NULL,
771
+ weight int(11) default 0,
772
+ r_index int(11) default 0,
773
+ link_id int(11) NOT NULL,
774
+ created_at datetime NOT NULL,
775
+ PRIMARY KEY (id),
776
+ KEY link_id (link_id)
777
+ ) {$charset_collate};";
778
+
779
+ dbDelta($sql);
780
+
781
+ /* Create/Upgrade Clicks / Rotations Table */
782
+ $sql = "CREATE TABLE {$clicks_rotations_table} (
783
+ id int(11) NOT NULL auto_increment,
784
+ click_id int(11) NOT NULL,
785
+ link_id int(11) NOT NULL,
786
+ url text NOT NULL,
787
+ PRIMARY KEY (id),
788
+ KEY click_id (click_id),
789
+ KEY link_id (link_id)
790
+ ) {$charset_collate};";
791
+
792
+ dbDelta($sql);
793
+ }
794
+
795
+ /***** SAVE DB VERSION *****/
796
+ delete_option('prlipro_db_version');
797
+ add_option('prlipro_db_version',$pro_db_version);
798
+ }
799
+
800
+ // be careful with this one -- I use it to forceably reinstall pretty link pro
801
+ function delete_dir($dir)
802
+ {
803
+ if (!file_exists($dir))
804
+ return true;
805
+
806
+ if (!is_dir($dir))
807
+ return unlink($dir);
808
+
809
+ foreach (scandir($dir) as $item)
810
+ {
811
+ if ($item == '.' || $item == '..')
812
+ continue;
813
+
814
+ if (!$this->delete_dir($dir.DIRECTORY_SEPARATOR.$item))
815
+ return false;
816
+ }
817
+
818
+ return rmdir($dir);
819
+ }
820
+
821
+ // Used in the install procedure to migrate database columns
822
+ function migrate_before_db_upgrade()
823
+ {
824
+ global $prli_options, $prli_update, $prli_link, $prli_click, $wpdb;
825
+ $db_version = (int)get_option('prli_db_version');
826
+
827
+ if(!$db_version)
828
+ return;
829
+
830
+ // Migration for version 1 of the database
831
+ if($db_version and $db_version < 1)
832
+ {
833
+ $query = "SELECT * from {$prli_link->table_name}";
834
+ $links = $wpdb->get_results($query);
835
+ $query_str = "UPDATE {$prli_link->table_name} SET redirect_type=%s WHERE id=%d";
836
+
837
+ foreach($links as $link)
838
+ {
839
+ if(isset($link->track_as_img) and $link->track_as_img)
840
+ {
841
+ $query = $wpdb->prepare($query_str, 'pixel', $link->id);
842
+ $wpdb->query($query);
843
+ }
844
+ else if(isset($link->use_prettybar) and $link->use_prettybar)
845
+ {
846
+ $query = $wpdb->prepare($query_str, 'prettybar', $link->id);
847
+ $wpdb->query($query);
848
+ }
849
+ else if(isset($link->use_ultra_cloak) and $link->use_ultra_cloak)
850
+ {
851
+ $query = $wpdb->prepare($query_str, 'cloak', $link->id);
852
+ $wpdb->query($query);
853
+ }
854
+ }
855
+
856
+ $query = "ALTER TABLE {$prli_link->table_name} DROP COLUMN track_as_img, DROP COLUMN use_prettybar, DROP COLUMN use_ultra_cloak, DROP COLUMN gorder";
857
+ $wpdb->query($query);
858
+ }
859
+
860
+ if($db_version and $db_version < 2)
861
+ {
862
+ unset($prli_options->prli_exclude_ips);
863
+ unset($prli_options->prettybar_image_url);
864
+ unset($prli_options->prettybar_background_image_url);
865
+ unset($prli_options->prettybar_color);
866
+ unset($prli_options->prettybar_text_color);
867
+ unset($prli_options->prettybar_link_color);
868
+ unset($prli_options->prettybar_hover_color);
869
+ unset($prli_options->prettybar_visited_color);
870
+ unset($prli_options->prettybar_title_limit);
871
+ unset($prli_options->prettybar_desc_limit);
872
+ unset($prli_options->prettybar_link_limit);
873
+
874
+ // Save the posted value in the database
875
+ update_option( 'prli_options', $prli_options );
876
+ }
877
+
878
+ // Modify the tables so they're UTF-8
879
+ if($db_version and $db_version < 3)
880
+ {
881
+ $charset_collate = '';
882
+ if( $wpdb->has_cap( 'collation' ) )
883
+ {
884
+ if( !empty($wpdb->charset) )
885
+ $charset_collate = "CONVERT TO CHARACTER SET $wpdb->charset";
886
+ if( !empty($wpdb->collate) )
887
+ $charset_collate .= " COLLATE $wpdb->collate";
888
+ }
889
+
890
+ if(!empty($charset_collate))
891
+ {
892
+ $prli_table_names = array( "{$wpdb->prefix}prli_groups",
893
+ "{$wpdb->prefix}prli_clicks",
894
+ "{$wpdb->prefix}prli_links",
895
+ "{$wpdb->prefix}prli_link_metas",
896
+ "{$wpdb->prefix}prli_tweets",
897
+ "{$wpdb->prefix}prli_keywords",
898
+ "{$wpdb->prefix}prli_reports",
899
+ "{$wpdb->prefix}prli_report_links",
900
+ "{$wpdb->prefix}prli_link_rotations",
901
+ "{$wpdb->prefix}prli_clicks_rotations" );
902
+
903
+ foreach($prli_table_names as $prli_table_name)
904
+ {
905
+ $query = "ALTER TABLE {$prli_table_name} {$charset_collate}";
906
+ $wpdb->query($query);
907
+ }
908
+ }
909
+ }
910
+
911
+ // Upgrade the twitter hide badges on pages / posts for pro users
912
+ if($db_version and $db_version < 7)
913
+ {
914
+ if($prli_update->pro_is_installed())
915
+ {
916
+ global $prlipro_options;
917
+
918
+ if(trim($prlipro_options->twitter_badge_hidden) != '')
919
+ {
920
+ $hidden_post_ids = explode(',',trim($prlipro_options->twitter_badge_hidden));
921
+ foreach($hidden_post_ids as $post_id)
922
+ {
923
+ $prlipro_post_options = PrliProPostOptions::get_stored_object($post_id);
924
+ $prlipro_post_options->hide_twitter_button = 1;
925
+ $prlipro_post_options->store($post_id);
926
+ }
927
+ }
928
+ }
929
+ }
930
+
931
+ if($db_version and $db_version < 8)
932
+ {
933
+ // Install / Upgrade Pretty Link Pro
934
+ $prlipro_username = get_option( 'prlipro_username' );
935
+ $prlipro_password = get_option( 'prlipro_password' );
936
+
937
+ if( !empty($prlipro_username) and !empty($prlipro_password) )
938
+ {
939
+ $creds = array('username' => $prlipro_username,
940
+ 'password' => $prlipro_password);
941
+ update_option('prlipro-credentials', $creds);
942
+ }
943
+ }
944
+
945
+ // Hiding pretty link custom fields
946
+ if($db_version and $db_version < 10)
947
+ {
948
+ $query_str = "UPDATE {$wpdb->postmeta} SET meta_key=%s WHERE meta_key=%s";
949
+
950
+ $query = $wpdb->prepare($query_str, '_pretty-link', 'pretty-link');
951
+ $wpdb->query($query);
952
+
953
+ $query = $wpdb->prepare($query_str, '_prli-keyword-cached-content', 'prli-keyword-cached-content');
954
+ $wpdb->query($query);
955
+
956
+ $query = $wpdb->prepare($query_str, '_prlipro-post-options', 'prlipro-post-options');
957
+ $wpdb->query($query);
958
+ }
959
+ }
960
+
961
+
962
+ function migrate_after_db_upgrade()
963
+ {
964
+ global $prli_options, $prli_link, $prli_link_meta, $prli_click, $wpdb;
965
+ $db_version = (int)get_option('prli_db_version');
966
+
967
+ if(!$db_version)
968
+ return;
969
+
970
+ if($db_version and $db_version < 5)
971
+ {
972
+ // Migrate pretty-link-posted-to-twitter
973
+ $query = "SELECT * FROM {$wpdb->prefix}postmeta WHERE meta_key=%s";
974
+ $query = $wpdb->prepare($query,'pretty-link-posted-to-twitter');
975
+ $posts_posted = $wpdb->get_results($query);
976
+
977
+ foreach($posts_posted as $postmeta)
978
+ {
979
+ if($postmeta->meta_value == '1')
980
+ {
981
+ $link_id = PrliUtils::get_prli_post_meta($postmeta->post_id,'pretty-link',true);
982
+ $prli_link_meta->update_link_meta($link_id,'pretty-link-posted-to-twitter','1');
983
+ }
984
+ }
985
+
986
+ // Cleanup
987
+ $query = "DELETE FROM {$wpdb->prefix}postmeta WHERE meta_key=%s OR meta_key=%s OR meta_key=%s OR meta_key=%s";
988
+ $query = $wpdb->prepare($query,'pretty-link-posted-to-twitter','pretty-link-tweet-count','pretty-link-tweet-last-update','prli-keyword-replacement-count');
989
+ $results = $wpdb->query($query);
990
+
991
+ $query = "DELETE FROM {$prli_link_meta->table_name} WHERE meta_key=%s";
992
+ $query = $wpdb->prepare($query,'prli-url-aliases');
993
+ $results = $wpdb->query($query);
994
+ }
995
+ }
996
+
997
+ function this_is_a_robot($browser_ua,&$browsecap,$header='')
998
+ {
999
+ $click = new PrliClick();
1000
+ $click->browser = $browser_ua;
1001
+ $click->btype = $browsecap['browser'];
1002
+ return $this->is_robot($click, $browsecap, $header);
1003
+ }
1004
+
1005
+ function is_robot(&$click,&$browsecap,$header='')
1006
+ {
1007
+ global $prli_utils, $prli_click;
1008
+ $ua_string = trim(urldecode($click->browser));
1009
+ $btype = trim($click->btype);
1010
+
1011
+ // Yah, if the whole user agent string is missing -- wtf?
1012
+ if(empty($ua_string))
1013
+ return 1;
1014
+
1015
+ // If the Browser type was unidentifiable then it's most likely a bot
1016
+ if(empty($btype))
1017
+ return 1;
1018
+
1019
+ // Some bots actually say they're bots right up front let's get rid of them asap
1020
+ if(preg_match("#(bot|Bot|spider|Spider|crawl|Crawl)#",$ua_string))
1021
+ return 1;
1022
+
1023
+ $crawler = $browsecap['crawler'];
1024
+
1025
+ // If php_browsecap tells us its a bot, let's believe him
1026
+ if($crawler == 1)
1027
+ return 1;
1028
+
1029
+ return 0;
1030
+ }
1031
+
1032
+ function get_permalink_pre_slug_uri($force=false,$trim=false)
1033
+ {
1034
+ global $prli_options;
1035
+
1036
+ if($force or $prli_options->link_prefix)
1037
+ {
1038
+ preg_match('#^([^%]*?)%#', get_option('permalink_structure'), $struct);
1039
+ $pre_slug_uri = $struct[1];
1040
+
1041
+ if($trim)
1042
+ {
1043
+ $pre_slug_uri = trim($pre_slug_uri);
1044
+ $pre_slug_uri = preg_replace('#^/#','',$pre_slug_uri);
1045
+ $pre_slug_uri = preg_replace('#/$#','',$pre_slug_uri);
1046
+ }
1047
+
1048
+ return $pre_slug_uri;
1049
+ }
1050
+ else
1051
+ return '/';
1052
+ }
1053
+
1054
+ function get_permalink_pre_slug_regex()
1055
+ {
1056
+ $pre_slug_uri = PrliUtils::get_permalink_pre_slug_uri(true);
1057
+
1058
+ if(empty($pre_slug_uri))
1059
+ return '/';
1060
+ else
1061
+ return "{$pre_slug_uri}|/";
1062
+ }
1063
+
1064
+ function rewriting_on()
1065
+ {
1066
+ $permalink_structure = get_option('permalink_structure');
1067
+
1068
+ return ($permalink_structure and !empty($permalink_structure));
1069
+ }
1070
+
1071
+ function get_prli_post_meta($post_id, $key, $single=false)
1072
+ {
1073
+ if( isset($post_id) and !empty($post_id) and
1074
+ $post_id and is_numeric($post_id) )
1075
+ return get_post_meta($post_id, $key, $single);
1076
+ else
1077
+ return false;
1078
+ }
1079
+
1080
+ function update_prli_post_meta($post_id, $meta_key, $meta_value)
1081
+ {
1082
+ if( isset($post_id) and !empty($post_id) and
1083
+ $post_id and is_numeric($post_id) )
1084
+ return update_post_meta($post_id, $meta_key, $meta_value);
1085
+ else
1086
+ return false;
1087
+ }
1088
+
1089
+ function delete_prli_post_meta($post_id, $key)
1090
+ {
1091
+ if( isset($post_id) and !empty($post_id) and
1092
+ $post_id and is_numeric($post_id) )
1093
+ return delete_post_meta($post_id, $key, $meta_value);
1094
+ else
1095
+ return false;
1096
+ }
1097
+
1098
+ /** Gets rid of any pretty link postmetas created without a post_id **/
1099
+ function clear_unknown_post_metas()
1100
+ {
1101
+ global $wpdb;
1102
+
1103
+ $query = "SELECT count(*) FROM {$wpdb->postmeta} WHERE ( meta_key LIKE 'prli%' OR meta_key LIKE 'pretty-link%' OR meta_key LIKE '_prli%' OR meta_key LIKE '_pretty-link%' ) AND post_id=0";
1104
+ $count = $wpdb->get_var($query);
1105
+
1106
+ if($count)
1107
+ {
1108
+ $query = "DELETE FROM {$wpdb->postmeta} WHERE ( meta_key LIKE 'prli%' OR meta_key LIKE 'pretty-link%' OR meta_key LIKE '_prli%' OR meta_key LIKE '_pretty-link%' ) AND post_id=0";
1109
+ $wpdb->query($query);
1110
+ }
1111
+ }
1112
+ }
1113
+ ?>
classes/models/models.inc.php ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ require_once(PRLI_MODELS_PATH.'/PrliLink.php');
3
+ require_once(PRLI_MODELS_PATH.'/PrliClick.php');
4
+ require_once(PRLI_MODELS_PATH.'/PrliGroup.php');
5
+ require_once(PRLI_MODELS_PATH.'/PrliUtils.php');
6
+ require_once(PRLI_MODELS_PATH.'/PrliUrlUtils.php');
7
+ require_once(PRLI_MODELS_PATH.'/PrliLinkMeta.php');
8
+ require_once(PRLI_MODELS_PATH.'/PrliUpdate.php');
9
+
10
+ global $prli_link;
11
+ global $prli_link_meta;
12
+ global $prli_click;
13
+ global $prli_group;
14
+ global $prli_utils;
15
+ global $prli_url_utils;
16
+ global $prli_update;
17
+
18
+ $prli_link = new PrliLink();
19
+ $prli_link_meta = new PrliLinkMeta();
20
+ $prli_click = new PrliClick();
21
+ $prli_group = new PrliGroup();
22
+ $prli_utils = new PrliUtils();
23
+ $prli_url_utils = new PrliUrlUtils();
24
+ $prli_update = new PrliUpdate();
25
+
26
+ function prli_get_main_message( $message = "Get started by <a href=\"?page=pretty-link/prli-links.php&action=new\">adding a URL</a> that you want to turn into a pretty link.<br/>Come back to see how many times it was clicked.", $expiration=3600) // Get new messages every 1 hour
27
+ {
28
+ global $prli_update, $wp_version;
29
+ include_once(ABSPATH."/wp-includes/class-IXR.php");
30
+
31
+ $message_mothership = (($prli_update->pro_is_installed_and_authorized())?'http://prettylinkpro.com/xmlrpc.php':'http://blairwilliams.com/xmlrpc.php');
32
+
33
+ if( version_compare($wp_version, '3.0', '>=') )
34
+ $messages = get_site_transient('_prli_messages'); // for WordPress 3.0
35
+ else
36
+ $messages = get_transient('_prli_messages'); // for WordPress 2.8+
37
+
38
+ // if the messages array has expired go back to the mothership
39
+ if($messages === false)
40
+ {
41
+ $client = new IXR_Client($message_mothership);
42
+ if ($client->query('prli.get_main_message_array'))
43
+ $messages = $client->getResponse();
44
+
45
+ // If we're having connection issues on the mothership then store the default message in the transient
46
+ if(empty($messages) or !$messages or !is_array($messages))
47
+ $messages = array($message);
48
+
49
+ if( version_compare($wp_version, '3.0', '>=') )
50
+ set_site_transient("_prli_messages", $messages, $expiration); // for WordPress 3.0
51
+ else
52
+ set_transient("_prli_messages", $messages, $expiration); // for WordPress 2.8+
53
+ }
54
+
55
+ if(empty($messages) or !$messages or !is_array($messages))
56
+ return $message;
57
+ else
58
+ return $messages[array_rand($messages)];
59
+ }
60
+
61
+ ?>
classes/views/prli-clicks/csv.php ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if(is_user_logged_in() and current_user_can('level_10'))
3
+ {
4
+
5
+ $filename = date("ymdHis",time()) . '_' . $link_name . '_pretty_link_clicks_' . $hmin . '-' . $hmax . '.csv';
6
+ header("Content-Type: text/x-csv");
7
+ header("Content-Disposition: attachment; filename=\"$filename\"");
8
+ header("Expires: ".gmdate("D, d M Y H:i:s", mktime(date("H")+2, date("i"), date("s"), date("m"), date("d"), date("Y")))." GMT");
9
+ header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
10
+ header("Cache-Control: no-cache, must-revalidate");
11
+ header("Pragma: no-cache");
12
+
13
+ echo '"Browser","Browser Version","Platform","IP","Visitor ID","Timestamp","Host","URI","Referrer","Link"' . "\n";
14
+ foreach($clicks as $click)
15
+ {
16
+ $link = $prli_link->getOne($click->link_id);
17
+
18
+ echo "\"$click->btype\",\"$click->bversion\",\"$click->os\",\"$click->ip\",\"$click->vuid\",\"$click->created_at\",\"$click->host\",\"$click->uri\",\"$click->referer\",\"" . ((empty($link->name))?$link->slug:$link->name) . "\"\n";
19
+ }
20
+ }
21
+ else
22
+ header("Location: " . $prli_blogurl);
23
+ ?>
classes/views/prli-clicks/csv_download.php ADDED
@@ -0,0 +1,89 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="wrap">
2
+ <?php
3
+ require(PRLI_VIEWS_PATH.'/shared/nav.php');
4
+ ?>
5
+
6
+ <h2><img src="<?php echo PRLI_URL.'/images/pretty-link-med.png'; ?>"/>&nbsp;Pretty Link: CSV Downloads</h2>
7
+ <span style="font-size: 14px; font-weight: bold;">For <?php echo stripslashes($link_name); ?>: </span>
8
+
9
+ <h3>Hit Reports:</h3>
10
+ <span class="description">All hits on <?php echo stripslashes($link_name); ?></span>
11
+ <br/>
12
+ <ul>
13
+ <?php
14
+ for($i=$hit_page_count; $i>0; $i--)
15
+ {
16
+ $hit_min = 0;
17
+
18
+ if($i)
19
+ $hit_min = ($i - 1) * $max_rows_per_file;
20
+
21
+ if($i==$hit_page_count)
22
+ $hit_max = $hit_record_count;
23
+ else
24
+ $hit_max = ($i * $max_rows_per_file) - 1;
25
+
26
+ $hit_count = $hit_max - $hit_min + 1;
27
+ $report_label = "Hits {$hit_min}-{$hit_max} ({$hit_count} Records)";
28
+ $hit_param_delim = (preg_match('#\?#',$hit_report_url)?'&':'?');
29
+ ?>
30
+ <li><a href="<?php echo $hit_report_url . $hit_param_delim; ?>prli_page=<?php echo $i; ?>"><?php echo $report_label; ?></a></li>
31
+ <?php
32
+ }
33
+ ?>
34
+ </ul>
35
+ <br/>
36
+ <h3>IP History Reports:</h3>
37
+ <span class="description">Shows all of the pretty links that visitors in <?php echo stripslashes($link_name); ?> have visited identified by IP address and sorted in descending order by date.</span>
38
+ <br/>
39
+ <ul>
40
+ <?php
41
+ for($i=$history_page_count; $i>0; $i--)
42
+ {
43
+ $history_min = 0;
44
+
45
+ if($i)
46
+ $history_min = ($i - 1) * $max_rows_per_file;
47
+
48
+ if($i==$history_page_count)
49
+ $history_max = $history_record_count;
50
+ else
51
+ $history_max = ($i * $max_rows_per_file) - 1;
52
+
53
+ $history_count = $history_max - $history_min + 1;
54
+ $report_label = "Hits {$history_min}-{$history_max} ({$history_count} Records)";
55
+ $history_param_delim = (preg_match('#\?#',$history_report_url)?'&':'?');
56
+ ?>
57
+ <li><a href="<?php echo $history_report_url . $history_param_delim; ?>prli_page=<?php echo $i; ?>"><?php echo $report_label; ?></a></li>
58
+ <?php
59
+ }
60
+ ?>
61
+ </ul>
62
+ <br/>
63
+ <h3>IP Origin Reports:</h3>
64
+ <span class="description">Shows the first the pretty link that visitors in <?php echo stripslashes($link_name); ?> have visited identified by IP address and the hit(s) that got these visitors listed in <?php echo stripslashes($link_name); ?>.</span>
65
+ <br/>
66
+ <ul>
67
+ <?php
68
+ for($i=$origin_page_count; $i>0; $i--)
69
+ {
70
+ $origin_min = 0;
71
+
72
+ if($i)
73
+ $origin_min = ($i - 1) * $max_rows_per_file;
74
+
75
+ if($i==$origin_page_count)
76
+ $origin_max = $origin_record_count;
77
+ else
78
+ $origin_max = ($i * $max_rows_per_file) - 1;
79
+
80
+ $origin_count = $origin_max - $origin_min + 1;
81
+ $report_label = "Hits {$origin_min}-{$origin_max} ({$origin_count} Records)";
82
+ $origin_param_delim = (preg_match('#\?#',$origin_report_url)?'&':'?');
83
+ ?>
84
+ <li><a href="<?php echo $origin_report_url . $origin_param_delim; ?>prli_page=<?php echo $i; ?>"><?php echo $report_label; ?></a></li>
85
+ <?php
86
+ }
87
+ ?>
88
+ </ul>
89
+ </div>
classes/views/prli-clicks/head.php ADDED
@@ -0,0 +1,105 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!-- JQuery UI Includes -->
2
+ <link type="text/css" href="<?php echo PRLI_URL; ?>/includes/jquery/css/ui-lightness/jquery-ui-1.7.1.custom.css" rel="stylesheet" />
3
+ <script type="text/javascript" src="<?php echo PRLI_URL; ?>/includes/jquery/js/jquery-1.3.2.min.js"></script>
4
+ <script type="text/javascript" src="<?php echo PRLI_URL; ?>/includes/jquery/js/jquery-ui-1.7.1.custom.min.js"></script>
5
+
6
+ <script type="text/javascript">
7
+ $(document).ready(function(){
8
+ $("#sdate").datepicker({ dateFormat: 'yy-mm-dd', defaultDate: -30, minDate: -<?php echo $min_date; ?>, maxDate: 0 });
9
+ $("#edate").datepicker({ dateFormat: 'yy-mm-dd', minDate: -<?php echo $min_date; ?>, maxDate: 0 });
10
+ });
11
+ </script>
12
+
13
+ <script type="text/javascript">
14
+ $(document).ready(function(){
15
+ $(".filter_pane").hide();
16
+ $(".filter_toggle").click( function () {
17
+ $(".filter_pane").slideToggle("slow");
18
+ });
19
+ });
20
+ </script>
21
+
22
+ <style type="text/css">
23
+ .filter_toggle {
24
+ line-height: 34px;
25
+ font-size: 14px;
26
+ font-weight: bold;
27
+ padding-bottom: 10px;
28
+ }
29
+
30
+ .filter_pane {
31
+ background-color: white;
32
+ border: 2px solid #777777;
33
+ height: 275px;
34
+ width: 600px;
35
+ padding-left: 20px;
36
+ padding-top: 10px;
37
+ }
38
+
39
+ </style>
40
+
41
+ <!-- Open Flash Chart Includes -->
42
+ <script type="text/javascript" src="<?php echo PRLI_URL; ?>/includes/version-2-kvasir/js/json/json2.js"></script>
43
+ <script type="text/javascript" src="<?php echo PRLI_URL; ?>/includes/version-2-kvasir/js/swfobject.js"></script>
44
+ <script type="text/javascript">
45
+ swfobject.embedSWF("<?php echo PRLI_URL; ?>/includes/version-2-kvasir/open-flash-chart.swf", "my_chart", "100%", "250", "9.0.0");
46
+ </script>
47
+
48
+ <script type="text/javascript">
49
+
50
+ function ofc_ready()
51
+ {
52
+ //alert('ofc_ready');
53
+ }
54
+
55
+ function open_flash_chart_data()
56
+ {
57
+ //alert( 'reading data' );
58
+ return JSON.stringify(data);
59
+ }
60
+
61
+ function findSWF(movieName) {
62
+ if (navigator.appName.indexOf("Microsoft")!= -1) {
63
+ return window[movieName];
64
+ } else {
65
+ return document[movieName];
66
+ }
67
+ }
68
+
69
+ OFC = {};
70
+
71
+ OFC.jquery = {
72
+ name: "jQuery",
73
+ version: function(src) { return $('#'+ src)[0].get_version() },
74
+ rasterize: function (src, dst) { $('#'+ dst).replaceWith(OFC.jquery.image(src)) },
75
+ image: function(src) { return "<img src='data:image/png;base64," + $('#'+src)[0].get_img_binary() + "' />"},
76
+ popup: function(src) {
77
+ var img_win = window.open('', 'Charts: Export as Image')
78
+ with(img_win.document) {
79
+ write('<html><head><title>Charts: Export as Image<\/title><\/head><body>' + OFC.jquery.image(src) + '<div>Right-Click on the above Image to Save<\/div><\/body><\/html>') }
80
+ // stop the 'loading...' message
81
+ img_win.document.close();
82
+ }
83
+ }
84
+
85
+ // Using an object as namespaces is JS Best Practice. I like the Control.XXX style.
86
+ //if (!Control) {var Control = {}}
87
+ //if (typeof(Control == "undefined")) {var Control = {}}
88
+ if (typeof(Control == "undefined")) {var Control = {OFC: OFC.jquery}}
89
+
90
+
91
+ // By default, right-clicking on OFC and choosing "save image locally" calls this function.
92
+ // You are free to change the code in OFC and call my wrapper (Control.OFC.your_favorite_save_method)
93
+ // function save_image() { alert(1); Control.OFC.popup('my_chart') }
94
+ function save_image() {
95
+ //alert(1);
96
+ OFC.jquery.popup('my_chart')
97
+ }
98
+
99
+ function moo() {
100
+ //alert(99);
101
+ };
102
+
103
+ var data = <?php echo $prli_click->setupClickLineGraph($start_timestamp,$end_timestamp,$link_id,$type,$group); ?>;
104
+
105
+ </script>
classes/views/prli-clicks/list.php ADDED
@@ -0,0 +1,151 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="wrap">
2
+ <?php
3
+ require(PRLI_VIEWS_PATH.'/shared/nav.php');
4
+ ?>
5
+ <h2><img src="<?php echo PRLI_URL.'/images/pretty-link-med.png'; ?>"/>&nbsp;Pretty Link: Hits</h2>
6
+ <span style="font-size: 14px; font-weight: bold;">For <?php echo stripslashes($link_name); ?>: </span>
7
+ <?php
8
+ // Don't show this sheesh if we're displaying the vuid or ip grouping
9
+ if(empty($params['ip']) and empty($params['vuid']))
10
+ {
11
+ ?>
12
+ <a href="#" style="display:inline;" class="filter_toggle">Customize Report</a>
13
+ <?php
14
+ }
15
+ ?>
16
+ <?php
17
+ if(!empty($params['l']) and $params['l'] != 'all')
18
+ echo '<br/><a href="?page='. PRLI_PLUGIN_NAME .'/prli-links.php">&laquo Back to Links</a>';
19
+ else if(!empty($params['ip']) or !empty($params['vuid']))
20
+ echo '<br/><a href="?page='. PRLI_PLUGIN_NAME .'/prli-clicks.php">&laquo Back to Hits</a>';
21
+
22
+ if(empty($params['ip']) and empty($params['vuid']))
23
+ {
24
+ ?>
25
+
26
+
27
+ <div class="filter_pane">
28
+ <form class="form-fields" name="form2" method="post" action="">
29
+ <?php wp_nonce_field('prli-reports'); ?>
30
+ <span>Type:</span>&nbsp;
31
+ <select id="type" name="type" style="display: inline;">
32
+ <option value="all"<?php print ((empty($params['type']) or $params['type'] == "all")?" selected=\"true\"":""); ?>>All Hits&nbsp;</option>
33
+ <option value="unique"<?php print (($params['type'] == "unique")?" selected=\"true\"":""); ?>>Unique Hits&nbsp;</option>
34
+ </select>
35
+ <br/>
36
+ <br/>
37
+ <span>Date Range:</span>
38
+ <div id="dateselectors" style="display: inline;">
39
+ <input type="text" name="sdate" id="sdate" value="<?php echo $params['sdate']; ?>" style="display:inline;"/>&nbsp;to&nbsp;<input type="text" name="edate" id="edate" value="<?php echo $params['edate']; ?>" style="display:inline;"/>
40
+ </div>
41
+ <br/>
42
+ <br/>
43
+ <div class="submit" style="display: inline;"><input type="submit" name="Submit" value="Customize"/> or <a href="#" class="filter_toggle">Cancel</a></div>
44
+ </form>
45
+ </div>
46
+
47
+ <div id="my_chart"></div>
48
+
49
+ <?php
50
+ }
51
+ $navstyle = "float: right;";
52
+ require(PRLI_VIEWS_PATH.'/shared/table-nav.php');
53
+ ?>
54
+
55
+ <div id="search_pane" style="padding-top: 5px;">
56
+ <form class="form-fields" name="click_form" method="post" action="">
57
+ <?php wp_nonce_field('prli-clicks'); ?>
58
+
59
+ <input type="hidden" name="sort" id="sort" value="<?php echo $sort_str; ?>" />
60
+ <input type="hidden" name="sdir" id="sort" value="<?php echo $sdir_str; ?>" />
61
+ <input type="text" name="search" id="search" value="<?php echo $search_str; ?>" style="display:inline;"/>
62
+ <div class="submit" style="display: inline;"><input type="submit" name="Submit" value="Search Hits"/>
63
+ <?php
64
+ if(!empty($search_str))
65
+ {
66
+ ?>
67
+ or <a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-clicks.php<?php echo (!empty($params['l'])?'&l='.$params['l']:''); ?>">Reset</a>
68
+ <?php
69
+ }
70
+ ?>
71
+ </div>
72
+ </form>
73
+ </div>
74
+ <table class="widefat post fixed" cellspacing="0">
75
+ <thead>
76
+ <tr>
77
+ <th class="manage-column" width="5%"><a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-clicks.php<?php echo $sort_params; ?>&sort=btype<?php echo (($sort_str == 'btype' and $sdir_str == 'asc')?'&sdir=desc':''); ?>">Browser<?php echo (($sort_str == 'btype')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_URL.'/images/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>
78
+ </th>
79
+ <th class="manage-column" width="12%">
80
+ <a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-clicks.php<?php echo $sort_params; ?>&sort=ip<?php echo (($sort_str == 'ip' and $sdir_str == 'asc')?'&sdir=desc':''); ?>">IP<?php echo (($sort_str == 'ip')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_URL.'/images/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>
81
+ </th>
82
+ <th class="manage-column" width="12%">
83
+ <a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-clicks.php<?php echo $sort_params; ?>&sort=vuid<?php echo (($sort_str == 'vuid' and $sdir_str == 'asc')?'&sdir=desc':''); ?>">Visitor<?php echo (($sort_str == 'vuid')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_URL.'/images/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>
84
+ </th>
85
+ <th class="manage-column" width="13%">
86
+ <a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-clicks.php<?php echo $sort_params; ?>&sort=created_at<?php echo (($sort_str == 'created_at' and $sdir_str == 'asc')?'&sdir=desc':''); ?>">Timestamp<?php echo ((empty($sort_str) or $sort_str == 'created_at')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_URL.'/images/'.((empty($sort_str) or $sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>
87
+ </th>
88
+ <th class="manage-column" width="16%">
89
+ <a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-clicks.php<?php echo $sort_params; ?>&sort=host<?php echo (($sort_str == 'host' and $sdir_str == 'asc')?'&sdir=desc':''); ?>">Host<?php echo (($sort_str == 'host')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_URL.'/images/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>
90
+ </th>
91
+ <th class="manage-column" width="16%">
92
+ <a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-clicks.php<?php echo $sort_params; ?>&sort=uri<?php echo (($sort_str == 'uri' and $sdir_str == 'asc')?'&sdir=desc':''); ?>">URI<?php echo (($sort_str == 'uri')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_URL.'/images/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>
93
+ </th>
94
+ <th class="manage-column" width="16%">
95
+ <a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-clicks.php<?php echo $sort_params; ?>&sort=referer<?php echo (($sort_str == 'referer' and $sdir_str == 'asc')?'&sdir=desc':''); ?>">Referrer<?php echo (($sort_str == 'referer')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_URL.'/images/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>
96
+ </th>
97
+ <th class="manage-column" width="13%">
98
+ <a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-clicks.php<?php echo $sort_params; ?>&sort=link<?php echo (($sort_str == 'link' and $sdir_str == 'asc')?'&sdir=desc':''); ?>">Link<?php echo (($sort_str == 'link')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_URL.'/images/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>
99
+ </th>
100
+ </tr>
101
+ </thead>
102
+ <?php
103
+
104
+ if(count($clicks) <= 0)
105
+ {
106
+ ?>
107
+ <tr>
108
+ <td colspan="7">No Hits have been recorded yet</td>
109
+ </tr>
110
+ <?php
111
+ }
112
+ else
113
+ {
114
+ foreach($clicks as $click)
115
+ {
116
+ ?>
117
+ <tr>
118
+ <td><img src="http://d14715w921jdje.cloudfront.net/browser/<?php echo prli_browser_image($click->btype); ?>" alt="<?php echo $click->btype . " v" . $click->bversion; ?>" title="<?php echo $click->btype . " v" . $click->bversion; ?>"/>&nbsp;<img src="http://d14715w921jdje.cloudfront.net/os/<?php echo prli_os_image($click->os); ?>" alt="<?php echo $click->os; ?>" title="<?php echo $click->os; ?>"/></td>
119
+ <td><a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-clicks.php&ip=<?php echo $click->ip; ?>" title="View All Activity for IP Address: <?php echo $click->ip; ?>"><?php echo $click->ip; ?> (<?php echo $click->ip_count; ?>)</a></td>
120
+ <td><a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-clicks.php&vuid=<?php echo $click->vuid; ?>" title="View All Activity for Visitor: <?php echo $click->vuid; ?>"><?php echo $click->vuid; ?><?php echo (($click->vuid != null)?" ($click->vuid_count)":''); ?></a></td>
121
+ <td><?php echo $click->created_at; ?></td>
122
+ <td><?php echo $click->host; ?></td>
123
+ <td><?php echo $click->uri; ?></td>
124
+ <td><?php echo $click->referer; ?></td>
125
+ <td><a href="?page=<?php print PRLI_PLUGIN_NAME; ?>/prli-clicks.php&l=<?php echo $click->link_id; ?>" title="View clicks for <?php echo stripslashes($click->link_name); ?>"><?php echo stripslashes($click->link_name); ?></a></td>
126
+ </tr>
127
+ <?php
128
+ }
129
+ }
130
+ ?>
131
+ <tfoot>
132
+ <tr>
133
+ <th class="manage-column">Browser</th>
134
+ <th class="manage-column">IP</th>
135
+ <th class="manage-column">Visitor</th>
136
+ <th class="manage-column">Timestamp</th>
137
+ <th class="manage-column">Host</th>
138
+ <th class="manage-column">URI</th>
139
+ <th class="manage-column">Referrer</th>
140
+ <th class="manage-column">Link</th>
141
+ </tr>
142
+ </tfoot>
143
+ </table>
144
+
145
+ <a href="?page=pretty-link/prli-clicks.php&action=csv<?php echo $page_params; ?>">Download CSV (<?php echo stripslashes($link_name); ?>)</a>
146
+
147
+ <?php
148
+ require(PRLI_VIEWS_PATH.'/shared/table-nav.php');
149
+ ?>
150
+
151
+ </div>
classes/views/prli-dashboard-widget/widget.php ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="wrap">
2
+ <a href="http://blairwilliams.com/pretty-link"><img style="float: left; border: 0px;" src="<?php echo PRLI_URL.'/images/prettylink_logo_small.jpg'; ?>"/></a><div style="min-height: 48px;"><div style="min-height: 18px; margin-left: 137px; margin-top: 0px; padding-top: 0px; border: 1px solid #e5e597; background-color: #ffffa0; display: block;"><p style="font-size: 11px; margin:0px; padding: 0px; padding-left: 10px;"><?php echo $message; ?></p></div></div>
3
+
4
+ <form name="form1" method="post" action="?page=<?php echo PRLI_PLUGIN_NAME ?>/prli-links.php">
5
+ <input type="hidden" name="action" value="quick-create">
6
+ <?php wp_nonce_field('update-options'); ?>
7
+
8
+ <table class="form-table">
9
+ <tr class="form-field">
10
+ <td valign="top">Target URL</td>
11
+ <td><input type="text" name="url" value="" size="75">
12
+ </tr>
13
+ <tr>
14
+ <td valign="top">Pretty Link</td>
15
+ <td><strong><?php echo $prli_blogurl; ?></strong>/<input type="text" name="slug" value="<?php echo $prli_link->generateValidSlug(); ?>">
16
+ </tr>
17
+ </table>
18
+
19
+ <p class="submit">
20
+ <input type="submit" name="Submit" value="Create" />
21
+ </p>
22
+ </form>
23
+ </div>
classes/views/prli-groups/edit.php ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="wrap">
2
+ <h2><img src="<?php echo PRLI_URL.'/images/pretty-link-med.png'; ?>"/>&nbsp;Pretty Link: Edit Group</h2>
3
+
4
+ <?php
5
+ require(PRLI_VIEWS_PATH.'/shared/errors.php');
6
+ ?>
7
+
8
+ <form name="form1" method="post" action="?page=<?php echo PRLI_PLUGIN_NAME ?>/prli-groups.php">
9
+ <input type="hidden" name="action" value="update">
10
+ <input type="hidden" name="id" value="<?php echo $id; ?>">
11
+ <?php wp_nonce_field('update-options'); ?>
12
+
13
+ <table class="form-table">
14
+ <tr class="form-field">
15
+ <td width="75px" valign="top">Name: </td>
16
+ <td><input type="text" name="name" value="<?php echo htmlspecialchars(stripslashes((($_POST['name'] != null and $record == null)?$_POST['name']:$record->name))); ?>" size="75">
17
+ <br/><span class="setting-description">This is how you'll identify your Group.</span></td>
18
+ </tr>
19
+ <tr class="form-field">
20
+ <td valign="top">Description: </td>
21
+ <td><textarea style="height: 100px;" name="description"><?php echo (($_POST['description'] != null and $record == null)?$_POST['description']:$record->description); ?></textarea>
22
+ <br/><span class="setting-description">A Description of this group.</span></td>
23
+ </tr>
24
+ <tr class="form-field" valign="top">
25
+ <td valign="top">Links: </td>
26
+ <td valign="top">
27
+ <div style="height: 150px; width: 95%; border: 1px solid #8cbdd5; overflow: auto;">
28
+ <table width="100%" cellspacing="0">
29
+ <thead style="background-color: #dedede; padding: 0px; margin: 0px; line-height: 8px; font-size: 14px;">
30
+ <th style="padding-left: 5px; margin: 0px; width: 50%; min-width: 50%;"><strong>Name</strong></th>
31
+ <th style="padding-left: 5px; margin: 0px; width: 50%; min-width: 50%;"><strong>Current Group</strong></th>
32
+ </thead>
33
+ <?php
34
+ for($i = 0; $i < count($links); $i++)
35
+ {
36
+ $link = $links[$i];
37
+ ?>
38
+ <tr style="line-height: 15px; font-size: 12px;<?php echo (($i%2)?' background-color: #efefef;':''); ?>">
39
+ <td style="min-width: 50%; width: 50%"><input type="checkbox" style="display:inline;width: 15px; padding: 0; margin: 0; float: left; text-align: left;" name="link[<?php echo $link->id; ?>]" <?php echo (((isset($_POST['link'][$link->id]) and $_POST['link'][$link->id] == 'on') or (empty($_POST) and $link->group_id == $record->id))?'checked="true"':''); ?>/><span>&nbsp;<?php echo htmlspecialchars(stripslashes($link->name)) . " <strong>(" . $link->slug . ")</strong>"; ?></span></td>
40
+ <td style="min-width: 50%; width: 50%"><?php echo htmlspecialchars(stripslashes($link->group_name)); ?></td>
41
+ </tr>
42
+ <?php
43
+
44
+ }
45
+ ?>
46
+ </table>
47
+ </div>
48
+ <span class="setting-description">Select some links for this group. <strong>Note: each link can only be in one group at a time.</strong></span></td>
49
+ </td>
50
+ </tr>
51
+ </table>
52
+
53
+ <p class="submit">
54
+ <input type="submit" name="Submit" value="Update" />&nbsp;or&nbsp;<a href="?page=<?php echo PRLI_PLUGIN_NAME ?>/prli-groups.php">Cancel</a>
55
+ </p>
56
+
57
+ </form>
58
+ </div>
classes/views/prli-groups/head.php ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <script type="text/javascript" src="<?php echo PRLI_URL; ?>/includes/jquery/js/jquery-1.3.2.min.js"></script>
2
+ <script type="text/javascript">
3
+ jQuery(document).ready(function() {
4
+ jQuery('.group_actions').hide();
5
+ jQuery('.edit_group').hover(
6
+ function() {
7
+ jQuery(this).children(".group_actions").show();
8
+ },
9
+ function() {
10
+ jQuery(this).children(".group_actions").hide();
11
+ }
12
+ );
13
+ });
14
+ </script>
15
+
16
+ <style type="text/css">
17
+
18
+ .advanced_toggle {
19
+ line-height: 34px;
20
+ font-size: 12px;
21
+ font-weight: bold;
22
+ padding-bottom: 10px;
23
+ }
24
+
25
+ .edit_group {
26
+ height: 50px;
27
+ }
28
+ .group_name {
29
+ font-size: 12px;
30
+ font-weight: bold;
31
+ }
32
+ .group_actions {
33
+ padding-top: 5px;
34
+ }
35
+ </style>
classes/views/prli-groups/list.php ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="wrap">
2
+ <?php
3
+ require(PRLI_VIEWS_PATH.'/shared/nav.php');
4
+ ?>
5
+ <h2><img src="<?php echo PRLI_URL.'/images/pretty-link-med.png'; ?>"/>&nbsp;Pretty Link: Groups</h2>
6
+ <div id="message" class="updated fade" style="padding:5px;"><?php echo $prli_message; ?></div>
7
+ <div id="search_pane" style="float: right;">
8
+ <form class="form-fields" name="group_form" method="post" action="">
9
+ <?php wp_nonce_field('prli-groups'); ?>
10
+ <input type="hidden" name="sort" id="sort" value="<?php echo $sort_str; ?>" />
11
+ <input type="hidden" name="sdir" id="sort" value="<?php echo $sdir_str; ?>" />
12
+ <input type="text" name="search" id="search" value="<?php echo $search_str; ?>" style="display:inline;"/>
13
+ <div class="submit" style="display: inline;"><input type="submit" name="Submit" value="Search"/>
14
+ <?php
15
+ if(!empty($search_str))
16
+ {
17
+ ?>
18
+ or <a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-groups.php">Reset</a>
19
+ <?php
20
+ }
21
+ ?>
22
+ </div>
23
+ </form>
24
+ </div>
25
+ <div id="button_bar">
26
+ <p><a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-groups.php&action=new">Add a Pretty Link Group</a></p>
27
+ </div>
28
+
29
+ <?php
30
+ require(PRLI_VIEWS_PATH.'/shared/table-nav.php');
31
+ ?>
32
+ <table class="widefat post fixed" cellspacing="0">
33
+ <thead>
34
+ <tr>
35
+ <th class="manage-column" width="50%"><a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-groups.php&sort=name<?php echo (($sort_str == 'name' and $sdir_str == 'asc')?'&sdir=desc':''); ?>">Name<?php echo (($sort_str == 'name')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_URL.'/images/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a></th>
36
+ <th class="manage-column" width="20%"><a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-groups.php&sort=link_count<?php echo (($sort_str == 'link_count' and $sdir_str == 'asc')?'&sdir=desc':''); ?>">Links<?php echo (($sort_str == 'link_count')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_URL.'/images/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a></th>
37
+ <th class="manage-column" width="30%"><a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-groups.php&sort=created_at<?php echo (($sort_str == 'created_at' and $sdir_str == 'asc')?'&sdir=desc':''); ?>">Created<?php echo ((empty($sort_str) or $sort_str == 'created_at')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_URL.'/images/'.((empty($sort_str) or $sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a></th>
38
+ </tr>
39
+ </thead>
40
+ <?php
41
+
42
+ if($record_count <= 0)
43
+ {
44
+ ?>
45
+ <tr>
46
+ <td colspan="5">No Pretty Link Groups were found</td>
47
+ </tr>
48
+ <?php
49
+ }
50
+ else
51
+ {
52
+ foreach($groups as $group)
53
+ {
54
+ ?>
55
+ <tr>
56
+ <td class="edit_group">
57
+ <a class="group_name" href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-groups.php&action=edit&id=<?php echo $group->id; ?>" title="Edit <?php echo htmlspecialchars(stripslashes($group->name)); ?>"><?php echo htmlspecialchars(stripslashes($group->name)); ?></a>
58
+ <br/>
59
+ <div class="group_actions">
60
+ <a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-groups.php&action=edit&id=<?php echo $group->id; ?>" title="Edit <?php echo htmlspecialchars(stripslashes($group->name)); ?>">Edit</a>&nbsp;|
61
+ <a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-groups.php&action=destroy&id=<?php echo $group->id; ?>" onclick="return confirm('Are you sure you want to delete your <?php echo htmlspecialchars(stripslashes($group->name)); ?> Pretty Link Group?');" title="Delete <?php echo htmlspecialchars(stripslashes($group->name)); ?>">Delete</a>&nbsp;|
62
+ <a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-links.php&group=<?php echo $group->id; ?>" title="View links in <?php echo htmlspecialchars(stripslashes($group->name)); ?>">Links</a>&nbsp;|
63
+ <a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-clicks.php&group=<?php echo $group->id; ?>" title="View hits in <?php echo htmlspecialchars(stripslashes($group->name)); ?>">Hits</a>
64
+ </div>
65
+ </td>
66
+ <td><a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-links.php&group=<?php echo $group->id; ?>" title="View links in <?php echo htmlspecialchars(stripslashes($group->name)); ?>"><?php echo $group->link_count; ?></a></td>
67
+ <td><?php echo $group->created_at; ?></td>
68
+ </tr>
69
+ <?php
70
+ }
71
+ }
72
+ ?>
73
+ <tfoot>
74
+ <tr>
75
+ <th class="manage-column">Name</th>
76
+ <th class="manage-column">Links</th>
77
+ <th class="manage-column">Created</th>
78
+ </tr>
79
+ </tfoot>
80
+ </table>
81
+ <?php
82
+ require(PRLI_VIEWS_PATH.'/shared/table-nav.php');
83
+ ?>
84
+
85
+ </div>
classes/views/prli-groups/new.php ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="wrap">
2
+ <h2><img src="<?php echo PRLI_URL.'/images/pretty-link-med.png'; ?>"/>&nbsp;Pretty Link: Add Group</h2>
3
+
4
+ <?php
5
+ require(PRLI_VIEWS_PATH.'/shared/errors.php');
6
+ ?>
7
+
8
+ <form name="form1" method="post" action="?page=<?php echo PRLI_PLUGIN_NAME ?>/prli-groups.php">
9
+ <input type="hidden" name="action" value="create">
10
+ <?php wp_nonce_field('update-options'); ?>
11
+ <input type="hidden" name="id" value="<?php echo $id; ?>">
12
+
13
+ <table class="form-table">
14
+ <tr class="form-field">
15
+ <td width="75px" valign="top">Name*: </td>
16
+ <td><input type="text" name="name" value="<?php echo (($_POST['name'] != null)?$_POST['name']:''); ?>" size="75">
17
+ <br/><span class="setting-description">This is how you'll identify your Group.</span></td>
18
+ </tr>
19
+ <tr class="form-field">
20
+ <td valign="top">Description: </td>
21
+ <td><textarea style="height: 100px;" name="description"><?php echo (($_POST['description'] != null)?$_POST['description']:''); ?></textarea>
22
+ <br/><span class="setting-description">A Description of this group.</span></td>
23
+ </tr>
24
+ <tr class="form-field" valign="top">
25
+ <td valign="top">Links: </td>
26
+ <td valign="top">
27
+ <div style="height: 150px; width: 95%; border: 1px solid #8cbdd5; overflow: auto;">
28
+ <table width="100%" cellspacing="0">
29
+ <thead style="background-color: #dedede; padding: 0px; margin: 0px; line-height: 8px; font-size: 14px;">
30
+ <th width="50%" style="padding-left: 5px; margin: 0px;"><strong>Name</strong></th>
31
+ <th width="50%" style="padding-left: 5px; margin: 0px;"><strong>Current Group</strong></th>
32
+ </thead>
33
+ <?php
34
+ for($i = 0; $i < count($links); $i++)
35
+ {
36
+ $link = $links[$i];
37
+ ?>
38
+ <tr style="line-height: 15px; font-size: 12px;<?php echo (($i%2)?' background-color: #efefef;':''); ?>">
39
+ <td style="min-width: 50%; width: 50%;"><input type="checkbox" style="width: 15px;" name="link[<?php echo $link->id; ?>]" <?php echo ((isset($_POST['link'][$link->id]) and $_POST['link'][$link->id] == 'on')?'checked="true"':''); ?>/>&nbsp;<?php echo htmlspecialchars(stripslashes($link->name)) . " <strong>(" . $link->slug . ")</strong>"; ?></td>
40
+ <td style="min-width: 50%; width: 50%;"><?php echo htmlspecialchars(stripslashes($link->group_name)); ?></td>
41
+ </tr>
42
+ <?php
43
+
44
+ }
45
+ ?>
46
+ </table>
47
+ </div>
48
+ <span class="setting-description">Select some links for this group. <strong>Note: each link can only be in one group at a time.</strong></span></td>
49
+ </td>
50
+ </tr>
51
+ </table>
52
+ </div>
53
+
54
+ <p class="submit">
55
+ <input type="submit" name="Submit" value="Create" />&nbsp;or&nbsp;<a href="?page=<?php echo PRLI_PLUGIN_NAME ?>/prli-groups.php">Cancel</a>
56
+ </p>
57
+
58
+ </form>
59
+ </div>
classes/views/prli-links/bar.php ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8">
5
+ <meta name="description" content="<?php echo stripslashes($pretty_link->description); ?>" />
6
+ <title><?php echo htmlspecialchars(stripslashes($pretty_link->name)); ?></title>
7
+ </head>
8
+ <frameset rows="66,*" framespacing=0 frameborder=0>
9
+ <frame src="<?php echo PRLI_URL . "/pretty-bar.php?slug=".$pretty_link->slug . "&url=".urlencode($pretty_link_url.$param_string); ?>" noresize frameborder=0 scrolling=no marginwidth=0 marginheight=0 style="">
10
+ <frame src="<?php echo $pretty_link_url.$param_string; ?>" frameborder=0 marginwidth=0 marginheight=0>
11
+ <noframes>Your browser does not support frames. Click <a href="<?php echo $pretty_link_url.$param_string; ?>">here</a> to view the page.</noframes>
12
+ </frameset>
13
+ </html>
classes/views/prli-links/edit.php ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="wrap">
2
+ <h2><img src="<?php echo PRLI_URL.'/images/pretty-link-med.png'; ?>"/>&nbsp;Pretty Link: Edit Link</h2>
3
+
4
+ <?php
5
+ require(PRLI_VIEWS_PATH.'/shared/errors.php');
6
+ ?>
7
+
8
+ <form name="form1" method="post" action="?page=<?php echo PRLI_PLUGIN_NAME ?>/prli-links.php">
9
+ <input type="hidden" name="action" value="update">
10
+ <input type="hidden" name="id" value="<?php echo $id; ?>">
11
+ <?php wp_nonce_field('update-options'); ?>
12
+
13
+ <?php
14
+ require(PRLI_VIEWS_PATH.'/prli-links/form.php');
15
+ ?>
16
+
17
+ <p class="submit">
18
+ <input type="submit" name="Submit" value="Update" />&nbsp;or&nbsp;<a href="?page=<?php echo PRLI_PLUGIN_NAME ?>/prli-links.php">Cancel</a>
19
+ </p>
20
+
21
+ </form>
22
+ </div>
classes/views/prli-links/form.php ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <table class="form-table">
2
+ <tr class="form-field">
3
+ <td width="75px" valign="top">Target URL*: </td>
4
+ <td><textarea style="height: 50px;" name="url"><?php echo htmlentities($values['url'],ENT_COMPAT,'UTF-8'); ?></textarea>
5
+ <a class="toggle">&nbsp;[?]</a>
6
+ <span class="description toggle_pane"><br/>Enter the URL you want to mask and track. Don't forget to start your url with <code>http://</code> or <code>https://</code>. Example: <code>http://www.yoururl.com</code></span></td>
7
+ </tr>
8
+ <tr>
9
+ <td valign="top">Pretty Link*: </td>
10
+ <td><strong><?php echo $prli_blogurl; ?></strong>/<input type="text" name="slug" value="<?php echo $values['slug']; ?>" size="50"/>
11
+ <a class="toggle">&nbsp;[?]</a>
12
+ <span class="toggle_pane description"><br/>Enter the slug (word trailing your main URL) that will form your pretty link and redirect to the URL above.</span></td>
13
+ </tr>
14
+ <tr class="form-field">
15
+ <td width="75px" valign="top">Title: </td>
16
+ <td><input type="text" name="name" value="<?php echo $values['name']; ?>" />
17
+ <a class="toggle">&nbsp;[?]</a>
18
+ <span class="description toggle_pane"><br/>This will act as the title of your Pretty Link. If a name is not entered here then the slug name will be used.</span></td>
19
+ </tr>
20
+ <tr class="form-field">
21
+ <td valign="top">Description: </td>
22
+ <td><textarea style="height: 50px;" name="description"><?php echo $values['description']; ?></textarea>
23
+ </select><a class="toggle">&nbsp;[?]</a>
24
+ <span class="toggle_pane description"><br/>A Description of this link.</span></td>
25
+ </tr>
26
+ </table>
27
+ <h3><a class="options-table-toggle">Link Options <span class="expand-options" style="display: none;">[+]</span><span class="collapse-options">[-]</span></a> <span class="expand-collapse" style="display: none"><a class="expand-all" title="Show all option instructions.">&nbsp;[?]</a><a class="collapse-all" title="Hide all option instructions." style="display: none;">&nbsp;[?]</a></span></h3>
28
+ <table class="options-table">
29
+ <tr>
30
+ <td valign="top" width="50%">
31
+ <h3>Group&nbsp;</h3>
32
+ <div class="pane">
33
+ <select name="group_id" style="padding: 0px; margin: 0px;">
34
+ <option>None</option>
35
+ <?php
36
+ foreach($values['groups'] as $group)
37
+ {
38
+ ?>
39
+ <option value="<?php echo $group['id']; ?>"<?php echo $group['value']; ?>><?php echo $group['name']; ?>&nbsp;</option>
40
+ <?php
41
+ }
42
+ ?>
43
+ </select><a class="toggle">&nbsp;[?]</a>
44
+ <div class="toggle_pane description">Select a group for this link.</div>
45
+ </div>
46
+ <br/>
47
+ <h3>Redirection Type&nbsp;</h3>
48
+ <div class="pane">
49
+ <select id="redirect_type" name="redirect_type" style="padding: 0px; margin: 0px;">
50
+ <option value="307"<?php echo $values['redirect_type']['307']; ?>>307 (Temporary)&nbsp;</option>
51
+ <option value="301"<?php echo $values['redirect_type']['301']; ?>>301 (Permanent)&nbsp;</option>
52
+ <option value="prettybar"<?php echo $values['redirect_type']['prettybar']; ?>>Pretty Bar&nbsp;</option>
53
+ <option value="cloak"<?php echo $values['redirect_type']['cloak']; ?>>Cloaked&nbsp;</option>
54
+ <option value="pixel"<?php echo $values['redirect_type']['pixel']; ?>>Pixel&nbsp;</option>
55
+ </select><a class="toggle">&nbsp;[?]</a>
56
+ <div class="toggle_pane description"><strong>307 Redirection</strong> is the best option if your Target URL could possibly change or need accurate reporting for this link.<br/><br/><strong>301 Redirection</strong> is the best option if you're <strong>NOT</strong> planning on changing your Target URL. Traditionally this option is considered to be the best approach to use for your SEO/SEM efforts but since Pretty Link uses your domain name either way this notion isn't necessarily true for Pretty Links. Also, this option may not give you accurate reporting since proxy and caching servers may go directly to your Target URL once it's cached.<br/><br/><strong>Pretty Bar Redirection</strong> is the best option if you want to show the Pretty Bar at the top of the page when redirecting to the Target URL.<br/><br/><strong>Cloak Redirection</strong> is the best option if you don't want your Target URL to be visible even after the redirection. This way, if a Target URL doesn't redirect to a URL you want to show then this will mask it.<br/><br/><strong>Pixel Redirection</strong> is the option you should select if you want this link to behave like a tracking pixel instead of as a link. This option is useful if you want to track the number of times a page or email is opened. If you place your Pretty Link inside an img tag on the page (Example: <code>&lt;img src="<?php echo $prli_blogurl . "/yourslug"; ?>" /&gt;</code>) then the page load will be tracked as a click and then displayed. Note: If this option is selected your Target URL will simply be ignored if there's a value in it.</div>
57
+ </div>
58
+ <br/>
59
+ <h3>SEO Options</h3>
60
+ <div class="pane">
61
+ <input type="checkbox" name="nofollow" <?php echo $values['nofollow']; ?>/>&nbsp; 'Nofollow' this Link <a class="toggle">&nbsp;[?]</a>
62
+ <div class="toggle_pane description">Select this if you want to add a nofollow code to this link. A nofollow will prevent reputable spiders and robots from following or indexing this link.</div>
63
+ </div>
64
+ </td>
65
+ <td valign="top" width="50%">
66
+ <h3>Tracking Options</h3>
67
+ <div class="pane">
68
+ <input type="checkbox" name="track_me" <?php echo $values['track_me']; ?>/>&nbsp; Track this Link <a class="toggle">&nbsp;[?]</a>
69
+ <div class="toggle_pane description">De-select this option if you don't want this link tracked. If de-selected, this link will still redirect to the target URL but hits on it won't be recorded in the database.</div>
70
+ </div>
71
+ <br/>
72
+ <a name="param_forwarding_pos" height="0"></a>
73
+ <h3>Parameter Forwarding</h3>
74
+ <ul style="list-style-type: none" class="pane">
75
+ <li>
76
+ <input type="radio" name="param_forwarding" value="off" <?php echo $values['param_forwarding']['off']; ?>/>&nbsp;Forward Parameters Off <a class="toggle">&nbsp;[?]</a>
77
+ <div class="toggle_pane description">You may want to leave this option off if you don't need to forward any parameters on to your Target URL.</div>
78
+ </li>
79
+ <li>
80
+ <input type="radio" name="param_forwarding" value="on" <?php echo $values['param_forwarding']['on']; ?> />&nbsp;Standard Parameter Forwarding <a class="toggle">&nbsp;[?]</a>
81
+ <div class="toggle_pane description">Select this option if you want to forward parameters through your pretty link to your Target URL. This will allow you to pass parameters in the standard syntax for example the pretty link <code>http://yoururl.com/coollink?product_id=4&sku=5441</code> will forward to the target URL and append the same parameters like so: <code>http://anotherurl.com?product_id=4&sku=5441</code>.</div>
82
+ </li>
83
+ <li>
84
+ <input type="radio" name="param_forwarding" value="custom" <?php echo $values['param_forwarding']['custom']; ?> />&nbsp;Custom Parameter Forwarding&nbsp;&nbsp;<input type="text" name="param_struct" value="<?php echo $values['param_struct'] ?>" size="25"/> <a class="toggle">&nbsp;[?]</a>
85
+ <div class="toggle_pane description">Select this option if you want to forward parameters through your Pretty Link to your Target URL and write the parameters in a custom format. For example, say I wanted to to have my links look like this: <code>http://yourdomain.com/products/14/4</code> and I wanted this to forward to <code>http://anotherurl.com?product_id=14&dock=4</code> you'd just select this option and enter the following string into the text field <code>/products/%product_id%/%dock%</code>. This will tell Pretty Link where each variable will be located in the URL and what each variable name is.</div>
86
+ </li>
87
+ </ul>
88
+ </td>
89
+ </tr>
90
+ </table>
91
+ <?php
92
+ // Add stuff to the form here
93
+ do_action('prli_link_fields',$id);
94
+ ?>
classes/views/prli-links/head.php ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <script type="text/javascript">
2
+ jQuery(document).ready(function() {
3
+ jQuery('.link_actions').hide();
4
+ jQuery('.edit_link').hover(
5
+ function() {
6
+ jQuery(this).children(".link_actions").show();
7
+ },
8
+ function() {
9
+ jQuery(this).children(".link_actions").hide();
10
+ }
11
+ );
12
+
13
+ jQuery(".options-table").hide();
14
+ jQuery(".options-table-toggle > .expand-options").show();
15
+ jQuery(".options-table-toggle > .collapse-options").hide();
16
+ jQuery(".options-table-toggle").click( function () {
17
+ jQuery(this).children(".expand-options").toggle();
18
+ jQuery(this).children(".collapse-options").toggle();
19
+ jQuery(".expand-collapse").toggle();
20
+ jQuery(".options-table").toggle();
21
+ });
22
+
23
+ jQuery(".toggle_pane").hide();
24
+ jQuery(".toggle").click( function () {
25
+ jQuery(this).next(".toggle_pane").toggle();
26
+ });
27
+ jQuery(".expand-all").click( function () {
28
+ jQuery(".toggle_pane").show();
29
+ jQuery(".expand-all").hide();
30
+ jQuery(".collapse-all").show();
31
+ });
32
+ jQuery(".collapse-all").click( function () {
33
+ jQuery(".toggle_pane").hide();
34
+ jQuery(".expand-all").show();
35
+ jQuery(".collapse-all").hide();
36
+ });
37
+ });
38
+ </script>
39
+
40
+ <style type="text/css">
41
+
42
+ .options-table {
43
+ width: 80%;
44
+ margin-top: 10px;
45
+ }
46
+
47
+ .options-table td {
48
+ padding: 10px;
49
+ background-color: #f4f0db;
50
+ }
51
+
52
+ .options-table h3 {
53
+ padding: 0px;
54
+ margin: 0px;
55
+ padding-left: 10px;
56
+ }
57
+
58
+ .expand-all, .collapse-all, .options-table-toggle {
59
+ cursor: pointer;
60
+ }
61
+
62
+ .toggle {
63
+ line-height: 34px;
64
+ font-size: 12px;
65
+ font-weight: bold;
66
+ padding-bottom: 10px;
67
+ cursor: pointer;
68
+ }
69
+
70
+ .pane {
71
+ background-color: #f4f0db;
72
+ padding-left: 10px;
73
+ }
74
+
75
+ ul.pane li {
76
+ padding: 0px;
77
+ margin: 0px;
78
+ }
79
+
80
+ .edit_link {
81
+ height: 50px;
82
+ }
83
+
84
+ .slug_name {
85
+ font-size: 12px;
86
+ font-weight: bold;
87
+ }
88
+ .link_actions {
89
+ padding-top: 5px;
90
+ }
91
+ </style>
classes/views/prli-links/list.php ADDED
@@ -0,0 +1,185 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="wrap">
2
+ <?php
3
+ require(PRLI_VIEWS_PATH.'/shared/nav.php');
4
+ ?>
5
+ <h2><img src="<?php echo PRLI_URL.'/images/pretty-link-med.png'; ?>"/>&nbsp;Pretty Link: Links</h2>
6
+ <?php
7
+ if(empty($params['group']))
8
+ {
9
+ $permalink_structure = get_option('permalink_structure');
10
+ if(!$permalink_structure or empty($permalink_structure))
11
+ {
12
+ ?>
13
+ <div class="error" style="padding-top: 5px; padding-bottom: 5px;"><strong>WordPress Must be Configured:</strong> Pretty Link won't work until you select a Permalink Structure other than "Default" ... <a href="<?php echo $prli_siteurl; ?>/wp-admin/options-permalink.php">Permalink Settings</a></div>
14
+ <?php
15
+ }
16
+ ?>
17
+ <div id="message" class="updated fade" style="padding:5px;"><?php echo $prli_message; ?></div>
18
+ <?php do_action('prli-link-message'); ?>
19
+ <div id="search_pane" style="float: right;">
20
+ <form class="form-fields" name="link_form" method="post" action="">
21
+ <?php wp_nonce_field('prli-links'); ?>
22
+ <input type="hidden" name="sort" id="sort" value="<?php echo $sort_str; ?>" />
23
+ <input type="hidden" name="sdir" id="sort" value="<?php echo $sdir_str; ?>" />
24
+ <input type="text" name="search" id="search" value="<?php echo $search_str; ?>" style="display:inline;"/>
25
+ <div class="submit" style="display: inline;"><input type="submit" name="Submit" value="Search"/>
26
+ <?php
27
+ if(!empty($search_str))
28
+ {
29
+ ?>
30
+ or <a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-links.php">Reset</a>
31
+ <?php
32
+ }
33
+ ?>
34
+ </div>
35
+ </form>
36
+ </div>
37
+ <div id="button_bar">
38
+ <p><a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-add-link.php"><img src="<?php echo PRLI_URL.'/images/pretty-link-add.png'; ?>"/> Add a Pretty Link</a>
39
+ &nbsp;|&nbsp;<a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-options.php">Options</a>
40
+ &nbsp;|&nbsp;<a href="http://blairwilliams.com/plintro">Watch Pretty Link Intro Video</a>
41
+ <?php do_action('prli-link-nav'); ?>
42
+ </p>
43
+ </div>
44
+ <?php
45
+ }
46
+ else
47
+ {
48
+ ?>
49
+ <h3><?php echo $prli_message; ?></h3>
50
+ <a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-groups.php">&laquo Back to Groups</a>
51
+ <br/><br/>
52
+ <?php
53
+ }
54
+ ?>
55
+ <form class="form-fields link-list-form" name="link_list_form" method="post" action="">
56
+ <input type="hidden" name="action" value="list-form"/>
57
+ <?php $footer = false; require(PRLI_VIEWS_PATH.'/shared/link-table-nav.php'); ?>
58
+ <table class="widefat post fixed" cellspacing="0">
59
+ <thead>
60
+ <tr>
61
+ <th class="manage-column" width="30%"><?php do_action('prli-list-header-icon'); ?><a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-links.php&sort=name<?php echo (($sort_str == 'name' and $sdir_str == 'asc')?'&sdir=desc':''); ?>">Name<?php echo (($sort_str == 'name')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_URL.'/images/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a></th>
62
+ <?php do_action('prli_link_column_header'); ?>
63
+ <th class="manage-column" width="10%"><a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-links.php&sort=clicks<?php echo (($sort_str == 'clicks' and $sdir_str == 'asc')?'&sdir=desc':''); ?>">Hits / Uniq<?php echo (($sort_str == 'clicks')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_URL.'/images/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a></th>
64
+ <th class="manage-column" width="5%"><a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-links.php&sort=group_name<?php echo (($sort_str == 'group_name' and $sdir_str == 'asc')?'&sdir=desc':''); ?>">Group<?php echo (($sort_str == 'group_name')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_URL.'/images/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a></th>
65
+ <th class="manage-column" width="12%"><a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-links.php&sort=created_at<?php echo (($sort_str == 'created_at' and $sdir_str == 'asc')?'&sdir=desc':''); ?>">Created<?php echo ((empty($sort_str) or $sort_str == 'created_at')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_URL.'/images/'.((empty($sort_str) or $sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a></th>
66
+ <th class="manage-column" width="20%"><a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-links.php&sort=slug<?php echo (($sort_str == 'slug' and $sdir_str == 'asc')?'&sdir=desc':''); ?>">Links<?php echo (($sort_str == 'slug')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_URL.'/images/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a></th>
67
+ </tr>
68
+ </thead>
69
+ <?php
70
+
71
+ if($record_count <= 0)
72
+ {
73
+ ?>
74
+ <tr>
75
+ <td colspan="5">Watch this video to see how to get started! -- <a href="http://blairwilliams.com/xba"><strong>Get More Video Tutorials like this one...</strong></a><br/><object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/i6C2Bljby3k&hl=en&fs=1&rel=0&color1=0x3a3a3a&color2=0x999999"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/i6C2Bljby3k&hl=en&fs=1&rel=0&color1=0x3a3a3a&color2=0x999999" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object></td>
76
+ </tr>
77
+ <?php
78
+ }
79
+ else
80
+ {
81
+ global $prli_blogurl;
82
+ foreach($links as $link)
83
+ {
84
+ $struct = PrliUtils::get_permalink_pre_slug_uri();
85
+ $pretty_link_url = "{$prli_blogurl}{$struct}{$link->slug}";
86
+ ?>
87
+ <tr style="min-height: 75px; height: 75px;">
88
+ <td class="edit_link">
89
+
90
+ <?php do_action('prli_list_icon',$link->id); ?>
91
+ <?php if( $link->redirect_type == 'prettybar' ) { ?>
92
+ <img src="<?php echo PRLI_URL.'/images/pretty-link-small.png'; ?>" title="Using PrettyBar" width="13px" height="13px" />
93
+ <?php }
94
+ else if( $link->redirect_type == 'cloak' ) { ?>
95
+ <img src="<?php echo PRLI_URL.'/images/ultra-cloak.png'; ?>" title="Using Ultra Cloak" width="13px" height="13px" />
96
+ <?php }
97
+ else if( $link->redirect_type == 'pixel' ) { ?>
98
+ <img src="<?php echo PRLI_URL.'/images/pixel_track.png'; ?>" width="13px" height="13px" name="Pixel Tracking Enabled" alt="Pixel Tracking Enabled" title="Pixel Tracking Enabled"/>&nbsp;
99
+ <?php }
100
+ else if( $link->redirect_type == '307' ) { ?>
101
+ <span title="Temporary Redirection (307)" style="font-size: 14px; line-height: 14px; padding: 0px; margin: 0px; color: green;"><strong>T</strong></span>&nbsp;
102
+ <?php }
103
+ else if( $link->redirect_type == '301' ) { ?>
104
+ <span title="Permanent Redirection (301)" style="font-size: 14px; line-height: 14px; padding: 0px; margin: 0px; color: green;"><strong>P</strong></span>&nbsp;
105
+ <?php } ?>
106
+
107
+ <?php if( $link->nofollow ) { ?>
108
+ <img src="<?php echo PRLI_URL.'/images/nofollow.png'; ?>" title="nofollow" width="13px" height="13px" />
109
+ <?php }
110
+
111
+ if($link->param_forwarding == 'on')
112
+ {
113
+ ?>
114
+ <img src="<?php echo PRLI_URL.'/images/forward_params.png'; ?>" width="13px" height="13px" name="Standard Parameter Forwarding Enabled" alt="Standard Parameter Forwarding Enabled" title="Standard Parameter Forwarding Enabled"/>&nbsp;
115
+ <?php
116
+ }
117
+ else if($link->param_forwarding == 'custom')
118
+ {
119
+ ?>
120
+ <img src="<?php echo PRLI_URL.'/images/forward_params.png'; ?>" width="13px" height="13px" name="Custom Parameter Forwarding Enabled" alt="Custom Parameter Forwarding Enabled" title="Custom Parameter Forwarding Enabled"/>&nbsp;
121
+ <?php
122
+ }
123
+ ?>
124
+
125
+ <?php if( $link->redirect_type != 'pixel' )
126
+ {
127
+ ?>
128
+ <a href="<?php echo $link->url; ?>" target="_blank" title="Visit Target URL: <?php echo $link->url; ?> in a New Window"><img src="<?php echo PRLI_URL.'/images/url_icon.gif'; ?>" width="13px" height="13px" name="Visit" alt="Visit"/></a>&nbsp;
129
+ <a href="<?php echo $pretty_link_url; ?>" target="_blank" title="Visit Pretty Link: <?php echo $pretty_link_url; ?> in a New Window"><img src="<?php echo PRLI_URL.'/images/url_icon.gif'; ?>" width="13px" height="13px" name="Visit" alt="Visit"/></a>&nbsp;
130
+ <?php
131
+ }
132
+ ?>
133
+ <a class="slug_name" href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-links.php&action=edit&id=<?php echo $link->id; ?>" title="Edit <?php echo stripslashes($link->name); ?>"><?php echo stripslashes($link->name); ?></a>
134
+ <br/>
135
+ <div class="link_actions">
136
+ <a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-links.php&action=edit&id=<?php echo $link->id; ?>" title="Edit <?php echo $link->slug; ?>">Edit</a>&nbsp;|
137
+ <a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-links.php&action=destroy&id=<?php echo $link->id; ?>" onclick="return confirm('Are you sure you want to delete your <?php echo $link->name; ?> Pretty Link? This will delete the Pretty Link and all of the statistical data about it in your database.');" title="Delete <?php echo $link->slug; ?>">Delete</a>
138
+ <?php if( $link->track_me ) { ?>
139
+ |&nbsp;<a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-links.php&action=reset&id=<?php echo $link->id; ?>" onclick="return confirm('Are you sure you want to reset your <?php echo $link->name; ?> Pretty Link? This will delete all of the statistical data about this Pretty Link in your database.');" title="Reset <?php echo $link->name; ?>">Reset</a>&nbsp;|
140
+ <a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-clicks.php&l=<?php echo $link->id; ?>" title="View clicks for <?php echo $link->slug; ?>">Hits</a>
141
+ <?php do_action('prli-link-action',$link->id); ?>
142
+ <?php } ?>
143
+ <?php if( $link->redirect_type != 'pixel' )
144
+ {
145
+ ?>
146
+ |&nbsp;<a href="http://twitter.com/home?status=<?php echo $pretty_link_url; ?>" target="_blank" title="Post <?php echo $pretty_link_url; ?> to Twitter">Tweet</a>&nbsp;|
147
+ <a href="mailto:?subject=Pretty Link&body=<?php echo $pretty_link_url; ?>" target="_blank" title="Send <?php echo $pretty_link_url; ?> in an Email">Email</a>
148
+ <?php
149
+ }
150
+ ?>
151
+ </div>
152
+ </td>
153
+ <?php do_action('prli_link_column_row',$link->id); ?>
154
+ <td><?php echo (($link->track_me)?"<a href=\"?page=".PRLI_PLUGIN_NAME."/prli-clicks.php&l=$link->id\" title=\"View clicks for $link->slug\">$link->clicks/$link->uniques</a>":"<img src=\"".PRLI_URL."/images/not_tracking.png\" title=\"This link isn't being tracked\"/>"); ?></td>
155
+ <td><a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-links.php&group=<?php echo $link->group_id; ?>"><?php echo $link->group_name; ?></a></td>
156
+ <td><?php echo $link->created_at; ?></td>
157
+ </td>
158
+ <td><input type='text' style="font-size: 10px; width: 100%;" readonly="true" onclick='this.select();' onfocus='this.select();' value='<?php echo $pretty_link_url; ?>' /><br/>
159
+ <?php if( $link->redirect_type != 'pixel' )
160
+ {
161
+ ?>
162
+ <span style="font-size: 8px;" title="<?php echo $link->url; ?>"><strong>Target URL:</strong> <?php echo htmlentities((substr($link->url,0,47) . ((strlen($link->url) >= 47)?'...':'')),ENT_COMPAT,'UTF-8'); ?></span></td>
163
+ <?php
164
+ }
165
+ ?>
166
+ </tr>
167
+ <?php
168
+ }
169
+ }
170
+ ?>
171
+ <tfoot>
172
+ <tr>
173
+ <th class="manage-column"><?php do_action('prli-list-header-icon'); ?>Name</th>
174
+ <?php do_action('prli_link_column_footer'); ?>
175
+ <th class="manage-column">Hits / Uniq</th>
176
+ <th class="manage-column">Group</th>
177
+ <th class="manage-column">Created</th>
178
+ <th class="manage-column">Links</th>
179
+ </tr>
180
+ </tfoot>
181
+ </table>
182
+ <?php $footer = true; require(PRLI_VIEWS_PATH.'/shared/link-table-nav.php'); ?>
183
+ </form>
184
+
185
+ </div>
classes/views/prli-links/new.php ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="wrap">
2
+ <h2><img src="<?php echo PRLI_URL.'/images/pretty-link-med.png'; ?>"/>&nbsp;Pretty Link: Add Link</h2>
3
+
4
+ <?php
5
+ require(PRLI_VIEWS_PATH.'/shared/errors.php');
6
+ ?>
7
+
8
+ <form name="form1" method="post" action="?page=<?php echo PRLI_PLUGIN_NAME ?>/prli-links.php">
9
+ <input type="hidden" name="action" value="create">
10
+ <?php wp_nonce_field('update-options'); ?>
11
+ <input type="hidden" name="id" value="<?php echo $id; ?>">
12
+
13
+ <?php
14
+ require(PRLI_VIEWS_PATH.'/prli-links/form.php');
15
+ ?>
16
+
17
+ <p class="submit">
18
+ <input type="submit" name="Submit" value="Create" />&nbsp;or&nbsp;<a href="?page=<?php echo PRLI_PLUGIN_NAME ?>/prli-links.php">Cancel</a>
19
+ </p>
20
+
21
+ </form>
22
+ </div>
classes/views/prli-links/ultra-cloak.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8">
5
+ <title><?php echo htmlspecialchars(stripslashes($pretty_link->name)); ?></title>
6
+ <meta name="description" content="<?php echo stripslashes($pretty_link->description); ?>" />
7
+ </head>
8
+ <frameset rows="*" framespacing=0 frameborder=0>
9
+ <frame src="<?php echo $pretty_link_url.$param_string; ?>" frameborder=0 marginwidth=0 marginheight=0>
10
+ <noframes>Your browser does not support frames. Click <a href="<?php echo $pretty_link_url.$param_string; ?>">here</a> to view the page.</noframes>
11
+ </frameset>
12
+ </html>
classes/views/prli-options/form.php ADDED
@@ -0,0 +1,190 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="wrap">
2
+ <div id="icon-options-general" class="icon32"><br /></div>
3
+ <h2 id="prli_title">Pretty Link: Options</h2>
4
+ <br/>
5
+ <?php
6
+ $permalink_structure = get_option('permalink_structure');
7
+ if(!$permalink_structure or empty($permalink_structure))
8
+ {
9
+ ?>
10
+ <div class="error" style="padding-top: 5px; padding-bottom: 5px;"><strong>WordPress Must be Configured:</strong> Pretty Link won't work until you select a Permalink Structure other than "Default" ... <a href="<?php echo $prli_siteurl; ?>/wp-admin/options-permalink.php">Permalink Settings</a></div>
11
+ <?php
12
+ }
13
+ ?>
14
+ <?php do_action('prli-options-message'); ?>
15
+ <a href="admin.php?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-links.php">&laquo Pretty Link Admin</a>
16
+
17
+ <form name="form1" method="post" action="">
18
+ <input type="hidden" name="<?php echo $hidden_field_name; ?>" value="Y">
19
+ <?php wp_nonce_field('update-options'); ?>
20
+
21
+ <h3><a class="toggle link-toggle-button">Link Option Defaults <span class="link-expand" style="display: none;">[+]</span><span class="link-collapse">[-]</span></a></h3>
22
+ <ul class="link-toggle-pane" style="list-style-type: none;">
23
+ <li>
24
+ <input type="checkbox" name="<?php echo $link_track_me; ?>" <?php echo (($prli_options->link_track_me != 0)?'checked="true"':''); ?>/>&nbsp; Track Link
25
+ <br/><span class="description">Default all new links to be tracked.</span>
26
+ </li>
27
+ <li>
28
+ <input type="checkbox" name="<?php echo $link_nofollow; ?>" <?php echo (($prli_options->link_nofollow != 0)?'checked="true"':''); ?>/>&nbsp; Add <code>nofollow</code> to Link
29
+ <br/><span class="description">Add the <code>nofollow</code> attribute by default to new links.</span>
30
+ </li>
31
+ <li>
32
+ <input type="checkbox" name="<?php echo $link_prefix; ?>" <?php echo (($prli_options->link_prefix != 0)?'checked="true"':''); ?>/>&nbsp; Use a prefix from your Permalink structure in your Pretty Links
33
+ <br/><span class="description">This option should only be checked if you have elements in your permalink structure that must be present in any link on your site. For example, some WordPress installs don't have the benefit of full rewrite capabilities and in this case you'd need an index.php included in each link (http://example.com/index.php/mycoolslug instead of http://example.com/mycoolslug). If this is the case for you then check this option but the vast majority of users will want to keep this unchecked.</span>
34
+ </li>
35
+ <li>
36
+ <h4>Default Link Redirection Type:</h4>
37
+ <select name="<?php echo $link_redirect_type; ?>">
38
+ <option value="307" <?php echo (($prli_options->link_redirect_type == '307')?' selected="selected"':''); ?>/>Temporary (307)</option>
39
+ <option value="301" <?php echo (($prli_options->link_redirect_type == '301')?' selected="selected"':''); ?>/>Permanent (301)</option>
40
+ <option value="prettybar" <?php echo (($prli_options->link_redirect_type == 'prettybar')?' selected="selected"':''); ?>/>Pretty Bar</option>
41
+ <option value="cloak" <?php echo (($prli_options->link_redirect_type == 'cloak')?' selected="selected"':''); ?>/>Cloak</option>
42
+ <option value="pixel" <?php echo (($prli_options->link_redirect_type == 'pixel')?' selected="selected"':''); ?>/>Pixel</option>
43
+ </select>
44
+ <br/><span class="description">Select the type of redirection you want your newly created links to have.</span>
45
+ </li>
46
+ </ul>
47
+ <h3><a class="toggle prettybar-toggle-button">PrettyBar Options <span class="prettybar-expand" style="display: none;">[+]</span><span class="prettybar-collapse">[-]</span></a></h3>
48
+ <table class="prettybar-toggle-pane form-table">
49
+ <tr class="form-field">
50
+ <td valign="top" width="15%"><?php _e("Image URL:", $prettybar_image_url ); ?> </td>
51
+ <td width="85%">
52
+ <input type="text" name="<?php echo $prettybar_image_url; ?>" value="<?php echo $prli_options->prettybar_image_url; ?>"/>
53
+ <br/><span class="description">If set, this will replace the logo image on the PrettyBar. The image that this URL references should be 48x48 Pixels to fit.</span>
54
+ </td>
55
+ </tr>
56
+ <tr class="form-field">
57
+ <td valign="top" width="15%"><?php _e("Background Image URL:", $prettybar_background_image_url ); ?> </td>
58
+ <td width="85%">
59
+ <input type="text" name="<?php echo $prettybar_background_image_url; ?>" value="<?php echo $prli_options->prettybar_background_image_url; ?>"/>
60
+ <br/><span class="description">If set, this will replace the background image on PrettyBar. The image that this URL references should be 65px tall -- this image will be repeated horizontally across the bar.</span>
61
+ </td>
62
+ </tr>
63
+ <tr>
64
+ <td valign="top" width="15%"><?php _e("Background Color:", $prettybar_color ); ?> </td>
65
+ <td width="85%">
66
+ #<input type="text" name="<?php echo $prettybar_color; ?>" value="<?php echo $prli_options->prettybar_color; ?>" size="6"/>
67
+ <br/><span class="description">This will alter the background color of the PrettyBar if you haven't specified a PrettyBar background image.</span>
68
+ </td>
69
+ </tr>
70
+ <tr>
71
+ <td valign="top" width="15%"><?php _e("Text Color:", $prettybar_text_color ); ?> </td>
72
+ <td width="85%">
73
+ #<input type="text" name="<?php echo $prettybar_text_color; ?>" value="<?php echo $prli_options->prettybar_text_color; ?>" size="6"/>
74
+ <br/><span class="description">If not set, this defaults to black (RGB value <code>#000000</code>) but you can change it to whatever color you like.</span>
75
+ </td>
76
+ </tr>
77
+ <tr>
78
+ <td valign="top" width="15%"><?php _e("Link Color:", $prettybar_link_color ); ?> </td>
79
+ <td width="85%">
80
+ #<input type="text" name="<?php echo $prettybar_link_color; ?>" value="<?php echo $prli_options->prettybar_link_color; ?>" size="6"/>
81
+ <br/><span class="description">If not set, this defaults to blue (RGB value <code>#0000ee</code>) but you can change it to whatever color you like.</span>
82
+ </td>
83
+ </tr>
84
+ <tr>
85
+ <td valign="top" width="15%"><?php _e("Link Hover Color:", $prettybar_hover_color ); ?> </td>
86
+ <td width="85%">
87
+ #<input type="text" name="<?php echo $prettybar_hover_color; ?>" value="<?php echo $prli_options->prettybar_hover_color; ?>" size="6"/>
88
+ <br/><span class="description">If not set, this defaults to RGB value <code>#ababab</code> but you can change it to whatever color you like.</span>
89
+ </td>
90
+ </tr>
91
+ <tr>
92
+ <td valign="top" width="15%"><?php _e("Visited Link Color:", $prettybar_visited_color ); ?> </td>
93
+ <td width="85%">
94
+ #<input type="text" name="<?php echo $prettybar_visited_color; ?>" value="<?php echo $prli_options->prettybar_visited_color; ?>" size="6"/>
95
+ <br/><span class="description">If not set, this defaults to RGB value <code>#551a8b</code> but you can change it to whatever color you like.</span>
96
+ </td>
97
+ </tr>
98
+ <tr>
99
+ <td valign="top" width="15%"><?php _e("Title Char Limit*:", $prettybar_title_limit ); ?> </td>
100
+ <td width="85%">
101
+ <input type="text" name="<?php echo $prettybar_title_limit; ?>" value="<?php echo $prli_options->prettybar_title_limit; ?>" size="4"/>
102
+ <br/><span class="description">If your Website has a long title then you may need to adjust this value so that it will all fit on the PrettyBar. It is recommended that you keep this value to <code>30</code> characters or less so the PrettyBar's format looks good across different browsers and screen resolutions.</span>
103
+ </td>
104
+ </tr>
105
+ <tr>
106
+ <td valign="top" width="15%"><?php _e("Description Char Limit*:", $prettybar_desc_limit ); ?> </td>
107
+ <td width="85%">
108
+ <input type="text" name="<?php echo $prettybar_desc_limit; ?>" value="<?php echo $prli_options->prettybar_desc_limit; ?>" size="4"/>
109
+ <br/><span class="description">If your Website has a long Description (tagline) then you may need to adjust this value so that it will all fit on the PrettyBar. It is recommended that you keep this value to <code>40</code> characters or less so the PrettyBar's format looks good across different browsers and screen resolutions.</span>
110
+ </td>
111
+ </tr>
112
+ <tr>
113
+ <td valign="top" width="15%"><?php _e("Target URL Char Limit*:", $prettybar_link_limit ); ?> </td>
114
+ <td width="85%">
115
+ <input type="text" name="<?php echo $prettybar_link_limit; ?>" value="<?php echo $prli_options->prettybar_link_limit; ?>" size="4"/>
116
+ <br/><span class="description">If you link to a lot of large Target URLs you may want to adjust this value. It is recommended that you keep this value to <code>40</code> or below so the PrettyBar's format looks good across different browsers and URL sizes</span>
117
+ </td>
118
+ </tr>
119
+ <tr>
120
+ <td colspan="2">
121
+ <input type="checkbox" name="<?php echo $prettybar_show_title; ?>" <?php echo (($prli_options->prettybar_show_title != 0)?'checked="true"':''); ?>/>&nbsp; Show Pretty Bar Title
122
+ <br/><span class="description">Make sure this is checked if you want the title of your blog (and link) to show up on the PrettyBar.</span>
123
+ </td>
124
+ </tr>
125
+ <tr>
126
+ <td colspan="2">
127
+ <input type="checkbox" name="<?php echo $prettybar_show_description; ?>" <?php echo (($prli_options->prettybar_show_description != 0)?'checked="true"':''); ?>/>&nbsp; Show Pretty Bar Description
128
+ <br/><span class="description">Make sure this is checked if you want your site description to show up on the PrettyBar.</span>
129
+ </td>
130
+ </tr>
131
+ <tr>
132
+ <td colspan="2">
133
+ <input type="checkbox" name="<?php echo $prettybar_show_share_links; ?>" <?php echo (($prli_options->prettybar_show_share_links != 0)?'checked="true"':''); ?>/>&nbsp; Show Pretty Bar Share Links
134
+ <br/><span class="description">Make sure this is checked if you want "share links" to show up on the PrettyBar.</span>
135
+ </td>
136
+ </tr>
137
+ <tr>
138
+ <td colspan="2">
139
+ <input type="checkbox" name="<?php echo $prettybar_show_target_url_link; ?>" <?php echo (($prli_options->prettybar_show_target_url_link != 0)?'checked="true"':''); ?>/>&nbsp; Show Pretty Bar Target URL
140
+ <br/><span class="description">Make sure this is checked if you want a link displaying the Target URL to show up on the PrettyBar.</span>
141
+ </td>
142
+ </tr>
143
+
144
+ <?php do_action('prli-prettybar-options'); ?>
145
+ </table>
146
+ <h3><a class="toggle reporting-toggle-button">Reporting Options <span class="reporting-expand" style="display: none;">[+]</span><span class="reporting-collapse">[-]</span></a></h3>
147
+ <table class="reporting-toggle-pane form-table">
148
+ <tr class="form-field">
149
+ <td valign="top">Excluded IP Addresses: </td>
150
+ <td>
151
+ <input type="text" name="<?php echo $prli_exclude_ips; ?>" value="<?php echo $prli_options->prli_exclude_ips; ?>">
152
+ <br/><span class="description">Enter IP Addresses or IP Ranges you want to exclude from your Hit data and Stats. Each IP Address should be separated by commas. Example: <code>192.168.0.1, 192.168.2.1, 192.168.3.4 or 192.168.*.*</code></span>
153
+ <br/><span class="description" style="color: red;">Your Current IP Address is <?php echo $_SERVER['REMOTE_ADDR']; ?></span>
154
+ </td>
155
+ </tr>
156
+ <tr>
157
+ <td colspan="2">
158
+ <input type="checkbox" class="filter-robots-checkbox" name="<?php echo $filter_robots; ?>" <?php echo (($prli_options->filter_robots != 0)?'checked="true"':''); ?>/>&nbsp; Filter Robots
159
+ <br/><span class="description">Filter known Robots and unidentifiable browser clients from your hit data, stats and reports. <code>IMPORTANT: Any robot hits recorded with any version of Pretty Link before 1.4.22 won't be filtered by this setting.</code></span>
160
+ <table class="option-pane whitelist-ips">
161
+ <tr class="form-field">
162
+ <td valign="top">Whitelist IP Addresses: </td>
163
+ <td>
164
+ <input type="text" name="<?php echo $whitelist_ips; ?>" value="<?php echo $prli_options->whitelist_ips; ?>">
165
+ <br/><span class="description">Enter IP Addresses or IP Ranges you want to always include in your Hit data and Stats even if they are flagged as robots. Each IP Address should be separated by commas. Example: <code>192.168.0.1, 192.168.2.1, 192.168.3.4 or 192.168.*.*</code></span>
166
+ </td>
167
+ </tr>
168
+ </table>
169
+ </td>
170
+ </tr>
171
+ </table>
172
+
173
+ <p class="submit">
174
+ <input type="submit" name="Submit" value="<?php _e('Update Options', $prli_domain ) ?>" />
175
+ </p>
176
+
177
+
178
+ <h3>Trim Hit Database</h3>
179
+
180
+ <p><a href="<?php echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI'] ); ?>&action=clear_30day_clicks" onclick="return confirm('***WARNING*** If you click OK you will delete ALL of the Hit data that is older than 30 days. Your data will be gone forever -- no way to retreive it. Do not click OK unless you are absolutely sure you want to delete this data because there is no going back!');">Delete Hits older than 30 days</a>
181
+ <br/><span class="description">This will clear all hits in your database that are older than 30 days.</span></p>
182
+
183
+ <p><a href="<?php echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI'] ); ?>&action=clear_90day_clicks" onclick="return confirm('***WARNING*** If you click OK you will delete ALL of the Hit data that is older than 90 days. Your data will be gone forever -- no way to retreive it. Do not click OK unless you are absolutely sure you want to delete this data because there is no going back!');">Delete Hits older than 90 days</a>
184
+ <br/><span class="description">This will clear all hits in your database that are older than 90 days.</span></p>
185
+
186
+ <p><a href="<?php echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI'] ); ?>&action=clear_all_clicks" onclick="return confirm('***WARNING*** If you click OK you will delete ALL of the Hit data in your Database. Your data will be gone forever -- no way to retreive it. Do not click OK unless you are absolutely sure you want to delete all your data because there is no going back!');">Delete All Hits</a>
187
+ <br/><span class="description">Seriously, only click this link if you want to delete all the Hit data in your database.</span></p>
188
+
189
+ </form>
190
+ </div>
classes/views/prli-options/head.php ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <script type="text/javascript">
2
+ jQuery(document).ready(function() {
3
+ jQuery('.prettybar-expand').show();
4
+ jQuery('.prettybar-collapse').hide();
5
+ jQuery('.prettybar-toggle-pane').hide();
6
+ jQuery('.prettybar-toggle-button').click(function() {
7
+ jQuery('.prettybar-toggle-pane').toggle();
8
+ jQuery('.prettybar-expand').toggle();
9
+ jQuery('.prettybar-collapse').toggle();
10
+ });
11
+
12
+ jQuery('.reporting-expand').show();
13
+ jQuery('.reporting-collapse').hide();
14
+ jQuery('.reporting-toggle-pane').hide();
15
+ jQuery('.reporting-toggle-button').click(function() {
16
+ jQuery('.reporting-toggle-pane').toggle();
17
+ jQuery('.reporting-expand').toggle();
18
+ jQuery('.reporting-collapse').toggle();
19
+ });
20
+
21
+ jQuery('.link-expand').show();
22
+ jQuery('.link-collapse').hide();
23
+ jQuery('.link-toggle-pane').hide();
24
+ jQuery('.link-toggle-button').click(function() {
25
+ jQuery('.link-toggle-pane').toggle();
26
+ jQuery('.link-expand').toggle();
27
+ jQuery('.link-collapse').toggle();
28
+ });
29
+
30
+ if (jQuery('.filter-robots-checkbox').is(':checked')) {
31
+ jQuery('.whitelist-ips').show();
32
+ }
33
+ else {
34
+ jQuery('.whitelist-ips').hide();
35
+ }
36
+
37
+ jQuery('.filter-robots-checkbox').change(function() {
38
+ if (jQuery('.filter-robots-checkbox').is(':checked')) {
39
+ jQuery('.whitelist-ips').show();
40
+ }
41
+ else {
42
+ jQuery('.whitelist-ips').hide();
43
+ }
44
+ });
45
+ });
46
+ </script>
47
+
48
+ <style type="text/css">
49
+ .toggle {
50
+ cursor: pointer;
51
+ }
52
+ </style>
53
+
54
+ <?php do_action('prli-options-head'); ?>
classes/views/prli-options/pro-settings.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="wrap">
2
+ <div id="icon-options-general" class="icon32"><br /></div>
3
+ <h2 id="prli_title">Pretty Link: Pro Account Information</h2>
4
+ <?php $this_uri = preg_replace('#&.*?$#', '', str_replace( '%7E', '~', $_SERVER['REQUEST_URI'])); ?>
5
+ <h3>Pretty Link Pro Account Information</h3>
6
+ <?php if($prli_update->pro_is_installed_and_authorized()) { ?>
7
+ <p><a href="http://prettylinkpro.com/user-manual">User Manual</a></p>
8
+ <?php } ?>
9
+ <?php echo $prli_update->pro_cred_form(); ?>
10
+ <?php if($prli_update->pro_is_installed_and_authorized()) { ?>
11
+ <div><p><strong>Pretty Link Pro is Installed</strong></p><p><a href="<?php echo $this_uri; ?>&action=pro-uninstall" onclick="return confirm('Are you sure you want to Un-Install Pretty Link Pro? This will delete your pro username & password from your local database, remove all the pro software but will leave all your data intact incase you want to reinstall sometime :) ...');" title="Downgrade to Pretty Link Standard" >Downgrade to Pretty Link Standard</a></p><br/><p><strong>Edit/Update Your Profile:</strong><br/><span class="description">Use your account username and password to log in to your Account and Affiliate Control Panel</span></p><p><a href="http://prettylinkpro.com/amember/member.php">Account</a>&nbsp;|&nbsp;<a href="http://prettylinkpro.com/amember/aff_member.php">Affiliate Control Panel</a></div>
12
+
13
+ <?php } else { ?>
14
+ <p><strong>Ready to take your marketing efforts to the next level?</strong><br/>
15
+ <a href="http://prettylinkpro.com">Pretty Link Pro</a> will help you automate, share, test and get more clicks &amp; conversions from your Pretty Links!<br/><br/><a href="http://prettylinkpro.com">Learn More &raquo;</a></p>
16
+ <?php } ?>
17
+
18
+ </div>
classes/views/prli-tools/form.php ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="wrap">
2
+ <?php
3
+ require(PRLI_VIEWS_PATH.'/shared/nav.php');
4
+ ?>
5
+ <h2><img src="<?php echo PRLI_URL.'/images/pretty-link-med.png'; ?>"/>&nbsp;Pretty Link: Tools</h2>
6
+ <h3>Bookmarklet: </h3>
7
+ <p><strong><a href="javascript:location.href='<?php echo PRLI_URL; ?>/prli-bookmarklet.php?k=<?php echo $prli_options->bookmarklet_auth; ?>&target_url='+escape(location.href);">Get PrettyLink</a></strong><br/>
8
+ <span class="description">Just drag this "Get PrettyLink" link to your toolbar to install the bookmarklet. As you browse the web, you can just click this bookmarklet to create a pretty link from the current url you're looking at.&nbsp;&nbsp;<a href="http://blairwilliams.com/pretty-link-bookmarklet/">(more help)</a></span>
9
+ <p><strong>Note:</strong> iPhone users can install this bookmarklet in their Safari to create Pretty Links with the following steps:<br/>
10
+ <ol>
11
+ <li>Copy this text:<br/><code>javascript:location.href='<?php echo PRLI_URL; ?>/prli-bookmarklet.php?k=<?php echo $prli_options->bookmarklet_auth; ?>&target_url='+escape(location.href);</code></li>
12
+ <li>Tap the + button at the bottom of the screen</li>
13
+ <li>Choose "Add Bookmark", rename your bookmark to "Get PrettyLink" (or whatever you want) and then "Save"</li>
14
+ <li>Navigate through your Bookmarks folders until you find the new bookmark and click "Edit"</li>
15
+ <li>Delete all the text from the address</li>
16
+ <li>Paste the text you copied in Step 1 into the address field</li>
17
+ <li>To save the changes hit "Bookmarks" and <strong>you're done!</strong> Now when you find a page you want to save off as a Pretty Link, just click the "Bookmarks" icon at the bottom of the screen and select your link.</li>
18
+ </ol>
19
+ <?php do_action('prli-add-tools'); ?>
20
+ </div>
classes/views/shared/errors.php ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if( $errors != null and count($errors) > 0 )
3
+ {
4
+ ?>
5
+ <div class="error">
6
+ <ul>
7
+ <?php
8
+ foreach( $errors as $error )
9
+ {
10
+ ?>
11
+ <li><strong>ERROR</strong>: <?php print $error; ?></li>
12
+ <?php
13
+ }
14
+ ?>
15
+ </ul>
16
+ </div>
17
+ <?php
18
+ }
19
+ ?>
classes/views/shared/link-table-nav.php ADDED
@@ -0,0 +1,102 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // Only show the pager bar if there is more than 1 page
3
+ if($page_count > 1)
4
+ {
5
+ ?>
6
+ <div class="tablenav"<?php echo (isset($navstyle)?" style=\"$navstyle\"":''); ?>>
7
+ <?php do_action('prli-link-list-actions', $footer); ?>
8
+ <div class='tablenav-pages'><span class="displaying-num">Displaying <?php print "$page_first_record&#8211;$page_last_record of $record_count"; ?></span>
9
+
10
+ <?php
11
+ // Only show the prev page button if the current page is not the first page
12
+ if($current_page > 1)
13
+ {
14
+ ?>
15
+ <a class='prev page-numbers' href='?page=<?php print PRLI_PLUGIN_NAME; ?>/<?php print $controller_file . $page_params; ?>&paged=<?php print($current_page-1); ?>'>&laquo;</a>
16
+ <?php
17
+ }
18
+
19
+ // First page is always displayed
20
+ if($current_page==1)
21
+ {
22
+ ?>
23
+ <span class='page-numbers current'>1</span>
24
+ <?php
25
+ }
26
+ else
27
+ {
28
+ ?>
29
+ <a class='page-numbers' href='?page=<?php print PRLI_PLUGIN_NAME; ?>/<?php print $controller_file . $page_params; ?>&paged=1'>1</a>
30
+ <?php
31
+ }
32
+
33
+ // If the current page is more than 2 spaces away from the first page then we put some dots in here
34
+ if($current_page >= 5)
35
+ {
36
+ ?>
37
+ <span class='page-numbers dots'>...</span>
38
+ <?php
39
+ }
40
+
41
+ // display the current page icon and the 2 pages beneath and above it
42
+ $low_page = (($current_page >= 5)?($current_page-2):2);
43
+ $high_page = ((($current_page + 2) < ($page_count-1))?($current_page+2):($page_count-1));
44
+ for($i = $low_page; $i <= $high_page; $i++)
45
+ {
46
+ if($current_page==$i)
47
+ {
48
+ ?>
49
+ <span class='page-numbers current'><?php print $i; ?></span>
50
+ <?php
51
+ }
52
+ else
53
+ {
54
+ ?>
55
+ <a class='page-numbers' href='?page=<?php print PRLI_PLUGIN_NAME; ?>/<?php print $controller_file . $page_params; ?>&paged=<?php print $i; ?>'><?php print $i; ?></a>
56
+ <?php
57
+ }
58
+ }
59
+
60
+ // If the current page is more than 2 away from the last page then show ellipsis
61
+ if($current_page < ($page_count - 3))
62
+ {
63
+ ?>
64
+ <span class='page-numbers dots'>...</span>
65
+ <?php
66
+ }
67
+
68
+ // Display the last page icon
69
+ if($current_page == $page_count)
70
+ {
71
+ ?>
72
+ <span class='page-numbers current'><?php print $page_count; ?></span>
73
+ <?php
74
+ }
75
+ else
76
+ {
77
+ ?>
78
+ <a class='page-numbers' href='?page=<?php print PRLI_PLUGIN_NAME; ?>/<?php print $controller_file . $page_params; ?>&paged=<?php print $page_count; ?>'><?php print $page_count; ?></a>
79
+ <?php
80
+ }
81
+
82
+ // Display the next page icon if there is a next page
83
+ if($current_page < $page_count)
84
+ {
85
+ ?>
86
+ <a class='next page-numbers' href='?page=<?php print PRLI_PLUGIN_NAME; ?>/<?php print $controller_file . $page_params; ?>&paged=<?php print($current_page + 1); ?>'>&raquo;</a>
87
+ <?php
88
+ }
89
+ ?>
90
+ </div>
91
+ </div>
92
+ <?php
93
+ }
94
+ else
95
+ {
96
+ ?>
97
+ <div class="tablenav"<?php echo (isset($navstyle)?" style=\"$navstyle\"":''); ?>>
98
+ <?php do_action('prli-link-list-actions', $footer); ?>
99
+ </div>
100
+ <?php
101
+ }
102
+ ?>
classes/views/shared/nav.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ global $prli_update;
3
+
4
+ if($prli_update->pro_is_installed_and_authorized())
5
+ {
6
+ $support_link =<<<SUPPORT_LINK
7
+ &nbsp;|&nbsp;<a href="http://prettylinkpro.com/user-manual">Pro Manual</a>&nbsp;|&nbsp;<a href="http://prettylinkpro.com/forum">Pro Forums</a>
8
+ SUPPORT_LINK;
9
+ }
10
+ else
11
+ {
12
+ $support_link =<<<SUPPORT_LINK
13
+ &nbsp;|&nbsp;<a href="http://prettylinkpro.com">Premium Support</a>
14
+ SUPPORT_LINK;
15
+ }
16
+
17
+ ?>
18
+ <p style="font-size: 14px; font-weight: bold; float: right; text-align: right; padding-top: 0px; padding-right: 10px;">Connect with Pretty Link:&nbsp;&nbsp;<a href="http://twitter.com/blairwilli"><img src="<?php echo PRLI_URL; ?>/images/twitter_32.png" style="width: 24px; height: 24px;" /></a>&nbsp;<a href="http://www.facebook.com/pages/Pretty-Link/283252860401"><img src="<?php echo PRLI_URL; ?>/images/facebook_32.png" style="width: 24px; height: 24px;" /></a><br/>Get Help:&nbsp;&nbsp;<a href="http://blairwilliams.com/xba" target="_blank">Tutorials (UPDATED!)</a><?php echo $support_link; ?>&nbsp;|&nbsp;<a href="http://blairwilliams.com/work">One on One</a></p>
classes/views/shared/table-nav.php ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // Only show the pager bar if there is more than 1 page
3
+ if($page_count > 1)
4
+ {
5
+ ?>
6
+ <div class="tablenav"<?php echo (isset($navstyle)?" style=\"$navstyle\"":''); ?>>
7
+ <div class='tablenav-pages'><span class="displaying-num">Displaying <?php print "$page_first_record&#8211;$page_last_record of $record_count"; ?></span>
8
+
9
+ <?php
10
+ // Only show the prev page button if the current page is not the first page
11
+ if($current_page > 1)
12
+ {
13
+ ?>
14
+ <a class='prev page-numbers' href='?page=<?php print PRLI_PLUGIN_NAME; ?>/<?php print $controller_file . $page_params; ?>&paged=<?php print($current_page-1); ?>'>&laquo;</a>
15
+ <?php
16
+ }
17
+
18
+ // First page is always displayed
19
+ if($current_page==1)
20
+ {
21
+ ?>
22
+ <span class='page-numbers current'>1</span>
23
+ <?php
24
+ }
25
+ else
26
+ {
27
+ ?>
28
+ <a class='page-numbers' href='?page=<?php print PRLI_PLUGIN_NAME; ?>/<?php print $controller_file . $page_params; ?>&paged=1'>1</a>
29
+ <?php
30
+ }
31
+
32
+ // If the current page is more than 2 spaces away from the first page then we put some dots in here
33
+ if($current_page >= 5)
34
+ {
35
+ ?>
36
+ <span class='page-numbers dots'>...</span>
37
+ <?php
38
+ }
39
+
40
+ // display the current page icon and the 2 pages beneath and above it
41
+ $low_page = (($current_page >= 5)?($current_page-2):2);
42
+ $high_page = ((($current_page + 2) < ($page_count-1))?($current_page+2):($page_count-1));
43
+ for($i = $low_page; $i <= $high_page; $i++)
44
+ {
45
+ if($current_page==$i)
46
+ {
47
+ ?>
48
+ <span class='page-numbers current'><?php print $i; ?></span>
49
+ <?php
50
+ }
51
+ else
52
+ {
53
+ ?>
54
+ <a class='page-numbers' href='?page=<?php print PRLI_PLUGIN_NAME; ?>/<?php print $controller_file . $page_params; ?>&paged=<?php print $i; ?>'><?php print $i; ?></a>
55
+ <?php
56
+ }
57
+ }
58
+
59
+ // If the current page is more than 2 away from the last page then show ellipsis
60
+ if($current_page < ($page_count - 3))
61
+ {
62
+ ?>
63
+ <span class='page-numbers dots'>...</span>
64
+ <?php
65
+ }
66
+
67
+ // Display the last page icon
68
+ if($current_page == $page_count)
69
+ {
70
+ ?>
71
+ <span class='page-numbers current'><?php print $page_count; ?></span>
72
+ <?php
73
+ }
74
+ else
75
+ {
76
+ ?>
77
+ <a class='page-numbers' href='?page=<?php print PRLI_PLUGIN_NAME; ?>/<?php print $controller_file . $page_params; ?>&paged=<?php print $page_count; ?>'><?php print $page_count; ?></a>
78
+ <?php
79
+ }
80
+
81
+ // Display the next page icon if there is a next page
82
+ if($current_page < $page_count)
83
+ {
84
+ ?>
85
+ <a class='next page-numbers' href='?page=<?php print PRLI_PLUGIN_NAME; ?>/<?php print $controller_file . $page_params; ?>&paged=<?php print($current_page + 1); ?>'>&raquo;</a>
86
+ <?php
87
+ }
88
+ ?>
89
+ </div>
90
+ </div>
91
+ <?php
92
+ }
93
+ ?>
images/arrow_down.png ADDED
Binary file
images/arrow_up.png ADDED
Binary file
images/bar_background.png ADDED
Binary file
images/bar_map.png ADDED
Binary file
images/bookmark.png ADDED
Binary file
images/co.mments.gif ADDED
Binary file
images/delicious_32.png ADDED
Binary file
images/digg_32.png ADDED
Binary file
images/email_32.png ADDED
Binary file
images/facebook.png ADDED
Binary file
images/facebook_32.png ADDED
Binary file
images/forward_params.png ADDED
Binary file
images/hyves_32.png ADDED
Binary file
images/linkedin_32.png ADDED
Binary file
images/mixx_32.png ADDED
Binary file
images/newsvine_32.png ADDED
Binary file
images/nofollow.png ADDED
Binary file
images/not_tracking.png ADDED
Binary file
images/pixel_track.png ADDED
Binary file
images/pretty-link-48x48.png ADDED
Binary file
images/pretty-link-add.png ADDED
Binary file
images/pretty-link-med.png ADDED
Binary file
images/pretty-link-small.png ADDED
Binary file
images/prettylink_logo.jpg ADDED
Binary file
images/prettylink_logo_med.jpg ADDED
Binary file
images/prettylink_logo_small.jpg ADDED
Binary file
images/reddit_32.png ADDED
Binary file
images/sphinn_32.png ADDED
Binary file
images/stumbleupon_32.png ADDED
Binary file
images/technorati_32.png ADDED
Binary file
images/tracking.png ADDED
Binary file
images/twitter.png ADDED
Binary file
images/twitter_32.png ADDED
Binary file
images/ultra-cloak.png ADDED
Binary file
images/url_icon.gif ADDED
Binary file
images/whatever.txt ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ wget http://speckyboy.com/wp-content/plugins/sociable/images/delicious_32.png
2
+ wget http://speckyboy.com/wp-content/plugins/sociable/images/stumbleupon_32.png
3
+ wget http://speckyboy.com/wp-content/plugins/sociable/images/digg_32.png
4
+ wget http://speckyboy.com/wp-content/plugins/sociable/images/twitter_32.png
5
+ wget http://speckyboy.com/wp-content/plugins/sociable/images/mixx_32.png
6
+ wget http://speckyboy.com/wp-content/plugins/sociable/images/technorati_32.png
7
+ wget http://speckyboy.com/wp-content/plugins/sociable/images/facebook_32.png
8
+ wget http://speckyboy.com/wp-content/plugins/sociable/images/newsvine_32.png
9
+ wget http://speckyboy.com/wp-content/plugins/sociable/images/reddit_32.png
10
+ wget http://speckyboy.com/wp-content/plugins/sociable/images/linkedin_32.png
11
+ wget http://speckyboy.com/wp-content/plugins/sociable/images/co.mments.gif
12
+ wget http://speckyboy.com/wp-content/plugins/sociable/images/yahoobuzz_32.png
13
+ wget http://speckyboy.com/wp-content/plugins/sociable/images/email_32.png
images/yahoobuzz_32.png ADDED
Binary file
includes/jquery/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png ADDED
Binary file
includes/jquery/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png ADDED
Binary file
includes/jquery/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png ADDED
Binary file
includes/jquery/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png ADDED
Binary file
includes/jquery/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png ADDED
Binary file
includes/jquery/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png ADDED
Binary file
includes/jquery/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png ADDED
Binary file
includes/jquery/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png ADDED
Binary file
includes/jquery/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png ADDED
Binary file
includes/jquery/css/ui-lightness/images/ui-icons_222222_256x240.png ADDED
Binary file
includes/jquery/css/ui-lightness/images/ui-icons_228ef1_256x240.png ADDED
Binary file
includes/jquery/css/ui-lightness/images/ui-icons_ef8c08_256x240.png ADDED
Binary file
includes/jquery/css/ui-lightness/images/ui-icons_ffd27a_256x240.png ADDED
Binary file
includes/jquery/css/ui-lightness/images/ui-icons_ffffff_256x240.png ADDED
Binary file
includes/jquery/css/ui-lightness/jquery-ui-1.7.1.custom.css ADDED
@@ -0,0 +1,404 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * jQuery UI CSS Framework
3
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
4
+ * Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
5
+ */
6
+
7
+ /* Layout helpers
8
+ ----------------------------------*/
9
+ .ui-helper-hidden { display: none; }
10
+ .ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
11
+ .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
12
+ .ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
13
+ .ui-helper-clearfix { display: inline-block; }
14
+ /* required comment for clearfix to work in Opera \*/
15
+ * html .ui-helper-clearfix { height:1%; }
16
+ .ui-helper-clearfix { display:block; }
17
+ /* end clearfix */
18
+ .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
19
+
20
+
21
+ /* Interaction Cues
22
+ ----------------------------------*/
23
+ .ui-state-disabled { cursor: default !important; }
24
+
25
+
26
+ /* Icons
27
+ ----------------------------------*/
28
+
29
+ /* states and images */
30
+ .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
31
+
32
+
33
+ /* Misc visuals
34
+ ----------------------------------*/
35
+
36
+ /* Overlays */
37
+ .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
38
+
39
+ /*
40
+ * jQuery UI CSS Framework
41
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
42
+ * Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
43
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
44
+ */
45
+
46
+
47
+ /* Component containers
48
+ ----------------------------------*/
49
+ .ui-widget { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1.1em; }
50
+ .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1em; }
51
+ .ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; color: #333333; }
52
+ .ui-widget-content a { color: #333333; }
53
+ .ui-widget-header { border: 1px solid #e78f08; background: #f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
54
+ .ui-widget-header a { color: #ffffff; }
55
+
56
+ /* Interaction states
57
+ ----------------------------------*/
58
+ .ui-state-default, .ui-widget-content .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; outline: none; }
59
+ .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; outline: none; }
60
+ .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #c77405; outline: none; }
61
+ .ui-state-hover a, .ui-state-hover a:hover { color: #c77405; text-decoration: none; outline: none; }
62
+ .ui-state-active, .ui-widget-content .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; outline: none; }
63
+ .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; outline: none; text-decoration: none; }
64
+
65
+ /* Interaction Cues
66
+ ----------------------------------*/
67
+ .ui-state-highlight, .ui-widget-content .ui-state-highlight {border: 1px solid #fed22f; background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; }
68
+ .ui-state-highlight a, .ui-widget-content .ui-state-highlight a { color: #363636; }
69
+ .ui-state-error, .ui-widget-content .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; }
70
+ .ui-state-error a, .ui-widget-content .ui-state-error a { color: #ffffff; }
71
+ .ui-state-error-text, .ui-widget-content .ui-state-error-text { color: #ffffff; }
72
+ .ui-state-disabled, .ui-widget-content .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
73
+ .ui-priority-primary, .ui-widget-content .ui-priority-primary { font-weight: bold; }
74
+ .ui-priority-secondary, .ui-widget-content .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
75
+
76
+ /* Icons
77
+ ----------------------------------*/
78
+
79
+ /* states and images */
80
+ .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
81
+ .ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
82
+ .ui-widget-header .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
83
+ .ui-state-default .ui-icon { background-image: url(images/ui-icons_ef8c08_256x240.png); }
84
+ .ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
85
+ .ui-state-active .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
86
+ .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_228ef1_256x240.png); }
87
+ .ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffd27a_256x240.png); }
88
+
89
+ /* positioning */
90
+ .ui-icon-carat-1-n { background-position: 0 0; }
91
+ .ui-icon-carat-1-ne { background-position: -16px 0; }
92
+ .ui-icon-carat-1-e { background-position: -32px 0; }
93
+ .ui-icon-carat-1-se { background-position: -48px 0; }
94
+ .ui-icon-carat-1-s { background-position: -64px 0; }
95
+ .ui-icon-carat-1-sw { background-position: -80px 0; }
96
+ .ui-icon-carat-1-w { background-position: -96px 0; }
97
+ .ui-icon-carat-1-nw { background-position: -112px 0; }
98
+ .ui-icon-carat-2-n-s { background-position: -128px 0; }
99
+ .ui-icon-carat-2-e-w { background-position: -144px 0; }
100
+ .ui-icon-triangle-1-n { background-position: 0 -16px; }
101
+ .ui-icon-triangle-1-ne { background-position: -16px -16px; }
102
+ .ui-icon-triangle-1-e { background-position: -32px -16px; }
103
+ .ui-icon-triangle-1-se { background-position: -48px -16px; }
104
+ .ui-icon-triangle-1-s { background-position: -64px -16px; }
105
+ .ui-icon-triangle-1-sw { background-position: -80px -16px; }
106
+ .ui-icon-triangle-1-w { background-position: -96px -16px; }
107
+ .ui-icon-triangle-1-nw { background-position: -112px -16px; }
108
+ .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
109
+ .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
110
+ .ui-icon-arrow-1-n { background-position: 0 -32px; }
111
+ .ui-icon-arrow-1-ne { background-position: -16px -32px; }
112
+ .ui-icon-arrow-1-e { background-position: -32px -32px; }
113
+ .ui-icon-arrow-1-se { background-position: -48px -32px; }
114
+ .ui-icon-arrow-1-s { background-position: -64px -32px; }
115
+ .ui-icon-arrow-1-sw { background-position: -80px -32px; }
116
+ .ui-icon-arrow-1-w { background-position: -96px -32px; }
117
+ .ui-icon-arrow-1-nw { background-position: -112px -32px; }
118
+ .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
119
+ .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
120
+ .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
121
+ .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
122
+ .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
123
+ .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
124
+ .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
125
+ .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
126
+ .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
127
+ .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
128
+ .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
129
+ .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
130
+ .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
131
+ .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
132
+ .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
133
+ .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
134
+ .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
135
+ .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
136
+ .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
137
+ .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
138
+ .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
139
+ .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
140
+ .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
141
+ .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
142
+ .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
143
+ .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
144
+ .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
145
+ .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
146
+ .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
147
+ .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
148
+ .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
149
+ .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
150
+ .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
151
+ .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
152
+ .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
153
+ .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
154
+ .ui-icon-arrow-4 { background-position: 0 -80px; }
155
+ .ui-icon-arrow-4-diag { background-position: -16px -80px; }
156
+ .ui-icon-extlink { background-position: -32px -80px; }
157
+ .ui-icon-newwin { background-position: -48px -80px; }
158
+ .ui-icon-refresh { background-position: -64px -80px; }
159
+ .ui-icon-shuffle { background-position: -80px -80px; }
160
+ .ui-icon-transfer-e-w { background-position: -96px -80px; }
161
+ .ui-icon-transferthick-e-w { background-position: -112px -80px; }
162
+ .ui-icon-folder-collapsed { background-position: 0 -96px; }
163
+ .ui-icon-folder-open { background-position: -16px -96px; }
164
+ .ui-icon-document { background-position: -32px -96px; }
165
+ .ui-icon-document-b { background-position: -48px -96px; }
166
+ .ui-icon-note { background-position: -64px -96px; }
167
+ .ui-icon-mail-closed { background-position: -80px -96px; }
168
+ .ui-icon-mail-open { background-position: -96px -96px; }
169
+ .ui-icon-suitcase { background-position: -112px -96px; }
170
+ .ui-icon-comment { background-position: -128px -96px; }
171
+ .ui-icon-person { background-position: -144px -96px; }
172
+ .ui-icon-print { background-position: -160px -96px; }
173
+ .ui-icon-trash { background-position: -176px -96px; }
174
+ .ui-icon-locked { background-position: -192px -96px; }
175
+ .ui-icon-unlocked { background-position: -208px -96px; }
176
+ .ui-icon-bookmark { background-position: -224px -96px; }
177
+ .ui-icon-tag { background-position: -240px -96px; }
178
+ .ui-icon-home { background-position: 0 -112px; }
179
+ .ui-icon-flag { background-position: -16px -112px; }
180
+ .ui-icon-calendar { background-position: -32px -112px; }
181
+ .ui-icon-cart { background-position: -48px -112px; }
182
+ .ui-icon-pencil { background-position: -64px -112px; }
183
+ .ui-icon-clock { background-position: -80px -112px; }
184
+ .ui-icon-disk { background-position: -96px -112px; }
185
+ .ui-icon-calculator { background-position: -112px -112px; }
186
+ .ui-icon-zoomin { background-position: -128px -112px; }
187
+ .ui-icon-zoomout { background-position: -144px -112px; }
188
+ .ui-icon-search { background-position: -160px -112px; }
189
+ .ui-icon-wrench { background-position: -176px -112px; }
190
+ .ui-icon-gear { background-position: -192px -112px; }
191
+ .ui-icon-heart { background-position: -208px -112px; }
192
+ .ui-icon-star { background-position: -224px -112px; }
193
+ .ui-icon-link { background-position: -240px -112px; }
194
+ .ui-icon-cancel { background-position: 0 -128px; }
195
+ .ui-icon-plus { background-position: -16px -128px; }
196
+ .ui-icon-plusthick { background-position: -32px -128px; }
197
+ .ui-icon-minus { background-position: -48px -128px; }
198
+ .ui-icon-minusthick { background-position: -64px -128px; }
199
+ .ui-icon-close { background-position: -80px -128px; }
200
+ .ui-icon-closethick { background-position: -96px -128px; }
201
+ .ui-icon-key { background-position: -112px -128px; }
202
+ .ui-icon-lightbulb { background-position: -128px -128px; }
203
+ .ui-icon-scissors { background-position: -144px -128px; }
204
+ .ui-icon-clipboard { background-position: -160px -128px; }
205
+ .ui-icon-copy { background-position: -176px -128px; }
206
+ .ui-icon-contact { background-position: -192px -128px; }
207
+ .ui-icon-image { background-position: -208px -128px; }
208
+ .ui-icon-video { background-position: -224px -128px; }
209
+ .ui-icon-script { background-position: -240px -128px; }
210
+ .ui-icon-alert { background-position: 0 -144px; }
211
+ .ui-icon-info { background-position: -16px -144px; }
212
+ .ui-icon-notice { background-position: -32px -144px; }
213
+ .ui-icon-help { background-position: -48px -144px; }
214
+ .ui-icon-check { background-position: -64px -144px; }
215
+ .ui-icon-bullet { background-position: -80px -144px; }
216
+ .ui-icon-radio-off { background-position: -96px -144px; }
217
+ .ui-icon-radio-on { background-position: -112px -144px; }
218
+ .ui-icon-pin-w { background-position: -128px -144px; }
219
+ .ui-icon-pin-s { background-position: -144px -144px; }
220
+ .ui-icon-play { background-position: 0 -160px; }
221
+ .ui-icon-pause { background-position: -16px -160px; }
222
+ .ui-icon-seek-next { background-position: -32px -160px; }
223
+ .ui-icon-seek-prev { background-position: -48px -160px; }
224
+ .ui-icon-seek-end { background-position: -64px -160px; }
225
+ .ui-icon-seek-first { background-position: -80px -160px; }
226
+ .ui-icon-stop { background-position: -96px -160px; }
227
+ .ui-icon-eject { background-position: -112px -160px; }
228
+ .ui-icon-volume-off { background-position: -128px -160px; }
229
+ .ui-icon-volume-on { background-position: -144px -160px; }
230
+ .ui-icon-power { background-position: 0 -176px; }
231
+ .ui-icon-signal-diag { background-position: -16px -176px; }
232
+ .ui-icon-signal { background-position: -32px -176px; }
233
+ .ui-icon-battery-0 { background-position: -48px -176px; }
234
+ .ui-icon-battery-1 { background-position: -64px -176px; }
235
+ .ui-icon-battery-2 { background-position: -80px -176px; }
236
+ .ui-icon-battery-3 { background-position: -96px -176px; }
237
+ .ui-icon-circle-plus { background-position: 0 -192px; }
238
+ .ui-icon-circle-minus { background-position: -16px -192px; }
239
+ .ui-icon-circle-close { background-position: -32px -192px; }
240
+ .ui-icon-circle-triangle-e { background-position: -48px -192px; }
241
+ .ui-icon-circle-triangle-s { background-position: -64px -192px; }
242
+ .ui-icon-circle-triangle-w { background-position: -80px -192px; }
243
+ .ui-icon-circle-triangle-n { background-position: -96px -192px; }
244
+ .ui-icon-circle-arrow-e { background-position: -112px -192px; }
245
+ .ui-icon-circle-arrow-s { background-position: -128px -192px; }
246
+ .ui-icon-circle-arrow-w { background-position: -144px -192px; }
247
+ .ui-icon-circle-arrow-n { background-position: -160px -192px; }
248
+ .ui-icon-circle-zoomin { background-position: -176px -192px; }
249
+ .ui-icon-circle-zoomout { background-position: -192px -192px; }
250
+ .ui-icon-circle-check { background-position: -208px -192px; }
251
+ .ui-icon-circlesmall-plus { background-position: 0 -208px; }
252
+ .ui-icon-circlesmall-minus { background-position: -16px -208px; }
253
+ .ui-icon-circlesmall-close { background-position: -32px -208px; }
254
+ .ui-icon-squaresmall-plus { background-position: -48px -208px; }
255
+ .ui-icon-squaresmall-minus { background-position: -64px -208px; }
256
+ .ui-icon-squaresmall-close { background-position: -80px -208px; }
257
+ .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
258
+ .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
259
+ .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
260
+ .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
261
+ .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
262
+ .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
263
+
264
+
265
+ /* Misc visuals
266
+ ----------------------------------*/
267
+
268
+ /* Corner radius */
269
+ .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; }
270
+ .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; }
271
+ .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; }
272
+ .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; }
273
+ .ui-corner-top { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; }
274
+ .ui-corner-bottom { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; }
275
+ .ui-corner-right { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; }
276
+ .ui-corner-left { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; }
277
+ .ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; }
278
+
279
+ /* Overlays */
280
+ .ui-widget-overlay { background: #666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); }
281
+ .ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -webkit-border-radius: 5px; }/* Accordion
282
+ ----------------------------------*/
283
+ .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
284
+ .ui-accordion .ui-accordion-li-fix { display: inline; }
285
+ .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
286
+ .ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em 2.2em; }
287
+ .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
288
+ .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; }
289
+ .ui-accordion .ui-accordion-content-active { display: block; }/* Datepicker
290
+ ----------------------------------*/
291
+ .ui-datepicker { width: 17em; padding: .2em .2em 0; }
292
+ .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
293
+ .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
294
+ .ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
295
+ .ui-datepicker .ui-datepicker-prev { left:2px; }
296
+ .ui-datepicker .ui-datepicker-next { right:2px; }
297
+ .ui-datepicker .ui-datepicker-prev-hover { left:1px; }
298
+ .ui-datepicker .ui-datepicker-next-hover { right:1px; }
299
+ .ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
300
+ .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
301
+ .ui-datepicker .ui-datepicker-title select { float:left; font-size:1em; margin:1px 0; }
302
+ .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
303
+ .ui-datepicker select.ui-datepicker-month,
304
+ .ui-datepicker select.ui-datepicker-year { width: 49%;}
305
+ .ui-datepicker .ui-datepicker-title select.ui-datepicker-year { float: right; }
306
+ .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
307
+ .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
308
+ .ui-datepicker td { border: 0; padding: 1px; }
309
+ .ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
310
+ .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
311
+ .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
312
+ .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
313
+
314
+ /* with multiple calendars */
315
+ .ui-datepicker.ui-datepicker-multi { width:auto; }
316
+ .ui-datepicker-multi .ui-datepicker-group { float:left; }
317
+ .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
318
+ .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
319
+ .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
320
+ .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
321
+ .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
322
+ .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
323
+ .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
324
+ .ui-datepicker-row-break { clear:both; width:100%; }
325
+
326
+ /* RTL support */
327
+ .ui-datepicker-rtl { direction: rtl; }
328
+ .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
329
+ .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
330
+ .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
331
+ .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
332
+ .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
333
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
334
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
335
+ .ui-datepicker-rtl .ui-datepicker-group { float:right; }
336
+ .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
337
+ .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
338
+
339
+ /* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
340
+ .ui-datepicker-cover {
341
+ display: none; /*sorry for IE5*/
342
+ display/**/: block; /*sorry for IE5*/
343
+ position: absolute; /*must have*/
344
+ z-index: -1; /*must have*/
345
+ filter: mask(); /*must have*/
346
+ top: -4px; /*must have*/
347
+ left: -4px; /*must have*/
348
+ width: 200px; /*must have*/
349
+ height: 200px; /*must have*/
350
+ }/* Dialog
351
+ ----------------------------------*/
352
+ .ui-dialog { position: relative; padding: .2em; width: 300px; }
353
+ .ui-dialog .ui-dialog-titlebar { padding: .5em .3em .3em 1em; position: relative; }
354
+ .ui-dialog .ui-dialog-title { float: left; margin: .1em 0 .2em; }
355
+ .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
356
+ .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
357
+ .ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
358
+ .ui-dialog .ui-dialog-content { border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
359
+ .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
360
+ .ui-dialog .ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.4em; width:auto; overflow:visible; }
361
+ .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
362
+ .ui-draggable .ui-dialog-titlebar { cursor: move; }
363
+ /* Progressbar
364
+ ----------------------------------*/
365
+ .ui-progressbar { height:2em; text-align: left; }
366
+ .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }/* Resizable
367
+ ----------------------------------*/
368
+ .ui-resizable { position: relative;}
369
+ .ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
370
+ .ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
371
+ .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0px; }
372
+ .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0px; }
373
+ .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0px; height: 100%; }
374
+ .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0px; height: 100%; }
375
+ .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
376
+ .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
377
+ .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
378
+ .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* Slider
379
+ ----------------------------------*/
380
+ .ui-slider { position: relative; text-align: left; }
381
+ .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
382
+ .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; }
383
+
384
+ .ui-slider-horizontal { height: .8em; }
385
+ .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
386
+ .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
387
+ .ui-slider-horizontal .ui-slider-range-min { left: 0; }
388
+ .ui-slider-horizontal .ui-slider-range-max { right: 0; }
389
+
390
+ .ui-slider-vertical { width: .8em; height: 100px; }
391
+ .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
392
+ .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
393
+ .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
394
+ .ui-slider-vertical .ui-slider-range-max { top: 0; }/* Tabs
395
+ ----------------------------------*/
396
+ .ui-tabs { padding: .2em; zoom: 1; }
397
+ .ui-tabs .ui-tabs-nav { list-style: none; position: relative; padding: .2em .2em 0; }
398
+ .ui-tabs .ui-tabs-nav li { position: relative; float: left; border-bottom-width: 0 !important; margin: 0 .2em -1px 0; padding: 0; }
399
+ .ui-tabs .ui-tabs-nav li a { float: left; text-decoration: none; padding: .5em 1em; }
400
+ .ui-tabs .ui-tabs-nav li.ui-tabs-selected { padding-bottom: 1px; border-bottom-width: 0; }
401
+ .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
402
+ .ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
403
+ .ui-tabs .ui-tabs-panel { padding: 1em 1.4em; display: block; border-width: 0; background: none; }
404
+ .ui-tabs .ui-tabs-hide { display: none !important; }
includes/jquery/js/jquery-1.3.2.min.js ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * jQuery JavaScript Library v1.3.2
3
+ * http://jquery.com/
4
+ *
5
+ * Copyright (c) 2009 John Resig
6
+ * Dual licensed under the MIT and GPL licenses.
7
+ * http://docs.jquery.com/License
8
+ *
9
+ * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
10
+ * Revision: 6246
11
+ */
12
+ (function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"},isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),function(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return !o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"></"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){return o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"nextSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){var I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}});
13
+ /*
14
+ * Sizzle CSS Selector Engine - v0.9.3
15
+ * Copyright 2009, The Dojo Foundation
16
+ * Released under the MIT, BSD, and GPL Licenses.
17
+ * More information: http://sizzlejs.com/
18
+ */
19
+ (function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var I=F.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(T){return T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var V=L++,T=S;if(!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementById!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NAME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(" "+Y.className+" ").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z=="first"){return true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}}return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if("sourceIndex" in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplicate=true}return X}}}}(function(){var U=document.createElement("form"),V="script"+(new Date).getTime();U.innerHTML="<input name='"+V+"'/>";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="<a href='#'></a>";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="<p class='TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="<div class='test e'></div><div class='test'></div>";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}return this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return["live",F,E.replace(/\./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyList:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.innerHTML=' <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.style.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G],"olddisplay",o.css(this[G],"display"))}}for(var G=0,F=this.length;G<F;G++){this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cur(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n);n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})();
includes/jquery/js/jquery-ui-1.7.1.custom.min.js ADDED
@@ -0,0 +1,273 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * jQuery UI 1.7.1
3
+ *
4
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
5
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
6
+ * and GPL (GPL-LICENSE.txt) licenses.
7
+ *
8
+ * http://docs.jquery.com/UI
9
+ */
10
+ * jQuery UI Draggable 1.7.1
11
+ *
12
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
13
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
14
+ * and GPL (GPL-LICENSE.txt) licenses.
15
+ *
16
+ * http://docs.jquery.com/UI/Draggables
17
+ *
18
+ * Depends:
19
+ * ui.core.js
20
+ */
21
+ * jQuery UI Droppable 1.7.1
22
+ *
23
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
24
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
25
+ * and GPL (GPL-LICENSE.txt) licenses.
26
+ *
27
+ * http://docs.jquery.com/UI/Droppables
28
+ *
29
+ * Depends:
30
+ * ui.core.js
31
+ * ui.draggable.js
32
+ */
33
+ * jQuery UI Resizable 1.7.1
34
+ *
35
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
36
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
37
+ * and GPL (GPL-LICENSE.txt) licenses.
38
+ *
39
+ * http://docs.jquery.com/UI/Resizables
40
+ *
41
+ * Depends:
42
+ * ui.core.js
43
+ */
44
+ * jQuery UI Selectable 1.7.1
45
+ *
46
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
47
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
48
+ * and GPL (GPL-LICENSE.txt) licenses.
49
+ *
50
+ * http://docs.jquery.com/UI/Selectables
51
+ *
52
+ * Depends:
53
+ * ui.core.js
54
+ */
55
+ * jQuery UI Sortable 1.7.1
56
+ *
57
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
58
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
59
+ * and GPL (GPL-LICENSE.txt) licenses.
60
+ *
61
+ * http://docs.jquery.com/UI/Sortables
62
+ *
63
+ * Depends:
64
+ * ui.core.js
65
+ */
66
+ * jQuery UI Accordion 1.7.1
67
+ *
68
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
69
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
70
+ * and GPL (GPL-LICENSE.txt) licenses.
71
+ *
72
+ * http://docs.jquery.com/UI/Accordion
73
+ *
74
+ * Depends:
75
+ * ui.core.js
76
+ */
77
+ * jQuery UI Dialog 1.7.1
78
+ *
79
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
80
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
81
+ * and GPL (GPL-LICENSE.txt) licenses.
82
+ *
83
+ * http://docs.jquery.com/UI/Dialog
84
+ *
85
+ * Depends:
86
+ * ui.core.js
87
+ * ui.draggable.js
88
+ * ui.resizable.js
89
+ */
90
+ * jQuery UI Slider 1.7.1
91
+ *
92
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
93
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
94
+ * and GPL (GPL-LICENSE.txt) licenses.
95
+ *
96
+ * http://docs.jquery.com/UI/Slider
97
+ *
98
+ * Depends:
99
+ * ui.core.js
100
+ */
101
+ * jQuery UI Tabs 1.7.1
102
+ *
103
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
104
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
105
+ * and GPL (GPL-LICENSE.txt) licenses.
106
+ *
107
+ * http://docs.jquery.com/UI/Tabs
108
+ *
109
+ * Depends:
110
+ * ui.core.js
111
+ */
112
+ * jQuery UI Datepicker 1.7.1
113
+ *
114
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
115
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
116
+ * and GPL (GPL-LICENSE.txt) licenses.
117
+ *
118
+ * http://docs.jquery.com/UI/Datepicker
119
+ *
120
+ * Depends:
121
+ * ui.core.js
122
+ */
123
+ * jQuery UI Progressbar 1.7.1
124
+ *
125
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
126
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
127
+ * and GPL (GPL-LICENSE.txt) licenses.
128
+ *
129
+ * http://docs.jquery.com/UI/Progressbar
130
+ *
131
+ * Depends:
132
+ * ui.core.js
133
+ */
134
+ * jQuery UI Effects 1.7.1
135
+ *
136
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
137
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
138
+ * and GPL (GPL-LICENSE.txt) licenses.
139
+ *
140
+ * http://docs.jquery.com/UI/Effects/
141
+ */
142
+ * jQuery UI Effects Blind 1.7.1
143
+ *
144
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
145
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
146
+ * and GPL (GPL-LICENSE.txt) licenses.
147
+ *
148
+ * http://docs.jquery.com/UI/Effects/Blind
149
+ *
150
+ * Depends:
151
+ * effects.core.js
152
+ */
153
+ * jQuery UI Effects Bounce 1.7.1
154
+ *
155
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
156
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
157
+ * and GPL (GPL-LICENSE.txt) licenses.
158
+ *
159
+ * http://docs.jquery.com/UI/Effects/Bounce
160
+ *
161
+ * Depends:
162
+ * effects.core.js
163
+ */
164
+ * jQuery UI Effects Clip 1.7.1
165
+ *
166
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
167
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
168
+ * and GPL (GPL-LICENSE.txt) licenses.
169
+ *
170
+ * http://docs.jquery.com/UI/Effects/Clip
171
+ *
172
+ * Depends:
173
+ * effects.core.js
174
+ */
175
+ * jQuery UI Effects Drop 1.7.1
176
+ *
177
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
178
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
179
+ * and GPL (GPL-LICENSE.txt) licenses.
180
+ *
181
+ * http://docs.jquery.com/UI/Effects/Drop
182
+ *
183
+ * Depends:
184
+ * effects.core.js
185
+ */
186
+ * jQuery UI Effects Explode 1.7.1
187
+ *
188
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
189
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
190
+ * and GPL (GPL-LICENSE.txt) licenses.
191
+ *
192
+ * http://docs.jquery.com/UI/Effects/Explode
193
+ *
194
+ * Depends:
195
+ * effects.core.js
196
+ */
197
+ * jQuery UI Effects Fold 1.7.1
198
+ *
199
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
200
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
201
+ * and GPL (GPL-LICENSE.txt) licenses.
202
+ *
203
+ * http://docs.jquery.com/UI/Effects/Fold
204
+ *
205
+ * Depends:
206
+ * effects.core.js
207
+ */
208
+ * jQuery UI Effects Highlight 1.7.1
209
+ *
210
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
211
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
212
+ * and GPL (GPL-LICENSE.txt) licenses.
213
+ *
214
+ * http://docs.jquery.com/UI/Effects/Highlight
215
+ *
216
+ * Depends:
217
+ * effects.core.js
218
+ */
219
+ * jQuery UI Effects Pulsate 1.7.1
220
+ *
221
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
222
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
223
+ * and GPL (GPL-LICENSE.txt) licenses.
224
+ *
225
+ * http://docs.jquery.com/UI/Effects/Pulsate
226
+ *
227
+ * Depends:
228
+ * effects.core.js
229
+ */
230
+ * jQuery UI Effects Scale 1.7.1
231
+ *
232
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
233
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
234
+ * and GPL (GPL-LICENSE.txt) licenses.
235
+ *
236
+ * http://docs.jquery.com/UI/Effects/Scale
237
+ *
238
+ * Depends:
239
+ * effects.core.js
240
+ */
241
+ * jQuery UI Effects Shake 1.7.1
242
+ *
243
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
244
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
245
+ * and GPL (GPL-LICENSE.txt) licenses.
246
+ *
247
+ * http://docs.jquery.com/UI/Effects/Shake
248
+ *
249
+ * Depends:
250
+ * effects.core.js
251
+ */
252
+ * jQuery UI Effects Slide 1.7.1
253
+ *
254
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
255
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
256
+ * and GPL (GPL-LICENSE.txt) licenses.
257
+ *
258
+ * http://docs.jquery.com/UI/Effects/Slide
259
+ *
260
+ * Depends:
261
+ * effects.core.js
262
+ */
263
+ * jQuery UI Effects Transfer 1.7.1
264
+ *
265
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
266
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
267
+ * and GPL (GPL-LICENSE.txt) licenses.
268
+ *
269
+ * http://docs.jquery.com/UI/Effects/Transfer
270
+ *
271
+ * Depends:
272
+ * effects.core.js
273
+ */
includes/php/php_browsecap.ini ADDED
@@ -0,0 +1,17350 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ;;; Provided courtesy of http://browsers.garykeith.com
2
+ ;;; Created on Friday, December 11, 2009 at 3:27 PM GMT
3
+
4
+ [GJK_Browscap_Version]
5
+ Version=4523
6
+ Released=Fri, 11 Dec 2009 15:27:01 -0000
7
+
8
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DefaultProperties
9
+
10
+ [DefaultProperties]
11
+ Browser="DefaultProperties"
12
+ Version=0
13
+ MajorVer=0
14
+ MinorVer=0
15
+ Platform=unknown
16
+ Alpha=false
17
+ Beta=false
18
+ Win16=false
19
+ Win32=false
20
+ Win64=false
21
+ Frames=false
22
+ IFrames=false
23
+ Tables=false
24
+ Cookies=false
25
+ BackgroundSounds=false
26
+ CDF=false
27
+ VBScript=false
28
+ JavaApplets=false
29
+ JavaScript=false
30
+ ActiveXControls=false
31
+ isBanned=false
32
+ isMobileDevice=false
33
+ isSyndicationReader=false
34
+ Crawler=false
35
+ CssVersion=0
36
+ supportsCSS=false
37
+ AOL=false
38
+ aolVersion=0
39
+
40
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Ask
41
+
42
+ [Ask]
43
+ Parent=DefaultProperties
44
+ Browser="Ask"
45
+ Frames=true
46
+ Tables=true
47
+ Crawler=true
48
+
49
+ [Mozilla/?.0 (compatible; Ask Jeeves/Teoma*)]
50
+ Parent=Ask
51
+ Browser="Teoma"
52
+
53
+ [Mozilla/2.0 (compatible; Ask Jeeves)]
54
+ Parent=Ask
55
+ Browser="AskJeeves"
56
+
57
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Baidu
58
+
59
+ [Baidu]
60
+ Parent=DefaultProperties
61
+ Browser="Baidu"
62
+ Frames=true
63
+ Tables=true
64
+ Crawler=true
65
+
66
+ [AC-BaiduBot/1.*]
67
+ Parent=Baidu
68
+ Browser="AC-BaiduBot"
69
+
70
+ [BaiduImageSpider*]
71
+ Parent=Baidu
72
+ Browser="BaiduImageSpider"
73
+
74
+ [Baiduspider*]
75
+ Parent=Baidu
76
+ Browser="BaiDu"
77
+
78
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Google
79
+
80
+ [Google]
81
+ Parent=DefaultProperties
82
+ Browser="Google"
83
+ Frames=true
84
+ IFrames=true
85
+ Tables=true
86
+ JavaScript=true
87
+ Crawler=true
88
+
89
+ [* (compatible; Googlebot-Mobile/2.1; *http://www.google.com/bot.html)]
90
+ Parent=Google
91
+ Browser="Googlebot-Mobile"
92
+ Frames=false
93
+ IFrames=false
94
+ Tables=false
95
+
96
+ [*Google Wireless Transcoder*]
97
+ Parent=Google
98
+ Browser="Google Wireless Transcoder"
99
+
100
+ [AdsBot-Google (?http://www.google.com/adsbot.html)]
101
+ Parent=Google
102
+ Browser="AdsBot-Google"
103
+
104
+ [Feedfetcher-Google-iGoogleGadgets;*]
105
+ Parent=Google
106
+ Browser="iGoogleGadgets"
107
+ isBanned=true
108
+ isSyndicationReader=true
109
+
110
+ [Feedfetcher-Google;*]
111
+ Parent=Google
112
+ Browser="Feedfetcher-Google"
113
+ isBanned=true
114
+ isSyndicationReader=true
115
+
116
+ [Google OpenSocial agent (http://www.google.com/feedfetcher.html)]
117
+ Parent=Google
118
+ Browser="Google OpenSocial"
119
+
120
+ [Google-Site-Verification/1.0]
121
+ Parent=Google
122
+ Browser="Google-Site-Verification"
123
+
124
+ [Google-Sitemaps/*]
125
+ Parent=Google
126
+ Browser="Google-Sitemaps"
127
+
128
+ [Googlebot-Image/*]
129
+ Parent=Google
130
+ Browser="Googlebot-Image"
131
+ CDF=true
132
+
133
+ [Googlebot-News/*]
134
+ Parent=Google
135
+ Browser="Googlebot-News"
136
+
137
+ [googlebot-urlconsole]
138
+ Parent=Google
139
+ Browser="googlebot-urlconsole"
140
+
141
+ [Googlebot-Video/1.0]
142
+ Parent=Google
143
+ Browser="Google-Video"
144
+
145
+ [Googlebot/2.1 (?http://www.google.com/bot.html)]
146
+ Parent=Google
147
+ Browser="Googlebot"
148
+
149
+ [Googlebot/2.1 (?http://www.googlebot.com/bot.html)]
150
+ Parent=Google
151
+ Browser="Googlebot"
152
+
153
+ [Googlebot/Test*]
154
+ Parent=Google
155
+ Browser="Googlebot/Test"
156
+
157
+ [GoogleFriendConnect/1.*]
158
+ Parent=Google
159
+ Browser="Google Friend Connect"
160
+
161
+ [gsa-crawler*]
162
+ Parent=Google
163
+ Browser="Google Search Appliance"
164
+ isBanned=true
165
+
166
+ [Mediapartners-Google*]
167
+ Parent=Google
168
+ Browser="Mediapartners-Google"
169
+
170
+ [Mozilla/?.0 (compatible; Google Desktop*)]
171
+ Parent=Google
172
+ Browser="Google Desktop"
173
+
174
+ [Mozilla/5.0 (compatible; Google Keyword Tool;*)]
175
+ Parent=Google
176
+ Browser="Google Keyword Tool"
177
+
178
+ [Mozilla/5.0 (compatible; Googlebot/2.1; ?http://www.google.com/bot.html)]
179
+ Parent=Google
180
+ Browser="Google Webmaster Tools"
181
+
182
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Inktomi
183
+
184
+ [Inktomi]
185
+ Parent=DefaultProperties
186
+ Browser="Inktomi"
187
+ Frames=true
188
+ Tables=true
189
+ Crawler=true
190
+
191
+ [* (compatible;YahooSeeker/M1A1-R2D2; *)]
192
+ Parent=Inktomi
193
+ Browser="YahooSeeker-Mobile"
194
+ Frames=false
195
+ Tables=false
196
+
197
+ [Mozilla/4.0]
198
+ Parent=Inktomi
199
+
200
+ [Mozilla/4.0 (compatible; MSIE 5.0; Windows NT)]
201
+ Parent=Inktomi
202
+ Win32=true
203
+
204
+ [Mozilla/4.0 (compatible; Yahoo Japan; for robot study; kasugiya)]
205
+ Parent=Inktomi
206
+ Browser="Yahoo! RobotStudy"
207
+ isBanned=true
208
+
209
+ [Mozilla/5.0 (compatible; BMC/1.0 (Y!J-AGENT))]
210
+ Parent=Inktomi
211
+ Browser="Y!J-AGENT/BMC"
212
+
213
+ [Mozilla/5.0 (compatible; BMF/1.0 (Y!J-AGENT))]
214
+ Parent=Inktomi
215
+ Browser="Y!J-AGENT/BMF"
216
+
217
+ [Mozilla/5.0 (compatible; BMI/1.0 (Y!J-AGENT; 1.0))]
218
+ Parent=Inktomi
219
+ Browser="Y!J-AGENT/BMI"
220
+
221
+ [Mozilla/5.0 (compatible; Yahoo! DE Slurp; http://help.yahoo.com/help/us/ysearch/slurp)]
222
+ Parent=Inktomi
223
+ Browser="Yahoo! Directory Engine"
224
+
225
+ [Mozilla/5.0 (compatible; Yahoo! SearchMonkey 1.0; *)]
226
+ Parent=Inktomi
227
+ Browser="Yahoo! Search Monkey"
228
+
229
+ [Mozilla/5.0 (compatible; Yahoo! Slurp China; http://misc.yahoo.com.cn/help.html)]
230
+ Parent=Inktomi
231
+ Browser="Yahoo! Slurp China"
232
+
233
+ [Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)]
234
+ Parent=Inktomi
235
+ Browser="Yahoo! Slurp"
236
+ Version=3.0
237
+ MajorVer=3
238
+ MinorVer=0
239
+
240
+ [Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)]
241
+ Parent=Inktomi
242
+ Browser="Yahoo! Slurp"
243
+
244
+ [Mozilla/5.0 (compatible; Yahoo! Verifier/1.1)]
245
+ Parent=Inktomi
246
+ Browser="Yahoo! Verifier"
247
+ Version=1.1
248
+ MajorVer=1
249
+ MinorVer=1
250
+
251
+ [Mozilla/5.0 (Slurp/cat; slurp@inktomi.com; http://www.inktomi.com/slurp.html)]
252
+ Parent=Inktomi
253
+ Browser="Slurp/cat"
254
+
255
+ [Mozilla/5.0 (Slurp/si; slurp@inktomi.com; http://www.inktomi.com/slurp.html)]
256
+ Parent=Inktomi
257
+
258
+ [Mozilla/5.0 (Yahoo-MMCrawler/4.0; mailto:vertical-crawl-support@yahoo-inc.com)]
259
+ Parent=Inktomi
260
+ Browser="Yahoo-MMCrawler"
261
+ Version=4.0
262
+ MajorVer=4
263
+ MinorVer=0
264
+
265
+ [Scooter/*]
266
+ Parent=Inktomi
267
+ Browser="Scooter"
268
+
269
+ [Scooter/3.3Y!CrawlX]
270
+ Parent=Inktomi
271
+ Browser="Scooter/3.3Y!CrawlX"
272
+ Version=3.3
273
+ MajorVer=3
274
+ MinorVer=3
275
+
276
+ [slurp]
277
+ Parent=Inktomi
278
+ Browser="slurp"
279
+
280
+ [Y!J SearchMonkey/1.0*]
281
+ Parent=Inktomi
282
+ Browser="YahooFeedSeeker"
283
+ isSyndicationReader=true
284
+
285
+ [Y!J-BRE*]
286
+ Parent=Inktomi
287
+ Browser="YahooFeedSeeker"
288
+ isSyndicationReader=true
289
+
290
+ [Y!J-BRG/GSC*]
291
+ Parent=Inktomi
292
+ Browser="YahooFeedSeeker"
293
+ isSyndicationReader=true
294
+
295
+ [Y!J-BRI*]
296
+ Parent=Inktomi
297
+ Browser="YahooFeedSeeker"
298
+ isSyndicationReader=true
299
+
300
+ [Y!J-BRO/YFSJ*]
301
+ Parent=Inktomi
302
+ Browser="YahooFeedSeeker"
303
+ isSyndicationReader=true
304
+
305
+ [Y!J-BRP/YFSBJ*]
306
+ Parent=Inktomi
307
+ Browser="YahooFeedSeeker"
308
+ isSyndicationReader=true
309
+
310
+ [Y!J-BRQ/DLCK*]
311
+ Parent=Inktomi
312
+ Browser="YahooFeedSeeker"
313
+ isSyndicationReader=true
314
+
315
+ [Y!J-BSC/1.0*]
316
+ Parent=Inktomi
317
+ Browser="YahooFeedSeeker"
318
+ Version=1.0
319
+ MajorVer=1
320
+ MinorVer=0
321
+ isSyndicationReader=true
322
+
323
+ [Y!J-DSC*]
324
+ Parent=Inktomi
325
+ Browser="YahooFeedSeeker"
326
+ isSyndicationReader=true
327
+
328
+ [Y!J-NSC/1.0*]
329
+ Parent=Inktomi
330
+ Browser="YahooFeedSeeker"
331
+ isSyndicationReader=true
332
+
333
+ [Y!J-PSC*]
334
+ Parent=Inktomi
335
+ Browser="YahooFeedSeeker"
336
+ isSyndicationReader=true
337
+
338
+ [Y!J-SRD/1.0]
339
+ Parent=Inktomi
340
+ Browser="YahooFeedSeeker"
341
+ Version=1.0
342
+ MajorVer=1
343
+ MinorVer=0
344
+
345
+ [Y!J-VSC/ViSe*]
346
+ Parent=Inktomi
347
+ Browser="YahooFeedSeeker"
348
+ isSyndicationReader=true
349
+
350
+ [Yahoo Mindset]
351
+ Parent=Inktomi
352
+ Browser="Yahoo Mindset"
353
+
354
+ [Yahoo Pipes*]
355
+ Parent=Inktomi
356
+ Browser="Yahoo Pipes"
357
+
358
+ [Yahoo! Mindset]
359
+ Parent=Inktomi
360
+ Browser="Yahoo! Mindset"
361
+
362
+ [Yahoo! Slurp/Site Explorer]
363
+ Parent=Inktomi
364
+ Browser="Yahoo! Site Explorer"
365
+
366
+ [Yahoo-Blogs/*]
367
+ Parent=Inktomi
368
+ Browser="Yahoo-Blogs"
369
+
370
+ [Yahoo-MMAudVid*]
371
+ Parent=Inktomi
372
+ Browser="Yahoo-MMAudVid"
373
+
374
+ [Yahoo-MMCrawler*]
375
+ Parent=Inktomi
376
+ Browser="Yahoo-MMCrawler"
377
+ isBanned=true
378
+
379
+ [YahooFeedSeeker*]
380
+ Parent=Inktomi
381
+ Browser="YahooFeedSeeker"
382
+ isSyndicationReader=true
383
+ Crawler=false
384
+
385
+ [YahooSeeker/*]
386
+ Parent=Inktomi
387
+ Browser="YahooSeeker"
388
+ isMobileDevice=true
389
+
390
+ [YahooSeeker/CafeKelsa (compatible; Konqueror/3.2; FreeBSD*) (KHTML, like Gecko)]
391
+ Parent=Inktomi
392
+ Browser="YahooSeeker/CafeKelsa"
393
+
394
+ [YahooSeeker/CafeKelsa-dev (compatible; Konqueror/3.2; FreeBSD*) (KHTML, like Gecko)]
395
+ Parent=Inktomi
396
+
397
+ [YahooVideoSearch*]
398
+ Parent=Inktomi
399
+ Browser="YahooVideoSearch"
400
+
401
+ [YahooYSMcm*]
402
+ Parent=Inktomi
403
+ Browser="YahooYSMcm"
404
+
405
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; MSN
406
+
407
+ [MSN]
408
+ Parent=DefaultProperties
409
+ Browser="MSN"
410
+ Frames=true
411
+ Tables=true
412
+ Crawler=true
413
+
414
+ [adidxbot/1.1 (?http://search.msn.com/msnbot.htm)]
415
+ Parent=MSN
416
+ Browser="adidxbot"
417
+
418
+ [librabot/1.0 (*)]
419
+ Parent=MSN
420
+ Browser="librabot"
421
+
422
+ [llssbot/1.0]
423
+ Parent=MSN
424
+ Browser="llssbot"
425
+ Version=1.0
426
+ MajorVer=1
427
+ MinorVer=0
428
+
429
+ [Mozilla/5.0 (Danger hiptop 3.*; U; rv:1.7.*) Gecko/*]
430
+ Parent=MSN
431
+ Browser="Danger"
432
+
433
+ [MSMOBOT/1.1*]
434
+ Parent=MSN
435
+ Browser="msnbot-mobile"
436
+ Version=1.1
437
+ MajorVer=1
438
+ MinorVer=1
439
+
440
+ [MSNBot-Academic/1.0*]
441
+ Parent=MSN
442
+ Browser="MSNBot-Academic"
443
+ Version=1.0
444
+ MajorVer=1
445
+ MinorVer=0
446
+
447
+ [msnbot-media/1.0*]
448
+ Parent=MSN
449
+ Browser="msnbot-media"
450
+ Version=1.0
451
+ MajorVer=1
452
+ MinorVer=0
453
+
454
+ [msnbot-media/1.1*]
455
+ Parent=MSN
456
+ Browser="msnbot-media"
457
+ Version=1.1
458
+ MajorVer=1
459
+ MinorVer=1
460
+
461
+ [MSNBot-News/1.0*]
462
+ Parent=MSN
463
+ Browser="MSNBot-News"
464
+ Version=1.0
465
+ MajorVer=1
466
+ MinorVer=0
467
+
468
+ [MSNBot-NewsBlogs/1.0*]
469
+ Parent=MSN
470
+ Browser="MSNBot-NewsBlogs"
471
+ Version=1
472
+ MajorVer=1
473
+ MinorVer=0
474
+
475
+ [msnbot-products]
476
+ Parent=MSN
477
+ Browser="msnbot-products"
478
+
479
+ [msnbot-webmaster/1.0 (*http://search.msn.com/msnbot.htm)]
480
+ Parent=MSN
481
+ Browser="msnbot-webmaster tools"
482
+
483
+ [msnbot/1.0*]
484
+ Parent=MSN
485
+ Browser="msnbot"
486
+ Version=1.0
487
+ MajorVer=1
488
+ MinorVer=0
489
+
490
+ [msnbot/1.1*]
491
+ Parent=MSN
492
+ Browser="msnbot"
493
+ Version=1.1
494
+ MajorVer=1
495
+ MinorVer=1
496
+
497
+ [msnbot/2.0b*]
498
+ Parent=MSN
499
+ Version=2.0
500
+ MajorVer=2
501
+ MinorVer=0
502
+ Beta=true
503
+
504
+ [MSR-ISRCCrawler]
505
+ Parent=MSN
506
+ Browser="MSR-ISRCCrawler"
507
+
508
+ [MSRBOT*]
509
+ Parent=MSN
510
+ Browser="MSRBOT"
511
+
512
+ [renlifangbot/1.0 (?http://search.msn.com/msnbot.htm)]
513
+ Parent=MSN
514
+ Browser="renlifangbot"
515
+
516
+ [T-Mobile Dash Mozilla/4.0 (*) MSNBOT-MOBILE/1.1 (*)]
517
+ Parent=MSN
518
+ Browser="msnbot-mobile"
519
+
520
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Yahoo
521
+
522
+ [Yahoo]
523
+ Parent=DefaultProperties
524
+ Browser="Yahoo"
525
+ Frames=true
526
+ Tables=true
527
+ Crawler=true
528
+
529
+ [Mozilla/4.0 (compatible; Y!J; for robot study*)]
530
+ Parent=Yahoo
531
+ Browser="Y!J"
532
+
533
+ [Mozilla/5.0 (Yahoo-Test/4.0*)]
534
+ Parent=Yahoo
535
+ Browser="Yahoo-Test"
536
+ Version=4.0
537
+ MajorVer=4
538
+ MinorVer=0
539
+
540
+ [mp3Spider cn-search-devel at yahoo-inc dot com]
541
+ Parent=Yahoo
542
+ Browser="Yahoo! Media"
543
+ isBanned=true
544
+
545
+ [My Browser]
546
+ Parent=Yahoo
547
+ Browser="Yahoo! My Browser"
548
+
549
+ [Y!OASIS/*]
550
+ Parent=Yahoo
551
+ Browser="Y!OASIS"
552
+ isBanned=true
553
+
554
+ [YahooYSMcm/2.0.0]
555
+ Parent=Yahoo
556
+ Browser="YahooYSMcm"
557
+ Version=2.0
558
+ MajorVer=2
559
+ MinorVer=0
560
+ isBanned=true
561
+
562
+ [YRL_ODP_CRAWLER]
563
+ Parent=Yahoo
564
+ Browser="YRL_ODP_CRAWLER"
565
+ isBanned=true
566
+
567
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Yandex
568
+
569
+ [Yandex]
570
+ Parent=DefaultProperties
571
+ Browser="Yandex"
572
+ Frames=true
573
+ IFrames=true
574
+ Tables=true
575
+ Cookies=true
576
+ Crawler=true
577
+
578
+ [Mozilla/4.0 (compatible; MSIE 5.0; YANDEX)]
579
+ Parent=Yandex
580
+
581
+ [Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9) Gecko VisualParser/3.0]
582
+ Parent=Yandex
583
+ Browser="VisualParser"
584
+ isBanned=true
585
+
586
+ [YaDirectBot/*]
587
+ Parent=Yandex
588
+ Browser="YaDirectBot"
589
+
590
+ [Yandex/*]
591
+ Parent=Yandex
592
+
593
+ [YandexBlog/*]
594
+ Parent=Yandex
595
+ Browser="YandexBlog"
596
+ isSyndicationReader=true
597
+
598
+ [YandexSomething/*]
599
+ Parent=Yandex
600
+ Browser="YandexSomething"
601
+ isSyndicationReader=true
602
+
603
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Best of the Web
604
+
605
+ [Best of the Web]
606
+ Parent=DefaultProperties
607
+ Browser="Best of the Web"
608
+ Frames=true
609
+ Tables=true
610
+
611
+ [Mozilla/4.0 (compatible; BOTW Feed Grabber; *http://botw.org)]
612
+ Parent=Best of the Web
613
+ Browser="BOTW Feed Grabber"
614
+ isSyndicationReader=true
615
+ Crawler=false
616
+
617
+ [Mozilla/4.0 (compatible; BOTW Spider; *http://botw.org)]
618
+ Parent=Best of the Web
619
+ Browser="BOTW Spider"
620
+ isBanned=true
621
+
622
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Boitho
623
+
624
+ [Boitho]
625
+ Parent=DefaultProperties
626
+ Browser="Boitho"
627
+ Frames=true
628
+ Tables=true
629
+ Crawler=true
630
+
631
+ [boitho.com-dc/*]
632
+ Parent=Boitho
633
+ Browser="boitho.com-dc"
634
+
635
+ [boitho.com-robot/*]
636
+ Parent=Boitho
637
+ Browser="boitho.com-robot"
638
+
639
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Convera
640
+
641
+ [Convera]
642
+ Parent=DefaultProperties
643
+ Browser="Convera"
644
+ Frames=true
645
+ Tables=true
646
+ Crawler=true
647
+
648
+ [ConveraCrawler/*]
649
+ Parent=Convera
650
+ Browser="ConveraCrawler"
651
+
652
+ [ConveraMultiMediaCrawler/0.1*]
653
+ Parent=Convera
654
+ Browser="ConveraMultiMediaCrawler"
655
+ Version=0.1
656
+ MajorVer=0
657
+ MinorVer=1
658
+
659
+ [CrawlConvera*]
660
+ Parent=Convera
661
+ Browser="CrawlConvera"
662
+
663
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DotBot
664
+
665
+ [DotBot]
666
+ Parent=DefaultProperties
667
+ Browser="DotBot"
668
+ Frames=true
669
+ Tables=true
670
+ isBanned=true
671
+ Crawler=true
672
+
673
+ [DotBot/* (http://www.dotnetdotcom.org/*)]
674
+ Parent=DotBot
675
+
676
+ [Mozilla/5.0 (compatible; DotBot/*; http://www.dotnetdotcom.org/*)]
677
+ Parent=DotBot
678
+
679
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Entireweb
680
+
681
+ [Entireweb]
682
+ Parent=DefaultProperties
683
+ Browser="Entireweb"
684
+ Frames=true
685
+ IFrames=true
686
+ Tables=true
687
+ isBanned=true
688
+ Crawler=true
689
+
690
+ [Mozilla/4.0 (compatible; SpeedySpider; www.entireweb.com)]
691
+ Parent=Entireweb
692
+
693
+ [Speedy Spider (*Beta/*)]
694
+ Parent=Entireweb
695
+
696
+ [Speedy?Spider?(http://www.entireweb.com*)]
697
+ Parent=Entireweb
698
+
699
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Envolk
700
+
701
+ [Envolk]
702
+ Parent=DefaultProperties
703
+ Browser="Envolk"
704
+ Frames=true
705
+ IFrames=true
706
+ Tables=true
707
+ isBanned=true
708
+ Crawler=true
709
+
710
+ [envolk/* (?http://www.envolk.com/envolk*)]
711
+ Parent=Envolk
712
+
713
+ [envolk?ITS?spider/* (?http://www.envolk.com/envolk*)]
714
+ Parent=Envolk
715
+
716
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Exalead
717
+
718
+ [Exalead]
719
+ Parent=DefaultProperties
720
+ Browser="Exalead"
721
+ Frames=true
722
+ Tables=true
723
+ isBanned=true
724
+ Crawler=true
725
+
726
+ [Exabot-Images/1.0]
727
+ Parent=Exalead
728
+ Browser="Exabot-Images"
729
+ Version=1.0
730
+ MajorVer=1
731
+ MinorVer=0
732
+
733
+ [Exabot-Test/*]
734
+ Parent=Exalead
735
+ Browser="Exabot-Test"
736
+
737
+ [Exabot/2.0]
738
+ Parent=Exalead
739
+ Browser="Exabot"
740
+
741
+ [Exabot/3.0]
742
+ Parent=Exalead
743
+ Browser="Exabot"
744
+ Version=3.0
745
+ MajorVer=3
746
+ MinorVer=0
747
+ Platform=Liberate
748
+
749
+ [Exalead NG/*]
750
+ Parent=Exalead
751
+ Browser="Exalead NG"
752
+ isBanned=true
753
+
754
+ [Mozilla/5.0 (compatible; Exabot-Images/3.0;*)]
755
+ Parent=Exalead
756
+ Browser="Exabot-Images"
757
+
758
+ [Mozilla/5.0 (compatible; Exabot/3.0 (BiggerBetter); *)]
759
+ Parent=Exalead
760
+ Browser="Exabot/BiggerBetter"
761
+
762
+ [Mozilla/5.0 (compatible; Exabot/3.0;*)]
763
+ Parent=Exalead
764
+ Browser="Exabot"
765
+ isBanned=false
766
+
767
+ [Mozilla/5.0 (compatible; NGBot/*)]
768
+ Parent=Exalead
769
+
770
+ [ng/*]
771
+ Parent=Exalead
772
+ Browser="Exalead Previewer"
773
+ Version=1.0
774
+ MajorVer=1
775
+ MinorVer=0
776
+ isBanned=true
777
+
778
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Fast/AllTheWeb
779
+
780
+ [Fast/AllTheWeb]
781
+ Parent=DefaultProperties
782
+ Browser="Fast/AllTheWeb"
783
+ Alpha=true
784
+ Beta=true
785
+ Win16=true
786
+ Win32=true
787
+ Win64=true
788
+ Frames=true
789
+ IFrames=true
790
+ Tables=true
791
+ Cookies=true
792
+ BackgroundSounds=true
793
+ CDF=true
794
+ VBScript=true
795
+ JavaApplets=true
796
+ JavaScript=true
797
+ ActiveXControls=true
798
+ isBanned=true
799
+ isMobileDevice=true
800
+ isSyndicationReader=true
801
+ Crawler=true
802
+
803
+ [*FAST Enterprise Crawler*]
804
+ Parent=Fast/AllTheWeb
805
+ Browser="FAST Enterprise Crawler"
806
+
807
+ [FAST Data Search Document Retriever/4.0*]
808
+ Parent=Fast/AllTheWeb
809
+ Browser="FAST Data Search Document Retriever"
810
+
811
+ [FAST MetaWeb Crawler (helpdesk at fastsearch dot com)]
812
+ Parent=Fast/AllTheWeb
813
+ Browser="FAST MetaWeb Crawler"
814
+
815
+ [Fast PartnerSite Crawler*]
816
+ Parent=Fast/AllTheWeb
817
+ Browser="FAST PartnerSite"
818
+
819
+ [FAST-WebCrawler/*]
820
+ Parent=Fast/AllTheWeb
821
+ Browser="FAST-WebCrawler"
822
+
823
+ [FAST-WebCrawler/*/FirstPage*]
824
+ Parent=Fast/AllTheWeb
825
+ Browser="FAST-WebCrawler/FirstPage"
826
+
827
+ [FAST-WebCrawler/*/Fresh*]
828
+ Parent=Fast/AllTheWeb
829
+ Browser="FAST-WebCrawler/Fresh"
830
+
831
+ [FAST-WebCrawler/*/PartnerSite*]
832
+ Parent=Fast/AllTheWeb
833
+ Browser="FAST PartnerSite"
834
+
835
+ [FAST-WebCrawler/*?Multimedia*]
836
+ Parent=Fast/AllTheWeb
837
+ Browser="FAST-WebCrawler/Multimedia"
838
+
839
+ [FastSearch Web Crawler for*]
840
+ Parent=Fast/AllTheWeb
841
+ Browser="FastSearch Web Crawler"
842
+
843
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Gigabot
844
+
845
+ [Gigabot]
846
+ Parent=DefaultProperties
847
+ Browser="Gigabot"
848
+ Frames=true
849
+ IFrames=true
850
+ Tables=true
851
+ Crawler=true
852
+
853
+ [Gigabot*]
854
+ Parent=Gigabot
855
+
856
+ [GigabotSiteSearch/*]
857
+ Parent=Gigabot
858
+ Browser="GigabotSiteSearch"
859
+
860
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Ilse
861
+
862
+ [Ilse]
863
+ Parent=DefaultProperties
864
+ Browser="Ilse"
865
+ Frames=true
866
+ Tables=true
867
+ Crawler=true
868
+
869
+ [IlseBot/*]
870
+ Parent=Ilse
871
+
872
+ [INGRID/?.0*]
873
+ Parent=Ilse
874
+ Browser="Ilse"
875
+
876
+ [Mozilla/3.0 (INGRID/*]
877
+ Parent=Ilse
878
+ Browser="Ilse"
879
+
880
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; iVia Project
881
+
882
+ [iVia Project]
883
+ Parent=DefaultProperties
884
+ Browser="iVia Project"
885
+ Frames=true
886
+ IFrames=true
887
+ Tables=true
888
+ Crawler=true
889
+
890
+ [DataFountains/DMOZ Downloader*]
891
+ Parent=iVia Project
892
+ Browser="DataFountains/DMOZ Downloader"
893
+ isBanned=true
894
+
895
+ [DataFountains/DMOZ Feature Vector Corpus Creator*]
896
+ Parent=iVia Project
897
+ Browser="DataFountains/DMOZ Feature Vector Corpus"
898
+
899
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Jayde Online
900
+
901
+ [Jayde Online]
902
+ Parent=DefaultProperties
903
+ Browser="Jayde Online"
904
+ Frames=true
905
+ Tables=true
906
+ Crawler=true
907
+
908
+ [ExactSeek Crawler/*]
909
+ Parent=Jayde Online
910
+ Browser="ExactSeek Crawler"
911
+
912
+ [exactseek-pagereaper-* (crawler@exactseek.com)]
913
+ Parent=Jayde Online
914
+ Browser="exactseek-pagereaper"
915
+ isBanned=true
916
+
917
+ [exactseek.com]
918
+ Parent=Jayde Online
919
+ Browser="exactseek.com"
920
+
921
+ [Jayde Crawler*]
922
+ Parent=Jayde Online
923
+ Browser="Jayde Crawler"
924
+
925
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Lycos
926
+
927
+ [Lycos]
928
+ Parent=DefaultProperties
929
+ Browser="Lycos"
930
+ Frames=true
931
+ Tables=true
932
+ Crawler=true
933
+
934
+ [Lycos*]
935
+ Parent=Lycos
936
+ Browser="Lycos"
937
+
938
+ [Lycos-Proxy]
939
+ Parent=Lycos
940
+ Browser="Lycos-Proxy"
941
+
942
+ [Lycos-Spider_(modspider)]
943
+ Parent=Lycos
944
+ Browser="Lycos-Spider_(modspider)"
945
+
946
+ [Lycos-Spider_(T-Rex)]
947
+ Parent=Lycos
948
+ Browser="Lycos-Spider_(T-Rex)"
949
+
950
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Naver
951
+
952
+ [Naver]
953
+ Parent=DefaultProperties
954
+ Browser="Naver"
955
+ isBanned=true
956
+ Crawler=true
957
+
958
+ [Cowbot-* (NHN Corp*naver.com)]
959
+ Parent=Naver
960
+ Browser="Naver Cowbot"
961
+
962
+ [Mozilla/4.0 (compatible; NaverBot/*; *)]
963
+ Parent=Naver
964
+
965
+ [Mozilla/4.0 (compatible; NaverBot/*; nhnbot@naver.com)]
966
+ Parent=Naver
967
+ Browser="Naver NaverBot"
968
+
969
+ [NaverBot-* (NHN Corp*naver.com)]
970
+ Parent=Naver
971
+ Browser="Naver NHN Corp"
972
+
973
+ [Yeti/*]
974
+ Parent=Naver
975
+ Browser="Yeti"
976
+
977
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Snap
978
+
979
+ [Snap]
980
+ Parent=DefaultProperties
981
+ Browser="Snap"
982
+ isBanned=true
983
+ Crawler=true
984
+
985
+ [Mozilla/5.0 (SnapPreviewBot) Gecko/* Firefox/*]
986
+ Parent=Snap
987
+
988
+ [Snapbot/*]
989
+ Parent=Snap
990
+
991
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Sogou
992
+
993
+ [Sogou]
994
+ Parent=DefaultProperties
995
+ Browser="Sogou"
996
+ Frames=true
997
+ Tables=true
998
+ isBanned=true
999
+ Crawler=true
1000
+
1001
+ [shaboyi spider]
1002
+ Parent=Sogou
1003
+ Browser="Sogou/Shaboyi Spider"
1004
+
1005
+ [Sogou develop spider/*]
1006
+ Parent=Sogou
1007
+ Browser="Sogou Develop Spider"
1008
+
1009
+ [Sogou head spider*]
1010
+ Parent=Sogou
1011
+ Browser="Sogou/HEAD Spider"
1012
+
1013
+ [sogou js robot(*)]
1014
+ Parent=Sogou
1015
+
1016
+ [Sogou Orion spider/*]
1017
+ Parent=Sogou
1018
+ Browser="Sogou Orion spider"
1019
+
1020
+ [Sogou Pic Agent]
1021
+ Parent=Sogou
1022
+ Browser="Sogou/Image Crawler"
1023
+
1024
+ [Sogou Pic Spider]
1025
+ Parent=Sogou
1026
+ Browser="Sogou Pic Spider"
1027
+
1028
+ [Sogou Push Spider/*]
1029
+ Parent=Sogou
1030
+ Browser="Sogou Push Spider"
1031
+
1032
+ [sogou spider]
1033
+ Parent=Sogou
1034
+ Browser="Sogou/Spider"
1035
+
1036
+ [sogou web spider*]
1037
+ Parent=Sogou
1038
+ Browser="sogou web spider"
1039
+
1040
+ [Sogou-Test-Spider/*]
1041
+ Parent=Sogou
1042
+ Browser="Sogou-Test-Spider"
1043
+
1044
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; YodaoBot
1045
+
1046
+ [YodaoBot]
1047
+ Parent=DefaultProperties
1048
+ Browser="YodaoBot"
1049
+ Frames=true
1050
+ IFrames=true
1051
+ Tables=true
1052
+ isBanned=true
1053
+ Crawler=true
1054
+
1055
+ [Mozilla/5.0 (compatible; YodaoBot/1.*)]
1056
+ Parent=YodaoBot
1057
+
1058
+ [Mozilla/5.0 (compatible;YodaoBot-Image/1.*)]
1059
+ Parent=YodaoBot
1060
+ Browser="YodaoBot-Image"
1061
+
1062
+ [WAP_Browser/5.0 (compatible; YodaoBot/1.*)]
1063
+ Parent=YodaoBot
1064
+
1065
+ [YodaoBot/1.* (*)]
1066
+ Parent=YodaoBot
1067
+
1068
+ [Best Whois (http://www.bestwhois.net/)]
1069
+ Parent=DNS Tools
1070
+ Browser="Best Whois"
1071
+
1072
+ [DNSGroup/*]
1073
+ Parent=DNS Tools
1074
+ Browser="DNS Group Crawler"
1075
+
1076
+ [NG-Search/*]
1077
+ Parent=Exalead
1078
+ Browser="NG-SearchBot"
1079
+
1080
+ [TouchStone]
1081
+ Parent=Feeds Syndicators
1082
+ Browser="TouchStone"
1083
+ isSyndicationReader=true
1084
+
1085
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; General Crawlers
1086
+
1087
+ [General Crawlers]
1088
+ Parent=DefaultProperties
1089
+ Browser="General Crawlers"
1090
+ Crawler=true
1091
+
1092
+ [A .NET Web Crawler]
1093
+ Parent=General Crawlers
1094
+ isBanned=true
1095
+
1096
+ [BabalooSpider/1.*]
1097
+ Parent=General Crawlers
1098
+ Browser="BabalooSpider"
1099
+
1100
+ [BilgiBot/*]
1101
+ Parent=General Crawlers
1102
+ Browser="BilgiBot"
1103
+ isBanned=true
1104
+
1105
+ [bot/* (bot; *bot@bot.bot)]
1106
+ Parent=General Crawlers
1107
+ Browser="bot"
1108
+ isBanned=true
1109
+
1110
+ [CyberPatrol*]
1111
+ Parent=General Crawlers
1112
+ Browser="CyberPatrol"
1113
+ isBanned=true
1114
+
1115
+ [Cynthia 1.0]
1116
+ Parent=General Crawlers
1117
+ Browser="Cynthia"
1118
+ Version=1.0
1119
+ MajorVer=1
1120
+ MinorVer=0
1121
+
1122
+ [cz32ts]
1123
+ Parent=General Crawlers
1124
+ Browser="cz32ts"
1125
+ isBanned=true
1126
+
1127
+ [ddetailsbot (http://www.displaydetails.com)]
1128
+ Parent=General Crawlers
1129
+ Browser="ddetailsbot"
1130
+
1131
+ [DomainCrawler/1.0 (info@domaincrawler.com; http://www.domaincrawler.com/domains/view/*)]
1132
+ Parent=General Crawlers
1133
+ Browser="DomainCrawler"
1134
+
1135
+ [DomainsBotBot/1.*]
1136
+ Parent=General Crawlers
1137
+ Browser="DomainsBotBot"
1138
+ isBanned=true
1139
+
1140
+ [DomainsDB.net MetaCrawler*]
1141
+ Parent=General Crawlers
1142
+ Browser="DomainsDB"
1143
+
1144
+ [Drupal (*)]
1145
+ Parent=General Crawlers
1146
+ Browser="Drupal"
1147
+
1148
+ [Dumbot (version *)*]
1149
+ Parent=General Crawlers
1150
+ Browser="Dumbfind"
1151
+
1152
+ [EuripBot/*]
1153
+ Parent=General Crawlers
1154
+ Browser="Europe Internet Portal"
1155
+
1156
+ [eventax/*]
1157
+ Parent=General Crawlers
1158
+ Browser="eventax"
1159
+
1160
+ [FANGCrawl/*]
1161
+ Parent=General Crawlers
1162
+ Browser="Safe-t.net Web Filtering Service"
1163
+ isBanned=true
1164
+
1165
+ [favorstarbot/*]
1166
+ Parent=General Crawlers
1167
+ Browser="favorstarbot"
1168
+ isBanned=true
1169
+
1170
+ [FollowSite.com (*)]
1171
+ Parent=General Crawlers
1172
+ Browser="FollowSite"
1173
+ isBanned=true
1174
+
1175
+ [Gaisbot*]
1176
+ Parent=General Crawlers
1177
+ Browser="Gaisbot"
1178
+
1179
+ [Healthbot/Health_and_Longevity_Project_(HealthHaven.com) ]
1180
+ Parent=General Crawlers
1181
+ Browser="Healthbot"
1182
+ isBanned=true
1183
+
1184
+ [hitcrawler_0.*]
1185
+ Parent=General Crawlers
1186
+ Browser="hitcrawler"
1187
+ isBanned=true
1188
+
1189
+ [htdig/*]
1190
+ Parent=General Crawlers
1191
+ Browser="ht://Dig"
1192
+
1193
+ [http://hilfe.acont.de/bot.html ACONTBOT]
1194
+ Parent=General Crawlers
1195
+ Browser="ACONTBOT"
1196
+ isBanned=true
1197
+
1198
+ [JetBrains*]
1199
+ Parent=General Crawlers
1200
+ Browser="Omea Pro"
1201
+
1202
+ [KakleBot - www.kakle.com/0.1]
1203
+ Parent=General Crawlers
1204
+ Browser="KakleBot"
1205
+
1206
+ [KBeeBot/0.*]
1207
+ Parent=General Crawlers
1208
+ Browser="KBeeBot"
1209
+ isBanned=true
1210
+
1211
+ [Keyword Density/*]
1212
+ Parent=General Crawlers
1213
+ Browser="Keyword Density"
1214
+
1215
+ [LetsCrawl.com/1.0*]
1216
+ Parent=General Crawlers
1217
+ Browser="LetsCrawl.com"
1218
+ isBanned=true
1219
+
1220
+ [Lincoln State Web Browser]
1221
+ Parent=General Crawlers
1222
+ Browser="Lincoln State Web Browser"
1223
+ isBanned=true
1224
+
1225
+ [Links4US-Crawler,*]
1226
+ Parent=General Crawlers
1227
+ Browser="Links4US-Crawler"
1228
+ isBanned=true
1229
+
1230
+ [Lorkyll *.* -- lorkyll@444.net]
1231
+ Parent=General Crawlers
1232
+ Browser="Lorkyll"
1233
+ isBanned=true
1234
+
1235
+ [Lsearch/sondeur]
1236
+ Parent=General Crawlers
1237
+ Browser="Lsearch/sondeur"
1238
+ isBanned=true
1239
+
1240
+ [LucidMedia ClickSense/4.?]
1241
+ Parent=General Crawlers
1242
+ Browser="LucidMedia-ClickSense"
1243
+ isBanned=true
1244
+
1245
+ [Made by ZmEu @ WhiteHat v0.* (www.WhiteHat.ro)]
1246
+ Parent=General Crawlers
1247
+ Browser="ZmEu"
1248
+ isBanned=true
1249
+
1250
+ [Mahalobot/1.0 (?http://www.mahalo.com/)]
1251
+ Parent=General Crawlers
1252
+ Browser="Mahalobot"
1253
+
1254
+ [MapoftheInternet.com?(?http://MapoftheInternet.com)]
1255
+ Parent=General Crawlers
1256
+ Browser="MapoftheInternet"
1257
+ isBanned=true
1258
+
1259
+ [Marvin v0.3]
1260
+ Parent=General Crawlers
1261
+ Browser="MedHunt"
1262
+ Version=0.3
1263
+ MajorVer=0
1264
+ MinorVer=3
1265
+
1266
+ [masidani_bot_v0.6*]
1267
+ Parent=General Crawlers
1268
+ Browser="masidani_bot"
1269
+
1270
+ [Metaspinner/0.01 (Metaspinner; http://www.meta-spinner.de/; support@meta-spinner.de/)]
1271
+ Parent=General Crawlers
1272
+ Browser="Metaspinner/0.01"
1273
+ Version=0.01
1274
+ MajorVer=0
1275
+ MinorVer=01
1276
+
1277
+ [metatagsdir/*]
1278
+ Parent=General Crawlers
1279
+ Browser="metatagsdir"
1280
+ isBanned=true
1281
+
1282
+ [Microsoft Windows Network Diagnostics]
1283
+ Parent=General Crawlers
1284
+ Browser="Microsoft Windows Network Diagnostics"
1285
+ isBanned=true
1286
+
1287
+ [Miva (AlgoFeedback@miva.com)]
1288
+ Parent=General Crawlers
1289
+ Browser="Miva"
1290
+
1291
+ [moget/*]
1292
+ Parent=General Crawlers
1293
+ Browser="Goo"
1294
+
1295
+ [Mozdex/0.7.2*]
1296
+ Parent=General Crawlers
1297
+ Browser="Mozdex"
1298
+
1299
+ [Mozilla Compatible (MS IE 3.01 WinNT)]
1300
+ Parent=General Crawlers
1301
+ isBanned=true
1302
+
1303
+ [Mozilla/* (compatible; WebCapture*)]
1304
+ Parent=General Crawlers
1305
+ Browser="WebCapture"
1306
+
1307
+ [Mozilla/4.0 (compatible; DepSpid/*)]
1308
+ Parent=General Crawlers
1309
+ Browser="DepSpid"
1310
+
1311
+ [Mozilla/4.0 (compatible; MSIE 4.01; Vonna.com b o t)]
1312
+ Parent=General Crawlers
1313
+ Browser="Vonna.com"
1314
+ isBanned=true
1315
+
1316
+ [Mozilla/4.0 (compatible; MSIE 4.01; Windows95)]
1317
+ Parent=General Crawlers
1318
+ Win32=true
1319
+
1320
+ [Mozilla/4.0 (compatible; MSIE 4.5; Windows 98; )]
1321
+ Parent=General Crawlers
1322
+ Win32=true
1323
+
1324
+ [Mozilla/4.0 (compatible; MyFamilyBot/*)]
1325
+ Parent=General Crawlers
1326
+ Browser="MyFamilyBot"
1327
+
1328
+ [Mozilla/4.0 (compatible; N-Stealth)]
1329
+ Parent=General Crawlers
1330
+ Browser="N-Stealth"
1331
+
1332
+ [Mozilla/4.0 (compatible; Scumbot/*; Linux/*)]
1333
+ Parent=General Crawlers
1334
+ isBanned=true
1335
+
1336
+ [Mozilla/4.0 (compatible; Spider; Linux)]
1337
+ Parent=General Crawlers
1338
+ isBanned=true
1339
+
1340
+ [Mozilla/4.0 (compatible; Win32)]
1341
+ Parent=General Crawlers
1342
+ Browser="Unknown Crawler"
1343
+ isBanned=true
1344
+
1345
+ [Mozilla/4.1]
1346
+ Parent=General Crawlers
1347
+ isBanned=true
1348
+
1349
+ [Mozilla/4.5]
1350
+ Parent=General Crawlers
1351
+ isBanned=true
1352
+
1353
+ [Mozilla/5.0 (*http://gnomit.com/) Gecko/* Gnomit/1.0]
1354
+ Parent=General Crawlers
1355
+ Browser="Gnomit"
1356
+ isBanned=true
1357
+
1358
+ [Mozilla/5.0 (compatible; *; http://www.80legs.com/spider.html;) Gecko/*]
1359
+ Parent=General Crawlers
1360
+ Browser="80Legs"
1361
+
1362
+ [Mozilla/5.0 (compatible; AboutUsBot/*)]
1363
+ Parent=General Crawlers
1364
+ Browser="AboutUsBot"
1365
+ isBanned=true
1366
+
1367
+ [Mozilla/5.0 (compatible; BuzzRankingBot/*)]
1368
+ Parent=General Crawlers
1369
+ Browser="BuzzRankingBot"
1370
+ isBanned=true
1371
+
1372
+ [Mozilla/5.0 (compatible; Diffbot/0.1; http://www.diffbot.com)]
1373
+ Parent=General Crawlers
1374
+ Browser="Diffbot"
1375
+
1376
+ [Mozilla/5.0 (compatible; FirstSearchBot/1.0; *)]
1377
+ Parent=General Crawlers
1378
+ Browser="FirstSearchBot"
1379
+
1380
+ [mozilla/5.0 (compatible; genevabot http://www.healthdash.com)]
1381
+ Parent=General Crawlers
1382
+ Browser="Healthdash"
1383
+
1384
+ [Mozilla/5.0 (compatible; JadynAveBot; *http://www.jadynave.com/robot*]
1385
+ Parent=General Crawlers
1386
+ Browser="JadynAveBot"
1387
+ isBanned=true
1388
+
1389
+ [Mozilla/5.0 (compatible; Kyluka crawl; http://www.kyluka.com/crawl.html; crawl@kyluka.com)]
1390
+ Parent=General Crawlers
1391
+ Browser="Kyluka"
1392
+
1393
+ [Mozilla/5.0 (compatible; MJ12bot/v1.*)]
1394
+ Parent=General Crawlers
1395
+ Browser="MJ12bot"
1396
+ isBanned=true
1397
+
1398
+ [Mozilla/5.0 (compatible; MSIE 7.0 ?http://www.europarchive.org)]
1399
+ Parent=General Crawlers
1400
+ Browser="Europe Web Archive"
1401
+
1402
+ [Mozilla/5.0 (compatible; Plukkie/1.?; http://www.botje.com/plukkie.htm)]
1403
+ Parent=General Crawlers
1404
+ Browser="Plukkie"
1405
+
1406
+ [Mozilla/5.0 (compatible; Seznam screenshot-generator 2.0;*)]
1407
+ Parent=General Crawlers
1408
+ Browser="Seznam screenshot-generator"
1409
+ isBanned=true
1410
+
1411
+ [Mozilla/5.0 (compatible; Twingly Recon; http://www.twingly.com/)]
1412
+ Parent=General Crawlers
1413
+ Browser="Twingly Recon"
1414
+
1415
+ [Mozilla/5.0 (compatible; unwrapbot/2.*; http://www.unwrap.jp*)]
1416
+ Parent=General Crawlers
1417
+ Browser="UnWrap"
1418
+
1419
+ [Mozilla/5.0 (compatible; Vermut*)]
1420
+ Parent=General Crawlers
1421
+ Browser="Vermut"
1422
+
1423
+ [Mozilla/5.0 (compatible; Viralheat Bot/*) ]
1424
+ Parent=General Crawlers
1425
+ Browser="Viralheat"
1426
+ isBanned=true
1427
+
1428
+ [Mozilla/5.0 (compatible; Webbot/*)]
1429
+ Parent=General Crawlers
1430
+ Browser="Webbot.ru"
1431
+ isBanned=true
1432
+
1433
+ [n4p_bot*]
1434
+ Parent=General Crawlers
1435
+ Browser="n4p_bot"
1436
+
1437
+ [nabot*]
1438
+ Parent=General Crawlers
1439
+ Browser="Nabot"
1440
+
1441
+ [NetCarta_WebMapper/*]
1442
+ Parent=General Crawlers
1443
+ Browser="NetCarta_WebMapper"
1444
+ isBanned=true
1445
+
1446
+ [Netchart Adv Crawler*]
1447
+ Parent=General Crawlers
1448
+ Browser="Netchart Adv Crawler"
1449
+ isBanned=true
1450
+
1451
+ [NetID.com Bot*]
1452
+ Parent=General Crawlers
1453
+ Browser="NetID.com Bot"
1454
+ isBanned=true
1455
+
1456
+ [neTVision AG andreas.heidoetting@thomson-webcast.net]
1457
+ Parent=General Crawlers
1458
+ Browser="neTVision"
1459
+
1460
+ [NextopiaBOT*]
1461
+ Parent=General Crawlers
1462
+ Browser="NextopiaBOT"
1463
+
1464
+ [nicebot]
1465
+ Parent=General Crawlers
1466
+ Browser="nicebot"
1467
+ isBanned=true
1468
+
1469
+ [niXXieBot?Foster*]
1470
+ Parent=General Crawlers
1471
+ Browser="niXXiebot-Foster"
1472
+
1473
+ [Nozilla/P.N (Just for IDS woring)]
1474
+ Parent=General Crawlers
1475
+ Browser="Nozilla/P.N"
1476
+ isBanned=true
1477
+
1478
+ [Nudelsalat/*]
1479
+ Parent=General Crawlers
1480
+ Browser="Nudelsalat"
1481
+ isBanned=true
1482
+
1483
+ [NV32ts]
1484
+ Parent=General Crawlers
1485
+ Browser="NV32ts"
1486
+ isBanned=true
1487
+
1488
+ [Ocelli/*]
1489
+ Parent=General Crawlers
1490
+ Browser="Ocelli"
1491
+
1492
+ [OpenTaggerBot (http://www.opentagger.com/opentaggerbot.htm)]
1493
+ Parent=General Crawlers
1494
+ Browser="OpenTaggerBot"
1495
+
1496
+ [Oracle Enterprise Search]
1497
+ Parent=General Crawlers
1498
+ Browser="Oracle Enterprise Search"
1499
+ isBanned=true
1500
+
1501
+ [Oracle Ultra Search]
1502
+ Parent=General Crawlers
1503
+ Browser="Oracle Ultra Search"
1504
+
1505
+ [Pajaczek/*]
1506
+ Parent=General Crawlers
1507
+ Browser="Pajaczek"
1508
+ isBanned=true
1509
+
1510
+ [panscient.com]
1511
+ Parent=General Crawlers
1512
+ Browser="panscient.com"
1513
+ isBanned=true
1514
+
1515
+ [Patwebbot (http://www.herz-power.de/technik.html)]
1516
+ Parent=General Crawlers
1517
+ Browser="Patwebbot"
1518
+
1519
+ [PDFBot (crawler@pdfind.com)]
1520
+ Parent=General Crawlers
1521
+ Browser="PDFBot"
1522
+
1523
+ [Pete-Spider/1.*]
1524
+ Parent=General Crawlers
1525
+ Browser="Pete-Spider"
1526
+ isBanned=true
1527
+
1528
+ [PhpDig/*]
1529
+ Parent=General Crawlers
1530
+ Browser="PhpDig"
1531
+
1532
+ [PlantyNet_WebRobot*]
1533
+ Parent=General Crawlers
1534
+ Browser="PlantyNet"
1535
+ isBanned=true
1536
+
1537
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; PluckIt
1538
+
1539
+ [PluckItCrawler/1.0 (*)]
1540
+ Parent=General Crawlers
1541
+ isMobileDevice=true
1542
+
1543
+ [PMAFind]
1544
+ Parent=General Crawlers
1545
+ Browser="PMAFind"
1546
+ isBanned=true
1547
+
1548
+ [Poodle_predictor_1.0]
1549
+ Parent=General Crawlers
1550
+ Browser="Poodle Predictor"
1551
+
1552
+ [QuickFinder Crawler]
1553
+ Parent=General Crawlers
1554
+ Browser="QuickFinder"
1555
+ isBanned=true
1556
+
1557
+ [Radiation Retriever*]
1558
+ Parent=General Crawlers
1559
+ Browser="Radiation Retriever"
1560
+ isBanned=true
1561
+
1562
+ [RedCarpet/*]
1563
+ Parent=General Crawlers
1564
+ Browser="RedCarpet"
1565
+ isBanned=true
1566
+
1567
+ [RixBot (http://babelserver.org/rix)]
1568
+ Parent=General Crawlers
1569
+ Browser="RixBot"
1570
+
1571
+ [Rome Client (http://tinyurl.com/64t5n) Ver: 0.*]
1572
+ Parent=General Crawlers
1573
+ Browser="TinyURL"
1574
+
1575
+ [SBIder/*]
1576
+ Parent=General Crawlers
1577
+ Browser="SiteSell"
1578
+
1579
+ [ScollSpider/2.*]
1580
+ Parent=General Crawlers
1581
+ Browser="ScollSpider"
1582
+ isBanned=true
1583
+
1584
+ [Search Fst]
1585
+ Parent=General Crawlers
1586
+ Browser="Search Fst"
1587
+
1588
+ [searchbot admin@google.com]
1589
+ Parent=General Crawlers
1590
+ Browser="searchbot"
1591
+ isBanned=true
1592
+
1593
+ [Seeker.lookseek.com]
1594
+ Parent=General Crawlers
1595
+ Browser="LookSeek"
1596
+ isBanned=true
1597
+
1598
+ [semanticdiscovery/*]
1599
+ Parent=General Crawlers
1600
+ Browser="Semantic Discovery"
1601
+
1602
+ [SeznamBot/*]
1603
+ Parent=General Crawlers
1604
+ Browser="SeznamBot"
1605
+ isBanned=true
1606
+
1607
+ [Shelob (shelob@gmx.net)]
1608
+ Parent=General Crawlers
1609
+ Browser="Shelob"
1610
+ isBanned=true
1611
+
1612
+ [shelob v1.*]
1613
+ Parent=General Crawlers
1614
+ Browser="shelob"
1615
+ isBanned=true
1616
+
1617
+ [ShopWiki/1.0*]
1618
+ Parent=General Crawlers
1619
+ Browser="ShopWiki"
1620
+ Version=1.0
1621
+ MajorVer=1
1622
+ MinorVer=0
1623
+
1624
+ [ShowXML/1.0 libwww/5.4.0]
1625
+ Parent=General Crawlers
1626
+ Browser="ShowXML"
1627
+ isBanned=true
1628
+
1629
+ [sitecheck.internetseer.com*]
1630
+ Parent=General Crawlers
1631
+ Browser="Internetseer"
1632
+
1633
+ [SMBot/*]
1634
+ Parent=General Crawlers
1635
+ Browser="SMBot"
1636
+
1637
+ [sohu*]
1638
+ Parent=General Crawlers
1639
+ Browser="sohu-search"
1640
+ isBanned=true
1641
+
1642
+ [SpankBot*]
1643
+ Parent=General Crawlers
1644
+ Browser="SpankBot"
1645
+ isBanned=true
1646
+
1647
+ [spider (tspyyp@tom.com)]
1648
+ Parent=General Crawlers
1649
+ Browser="spider (tspyyp@tom.com)"
1650
+ isBanned=true
1651
+
1652
+ [Sunrise/0.*]
1653
+ Parent=General Crawlers
1654
+ Browser="Sunrise"
1655
+ isBanned=true
1656
+
1657
+ [Superpages URL Verification Engine]
1658
+ Parent=General Crawlers
1659
+ Browser="Superpages"
1660
+
1661
+ [Surf Knight]
1662
+ Parent=General Crawlers
1663
+ Browser="Surf Knight"
1664
+ isBanned=true
1665
+
1666
+ [SurveyBot/*]
1667
+ Parent=General Crawlers
1668
+ Browser="SurveyBot"
1669
+ isBanned=true
1670
+
1671
+ [SynapticSearch/AI Crawler 1.?]
1672
+ Parent=General Crawlers
1673
+ Browser="SynapticSearch"
1674
+ isBanned=true
1675
+
1676
+ [SyncMgr]
1677
+ Parent=General Crawlers
1678
+ Browser="SyncMgr"
1679
+
1680
+ [Tagyu Agent/1.0]
1681
+ Parent=General Crawlers
1682
+ Browser="Tagyu"
1683
+
1684
+ [Talkro Web-Shot/*]
1685
+ Parent=General Crawlers
1686
+ Browser="Talkro Web-Shot"
1687
+ isBanned=true
1688
+
1689
+ [Tasap-image-robot/0.* (http://www.tasap.com)]
1690
+ Parent=General Crawlers
1691
+ Browser="Tasap-image-robot"
1692
+ isBanned=true
1693
+
1694
+ [Tecomi Bot (http://www.tecomi.com/bot.htm)]
1695
+ Parent=General Crawlers
1696
+ Browser="Tecomi"
1697
+
1698
+ [TencentTraveler*]
1699
+ Parent=General Crawlers
1700
+ Browser="TencentTraveler"
1701
+
1702
+ [TheInformant*]
1703
+ Parent=General Crawlers
1704
+ Browser="TheInformant"
1705
+ isBanned=true
1706
+
1707
+ [Toata dragostea*]
1708
+ Parent=General Crawlers
1709
+ Browser="Toata dragostea"
1710
+ isBanned=true
1711
+
1712
+ [Tutorial Crawler*]
1713
+ Parent=General Crawlers
1714
+ isBanned=true
1715
+
1716
+ [UbiCrawler/*]
1717
+ Parent=General Crawlers
1718
+ Browser="UbiCrawler"
1719
+
1720
+ [UCmore]
1721
+ Parent=General Crawlers
1722
+ Browser="UCmore"
1723
+
1724
+ [User*Agent:*]
1725
+ Parent=General Crawlers
1726
+ isBanned=true
1727
+
1728
+ [USER_AGENT]
1729
+ Parent=General Crawlers
1730
+ Browser="USER_AGENT"
1731
+ isBanned=true
1732
+
1733
+ [VadixBot]
1734
+ Parent=General Crawlers
1735
+ Browser="VadixBot"
1736
+
1737
+ [VengaBot/*]
1738
+ Parent=General Crawlers
1739
+ Browser="VengaBot"
1740
+ isBanned=true
1741
+
1742
+ [Visicom Toolbar]
1743
+ Parent=General Crawlers
1744
+ Browser="Visicom Toolbar"
1745
+
1746
+ [Visited by http://tools.geek-tools.org]
1747
+ Parent=General Crawlers
1748
+ Browser="geek-tools.org"
1749
+
1750
+ [W3C-WebCon/*]
1751
+ Parent=General Crawlers
1752
+ Browser="W3C-WebCon"
1753
+
1754
+ [Webclipping.com]
1755
+ Parent=General Crawlers
1756
+ Browser="Webclipping.com"
1757
+ isBanned=true
1758
+
1759
+ [webcollage/*]
1760
+ Parent=General Crawlers
1761
+ Browser="WebCollage"
1762
+ isBanned=true
1763
+
1764
+ [WebCrawler_1.*]
1765
+ Parent=General Crawlers
1766
+ Browser="WebCrawler"
1767
+
1768
+ [WebFilter Robot*]
1769
+ Parent=General Crawlers
1770
+ Browser="WebFilter Robot"
1771
+
1772
+ [WeBoX/*]
1773
+ Parent=General Crawlers
1774
+ Browser="WeBoX"
1775
+
1776
+ [WebTrends/*]
1777
+ Parent=General Crawlers
1778
+ Browser="WebTrends"
1779
+
1780
+ [West Wind Internet Protocols*]
1781
+ Parent=General Crawlers
1782
+ Browser="Versatel"
1783
+ isBanned=true
1784
+
1785
+ [WhizBang]
1786
+ Parent=General Crawlers
1787
+ Browser="WhizBang"
1788
+
1789
+ [Willow Internet Crawler by Twotrees V*]
1790
+ Parent=General Crawlers
1791
+ Browser="Willow Internet Crawler"
1792
+
1793
+ [WIRE/* (Linux*; i686; Bot,Robot,Spider,Crawler)]
1794
+ Parent=General Crawlers
1795
+ Browser="WIRE"
1796
+ isBanned=true
1797
+
1798
+ [www.fi crawler, contact crawler@www.fi]
1799
+ Parent=General Crawlers
1800
+ Browser="www.fi crawler"
1801
+
1802
+ [Xerka WebBot v1.*]
1803
+ Parent=General Crawlers
1804
+ Browser="Xerka"
1805
+ isBanned=true
1806
+
1807
+ [XML Sitemaps Generator*]
1808
+ Parent=General Crawlers
1809
+ Browser="XML Sitemaps Generator"
1810
+
1811
+ [XSpider*]
1812
+ Parent=General Crawlers
1813
+ Browser="XSpider"
1814
+ isBanned=true
1815
+
1816
+ [YooW!/* (?http://www.yoow.eu)]
1817
+ Parent=General Crawlers
1818
+ Browser="YooW!"
1819
+ isBanned=true
1820
+
1821
+ [HiddenMarket-*]
1822
+ Parent=General RSS
1823
+ Browser="HiddenMarket"
1824
+ isBanned=true
1825
+
1826
+ [FOTOCHECKER]
1827
+ Parent=Image Crawlers
1828
+ Browser="FOTOCHECKER"
1829
+ isBanned=true
1830
+
1831
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Search Engines
1832
+
1833
+ [Search Engines]
1834
+ Parent=DefaultProperties
1835
+ Browser="Search Engines"
1836
+ Crawler=true
1837
+
1838
+ [*FDSE robot*]
1839
+ Parent=Search Engines
1840
+ Browser="FDSE Robot"
1841
+
1842
+ [*Fluffy the spider*]
1843
+ Parent=Search Engines
1844
+ Browser="SearchHippo"
1845
+
1846
+ [Abacho*]
1847
+ Parent=Search Engines
1848
+ Browser="Abacho"
1849
+
1850
+ [ah-ha.com crawler (crawler@ah-ha.com)]
1851
+ Parent=Search Engines
1852
+ Browser="Ah-Ha"
1853
+
1854
+ [AIBOT/*]
1855
+ Parent=Search Engines
1856
+ Browser="21Seek.Com"
1857
+
1858
+ [ALeadSoftbot/*]
1859
+ Parent=Search Engines
1860
+ Browser="ALeadSoftbot"
1861
+
1862
+ [Amfibibot/*]
1863
+ Parent=Search Engines
1864
+ Browser="Amfibi"
1865
+
1866
+ [AnswerBus (http://www.answerbus.com/)]
1867
+ Parent=Search Engines
1868
+
1869
+ [antibot-V*]
1870
+ Parent=Search Engines
1871
+ Browser="antibot"
1872
+
1873
+ [appie*(www.walhello.com)]
1874
+ Parent=Search Engines
1875
+ Browser="Walhello"
1876
+
1877
+ [ASPSeek/*]
1878
+ Parent=Search Engines
1879
+ Browser="ASPSeek"
1880
+
1881
+ [BigCliqueBOT/*]
1882
+ Parent=Search Engines
1883
+ Browser="BigClique.com/BigClic.com"
1884
+
1885
+ [Blaiz-Bee/*]
1886
+ Parent=Search Engines
1887
+ Browser="RawGrunt"
1888
+
1889
+ [btbot/*]
1890
+ Parent=Search Engines
1891
+ Browser="Bit Torrent Search Engine"
1892
+
1893
+ [Busiversebot/v1.0 (http://www.busiverse.com/bot.php)]
1894
+ Parent=Search Engines
1895
+ Browser="Busiversebot"
1896
+ isBanned=true
1897
+
1898
+ [CatchBot/*; http://www.catchbot.com]
1899
+ Parent=Search Engines
1900
+ Browser="CatchBot"
1901
+ Version=1.0
1902
+ MajorVer=1
1903
+ MinorVer=0
1904
+
1905
+ [CipinetBot (http://www.cipinet.com/bot.html)]
1906
+ Parent=Search Engines
1907
+ Browser="CipinetBot"
1908
+
1909
+ [Cogentbot/1.?*]
1910
+ Parent=Search Engines
1911
+ Browser="Cogentbot"
1912
+
1913
+ [compatible; Mozilla 4.0; MSIE 5.5; (SqwidgeBot v1.01 - http://www.sqwidge.com/bot/)]
1914
+ Parent=Search Engines
1915
+ Browser="SqwidgeBot"
1916
+
1917
+ [cosmos*]
1918
+ Parent=Search Engines
1919
+ Browser="Xyleme"
1920
+
1921
+ [Deepindex]
1922
+ Parent=Search Engines
1923
+ Browser="Deepindex"
1924
+
1925
+ [DiamondBot]
1926
+ Parent=Search Engines
1927
+ Browser="DiamondBot"
1928
+
1929
+ [DuckDuckBot/*; (?http://duckduckgo.com/duckduckbot.html)]
1930
+ Parent=Search Engines
1931
+ Browser="DuckDuckBot"
1932
+
1933
+ [Dumbot*]
1934
+ Parent=Search Engines
1935
+ Browser="Dumbot"
1936
+ Version=0.2
1937
+ MajorVer=0
1938
+ MinorVer=2
1939
+ Beta=true
1940
+
1941
+ [Eule?Robot*]
1942
+ Parent=Search Engines
1943
+ Browser="Eule-Robot"
1944
+
1945
+ [Faxobot/*]
1946
+ Parent=Search Engines
1947
+ Browser="Faxo"
1948
+
1949
+ [Filangy/*]
1950
+ Parent=Search Engines
1951
+ Browser="Filangy"
1952
+
1953
+ [flatlandbot/*]
1954
+ Parent=Search Engines
1955
+ Browser="Flatland"
1956
+
1957
+ [Fooky.com/ScorpionBot/ScoutOut;*]
1958
+ Parent=Search Engines
1959
+ Browser="ScorpionBot"
1960
+ isBanned=true
1961
+
1962
+ [FyberSpider*]
1963
+ Parent=Search Engines
1964
+ Browser="FyberSpider"
1965
+ isBanned=true
1966
+
1967
+ [Gaisbot/*]
1968
+ Parent=Search Engines
1969
+ Browser="Gaisbot"
1970
+
1971
+ [gazz/*(gazz@nttr.co.jp)]
1972
+ Parent=Search Engines
1973
+ Browser="gazz"
1974
+
1975
+ [geniebot*]
1976
+ Parent=Search Engines
1977
+ Browser="GenieKnows"
1978
+
1979
+ [GOFORITBOT (?http://www.goforit.com/about/?)]
1980
+ Parent=Search Engines
1981
+ Browser="GoForIt"
1982
+
1983
+ [GoGuidesBot/*]
1984
+ Parent=Search Engines
1985
+ Browser="GoGuidesBot"
1986
+
1987
+ [GroschoBot/*]
1988
+ Parent=Search Engines
1989
+ Browser="GroschoBot"
1990
+
1991
+ [GurujiBot/1.*]
1992
+ Parent=Search Engines
1993
+ Browser="GurujiBot"
1994
+ isBanned=true
1995
+
1996
+ [HenryTheMiragoRobot*]
1997
+ Parent=Search Engines
1998
+ Browser="Mirago"
1999
+
2000
+ [HolmesBot (http://holmes.ge)]
2001
+ Parent=Search Engines
2002
+ Browser="HolmesBot"
2003
+
2004
+ [Hotzonu/*]
2005
+ Parent=Search Engines
2006
+ Browser="Hotzonu"
2007
+
2008
+ [HyperEstraier/*]
2009
+ Parent=Search Engines
2010
+ Browser="HyperEstraier"
2011
+ isBanned=true
2012
+
2013
+ [i1searchbot/*]
2014
+ Parent=Search Engines
2015
+ Browser="i1searchbot"
2016
+
2017
+ [IIITBOT/1.*]
2018
+ Parent=Search Engines
2019
+ Browser="Indian Language Web Search Engine"
2020
+
2021
+ [Iltrovatore-?etaccio/*]
2022
+ Parent=Search Engines
2023
+ Browser="Iltrovatore-Setaccio"
2024
+
2025
+ [InfociousBot (?http://corp.infocious.com/tech_crawler.php)]
2026
+ Parent=Search Engines
2027
+ Browser="InfociousBot"
2028
+ isBanned=true
2029
+
2030
+ [Infoseek SideWinder/*]
2031
+ Parent=Search Engines
2032
+ Browser="Infoseek"
2033
+
2034
+ [iSEEKbot/*]
2035
+ Parent=Search Engines
2036
+ Browser="iSEEKbot"
2037
+
2038
+ [Knight/0.? (Zook Knight; http://knight.zook.in/; knight@zook.in)]
2039
+ Parent=Search Engines
2040
+ Browser="Knight"
2041
+
2042
+ [Kolinka Forum Search (www.kolinka.com)]
2043
+ Parent=Search Engines
2044
+ Browser="Kolinka Forum Search"
2045
+ isBanned=true
2046
+
2047
+ [KRetrieve/]
2048
+ Parent=Search Engines
2049
+ Browser="KRetrieve"
2050
+ isBanned=true
2051
+
2052
+ [LapozzBot/*]
2053
+ Parent=Search Engines
2054
+ Browser="LapozzBot"
2055
+
2056
+ [Linknzbot*]
2057
+ Parent=Search Engines
2058
+ Browser="Linknzbot"
2059
+
2060
+ [LocalcomBot/*]
2061
+ Parent=Search Engines
2062
+ Browser="LocalcomBot"
2063
+
2064
+ [Mail.Ru/1.0]
2065
+ Parent=Search Engines
2066
+ Browser="Mail.Ru"
2067
+
2068
+ [MaSagool/*]
2069
+ Parent=Search Engines
2070
+ Browser="Sagoo"
2071
+ Version=1.0
2072
+ MajorVer=1
2073
+ MinorVer=0
2074
+
2075
+ [miniRank/*]
2076
+ Parent=Search Engines
2077
+ Browser="miniRank"
2078
+
2079
+ [Mnogosearch*]
2080
+ Parent=Search Engines
2081
+ Browser="Mnogosearch"
2082
+
2083
+ [Mozilla/0.9* no dos :) (Linux*)]
2084
+ Parent=Search Engines
2085
+ Browser="goliat"
2086
+ isBanned=true
2087
+
2088
+ [Mozilla/4.0 (compatible; *Vagabondo/*; webcrawler at wise-guys dot nl; *)]
2089
+ Parent=Search Engines
2090
+ Browser="Vagabondo"
2091
+
2092
+ [Mozilla/4.0 (compatible; Arachmo)]
2093
+ Parent=Search Engines
2094
+ Browser="Arachmo"
2095
+
2096
+ [Mozilla/4.0 (compatible; http://search.thunderstone.com/texis/websearch/about.html)]
2097
+ Parent=Search Engines
2098
+ Browser="ThunderStone"
2099
+ isBanned=true
2100
+
2101
+ [Mozilla/4.0 (compatible; MSIE *; Windows NT; Girafabot; girafabot at girafa dot com; http://www.girafa.com)]
2102
+ Parent=Search Engines
2103
+ Browser="Girafabot"
2104
+ Win32=true
2105
+
2106
+ [Mozilla/4.0(?compatible; MSIE 6.0; Qihoo *)]
2107
+ Parent=Search Engines
2108
+ Browser="Qihoo"
2109
+
2110
+ [Mozilla/4.7 (compatible; WhizBang; http://www.whizbang.com/crawler)]
2111
+ Parent=Search Engines
2112
+ Browser="Inxight Software"
2113
+
2114
+ [Mozilla/5.0 (*) VoilaBot*]
2115
+ Parent=Search Engines
2116
+ Browser="VoilaBot"
2117
+ isBanned=true
2118
+
2119
+ [Mozilla/5.0 (compatible; ActiveTouristBot*; http://www.activetourist.com)]
2120
+ Parent=Search Engines
2121
+ Browser="ActiveTouristBot"
2122
+
2123
+ [Mozilla/5.0 (compatible; ayna-crawler http://www.ayna.com)]
2124
+ Parent=Search Engines
2125
+ Browser="ayna-crawler"
2126
+
2127
+ [Mozilla/5.0 (compatible; Butterfly/1.0; *)*]
2128
+ Parent=Search Engines
2129
+ Browser="Butterfly"
2130
+
2131
+ [Mozilla/5.0 (compatible; Charlotte/*; *)]
2132
+ Parent=Search Engines
2133
+ Browser="Charlotte"
2134
+ Beta=true
2135
+ isBanned=true
2136
+
2137
+ [Mozilla/5.0 (compatible; CXL-FatAssANT*)]
2138
+ Parent=Search Engines
2139
+ Browser="FatAssANT"
2140
+
2141
+ [Mozilla/5.0 (compatible; DBLBot/1.0; ?http://www.dontbuylists.com/)]
2142
+ Parent=Search Engines
2143
+ Browser="DBLBot"
2144
+ Version=1.0
2145
+ MajorVer=1
2146
+ MinorVer=0
2147
+
2148
+ [Mozilla/5.0 (compatible; EARTHCOM.info/*)]
2149
+ Parent=Search Engines
2150
+ Browser="EARTHCOM"
2151
+
2152
+ [Mozilla/5.0 (compatible; Lipperhey Spider; http://www.lipperhey.com/)]
2153
+ Parent=Search Engines
2154
+ Browser="Lipperhey Spider"
2155
+
2156
+ [Mozilla/5.0 (compatible; MojeekBot/*; http://www.mojeek.com/bot.html)]
2157
+ Parent=Search Engines
2158
+ Browser="MojeekBot"
2159
+
2160
+ [Mozilla/5.0 (compatible; NLCrawler/*]
2161
+ Parent=Search Engines
2162
+ Browser="Northern Light Web Search"
2163
+
2164
+ [Mozilla/5.0 (compatible; OsO;*]
2165
+ Parent=Search Engines
2166
+ Browser="Octopodus"
2167
+ isBanned=true
2168
+
2169
+ [Mozilla/5.0 (compatible; ParchBot/1.0;*)]
2170
+ Parent=Search Engines
2171
+ Browser="ParchBot"
2172
+
2173
+ [Mozilla/5.0 (compatible; Pogodak.*)]
2174
+ Parent=Search Engines
2175
+ Browser="Pogodak"
2176
+
2177
+ [Mozilla/5.0 (compatible; Quantcastbot/1.*)]
2178
+ Parent=Search Engines
2179
+ Browser="Quantcastbot"
2180
+
2181
+ [Mozilla/5.0 (compatible; ScoutJet; *http://www.scoutjet.com/)]
2182
+ Parent=Search Engines
2183
+ Browser="ScoutJet"
2184
+ isBanned=true
2185
+
2186
+ [Mozilla/5.0 (compatible; Scrubby/*; http://www.scrubtheweb.com/abs/meta-check.html)]
2187
+ Parent=Search Engines
2188
+ Browser="Scrubby"
2189
+ isBanned=true
2190
+
2191
+ [Mozilla/5.0 (compatible; YoudaoBot/1.*; http://www.youdao.com/help/webmaster/spider/*)]
2192
+ Parent=Search Engines
2193
+ Browser="YoudaoBot"
2194
+ Version=1.0
2195
+ MajorVer=1
2196
+ MinorVer=0
2197
+
2198
+ [Mozilla/5.0 (Twiceler*)]
2199
+ Parent=Search Engines
2200
+ Browser="Twiceler"
2201
+ isBanned=true
2202
+
2203
+ [Mozilla/5.0 CostaCider Search*]
2204
+ Parent=Search Engines
2205
+ Browser="CostaCider Search"
2206
+
2207
+ [Mozilla/5.0 GurujiBot/1.0 (*)]
2208
+ Parent=Search Engines
2209
+ Browser="GurujiBot"
2210
+
2211
+ [NavissoBot]
2212
+ Parent=Search Engines
2213
+ Browser="NavissoBot"
2214
+
2215
+ [NextGenSearchBot*(for information visit *)]
2216
+ Parent=Search Engines
2217
+ Browser="ZoomInfo"
2218
+ isBanned=true
2219
+
2220
+ [Norbert the Spider(Burf.com)]
2221
+ Parent=Search Engines
2222
+ Browser="Norbert the Spider"
2223
+
2224
+ [NuSearch Spider*]
2225
+ Parent=Search Engines
2226
+ Browser="nuSearch"
2227
+
2228
+ [ObjectsSearch/*]
2229
+ Parent=Search Engines
2230
+ Browser="ObjectsSearch"
2231
+
2232
+ [OpenISearch/1.*]
2233
+ Parent=Search Engines
2234
+ Browser="OpenISearch (Amazon)"
2235
+
2236
+ [Pagebull http://www.pagebull.com/]
2237
+ Parent=Search Engines
2238
+ Browser="Pagebull"
2239
+
2240
+ [PEERbot*]
2241
+ Parent=Search Engines
2242
+ Browser="PEERbot"
2243
+
2244
+ [Pompos/*]
2245
+ Parent=Search Engines
2246
+ Browser="Pompos"
2247
+
2248
+ [Popdexter/*]
2249
+ Parent=Search Engines
2250
+ Browser="Popdex"
2251
+
2252
+ [Qweery*]
2253
+ Parent=Search Engines
2254
+ Browser="QweeryBot"
2255
+
2256
+ [RedCell/* (*)]
2257
+ Parent=Search Engines
2258
+ Browser="RedCell"
2259
+
2260
+ [SaladSpoon/ShopSalad 1.* (Search Engine crawler for ShopSalad.com; *; crawler@shopsalad.com)]
2261
+ Parent=Search Engines
2262
+ Browser="ShopSalad"
2263
+
2264
+ [Scrubby/*]
2265
+ Parent=Search Engines
2266
+ Browser="Scrub The Web"
2267
+
2268
+ [Search-10/*]
2269
+ Parent=Search Engines
2270
+ Browser="Search-10"
2271
+
2272
+ [search.ch*]
2273
+ Parent=Search Engines
2274
+ Browser="Swiss Search Engine"
2275
+
2276
+ [Searchmee! Spider*]
2277
+ Parent=Search Engines
2278
+ Browser="Searchmee!"
2279
+
2280
+ [Seekbot/*]
2281
+ Parent=Search Engines
2282
+ Browser="Seekbot"
2283
+
2284
+ [SiteSpider (http://www.SiteSpider.com/)]
2285
+ Parent=Search Engines
2286
+ Browser="SiteSpider"
2287
+
2288
+ [Spinne/*]
2289
+ Parent=Search Engines
2290
+ Browser="Spinne"
2291
+
2292
+ [sproose/*]
2293
+ Parent=Search Engines
2294
+ Browser="Sproose"
2295
+
2296
+ [Sqeobot/0.*]
2297
+ Parent=Search Engines
2298
+ Browser="Branzel"
2299
+ isBanned=true
2300
+
2301
+ [SquigglebotBot/*]
2302
+ Parent=Search Engines
2303
+ Browser="SquigglebotBot"
2304
+ isBanned=true
2305
+
2306
+ [StackRambler/*]
2307
+ Parent=Search Engines
2308
+ Browser="StackRambler"
2309
+
2310
+ [SygolBot*]
2311
+ Parent=Search Engines
2312
+ Browser="SygolBot"
2313
+
2314
+ [SynoBot]
2315
+ Parent=Search Engines
2316
+ Browser="SynoBot"
2317
+
2318
+ [Szukacz/*]
2319
+ Parent=Search Engines
2320
+ Browser="Szukacz"
2321
+
2322
+ [Tarantula/*]
2323
+ Parent=Search Engines
2324
+ Browser="Tarantula"
2325
+ isBanned=true
2326
+
2327
+ [TerrawizBot/*]
2328
+ Parent=Search Engines
2329
+ Browser="TerrawizBot"
2330
+ isBanned=true
2331
+
2332
+ [Tkensaku/*]
2333
+ Parent=Search Engines
2334
+ Browser="Tkensaku"
2335
+
2336
+ [TMCrawler]
2337
+ Parent=Search Engines
2338
+ Browser="TMCrawler"
2339
+ isBanned=true
2340
+
2341
+ [Twingly Recon]
2342
+ Parent=Search Engines
2343
+ Browser="Twingly Recon"
2344
+ isBanned=true
2345
+
2346
+ [updated/*]
2347
+ Parent=Search Engines
2348
+ Browser="Updated!"
2349
+
2350
+ [URL Spider Pro/*]
2351
+ Parent=Search Engines
2352
+ Browser="URL Spider Pro"
2353
+
2354
+ [URL Spider SQL*]
2355
+ Parent=Search Engines
2356
+ Browser="Innerprise Enterprise Search"
2357
+
2358
+ [VMBot/*]
2359
+ Parent=Search Engines
2360
+ Browser="VMBot"
2361
+
2362
+ [voyager/2.0 (http://www.kosmix.com/html/crawler.html)]
2363
+ Parent=Search Engines
2364
+ Browser="Voyager"
2365
+
2366
+ [wadaino.jp-crawler*]
2367
+ Parent=Search Engines
2368
+ Browser="wadaino.jp"
2369
+ isBanned=true
2370
+
2371
+ [WebAlta Crawler/*]
2372
+ Parent=Search Engines
2373
+ Browser="WebAlta Crawler"
2374
+ isBanned=true
2375
+
2376
+ [WebCorp/*]
2377
+ Parent=Search Engines
2378
+ Browser="WebCorp"
2379
+ isBanned=true
2380
+
2381
+ [webcrawl.net]
2382
+ Parent=Search Engines
2383
+ Browser="webcrawl.net"
2384
+
2385
+ [WISEbot/*]
2386
+ Parent=Search Engines
2387
+ Browser="WISEbot"
2388
+ isBanned=true
2389
+
2390
+ [Wotbox/*]
2391
+ Parent=Search Engines
2392
+ Browser="Wotbox"
2393
+
2394
+ [www.zatka.com]
2395
+ Parent=Search Engines
2396
+ Browser="Zatka"
2397
+
2398
+ [WWWeasel Robot v*]
2399
+ Parent=Search Engines
2400
+ Browser="World Wide Weasel"
2401
+
2402
+ [YadowsCrawler*]
2403
+ Parent=Search Engines
2404
+ Browser="YadowsCrawler"
2405
+
2406
+ [YodaoBot/*]
2407
+ Parent=Search Engines
2408
+ Browser="YodaoBot"
2409
+ isBanned=true
2410
+
2411
+ [ZeBot_www.ze.bz*]
2412
+ Parent=Search Engines
2413
+ Browser="ZE.bz"
2414
+
2415
+ [zibber-v*]
2416
+ Parent=Search Engines
2417
+ Browser="Zibb"
2418
+
2419
+ [ZipppBot/*]
2420
+ Parent=Search Engines
2421
+ Browser="ZipppBot"
2422
+
2423
+ [ATA-Translation-Service]
2424
+ Parent=Translators
2425
+ Browser="ATA-Translation-Service"
2426
+
2427
+ [GJK_Browser_Check]
2428
+ Parent=Version Checkers
2429
+ Browser="GJK_Browser_Check"
2430
+
2431
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Hatena
2432
+
2433
+ [Hatena]
2434
+ Parent=DefaultProperties
2435
+ Browser="Hatena"
2436
+ isBanned=true
2437
+ Crawler=true
2438
+
2439
+ [Feed::Find/*]
2440
+ Parent=Hatena
2441
+ Browser="Feed Find"
2442
+ isSyndicationReader=true
2443
+
2444
+ [Hatena Antenna/*]
2445
+ Parent=Hatena
2446
+ Browser="Hatena Antenna"
2447
+
2448
+ [Hatena Bookmark/*]
2449
+ Parent=Hatena
2450
+ Browser="Hatena Bookmark"
2451
+
2452
+ [Hatena RSS/*]
2453
+ Parent=Hatena
2454
+ Browser="Hatena RSS"
2455
+ isSyndicationReader=true
2456
+
2457
+ [Hatena::Crawler/*]
2458
+ Parent=Hatena
2459
+ Browser="Hatena Crawler"
2460
+
2461
+ [HatenaScreenshot*]
2462
+ Parent=Hatena
2463
+ Browser="HatenaScreenshot"
2464
+
2465
+ [URI::Fetch/*]
2466
+ Parent=Hatena
2467
+ Browser="URI::Fetch"
2468
+
2469
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Internet Archive
2470
+
2471
+ [Internet Archive]
2472
+ Parent=DefaultProperties
2473
+ Browser="Internet Archive"
2474
+ Frames=true
2475
+ IFrames=true
2476
+ Tables=true
2477
+ isBanned=true
2478
+ Crawler=true
2479
+
2480
+ [*heritrix*]
2481
+ Parent=Internet Archive
2482
+ Browser="Heritrix"
2483
+ isBanned=true
2484
+
2485
+ [ia_archiver*]
2486
+ Parent=Internet Archive
2487
+ Browser="Internet Archive"
2488
+
2489
+ [InternetArchive/*]
2490
+ Parent=Internet Archive
2491
+ Browser="InternetArchive"
2492
+
2493
+ [Mozilla/5.0 (compatible; archive.org_bot/1.*)]
2494
+ Parent=Internet Archive
2495
+
2496
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Nutch
2497
+
2498
+ [Nutch]
2499
+ Parent=DefaultProperties
2500
+ Browser="Nutch"
2501
+ isBanned=true
2502
+ Crawler=true
2503
+
2504
+ [*Nutch*]
2505
+ Parent=Nutch
2506
+ isBanned=true
2507
+
2508
+ [CazoodleBot/*]
2509
+ Parent=Nutch
2510
+ Browser="CazoodleBot"
2511
+
2512
+ [LOOQ/0.1*]
2513
+ Parent=Nutch
2514
+ Browser="LOOQ"
2515
+
2516
+ [Nutch/0.? (OpenX Spider)]
2517
+ Parent=Nutch
2518
+
2519
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Webaroo
2520
+
2521
+ [Webaroo]
2522
+ Parent=DefaultProperties
2523
+ Browser="Webaroo"
2524
+
2525
+ [Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Webaroo/*)]
2526
+ Parent=Webaroo
2527
+ Browser="Webaroo"
2528
+
2529
+ [Mozilla/5.0 (Windows; U; Windows *; *; rv:*) Gecko/* Firefox/* webaroo/*]
2530
+ Parent=Webaroo
2531
+ Browser="Webaroo"
2532
+
2533
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Word Press
2534
+
2535
+ [Word Press]
2536
+ Parent=DefaultProperties
2537
+ Browser="Word Press"
2538
+ Alpha=true
2539
+ Beta=true
2540
+ Win16=true
2541
+ Win32=true
2542
+ Win64=true
2543
+ Frames=true
2544
+ IFrames=true
2545
+ Tables=true
2546
+ Cookies=true
2547
+ BackgroundSounds=true
2548
+ CDF=true
2549
+ VBScript=true
2550
+ JavaApplets=true
2551
+ JavaScript=true
2552
+ ActiveXControls=true
2553
+ isBanned=true
2554
+ isMobileDevice=true
2555
+ isSyndicationReader=true
2556
+ Crawler=true
2557
+
2558
+ [WordPress-B-/2.*]
2559
+ Parent=Word Press
2560
+ Browser="WordPress-B"
2561
+
2562
+ [WordPress-Do-P-/2.*]
2563
+ Parent=Word Press
2564
+ Browser="WordPress-Do-P"
2565
+
2566
+ [BlueCoat ProxySG]
2567
+ Parent=Blue Coat Systems
2568
+ Browser="BlueCoat ProxySG"
2569
+
2570
+ [CerberianDrtrs/*]
2571
+ Parent=Blue Coat Systems
2572
+ Browser="Cerberian"
2573
+
2574
+ [Inne: Mozilla/4.0 (compatible; Cerberian Drtrs*)]
2575
+ Parent=Blue Coat Systems
2576
+ Browser="Cerberian"
2577
+
2578
+ [Mozilla/4.0 (compatible; Cerberian Drtrs*)]
2579
+ Parent=Blue Coat Systems
2580
+ Browser="Cerberian"
2581
+
2582
+ [Mozilla/4.0 (compatible; MSIE 6.0; Bluecoat DRTR)]
2583
+ Parent=Blue Coat Systems
2584
+ Browser="Bluecoat"
2585
+
2586
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Copyright/Plagiarism
2587
+
2588
+ [Copyright/Plagiarism]
2589
+ Parent=DefaultProperties
2590
+ Browser="Copyright/Plagiarism"
2591
+ isBanned=true
2592
+ Crawler=true
2593
+
2594
+ [BDFetch]
2595
+ Parent=Copyright/Plagiarism
2596
+ Browser="BDFetch"
2597
+
2598
+ [copyright sheriff (*)]
2599
+ Parent=Copyright/Plagiarism
2600
+ Browser="copyright sheriff"
2601
+
2602
+ [CopyRightCheck*]
2603
+ Parent=Copyright/Plagiarism
2604
+ Browser="CopyRightCheck"
2605
+
2606
+ [FairAd Client*]
2607
+ Parent=Copyright/Plagiarism
2608
+ Browser="FairAd Client"
2609
+
2610
+ [iCopyright Conductor*]
2611
+ Parent=Copyright/Plagiarism
2612
+ Browser="iCopyright Conductor"
2613
+
2614
+ [IPiumBot laurion(dot)com]
2615
+ Parent=Copyright/Plagiarism
2616
+ Browser="IPiumBot"
2617
+
2618
+ [IWAgent/*]
2619
+ Parent=Copyright/Plagiarism
2620
+ Browser="Brand Protect"
2621
+
2622
+ [Mozilla/5.0 (compatible; DKIMRepBot/*)]
2623
+ Parent=Copyright/Plagiarism
2624
+ Browser="DKIMRepBot"
2625
+
2626
+ [oBot]
2627
+ Parent=Copyright/Plagiarism
2628
+ Browser="oBot"
2629
+
2630
+ [SlySearch/*]
2631
+ Parent=Copyright/Plagiarism
2632
+ Browser="SlySearch"
2633
+
2634
+ [TurnitinBot/*]
2635
+ Parent=Copyright/Plagiarism
2636
+ Browser="TurnitinBot"
2637
+
2638
+ [TutorGigBot/*]
2639
+ Parent=Copyright/Plagiarism
2640
+ Browser="TutorGig"
2641
+
2642
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DNS Tools
2643
+
2644
+ [DNS Tools]
2645
+ Parent=DefaultProperties
2646
+ Browser="DNS Tools"
2647
+ Crawler=true
2648
+
2649
+ [Domain Dossier utility*]
2650
+ Parent=DNS Tools
2651
+ Browser="Domain Dossier"
2652
+
2653
+ [Mozilla/5.0 (compatible; DNS-Digger/*)]
2654
+ Parent=DNS Tools
2655
+ Browser="DNS-Digger"
2656
+
2657
+ [OpenDNS Domain Crawler noc@opendns.com]
2658
+ Parent=DNS Tools
2659
+ Browser="OpenDNS Domain Crawler"
2660
+
2661
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Download Managers
2662
+
2663
+ [Download Managers]
2664
+ Parent=DefaultProperties
2665
+ Browser="Download Managers"
2666
+ Frames=true
2667
+ IFrames=true
2668
+ Tables=true
2669
+ isBanned=true
2670
+ Crawler=true
2671
+
2672
+ [A1 Website Download/1.* (*) miggibot]
2673
+ Parent=Download Managers
2674
+ Browser="A1 Website Download"
2675
+
2676
+ [AndroidDownloadManager]
2677
+ Parent=Download Managers
2678
+ Browser="Android Download Manager"
2679
+
2680
+ [AutoMate5]
2681
+ Parent=Download Managers
2682
+ Browser="AutoMate5"
2683
+
2684
+ [Beamer*]
2685
+ Parent=Download Managers
2686
+ Browser="Beamer"
2687
+
2688
+ [BitBeamer/*]
2689
+ Parent=Download Managers
2690
+ Browser="BitBeamer"
2691
+
2692
+ [BitTorrent/*]
2693
+ Parent=Download Managers
2694
+ Browser="BitTorrent"
2695
+
2696
+ [DA *]
2697
+ Parent=Download Managers
2698
+ Browser="Download Accelerator"
2699
+
2700
+ [Download Demon*]
2701
+ Parent=Download Managers
2702
+ Browser="Download Demon"
2703
+
2704
+ [Download Express*]
2705
+ Parent=Download Managers
2706
+ Browser="Download Express"
2707
+
2708
+ [Download Master*]
2709
+ Parent=Download Managers
2710
+ Browser="Download Master"
2711
+
2712
+ [Download Ninja*]
2713
+ Parent=Download Managers
2714
+ Browser="Download Ninja"
2715
+
2716
+ [Download Wonder*]
2717
+ Parent=Download Managers
2718
+ Browser="Download Wonder"
2719
+
2720
+ [DownloadSession*]
2721
+ Parent=Download Managers
2722
+ Browser="DownloadSession"
2723
+
2724
+ [EasyDL/*]
2725
+ Parent=Download Managers
2726
+ Browser="EasyDL"
2727
+
2728
+ [FDM 1.x]
2729
+ Parent=Download Managers
2730
+ Browser="Free Download Manager"
2731
+
2732
+ [FlashGet]
2733
+ Parent=Download Managers
2734
+ Browser="FlashGet"
2735
+
2736
+ [FreshDownload/*]
2737
+ Parent=Download Managers
2738
+ Browser="FreshDownload"
2739
+
2740
+ [GetRight/*]
2741
+ Parent=Download Managers
2742
+ Browser="GetRight"
2743
+
2744
+ [GetRightPro/*]
2745
+ Parent=Download Managers
2746
+ Browser="GetRightPro"
2747
+
2748
+ [GetSmart/*]
2749
+ Parent=Download Managers
2750
+ Browser="GetSmart"
2751
+
2752
+ [Go!Zilla*]
2753
+ Parent=Download Managers
2754
+ Browser="GoZilla"
2755
+
2756
+ [Gozilla/*]
2757
+ Parent=Download Managers
2758
+ Browser="Gozilla"
2759
+
2760
+ [Internet Ninja*]
2761
+ Parent=Download Managers
2762
+ Browser="Internet Ninja"
2763
+
2764
+ [Kontiki Client*]
2765
+ Parent=Download Managers
2766
+ Browser="Kontiki Client"
2767
+
2768
+ [lftp/3.2.1]
2769
+ Parent=Download Managers
2770
+ Browser="lftp"
2771
+
2772
+ [LightningDownload/*]
2773
+ Parent=Download Managers
2774
+ Browser="LightningDownload"
2775
+
2776
+ [LMQueueBot/*]
2777
+ Parent=Download Managers
2778
+ Browser="LMQueueBot"
2779
+
2780
+ [MetaProducts Download Express/*]
2781
+ Parent=Download Managers
2782
+ Browser="Download Express"
2783
+
2784
+ [Mozilla/4.0 (compatible; Getleft*)]
2785
+ Parent=Download Managers
2786
+ Browser="Getleft"
2787
+
2788
+ [Myzilla]
2789
+ Parent=Download Managers
2790
+ Browser="Myzilla"
2791
+
2792
+ [Net Vampire/*]
2793
+ Parent=Download Managers
2794
+ Browser="Net Vampire"
2795
+
2796
+ [Net_Vampire*]
2797
+ Parent=Download Managers
2798
+ Browser="Net_Vampire"
2799
+
2800
+ [NetAnts*]
2801
+ Parent=Download Managers
2802
+ Browser="NetAnts"
2803
+
2804
+ [NetPumper*]
2805
+ Parent=Download Managers
2806
+ Browser="NetPumper"
2807
+
2808
+ [NetSucker*]
2809
+ Parent=Download Managers
2810
+ Browser="NetSucker"
2811
+
2812
+ [NetZip Downloader*]
2813
+ Parent=Download Managers
2814
+ Browser="NetZip Downloader"
2815
+
2816
+ [NexTools WebAgent*]
2817
+ Parent=Download Managers
2818
+ Browser="NexTools WebAgent"
2819
+
2820
+ [Offline Downloader*]
2821
+ Parent=Download Managers
2822
+ Browser="Offline Downloader"
2823
+
2824
+ [P3P Client]
2825
+ Parent=Download Managers
2826
+ Browser="P3P Client"
2827
+
2828
+ [PageDown*]
2829
+ Parent=Download Managers
2830
+ Browser="PageDown"
2831
+
2832
+ [PicaLoader*]
2833
+ Parent=Download Managers
2834
+ Browser="PicaLoader"
2835
+
2836
+ [Prozilla*]
2837
+ Parent=Download Managers
2838
+ Browser="Prozilla"
2839
+
2840
+ [RealDownload/*]
2841
+ Parent=Download Managers
2842
+ Browser="RealDownload"
2843
+
2844
+ [sEasyDL/*]
2845
+ Parent=Download Managers
2846
+ Browser="EasyDL"
2847
+
2848
+ [shareaza*]
2849
+ Parent=Download Managers
2850
+ Browser="shareaza"
2851
+
2852
+ [SmartDownload/*]
2853
+ Parent=Download Managers
2854
+ Browser="SmartDownload"
2855
+
2856
+ [SpeedDownload/*]
2857
+ Parent=Download Managers
2858
+ Browser="Speed Download"
2859
+
2860
+ [Star*Downloader/*]
2861
+ Parent=Download Managers
2862
+ Browser="StarDownloader"
2863
+
2864
+ [STEROID Download]
2865
+ Parent=Download Managers
2866
+ Browser="STEROID Download"
2867
+
2868
+ [SuperBot/*]
2869
+ Parent=Download Managers
2870
+ Browser="SuperBot"
2871
+
2872
+ [Vegas95/*]
2873
+ Parent=Download Managers
2874
+ Browser="Vegas95"
2875
+
2876
+ [WebZIP*]
2877
+ Parent=Download Managers
2878
+ Browser="WebZIP"
2879
+
2880
+ [Wget*]
2881
+ Parent=Download Managers
2882
+ Browser="Wget"
2883
+
2884
+ [WinTools]
2885
+ Parent=Download Managers
2886
+ Browser="WinTools"
2887
+
2888
+ [Xaldon WebSpider*]
2889
+ Parent=Download Managers
2890
+ Browser="Xaldon WebSpider"
2891
+
2892
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; E-Mail Harvesters
2893
+
2894
+ [E-Mail Harvesters]
2895
+ Parent=DefaultProperties
2896
+ Browser="E-Mail Harvesters"
2897
+ Frames=true
2898
+ IFrames=true
2899
+ Tables=true
2900
+ isBanned=true
2901
+ Crawler=true
2902
+
2903
+ [*E-Mail Address Extractor*]
2904
+ Parent=E-Mail Harvesters
2905
+ Browser="E-Mail Address Extractor"
2906
+
2907
+ [*Larbin*]
2908
+ Parent=E-Mail Harvesters
2909
+ Browser="Larbin"
2910
+
2911
+ [*www4mail/*]
2912
+ Parent=E-Mail Harvesters
2913
+ Browser="www4mail"
2914
+
2915
+ [8484 Boston Project*]
2916
+ Parent=E-Mail Harvesters
2917
+ Browser="8484 Boston Project"
2918
+
2919
+ [Atomic_Email]
2920
+ Parent=E-Mail Harvesters
2921
+ Browser="Atomic_Email"
2922
+
2923
+ [Atomic_Email_Hunter/*]
2924
+ Parent=E-Mail Harvesters
2925
+ Browser="Atomic Email Hunter"
2926
+
2927
+ [CherryPicker*/*]
2928
+ Parent=E-Mail Harvesters
2929
+ Browser="CherryPickerElite"
2930
+
2931
+ [Chilkat/*]
2932
+ Parent=E-Mail Harvesters
2933
+ Browser="Chilkat"
2934
+
2935
+ [ContactBot/*]
2936
+ Parent=E-Mail Harvesters
2937
+ Browser="ContactBot"
2938
+
2939
+ [eCatch*]
2940
+ Parent=E-Mail Harvesters
2941
+ Browser="eCatch"
2942
+
2943
+ [EmailCollector*]
2944
+ Parent=E-Mail Harvesters
2945
+ Browser="E-Mail Collector"
2946
+
2947
+ [EMAILsearcher]
2948
+ Parent=E-Mail Harvesters
2949
+ Browser="EMAILsearcher"
2950
+
2951
+ [EmailSiphon*]
2952
+ Parent=E-Mail Harvesters
2953
+ Browser="E-Mail Siphon"
2954
+
2955
+ [EmailWolf*]
2956
+ Parent=E-Mail Harvesters
2957
+ Browser="EMailWolf"
2958
+
2959
+ [Epsilon SoftWorks' MailMunky]
2960
+ Parent=E-Mail Harvesters
2961
+ Browser="MailMunky"
2962
+
2963
+ [ExtractorPro*]
2964
+ Parent=E-Mail Harvesters
2965
+ Browser="ExtractorPro"
2966
+
2967
+ [Franklin Locator*]
2968
+ Parent=E-Mail Harvesters
2969
+ Browser="Franklin Locator"
2970
+
2971
+ [Missigua Locator*]
2972
+ Parent=E-Mail Harvesters
2973
+ Browser="Missigua Locator"
2974
+
2975
+ [Mozilla/4.0 (compatible; Advanced Email Extractor*)]
2976
+ Parent=E-Mail Harvesters
2977
+ Browser="Advanced Email Extractor"
2978
+
2979
+ [Netprospector*]
2980
+ Parent=E-Mail Harvesters
2981
+ Browser="Netprospector"
2982
+
2983
+ [ProWebWalker*]
2984
+ Parent=E-Mail Harvesters
2985
+ Browser="ProWebWalker"
2986
+
2987
+ [sna-0.0.*]
2988
+ Parent=E-Mail Harvesters
2989
+ Browser="Mike Elliott's E-Mail Harvester"
2990
+
2991
+ [WebEnhancer*]
2992
+ Parent=E-Mail Harvesters
2993
+ Browser="WebEnhancer"
2994
+
2995
+ [WebMiner*]
2996
+ Parent=E-Mail Harvesters
2997
+ Browser="WebMiner"
2998
+
2999
+ [ZIBB Crawler (email address / WWW address)]
3000
+ Parent=E-Mail Harvesters
3001
+ Browser="ZIBB Crawler"
3002
+
3003
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Feeds Blogs
3004
+
3005
+ [Feeds Blogs]
3006
+ Parent=DefaultProperties
3007
+ Browser="Feeds Blogs"
3008
+ isSyndicationReader=true
3009
+ Crawler=true
3010
+
3011
+ [Bloglines Title Fetch/*]
3012
+ Parent=Feeds Blogs
3013
+ Browser="Bloglines Title Fetch"
3014
+
3015
+ [Bloglines/* (http://www.bloglines.com*)]
3016
+ Parent=Feeds Blogs
3017
+ Browser="BlogLines Web"
3018
+
3019
+ [BlogPulse (ISSpider-3.*)]
3020
+ Parent=Feeds Blogs
3021
+ Browser="BlogPulse"
3022
+
3023
+ [BlogPulseLive (support@blogpulse.com)]
3024
+ Parent=Feeds Blogs
3025
+ Browser="BlogPulseLive"
3026
+
3027
+ [blogsearchbot-pumpkin-2]
3028
+ Parent=Feeds Blogs
3029
+ Browser="blogsearchbot-pumpkin"
3030
+ isSyndicationReader=false
3031
+
3032
+ [Irish Blogs Aggregator/*1.0*]
3033
+ Parent=Feeds Blogs
3034
+ Browser="Irish Blogs Aggregator"
3035
+ Version=1.0
3036
+ MajorVer=1
3037
+ MinorVer=0
3038
+
3039
+ [kinjabot (http://www.kinja.com; *)]
3040
+ Parent=Feeds Blogs
3041
+ Browser="kinjabot"
3042
+
3043
+ [Net::Trackback/*]
3044
+ Parent=Feeds Blogs
3045
+ Browser="Net::Trackback"
3046
+
3047
+ [Reblog*]
3048
+ Parent=Feeds Blogs
3049
+ Browser="Reblog"
3050
+
3051
+ [WordPress/*]
3052
+ Parent=Feeds Blogs
3053
+ Browser="WordPress"
3054
+
3055
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Feeds Syndicators
3056
+
3057
+ [Feeds Syndicators]
3058
+ Parent=DefaultProperties
3059
+ Browser="Feeds Syndicators"
3060
+ isSyndicationReader=true
3061
+
3062
+ [*LinkLint*]
3063
+ Parent=Feeds Syndicators
3064
+ Browser="LinkLint"
3065
+
3066
+ [*NetNewsWire/*]
3067
+ Parent=Feeds Syndicators
3068
+
3069
+ [*NetVisualize*]
3070
+ Parent=Feeds Syndicators
3071
+ Browser="NetVisualize"
3072
+
3073
+ [AideRSS 2.* (postrank.com)]
3074
+ Parent=Feeds Syndicators
3075
+ Browser="AideRSS"
3076
+
3077
+ [AideRSS/2.0 (aiderss.com)]
3078
+ Parent=Feeds Syndicators
3079
+ Browser="AideRSS"
3080
+ isBanned=true
3081
+
3082
+ [Akregator/*]
3083
+ Parent=Feeds Syndicators
3084
+ Browser="Akregator"
3085
+
3086
+ [AppleSyndication/*]
3087
+ Parent=Feeds Syndicators
3088
+ Browser="Safari RSS"
3089
+ Platform=MacOSX
3090
+
3091
+ [Cocoal.icio.us/* (*)*]
3092
+ Parent=Feeds Syndicators
3093
+ Browser="Cocoal.icio.us"
3094
+ isBanned=true
3095
+
3096
+ [Feed43 Proxy/* (*)]
3097
+ Parent=Feeds Syndicators
3098
+ Browser="Feed For Free"
3099
+
3100
+ [FeedBurner/*]
3101
+ Parent=Feeds Syndicators
3102
+ Browser="FeedBurner"
3103
+
3104
+ [FeedDemon/* (*)]
3105
+ Parent=Feeds Syndicators
3106
+ Browser="FeedDemon"
3107
+ Platform=Win32
3108
+
3109
+ [FeedDigest/* (*)]
3110
+ Parent=Feeds Syndicators
3111
+ Browser="FeedDigest"
3112
+
3113
+ [FeedGhost/1.*]
3114
+ Parent=Feeds Syndicators
3115
+ Browser="FeedGhost"
3116
+ Version=1.0
3117
+ MajorVer=1
3118
+ MinorVer=0
3119
+
3120
+ [FeedOnFeeds/0.1.* ( http://minutillo.com/steve/feedonfeeds/)]
3121
+ Parent=Feeds Syndicators
3122
+ Browser="FeedOnFeeds"
3123
+ Version=0.1
3124
+ MajorVer=0
3125
+ MinorVer=1
3126
+
3127
+ [Feedreader * (Powered by Newsbrain)]
3128
+ Parent=Feeds Syndicators
3129
+ Browser="Newsbrain"
3130
+
3131
+ [Feedshow/* (*)]
3132
+ Parent=Feeds Syndicators
3133
+ Browser="Feedshow"
3134
+
3135
+ [Feedster Crawler/?.0; Feedster, Inc.]
3136
+ Parent=Feeds Syndicators
3137
+ Browser="Feedster"
3138
+
3139
+ [GreatNews/1.0]
3140
+ Parent=Feeds Syndicators
3141
+ Browser="GreatNews"
3142
+ Version=1.0
3143
+ MajorVer=1
3144
+ MinorVer=0
3145
+
3146
+ [Gregarius/*]
3147
+ Parent=Feeds Syndicators
3148
+ Browser="Gregarius"
3149
+
3150
+ [intraVnews/*]
3151
+ Parent=Feeds Syndicators
3152
+ Browser="intraVnews"
3153
+
3154
+ [JetBrains Omea Reader*]
3155
+ Parent=Feeds Syndicators
3156
+ Browser="Omea Reader"
3157
+ isBanned=true
3158
+
3159
+ [Liferea/1.5* (Linux; *; http://liferea.sf.net/)]
3160
+ Parent=Feeds Syndicators
3161
+ Browser="Liferea"
3162
+ isBanned=true
3163
+
3164
+ [livedoor FeedFetcher/0.0* (http://reader.livedoor.com/;*)]
3165
+ Parent=Feeds Syndicators
3166
+ Browser="FeedFetcher"
3167
+ Version=0.0
3168
+ MajorVer=0
3169
+ MinorVer=0
3170
+
3171
+ [MagpieRSS/* (*)]
3172
+ Parent=Feeds Syndicators
3173
+ Browser="MagpieRSS"
3174
+
3175
+ [Mobitype * (compatible; Mozilla/*; MSIE *.*; Windows *)]
3176
+ Parent=Feeds Syndicators
3177
+ Browser="Mobitype"
3178
+ Platform=Win32
3179
+
3180
+ [Mozilla/5.0 (*; Rojo *; http://www.rojo.com/corporate/help/agg; *)*]
3181
+ Parent=Feeds Syndicators
3182
+ Browser="Rojo"
3183
+
3184
+ [Mozilla/5.0 (*aggregator:TailRank; http://tailrank.com/robot)*]
3185
+ Parent=Feeds Syndicators
3186
+ Browser="TailRank"
3187
+
3188
+ [Mozilla/5.0 (compatible; MSIE 6.0; Podtech Network; crawler_admin@podtech.net)]
3189
+ Parent=Feeds Syndicators
3190
+ Browser="Podtech Network"
3191
+
3192
+ [Mozilla/5.0 (compatible; Newz Crawler *; http://www.newzcrawler.com/?)]
3193
+ Parent=Feeds Syndicators
3194
+ Browser="Newz Crawler"
3195
+
3196
+ [Mozilla/5.0 (compatible; RSSMicro.com RSS/Atom Feed Robot)]
3197
+ Parent=Feeds Syndicators
3198
+ Browser="RSSMicro"
3199
+
3200
+ [Mozilla/5.0 (compatible;*newstin.com;*)]
3201
+ Parent=Feeds Syndicators
3202
+ Browser="NewsTin"
3203
+
3204
+ [Mozilla/5.0 (RSS Reader Panel)]
3205
+ Parent=Feeds Syndicators
3206
+ Browser="RSS Reader Panel"
3207
+
3208
+ [Mozilla/5.0 (X11; U; Linux*; *; rv:1.*; aggregator:FeedParser; *) Gecko/*]
3209
+ Parent=Feeds Syndicators
3210
+ Browser="FeedParser"
3211
+
3212
+ [Mozilla/5.0 (X11; U; Linux*; *; rv:1.*; aggregator:NewsMonster; *) Gecko/*]
3213
+ Parent=Feeds Syndicators
3214
+ Browser="NewsMonster"
3215
+
3216
+ [Mozilla/5.0 (X11; U; Linux*; *; rv:1.*; aggregator:Rojo; *) Gecko/*]
3217
+ Parent=Feeds Syndicators
3218
+ Browser="Rojo"
3219
+
3220
+ [Mozilla/5.0 NewsFox/*]
3221
+ Parent=Feeds Syndicators
3222
+ Browser="NewsFox"
3223
+
3224
+ [Netvibes (*)]
3225
+ Parent=Feeds Syndicators
3226
+ Browser="Netvibes"
3227
+
3228
+ [NewsAlloy/* (*)]
3229
+ Parent=Feeds Syndicators
3230
+ Browser="NewsAlloy"
3231
+
3232
+ [Omnipelagos*]
3233
+ Parent=Feeds Syndicators
3234
+ Browser="Omnipelagos"
3235
+
3236
+ [Particls]
3237
+ Parent=Feeds Syndicators
3238
+ Browser="Particls"
3239
+
3240
+ [Protopage/* (*)]
3241
+ Parent=Feeds Syndicators
3242
+ Browser="Protopage"
3243
+
3244
+ [PubSub-RSS-Reader/* (*)]
3245
+ Parent=Feeds Syndicators
3246
+ Browser="PubSub-RSS-Reader"
3247
+
3248
+ [RSS Menu/*]
3249
+ Parent=Feeds Syndicators
3250
+ Browser="RSS Menu"
3251
+
3252
+ [RssBandit/*]
3253
+ Parent=Feeds Syndicators
3254
+ Browser="RssBandit"
3255
+
3256
+ [RssBar/1.2*]
3257
+ Parent=Feeds Syndicators
3258
+ Browser="RssBar"
3259
+ Version=1.2
3260
+ MajorVer=1
3261
+ MinorVer=2
3262
+
3263
+ [SharpReader/*]
3264
+ Parent=Feeds Syndicators
3265
+ Browser="SharpReader"
3266
+
3267
+ [SimplePie/*]
3268
+ Parent=Feeds Syndicators
3269
+ Browser="SimplePie"
3270
+
3271
+ [Strategic Board Bot (?http://www.strategicboard.com)]
3272
+ Parent=Feeds Syndicators
3273
+ Browser="Strategic Board Bot"
3274
+ isBanned=true
3275
+
3276
+ [TargetYourNews.com bot]
3277
+ Parent=Feeds Syndicators
3278
+ Browser="TargetYourNews"
3279
+
3280
+ [Technoratibot/*]
3281
+ Parent=Feeds Syndicators
3282
+ Browser="Technoratibot"
3283
+
3284
+ [Tumblr/* RSS syndication ( http://www.tumblr.com/) (support@tumblr.com)]
3285
+ Parent=Feeds Syndicators
3286
+ Browser="Tumblr RSS syndication"
3287
+
3288
+ [Windows-RSS-Platform/1.0*]
3289
+ Parent=Feeds Syndicators
3290
+ Browser="Windows-RSS-Platform"
3291
+ Version=1.0
3292
+ MajorVer=1
3293
+ MinorVer=0
3294
+ Win32=true
3295
+
3296
+ [Wizz RSS News Reader]
3297
+ Parent=Feeds Syndicators
3298
+ Browser="Wizz"
3299
+
3300
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; General RSS
3301
+
3302
+ [General RSS]
3303
+ Parent=DefaultProperties
3304
+ Browser="General RSS"
3305
+ isSyndicationReader=true
3306
+
3307
+ [AideRSS/1.0 (aiderss.com); * subscribers]
3308
+ Parent=General RSS
3309
+ Browser="AideRSS"
3310
+ Version=1.0
3311
+ MajorVer=1
3312
+ MinorVer=0
3313
+
3314
+ [CC Metadata Scaper http://wiki.creativecommons.org/Metadata_Scraper]
3315
+ Parent=General RSS
3316
+ Browser="CC Metadata Scaper"
3317
+
3318
+ [Mozilla/5.0 (compatible) GM RSS Panel]
3319
+ Parent=General RSS
3320
+ Browser="RSS Panel"
3321
+
3322
+ [Mozilla/5.0 http://www.inclue.com; graeme@inclue.com]
3323
+ Parent=General RSS
3324
+ Browser="Inclue"
3325
+
3326
+ [Runnk online rss reader : http://www.runnk.com/ : RSS favorites : RSS ranking : RSS aggregator*]
3327
+ Parent=General RSS
3328
+ Browser="Ruunk"
3329
+
3330
+ [Windows-RSS-Platform/2.0 (MSIE 8.0; Windows NT 6.0)]
3331
+ Parent=General RSS
3332
+ Browser="Windows-RSS-Platform"
3333
+ Platform=WinVista
3334
+
3335
+ [Mozilla/5.0 (X11; ?; Linux; *) AppleWebKit/* (KHTML, like Gecko, Safari/*) Arora/0.4]
3336
+ Parent=Google Code
3337
+ Browser="Arora"
3338
+ Version=0.4
3339
+ MajorVer=0
3340
+ MinorVer=4
3341
+ Platform=Linux
3342
+ CssVersion=2
3343
+ supportsCSS=true
3344
+
3345
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Validation Checkers
3346
+
3347
+ [HTML Validators]
3348
+ Parent=DefaultProperties
3349
+ Browser="HTML Validators"
3350
+ Frames=true
3351
+ IFrames=true
3352
+ Tables=true
3353
+ Crawler=true
3354
+
3355
+ [(HTML Validator http://www.searchengineworld.com/validator/)]
3356
+ Parent=HTML Validators
3357
+ Browser="Search Engine World HTML Validator"
3358
+
3359
+ [FeedValidator/1.3]
3360
+ Parent=HTML Validators
3361
+ Browser="FeedValidator"
3362
+ Version=1.3
3363
+ MajorVer=1
3364
+ MinorVer=3
3365
+
3366
+ [Jigsaw/* W3C_CSS_Validator_JFouffa/*]
3367
+ Parent=HTML Validators
3368
+ Browser="Jigsaw CSS Validator"
3369
+
3370
+ [Search Engine World Robots.txt Validator*]
3371
+ Parent=HTML Validators
3372
+ Browser="Search Engine World Robots.txt Validator"
3373
+
3374
+ [W3C_Validator/*]
3375
+ Parent=HTML Validators
3376
+ Browser="W3C Validator"
3377
+
3378
+ [W3CLineMode/*]
3379
+ Parent=HTML Validators
3380
+ Browser="W3C Line Mode"
3381
+
3382
+ [Weblide/2.? beta*]
3383
+ Parent=HTML Validators
3384
+ Browser="Weblide"
3385
+ Version=2.0
3386
+ MajorVer=2
3387
+ MinorVer=0
3388
+ Beta=true
3389
+
3390
+ [WebmasterWorld StickyMail Server Header Checker*]
3391
+ Parent=HTML Validators
3392
+ Browser="WebmasterWorld Server Header Checker"
3393
+
3394
+ [WWWC/*]
3395
+ Parent=HTML Validators
3396
+
3397
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Image Crawlers
3398
+
3399
+ [Image Crawlers]
3400
+ Parent=DefaultProperties
3401
+ Browser="Image Crawlers"
3402
+ Frames=true
3403
+ IFrames=true
3404
+ Tables=true
3405
+ isBanned=true
3406
+ Crawler=true
3407
+
3408
+ [*CFNetwork*]
3409
+ Parent=Image Crawlers
3410
+ Browser="CFNetwork"
3411
+
3412
+ [*PhotoStickies/*]
3413
+ Parent=Image Crawlers
3414
+ Browser="PhotoStickies"
3415
+
3416
+ [Camcrawler*]
3417
+ Parent=Image Crawlers
3418
+ Browser="Camcrawler"
3419
+
3420
+ [CydralSpider/*]
3421
+ Parent=Image Crawlers
3422
+ Browser="Cydral Web Image Search"
3423
+ isBanned=true
3424
+
3425
+ [Der gro\xdfe BilderSauger*]
3426
+ Parent=Image Crawlers
3427
+ Browser="Gallery Grabber"
3428
+
3429
+ [Extreme Picture Finder]
3430
+ Parent=Image Crawlers
3431
+ Browser="Extreme Picture Finder"
3432
+
3433
+ [FLATARTS_FAVICO]
3434
+ Parent=Image Crawlers
3435
+ Browser="FlatArts Favorites Icon Tool"
3436
+
3437
+ [HTML2JPG Blackbox, http://www.html2jpg.com]
3438
+ Parent=Image Crawlers
3439
+ Browser="HTML2JPG"
3440
+
3441
+ [IconSurf/2.*]
3442
+ Parent=Image Crawlers
3443
+ Browser="IconSurf"
3444
+
3445
+ [kalooga/KaloogaBot*]
3446
+ Parent=Image Crawlers
3447
+ Browser="KaloogaBot"
3448
+
3449
+ [Mister PIX*]
3450
+ Parent=Image Crawlers
3451
+ Browser="Mister PIX"
3452
+
3453
+ [Mozilla/5.0 (Macintosh; U; *Mac OS X; *) AppleWebKit/* (*) Pandora/2.*]
3454
+ Parent=Image Crawlers
3455
+ Browser="Pandora"
3456
+
3457
+ [naoFavicon4IE*]
3458
+ Parent=Image Crawlers
3459
+ Browser="naoFavicon4IE"
3460
+
3461
+ [pixfinder/*]
3462
+ Parent=Image Crawlers
3463
+ Browser="pixfinder"
3464
+
3465
+ [rssImagesBot/0.1 (*http://herbert.groot.jebbink.nl/?app=rssImages)]
3466
+ Parent=Image Crawlers
3467
+ Browser="rssImagesBot"
3468
+
3469
+ [Web Image Collector*]
3470
+ Parent=Image Crawlers
3471
+ Browser="Web Image Collector"
3472
+
3473
+ [WebImages * (?http://herbert.groot.jebbink.nl/?app=WebImages?)]
3474
+ Parent=Image Crawlers
3475
+ Browser="WebImages"
3476
+
3477
+ [WebPix*]
3478
+ Parent=Image Crawlers
3479
+ Browser="Custo"
3480
+
3481
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Link Checkers
3482
+
3483
+ [Link Checkers]
3484
+ Parent=DefaultProperties
3485
+ Browser="Link Checkers"
3486
+ Frames=true
3487
+ IFrames=true
3488
+ Tables=true
3489
+ Crawler=true
3490
+
3491
+ [!Susie (http://www.sync2it.com/susie)]
3492
+ Parent=Link Checkers
3493
+ Browser="!Susie"
3494
+
3495
+ [*AgentName/*]
3496
+ Parent=Link Checkers
3497
+ Browser="AgentName"
3498
+
3499
+ [*Linkman*]
3500
+ Parent=Link Checkers
3501
+ Browser="Linkman"
3502
+
3503
+ [*LinksManager.com*]
3504
+ Parent=Link Checkers
3505
+ Browser="LinksManager"
3506
+
3507
+ [*Powermarks/*]
3508
+ Parent=Link Checkers
3509
+ Browser="Powermarks"
3510
+
3511
+ [*W3C-checklink/*]
3512
+ Parent=Link Checkers
3513
+ Browser="W3C Link Checker"
3514
+
3515
+ [*Web Link Validator*]
3516
+ Parent=Link Checkers
3517
+ Browser="Web Link Validator"
3518
+
3519
+ [*Zeus*]
3520
+ Parent=Link Checkers
3521
+ Browser="Zeus"
3522
+ isBanned=true
3523
+
3524
+ [ActiveBookmark *]
3525
+ Parent=Link Checkers
3526
+ Browser="ActiveBookmark"
3527
+
3528
+ [Bookdog/*]
3529
+ Parent=Link Checkers
3530
+ Browser="Bookdog"
3531
+
3532
+ [Bookmark Buddy*]
3533
+ Parent=Link Checkers
3534
+ Browser="Bookmark Buddy"
3535
+
3536
+ [Bookmark Renewal Check Agent*]
3537
+ Parent=Link Checkers
3538
+ Browser="Bookmark Renewal Check Agent"
3539
+
3540
+ [Bookmark search tool*]
3541
+ Parent=Link Checkers
3542
+ Browser="Bookmark search tool"
3543
+
3544
+ [Bookmark-Manager]
3545
+ Parent=Link Checkers
3546
+ Browser="Bookmark-Manager"
3547
+
3548
+ [Checkbot*]
3549
+ Parent=Link Checkers
3550
+ Browser="Checkbot"
3551
+
3552
+ [CheckLinks/*]
3553
+ Parent=Link Checkers
3554
+ Browser="CheckLinks"
3555
+
3556
+ [CyberSpyder Link Test/*]
3557
+ Parent=Link Checkers
3558
+ Browser="CyberSpyder Link Test"
3559
+
3560
+ [DLC/*]
3561
+ Parent=Link Checkers
3562
+ Browser="DLC"
3563
+
3564
+ [DocWeb Link Crawler (http://doc.php.net)]
3565
+ Parent=Link Checkers
3566
+ Browser="DocWeb Link Crawler"
3567
+
3568
+ [FavOrg]
3569
+ Parent=Link Checkers
3570
+ Browser="FavOrg"
3571
+
3572
+ [Favorites Sweeper v.3.*]
3573
+ Parent=Link Checkers
3574
+ Browser="Favorites Sweeper"
3575
+
3576
+ [FindLinks/*]
3577
+ Parent=Link Checkers
3578
+ Browser="FindLinks"
3579
+
3580
+ [Funnel Web Profiler*]
3581
+ Parent=Link Checkers
3582
+ Browser="Funnel Web Profiler"
3583
+
3584
+ [Html Link Validator (www.lithopssoft.com)]
3585
+ Parent=Link Checkers
3586
+ Browser="HTML Link Validator"
3587
+
3588
+ [IECheck]
3589
+ Parent=Link Checkers
3590
+ Browser="IECheck"
3591
+
3592
+ [JCheckLinks/*]
3593
+ Parent=Link Checkers
3594
+ Browser="JCheckLinks"
3595
+
3596
+ [JRTwine Software Check Favorites Utility]
3597
+ Parent=Link Checkers
3598
+ Browser="JRTwine"
3599
+
3600
+ [Link Valet Online*]
3601
+ Parent=Link Checkers
3602
+ Browser="Link Valet"
3603
+ isBanned=true
3604
+
3605
+ [LinkAlarm/*]
3606
+ Parent=Link Checkers
3607
+ Browser="LinkAlarm"
3608
+
3609
+ [Linkbot*]
3610
+ Parent=Link Checkers
3611
+ Browser="Linkbot"
3612
+
3613
+ [LinkChecker/*]
3614
+ Parent=Link Checkers
3615
+ Browser="LinkChecker"
3616
+
3617
+ [LinkextractorPro*]
3618
+ Parent=Link Checkers
3619
+ Browser="LinkextractorPro"
3620
+ isBanned=true
3621
+
3622
+ [LinkLint-checkonly/*]
3623
+ Parent=Link Checkers
3624
+ Browser="LinkLint"
3625
+
3626
+ [LinkScan/*]
3627
+ Parent=Link Checkers
3628
+ Browser="LinkScan"
3629
+
3630
+ [LinkSweeper/*]
3631
+ Parent=Link Checkers
3632
+ Browser="LinkSweeper"
3633
+
3634
+ [LinkWalker*]
3635
+ Parent=Link Checkers
3636
+ Browser="LinkWalker"
3637
+
3638
+ [MetaGer-LinkChecker]
3639
+ Parent=Link Checkers
3640
+ Browser="MetaGer-LinkChecker"
3641
+
3642
+ [Mozilla/* (compatible; linktiger/*; *http://www.linktiger.com*)]
3643
+ Parent=Link Checkers
3644
+ Browser="LinkTiger"
3645
+ isBanned=true
3646
+
3647
+ [Mozilla/4.0 (Compatible); URLBase*]
3648
+ Parent=Link Checkers
3649
+ Browser="URLBase"
3650
+
3651
+ [Mozilla/4.0 (compatible; Link Utility; http://net-promoter.com)]
3652
+ Parent=Link Checkers
3653
+ Browser="NetPromoter Link Utility"
3654
+
3655
+ [Mozilla/4.0 (compatible; MSIE 6.0; Windows 98) Web Link Validator*]
3656
+ Parent=Link Checkers
3657
+ Browser="Web Link Validator"
3658
+ Win32=true
3659
+
3660
+ [Mozilla/4.0 (compatible; MSIE 7.0; Win32) Link Commander 3.0]
3661
+ Parent=Link Checkers
3662
+ Browser="Link Commander"
3663
+ Version=3.0
3664
+ MajorVer=3
3665
+ MinorVer=0
3666
+ Platform=Win32
3667
+
3668
+ [Mozilla/4.0 (compatible; smartBot/1.*; checking links; *)]
3669
+ Parent=Link Checkers
3670
+ Browser="smartBot"
3671
+
3672
+ [Mozilla/4.0 (compatible; SuperCleaner*;*)]
3673
+ Parent=Link Checkers
3674
+ Browser="SuperCleaner"
3675
+
3676
+ [Mozilla/5.0 gURLChecker/*]
3677
+ Parent=Link Checkers
3678
+ Browser="gURLChecker"
3679
+ isBanned=true
3680
+
3681
+ [Newsgroupreporter LinkCheck]
3682
+ Parent=Link Checkers
3683
+ Browser="Newsgroupreporter LinkCheck"
3684
+
3685
+ [onCHECK Linkchecker von www.scientec.de fuer www.onsinn.de]
3686
+ Parent=Link Checkers
3687
+ Browser="onCHECK Linkchecker"
3688
+
3689
+ [online link validator (http://www.dead-links.com/)]
3690
+ Parent=Link Checkers
3691
+ Browser="Dead-Links.com"
3692
+ isBanned=true
3693
+
3694
+ [REL Link Checker*]
3695
+ Parent=Link Checkers
3696
+ Browser="REL Link Checker"
3697
+
3698
+ [RLinkCheker*]
3699
+ Parent=Link Checkers
3700
+ Browser="RLinkCheker"
3701
+
3702
+ [Robozilla/*]
3703
+ Parent=Link Checkers
3704
+ Browser="Robozilla"
3705
+
3706
+ [RPT-HTTPClient/*]
3707
+ Parent=Link Checkers
3708
+ Browser="RPT-HTTPClient"
3709
+ isBanned=true
3710
+
3711
+ [SafariBookmarkChecker*(?http://www.coriolis.ch/)]
3712
+ Parent=Link Checkers
3713
+ Browser="SafariBookmarkChecker"
3714
+ Platform=MacOSX
3715
+ CssVersion=2
3716
+ supportsCSS=true
3717
+
3718
+ [Simpy/* (Simpy; http://www.simpy.com/?ref=bot; feedback at simpy dot com)]
3719
+ Parent=Link Checkers
3720
+ Browser="Simpy"
3721
+
3722
+ [SiteBar/*]
3723
+ Parent=Link Checkers
3724
+ Browser="SiteBar"
3725
+
3726
+ [Susie (http://www.sync2it.com/bms/susie.php]
3727
+ Parent=Link Checkers
3728
+ Browser="Susie"
3729
+
3730
+ [URLBase/6.*]
3731
+ Parent=Link Checkers
3732
+
3733
+ [VSE/*]
3734
+ Parent=Link Checkers
3735
+ Browser="VSE Link Tester"
3736
+
3737
+ [WebTrends Link Analyzer]
3738
+ Parent=Link Checkers
3739
+ Browser="WebTrends Link Analyzer"
3740
+
3741
+ [WorQmada/*]
3742
+ Parent=Link Checkers
3743
+ Browser="WorQmada"
3744
+
3745
+ [Xenu* Link Sleuth*]
3746
+ Parent=Link Checkers
3747
+ Browser="Xenu's Link Sleuth"
3748
+ isBanned=true
3749
+
3750
+ [Z-Add Link Checker*]
3751
+ Parent=Link Checkers
3752
+ Browser="Z-Add Link Checker"
3753
+
3754
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Microsoft
3755
+
3756
+ [Microsoft]
3757
+ Parent=DefaultProperties
3758
+ Browser="Microsoft"
3759
+ isBanned=true
3760
+
3761
+ [Live (http://www.live.com/)]
3762
+ Parent=Microsoft
3763
+ Browser="Microsoft Live"
3764
+ isBanned=false
3765
+ isSyndicationReader=true
3766
+
3767
+ [MFC Foundation Class Library*]
3768
+ Parent=Microsoft
3769
+ Browser="MFC Foundation Class Library"
3770
+
3771
+ [MFHttpScan]
3772
+ Parent=Microsoft
3773
+ Browser="MFHttpScan"
3774
+
3775
+ [Microsoft BITS/*]
3776
+ Parent=Microsoft
3777
+ Browser="BITS"
3778
+
3779
+ [Microsoft Data Access Internet Publishing Provider Cache Manager]
3780
+ Parent=Microsoft
3781
+ Browser="MS IPP"
3782
+
3783
+ [Microsoft Data Access Internet Publishing Provider DAV*]
3784
+ Parent=Microsoft
3785
+ Browser="MS IPP DAV"
3786
+
3787
+ [Microsoft Data Access Internet Publishing Provider Protocol Discovery]
3788
+ Parent=Microsoft
3789
+ Browser="MS IPPPD"
3790
+
3791
+ [Microsoft Internet Explorer]
3792
+ Parent=Microsoft
3793
+ Browser="Fake IE"
3794
+
3795
+ [Microsoft Office Existence Discovery]
3796
+ Parent=Microsoft
3797
+ Browser="Microsoft Office Existence Discovery"
3798
+
3799
+ [Microsoft Office Protocol Discovery]
3800
+ Parent=Microsoft
3801
+ Browser="MS OPD"
3802
+
3803
+ [Microsoft Office/* (*Picture Manager*)]
3804
+ Parent=Microsoft
3805
+ Browser="Microsoft Office Picture Manager"
3806
+
3807
+ [Microsoft URL Control*]
3808
+ Parent=Microsoft
3809
+ Browser="Microsoft URL Control"
3810
+
3811
+ [Microsoft Visio MSIE]
3812
+ Parent=Microsoft
3813
+ Browser="Microsoft Visio"
3814
+
3815
+ [Microsoft-WebDAV-MiniRedir/*]
3816
+ Parent=Microsoft
3817
+ Browser="Microsoft-WebDAV"
3818
+
3819
+ [Mozilla/5.0 (Macintosh; Intel Mac OS X) Excel/12.*]
3820
+ Parent=Microsoft
3821
+ Browser="Microsoft Excel"
3822
+ Version=12.0
3823
+ MajorVer=12
3824
+ MinorVer=0
3825
+ Platform=MacOSX
3826
+
3827
+ [MSN Feed Manager]
3828
+ Parent=Microsoft
3829
+ Browser="MSN Feed Manager"
3830
+ isBanned=false
3831
+ isSyndicationReader=true
3832
+
3833
+ [MSProxy/*]
3834
+ Parent=Microsoft
3835
+ Browser="MS Proxy"
3836
+
3837
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Miscellaneous Browsers
3838
+
3839
+ [Miscellaneous Browsers]
3840
+ Parent=DefaultProperties
3841
+ Browser="Miscellaneous Browsers"
3842
+ Frames=true
3843
+ Tables=true
3844
+ Cookies=true
3845
+
3846
+ [*Amiga*]
3847
+ Parent=Miscellaneous Browsers
3848
+ Browser="Amiga"
3849
+ Platform=Amiga
3850
+
3851
+ [*avantbrowser*]
3852
+ Parent=Miscellaneous Browsers
3853
+ Browser="Avant Browser"
3854
+
3855
+ [12345]
3856
+ Parent=Miscellaneous Browsers
3857
+ Browser="12345"
3858
+ isBanned=true
3859
+
3860
+ [1st ZipCommander (Net) - http://www.zipcommander.com/]
3861
+ Parent=Miscellaneous Browsers
3862
+ Browser="1st ZipCommander"
3863
+
3864
+ [Ace Explorer]
3865
+ Parent=Miscellaneous Browsers
3866
+ Browser="Ace Explorer"
3867
+
3868
+ [Enigma Browser*]
3869
+ Parent=Miscellaneous Browsers
3870
+ Browser="Enigma Browser"
3871
+
3872
+ [EVE-minibrowser/*]
3873
+ Parent=Miscellaneous Browsers
3874
+ Browser="EVE-minibrowser"
3875
+ IFrames=false
3876
+ Tables=false
3877
+ BackgroundSounds=false
3878
+ VBScript=false
3879
+ JavaApplets=false
3880
+ JavaScript=false
3881
+ ActiveXControls=false
3882
+ isBanned=false
3883
+ Crawler=false
3884
+
3885
+ [Godzilla/* (Basic*; *; Commodore C=64; *; rv:1.*)*]
3886
+ Parent=Miscellaneous Browsers
3887
+ Browser="Godzilla"
3888
+
3889
+ [GreenBrowser]
3890
+ Parent=Miscellaneous Browsers
3891
+ Browser="GreenBrowser"
3892
+ Frames=true
3893
+ IFrames=true
3894
+ Tables=true
3895
+ Cookies=true
3896
+ BackgroundSounds=true
3897
+ VBScript=true
3898
+ JavaApplets=true
3899
+ JavaScript=true
3900
+ ActiveXControls=true
3901
+ CssVersion=2
3902
+ supportsCSS=true
3903
+
3904
+ [Kopiczek/* (WyderOS*; *)]
3905
+ Parent=Miscellaneous Browsers
3906
+ Browser="Kopiczek"
3907
+ Platform=WyderOS
3908
+ IFrames=true
3909
+ JavaApplets=true
3910
+ JavaScript=true
3911
+ CssVersion=2
3912
+ supportsCSS=true
3913
+
3914
+ [Mozilla/* (*) - BrowseX (*)]
3915
+ Parent=Miscellaneous Browsers
3916
+ Browser="BrowseX"
3917
+
3918
+ [Mozilla/* (Win32;*Escape?*; ?)]
3919
+ Parent=Miscellaneous Browsers
3920
+ Browser="Escape"
3921
+ Platform=Win32
3922
+
3923
+ [Mozilla/4.0 (compatible; ibisBrowser)]
3924
+ Parent=Miscellaneous Browsers
3925
+ Browser="ibisBrowser"
3926
+
3927
+ [Mozilla/5.0 (Macintosh; ?; PPC Mac OS X;*) AppleWebKit/* (*) HistoryHound/*]
3928
+ Parent=Miscellaneous Browsers
3929
+ Browser="HistoryHound"
3930
+
3931
+ [NetRecorder*]
3932
+ Parent=Miscellaneous Browsers
3933
+ Browser="NetRecorder"
3934
+
3935
+ [NetSurf*]
3936
+ Parent=Miscellaneous Browsers
3937
+ Browser="NetSurf"
3938
+
3939
+ [ogeb browser , Version 1.1.0]
3940
+ Parent=Miscellaneous Browsers
3941
+ Browser="ogeb browser"
3942
+ Version=1.1
3943
+ MajorVer=1
3944
+ MinorVer=1
3945
+
3946
+ [SCEJ PSP BROWSER 0102pspNavigator]
3947
+ Parent=Miscellaneous Browsers
3948
+ Browser="Wipeout Pure"
3949
+
3950
+ [SlimBrowser]
3951
+ Parent=Miscellaneous Browsers
3952
+ Browser="SlimBrowser"
3953
+
3954
+ [WWW_Browser/*]
3955
+ Parent=Miscellaneous Browsers
3956
+ Browser="WWW Browser"
3957
+ Version=1.69
3958
+ MajorVer=1
3959
+ MinorVer=69
3960
+ Platform=Win16
3961
+ CssVersion=3
3962
+ supportsCSS=true
3963
+
3964
+ [*Netcraft Webserver Survey*]
3965
+ Parent=Netcraft
3966
+ Browser="Netcraft Webserver Survey"
3967
+ isBanned=true
3968
+
3969
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Offline Browsers
3970
+
3971
+ [Offline Browsers]
3972
+ Parent=DefaultProperties
3973
+ Browser="Offline Browsers"
3974
+ Frames=true
3975
+ Tables=true
3976
+ Cookies=true
3977
+ isBanned=true
3978
+ Crawler=true
3979
+
3980
+ [*Check&Get*]
3981
+ Parent=Offline Browsers
3982
+ Browser="Check&Get"
3983
+
3984
+ [*HTTrack*]
3985
+ Parent=Offline Browsers
3986
+ Browser="HTTrack"
3987
+
3988
+ [*MSIECrawler*]
3989
+ Parent=Offline Browsers
3990
+ Browser="IE Offline Browser"
3991
+
3992
+ [*TweakMASTER*]
3993
+ Parent=Offline Browsers
3994
+ Browser="TweakMASTER"
3995
+
3996
+ [BackStreet Browser *]
3997
+ Parent=Offline Browsers
3998
+ Browser="BackStreet Browser"
3999
+
4000
+ [Go-Ahead-Got-It*]
4001
+ Parent=Offline Browsers
4002
+ Browser="Go Ahead Got-It"
4003
+
4004
+ [iGetter/*]
4005
+ Parent=Offline Browsers
4006
+ Browser="iGetter"
4007
+
4008
+ [Teleport*]
4009
+ Parent=Offline Browsers
4010
+ Browser="Teleport"
4011
+
4012
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Online Scanners
4013
+
4014
+ [Online Scanners]
4015
+ Parent=DefaultProperties
4016
+ Browser="Online Scanners"
4017
+ isBanned=true
4018
+
4019
+ [JoeDog/* (X11; I; Siege *)]
4020
+ Parent=Online Scanners
4021
+ Browser="JoeDog"
4022
+ isBanned=false
4023
+
4024
+ [Morfeus Fucking Scanner]
4025
+ Parent=Online Scanners
4026
+ Browser="Morfeus Fucking Scanner"
4027
+
4028
+ [Mozilla/4.0 (compatible; Trend Micro tmdr 1.*]
4029
+ Parent=Online Scanners
4030
+ Browser="Trend Micro"
4031
+
4032
+ [Titanium 2005 (4.02.01)]
4033
+ Parent=Online Scanners
4034
+ Browser="Panda Antivirus Titanium"
4035
+
4036
+ [virus_detector*]
4037
+ Parent=Online Scanners
4038
+ Browser="Secure Computing Corporation"
4039
+
4040
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Proxy Servers
4041
+
4042
+ [Proxy Servers]
4043
+ Parent=DefaultProperties
4044
+ Browser="Proxy Servers"
4045
+ isBanned=true
4046
+
4047
+ [*squid*]
4048
+ Parent=Proxy Servers
4049
+ Browser="Squid"
4050
+
4051
+ [Anonymisiert*]
4052
+ Parent=Proxy Servers
4053
+ Browser="Anonymizied"
4054
+
4055
+ [Anonymizer/*]
4056
+ Parent=Proxy Servers
4057
+ Browser="Anonymizer"
4058
+
4059
+ [Anonymizied*]
4060
+ Parent=Proxy Servers
4061
+ Browser="Anonymizied"
4062
+
4063
+ [Anonymous*]
4064
+ Parent=Proxy Servers
4065
+ Browser="Anonymous"
4066
+
4067
+ [Anonymous/*]
4068
+ Parent=Proxy Servers
4069
+ Browser="Anonymous"
4070
+
4071
+ [CE-Preload]
4072
+ Parent=Proxy Servers
4073
+ Browser="CE-Preload"
4074
+
4075
+ [http://Anonymouse.org/*]
4076
+ Parent=Proxy Servers
4077
+ Browser="Anonymouse"
4078
+
4079
+ [IE/6.01 (CP/M; 8-bit*)]
4080
+ Parent=Proxy Servers
4081
+ Browser="Squid"
4082
+
4083
+ [Mozilla/* (TuringOS; Turing Machine; 0.0)]
4084
+ Parent=Proxy Servers
4085
+ Browser="Anonymizer"
4086
+
4087
+ [Mozilla/4.0 (compatible; MSIE ?.0; SaferSurf*)]
4088
+ Parent=Proxy Servers
4089
+ Browser="SaferSurf"
4090
+
4091
+ [Mozilla/5.0 (compatible; del.icio.us-thumbnails/*; *) KHTML/* (like Gecko)]
4092
+ Parent=Proxy Servers
4093
+ Browser="Yahoo!"
4094
+ isBanned=true
4095
+ Crawler=true
4096
+
4097
+ [Nutscrape]
4098
+ Parent=Proxy Servers
4099
+ Browser="Squid"
4100
+
4101
+ [Nutscrape/* (CP/M; 8-bit*)]
4102
+ Parent=Proxy Servers
4103
+ Browser="Squid"
4104
+
4105
+ [Privoxy/*]
4106
+ Parent=Proxy Servers
4107
+ Browser="Privoxy"
4108
+
4109
+ [ProxyTester*]
4110
+ Parent=Proxy Servers
4111
+ Browser="ProxyTester"
4112
+ isBanned=true
4113
+ Crawler=true
4114
+
4115
+ [SilentSurf*]
4116
+ Parent=Proxy Servers
4117
+ Browser="SilentSurf"
4118
+
4119
+ [SmallProxy*]
4120
+ Parent=Proxy Servers
4121
+ Browser="SmallProxy"
4122
+
4123
+ [Space*Bison/*]
4124
+ Parent=Proxy Servers
4125
+ Browser="Proxomitron"
4126
+
4127
+ [Sqworm/*]
4128
+ Parent=Proxy Servers
4129
+ Browser="Websense"
4130
+
4131
+ [SurfControl]
4132
+ Parent=Proxy Servers
4133
+ Browser="SurfControl"
4134
+
4135
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Research Projects
4136
+
4137
+ [Research Projects]
4138
+ Parent=DefaultProperties
4139
+ Browser="Research Projects"
4140
+ isBanned=true
4141
+ Crawler=true
4142
+
4143
+ [*research*]
4144
+ Parent=Research Projects
4145
+
4146
+ [AcadiaUniversityWebCensusClient]
4147
+ Parent=Research Projects
4148
+ Browser="AcadiaUniversityWebCensusClient"
4149
+
4150
+ [Amico Alpha * (*) Gecko/* AmicoAlpha/*]
4151
+ Parent=Research Projects
4152
+ Browser="Amico Alpha"
4153
+
4154
+ [annotate_google; http://ponderer.org/*]
4155
+ Parent=Research Projects
4156
+ Browser="Annotate Google"
4157
+
4158
+ [CMS crawler (?http://buytaert.net/crawler/)]
4159
+ Parent=Research Projects
4160
+
4161
+ [e-SocietyRobot(http://www.yama.info.waseda.ac.jp/~yamana/es/)]
4162
+ Parent=Research Projects
4163
+ Browser="e-SocietyRobot"
4164
+
4165
+ [Forschungsportal/*]
4166
+ Parent=Research Projects
4167
+ Browser="Forschungsportal"
4168
+
4169
+ [Gulper Web *]
4170
+ Parent=Research Projects
4171
+ Browser="Gulper Web Bot"
4172
+
4173
+ [HooWWWer/*]
4174
+ Parent=Research Projects
4175
+ Browser="HooWWWer"
4176
+
4177
+ [http://buytaert.net/crawler]
4178
+ Parent=Research Projects
4179
+
4180
+ [inetbot/* (?http://www.inetbot.com/bot.html)]
4181
+ Parent=Research Projects
4182
+ Browser="inetbot"
4183
+
4184
+ [IRLbot/*]
4185
+ Parent=Research Projects
4186
+ Browser="IRLbot"
4187
+
4188
+ [JUST-CRAWLER(*)]
4189
+ Parent=Research Projects
4190
+ Browser="JUST-CRAWLER"
4191
+
4192
+ [Lachesis]
4193
+ Parent=Research Projects
4194
+ Browser="Lachesis"
4195
+
4196
+ [Mozilla/5.0 (compatible; nextthing.org/*)]
4197
+ Parent=Research Projects
4198
+ Browser="nextthing.org"
4199
+ Version=1.0
4200
+ MajorVer=1
4201
+ MinorVer=0
4202
+
4203
+ [Mozilla/5.0 (compatible; Theophrastus/*)]
4204
+ Parent=Research Projects
4205
+ Browser="Theophrastus"
4206
+
4207
+ [Mozilla/5.0 (compatible; Webscan v0.*; http://otc.dyndns.org/webscan/)]
4208
+ Parent=Research Projects
4209
+ Browser="Webscan"
4210
+
4211
+ [MQbot*]
4212
+ Parent=Research Projects
4213
+ Browser="MQbot"
4214
+
4215
+ [OutfoxBot/*]
4216
+ Parent=Research Projects
4217
+ Browser="OutfoxBot"
4218
+
4219
+ [polybot?*]
4220
+ Parent=Research Projects
4221
+ Browser="Polybot"
4222
+
4223
+ [Shim?Crawler*]
4224
+ Parent=Research Projects
4225
+ Browser="Shim Crawler"
4226
+
4227
+ [Steeler/*]
4228
+ Parent=Research Projects
4229
+ Browser="Steeler"
4230
+
4231
+ [Taiga web spider]
4232
+ Parent=Research Projects
4233
+ Browser="Taiga"
4234
+
4235
+ [Theme Spider*]
4236
+ Parent=Research Projects
4237
+ Browser="Theme Spider"
4238
+
4239
+ [UofTDB_experiment* (leehyun@cs.toronto.edu)]
4240
+ Parent=Research Projects
4241
+ Browser="UofTDB Experiment"
4242
+
4243
+ [USyd-NLP-Spider*]
4244
+ Parent=Research Projects
4245
+ Browser="USyd-NLP-Spider"
4246
+
4247
+ [woriobot*]
4248
+ Parent=Research Projects
4249
+ Browser="woriobot"
4250
+
4251
+ [wwwster/* (Beta, mailto:gue@cis.uni-muenchen.de)]
4252
+ Parent=Research Projects
4253
+ Browser="wwwster"
4254
+ Beta=true
4255
+
4256
+ [Zao-Crawler]
4257
+ Parent=Research Projects
4258
+ Browser="Zao-Crawler"
4259
+
4260
+ [Zao/*]
4261
+ Parent=Research Projects
4262
+ Browser="Zao"
4263
+
4264
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Rippers
4265
+
4266
+ [Rippers]
4267
+ Parent=DefaultProperties
4268
+ Browser="Rippers"
4269
+ Frames=true
4270
+ IFrames=true
4271
+ Tables=true
4272
+ isBanned=true
4273
+ Crawler=true
4274
+
4275
+ [*grub*]
4276
+ Parent=Rippers
4277
+ Browser="grub"
4278
+
4279
+ [*ickHTTP*]
4280
+ Parent=Rippers
4281
+ Browser="IP*Works"
4282
+
4283
+ [*java*]
4284
+ Parent=Rippers
4285
+
4286
+ [*libwww-perl*]
4287
+ Parent=Rippers
4288
+ Browser="libwww-perl"
4289
+
4290
+ [*WebGrabber*]
4291
+ Parent=Rippers
4292
+
4293
+ [*WinHttpRequest*]
4294
+ Parent=Rippers
4295
+ Browser="WinHttp"
4296
+
4297
+ [3D-FTP/*]
4298
+ Parent=Rippers
4299
+ Browser="3D-FTP"
4300
+
4301
+ [3wGet/*]
4302
+ Parent=Rippers
4303
+ Browser="3wGet"
4304
+
4305
+ [ActiveRefresh*]
4306
+ Parent=Rippers
4307
+ Browser="ActiveRefresh"
4308
+
4309
+ [Ad Muncher*]
4310
+ Parent=Rippers
4311
+ Browser="Ad Muncher"
4312
+
4313
+ [Artera (Version *)]
4314
+ Parent=Rippers
4315
+ Browser="Artera"
4316
+
4317
+ [AutoHotkey]
4318
+ Parent=Rippers
4319
+ Browser="AutoHotkey"
4320
+
4321
+ [b2w/*]
4322
+ Parent=Rippers
4323
+ Browser="b2w"
4324
+
4325
+ [BasicHTTP/*]
4326
+ Parent=Rippers
4327
+ Browser="BasicHTTP"
4328
+
4329
+ [BlockNote.Net]
4330
+ Parent=Rippers
4331
+ Browser="BlockNote.Net"
4332
+
4333
+ [CAST]
4334
+ Parent=Rippers
4335
+ Browser="CAST"
4336
+
4337
+ [CFNetwork/*]
4338
+ Parent=Rippers
4339
+ Browser="CFNetwork"
4340
+
4341
+ [CFSCHEDULE*]
4342
+ Parent=Rippers
4343
+ Browser="ColdFusion Task Scheduler"
4344
+
4345
+ [CobWeb/*]
4346
+ Parent=Rippers
4347
+ Browser="CobWeb"
4348
+
4349
+ [ColdFusion*]
4350
+ Parent=Rippers
4351
+ Browser="ColdFusion"
4352
+
4353
+ [Crawl_Application]
4354
+ Parent=Rippers
4355
+ Browser="Crawl_Application"
4356
+
4357
+ [CTerm/*]
4358
+ Parent=Rippers
4359
+ Browser="CTerm"
4360
+
4361
+ [curl*]
4362
+ Parent=Rippers
4363
+ Browser="cURL"
4364
+
4365
+ [Custo*]
4366
+ Parent=Rippers
4367
+ Browser="Custo"
4368
+
4369
+ [DataCha0s/*]
4370
+ Parent=Rippers
4371
+ Browser="DataCha0s"
4372
+
4373
+ [DeepIndexer*]
4374
+ Parent=Rippers
4375
+ Browser="DeepIndexer"
4376
+
4377
+ [DISCo Pump *]
4378
+ Parent=Rippers
4379
+ Browser="DISCo Pump"
4380
+
4381
+ [eStyleSearch * (compatible; MSIE 6.0; Windows NT 5.0)]
4382
+ Parent=Rippers
4383
+ Browser="eStyleSearch"
4384
+ Win32=true
4385
+
4386
+ [ezic.com http agent *]
4387
+ Parent=Rippers
4388
+ Browser="Ezic.com"
4389
+
4390
+ [fetch libfetch/*]
4391
+ Parent=Rippers
4392
+
4393
+ [FGet*]
4394
+ Parent=Rippers
4395
+ Browser="FGet"
4396
+
4397
+ [Flaming AttackBot*]
4398
+ Parent=Rippers
4399
+ Browser="Flaming AttackBot"
4400
+
4401
+ [Foobot*]
4402
+ Parent=Rippers
4403
+ Browser="Foobot"
4404
+
4405
+ [GameSpyHTTP/*]
4406
+ Parent=Rippers
4407
+ Browser="GameSpyHTTP"
4408
+
4409
+ [gnome-vfs/*]
4410
+ Parent=Rippers
4411
+ Browser="gnome-vfs"
4412
+
4413
+ [Harvest/*]
4414
+ Parent=Rippers
4415
+ Browser="Harvest"
4416
+
4417
+ [hcat/*]
4418
+ Parent=Rippers
4419
+ Browser="hcat"
4420
+
4421
+ [HLoader]
4422
+ Parent=Rippers
4423
+ Browser="HLoader"
4424
+
4425
+ [Holmes/*]
4426
+ Parent=Rippers
4427
+ Browser="Holmes"
4428
+
4429
+ [HTMLParser/*]
4430
+ Parent=Rippers
4431
+ Browser="HTMLParser"
4432
+
4433
+ [http generic]
4434
+ Parent=Rippers
4435
+ Browser="http generic"
4436
+
4437
+ [http://arachnode.net*]
4438
+ Parent=Rippers
4439
+ Browser="arachnode"
4440
+
4441
+ [httpclient*]
4442
+ Parent=Rippers
4443
+
4444
+ [httperf/*]
4445
+ Parent=Rippers
4446
+ Browser="httperf"
4447
+
4448
+ [HTTPFetch/*]
4449
+ Parent=Rippers
4450
+ Browser="HTTPFetch"
4451
+
4452
+ [HTTPGrab]
4453
+ Parent=Rippers
4454
+ Browser="HTTPGrab"
4455
+
4456
+ [HttpSession]
4457
+ Parent=Rippers
4458
+ Browser="HttpSession"
4459
+
4460
+ [httpunit/*]
4461
+ Parent=Rippers
4462
+ Browser="HttpUnit"
4463
+
4464
+ [ICE_GetFile]
4465
+ Parent=Rippers
4466
+ Browser="ICE_GetFile"
4467
+
4468
+ [iexplore.exe]
4469
+ Parent=Rippers
4470
+
4471
+ [Inet - Eureka App]
4472
+ Parent=Rippers
4473
+ Browser="Inet - Eureka App"
4474
+
4475
+ [INetURL/*]
4476
+ Parent=Rippers
4477
+ Browser="INetURL"
4478
+
4479
+ [InetURL:/*]
4480
+ Parent=Rippers
4481
+ Browser="InetURL"
4482
+
4483
+ [Internet Exploiter/*]
4484
+ Parent=Rippers
4485
+
4486
+ [Internet Explore *]
4487
+ Parent=Rippers
4488
+ Browser="Fake IE"
4489
+
4490
+ [Internet Explorer *]
4491
+ Parent=Rippers
4492
+ Browser="Fake IE"
4493
+
4494
+ [IP*Works!*/*]
4495
+ Parent=Rippers
4496
+ Browser="IP*Works!"
4497
+
4498
+ [IrssiUrlLog/*]
4499
+ Parent=Rippers
4500
+ Browser="IrssiUrlLog"
4501
+
4502
+ [JPluck/*]
4503
+ Parent=Rippers
4504
+ Browser="JPluck"
4505
+
4506
+ [Kapere (http://www.kapere.com)]
4507
+ Parent=Rippers
4508
+ Browser="Kapere"
4509
+
4510
+ [LeechFTP]
4511
+ Parent=Rippers
4512
+ Browser="LeechFTP"
4513
+
4514
+ [LeechGet*]
4515
+ Parent=Rippers
4516
+ Browser="LeechGet"
4517
+
4518
+ [libcurl-agent/*]
4519
+ Parent=Rippers
4520
+ Browser="libcurl"
4521
+
4522
+ [libWeb/clsHTTP*]
4523
+ Parent=Rippers
4524
+ Browser="libWeb/clsHTTP"
4525
+
4526
+ [lwp*]
4527
+ Parent=Rippers
4528
+
4529
+ [MFC_Tear_Sample]
4530
+ Parent=Rippers
4531
+ Browser="MFC_Tear_Sample"
4532
+
4533
+ [Moozilla]
4534
+ Parent=Rippers
4535
+ Browser="Moozilla"
4536
+
4537
+ [MovableType/*]
4538
+ Parent=Rippers
4539
+ Browser="MovableType Web Log"
4540
+
4541
+ [Mozilla/2.0 (compatible; NEWT ActiveX; Win32)]
4542
+ Parent=Rippers
4543
+ Browser="NEWT ActiveX"
4544
+ Platform=Win32
4545
+
4546
+ [Mozilla/3.0 (compatible)]
4547
+ Parent=Rippers
4548
+
4549
+ [Mozilla/3.0 (compatible; Indy Library)]
4550
+ Parent=Rippers
4551
+ Cookies=true
4552
+
4553
+ [Mozilla/3.01 (compatible;)]
4554
+ Parent=Rippers
4555
+
4556
+ [Mozilla/4.0 (compatible; BorderManager*)]
4557
+ Parent=Rippers
4558
+ Browser="Novell BorderManager"
4559
+
4560
+ [Mozilla/4.0 (compatible;)]
4561
+ Parent=Rippers
4562
+
4563
+ [Mozilla/5.0 (compatible; IPCheck Server Monitor*)]
4564
+ Parent=Rippers
4565
+ Browser="IPCheck Server Monitor"
4566
+
4567
+ [OCN-SOC/*]
4568
+ Parent=Rippers
4569
+ Browser="OCN-SOC"
4570
+
4571
+ [Offline Explorer*]
4572
+ Parent=Rippers
4573
+ Browser="Offline Explorer"
4574
+
4575
+ [Open Web Analytics Bot*]
4576
+ Parent=Rippers
4577
+ Browser="Open Web Analytics Bot"
4578
+
4579
+ [OSSProxy*]
4580
+ Parent=Rippers
4581
+ Browser="OSSProxy"
4582
+
4583
+ [Pageload*]
4584
+ Parent=Rippers
4585
+ Browser="PageLoad"
4586
+
4587
+ [PageNest/*]
4588
+ Parent=Rippers
4589
+ Browser="PageNest"
4590
+
4591
+ [pavuk/*]
4592
+ Parent=Rippers
4593
+ Browser="Pavuk"
4594
+
4595
+ [PEAR HTTP_Request*]
4596
+ Parent=Rippers
4597
+ Browser="PEAR-PHP"
4598
+
4599
+ [PHP*]
4600
+ Parent=Rippers
4601
+ Browser="PHP"
4602
+
4603
+ [PigBlock (Windows NT 5.1; U)*]
4604
+ Parent=Rippers
4605
+ Browser="PigBlock"
4606
+ Win32=true
4607
+
4608
+ [Pockey*]
4609
+ Parent=Rippers
4610
+ Browser="Pockey-GetHTML"
4611
+
4612
+ [POE-Component-Client-HTTP/*]
4613
+ Parent=Rippers
4614
+ Browser="POE-Component-Client-HTTP"
4615
+
4616
+ [PycURL/*]
4617
+ Parent=Rippers
4618
+ Browser="PycURL"
4619
+
4620
+ [Python*]
4621
+ Parent=Rippers
4622
+ Browser="Python"
4623
+
4624
+ [RepoMonkey*]
4625
+ Parent=Rippers
4626
+ Browser="RepoMonkey"
4627
+
4628
+ [SBL-BOT*]
4629
+ Parent=Rippers
4630
+ Browser="BlackWidow"
4631
+
4632
+ [ScoutAbout*]
4633
+ Parent=Rippers
4634
+ Browser="ScoutAbout"
4635
+
4636
+ [sherlock/*]
4637
+ Parent=Rippers
4638
+ Browser="Sherlock"
4639
+
4640
+ [SiteParser/*]
4641
+ Parent=Rippers
4642
+ Browser="SiteParser"
4643
+
4644
+ [SiteSnagger*]
4645
+ Parent=Rippers
4646
+ Browser="SiteSnagger"
4647
+
4648
+ [SiteSucker/*]
4649
+ Parent=Rippers
4650
+ Browser="SiteSucker"
4651
+
4652
+ [SiteWinder*]
4653
+ Parent=Rippers
4654
+ Browser="SiteWinder"
4655
+
4656
+ [Snoopy*]
4657
+ Parent=Rippers
4658
+ Browser="Snoopy"
4659
+
4660
+ [SOFTWING_TEAR_AGENT*]
4661
+ Parent=Rippers
4662
+ Browser="AspTear"
4663
+
4664
+ [SuperHTTP/*]
4665
+ Parent=Rippers
4666
+ Browser="SuperHTTP"
4667
+
4668
+ [Tcl http client package*]
4669
+ Parent=Rippers
4670
+ Browser="Tcl http client package"
4671
+
4672
+ [Twisted PageGetter]
4673
+ Parent=Rippers
4674
+ Browser="Twisted PageGetter"
4675
+
4676
+ [URL2File/*]
4677
+ Parent=Rippers
4678
+ Browser="URL2File"
4679
+
4680
+ [UtilMind HTTPGet]
4681
+ Parent=Rippers
4682
+ Browser="UtilMind HTTPGet"
4683
+
4684
+ [VCI WebViewer*]
4685
+ Parent=Rippers
4686
+ Browser="VCI WebViewer"
4687
+
4688
+ [W3CRobot/*]
4689
+ Parent=Rippers
4690
+ Browser="W3CRobot"
4691
+
4692
+ [Web Downloader*]
4693
+ Parent=Rippers
4694
+ Browser="Web Downloader"
4695
+
4696
+ [Web Downloader/*]
4697
+ Parent=Rippers
4698
+ Browser="Web Downloader"
4699
+
4700
+ [Web Magnet*]
4701
+ Parent=Rippers
4702
+ Browser="Web Magnet"
4703
+
4704
+ [WebAuto/*]
4705
+ Parent=Rippers
4706
+
4707
+ [webbandit/*]
4708
+ Parent=Rippers
4709
+ Browser="webbandit"
4710
+
4711
+ [WebCopier*]
4712
+ Parent=Rippers
4713
+ Browser="WebCopier"
4714
+
4715
+ [WebDownloader*]
4716
+ Parent=Rippers
4717
+ Browser="WebDownloader"
4718
+
4719
+ [WebFetch]
4720
+ Parent=Rippers
4721
+ Browser="WebFetch"
4722
+
4723
+ [webfetch/*]
4724
+ Parent=Rippers
4725
+ Browser="WebFetch"
4726
+
4727
+ [WebGatherer*]
4728
+ Parent=Rippers
4729
+ Browser="WebGatherer"
4730
+
4731
+ [WebGet]
4732
+ Parent=Rippers
4733
+ Browser="WebGet"
4734
+
4735
+ [WebReaper*]
4736
+ Parent=Rippers
4737
+ Browser="WebReaper"
4738
+
4739
+ [WebRipper]
4740
+ Parent=Rippers
4741
+ Browser="WebRipper"
4742
+
4743
+ [WebSauger*]
4744
+ Parent=Rippers
4745
+ Browser="WebSauger"
4746
+
4747
+ [Website Downloader*]
4748
+ Parent=Rippers
4749
+ Browser="Website Downloader"
4750
+
4751
+ [Website eXtractor*]
4752
+ Parent=Rippers
4753
+ Browser="Website eXtractor"
4754
+
4755
+ [Website Quester]
4756
+ Parent=Rippers
4757
+ Browser="Website Quester"
4758
+
4759
+ [WebsiteExtractor*]
4760
+ Parent=Rippers
4761
+ Browser="Website eXtractor"
4762
+
4763
+ [WebSnatcher*]
4764
+ Parent=Rippers
4765
+ Browser="WebSnatcher"
4766
+
4767
+ [Webster Pro*]
4768
+ Parent=Rippers
4769
+ Browser="Webster Pro"
4770
+
4771
+ [WebStripper*]
4772
+ Parent=Rippers
4773
+ Browser="WebStripper"
4774
+
4775
+ [WebWhacker*]
4776
+ Parent=Rippers
4777
+ Browser="WebWhacker"
4778
+
4779
+ [WinHttp*]
4780
+ Parent=Rippers
4781
+
4782
+ [WinScripter iNet Tools]
4783
+ Parent=Rippers
4784
+ Browser="WinScripter iNet Tools"
4785
+
4786
+ [WWW-Mechanize/*]
4787
+ Parent=Rippers
4788
+ Browser="WWW-Mechanize"
4789
+
4790
+ [Zend_Http_Client]
4791
+ Parent=Rippers
4792
+ Browser="Zend_Http_Client"
4793
+
4794
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Site Monitors
4795
+
4796
+ [Site Monitors]
4797
+ Parent=DefaultProperties
4798
+ Browser="Site Monitors"
4799
+ Cookies=true
4800
+ isBanned=true
4801
+ Crawler=true
4802
+
4803
+ [*EasyRider*]
4804
+ Parent=Site Monitors
4805
+ Browser="EasyRider"
4806
+
4807
+ [*maxamine.com--robot*]
4808
+ Parent=Site Monitors
4809
+ Browser="maxamine.com--robot"
4810
+ isBanned=true
4811
+
4812
+ [*WebMon ?.*]
4813
+ Parent=Site Monitors
4814
+ Browser="WebMon"
4815
+
4816
+ [Kenjin Spider*]
4817
+ Parent=Site Monitors
4818
+ Browser="Kenjin Spider"
4819
+
4820
+ [Kevin http://*]
4821
+ Parent=Site Monitors
4822
+ Browser="Kevin"
4823
+ isBanned=true
4824
+
4825
+ [Mozilla/4.0 (compatible; ChangeDetection/*]
4826
+ Parent=Site Monitors
4827
+ Browser="ChangeDetection"
4828
+
4829
+ [Myst Monitor Service v*]
4830
+ Parent=Site Monitors
4831
+ Browser="Myst Monitor Service"
4832
+
4833
+ [Net Probe]
4834
+ Parent=Site Monitors
4835
+ Browser="Net Probe"
4836
+
4837
+ [NetMechanic*]
4838
+ Parent=Site Monitors
4839
+ Browser="NetMechanic"
4840
+
4841
+ [NetReality*]
4842
+ Parent=Site Monitors
4843
+ Browser="NetReality"
4844
+
4845
+ [Pingdom GIGRIB*]
4846
+ Parent=Site Monitors
4847
+ Browser="Pingdom"
4848
+
4849
+ [Site Valet Online*]
4850
+ Parent=Site Monitors
4851
+ Browser="Site Valet"
4852
+ isBanned=true
4853
+
4854
+ [SITECHECKER]
4855
+ Parent=Site Monitors
4856
+ Browser="SITECHECKER"
4857
+
4858
+ [sitemonitor@dnsvr.com/*]
4859
+ Parent=Site Monitors
4860
+ Browser="ZoneEdit Failover Monitor"
4861
+ isBanned=false
4862
+
4863
+ [UpTime Checker*]
4864
+ Parent=Site Monitors
4865
+ Browser="UpTime Checker"
4866
+
4867
+ [URL Control*]
4868
+ Parent=Site Monitors
4869
+ Browser="URL Control"
4870
+
4871
+ [URL_Access/*]
4872
+ Parent=Site Monitors
4873
+
4874
+ [URLCHECK]
4875
+ Parent=Site Monitors
4876
+ Browser="URLCHECK"
4877
+
4878
+ [URLy Warning*]
4879
+ Parent=Site Monitors
4880
+ Browser="URLy Warning"
4881
+
4882
+ [Webcheck *]
4883
+ Parent=Site Monitors
4884
+ Browser="Webcheck"
4885
+ Version=1.0
4886
+ MajorVer=1
4887
+ MinorVer=0
4888
+
4889
+ [WebPatrol/*]
4890
+ Parent=Site Monitors
4891
+ Browser="WebPatrol"
4892
+
4893
+ [websitepulse checker/*]
4894
+ Parent=Site Monitors
4895
+ Browser="websitepulse checker"
4896
+
4897
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Social Bookmarkers
4898
+
4899
+ [Social Networking]
4900
+ Parent=DefaultProperties
4901
+ Browser="Social Bookmarkers"
4902
+ Frames=true
4903
+ Tables=true
4904
+ Cookies=true
4905
+ JavaScript=true
4906
+
4907
+ [BookmarkBase(2/;http://bookmarkbase.com)]
4908
+ Parent=Social Networking
4909
+ Browser="BookmarkBase"
4910
+
4911
+ [Cocoal.icio.us/1.0 (v43) (Mac OS X; http://www.scifihifi.com/cocoalicious)]
4912
+ Parent=Social Networking
4913
+ Browser="Cocoalicious"
4914
+
4915
+ [Mozilla/5.0 (*) Gecko/* Firefox/2.0 OneRiot/1.0 (http://www.oneriot.com) ]
4916
+ Parent=Social Networking
4917
+ Browser="OneRiot"
4918
+ isBanned=true
4919
+
4920
+ [Mozilla/5.0 (compatible; FriendFeedBot/0.*; Http://friendfeed.com/about/bot)]
4921
+ Parent=Social Networking
4922
+ Browser="FriendFeedBot"
4923
+
4924
+ [Mozilla/5.0 (compatible; Twitturls; http://twitturls.com)]
4925
+ Parent=Social Networking
4926
+ Browser="Twitturls"
4927
+ isBanned=true
4928
+
4929
+ [SocialSpider-Finder/0.*]
4930
+ Parent=Social Networking
4931
+ Browser="SocialSpider-Finder"
4932
+
4933
+ [Twitturly*]
4934
+ Parent=Social Networking
4935
+ Browser="Twitturly"
4936
+ isBanned=true
4937
+
4938
+ [WinkBot/*]
4939
+ Parent=Social Networking
4940
+ Browser="WinkBot"
4941
+
4942
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Translators
4943
+
4944
+ [Translators]
4945
+ Parent=DefaultProperties
4946
+ Browser="Translators"
4947
+ Frames=true
4948
+ Tables=true
4949
+ Cookies=true
4950
+
4951
+ [Seram Server]
4952
+ Parent=Translators
4953
+ Browser="Seram Server"
4954
+
4955
+ [TeragramWebcrawler/*]
4956
+ Parent=Translators
4957
+ Browser="TeragramWebcrawler"
4958
+ Version=1.0
4959
+ MajorVer=1
4960
+ MinorVer=0
4961
+
4962
+ [WebIndexer/* (Web Indexer; *)]
4963
+ Parent=Translators
4964
+ Browser="WorldLingo"
4965
+
4966
+ [WebTrans]
4967
+ Parent=Translators
4968
+ Browser="WebTrans"
4969
+
4970
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Version Checkers
4971
+
4972
+ [Version Checkers]
4973
+ Parent=DefaultProperties
4974
+ Browser="Version Checkers"
4975
+ Crawler=true
4976
+
4977
+ [Automated Browscap.ini Updater. To report issues contact us at http://www.skycomp.ca]
4978
+ Parent=Version Checkers
4979
+ Browser="Automated Browscap.ini Updater"
4980
+
4981
+ [BMC Link Validator (http://www.briansmodelcars.com/links/)]
4982
+ Parent=Version Checkers
4983
+ Browser="BMC Link Validator"
4984
+ MajorVer=1
4985
+ MinorVer=0
4986
+ Platform=Win2000
4987
+
4988
+ [Browscap Mirror System/1.* (browscap.giantrealm.com)]
4989
+ Parent=Version Checkers
4990
+ Browser="Browscap Mirror"
4991
+
4992
+ [Browscap Mirror v1.30]
4993
+ Parent=Version Checkers
4994
+ Browser="Browscap Mirror"
4995
+
4996
+ [Browscap updater]
4997
+ Parent=Version Checkers
4998
+ Browser="Browscap updater"
4999
+
5000
+ [BrowscapUpdater1.0]
5001
+ Parent=Version Checkers
5002
+
5003
+ [Browser Capabilities Project (http://browsers.garykeith.com; http://browsers.garykeith.com/sitemail/contact-me.asp)]
5004
+ Parent=Version Checkers
5005
+ Browser="Gary Keith's Version Checker"
5006
+
5007
+ [Browser Capabilities Project AutoDownloader; created by Tom Kelleher Consulting, Inc. (tkelleher.com); used with special permission from Gary Joel Keith; uses Microsoft's WinHTTP component]
5008
+ Parent=Version Checkers
5009
+ Browser="TKC AutoDownloader"
5010
+
5011
+ [browsers.garykeith.com browscap.ini bot BETA]
5012
+ Parent=Version Checkers
5013
+
5014
+ [Code Sample Web Client]
5015
+ Parent=Version Checkers
5016
+ Browser="Code Sample Web Client"
5017
+
5018
+ [Desktop Sidebar*]
5019
+ Parent=Version Checkers
5020
+ Browser="Desktop Sidebar"
5021
+ isBanned=true
5022
+
5023
+ [Mono Browser Capabilities Updater*]
5024
+ Parent=Version Checkers
5025
+ Browser="Mono Browser Capabilities Updater"
5026
+ isBanned=true
5027
+
5028
+ [PHP Browser Capabilities Project/0.7 socket]
5029
+ Parent=Version Checkers
5030
+ Browser="PHP Browser Capabilities Project"
5031
+
5032
+ [Rewmi/*]
5033
+ Parent=Version Checkers
5034
+ isBanned=true
5035
+
5036
+ [Subtext Version 1.9* - http://subtextproject.com/ (Microsoft Windows NT 5.2.*)]
5037
+ Parent=Version Checkers
5038
+ Browser="Subtext"
5039
+
5040
+ [TherapeuticResearch]
5041
+ Parent=Version Checkers
5042
+ Browser="TherapeuticResearch"
5043
+
5044
+ [UpdateBrowscap*]
5045
+ Parent=Version Checkers
5046
+ Browser="UpdateBrowscap"
5047
+
5048
+ [www.garykeith.com browscap.ini bot*]
5049
+ Parent=Version Checkers
5050
+ Browser="clarkson.edu "
5051
+
5052
+ [www.substancia.com AutoHTTPAgent (ver *)]
5053
+ Parent=Version Checkers
5054
+ Browser="Subst�ncia"
5055
+
5056
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; W3C
5057
+
5058
+ [W3C]
5059
+ Parent=DefaultProperties
5060
+ Browser="W3C"
5061
+ Crawler=true
5062
+
5063
+ [Jigsaw/* W3C_CSS_Validator*/*]
5064
+ Parent=W3C
5065
+ Browser="W3C CSS Validator"
5066
+
5067
+ [W3C-checklink/*]
5068
+ Parent=W3C
5069
+ Browser="W3C Link Checker"
5070
+
5071
+ [W3C-mobileOK/DDC-*]
5072
+ Parent=W3C
5073
+ Browser="W3C Mobile Validator"
5074
+ isMobileDevice=true
5075
+
5076
+ [W3C-WebCon/*]
5077
+ Parent=W3C
5078
+ Browser="W3C WebCon"
5079
+
5080
+ [W3C_Validator/*]
5081
+ Parent=W3C
5082
+ Browser="W3C Validator"
5083
+
5084
+ [W3CLineMode/*]
5085
+ Parent=W3C
5086
+ Browser="W3C LineMode"
5087
+
5088
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Become
5089
+
5090
+ [Become]
5091
+ Parent=DefaultProperties
5092
+ Browser="Become"
5093
+ Frames=true
5094
+ Tables=true
5095
+ isSyndicationReader=true
5096
+ Crawler=true
5097
+
5098
+ [*BecomeBot/*]
5099
+ Parent=Become
5100
+ Browser="BecomeBot"
5101
+
5102
+ [*BecomeBot@exava.com*]
5103
+ Parent=Become
5104
+ Browser="BecomeBot"
5105
+
5106
+ [*Exabot@exava.com*]
5107
+ Parent=Become
5108
+ Browser="Exabot"
5109
+
5110
+ [MonkeyCrawl/*]
5111
+ Parent=Become
5112
+ Browser="MonkeyCrawl"
5113
+
5114
+ [Mozilla/5.0 (compatible; BecomeJPBot/2.3; *)]
5115
+ Parent=Become
5116
+ Browser="BecomeJPBot"
5117
+
5118
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Blue Coat Systems
5119
+
5120
+ [Blue Coat Systems]
5121
+ Parent=DefaultProperties
5122
+ Browser="Blue Coat Systems"
5123
+ isBanned=true
5124
+ Crawler=true
5125
+
5126
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Browscap Abusers
5127
+
5128
+ [Browscap Abusers]
5129
+ Parent=DefaultProperties
5130
+ Browser="Browscap Abusers"
5131
+ isBanned=true
5132
+
5133
+ [Apple-PubSub/*]
5134
+ Parent=Browscap Abusers
5135
+ Browser="Apple-PubSub"
5136
+
5137
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; FeedHub
5138
+
5139
+ [FeedHub]
5140
+ Parent=DefaultProperties
5141
+ Browser="FeedHub"
5142
+ isSyndicationReader=true
5143
+
5144
+ [FeedHub FeedDiscovery/1.0 (http://www.feedhub.com)]
5145
+ Parent=FeedHub
5146
+ Browser="FeedHub FeedDiscovery"
5147
+ Version=1.0
5148
+ MajorVer=1
5149
+ MinorVer=0
5150
+
5151
+ [FeedHub FeedFetcher/1.0 (http://www.feedhub.com)]
5152
+ Parent=FeedHub
5153
+ Browser="FeedHub FeedFetcher"
5154
+ Version=1.0
5155
+ MajorVer=1
5156
+ MinorVer=0
5157
+
5158
+ [FeedHub MetaDataFetcher/1.0 (http://www.feedhub.com)]
5159
+ Parent=FeedHub
5160
+ Browser="FeedHub MetaDataFetcher"
5161
+ Version=1.0
5162
+ MajorVer=1
5163
+ MinorVer=0
5164
+
5165
+ [Internet Content Rating Association]
5166
+ Parent=DefaultProperties
5167
+ Browser=""
5168
+ Frames=true
5169
+ IFrames=true
5170
+ Tables=true
5171
+ Cookies=true
5172
+ Crawler=true
5173
+
5174
+ [ICRA_label_generator/1.?]
5175
+ Parent=Internet Content Rating Association
5176
+ Browser="ICRA_label_generator"
5177
+
5178
+ [ICRA_Semantic_spider/0.?]
5179
+ Parent=Internet Content Rating Association
5180
+ Browser="ICRA_Semantic_spider"
5181
+
5182
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; NameProtect
5183
+
5184
+ [NameProtect]
5185
+ Parent=DefaultProperties
5186
+ Browser="NameProtect"
5187
+ isBanned=true
5188
+ Crawler=true
5189
+
5190
+ [abot/*]
5191
+ Parent=NameProtect
5192
+ Browser="NameProtect"
5193
+
5194
+ [NP/*]
5195
+ Parent=NameProtect
5196
+ Browser="NameProtect"
5197
+
5198
+ [NPBot*]
5199
+ Parent=NameProtect
5200
+ Browser="NameProtect"
5201
+
5202
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netcraft
5203
+
5204
+ [Netcraft]
5205
+ Parent=DefaultProperties
5206
+ Browser="Netcraft"
5207
+ isBanned=true
5208
+ Crawler=true
5209
+
5210
+ [*Netcraft Web Server Survey*]
5211
+ Parent=Netcraft
5212
+ Browser="Netcraft Webserver Survey"
5213
+ isBanned=true
5214
+
5215
+ [Mozilla/5.0 (compatible; NetcraftSurveyAgent/1.0; *info@netcraft.com)]
5216
+ Parent=Netcraft
5217
+ Browser="NetcraftSurveyAgent"
5218
+
5219
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; NewsGator
5220
+
5221
+ [NewsGator]
5222
+ Parent=DefaultProperties
5223
+ Browser="NewsGator"
5224
+ isSyndicationReader=true
5225
+
5226
+ [MarsEdit*]
5227
+ Parent=NewsGator
5228
+ Browser="MarsEdit"
5229
+
5230
+ [NetNewsWire*/*]
5231
+ Parent=NewsGator
5232
+ Browser="NetNewsWire"
5233
+ Platform=MacOSX
5234
+
5235
+ [NewsFire/*]
5236
+ Parent=NewsGator
5237
+ Browser="NewsFire"
5238
+
5239
+ [NewsGator FetchLinks extension/*]
5240
+ Parent=NewsGator
5241
+ Browser="NewsGator FetchLinks"
5242
+
5243
+ [NewsGator/*]
5244
+ Parent=NewsGator
5245
+ Browser="NewsGator"
5246
+ isBanned=true
5247
+
5248
+ [NewsGatorOnline/*]
5249
+ Parent=NewsGator
5250
+ Browser="NewsGatorOnline"
5251
+
5252
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 0.2
5253
+
5254
+ [Chrome 0.2]
5255
+ Parent=DefaultProperties
5256
+ Browser="Chrome"
5257
+ Version=0.2
5258
+ MinorVer=2
5259
+ Beta=true
5260
+ Win32=true
5261
+ Frames=true
5262
+ IFrames=true
5263
+ Tables=true
5264
+ Cookies=true
5265
+ JavaApplets=true
5266
+ JavaScript=true
5267
+ CssVersion=3
5268
+ supportsCSS=true
5269
+
5270
+ [Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.2.* Safari/*]
5271
+ Parent=Chrome 0.2
5272
+ Platform=WinXP
5273
+
5274
+ [Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.2.* Safari/*]
5275
+ Parent=Chrome 0.2
5276
+ Platform=Win2003
5277
+
5278
+ [Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.2.* Safari/*]
5279
+ Parent=Chrome 0.2
5280
+ Platform=WinVista
5281
+
5282
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 0.3
5283
+
5284
+ [Chrome 0.3]
5285
+ Parent=DefaultProperties
5286
+ Browser="Chrome"
5287
+ Version=0.3
5288
+ MinorVer=3
5289
+ Beta=true
5290
+ Win32=true
5291
+ Frames=true
5292
+ IFrames=true
5293
+ Tables=true
5294
+ Cookies=true
5295
+ JavaApplets=true
5296
+ JavaScript=true
5297
+ CssVersion=3
5298
+ supportsCSS=true
5299
+
5300
+ [Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.3.* Safari/*]
5301
+ Parent=Chrome 0.3
5302
+ Platform=WinXP
5303
+
5304
+ [Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.3.* Safari/*]
5305
+ Parent=Chrome 0.3
5306
+ Platform=Win2003
5307
+
5308
+ [Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.3.* Safari/*]
5309
+ Parent=Chrome 0.3
5310
+ Platform=WinVista
5311
+
5312
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 0.4
5313
+
5314
+ [Chrome 0.4]
5315
+ Parent=DefaultProperties
5316
+ Browser="Chrome"
5317
+ Version=0.4
5318
+ MinorVer=4
5319
+ Win32=true
5320
+ Frames=true
5321
+ IFrames=true
5322
+ Tables=true
5323
+ Cookies=true
5324
+ JavaApplets=true
5325
+ JavaScript=true
5326
+ CssVersion=3
5327
+ supportsCSS=true
5328
+
5329
+ [Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.4.* Safari/*]
5330
+ Parent=Chrome 0.4
5331
+ Platform=WinXP
5332
+
5333
+ [Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.4.* Safari/*]
5334
+ Parent=Chrome 0.4
5335
+ Platform=Win2003
5336
+
5337
+ [Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.4.* Safari/*]
5338
+ Parent=Chrome 0.4
5339
+ Platform=WinVista
5340
+
5341
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 0.5
5342
+
5343
+ [Chrome 0.5]
5344
+ Parent=DefaultProperties
5345
+ Browser="Chrome"
5346
+ Version=0.5
5347
+ MinorVer=5
5348
+ Beta=true
5349
+ Win32=true
5350
+ Frames=true
5351
+ IFrames=true
5352
+ Tables=true
5353
+ Cookies=true
5354
+ JavaApplets=true
5355
+ JavaScript=true
5356
+ CssVersion=3
5357
+ supportsCSS=true
5358
+
5359
+ [Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.5.* Safari/*]
5360
+ Parent=Chrome 0.5
5361
+ Platform=WinXP
5362
+
5363
+ [Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.5.* Safari/*]
5364
+ Parent=Chrome 0.5
5365
+ Platform=Win2003
5366
+
5367
+ [Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.5.* Safari/*]
5368
+ Parent=Chrome 0.5
5369
+ Platform=WinVista
5370
+
5371
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 1.0
5372
+
5373
+ [Chrome 1.0]
5374
+ Parent=DefaultProperties
5375
+ Browser="Chrome"
5376
+ Version=1.0
5377
+ MajorVer=1
5378
+ Win32=true
5379
+ Frames=true
5380
+ IFrames=true
5381
+ Tables=true
5382
+ Cookies=true
5383
+ JavaApplets=true
5384
+ JavaScript=true
5385
+ CssVersion=3
5386
+ supportsCSS=true
5387
+
5388
+ [Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/1.0.* Safari/*]
5389
+ Parent=Chrome 1.0
5390
+ Platform=WinXP
5391
+
5392
+ [Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Chrome/1.0.* Safari/*]
5393
+ Parent=Chrome 1.0
5394
+ Platform=Win2003
5395
+
5396
+ [Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/1.0.* Safari/*]
5397
+ Parent=Chrome 1.0
5398
+ Platform=WinVista
5399
+
5400
+ [Mozilla/5.0 (Windows; U; Windows NT 6.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/1.0.* Safari/*]
5401
+ Parent=Chrome 1.0
5402
+ Platform=Win7
5403
+
5404
+ [Mozilla/5.0 (Windows; U; Windows NT 7.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/1.0.* Safari/*]
5405
+ Parent=Chrome 1.0
5406
+ Platform=Win7
5407
+
5408
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 2.0
5409
+
5410
+ [Chrome 2.0]
5411
+ Parent=DefaultProperties
5412
+ Browser="Chrome"
5413
+ Version=2.0
5414
+ MajorVer=2
5415
+ Win32=true
5416
+ Frames=true
5417
+ IFrames=true
5418
+ Tables=true
5419
+ Cookies=true
5420
+ JavaApplets=true
5421
+ JavaScript=true
5422
+ CssVersion=3
5423
+ supportsCSS=true
5424
+
5425
+ [Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/2.0.* Safari/*]
5426
+ Parent=Chrome 2.0
5427
+ Platform=WinXP
5428
+
5429
+ [Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Chrome/2.0.* Safari/*]
5430
+ Parent=Chrome 2.0
5431
+ Platform=Win2003
5432
+
5433
+ [Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/2.0.* Safari/*]
5434
+ Parent=Chrome 2.0
5435
+ Platform=WinVista
5436
+
5437
+ [Mozilla/5.0 (Windows; U; Windows NT 6.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/2.0.* Safari/*]
5438
+ Parent=Chrome 2.0
5439
+ Platform=Win7
5440
+
5441
+ [Mozilla/5.0 (Windows; U; Windows NT 7.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/2.0.* Safari/*]
5442
+ Parent=Chrome 2.0
5443
+ Platform=Win7
5444
+
5445
+ [Mozilla/5.0 (X11; U; Linux i686*; *) AppleWebKit/* (KHTML, like Gecko) Chrome/2.0.* Safari/*]
5446
+ Parent=Chrome 2.0
5447
+ Platform=Linux
5448
+
5449
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 3.0
5450
+
5451
+ [Chrome 3.0]
5452
+ Parent=DefaultProperties
5453
+ Browser="Chrome"
5454
+ Version=3.0
5455
+ MajorVer=3
5456
+ Win32=true
5457
+ Frames=true
5458
+ IFrames=true
5459
+ Tables=true
5460
+ Cookies=true
5461
+ JavaApplets=true
5462
+ JavaScript=true
5463
+ CssVersion=3
5464
+ supportsCSS=true
5465
+
5466
+ [Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/3.0.* Safari/*]
5467
+ Parent=Chrome 3.0
5468
+ Platform=WinXP
5469
+
5470
+ [Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Chrome/3.0.* Safari/*]
5471
+ Parent=Chrome 3.0
5472
+ Platform=Win2003
5473
+
5474
+ [Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/3.0.* Safari/*]
5475
+ Parent=Chrome 3.0
5476
+ Platform=WinVista
5477
+
5478
+ [Mozilla/5.0 (Windows; U; Windows NT 6.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/3.0.* Safari/*]
5479
+ Parent=Chrome 3.0
5480
+ Platform=Win7
5481
+
5482
+ [Mozilla/5.0 (Windows; U; Windows NT 7.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/3.0.* Safari/*]
5483
+ Parent=Chrome 3.0
5484
+ Platform=Win7
5485
+
5486
+ [Mozilla/5.0 (X11; U; Linux i686*; *) AppleWebKit/* (KHTML, like Gecko) Chrome/3.0.* Safari/*]
5487
+ Parent=Chrome 3.0
5488
+ Platform=Linux
5489
+
5490
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 4.0
5491
+
5492
+ [Chrome 4.0]
5493
+ Parent=DefaultProperties
5494
+ Browser="Chrome"
5495
+ Version=4.0
5496
+ MajorVer=4
5497
+ Beta=true
5498
+ Win32=true
5499
+ Frames=true
5500
+ IFrames=true
5501
+ Tables=true
5502
+ Cookies=true
5503
+ JavaApplets=true
5504
+ JavaScript=true
5505
+ CssVersion=3
5506
+ supportsCSS=true
5507
+
5508
+ [Mozilla/5.0 (Macintosh; U; Intel Mac OS X*; *) AppleWebKit/* (KHTML, like Gecko) Chrome/4.0.* Safari/*]
5509
+ Parent=Chrome 4.0
5510
+ Platform=MacOSX
5511
+
5512
+ [Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/4.0.* Safari/*]
5513
+ Parent=Chrome 4.0
5514
+ Platform=WinXP
5515
+
5516
+ [Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Chrome/4.0.* Safari/*]
5517
+ Parent=Chrome 4.0
5518
+ Platform=Win2003
5519
+
5520
+ [Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/4.0.* Safari/*]
5521
+ Parent=Chrome 4.0
5522
+ Platform=WinVista
5523
+
5524
+ [Mozilla/5.0 (Windows; U; Windows NT 6.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/4.0.* Safari/*]
5525
+ Parent=Chrome 4.0
5526
+ Platform=Win7
5527
+
5528
+ [Mozilla/5.0 (Windows; U; Windows NT 7.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/4.0.* Safari/*]
5529
+ Parent=Chrome 4.0
5530
+ Platform=Win7
5531
+
5532
+ [Mozilla/5.0 (X11; U; Linux i686*; *) AppleWebKit/* (KHTML, like Gecko) Chrome/4.0.* Safari/*]
5533
+ Parent=Chrome 4.0
5534
+ Platform=Linux
5535
+
5536
+ [Mozilla/5.0 (X11; U; Linux x86_64; *) AppleWebKit/* (KHTML, like Gecko) Chrome/4.0.* Safari/*]
5537
+ Parent=Chrome 4.0
5538
+ Win32=false
5539
+ Win64=true
5540
+
5541
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Google Code
5542
+
5543
+ [Google Code]
5544
+ Parent=DefaultProperties
5545
+ Browser="Google Code"
5546
+ Tables=true
5547
+ Cookies=true
5548
+ JavaApplets=true
5549
+
5550
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Iron 0.2
5551
+
5552
+ [Iron 0.2]
5553
+ Parent=DefaultProperties
5554
+ Browser="Iron"
5555
+ Version=0.2
5556
+ MinorVer=2
5557
+ Win32=true
5558
+ Frames=true
5559
+ IFrames=true
5560
+ Tables=true
5561
+ Cookies=true
5562
+ JavaApplets=true
5563
+ JavaScript=true
5564
+ CssVersion=3
5565
+ supportsCSS=true
5566
+
5567
+ [Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.2.* Safari/*]
5568
+ Parent=Iron 0.2
5569
+ Platform=WinXP
5570
+
5571
+ [Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.2.* Safari/*]
5572
+ Parent=Iron 0.2
5573
+ Platform=Win2003
5574
+
5575
+ [Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.2.* Safari/*]
5576
+ Parent=Iron 0.2
5577
+ Platform=WinVista
5578
+
5579
+ [Mozilla/5.0 (Windows; U; Windows NT 6.1; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.2.* Safari/*]
5580
+ Parent=Iron 0.2
5581
+ Platform=Win7
5582
+
5583
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Iron 0.3
5584
+
5585
+ [Iron 0.3]
5586
+ Parent=DefaultProperties
5587
+ Browser="Iron"
5588
+ Version=0.3
5589
+ MinorVer=3
5590
+ Win32=true
5591
+ Frames=true
5592
+ IFrames=true
5593
+ Tables=true
5594
+ Cookies=true
5595
+ JavaApplets=true
5596
+ JavaScript=true
5597
+ CssVersion=3
5598
+ supportsCSS=true
5599
+
5600
+ [Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.3.* Safari/*]
5601
+ Parent=Iron 0.3
5602
+ Platform=WinXP
5603
+
5604
+ [Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.3.* Safari/*]
5605
+ Parent=Iron 0.3
5606
+ Platform=Win2003
5607
+
5608
+ [Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.3.* Safari/*]
5609
+ Parent=Iron 0.3
5610
+ Platform=WinVista
5611
+
5612
+ [Mozilla/5.0 (Windows; U; Windows NT 6.1; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.3.* Safari/*]
5613
+ Parent=Iron 0.3
5614
+ Platform=Win7
5615
+
5616
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Iron 0.4
5617
+
5618
+ [Iron 0.4]
5619
+ Parent=DefaultProperties
5620
+ Browser="Iron"
5621
+ Version=0.4
5622
+ MinorVer=4
5623
+ Win32=true
5624
+ Frames=true
5625
+ IFrames=true
5626
+ Tables=true
5627
+ Cookies=true
5628
+ JavaApplets=true
5629
+ JavaScript=true
5630
+ CssVersion=3
5631
+ supportsCSS=true
5632
+
5633
+ [Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.4.* Safari/*]
5634
+ Parent=Iron 0.4
5635
+ Platform=WinXP
5636
+
5637
+ [Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.4.* Safari/*]
5638
+ Parent=Iron 0.4
5639
+ Platform=Win2003
5640
+
5641
+ [Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.4.* Safari/*]
5642
+ Parent=Iron 0.4
5643
+ Platform=WinVista
5644
+
5645
+ [Mozilla/5.0 (Windows; U; Windows NT 6.1; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.4.* Safari/*]
5646
+ Parent=Iron 0.4
5647
+ Platform=Win7
5648
+
5649
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Iron 1.0
5650
+
5651
+ [Iron 1.0]
5652
+ Parent=DefaultProperties
5653
+ Browser="Iron"
5654
+ Version=1.0
5655
+ MajorVer=1
5656
+ Win32=true
5657
+ Frames=true
5658
+ IFrames=true
5659
+ Tables=true
5660
+ Cookies=true
5661
+ JavaApplets=true
5662
+ JavaScript=true
5663
+ CssVersion=3
5664
+ supportsCSS=true
5665
+
5666
+ [Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Iron/1.0.* Safari/*]
5667
+ Parent=Iron 1.0
5668
+ Platform=WinXP
5669
+
5670
+ [Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Iron/1.0.* Safari/*]
5671
+ Parent=Iron 1.0
5672
+ Platform=Win2003
5673
+
5674
+ [Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Iron/1.0.* Safari/*]
5675
+ Parent=Iron 1.0
5676
+ Platform=WinVista
5677
+
5678
+ [Mozilla/5.0 (Windows; U; Windows NT 6.1; *) AppleWebKit/* (KHTML, like Gecko) Iron/1.0.* Safari/*]
5679
+ Parent=Iron 1.0
5680
+ Platform=Win7
5681
+
5682
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Iron 2.0
5683
+
5684
+ [Iron 2.0]
5685
+ Parent=DefaultProperties
5686
+ Browser="Iron"
5687
+ Version=2.0
5688
+ MajorVer=2
5689
+ Win32=true
5690
+ Frames=true
5691
+ IFrames=true
5692
+ Tables=true
5693
+ Cookies=true
5694
+ JavaApplets=true
5695
+ JavaScript=true
5696
+ CssVersion=3
5697
+ supportsCSS=true
5698
+
5699
+ [Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Iron/2.0.* Safari/*]
5700
+ Parent=Iron 2.0
5701
+ Platform=WinXP
5702
+
5703
+ [Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Iron/2.0.* Safari/*]
5704
+ Parent=Iron 2.0
5705
+ Platform=Win2003
5706
+
5707
+ [Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Iron/2.0.* Safari/*]
5708
+ Parent=Iron 2.0
5709
+ Platform=WinVista
5710
+
5711
+ [Mozilla/5.0 (Windows; U; Windows NT 6.1; *) AppleWebKit/* (KHTML, like Gecko) Iron/2.0.* Safari/*]
5712
+ Parent=Iron 2.0
5713
+ Platform=Win7
5714
+
5715
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Media Players
5716
+
5717
+ [Media Players]
5718
+ Parent=DefaultProperties
5719
+ Browser="Media Players"
5720
+ Cookies=true
5721
+
5722
+ [Microsoft NetShow(TM) Player with RealVideo(R)]
5723
+ Parent=Media Players
5724
+ Browser="Microsoft NetShow"
5725
+
5726
+ [Mozilla/5.0 (Macintosh; U; PPC Mac OS X; *) AppleWebKit/* RealPlayer]
5727
+ Parent=Media Players
5728
+ Browser="RealPlayer"
5729
+ Platform=MacOSX
5730
+
5731
+ [MPlayer 0.9*]
5732
+ Parent=Media Players
5733
+ Browser="MPlayer"
5734
+ Version=0.9
5735
+ MajorVer=0
5736
+ MinorVer=9
5737
+
5738
+ [MPlayer 1.*]
5739
+ Parent=Media Players
5740
+ Browser="MPlayer"
5741
+ Version=1.0
5742
+ MajorVer=1
5743
+ MinorVer=0
5744
+
5745
+ [MPlayer HEAD CVS]
5746
+ Parent=Media Players
5747
+ Browser="MPlayer"
5748
+
5749
+ [RealPlayer*]
5750
+ Parent=Media Players
5751
+ Browser="RealPlayer"
5752
+
5753
+ [RMA/*]
5754
+ Parent=Media Players
5755
+ Browser="RMA"
5756
+
5757
+ [VLC media player*]
5758
+ Parent=Media Players
5759
+ Browser="VLC"
5760
+
5761
+ [vobsub]
5762
+ Parent=Media Players
5763
+ Browser="vobsub"
5764
+ isBanned=true
5765
+
5766
+ [WinampMPEG/*]
5767
+ Parent=Media Players
5768
+ Browser="WinAmp"
5769
+
5770
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Microsoft Zune
5771
+
5772
+ [Microsoft Zune]
5773
+ Parent=DefaultProperties
5774
+ Browser=""
5775
+ Cookies=true
5776
+
5777
+ [Mozilla/4.0 (compatible; MSIE ?.0; Microsoft ZuneHD 4.*)]
5778
+ Parent=Microsoft Zune
5779
+ Version=4.0
5780
+ MajorVer=4
5781
+ MinorVer=0
5782
+
5783
+ [Mozilla/4.0 (compatible; ZuneHD 4.*)]
5784
+ Parent=Microsoft Zune
5785
+ Browser="ZuneHD"
5786
+ Version=4
5787
+ MajorVer=4
5788
+
5789
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Nintendo
5790
+
5791
+ [Nintendo Wii]
5792
+ Parent=DefaultProperties
5793
+ Browser=""
5794
+ isMobileDevice=true
5795
+
5796
+ [Opera/* (Nintendo DSi; Opera/*; *; *)]
5797
+ Parent=Nintendo Wii
5798
+ Browser="DSi"
5799
+
5800
+ [Opera/* (Nintendo Wii; U; *)]
5801
+ Parent=Nintendo Wii
5802
+ Browser="Wii"
5803
+
5804
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Windows Media Player
5805
+
5806
+ [Windows Media Player]
5807
+ Parent=DefaultProperties
5808
+ Browser="Windows Media Player"
5809
+ Cookies=true
5810
+
5811
+ [NSPlayer/10.*]
5812
+ Parent=Windows Media Player
5813
+ Version=10.0
5814
+ MajorVer=10
5815
+ MinorVer=0
5816
+
5817
+ [NSPlayer/11.*]
5818
+ Parent=Windows Media Player
5819
+ Browser="Windows Media Player"
5820
+ Version=11.0
5821
+ MajorVer=11
5822
+ MinorVer=0
5823
+
5824
+ [NSPlayer/4.*]
5825
+ Parent=Windows Media Player
5826
+ Browser="Windows Media Player"
5827
+ Version=4.0
5828
+ MajorVer=4
5829
+ MinorVer=0
5830
+
5831
+ [NSPlayer/7.*]
5832
+ Parent=Windows Media Player
5833
+ Browser="Windows Media Player"
5834
+ Version=7.0
5835
+ MajorVer=7
5836
+ MinorVer=0
5837
+
5838
+ [NSPlayer/8.*]
5839
+ Parent=Windows Media Player
5840
+ Browser="Windows Media Player"
5841
+ Version=8.0
5842
+ MajorVer=8
5843
+ MinorVer=0
5844
+
5845
+ [NSPlayer/9.*]
5846
+ Parent=Windows Media Player
5847
+ Browser="Windows Media Player"
5848
+ Version=9.0
5849
+ MajorVer=9
5850
+ MinorVer=0
5851
+
5852
+ [Windows-Media-Player/10.*]
5853
+ Parent=Windows Media Player
5854
+ Browser="Windows-Media-Player"
5855
+ Version=10.0
5856
+ MajorVer=10
5857
+ MinorVer=0
5858
+ Win32=true
5859
+
5860
+ [Windows-Media-Player/11.*]
5861
+ Parent=Windows Media Player
5862
+ Version=11.0
5863
+ MajorVer=11
5864
+ MinorVer=0
5865
+ Win32=true
5866
+
5867
+ [Windows-Media-Player/7.*]
5868
+ Parent=Windows Media Player
5869
+ Browser="Windows Media Player"
5870
+ Version=7.0
5871
+ MajorVer=7
5872
+ MinorVer=0
5873
+ Win32=true
5874
+
5875
+ [Windows-Media-Player/8.*]
5876
+ Parent=Windows Media Player
5877
+ Browser="Windows Media Player"
5878
+ Version=8.0
5879
+ MajorVer=8
5880
+ MinorVer=0
5881
+ Win32=true
5882
+
5883
+ [Windows-Media-Player/9.*]
5884
+ Parent=Windows Media Player
5885
+ Version=9.0
5886
+ MajorVer=9
5887
+ MinorVer=0
5888
+ Win32=true
5889
+
5890
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; QuickTime 7.0
5891
+
5892
+ [QuickTime 7.0]
5893
+ Parent=DefaultProperties
5894
+ Browser="QuickTime"
5895
+ Version=7.0
5896
+ MajorVer=7
5897
+ Cookies=true
5898
+
5899
+ [QuickTime (qtver=7.0*;cpu=PPC;os=Mac 10.*)]
5900
+ Parent=QuickTime 7.0
5901
+ Platform=MacOSX
5902
+
5903
+ [QuickTime (qtver=7.0*;cpu=PPC;os=Mac 9.*)]
5904
+ Parent=QuickTime 7.0
5905
+ Platform=MacPPC
5906
+
5907
+ [QuickTime (qtver=7.0*;os=Windows 95*)]
5908
+ Parent=QuickTime 7.0
5909
+ Platform=Win95
5910
+ Win32=true
5911
+
5912
+ [QuickTime (qtver=7.0*;os=Windows 98*)]
5913
+ Parent=QuickTime 7.0
5914
+ Platform=Win98
5915
+ Win32=true
5916
+
5917
+ [QuickTime (qtver=7.0*;os=Windows Me*)]
5918
+ Parent=QuickTime 7.0
5919
+ Platform=WinME
5920
+ Win32=true
5921
+
5922
+ [QuickTime (qtver=7.0*;os=Windows NT 4.0*)]
5923
+ Parent=QuickTime 7.0
5924
+ Platform=WinNT
5925
+ Win32=true
5926
+
5927
+ [QuickTime (qtver=7.0*;os=Windows NT 5.0*)]
5928
+ Parent=QuickTime 7.0
5929
+ Platform=Win2000
5930
+ Win32=true
5931
+
5932
+ [QuickTime (qtver=7.0*;os=Windows NT 5.1*)]
5933
+ Parent=QuickTime 7.0
5934
+ Platform=WinXP
5935
+ Win32=true
5936
+
5937
+ [QuickTime (qtver=7.0*;os=Windows NT 5.2*)]
5938
+ Parent=QuickTime 7.0
5939
+ Platform=Win2003
5940
+ Win32=true
5941
+
5942
+ [QuickTime/7.0.* (qtver=7.0.*;*;os=Mac 10.*)*]
5943
+ Parent=QuickTime 7.0
5944
+ Platform=MacOSX
5945
+
5946
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; QuickTime 7.1
5947
+
5948
+ [QuickTime 7.1]
5949
+ Parent=DefaultProperties
5950
+ Browser="QuickTime"
5951
+ Version=7.1
5952
+ MajorVer=7
5953
+ MinorVer=1
5954
+ Cookies=true
5955
+
5956
+ [QuickTime (qtver=7.1*;cpu=PPC;os=Mac 10.*)]
5957
+ Parent=QuickTime 7.1
5958
+ Platform=MacOSX
5959
+
5960
+ [QuickTime (qtver=7.1*;cpu=PPC;os=Mac 9.*)]
5961
+ Parent=QuickTime 7.1
5962
+ Platform=MacPPC
5963
+
5964
+ [QuickTime (qtver=7.1*;os=Windows 98*)]
5965
+ Parent=QuickTime 7.1
5966
+ Platform=Win98
5967
+ Win32=true
5968
+
5969
+ [QuickTime (qtver=7.1*;os=Windows NT 4.0*)]
5970
+ Parent=QuickTime 7.1
5971
+ Platform=WinNT
5972
+ Win32=true
5973
+
5974
+ [QuickTime (qtver=7.1*;os=Windows NT 5.0*)]
5975
+ Parent=QuickTime 7.1
5976
+ Platform=Win2000
5977
+ Win32=true
5978
+
5979
+ [QuickTime (qtver=7.1*;os=Windows NT 5.1*)]
5980
+ Parent=QuickTime 7.1
5981
+ Platform=WinXP
5982
+ Win32=true
5983
+
5984
+ [QuickTime (qtver=7.1*;os=Windows NT 5.2*)]
5985
+ Parent=QuickTime 7.1
5986
+ Platform=Win2003
5987
+ Win32=true
5988
+
5989
+ [QuickTime/7.1.* (qtver=7.1.*;*;os=Mac 10.*)*]
5990
+ Parent=QuickTime 7.1
5991
+ Platform=MacOSX
5992
+
5993
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; QuickTime 7.2
5994
+
5995
+ [QuickTime 7.2]
5996
+ Parent=DefaultProperties
5997
+ Browser="QuickTime"
5998
+ Version=7.2
5999
+ MajorVer=7
6000
+ MinorVer=2
6001
+ Platform=MacOSX
6002
+ Cookies=true
6003
+
6004
+ [QuickTime (qtver=7.2*;cpu=PPC;os=Mac 10.*)]
6005
+ Parent=QuickTime 7.2
6006
+ Platform=MacOSX
6007
+
6008
+ [QuickTime (qtver=7.2*;cpu=PPC;os=Mac 9.*)]
6009
+ Parent=QuickTime 7.2
6010
+ Platform=MacPPC
6011
+
6012
+ [QuickTime (qtver=7.2*;os=Windows 98*)]
6013
+ Parent=QuickTime 7.2
6014
+ Platform=Win98
6015
+ Win32=true
6016
+
6017
+ [QuickTime (qtver=7.2*;os=Windows NT 4.0*)]
6018
+ Parent=QuickTime 7.2
6019
+ Platform=WinNT
6020
+ Win32=true
6021
+
6022
+ [QuickTime (qtver=7.2*;os=Windows NT 5.0*)]
6023
+ Parent=QuickTime 7.2
6024
+ Platform=Win2000
6025
+ Win32=true
6026
+
6027
+ [QuickTime (qtver=7.2*;os=Windows NT 5.1*)]
6028
+ Parent=QuickTime 7.2
6029
+ Platform=WinXP
6030
+ Win32=true
6031
+
6032
+ [QuickTime (qtver=7.2*;os=Windows NT 5.2*)]
6033
+ Parent=QuickTime 7.2
6034
+ Platform=Win2003
6035
+ Win32=true
6036
+
6037
+ [QuickTime/7.2.* (qtver=7.2.*;*;os=Mac 10.*)*]
6038
+ Parent=QuickTime 7.2
6039
+ Platform=MacOSX
6040
+
6041
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; QuickTime 7.3
6042
+
6043
+ [QuickTime 7.3]
6044
+ Parent=DefaultProperties
6045
+ Browser="QuickTime"
6046
+ Version=7.3
6047
+ MajorVer=7
6048
+ MinorVer=3
6049
+ Platform=MacOSX
6050
+ Cookies=true
6051
+
6052
+ [QuickTime (qtver=7.3*;cpu=PPC;os=Mac 10.*)]
6053
+ Parent=QuickTime 7.3
6054
+ Platform=MacOSX
6055
+
6056
+ [QuickTime (qtver=7.3*;cpu=PPC;os=Mac 9.*)]
6057
+ Parent=QuickTime 7.3
6058
+ Platform=MacPPC
6059
+
6060
+ [QuickTime (qtver=7.3*;os=Windows 98*)]
6061
+ Parent=QuickTime 7.3
6062
+ Platform=Win98
6063
+ Win32=true
6064
+
6065
+ [QuickTime (qtver=7.3*;os=Windows NT 4.0*)]
6066
+ Parent=QuickTime 7.3
6067
+ Platform=WinNT
6068
+ Win32=true
6069
+
6070
+ [QuickTime (qtver=7.3*;os=Windows NT 5.0*)]
6071
+ Parent=QuickTime 7.3
6072
+ Platform=Win2000
6073
+ Win32=true
6074
+
6075
+ [QuickTime (qtver=7.3*;os=Windows NT 5.1*)]
6076
+ Parent=QuickTime 7.3
6077
+ Platform=WinXP
6078
+ Win32=true
6079
+
6080
+ [QuickTime (qtver=7.3*;os=Windows NT 5.2*)]
6081
+ Parent=QuickTime 7.3
6082
+ Platform=Win2003
6083
+ Win32=true
6084
+
6085
+ [QuickTime/7.3.* (qtver=7.3.*;*;os=Mac 10.*)*]
6086
+ Parent=QuickTime 7.3
6087
+ Platform=MacOSX
6088
+
6089
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; QuickTime 7.4
6090
+
6091
+ [QuickTime 7.4]
6092
+ Parent=DefaultProperties
6093
+ Browser="QuickTime"
6094
+ Version=7.4
6095
+ MajorVer=7
6096
+ MinorVer=4
6097
+ Platform=MacOSX
6098
+ Cookies=true
6099
+
6100
+ [QuickTime (qtver=7.4*;cpu=PPC;os=Mac 10.*)]
6101
+ Parent=QuickTime 7.4
6102
+ Platform=MacOSX
6103
+
6104
+ [QuickTime (qtver=7.4*;cpu=PPC;os=Mac 9.*)]
6105
+ Parent=QuickTime 7.4
6106
+ Platform=MacPPC
6107
+
6108
+ [QuickTime (qtver=7.4*;os=Windows 98*)]
6109
+ Parent=QuickTime 7.4
6110
+ Platform=Win98
6111
+ Win32=true
6112
+
6113
+ [QuickTime (qtver=7.4*;os=Windows NT 4.0*)]
6114
+ Parent=QuickTime 7.4
6115
+ Platform=WinNT
6116
+ Win32=true
6117
+
6118
+ [QuickTime (qtver=7.4*;os=Windows NT 5.0*)]
6119
+ Parent=QuickTime 7.4
6120
+ Platform=Win2000
6121
+ Win32=true
6122
+
6123
+ [QuickTime (qtver=7.4*;os=Windows NT 5.1*)]
6124
+ Parent=QuickTime 7.4
6125
+ Platform=WinXP
6126
+ Win32=true
6127
+
6128
+ [QuickTime (qtver=7.4*;os=Windows NT 5.2*)]
6129
+ Parent=QuickTime 7.4
6130
+ Platform=Win2003
6131
+ Win32=true
6132
+
6133
+ [QuickTime/7.4.* (qtver=7.4.*;*;os=Mac 10.*)*]
6134
+ Parent=QuickTime 7.4
6135
+ Platform=MacOSX
6136
+
6137
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Google Android
6138
+
6139
+ [Android]
6140
+ Parent=DefaultProperties
6141
+ Browser="Android"
6142
+ Platform=Android
6143
+ Frames=true
6144
+ IFrames=true
6145
+ Tables=true
6146
+ Cookies=true
6147
+ JavaApplets=true
6148
+ JavaScript=true
6149
+ isMobileDevice=true
6150
+
6151
+ [Mozilla/5.0 (Linux; U; Android *; *) AppleWebKit/* (KHTML, like Gecko) Safari/*]
6152
+ Parent=Android
6153
+ Browser="Android"
6154
+ isMobileDevice=true
6155
+
6156
+ [Mozilla/5.0 (Linux; U; Android *; *) AppleWebKit/* (KHTML, like Gecko) Version/3.0.* Mobile Safari/*]
6157
+ Parent=Android
6158
+ Browser="Android"
6159
+ Version=3.0
6160
+ MajorVer=3
6161
+ MinorVer=0
6162
+ isMobileDevice=true
6163
+
6164
+ [Mozilla/5.0 (Linux; U; Android *; *) AppleWebKit/* (KHTML, like Gecko) Version/3.1.* Mobile Safari/*]
6165
+ Parent=Android
6166
+ Version=3.0
6167
+ MajorVer=3
6168
+ MinorVer=0
6169
+
6170
+ [Mozilla/5.0 (Linux; U; Android 2.0*; *; Droid Build/*) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17]
6171
+ Parent=Android
6172
+ Browser="Mobile Safari"
6173
+ Version=2.0
6174
+ MajorVer=2
6175
+ MinorVer=0
6176
+ CssVersion=3
6177
+ supportsCSS=true
6178
+
6179
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; BlackBerry
6180
+
6181
+ [BlackBerry]
6182
+ Parent=DefaultProperties
6183
+ Browser="BlackBerry"
6184
+ Frames=true
6185
+ Tables=true
6186
+ Cookies=true
6187
+ JavaScript=true
6188
+ isMobileDevice=true
6189
+
6190
+ [*BlackBerry*]
6191
+ Parent=BlackBerry
6192
+
6193
+ [*BlackBerrySimulator/*]
6194
+ Parent=BlackBerry
6195
+
6196
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Handspring Blazer
6197
+
6198
+ [Blazer]
6199
+ Parent=DefaultProperties
6200
+ Browser="Handspring Blazer"
6201
+ Platform=Palm
6202
+ Frames=true
6203
+ Tables=true
6204
+ Cookies=true
6205
+ isMobileDevice=true
6206
+
6207
+ [Mozilla/4.0 (compatible; MSIE 6.0; Windows 95; PalmSource; Blazer 3.0) 16;160x160]
6208
+ Parent=Blazer
6209
+ Version=3.0
6210
+ MajorVer=3
6211
+ MinorVer=0
6212
+
6213
+ [Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; PalmSource/*; Blazer/4.0) 16;320x448]
6214
+ Parent=Blazer
6215
+ Version=4.0
6216
+ MajorVer=4
6217
+ MinorVer=0
6218
+
6219
+ [Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; PalmSource/*; Blazer/4.1) 16;320x320]
6220
+ Parent=Blazer
6221
+ Version=4.1
6222
+ MajorVer=4
6223
+ MinorVer=1
6224
+
6225
+ [Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; PalmSource/*; Blazer/4.2) 16;320x320]
6226
+ Parent=Blazer
6227
+ Version=4.2
6228
+ MajorVer=4
6229
+ MinorVer=2
6230
+
6231
+ [Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; PalmSource/*; Blazer/4.4) 16;320x320]
6232
+ Parent=Blazer
6233
+ Version=4.4
6234
+ MajorVer=4
6235
+ MinorVer=4
6236
+
6237
+ [Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; PalmSource/*; Blazer/4.5) 16;320x320]
6238
+ Parent=Blazer
6239
+ Version=4.5
6240
+ MajorVer=4
6241
+ MinorVer=5
6242
+
6243
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DoCoMo
6244
+
6245
+ [DoCoMo]
6246
+ Parent=DefaultProperties
6247
+ Browser="DoCoMo"
6248
+ Frames=true
6249
+ Tables=true
6250
+ Cookies=true
6251
+ JavaScript=true
6252
+ isMobileDevice=true
6253
+
6254
+ [DoCoMo/1.0*]
6255
+ Parent=DoCoMo
6256
+ Version=1.0
6257
+ MajorVer=1
6258
+ MinorVer=0
6259
+ Platform=WAP
6260
+
6261
+ [DoCoMo/2.0*]
6262
+ Parent=DoCoMo
6263
+ Version=2.0
6264
+ MajorVer=2
6265
+ MinorVer=0
6266
+ Platform=WAP
6267
+
6268
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IEMobile
6269
+
6270
+ [IEMobile]
6271
+ Parent=DefaultProperties
6272
+ Browser="IEMobile"
6273
+ Platform=WinCE
6274
+ Win32=true
6275
+ Frames=true
6276
+ IFrames=true
6277
+ Tables=true
6278
+ Cookies=true
6279
+ VBScript=true
6280
+ JavaScript=true
6281
+ ActiveXControls=true
6282
+ isMobileDevice=true
6283
+ CssVersion=2
6284
+ supportsCSS=true
6285
+
6286
+ [Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 6.*)*]
6287
+ Parent=IEMobile
6288
+ Version=6.0
6289
+ MajorVer=6
6290
+ MinorVer=0
6291
+
6292
+ [Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 7.*)*]
6293
+ Parent=IEMobile
6294
+ Version=7.0
6295
+ MajorVer=7
6296
+ MinorVer=0
6297
+
6298
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; iPhone
6299
+
6300
+ [iPhone]
6301
+ Parent=DefaultProperties
6302
+ Browser="iPhone"
6303
+ Platform=iPhone OSX
6304
+ Frames=true
6305
+ IFrames=true
6306
+ Tables=true
6307
+ Cookies=true
6308
+ BackgroundSounds=true
6309
+ JavaApplets=true
6310
+ JavaScript=true
6311
+ isMobileDevice=true
6312
+ CssVersion=3
6313
+ supportsCSS=true
6314
+
6315
+ [Mozilla/5.0 (iPhone Simulator; U; CPU iPhone OS 2_* like Mac OS X; *) AppleWebKit/* (KHTML, like Gecko)*]
6316
+ Parent=iPhone
6317
+ Browser="iPhone Simulator"
6318
+ Version=2.0
6319
+ MajorVer=2
6320
+ MinorVer=0
6321
+
6322
+ [Mozilla/5.0 (iPhone Simulator; U; CPU iPhone OS 3* like Mac OS X; *) AppleWebKit/* (KHTML, like Gecko)*]
6323
+ Parent=iPhone
6324
+ Version=3.0
6325
+ MajorVer=3
6326
+ MinorVer=0
6327
+
6328
+ [Mozilla/5.0 (iPhone Simulator; U; CPU iPhone OS 3_1* like Mac OS X; *) AppleWebKit/* (KHTML, like Gecko)*]
6329
+ Parent=iPhone
6330
+ Version=3.1
6331
+ MajorVer=3
6332
+ MinorVer=1
6333
+
6334
+ [Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_* like Mac OS X; *) AppleWebKit/* (KHTML, like Gecko)*]
6335
+ Parent=iPhone
6336
+ Version=2.0
6337
+ MajorVer=2
6338
+ MinorVer=0
6339
+
6340
+ [Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_* like Mac OS X; *)*]
6341
+ Parent=iPhone
6342
+ Version=2.0
6343
+ MajorVer=2
6344
+ MinorVer=0
6345
+
6346
+ [Mozilla/5.0 (iPhone; U; CPU iPhone OS 3* like Mac OS X; *) AppleWebKit/* (KHTML, like Gecko)*]
6347
+ Parent=iPhone
6348
+ Version=3.0
6349
+ MajorVer=3
6350
+ MinorVer=0
6351
+
6352
+ [Mozilla/5.0 (iPhone; U; CPU iPhone OS 3* like Mac OS X; *)*]
6353
+ Parent=iPhone
6354
+ Version=3.0
6355
+ MajorVer=3
6356
+ MinorVer=0
6357
+
6358
+ [Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1* like Mac OS X; *) AppleWebKit/* (KHTML, like Gecko)*]
6359
+ Parent=iPhone
6360
+ Version=3.1
6361
+ MajorVer=3
6362
+ MinorVer=1
6363
+
6364
+ [Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1* like Mac OS X; *)*]
6365
+ Parent=iPhone
6366
+ Version=3.1
6367
+ MajorVer=3
6368
+ MinorVer=1
6369
+
6370
+ [Mozilla/5.0 (iPod; U; CPU iPhone OS 2_* like Mac OS X; *)*]
6371
+ Parent=iPhone
6372
+ Browser="iPod Touch"
6373
+ Version=2.0
6374
+ MajorVer=2
6375
+ MinorVer=0
6376
+
6377
+ [Mozilla/5.0 (iPod; U; CPU iPhone OS 3* like Mac OS X; *)*]
6378
+ Parent=iPhone
6379
+ Browser="iPod Touch"
6380
+ Version=3.0
6381
+ MajorVer=3
6382
+ MinorVer=0
6383
+
6384
+ [Mozilla/5.0 (iPod; U; CPU iPhone OS 3_1* like Mac OS X; *)*]
6385
+ Parent=iPhone
6386
+ Version=3.1
6387
+ MajorVer=3
6388
+ MinorVer=1
6389
+
6390
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; KDDI
6391
+
6392
+ [KDDI]
6393
+ Parent=DefaultProperties
6394
+ Browser="KDDI"
6395
+ Frames=true
6396
+ Tables=true
6397
+ Cookies=true
6398
+ BackgroundSounds=true
6399
+ VBScript=true
6400
+ JavaScript=true
6401
+ ActiveXControls=true
6402
+ isMobileDevice=true
6403
+ CssVersion=1
6404
+ supportsCSS=true
6405
+
6406
+ [KDDI-* UP.Browser/* (GUI) MMP/*]
6407
+ Parent=KDDI
6408
+
6409
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Miscellaneous Mobile
6410
+
6411
+ [Miscellaneous Mobile]
6412
+ Parent=DefaultProperties
6413
+ Browser=""
6414
+ IFrames=true
6415
+ Tables=true
6416
+ Cookies=true
6417
+ JavaScript=true
6418
+ isMobileDevice=true
6419
+ CssVersion=2
6420
+ supportsCSS=true
6421
+
6422
+ [Mozilla/5.0 (X11; *; CentOS; *) AppleWebKit/* (KHTML, like Gecko) Bolt/0.* Version/3.0 Safari/*]
6423
+ Parent=Miscellaneous Mobile
6424
+ Browser="Bolt"
6425
+
6426
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Motorola Internet Browser
6427
+
6428
+ [Motorola Internet Browser]
6429
+ Parent=DefaultProperties
6430
+ Browser="Motorola Internet Browser"
6431
+ Frames=true
6432
+ Tables=true
6433
+ Cookies=true
6434
+ isMobileDevice=true
6435
+
6436
+ [MOT-*/*]
6437
+ Parent=Motorola Internet Browser
6438
+
6439
+ [MOT-1*/* UP.Browser/*]
6440
+ Parent=Motorola Internet Browser
6441
+
6442
+ [MOT-8700_/* UP.Browser/*]
6443
+ Parent=Motorola Internet Browser
6444
+
6445
+ [MOT-A-0A/* UP.Browser/*]
6446
+ Parent=Motorola Internet Browser
6447
+
6448
+ [MOT-A-2B/* UP.Browser/*]
6449
+ Parent=Motorola Internet Browser
6450
+
6451
+ [MOT-A-88/* UP.Browser/*]
6452
+ Parent=Motorola Internet Browser
6453
+
6454
+ [MOT-C???/* MIB/*]
6455
+ Parent=Motorola Internet Browser
6456
+
6457
+ [MOT-GATW_/* UP.Browser/*]
6458
+ Parent=Motorola Internet Browser
6459
+
6460
+ [MOT-L6/* MIB/*]
6461
+ Parent=Motorola Internet Browser
6462
+
6463
+ [MOT-L7/* MIB/*]
6464
+ Parent=Motorola Internet Browser
6465
+
6466
+ [MOT-M*/* UP.Browser/*]
6467
+ Parent=Motorola Internet Browser
6468
+
6469
+ [MOT-MP*/* Mozilla/* (compatible; MSIE *; Windows CE; *)]
6470
+ Parent=Motorola Internet Browser
6471
+ Win32=true
6472
+
6473
+ [MOT-MP*/* Mozilla/4.0 (compatible; MSIE *; Windows CE; *)]
6474
+ Parent=Motorola Internet Browser
6475
+ Win32=true
6476
+
6477
+ [MOT-SAP4_/* UP.Browser/*]
6478
+ Parent=Motorola Internet Browser
6479
+
6480
+ [MOT-T*/*]
6481
+ Parent=Motorola Internet Browser
6482
+
6483
+ [MOT-T7*/* MIB/*]
6484
+ Parent=Motorola Internet Browser
6485
+
6486
+ [MOT-T721*]
6487
+ Parent=Motorola Internet Browser
6488
+
6489
+ [MOT-TA02/* MIB/*]
6490
+ Parent=Motorola Internet Browser
6491
+
6492
+ [MOT-V*/*]
6493
+ Parent=Motorola Internet Browser
6494
+
6495
+ [MOT-V*/* MIB/*]
6496
+ Parent=Motorola Internet Browser
6497
+
6498
+ [MOT-V*/* UP.Browser/*]
6499
+ Parent=Motorola Internet Browser
6500
+
6501
+ [MOT-V3/* MIB/*]
6502
+ Parent=Motorola Internet Browser
6503
+
6504
+ [MOT-V4*/* MIB/*]
6505
+ Parent=Motorola Internet Browser
6506
+
6507
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; MSN Mobile Proxy
6508
+
6509
+ [MSN Mobile Proxy]
6510
+ Parent=DefaultProperties
6511
+ Browser="MSN Mobile Proxy"
6512
+ Win32=true
6513
+ Frames=true
6514
+ Tables=true
6515
+ Cookies=true
6516
+ JavaScript=true
6517
+ ActiveXControls=true
6518
+ isMobileDevice=true
6519
+
6520
+ [Mozilla/* (compatible; MSIE *; Windows*; MSN Mobile Proxy)]
6521
+ Parent=MSN Mobile Proxy
6522
+
6523
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; NetFront
6524
+
6525
+ [NetFront]
6526
+ Parent=DefaultProperties
6527
+ Browser="NetFront"
6528
+ Frames=true
6529
+ Tables=true
6530
+ Cookies=true
6531
+ JavaScript=true
6532
+ isMobileDevice=true
6533
+
6534
+ [*NetFront/*]
6535
+ Parent=NetFront
6536
+
6537
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Nokia
6538
+
6539
+ [Nokia]
6540
+ Parent=DefaultProperties
6541
+ Browser="Nokia"
6542
+ Tables=true
6543
+ Cookies=true
6544
+ isMobileDevice=true
6545
+
6546
+ [*Nokia*/*]
6547
+ Parent=Nokia
6548
+
6549
+ [Mozilla/* (SymbianOS/*; ?; *) AppleWebKit/* (KHTML, like Gecko) Safari/*]
6550
+ Parent=Nokia
6551
+ Platform=SymbianOS
6552
+
6553
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Openwave Mobile Browser
6554
+
6555
+ [Openwave Mobile Browser]
6556
+ Parent=DefaultProperties
6557
+ Browser="Openwave Mobile Browser"
6558
+ Alpha=true
6559
+ Win32=true
6560
+ Win64=true
6561
+ Frames=true
6562
+ Tables=true
6563
+ Cookies=true
6564
+ isMobileDevice=true
6565
+
6566
+ [*UP.Browser/*]
6567
+ Parent=Openwave Mobile Browser
6568
+
6569
+ [*UP.Link/*]
6570
+ Parent=Openwave Mobile Browser
6571
+
6572
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera Mini
6573
+
6574
+ [Opera Mini]
6575
+ Parent=DefaultProperties
6576
+ Browser="Opera Mini"
6577
+ Frames=true
6578
+ IFrames=true
6579
+ Tables=true
6580
+ Cookies=true
6581
+ JavaScript=true
6582
+ isMobileDevice=true
6583
+
6584
+ [Opera/* (J2ME/MIDP; Opera Mini/1.0*)*]
6585
+ Parent=Opera Mini
6586
+ Version=1.0
6587
+ MajorVer=1
6588
+ MinorVer=0
6589
+
6590
+ [Opera/* (J2ME/MIDP; Opera Mini/1.1*)*]
6591
+ Parent=Opera Mini
6592
+ Version=1.1
6593
+ MajorVer=1
6594
+ MinorVer=1
6595
+
6596
+ [Opera/* (J2ME/MIDP; Opera Mini/1.2*)*]
6597
+ Parent=Opera Mini
6598
+ Version=1.2
6599
+ MajorVer=1
6600
+ MinorVer=2
6601
+
6602
+ [Opera/* (J2ME/MIDP; Opera Mini/2.0*)*]
6603
+ Parent=Opera Mini
6604
+ Version=2.0
6605
+ MajorVer=2
6606
+ MinorVer=0
6607
+
6608
+ [Opera/* (J2ME/MIDP; Opera Mini/3.0*)*]
6609
+ Parent=Opera Mini
6610
+ Version=3.0
6611
+ MajorVer=3
6612
+ MinorVer=0
6613
+
6614
+ [Opera/* (J2ME/MIDP; Opera Mini/3.1*)*]
6615
+ Parent=Opera Mini
6616
+ Version=3.1
6617
+ MajorVer=3
6618
+ MinorVer=1
6619
+
6620
+ [Opera/* (J2ME/MIDP; Opera Mini/4.0*)*]
6621
+ Parent=Opera Mini
6622
+ Version=4.0
6623
+ MajorVer=4
6624
+ MinorVer=0
6625
+
6626
+ [Opera/* (J2ME/MIDP; Opera Mini/4.1*)*]
6627
+ Parent=Opera Mini
6628
+ Version=4.1
6629
+ MajorVer=4
6630
+ MinorVer=1
6631
+
6632
+ [Opera/* (J2ME/MIDP; Opera Mini/4.2*)*]
6633
+ Parent=Opera Mini
6634
+ Version=4.2
6635
+ MajorVer=4
6636
+ MinorVer=2
6637
+
6638
+ [Opera/* (J2ME/MIDP; Opera Mini/5.0*)*]
6639
+ Parent=Opera Mini
6640
+ Version=5.0
6641
+ MajorVer=5
6642
+ MinorVer=0
6643
+
6644
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera Mobile
6645
+
6646
+ [Opera Mobile]
6647
+ Parent=DefaultProperties
6648
+ Browser="Opera Mobi"
6649
+ Frames=true
6650
+ Tables=true
6651
+ Cookies=true
6652
+ isMobileDevice=true
6653
+
6654
+ [Opera/9.* (*SymbOS; Opera Mobi/*; U; *) Presto/2.* Version/10.*]
6655
+ Parent=Opera Mobile
6656
+ Version=10.0
6657
+ MajorVer=10
6658
+ MinorVer=0
6659
+ Platform=SymbianOS
6660
+
6661
+ [Opera/9.* (Microsoft Windows; PPC; Opera Mobi/*; U; *)]
6662
+ Parent=Opera Mobile
6663
+ Version=9.0
6664
+ MajorVer=9
6665
+ MinorVer=0
6666
+ Platform=Win
6667
+
6668
+ [Opera/9.* (Windows Mobile; *; Opera Mobi/*; U; *) Presto/2.*]
6669
+ Parent=Opera Mobile
6670
+ Version=9.0
6671
+ MajorVer=9
6672
+ MinorVer=0
6673
+ Platform=Win
6674
+
6675
+ [Opera/9.5 (Microsoft Windows; PPC; *Opera Mobile/*)]
6676
+ Parent=Opera Mobile
6677
+ Version=9.5
6678
+ MajorVer=9
6679
+ MinorVer=5
6680
+
6681
+ [Opera/9.5 (Microsoft Windows; PPC; Opera Mobi/*)]
6682
+ Parent=Opera Mobile
6683
+ Version=9.5
6684
+ MajorVer=9
6685
+ MinorVer=5
6686
+
6687
+ [Opera/9.51 Beta (Microsoft Windows; PPC; Opera Mobi/*)*]
6688
+ Parent=Opera Mobile
6689
+ Version=9.51
6690
+ MajorVer=9
6691
+ MinorVer=51
6692
+ Beta=true
6693
+
6694
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Palm
6695
+
6696
+ [Palm]
6697
+ Parent=DefaultProperties
6698
+ Browser=""
6699
+ Platform=webOS
6700
+ Win32=true
6701
+ Frames=true
6702
+ Tables=true
6703
+ Cookies=true
6704
+ JavaScript=true
6705
+ ActiveXControls=true
6706
+ isMobileDevice=true
6707
+
6708
+ [Mozilla/5.0 (webOS/1.0*; U; *) AppleWebKit/525.* (KHTML, like Gecko) Version/1.0 Safari/525.* Pre/1.0]
6709
+ Parent=Palm
6710
+ Browser="Palm Pre"
6711
+ Version=1.0
6712
+ MajorVer=1
6713
+ MinorVer=0
6714
+ CssVersion=2
6715
+ supportsCSS=true
6716
+
6717
+ [Mozilla/5.0 (webOS/1.1*; U; *) AppleWebKit/525.* (KHTML, like Gecko) Version/1.0 Safari/525.* Pre/1.0]
6718
+ Parent=Palm
6719
+ Browser="Palm Pre"
6720
+ Version=1.1
6721
+ MajorVer=1
6722
+ MinorVer=1
6723
+ CssVersion=2
6724
+ supportsCSS=true
6725
+
6726
+ [Mozilla/5.0 (webOS/1.2*; U; *) AppleWebKit/525.* (KHTML, like Gecko) Version/1.0 Safari/525.* Pre/1.0]
6727
+ Parent=Palm
6728
+ Browser="Palm Pre"
6729
+ Version=1.2
6730
+ MajorVer=1
6731
+ MinorVer=2
6732
+
6733
+ [Mozilla/5.0 (webOS/1.3*; U; *) AppleWebKit/525.* (KHTML, like Gecko) Version/1.0 Safari/525.* Pre/1.0]
6734
+ Parent=Palm
6735
+ Version=1.3
6736
+ MajorVer=1
6737
+ MinorVer=3
6738
+
6739
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Playstation
6740
+
6741
+ [Playstation]
6742
+ Parent=DefaultProperties
6743
+ Browser="Playstation"
6744
+ Platform=WAP
6745
+ Frames=true
6746
+ Tables=true
6747
+ Cookies=true
6748
+ isMobileDevice=true
6749
+
6750
+ [Mozilla/* (PLAYSTATION *; *)]
6751
+ Parent=Playstation
6752
+ Browser="PlayStation 3"
6753
+ Frames=false
6754
+
6755
+ [Mozilla/* (PSP (PlayStation Portable); *)]
6756
+ Parent=Playstation
6757
+
6758
+ [Sony PS2 (Linux)]
6759
+ Parent=Playstation
6760
+ Browser="Sony PS2"
6761
+ Platform=Linux
6762
+
6763
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Pocket PC
6764
+
6765
+ [Pocket PC]
6766
+ Parent=DefaultProperties
6767
+ Browser="Pocket PC"
6768
+ Platform=WinCE
6769
+ Win32=true
6770
+ Frames=true
6771
+ Tables=true
6772
+ Cookies=true
6773
+ JavaScript=true
6774
+ ActiveXControls=true
6775
+ isMobileDevice=true
6776
+ CssVersion=1
6777
+ supportsCSS=true
6778
+
6779
+ [*(compatible; MSIE *.*; Windows CE; PPC; *)]
6780
+ Parent=Pocket PC
6781
+
6782
+ [HTC-*/* Mozilla/* (compatible; MSIE *.*; Windows CE*)*]
6783
+ Parent=Pocket PC
6784
+ Win32=true
6785
+
6786
+ [Mozilla/* (compatible; MSPIE *.*; *Windows CE*)*]
6787
+ Parent=Pocket PC
6788
+ Win32=true
6789
+
6790
+ [T-Mobile* Mozilla/* (compatible; MSIE *.*; Windows CE; *)]
6791
+ Parent=Pocket PC
6792
+
6793
+ [Vodafone* Mozilla/* (compatible; MSIE *.*; Windows CE; *)*]
6794
+ Parent=Pocket PC
6795
+
6796
+ [Windows CE (Pocket PC) - Version *.*]
6797
+ Parent=Pocket PC
6798
+ Win32=true
6799
+
6800
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; SEMC Browser
6801
+
6802
+ [SEMC Browser]
6803
+ Parent=DefaultProperties
6804
+ Browser="SEMC Browser"
6805
+ Platform=JAVA
6806
+ Tables=true
6807
+ isMobileDevice=true
6808
+ CssVersion=1
6809
+ supportsCSS=true
6810
+
6811
+ [*SEMC-Browser/*]
6812
+ Parent=SEMC Browser
6813
+
6814
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; SonyEricsson
6815
+
6816
+ [SonyEricsson]
6817
+ Parent=DefaultProperties
6818
+ Browser="SonyEricsson"
6819
+ Frames=true
6820
+ Tables=true
6821
+ Cookies=true
6822
+ JavaScript=true
6823
+ isMobileDevice=true
6824
+ CssVersion=1
6825
+ supportsCSS=true
6826
+
6827
+ [*Ericsson*]
6828
+ Parent=SonyEricsson
6829
+
6830
+ [*SonyEricsson*]
6831
+ Parent=SonyEricsson
6832
+
6833
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netbox
6834
+
6835
+ [Netbox]
6836
+ Parent=DefaultProperties
6837
+ Browser="Netbox"
6838
+ Frames=true
6839
+ Tables=true
6840
+ Cookies=true
6841
+ JavaScript=true
6842
+ CssVersion=1
6843
+ supportsCSS=true
6844
+
6845
+ [Mozilla/3.01 (compatible; Netbox/*; Linux*)]
6846
+ Parent=Netbox
6847
+ Browser="Netbox"
6848
+ Platform=Linux
6849
+
6850
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; PowerTV
6851
+
6852
+ [PowerTV]
6853
+ Parent=DefaultProperties
6854
+ Browser="PowerTV"
6855
+ Platform=PowerTV
6856
+ Frames=true
6857
+ Tables=true
6858
+ Cookies=true
6859
+ JavaScript=true
6860
+
6861
+ [Mozilla/4.0 PowerTV/1.5 (Compatible; Spyglass DM 3.2.1, EXPLORER)]
6862
+ Parent=PowerTV
6863
+ Version=1.5
6864
+ MajorVer=1
6865
+ MinorVer=5
6866
+
6867
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; WebTV/MSNTV
6868
+
6869
+ [WebTV]
6870
+ Parent=DefaultProperties
6871
+ Browser="WebTV/MSNTV"
6872
+ Platform=WebTV
6873
+ Frames=true
6874
+ Tables=true
6875
+ Cookies=true
6876
+ JavaScript=true
6877
+
6878
+ [Mozilla/3.0 WebTV/1.*(compatible; MSIE 2.0)]
6879
+ Parent=WebTV
6880
+ Version=1.0
6881
+ MajorVer=1
6882
+ MinorVer=0
6883
+
6884
+ [Mozilla/4.0 WebTV/2.0*(compatible; MSIE 3.0)]
6885
+ Parent=WebTV
6886
+ Version=2.0
6887
+ MajorVer=2
6888
+ MinorVer=0
6889
+
6890
+ [Mozilla/4.0 WebTV/2.1*(compatible; MSIE 3.0)]
6891
+ Parent=WebTV
6892
+ Version=2.1
6893
+ MajorVer=2
6894
+ MinorVer=1
6895
+
6896
+ [Mozilla/4.0 WebTV/2.2*(compatible; MSIE 3.0)]
6897
+ Parent=WebTV
6898
+ Version=2.2
6899
+ MajorVer=2
6900
+ MinorVer=2
6901
+
6902
+ [Mozilla/4.0 WebTV/2.3*(compatible; MSIE 3.0)]
6903
+ Parent=WebTV
6904
+ Version=2.3
6905
+ MajorVer=2
6906
+ MinorVer=3
6907
+
6908
+ [Mozilla/4.0 WebTV/2.4*(compatible; MSIE 3.0)]
6909
+ Parent=WebTV
6910
+ Version=2.4
6911
+ MajorVer=2
6912
+ MinorVer=4
6913
+
6914
+ [Mozilla/4.0 WebTV/2.5*(compatible; MSIE 4.0)]
6915
+ Parent=WebTV
6916
+ Version=2.5
6917
+ MajorVer=2
6918
+ MinorVer=5
6919
+ CssVersion=1
6920
+ supportsCSS=true
6921
+
6922
+ [Mozilla/4.0 WebTV/2.6*(compatible; MSIE 4.0)]
6923
+ Parent=WebTV
6924
+ Version=2.6
6925
+ MajorVer=2
6926
+ MinorVer=6
6927
+ CssVersion=1
6928
+ supportsCSS=true
6929
+
6930
+ [Mozilla/4.0 WebTV/2.7*(compatible; MSIE 4.0)]
6931
+ Parent=WebTV
6932
+ Version=2.7
6933
+ MajorVer=2
6934
+ MinorVer=7
6935
+ CssVersion=1
6936
+ supportsCSS=true
6937
+
6938
+ [Mozilla/4.0 WebTV/2.8*(compatible; MSIE 4.0)]
6939
+ Parent=WebTV
6940
+ Version=2.8
6941
+ MajorVer=2
6942
+ MinorVer=8
6943
+ JavaApplets=true
6944
+ CssVersion=1
6945
+ supportsCSS=true
6946
+
6947
+ [Mozilla/4.0 WebTV/2.9*(compatible; MSIE 4.0)]
6948
+ Parent=WebTV
6949
+ Version=2.9
6950
+ MajorVer=2
6951
+ MinorVer=9
6952
+ JavaApplets=true
6953
+ CssVersion=1
6954
+ supportsCSS=true
6955
+
6956
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Amaya
6957
+
6958
+ [Amaya]
6959
+ Parent=DefaultProperties
6960
+ Browser="Amaya"
6961
+ Tables=true
6962
+ Cookies=true
6963
+
6964
+ [amaya/10.*]
6965
+ Parent=Amaya
6966
+ Version=10.0
6967
+ MajorVer=10
6968
+ MinorVer=0
6969
+
6970
+ [amaya/11.*]
6971
+ Parent=Amaya
6972
+ Version=11.0
6973
+ MajorVer=11
6974
+ MinorVer=0
6975
+
6976
+ [amaya/7.*]
6977
+ Parent=Amaya
6978
+ Version=7.0
6979
+ MajorVer=7
6980
+ MinorVer=0
6981
+
6982
+ [amaya/8.*]
6983
+ Parent=Amaya
6984
+ Version=8.0
6985
+ MajorVer=8
6986
+ MinorVer=0
6987
+ CssVersion=2
6988
+ supportsCSS=true
6989
+
6990
+ [amaya/9.*]
6991
+ Parent=Amaya
6992
+ Version=9.0
6993
+ MajorVer=9
6994
+ MinorVer=0
6995
+
6996
+ [Emacs-w3m/*]
6997
+ Parent=Emacs/W3
6998
+
6999
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Links
7000
+
7001
+ [Links]
7002
+ Parent=DefaultProperties
7003
+ Browser="Links"
7004
+ Frames=true
7005
+ Tables=true
7006
+
7007
+ [Links (0.9*; CYGWIN_NT-5.1*)]
7008
+ Parent=Links
7009
+ Browser="Links"
7010
+ Version=0.9
7011
+ MajorVer=0
7012
+ MinorVer=9
7013
+ Platform=WinXP
7014
+
7015
+ [Links (0.9*; Darwin*)]
7016
+ Parent=Links
7017
+ Version=0.9
7018
+ MajorVer=0
7019
+ MinorVer=9
7020
+ Platform=MacPPC
7021
+
7022
+ [Links (0.9*; FreeBSD*)]
7023
+ Parent=Links
7024
+ Browser="Links"
7025
+ Version=0.9
7026
+ MajorVer=0
7027
+ MinorVer=9
7028
+ Platform=FreeBSD
7029
+
7030
+ [Links (0.9*; Linux*)]
7031
+ Parent=Links
7032
+ Browser="Links"
7033
+ Version=0.9
7034
+ MajorVer=0
7035
+ MinorVer=9
7036
+ Platform=Linux
7037
+
7038
+ [Links (0.9*; OS/2*)]
7039
+ Parent=Links
7040
+ Browser="Links"
7041
+ Version=0.9
7042
+ MajorVer=0
7043
+ MinorVer=9
7044
+ Platform=OS/2
7045
+
7046
+ [Links (0.9*; Unix*)]
7047
+ Parent=Links
7048
+ Browser="Links"
7049
+ Version=0.9
7050
+ MajorVer=0
7051
+ MinorVer=9
7052
+ Platform=Unix
7053
+
7054
+ [Links (0.9*; Win32*)]
7055
+ Parent=Links
7056
+ Browser="Links"
7057
+ Version=0.9
7058
+ MajorVer=0
7059
+ MinorVer=9
7060
+ Platform=Win32
7061
+ Win32=true
7062
+
7063
+ [Links (1.0*; CYGWIN_NT-5.1*)]
7064
+ Parent=Links
7065
+ Browser="Links"
7066
+ Version=1.0
7067
+ MajorVer=1
7068
+ MinorVer=0
7069
+ Platform=WinXP
7070
+
7071
+ [Links (1.0*; FreeBSD*)]
7072
+ Parent=Links
7073
+ Browser="Links"
7074
+ Version=1.0
7075
+ MajorVer=1
7076
+ MinorVer=0
7077
+ Platform=FreeBSD
7078
+
7079
+ [Links (1.0*; Linux*)]
7080
+ Parent=Links
7081
+ Browser="Links"
7082
+ Version=1.0
7083
+ MajorVer=1
7084
+ MinorVer=0
7085
+ Platform=Linux
7086
+
7087
+ [Links (1.0*; OS/2*)]
7088
+ Parent=Links
7089
+ Browser="Links"
7090
+ Version=1.0
7091
+ MajorVer=1
7092
+ MinorVer=0
7093
+ Platform=OS/2
7094
+
7095
+ [Links (1.0*; Unix*)]
7096
+ Parent=Links
7097
+ Browser="Links"
7098
+ Version=1.0
7099
+ MajorVer=1
7100
+ MinorVer=0
7101
+ Platform=Unix
7102
+
7103
+ [Links (1.0*; Win32*)]
7104
+ Parent=Links
7105
+ Browser="Links"
7106
+ Version=1.0
7107
+ MajorVer=1
7108
+ MinorVer=0
7109
+ Platform=Win32
7110
+ Win32=true
7111
+
7112
+ [Links (2.0*; Linux*)]
7113
+ Parent=Links
7114
+ Browser="Links"
7115
+ Version=2.0
7116
+ MajorVer=2
7117
+ MinorVer=0
7118
+ Platform=Linux
7119
+
7120
+ [Links (2.1*; FreeBSD*)]
7121
+ Parent=Links
7122
+ Browser="Links"
7123
+ Version=2.1
7124
+ MajorVer=2
7125
+ MinorVer=1
7126
+ Platform=FreeBSD
7127
+
7128
+ [Links (2.1*; Linux *)]
7129
+ Parent=Links
7130
+ Browser="Links"
7131
+ Version=2.1
7132
+ MajorVer=2
7133
+ MinorVer=1
7134
+ Platform=Linux
7135
+
7136
+ [Links (2.1*; OpenBSD*)]
7137
+ Parent=Links
7138
+ Browser="Links"
7139
+ Version=2.1
7140
+ MajorVer=2
7141
+ MinorVer=1
7142
+ Platform=OpenBSD
7143
+
7144
+ [Links (2.2*; FreeBSD*)]
7145
+ Parent=Links
7146
+ Version=2.2
7147
+ MajorVer=2
7148
+ MinorVer=2
7149
+ Platform=FreeBSD
7150
+
7151
+ [Links (2.2*; Linux *)]
7152
+ Parent=Links
7153
+ Version=2.2
7154
+ MajorVer=2
7155
+ MinorVer=2
7156
+ Platform=Linux
7157
+
7158
+ [Links (2.2*; OpenBSD*)]
7159
+ Parent=Links
7160
+ Version=2.2
7161
+ MajorVer=2
7162
+ MinorVer=2
7163
+ Platform=OpenBSD
7164
+
7165
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Lynx
7166
+
7167
+ [Lynx]
7168
+ Parent=DefaultProperties
7169
+ Browser="Lynx"
7170
+ Frames=true
7171
+ Tables=true
7172
+
7173
+ [Lynx *]
7174
+ Parent=Lynx
7175
+ Browser="Lynx"
7176
+
7177
+ [Lynx/2.3*]
7178
+ Parent=Lynx
7179
+ Browser="Lynx"
7180
+ Version=2.3
7181
+ MajorVer=2
7182
+ MinorVer=3
7183
+
7184
+ [Lynx/2.4*]
7185
+ Parent=Lynx
7186
+ Browser="Lynx"
7187
+ Version=2.4
7188
+ MajorVer=2
7189
+ MinorVer=4
7190
+
7191
+ [Lynx/2.5*]
7192
+ Parent=Lynx
7193
+ Browser="Lynx"
7194
+ Version=2.5
7195
+ MajorVer=2
7196
+ MinorVer=5
7197
+
7198
+ [Lynx/2.6*]
7199
+ Parent=Lynx
7200
+ Browser="Lynx"
7201
+ Version=2.6
7202
+ MajorVer=2
7203
+ MinorVer=6
7204
+
7205
+ [Lynx/2.7*]
7206
+ Parent=Lynx
7207
+ Browser="Lynx"
7208
+ Version=2.7
7209
+ MajorVer=2
7210
+ MinorVer=7
7211
+
7212
+ [Lynx/2.8*]
7213
+ Parent=Lynx
7214
+ Browser="Lynx"
7215
+ Version=2.8
7216
+ MajorVer=2
7217
+ MinorVer=8
7218
+
7219
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; NCSA Mosaic
7220
+
7221
+ [Mosaic]
7222
+ Parent=DefaultProperties
7223
+ Browser="Mosaic"
7224
+
7225
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; w3m
7226
+
7227
+ [w3m]
7228
+ Parent=DefaultProperties
7229
+ Browser="w3m"
7230
+ Frames=true
7231
+ Tables=true
7232
+
7233
+ [w3m/0.1*]
7234
+ Parent=w3m
7235
+ Browser="w3m"
7236
+ Version=0.1
7237
+ MajorVer=0
7238
+ MinorVer=1
7239
+
7240
+ [w3m/0.2*]
7241
+ Parent=w3m
7242
+ Browser="w3m"
7243
+ Version=0.2
7244
+ MajorVer=0
7245
+ MinorVer=2
7246
+
7247
+ [w3m/0.3*]
7248
+ Parent=w3m
7249
+ Browser="w3m"
7250
+ Version=0.3
7251
+ MajorVer=0
7252
+ MinorVer=3
7253
+
7254
+ [w3m/0.4*]
7255
+ Parent=w3m
7256
+ Browser="w3m"
7257
+ Version=0.4
7258
+ MajorVer=0
7259
+ MinorVer=4
7260
+ Cookies=true
7261
+
7262
+ [w3m/0.5*]
7263
+ Parent=w3m
7264
+ Browser="w3m"
7265
+ Version=0.5
7266
+ MajorVer=0
7267
+ MinorVer=5
7268
+ Cookies=true
7269
+
7270
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ELinks 0.10
7271
+
7272
+ [ELinks 0.10]
7273
+ Parent=DefaultProperties
7274
+ Browser="ELinks"
7275
+ Version=0.10
7276
+ MinorVer=10
7277
+ Frames=true
7278
+ Tables=true
7279
+
7280
+ [ELinks (0.10*; *AIX*)]
7281
+ Parent=ELinks 0.10
7282
+ Platform=AIX
7283
+
7284
+ [ELinks (0.10*; *BeOS*)]
7285
+ Parent=ELinks 0.10
7286
+ Platform=BeOS
7287
+
7288
+ [ELinks (0.10*; *CygWin*)]
7289
+ Parent=ELinks 0.10
7290
+ Platform=CygWin
7291
+
7292
+ [ELinks (0.10*; *Darwin*)]
7293
+ Parent=ELinks 0.10
7294
+ Platform=Darwin
7295
+
7296
+ [ELinks (0.10*; *Digital Unix*)]
7297
+ Parent=ELinks 0.10
7298
+ Platform=Digital Unix
7299
+
7300
+ [ELinks (0.10*; *FreeBSD*)]
7301
+ Parent=ELinks 0.10
7302
+ Platform=FreeBSD
7303
+
7304
+ [ELinks (0.10*; *HPUX*)]
7305
+ Parent=ELinks 0.10
7306
+ Platform=HP-UX
7307
+
7308
+ [ELinks (0.10*; *IRIX*)]
7309
+ Parent=ELinks 0.10
7310
+ Platform=IRIX
7311
+
7312
+ [ELinks (0.10*; *Linux*)]
7313
+ Parent=ELinks 0.10
7314
+ Platform=Linux
7315
+
7316
+ [ELinks (0.10*; *NetBSD*)]
7317
+ Parent=ELinks 0.10
7318
+ Platform=NetBSD
7319
+
7320
+ [ELinks (0.10*; *OpenBSD*)]
7321
+ Parent=ELinks 0.10
7322
+ Platform=OpenBSD
7323
+
7324
+ [ELinks (0.10*; *OS/2*)]
7325
+ Parent=ELinks 0.10
7326
+ Platform=OS/2
7327
+
7328
+ [ELinks (0.10*; *RISC*)]
7329
+ Parent=ELinks 0.10
7330
+ Platform=RISC OS
7331
+
7332
+ [ELinks (0.10*; *Solaris*)]
7333
+ Parent=ELinks 0.10
7334
+ Platform=Solaris
7335
+
7336
+ [ELinks (0.10*; *Unix*)]
7337
+ Parent=ELinks 0.10
7338
+ Platform=Unix
7339
+
7340
+ [ELinks/0.10* (*AIX*)]
7341
+ Parent=ELinks 0.10
7342
+ Platform=AIX
7343
+
7344
+ [ELinks/0.10* (*BeOS*)]
7345
+ Parent=ELinks 0.10
7346
+ Platform=BeOS
7347
+
7348
+ [ELinks/0.10* (*CygWin*)]
7349
+ Parent=ELinks 0.10
7350
+ Platform=CygWin
7351
+
7352
+ [ELinks/0.10* (*Darwin*)]
7353
+ Parent=ELinks 0.10
7354
+ Platform=Darwin
7355
+
7356
+ [ELinks/0.10* (*Digital Unix*)]
7357
+ Parent=ELinks 0.10
7358
+ Platform=Digital Unix
7359
+
7360
+ [ELinks/0.10* (*FreeBSD*)]
7361
+ Parent=ELinks 0.10
7362
+ Platform=FreeBSD
7363
+
7364
+ [ELinks/0.10* (*HPUX*)]
7365
+ Parent=ELinks 0.10
7366
+ Platform=HP-UX
7367
+
7368
+ [ELinks/0.10* (*IRIX*)]
7369
+ Parent=ELinks 0.10
7370
+ Platform=IRIX
7371
+
7372
+ [ELinks/0.10* (*Linux*)]
7373
+ Parent=ELinks 0.10
7374
+ Platform=Linux
7375
+
7376
+ [ELinks/0.10* (*NetBSD*)]
7377
+ Parent=ELinks 0.10
7378
+ Platform=NetBSD
7379
+
7380
+ [ELinks/0.10* (*OpenBSD*)]
7381
+ Parent=ELinks 0.10
7382
+ Platform=OpenBSD
7383
+
7384
+ [ELinks/0.10* (*OS/2*)]
7385
+ Parent=ELinks 0.10
7386
+ Platform=OS/2
7387
+
7388
+ [ELinks/0.10* (*RISC*)]
7389
+ Parent=ELinks 0.10
7390
+ Platform=RISC OS
7391
+
7392
+ [ELinks/0.10* (*Solaris*)]
7393
+ Parent=ELinks 0.10
7394
+ Platform=Solaris
7395
+
7396
+ [ELinks/0.10* (*Unix*)]
7397
+ Parent=ELinks 0.10
7398
+ Platform=Unix
7399
+
7400
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ELinks 0.11
7401
+
7402
+ [ELinks 0.11]
7403
+ Parent=DefaultProperties
7404
+ Browser="ELinks"
7405
+ Version=0.11
7406
+ MinorVer=11
7407
+ Frames=true
7408
+ Tables=true
7409
+
7410
+ [ELinks (0.11*; *AIX*)]
7411
+ Parent=ELinks 0.11
7412
+ Platform=AIX
7413
+
7414
+ [ELinks (0.11*; *BeOS*)]
7415
+ Parent=ELinks 0.11
7416
+ Platform=BeOS
7417
+
7418
+ [ELinks (0.11*; *CygWin*)]
7419
+ Parent=ELinks 0.11
7420
+ Platform=CygWin
7421
+
7422
+ [ELinks (0.11*; *Darwin*)]
7423
+ Parent=ELinks 0.11
7424
+ Platform=Darwin
7425
+
7426
+ [ELinks (0.11*; *Digital Unix*)]
7427
+ Parent=ELinks 0.11
7428
+ Platform=Digital Unix
7429
+
7430
+ [ELinks (0.11*; *FreeBSD*)]
7431
+ Parent=ELinks 0.11
7432
+ Platform=FreeBSD
7433
+
7434
+ [ELinks (0.11*; *HPUX*)]
7435
+ Parent=ELinks 0.11
7436
+ Platform=HP-UX
7437
+
7438
+ [ELinks (0.11*; *IRIX*)]
7439
+ Parent=ELinks 0.11
7440
+ Platform=IRIX
7441
+
7442
+ [ELinks (0.11*; *Linux*)]
7443
+ Parent=ELinks 0.11
7444
+ Platform=Linux
7445
+
7446
+ [ELinks (0.11*; *NetBSD*)]
7447
+ Parent=ELinks 0.11
7448
+ Platform=NetBSD
7449
+
7450
+ [ELinks (0.11*; *OpenBSD*)]
7451
+ Parent=ELinks 0.11
7452
+ Platform=OpenBSD
7453
+
7454
+ [ELinks (0.11*; *OS/2*)]
7455
+ Parent=ELinks 0.11
7456
+ Platform=OS/2
7457
+
7458
+ [ELinks (0.11*; *RISC*)]
7459
+ Parent=ELinks 0.11
7460
+ Platform=RISC OS
7461
+
7462
+ [ELinks (0.11*; *Solaris*)]
7463
+ Parent=ELinks 0.11
7464
+ Platform=Solaris
7465
+
7466
+ [ELinks (0.11*; *Unix*)]
7467
+ Parent=ELinks 0.11
7468
+ Platform=Unix
7469
+
7470
+ [ELinks/0.11* (*AIX*)]
7471
+ Parent=ELinks 0.11
7472
+ Platform=AIX
7473
+
7474
+ [ELinks/0.11* (*BeOS*)]
7475
+ Parent=ELinks 0.11
7476
+ Platform=BeOS
7477
+
7478
+ [ELinks/0.11* (*CygWin*)]
7479
+ Parent=ELinks 0.11
7480
+ Platform=CygWin
7481
+
7482
+ [ELinks/0.11* (*Darwin*)]
7483
+ Parent=ELinks 0.11
7484
+ Platform=Darwin
7485
+
7486
+ [ELinks/0.11* (*Digital Unix*)]
7487
+ Parent=ELinks 0.11
7488
+ Platform=Digital Unix
7489
+
7490
+ [ELinks/0.11* (*FreeBSD*)]
7491
+ Parent=ELinks 0.11
7492
+ Platform=FreeBSD
7493
+
7494
+ [ELinks/0.11* (*HPUX*)]
7495
+ Parent=ELinks 0.11
7496
+ Platform=HP-UX
7497
+
7498
+ [ELinks/0.11* (*IRIX*)]
7499
+ Parent=ELinks 0.11
7500
+ Platform=IRIX
7501
+
7502
+ [ELinks/0.11* (*Linux*)]
7503
+ Parent=ELinks 0.11
7504
+ Platform=Linux
7505
+
7506
+ [ELinks/0.11* (*NetBSD*)]
7507
+ Parent=ELinks 0.11
7508
+ Platform=NetBSD
7509
+
7510
+ [ELinks/0.11* (*OpenBSD*)]
7511
+ Parent=ELinks 0.11
7512
+ Platform=OpenBSD
7513
+
7514
+ [ELinks/0.11* (*OS/2*)]
7515
+ Parent=ELinks 0.11
7516
+ Platform=OS/2
7517
+
7518
+ [ELinks/0.11* (*RISC*)]
7519
+ Parent=ELinks 0.11
7520
+ Platform=RISC OS
7521
+
7522
+ [ELinks/0.11* (*Solaris*)]
7523
+ Parent=ELinks 0.11
7524
+ Platform=Solaris
7525
+
7526
+ [ELinks/0.11* (*Unix*)]
7527
+ Parent=ELinks 0.11
7528
+ Platform=Unix
7529
+
7530
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ELinks 0.12
7531
+
7532
+ [ELinks 0.12]
7533
+ Parent=DefaultProperties
7534
+ Browser="ELinks"
7535
+ Version=0.12
7536
+ MinorVer=12
7537
+ Frames=true
7538
+ Tables=true
7539
+
7540
+ [ELinks (0.12*; *AIX*)]
7541
+ Parent=ELinks 0.12
7542
+ Platform=AIX
7543
+
7544
+ [ELinks (0.12*; *BeOS*)]
7545
+ Parent=ELinks 0.12
7546
+ Platform=BeOS
7547
+
7548
+ [ELinks (0.12*; *CygWin*)]
7549
+ Parent=ELinks 0.12
7550
+ Platform=CygWin
7551
+
7552
+ [ELinks (0.12*; *Darwin*)]
7553
+ Parent=ELinks 0.12
7554
+ Platform=Darwin
7555
+
7556
+ [ELinks (0.12*; *Digital Unix*)]
7557
+ Parent=ELinks 0.12
7558
+ Platform=Digital Unix
7559
+
7560
+ [ELinks (0.12*; *FreeBSD*)]
7561
+ Parent=ELinks 0.12
7562
+ Platform=FreeBSD
7563
+
7564
+ [ELinks (0.12*; *HPUX*)]
7565
+ Parent=ELinks 0.12
7566
+ Platform=HP-UX
7567
+
7568
+ [ELinks (0.12*; *IRIX*)]
7569
+ Parent=ELinks 0.12
7570
+ Platform=IRIX
7571
+
7572
+ [ELinks (0.12*; *Linux*)]
7573
+ Parent=ELinks 0.12
7574
+ Platform=Linux
7575
+
7576
+ [ELinks (0.12*; *NetBSD*)]
7577
+ Parent=ELinks 0.12
7578
+ Platform=NetBSD
7579
+
7580
+ [ELinks (0.12*; *OpenBSD*)]
7581
+ Parent=ELinks 0.12
7582
+ Platform=OpenBSD
7583
+
7584
+ [ELinks (0.12*; *OS/2*)]
7585
+ Parent=ELinks 0.12
7586
+ Platform=OS/2
7587
+
7588
+ [ELinks (0.12*; *RISC*)]
7589
+ Parent=ELinks 0.12
7590
+ Platform=RISC OS
7591
+
7592
+ [ELinks (0.12*; *Solaris*)]
7593
+ Parent=ELinks 0.12
7594
+ Platform=Solaris
7595
+
7596
+ [ELinks (0.12*; *Unix*)]
7597
+ Parent=ELinks 0.12
7598
+ Platform=Unix
7599
+
7600
+ [ELinks/0.12* (*AIX*)]
7601
+ Parent=ELinks 0.12
7602
+ Platform=AIX
7603
+
7604
+ [ELinks/0.12* (*BeOS*)]
7605
+ Parent=ELinks 0.12
7606
+ Platform=BeOS
7607
+
7608
+ [ELinks/0.12* (*CygWin*)]
7609
+ Parent=ELinks 0.12
7610
+ Platform=CygWin
7611
+
7612
+ [ELinks/0.12* (*Darwin*)]
7613
+ Parent=ELinks 0.12
7614
+ Platform=Darwin
7615
+
7616
+ [ELinks/0.12* (*Digital Unix*)]
7617
+ Parent=ELinks 0.12
7618
+ Platform=Digital Unix
7619
+
7620
+ [ELinks/0.12* (*FreeBSD*)]
7621
+ Parent=ELinks 0.12
7622
+ Platform=FreeBSD
7623
+
7624
+ [ELinks/0.12* (*HPUX*)]
7625
+ Parent=ELinks 0.12
7626
+ Platform=HP-UX
7627
+
7628
+ [ELinks/0.12* (*IRIX*)]
7629
+ Parent=ELinks 0.12
7630
+ Platform=IRIX
7631
+
7632
+ [ELinks/0.12* (*Linux*)]
7633
+ Parent=ELinks 0.12
7634
+ Platform=Linux
7635
+
7636
+ [ELinks/0.12* (*NetBSD*)]
7637
+ Parent=ELinks 0.12
7638
+ Platform=NetBSD
7639
+
7640
+ [ELinks/0.12* (*OpenBSD*)]
7641
+ Parent=ELinks 0.12
7642
+ Platform=OpenBSD
7643
+
7644
+ [ELinks/0.12* (*OS/2*)]
7645
+ Parent=ELinks 0.12
7646
+ Platform=OS/2
7647
+
7648
+ [ELinks/0.12* (*RISC*)]
7649
+ Parent=ELinks 0.12
7650
+ Platform=RISC OS
7651
+
7652
+ [ELinks/0.12* (*Solaris*)]
7653
+ Parent=ELinks 0.12
7654
+ Platform=Solaris
7655
+
7656
+ [ELinks/0.12* (*Unix*)]
7657
+ Parent=ELinks 0.12
7658
+ Platform=Unix
7659
+
7660
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ELinks 0.13
7661
+
7662
+ [ELinks 0.13]
7663
+ Parent=DefaultProperties
7664
+ Browser="ELinks"
7665
+ Version=0.13
7666
+ MinorVer=13
7667
+ Frames=true
7668
+ Tables=true
7669
+
7670
+ [ELinks (0.13*; *AIX*)]
7671
+ Parent=ELinks 0.13
7672
+ Platform=AIX
7673
+
7674
+ [ELinks (0.13*; *BeOS*)]
7675
+ Parent=ELinks 0.13
7676
+ Platform=BeOS
7677
+
7678
+ [ELinks (0.13*; *CygWin*)]
7679
+ Parent=ELinks 0.13
7680
+ Platform=CygWin
7681
+
7682
+ [ELinks (0.13*; *Darwin*)]
7683
+ Parent=ELinks 0.13
7684
+ Platform=Darwin
7685
+
7686
+ [ELinks (0.13*; *Digital Unix*)]
7687
+ Parent=ELinks 0.13
7688
+ Platform=Digital Unix
7689
+
7690
+ [ELinks (0.13*; *FreeBSD*)]
7691
+ Parent=ELinks 0.13
7692
+ Platform=FreeBSD
7693
+
7694
+ [ELinks (0.13*; *HPUX*)]
7695
+ Parent=ELinks 0.13
7696
+ Platform=HP-UX
7697
+
7698
+ [ELinks (0.13*; *IRIX*)]
7699
+ Parent=ELinks 0.13
7700
+ Platform=IRIX
7701
+
7702
+ [ELinks (0.13*; *Linux*)]
7703
+ Parent=ELinks 0.13
7704
+ Platform=Linux
7705
+
7706
+ [ELinks (0.13*; *NetBSD*)]
7707
+ Parent=ELinks 0.13
7708
+ Platform=NetBSD
7709
+
7710
+ [ELinks (0.13*; *OpenBSD*)]
7711
+ Parent=ELinks 0.13
7712
+ Platform=OpenBSD
7713
+
7714
+ [ELinks (0.13*; *OS/2*)]
7715
+ Parent=ELinks 0.13
7716
+ Platform=OS/2
7717
+
7718
+ [ELinks (0.13*; *RISC*)]
7719
+ Parent=ELinks 0.13
7720
+ Platform=RISC OS
7721
+
7722
+ [ELinks (0.13*; *Solaris*)]
7723
+ Parent=ELinks 0.13
7724
+ Platform=Solaris
7725
+
7726
+ [ELinks (0.13*; *Unix*)]
7727
+ Parent=ELinks 0.13
7728
+ Platform=Unix
7729
+
7730
+ [ELinks/0.13* (*AIX*)]
7731
+ Parent=ELinks 0.13
7732
+ Platform=AIX
7733
+
7734
+ [ELinks/0.13* (*BeOS*)]
7735
+ Parent=ELinks 0.13
7736
+ Platform=BeOS
7737
+
7738
+ [ELinks/0.13* (*CygWin*)]
7739
+ Parent=ELinks 0.13
7740
+ Platform=CygWin
7741
+
7742
+ [ELinks/0.13* (*Darwin*)]
7743
+ Parent=ELinks 0.13
7744
+ Platform=Darwin
7745
+
7746
+ [ELinks/0.13* (*Digital Unix*)]
7747
+ Parent=ELinks 0.13
7748
+ Platform=Digital Unix
7749
+
7750
+ [ELinks/0.13* (*FreeBSD*)]
7751
+ Parent=ELinks 0.13
7752
+ Platform=FreeBSD
7753
+
7754
+ [ELinks/0.13* (*HPUX*)]
7755
+ Parent=ELinks 0.13
7756
+ Platform=HP-UX
7757
+
7758
+ [ELinks/0.13* (*IRIX*)]
7759
+ Parent=ELinks 0.13
7760
+ Platform=IRIX
7761
+
7762
+ [ELinks/0.13* (*Linux*)]
7763
+ Parent=ELinks 0.13
7764
+ Platform=Linux
7765
+
7766
+ [ELinks/0.13* (*NetBSD*)]
7767
+ Parent=ELinks 0.13
7768
+ Platform=NetBSD
7769
+
7770
+ [ELinks/0.13* (*OpenBSD*)]
7771
+ Parent=ELinks 0.13
7772
+ Platform=OpenBSD
7773
+
7774
+ [ELinks/0.13* (*OS/2*)]
7775
+ Parent=ELinks 0.13
7776
+ Platform=OS/2
7777
+
7778
+ [ELinks/0.13* (*RISC*)]
7779
+ Parent=ELinks 0.13
7780
+ Platform=RISC OS
7781
+
7782
+ [ELinks/0.13* (*Solaris*)]
7783
+ Parent=ELinks 0.13
7784
+ Platform=Solaris
7785
+
7786
+ [ELinks/0.13* (*Unix*)]
7787
+ Parent=ELinks 0.13
7788
+ Platform=Unix
7789
+
7790
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ELinks 0.9
7791
+
7792
+ [ELinks 0.9]
7793
+ Parent=DefaultProperties
7794
+ Browser="ELinks"
7795
+ Version=0.9
7796
+ MinorVer=9
7797
+ Frames=true
7798
+ Tables=true
7799
+
7800
+ [ELinks (0.9*; *AIX*)]
7801
+ Parent=ELinks 0.9
7802
+ Platform=AIX
7803
+
7804
+ [ELinks (0.9*; *BeOS*)]
7805
+ Parent=ELinks 0.9
7806
+ Platform=BeOS
7807
+
7808
+ [ELinks (0.9*; *CygWin*)]
7809
+ Parent=ELinks 0.9
7810
+ Platform=CygWin
7811
+
7812
+ [ELinks (0.9*; *Darwin*)]
7813
+ Parent=ELinks 0.9
7814
+ Platform=Darwin
7815
+
7816
+ [ELinks (0.9*; *Digital Unix*)]
7817
+ Parent=ELinks 0.9
7818
+ Platform=Digital Unix
7819
+
7820
+ [ELinks (0.9*; *FreeBSD*)]
7821
+ Parent=ELinks 0.9
7822
+ Platform=FreeBSD
7823
+
7824
+ [ELinks (0.9*; *HPUX*)]
7825
+ Parent=ELinks 0.9
7826
+ Platform=HP-UX
7827
+
7828
+ [ELinks (0.9*; *IRIX*)]
7829
+ Parent=ELinks 0.9
7830
+ Platform=IRIX
7831
+
7832
+ [ELinks (0.9*; *Linux*)]
7833
+ Parent=ELinks 0.9
7834
+ Platform=Linux
7835
+
7836
+ [ELinks (0.9*; *NetBSD*)]
7837
+ Parent=ELinks 0.9
7838
+ Platform=NetBSD
7839
+
7840
+ [ELinks (0.9*; *OpenBSD*)]
7841
+ Parent=ELinks 0.9
7842
+ Platform=OpenBSD
7843
+
7844
+ [ELinks (0.9*; *OS/2*)]
7845
+ Parent=ELinks 0.9
7846
+ Platform=OS/2
7847
+
7848
+ [ELinks (0.9*; *RISC*)]
7849
+ Parent=ELinks 0.9
7850
+ Platform=RISC OS
7851
+
7852
+ [ELinks (0.9*; *Solaris*)]
7853
+ Parent=ELinks 0.9
7854
+ Platform=Solaris
7855
+
7856
+ [ELinks (0.9*; *Unix*)]
7857
+ Parent=ELinks 0.9
7858
+ Platform=Unix
7859
+
7860
+ [ELinks/0.9* (*AIX*)]
7861
+ Parent=ELinks 0.9
7862
+ Platform=AIX
7863
+
7864
+ [ELinks/0.9* (*BeOS*)]
7865
+ Parent=ELinks 0.9
7866
+ Platform=BeOS
7867
+
7868
+ [ELinks/0.9* (*CygWin*)]
7869
+ Parent=ELinks 0.9
7870
+ Platform=CygWin
7871
+
7872
+ [ELinks/0.9* (*Darwin*)]
7873
+ Parent=ELinks 0.9
7874
+ Platform=Darwin
7875
+
7876
+ [ELinks/0.9* (*Digital Unix*)]
7877
+ Parent=ELinks 0.9
7878
+ Platform=Digital Unix
7879
+
7880
+ [ELinks/0.9* (*FreeBSD*)]
7881
+ Parent=ELinks 0.9
7882
+ Platform=FreeBSD
7883
+
7884
+ [ELinks/0.9* (*HPUX*)]
7885
+ Parent=ELinks 0.9
7886
+ Platform=HP-UX
7887
+
7888
+ [ELinks/0.9* (*IRIX*)]
7889
+ Parent=ELinks 0.9
7890
+ Platform=IRIX
7891
+
7892
+ [ELinks/0.9* (*Linux*)]
7893
+ Parent=ELinks 0.9
7894
+ Platform=Linux
7895
+
7896
+ [ELinks/0.9* (*NetBSD*)]
7897
+ Parent=ELinks 0.9
7898
+ Platform=NetBSD
7899
+
7900
+ [ELinks/0.9* (*OpenBSD*)]
7901
+ Parent=ELinks 0.9
7902
+ Platform=OpenBSD
7903
+
7904
+ [ELinks/0.9* (*OS/2*)]
7905
+ Parent=ELinks 0.9
7906
+ Platform=OS/2
7907
+
7908
+ [ELinks/0.9* (*RISC*)]
7909
+ Parent=ELinks 0.9
7910
+ Platform=RISC OS
7911
+
7912
+ [ELinks/0.9* (*Solaris*)]
7913
+ Parent=ELinks 0.9
7914
+ Platform=Solaris
7915
+
7916
+ [ELinks/0.9* (*Unix*)]
7917
+ Parent=ELinks 0.9
7918
+ Platform=Unix
7919
+
7920
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; AppleWebKit
7921
+
7922
+ [AppleWebKit]
7923
+ Parent=DefaultProperties
7924
+ Browser="AppleWebKit"
7925
+ Frames=true
7926
+ IFrames=true
7927
+ Tables=true
7928
+ Cookies=true
7929
+ BackgroundSounds=true
7930
+ JavaApplets=true
7931
+ JavaScript=true
7932
+ CssVersion=2
7933
+ supportsCSS=true
7934
+
7935
+ [Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (KHTML, like Gecko)]
7936
+ Parent=AppleWebKit
7937
+
7938
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Camino
7939
+
7940
+ [Camino]
7941
+ Parent=DefaultProperties
7942
+ Browser="Camino"
7943
+ Platform=MacOSX
7944
+ Frames=true
7945
+ IFrames=true
7946
+ Tables=true
7947
+ Cookies=true
7948
+ JavaApplets=true
7949
+ JavaScript=true
7950
+ CssVersion=2
7951
+ supportsCSS=true
7952
+
7953
+ [Mozilla/5.0 (Macintosh; *Mac OS X*) Gecko/* Camino/0.7*]
7954
+ Parent=Camino
7955
+ Version=0.7
7956
+ MajorVer=0
7957
+ MinorVer=7
7958
+ Beta=true
7959
+
7960
+ [Mozilla/5.0 (Macintosh; *Mac OS X*) Gecko/* Camino/0.8*]
7961
+ Parent=Camino
7962
+ Version=0.8
7963
+ MajorVer=0
7964
+ MinorVer=8
7965
+ Beta=true
7966
+
7967
+ [Mozilla/5.0 (Macintosh; *Mac OS X*) Gecko/* Camino/0.9*]
7968
+ Parent=Camino
7969
+ Version=0.9
7970
+ MajorVer=0
7971
+ MinorVer=9
7972
+ Beta=true
7973
+
7974
+ [Mozilla/5.0 (Macintosh; *Mac OS X*) Gecko/* Camino/1.0*]
7975
+ Parent=Camino
7976
+ Version=1.0
7977
+ MajorVer=1
7978
+ MinorVer=0
7979
+
7980
+ [Mozilla/5.0 (Macintosh; *Mac OS X*) Gecko/* Camino/1.2*]
7981
+ Parent=Camino
7982
+ Version=1.2
7983
+ MajorVer=1
7984
+ MinorVer=2
7985
+
7986
+ [Mozilla/5.0 (Macintosh; *Mac OS X*) Gecko/* Camino/1.3*]
7987
+ Parent=Camino
7988
+ Version=1.3
7989
+ MajorVer=1
7990
+ MinorVer=3
7991
+ Platform=MacOSX
7992
+
7993
+ [Mozilla/5.0 (Macintosh; *Mac OS X*) Gecko/* Camino/1.4*]
7994
+ Parent=Camino
7995
+ Version=1.4
7996
+ MajorVer=1
7997
+ MinorVer=4
7998
+ Platform=MacOSX
7999
+
8000
+ [Mozilla/5.0 (Macintosh; *Mac OS X*) Gecko/* Camino/1.5*]
8001
+ Parent=Camino
8002
+ Version=1.5
8003
+ MajorVer=1
8004
+ MinorVer=5
8005
+ Platform=MacOSX
8006
+
8007
+ [Mozilla/5.0 (Macintosh; *Mac OS X*) Gecko/* Camino/1.6*]
8008
+ Parent=Camino
8009
+ Version=1.6
8010
+ MajorVer=1
8011
+ MinorVer=6
8012
+ Platform=MacOSX
8013
+
8014
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chimera
8015
+
8016
+ [Chimera]
8017
+ Parent=DefaultProperties
8018
+ Browser="Chimera"
8019
+ Frames=true
8020
+ IFrames=true
8021
+ Tables=true
8022
+ Cookies=true
8023
+ JavaApplets=true
8024
+ JavaScript=true
8025
+
8026
+ [Mozilla/5.0 (Macintosh; U; *Mac OS X*; *; rv:1.*) Gecko/* Chimera/*]
8027
+ Parent=Chimera
8028
+ Platform=MacOSX
8029
+
8030
+ [Mozilla/5.0 Gecko/* Chimera/*]
8031
+ Parent=Chimera
8032
+
8033
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Dillo
8034
+
8035
+ [Dillo]
8036
+ Parent=DefaultProperties
8037
+ Browser="Dillo"
8038
+ Platform=Linux
8039
+ Frames=true
8040
+ IFrames=true
8041
+ Tables=true
8042
+ Cookies=true
8043
+ CssVersion=2
8044
+ supportsCSS=true
8045
+
8046
+ [Dillo/0.6*]
8047
+ Parent=Dillo
8048
+ Version=0.6
8049
+ MajorVer=0
8050
+ MinorVer=6
8051
+
8052
+ [Dillo/0.7*]
8053
+ Parent=Dillo
8054
+ Version=0.7
8055
+ MajorVer=0
8056
+ MinorVer=7
8057
+
8058
+ [Dillo/0.8*]
8059
+ Parent=Dillo
8060
+ Version=0.8
8061
+ MajorVer=0
8062
+ MinorVer=8
8063
+
8064
+ [Dillo/2.0]
8065
+ Parent=Dillo
8066
+ Version=2.0
8067
+ MajorVer=2
8068
+ MinorVer=0
8069
+
8070
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Emacs/W3
8071
+
8072
+ [Emacs/W3]
8073
+ Parent=DefaultProperties
8074
+ Browser="Emacs/W3"
8075
+ Frames=true
8076
+ Tables=true
8077
+ Cookies=true
8078
+
8079
+ [Emacs/W3/2.* (Unix*]
8080
+ Parent=Emacs/W3
8081
+ Version=2.0
8082
+ MajorVer=2
8083
+ MinorVer=0
8084
+ Platform=Unix
8085
+
8086
+ [Emacs/W3/2.* (X11*]
8087
+ Parent=Emacs/W3
8088
+ Version=2.0
8089
+ MajorVer=2
8090
+ MinorVer=0
8091
+ Platform=Linux
8092
+
8093
+ [Emacs/W3/3.* (Unix*]
8094
+ Parent=Emacs/W3
8095
+ Version=3.0
8096
+ MajorVer=3
8097
+ MinorVer=0
8098
+ Platform=Unix
8099
+
8100
+ [Emacs/W3/3.* (X11*]
8101
+ Parent=Emacs/W3
8102
+ Version=3.0
8103
+ MajorVer=3
8104
+ MinorVer=0
8105
+ Platform=Linux
8106
+
8107
+ [Emacs/W3/4.* (Unix*]
8108
+ Parent=Emacs/W3
8109
+ Version=4.0
8110
+ MajorVer=4
8111
+ MinorVer=0
8112
+ Platform=Unix
8113
+
8114
+ [Emacs/W3/4.* (X11*]
8115
+ Parent=Emacs/W3
8116
+ Version=4.0
8117
+ MajorVer=4
8118
+ MinorVer=0
8119
+ Platform=Linux
8120
+
8121
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; fantomas
8122
+
8123
+ [fantomas]
8124
+ Parent=DefaultProperties
8125
+ Browser="fantomas"
8126
+ Frames=true
8127
+ IFrames=true
8128
+ Tables=true
8129
+ Cookies=true
8130
+ JavaScript=true
8131
+
8132
+ [Mozilla/4.0 (cloakBrowser)]
8133
+ Parent=fantomas
8134
+ Browser="fantomas cloakBrowser"
8135
+
8136
+ [Mozilla/4.0 (fantomas shadowMaker Browser)]
8137
+ Parent=fantomas
8138
+ Browser="fantomas shadowMaker Browser"
8139
+
8140
+ [Mozilla/4.0 (fantomBrowser)]
8141
+ Parent=fantomas
8142
+ Browser="fantomas fantomBrowser"
8143
+
8144
+ [Mozilla/4.0 (fantomCrew Browser)]
8145
+ Parent=fantomas
8146
+ Browser="fantomas fantomCrew Browser"
8147
+
8148
+ [Mozilla/4.0 (stealthBrowser)]
8149
+ Parent=fantomas
8150
+ Browser="fantomas stealthBrowser"
8151
+
8152
+ [multiBlocker browser*]
8153
+ Parent=fantomas
8154
+ Browser="fantomas multiBlocker browser"
8155
+
8156
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; FrontPage
8157
+
8158
+ [FrontPage]
8159
+ Parent=DefaultProperties
8160
+ Browser="FrontPage"
8161
+ Frames=true
8162
+ IFrames=true
8163
+ Tables=true
8164
+ Cookies=true
8165
+ JavaScript=true
8166
+
8167
+ [Mozilla/?* (compatible; MS FrontPage*)]
8168
+ Parent=FrontPage
8169
+
8170
+ [MSFrontPage/*]
8171
+ Parent=FrontPage
8172
+
8173
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Galeon
8174
+
8175
+ [Galeon]
8176
+ Parent=DefaultProperties
8177
+ Browser="Galeon"
8178
+ Platform=Linux
8179
+ Frames=true
8180
+ IFrames=true
8181
+ Tables=true
8182
+ Cookies=true
8183
+ JavaApplets=true
8184
+ JavaScript=true
8185
+ CssVersion=2
8186
+ supportsCSS=true
8187
+
8188
+ [Mozilla/5.0 (X11; U; Linux*) Gecko/* Galeon/1.*]
8189
+ Parent=Galeon
8190
+ Version=1.0
8191
+ MajorVer=1
8192
+ MinorVer=0
8193
+
8194
+ [Mozilla/5.0 (X11; U; Linux*) Gecko/* Galeon/2.*]
8195
+ Parent=Galeon
8196
+ Version=2.0
8197
+ MajorVer=2
8198
+ MinorVer=0
8199
+
8200
+ [Mozilla/5.0 Galeon/1.* (X11; Linux*)*]
8201
+ Parent=Galeon
8202
+ Version=1.0
8203
+ MajorVer=1
8204
+ MinorVer=0
8205
+
8206
+ [Mozilla/5.0 Galeon/2.* (X11; Linux*)*]
8207
+ Parent=Galeon
8208
+ Version=2.0
8209
+ MajorVer=2
8210
+ MinorVer=0
8211
+
8212
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; HP Secure Web Browser
8213
+
8214
+ [HP Secure Web Browser]
8215
+ Parent=DefaultProperties
8216
+ Browser="HP Secure Web Browser"
8217
+ Platform=OpenVMS
8218
+ Frames=true
8219
+ IFrames=true
8220
+ Tables=true
8221
+ Cookies=true
8222
+ JavaApplets=true
8223
+ JavaScript=true
8224
+ CssVersion=2
8225
+ supportsCSS=true
8226
+
8227
+ [Mozilla/5.0 (X11; U; OpenVMS*; *; rv:1.0*) Gecko/*]
8228
+ Parent=HP Secure Web Browser
8229
+ Version=1.0
8230
+ MajorVer=1
8231
+ MinorVer=0
8232
+
8233
+ [Mozilla/5.0 (X11; U; OpenVMS*; *; rv:1.1*) Gecko/*]
8234
+ Parent=HP Secure Web Browser
8235
+ Version=1.1
8236
+ MajorVer=1
8237
+ MinorVer=1
8238
+
8239
+ [Mozilla/5.0 (X11; U; OpenVMS*; *; rv:1.2*) Gecko/*]
8240
+ Parent=HP Secure Web Browser
8241
+ Version=1.2
8242
+ MajorVer=1
8243
+ MinorVer=2
8244
+
8245
+ [Mozilla/5.0 (X11; U; OpenVMS*; *; rv:1.3*) Gecko/*]
8246
+ Parent=HP Secure Web Browser
8247
+ Version=1.3
8248
+ MajorVer=1
8249
+ MinorVer=3
8250
+
8251
+ [Mozilla/5.0 (X11; U; OpenVMS*; *; rv:1.4*) Gecko/*]
8252
+ Parent=HP Secure Web Browser
8253
+ Version=1.4
8254
+ MajorVer=1
8255
+ MinorVer=4
8256
+
8257
+ [Mozilla/5.0 (X11; U; OpenVMS*; *; rv:1.5*) Gecko/*]
8258
+ Parent=HP Secure Web Browser
8259
+ Version=1.5
8260
+ MajorVer=1
8261
+ MinorVer=5
8262
+
8263
+ [Mozilla/5.0 (X11; U; OpenVMS*; *; rv:1.6*) Gecko/*]
8264
+ Parent=HP Secure Web Browser
8265
+ Version=1.6
8266
+ MajorVer=1
8267
+ MinorVer=6
8268
+
8269
+ [Mozilla/5.0 (X11; U; OpenVMS*; *; rv:1.7*) Gecko/*]
8270
+ Parent=HP Secure Web Browser
8271
+ Version=1.7
8272
+ MajorVer=1
8273
+ MinorVer=7
8274
+
8275
+ [Mozilla/5.0 (X11; U; OpenVMS*; *; rv:1.8*) Gecko/*]
8276
+ Parent=HP Secure Web Browser
8277
+ Version=1.8
8278
+ MajorVer=1
8279
+ MinorVer=8
8280
+
8281
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IBrowse
8282
+
8283
+ [IBrowse]
8284
+ Parent=DefaultProperties
8285
+ Browser="IBrowse"
8286
+ Platform=Amiga
8287
+ Frames=true
8288
+ Tables=true
8289
+ Cookies=true
8290
+ JavaScript=true
8291
+
8292
+ [Arexx (compatible; MSIE 6.0; AmigaOS5.0) IBrowse 4.0]
8293
+ Parent=IBrowse
8294
+ Version=4.0
8295
+ MajorVer=4
8296
+ MinorVer=0
8297
+
8298
+ [IBrowse/1.22 (AmigaOS *)]
8299
+ Parent=IBrowse
8300
+ Version=1.22
8301
+ MajorVer=1
8302
+ MinorVer=22
8303
+
8304
+ [IBrowse/2.1 (AmigaOS *)]
8305
+ Parent=IBrowse
8306
+ Version=2.1
8307
+ MajorVer=2
8308
+ MinorVer=1
8309
+
8310
+ [IBrowse/2.2 (AmigaOS *)]
8311
+ Parent=IBrowse
8312
+ Version=2.2
8313
+ MajorVer=2
8314
+ MinorVer=2
8315
+
8316
+ [IBrowse/2.3 (AmigaOS *)]
8317
+ Parent=IBrowse
8318
+ Version=2.2
8319
+ MajorVer=2
8320
+ MinorVer=3
8321
+
8322
+ [Mozilla/* (Win98; I) IBrowse/2.1 (AmigaOS 3.1)]
8323
+ Parent=IBrowse
8324
+ Version=2.1
8325
+ MajorVer=2
8326
+ MinorVer=1
8327
+
8328
+ [Mozilla/* (Win98; I) IBrowse/2.2 (AmigaOS 3.1)]
8329
+ Parent=IBrowse
8330
+ Version=2.2
8331
+ MajorVer=2
8332
+ MinorVer=2
8333
+
8334
+ [Mozilla/* (Win98; I) IBrowse/2.3 (AmigaOS 3.1)]
8335
+ Parent=IBrowse
8336
+ Version=2.3
8337
+ MajorVer=2
8338
+ MinorVer=3
8339
+
8340
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; iCab
8341
+
8342
+ [iCab]
8343
+ Parent=DefaultProperties
8344
+ Browser="iCab"
8345
+ Frames=true
8346
+ Tables=true
8347
+ Cookies=true
8348
+ JavaScript=true
8349
+ CssVersion=1
8350
+ supportsCSS=true
8351
+
8352
+ [iCab/2.7* (Macintosh; ?; 68K*)]
8353
+ Parent=iCab
8354
+ Version=2.7
8355
+ MajorVer=2
8356
+ MinorVer=7
8357
+ Platform=Mac68K
8358
+
8359
+ [iCab/2.7* (Macintosh; ?; PPC*)]
8360
+ Parent=iCab
8361
+ Version=2.7
8362
+ MajorVer=2
8363
+ MinorVer=7
8364
+ Platform=MacPPC
8365
+
8366
+ [iCab/2.8* (Macintosh; ?; *Mac OS X*)]
8367
+ Parent=iCab
8368
+ Version=2.8
8369
+ MajorVer=2
8370
+ MinorVer=8
8371
+ Platform=MacOSX
8372
+
8373
+ [iCab/2.8* (Macintosh; ?; 68K*)]
8374
+ Parent=iCab
8375
+ Version=2.8
8376
+ MajorVer=2
8377
+ MinorVer=8
8378
+ Platform=Mac68K
8379
+
8380
+ [iCab/2.8* (Macintosh; ?; PPC)]
8381
+ Parent=iCab
8382
+ Version=2.8
8383
+ MajorVer=2
8384
+ MinorVer=8
8385
+ Platform=MacPPC
8386
+
8387
+ [iCab/2.9* (Macintosh; ?; *Mac OS X*)]
8388
+ Parent=iCab
8389
+ Version=2.9
8390
+ MajorVer=2
8391
+ MinorVer=9
8392
+ Platform=MacOSX
8393
+
8394
+ [iCab/2.9* (Macintosh; ?; 68K*)]
8395
+ Parent=iCab
8396
+ Version=2.9
8397
+ MajorVer=2
8398
+ MinorVer=9
8399
+ Platform=Mac68K
8400
+
8401
+ [iCab/2.9* (Macintosh; ?; PPC*)]
8402
+ Parent=iCab
8403
+ Version=2.9
8404
+ MajorVer=2
8405
+ MinorVer=9
8406
+ Platform=MacPPC
8407
+
8408
+ [iCab/3.0* (Macintosh; ?; *Mac OS X*)]
8409
+ Parent=iCab
8410
+ Version=3.0
8411
+ MajorVer=3
8412
+ MinorVer=0
8413
+ Platform=MacOSX
8414
+ CssVersion=2
8415
+ supportsCSS=true
8416
+
8417
+ [iCab/3.0* (Macintosh; ?; PPC*)]
8418
+ Parent=iCab
8419
+ Version=3.0
8420
+ MajorVer=3
8421
+ MinorVer=0
8422
+ Platform=MacPPC
8423
+ CssVersion=2
8424
+ supportsCSS=true
8425
+
8426
+ [iCab/4.0 (Macintosh; U; *Mac OS X)]
8427
+ Parent=iCab
8428
+ Version=4.0
8429
+ MajorVer=4
8430
+ MinorVer=0
8431
+ Platform=MacOSX
8432
+
8433
+ [Mozilla/* (compatible; iCab 3.0*; Macintosh; *Mac OS X*)]
8434
+ Parent=iCab
8435
+ Version=3.0
8436
+ MajorVer=3
8437
+ MinorVer=0
8438
+ Platform=MacOSX
8439
+ CssVersion=2
8440
+ supportsCSS=true
8441
+
8442
+ [Mozilla/* (compatible; iCab 3.0*; Macintosh; ?; PPC*)]
8443
+ Parent=iCab
8444
+ Version=3.0
8445
+ MajorVer=3
8446
+ MinorVer=0
8447
+ Platform=MacPPC
8448
+ CssVersion=2
8449
+ supportsCSS=true
8450
+
8451
+ [Mozilla/4.5 (compatible; iCab 2.7*; Macintosh; ?; 68K*)]
8452
+ Parent=iCab
8453
+ Version=2.7
8454
+ MajorVer=2
8455
+ MinorVer=7
8456
+ Platform=Mac68K
8457
+
8458
+ [Mozilla/4.5 (compatible; iCab 2.7*; Macintosh; ?; PPC*)]
8459
+ Parent=iCab
8460
+ Version=2.7
8461
+ MajorVer=2
8462
+ MinorVer=7
8463
+ Platform=MacPPC
8464
+
8465
+ [Mozilla/4.5 (compatible; iCab 2.8*; Macintosh; ?; *Mac OS X*)]
8466
+ Parent=iCab
8467
+ Version=2.8
8468
+ MajorVer=2
8469
+ MinorVer=8
8470
+ Platform=MacOSX
8471
+
8472
+ [Mozilla/4.5 (compatible; iCab 2.8*; Macintosh; ?; PPC*)]
8473
+ Parent=iCab
8474
+ Version=2.8
8475
+ MajorVer=2
8476
+ MinorVer=8
8477
+ Platform=MacPPC
8478
+
8479
+ [Mozilla/4.5 (compatible; iCab 2.9*; Macintosh; *Mac OS X*)]
8480
+ Parent=iCab
8481
+ Version=2.9
8482
+ MajorVer=2
8483
+ MinorVer=9
8484
+ Platform=MacOSX
8485
+
8486
+ [Mozilla/4.5 (compatible; iCab 2.9*; Macintosh; ?; PPC*)]
8487
+ Parent=iCab
8488
+ Version=2.9
8489
+ MajorVer=2
8490
+ MinorVer=9
8491
+ Platform=MacPPC
8492
+
8493
+ [Mozilla/4.5 (compatible; iCab 4.2*; Macintosh; *Mac OS X*)]
8494
+ Parent=iCab
8495
+ Version=4.2
8496
+ MajorVer=4
8497
+ MinorVer=2
8498
+ Platform=MacOSX
8499
+
8500
+ [Mozilla/5.0 (Macintosh; U; Intel Mac OS X*; *) AppleWebKit/* (KHTML, like Gecko) iCab/4.7 Safari/*]
8501
+ Parent=iCab
8502
+ Version=4.7
8503
+ MajorVer=4
8504
+ MinorVer=7
8505
+
8506
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; iSiloX
8507
+
8508
+ [iSiloX]
8509
+ Parent=DefaultProperties
8510
+ Browser="iSiloX"
8511
+ Frames=true
8512
+ IFrames=true
8513
+ Tables=true
8514
+ Cookies=true
8515
+ JavaScript=true
8516
+ Crawler=true
8517
+ CssVersion=2
8518
+ supportsCSS=true
8519
+
8520
+ [iSiloX/4.0* MacOS]
8521
+ Parent=iSiloX
8522
+ Version=4.0
8523
+ MajorVer=4
8524
+ MinorVer=0
8525
+ Platform=MacPPC
8526
+
8527
+ [iSiloX/4.0* Windows/32]
8528
+ Parent=iSiloX
8529
+ Version=4.0
8530
+ MajorVer=4
8531
+ MinorVer=0
8532
+ Platform=Win32
8533
+ Win32=true
8534
+
8535
+ [iSiloX/4.1* MacOS]
8536
+ Parent=iSiloX
8537
+ Version=4.1
8538
+ MajorVer=4
8539
+ MinorVer=1
8540
+ Platform=MacPPC
8541
+
8542
+ [iSiloX/4.1* Windows/32]
8543
+ Parent=iSiloX
8544
+ Version=4.1
8545
+ MajorVer=4
8546
+ MinorVer=1
8547
+ Platform=Win32
8548
+ Win32=true
8549
+
8550
+ [iSiloX/4.2* MacOS]
8551
+ Parent=iSiloX
8552
+ Version=4.2
8553
+ MajorVer=4
8554
+ MinorVer=2
8555
+ Platform=MacPPC
8556
+
8557
+ [iSiloX/4.2* Windows/32]
8558
+ Parent=iSiloX
8559
+ Version=4.2
8560
+ MajorVer=4
8561
+ MinorVer=2
8562
+ Platform=Win32
8563
+ Win32=true
8564
+
8565
+ [iSiloX/4.3* MacOS]
8566
+ Parent=iSiloX
8567
+ Version=4.3
8568
+ MajorVer=4
8569
+ MinorVer=4
8570
+ Platform=MacOSX
8571
+
8572
+ [iSiloX/4.3* Windows/32]
8573
+ Parent=iSiloX
8574
+ Version=4.3
8575
+ MajorVer=4
8576
+ MinorVer=3
8577
+ Platform=Win32
8578
+ Win32=true
8579
+
8580
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Lycoris Desktop/LX
8581
+
8582
+ [Lycoris Desktop/LX]
8583
+ Parent=DefaultProperties
8584
+ Browser="Lycoris Desktop/LX"
8585
+ Frames=true
8586
+ IFrames=true
8587
+ Tables=true
8588
+ Cookies=true
8589
+ JavaApplets=true
8590
+ JavaScript=true
8591
+ Crawler=true
8592
+
8593
+ [Mozilla/5.0 (X11; U; Linux i686*; en-US; rv:1.*: Desktop/LX Amethyst) Gecko/*]
8594
+ Parent=Lycoris Desktop/LX
8595
+ Version=1.1
8596
+ MajorVer=1
8597
+ MinorVer=1
8598
+ Platform=Linux
8599
+
8600
+ [Mozilla/5.0 (X11; U; Linux i686*; en-US; rv:1.*; Desktop/LX Amethyst) Gecko/*]
8601
+ Parent=Lycoris Desktop/LX
8602
+ Version=1.0
8603
+ MajorVer=1
8604
+ MinorVer=0
8605
+ Platform=Linux
8606
+
8607
+ [Mozilla/4.0 (VMS_Mosaic)]
8608
+ Parent=Mosaic
8609
+ Platform=OpenVMS
8610
+
8611
+ [VMS_Mosaic/3.7*]
8612
+ Parent=Mosaic
8613
+ Version=3.7
8614
+ MajorVer=3
8615
+ MinorVer=7
8616
+ Platform=OpenVMS
8617
+
8618
+ [VMS_Mosaic/3.8*]
8619
+ Parent=Mosaic
8620
+ Version=3.8
8621
+ MajorVer=3
8622
+ MinorVer=8
8623
+ Platform=OpenVMS
8624
+
8625
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; NetPositive
8626
+
8627
+ [NetPositive]
8628
+ Parent=DefaultProperties
8629
+ Browser="NetPositive"
8630
+ Platform=BeOS
8631
+ Frames=true
8632
+ IFrames=true
8633
+ Tables=true
8634
+ Cookies=true
8635
+ JavaApplets=true
8636
+ JavaScript=true
8637
+
8638
+ [*NetPositive/2.2*]
8639
+ Parent=NetPositive
8640
+ Version=2.2
8641
+ MajorVer=2
8642
+ MinorVer=2
8643
+
8644
+ [*NetPositive/2.2*BeOS*]
8645
+ Parent=NetPositive
8646
+ Version=2.2
8647
+ MajorVer=2
8648
+ MinorVer=2
8649
+
8650
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; OmniWeb
8651
+
8652
+ [OmniWeb]
8653
+ Parent=DefaultProperties
8654
+ Browser="OmniWeb"
8655
+ Platform=MacOSX
8656
+ Frames=true
8657
+ Tables=true
8658
+ Cookies=true
8659
+ JavaApplets=true
8660
+ JavaScript=true
8661
+ isMobileDevice=true
8662
+ CssVersion=2
8663
+ supportsCSS=true
8664
+
8665
+ [Mozilla/* (Macintosh; ?; *Mac OS X; *) AppleWebKit/* (*) OmniWeb/v4*]
8666
+ Parent=OmniWeb
8667
+ Version=4.5
8668
+ MajorVer=4
8669
+ MinorVer=5
8670
+ Platform=MacOSX
8671
+
8672
+ [Mozilla/* (Macintosh; ?; *Mac OS X; *) AppleWebKit/* (*) OmniWeb/v5*]
8673
+ Parent=OmniWeb
8674
+ Version=5.
8675
+ MajorVer=5
8676
+ MinorVer=0
8677
+ Platform=MacOSX
8678
+
8679
+ [Mozilla/* (Macintosh; ?; *Mac OS X; *) AppleWebKit/* (*) OmniWeb/v6*]
8680
+ Parent=OmniWeb
8681
+ Version=6.0
8682
+ MajorVer=6
8683
+ MinorVer=0
8684
+ Platform=MacOSX
8685
+
8686
+ [Mozilla/* (Macintosh; ?; PPC) OmniWeb/4*]
8687
+ Parent=OmniWeb
8688
+ Version=4.0
8689
+ MajorVer=4
8690
+ MinorVer=0
8691
+ Platform=MacPPC
8692
+
8693
+ [Mozilla/* (Macintosh; ?; PPC) OmniWeb/5*]
8694
+ Parent=OmniWeb
8695
+ Version=5.0
8696
+ MajorVer=5
8697
+ MinorVer=0
8698
+ Platform=MacOSX
8699
+
8700
+ [Mozilla/* (Macintosh; ?; PPC) OmniWeb/6*]
8701
+ Parent=OmniWeb
8702
+ Version=6.0
8703
+ MajorVer=6
8704
+ MinorVer=0
8705
+ Platform=MacPPC
8706
+
8707
+ [Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/125.4 (KHTML, like Gecko, Safari) OmniWeb/v563.34]
8708
+ Parent=OmniWeb
8709
+ Version=5.1
8710
+ MajorVer=5
8711
+ MinorVer=1
8712
+
8713
+ [Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/420+ (KHTML, like Gecko, Safari/420) OmniWeb/v607]
8714
+ Parent=OmniWeb
8715
+ Version=5.5
8716
+ MajorVer=5
8717
+ MinorVer=5
8718
+
8719
+ [Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/522+ (KHTML, like Gecko, Safari/522) OmniWeb/v613]
8720
+ Parent=OmniWeb
8721
+ Version=5.6
8722
+ MajorVer=5
8723
+ MinorVer=6
8724
+
8725
+ [Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/85 (KHTML, like Gecko) OmniWeb/v496]
8726
+ Parent=OmniWeb
8727
+ Version=4.5
8728
+ MajorVer=4
8729
+ MinorVer=5
8730
+
8731
+ [Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/85 (KHTML, like Gecko) OmniWeb/v558.36 ]
8732
+ Parent=OmniWeb
8733
+ Version=5.0
8734
+ MajorVer=5
8735
+ MinorVer=0
8736
+
8737
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Shiira
8738
+
8739
+ [Shiira]
8740
+ Parent=DefaultProperties
8741
+ Browser="Shiira"
8742
+ Platform=MacOSX
8743
+ Frames=true
8744
+ IFrames=true
8745
+ Tables=true
8746
+ Cookies=true
8747
+ BackgroundSounds=true
8748
+ JavaApplets=true
8749
+ JavaScript=true
8750
+ CssVersion=2
8751
+ supportsCSS=true
8752
+
8753
+ [Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Shiira/0.9*]
8754
+ Parent=Shiira
8755
+ Version=0.9
8756
+ MajorVer=0
8757
+ MinorVer=9
8758
+
8759
+ [Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Shiira/1.0*]
8760
+ Parent=Shiira
8761
+ Version=1.0
8762
+ MajorVer=1
8763
+ MinorVer=0
8764
+
8765
+ [Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Shiira/1.1*]
8766
+ Parent=Shiira
8767
+ Version=1.1
8768
+ MajorVer=1
8769
+ MinorVer=1
8770
+
8771
+ [Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Shiira/1.2*]
8772
+ Parent=Shiira
8773
+ Version=1.2
8774
+ MajorVer=1
8775
+ MinorVer=2
8776
+
8777
+ [Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Shiira/2.1*]
8778
+ Parent=Shiira
8779
+ Version=2.1
8780
+ MajorVer=2
8781
+ MinorVer=1
8782
+
8783
+ [Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Shiira/2.2*]
8784
+ Parent=Shiira
8785
+ Version=2.2
8786
+ MajorVer=2
8787
+ MinorVer=2
8788
+
8789
+ [Windows Maker]
8790
+ Parent=DefaultProperties
8791
+ Browser="WMaker"
8792
+ Platform=Linux
8793
+ Frames=true
8794
+ IFrames=true
8795
+ Tables=true
8796
+ Cookies=true
8797
+ VBScript=true
8798
+ JavaApplets=true
8799
+ JavaScript=true
8800
+ CssVersion=2
8801
+ supportsCSS=true
8802
+
8803
+ [WMaker*]
8804
+ Parent=Windows Maker
8805
+
8806
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; K-Meleon 1.0
8807
+
8808
+ [K-Meleon 1.0]
8809
+ Parent=DefaultProperties
8810
+ Browser="K-Meleon"
8811
+ Version=1.0
8812
+ MajorVer=1
8813
+ Win32=true
8814
+ Frames=true
8815
+ IFrames=true
8816
+ Tables=true
8817
+ Cookies=true
8818
+ JavaApplets=true
8819
+ JavaScript=true
8820
+ CssVersion=2
8821
+ supportsCSS=true
8822
+
8823
+ [Mozilla/5.0 (Windows; *; Win95; *; rv:1.*) Gecko/* K-Meleon/1.0*]
8824
+ Parent=K-Meleon 1.0
8825
+ Version=1.0
8826
+ MajorVer=1
8827
+ MinorVer=0
8828
+ Platform=Win95
8829
+ Win32=true
8830
+
8831
+ [Mozilla/5.0 (Windows; *; Win98; *; rv:1.*) Gecko/* K-Meleon/1.0*]
8832
+ Parent=K-Meleon 1.0
8833
+ Version=1.0
8834
+ MajorVer=1
8835
+ MinorVer=0
8836
+ Platform=Win98
8837
+ Win32=true
8838
+
8839
+ [Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.*) Gecko/* K-Meleon?1.0*]
8840
+ Parent=K-Meleon 1.0
8841
+ Version=1.0
8842
+ MajorVer=1
8843
+ MinorVer=0
8844
+ Platform=Win2000
8845
+ Win32=true
8846
+
8847
+ [Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.*) Gecko/* K-Meleon/1.0*]
8848
+ Parent=K-Meleon 1.0
8849
+ Version=1.0
8850
+ MajorVer=1
8851
+ MinorVer=0
8852
+ Platform=WinXP
8853
+ Win32=true
8854
+
8855
+ [Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.*) Gecko/* K-Meleon/1.0*]
8856
+ Parent=K-Meleon 1.0
8857
+ Version=1.0
8858
+ MajorVer=1
8859
+ MinorVer=0
8860
+ Platform=Win2003
8861
+ Win32=true
8862
+
8863
+ [Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.*) Gecko/* K-Meleon/1.0*]
8864
+ Parent=K-Meleon 1.0
8865
+ Version=1.0
8866
+ MajorVer=1
8867
+ MinorVer=0
8868
+ Platform=WinNT
8869
+ Win32=true
8870
+
8871
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; K-Meleon 1.1
8872
+
8873
+ [K-Meleon 1.1]
8874
+ Parent=DefaultProperties
8875
+ Browser="K-Meleon"
8876
+ Version=1.1
8877
+ MajorVer=1
8878
+ MinorVer=1
8879
+ Win32=true
8880
+ Frames=true
8881
+ IFrames=true
8882
+ Tables=true
8883
+ Cookies=true
8884
+ JavaApplets=true
8885
+ JavaScript=true
8886
+ CssVersion=2
8887
+ supportsCSS=true
8888
+
8889
+ [Mozilla/5.0 (Windows; *; Win95; *; rv:1.*) Gecko/* K-Meleon/1.1*]
8890
+ Parent=K-Meleon 1.1
8891
+ Version=1.0
8892
+ MajorVer=1
8893
+ MinorVer=0
8894
+ Platform=Win95
8895
+ Win32=true
8896
+
8897
+ [Mozilla/5.0 (Windows; *; Win98; *; rv:1.*) Gecko/* K-Meleon/1.1*]
8898
+ Parent=K-Meleon 1.1
8899
+ Version=1.0
8900
+ MajorVer=1
8901
+ MinorVer=0
8902
+ Platform=Win98
8903
+ Win32=true
8904
+
8905
+ [Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.*) Gecko/* K-Meleon?1.1*]
8906
+ Parent=K-Meleon 1.1
8907
+ Version=1.0
8908
+ MajorVer=1
8909
+ MinorVer=0
8910
+ Platform=Win2000
8911
+ Win32=true
8912
+
8913
+ [Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.*) Gecko/* K-Meleon/1.1*]
8914
+ Parent=K-Meleon 1.1
8915
+ Version=1.0
8916
+ MajorVer=1
8917
+ MinorVer=0
8918
+ Platform=WinXP
8919
+ Win32=true
8920
+
8921
+ [Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.*) Gecko/* K-Meleon/1.1*]
8922
+ Parent=K-Meleon 1.1
8923
+ Version=1.0
8924
+ MajorVer=1
8925
+ MinorVer=0
8926
+ Platform=Win2003
8927
+ Win32=true
8928
+
8929
+ [Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.*) Gecko/* K-Meleon/1.1*]
8930
+ Parent=K-Meleon 1.1
8931
+ Version=1.0
8932
+ MajorVer=1
8933
+ MinorVer=0
8934
+ Platform=WinNT
8935
+ Win32=true
8936
+
8937
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; K-Meleon 1.5
8938
+
8939
+ [K-Meleon 1.5]
8940
+ Parent=DefaultProperties
8941
+ Browser="K-Meleon"
8942
+ Version=1.5
8943
+ MajorVer=1
8944
+ MinorVer=5
8945
+ Win32=true
8946
+ Frames=true
8947
+ IFrames=true
8948
+ Tables=true
8949
+ Cookies=true
8950
+ JavaApplets=true
8951
+ JavaScript=true
8952
+ CssVersion=2
8953
+ supportsCSS=true
8954
+
8955
+ [Mozilla/5.0 (Windows; *; Win95; *; rv:1.*) Gecko/* K-Meleon/1.5*]
8956
+ Parent=K-Meleon 1.5
8957
+ Version=1.0
8958
+ MajorVer=1
8959
+ MinorVer=0
8960
+ Platform=Win95
8961
+ Win32=true
8962
+
8963
+ [Mozilla/5.0 (Windows; *; Win98; *; rv:1.*) Gecko/* K-Meleon/1.5*]
8964
+ Parent=K-Meleon 1.5
8965
+ Version=1.0
8966
+ MajorVer=1
8967
+ MinorVer=0
8968
+ Platform=Win98
8969
+ Win32=true
8970
+
8971
+ [Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.*) Gecko/* K-Meleon?1.5*]
8972
+ Parent=K-Meleon 1.5
8973
+ Version=1.0
8974
+ MajorVer=1
8975
+ MinorVer=0
8976
+ Platform=Win2000
8977
+ Win32=true
8978
+
8979
+ [Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.*) Gecko/* K-Meleon/1.5*]
8980
+ Parent=K-Meleon 1.5
8981
+ Version=1.0
8982
+ MajorVer=1
8983
+ MinorVer=0
8984
+ Platform=WinXP
8985
+ Win32=true
8986
+
8987
+ [Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.*) Gecko/* K-Meleon/1.5*]
8988
+ Parent=K-Meleon 1.5
8989
+ Version=1.0
8990
+ MajorVer=1
8991
+ MinorVer=0
8992
+ Platform=Win2003
8993
+ Win32=true
8994
+
8995
+ [Mozilla/5.0 (Windows; *; Windows NT 6.0; *; rv:1.*) Gecko/* K-Meleon/1.5*]
8996
+ Parent=K-Meleon 1.5
8997
+ Platform=WinVista
8998
+
8999
+ [Mozilla/5.0 (Windows; *; Windows NT 6.1; *; rv:1.*) Gecko/* K-Meleon/1.5*]
9000
+ Parent=K-Meleon 1.5
9001
+ Platform=Win7
9002
+
9003
+ [Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.*) Gecko/* K-Meleon/1.5*]
9004
+ Parent=K-Meleon 1.5
9005
+ Version=1.0
9006
+ MajorVer=1
9007
+ MinorVer=0
9008
+ Platform=WinNT
9009
+ Win32=true
9010
+
9011
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Konqueror 3.0
9012
+
9013
+ [Konqueror 3.0]
9014
+ Parent=DefaultProperties
9015
+ Browser="Konqueror"
9016
+ Platform=Linux
9017
+ Frames=true
9018
+ IFrames=true
9019
+ Tables=true
9020
+ Cookies=true
9021
+ JavaScript=true
9022
+ CssVersion=2
9023
+ supportsCSS=true
9024
+
9025
+ [*Konqueror/3.0*]
9026
+ Parent=Konqueror 3.0
9027
+ Version=3.0
9028
+ MajorVer=3
9029
+ MinorVer=0
9030
+ IFrames=false
9031
+
9032
+ [*Konqueror/3.0*FreeBSD*]
9033
+ Parent=Konqueror 3.0
9034
+ Version=3.0
9035
+ MajorVer=3
9036
+ MinorVer=0
9037
+ Platform=FreeBSD
9038
+ IFrames=false
9039
+
9040
+ [*Konqueror/3.0*Linux*]
9041
+ Parent=Konqueror 3.0
9042
+ Version=3.0
9043
+ MajorVer=3
9044
+ MinorVer=0
9045
+ Platform=Linux
9046
+ IFrames=false
9047
+
9048
+ [*Konqueror/3.1*]
9049
+ Parent=Konqueror 3.0
9050
+ Version=3.1
9051
+ MajorVer=3
9052
+ MinorVer=1
9053
+
9054
+ [*Konqueror/3.1*FreeBSD*]
9055
+ Parent=Konqueror 3.0
9056
+ Version=3.1
9057
+ MajorVer=3
9058
+ MinorVer=1
9059
+ Platform=FreeBSD
9060
+
9061
+ [*Konqueror/3.1*Linux*]
9062
+ Parent=Konqueror 3.0
9063
+ Version=3.1
9064
+ MajorVer=3
9065
+ MinorVer=1
9066
+
9067
+ [*Konqueror/3.2*]
9068
+ Parent=Konqueror 3.0
9069
+ Version=3.2
9070
+ MajorVer=3
9071
+ MinorVer=2
9072
+
9073
+ [*Konqueror/3.2*FreeBSD*]
9074
+ Parent=Konqueror 3.0
9075
+ Version=3.2
9076
+ MajorVer=3
9077
+ MinorVer=2
9078
+ Platform=FreeBSD
9079
+
9080
+ [*Konqueror/3.2*Linux*]
9081
+ Parent=Konqueror 3.0
9082
+ Version=3.2
9083
+ MajorVer=3
9084
+ MinorVer=2
9085
+ Platform=Linux
9086
+
9087
+ [*Konqueror/3.3*]
9088
+ Parent=Konqueror 3.0
9089
+ Version=3.3
9090
+ MajorVer=3
9091
+ MinorVer=3
9092
+
9093
+ [*Konqueror/3.3*FreeBSD*]
9094
+ Parent=Konqueror 3.0
9095
+ Version=3.3
9096
+ MajorVer=3
9097
+ MinorVer=3
9098
+ Platform=FreeBSD
9099
+
9100
+ [*Konqueror/3.3*Linux*]
9101
+ Parent=Konqueror 3.0
9102
+ Version=3.3
9103
+ MajorVer=3
9104
+ MinorVer=3
9105
+ Platform=Linux
9106
+
9107
+ [*Konqueror/3.3*OpenBSD*]
9108
+ Parent=Konqueror 3.0
9109
+ Version=3.3
9110
+ MajorVer=3
9111
+ MinorVer=3
9112
+ Platform=OpenBSD
9113
+
9114
+ [*Konqueror/3.4*]
9115
+ Parent=Konqueror 3.0
9116
+ Version=3.4
9117
+ MajorVer=3
9118
+ MinorVer=4
9119
+
9120
+ [*Konqueror/3.4*FreeBSD*]
9121
+ Parent=Konqueror 3.0
9122
+ Version=3.4
9123
+ MajorVer=3
9124
+ MinorVer=4
9125
+ Platform=FreeBSD
9126
+
9127
+ [*Konqueror/3.4*Linux*]
9128
+ Parent=Konqueror 3.0
9129
+ Version=3.4
9130
+ MajorVer=3
9131
+ MinorVer=4
9132
+ Platform=Linux
9133
+
9134
+ [*Konqueror/3.4*OpenBSD*]
9135
+ Parent=Konqueror 3.0
9136
+ Version=3.4
9137
+ MajorVer=3
9138
+ MinorVer=4
9139
+ Platform=OpenBSD
9140
+
9141
+ [*Konqueror/3.5*]
9142
+ Parent=Konqueror 3.0
9143
+ Version=3.5
9144
+ MajorVer=3
9145
+ MinorVer=5
9146
+
9147
+ [*Konqueror/3.5*FreeBSD*]
9148
+ Parent=Konqueror 3.0
9149
+ Version=3.5
9150
+ MajorVer=3
9151
+ MinorVer=5
9152
+ Platform=FreeBSD
9153
+
9154
+ [*Konqueror/3.5*Linux*]
9155
+ Parent=Konqueror 3.0
9156
+ Version=3.5
9157
+ MajorVer=3
9158
+ MinorVer=5
9159
+ Platform=Linux
9160
+
9161
+ [*Konqueror/3.5*OpenBSD*]
9162
+ Parent=Konqueror 3.0
9163
+ Version=3.5
9164
+ MajorVer=3
9165
+ MinorVer=5
9166
+ Platform=OpenBSD
9167
+
9168
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Konqueror 4.0
9169
+
9170
+ [Konqueror 4.0]
9171
+ Parent=DefaultProperties
9172
+ Browser="Konqueror"
9173
+ Version=4.0
9174
+ MajorVer=4
9175
+ Frames=true
9176
+ IFrames=true
9177
+ Tables=true
9178
+ Cookies=true
9179
+ JavaScript=true
9180
+ CssVersion=2
9181
+ supportsCSS=true
9182
+
9183
+ [Mozilla/5.0 (compatible; Konqueror/4.0*) KHTML/4.0* (like Gecko)]
9184
+ Parent=Konqueror 4.0
9185
+
9186
+ [Mozilla/5.0 (compatible; Konqueror/4.0*; Debian) KHTML/4.0* (like Gecko)]
9187
+ Parent=Konqueror 4.0
9188
+ Platform=Debian
9189
+
9190
+ [Mozilla/5.0 (compatible; Konqueror/4.0.*; *Linux) KHTML/4.0* (like Gecko)]
9191
+ Parent=Konqueror 4.0
9192
+ Platform=Linux
9193
+
9194
+ [Mozilla/5.0 (compatible; Konqueror/4.0.*; FreeBSD) KHTML/4.0* (like Gecko)]
9195
+ Parent=Konqueror 4.0
9196
+ Platform=FreeBSD
9197
+
9198
+ [Mozilla/5.0 (compatible; Konqueror/4.0.*; NetBSD) KHTML/4.0* (like Gecko)]
9199
+ Parent=Konqueror 4.0
9200
+ Platform=NetBSD
9201
+
9202
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Konqueror 4.1
9203
+
9204
+ [Konqueror 4.1]
9205
+ Parent=DefaultProperties
9206
+ Browser="Konqueror"
9207
+ Version=4.1
9208
+ MajorVer=4
9209
+ MinorVer=1
9210
+ Frames=true
9211
+ IFrames=true
9212
+ Tables=true
9213
+ Cookies=true
9214
+ JavaScript=true
9215
+ CssVersion=2
9216
+ supportsCSS=true
9217
+
9218
+ [Mozilla/5.0 (compatible; Konqueror/4.1*) KHTML/4.1* (like Gecko)*]
9219
+ Parent=Konqueror 4.1
9220
+
9221
+ [Mozilla/5.0 (compatible; Konqueror/4.1*; *Linux*) KHTML/4.1* (like Gecko)*]
9222
+ Parent=Konqueror 4.1
9223
+ Platform=Linux
9224
+
9225
+ [Mozilla/5.0 (compatible; Konqueror/4.1*; Debian) KHTML/4.1* (like Gecko)*]
9226
+ Parent=Konqueror 4.1
9227
+ Platform=Debian
9228
+
9229
+ [Mozilla/5.0 (compatible; Konqueror/4.1*; FreeBSD) KHTML/4.1* (like Gecko)*]
9230
+ Parent=Konqueror 4.1
9231
+ Platform=FreeBSD
9232
+
9233
+ [Mozilla/5.0 (compatible; Konqueror/4.1*; NetBSD) KHTML/4.1* (like Gecko)*]
9234
+ Parent=Konqueror 4.1
9235
+ Platform=NetBSD
9236
+
9237
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Konqueror 4.2
9238
+
9239
+ [Konqueror 4.2]
9240
+ Parent=DefaultProperties
9241
+ Browser="Konqueror"
9242
+ Version=4.2
9243
+ MajorVer=4
9244
+ MinorVer=2
9245
+ Frames=true
9246
+ IFrames=true
9247
+ Tables=true
9248
+ Cookies=true
9249
+ JavaScript=true
9250
+ CssVersion=2
9251
+ supportsCSS=true
9252
+
9253
+ [Mozilla/5.0 (compatible; Konqueror/4.2*) KHTML/4.2* (like Gecko)*]
9254
+ Parent=Konqueror 4.2
9255
+
9256
+ [Mozilla/5.0 (compatible; Konqueror/4.2*; *Linux*) KHTML/4.2* (like Gecko)*]
9257
+ Parent=Konqueror 4.2
9258
+ Platform=Linux
9259
+
9260
+ [Mozilla/5.0 (compatible; Konqueror/4.2*; Debian) KHTML/4.2* (like Gecko)*]
9261
+ Parent=Konqueror 4.2
9262
+ Platform=Debian
9263
+
9264
+ [Mozilla/5.0 (compatible; Konqueror/4.2*; FreeBSD) KHTML/4.2* (like Gecko)*]
9265
+ Parent=Konqueror 4.2
9266
+ Platform=FreeBSD
9267
+
9268
+ [Mozilla/5.0 (compatible; Konqueror/4.2*; NetBSD) KHTML/4.2* (like Gecko)*]
9269
+ Parent=Konqueror 4.2
9270
+ Platform=NetBSD
9271
+
9272
+ [Mozilla/5.0 (compatible; Konqueror/4.2*; Windows) KHTML/4.2* (like Gecko)]
9273
+ Parent=Konqueror 4.2
9274
+ Platform=Win
9275
+
9276
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Konqueror 4.3
9277
+
9278
+ [Konqueror 4.3]
9279
+ Parent=DefaultProperties
9280
+ Browser="Konqueror"
9281
+ Version=4.3
9282
+ MajorVer=4
9283
+ MinorVer=3
9284
+ Frames=true
9285
+ IFrames=true
9286
+ Tables=true
9287
+ Cookies=true
9288
+ JavaScript=true
9289
+ CssVersion=2
9290
+ supportsCSS=true
9291
+
9292
+ [Mozilla/5.0 (compatible; Konqueror/4.3*) KHTML/4.3* (like Gecko)*]
9293
+ Parent=Konqueror 4.3
9294
+
9295
+ [Mozilla/5.0 (compatible; Konqueror/4.3*; *Linux*) KHTML/4.3* (like Gecko)*]
9296
+ Parent=Konqueror 4.3
9297
+ Platform=Linux
9298
+
9299
+ [Mozilla/5.0 (compatible; Konqueror/4.3*; Debian) KHTML/4.3* (like Gecko)*]
9300
+ Parent=Konqueror 4.3
9301
+ Platform=Debian
9302
+
9303
+ [Mozilla/5.0 (compatible; Konqueror/4.3*; FreeBSD) KHTML/4.3* (like Gecko)*]
9304
+ Parent=Konqueror 4.3
9305
+ Platform=FreeBSD
9306
+
9307
+ [Mozilla/5.0 (compatible; Konqueror/4.3*; NetBSD) KHTML/4.3* (like Gecko)*]
9308
+ Parent=Konqueror 4.3
9309
+ Platform=NetBSD
9310
+
9311
+ [Mozilla/5.0 (compatible; Konqueror/4.3*; Windows) KHTML/4.3* (like Gecko)]
9312
+ Parent=Konqueror 4.3
9313
+ Platform=Win
9314
+
9315
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari
9316
+
9317
+ [Safari]
9318
+ Parent=DefaultProperties
9319
+ Browser="Safari"
9320
+ Platform=MacOSX
9321
+ Frames=true
9322
+ IFrames=true
9323
+ Tables=true
9324
+ Cookies=true
9325
+ BackgroundSounds=true
9326
+ JavaApplets=true
9327
+ JavaScript=true
9328
+ CssVersion=2
9329
+ supportsCSS=true
9330
+
9331
+ [Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/100*]
9332
+ Parent=Safari
9333
+ Version=1.1
9334
+ MajorVer=1
9335
+ MinorVer=1
9336
+
9337
+ [Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/125*]
9338
+ Parent=Safari
9339
+ Version=1.2
9340
+ MajorVer=1
9341
+ MinorVer=2
9342
+
9343
+ [Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/312*]
9344
+ Parent=Safari
9345
+ Version=1.3
9346
+ MajorVer=1
9347
+ MinorVer=3
9348
+
9349
+ [Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/412*]
9350
+ Parent=Safari
9351
+ Version=2.0
9352
+ MajorVer=2
9353
+ MinorVer=0
9354
+
9355
+ [Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/416*]
9356
+ Parent=Safari
9357
+ Version=2.0
9358
+ MajorVer=2
9359
+ MinorVer=0
9360
+
9361
+ [Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/417*]
9362
+ Parent=Safari
9363
+ Version=2.0
9364
+ MajorVer=2
9365
+ MinorVer=0
9366
+
9367
+ [Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/418*]
9368
+ Parent=Safari
9369
+ Version=2.0
9370
+ MajorVer=2
9371
+ MinorVer=0
9372
+
9373
+ [Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/419*]
9374
+ Parent=Safari
9375
+ Version=2.0
9376
+ MajorVer=2
9377
+ MinorVer=0
9378
+
9379
+ [Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/52*]
9380
+ Parent=Safari
9381
+ Beta=true
9382
+
9383
+ [Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/85*]
9384
+ Parent=Safari
9385
+ Version=1.0
9386
+ MajorVer=1
9387
+ MinorVer=0
9388
+
9389
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari 3.0
9390
+
9391
+ [Safari 3.0]
9392
+ Parent=DefaultProperties
9393
+ Browser="Safari"
9394
+ Version=3.0
9395
+ MajorVer=3
9396
+ Platform=MacOSX
9397
+ Frames=true
9398
+ IFrames=true
9399
+ Tables=true
9400
+ Cookies=true
9401
+ BackgroundSounds=true
9402
+ JavaApplets=true
9403
+ JavaScript=true
9404
+ CssVersion=2
9405
+ supportsCSS=true
9406
+
9407
+ [Mozilla/5.0 (Macintosh; ?; *Mac OS X*) AppleWebKit/* (*) Version/3.0* Safari/*]
9408
+ Parent=Safari 3.0
9409
+ Platform=MacOSX
9410
+
9411
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) AppleWebKit/* (*) Version/3.0* Safari/*]
9412
+ Parent=Safari 3.0
9413
+ Platform=WinXP
9414
+
9415
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) AppleWebKit/* (*) Version/3.0* Safari/*]
9416
+ Parent=Safari 3.0
9417
+ Platform=Win2003
9418
+
9419
+ [Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) AppleWebKit/* (*) Version/3.0* Safari/*]
9420
+ Parent=Safari 3.0
9421
+ Platform=WinVista
9422
+
9423
+ [Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) AppleWebKit/* (*) Version/3.0* Safari/*]
9424
+ Parent=Safari 3.0
9425
+ Platform=Win7
9426
+
9427
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari 3.1
9428
+
9429
+ [Safari 3.1]
9430
+ Parent=DefaultProperties
9431
+ Browser="Safari"
9432
+ Version=3.1
9433
+ MajorVer=3
9434
+ MinorVer=1
9435
+ Platform=MacOSX
9436
+ Frames=true
9437
+ IFrames=true
9438
+ Tables=true
9439
+ Cookies=true
9440
+ BackgroundSounds=true
9441
+ JavaApplets=true
9442
+ JavaScript=true
9443
+ CssVersion=2
9444
+ supportsCSS=true
9445
+
9446
+ [Mozilla/5.0 (Macintosh; ?; *Mac OS X*) AppleWebKit/* (*) Version/3.1* Safari/*]
9447
+ Parent=Safari 3.1
9448
+ Platform=MacOSX
9449
+
9450
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) AppleWebKit/* (*) Version/3.1* Safari/*]
9451
+ Parent=Safari 3.1
9452
+ Platform=WinXP
9453
+
9454
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) AppleWebKit/* (*) Version/3.1* Safari/*]
9455
+ Parent=Safari 3.1
9456
+ Platform=Win2003
9457
+
9458
+ [Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) AppleWebKit/* (*) Version/3.1* Safari/*]
9459
+ Parent=Safari 3.1
9460
+ Platform=WinVista
9461
+
9462
+ [Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) AppleWebKit/* (*) Version/3.1* Safari/*]
9463
+ Parent=Safari 3.1
9464
+ Platform=Win7
9465
+
9466
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari 3.2
9467
+
9468
+ [Safari 3.2]
9469
+ Parent=DefaultProperties
9470
+ Browser="Safari"
9471
+ Version=3.2
9472
+ MajorVer=3
9473
+ MinorVer=2
9474
+ Frames=true
9475
+ IFrames=true
9476
+ Tables=true
9477
+ Cookies=true
9478
+ BackgroundSounds=true
9479
+ JavaApplets=true
9480
+ JavaScript=true
9481
+ CssVersion=3
9482
+ supportsCSS=true
9483
+
9484
+ [Mozilla/5.0 (Macintosh; ?; *Mac OS X*) AppleWebKit/* (*) Version/3.2* Safari/*]
9485
+ Parent=Safari 3.2
9486
+ Platform=MacOSX
9487
+
9488
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) AppleWebKit/* (*) Version/3.2* Safari/*]
9489
+ Parent=Safari 3.2
9490
+ Platform=WinXP
9491
+
9492
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) AppleWebKit/* (*) Version/3.2* Safari/*]
9493
+ Parent=Safari 3.2
9494
+ Platform=Win2003
9495
+
9496
+ [Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) AppleWebKit/* (*) Version/3.2* Safari/*]
9497
+ Parent=Safari 3.2
9498
+ Platform=WinVista
9499
+
9500
+ [Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) AppleWebKit/* (*) Version/3.2* Safari/*]
9501
+ Parent=Safari 3.2
9502
+ Platform=Win7
9503
+
9504
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari 4.0
9505
+
9506
+ [Safari 4.0]
9507
+ Parent=DefaultProperties
9508
+ Browser="Safari"
9509
+ Version=4.0
9510
+ MajorVer=4
9511
+ Frames=true
9512
+ IFrames=true
9513
+ Tables=true
9514
+ Cookies=true
9515
+ BackgroundSounds=true
9516
+ JavaApplets=true
9517
+ JavaScript=true
9518
+ CssVersion=3
9519
+ supportsCSS=true
9520
+
9521
+ [Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *) AppleWebKit/* (KHTML, like Gecko) Version/4.0* Safari/*]
9522
+ Parent=Safari 4.0
9523
+ Platform=MacOSX
9524
+
9525
+ [Mozilla/5.0 (Macintosh; U; *Mac OS X*; *) AppleWebKit/* (KHTML, like Gecko) Version/4 Public Beta Safari/*]
9526
+ Parent=Safari 4.0
9527
+
9528
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) AppleWebKit/* (*) Version/4 Public Beta Safari/*]
9529
+ Parent=Safari 4.0
9530
+ Platform=WinXP
9531
+
9532
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) AppleWebKit/* (*) Version/4.0* Safari/*]
9533
+ Parent=Safari 4.0
9534
+ Platform=WinXP
9535
+
9536
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) AppleWebKit/* (*) Version/4 Public Beta Safari/*]
9537
+ Parent=Safari 4.0
9538
+ Platform=Win2003
9539
+
9540
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) AppleWebKit/* (*) Version/4.0* Safari/*]
9541
+ Parent=Safari 4.0
9542
+ Platform=Win2003
9543
+
9544
+ [Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) AppleWebKit/* (*) Version/4 Public Beta Safari/*]
9545
+ Parent=Safari 4.0
9546
+ Platform=WinVista
9547
+
9548
+ [Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) AppleWebKit/* (*) Version/4.0* Safari/*]
9549
+ Parent=Safari 4.0
9550
+ Platform=WinVista
9551
+
9552
+ [Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) AppleWebKit/* (*) Version/4 Public Beta Safari/*]
9553
+ Parent=Safari 4.0
9554
+ Platform=Win7
9555
+
9556
+ [Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) AppleWebKit/* (*) Version/4.0* Safari/*]
9557
+ Parent=Safari 4.0
9558
+ Platform=Win7
9559
+
9560
+ [Mozilla/5.0 (Windows; ?; Windows NT 7.0; *) AppleWebKit/* (*) Version/4 Public Beta Safari/*]
9561
+ Parent=Safari 4.0
9562
+ Platform=Win7
9563
+
9564
+ [Mozilla/5.0 (Windows; ?; Windows NT 7.0; *) AppleWebKit/* (*) Version/4.0* Safari/*]
9565
+ Parent=Safari 4.0
9566
+ Platform=Win7
9567
+
9568
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 10
9569
+
9570
+ [Opera 10]
9571
+ Parent=DefaultProperties
9572
+ Browser="Opera"
9573
+ Version=10.0
9574
+ MajorVer=10
9575
+ Frames=true
9576
+ IFrames=true
9577
+ Tables=true
9578
+ Cookies=true
9579
+ BackgroundSounds=true
9580
+ JavaApplets=true
9581
+ JavaScript=true
9582
+ CssVersion=2
9583
+ supportsCSS=true
9584
+
9585
+ [Mozilla/4.0 (compatible; MSIE ?.0; Windows NT 5.0; *) Opera 10.*]
9586
+ Parent=Opera 10
9587
+ Platform=Win2000
9588
+
9589
+ [Mozilla/4.0 (compatible; MSIE ?.0; Windows NT 5.1; *) Opera 10.*]
9590
+ Parent=Opera 10
9591
+ Platform=WinXP
9592
+
9593
+ [Mozilla/4.0 (compatible; MSIE ?.0; Windows NT 5.2; *) Opera 10.*]
9594
+ Parent=Opera 10
9595
+ Platform=Win2003
9596
+
9597
+ [Mozilla/4.0 (compatible; MSIE ?.0; Windows NT 6.0; *) Opera 10.*]
9598
+ Parent=Opera 10
9599
+ Platform=WinVista
9600
+
9601
+ [Mozilla/4.0 (compatible; MSIE ?.0; Windows NT 6.1; *) Opera 10.*]
9602
+ Parent=Opera 10
9603
+ Platform=Win7
9604
+
9605
+ [Mozilla/4.0 (compatible; MSIE ?.0; X11; FreeBSD*) Opera 10.*]
9606
+ Parent=Opera 10
9607
+ Platform=FreeBSD
9608
+
9609
+ [Mozilla/4.0 (compatible; MSIE ?.0; X11; Linux*; *) Opera 10.*]
9610
+ Parent=Opera 10
9611
+ Platform=Linux
9612
+
9613
+ [Mozilla/4.0 (compatible; MSIE ?.0; X11; SunOS*) Opera 10.*]
9614
+ Parent=Opera 10
9615
+ Platform=SunOS
9616
+
9617
+ [Opera/10.* (Macintosh; *Mac OS X; U; *) Presto/2.2.*]
9618
+ Parent=Opera 10
9619
+ Platform=MacOSX
9620
+
9621
+ [Opera/10.* (Windows NT 5.0; U; *) Presto/2.2.*]
9622
+ Parent=Opera 10
9623
+ Platform=Win2000
9624
+
9625
+ [Opera/10.* (Windows NT 5.1; U; *) Presto/2.2.*]
9626
+ Parent=Opera 10
9627
+ Platform=WinXP
9628
+
9629
+ [Opera/10.* (Windows NT 5.2; U; *) Presto/2.2.*]
9630
+ Parent=Opera 10
9631
+ Platform=Win2003
9632
+
9633
+ [Opera/10.* (Windows NT 6.0; U; *) Presto/2.2.*]
9634
+ Parent=Opera 10
9635
+ Platform=WinVista
9636
+
9637
+ [Opera/10.* (Windows NT 6.1; U; *) Presto/2.2.*]
9638
+ Parent=Opera 10
9639
+ Platform=Win7
9640
+
9641
+ [Opera/10.* (X11; FreeBSD; U; *) Presto/2.2.*]
9642
+ Parent=Opera 10
9643
+ Platform=FreeBSD
9644
+
9645
+ [Opera/10.* (X11; Linux*; U; *) Presto/2.2.*]
9646
+ Parent=Opera 10
9647
+ Platform=Linux
9648
+
9649
+ [Opera/10.* (X11; SunOS; U; *) Presto/2.2.*]
9650
+ Parent=Opera 10
9651
+ Platform=SunOS
9652
+
9653
+ [Opera/9.80 (Macintosh; *Mac OS X; U; *) Presto/2.2.* Version/10.*]
9654
+ Parent=Opera 10
9655
+ Platform=MacOSX
9656
+
9657
+ [Opera/9.80 (Windows NT 5.0; U; *) Presto/2.2.* Version/10.*]
9658
+ Parent=Opera 10
9659
+ Platform=Win2000
9660
+
9661
+ [Opera/9.80 (Windows NT 5.1; U; *) Presto/2.2.* Version/10.*]
9662
+ Parent=Opera 10
9663
+ Platform=WinXP
9664
+
9665
+ [Opera/9.80 (Windows NT 5.2; U; *) Presto/2.2.* Version/10.*]
9666
+ Parent=Opera 10
9667
+ Platform=Win2003
9668
+
9669
+ [Opera/9.80 (Windows NT 6.0; U; *) Presto/2.2.* Version/10.*]
9670
+ Parent=Opera 10
9671
+ Platform=WinVista
9672
+
9673
+ [Opera/9.80 (Windows NT 6.1; U; *) Presto/2.2.* Version/10.*]
9674
+ Parent=Opera 10
9675
+ Platform=Win7
9676
+
9677
+ [Opera/9.80 (X11; FreeBSD; U; *) Presto/2.2.* Version/10.*]
9678
+ Parent=Opera 10
9679
+ Platform=FreeBSD
9680
+
9681
+ [Opera/9.80 (X11; Linux*; U; *) Presto/2.2.* Version/10.*]
9682
+ Parent=Opera 10
9683
+ Platform=Linux
9684
+
9685
+ [Opera/9.80 (X11; SunOS; U; *) Presto/2.2.* Version/10.*]
9686
+ Parent=Opera 10
9687
+ Platform=SunOS
9688
+
9689
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 7.0
9690
+
9691
+ [Opera 7.0]
9692
+ Parent=DefaultProperties
9693
+ Browser="Opera"
9694
+ Version=7.0
9695
+ MajorVer=7
9696
+ Frames=true
9697
+ IFrames=true
9698
+ Tables=true
9699
+ Cookies=true
9700
+ BackgroundSounds=true
9701
+ JavaApplets=true
9702
+ JavaScript=true
9703
+ CssVersion=2
9704
+ supportsCSS=true
9705
+
9706
+ [Mozilla/3.0 (Windows 2000; ?) Opera 7.0*]
9707
+ Parent=Opera 7.0
9708
+ Platform=Win2000
9709
+ Win32=true
9710
+
9711
+ [Mozilla/3.0 (Windows 95; ?) Opera 7.0*]
9712
+ Parent=Opera 7.0
9713
+ Platform=Win95
9714
+ Win32=true
9715
+
9716
+ [Mozilla/3.0 (Windows 98; ?) Opera 7.0*]
9717
+ Parent=Opera 7.0
9718
+ Platform=Win98
9719
+ Win32=true
9720
+
9721
+ [Mozilla/3.0 (Windows ME; ?) Opera 7.0*]
9722
+ Parent=Opera 7.0
9723
+ Platform=WinME
9724
+ Win32=true
9725
+
9726
+ [Mozilla/3.0 (Windows NT 4.0; ?) Opera 7.0*]
9727
+ Parent=Opera 7.0
9728
+ Platform=WinNT
9729
+ Win32=true
9730
+
9731
+ [Mozilla/3.0 (Windows XP; ?) Opera 7.0*]
9732
+ Parent=Opera 7.0
9733
+ Platform=WinXP
9734
+ Win32=true
9735
+
9736
+ [Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows 2000) Opera 7.0*]
9737
+ Parent=Opera 7.0
9738
+ Platform=Win2000
9739
+ Win32=true
9740
+
9741
+ [Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows 95) Opera 7.0*]
9742
+ Parent=Opera 7.0
9743
+ Platform=Win95
9744
+ Win32=true
9745
+
9746
+ [Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows 98) Opera 7.0*]
9747
+ Parent=Opera 7.0
9748
+ Platform=Win98
9749
+ Win32=true
9750
+
9751
+ [Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows ME) Opera 7.0*]
9752
+ Parent=Opera 7.0
9753
+ Platform=WinME
9754
+ Win32=true
9755
+
9756
+ [Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 4.0) Opera 7.0*]
9757
+ Parent=Opera 7.0
9758
+ Platform=WinNT
9759
+ Win32=true
9760
+
9761
+ [Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.0) Opera 7.0*]
9762
+ Parent=Opera 7.0
9763
+ Platform=Win2000
9764
+ Win32=true
9765
+
9766
+ [Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.1) Opera 7.0*]
9767
+ Parent=Opera 7.0
9768
+ Platform=WinXP
9769
+ Win32=true
9770
+
9771
+ [Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows XP) Opera 7.0*]
9772
+ Parent=Opera 7.0
9773
+ Platform=WinXP
9774
+ Win32=true
9775
+
9776
+ [Mozilla/4.78 (Windows 2000; ?) Opera 7.0*]
9777
+ Parent=Opera 7.0
9778
+ Platform=Win2000
9779
+ Win32=true
9780
+
9781
+ [Mozilla/4.78 (Windows 95; ?) Opera 7.0*]
9782
+ Parent=Opera 7.0
9783
+ Platform=Win95
9784
+ Win32=true
9785
+
9786
+ [Mozilla/4.78 (Windows 98; ?) Opera 7.0*]
9787
+ Parent=Opera 7.0
9788
+ Platform=Win98
9789
+ Win32=true
9790
+
9791
+ [Mozilla/4.78 (Windows ME; ?) Opera 7.0*]
9792
+ Parent=Opera 7.0
9793
+ Platform=WinME
9794
+ Win32=true
9795
+
9796
+ [Mozilla/4.78 (Windows NT 4.0; ?) Opera 7.0*]
9797
+ Parent=Opera 7.0
9798
+ Platform=WinNT
9799
+ Win32=true
9800
+
9801
+ [Mozilla/4.78 (Windows NT 5.1; ?) Opera 7.0*]
9802
+ Parent=Opera 7.0
9803
+ Platform=WinXP
9804
+ Win32=true
9805
+
9806
+ [Mozilla/4.78 (Windows Windows NT 5.0; ?) Opera 7.0*]
9807
+ Parent=Opera 7.0
9808
+ Platform=Win2000
9809
+ Win32=true
9810
+
9811
+ [Mozilla/4.78 (Windows XP; ?) Opera 7.0*]
9812
+ Parent=Opera 7.0
9813
+ Platform=WinXP
9814
+ Win32=true
9815
+
9816
+ [Mozilla/5.0 (Windows 2000; ?) Opera 7.0*]
9817
+ Parent=Opera 7.0
9818
+ Platform=Win2000
9819
+ Win32=true
9820
+
9821
+ [Mozilla/5.0 (Windows 95; ?) Opera 7.0*]
9822
+ Parent=Opera 7.0
9823
+ Platform=Win95
9824
+ Win32=true
9825
+
9826
+ [Mozilla/5.0 (Windows 98; ?) Opera 7.0*]
9827
+ Parent=Opera 7.0
9828
+ Platform=Win98
9829
+ Win32=true
9830
+
9831
+ [Mozilla/5.0 (Windows ME; ?) Opera 7.0*]
9832
+ Parent=Opera 7.0
9833
+ Platform=WinME
9834
+ Win32=true
9835
+
9836
+ [Mozilla/5.0 (Windows NT 4.0; ?) Opera 7.0*]
9837
+ Parent=Opera 7.0
9838
+ Platform=WinNT
9839
+ Win32=true
9840
+
9841
+ [Mozilla/5.0 (Windows NT 5.1; ?) Opera 7.0*]
9842
+ Parent=Opera 7.0
9843
+ Platform=WinXP
9844
+ Win32=true
9845
+
9846
+ [Mozilla/5.0 (Windows XP; ?) Opera 7.0*]
9847
+ Parent=Opera 7.0
9848
+ Platform=WinXP
9849
+ Win32=true
9850
+
9851
+ [Opera/7.0* (Windows 2000; ?)*]
9852
+ Parent=Opera 7.0
9853
+ Platform=Win2000
9854
+ Win32=true
9855
+
9856
+ [Opera/7.0* (Windows 95; ?)*]
9857
+ Parent=Opera 7.0
9858
+ Platform=Win95
9859
+ Win32=true
9860
+
9861
+ [Opera/7.0* (Windows 98; ?)*]
9862
+ Parent=Opera 7.0
9863
+ Platform=Win98
9864
+ Win32=true
9865
+
9866
+ [Opera/7.0* (Windows ME; ?)*]
9867
+ Parent=Opera 7.0
9868
+ Platform=WinME
9869
+ Win32=true
9870
+
9871
+ [Opera/7.0* (Windows NT 4.0; ?)*]
9872
+ Parent=Opera 7.0
9873
+ Platform=WinNT
9874
+ Win32=true
9875
+
9876
+ [Opera/7.0* (Windows NT 5.0; ?)*]
9877
+ Parent=Opera 7.0
9878
+ Platform=Win2000
9879
+ Win32=true
9880
+
9881
+ [Opera/7.0* (Windows NT 5.1; ?)*]
9882
+ Parent=Opera 7.0
9883
+ Platform=WinXP
9884
+ Win32=true
9885
+
9886
+ [Opera/7.0* (Windows XP; ?)*]
9887
+ Parent=Opera 7.0
9888
+ Platform=WinXP
9889
+ Win32=true
9890
+
9891
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 7.1
9892
+
9893
+ [Opera 7.1]
9894
+ Parent=DefaultProperties
9895
+ Browser="Opera"
9896
+ Version=7.1
9897
+ MajorVer=7
9898
+ MinorVer=1
9899
+ Frames=true
9900
+ IFrames=true
9901
+ Tables=true
9902
+ Cookies=true
9903
+ BackgroundSounds=true
9904
+ JavaApplets=true
9905
+ JavaScript=true
9906
+ CssVersion=2
9907
+ supportsCSS=true
9908
+
9909
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows 2000) Opera 7.1*]
9910
+ Parent=Opera 7.1
9911
+ Platform=Win2000
9912
+ Win32=true
9913
+
9914
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows 95) Opera 7.1*]
9915
+ Parent=Opera 7.1
9916
+ Platform=Win95
9917
+ Win32=true
9918
+
9919
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows 98) Opera 7.1*]
9920
+ Parent=Opera 7.1
9921
+ Platform=Win98
9922
+ Win32=true
9923
+
9924
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows ME) Opera 7.1*]
9925
+ Parent=Opera 7.1
9926
+ Platform=WinME
9927
+ Win32=true
9928
+
9929
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows NT 4.0) Opera 7.1*]
9930
+ Parent=Opera 7.1
9931
+ Platform=WinNT
9932
+ Win32=true
9933
+
9934
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.0) Opera 7.1*]
9935
+ Parent=Opera 7.1
9936
+ Platform=Win2000
9937
+ Win32=true
9938
+
9939
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.1) Opera 7.1*]
9940
+ Parent=Opera 7.1
9941
+ Platform=WinXP
9942
+ Win32=true
9943
+
9944
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows XP) Opera 7.1*]
9945
+ Parent=Opera 7.1
9946
+ Platform=WinXP
9947
+ Win32=true
9948
+
9949
+ [Mozilla/?.* (Windows 2000; ?) Opera 7.1*]
9950
+ Parent=Opera 7.1
9951
+ Platform=Win2000
9952
+ Win32=true
9953
+
9954
+ [Mozilla/?.* (Windows 95; ?) Opera 7.1*]
9955
+ Parent=Opera 7.1
9956
+ Platform=Win95
9957
+ Win32=true
9958
+
9959
+ [Mozilla/?.* (Windows 98; ?) Opera 7.1*]
9960
+ Parent=Opera 7.1
9961
+ Platform=Win98
9962
+ Win32=true
9963
+
9964
+ [Mozilla/?.* (Windows ME; ?) Opera 7.1*]
9965
+ Parent=Opera 7.1
9966
+ Platform=WinME
9967
+ Win32=true
9968
+
9969
+ [Mozilla/?.* (Windows NT 4.0; U) Opera 7.1*]
9970
+ Parent=Opera 7.1
9971
+ Platform=WinNT
9972
+ Win32=true
9973
+
9974
+ [Mozilla/?.* (Windows NT 5.0; U) Opera 7.1*]
9975
+ Parent=Opera 7.1
9976
+ Platform=Win2000
9977
+ Win32=true
9978
+
9979
+ [Mozilla/?.* (Windows NT 5.1; ?) Opera 7.1*]
9980
+ Parent=Opera 7.1
9981
+ Platform=WinXP
9982
+ Win32=true
9983
+
9984
+ [Opera/7.1* (Linux*; ?)*]
9985
+ Parent=Opera 7.1
9986
+ Platform=Linux
9987
+
9988
+ [Opera/7.1* (Windows 95; ?)*]
9989
+ Parent=Opera 7.1
9990
+ Platform=Win95
9991
+ Win32=true
9992
+
9993
+ [Opera/7.1* (Windows 98; ?)*]
9994
+ Parent=Opera 7.1
9995
+ Platform=Win98
9996
+ Win32=true
9997
+
9998
+ [Opera/7.1* (Windows ME; ?)*]
9999
+ Parent=Opera 7.1
10000
+ Platform=WinME
10001
+ Win32=true
10002
+
10003
+ [Opera/7.1* (Windows NT 4.0; ?)*]
10004
+ Parent=Opera 7.1
10005
+ Platform=WinNT
10006
+ Win32=true
10007
+
10008
+ [Opera/7.1* (Windows NT 5.0; ?)*]
10009
+ Parent=Opera 7.1
10010
+ Platform=Win2000
10011
+ Win32=true
10012
+
10013
+ [Opera/7.1* (Windows NT 5.1; ?)*]
10014
+ Parent=Opera 7.1
10015
+ Platform=WinXP
10016
+ Win32=true
10017
+
10018
+ [Opera/7.1* (Windows XP; ?)*]
10019
+ Parent=Opera 7.1
10020
+ Platform=WinXP
10021
+ Win32=true
10022
+
10023
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 7.2
10024
+
10025
+ [Opera 7.2]
10026
+ Parent=DefaultProperties
10027
+ Browser="Opera"
10028
+ Version=7.2
10029
+ MajorVer=7
10030
+ MinorVer=2
10031
+ Frames=true
10032
+ IFrames=true
10033
+ Tables=true
10034
+ Cookies=true
10035
+ BackgroundSounds=true
10036
+ JavaApplets=true
10037
+ JavaScript=true
10038
+ CssVersion=2
10039
+ supportsCSS=true
10040
+
10041
+ [Mozilla/?.* (compatible; MSIE ?.*; Linux*) Opera 7.2*]
10042
+ Parent=Opera 7.2
10043
+ Platform=Linux
10044
+
10045
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows 2000) Opera 7.2*]
10046
+ Parent=Opera 7.2
10047
+ Platform=Win2000
10048
+ Win32=true
10049
+
10050
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows 95) Opera 7.2*]
10051
+ Parent=Opera 7.2
10052
+ Platform=Win95
10053
+ Win32=true
10054
+
10055
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows 98) Opera 7.2*]
10056
+ Parent=Opera 7.2
10057
+ Platform=Win98
10058
+ Win32=true
10059
+
10060
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows ME) Opera 7.2*]
10061
+ Parent=Opera 7.2
10062
+ Platform=WinME
10063
+ Win32=true
10064
+
10065
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows NT 4.0) Opera 7.2*]
10066
+ Parent=Opera 7.2
10067
+ Platform=WinNT
10068
+ Win32=true
10069
+
10070
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.0) Opera 7.2*]
10071
+ Parent=Opera 7.2
10072
+ Platform=Win2000
10073
+ Win32=true
10074
+
10075
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.1) Opera 7.2*]
10076
+ Parent=Opera 7.2
10077
+ Platform=WinXP
10078
+ Win32=true
10079
+
10080
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.2) Opera 7.2*]
10081
+ Parent=Opera 7.2
10082
+ Platform=Win2003
10083
+ Win32=true
10084
+
10085
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows XP) Opera 7.2*]
10086
+ Parent=Opera 7.2
10087
+ Platform=WinXP
10088
+ Win32=true
10089
+
10090
+ [Mozilla/?.* (Windows 2000; ?) Opera 7.2*]
10091
+ Parent=Opera 7.2
10092
+ Platform=Win2000
10093
+ Win32=true
10094
+
10095
+ [Mozilla/?.* (Windows 95; ?) Opera 7.2*]
10096
+ Parent=Opera 7.2
10097
+ Platform=Win95
10098
+ Win32=true
10099
+
10100
+ [Mozilla/?.* (Windows 98; ?) Opera 7.2*]
10101
+ Parent=Opera 7.2
10102
+ Platform=Win98
10103
+ Win32=true
10104
+
10105
+ [Mozilla/?.* (Windows ME; ?) Opera 7.2*]
10106
+ Parent=Opera 7.2
10107
+ Platform=WinME
10108
+ Win32=true
10109
+
10110
+ [Mozilla/?.* (Windows NT 4.0; U) Opera 7.2*]
10111
+ Parent=Opera 7.2
10112
+ Platform=WinNT
10113
+ Win32=true
10114
+
10115
+ [Mozilla/?.* (Windows NT 5.0; U) Opera 7.2*]
10116
+ Parent=Opera 7.2
10117
+ Platform=Win2000
10118
+ Win32=true
10119
+
10120
+ [Mozilla/?.* (Windows NT 5.1; ?) Opera 7.2*]
10121
+ Parent=Opera 7.2
10122
+ Platform=WinXP
10123
+ Win32=true
10124
+
10125
+ [Mozilla/?.* (Windows NT 5.2; ?) Opera 7.2*]
10126
+ Parent=Opera 7.2
10127
+ Platform=Win2003
10128
+ Win32=true
10129
+
10130
+ [Opera/7.2* (Linux*; ?)*]
10131
+ Parent=Opera 7.2
10132
+ Platform=Linux
10133
+
10134
+ [Opera/7.2* (Windows 95; ?)*]
10135
+ Parent=Opera 7.2
10136
+ Platform=Win95
10137
+ Win32=true
10138
+
10139
+ [Opera/7.2* (Windows 98; ?)*]
10140
+ Parent=Opera 7.2
10141
+ Platform=Win98
10142
+ Win32=true
10143
+
10144
+ [Opera/7.2* (Windows ME; ?)*]
10145
+ Parent=Opera 7.2
10146
+ Platform=WinME
10147
+ Win32=true
10148
+
10149
+ [Opera/7.2* (Windows NT 4.0; ?)*]
10150
+ Parent=Opera 7.2
10151
+ Platform=WinNT
10152
+ Win32=true
10153
+
10154
+ [Opera/7.2* (Windows NT 5.0; ?)*]
10155
+ Parent=Opera 7.2
10156
+ Platform=Win2000
10157
+ Win32=true
10158
+
10159
+ [Opera/7.2* (Windows NT 5.1; ?)*]
10160
+ Parent=Opera 7.2
10161
+ Platform=WinXP
10162
+ Win32=true
10163
+
10164
+ [Opera/7.2* (Windows NT 5.2; ?)*]
10165
+ Parent=Opera 7.2
10166
+ Platform=Win2003
10167
+ Win32=true
10168
+
10169
+ [Opera/7.2* (Windows XP; ?)*]
10170
+ Parent=Opera 7.2
10171
+ Platform=WinXP
10172
+ Win32=true
10173
+
10174
+ [Opera/7.2* (X11; FreeBSD*; ?)*]
10175
+ Parent=Opera 7.2
10176
+ Platform=FreeBSD
10177
+
10178
+ [Opera/7.2* (X11; Linux*; ?)*]
10179
+ Parent=Opera 7.2
10180
+ Platform=Linux
10181
+
10182
+ [Opera/7.2* (X11; SunOS*)*]
10183
+ Parent=Opera 7.2
10184
+ Platform=SunOS
10185
+
10186
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 7.5
10187
+
10188
+ [Opera 7.5]
10189
+ Parent=DefaultProperties
10190
+ Browser="Opera"
10191
+ Version=7.5
10192
+ MajorVer=7
10193
+ MinorVer=5
10194
+ Frames=true
10195
+ IFrames=true
10196
+ Tables=true
10197
+ Cookies=true
10198
+ BackgroundSounds=true
10199
+ JavaApplets=true
10200
+ JavaScript=true
10201
+ CssVersion=2
10202
+ supportsCSS=true
10203
+
10204
+ [Mozilla/?.* (compatible; MSIE ?.*; Linux*) Opera 7.5*]
10205
+ Parent=Opera 7.5
10206
+ Platform=Linux
10207
+
10208
+ [Mozilla/?.* (compatible; MSIE ?.*; Mac_PowerPC) Opera 7.5*]
10209
+ Parent=Opera 7.5
10210
+ Platform=MacPPC
10211
+
10212
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows 2000) Opera 7.5*]
10213
+ Parent=Opera 7.5
10214
+ Platform=Win2000
10215
+ Win32=true
10216
+
10217
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows 95) Opera 7.5*]
10218
+ Parent=Opera 7.5
10219
+ Platform=Win95
10220
+ Win32=true
10221
+
10222
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows 98) Opera 7.5*]
10223
+ Parent=Opera 7.5
10224
+ Platform=Win98
10225
+ Win32=true
10226
+
10227
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows ME) Opera 7.5*]
10228
+ Parent=Opera 7.5
10229
+ Platform=WinME
10230
+ Win32=true
10231
+
10232
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows NT 4.0) Opera 7.5*]
10233
+ Parent=Opera 7.5
10234
+ Platform=WinNT
10235
+ Win32=true
10236
+
10237
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.0) Opera 7.5*]
10238
+ Parent=Opera 7.5
10239
+ Platform=Win2000
10240
+ Win32=true
10241
+
10242
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.1) Opera 7.5*]
10243
+ Parent=Opera 7.5
10244
+ Platform=WinXP
10245
+ Win32=true
10246
+
10247
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.2) Opera 7.5*]
10248
+ Parent=Opera 7.5
10249
+ Platform=Win2003
10250
+ Win32=true
10251
+
10252
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows XP) Opera 7.5*]
10253
+ Parent=Opera 7.5
10254
+ Platform=WinXP
10255
+ Win32=true
10256
+
10257
+ [Mozilla/?.* (compatible; MSIE ?.*; X11; Linux*) Opera 7.5*]
10258
+ Parent=Opera 7.5
10259
+ Platform=Linux
10260
+
10261
+ [Mozilla/?.* (Macintosh; *Mac OS X; ?) Opera 7.5*]
10262
+ Parent=Opera 7.5
10263
+ Platform=MacOSX
10264
+
10265
+ [Mozilla/?.* (Windows 2000; ?) Opera 7.5*]
10266
+ Parent=Opera 7.5
10267
+ Platform=Win2000
10268
+ Win32=true
10269
+
10270
+ [Mozilla/?.* (Windows 95; ?) Opera 7.5*]
10271
+ Parent=Opera 7.5
10272
+ Platform=Win95
10273
+ Win32=true
10274
+
10275
+ [Mozilla/?.* (Windows 98; ?) Opera 7.5*]
10276
+ Parent=Opera 7.5
10277
+ Platform=Win98
10278
+ Win32=true
10279
+
10280
+ [Mozilla/?.* (Windows ME; ?) Opera 7.5*]
10281
+ Parent=Opera 7.5
10282
+ Platform=WinME
10283
+ Win32=true
10284
+
10285
+ [Mozilla/?.* (Windows NT 4.0; U) Opera 7.5*]
10286
+ Parent=Opera 7.5
10287
+ Platform=WinNT
10288
+ Win32=true
10289
+
10290
+ [Mozilla/?.* (Windows NT 5.0; U) Opera 7.5*]
10291
+ Parent=Opera 7.5
10292
+ Platform=Win2000
10293
+ Win32=true
10294
+
10295
+ [Mozilla/?.* (Windows NT 5.1; ?) Opera 7.5*]
10296
+ Parent=Opera 7.5
10297
+ Platform=WinXP
10298
+ Win32=true
10299
+
10300
+ [Mozilla/?.* (Windows NT 5.2; ?) Opera 7.5*]
10301
+ Parent=Opera 7.5
10302
+ Platform=Win2003
10303
+ Win32=true
10304
+
10305
+ [Mozilla/?.* (X11; Linux*; ?) Opera 7.5*]
10306
+ Parent=Opera 7.5
10307
+ Platform=Linux
10308
+
10309
+ [Opera/7.5* (Linux*; ?)*]
10310
+ Parent=Opera 7.5
10311
+ Platform=Linux
10312
+
10313
+ [Opera/7.5* (Macintosh; *Mac OS X; ?)*]
10314
+ Parent=Opera 7.5
10315
+ Platform=MacOSX
10316
+
10317
+ [Opera/7.5* (Windows 95; ?)*]
10318
+ Parent=Opera 7.5
10319
+ Platform=Win95
10320
+ Win32=true
10321
+
10322
+ [Opera/7.5* (Windows 98; ?)*]
10323
+ Parent=Opera 7.5
10324
+ Platform=Win98
10325
+ Win32=true
10326
+
10327
+ [Opera/7.5* (Windows ME; ?)*]
10328
+ Parent=Opera 7.5
10329
+ Platform=WinME
10330
+ Win32=true
10331
+
10332
+ [Opera/7.5* (Windows NT 4.0; ?)*]
10333
+ Parent=Opera 7.5
10334
+ Platform=WinNT
10335
+ Win32=true
10336
+
10337
+ [Opera/7.5* (Windows NT 5.0; ?)*]
10338
+ Parent=Opera 7.5
10339
+ Platform=Win2000
10340
+ Win32=true
10341
+
10342
+ [Opera/7.5* (Windows NT 5.1; ?)*]
10343
+ Parent=Opera 7.5
10344
+ Platform=WinXP
10345
+ Win32=true
10346
+
10347
+ [Opera/7.5* (Windows NT 5.2; ?)*]
10348
+ Parent=Opera 7.5
10349
+ Platform=Win2003
10350
+ Win32=true
10351
+
10352
+ [Opera/7.5* (Windows XP; ?)*]
10353
+ Parent=Opera 7.5
10354
+ Platform=WinXP
10355
+ Win32=true
10356
+
10357
+ [Opera/7.5* (X11; FreeBSD*; ?)*]
10358
+ Parent=Opera 7.5
10359
+ Platform=FreeBSD
10360
+
10361
+ [Opera/7.5* (X11; Linux*; ?)*]
10362
+ Parent=Opera 7.5
10363
+ Platform=Linux
10364
+
10365
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 7.6
10366
+
10367
+ [Opera 7.6]
10368
+ Parent=DefaultProperties
10369
+ Browser="Opera"
10370
+ Version=7.6
10371
+ MajorVer=7
10372
+ MinorVer=6
10373
+ Frames=true
10374
+ IFrames=true
10375
+ Tables=true
10376
+ Cookies=true
10377
+ BackgroundSounds=true
10378
+ JavaApplets=true
10379
+ JavaScript=true
10380
+ CssVersion=2
10381
+ supportsCSS=true
10382
+
10383
+ [Mozilla/?.* (compatible; MSIE ?.*; Linux*) Opera 7.6*]
10384
+ Parent=Opera 7.6
10385
+ Platform=Linux
10386
+
10387
+ [Mozilla/?.* (compatible; MSIE ?.*; Mac_PowerPC) Opera 7.6*]
10388
+ Parent=Opera 7.6
10389
+ Platform=MacPPC
10390
+
10391
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows 2000) Opera 7.6*]
10392
+ Parent=Opera 7.6
10393
+ Platform=Win2000
10394
+ Win32=true
10395
+
10396
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows 95) Opera 7.6*]
10397
+ Parent=Opera 7.6
10398
+ Platform=Win95
10399
+ Win32=true
10400
+
10401
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows 98) Opera 7.6*]
10402
+ Parent=Opera 7.6
10403
+ Platform=Win98
10404
+ Win32=true
10405
+
10406
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows ME) Opera 7.6*]
10407
+ Parent=Opera 7.6
10408
+ Platform=WinME
10409
+ Win32=true
10410
+
10411
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows NT 4.0) Opera 7.6*]
10412
+ Parent=Opera 7.6
10413
+ Platform=WinNT
10414
+ Win32=true
10415
+
10416
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.0) Opera 7.6*]
10417
+ Parent=Opera 7.6
10418
+ Platform=Win2000
10419
+ Win32=true
10420
+
10421
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.1) Opera 7.6*]
10422
+ Parent=Opera 7.6
10423
+ Platform=WinXP
10424
+ Win32=true
10425
+
10426
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.2) Opera 7.6*]
10427
+ Parent=Opera 7.6
10428
+ Platform=Win2003
10429
+ Win32=true
10430
+
10431
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows XP) Opera 7.6*]
10432
+ Parent=Opera 7.6
10433
+ Platform=WinXP
10434
+ Win32=true
10435
+
10436
+ [Mozilla/?.* (compatible; MSIE ?.*; X11; Linux*) Opera 7.6*]
10437
+ Parent=Opera 7.6
10438
+ Platform=Linux
10439
+
10440
+ [Mozilla/?.* (Macintosh; *Mac OS X; ?) Opera 7.6*]
10441
+ Parent=Opera 7.6
10442
+ Platform=MacOSX
10443
+
10444
+ [Mozilla/?.* (Windows 2000; ?) Opera 7.6*]
10445
+ Parent=Opera 7.6
10446
+ Platform=Win2000
10447
+ Win32=true
10448
+
10449
+ [Mozilla/?.* (Windows 95; ?) Opera 7.6*]
10450
+ Parent=Opera 7.6
10451
+ Platform=Win95
10452
+ Win32=true
10453
+
10454
+ [Mozilla/?.* (Windows 98; ?) Opera 7.6*]
10455
+ Parent=Opera 7.6
10456
+ Platform=Win98
10457
+ Win32=true
10458
+
10459
+ [Mozilla/?.* (Windows ME; ?) Opera 7.6*]
10460
+ Parent=Opera 7.6
10461
+ Platform=WinME
10462
+ Win32=true
10463
+
10464
+ [Mozilla/?.* (Windows NT 4.0; U) Opera 7.6*]
10465
+ Parent=Opera 7.6
10466
+ Platform=WinNT
10467
+ Win32=true
10468
+
10469
+ [Mozilla/?.* (Windows NT 5.0; U) Opera 7.6*]
10470
+ Parent=Opera 7.6
10471
+ Platform=Win2000
10472
+ Win32=true
10473
+
10474
+ [Mozilla/?.* (Windows NT 5.1; ?) Opera 7.6*]
10475
+ Parent=Opera 7.6
10476
+ Platform=WinXP
10477
+ Win32=true
10478
+
10479
+ [Mozilla/?.* (Windows NT 5.2; ?) Opera 7.6*]
10480
+ Parent=Opera 7.6
10481
+ Platform=Win2003
10482
+ Win32=true
10483
+
10484
+ [Mozilla/?.* (X11; Linux*; ?) Opera 7.6*]
10485
+ Parent=Opera 7.6
10486
+ Platform=Linux
10487
+
10488
+ [Opera/7.6* (Linux*)*]
10489
+ Parent=Opera 7.6
10490
+ Platform=Linux
10491
+
10492
+ [Opera/7.6* (Macintosh; *Mac OS X; ?)*]
10493
+ Parent=Opera 7.6
10494
+ Platform=MacOSX
10495
+
10496
+ [Opera/7.6* (Windows 95*)*]
10497
+ Parent=Opera 7.6
10498
+ Platform=Win95
10499
+ Win32=true
10500
+
10501
+ [Opera/7.6* (Windows 98*)*]
10502
+ Parent=Opera 7.6
10503
+ Platform=Win98
10504
+ Win32=true
10505
+
10506
+ [Opera/7.6* (Windows ME*)*]
10507
+ Parent=Opera 7.6
10508
+ Platform=WinME
10509
+ Win32=true
10510
+
10511
+ [Opera/7.6* (Windows NT 4.0*)*]
10512
+ Parent=Opera 7.6
10513
+ Platform=WinNT
10514
+ Win32=true
10515
+
10516
+ [Opera/7.6* (Windows NT 5.0*)*]
10517
+ Parent=Opera 7.6
10518
+ Platform=Win2000
10519
+ Win32=true
10520
+
10521
+ [Opera/7.6* (Windows NT 5.1*)*]
10522
+ Parent=Opera 7.6
10523
+ Platform=WinXP
10524
+ Win32=true
10525
+
10526
+ [Opera/7.6* (Windows NT 5.2*)*]
10527
+ Parent=Opera 7.6
10528
+ Platform=Win2003
10529
+ Win32=true
10530
+
10531
+ [Opera/7.6* (Windows XP*)*]
10532
+ Parent=Opera 7.6
10533
+ Platform=WinXP
10534
+ Win32=true
10535
+
10536
+ [Opera/7.6* (X11; FreeBSD*)*]
10537
+ Parent=Opera 7.6
10538
+ Platform=FreeBSD
10539
+
10540
+ [Opera/7.6* (X11; Linux*)*]
10541
+ Parent=Opera 7.6
10542
+ Platform=Linux
10543
+
10544
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 8.0
10545
+
10546
+ [Opera 8.0]
10547
+ Parent=DefaultProperties
10548
+ Browser="Opera"
10549
+ Version=8.0
10550
+ MajorVer=8
10551
+ Frames=true
10552
+ IFrames=true
10553
+ Tables=true
10554
+ Cookies=true
10555
+ BackgroundSounds=true
10556
+ JavaApplets=true
10557
+ JavaScript=true
10558
+ CssVersion=2
10559
+ supportsCSS=true
10560
+
10561
+ [Mozilla/?.* (compatible; MSIE ?.*; Linux*) Opera 8.0*]
10562
+ Parent=Opera 8.0
10563
+ Platform=Linux
10564
+
10565
+ [Mozilla/?.* (compatible; MSIE ?.*; Mac_PowerPC Mac OS X; *) Opera 8.0*]
10566
+ Parent=Opera 8.0
10567
+ Platform=MacOSX
10568
+
10569
+ [Mozilla/?.* (compatible; MSIE ?.*; Mac_PowerPC) Opera 8.0*]
10570
+ Parent=Opera 8.0
10571
+ Platform=MacPPC
10572
+
10573
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows 2000*) Opera 8.0*]
10574
+ Parent=Opera 8.0
10575
+ Platform=Win2000
10576
+ Win32=true
10577
+
10578
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows 95*) Opera 8.0*]
10579
+ Parent=Opera 8.0
10580
+ Platform=Win95
10581
+ Win32=true
10582
+
10583
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows 98*) Opera 8.0*]
10584
+ Parent=Opera 8.0
10585
+ Platform=Win98
10586
+ Win32=true
10587
+
10588
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows CE) Opera 8.0*]
10589
+ Parent=Opera 8.0
10590
+ Platform=WinCE
10591
+ Win32=true
10592
+
10593
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows ME*) Opera 8.0*]
10594
+ Parent=Opera 8.0
10595
+ Platform=WinME
10596
+ Win32=true
10597
+
10598
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows NT 4.0*) Opera 8.0*]
10599
+ Parent=Opera 8.0
10600
+ Platform=WinNT
10601
+ Win32=true
10602
+
10603
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.0*) Opera 8.0*]
10604
+ Parent=Opera 8.0
10605
+ Platform=Win2000
10606
+ Win32=true
10607
+
10608
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.1*) Opera 8.0*]
10609
+ Parent=Opera 8.0
10610
+ Platform=WinXP
10611
+ Win32=true
10612
+
10613
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.2*) Opera 8.0*]
10614
+ Parent=Opera 8.0
10615
+ Platform=Win2003
10616
+ Win32=true
10617
+
10618
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows XP*) Opera 8.0*]
10619
+ Parent=Opera 8.0
10620
+ Platform=WinXP
10621
+ Win32=true
10622
+
10623
+ [Mozilla/?.* (compatible; MSIE ?.*; X11; FreeBSD*) Opera 8.0*]
10624
+ Parent=Opera 8.0
10625
+ Platform=FreeBSD
10626
+
10627
+ [Mozilla/?.* (compatible; MSIE ?.*; X11; Linux*) Opera 8.0*]
10628
+ Parent=Opera 8.0
10629
+ Platform=Linux
10630
+
10631
+ [Mozilla/?.* (Macintosh; *Mac OS X; ?) Opera 8.0*]
10632
+ Parent=Opera 8.0
10633
+ Platform=MacOSX
10634
+
10635
+ [Mozilla/?.* (Windows 2000; *) Opera 8.0*]
10636
+ Parent=Opera 8.0
10637
+ Platform=Win2000
10638
+ Win32=true
10639
+
10640
+ [Mozilla/?.* (Windows 95; *) Opera 8.0*]
10641
+ Parent=Opera 8.0
10642
+ Platform=Win95
10643
+ Win32=true
10644
+
10645
+ [Mozilla/?.* (Windows 98; *) Opera 8.0*]
10646
+ Parent=Opera 8.0
10647
+ Platform=Win98
10648
+ Win32=true
10649
+
10650
+ [Mozilla/?.* (Windows ME; *) Opera 8.0*]
10651
+ Parent=Opera 8.0
10652
+ Platform=WinME
10653
+ Win32=true
10654
+
10655
+ [Mozilla/?.* (Windows NT 4.0; *) Opera 8.0*]
10656
+ Parent=Opera 8.0
10657
+ Platform=WinNT
10658
+ Win32=true
10659
+
10660
+ [Mozilla/?.* (Windows NT 5.0; *) Opera 8.0*]
10661
+ Parent=Opera 8.0
10662
+ Platform=Win2000
10663
+ Win32=true
10664
+
10665
+ [Mozilla/?.* (Windows NT 5.1; *) Opera 8.0*]
10666
+ Parent=Opera 8.0
10667
+ Platform=WinXP
10668
+ Win32=true
10669
+
10670
+ [Mozilla/?.* (Windows NT 5.2; *) Opera 8.0*]
10671
+ Parent=Opera 8.0
10672
+ Platform=Win2003
10673
+ Win32=true
10674
+
10675
+ [Mozilla/?.* (X11; Linux*; *) Opera 8.0*]
10676
+ Parent=Opera 8.0
10677
+ Platform=Linux
10678
+
10679
+ [Opera/8.0* (Linux*)*]
10680
+ Parent=Opera 8.0
10681
+ Platform=Linux
10682
+
10683
+ [Opera/8.0* (Macintosh; *Mac OS X; *)*]
10684
+ Parent=Opera 8.0
10685
+ Platform=MacOSX
10686
+
10687
+ [Opera/8.0* (Windows 95*)*]
10688
+ Parent=Opera 8.0
10689
+ Platform=Win95
10690
+ Win32=true
10691
+
10692
+ [Opera/8.0* (Windows 98*)*]
10693
+ Parent=Opera 8.0
10694
+ Platform=Win98
10695
+ Win32=true
10696
+
10697
+ [Opera/8.0* (Windows CE*)*]
10698
+ Parent=Opera 8.0
10699
+ Platform=WinCE
10700
+ Win32=true
10701
+
10702
+ [Opera/8.0* (Windows ME*)*]
10703
+ Parent=Opera 8.0
10704
+ Platform=WinME
10705
+ Win32=true
10706
+
10707
+ [Opera/8.0* (Windows NT 4.0*)*]
10708
+ Parent=Opera 8.0
10709
+ Platform=WinNT
10710
+ Win32=true
10711
+
10712
+ [Opera/8.0* (Windows NT 5.0*)*]
10713
+ Parent=Opera 8.0
10714
+ Platform=Win2000
10715
+ Win32=true
10716
+
10717
+ [Opera/8.0* (Windows NT 5.1*)*]
10718
+ Parent=Opera 8.0
10719
+ Platform=WinXP
10720
+ Win32=true
10721
+
10722
+ [Opera/8.0* (Windows NT 5.2*)*]
10723
+ Parent=Opera 8.0
10724
+ Platform=Win2003
10725
+ Win32=true
10726
+
10727
+ [Opera/8.0* (Windows XP*)*]
10728
+ Parent=Opera 8.0
10729
+ Platform=WinXP
10730
+ Win32=true
10731
+
10732
+ [Opera/8.0* (X11; FreeBSD*)*]
10733
+ Parent=Opera 8.0
10734
+ Platform=FreeBSD
10735
+
10736
+ [Opera/8.0* (X11; Linux*)*]
10737
+ Parent=Opera 8.0
10738
+ Platform=Linux
10739
+
10740
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 8.1
10741
+
10742
+ [Opera 8.1]
10743
+ Parent=DefaultProperties
10744
+ Browser="Opera"
10745
+ Version=8.1
10746
+ MajorVer=8
10747
+ MinorVer=1
10748
+ Frames=true
10749
+ IFrames=true
10750
+ Tables=true
10751
+ Cookies=true
10752
+ BackgroundSounds=true
10753
+ JavaApplets=true
10754
+ JavaScript=true
10755
+ CssVersion=2
10756
+ supportsCSS=true
10757
+
10758
+ [Mozilla/?.* (compatible; MSIE ?.*; Linux*) Opera 8.1*]
10759
+ Parent=Opera 8.1
10760
+ Platform=Linux
10761
+
10762
+ [Mozilla/?.* (compatible; MSIE ?.*; Mac_PowerPC) Opera 8.1*]
10763
+ Parent=Opera 8.1
10764
+ Platform=MacPPC
10765
+
10766
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows 2000*) Opera 8.1*]
10767
+ Parent=Opera 8.1
10768
+ Platform=Win2000
10769
+ Win32=true
10770
+
10771
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows 95*) Opera 8.1*]
10772
+ Parent=Opera 8.1
10773
+ Platform=Win95
10774
+ Win32=true
10775
+
10776
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows 98*) Opera 8.1*]
10777
+ Parent=Opera 8.1
10778
+ Platform=Win98
10779
+ Win32=true
10780
+
10781
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows CE) Opera 8.1*]
10782
+ Parent=Opera 8.1
10783
+ Platform=WinCE
10784
+ Win32=true
10785
+
10786
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows ME*) Opera 8.1*]
10787
+ Parent=Opera 8.1
10788
+ Platform=WinME
10789
+ Win32=true
10790
+
10791
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows NT 4.0*) Opera 8.1*]
10792
+ Parent=Opera 8.1
10793
+ Platform=WinNT
10794
+ Win32=true
10795
+
10796
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.0*) Opera 8.1*]
10797
+ Parent=Opera 8.1
10798
+ Platform=Win2000
10799
+ Win32=true
10800
+
10801
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.1*) Opera 8.1*]
10802
+ Parent=Opera 8.1
10803
+ Platform=WinXP
10804
+ Win32=true
10805
+
10806
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.2*) Opera 8.1*]
10807
+ Parent=Opera 8.1
10808
+ Platform=Win2003
10809
+ Win32=true
10810
+
10811
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows XP*) Opera 8.1*]
10812
+ Parent=Opera 8.1
10813
+ Platform=WinXP
10814
+ Win32=true
10815
+
10816
+ [Mozilla/?.* (compatible; MSIE ?.*; X11; FreeBSD*) Opera 8.1*]
10817
+ Parent=Opera 8.1
10818
+ Platform=FreeBSD
10819
+
10820
+ [Mozilla/?.* (compatible; MSIE ?.*; X11; Linux*) Opera 8.1*]
10821
+ Parent=Opera 8.1
10822
+ Platform=Linux
10823
+
10824
+ [Mozilla/?.* (Macintosh; *Mac OS X; ?) Opera 8.1*]
10825
+ Parent=Opera 8.1
10826
+ Platform=MacOSX
10827
+
10828
+ [Mozilla/?.* (Windows 2000; *) Opera 8.1*]
10829
+ Parent=Opera 8.1
10830
+ Platform=Win2000
10831
+ Win32=true
10832
+
10833
+ [Mozilla/?.* (Windows 95; *) Opera 8.1*]
10834
+ Parent=Opera 8.1
10835
+ Platform=Win95
10836
+ Win32=true
10837
+
10838
+ [Mozilla/?.* (Windows 98; *) Opera 8.1*]
10839
+ Parent=Opera 8.1
10840
+ Platform=Win98
10841
+ Win32=true
10842
+
10843
+ [Mozilla/?.* (Windows ME; *) Opera 8.1*]
10844
+ Parent=Opera 8.1
10845
+ Platform=WinME
10846
+ Win32=true
10847
+
10848
+ [Mozilla/?.* (Windows NT 4.0; *) Opera 8.1*]
10849
+ Parent=Opera 8.1
10850
+ Platform=WinNT
10851
+ Win32=true
10852
+
10853
+ [Mozilla/?.* (Windows NT 5.0; *) Opera 8.1*]
10854
+ Parent=Opera 8.1
10855
+ Platform=Win2000
10856
+ Win32=true
10857
+
10858
+ [Mozilla/?.* (Windows NT 5.1; *) Opera 8.1*]
10859
+ Parent=Opera 8.1
10860
+ Platform=WinXP
10861
+ Win32=true
10862
+
10863
+ [Mozilla/?.* (Windows NT 5.2; *) Opera 8.1*]
10864
+ Parent=Opera 8.1
10865
+ Platform=Win2003
10866
+ Win32=true
10867
+
10868
+ [Mozilla/?.* (X11; Linux*; *) Opera 8.1*]
10869
+ Parent=Opera 8.1
10870
+ Platform=Linux
10871
+
10872
+ [Opera/8.1* (Linux*)*]
10873
+ Parent=Opera 8.1
10874
+ Platform=Linux
10875
+
10876
+ [Opera/8.1* (Macintosh; *Mac OS X; *)*]
10877
+ Parent=Opera 8.1
10878
+ Platform=MacOSX
10879
+
10880
+ [Opera/8.1* (Windows 95*)*]
10881
+ Parent=Opera 8.1
10882
+ Platform=Win95
10883
+ Win32=true
10884
+
10885
+ [Opera/8.1* (Windows 98*)*]
10886
+ Parent=Opera 8.1
10887
+ Platform=Win98
10888
+ Win32=true
10889
+
10890
+ [Opera/8.1* (Windows CE*)*]
10891
+ Parent=Opera 8.1
10892
+ Platform=WinCE
10893
+ Win32=true
10894
+
10895
+ [Opera/8.1* (Windows ME*)*]
10896
+ Parent=Opera 8.1
10897
+ Platform=WinME
10898
+ Win32=true
10899
+
10900
+ [Opera/8.1* (Windows NT 4.0*)*]
10901
+ Parent=Opera 8.1
10902
+ Platform=WinNT
10903
+ Win32=true
10904
+
10905
+ [Opera/8.1* (Windows NT 5.0*)*]
10906
+ Parent=Opera 8.1
10907
+ Platform=Win2000
10908
+ Win32=true
10909
+
10910
+ [Opera/8.1* (Windows NT 5.1*)*]
10911
+ Parent=Opera 8.1
10912
+ Platform=WinXP
10913
+ Win32=true
10914
+
10915
+ [Opera/8.1* (Windows NT 5.2*)*]
10916
+ Parent=Opera 8.1
10917
+ Platform=Win2003
10918
+ Win32=true
10919
+
10920
+ [Opera/8.1* (Windows XP*)*]
10921
+ Parent=Opera 8.1
10922
+ Platform=WinXP
10923
+ Win32=true
10924
+
10925
+ [Opera/8.1* (X11; FreeBSD*)*]
10926
+ Parent=Opera 8.1
10927
+ Platform=FreeBSD
10928
+
10929
+ [Opera/8.1* (X11; Linux*)*]
10930
+ Parent=Opera 8.1
10931
+ Platform=Linux
10932
+
10933
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 8.5
10934
+
10935
+ [Opera 8.5]
10936
+ Parent=DefaultProperties
10937
+ Browser="Opera"
10938
+ Version=8.5
10939
+ MajorVer=8
10940
+ MinorVer=5
10941
+ Frames=true
10942
+ IFrames=true
10943
+ Tables=true
10944
+ Cookies=true
10945
+ BackgroundSounds=true
10946
+ JavaApplets=true
10947
+ JavaScript=true
10948
+ CssVersion=2
10949
+ supportsCSS=true
10950
+
10951
+ [Mozilla/?.* (compatible; MSIE ?.*; Linux*) Opera 8.5*]
10952
+ Parent=Opera 8.5
10953
+ Platform=Linux
10954
+
10955
+ [Mozilla/?.* (compatible; MSIE ?.*; Mac_PowerPC Mac OS X;*) Opera 8.5*]
10956
+ Parent=Opera 8.5
10957
+ Platform=MacOSX
10958
+
10959
+ [Mozilla/?.* (compatible; MSIE ?.*; Mac_PowerPC) Opera 8.5*]
10960
+ Parent=Opera 8.5
10961
+ Platform=MacPPC
10962
+
10963
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows 2000*) Opera 8.5*]
10964
+ Parent=Opera 8.5
10965
+ Platform=Win2000
10966
+ Win32=true
10967
+
10968
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows 95*) Opera 8.5*]
10969
+ Parent=Opera 8.5
10970
+ Platform=Win95
10971
+ Win32=true
10972
+
10973
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows 98*) Opera 8.5*]
10974
+ Parent=Opera 8.5
10975
+ Platform=Win98
10976
+ Win32=true
10977
+
10978
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows CE) Opera 8.5*]
10979
+ Parent=Opera 8.5
10980
+ Platform=WinCE
10981
+ Win32=true
10982
+
10983
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows ME*) Opera 8.5*]
10984
+ Parent=Opera 8.5
10985
+ Platform=WinME
10986
+ Win32=true
10987
+
10988
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows NT 4.0*) Opera 8.5*]
10989
+ Parent=Opera 8.5
10990
+ Platform=WinNT
10991
+ Win32=true
10992
+
10993
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.0*) Opera 8.5*]
10994
+ Parent=Opera 8.5
10995
+ Platform=Win2000
10996
+ Win32=true
10997
+
10998
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.1*) Opera 8.5*]
10999
+ Parent=Opera 8.5
11000
+ Platform=WinXP
11001
+ Win32=true
11002
+
11003
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.2*) Opera 8.5*]
11004
+ Parent=Opera 8.5
11005
+ Platform=Win2003
11006
+ Win32=true
11007
+
11008
+ [Mozilla/?.* (compatible; MSIE ?.*; Windows XP*) Opera 8.5*]
11009
+ Parent=Opera 8.5
11010
+ Platform=WinXP
11011
+ Win32=true
11012
+
11013
+ [Mozilla/?.* (compatible; MSIE ?.*; X11; FreeBSD*) Opera 8.5*]
11014
+ Parent=Opera 8.5
11015
+ Platform=FreeBSD
11016
+
11017
+ [Mozilla/?.* (compatible; MSIE ?.*; X11; Linux*) Opera 8.5*]
11018
+ Parent=Opera 8.5
11019
+ Platform=Linux
11020
+
11021
+ [Mozilla/?.* (Macintosh; *Mac OS X; ?) Opera 8.5*]
11022
+ Parent=Opera 8.5
11023
+ Platform=MacOSX
11024
+
11025
+ [Mozilla/?.* (Macintosh; PPC Mac OS X;*) Opera 8.5*]
11026
+ Parent=Opera 8.5
11027
+ Platform=MacOSX
11028
+
11029
+ [Mozilla/?.* (Windows 2000; *) Opera 8.5*]
11030
+ Parent=Opera 8.5
11031
+ Platform=Win2000
11032
+ Win32=true
11033
+
11034
+ [Mozilla/?.* (Windows 95; *) Opera 8.5*]
11035
+ Parent=Opera 8.5
11036
+ Platform=Win95
11037
+ Win32=true
11038
+
11039
+ [Mozilla/?.* (Windows 98; *) Opera 8.5*]
11040
+ Parent=Opera 8.5
11041
+ Platform=Win98
11042
+ Win32=true
11043
+
11044
+ [Mozilla/?.* (Windows ME; *) Opera 8.5*]
11045
+ Parent=Opera 8.5
11046
+ Platform=WinME
11047
+ Win32=true
11048
+
11049
+ [Mozilla/?.* (Windows NT 4.0; *) Opera 8.5*]
11050
+ Parent=Opera 8.5
11051
+ Platform=WinNT
11052
+ Win32=true
11053
+
11054
+ [Mozilla/?.* (Windows NT 5.0; *) Opera 8.5*]
11055
+ Parent=Opera 8.5
11056
+ Platform=Win2000
11057
+ Win32=true
11058
+
11059
+ [Mozilla/?.* (Windows NT 5.1; *) Opera 8.5*]
11060
+ Parent=Opera 8.5
11061
+ Platform=WinXP
11062
+ Win32=true
11063
+
11064
+ [Mozilla/?.* (Windows NT 5.2; *) Opera 8.5*]
11065
+ Parent=Opera 8.5
11066
+ Platform=Win2003
11067
+ Win32=true
11068
+
11069
+ [Mozilla/?.* (X11; Linux*; *) Opera 8.5*]
11070
+ Parent=Opera 8.5
11071
+ Platform=Linux
11072
+
11073
+ [Opera/8.5* (Linux*)*]
11074
+ Parent=Opera 8.5
11075
+ Platform=Linux
11076
+
11077
+ [Opera/8.5* (Macintosh; *Mac OS X; *)*]
11078
+ Parent=Opera 8.5
11079
+ Platform=MacOSX
11080
+
11081
+ [Opera/8.5* (Windows 95*)*]
11082
+ Parent=Opera 8.5
11083
+ Platform=Win95
11084
+ Win32=true
11085
+
11086
+ [Opera/8.5* (Windows 98*)*]
11087
+ Parent=Opera 8.5
11088
+ Platform=Win98
11089
+ Win32=true
11090
+
11091
+ [Opera/8.5* (Windows CE*)*]
11092
+ Parent=Opera 8.5
11093
+ Platform=WinCE
11094
+ Win32=true
11095
+
11096
+ [Opera/8.5* (Windows ME*)*]
11097
+ Parent=Opera 8.5
11098
+ Platform=WinME
11099
+ Win32=true
11100
+
11101
+ [Opera/8.5* (Windows NT 4.0*)*]
11102
+ Parent=Opera 8.5
11103
+ Platform=WinNT
11104
+ Win32=true
11105
+
11106
+ [Opera/8.5* (Windows NT 5.0*)*]
11107
+ Parent=Opera 8.5
11108
+ Platform=Win2000
11109
+ Win32=true
11110
+
11111
+ [Opera/8.5* (Windows NT 5.1*)*]
11112
+ Parent=Opera 8.5
11113
+ Platform=WinXP
11114
+ Win32=true
11115
+
11116
+ [Opera/8.5* (Windows NT 5.2*)*]
11117
+ Parent=Opera 8.5
11118
+ Platform=Win2003
11119
+ Win32=true
11120
+
11121
+ [Opera/8.5* (Windows XP*)*]
11122
+ Parent=Opera 8.5
11123
+ Platform=WinXP
11124
+ Win32=true
11125
+
11126
+ [Opera/8.5* (X11; FreeBSD*)*]
11127
+ Parent=Opera 8.5
11128
+ Platform=FreeBSD
11129
+
11130
+ [Opera/8.5* (X11; Linux*)*]
11131
+ Parent=Opera 8.5
11132
+ Platform=Linux
11133
+
11134
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 9.0
11135
+
11136
+ [Opera 9.0]
11137
+ Parent=DefaultProperties
11138
+ Browser="Opera"
11139
+ Version=9.0
11140
+ MajorVer=9
11141
+ Frames=true
11142
+ IFrames=true
11143
+ Tables=true
11144
+ Cookies=true
11145
+ BackgroundSounds=true
11146
+ JavaApplets=true
11147
+ JavaScript=true
11148
+ CssVersion=2
11149
+ supportsCSS=true
11150
+
11151
+ [Mozilla/* (compatible; MSIE*; Linux*) Opera 9.0*]
11152
+ Parent=Opera 9.0
11153
+ Platform=Linux
11154
+
11155
+ [Mozilla/* (compatible; MSIE*; Mac_PowerPC Mac OS X;*) Opera 9.0*]
11156
+ Parent=Opera 9.0
11157
+ Platform=MacOSX
11158
+
11159
+ [Mozilla/* (compatible; MSIE*; Mac_PowerPC) Opera 9.0*]
11160
+ Parent=Opera 9.0
11161
+ Platform=MacPPC
11162
+
11163
+ [Mozilla/* (compatible; MSIE*; Windows 2000*) Opera 9.0*]
11164
+ Parent=Opera 9.0
11165
+ Platform=Win2000
11166
+ Win32=true
11167
+
11168
+ [Mozilla/* (compatible; MSIE*; Windows 95*) Opera 9.0*]
11169
+ Parent=Opera 9.0
11170
+ Platform=Win95
11171
+ Win32=true
11172
+
11173
+ [Mozilla/* (compatible; MSIE*; Windows 98*) Opera 9.0*]
11174
+ Parent=Opera 9.0
11175
+ Platform=Win98
11176
+ Win32=true
11177
+
11178
+ [Mozilla/* (compatible; MSIE*; Windows CE*) Opera 9.0*]
11179
+ Parent=Opera 9.0
11180
+ Platform=WinCE
11181
+ Win32=true
11182
+
11183
+ [Mozilla/* (compatible; MSIE*; Windows ME*) Opera 9.0*]
11184
+ Parent=Opera 9.0
11185
+ Platform=WinME
11186
+ Win32=true
11187
+
11188
+ [Mozilla/* (compatible; MSIE*; Windows NT 4.0*) Opera 9.0*]
11189
+ Parent=Opera 9.0
11190
+ Platform=WinNT
11191
+ Win32=true
11192
+
11193
+ [Mozilla/* (compatible; MSIE*; Windows NT 5.0*) Opera 9.0*]
11194
+ Parent=Opera 9.0
11195
+ Platform=Win2000
11196
+ Win32=true
11197
+
11198
+ [Mozilla/* (compatible; MSIE*; Windows NT 5.1*) Opera 9.0*]
11199
+ Parent=Opera 9.0
11200
+ Platform=WinXP
11201
+ Win32=true
11202
+
11203
+ [Mozilla/* (compatible; MSIE*; Windows NT 5.2*) Opera 9.0*]
11204
+ Parent=Opera 9.0
11205
+ Platform=Win2003
11206
+ Win32=true
11207
+
11208
+ [Mozilla/* (compatible; MSIE*; Windows NT 6.0*) Opera 9.0*]
11209
+ Parent=Opera 9.0
11210
+ Platform=WinVista
11211
+ Win32=true
11212
+
11213
+ [Mozilla/* (compatible; MSIE*; Windows XP*) Opera 9.0*]
11214
+ Parent=Opera 9.0
11215
+ Platform=WinXP
11216
+ Win32=true
11217
+
11218
+ [Mozilla/* (compatible; MSIE*; X11; FreeBSD*) Opera 9.0*]
11219
+ Parent=Opera 9.0
11220
+ Platform=FreeBSD
11221
+
11222
+ [Mozilla/* (compatible; MSIE*; X11; Linux*) Opera 9.0*]
11223
+ Parent=Opera 9.0
11224
+ Platform=Linux
11225
+
11226
+ [Mozilla/* (compatible; MSIE*; X11; SunOS*) Opera 9.0*]
11227
+ Parent=Opera 9.0
11228
+ Platform=SunOS
11229
+
11230
+ [Mozilla/* (Macintosh; *Mac OS X; ?) Opera 9.0*]
11231
+ Parent=Opera 9.0
11232
+ Platform=MacOSX
11233
+
11234
+ [Mozilla/* (Windows 2000;*) Opera 9.0*]
11235
+ Parent=Opera 9.0
11236
+ Platform=Win2000
11237
+ Win32=true
11238
+
11239
+ [Mozilla/* (Windows 95;*) Opera 9.0*]
11240
+ Parent=Opera 9.0
11241
+ Platform=Win95
11242
+ Win32=true
11243
+
11244
+ [Mozilla/* (Windows 98;*) Opera 9.0*]
11245
+ Parent=Opera 9.0
11246
+ Platform=Win98
11247
+ Win32=true
11248
+
11249
+ [Mozilla/* (Windows ME;*) Opera 9.0*]
11250
+ Parent=Opera 9.0
11251
+ Platform=WinME
11252
+ Win32=true
11253
+
11254
+ [Mozilla/* (Windows NT 4.0;*) Opera 9.0*]
11255
+ Parent=Opera 9.0
11256
+ Platform=WinNT
11257
+ Win32=true
11258
+
11259
+ [Mozilla/* (Windows NT 5.0;*) Opera 9.0*]
11260
+ Parent=Opera 9.0
11261
+ Platform=Win2000
11262
+ Win32=true
11263
+
11264
+ [Mozilla/* (Windows NT 5.1;*) Opera 9.0*]
11265
+ Parent=Opera 9.0
11266
+ Platform=WinXP
11267
+ Win32=true
11268
+
11269
+ [Mozilla/* (Windows NT 5.2;*) Opera 9.0*]
11270
+ Parent=Opera 9.0
11271
+ Platform=Win2003
11272
+ Win32=true
11273
+
11274
+ [Mozilla/* (X11; Linux*) Opera 9.0*]
11275
+ Parent=Opera 9.0
11276
+ Platform=Linux
11277
+
11278
+ [Opera/9.0* (Linux*)*]
11279
+ Parent=Opera 9.0
11280
+ Platform=Linux
11281
+
11282
+ [Opera/9.0* (Macintosh; *Mac OS X;*)*]
11283
+ Parent=Opera 9.0
11284
+ Platform=MacOSX
11285
+
11286
+ [Opera/9.0* (Windows 95*)*]
11287
+ Parent=Opera 9.0
11288
+ Platform=Win95
11289
+ Win32=true
11290
+
11291
+ [Opera/9.0* (Windows 98*)*]
11292
+ Parent=Opera 9.0
11293
+ Platform=Win98
11294
+ Win32=true
11295
+
11296
+ [Opera/9.0* (Windows CE*)*]
11297
+ Parent=Opera 9.0
11298
+ Platform=WinCE
11299
+ Win32=true
11300
+
11301
+ [Opera/9.0* (Windows ME*)*]
11302
+ Parent=Opera 9.0
11303
+ Platform=WinME
11304
+ Win32=true
11305
+
11306
+ [Opera/9.0* (Windows NT 4.0*)*]
11307
+ Parent=Opera 9.0
11308
+ Platform=WinNT
11309
+ Win32=true
11310
+
11311
+ [Opera/9.0* (Windows NT 5.0*)*]
11312
+ Parent=Opera 9.0
11313
+ Platform=Win2000
11314
+ Win32=true
11315
+
11316
+ [Opera/9.0* (Windows NT 5.1*)*]
11317
+ Parent=Opera 9.0
11318
+ Platform=WinXP
11319
+ Win32=true
11320
+
11321
+ [Opera/9.0* (Windows NT 5.2*)*]
11322
+ Parent=Opera 9.0
11323
+ Platform=Win2003
11324
+ Win32=true
11325
+
11326
+ [Opera/9.0* (Windows NT 6.0*)*]
11327
+ Parent=Opera 9.0
11328
+ Platform=WinVista
11329
+ Win32=true
11330
+
11331
+ [Opera/9.0* (Windows XP*)*]
11332
+ Parent=Opera 9.0
11333
+ Platform=WinXP
11334
+ Win32=true
11335
+
11336
+ [Opera/9.0* (X11; FreeBSD*)*]
11337
+ Parent=Opera 9.0
11338
+ Platform=FreeBSD
11339
+
11340
+ [Opera/9.0* (X11; Linux*)*]
11341
+ Parent=Opera 9.0
11342
+ Platform=Linux
11343
+
11344
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 9.1
11345
+
11346
+ [Opera 9.1]
11347
+ Parent=DefaultProperties
11348
+ Browser="Opera"
11349
+ Version=9.1
11350
+ MajorVer=9
11351
+ MinorVer=1
11352
+ Frames=true
11353
+ IFrames=true
11354
+ Tables=true
11355
+ Cookies=true
11356
+ BackgroundSounds=true
11357
+ JavaApplets=true
11358
+ JavaScript=true
11359
+ CssVersion=2
11360
+ supportsCSS=true
11361
+
11362
+ [Mozilla/* (compatible; MSIE*; Linux*) Opera 9.1*]
11363
+ Parent=Opera 9.1
11364
+ Platform=Linux
11365
+
11366
+ [Mozilla/* (compatible; MSIE*; Mac_PowerPC Mac OS X;*) Opera 9.1*]
11367
+ Parent=Opera 9.1
11368
+ Platform=MacOSX
11369
+
11370
+ [Mozilla/* (compatible; MSIE*; Mac_PowerPC;*) Opera 9.1*]
11371
+ Parent=Opera 9.1
11372
+ Platform=MacPPC
11373
+
11374
+ [Mozilla/* (compatible; MSIE*; Windows 2000*) Opera 9.1*]
11375
+ Parent=Opera 9.1
11376
+ Platform=Win2000
11377
+ Win32=true
11378
+
11379
+ [Mozilla/* (compatible; MSIE*; Windows 95*) Opera 9.1*]
11380
+ Parent=Opera 9.1
11381
+ Platform=Win95
11382
+ Win32=true
11383
+
11384
+ [Mozilla/* (compatible; MSIE*; Windows 98*) Opera 9.1*]
11385
+ Parent=Opera 9.1
11386
+ Platform=Win98
11387
+ Win32=true
11388
+
11389
+ [Mozilla/* (compatible; MSIE*; Windows CE*) Opera 9.1*]
11390
+ Parent=Opera 9.1
11391
+ Platform=WinCE
11392
+ Win32=true
11393
+
11394
+ [Mozilla/* (compatible; MSIE*; Windows ME*) Opera 9.1*]
11395
+ Parent=Opera 9.1
11396
+ Platform=WinME
11397
+ Win32=true
11398
+
11399
+ [Mozilla/* (compatible; MSIE*; Windows NT 4.0*) Opera 9.1*]
11400
+ Parent=Opera 9.1
11401
+ Platform=WinNT
11402
+ Win32=true
11403
+
11404
+ [Mozilla/* (compatible; MSIE*; Windows NT 5.0*) Opera 9.1*]
11405
+ Parent=Opera 9.1
11406
+ Platform=Win2000
11407
+ Win32=true
11408
+
11409
+ [Mozilla/* (compatible; MSIE*; Windows NT 5.1*) Opera 9.1*]
11410
+ Parent=Opera 9.1
11411
+ Platform=WinXP
11412
+ Win32=true
11413
+
11414
+ [Mozilla/* (compatible; MSIE*; Windows NT 5.2*) Opera 9.1*]
11415
+ Parent=Opera 9.1
11416
+ Platform=Win2003
11417
+ Win32=true
11418
+
11419
+ [Mozilla/* (compatible; MSIE*; Windows NT 6.0*) Opera 9.1*]
11420
+ Parent=Opera 9.1
11421
+ Platform=WinVista
11422
+ Win32=true
11423
+
11424
+ [Mozilla/* (compatible; MSIE*; Windows XP*) Opera 9.1*]
11425
+ Parent=Opera 9.1
11426
+ Platform=WinXP
11427
+ Win32=true
11428
+
11429
+ [Mozilla/* (compatible; MSIE*; X11; FreeBSD*) Opera 9.1*]
11430
+ Parent=Opera 9.1
11431
+ Platform=FreeBSD
11432
+
11433
+ [Mozilla/* (compatible; MSIE*; X11; Linux*) Opera 9.1*]
11434
+ Parent=Opera 9.1
11435
+ Platform=Linux
11436
+
11437
+ [Mozilla/* (compatible; MSIE*; X11; SunOS*) Opera 9.1*]
11438
+ Parent=Opera 9.1
11439
+ Platform=SunOS
11440
+
11441
+ [Mozilla/* (Macintosh; *Mac OS X; ?) Opera 9.1*]
11442
+ Parent=Opera 9.1
11443
+ Platform=MacOSX
11444
+
11445
+ [Mozilla/* (Windows 2000;*) Opera 9.1*]
11446
+ Parent=Opera 9.1
11447
+ Platform=Win2000
11448
+ Win32=true
11449
+
11450
+ [Mozilla/* (Windows 95;*) Opera 9.1*]
11451
+ Parent=Opera 9.1
11452
+ Platform=Win95
11453
+ Win32=true
11454
+
11455
+ [Mozilla/* (Windows 98;*) Opera 9.1*]
11456
+ Parent=Opera 9.1
11457
+ Platform=Win98
11458
+ Win32=true
11459
+
11460
+ [Mozilla/* (Windows ME;*) Opera 9.1*]
11461
+ Parent=Opera 9.1
11462
+ Platform=WinME
11463
+ Win32=true
11464
+
11465
+ [Mozilla/* (Windows NT 4.0;*) Opera 9.1*]
11466
+ Parent=Opera 9.1
11467
+ Platform=WinNT
11468
+ Win32=true
11469
+
11470
+ [Mozilla/* (Windows NT 5.0;*) Opera 9.1*]
11471
+ Parent=Opera 9.1
11472
+ Platform=Win2000
11473
+ Win32=true
11474
+
11475
+ [Mozilla/* (Windows NT 5.1;*) Opera 9.1*]
11476
+ Parent=Opera 9.1
11477
+ Platform=WinXP
11478
+ Win32=true
11479
+
11480
+ [Mozilla/* (Windows NT 5.2;*) Opera 9.1*]
11481
+ Parent=Opera 9.1
11482
+ Platform=Win2003
11483
+ Win32=true
11484
+
11485
+ [Mozilla/* (X11; Linux*) Opera 9.1*]
11486
+ Parent=Opera 9.1
11487
+ Platform=Linux
11488
+
11489
+ [Opera/9.1* (Linux*)*]
11490
+ Parent=Opera 9.1
11491
+ Platform=Linux
11492
+
11493
+ [Opera/9.1* (Macintosh; *Mac OS X;*)*]
11494
+ Parent=Opera 9.1
11495
+ Platform=MacOSX
11496
+
11497
+ [Opera/9.1* (Windows 95*)*]
11498
+ Parent=Opera 9.1
11499
+ Platform=Win95
11500
+ Win32=true
11501
+
11502
+ [Opera/9.1* (Windows 98*)*]
11503
+ Parent=Opera 9.1
11504
+ Platform=Win98
11505
+ Win32=true
11506
+
11507
+ [Opera/9.1* (Windows CE*)*]
11508
+ Parent=Opera 9.1
11509
+ Platform=WinCE
11510
+ Win32=true
11511
+
11512
+ [Opera/9.1* (Windows ME*)*]
11513
+ Parent=Opera 9.1
11514
+ Platform=WinME
11515
+ Win32=true
11516
+
11517
+ [Opera/9.1* (Windows NT 4.0*)*]
11518
+ Parent=Opera 9.1
11519
+ Platform=WinNT
11520
+ Win32=true
11521
+
11522
+ [Opera/9.1* (Windows NT 5.0*)*]
11523
+ Parent=Opera 9.1
11524
+ Platform=Win2000
11525
+ Win32=true
11526
+
11527
+ [Opera/9.1* (Windows NT 5.1*)*]
11528
+ Parent=Opera 9.1
11529
+ Platform=WinXP
11530
+ Win32=true
11531
+
11532
+ [Opera/9.1* (Windows NT 5.2*)*]
11533
+ Parent=Opera 9.1
11534
+ Platform=Win2003
11535
+ Win32=true
11536
+
11537
+ [Opera/9.1* (Windows NT 6.0*)*]
11538
+ Parent=Opera 9.1
11539
+ Platform=WinVista
11540
+ Win32=true
11541
+
11542
+ [Opera/9.1* (Windows XP*)*]
11543
+ Parent=Opera 9.1
11544
+ Platform=WinXP
11545
+ Win32=true
11546
+
11547
+ [Opera/9.1* (X11; FreeBSD*)*]
11548
+ Parent=Opera 9.1
11549
+ Platform=FreeBSD
11550
+
11551
+ [Opera/9.1* (X11; Linux*)*]
11552
+ Parent=Opera 9.1
11553
+ Platform=Linux
11554
+
11555
+ [Opera/9.1* (X11; SunOS*)*]
11556
+ Parent=Opera 9.1
11557
+ Platform=SunOS
11558
+
11559
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 9.2
11560
+
11561
+ [Opera 9.2]
11562
+ Parent=DefaultProperties
11563
+ Browser="Opera"
11564
+ Version=9.2
11565
+ MajorVer=9
11566
+ MinorVer=2
11567
+ Frames=true
11568
+ IFrames=true
11569
+ Tables=true
11570
+ Cookies=true
11571
+ BackgroundSounds=true
11572
+ JavaApplets=true
11573
+ JavaScript=true
11574
+ CssVersion=2
11575
+ supportsCSS=true
11576
+
11577
+ [Mozilla/* (compatible; MSIE*; Linux*) Opera 9.2*]
11578
+ Parent=Opera 9.2
11579
+ Platform=Linux
11580
+
11581
+ [Mozilla/* (compatible; MSIE*; Mac_PowerPC Mac OS X;*) Opera 9.2*]
11582
+ Parent=Opera 9.2
11583
+ Platform=MacOSX
11584
+
11585
+ [Mozilla/* (compatible; MSIE*; Mac_PowerPC) Opera 9.2*]
11586
+ Parent=Opera 9.2
11587
+ Platform=MacPPC
11588
+
11589
+ [Mozilla/* (compatible; MSIE*; Windows 2000*) Opera 9.2*]
11590
+ Parent=Opera 9.2
11591
+ Platform=Win2000
11592
+ Win32=true
11593
+
11594
+ [Mozilla/* (compatible; MSIE*; Windows 95*) Opera 9.2*]
11595
+ Parent=Opera 9.2
11596
+ Platform=Win95
11597
+ Win32=true
11598
+
11599
+ [Mozilla/* (compatible; MSIE*; Windows 98*) Opera 9.2*]
11600
+ Parent=Opera 9.2
11601
+ Platform=Win98
11602
+ Win32=true
11603
+
11604
+ [Mozilla/* (compatible; MSIE*; Windows CE*) Opera 9.2*]
11605
+ Parent=Opera 9.2
11606
+ Platform=WinCE
11607
+ Win32=true
11608
+
11609
+ [Mozilla/* (compatible; MSIE*; Windows ME*) Opera 9.2*]
11610
+ Parent=Opera 9.2
11611
+ Platform=WinME
11612
+ Win32=true
11613
+
11614
+ [Mozilla/* (compatible; MSIE*; Windows NT 4.0*) Opera 9.2*]
11615
+ Parent=Opera 9.2
11616
+ Platform=WinNT
11617
+ Win32=true
11618
+
11619
+ [Mozilla/* (compatible; MSIE*; Windows NT 5.0*) Opera 9.2*]
11620
+ Parent=Opera 9.2
11621
+ Platform=Win2000
11622
+ Win32=true
11623
+
11624
+ [Mozilla/* (compatible; MSIE*; Windows NT 5.1*) Opera 9.2*]
11625
+ Parent=Opera 9.2
11626
+ Platform=WinXP
11627
+ Win32=true
11628
+
11629
+ [Mozilla/* (compatible; MSIE*; Windows NT 5.2*) Opera 9.2*]
11630
+ Parent=Opera 9.2
11631
+ Platform=Win2003
11632
+ Win32=true
11633
+
11634
+ [Mozilla/* (compatible; MSIE*; Windows NT 6.0*) Opera 9.2*]
11635
+ Parent=Opera 9.2
11636
+ Platform=WinVista
11637
+ Win32=true
11638
+
11639
+ [Mozilla/* (compatible; MSIE*; Windows NT 6.1*) Opera 9.2*]
11640
+ Parent=Opera 9.2
11641
+ Platform=Win7
11642
+
11643
+ [Mozilla/* (compatible; MSIE*; Windows XP*) Opera 9.2*]
11644
+ Parent=Opera 9.2
11645
+ Platform=WinXP
11646
+ Win32=true
11647
+
11648
+ [Mozilla/* (compatible; MSIE*; X11; FreeBSD*) Opera 9.2*]
11649
+ Parent=Opera 9.2
11650
+ Platform=FreeBSD
11651
+
11652
+ [Mozilla/* (compatible; MSIE*; X11; Linux*) Opera 9.2*]
11653
+ Parent=Opera 9.2
11654
+ Platform=Linux
11655
+
11656
+ [Mozilla/* (compatible; MSIE*; X11; SunOS*) Opera 9.2*]
11657
+ Parent=Opera 9.2
11658
+ Platform=SunOS
11659
+
11660
+ [Mozilla/* (Macintosh; *Mac OS X; ?) Opera 9.2*]
11661
+ Parent=Opera 9.2
11662
+ Platform=MacOSX
11663
+
11664
+ [Mozilla/* (Windows 2000;*) Opera 9.2*]
11665
+ Parent=Opera 9.2
11666
+ Platform=Win2000
11667
+ Win32=true
11668
+
11669
+ [Mozilla/* (Windows 95;*) Opera 9.2*]
11670
+ Parent=Opera 9.2
11671
+ Platform=Win95
11672
+ Win32=true
11673
+
11674
+ [Mozilla/* (Windows 98;*) Opera 9.2*]
11675
+ Parent=Opera 9.2
11676
+ Platform=Win98
11677
+ Win32=true
11678
+
11679
+ [Mozilla/* (Windows ME;*) Opera 9.2*]
11680
+ Parent=Opera 9.2
11681
+ Platform=WinME
11682
+ Win32=true
11683
+
11684
+ [Mozilla/* (Windows NT 4.0;*) Opera 9.2*]
11685
+ Parent=Opera 9.2
11686
+ Platform=WinNT
11687
+ Win32=true
11688
+
11689
+ [Mozilla/* (Windows NT 5.0;*) Opera 9.2*]
11690
+ Parent=Opera 9.2
11691
+ Platform=Win2000
11692
+ Win32=true
11693
+
11694
+ [Mozilla/* (Windows NT 5.1;*) Opera 9.2*]
11695
+ Parent=Opera 9.2
11696
+ Platform=WinXP
11697
+ Win32=true
11698
+
11699
+ [Mozilla/* (Windows NT 5.2;*) Opera 9.2*]
11700
+ Parent=Opera 9.2
11701
+ Platform=Win2003
11702
+ Win32=true
11703
+
11704
+ [Mozilla/* (Windows NT 6.0;*) Opera 9.2*]
11705
+ Parent=Opera 9.2
11706
+ Platform=WinVista
11707
+
11708
+ [Mozilla/* (Windows NT 6.1;*) Opera 9.2*]
11709
+ Parent=Opera 9.2
11710
+ Platform=Win7
11711
+
11712
+ [Mozilla/* (X11; Linux*) Opera 9.2*]
11713
+ Parent=Opera 9.2
11714
+ Platform=Linux
11715
+
11716
+ [Opera/9.2* (Linux*)*]
11717
+ Parent=Opera 9.2
11718
+ Platform=Linux
11719
+
11720
+ [Opera/9.2* (Macintosh; *Mac OS X;*)*]
11721
+ Parent=Opera 9.2
11722
+ Platform=MacOSX
11723
+
11724
+ [Opera/9.2* (Windows 95*)*]
11725
+ Parent=Opera 9.2
11726
+ Platform=Win95
11727
+ Win32=true
11728
+
11729
+ [Opera/9.2* (Windows 98*)*]
11730
+ Parent=Opera 9.2
11731
+ Platform=Win98
11732
+ Win32=true
11733
+
11734
+ [Opera/9.2* (Windows CE*)*]
11735
+ Parent=Opera 9.2
11736
+ Platform=WinCE
11737
+ Win32=true
11738
+
11739
+ [Opera/9.2* (Windows ME*)*]
11740
+ Parent=Opera 9.2
11741
+ Platform=WinME
11742
+ Win32=true
11743
+
11744
+ [Opera/9.2* (Windows NT 4.0*)*]
11745
+ Parent=Opera 9.2
11746
+ Platform=WinNT
11747
+ Win32=true
11748
+
11749
+ [Opera/9.2* (Windows NT 5.0*)*]
11750
+ Parent=Opera 9.2
11751
+ Platform=Win2000
11752
+ Win32=true
11753
+
11754
+ [Opera/9.2* (Windows NT 5.1*)*]
11755
+ Parent=Opera 9.2
11756
+ Platform=WinXP
11757
+ Win32=true
11758
+
11759
+ [Opera/9.2* (Windows NT 5.2*)*]
11760
+ Parent=Opera 9.2
11761
+ Platform=Win2003
11762
+ Win32=true
11763
+
11764
+ [Opera/9.2* (Windows NT 6.0*)*]
11765
+ Parent=Opera 9.2
11766
+ Platform=WinVista
11767
+ Win32=true
11768
+
11769
+ [Opera/9.2* (Windows NT 6.1*)*]
11770
+ Parent=Opera 9.2
11771
+ Platform=Win7
11772
+
11773
+ [Opera/9.2* (Windows XP*)*]
11774
+ Parent=Opera 9.2
11775
+ Platform=WinXP
11776
+ Win32=true
11777
+
11778
+ [Opera/9.2* (X11; FreeBSD*)*]
11779
+ Parent=Opera 9.2
11780
+ Platform=FreeBSD
11781
+
11782
+ [Opera/9.2* (X11; Linux*)*]
11783
+ Parent=Opera 9.2
11784
+ Platform=Linux
11785
+
11786
+ [Opera/9.2* (X11; SunOS*)*]
11787
+ Parent=Opera 9.2
11788
+ Platform=SunOS
11789
+
11790
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 9.3
11791
+
11792
+ [Opera 9.3]
11793
+ Parent=DefaultProperties
11794
+ Browser="Opera"
11795
+ Version=9.3
11796
+ MajorVer=9
11797
+ MinorVer=3
11798
+ Frames=true
11799
+ IFrames=true
11800
+ Tables=true
11801
+ Cookies=true
11802
+ BackgroundSounds=true
11803
+ JavaApplets=true
11804
+ JavaScript=true
11805
+ CssVersion=2
11806
+ supportsCSS=true
11807
+
11808
+ [Mozilla/* (compatible; MSIE*; Linux*) Opera 9.3*]
11809
+ Parent=Opera 9.3
11810
+ Platform=Linux
11811
+
11812
+ [Mozilla/* (compatible; MSIE*; Mac_PowerPC Mac OS X;*) Opera 9.3*]
11813
+ Parent=Opera 9.3
11814
+ Platform=MacOSX
11815
+
11816
+ [Mozilla/* (compatible; MSIE*; Mac_PowerPC) Opera 9.3*]
11817
+ Parent=Opera 9.3
11818
+ Platform=MacPPC
11819
+
11820
+ [Mozilla/* (compatible; MSIE*; Windows 2000*) Opera 9.3*]
11821
+ Parent=Opera 9.3
11822
+ Platform=Win2000
11823
+ Win32=true
11824
+
11825
+ [Mozilla/* (compatible; MSIE*; Windows 95*) Opera 9.3*]
11826
+ Parent=Opera 9.3
11827
+ Platform=Win95
11828
+ Win32=true
11829
+
11830
+ [Mozilla/* (compatible; MSIE*; Windows 98*) Opera 9.3*]
11831
+ Parent=Opera 9.3
11832
+ Platform=Win98
11833
+ Win32=true
11834
+
11835
+ [Mozilla/* (compatible; MSIE*; Windows CE*) Opera 9.3*]
11836
+ Parent=Opera 9.3
11837
+ Platform=WinCE
11838
+ Win32=true
11839
+
11840
+ [Mozilla/* (compatible; MSIE*; Windows ME*) Opera 9.3*]
11841
+ Parent=Opera 9.3
11842
+ Platform=WinME
11843
+ Win32=true
11844
+
11845
+ [Mozilla/* (compatible; MSIE*; Windows NT 4.0*) Opera 9.3*]
11846
+ Parent=Opera 9.3
11847
+ Platform=WinNT
11848
+ Win32=true
11849
+
11850
+ [Mozilla/* (compatible; MSIE*; Windows NT 5.0*) Opera 9.3*]
11851
+ Parent=Opera 9.3
11852
+ Platform=Win2000
11853
+ Win32=true
11854
+
11855
+ [Mozilla/* (compatible; MSIE*; Windows NT 5.1*) Opera 9.3*]
11856
+ Parent=Opera 9.3
11857
+ Platform=WinXP
11858
+ Win32=true
11859
+
11860
+ [Mozilla/* (compatible; MSIE*; Windows NT 5.2*) Opera 9.3*]
11861
+ Parent=Opera 9.3
11862
+ Platform=Win2003
11863
+ Win32=true
11864
+
11865
+ [Mozilla/* (compatible; MSIE*; Windows NT 6.0*) Opera 9.3*]
11866
+ Parent=Opera 9.3
11867
+ Platform=WinVista
11868
+ Win32=true
11869
+
11870
+ [Mozilla/* (compatible; MSIE*; Windows NT 6.1*) Opera 9.3*]
11871
+ Parent=Opera 9.3
11872
+ Platform=Win7
11873
+
11874
+ [Mozilla/* (compatible; MSIE*; Windows XP*) Opera 9.3*]
11875
+ Parent=Opera 9.3
11876
+ Platform=WinXP
11877
+ Win32=true
11878
+
11879
+ [Mozilla/* (compatible; MSIE*; X11; FreeBSD*) Opera 9.3*]
11880
+ Parent=Opera 9.3
11881
+ Platform=FreeBSD
11882
+
11883
+ [Mozilla/* (compatible; MSIE*; X11; Linux*) Opera 9.3*]
11884
+ Parent=Opera 9.3
11885
+ Platform=Linux
11886
+
11887
+ [Mozilla/* (compatible; MSIE*; X11; SunOS*) Opera 9.3*]
11888
+ Parent=Opera 9.3
11889
+ Platform=SunOS
11890
+
11891
+ [Mozilla/* (Macintosh; *Mac OS X; ?) Opera 9.3*]
11892
+ Parent=Opera 9.3
11893
+ Platform=MacOSX
11894
+
11895
+ [Mozilla/* (Windows 2000;*) Opera 9.3*]
11896
+ Parent=Opera 9.3
11897
+ Platform=Win2000
11898
+ Win32=true
11899
+
11900
+ [Mozilla/* (Windows 95;*) Opera 9.3*]
11901
+ Parent=Opera 9.3
11902
+ Platform=Win95
11903
+ Win32=true
11904
+
11905
+ [Mozilla/* (Windows 98;*) Opera 9.3*]
11906
+ Parent=Opera 9.3
11907
+ Platform=Win98
11908
+ Win32=true
11909
+
11910
+ [Mozilla/* (Windows ME;*) Opera 9.3*]
11911
+ Parent=Opera 9.3
11912
+ Platform=WinME
11913
+ Win32=true
11914
+
11915
+ [Mozilla/* (Windows NT 4.0;*) Opera 9.3*]
11916
+ Parent=Opera 9.3
11917
+ Platform=WinNT
11918
+ Win32=true
11919
+
11920
+ [Mozilla/* (Windows NT 5.0;*) Opera 9.3*]
11921
+ Parent=Opera 9.3
11922
+ Platform=Win2000
11923
+ Win32=true
11924
+
11925
+ [Mozilla/* (Windows NT 5.1;*) Opera 9.3*]
11926
+ Parent=Opera 9.3
11927
+ Platform=WinXP
11928
+ Win32=true
11929
+
11930
+ [Mozilla/* (Windows NT 5.2;*) Opera 9.3*]
11931
+ Parent=Opera 9.3
11932
+ Platform=Win2003
11933
+ Win32=true
11934
+
11935
+ [Mozilla/* (Windows NT 6.0;*) Opera 9.3*]
11936
+ Parent=Opera 9.3
11937
+ Platform=WinVista
11938
+
11939
+ [Mozilla/* (Windows NT 6.1;*) Opera 9.3*]
11940
+ Parent=Opera 9.3
11941
+ Platform=Win7
11942
+
11943
+ [Mozilla/* (X11; Linux*) Opera 9.3*]
11944
+ Parent=Opera 9.3
11945
+ Platform=Linux
11946
+
11947
+ [Opera/9.3* (Linux*)*]
11948
+ Parent=Opera 9.3
11949
+ Platform=Linux
11950
+
11951
+ [Opera/9.3* (Macintosh; *Mac OS X;*)*]
11952
+ Parent=Opera 9.3
11953
+ Platform=MacOSX
11954
+
11955
+ [Opera/9.3* (Windows 95*)*]
11956
+ Parent=Opera 9.3
11957
+ Platform=Win95
11958
+ Win32=true
11959
+
11960
+ [Opera/9.3* (Windows 98*)*]
11961
+ Parent=Opera 9.3
11962
+ Platform=Win98
11963
+ Win32=true
11964
+
11965
+ [Opera/9.3* (Windows CE*)*]
11966
+ Parent=Opera 9.3
11967
+ Platform=WinCE
11968
+ Win32=true
11969
+
11970
+ [Opera/9.3* (Windows ME*)*]
11971
+ Parent=Opera 9.3
11972
+ Platform=WinME
11973
+ Win32=true
11974
+
11975
+ [Opera/9.3* (Windows NT 4.0*)*]
11976
+ Parent=Opera 9.3
11977
+ Platform=WinNT
11978
+ Win32=true
11979
+
11980
+ [Opera/9.3* (Windows NT 5.0*)*]
11981
+ Parent=Opera 9.3
11982
+ Platform=Win2000
11983
+ Win32=true
11984
+
11985
+ [Opera/9.3* (Windows NT 5.1*)*]
11986
+ Parent=Opera 9.3
11987
+ Platform=WinXP
11988
+ Win32=true
11989
+
11990
+ [Opera/9.3* (Windows NT 5.2*)*]
11991
+ Parent=Opera 9.3
11992
+ Platform=Win2003
11993
+ Win32=true
11994
+
11995
+ [Opera/9.3* (Windows NT 6.0*)*]
11996
+ Parent=Opera 9.3
11997
+ Platform=WinVista
11998
+ Win32=true
11999
+
12000
+ [Opera/9.3* (Windows NT 6.1*)*]
12001
+ Parent=Opera 9.3
12002
+ Platform=Win7
12003
+
12004
+ [Opera/9.3* (Windows XP*)*]
12005
+ Parent=Opera 9.3
12006
+ Platform=WinXP
12007
+ Win32=true
12008
+
12009
+ [Opera/9.3* (X11; FreeBSD*)*]
12010
+ Parent=Opera 9.3
12011
+ Platform=FreeBSD
12012
+
12013
+ [Opera/9.3* (X11; Linux*)*]
12014
+ Parent=Opera 9.3
12015
+ Platform=Linux
12016
+
12017
+ [Opera/9.3* (X11; SunOS*)*]
12018
+ Parent=Opera 9.3
12019
+ Platform=SunOS
12020
+
12021
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 9.4
12022
+
12023
+ [Opera 9.4]
12024
+ Parent=DefaultProperties
12025
+ Browser="Opera"
12026
+ Version=9.4
12027
+ MajorVer=9
12028
+ MinorVer=4
12029
+ Frames=true
12030
+ IFrames=true
12031
+ Tables=true
12032
+ Cookies=true
12033
+ BackgroundSounds=true
12034
+ JavaApplets=true
12035
+ JavaScript=true
12036
+ CssVersion=2
12037
+ supportsCSS=true
12038
+
12039
+ [Mozilla/* (compatible; MSIE*; Linux*) Opera 9.4*]
12040
+ Parent=Opera 9.4
12041
+ Platform=Linux
12042
+
12043
+ [Mozilla/* (compatible; MSIE*; Mac_PowerPC Mac OS X;*) Opera 9.4*]
12044
+ Parent=Opera 9.4
12045
+ Platform=MacOSX
12046
+
12047
+ [Mozilla/* (compatible; MSIE*; Mac_PowerPC) Opera 9.4*]
12048
+ Parent=Opera 9.4
12049
+ Platform=MacPPC
12050
+
12051
+ [Mozilla/* (compatible; MSIE*; Windows 2000*) Opera 9.4*]
12052
+ Parent=Opera 9.4
12053
+ Platform=Win2000
12054
+ Win32=true
12055
+
12056
+ [Mozilla/* (compatible; MSIE*; Windows 95*) Opera 9.4*]
12057
+ Parent=Opera 9.4
12058
+ Platform=Win95
12059
+ Win32=true
12060
+
12061
+ [Mozilla/* (compatible; MSIE*; Windows 98*) Opera 9.4*]
12062
+ Parent=Opera 9.4
12063
+ Platform=Win98
12064
+ Win32=true
12065
+
12066
+ [Mozilla/* (compatible; MSIE*; Windows CE*) Opera 9.4*]
12067
+ Parent=Opera 9.4
12068
+ Platform=WinCE
12069
+ Win32=true
12070
+
12071
+ [Mozilla/* (compatible; MSIE*; Windows ME*) Opera 9.4*]
12072
+ Parent=Opera 9.4
12073
+ Platform=WinME
12074
+ Win32=true
12075
+
12076
+ [Mozilla/* (compatible; MSIE*; Windows NT 4.0*) Opera 9.4*]
12077
+ Parent=Opera 9.4
12078
+ Platform=WinNT
12079
+ Win32=true
12080
+
12081
+ [Mozilla/* (compatible; MSIE*; Windows NT 5.0*) Opera 9.4*]
12082
+ Parent=Opera 9.4
12083
+ Platform=Win2000
12084
+ Win32=true
12085
+
12086
+ [Mozilla/* (compatible; MSIE*; Windows NT 5.1*) Opera 9.4*]
12087
+ Parent=Opera 9.4
12088
+ Platform=WinXP
12089
+ Win32=true
12090
+
12091
+ [Mozilla/* (compatible; MSIE*; Windows NT 5.2*) Opera 9.4*]
12092
+ Parent=Opera 9.4
12093
+ Platform=Win2003
12094
+ Win32=true
12095
+
12096
+ [Mozilla/* (compatible; MSIE*; Windows NT 6.0*) Opera 9.4*]
12097
+ Parent=Opera 9.4
12098
+ Platform=WinVista
12099
+ Win32=true
12100
+
12101
+ [Mozilla/* (compatible; MSIE*; Windows NT 6.1*) Opera 9.4*]
12102
+ Parent=Opera 9.4
12103
+ Platform=Win7
12104
+
12105
+ [Mozilla/* (compatible; MSIE*; Windows XP*) Opera 9.4*]
12106
+ Parent=Opera 9.4
12107
+ Platform=WinXP
12108
+ Win32=true
12109
+
12110
+ [Mozilla/* (compatible; MSIE*; X11; FreeBSD*) Opera 9.4*]
12111
+ Parent=Opera 9.4
12112
+ Platform=FreeBSD
12113
+
12114
+ [Mozilla/* (compatible; MSIE*; X11; Linux*) Opera 9.4*]
12115
+ Parent=Opera 9.4
12116
+ Platform=Linux
12117
+
12118
+ [Mozilla/* (compatible; MSIE*; X11; SunOS*) Opera 9.4*]
12119
+ Parent=Opera 9.4
12120
+ Platform=SunOS
12121
+
12122
+ [Mozilla/* (Macintosh; *Mac OS X; ?) Opera 9.4*]
12123
+ Parent=Opera 9.4
12124
+ Platform=MacOSX
12125
+
12126
+ [Mozilla/* (Windows 2000;*) Opera 9.4*]
12127
+ Parent=Opera 9.4
12128
+ Platform=Win2000
12129
+ Win32=true
12130
+
12131
+ [Mozilla/* (Windows 95;*) Opera 9.4*]
12132
+ Parent=Opera 9.4
12133
+ Platform=Win95
12134
+ Win32=true
12135
+
12136
+ [Mozilla/* (Windows 98;*) Opera 9.4*]
12137
+ Parent=Opera 9.4
12138
+ Platform=Win98
12139
+ Win32=true
12140
+
12141
+ [Mozilla/* (Windows ME;*) Opera 9.4*]
12142
+ Parent=Opera 9.4
12143
+ Platform=WinME
12144
+ Win32=true
12145
+
12146
+ [Mozilla/* (Windows NT 4.0;*) Opera 9.4*]
12147
+ Parent=Opera 9.4
12148
+ Platform=WinNT
12149
+ Win32=true
12150
+
12151
+ [Mozilla/* (Windows NT 5.0;*) Opera 9.4*]
12152
+ Parent=Opera 9.4
12153
+ Platform=Win2000
12154
+ Win32=true
12155
+
12156
+ [Mozilla/* (Windows NT 5.1;*) Opera 9.4*]
12157
+ Parent=Opera 9.4
12158
+ Platform=WinXP
12159
+ Win32=true
12160
+
12161
+ [Mozilla/* (Windows NT 5.2;*) Opera 9.4*]
12162
+ Parent=Opera 9.4
12163
+ Platform=Win2003
12164
+ Win32=true
12165
+
12166
+ [Mozilla/* (Windows NT 6.0;*) Opera 9.4*]
12167
+ Parent=Opera 9.4
12168
+ Platform=WinVista
12169
+
12170
+ [Mozilla/* (Windows NT 6.1;*) Opera 9.4*]
12171
+ Parent=Opera 9.4
12172
+ Platform=Win7
12173
+
12174
+ [Mozilla/* (X11; Linux*) Opera 9.4*]
12175
+ Parent=Opera 9.4
12176
+ Platform=Linux
12177
+
12178
+ [Opera/9.4* (Linux*)*]
12179
+ Parent=Opera 9.4
12180
+ Platform=Linux
12181
+
12182
+ [Opera/9.4* (Macintosh; *Mac OS X;*)*]
12183
+ Parent=Opera 9.4
12184
+ Platform=MacOSX
12185
+
12186
+ [Opera/9.4* (Windows 95*)*]
12187
+ Parent=Opera 9.4
12188
+ Platform=Win95
12189
+ Win32=true
12190
+
12191
+ [Opera/9.4* (Windows 98*)*]
12192
+ Parent=Opera 9.4
12193
+ Platform=Win98
12194
+ Win32=true
12195
+
12196
+ [Opera/9.4* (Windows CE*)*]
12197
+ Parent=Opera 9.4
12198
+ Platform=WinCE
12199
+ Win32=true
12200
+
12201
+ [Opera/9.4* (Windows ME*)*]
12202
+ Parent=Opera 9.4
12203
+ Platform=WinME
12204
+ Win32=true
12205
+
12206
+ [Opera/9.4* (Windows NT 4.0*)*]
12207
+ Parent=Opera 9.4
12208
+ Platform=WinNT
12209
+ Win32=true
12210
+
12211
+ [Opera/9.4* (Windows NT 5.0*)*]
12212
+ Parent=Opera 9.4
12213
+ Platform=Win2000
12214
+ Win32=true
12215
+
12216
+ [Opera/9.4* (Windows NT 5.1*)*]
12217
+ Parent=Opera 9.4
12218
+ Platform=WinXP
12219
+ Win32=true
12220
+
12221
+ [Opera/9.4* (Windows NT 5.2*)*]
12222
+ Parent=Opera 9.4
12223
+ Platform=Win2003
12224
+ Win32=true
12225
+
12226
+ [Opera/9.4* (Windows NT 6.0*)*]
12227
+ Parent=Opera 9.4
12228
+ Platform=WinVista
12229
+ Win32=true
12230
+
12231
+ [Opera/9.4* (Windows NT 6.1*)*]
12232
+ Parent=Opera 9.4
12233
+ Platform=Win7
12234
+
12235
+ [Opera/9.4* (Windows XP*)*]
12236
+ Parent=Opera 9.4
12237
+ Platform=WinXP
12238
+ Win32=true
12239
+
12240
+ [Opera/9.4* (X11; FreeBSD*)*]
12241
+ Parent=Opera 9.4
12242
+ Platform=FreeBSD
12243
+
12244
+ [Opera/9.4* (X11; Linux*)*]
12245
+ Parent=Opera 9.4
12246
+ Platform=Linux
12247
+
12248
+ [Opera/9.4* (X11; SunOS*)*]
12249
+ Parent=Opera 9.4
12250
+ Platform=SunOS
12251
+
12252
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 9.5
12253
+
12254
+ [Opera 9.5]
12255
+ Parent=DefaultProperties
12256
+ Browser="Opera"
12257
+ Version=9.5
12258
+ MajorVer=9
12259
+ MinorVer=5
12260
+ Frames=true
12261
+ IFrames=true
12262
+ Tables=true
12263
+ Cookies=true
12264
+ BackgroundSounds=true
12265
+ JavaApplets=true
12266
+ JavaScript=true
12267
+ CssVersion=2
12268
+ supportsCSS=true
12269
+
12270
+ [Mozilla/* (compatible; MSIE*; Linux*) Opera 9.5*]
12271
+ Parent=Opera 9.5
12272
+ Platform=Linux
12273
+
12274
+ [Mozilla/* (compatible; MSIE*; Mac_PowerPC Mac OS X;*) Opera 9.5*]
12275
+ Parent=Opera 9.5
12276
+ Platform=MacOSX
12277
+
12278
+ [Mozilla/* (compatible; MSIE*; Mac_PowerPC) Opera 9.5*]
12279
+ Parent=Opera 9.5
12280
+ Platform=MacPPC
12281
+
12282
+ [Mozilla/* (compatible; MSIE*; Windows 2000*) Opera 9.5*]
12283
+ Parent=Opera 9.5
12284
+ Platform=Win2000
12285
+ Win32=true
12286
+
12287
+ [Mozilla/* (compatible; MSIE*; Windows 95*) Opera 9.5*]
12288
+ Parent=Opera 9.5
12289
+ Platform=Win95
12290
+ Win32=true
12291
+
12292
+ [Mozilla/* (compatible; MSIE*; Windows 98*) Opera 9.5*]
12293
+ Parent=Opera 9.5
12294
+ Platform=Win98
12295
+ Win32=true
12296
+
12297
+ [Mozilla/* (compatible; MSIE*; Windows CE*) Opera 9.5*]
12298
+ Parent=Opera 9.5
12299
+ Platform=WinCE
12300
+ Win32=true
12301
+
12302
+ [Mozilla/* (compatible; MSIE*; Windows ME*) Opera 9.5*]
12303
+ Parent=Opera 9.5
12304
+ Platform=WinME
12305
+ Win32=true
12306
+
12307
+ [Mozilla/* (compatible; MSIE*; Windows NT 4.0*) Opera 9.5*]
12308
+ Parent=Opera 9.5
12309
+ Platform=WinNT
12310
+ Win32=true
12311
+
12312
+ [Mozilla/* (compatible; MSIE*; Windows NT 5.0*) Opera 9.5*]
12313
+ Parent=Opera 9.5
12314
+ Platform=Win2000
12315
+ Win32=true
12316
+
12317
+ [Mozilla/* (compatible; MSIE*; Windows NT 5.1*) Opera 9.5*]
12318
+ Parent=Opera 9.5
12319
+ Platform=WinXP
12320
+ Win32=true
12321
+
12322
+ [Mozilla/* (compatible; MSIE*; Windows NT 5.2*) Opera 9.5*]
12323
+ Parent=Opera 9.5
12324
+ Platform=Win2003
12325
+ Win32=true
12326
+
12327
+ [Mozilla/* (compatible; MSIE*; Windows NT 6.0*) Opera 9.5*]
12328
+ Parent=Opera 9.5
12329
+ Platform=WinVista
12330
+ Win32=true
12331
+
12332
+ [Mozilla/* (compatible; MSIE*; Windows NT 6.1*) Opera 9.5*]
12333
+ Parent=Opera 9.5
12334
+ Platform=Win7
12335
+
12336
+ [Mozilla/* (compatible; MSIE*; Windows XP*) Opera 9.5*]
12337
+ Parent=Opera 9.5
12338
+ Platform=WinXP
12339
+ Win32=true
12340
+
12341
+ [Mozilla/* (compatible; MSIE*; X11; FreeBSD*) Opera 9.5*]
12342
+ Parent=Opera 9.5
12343
+ Platform=FreeBSD
12344
+
12345
+ [Mozilla/* (compatible; MSIE*; X11; Linux*) Opera 9.5*]
12346
+ Parent=Opera 9.5
12347
+ Platform=Linux
12348
+
12349
+ [Mozilla/* (compatible; MSIE*; X11; SunOS*) Opera 9.5*]
12350
+ Parent=Opera 9.5
12351
+ Platform=SunOS
12352
+
12353
+ [Mozilla/* (Macintosh; *Mac OS X; ?) Opera 9.5*]
12354
+ Parent=Opera 9.5
12355
+ Platform=MacOSX
12356
+
12357
+ [Mozilla/* (Windows 2000;*) Opera 9.5*]
12358
+ Parent=Opera 9.5
12359
+ Platform=Win2000
12360
+ Win32=true
12361
+
12362
+ [Mozilla/* (Windows 95;*) Opera 9.5*]
12363
+ Parent=Opera 9.5
12364
+ Platform=Win95
12365
+ Win32=true
12366
+
12367
+ [Mozilla/* (Windows 98;*) Opera 9.5*]
12368
+ Parent=Opera 9.5
12369
+ Platform=Win98
12370
+ Win32=true
12371
+
12372
+ [Mozilla/* (Windows ME;*) Opera 9.5*]
12373
+ Parent=Opera 9.5
12374
+ Platform=WinME
12375
+ Win32=true
12376
+
12377
+ [Mozilla/* (Windows NT 4.0;*) Opera 9.5*]
12378
+ Parent=Opera 9.5
12379
+ Platform=WinNT
12380
+ Win32=true
12381
+
12382
+ [Mozilla/* (Windows NT 5.0;*) Opera 9.5*]
12383
+ Parent=Opera 9.5
12384
+ Platform=Win2000
12385
+ Win32=true
12386
+
12387
+ [Mozilla/* (Windows NT 5.1;*) Opera 9.5*]
12388
+ Parent=Opera 9.5
12389
+ Platform=WinXP
12390
+ Win32=true
12391
+
12392
+ [Mozilla/* (Windows NT 5.2;*) Opera 9.5*]
12393
+ Parent=Opera 9.5
12394
+ Platform=Win2003
12395
+ Win32=true
12396
+
12397
+ [Mozilla/* (Windows NT 6.0;*) Opera 9.5*]
12398
+ Parent=Opera 9.5
12399
+ Platform=WinVista
12400
+
12401
+ [Mozilla/* (Windows NT 6.1;*) Opera 9.5*]
12402
+ Parent=Opera 9.5
12403
+ Platform=Win7
12404
+
12405
+ [Mozilla/* (X11; Linux*) Opera 9.5*]
12406
+ Parent=Opera 9.5
12407
+ Platform=Linux
12408
+
12409
+ [Opera/9.5* (Linux*)*]
12410
+ Parent=Opera 9.5
12411
+ Platform=Linux
12412
+
12413
+ [Opera/9.5* (Macintosh; *Mac OS X;*)*]
12414
+ Parent=Opera 9.5
12415
+ Platform=MacOSX
12416
+
12417
+ [Opera/9.5* (Windows 95*)*]
12418
+ Parent=Opera 9.5
12419
+ Platform=Win95
12420
+ Win32=true
12421
+
12422
+ [Opera/9.5* (Windows 98*)*]
12423
+ Parent=Opera 9.5
12424
+ Platform=Win98
12425
+ Win32=true
12426
+
12427
+ [Opera/9.5* (Windows CE*)*]
12428
+ Parent=Opera 9.5
12429
+ Platform=WinCE
12430
+ Win32=true
12431
+
12432
+ [Opera/9.5* (Windows ME*)*]
12433
+ Parent=Opera 9.5
12434
+ Platform=WinME
12435
+ Win32=true
12436
+
12437
+ [Opera/9.5* (Windows NT 4.0*)*]
12438
+ Parent=Opera 9.5
12439
+ Platform=WinNT
12440
+ Win32=true
12441
+
12442
+ [Opera/9.5* (Windows NT 5.0*)*]
12443
+ Parent=Opera 9.5
12444
+ Platform=Win2000
12445
+ Win32=true
12446
+
12447
+ [Opera/9.5* (Windows NT 5.1*)*]
12448
+ Parent=Opera 9.5
12449
+ Platform=WinXP
12450
+ Win32=true
12451
+
12452
+ [Opera/9.5* (Windows NT 5.2*)*]
12453
+ Parent=Opera 9.5
12454
+ Platform=Win2003
12455
+ Win32=true
12456
+
12457
+ [Opera/9.5* (Windows NT 6.0*)*]
12458
+ Parent=Opera 9.5
12459
+ Platform=WinVista
12460
+ Win32=true
12461
+
12462
+ [Opera/9.5* (Windows NT 6.1*)*]
12463
+ Parent=Opera 9.5
12464
+ Platform=Win7
12465
+
12466
+ [Opera/9.5* (Windows XP*)*]
12467
+ Parent=Opera 9.5
12468
+ Platform=WinXP
12469
+ Win32=true
12470
+
12471
+ [Opera/9.5* (X11; FreeBSD*)*]
12472
+ Parent=Opera 9.5
12473
+ Platform=FreeBSD
12474
+
12475
+ [Opera/9.5* (X11; Linux*)*]
12476
+ Parent=Opera 9.5
12477
+ Platform=Linux
12478
+
12479
+ [Opera/9.5* (X11; SunOS*)*]
12480
+ Parent=Opera 9.5
12481
+ Platform=SunOS
12482
+
12483
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 9.6
12484
+
12485
+ [Opera 9.6]
12486
+ Parent=DefaultProperties
12487
+ Browser="Opera"
12488
+ Version=9.6
12489
+ MajorVer=9
12490
+ MinorVer=6
12491
+ Frames=true
12492
+ IFrames=true
12493
+ Tables=true
12494
+ Cookies=true
12495
+ BackgroundSounds=true
12496
+ JavaApplets=true
12497
+ JavaScript=true
12498
+ CssVersion=2
12499
+ supportsCSS=true
12500
+
12501
+ [Mozilla/* (compatible; MSIE*; Linux*) Opera 9.6*]
12502
+ Parent=Opera 9.6
12503
+ Platform=Linux
12504
+
12505
+ [Mozilla/* (compatible; MSIE*; Mac_PowerPC Mac OS X;*) Opera 9.6*]
12506
+ Parent=Opera 9.6
12507
+ Platform=MacOSX
12508
+
12509
+ [Mozilla/* (compatible; MSIE*; Mac_PowerPC) Opera 9.6*]
12510
+ Parent=Opera 9.6
12511
+ Platform=MacPPC
12512
+
12513
+ [Mozilla/* (compatible; MSIE*; Windows 2000*) Opera 9.6*]
12514
+ Parent=Opera 9.6
12515
+ Platform=Win2000
12516
+ Win32=true
12517
+
12518
+ [Mozilla/* (compatible; MSIE*; Windows 95*) Opera 9.6*]
12519
+ Parent=Opera 9.6
12520
+ Platform=Win95
12521
+ Win32=true
12522
+
12523
+ [Mozilla/* (compatible; MSIE*; Windows 98*) Opera 9.6*]
12524
+ Parent=Opera 9.6
12525
+ Platform=Win98
12526
+ Win32=true
12527
+
12528
+ [Mozilla/* (compatible; MSIE*; Windows CE*) Opera 9.6*]
12529
+ Parent=Opera 9.6
12530
+ Platform=WinCE
12531
+ Win32=true
12532
+
12533
+ [Mozilla/* (compatible; MSIE*; Windows ME*) Opera 9.6*]
12534
+ Parent=Opera 9.6
12535
+ Platform=WinME
12536
+ Win32=true
12537
+
12538
+ [Mozilla/* (compatible; MSIE*; Windows NT 4.0*) Opera 9.6*]
12539
+ Parent=Opera 9.6
12540
+ Platform=WinNT
12541
+ Win32=true
12542
+
12543
+ [Mozilla/* (compatible; MSIE*; Windows NT 5.0*) Opera 9.6*]
12544
+ Parent=Opera 9.6
12545
+ Platform=Win2000
12546
+ Win32=true
12547
+
12548
+ [Mozilla/* (compatible; MSIE*; Windows NT 5.1*) Opera 9.6*]
12549
+ Parent=Opera 9.6
12550
+ Platform=WinXP
12551
+ Win32=true
12552
+
12553
+ [Mozilla/* (compatible; MSIE*; Windows NT 5.2*) Opera 9.6*]
12554
+ Parent=Opera 9.6
12555
+ Platform=Win2003
12556
+ Win32=true
12557
+
12558
+ [Mozilla/* (compatible; MSIE*; Windows NT 6.0*) Opera 9.6*]
12559
+ Parent=Opera 9.6
12560
+ Platform=WinVista
12561
+ Win32=true
12562
+
12563
+ [Mozilla/* (compatible; MSIE*; Windows NT 6.1*) Opera 9.6*]
12564
+ Parent=Opera 9.6
12565
+ Platform=Win7
12566
+
12567
+ [Mozilla/* (compatible; MSIE*; Windows XP*) Opera 9.6*]
12568
+ Parent=Opera 9.6
12569
+ Platform=WinXP
12570
+ Win32=true
12571
+
12572
+ [Mozilla/* (compatible; MSIE*; X11; FreeBSD*) Opera 9.6*]
12573
+ Parent=Opera 9.6
12574
+ Platform=FreeBSD
12575
+
12576
+ [Mozilla/* (compatible; MSIE*; X11; Linux*) Opera 9.6*]
12577
+ Parent=Opera 9.6
12578
+ Platform=Linux
12579
+
12580
+ [Mozilla/* (compatible; MSIE*; X11; SunOS*) Opera 9.6*]
12581
+ Parent=Opera 9.6
12582
+ Platform=SunOS
12583
+
12584
+ [Mozilla/* (Macintosh; *Mac OS X; ?) Opera 9.6*]
12585
+ Parent=Opera 9.6
12586
+ Platform=MacOSX
12587
+
12588
+ [Mozilla/* (Windows 2000;*) Opera 9.6*]
12589
+ Parent=Opera 9.6
12590
+ Platform=Win2000
12591
+ Win32=true
12592
+
12593
+ [Mozilla/* (Windows 95;*) Opera 9.6*]
12594
+ Parent=Opera 9.6
12595
+ Platform=Win95
12596
+ Win32=true
12597
+
12598
+ [Mozilla/* (Windows 98;*) Opera 9.6*]
12599
+ Parent=Opera 9.6
12600
+ Platform=Win98
12601
+ Win32=true
12602
+
12603
+ [Mozilla/* (Windows ME;*) Opera 9.6*]
12604
+ Parent=Opera 9.6
12605
+ Platform=WinME
12606
+ Win32=true
12607
+
12608
+ [Mozilla/* (Windows NT 4.0;*) Opera 9.6*]
12609
+ Parent=Opera 9.6
12610
+ Platform=WinNT
12611
+ Win32=true
12612
+
12613
+ [Mozilla/* (Windows NT 5.0;*) Opera 9.6*]
12614
+ Parent=Opera 9.6
12615
+ Platform=Win2000
12616
+ Win32=true
12617
+
12618
+ [Mozilla/* (Windows NT 5.1;*) Opera 9.6*]
12619
+ Parent=Opera 9.6
12620
+ Platform=WinXP
12621
+ Win32=true
12622
+
12623
+ [Mozilla/* (Windows NT 5.2;*) Opera 9.6*]
12624
+ Parent=Opera 9.6
12625
+ Platform=Win2003
12626
+ Win32=true
12627
+
12628
+ [Mozilla/* (Windows NT 6.0;*) Opera 9.6*]
12629
+ Parent=Opera 9.6
12630
+ Platform=WinVista
12631
+
12632
+ [Mozilla/* (Windows NT 6.1;*) Opera 9.6*]
12633
+ Parent=Opera 9.6
12634
+ Platform=Win7
12635
+
12636
+ [Mozilla/* (X11; Linux*) Opera 9.6*]
12637
+ Parent=Opera 9.6
12638
+ Platform=Linux
12639
+
12640
+ [Opera/9.6* (Linux*)*]
12641
+ Parent=Opera 9.6
12642
+ Platform=Linux
12643
+
12644
+ [Opera/9.6* (Macintosh; *Mac OS X;*)*]
12645
+ Parent=Opera 9.6
12646
+ Platform=MacOSX
12647
+
12648
+ [Opera/9.6* (Windows 95*)*]
12649
+ Parent=Opera 9.6
12650
+ Platform=Win95
12651
+ Win32=true
12652
+
12653
+ [Opera/9.6* (Windows 98*)*]
12654
+ Parent=Opera 9.6
12655
+ Platform=Win98
12656
+ Win32=true
12657
+
12658
+ [Opera/9.6* (Windows CE*)*]
12659
+ Parent=Opera 9.6
12660
+ Platform=WinCE
12661
+ Win32=true
12662
+
12663
+ [Opera/9.6* (Windows ME*)*]
12664
+ Parent=Opera 9.6
12665
+ Platform=WinME
12666
+ Win32=true
12667
+
12668
+ [Opera/9.6* (Windows NT 4.0*)*]
12669
+ Parent=Opera 9.6
12670
+ Platform=WinNT
12671
+ Win32=true
12672
+
12673
+ [Opera/9.6* (Windows NT 5.0*)*]
12674
+ Parent=Opera 9.6
12675
+ Platform=Win2000
12676
+ Win32=true
12677
+
12678
+ [Opera/9.6* (Windows NT 5.1*)*]
12679
+ Parent=Opera 9.6
12680
+ Platform=WinXP
12681
+ Win32=true
12682
+
12683
+ [Opera/9.6* (Windows NT 5.2*)*]
12684
+ Parent=Opera 9.6
12685
+ Platform=Win2003
12686
+ Win32=true
12687
+
12688
+ [Opera/9.6* (Windows NT 6.0*)*]
12689
+ Parent=Opera 9.6
12690
+ Platform=WinVista
12691
+ Win32=true
12692
+
12693
+ [Opera/9.6* (Windows NT 6.1*)*]
12694
+ Parent=Opera 9.6
12695
+ Platform=Win7
12696
+
12697
+ [Opera/9.6* (Windows XP*)*]
12698
+ Parent=Opera 9.6
12699
+ Platform=WinXP
12700
+ Win32=true
12701
+
12702
+ [Opera/9.6* (X11; FreeBSD*)*]
12703
+ Parent=Opera 9.6
12704
+ Platform=FreeBSD
12705
+
12706
+ [Opera/9.6* (X11; Linux*)*]
12707
+ Parent=Opera 9.6
12708
+ Platform=Linux
12709
+
12710
+ [Opera/9.6* (X11; SunOS*)*]
12711
+ Parent=Opera 9.6
12712
+ Platform=SunOS
12713
+
12714
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 4.0
12715
+
12716
+ [Netscape 4.0]
12717
+ Parent=DefaultProperties
12718
+ Browser="Netscape"
12719
+ Version=4.0
12720
+ MajorVer=4
12721
+ Frames=true
12722
+ Tables=true
12723
+ Cookies=true
12724
+ JavaApplets=true
12725
+ JavaScript=true
12726
+ CssVersion=1
12727
+ supportsCSS=true
12728
+
12729
+ [Mozilla/4.0*(Macintosh*]
12730
+ Parent=Netscape 4.0
12731
+ Version=4.03
12732
+ MinorVer=03
12733
+ Platform=MacPPC
12734
+
12735
+ [Mozilla/4.0*(Win95;*]
12736
+ Parent=Netscape 4.0
12737
+ Platform=Win95
12738
+
12739
+ [Mozilla/4.0*(Win98;*]
12740
+ Parent=Netscape 4.0
12741
+ Version=4.03
12742
+ MinorVer=03
12743
+ Platform=Win98
12744
+
12745
+ [Mozilla/4.0*(WinNT*]
12746
+ Parent=Netscape 4.0
12747
+ Version=4.03
12748
+ MinorVer=03
12749
+ Platform=WinNT
12750
+
12751
+ [Mozilla/4.0*(X11;*)]
12752
+ Parent=Netscape 4.0
12753
+ Platform=Linux
12754
+
12755
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 4.5
12756
+
12757
+ [Netscape 4.5]
12758
+ Parent=DefaultProperties
12759
+ Browser="Netscape"
12760
+ Version=4.5
12761
+ MajorVer=4
12762
+ MinorVer=5
12763
+ Frames=true
12764
+ Tables=true
12765
+ Cookies=true
12766
+ JavaApplets=true
12767
+ JavaScript=true
12768
+ CssVersion=1
12769
+ supportsCSS=true
12770
+
12771
+ [Mozilla/4.5*(Macintosh; ?; PPC)]
12772
+ Parent=Netscape 4.5
12773
+ Platform=MacPPC
12774
+
12775
+ [Mozilla/4.5*(Win2000; ?)]
12776
+ Parent=Netscape 4.5
12777
+ Platform=Win2000
12778
+
12779
+ [Mozilla/4.5*(Win95; ?)]
12780
+ Parent=Netscape 4.5
12781
+ Platform=Win95
12782
+
12783
+ [Mozilla/4.5*(Win98; ?)]
12784
+ Parent=Netscape 4.5
12785
+ Platform=Win98
12786
+
12787
+ [Mozilla/4.5*(WinME; ?)]
12788
+ Parent=Netscape 4.5
12789
+ Platform=WinME
12790
+
12791
+ [Mozilla/4.5*(WinNT; ?)]
12792
+ Parent=Netscape 4.5
12793
+ Platform=WinNT
12794
+
12795
+ [Mozilla/4.5*(WinXP; ?)]
12796
+ Parent=Netscape 4.5
12797
+ Platform=WinXP
12798
+
12799
+ [Mozilla/4.5*(X11*)]
12800
+ Parent=Netscape 4.5
12801
+ Platform=Linux
12802
+
12803
+ [Mozilla/4.51*(Macintosh; ?; PPC)]
12804
+ Parent=Netscape 4.5
12805
+ Version=4.51
12806
+ MinorVer=51
12807
+
12808
+ [Mozilla/4.51*(Win2000; ?)]
12809
+ Parent=Netscape 4.5
12810
+ Version=4.51
12811
+ MinorVer=51
12812
+ Platform=Win2000
12813
+
12814
+ [Mozilla/4.51*(Win95; ?)]
12815
+ Parent=Netscape 4.5
12816
+ Version=4.51
12817
+ MinorVer=51
12818
+ Platform=Win95
12819
+
12820
+ [Mozilla/4.51*(Win98; ?)]
12821
+ Parent=Netscape 4.5
12822
+ Version=4.51
12823
+ MinorVer=51
12824
+ Platform=Win98
12825
+
12826
+ [Mozilla/4.51*(WinME; ?)]
12827
+ Parent=Netscape 4.5
12828
+ Version=4.51
12829
+ MinorVer=51
12830
+ Platform=WinME
12831
+
12832
+ [Mozilla/4.51*(WinNT; ?)]
12833
+ Parent=Netscape 4.5
12834
+ Version=4.51
12835
+ MinorVer=51
12836
+ Platform=WinNT
12837
+
12838
+ [Mozilla/4.51*(WinXP; ?)]
12839
+ Parent=Netscape 4.5
12840
+ Version=4.51
12841
+ MinorVer=51
12842
+ Platform=WinXP
12843
+
12844
+ [Mozilla/4.51*(X11*)]
12845
+ Parent=Netscape 4.5
12846
+ Version=4.51
12847
+ MinorVer=51
12848
+ Platform=Linux
12849
+
12850
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 4.6
12851
+
12852
+ [Netscape 4.6]
12853
+ Parent=DefaultProperties
12854
+ Browser="Netscape"
12855
+ Version=4.6
12856
+ MajorVer=4
12857
+ MinorVer=6
12858
+ Frames=true
12859
+ Tables=true
12860
+ Cookies=true
12861
+ JavaApplets=true
12862
+ JavaScript=true
12863
+ CssVersion=1
12864
+ supportsCSS=true
12865
+
12866
+ [Mozilla/4.6 * (OS/2; ?)]
12867
+ Parent=Netscape 4.6
12868
+ Platform=OS/2
12869
+
12870
+ [Mozilla/4.6*(Macintosh; ?; PPC)]
12871
+ Parent=Netscape 4.6
12872
+ Platform=MacPPC
12873
+
12874
+ [Mozilla/4.6*(Win95; ?)]
12875
+ Parent=Netscape 4.6
12876
+ Platform=Win95
12877
+
12878
+ [Mozilla/4.6*(Win98; ?)]
12879
+ Parent=Netscape 4.6
12880
+ Platform=Win98
12881
+
12882
+ [Mozilla/4.6*(WinNT; ?)]
12883
+ Parent=Netscape 4.6
12884
+ Platform=WinNT
12885
+
12886
+ [Mozilla/4.61*(Macintosh; ?; PPC)]
12887
+ Parent=Netscape 4.6
12888
+ Version=4.61
12889
+ MajorVer=4
12890
+ MinorVer=61
12891
+ Platform=MacPPC
12892
+
12893
+ [Mozilla/4.61*(OS/2; ?)]
12894
+ Parent=Netscape 4.6
12895
+ Version=4.61
12896
+ MajorVer=4
12897
+ MinorVer=61
12898
+ Platform=OS/2
12899
+
12900
+ [Mozilla/4.61*(Win95; ?)]
12901
+ Parent=Netscape 4.6
12902
+ Version=4.61
12903
+ MajorVer=4
12904
+ MinorVer=61
12905
+ Platform=Win95
12906
+
12907
+ [Mozilla/4.61*(Win98; ?)]
12908
+ Parent=Netscape 4.6
12909
+ Version=4.61
12910
+ Platform=Win98
12911
+
12912
+ [Mozilla/4.61*(WinNT; ?)]
12913
+ Parent=Netscape 4.6
12914
+ Version=4.61
12915
+ MajorVer=4
12916
+ MinorVer=61
12917
+ Platform=WinNT
12918
+
12919
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 4.7
12920
+
12921
+ [Netscape 4.7]
12922
+ Parent=DefaultProperties
12923
+ Browser="Netscape"
12924
+ Version=4.7
12925
+ MajorVer=4
12926
+ MinorVer=7
12927
+ Frames=true
12928
+ Tables=true
12929
+ Cookies=true
12930
+ JavaApplets=true
12931
+ JavaScript=true
12932
+ CssVersion=1
12933
+ supportsCSS=true
12934
+
12935
+ [Mozilla/4.7 * (Win2000; ?)]
12936
+ Parent=Netscape 4.7
12937
+ Platform=Win2000
12938
+
12939
+ [Mozilla/4.7*(Macintosh; ?; PPC)*]
12940
+ Parent=Netscape 4.7
12941
+ MinorVer=7
12942
+ Platform=MacPPC
12943
+
12944
+ [Mozilla/4.7*(Win95; ?)*]
12945
+ Parent=Netscape 4.7
12946
+ MinorVer=7
12947
+ Platform=Win95
12948
+
12949
+ [Mozilla/4.7*(Win98; ?)*]
12950
+ Parent=Netscape 4.7
12951
+ MinorVer=7
12952
+ Platform=Win98
12953
+
12954
+ [Mozilla/4.7*(Windows NT 4.0; ?)*]
12955
+ Parent=Netscape 4.7
12956
+ MinorVer=7
12957
+ Platform=WinNT
12958
+ Win32=true
12959
+
12960
+ [Mozilla/4.7*(Windows NT 5.0; ?)*]
12961
+ Parent=Netscape 4.7
12962
+ MinorVer=7
12963
+ Platform=Win2000
12964
+ Win32=true
12965
+
12966
+ [Mozilla/4.7*(Windows NT 5.1; ?)*]
12967
+ Parent=Netscape 4.7
12968
+ MinorVer=7
12969
+ Platform=WinXP
12970
+ Win32=true
12971
+
12972
+ [Mozilla/4.7*(WinNT; ?)*]
12973
+ Parent=Netscape 4.7
12974
+ Platform=WinNT
12975
+
12976
+ [Mozilla/4.7*(X11*)*]
12977
+ Parent=Netscape 4.7
12978
+ Platform=Linux
12979
+
12980
+ [Mozilla/4.7*(X11; ?; SunOS*)*]
12981
+ Parent=Netscape 4.7
12982
+ Platform=SunOS
12983
+
12984
+ [Mozilla/4.71*(Macintosh; ?; PPC)*]
12985
+ Parent=Netscape 4.7
12986
+ Version=4.71
12987
+ MinorVer=71
12988
+ Platform=MacPPC
12989
+
12990
+ [Mozilla/4.71*(Win95; ?)*]
12991
+ Parent=Netscape 4.7
12992
+ Version=4.71
12993
+ MinorVer=71
12994
+ Platform=Win95
12995
+
12996
+ [Mozilla/4.71*(Win98; ?)*]
12997
+ Parent=Netscape 4.7
12998
+ Version=4.71
12999
+ MinorVer=71
13000
+ Platform=Win98
13001
+
13002
+ [Mozilla/4.71*(Windows NT 4.0; ?)*]
13003
+ Parent=Netscape 4.7
13004
+ Version=4.71
13005
+ MinorVer=71
13006
+ Platform=WinNT
13007
+ Win32=true
13008
+
13009
+ [Mozilla/4.71*(Windows NT 5.0; ?)*]
13010
+ Parent=Netscape 4.7
13011
+ Version=4.71
13012
+ MinorVer=71
13013
+ Platform=Win2000
13014
+ Win32=true
13015
+
13016
+ [Mozilla/4.71*(Windows NT 5.1; ?)*]
13017
+ Parent=Netscape 4.7
13018
+ Version=4.71
13019
+ MinorVer=71
13020
+ Platform=WinXP
13021
+ Win32=true
13022
+
13023
+ [Mozilla/4.71*(WinNT; ?)*]
13024
+ Parent=Netscape 4.7
13025
+ Version=4.71
13026
+ MinorVer=71
13027
+ Platform=WinNT
13028
+
13029
+ [Mozilla/4.71*(X11*)*]
13030
+ Parent=Netscape 4.7
13031
+ Version=4.71
13032
+ MinorVer=71
13033
+ Platform=Linux
13034
+
13035
+ [Mozilla/4.71*(X11; ?; SunOS*)*]
13036
+ Parent=Netscape 4.7
13037
+ Version=4.71
13038
+ MinorVer=71
13039
+ Platform=SunOS
13040
+
13041
+ [Mozilla/4.72*(Macintosh; ?; PPC)*]
13042
+ Parent=Netscape 4.7
13043
+ MinorVer=72
13044
+ Platform=MacPPC
13045
+
13046
+ [Mozilla/4.72*(Win95; ?)*]
13047
+ Parent=Netscape 4.7
13048
+ MinorVer=72
13049
+ Platform=Win95
13050
+
13051
+ [Mozilla/4.72*(Win98; ?)*]
13052
+ Parent=Netscape 4.7
13053
+ MinorVer=72
13054
+ Platform=Win98
13055
+
13056
+ [Mozilla/4.72*(Windows NT 4.0; ?)*]
13057
+ Parent=Netscape 4.7
13058
+ MinorVer=72
13059
+ Platform=WinNT
13060
+ Win32=true
13061
+
13062
+ [Mozilla/4.72*(Windows NT 5.0; ?)*]
13063
+ Parent=Netscape 4.7
13064
+ MinorVer=72
13065
+ Platform=Win2000
13066
+ Win32=true
13067
+
13068
+ [Mozilla/4.72*(Windows NT 5.1; ?)*]
13069
+ Parent=Netscape 4.7
13070
+ MinorVer=72
13071
+ Platform=WinXP
13072
+ Win32=true
13073
+
13074
+ [Mozilla/4.72*(WinNT; ?)*]
13075
+ Parent=Netscape 4.7
13076
+ MinorVer=72
13077
+ Platform=WinNT
13078
+
13079
+ [Mozilla/4.72*(X11*)*]
13080
+ Parent=Netscape 4.7
13081
+ MinorVer=72
13082
+ Platform=Linux
13083
+
13084
+ [Mozilla/4.72*(X11; ?; SunOS*)*]
13085
+ Parent=Netscape 4.7
13086
+ MinorVer=72
13087
+ Platform=SunOS
13088
+
13089
+ [Mozilla/4.73*(Macintosh; ?; PPC)*]
13090
+ Parent=Netscape 4.7
13091
+ MinorVer=73
13092
+ Platform=MacPPC
13093
+
13094
+ [Mozilla/4.73*(Win95; ?)*]
13095
+ Parent=Netscape 4.7
13096
+ MinorVer=73
13097
+ Platform=Win95
13098
+
13099
+ [Mozilla/4.73*(Win98; ?)*]
13100
+ Parent=Netscape 4.7
13101
+ MinorVer=73
13102
+ Platform=Win98
13103
+
13104
+ [Mozilla/4.73*(Windows NT 4.0; ?)*]
13105
+ Parent=Netscape 4.7
13106
+ MinorVer=73
13107
+ Platform=WinNT
13108
+ Win32=true
13109
+
13110
+ [Mozilla/4.73*(Windows NT 5.0; ?)*]
13111
+ Parent=Netscape 4.7
13112
+ MinorVer=73
13113
+ Platform=Win2000
13114
+ Win32=true
13115
+
13116
+ [Mozilla/4.73*(Windows NT 5.1; ?)*]
13117
+ Parent=Netscape 4.7
13118
+ MinorVer=73
13119
+ Platform=WinXP
13120
+ Win32=true
13121
+
13122
+ [Mozilla/4.73*(WinNT; ?)*]
13123
+ Parent=Netscape 4.7
13124
+ MinorVer=73
13125
+ Platform=WinNT
13126
+
13127
+ [Mozilla/4.73*(X11*)*]
13128
+ Parent=Netscape 4.7
13129
+ MinorVer=73
13130
+ Platform=Linux
13131
+
13132
+ [Mozilla/4.73*(X11; ?; SunOS*)*]
13133
+ Parent=Netscape 4.7
13134
+ MinorVer=73
13135
+ Platform=SunOS
13136
+
13137
+ [Mozilla/4.74*(Macintosh; ?; PPC)*]
13138
+ Parent=Netscape 4.7
13139
+ MinorVer=74
13140
+ Platform=MacPPC
13141
+
13142
+ [Mozilla/4.74*(Win95; ?)*]
13143
+ Parent=Netscape 4.7
13144
+ MinorVer=74
13145
+ Platform=Win95
13146
+
13147
+ [Mozilla/4.74*(Win98; ?)*]
13148
+ Parent=Netscape 4.7
13149
+ MinorVer=74
13150
+ Platform=Win98
13151
+
13152
+ [Mozilla/4.74*(Windows NT 4.0; ?)*]
13153
+ Parent=Netscape 4.7
13154
+ MinorVer=74
13155
+ Platform=WinNT
13156
+ Win32=true
13157
+
13158
+ [Mozilla/4.74*(Windows NT 5.0; ?)*]
13159
+ Parent=Netscape 4.7
13160
+ MinorVer=74
13161
+ Platform=Win2000
13162
+ Win32=true
13163
+
13164
+ [Mozilla/4.74*(Windows NT 5.1; ?)*]
13165
+ Parent=Netscape 4.7
13166
+ MinorVer=74
13167
+ Platform=WinXP
13168
+ Win32=true
13169
+
13170
+ [Mozilla/4.74*(WinNT; ?)*]
13171
+ Parent=Netscape 4.7
13172
+ MinorVer=74
13173
+ Platform=WinNT
13174
+
13175
+ [Mozilla/4.74*(X11*)*]
13176
+ Parent=Netscape 4.7
13177
+ MinorVer=74
13178
+ Platform=Linux
13179
+
13180
+ [Mozilla/4.74*(X11; ?; SunOS*)*]
13181
+ Parent=Netscape 4.7
13182
+ MinorVer=74
13183
+ Platform=SunOS
13184
+
13185
+ [Mozilla/4.75*(Macintosh; ?; PPC)*]
13186
+ Parent=Netscape 4.7
13187
+ MinorVer=75
13188
+ Platform=MacPPC
13189
+
13190
+ [Mozilla/4.75*(Win95; ?)*]
13191
+ Parent=Netscape 4.7
13192
+ MinorVer=75
13193
+ Platform=Win95
13194
+
13195
+ [Mozilla/4.75*(Win98; ?)*]
13196
+ Parent=Netscape 4.7
13197
+ MinorVer=75
13198
+ Platform=Win98
13199
+
13200
+ [Mozilla/4.75*(Windows NT 4.0; ?)*]
13201
+ Parent=Netscape 4.7
13202
+ MinorVer=75
13203
+ Platform=WinNT
13204
+ Win32=true
13205
+
13206
+ [Mozilla/4.75*(Windows NT 5.0; ?)*]
13207
+ Parent=Netscape 4.7
13208
+ MinorVer=75
13209
+ Platform=Win2000
13210
+ Win32=true
13211
+
13212
+ [Mozilla/4.75*(Windows NT 5.1; ?)*]
13213
+ Parent=Netscape 4.7
13214
+ MinorVer=75
13215
+ Platform=WinXP
13216
+ Win32=true
13217
+
13218
+ [Mozilla/4.75*(WinNT; ?)*]
13219
+ Parent=Netscape 4.7
13220
+ MinorVer=75
13221
+ Platform=WinNT
13222
+
13223
+ [Mozilla/4.75*(X11*)*]
13224
+ Parent=Netscape 4.7
13225
+ MinorVer=75
13226
+ Platform=Linux
13227
+
13228
+ [Mozilla/4.75*(X11; ?; SunOS*)*]
13229
+ Parent=Netscape 4.7
13230
+ MinorVer=75
13231
+ Platform=SunOS
13232
+
13233
+ [Mozilla/4.76*(Macintosh; ?; PPC)*]
13234
+ Parent=Netscape 4.7
13235
+ MinorVer=76
13236
+ Platform=MacPPC
13237
+
13238
+ [Mozilla/4.76*(Win95; ?)*]
13239
+ Parent=Netscape 4.7
13240
+ MinorVer=76
13241
+ Platform=Win95
13242
+
13243
+ [Mozilla/4.76*(Win98; ?)*]
13244
+ Parent=Netscape 4.7
13245
+ MinorVer=76
13246
+ Platform=Win98
13247
+
13248
+ [Mozilla/4.76*(Windows NT 4.0; ?)*]
13249
+ Parent=Netscape 4.7
13250
+ MinorVer=76
13251
+ Platform=WinNT
13252
+ Win32=true
13253
+
13254
+ [Mozilla/4.76*(Windows NT 5.0; ?)*]
13255
+ Parent=Netscape 4.7
13256
+ MinorVer=76
13257
+ Platform=Win2000
13258
+ Win32=true
13259
+
13260
+ [Mozilla/4.76*(Windows NT 5.1; ?)*]
13261
+ Parent=Netscape 4.7
13262
+ MinorVer=76
13263
+ Platform=WinXP
13264
+ Win32=true
13265
+
13266
+ [Mozilla/4.76*(WinNT; ?)*]
13267
+ Parent=Netscape 4.7
13268
+ MinorVer=76
13269
+ Platform=WinNT
13270
+
13271
+ [Mozilla/4.76*(X11*)*]
13272
+ Parent=Netscape 4.7
13273
+ MinorVer=76
13274
+ Platform=Linux
13275
+
13276
+ [Mozilla/4.76*(X11; ?; SunOS*)*]
13277
+ Parent=Netscape 4.7
13278
+ MinorVer=76
13279
+ Platform=SunOS
13280
+
13281
+ [Mozilla/4.77*(Macintosh; ?; PPC)*]
13282
+ Parent=Netscape 4.7
13283
+ MinorVer=77
13284
+ Platform=MacPPC
13285
+
13286
+ [Mozilla/4.77*(Win95; ?)*]
13287
+ Parent=Netscape 4.7
13288
+ MinorVer=77
13289
+ Platform=Win95
13290
+
13291
+ [Mozilla/4.77*(Win98; ?)*]
13292
+ Parent=Netscape 4.7
13293
+ MinorVer=77
13294
+ Platform=Win98
13295
+
13296
+ [Mozilla/4.77*(Windows NT 4.0; ?)*]
13297
+ Parent=Netscape 4.7
13298
+ MinorVer=77
13299
+ Platform=WinNT
13300
+ Win32=true
13301
+
13302
+ [Mozilla/4.77*(Windows NT 5.0; ?)*]
13303
+ Parent=Netscape 4.7
13304
+ MinorVer=77
13305
+ Platform=Win2000
13306
+ Win32=true
13307
+
13308
+ [Mozilla/4.77*(Windows NT 5.1; ?)*]
13309
+ Parent=Netscape 4.7
13310
+ MinorVer=77
13311
+ Platform=WinXP
13312
+ Win32=true
13313
+
13314
+ [Mozilla/4.77*(WinNT; ?)*]
13315
+ Parent=Netscape 4.7
13316
+ MinorVer=77
13317
+ Platform=WinNT
13318
+
13319
+ [Mozilla/4.77*(X11*)*]
13320
+ Parent=Netscape 4.7
13321
+ MinorVer=77
13322
+ Platform=Linux
13323
+
13324
+ [Mozilla/4.77*(X11; ?; SunOS*)*]
13325
+ Parent=Netscape 4.7
13326
+ MinorVer=77
13327
+ Platform=SunOS
13328
+
13329
+ [Mozilla/4.78*(Macintosh; ?; PPC)*]
13330
+ Parent=Netscape 4.7
13331
+ MinorVer=78
13332
+ Platform=MacPPC
13333
+
13334
+ [Mozilla/4.78*(Win95; ?)*]
13335
+ Parent=Netscape 4.7
13336
+ MinorVer=78
13337
+ Platform=Win95
13338
+
13339
+ [Mozilla/4.78*(Win98; ?)*]
13340
+ Parent=Netscape 4.7
13341
+ MinorVer=78
13342
+ Platform=Win98
13343
+
13344
+ [Mozilla/4.78*(Windows NT 4.0; ?)*]
13345
+ Parent=Netscape 4.7
13346
+ MinorVer=78
13347
+ Platform=WinNT
13348
+ Win32=true
13349
+
13350
+ [Mozilla/4.78*(Windows NT 5.0; ?)*]
13351
+ Parent=Netscape 4.7
13352
+ MinorVer=78
13353
+ Platform=Win2000
13354
+ Win32=true
13355
+
13356
+ [Mozilla/4.78*(Windows NT 5.1; ?)*]
13357
+ Parent=Netscape 4.7
13358
+ MinorVer=78
13359
+ Platform=WinXP
13360
+ Win32=true
13361
+
13362
+ [Mozilla/4.78*(WinNT; ?)*]
13363
+ Parent=Netscape 4.7
13364
+ MinorVer=78
13365
+ Platform=WinNT
13366
+
13367
+ [Mozilla/4.78*(X11*)*]
13368
+ Parent=Netscape 4.7
13369
+ MinorVer=78
13370
+ Platform=Linux
13371
+
13372
+ [Mozilla/4.78*(X11; ?; SunOS*)*]
13373
+ Parent=Netscape 4.7
13374
+ MinorVer=78
13375
+ Platform=SunOS
13376
+
13377
+ [Mozilla/4.79*(Macintosh; ?; PPC)*]
13378
+ Parent=Netscape 4.7
13379
+ Version=4.79
13380
+ MinorVer=79
13381
+ Platform=MacPPC
13382
+
13383
+ [Mozilla/4.79*(Win95; ?)*]
13384
+ Parent=Netscape 4.7
13385
+ Version=4.79
13386
+ MinorVer=79
13387
+ Platform=Win95
13388
+
13389
+ [Mozilla/4.79*(Win98; ?)*]
13390
+ Parent=Netscape 4.7
13391
+ Version=4.79
13392
+ MinorVer=79
13393
+ Platform=Win98
13394
+
13395
+ [Mozilla/4.79*(Windows NT 4.0; ?)*]
13396
+ Parent=Netscape 4.7
13397
+ Version=4.79
13398
+ MinorVer=79
13399
+ Platform=WinNT
13400
+ Win32=true
13401
+
13402
+ [Mozilla/4.79*(Windows NT 5.0; ?)*]
13403
+ Parent=Netscape 4.7
13404
+ Version=4.79
13405
+ MinorVer=79
13406
+ Platform=Win2000
13407
+ Win32=true
13408
+
13409
+ [Mozilla/4.79*(Windows NT 5.1; ?)*]
13410
+ Parent=Netscape 4.7
13411
+ Version=4.79
13412
+ MinorVer=79
13413
+ Platform=WinXP
13414
+ Win32=true
13415
+
13416
+ [Mozilla/4.79*(WinNT; ?)*]
13417
+ Parent=Netscape 4.7
13418
+ Version=4.79
13419
+ MinorVer=79
13420
+ Platform=WinNT
13421
+
13422
+ [Mozilla/4.79*(X11*)*]
13423
+ Parent=Netscape 4.7
13424
+ Version=4.79
13425
+ MinorVer=79
13426
+ Platform=Linux
13427
+
13428
+ [Mozilla/4.79*(X11; ?; SunOS*)*]
13429
+ Parent=Netscape 4.7
13430
+ Version=4.79
13431
+ MinorVer=79
13432
+ Platform=SunOS
13433
+
13434
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 4.8
13435
+
13436
+ [Netscape 4.8]
13437
+ Parent=DefaultProperties
13438
+ Browser="Netscape"
13439
+ Version=4.8
13440
+ MajorVer=4
13441
+ MinorVer=8
13442
+ Frames=true
13443
+ Tables=true
13444
+ Cookies=true
13445
+ JavaApplets=true
13446
+ JavaScript=true
13447
+ CssVersion=1
13448
+ supportsCSS=true
13449
+
13450
+ [Mozilla/4.8*(Macintosh; ?; MacPPC)*]
13451
+ Parent=Netscape 4.8
13452
+ Platform=MacPPC
13453
+
13454
+ [Mozilla/4.8*(Macintosh; ?; PPC Mac OS X*]
13455
+ Parent=Netscape 4.8
13456
+ Platform=MacOSX
13457
+
13458
+ [Mozilla/4.8*(Macintosh; ?; PPC)*]
13459
+ Parent=Netscape 4.8
13460
+ Platform=MacPPC
13461
+
13462
+ [Mozilla/4.8*(Win95; *)*]
13463
+ Parent=Netscape 4.8
13464
+
13465
+ [Mozilla/4.8*(Win98; *)*]
13466
+ Parent=Netscape 4.8
13467
+ Platform=Win98
13468
+
13469
+ [Mozilla/4.8*(Windows NT 4.0; *)*]
13470
+ Parent=Netscape 4.8
13471
+ Platform=WinNT
13472
+ Win32=true
13473
+
13474
+ [Mozilla/4.8*(Windows NT 5.0; *)*]
13475
+ Parent=Netscape 4.8
13476
+ Platform=Win2000
13477
+ Win32=true
13478
+
13479
+ [Mozilla/4.8*(Windows NT 5.1; *)*]
13480
+ Parent=Netscape 4.8
13481
+ Platform=WinXP
13482
+ Win32=true
13483
+
13484
+ [Mozilla/4.8*(WinNT; *)*]
13485
+ Parent=Netscape 4.8
13486
+ Platform=WinNT
13487
+
13488
+ [Mozilla/4.8*(X11; *)*]
13489
+ Parent=Netscape 4.8
13490
+ Platform=Linux
13491
+
13492
+ [Mozilla/4.8*(X11; *SunOS*)*]
13493
+ Parent=Netscape 4.8
13494
+ Platform=SunOS
13495
+
13496
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 6.0
13497
+
13498
+ [Netscape 6.0]
13499
+ Parent=DefaultProperties
13500
+ Browser="Netscape"
13501
+ Version=6.0
13502
+ MajorVer=6
13503
+ Frames=true
13504
+ IFrames=true
13505
+ Tables=true
13506
+ Cookies=true
13507
+ JavaApplets=true
13508
+ JavaScript=true
13509
+ CssVersion=2
13510
+ supportsCSS=true
13511
+
13512
+ [Mozilla/5.0 (Macintosh; ?; PPC;*) Gecko/* Netscape6/6.0*]
13513
+ Parent=Netscape 6.0
13514
+ Platform=MacPPC
13515
+
13516
+ [Mozilla/5.0 (Windows; ?; Win95;*) Gecko/* Netscape6/6.0*]
13517
+ Parent=Netscape 6.0
13518
+ Platform=Win95
13519
+ Win32=true
13520
+
13521
+ [Mozilla/5.0 (Windows; ?; Win98; *) Gecko/* Netscape6/6.0*]
13522
+ Parent=Netscape 6.0
13523
+ Platform=Win98
13524
+ Win32=true
13525
+
13526
+ [Mozilla/5.0 (Windows; ?; Win9x 4.90; *) Gecko/* Netscape6/6.0*]
13527
+ Parent=Netscape 6.0
13528
+ Platform=WinME
13529
+ Win32=true
13530
+
13531
+ [Mozilla/5.0 (Windows; ?; Windows NT 4.0; *) Gecko/* Netscape6/6.0*]
13532
+ Parent=Netscape 6.0
13533
+ Platform=WinNT
13534
+ Win32=true
13535
+
13536
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.0; *) Gecko/* Netscape6/6.0*]
13537
+ Parent=Netscape 6.0
13538
+ Platform=Win2000
13539
+ Win32=true
13540
+
13541
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) Gecko/* Netscape6/6.0*]
13542
+ Parent=Netscape 6.0
13543
+ Platform=WinXP
13544
+ Win32=true
13545
+
13546
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) Gecko/* Netscape6/6.0*]
13547
+ Parent=Netscape 6.0
13548
+ Platform=WinXP
13549
+
13550
+ [Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) Gecko/* Netscape6/6.0*]
13551
+ Parent=Netscape 6.0
13552
+ Platform=WinVista
13553
+
13554
+ [Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) Gecko/* Netscape6/6.0*]
13555
+ Parent=Netscape 6.0
13556
+ Platform=Win7
13557
+
13558
+ [Mozilla/5.0 (Windows; ?; WinNT4.0; *) Gecko/* Netscape6/6.0*]
13559
+ Parent=Netscape 6.0
13560
+ Platform=WinNT
13561
+ Win32=true
13562
+
13563
+ [Mozilla/5.0 (Windows; ?; WinNT5.0; *) Gecko/* Netscape6/6.0*]
13564
+ Parent=Netscape 6.0
13565
+ Platform=Win2000
13566
+ Win32=true
13567
+
13568
+ [Mozilla/5.0 (Windows; ?; WinNT5.1; *) Gecko/* Netscape6/6.0*]
13569
+ Parent=Netscape 6.0
13570
+ Platform=WinXP
13571
+ Win32=true
13572
+
13573
+ [Mozilla/5.0 (Windows; ?; WinNT5.2; *) Gecko/* Netscape6/6.0*]
13574
+ Parent=Netscape 6.0
13575
+ Platform=WinXP
13576
+
13577
+ [Mozilla/5.0 (Windows; ?; WinNT6.0; *) Gecko/* Netscape6/6.0*]
13578
+ Parent=Netscape 6.0
13579
+ Platform=WinVista
13580
+
13581
+ [Mozilla/5.0 (Windows; ?; WinNT6.1; *) Gecko/* Netscape6/6.0*]
13582
+ Parent=Netscape 6.0
13583
+ Platform=Win7
13584
+
13585
+ [Mozilla/5.0 (X11; ?; *) Gecko/* Netscape6/6.0*]
13586
+ Parent=Netscape 6.0
13587
+ Platform=Linux
13588
+
13589
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 6.1
13590
+
13591
+ [Netscape 6.1]
13592
+ Parent=DefaultProperties
13593
+ Browser="Netscape"
13594
+ Version=6.1
13595
+ MajorVer=6
13596
+ MinorVer=1
13597
+ Frames=true
13598
+ IFrames=true
13599
+ Tables=true
13600
+ Cookies=true
13601
+ JavaApplets=true
13602
+ JavaScript=true
13603
+ CssVersion=2
13604
+ supportsCSS=true
13605
+
13606
+ [Mozilla/5.0 (Macintosh; ?; PPC;*) Gecko/* Netscape6/6.1*]
13607
+ Parent=Netscape 6.1
13608
+ Platform=MacPPC
13609
+
13610
+ [Mozilla/5.0 (Windows; ?; Win95;*) Gecko/* Netscape6/6.1*]
13611
+ Parent=Netscape 6.1
13612
+ Platform=Win95
13613
+ Win32=true
13614
+
13615
+ [Mozilla/5.0 (Windows; ?; Win98; *) Gecko/* Netscape6/6.1*]
13616
+ Parent=Netscape 6.1
13617
+ Platform=Win98
13618
+ Win32=true
13619
+
13620
+ [Mozilla/5.0 (Windows; ?; Win9x 4.90; *) Gecko/* Netscape6/6.1*]
13621
+ Parent=Netscape 6.1
13622
+ Platform=WinME
13623
+ Win32=true
13624
+
13625
+ [Mozilla/5.0 (Windows; ?; Windows NT 4.0; *) Gecko/* Netscape6/6.1*]
13626
+ Parent=Netscape 6.1
13627
+ Platform=WinNT
13628
+ Win32=true
13629
+
13630
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.0; *) Gecko/* Netscape6/6.1*]
13631
+ Parent=Netscape 6.1
13632
+ Platform=Win2000
13633
+ Win32=true
13634
+
13635
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) Gecko/* Netscape6/6.1*]
13636
+ Parent=Netscape 6.1
13637
+ Platform=WinXP
13638
+ Win32=true
13639
+
13640
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) Gecko/* Netscape6/6.1*]
13641
+ Parent=Netscape 6.1
13642
+ Platform=WinXP
13643
+
13644
+ [Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) Gecko/* Netscape6/6.1*]
13645
+ Parent=Netscape 6.1
13646
+ Platform=WinVista
13647
+
13648
+ [Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) Gecko/* Netscape6/6.1*]
13649
+ Parent=Netscape 6.1
13650
+ Platform=Win7
13651
+
13652
+ [Mozilla/5.0 (Windows; ?; WinNT4.0; *) Gecko/* Netscape6/6.1*]
13653
+ Parent=Netscape 6.1
13654
+ Platform=WinNT
13655
+ Win32=true
13656
+
13657
+ [Mozilla/5.0 (Windows; ?; WinNT5.0; *) Gecko/* Netscape6/6.1*]
13658
+ Parent=Netscape 6.1
13659
+ Platform=Win2000
13660
+ Win32=true
13661
+
13662
+ [Mozilla/5.0 (Windows; ?; WinNT5.1; *) Gecko/* Netscape6/6.1*]
13663
+ Parent=Netscape 6.1
13664
+ Platform=WinXP
13665
+ Win32=true
13666
+
13667
+ [Mozilla/5.0 (Windows; ?; WinNT5.2; *) Gecko/* Netscape6/6.1*]
13668
+ Parent=Netscape 6.1
13669
+ Platform=WinXP
13670
+
13671
+ [Mozilla/5.0 (Windows; ?; WinNT6.0; *) Gecko/* Netscape6/6.1*]
13672
+ Parent=Netscape 6.1
13673
+ Platform=WinVista
13674
+
13675
+ [Mozilla/5.0 (Windows; ?; WinNT6.1; *) Gecko/* Netscape6/6.1*]
13676
+ Parent=Netscape 6.1
13677
+ Platform=Win7
13678
+
13679
+ [Mozilla/5.0 (X11; ?; *) Gecko/* Netscape6/6.1*]
13680
+ Parent=Netscape 6.1
13681
+ Platform=Linux
13682
+
13683
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 6.2
13684
+
13685
+ [Netscape 6.2]
13686
+ Parent=DefaultProperties
13687
+ Browser="Netscape"
13688
+ Version=6.2
13689
+ MajorVer=6
13690
+ MinorVer=2
13691
+ Frames=true
13692
+ IFrames=true
13693
+ Tables=true
13694
+ Cookies=true
13695
+ JavaApplets=true
13696
+ JavaScript=true
13697
+ CssVersion=2
13698
+ supportsCSS=true
13699
+
13700
+ [Mozilla/5.0 (Macintosh; ?; PPC Mac OS X*) Gecko/* Netscape6/6.2*]
13701
+ Parent=Netscape 6.2
13702
+ Platform=MacOSX
13703
+
13704
+ [Mozilla/5.0 (Macintosh; ?; PPC;*) Gecko/* Netscape6/6.2*]
13705
+ Parent=Netscape 6.2
13706
+ Platform=MacPPC
13707
+
13708
+ [Mozilla/5.0 (Windows; ?; Win 9x 4.90; *) Gecko/* Netscape6/6.2*]
13709
+ Parent=Netscape 6.2
13710
+ Win32=true
13711
+
13712
+ [Mozilla/5.0 (Windows; ?; Win95;*) Gecko/* Netscape6/6.2*]
13713
+ Parent=Netscape 6.2
13714
+ Platform=Win95
13715
+ Win32=true
13716
+
13717
+ [Mozilla/5.0 (Windows; ?; Win98; *) Gecko/* Netscape6/6.2*]
13718
+ Parent=Netscape 6.2
13719
+ Platform=Win98
13720
+ Win32=true
13721
+
13722
+ [Mozilla/5.0 (Windows; ?; Win9x 4.90; *) Gecko/* Netscape6/6.2*]
13723
+ Parent=Netscape 6.2
13724
+ Platform=WinME
13725
+ Win32=true
13726
+
13727
+ [Mozilla/5.0 (Windows; ?; Windows NT 4.0; *) Gecko/* Netscape6/6.2*]
13728
+ Parent=Netscape 6.2
13729
+ Platform=WinNT
13730
+ Win32=true
13731
+
13732
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.0; *) Gecko/* Netscape6/6.2*]
13733
+ Parent=Netscape 6.2
13734
+ Platform=Win2000
13735
+ Win32=true
13736
+
13737
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) Gecko/* Netscape6/6.2*]
13738
+ Parent=Netscape 6.2
13739
+ Platform=WinXP
13740
+ Win32=true
13741
+
13742
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) Gecko/* Netscape6/6.2*]
13743
+ Parent=Netscape 6.2
13744
+ Platform=Win2003
13745
+ Win32=true
13746
+
13747
+ [Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) Gecko/* Netscape6/6.2*]
13748
+ Parent=Netscape 6.2
13749
+ Platform=WinVista
13750
+
13751
+ [Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) Gecko/* Netscape6/6.2*]
13752
+ Parent=Netscape 6.2
13753
+ Platform=Win7
13754
+
13755
+ [Mozilla/5.0 (Windows; ?; WinNT4.0; *) Gecko/* Netscape6/6.2*]
13756
+ Parent=Netscape 6.2
13757
+ Platform=WinNT
13758
+ Win32=true
13759
+
13760
+ [Mozilla/5.0 (Windows; ?; WinNT5.0; *) Gecko/* Netscape6/6.2*]
13761
+ Parent=Netscape 6.2
13762
+ Platform=Win2000
13763
+ Win32=true
13764
+
13765
+ [Mozilla/5.0 (Windows; ?; WinNT5.1; *) Gecko/* Netscape6/6.2*]
13766
+ Parent=Netscape 6.2
13767
+ Platform=WinXP
13768
+ Win32=true
13769
+
13770
+ [Mozilla/5.0 (Windows; ?; WinNT5.2; *) Gecko/* Netscape6/6.2*]
13771
+ Parent=Netscape 6.2
13772
+ Platform=Win2003
13773
+ Win32=true
13774
+
13775
+ [Mozilla/5.0 (Windows; ?; WinNT6.0; *) Gecko/* Netscape6/6.2*]
13776
+ Parent=Netscape 6.2
13777
+ Platform=WinVista
13778
+
13779
+ [Mozilla/5.0 (Windows; ?; WinNT6.1; *) Gecko/* Netscape6/6.2*]
13780
+ Parent=Netscape 6.2
13781
+ Platform=Win7
13782
+
13783
+ [Mozilla/5.0 (X11; ?; *) Gecko/* Netscape6/6.2*]
13784
+ Parent=Netscape 6.2
13785
+ Platform=Linux
13786
+
13787
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 7.0
13788
+
13789
+ [Netscape 7.0]
13790
+ Parent=DefaultProperties
13791
+ Browser="Netscape"
13792
+ Version=7.0
13793
+ MajorVer=7
13794
+ Frames=true
13795
+ IFrames=true
13796
+ Tables=true
13797
+ Cookies=true
13798
+ JavaApplets=true
13799
+ JavaScript=true
13800
+ CssVersion=2
13801
+ supportsCSS=true
13802
+
13803
+ [Mozilla/5.0 (Macintosh; ?; PPC Mac OS X;*) Gecko/* Netscape*/7.0*]
13804
+ Parent=Netscape 7.0
13805
+ Platform=MacOSX
13806
+
13807
+ [Mozilla/5.0 (Macintosh; ?; PPC;*) Gecko/* Netscape*/7.0*]
13808
+ Parent=Netscape 7.0
13809
+ Platform=MacPPC
13810
+
13811
+ [Mozilla/5.0 (Windows; ?; Win*9x 4.90; *) Gecko/* Netscape*/7.0*]
13812
+ Parent=Netscape 7.0
13813
+ Platform=WinME
13814
+ Win32=true
13815
+
13816
+ [Mozilla/5.0 (Windows; ?; Win95;*) Gecko/* Netscape*/7.0*]
13817
+ Parent=Netscape 7.0
13818
+ Platform=Win95
13819
+ Win32=true
13820
+
13821
+ [Mozilla/5.0 (Windows; ?; Win98; *) Gecko/* Netscape*/7.0*]
13822
+ Parent=Netscape 7.0
13823
+ Platform=Win98
13824
+ Win32=true
13825
+
13826
+ [Mozilla/5.0 (Windows; ?; Windows NT 4.0; *) Gecko/* Netscape*/7.0*]
13827
+ Parent=Netscape 7.0
13828
+ Platform=WinNT
13829
+ Win32=true
13830
+
13831
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.0; *) Gecko/* Netscape*/7.0*]
13832
+ Parent=Netscape 7.0
13833
+ Platform=Win2000
13834
+ Win32=true
13835
+
13836
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) Gecko/* Netscape*/7.0*]
13837
+ Parent=Netscape 7.0
13838
+ Platform=WinXP
13839
+ Win32=true
13840
+
13841
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) Gecko/* Netscape*/7.0*]
13842
+ Parent=Netscape 7.0
13843
+ Platform=Win2003
13844
+ Win32=true
13845
+
13846
+ [Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) Gecko/* Netscape*/7.0*]
13847
+ Parent=Netscape 7.0
13848
+ Platform=WinVista
13849
+
13850
+ [Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) Gecko/* Netscape*/7.0*]
13851
+ Parent=Netscape 7.0
13852
+ Platform=Win7
13853
+
13854
+ [Mozilla/5.0 (Windows; ?; WinNT4.0; *) Gecko/* Netscape*/7.0*]
13855
+ Parent=Netscape 7.0
13856
+ Platform=WinNT
13857
+ Win32=true
13858
+
13859
+ [Mozilla/5.0 (Windows; ?; WinNT5.0; *) Gecko/* Netscape*/7.0*]
13860
+ Parent=Netscape 7.0
13861
+ Platform=Win2000
13862
+ Win32=true
13863
+
13864
+ [Mozilla/5.0 (Windows; ?; WinNT5.1; *) Gecko/* Netscape*/7.0*]
13865
+ Parent=Netscape 7.0
13866
+ Platform=WinXP
13867
+ Win32=true
13868
+
13869
+ [Mozilla/5.0 (Windows; ?; WinNT5.2; *) Gecko/* Netscape*/7.0*]
13870
+ Parent=Netscape 7.0
13871
+ Platform=Win2003
13872
+ Win32=true
13873
+
13874
+ [Mozilla/5.0 (Windows; ?; WinNT6.0; *) Gecko/* Netscape*/7.0*]
13875
+ Parent=Netscape 7.0
13876
+ Platform=WinVista
13877
+
13878
+ [Mozilla/5.0 (Windows; ?; WinNT6.1; *) Gecko/* Netscape*/7.0*]
13879
+ Parent=Netscape 7.0
13880
+ Platform=Win7
13881
+
13882
+ [Mozilla/5.0 (X11; ?; *) Gecko/* Netscape*/7.0*]
13883
+ Parent=Netscape 7.0
13884
+ Platform=Linux
13885
+
13886
+ [Mozilla/5.0 (X11; ?; SunOS*) Gecko/* Netscape*/7.0*]
13887
+ Parent=Netscape 7.0
13888
+ Platform=SunOS
13889
+
13890
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 7.1
13891
+
13892
+ [Netscape 7.1]
13893
+ Parent=DefaultProperties
13894
+ Browser="Netscape"
13895
+ Version=7.1
13896
+ MajorVer=7
13897
+ MinorVer=1
13898
+ Frames=true
13899
+ IFrames=true
13900
+ Tables=true
13901
+ Cookies=true
13902
+ JavaApplets=true
13903
+ JavaScript=true
13904
+ CssVersion=2
13905
+ supportsCSS=true
13906
+
13907
+ [Mozilla/5.0 (Macintosh; ?; PPC Mac OS X Mach-O; *; rv:*) Gecko/* Netscape*/7.1]
13908
+ Parent=Netscape 7.1
13909
+ Platform=MacOSX
13910
+
13911
+ [Mozilla/5.0 (Macintosh; ?; PPC Mac OS X;*) Gecko/* Netscape*/7.1*]
13912
+ Parent=Netscape 7.1
13913
+ Platform=MacOSX
13914
+
13915
+ [Mozilla/5.0 (Macintosh; ?; PPC;*) Gecko/* Netscape*/7.1*]
13916
+ Parent=Netscape 7.1
13917
+ Platform=MacPPC
13918
+
13919
+ [Mozilla/5.0 (Windows; ?; Win 9x 4.90; *) Gecko/* Netscape*/7.1*]
13920
+ Parent=Netscape 7.1
13921
+ Platform=WinME
13922
+ Win32=true
13923
+
13924
+ [Mozilla/5.0 (Windows; ?; Win95;*) Gecko/* Netscape*/7.1*]
13925
+ Parent=Netscape 7.1
13926
+ Platform=Win95
13927
+ Win32=true
13928
+
13929
+ [Mozilla/5.0 (Windows; ?; Win98; *) Gecko/* Netscape*/7.1*]
13930
+ Parent=Netscape 7.1
13931
+ Platform=Win98
13932
+ Win32=true
13933
+
13934
+ [Mozilla/5.0 (Windows; ?; Win9x 4.90; *) Gecko/* Netscape*/7.1*]
13935
+ Parent=Netscape 7.1
13936
+ Platform=WinME
13937
+ Win32=true
13938
+
13939
+ [Mozilla/5.0 (Windows; ?; Windows NT 4.0; *) Gecko/* Netscape*/7.1*]
13940
+ Parent=Netscape 7.1
13941
+ Platform=WinNT
13942
+ Win32=true
13943
+
13944
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.0; *) Gecko/* Netscape*/7.1*]
13945
+ Parent=Netscape 7.1
13946
+ Platform=Win2000
13947
+ Win32=true
13948
+
13949
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) Gecko/* Netscape*/7.1*]
13950
+ Parent=Netscape 7.1
13951
+ Platform=WinXP
13952
+ Win32=true
13953
+
13954
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) Gecko/* Netscape*/7.1*]
13955
+ Parent=Netscape 7.1
13956
+ Platform=Win2003
13957
+ Win32=true
13958
+
13959
+ [Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) Gecko/* Netscape*/7.1*]
13960
+ Parent=Netscape 7.1
13961
+ Platform=WinVista
13962
+
13963
+ [Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) Gecko/* Netscape*/7.1*]
13964
+ Parent=Netscape 7.1
13965
+ Platform=Win7
13966
+
13967
+ [Mozilla/5.0 (Windows; ?; WinNT4.0; *) Gecko/* Netscape*/7.1*]
13968
+ Parent=Netscape 7.1
13969
+ Platform=WinNT
13970
+ Win32=true
13971
+
13972
+ [Mozilla/5.0 (Windows; ?; WinNT5.0; *) Gecko/* Netscape*/7.1*]
13973
+ Parent=Netscape 7.1
13974
+ Platform=Win2000
13975
+ Win32=true
13976
+
13977
+ [Mozilla/5.0 (Windows; ?; WinNT5.1; *) Gecko/* Netscape*/7.1*]
13978
+ Parent=Netscape 7.1
13979
+ Platform=WinXP
13980
+ Win32=true
13981
+
13982
+ [Mozilla/5.0 (Windows; ?; WinNT5.2; *) Gecko/* Netscape*/7.1*]
13983
+ Parent=Netscape 7.1
13984
+ Platform=Win2003
13985
+ Win32=true
13986
+
13987
+ [Mozilla/5.0 (Windows; ?; WinNT6.0; *) Gecko/* Netscape*/7.1*]
13988
+ Parent=Netscape 7.1
13989
+ Platform=WinVista
13990
+
13991
+ [Mozilla/5.0 (Windows; ?; WinNT6.1; *) Gecko/* Netscape*/7.1*]
13992
+ Parent=Netscape 7.1
13993
+ Platform=Win7
13994
+
13995
+ [Mozilla/5.0 (X11; ?; *) Gecko/* Netscape*/7.1*]
13996
+ Parent=Netscape 7.1
13997
+ Platform=Linux
13998
+
13999
+ [Mozilla/5.0 (X11; ?; SunOS*) Gecko/* Netscape*/7.1*]
14000
+ Parent=Netscape 7.1
14001
+ Platform=SunOS
14002
+
14003
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 7.2
14004
+
14005
+ [Netscape 7.2]
14006
+ Parent=DefaultProperties
14007
+ Browser="Netscape"
14008
+ Version=7.2
14009
+ MajorVer=7
14010
+ MinorVer=2
14011
+ Frames=true
14012
+ IFrames=true
14013
+ Tables=true
14014
+ Cookies=true
14015
+ JavaApplets=true
14016
+ JavaScript=true
14017
+ CssVersion=2
14018
+ supportsCSS=true
14019
+
14020
+ [Mozilla/5.0 (Macintosh; ?; PPC Mac OS X Mach-O; *; rv:*) Gecko/* Netscape*/7.2*]
14021
+ Parent=Netscape 7.2
14022
+ Platform=MacOSX
14023
+
14024
+ [Mozilla/5.0 (Macintosh; ?; PPC Mac OS X;*) Gecko/* Netscape*/7.2*]
14025
+ Parent=Netscape 7.2
14026
+ Platform=MacOSX
14027
+
14028
+ [Mozilla/5.0 (Macintosh; ?; PPC;*) Gecko/* Netscape*/7.2*]
14029
+ Parent=Netscape 7.2
14030
+ Platform=MacPPC
14031
+
14032
+ [Mozilla/5.0 (Windows; ?; Win 9x 4.90; *) Gecko/* Netscape*/7.2*]
14033
+ Parent=Netscape 7.2
14034
+ Platform=WinME
14035
+ Win32=true
14036
+
14037
+ [Mozilla/5.0 (Windows; ?; Win95;*) Gecko/* Netscape*/7.2*]
14038
+ Parent=Netscape 7.2
14039
+ Platform=Win95
14040
+ Win32=true
14041
+
14042
+ [Mozilla/5.0 (Windows; ?; Win98; *) Gecko/* Netscape*/7.2*]
14043
+ Parent=Netscape 7.2
14044
+ Platform=Win98
14045
+ Win32=true
14046
+
14047
+ [Mozilla/5.0 (Windows; ?; Win9x 4.90; *) Gecko/* Netscape*/7.2*]
14048
+ Parent=Netscape 7.2
14049
+ Platform=WinME
14050
+ Win32=true
14051
+
14052
+ [Mozilla/5.0 (Windows; ?; Windows NT 4.0; *) Gecko/* Netscape*/7.2*]
14053
+ Parent=Netscape 7.2
14054
+ Platform=WinNT
14055
+ Win32=true
14056
+
14057
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.0; *) Gecko/* Netscape*/7.2*]
14058
+ Parent=Netscape 7.2
14059
+ Platform=Win2000
14060
+ Win32=true
14061
+
14062
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) Gecko/* Netscape*/7.2*]
14063
+ Parent=Netscape 7.2
14064
+ Platform=WinXP
14065
+ Win32=true
14066
+
14067
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) Gecko/* Netscape*/7.2*]
14068
+ Parent=Netscape 7.2
14069
+ Platform=Win2003
14070
+ Win32=true
14071
+
14072
+ [Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) Gecko/* Netscape*/7.2*]
14073
+ Parent=Netscape 7.2
14074
+ Platform=WinVista
14075
+
14076
+ [Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) Gecko/* Netscape*/7.2*]
14077
+ Parent=Netscape 7.2
14078
+ Platform=Win7
14079
+
14080
+ [Mozilla/5.0 (Windows; ?; WinNT4.0; *) Gecko/* Netscape*/7.2*]
14081
+ Parent=Netscape 7.2
14082
+ Platform=WinNT
14083
+ Win32=true
14084
+
14085
+ [Mozilla/5.0 (Windows; ?; WinNT5.0; *) Gecko/* Netscape*/7.2*]
14086
+ Parent=Netscape 7.2
14087
+ Platform=Win2000
14088
+ Win32=true
14089
+
14090
+ [Mozilla/5.0 (Windows; ?; WinNT5.1; *) Gecko/* Netscape*/7.2*]
14091
+ Parent=Netscape 7.2
14092
+ Platform=WinXP
14093
+ Win32=true
14094
+
14095
+ [Mozilla/5.0 (Windows; ?; WinNT5.2; *) Gecko/* Netscape*/7.2*]
14096
+ Parent=Netscape 7.2
14097
+ Platform=Win2003
14098
+ Win32=true
14099
+
14100
+ [Mozilla/5.0 (Windows; ?; WinNT6.0; *) Gecko/* Netscape*/7.2*]
14101
+ Parent=Netscape 7.2
14102
+ Platform=WinVista
14103
+
14104
+ [Mozilla/5.0 (Windows; ?; WinNT6.1; *) Gecko/* Netscape*/7.2*]
14105
+ Parent=Netscape 7.2
14106
+ Platform=Win7
14107
+
14108
+ [Mozilla/5.0 (X11; ?; *) Gecko/* Netscape*/7.2*]
14109
+ Parent=Netscape 7.2
14110
+ Platform=Linux
14111
+
14112
+ [Mozilla/5.0 (X11; ?; SunOS*) Gecko/* Netscape*/7.2*]
14113
+ Parent=Netscape 7.2
14114
+ Platform=SunOS
14115
+
14116
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 8.0
14117
+
14118
+ [Netscape 8.0]
14119
+ Parent=DefaultProperties
14120
+ Browser="Netscape"
14121
+ Version=8.0
14122
+ MajorVer=8
14123
+ Frames=true
14124
+ IFrames=true
14125
+ Tables=true
14126
+ Cookies=true
14127
+ JavaApplets=true
14128
+ JavaScript=true
14129
+ CssVersion=2
14130
+ supportsCSS=true
14131
+
14132
+ [Mozilla/5.0 (Macintosh; ?; PPC Mac OS X Mach-O; *; rv:*) Gecko/* Netscape*/8.0*]
14133
+ Parent=Netscape 8.0
14134
+ Platform=MacOSX
14135
+
14136
+ [Mozilla/5.0 (Macintosh; ?; PPC Mac OS X;*) Gecko/* Netscape*/8.0*]
14137
+ Parent=Netscape 8.0
14138
+ Platform=MacOSX
14139
+
14140
+ [Mozilla/5.0 (Macintosh; ?; PPC;*) Gecko/* Netscape*/8.0*]
14141
+ Parent=Netscape 8.0
14142
+ Platform=MacPPC
14143
+
14144
+ [Mozilla/5.0 (Windows; ?; Win 9x 4.90; *) Gecko/* Netscape*/8.0*]
14145
+ Parent=Netscape 8.0
14146
+ Platform=WinME
14147
+ Win32=true
14148
+
14149
+ [Mozilla/5.0 (Windows; ?; Win95;*) Gecko/* Netscape*/8.0*]
14150
+ Parent=Netscape 8.0
14151
+ Platform=Win95
14152
+ Win32=true
14153
+
14154
+ [Mozilla/5.0 (Windows; ?; Win98; *) Gecko/* Netscape*/8.0*]
14155
+ Parent=Netscape 8.0
14156
+ Platform=Win98
14157
+ Win32=true
14158
+
14159
+ [Mozilla/5.0 (Windows; ?; Win9x 4.90; *) Gecko/* Netscape*/8.0*]
14160
+ Parent=Netscape 8.0
14161
+ Platform=WinME
14162
+ Win32=true
14163
+
14164
+ [Mozilla/5.0 (Windows; ?; Windows NT 4.0; *) Gecko/* Netscape*/8.0*]
14165
+ Parent=Netscape 8.0
14166
+ Platform=WinNT
14167
+ Win32=true
14168
+
14169
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.0; *) Gecko/* Netscape*/8.0*]
14170
+ Parent=Netscape 8.0
14171
+ Platform=Win2000
14172
+ Win32=true
14173
+
14174
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) Gecko/* Netscape*/8.0*]
14175
+ Parent=Netscape 8.0
14176
+ Platform=WinXP
14177
+ Win32=true
14178
+
14179
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) Gecko/* Netscape*/8.0*]
14180
+ Parent=Netscape 8.0
14181
+ Platform=Win2003
14182
+ Win32=true
14183
+
14184
+ [Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) Gecko/* Netscape*/8.0*]
14185
+ Parent=Netscape 8.0
14186
+ Platform=WinVista
14187
+
14188
+ [Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) Gecko/* Netscape*/8.0*]
14189
+ Parent=Netscape 8.0
14190
+ Platform=Win7
14191
+
14192
+ [Mozilla/5.0 (Windows; ?; WinNT4.0; *) Gecko/* Netscape*/8.0*]
14193
+ Parent=Netscape 8.0
14194
+ Platform=WinNT
14195
+ Win32=true
14196
+
14197
+ [Mozilla/5.0 (Windows; ?; WinNT5.0; *) Gecko/* Netscape*/8.0*]
14198
+ Parent=Netscape 8.0
14199
+ Platform=Win2000
14200
+ Win32=true
14201
+
14202
+ [Mozilla/5.0 (Windows; ?; WinNT5.1; *) Gecko/* Netscape*/8.0*]
14203
+ Parent=Netscape 8.0
14204
+ Platform=WinXP
14205
+ Win32=true
14206
+
14207
+ [Mozilla/5.0 (Windows; ?; WinNT5.2; *) Gecko/* Netscape*/8.0*]
14208
+ Parent=Netscape 8.0
14209
+ Platform=Win2003
14210
+ Win32=true
14211
+
14212
+ [Mozilla/5.0 (Windows; ?; WinNT6.0; *) Gecko/* Netscape*/8.0*]
14213
+ Parent=Netscape 8.0
14214
+ Platform=WinVista
14215
+
14216
+ [Mozilla/5.0 (Windows; ?; WinNT6.1; *) Gecko/* Netscape*/8.0*]
14217
+ Parent=Netscape 8.0
14218
+ Platform=Win7
14219
+
14220
+ [Mozilla/5.0 (X11; ?; *) Gecko/* Netscape*/8.0*]
14221
+ Parent=Netscape 8.0
14222
+ Platform=Linux
14223
+
14224
+ [Mozilla/5.0 (X11; ?; SunOS*) Gecko/* Netscape*/8.0*]
14225
+ Parent=Netscape 8.0
14226
+ Platform=SunOS
14227
+
14228
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 8.1
14229
+
14230
+ [Netscape 8.1]
14231
+ Parent=DefaultProperties
14232
+ Browser="Netscape"
14233
+ Version=8.1
14234
+ MajorVer=8
14235
+ MinorVer=1
14236
+ Frames=true
14237
+ IFrames=true
14238
+ Tables=true
14239
+ Cookies=true
14240
+ JavaApplets=true
14241
+ JavaScript=true
14242
+ CssVersion=2
14243
+ supportsCSS=true
14244
+
14245
+ [Mozilla/5.0 (Macintosh; ?; *Mac OS X*) Gecko/* Netscape*/8.1*]
14246
+ Parent=Netscape 8.1
14247
+ Platform=MacOSX
14248
+
14249
+ [Mozilla/5.0 (Macintosh; ?; PPC;*) Gecko/* Netscape*/8.1*]
14250
+ Parent=Netscape 8.1
14251
+ Platform=MacPPC
14252
+
14253
+ [Mozilla/5.0 (Windows; ?; Win 9x 4.90; *) Gecko/* Netscape*/8.1*]
14254
+ Parent=Netscape 8.1
14255
+ Platform=WinME
14256
+ Win32=true
14257
+
14258
+ [Mozilla/5.0 (Windows; ?; Win95;*) Gecko/* Netscape*/8.1*]
14259
+ Parent=Netscape 8.1
14260
+ Platform=Win95
14261
+ Win32=true
14262
+
14263
+ [Mozilla/5.0 (Windows; ?; Win98; *) Gecko/* Netscape*/8.1*]
14264
+ Parent=Netscape 8.1
14265
+ Platform=Win98
14266
+ Win32=true
14267
+
14268
+ [Mozilla/5.0 (Windows; ?; Win9x 4.90; *) Gecko/* Netscape*/8.1*]
14269
+ Parent=Netscape 8.1
14270
+ Platform=WinME
14271
+ Win32=true
14272
+
14273
+ [Mozilla/5.0 (Windows; ?; Windows NT 4.0; *) Gecko/* Netscape*/8.1*]
14274
+ Parent=Netscape 8.1
14275
+ Platform=WinNT
14276
+ Win32=true
14277
+
14278
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.0; *) Gecko/* Netscape*/8.1*]
14279
+ Parent=Netscape 8.1
14280
+ Platform=Win2000
14281
+ Win32=true
14282
+
14283
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) Gecko/* Netscape*/8.1*]
14284
+ Parent=Netscape 8.1
14285
+ Platform=WinXP
14286
+ Win32=true
14287
+
14288
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) Gecko/* Netscape*/8.1*]
14289
+ Parent=Netscape 8.1
14290
+ Platform=Win2003
14291
+ Win32=true
14292
+
14293
+ [Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) Gecko/* Netscape*/8.1*]
14294
+ Parent=Netscape 8.1
14295
+ Platform=WinVista
14296
+ Win32=true
14297
+
14298
+ [Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) Gecko/* Netscape*/8.1*]
14299
+ Parent=Netscape 8.1
14300
+ Platform=Win7
14301
+
14302
+ [Mozilla/5.0 (Windows; ?; WinNT4.0; *) Gecko/* Netscape*/8.1*]
14303
+ Parent=Netscape 8.1
14304
+ Platform=WinNT
14305
+ Win32=true
14306
+
14307
+ [Mozilla/5.0 (Windows; ?; WinNT5.0; *) Gecko/* Netscape*/8.1*]
14308
+ Parent=Netscape 8.1
14309
+ Platform=Win2000
14310
+ Win32=true
14311
+
14312
+ [Mozilla/5.0 (Windows; ?; WinNT5.1; *) Gecko/* Netscape*/8.1*]
14313
+ Parent=Netscape 8.1
14314
+ Platform=WinXP
14315
+ Win32=true
14316
+
14317
+ [Mozilla/5.0 (Windows; ?; WinNT5.2; *) Gecko/* Netscape*/8.1*]
14318
+ Parent=Netscape 8.1
14319
+ Platform=Win2003
14320
+ Win32=true
14321
+
14322
+ [Mozilla/5.0 (Windows; ?; WinNT6.0; *) Gecko/* Netscape*/8.1*]
14323
+ Parent=Netscape 8.1
14324
+ Platform=WinVista
14325
+ Win32=true
14326
+
14327
+ [Mozilla/5.0 (Windows; ?; WinNT6.1; *) Gecko/* Netscape*/8.1*]
14328
+ Parent=Netscape 8.1
14329
+ Platform=Win7
14330
+
14331
+ [Mozilla/5.0 (X11; ?; *) Gecko/* Netscape*/8.1*]
14332
+ Parent=Netscape 8.1
14333
+ Platform=Linux
14334
+
14335
+ [Mozilla/5.0 (X11; ?; SunOS*) Gecko/* Netscape*/8.1*]
14336
+ Parent=Netscape 8.1
14337
+ Platform=SunOS
14338
+
14339
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; SeaMonkey 1.0
14340
+
14341
+ [SeaMonkey 1.0]
14342
+ Parent=DefaultProperties
14343
+ Browser="SeaMonkey"
14344
+ Version=1.0
14345
+ MajorVer=1
14346
+ Frames=true
14347
+ IFrames=true
14348
+ Tables=true
14349
+ Cookies=true
14350
+ BackgroundSounds=true
14351
+ JavaApplets=true
14352
+ JavaScript=true
14353
+ CssVersion=2
14354
+ supportsCSS=true
14355
+
14356
+ [Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *; rv:1.8*) Gecko/* SeaMonkey/1.0*]
14357
+ Parent=SeaMonkey 1.0
14358
+ Platform=MacOSX
14359
+
14360
+ [Mozilla/5.0 (Windows; ?; Win 9x 4.90; *; rv:1.8*) Gecko/* SeaMonkey/1.0*]
14361
+ Parent=SeaMonkey 1.0
14362
+ Platform=WinME
14363
+
14364
+ [Mozilla/5.0 (Windows; ?; Win98; *; rv:1.8*) Gecko/* SeaMonkey/1.0*]
14365
+ Parent=SeaMonkey 1.0
14366
+ Platform=Win98
14367
+
14368
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.0; *; rv:1.8*) Gecko/* SeaMonkey/1.0*]
14369
+ Parent=SeaMonkey 1.0
14370
+ Platform=Win2000
14371
+
14372
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.1; *; rv:1.8*) Gecko/* SeaMonkey/1.0*]
14373
+ Parent=SeaMonkey 1.0
14374
+ Platform=WinXP
14375
+
14376
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.2; *; rv:1.8*) Gecko/* SeaMonkey/1.0*]
14377
+ Parent=SeaMonkey 1.0
14378
+ Platform=Win2003
14379
+
14380
+ [Mozilla/5.0 (Windows; ?; Windows NT 6.0; *; rv:1.8*) Gecko/* SeaMonkey/1.0*]
14381
+ Parent=SeaMonkey 1.0
14382
+ Platform=WinVista
14383
+
14384
+ [Mozilla/5.0 (Windows; ?; Windows NT 6.1; *; rv:1.8*) Gecko/* SeaMonkey/1.0*]
14385
+ Parent=SeaMonkey 1.0
14386
+ Platform=Win7
14387
+
14388
+ [Mozilla/5.0 (X11; ?; FreeBSD*; *; rv:1.8*) Gecko/* SeaMonkey/1.0*]
14389
+ Parent=SeaMonkey 1.0
14390
+ Platform=FreeBSD
14391
+
14392
+ [Mozilla/5.0 (X11; ?; Linux*; *; rv:1.8*) Gecko/20060221 SeaMonkey/1.0*]
14393
+ Parent=SeaMonkey 1.0
14394
+ Platform=Linux
14395
+
14396
+ [Mozilla/5.0 (X11; ?; SunOS*; *; rv:1.8*) Gecko/* SeaMonkey/1.0*]
14397
+ Parent=SeaMonkey 1.0
14398
+ Platform=SunOS
14399
+
14400
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; SeaMonkey 1.1
14401
+
14402
+ [SeaMonkey 1.1]
14403
+ Parent=DefaultProperties
14404
+ Browser="SeaMonkey"
14405
+ Version=1.1
14406
+ MajorVer=1
14407
+ MinorVer=1
14408
+ Frames=true
14409
+ IFrames=true
14410
+ Tables=true
14411
+ Cookies=true
14412
+ BackgroundSounds=true
14413
+ JavaApplets=true
14414
+ JavaScript=true
14415
+ CssVersion=2
14416
+ supportsCSS=true
14417
+
14418
+ [Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *; rv:1.8*) Gecko/* SeaMonkey/1.1*]
14419
+ Parent=SeaMonkey 1.1
14420
+ Platform=MacOSX
14421
+
14422
+ [Mozilla/5.0 (Windows; ?; Win 9x 4.90; *; rv:1.8*) Gecko/* SeaMonkey/1.1*]
14423
+ Parent=SeaMonkey 1.1
14424
+ Platform=WinME
14425
+
14426
+ [Mozilla/5.0 (Windows; ?; Win98; *; rv:1.8*) Gecko/* SeaMonkey/1.1*]
14427
+ Parent=SeaMonkey 1.1
14428
+ Platform=Win98
14429
+
14430
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.0; *; rv:1.8*) Gecko/* SeaMonkey/1.1*]
14431
+ Parent=SeaMonkey 1.1
14432
+ Platform=Win2000
14433
+
14434
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.1; *; rv:1.8*) Gecko/* SeaMonkey/1.1*]
14435
+ Parent=SeaMonkey 1.1
14436
+ Platform=WinXP
14437
+
14438
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.2; *; rv:1.8*) Gecko/* SeaMonkey/1.1*]
14439
+ Parent=SeaMonkey 1.1
14440
+ Platform=Win2003
14441
+
14442
+ [Mozilla/5.0 (Windows; ?; Windows NT 6.0; *; rv:1.8*) Gecko/* SeaMonkey/1.1*]
14443
+ Parent=SeaMonkey 1.1
14444
+ Platform=WinVista
14445
+
14446
+ [Mozilla/5.0 (Windows; ?; Windows NT 6.1; *; rv:1.8*) Gecko/* SeaMonkey/1.1*]
14447
+ Parent=SeaMonkey 1.1
14448
+ Platform=Win7
14449
+
14450
+ [Mozilla/5.0 (X11; ?; FreeBSD*; *; rv:1.8*) Gecko/* SeaMonkey/1.1*]
14451
+ Parent=SeaMonkey 1.1
14452
+ Platform=FreeBSD
14453
+
14454
+ [Mozilla/5.0 (X11; ?; Linux*; *; rv:1.8*) Gecko/* SeaMonkey/1.1*]
14455
+ Parent=SeaMonkey 1.1
14456
+ Platform=Linux
14457
+
14458
+ [Mozilla/5.0 (X11; ?; SunOS*; *; rv:1.8*) Gecko/* SeaMonkey/1.1*]
14459
+ Parent=SeaMonkey 1.1
14460
+ Platform=SunOS
14461
+
14462
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; SeaMonkey 2.0
14463
+
14464
+ [SeaMonkey 2.0]
14465
+ Parent=DefaultProperties
14466
+ Browser="SeaMonkey"
14467
+ Version=2.0
14468
+ MajorVer=2
14469
+ Alpha=true
14470
+ Frames=true
14471
+ IFrames=true
14472
+ Tables=true
14473
+ Cookies=true
14474
+ BackgroundSounds=true
14475
+ JavaApplets=true
14476
+ JavaScript=true
14477
+ CssVersion=2
14478
+ supportsCSS=true
14479
+
14480
+ [Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *; rv:1.9*) Gecko/* SeaMonkey/2.0*]
14481
+ Parent=SeaMonkey 2.0
14482
+ Platform=MacOSX
14483
+
14484
+ [Mozilla/5.0 (Windows; ?; Win 9x 4.90; *; rv:1.9*) Gecko/* SeaMonkey/2.0*]
14485
+ Parent=SeaMonkey 2.0
14486
+ Platform=WinME
14487
+
14488
+ [Mozilla/5.0 (Windows; ?; Win98; *; rv:1.9*) Gecko/* SeaMonkey/2.0*]
14489
+ Parent=SeaMonkey 2.0
14490
+ Platform=Win98
14491
+
14492
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.0; *; rv:1.9*) Gecko/* SeaMonkey/2.0*]
14493
+ Parent=SeaMonkey 2.0
14494
+ Platform=Win2000
14495
+
14496
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.1; *; rv:1.9*) Gecko/* SeaMonkey/2.0*]
14497
+ Parent=SeaMonkey 2.0
14498
+ Platform=WinXP
14499
+
14500
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.2; *; rv:1.9*) Gecko/* SeaMonkey/2.0*]
14501
+ Parent=SeaMonkey 2.0
14502
+ Platform=Win2003
14503
+
14504
+ [Mozilla/5.0 (Windows; ?; Windows NT 6.0; *; rv:1.9*) Gecko/* SeaMonkey/2.0*]
14505
+ Parent=SeaMonkey 2.0
14506
+ Platform=WinVista
14507
+
14508
+ [Mozilla/5.0 (Windows; ?; Windows NT 6.1; *; rv:1.9*) Gecko/* SeaMonkey/2.0*]
14509
+ Parent=SeaMonkey 2.0
14510
+ Platform=Win7
14511
+
14512
+ [Mozilla/5.0 (X11; ?; FreeBSD*; *; rv:1.9*) Gecko/* SeaMonkey/2.0*]
14513
+ Parent=SeaMonkey 2.0
14514
+ Platform=FreeBSD
14515
+
14516
+ [Mozilla/5.0 (X11; ?; Linux*; *; rv:1.9*) Gecko/20060221 SeaMonkey/2.0*]
14517
+ Parent=SeaMonkey 2.0
14518
+ Platform=Linux
14519
+
14520
+ [Mozilla/5.0 (X11; ?; SunOS*; *; rv:1.9*) Gecko/* SeaMonkey/2.0*]
14521
+ Parent=SeaMonkey 2.0
14522
+ Platform=SunOS
14523
+
14524
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Flock 1.0
14525
+
14526
+ [Flock 1.0]
14527
+ Parent=DefaultProperties
14528
+ Browser="Flock"
14529
+ Version=1.0
14530
+ MajorVer=1
14531
+ Frames=true
14532
+ IFrames=true
14533
+ Tables=true
14534
+ Cookies=true
14535
+ JavaApplets=true
14536
+ JavaScript=true
14537
+ CssVersion=2
14538
+ supportsCSS=true
14539
+
14540
+ [Mozilla/5.0 (Macintosh; U; *Mac OS X*; *; rv:1.*) Gecko/* Firefox/2.* Flock/1.*]
14541
+ Parent=Flock 1.0
14542
+ Platform=MacOSX
14543
+
14544
+ [Mozilla/5.0 (Windows; U; Win 9x 4.90; *; rv:1.*) Gecko/* Firefox/2.* Flock/1.*]
14545
+ Parent=Flock 1.0
14546
+ Platform=WinME
14547
+
14548
+ [Mozilla/5.0 (Windows; U; Windows NT 5.0*; *; rv:1.*) Gecko/* Firefox/2.* Flock/1.*]
14549
+ Parent=Flock 1.0
14550
+ Platform=Win2000
14551
+
14552
+ [Mozilla/5.0 (Windows; U; Windows NT 5.1*; *; rv:1.*) Gecko/* Firefox/2.* Flock/1.*]
14553
+ Parent=Flock 1.0
14554
+ Platform=WinXP
14555
+
14556
+ [Mozilla/5.0 (Windows; U; Windows NT 5.2*; *; rv:1.*) Gecko/* Firefox/2.* Flock/1.*]
14557
+ Parent=Flock 1.0
14558
+ Platform=Win2003
14559
+
14560
+ [Mozilla/5.0 (Windows; U; Windows NT 6.0*; *; rv:1.*) Gecko/* Firefox/2.* Flock/1.*]
14561
+ Parent=Flock 1.0
14562
+ Platform=WinVista
14563
+
14564
+ [Mozilla/5.0 (Windows; U; Windows NT 6.1*; *; rv:1.*) Gecko/* Firefox/2.* Flock/1.*]
14565
+ Parent=Flock 1.0
14566
+ Platform=Win7
14567
+
14568
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Flock 2.0
14569
+
14570
+ [Flock 2.0]
14571
+ Parent=DefaultProperties
14572
+ Browser="Flock"
14573
+ Version=2.0
14574
+ MajorVer=2
14575
+ Frames=true
14576
+ IFrames=true
14577
+ Tables=true
14578
+ Cookies=true
14579
+ JavaApplets=true
14580
+ JavaScript=true
14581
+ CssVersion=2
14582
+ supportsCSS=true
14583
+
14584
+ [Mozilla/5.0 (Macintosh; U; *Mac OS X*; *; rv:1.*) Gecko/* Firefox/3.* Flock/2.*]
14585
+ Parent=Flock 2.0
14586
+ Platform=MacOSX
14587
+
14588
+ [Mozilla/5.0 (Windows; U; Win 9x 4.90; *; rv:1.*) Gecko/* Firefox/3.* Flock/2.*]
14589
+ Parent=Flock 2.0
14590
+ Platform=WinME
14591
+
14592
+ [Mozilla/5.0 (Windows; U; Windows NT 5.0*; *; rv:1.*) Gecko/* Firefox/3.* Flock/2.*]
14593
+ Parent=Flock 2.0
14594
+ Platform=Win2000
14595
+
14596
+ [Mozilla/5.0 (Windows; U; Windows NT 5.1*; *; rv:1.*) Gecko/* Firefox/3.* Flock/2.*]
14597
+ Parent=Flock 2.0
14598
+ Platform=WinXP
14599
+
14600
+ [Mozilla/5.0 (Windows; U; Windows NT 5.2*; *; rv:1.*) Gecko/* Firefox/3.* Flock/2.*]
14601
+ Parent=Flock 2.0
14602
+ Platform=Win2003
14603
+
14604
+ [Mozilla/5.0 (Windows; U; Windows NT 6.0*; *; rv:1.*) Gecko/* Firefox/3.* Flock/2.*]
14605
+ Parent=Flock 2.0
14606
+ Platform=WinVista
14607
+
14608
+ [Mozilla/5.0 (Windows; U; Windows NT 6.1*; *; rv:1.*) Gecko/* Firefox/3.* Flock/2.*]
14609
+ Parent=Flock 2.0
14610
+ Platform=Win7
14611
+
14612
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Sleipnir 2.0
14613
+
14614
+ [Sleipnir]
14615
+ Parent=DefaultProperties
14616
+ Browser="Sleipnir"
14617
+ Version=2.0
14618
+ MajorVer=2
14619
+ Frames=true
14620
+ IFrames=true
14621
+ Tables=true
14622
+ Cookies=true
14623
+ JavaApplets=true
14624
+ JavaScript=true
14625
+ CssVersion=2
14626
+ supportsCSS=true
14627
+
14628
+ [Mozilla/4.0 (compatible; MSIE ?.0; Windows NT 5.0*) Sleipnir/2.*]
14629
+ Parent=Sleipnir
14630
+ Platform=Win2000
14631
+
14632
+ [Mozilla/4.0 (compatible; MSIE ?.0; Windows NT 5.1*) Sleipnir/2.*]
14633
+ Parent=Sleipnir
14634
+ Platform=WinXP
14635
+
14636
+ [Mozilla/4.0 (compatible; MSIE ?.0; Windows NT 5.2*) Sleipnir/2.*]
14637
+ Parent=Sleipnir
14638
+ Platform=Win2003
14639
+
14640
+ [Mozilla/4.0 (compatible; MSIE ?.0; Windows NT 6.0*) Sleipnir/2.*]
14641
+ Parent=Sleipnir
14642
+ Platform=WinVista
14643
+
14644
+ [Mozilla/4.0 (compatible; MSIE ?.0; Windows NT 6.1*) Sleipnir/2.*]
14645
+ Parent=Sleipnir
14646
+ Platform=Win7
14647
+
14648
+ [Sleipnir*]
14649
+ Parent=Sleipnir
14650
+
14651
+ [Sleipnir/2.*]
14652
+ Parent=Sleipnir
14653
+
14654
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Fennec 1.0
14655
+
14656
+ [Fennec 1.0]
14657
+ Parent=DefaultProperties
14658
+ Browser="Firefox Mobile"
14659
+ Version=1.0
14660
+ MajorVer=1
14661
+ Alpha=true
14662
+ Frames=true
14663
+ IFrames=true
14664
+ Tables=true
14665
+ Cookies=true
14666
+ JavaApplets=true
14667
+ JavaScript=true
14668
+ CssVersion=3
14669
+ supportsCSS=true
14670
+
14671
+ [Mozilla/5.0 (Windows; U; Windows NT 5.1; *; rv:1.9*) Gecko/* Fennec/1.0*]
14672
+ Parent=Fennec 1.0
14673
+ Platform=WinXP
14674
+
14675
+ [Mozilla/5.0 (Windows; U; Windows NT 6.0; *; rv:1.9*) Gecko/* Fennec/1.0*]
14676
+ Parent=Fennec 1.0
14677
+ Platform=WinVista
14678
+
14679
+ [Mozilla/5.0 (Windows; U; Windows NT 6.1; *; rv:1.9*) Gecko/* Fennec/1.0*]
14680
+ Parent=Fennec 1.0
14681
+ Platform=Win7
14682
+
14683
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 1.0
14684
+
14685
+ [Firefox 1.0]
14686
+ Parent=DefaultProperties
14687
+ Browser="Firefox"
14688
+ Version=1.0
14689
+ MajorVer=1
14690
+ Frames=true
14691
+ IFrames=true
14692
+ Tables=true
14693
+ Cookies=true
14694
+ JavaApplets=true
14695
+ JavaScript=true
14696
+ CssVersion=2
14697
+ supportsCSS=true
14698
+
14699
+ [Mozilla/5.0 (Linux; *; PPC*; *; rv:1.*) Gecko/* Firefox/1.0*]
14700
+ Parent=Firefox 1.0
14701
+ Platform=MacPPC
14702
+
14703
+ [Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.*) Gecko/* Firefox/1.0*]
14704
+ Parent=Firefox 1.0
14705
+ Platform=MacOSX
14706
+
14707
+ [Mozilla/5.0 (OS/2; *; Warp*; *; rv:1.*) Gecko/* Firefox/1.0*]
14708
+ Parent=Firefox 1.0
14709
+ Platform=OS/2
14710
+
14711
+ [Mozilla/5.0 (Windows; *; Win 9x 4.90*; *; rv:1.*) Gecko/* Firefox/1.0*]
14712
+ Parent=Firefox 1.0
14713
+ Platform=WinME
14714
+ Win32=true
14715
+
14716
+ [Mozilla/5.0 (Windows; *; Win95; *; rv:1.*) Gecko/* Firefox/1.0*]
14717
+ Parent=Firefox 1.0
14718
+ Platform=Win95
14719
+ Win32=true
14720
+
14721
+ [Mozilla/5.0 (Windows; *; Win98; *; rv:1.*) Gecko/* Firefox/1.0*]
14722
+ Parent=Firefox 1.0
14723
+ Platform=Win98
14724
+ Win32=true
14725
+
14726
+ [Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.*) Gecko/* Firefox/1.0*]
14727
+ Parent=Firefox 1.0
14728
+ Platform=Win2000
14729
+ Win32=true
14730
+
14731
+ [Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.*) Gecko/* Firefox/1.0*]
14732
+ Parent=Firefox 1.0
14733
+ Platform=WinXP
14734
+ Win32=true
14735
+
14736
+ [Mozilla/5.0 (Windows; *; Windows NT 5.1; rv:1.*) Gecko/* Firefox/1.0*]
14737
+ Parent=Firefox 1.0
14738
+ Platform=WinXP
14739
+ Win32=true
14740
+
14741
+ [Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.*) Gecko/* Firefox/1.0*]
14742
+ Parent=Firefox 1.0
14743
+ Platform=Win2003
14744
+ Win32=true
14745
+
14746
+ [Mozilla/5.0 (Windows; *; Windows NT 6.0*; *; rv:1.*) Gecko/* Firefox/1.0*]
14747
+ Parent=Firefox 1.0
14748
+ Platform=WinVista
14749
+ Win32=true
14750
+
14751
+ [Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.*) Gecko/* Firefox/1.0*]
14752
+ Parent=Firefox 1.0
14753
+ Platform=WinNT
14754
+ Win32=true
14755
+
14756
+ [Mozilla/5.0 (X11; *; *Linux*; *; rv:1.*) Gecko/* Firefox/1.0*]
14757
+ Parent=Firefox 1.0
14758
+ Platform=Linux
14759
+
14760
+ [Mozilla/5.0 (X11; *; *Linux*; rv:1.*) Gecko/* Firefox/1.0*]
14761
+ Parent=Firefox 1.0
14762
+ Platform=Linux
14763
+
14764
+ [Mozilla/5.0 (X11; *; DragonFly*; *; rv:1.*) Gecko/* Firefox/1.0*]
14765
+ Parent=Firefox 1.0
14766
+
14767
+ [Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.*) Gecko/* Firefox/1.0*]
14768
+ Parent=Firefox 1.0
14769
+ Platform=FreeBSD
14770
+
14771
+ [Mozilla/5.0 (X11; *; HP-UX*; *; rv:1.*) Gecko/* Firefox/1.0*]
14772
+ Parent=Firefox 1.0
14773
+ Platform=HP-UX
14774
+
14775
+ [Mozilla/5.0 (X11; *; IRIX64*; *; rv:1.*) Gecko/* Firefox/1.0*]
14776
+ Parent=Firefox 1.0
14777
+ Platform=IRIX64
14778
+
14779
+ [Mozilla/5.0 (X11; *; OpenBSD*; *; rv:1.*) Gecko/* Firefox/1.0*]
14780
+ Parent=Firefox 1.0
14781
+ Platform=OpenBSD
14782
+
14783
+ [Mozilla/5.0 (X11; *; SunOS*; *; rv:1.*) Gecko/* Firefox/1.0*]
14784
+ Parent=Firefox 1.0
14785
+ Platform=SunOS
14786
+
14787
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 1.4
14788
+
14789
+ [Firefox 1.4]
14790
+ Parent=DefaultProperties
14791
+ Browser="Firefox"
14792
+ Version=1.4
14793
+ MajorVer=1
14794
+ MinorVer=4
14795
+ Frames=true
14796
+ IFrames=true
14797
+ Tables=true
14798
+ Cookies=true
14799
+ JavaApplets=true
14800
+ JavaScript=true
14801
+ CssVersion=2
14802
+ supportsCSS=true
14803
+
14804
+ [Mozilla/5.0 (Linux; *; PPC*; *; rv:1.*) Gecko/* Firefox/1.4*]
14805
+ Parent=Firefox 1.4
14806
+ Platform=Linux
14807
+
14808
+ [Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.*) Gecko/* Firefox/1.4*]
14809
+ Parent=Firefox 1.4
14810
+ Platform=MacOSX
14811
+
14812
+ [Mozilla/5.0 (OS/2; *; Warp*; *; rv:1.*) Gecko/* Firefox/1.4*]
14813
+ Parent=Firefox 1.4
14814
+ Platform=OS/2
14815
+
14816
+ [Mozilla/5.0 (Windows; *; Win 9x 4.90; *; rv:1.*) Gecko/* Firefox/1.4*]
14817
+ Parent=Firefox 1.4
14818
+ Platform=WinME
14819
+ Win32=true
14820
+
14821
+ [Mozilla/5.0 (Windows; *; Win95*; *; rv:1.*) Gecko/* Firefox/1.4*]
14822
+ Parent=Firefox 1.4
14823
+ Platform=Win95
14824
+ Win32=true
14825
+
14826
+ [Mozilla/5.0 (Windows; *; Win98; *; rv:1.*) Gecko/* Firefox/1.4*]
14827
+ Parent=Firefox 1.4
14828
+ Platform=Win98
14829
+ Win32=true
14830
+
14831
+ [Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.*) Gecko/* Firefox/1.4*]
14832
+ Parent=Firefox 1.4
14833
+ Platform=Win2000
14834
+ Win32=true
14835
+
14836
+ [Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.*) Gecko/* Firefox/1.4*]
14837
+ Parent=Firefox 1.4
14838
+ Platform=WinXP
14839
+ Win32=true
14840
+
14841
+ [Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.*) Gecko/* Firefox/1.4*]
14842
+ Parent=Firefox 1.4
14843
+ Platform=Win2003
14844
+ Win32=true
14845
+
14846
+ [Mozilla/5.0 (Windows; *; Windows NT 6.0; *; rv:1.*) Gecko/* Firefox/1.4*]
14847
+ Parent=Firefox 1.4
14848
+ Platform=WinVista
14849
+ Win32=true
14850
+
14851
+ [Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.*) Gecko/* Firefox/1.4*]
14852
+ Parent=Firefox 1.4
14853
+ Platform=WinNT
14854
+ Win32=true
14855
+
14856
+ [Mozilla/5.0 (X11; *; *Linux*; *; rv:1.*) Gecko/* Firefox/1.4*]
14857
+ Parent=Firefox 1.4
14858
+ Platform=Linux
14859
+
14860
+ [Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.*) Gecko/* Firefox/1.4*]
14861
+ Parent=Firefox 1.4
14862
+ Platform=FreeBSD
14863
+
14864
+ [Mozilla/5.0 (X11; *; HP-UX*; *; rv:1.*) Gecko/* Firefox/1.4*]
14865
+ Parent=Firefox 1.4
14866
+ Platform=HP-UX
14867
+
14868
+ [Mozilla/5.0 (X11; *; IRIX64*; *; rv:1.*) Gecko/* Firefox/1.4*]
14869
+ Parent=Firefox 1.4
14870
+ Platform=IRIX64
14871
+
14872
+ [Mozilla/5.0 (X11; *; OpenBSD*; *; rv:1.*) Gecko/* Firefox/1.4*]
14873
+ Parent=Firefox 1.4
14874
+ Platform=OpenBSD
14875
+
14876
+ [Mozilla/5.0 (X11; *; SunOS*; *; rv:1.*) Gecko/* Firefox/1.4*]
14877
+ Parent=Firefox 1.4
14878
+ Platform=SunOS
14879
+
14880
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 1.5
14881
+
14882
+ [Firefox 1.5]
14883
+ Parent=DefaultProperties
14884
+ Browser="Firefox"
14885
+ Version=1.5
14886
+ MajorVer=1
14887
+ MinorVer=5
14888
+ Frames=true
14889
+ IFrames=true
14890
+ Tables=true
14891
+ Cookies=true
14892
+ JavaApplets=true
14893
+ JavaScript=true
14894
+ CssVersion=2
14895
+ supportsCSS=true
14896
+
14897
+ [Mozilla/5.0 (Linux; *; PPC*; *; rv:1.*) Gecko/* Firefox/1.5*]
14898
+ Parent=Firefox 1.5
14899
+ Platform=Linux
14900
+
14901
+ [Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.*) Gecko/* Firefox/1.5*]
14902
+ Parent=Firefox 1.5
14903
+ Platform=MacOSX
14904
+
14905
+ [Mozilla/5.0 (OS/2; *; Warp*; *; rv:1.*) Gecko/* Firefox/1.5*]
14906
+ Parent=Firefox 1.5
14907
+ Platform=OS/2
14908
+
14909
+ [Mozilla/5.0 (rv:1.*) Gecko/* Firefox/1.5*]
14910
+ Parent=Firefox 1.5
14911
+
14912
+ [Mozilla/5.0 (Windows; *; Win 9x 4.90; *; rv:1.*) Gecko/* Firefox/1.5*]
14913
+ Parent=Firefox 1.5
14914
+ Platform=WinME
14915
+ Win32=true
14916
+
14917
+ [Mozilla/5.0 (Windows; *; Win95; *; rv:1.*) Gecko/* Firefox/1.5*]
14918
+ Parent=Firefox 1.5
14919
+ Platform=Win95
14920
+ Win32=true
14921
+
14922
+ [Mozilla/5.0 (Windows; *; Win98; *; rv:1.*) Gecko/* Firefox/1.5*]
14923
+ Parent=Firefox 1.5
14924
+ Platform=Win98
14925
+ Win32=true
14926
+
14927
+ [Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.*) Gecko/* Firefox/1.5*]
14928
+ Parent=Firefox 1.5
14929
+ Platform=Win2000
14930
+ Win32=true
14931
+
14932
+ [Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.*) Gecko/* Firefox/1.5*]
14933
+ Parent=Firefox 1.5
14934
+ Platform=WinXP
14935
+ Win32=true
14936
+
14937
+ [Mozilla/5.0 (Windows; *; Windows NT 5.2 x64; *; rv:1.*) Gecko/* Firefox/1.5*]
14938
+ Parent=Firefox 1.5
14939
+ Platform=WinXP
14940
+ Win32=true
14941
+
14942
+ [Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.*) Gecko/* Firefox/1.5*]
14943
+ Parent=Firefox 1.5
14944
+ Platform=Win2003
14945
+ Win32=true
14946
+
14947
+ [Mozilla/5.0 (Windows; *; Windows NT 6.0; *; rv:1.*) Gecko/* Firefox/1.5*]
14948
+ Parent=Firefox 1.5
14949
+ Platform=WinVista
14950
+ Win32=true
14951
+
14952
+ [Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.*) Gecko/* Firefox/1.5*]
14953
+ Parent=Firefox 1.5
14954
+ Platform=WinNT
14955
+ Win32=true
14956
+
14957
+ [Mozilla/5.0 (X11; *; *Linux*; *; rv:1.*) Gecko/* Firefox/1.5*]
14958
+ Parent=Firefox 1.5
14959
+ Platform=Linux
14960
+
14961
+ [Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.*) Gecko/* Firefox/1.5*]
14962
+ Parent=Firefox 1.5
14963
+ Platform=FreeBSD
14964
+
14965
+ [Mozilla/5.0 (X11; *; HP-UX*; *; rv:1.*) Gecko/* Firefox/1.5*]
14966
+ Parent=Firefox 1.5
14967
+ Platform=HP-UX
14968
+
14969
+ [Mozilla/5.0 (X11; *; IRIX64*; *; rv:1.*) Gecko/* Firefox/1.5*]
14970
+ Parent=Firefox 1.5
14971
+ Platform=IRIX64
14972
+
14973
+ [Mozilla/5.0 (X11; *; OpenBSD*; *; rv:1.*) Gecko/* Firefox/1.5*]
14974
+ Parent=Firefox 1.5
14975
+ Platform=OpenBSD
14976
+
14977
+ [Mozilla/5.0 (X11; *; SunOS*; *; rv:1.*) Gecko/* Firefox/1.5*]
14978
+ Parent=Firefox 1.5
14979
+ Platform=SunOS
14980
+
14981
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 2.0
14982
+
14983
+ [Firefox 2.0]
14984
+ Parent=DefaultProperties
14985
+ Browser="Firefox"
14986
+ Version=2.0
14987
+ MajorVer=2
14988
+ Frames=true
14989
+ IFrames=true
14990
+ Tables=true
14991
+ Cookies=true
14992
+ JavaApplets=true
14993
+ JavaScript=true
14994
+ CssVersion=2
14995
+ supportsCSS=true
14996
+
14997
+ [Mozilla/5.0 (Linux; *; PPC*; *; rv:1.8*) Gecko/* Firefox/2.0*]
14998
+ Parent=Firefox 2.0
14999
+ Platform=Linux
15000
+
15001
+ [Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.8*) Gecko/* Firefox/2.0*]
15002
+ Parent=Firefox 2.0
15003
+ Platform=MacOSX
15004
+
15005
+ [Mozilla/5.0 (OS/2; *; Warp*; *; rv:1.8*) Gecko/* Firefox/2.0*]
15006
+ Parent=Firefox 2.0
15007
+ Platform=OS/2
15008
+
15009
+ [Mozilla/5.0 (Windows; *; Win 9x 4.90; *; rv:1.8*) Gecko/* Firefox/2.0*]
15010
+ Parent=Firefox 2.0
15011
+ Platform=WinME
15012
+ Win32=true
15013
+
15014
+ [Mozilla/5.0 (Windows; *; Win95; *; rv:1.8*) Gecko/* Firefox/2.0*]
15015
+ Parent=Firefox 2.0
15016
+ Platform=Win95
15017
+ Win32=true
15018
+
15019
+ [Mozilla/5.0 (Windows; *; Win98; *; rv:1.8*) Gecko/* Firefox/2.0*]
15020
+ Parent=Firefox 2.0
15021
+ Platform=Win98
15022
+ Win32=true
15023
+
15024
+ [Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.*) Gecko/* Firefox/2.0*]
15025
+ Parent=Firefox 2.0
15026
+ Platform=Win2000
15027
+ Win32=true
15028
+
15029
+ [Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.8*) Gecko/* Firefox/2.0*]
15030
+ Parent=Firefox 2.0
15031
+ Platform=WinXP
15032
+ Win32=true
15033
+
15034
+ [Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.8*) Gecko/* Firefox/2.0*]
15035
+ Parent=Firefox 2.0
15036
+ Platform=Win2003
15037
+ Win32=true
15038
+
15039
+ [Mozilla/5.0 (Windows; *; Windows NT 6.0; *; rv:1.8*) Gecko/* Firefox/2.0*]
15040
+ Parent=Firefox 2.0
15041
+ Platform=WinVista
15042
+ Win32=true
15043
+
15044
+ [Mozilla/5.0 (Windows; *; Windows NT 6.1; *; rv:1.8*) Gecko/* Firefox/2.0*]
15045
+ Parent=Firefox 2.0
15046
+ Platform=Win7
15047
+
15048
+ [Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.8*) Gecko/* Firefox/2.0*]
15049
+ Parent=Firefox 2.0
15050
+ Platform=WinNT
15051
+ Win32=true
15052
+
15053
+ [Mozilla/5.0 (X11; *; *Linux*; *; rv:1.8*) Gecko/* Firefox/2.0*]
15054
+ Parent=Firefox 2.0
15055
+ Platform=Linux
15056
+
15057
+ [Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.8*) Gecko/* Firefox/2.0*]
15058
+ Parent=Firefox 2.0
15059
+ Platform=FreeBSD
15060
+
15061
+ [Mozilla/5.0 (X11; *; HP-UX*; *; rv:1.8*) Gecko/* Firefox/2.0*]
15062
+ Parent=Firefox 2.0
15063
+ Platform=HP-UX
15064
+
15065
+ [Mozilla/5.0 (X11; *; IRIX64*; *; rv:1.8*) Gecko/* Firefox/2.0*]
15066
+ Parent=Firefox 2.0
15067
+ Platform=IRIX64
15068
+
15069
+ [Mozilla/5.0 (X11; *; OpenBSD*; *; rv:1.8*) Gecko/* Firefox/2.0*]
15070
+ Parent=Firefox 2.0
15071
+ Platform=OpenBSD
15072
+
15073
+ [Mozilla/5.0 (X11; *; SunOS*; *; rv:1.8*) Gecko/* Firefox/2.0*]
15074
+ Parent=Firefox 2.0
15075
+ Platform=SunOS
15076
+
15077
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 3.0
15078
+
15079
+ [Firefox 3.0]
15080
+ Parent=DefaultProperties
15081
+ Browser="Firefox"
15082
+ Version=3.0
15083
+ MajorVer=3
15084
+ Frames=true
15085
+ IFrames=true
15086
+ Tables=true
15087
+ Cookies=true
15088
+ JavaApplets=true
15089
+ JavaScript=true
15090
+ CssVersion=3
15091
+ supportsCSS=true
15092
+
15093
+ [Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.9*) Gecko/* Firefox/3.0*]
15094
+ Parent=Firefox 3.0
15095
+ Platform=MacOSX
15096
+
15097
+ [Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.*) Gecko/* Firefox/3.0*]
15098
+ Parent=Firefox 3.0
15099
+ Platform=Win2000
15100
+
15101
+ [Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.9*) Gecko/* Firefox/3.0*]
15102
+ Parent=Firefox 3.0
15103
+ Platform=WinXP
15104
+ Win32=true
15105
+
15106
+ [Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.9*) Gecko/* Firefox/3.0*]
15107
+ Parent=Firefox 3.0
15108
+ Platform=Win2003
15109
+ Win32=true
15110
+
15111
+ [Mozilla/5.0 (Windows; *; Windows NT 6.0; *; rv:1.9*) Gecko/* Firefox/3.0*]
15112
+ Parent=Firefox 3.0
15113
+ Platform=WinVista
15114
+ Win32=true
15115
+
15116
+ [Mozilla/5.0 (Windows; *; Windows NT 6.1; *; rv:1.*) Gecko/* Firefox/3.0*]
15117
+ Parent=Firefox 3.0
15118
+ Platform=Win7
15119
+
15120
+ [Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.9*) Gecko/* Firefox/3.0*]
15121
+ Parent=Firefox 3.0
15122
+ Platform=WinNT
15123
+ Win32=true
15124
+
15125
+ [Mozilla/5.0 (Windows; U; Windows NT 5.1 x64; *; rv:1.9*) Gecko/* Firefox/3.0*]
15126
+ Parent=Firefox 3.0
15127
+ Platform=WinXP
15128
+ Win32=false
15129
+ Win64=true
15130
+
15131
+ [Mozilla/5.0 (Windows; U; Windows NT 5.2 x64; *; rv:1.9*) Gecko/* Firefox/3.0*]
15132
+ Parent=Firefox 3.0
15133
+ Platform=Win2003
15134
+ Win32=false
15135
+ Win64=true
15136
+
15137
+ [Mozilla/5.0 (Windows; U; Windows NT 6.0 x64; *; rv:1.9*) Gecko/* Firefox/3.0*]
15138
+ Parent=Firefox 3.0
15139
+ Platform=WinVista
15140
+
15141
+ [Mozilla/5.0 (Windows; U; Windows NT 6.1 x64; *; rv:1.9*) Gecko/* Firefox/3.0*]
15142
+ Parent=Firefox 3.0
15143
+ Platform=Win7
15144
+
15145
+ [Mozilla/5.0 (X11; *; *Linux*; *; rv:1.9*) Gecko/* Firefox/3.0*]
15146
+ Parent=Firefox 3.0
15147
+ Platform=Linux
15148
+
15149
+ [Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.9*) Gecko/* Firefox/3.0*]
15150
+ Parent=Firefox 3.0
15151
+ Platform=FreeBSD
15152
+
15153
+ [Mozilla/5.0 (X11; *; HP-UX*; *; rv:1.9*) Gecko/* Firefox/3.0*]
15154
+ Parent=Firefox 3.0
15155
+ Platform=HP-UX
15156
+
15157
+ [Mozilla/5.0 (X11; *; IRIX64*; *; rv:1.9*) Gecko/* Firefox/3.0*]
15158
+ Parent=Firefox 3.0
15159
+ Platform=IRIX64
15160
+
15161
+ [Mozilla/5.0 (X11; *; OpenBSD*; *; rv:1.9*) Gecko/* Firefox/3.0*]
15162
+ Parent=Firefox 3.0
15163
+ Platform=OpenBSD
15164
+
15165
+ [Mozilla/5.0 (X11; *; SunOS*; *; rv:1.9*) Gecko/* Firefox/3.0*]
15166
+ Parent=Firefox 3.0
15167
+ Platform=SunOS
15168
+
15169
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 3.1
15170
+
15171
+ [Firefox 3.1]
15172
+ Parent=DefaultProperties
15173
+ Browser="Firefox"
15174
+ Version=3.1
15175
+ MajorVer=3
15176
+ MinorVer=1
15177
+ Beta=true
15178
+ Frames=true
15179
+ IFrames=true
15180
+ Tables=true
15181
+ Cookies=true
15182
+ JavaApplets=true
15183
+ JavaScript=true
15184
+ CssVersion=3
15185
+ supportsCSS=true
15186
+
15187
+ [Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.9*) Gecko/* Firefox/3.1*]
15188
+ Parent=Firefox 3.1
15189
+ Platform=MacOSX
15190
+
15191
+ [Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.9*) Gecko/* Firefox/3.1*]
15192
+ Parent=Firefox 3.1
15193
+ Platform=Win2000
15194
+
15195
+ [Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.9*) Gecko/* Firefox/3.1*]
15196
+ Parent=Firefox 3.1
15197
+ Platform=WinXP
15198
+ Win32=true
15199
+
15200
+ [Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.9*) Gecko/* Firefox/3.1*]
15201
+ Parent=Firefox 3.1
15202
+ Platform=Win2003
15203
+ Win32=true
15204
+
15205
+ [Mozilla/5.0 (Windows; *; Windows NT 6.0; *; rv:1.9*) Gecko/* Firefox/3.1*]
15206
+ Parent=Firefox 3.1
15207
+ Platform=WinVista
15208
+ Win32=true
15209
+
15210
+ [Mozilla/5.0 (Windows; *; Windows NT 6.1; *; rv:1.9*) Gecko/* Firefox/3.1*]
15211
+ Parent=Firefox 3.1
15212
+ Platform=Win7
15213
+
15214
+ [Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.9*) Gecko/* Firefox/3.1*]
15215
+ Parent=Firefox 3.1
15216
+ Platform=WinNT
15217
+ Win32=true
15218
+
15219
+ [Mozilla/5.0 (Windows; U; Windows NT 5.1 x64; *; rv:1.9*) Gecko/* Firefox/3.1*]
15220
+ Parent=Firefox 3.1
15221
+ Platform=WinXP
15222
+ Win32=false
15223
+ Win64=true
15224
+
15225
+ [Mozilla/5.0 (Windows; U; Windows NT 5.2 x64; *; rv:1.9*) Gecko/* Firefox/3.1*]
15226
+ Parent=Firefox 3.1
15227
+ Platform=Win2003
15228
+ Win32=false
15229
+ Win64=true
15230
+
15231
+ [Mozilla/5.0 (Windows; U; Windows NT 6.0 x64; *; rv:1.9*) Gecko/* Firefox/3.1*]
15232
+ Parent=Firefox 3.1
15233
+ Platform=WinVista
15234
+
15235
+ [Mozilla/5.0 (Windows; U; Windows NT 6.1 x64; *; rv:1.9*) Gecko/* Firefox/3.1*]
15236
+ Parent=Firefox 3.1
15237
+ Platform=Win7
15238
+
15239
+ [Mozilla/5.0 (X11; *; *Linux*; *; rv:1.9*) Gecko/* Firefox/3.1*]
15240
+ Parent=Firefox 3.1
15241
+ Platform=Linux
15242
+
15243
+ [Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.9*) Gecko/* Firefox/3.1*]
15244
+ Parent=Firefox 3.1
15245
+ Platform=FreeBSD
15246
+
15247
+ [Mozilla/5.0 (X11; *; HP-UX*; *; rv:1.9*) Gecko/* Firefox/3.1*]
15248
+ Parent=Firefox 3.1
15249
+ Platform=HP-UX
15250
+
15251
+ [Mozilla/5.0 (X11; *; IRIX64*; *; rv:1.9*) Gecko/* Firefox/3.1*]
15252
+ Parent=Firefox 3.1
15253
+ Platform=IRIX64
15254
+
15255
+ [Mozilla/5.0 (X11; *; OpenBSD*; *; rv:1.9*) Gecko/* Firefox/3.1*]
15256
+ Parent=Firefox 3.1
15257
+ Platform=OpenBSD
15258
+
15259
+ [Mozilla/5.0 (X11; *; SunOS*; *; rv:1.9*) Gecko/* Firefox/3.1*]
15260
+ Parent=Firefox 3.1
15261
+ Platform=SunOS
15262
+
15263
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 3.5
15264
+
15265
+ [Firefox 3.5]
15266
+ Parent=DefaultProperties
15267
+ Browser="Firefox"
15268
+ Version=3.5
15269
+ MajorVer=3
15270
+ MinorVer=5
15271
+ Frames=true
15272
+ IFrames=true
15273
+ Tables=true
15274
+ Cookies=true
15275
+ JavaApplets=true
15276
+ JavaScript=true
15277
+ CssVersion=3
15278
+ supportsCSS=true
15279
+
15280
+ [Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.9.*) Gecko/* Firefox/3.5*]
15281
+ Parent=Firefox 3.5
15282
+ Platform=MacOSX
15283
+
15284
+ [Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.9.*) Gecko/* Firefox/3.5*]
15285
+ Parent=Firefox 3.5
15286
+ Platform=Win2000
15287
+
15288
+ [Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.9.*) Gecko/* Firefox/3.5*]
15289
+ Parent=Firefox 3.5
15290
+ Platform=WinXP
15291
+ Win32=true
15292
+
15293
+ [Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.9.*) Gecko/* Firefox/3.5*]
15294
+ Parent=Firefox 3.5
15295
+ Platform=Win2003
15296
+ Win32=true
15297
+
15298
+ [Mozilla/5.0 (Windows; *; Windows NT 6.0; *; rv:1.9.*) Gecko/* Firefox/3.5*]
15299
+ Parent=Firefox 3.5
15300
+ Platform=WinVista
15301
+ Win32=true
15302
+
15303
+ [Mozilla/5.0 (Windows; *; Windows NT 6.1; *; rv:1.9.*) Gecko/* Firefox/3.5*]
15304
+ Parent=Firefox 3.5
15305
+ Platform=Win7
15306
+
15307
+ [Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.9.*) Gecko/* Firefox/3.5*]
15308
+ Parent=Firefox 3.5
15309
+ Platform=WinNT
15310
+ Win32=true
15311
+
15312
+ [Mozilla/5.0 (Windows; U; Windows NT 5.1 x64; *; rv:1.9.*) Gecko/* Firefox/3.5*]
15313
+ Parent=Firefox 3.5
15314
+ Platform=WinXP
15315
+ Win32=false
15316
+ Win64=true
15317
+
15318
+ [Mozilla/5.0 (Windows; U; Windows NT 5.2 x64; *; rv:1.9.*) Gecko/* Firefox/3.5*]
15319
+ Parent=Firefox 3.5
15320
+ Platform=Win2003
15321
+ Win32=false
15322
+ Win64=true
15323
+
15324
+ [Mozilla/5.0 (Windows; U; Windows NT 6.0 x64; *; rv:1.9.*) Gecko/* Firefox/3.5*]
15325
+ Parent=Firefox 3.5
15326
+ Platform=WinVista
15327
+
15328
+ [Mozilla/5.0 (Windows; U; Windows NT 6.1 x64; *; rv:1.9.*) Gecko/* Firefox/3.5*]
15329
+ Parent=Firefox 3.5
15330
+ Platform=Win7
15331
+
15332
+ [Mozilla/5.0 (X11; *; *Linux*; *; rv:1.9.*) Gecko/* Firefox/3.5*]
15333
+ Parent=Firefox 3.5
15334
+ Platform=Linux
15335
+
15336
+ [Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.9.*) Gecko/* Firefox/3.5*]
15337
+ Parent=Firefox 3.5
15338
+ Platform=FreeBSD
15339
+
15340
+ [Mozilla/5.0 (X11; *; HP-UX*; *; rv:1.9.*) Gecko/* Firefox/3.5*]
15341
+ Parent=Firefox 3.5
15342
+ Platform=HP-UX
15343
+
15344
+ [Mozilla/5.0 (X11; *; IRIX64*; *; rv:1.9.*) Gecko/* Firefox/3.5*]
15345
+ Parent=Firefox 3.5
15346
+ Platform=IRIX64
15347
+
15348
+ [Mozilla/5.0 (X11; *; OpenBSD*; *; rv:1.9.*) Gecko/* Firefox/3.5*]
15349
+ Parent=Firefox 3.5
15350
+ Platform=OpenBSD
15351
+
15352
+ [Mozilla/5.0 (X11; *; SunOS*; *; rv:1.9.*) Gecko/* Firefox/3.5*]
15353
+ Parent=Firefox 3.5
15354
+ Platform=SunOS
15355
+
15356
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 3.6
15357
+
15358
+ [Firefox 3.6]
15359
+ Parent=DefaultProperties
15360
+ Browser="Firefox"
15361
+ Version=3.6
15362
+ MajorVer=3
15363
+ MinorVer=6
15364
+ Beta=true
15365
+ Frames=true
15366
+ IFrames=true
15367
+ Tables=true
15368
+ Cookies=true
15369
+ JavaApplets=true
15370
+ JavaScript=true
15371
+ CssVersion=3
15372
+ supportsCSS=true
15373
+
15374
+ [Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.9.2*) Gecko/* Firefox/3.6*]
15375
+ Parent=Firefox 3.6
15376
+ Platform=MacOSX
15377
+
15378
+ [Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.9.2*) Gecko/* Firefox/3.6*]
15379
+ Parent=Firefox 3.6
15380
+ Platform=Win2000
15381
+
15382
+ [Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.9.2*) Gecko/* Firefox/3.6*]
15383
+ Parent=Firefox 3.6
15384
+ Platform=WinXP
15385
+ Win32=true
15386
+
15387
+ [Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.9.2*) Gecko/* Firefox/3.6*]
15388
+ Parent=Firefox 3.6
15389
+ Platform=Win2003
15390
+ Win32=true
15391
+
15392
+ [Mozilla/5.0 (Windows; *; Windows NT 6.0; *; rv:1.9.2*) Gecko/* Firefox/3.6*]
15393
+ Parent=Firefox 3.6
15394
+ Platform=WinVista
15395
+ Win32=true
15396
+
15397
+ [Mozilla/5.0 (Windows; *; Windows NT 6.1; *; rv:1.9.2*) Gecko/* Firefox/3.6*]
15398
+ Parent=Firefox 3.6
15399
+ Platform=Win7
15400
+
15401
+ [Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.9.2*) Gecko/* Firefox/3.6*]
15402
+ Parent=Firefox 3.6
15403
+ Platform=WinNT
15404
+ Win32=true
15405
+
15406
+ [Mozilla/5.0 (Windows; U; Windows NT 5.1 x64; *; rv:1.9.2*) Gecko/* Firefox/3.6*]
15407
+ Parent=Firefox 3.6
15408
+ Platform=WinXP
15409
+ Win32=false
15410
+ Win64=true
15411
+
15412
+ [Mozilla/5.0 (Windows; U; Windows NT 5.2 x64; *; rv:1.9.2*) Gecko/* Firefox/3.6*]
15413
+ Parent=Firefox 3.6
15414
+ Platform=Win2003
15415
+ Win32=false
15416
+ Win64=true
15417
+
15418
+ [Mozilla/5.0 (Windows; U; Windows NT 6.0 x64; *; rv:1.9.2*) Gecko/* Firefox/3.6*]
15419
+ Parent=Firefox 3.6
15420
+ Platform=WinVista
15421
+
15422
+ [Mozilla/5.0 (Windows; U; Windows NT 6.1 x64; *; rv:1.9.2*) Gecko/* Firefox/3.6*]
15423
+ Parent=Firefox 3.6
15424
+ Platform=Win7
15425
+
15426
+ [Mozilla/5.0 (X11; *; *Linux*; *; rv:1.9.2*) Gecko/* Firefox/3.6*]
15427
+ Parent=Firefox 3.6
15428
+ Platform=Linux
15429
+
15430
+ [Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.9.2*) Gecko/* Firefox/3.6*]
15431
+ Parent=Firefox 3.6
15432
+ Platform=FreeBSD
15433
+
15434
+ [Mozilla/5.0 (X11; *; HP-UX*; *; rv:1.9.2*) Gecko/* Firefox/3.6*]
15435
+ Parent=Firefox 3.6
15436
+ Platform=HP-UX
15437
+
15438
+ [Mozilla/5.0 (X11; *; IRIX64*; *; rv:1.9.2*) Gecko/* Firefox/3.6*]
15439
+ Parent=Firefox 3.6
15440
+ Platform=IRIX64
15441
+
15442
+ [Mozilla/5.0 (X11; *; OpenBSD*; *; rv:1.9.2*) Gecko/* Firefox/3.6*]
15443
+ Parent=Firefox 3.6
15444
+ Platform=OpenBSD
15445
+
15446
+ [Mozilla/5.0 (X11; *; SunOS*; *; rv:1.9.2*) Gecko/* Firefox/3.6*]
15447
+ Parent=Firefox 3.6
15448
+ Platform=SunOS
15449
+
15450
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 3.7
15451
+
15452
+ [Firefox 3.7]
15453
+ Parent=DefaultProperties
15454
+ Browser="Firefox"
15455
+ Version=3.7
15456
+ MajorVer=3
15457
+ MinorVer=7
15458
+ Alpha=true
15459
+ Frames=true
15460
+ IFrames=true
15461
+ Tables=true
15462
+ Cookies=true
15463
+ JavaApplets=true
15464
+ JavaScript=true
15465
+ CssVersion=3
15466
+ supportsCSS=true
15467
+
15468
+ [Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.9.3) Gecko/* Minefield/3.7*]
15469
+ Parent=Firefox 3.7
15470
+ Platform=MacOSX
15471
+
15472
+ [Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.9.3) Gecko/* Minefield/3.7*]
15473
+ Parent=Firefox 3.7
15474
+ Platform=Win2000
15475
+
15476
+ [Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.9.3) Gecko/* Minefield/3.7*]
15477
+ Parent=Firefox 3.7
15478
+ Platform=WinXP
15479
+ Win32=true
15480
+
15481
+ [Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.9.3) Gecko/* Minefield/3.7*]
15482
+ Parent=Firefox 3.7
15483
+ Platform=Win2003
15484
+ Win32=true
15485
+
15486
+ [Mozilla/5.0 (Windows; *; Windows NT 6.0; *; rv:1.9.3) Gecko/* Minefield/3.7*]
15487
+ Parent=Firefox 3.7
15488
+ Platform=WinVista
15489
+ Win32=true
15490
+
15491
+ [Mozilla/5.0 (Windows; *; Windows NT 6.1; *; rv:1.9.3) Gecko/* Minefield/3.7*]
15492
+ Parent=Firefox 3.7
15493
+ Platform=Win7
15494
+
15495
+ [Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.9.3) Gecko/* Minefield/3.7*]
15496
+ Parent=Firefox 3.7
15497
+ Platform=WinNT
15498
+ Win32=true
15499
+
15500
+ [Mozilla/5.0 (Windows; U; Windows NT 5.1 x64; *; rv:1.9.3) Gecko/* Minefield/3.7*]
15501
+ Parent=Firefox 3.7
15502
+ Platform=WinXP
15503
+ Win32=false
15504
+ Win64=true
15505
+
15506
+ [Mozilla/5.0 (Windows; U; Windows NT 5.2 x64; *; rv:1.9.3) Gecko/* Minefield/3.7*]
15507
+ Parent=Firefox 3.7
15508
+ Platform=Win2003
15509
+ Win32=false
15510
+ Win64=true
15511
+
15512
+ [Mozilla/5.0 (Windows; U; Windows NT 6.0 x64; *; rv:1.9.3) Gecko/* Minefield/3.7*]
15513
+ Parent=Firefox 3.7
15514
+ Platform=WinVista
15515
+
15516
+ [Mozilla/5.0 (Windows; U; Windows NT 6.1 x64; *; rv:1.9.3) Gecko/* Minefield/3.7*]
15517
+ Parent=Firefox 3.7
15518
+ Platform=Win7
15519
+
15520
+ [Mozilla/5.0 (X11; *; *Linux*; *; rv:1.9.3) Gecko/* Minefield/3.7*]
15521
+ Parent=Firefox 3.7
15522
+ Platform=Linux
15523
+
15524
+ [Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.9.3) Gecko/* Minefield/3.7*]
15525
+ Parent=Firefox 3.7
15526
+ Platform=FreeBSD
15527
+
15528
+ [Mozilla/5.0 (X11; *; HP-UX*; *; rv:1.9.3) Gecko/* Minefield/3.7*]
15529
+ Parent=Firefox 3.7
15530
+ Platform=HP-UX
15531
+
15532
+ [Mozilla/5.0 (X11; *; IRIX64*; *; rv:1.9.3) Gecko/* Minefield/3.7*]
15533
+ Parent=Firefox 3.7
15534
+ Platform=IRIX64
15535
+
15536
+ [Mozilla/5.0 (X11; *; OpenBSD*; *; rv:1.9.3) Gecko/* Minefield/3.7*]
15537
+ Parent=Firefox 3.7
15538
+ Platform=OpenBSD
15539
+
15540
+ [Mozilla/5.0 (X11; *; SunOS*; *; rv:1.9.3) Gecko/* Minefield/3.7*]
15541
+ Parent=Firefox 3.7
15542
+ Platform=SunOS
15543
+
15544
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Thunderbird 1.0
15545
+
15546
+ [Thunderbird 1.0]
15547
+ Parent=DefaultProperties
15548
+ Browser="Thunderbird"
15549
+ Version=1.0
15550
+ MajorVer=1
15551
+ Frames=true
15552
+ IFrames=true
15553
+ Tables=true
15554
+ Cookies=true
15555
+ JavaApplets=true
15556
+ JavaScript=true
15557
+
15558
+ [Mozilla/5.0 (Macintosh; *Mac OS X; U; *; rv:1.9.*) Gecko/* Thunderbird/1.*]
15559
+ Parent=Thunderbird 1.0
15560
+ Platform=MacOSX
15561
+
15562
+ [Mozilla/5.0 (Windows; U; Windows NT 5.0; *; rv:1.9.*) Gecko/* Thunderbird/1.*]
15563
+ Parent=Thunderbird 1.0
15564
+ Platform=Win2000
15565
+
15566
+ [Mozilla/5.0 (Windows; U; Windows NT 5.1; *; rv:1.9.*) Gecko/* Thunderbird/1.*]
15567
+ Parent=Thunderbird 1.0
15568
+ Platform=WinXP
15569
+
15570
+ [Mozilla/5.0 (Windows; U; Windows NT 5.2; *; rv:1.9.*) Gecko/* Thunderbird/1.*]
15571
+ Parent=Thunderbird 1.0
15572
+ Platform=Win2003
15573
+
15574
+ [Mozilla/5.0 (Windows; U; Windows NT 6.0; *; rv:1.9.*) Gecko/* Thunderbird/1.*]
15575
+ Parent=Thunderbird 1.0
15576
+ Platform=WinVista
15577
+
15578
+ [Mozilla/5.0 (Windows; U; Windows NT 6.1; *; rv:1.9.*) Gecko/* Thunderbird/1.*]
15579
+ Parent=Thunderbird 1.0
15580
+ Platform=Win7
15581
+
15582
+ [Mozilla/5.0 (X11; U; Linux i686*; *; rv:1.9.*) Gecko/* Thunderbird/1.*]
15583
+ Parent=Thunderbird 1.0
15584
+ Platform=Linux
15585
+
15586
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Thunderbird 2.0
15587
+
15588
+ [Thunderbird 2.0]
15589
+ Parent=DefaultProperties
15590
+ Browser="Thunderbird"
15591
+ Version=2.0
15592
+ MajorVer=2
15593
+ Frames=true
15594
+ IFrames=true
15595
+ Tables=true
15596
+ Cookies=true
15597
+ JavaApplets=true
15598
+ JavaScript=true
15599
+
15600
+ [Mozilla/5.0 (Macintosh; *Mac OS X; U; *; rv:1.9.*) Gecko/* Thunderbird/2.*]
15601
+ Parent=Thunderbird 2.0
15602
+ Platform=MacOSX
15603
+
15604
+ [Mozilla/5.0 (Windows; U; Windows NT 5.0; *; rv:1.9.*) Gecko/* Thunderbird/2.*]
15605
+ Parent=Thunderbird 2.0
15606
+ Platform=Win2000
15607
+
15608
+ [Mozilla/5.0 (Windows; U; Windows NT 5.1; *; rv:1.9.*) Gecko/* Thunderbird/2.*]
15609
+ Parent=Thunderbird 2.0
15610
+ Platform=WinXP
15611
+
15612
+ [Mozilla/5.0 (Windows; U; Windows NT 5.2; *; rv:1.9.*) Gecko/* Thunderbird/2.*]
15613
+ Parent=Thunderbird 2.0
15614
+ Platform=Win2003
15615
+
15616
+ [Mozilla/5.0 (Windows; U; Windows NT 6.0; *; rv:1.9.*) Gecko/* Thunderbird/2.*]
15617
+ Parent=Thunderbird 2.0
15618
+ Platform=WinVista
15619
+
15620
+ [Mozilla/5.0 (Windows; U; Windows NT 6.1; *; rv:1.9.*) Gecko/* Thunderbird/2.*]
15621
+ Parent=Thunderbird 2.0
15622
+ Platform=Win7
15623
+
15624
+ [Mozilla/5.0 (X11; U; Linux i686*; *; rv:1.9.*) Gecko/* Thunderbird/2.*]
15625
+ Parent=Thunderbird 2.0
15626
+ Platform=Linux
15627
+
15628
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Thunderbird 3.0
15629
+
15630
+ [Thunderbird 3.0]
15631
+ Parent=DefaultProperties
15632
+ Browser="Thunderbird"
15633
+ Version=3.0
15634
+ MajorVer=3
15635
+ Frames=true
15636
+ IFrames=true
15637
+ Tables=true
15638
+ Cookies=true
15639
+ JavaApplets=true
15640
+ JavaScript=true
15641
+
15642
+ [Mozilla/5.0 (Macintosh; *Mac OS X; U; *; rv:1.9.*) Gecko/* Thunderbird/3.*]
15643
+ Parent=Thunderbird 3.0
15644
+ Platform=MacOSX
15645
+
15646
+ [Mozilla/5.0 (Windows; U; Windows NT 5.0; *; rv:1.9.*) Gecko/* Thunderbird/3.*]
15647
+ Parent=Thunderbird 3.0
15648
+ Platform=Win2000
15649
+
15650
+ [Mozilla/5.0 (Windows; U; Windows NT 5.1; *; rv:1.9.*) Gecko/* Thunderbird/3.*]
15651
+ Parent=Thunderbird 3.0
15652
+ Platform=WinXP
15653
+
15654
+ [Mozilla/5.0 (Windows; U; Windows NT 5.2; *; rv:1.9.*) Gecko/* Thunderbird/3.*]
15655
+ Parent=Thunderbird 3.0
15656
+ Platform=Win2003
15657
+
15658
+ [Mozilla/5.0 (Windows; U; Windows NT 6.0; *; rv:1.9.*) Gecko/* Thunderbird/3.*]
15659
+ Parent=Thunderbird 3.0
15660
+ Platform=WinVista
15661
+
15662
+ [Mozilla/5.0 (Windows; U; Windows NT 6.1; *; rv:1.9.*) Gecko/* Thunderbird/3.*]
15663
+ Parent=Thunderbird 3.0
15664
+ Platform=Win7
15665
+
15666
+ [Mozilla/5.0 (X11; U; Linux i686*; *; rv:1.9.*) Gecko/* Thunderbird/3.*]
15667
+ Parent=Thunderbird 3.0
15668
+ Platform=Linux
15669
+
15670
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Iceweasel
15671
+
15672
+ [Iceweasel]
15673
+ Parent=DefaultProperties
15674
+ Browser="Iceweasel"
15675
+ Platform=Linux
15676
+ Beta=true
15677
+ Frames=true
15678
+ IFrames=true
15679
+ Tables=true
15680
+ Cookies=true
15681
+ JavaApplets=true
15682
+ JavaScript=true
15683
+ CssVersion=2
15684
+ supportsCSS=true
15685
+
15686
+ [Mozilla/5.0 (X11; U; Linux*; *; rv:1.8*) Gecko/* Iceweasel/2.0* (Debian-*)]
15687
+ Parent=Iceweasel
15688
+ Version=2.0
15689
+ MajorVer=2
15690
+ MinorVer=0
15691
+
15692
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.0
15693
+
15694
+ [Mozilla 1.0]
15695
+ Parent=DefaultProperties
15696
+ Browser="Mozilla"
15697
+ Version=1.0
15698
+ MajorVer=1
15699
+ Beta=true
15700
+ Frames=true
15701
+ IFrames=true
15702
+ Tables=true
15703
+ Cookies=true
15704
+ JavaApplets=true
15705
+ JavaScript=true
15706
+ CssVersion=2
15707
+ supportsCSS=true
15708
+
15709
+ [Mozilla/5.0 (*rv:1.0.*) Gecko/*]
15710
+ Parent=Mozilla 1.0
15711
+
15712
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.1
15713
+
15714
+ [Mozilla 1.1]
15715
+ Parent=DefaultProperties
15716
+ Browser="Mozilla"
15717
+ Version=1.1
15718
+ MajorVer=1
15719
+ MinorVer=1
15720
+ Beta=true
15721
+ Frames=true
15722
+ IFrames=true
15723
+ Tables=true
15724
+ Cookies=true
15725
+ JavaApplets=true
15726
+ JavaScript=true
15727
+ CssVersion=2
15728
+ supportsCSS=true
15729
+
15730
+ [Mozilla/5.0 (*rv:1.1.*) Gecko/*]
15731
+ Parent=Mozilla 1.1
15732
+
15733
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.2
15734
+
15735
+ [Mozilla 1.2]
15736
+ Parent=DefaultProperties
15737
+ Browser="Mozilla"
15738
+ Version=1.2
15739
+ MajorVer=1
15740
+ MinorVer=2
15741
+ Beta=true
15742
+ Frames=true
15743
+ IFrames=true
15744
+ Tables=true
15745
+ Cookies=true
15746
+ JavaApplets=true
15747
+ JavaScript=true
15748
+ CssVersion=2
15749
+ supportsCSS=true
15750
+
15751
+ [Mozilla/5.0 (*rv:1.2.*) Gecko/*]
15752
+ Parent=Mozilla 1.2
15753
+
15754
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.3
15755
+
15756
+ [Mozilla 1.3]
15757
+ Parent=DefaultProperties
15758
+ Browser="Mozilla"
15759
+ Version=1.3
15760
+ MajorVer=1
15761
+ MinorVer=3
15762
+ Beta=true
15763
+ Frames=true
15764
+ IFrames=true
15765
+ Tables=true
15766
+ Cookies=true
15767
+ JavaApplets=true
15768
+ JavaScript=true
15769
+ CssVersion=2
15770
+ supportsCSS=true
15771
+
15772
+ [Mozilla/5.0 (*rv:1.3.*) Gecko/*]
15773
+ Parent=Mozilla 1.3
15774
+
15775
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.4
15776
+
15777
+ [Mozilla 1.4]
15778
+ Parent=DefaultProperties
15779
+ Browser="Mozilla"
15780
+ Version=1.4
15781
+ MajorVer=1
15782
+ MinorVer=4
15783
+ Beta=true
15784
+ Frames=true
15785
+ IFrames=true
15786
+ Tables=true
15787
+ Cookies=true
15788
+ JavaApplets=true
15789
+ JavaScript=true
15790
+ CssVersion=2
15791
+ supportsCSS=true
15792
+
15793
+ [Mozilla/5.0 (*rv:1.4*) Gecko/*]
15794
+ Parent=Mozilla 1.4
15795
+
15796
+ [Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *rv:1.4*) Gecko/*]
15797
+ Parent=Mozilla 1.4
15798
+ Platform=MacOSX
15799
+
15800
+ [Mozilla/5.0 (Windows; ?; Win 9x 4.90; *rv:1.4*) Gecko/*]
15801
+ Parent=Mozilla 1.4
15802
+ Platform=WinME
15803
+ Win32=true
15804
+
15805
+ [Mozilla/5.0 (Windows; ?; Win3.1; *rv:1.4*) Gecko/*]
15806
+ Parent=Mozilla 1.4
15807
+ Platform=Win31
15808
+ Win32=true
15809
+
15810
+ [Mozilla/5.0 (Windows; ?; Win3.11; *rv:1.4*) Gecko/*]
15811
+ Parent=Mozilla 1.4
15812
+ Platform=Win31
15813
+ Win16=true
15814
+ Win32=true
15815
+
15816
+ [Mozilla/5.0 (Windows; ?; Win95; *rv:1.4*) Gecko/*]
15817
+ Parent=Mozilla 1.4
15818
+ Platform=Win95
15819
+ Win32=true
15820
+
15821
+ [Mozilla/5.0 (Windows; ?; Win98; *rv:1.4*) Gecko/*]
15822
+ Parent=Mozilla 1.4
15823
+ Platform=Win98
15824
+ Win32=true
15825
+
15826
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.0; *rv:1.4*) Gecko/*]
15827
+ Parent=Mozilla 1.4
15828
+ Platform=Win2000
15829
+ Win32=true
15830
+
15831
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:1.4*) Gecko/*]
15832
+ Parent=Mozilla 1.4
15833
+ Platform=WinXP
15834
+ Win32=true
15835
+
15836
+ [Mozilla/5.0 (Windows; ?; WinNT4.0; *rv:1.4*) Gecko/*]
15837
+ Parent=Mozilla 1.4
15838
+ Platform=WinNT
15839
+ Win32=true
15840
+
15841
+ [Mozilla/5.0 (X11; *FreeBSD*; *rv:1.4*) Gecko/*]
15842
+ Parent=Mozilla 1.4
15843
+ Platform=FreeBSD
15844
+
15845
+ [Mozilla/5.0 (X11; *Linux*; *rv:1.4*) Gecko/*]
15846
+ Parent=Mozilla 1.4
15847
+ Platform=Linux
15848
+
15849
+ [Mozilla/5.0 (X11; *OpenBSD*; *rv:1.4*) Gecko/*]
15850
+ Parent=Mozilla 1.4
15851
+ Platform=OpenBSD
15852
+
15853
+ [Mozilla/5.0 (X11; *SunOS*; *rv:1.4*) Gecko/*]
15854
+ Parent=Mozilla 1.4
15855
+ Platform=SunOS
15856
+
15857
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.5
15858
+
15859
+ [Mozilla 1.5]
15860
+ Parent=DefaultProperties
15861
+ Browser="Mozilla"
15862
+ Version=1.5
15863
+ MajorVer=1
15864
+ MinorVer=5
15865
+ Beta=true
15866
+ Frames=true
15867
+ IFrames=true
15868
+ Tables=true
15869
+ Cookies=true
15870
+ JavaApplets=true
15871
+ JavaScript=true
15872
+ CssVersion=2
15873
+ supportsCSS=true
15874
+
15875
+ [Mozilla/5.0 (*rv:1.5*) Gecko/*]
15876
+ Parent=Mozilla 1.5
15877
+
15878
+ [Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *rv:1.5*) Gecko/*]
15879
+ Parent=Mozilla 1.5
15880
+ Platform=MacOSX
15881
+
15882
+ [Mozilla/5.0 (Windows; ?; Win 9x 4.90; *rv:1.5*) Gecko/*]
15883
+ Parent=Mozilla 1.5
15884
+ Platform=WinME
15885
+ Win32=true
15886
+
15887
+ [Mozilla/5.0 (Windows; ?; Win3.1; *rv:1.5*) Gecko/*]
15888
+ Parent=Mozilla 1.5
15889
+ Platform=Win31
15890
+ Win32=true
15891
+
15892
+ [Mozilla/5.0 (Windows; ?; Win3.11; *rv:1.5*) Gecko/*]
15893
+ Parent=Mozilla 1.5
15894
+ Platform=Win31
15895
+ Win16=true
15896
+ Win32=true
15897
+
15898
+ [Mozilla/5.0 (Windows; ?; Win95; *rv:1.5*) Gecko/*]
15899
+ Parent=Mozilla 1.5
15900
+ Platform=Win95
15901
+ Win32=true
15902
+
15903
+ [Mozilla/5.0 (Windows; ?; Win98; *rv:1.5*) Gecko/*]
15904
+ Parent=Mozilla 1.5
15905
+ Platform=Win98
15906
+ Win32=true
15907
+
15908
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.0; *rv:1.5*) Gecko/*]
15909
+ Parent=Mozilla 1.5
15910
+ Platform=Win2000
15911
+ Win32=true
15912
+
15913
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:1.5*) Gecko/*]
15914
+ Parent=Mozilla 1.5
15915
+ Platform=WinXP
15916
+ Win32=true
15917
+
15918
+ [Mozilla/5.0 (Windows; ?; WinNT4.0; *rv:1.5*) Gecko/*]
15919
+ Parent=Mozilla 1.5
15920
+ Platform=WinNT
15921
+ Win32=true
15922
+
15923
+ [Mozilla/5.0 (X11; *FreeBSD*; *rv:1.5*) Gecko/*]
15924
+ Parent=Mozilla 1.5
15925
+ Platform=FreeBSD
15926
+
15927
+ [Mozilla/5.0 (X11; *Linux*; *rv:1.5*) Gecko/*]
15928
+ Parent=Mozilla 1.5
15929
+ Platform=Linux
15930
+
15931
+ [Mozilla/5.0 (X11; *OpenBSD*; *rv:1.5*) Gecko/*]
15932
+ Parent=Mozilla 1.5
15933
+ Platform=OpenBSD
15934
+
15935
+ [Mozilla/5.0 (X11; *SunOS*; *rv:1.5*) Gecko/*]
15936
+ Parent=Mozilla 1.5
15937
+ Platform=SunOS
15938
+
15939
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.6
15940
+
15941
+ [Mozilla 1.6]
15942
+ Parent=DefaultProperties
15943
+ Browser="Mozilla"
15944
+ Version=1.6
15945
+ MajorVer=1
15946
+ MinorVer=6
15947
+ Beta=true
15948
+ Frames=true
15949
+ IFrames=true
15950
+ Tables=true
15951
+ Cookies=true
15952
+ JavaApplets=true
15953
+ JavaScript=true
15954
+ CssVersion=2
15955
+ supportsCSS=true
15956
+
15957
+ [Mozilla/5.0 (*rv:1.6*) Gecko/*]
15958
+ Parent=Mozilla 1.6
15959
+
15960
+ [Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *rv:1.6*) Gecko/*]
15961
+ Parent=Mozilla 1.6
15962
+ Platform=MacOSX
15963
+
15964
+ [Mozilla/5.0 (Windows; ?; Win 9x 4.90; *rv:1.6*) Gecko/*]
15965
+ Parent=Mozilla 1.6
15966
+ Platform=WinME
15967
+ Win32=true
15968
+
15969
+ [Mozilla/5.0 (Windows; ?; Win3.1; *rv:1.6*) Gecko/*]
15970
+ Parent=Mozilla 1.6
15971
+ Platform=Win31
15972
+ Win32=true
15973
+
15974
+ [Mozilla/5.0 (Windows; ?; Win3.11; *rv:1.6*) Gecko/*]
15975
+ Parent=Mozilla 1.6
15976
+ Platform=Win31
15977
+ Win16=true
15978
+ Win32=true
15979
+
15980
+ [Mozilla/5.0 (Windows; ?; Win95; *rv:1.6*) Gecko/*]
15981
+ Parent=Mozilla 1.6
15982
+ Platform=Win95
15983
+ Win32=true
15984
+
15985
+ [Mozilla/5.0 (Windows; ?; Win98; *rv:1.6*) Gecko/*]
15986
+ Parent=Mozilla 1.6
15987
+ Platform=Win98
15988
+ Win32=true
15989
+
15990
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.0; *rv:1.6*) Gecko/*]
15991
+ Parent=Mozilla 1.6
15992
+ Platform=Win2000
15993
+ Win32=true
15994
+
15995
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:1.6*) Gecko/*]
15996
+ Parent=Mozilla 1.6
15997
+ Platform=WinXP
15998
+ Win32=true
15999
+
16000
+ [Mozilla/5.0 (Windows; ?; WinNT4.0; *rv:1.6*) Gecko/*]
16001
+ Parent=Mozilla 1.6
16002
+ Platform=WinNT
16003
+ Win32=true
16004
+
16005
+ [Mozilla/5.0 (X11; *FreeBSD*; *rv:1.6*) Gecko/*]
16006
+ Parent=Mozilla 1.6
16007
+ Platform=FreeBSD
16008
+
16009
+ [Mozilla/5.0 (X11; *Linux*; *rv:1.6*) Gecko/*]
16010
+ Parent=Mozilla 1.6
16011
+ Platform=Linux
16012
+
16013
+ [Mozilla/5.0 (X11; *OpenBSD*; *rv:1.6*) Gecko/*]
16014
+ Parent=Mozilla 1.6
16015
+ Platform=OpenBSD
16016
+
16017
+ [Mozilla/5.0 (X11; *SunOS*; *rv:1.6*) Gecko/*]
16018
+ Parent=Mozilla 1.6
16019
+ Platform=SunOS
16020
+
16021
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.7
16022
+
16023
+ [Mozilla 1.7]
16024
+ Parent=DefaultProperties
16025
+ Browser="Mozilla"
16026
+ Version=1.7
16027
+ MajorVer=1
16028
+ MinorVer=7
16029
+ Beta=true
16030
+ Frames=true
16031
+ IFrames=true
16032
+ Tables=true
16033
+ Cookies=true
16034
+ JavaApplets=true
16035
+ JavaScript=true
16036
+ CssVersion=2
16037
+ supportsCSS=true
16038
+
16039
+ [Mozilla/5.0 (*rv:1.7*) Gecko/*]
16040
+ Parent=Mozilla 1.7
16041
+
16042
+ [Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *rv:1.7*) Gecko/*]
16043
+ Parent=Mozilla 1.7
16044
+ Platform=MacOSX
16045
+
16046
+ [Mozilla/5.0 (Windows; ?; Win 9x 4.90; *rv:1.7*) Gecko/*]
16047
+ Parent=Mozilla 1.7
16048
+ Platform=WinME
16049
+ Win32=true
16050
+
16051
+ [Mozilla/5.0 (Windows; ?; Win3.1; *rv:1.7*) Gecko/*]
16052
+ Parent=Mozilla 1.7
16053
+ Platform=Win31
16054
+ Win32=true
16055
+
16056
+ [Mozilla/5.0 (Windows; ?; Win3.11; *rv:1.7*) Gecko/*]
16057
+ Parent=Mozilla 1.7
16058
+ Platform=Win31
16059
+ Win16=true
16060
+ Win32=true
16061
+
16062
+ [Mozilla/5.0 (Windows; ?; Win95; *rv:1.7*) Gecko/*]
16063
+ Parent=Mozilla 1.7
16064
+ Platform=Win95
16065
+ Win32=true
16066
+
16067
+ [Mozilla/5.0 (Windows; ?; Win98; *rv:1.7*) Gecko/*]
16068
+ Parent=Mozilla 1.7
16069
+ Platform=Win98
16070
+ Win32=true
16071
+
16072
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.0; *rv:1.7*) Gecko/*]
16073
+ Parent=Mozilla 1.7
16074
+ Platform=Win2000
16075
+ Win32=true
16076
+
16077
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:1.7*) Gecko/*]
16078
+ Parent=Mozilla 1.7
16079
+ Platform=WinXP
16080
+ Win32=true
16081
+
16082
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.2; *rv:1.7*) Gecko/*]
16083
+ Parent=Mozilla 1.7
16084
+ Platform=Win2003
16085
+ Win32=true
16086
+
16087
+ [Mozilla/5.0 (Windows; ?; WinNT4.0; *rv:1.7*) Gecko/*]
16088
+ Parent=Mozilla 1.7
16089
+ Platform=WinNT
16090
+ Win32=true
16091
+
16092
+ [Mozilla/5.0 (X11; *FreeBSD*; *rv:1.7*) Gecko/*]
16093
+ Parent=Mozilla 1.7
16094
+ Platform=FreeBSD
16095
+
16096
+ [Mozilla/5.0 (X11; *Linux*; *rv:1.7*) Gecko/*]
16097
+ Parent=Mozilla 1.7
16098
+ Platform=Linux
16099
+
16100
+ [Mozilla/5.0 (X11; *OpenBSD*; *rv:1.7*) Gecko/*]
16101
+ Parent=Mozilla 1.7
16102
+ Platform=OpenBSD
16103
+
16104
+ [Mozilla/5.0 (X11; *SunOS*; *rv:1.7*) Gecko/*]
16105
+ Parent=Mozilla 1.7
16106
+ Platform=SunOS
16107
+
16108
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.8
16109
+
16110
+ [Mozilla 1.8]
16111
+ Parent=DefaultProperties
16112
+ Browser="Mozilla"
16113
+ Version=1.8
16114
+ MajorVer=1
16115
+ MinorVer=8
16116
+ Frames=true
16117
+ IFrames=true
16118
+ Tables=true
16119
+ Cookies=true
16120
+ JavaApplets=true
16121
+ JavaScript=true
16122
+ CssVersion=2
16123
+ supportsCSS=true
16124
+
16125
+ [Mozilla/5.0 (*rv:1.8*) Gecko/*]
16126
+ Parent=Mozilla 1.8
16127
+
16128
+ [Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *rv:1.8*) Gecko/*]
16129
+ Parent=Mozilla 1.8
16130
+ Platform=MacOSX
16131
+
16132
+ [Mozilla/5.0 (Windows; ?; Win 9x 4.90; *rv:1.8*) Gecko/*]
16133
+ Parent=Mozilla 1.8
16134
+ Platform=WinME
16135
+ Win32=true
16136
+
16137
+ [Mozilla/5.0 (Windows; ?; Win3.1; *rv:1.8*) Gecko/*]
16138
+ Parent=Mozilla 1.8
16139
+ Win32=true
16140
+
16141
+ [Mozilla/5.0 (Windows; ?; Win3.11; *rv:1.8*) Gecko/*]
16142
+ Parent=Mozilla 1.8
16143
+ Platform=Win31
16144
+ Win16=true
16145
+ Win32=true
16146
+
16147
+ [Mozilla/5.0 (Windows; ?; Win95; *rv:1.8*) Gecko/*]
16148
+ Parent=Mozilla 1.8
16149
+ Platform=Win95
16150
+ Win32=true
16151
+
16152
+ [Mozilla/5.0 (Windows; ?; Win98; *rv:1.8*) Gecko/*]
16153
+ Parent=Mozilla 1.8
16154
+ Platform=Win98
16155
+ Win32=true
16156
+
16157
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.0; *rv:1.8*) Gecko/*]
16158
+ Parent=Mozilla 1.8
16159
+ Platform=Win2000
16160
+ Win32=true
16161
+
16162
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:1.8*) Gecko/*]
16163
+ Parent=Mozilla 1.8
16164
+ Platform=WinXP
16165
+ Win32=true
16166
+
16167
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.2; *rv:1.8*) Gecko/*]
16168
+ Parent=Mozilla 1.8
16169
+ Platform=Win2003
16170
+ Win32=true
16171
+
16172
+ [Mozilla/5.0 (Windows; ?; WinNT4.0; *rv:1.8*) Gecko/*]
16173
+ Parent=Mozilla 1.8
16174
+ Platform=WinNT
16175
+ Win32=true
16176
+
16177
+ [Mozilla/5.0 (X11; *FreeBSD*; *rv:1.8*) Gecko/*]
16178
+ Parent=Mozilla 1.8
16179
+ Platform=FreeBSD
16180
+
16181
+ [Mozilla/5.0 (X11; *Linux*; *rv:1.8*) Gecko/*]
16182
+ Parent=Mozilla 1.8
16183
+ Platform=Linux
16184
+
16185
+ [Mozilla/5.0 (X11; *OpenBSD*; *rv:1.8*) Gecko/*]
16186
+ Parent=Mozilla 1.8
16187
+ Platform=OpenBSD
16188
+
16189
+ [Mozilla/5.0 (X11; *SunOS*; *rv:1.8*) Gecko/*]
16190
+ Parent=Mozilla 1.8
16191
+ Platform=SunOS
16192
+
16193
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.9
16194
+
16195
+ [Mozilla 1.9]
16196
+ Parent=DefaultProperties
16197
+ Browser="Mozilla"
16198
+ Version=1.9
16199
+ MajorVer=1
16200
+ MinorVer=9
16201
+ Alpha=true
16202
+ Frames=true
16203
+ IFrames=true
16204
+ Tables=true
16205
+ Cookies=true
16206
+ JavaApplets=true
16207
+ JavaScript=true
16208
+ CssVersion=2
16209
+ supportsCSS=true
16210
+
16211
+ [Mozilla/5.0 (*rv:1.9*) Gecko/*]
16212
+ Parent=Mozilla 1.9
16213
+
16214
+ [Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *rv:1.9*) Gecko/*]
16215
+ Parent=Mozilla 1.9
16216
+ Platform=MacOSX
16217
+
16218
+ [Mozilla/5.0 (Windows; ?; Win 9x 4.90; *rv:1.9*) Gecko/*]
16219
+ Parent=Mozilla 1.9
16220
+ Platform=WinME
16221
+ Win32=true
16222
+
16223
+ [Mozilla/5.0 (Windows; ?; Win3.1; *rv:1.9*) Gecko/*]
16224
+ Parent=Mozilla 1.9
16225
+ Win32=true
16226
+
16227
+ [Mozilla/5.0 (Windows; ?; Win3.11; *rv:1.9*) Gecko/*]
16228
+ Parent=Mozilla 1.9
16229
+ Platform=Win31
16230
+ Win16=true
16231
+ Win32=true
16232
+
16233
+ [Mozilla/5.0 (Windows; ?; Win95; *rv:1.9*) Gecko/*]
16234
+ Parent=Mozilla 1.9
16235
+ Platform=Win95
16236
+ Win32=true
16237
+
16238
+ [Mozilla/5.0 (Windows; ?; Win98; *rv:1.9*) Gecko/*]
16239
+ Parent=Mozilla 1.9
16240
+ Platform=Win98
16241
+ Win32=true
16242
+
16243
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.0; *rv:1.9*) Gecko/*]
16244
+ Parent=Mozilla 1.9
16245
+ Platform=Win2000
16246
+ Win32=true
16247
+
16248
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:1.9*) Gecko/*]
16249
+ Parent=Mozilla 1.9
16250
+ Platform=WinXP
16251
+ Win32=true
16252
+
16253
+ [Mozilla/5.0 (Windows; ?; Windows NT 5.2; *rv:1.9*) Gecko/*]
16254
+ Parent=Mozilla 1.9
16255
+ Platform=Win2003
16256
+ Win32=true
16257
+
16258
+ [Mozilla/5.0 (Windows; ?; WinNT4.0; *rv:1.9*) Gecko/*]
16259
+ Parent=Mozilla 1.9
16260
+ Platform=WinNT
16261
+ Win32=true
16262
+
16263
+ [Mozilla/5.0 (X11; *FreeBSD*; *rv:1.9*) Gecko/*]
16264
+ Parent=Mozilla 1.9
16265
+ Platform=FreeBSD
16266
+
16267
+ [Mozilla/5.0 (X11; *Linux*; *rv:1.9*) Gecko/*]
16268
+ Parent=Mozilla 1.9
16269
+ Platform=Linux
16270
+
16271
+ [Mozilla/5.0 (X11; *OpenBSD*; *rv:1.9*) Gecko/*]
16272
+ Parent=Mozilla 1.9
16273
+ Platform=OpenBSD
16274
+
16275
+ [Mozilla/5.0 (X11; *SunOS*; *rv:1.9*) Gecko/*]
16276
+ Parent=Mozilla 1.9
16277
+ Platform=SunOS
16278
+
16279
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE Mac
16280
+
16281
+ [IE Mac]
16282
+ Parent=DefaultProperties
16283
+ Browser="IE"
16284
+ Platform=MacPPC
16285
+ Frames=true
16286
+ IFrames=true
16287
+ Tables=true
16288
+ Cookies=true
16289
+ BackgroundSounds=true
16290
+ CDF=true
16291
+ JavaApplets=true
16292
+ JavaScript=true
16293
+ CssVersion=1
16294
+ supportsCSS=true
16295
+
16296
+ [Mozilla/?.? (compatible; MSIE 4.0*; *Mac_PowerPC*]
16297
+ Parent=IE Mac
16298
+ Version=4.0
16299
+ MajorVer=4
16300
+ MinorVer=0
16301
+
16302
+ [Mozilla/?.? (compatible; MSIE 4.5*; *Mac_PowerPC*]
16303
+ Parent=IE Mac
16304
+ Version=4.5
16305
+ MajorVer=4
16306
+ MinorVer=5
16307
+
16308
+ [Mozilla/?.? (compatible; MSIE 5.0*; *Mac_PowerPC*]
16309
+ Parent=IE Mac
16310
+ Version=5.0
16311
+ MajorVer=5
16312
+ MinorVer=0
16313
+
16314
+ [Mozilla/?.? (compatible; MSIE 5.1*; *Mac_PowerPC*]
16315
+ Parent=IE Mac
16316
+ Version=5.1
16317
+ MajorVer=5
16318
+ MinorVer=1
16319
+
16320
+ [Mozilla/?.? (compatible; MSIE 5.2*; *Mac_PowerPC*]
16321
+ Parent=IE Mac
16322
+ Version=5.2
16323
+ MajorVer=5
16324
+ MinorVer=2
16325
+
16326
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; AOL 9.0/IE 5.5
16327
+
16328
+ [AOL 9.0/IE 5.5]
16329
+ Parent=DefaultProperties
16330
+ Browser="AOL"
16331
+ Version=5.5
16332
+ MajorVer=5
16333
+ MinorVer=5
16334
+ Win32=true
16335
+ Frames=true
16336
+ IFrames=true
16337
+ Tables=true
16338
+ Cookies=true
16339
+ BackgroundSounds=true
16340
+ CDF=true
16341
+ VBScript=true
16342
+ JavaApplets=true
16343
+ JavaScript=true
16344
+ ActiveXControls=true
16345
+ CssVersion=2
16346
+ supportsCSS=true
16347
+ AOL=true
16348
+ aolVersion=9.0
16349
+
16350
+ [Mozilla/?.* (?compatible; *MSIE 5.5; *AOL 9.0*)*]
16351
+ Parent=AOL 9.0/IE 5.5
16352
+
16353
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Win 9x 4.90*)*]
16354
+ Parent=AOL 9.0/IE 5.5
16355
+ Platform=WinME
16356
+
16357
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 95*)*]
16358
+ Parent=AOL 9.0/IE 5.5
16359
+ Platform=Win95
16360
+
16361
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98*)*]
16362
+ Parent=AOL 9.0/IE 5.5
16363
+ Platform=Win98
16364
+
16365
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98*.NET CLR 1*)*]
16366
+ Parent=AOL 9.0/IE 5.5
16367
+
16368
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98*.NET CLR 1*.NET CLR 2*)*]
16369
+ Parent=AOL 9.0/IE 5.5
16370
+
16371
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98*.NET CLR 2*)*]
16372
+ Parent=AOL 9.0/IE 5.5
16373
+ CssVersion=2
16374
+ supportsCSS=true
16375
+
16376
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98*.NET CLR 2*.NET CLR 1*)*]
16377
+ Parent=AOL 9.0/IE 5.5
16378
+
16379
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98; Win 9x 4.90*)*]
16380
+ Parent=AOL 9.0/IE 5.5
16381
+ Platform=WinME
16382
+
16383
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 1*)*]
16384
+ Parent=AOL 9.0/IE 5.5
16385
+ Platform=WinME
16386
+
16387
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 1*.NET CLR 2*)*]
16388
+ Parent=AOL 9.0/IE 5.5
16389
+ Platform=WinME
16390
+
16391
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 2*)*]
16392
+ Parent=AOL 9.0/IE 5.5
16393
+ Platform=WinME
16394
+
16395
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 2*.NET CLR 1*)*]
16396
+ Parent=AOL 9.0/IE 5.5
16397
+ Platform=WinME
16398
+
16399
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 4.0*)*]
16400
+ Parent=AOL 9.0/IE 5.5
16401
+ Platform=WinNT
16402
+
16403
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.0*)*]
16404
+ Parent=AOL 9.0/IE 5.5
16405
+ Platform=Win2000
16406
+
16407
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.0*.NET CLR 1*)*]
16408
+ Parent=AOL 9.0/IE 5.5
16409
+ Platform=Win2000
16410
+
16411
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.0*.NET CLR 1*.NET CLR 2*)*]
16412
+ Parent=AOL 9.0/IE 5.5
16413
+ Platform=Win2000
16414
+
16415
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.0*.NET CLR 2*)*]
16416
+ Parent=AOL 9.0/IE 5.5
16417
+ Platform=Win2000
16418
+
16419
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.0*.NET CLR 2*.NET CLR 1*)*]
16420
+ Parent=AOL 9.0/IE 5.5
16421
+ Platform=Win2000
16422
+
16423
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.01*)*]
16424
+ Parent=AOL 9.0/IE 5.5
16425
+ Platform=Win2000
16426
+
16427
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.01*.NET CLR 1*)*]
16428
+ Parent=AOL 9.0/IE 5.5
16429
+ Platform=Win2000
16430
+
16431
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.01*.NET CLR 1*.NET CLR 2*)*]
16432
+ Parent=AOL 9.0/IE 5.5
16433
+ Platform=Win2000
16434
+
16435
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.01*.NET CLR 2*)*]
16436
+ Parent=AOL 9.0/IE 5.5
16437
+ Platform=Win2000
16438
+
16439
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.01*.NET CLR 2*.NET CLR 1*)*]
16440
+ Parent=AOL 9.0/IE 5.5
16441
+ Platform=Win2000
16442
+
16443
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.1*)*]
16444
+ Parent=AOL 9.0/IE 5.5
16445
+ Platform=WinXP
16446
+
16447
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.1*.NET CLR 1*)*]
16448
+ Parent=AOL 9.0/IE 5.5
16449
+ Platform=WinXP
16450
+
16451
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.1*.NET CLR 1*.NET CLR 2*)*]
16452
+ Parent=AOL 9.0/IE 5.5
16453
+ Platform=WinXP
16454
+
16455
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.1*.NET CLR 2*)*]
16456
+ Parent=AOL 9.0/IE 5.5
16457
+ Platform=WinXP
16458
+
16459
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.1*.NET CLR 2*.NET CLR 1*)*]
16460
+ Parent=AOL 9.0/IE 5.5
16461
+ Platform=WinXP
16462
+
16463
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.2*)*]
16464
+ Parent=AOL 9.0/IE 5.5
16465
+ Platform=Win2003
16466
+
16467
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.2*.NET CLR 1*)*]
16468
+ Parent=AOL 9.0/IE 5.5
16469
+ Platform=Win2003
16470
+
16471
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.2*.NET CLR 1*.NET CLR 2*)*]
16472
+ Parent=AOL 9.0/IE 5.5
16473
+ Platform=Win2003
16474
+
16475
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.2*.NET CLR 2*)*]
16476
+ Parent=AOL 9.0/IE 5.5
16477
+ Platform=Win2003
16478
+
16479
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.2*.NET CLR 2*.NET CLR 1*)*]
16480
+ Parent=AOL 9.0/IE 5.5
16481
+ Platform=Win2003
16482
+
16483
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 6.0*)*]
16484
+ Parent=AOL 9.0/IE 5.5
16485
+ Platform=WinVista
16486
+
16487
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 6.0*.NET CLR 1*)*]
16488
+ Parent=AOL 9.0/IE 5.5
16489
+ Platform=WinVista
16490
+
16491
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 6.0*.NET CLR 1*.NET CLR 2*)*]
16492
+ Parent=AOL 9.0/IE 5.5
16493
+ Platform=WinVista
16494
+
16495
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 6.0*.NET CLR 2*)*]
16496
+ Parent=AOL 9.0/IE 5.5
16497
+ Platform=WinVista
16498
+
16499
+ [Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 6.0*.NET CLR 2*.NET CLR 1*)*]
16500
+ Parent=AOL 9.0/IE 5.5
16501
+ Platform=WinVista
16502
+
16503
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; AOL 9.0/IE 6.0
16504
+
16505
+ [AOL 9.0/IE 6.0]
16506
+ Parent=DefaultProperties
16507
+ Browser="AOL"
16508
+ Version=6.0
16509
+ MajorVer=6
16510
+ Win32=true
16511
+ Frames=true
16512
+ IFrames=true
16513
+ Tables=true
16514
+ Cookies=true
16515
+ BackgroundSounds=true
16516
+ CDF=true
16517
+ VBScript=true
16518
+ JavaApplets=true
16519
+ JavaScript=true
16520
+ ActiveXControls=true
16521
+ CssVersion=2
16522
+ supportsCSS=true
16523
+ AOL=true
16524
+ aolVersion=9.0
16525
+
16526
+ [Mozilla/?.* (?compatible; *MSIE 6.0; *AOL 9.0*)*]
16527
+ Parent=AOL 9.0/IE 6.0
16528
+
16529
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Win 9x 4.90*)*]
16530
+ Parent=AOL 9.0/IE 6.0
16531
+ Platform=WinME
16532
+
16533
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 95*)*]
16534
+ Parent=AOL 9.0/IE 6.0
16535
+ Platform=Win95
16536
+
16537
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98*)*]
16538
+ Parent=AOL 9.0/IE 6.0
16539
+ Platform=Win98
16540
+
16541
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98*.NET CLR 1*)*]
16542
+ Parent=AOL 9.0/IE 6.0
16543
+
16544
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98*.NET CLR 1*.NET CLR 2*)*]
16545
+ Parent=AOL 9.0/IE 6.0
16546
+
16547
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98*.NET CLR 2*)*]
16548
+ Parent=AOL 9.0/IE 6.0
16549
+ CssVersion=2
16550
+ supportsCSS=true
16551
+
16552
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98*.NET CLR 2*.NET CLR 1*)*]
16553
+ Parent=AOL 9.0/IE 6.0
16554
+
16555
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98; Win 9x 4.90*)*]
16556
+ Parent=AOL 9.0/IE 6.0
16557
+ Platform=WinME
16558
+
16559
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 1*)*]
16560
+ Parent=AOL 9.0/IE 6.0
16561
+ Platform=WinME
16562
+
16563
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 1*.NET CLR 2*)*]
16564
+ Parent=AOL 9.0/IE 6.0
16565
+ Platform=WinME
16566
+
16567
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 2*)*]
16568
+ Parent=AOL 9.0/IE 6.0
16569
+ Platform=WinME
16570
+
16571
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 2*.NET CLR 1*)*]
16572
+ Parent=AOL 9.0/IE 6.0
16573
+ Platform=WinME
16574
+
16575
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 4.0*)*]
16576
+ Parent=AOL 9.0/IE 6.0
16577
+ Platform=WinNT
16578
+
16579
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.0*)*]
16580
+ Parent=AOL 9.0/IE 6.0
16581
+ Platform=Win2000
16582
+
16583
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.0*.NET CLR 1*)*]
16584
+ Parent=AOL 9.0/IE 6.0
16585
+ Platform=Win2000
16586
+
16587
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.0*.NET CLR 1*.NET CLR 2*)*]
16588
+ Parent=AOL 9.0/IE 6.0
16589
+ Platform=Win2000
16590
+
16591
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.0*.NET CLR 2*)*]
16592
+ Parent=AOL 9.0/IE 6.0
16593
+ Platform=Win2000
16594
+
16595
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.0*.NET CLR 2*.NET CLR 1*)*]
16596
+ Parent=AOL 9.0/IE 6.0
16597
+ Platform=Win2000
16598
+
16599
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.01*)*]
16600
+ Parent=AOL 9.0/IE 6.0
16601
+ Platform=Win2000
16602
+
16603
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.01*.NET CLR 1*)*]
16604
+ Parent=AOL 9.0/IE 6.0
16605
+ Platform=Win2000
16606
+
16607
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.01*.NET CLR 1*.NET CLR 2*)*]
16608
+ Parent=AOL 9.0/IE 6.0
16609
+ Platform=Win2000
16610
+
16611
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.01*.NET CLR 2*)*]
16612
+ Parent=AOL 9.0/IE 6.0
16613
+ Platform=Win2000
16614
+
16615
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.01*.NET CLR 2*.NET CLR 1*)*]
16616
+ Parent=AOL 9.0/IE 6.0
16617
+ Platform=Win2000
16618
+
16619
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.1*)*]
16620
+ Parent=AOL 9.0/IE 6.0
16621
+ Platform=WinXP
16622
+
16623
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.1*.NET CLR 1*)*]
16624
+ Parent=AOL 9.0/IE 6.0
16625
+ Platform=WinXP
16626
+
16627
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.1*.NET CLR 1*.NET CLR 2*)*]
16628
+ Parent=AOL 9.0/IE 6.0
16629
+ Platform=WinXP
16630
+
16631
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.1*.NET CLR 2*)*]
16632
+ Parent=AOL 9.0/IE 6.0
16633
+ Platform=WinXP
16634
+
16635
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.1*.NET CLR 2*.NET CLR 1*)*]
16636
+ Parent=AOL 9.0/IE 6.0
16637
+ Platform=WinXP
16638
+
16639
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.2*)*]
16640
+ Parent=AOL 9.0/IE 6.0
16641
+ Platform=Win2003
16642
+
16643
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.2*.NET CLR 1*)*]
16644
+ Parent=AOL 9.0/IE 6.0
16645
+ Platform=Win2003
16646
+
16647
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.2*.NET CLR 1*.NET CLR 2*)*]
16648
+ Parent=AOL 9.0/IE 6.0
16649
+ Platform=Win2003
16650
+
16651
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.2*.NET CLR 2*)*]
16652
+ Parent=AOL 9.0/IE 6.0
16653
+ Platform=Win2003
16654
+
16655
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.2*.NET CLR 2*.NET CLR 1*)*]
16656
+ Parent=AOL 9.0/IE 6.0
16657
+ Platform=Win2003
16658
+
16659
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 6.0*)*]
16660
+ Parent=AOL 9.0/IE 6.0
16661
+ Platform=WinVista
16662
+
16663
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 6.0*.NET CLR 1*)*]
16664
+ Parent=AOL 9.0/IE 6.0
16665
+ Platform=WinVista
16666
+
16667
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 6.0*.NET CLR 1*.NET CLR 2*)*]
16668
+ Parent=AOL 9.0/IE 6.0
16669
+ Platform=WinVista
16670
+
16671
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 6.0*.NET CLR 2*)*]
16672
+ Parent=AOL 9.0/IE 6.0
16673
+ Platform=WinVista
16674
+
16675
+ [Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 6.0*.NET CLR 2*.NET CLR 1*)*]
16676
+ Parent=AOL 9.0/IE 6.0
16677
+ Platform=WinVista
16678
+
16679
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; AOL 9.0/IE 7.0
16680
+
16681
+ [AOL 9.0/IE 7.0]
16682
+ Parent=DefaultProperties
16683
+ Browser="AOL"
16684
+ Version=7.0
16685
+ MajorVer=7
16686
+ Win32=true
16687
+ Frames=true
16688
+ IFrames=true
16689
+ Tables=true
16690
+ Cookies=true
16691
+ BackgroundSounds=true
16692
+ CDF=true
16693
+ VBScript=true
16694
+ JavaApplets=true
16695
+ JavaScript=true
16696
+ ActiveXControls=true
16697
+ CssVersion=2
16698
+ supportsCSS=true
16699
+ AOL=true
16700
+ aolVersion=9.0
16701
+
16702
+ [Mozilla/?.* (?compatible; *MSIE 7.0; *AOL 9.0*)*]
16703
+ Parent=AOL 9.0/IE 7.0
16704
+
16705
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Win 9x 4.90*)*]
16706
+ Parent=AOL 9.0/IE 7.0
16707
+ Platform=WinME
16708
+
16709
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 95*)*]
16710
+ Parent=AOL 9.0/IE 7.0
16711
+ Platform=Win95
16712
+
16713
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98*)*]
16714
+ Parent=AOL 9.0/IE 7.0
16715
+ Platform=Win98
16716
+
16717
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98*.NET CLR 1*)*]
16718
+ Parent=AOL 9.0/IE 7.0
16719
+
16720
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98*.NET CLR 1*.NET CLR 2*)*]
16721
+ Parent=AOL 9.0/IE 7.0
16722
+
16723
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98*.NET CLR 2*)*]
16724
+ Parent=AOL 9.0/IE 7.0
16725
+ CssVersion=2
16726
+ supportsCSS=true
16727
+
16728
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98*.NET CLR 2*.NET CLR 1*)*]
16729
+ Parent=AOL 9.0/IE 7.0
16730
+
16731
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98; Win 9x 4.90*)*]
16732
+ Parent=AOL 9.0/IE 7.0
16733
+ Platform=WinME
16734
+
16735
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 1*)*]
16736
+ Parent=AOL 9.0/IE 7.0
16737
+ Platform=WinME
16738
+
16739
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 1*.NET CLR 2*)*]
16740
+ Parent=AOL 9.0/IE 7.0
16741
+ Platform=WinME
16742
+
16743
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 2*)*]
16744
+ Parent=AOL 9.0/IE 7.0
16745
+ Platform=WinME
16746
+
16747
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 2*.NET CLR 1*)*]
16748
+ Parent=AOL 9.0/IE 7.0
16749
+ Platform=WinME
16750
+
16751
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 4.0*)*]
16752
+ Parent=AOL 9.0/IE 7.0
16753
+ Platform=WinNT
16754
+
16755
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.0*)*]
16756
+ Parent=AOL 9.0/IE 7.0
16757
+ Platform=Win2000
16758
+
16759
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.0*.NET CLR 1*)*]
16760
+ Parent=AOL 9.0/IE 7.0
16761
+ Platform=Win2000
16762
+
16763
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.0*.NET CLR 1*.NET CLR 2*)*]
16764
+ Parent=AOL 9.0/IE 7.0
16765
+ Platform=Win2000
16766
+
16767
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.0*.NET CLR 2*)*]
16768
+ Parent=AOL 9.0/IE 7.0
16769
+ Platform=Win2000
16770
+
16771
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.0*.NET CLR 2*.NET CLR 1*)*]
16772
+ Parent=AOL 9.0/IE 7.0
16773
+ Platform=Win2000
16774
+
16775
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.01*)*]
16776
+ Parent=AOL 9.0/IE 7.0
16777
+ Platform=Win2000
16778
+
16779
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.01*.NET CLR 1*)*]
16780
+ Parent=AOL 9.0/IE 7.0
16781
+ Platform=Win2000
16782
+
16783
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.01*.NET CLR 1*.NET CLR 2*)*]
16784
+ Parent=AOL 9.0/IE 7.0
16785
+ Platform=Win2000
16786
+
16787
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.01*.NET CLR 2*)*]
16788
+ Parent=AOL 9.0/IE 7.0
16789
+ Platform=Win2000
16790
+
16791
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.01*.NET CLR 2*.NET CLR 1*)*]
16792
+ Parent=AOL 9.0/IE 7.0
16793
+ Platform=Win2000
16794
+
16795
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.1*)*]
16796
+ Parent=AOL 9.0/IE 7.0
16797
+ Platform=WinXP
16798
+
16799
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.1*.NET CLR 1*)*]
16800
+ Parent=AOL 9.0/IE 7.0
16801
+ Platform=WinXP
16802
+
16803
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.1*.NET CLR 1*.NET CLR 2*)*]
16804
+ Parent=AOL 9.0/IE 7.0
16805
+ Platform=WinXP
16806
+
16807
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.1*.NET CLR 2*)*]
16808
+ Parent=AOL 9.0/IE 7.0
16809
+ Platform=WinXP
16810
+
16811
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.1*.NET CLR 2*.NET CLR 1*)*]
16812
+ Parent=AOL 9.0/IE 7.0
16813
+ Platform=WinXP
16814
+
16815
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.2*)*]
16816
+ Parent=AOL 9.0/IE 7.0
16817
+ Platform=Win2003
16818
+
16819
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.2*.NET CLR 1*)*]
16820
+ Parent=AOL 9.0/IE 7.0
16821
+ Platform=Win2003
16822
+
16823
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.2*.NET CLR 1*.NET CLR 2*)*]
16824
+ Parent=AOL 9.0/IE 7.0
16825
+ Platform=Win2003
16826
+
16827
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.2*.NET CLR 2*)*]
16828
+ Parent=AOL 9.0/IE 7.0
16829
+ Platform=Win2003
16830
+
16831
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.2*.NET CLR 2*.NET CLR 1*)*]
16832
+ Parent=AOL 9.0/IE 7.0
16833
+ Platform=Win2003
16834
+
16835
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 6.0*)*]
16836
+ Parent=AOL 9.0/IE 7.0
16837
+ Platform=WinVista
16838
+
16839
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 6.0*.NET CLR 1*)*]
16840
+ Parent=AOL 9.0/IE 7.0
16841
+ Platform=WinVista
16842
+
16843
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 6.0*.NET CLR 1*.NET CLR 2*)*]
16844
+ Parent=AOL 9.0/IE 7.0
16845
+ Platform=WinVista
16846
+
16847
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 6.0*.NET CLR 2*)*]
16848
+ Parent=AOL 9.0/IE 7.0
16849
+ Platform=WinVista
16850
+
16851
+ [Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 6.0*.NET CLR 2*.NET CLR 1*)*]
16852
+ Parent=AOL 9.0/IE 7.0
16853
+ Platform=WinVista
16854
+
16855
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Avant Browser
16856
+
16857
+ [Avant Browser]
16858
+ Parent=DefaultProperties
16859
+ Browser="Avant Browser"
16860
+ Frames=true
16861
+ IFrames=true
16862
+ Tables=true
16863
+ Cookies=true
16864
+ BackgroundSounds=true
16865
+ CDF=true
16866
+ VBScript=true
16867
+ JavaApplets=true
16868
+ JavaScript=true
16869
+ ActiveXControls=true
16870
+ CssVersion=2
16871
+ supportsCSS=true
16872
+
16873
+ [Advanced Browser (http://www.avantbrowser.com)]
16874
+ Parent=Avant Browser
16875
+
16876
+ [Avant Browser*]
16877
+ Parent=Avant Browser
16878
+
16879
+ [Avant Browser/*]
16880
+ Parent=Avant Browser
16881
+
16882
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 4.01
16883
+
16884
+ [IE 4.01]
16885
+ Parent=DefaultProperties
16886
+ Browser="IE"
16887
+ Version=4.01
16888
+ MajorVer=4
16889
+ MinorVer=01
16890
+ Win32=true
16891
+ Frames=true
16892
+ IFrames=true
16893
+ Tables=true
16894
+ Cookies=true
16895
+ BackgroundSounds=true
16896
+ CDF=true
16897
+ VBScript=true
16898
+ JavaApplets=true
16899
+ JavaScript=true
16900
+ ActiveXControls=true
16901
+ CssVersion=2
16902
+ supportsCSS=true
16903
+
16904
+ [Mozilla/?.* (?compatible; *MSIE 4.01*)*]
16905
+ Parent=IE 4.01
16906
+
16907
+ [Mozilla/4.0 (compatible; MSIE 4.01; *Windows 95*)*]
16908
+ Parent=IE 4.01
16909
+ Platform=Win95
16910
+
16911
+ [Mozilla/4.0 (compatible; MSIE 4.01; *Windows 98*)*]
16912
+ Parent=IE 4.01
16913
+ Platform=Win98
16914
+
16915
+ [Mozilla/4.0 (compatible; MSIE 4.01; *Windows 98; Win 9x 4.90;*)*]
16916
+ Parent=IE 4.01
16917
+ Platform=WinME
16918
+
16919
+ [Mozilla/4.0 (compatible; MSIE 4.01; *Windows NT 4.0*)*]
16920
+ Parent=IE 4.01
16921
+ Platform=WinNT
16922
+
16923
+ [Mozilla/4.0 (compatible; MSIE 4.01; *Windows NT 5.0*)*]
16924
+ Parent=IE 4.01
16925
+ Platform=Win2000
16926
+
16927
+ [Mozilla/4.0 (compatible; MSIE 4.01; *Windows NT 5.01*)*]
16928
+ Parent=IE 4.01
16929
+ Platform=Win2000
16930
+
16931
+ [Mozilla/4.0 (compatible; MSIE 4.01; Windows NT)]
16932
+ Parent=IE 4.01
16933
+ Platform=WinNT
16934
+
16935
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 5.0
16936
+
16937
+ [IE 5.0]
16938
+ Parent=DefaultProperties
16939
+ Browser="IE"
16940
+ Version=5.0
16941
+ MajorVer=5
16942
+ Win32=true
16943
+ Frames=true
16944
+ IFrames=true
16945
+ Tables=true
16946
+ Cookies=true
16947
+ BackgroundSounds=true
16948
+ CDF=true
16949
+ VBScript=true
16950
+ JavaApplets=true
16951
+ JavaScript=true
16952
+ ActiveXControls=true
16953
+ CssVersion=2
16954
+ supportsCSS=true
16955
+
16956
+ [Mozilla/?.* (?compatible; *MSIE 5.0*)*]
16957
+ Parent=IE 5.0
16958
+
16959
+ [Mozilla/4.0 (compatible; MSIE 5.0; *Windows 95*)*]
16960
+ Parent=IE 5.0
16961
+ Platform=Win95
16962
+
16963
+ [Mozilla/4.0 (compatible; MSIE 5.0; *Windows 98*)*]
16964
+ Parent=IE 5.0
16965
+ Platform=Win98
16966
+
16967
+ [Mozilla/4.0 (compatible; MSIE 5.0; *Windows 98; Win 9x 4.90;*)*]
16968
+ Parent=IE 5.0
16969
+ Platform=WinME
16970
+
16971
+ [Mozilla/4.0 (compatible; MSIE 5.0; *Windows NT 4.0*)*]
16972
+ Parent=IE 5.0
16973
+ Platform=WinNT
16974
+
16975
+ [Mozilla/4.0 (compatible; MSIE 5.0; *Windows NT 5.0*)*]
16976
+ Parent=IE 5.0
16977
+ Platform=Win2000
16978
+
16979
+ [Mozilla/4.0 (compatible; MSIE 5.0; *Windows NT 5.01*)*]
16980
+ Parent=IE 5.0
16981
+ Platform=Win2000
16982
+
16983
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 5.01
16984
+
16985
+ [IE 5.01]
16986
+ Parent=DefaultProperties
16987
+ Browser="IE"
16988
+ Version=5.01
16989
+ MajorVer=5
16990
+ MinorVer=01
16991
+ Win32=true
16992
+ Frames=true
16993
+ IFrames=true
16994
+ Tables=true
16995
+ Cookies=true
16996
+ BackgroundSounds=true
16997
+ CDF=true
16998
+ VBScript=true
16999
+ JavaApplets=true
17000
+ JavaScript=true
17001
+ ActiveXControls=true
17002
+ CssVersion=2
17003
+ supportsCSS=true
17004
+
17005
+ [Mozilla/?.* (?compatible; *MSIE 5.01*)*]
17006
+ Parent=IE 5.01
17007
+
17008
+ [Mozilla/4.0 (compatible; MSIE 5.01; *Windows 95*)*]
17009
+ Parent=IE 5.01
17010
+ Platform=Win95
17011
+
17012
+ [Mozilla/4.0 (compatible; MSIE 5.01; *Windows 98*)*]
17013
+ Parent=IE 5.01
17014
+ Platform=Win98
17015
+
17016
+ [Mozilla/4.0 (compatible; MSIE 5.01; *Windows 98; Win 9x 4.90;*)*]
17017
+ Parent=IE 5.01
17018
+ Platform=WinME
17019
+
17020
+ [Mozilla/4.0 (compatible; MSIE 5.01; *Windows NT 4.0*)*]
17021
+ Parent=IE 5.01
17022
+ Platform=WinNT
17023
+
17024
+ [Mozilla/4.0 (compatible; MSIE 5.01; *Windows NT 5.0*)*]
17025
+ Parent=IE 5.01
17026
+ Platform=Win2000
17027
+
17028
+ [Mozilla/4.0 (compatible; MSIE 5.01; *Windows NT 5.01*)*]
17029
+ Parent=IE 5.01
17030
+ Platform=Win2000
17031
+
17032
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 5.5
17033
+
17034
+ [IE 5.5]
17035
+ Parent=DefaultProperties
17036
+ Browser="IE"
17037
+ Version=5.5
17038
+ MajorVer=5
17039
+ MinorVer=5
17040
+ Win32=true
17041
+ Frames=true
17042
+ IFrames=true
17043
+ Tables=true
17044
+ Cookies=true
17045
+ BackgroundSounds=true
17046
+ CDF=true
17047
+ VBScript=true
17048
+ JavaApplets=true
17049
+ JavaScript=true
17050
+ ActiveXControls=true
17051
+ CssVersion=2
17052
+ supportsCSS=true
17053
+
17054
+ [Mozilla/?.* (?compatible; *MSIE 5.5*)*]
17055
+ Parent=IE 5.5
17056
+
17057
+ [Mozilla/4.0 (compatible; MSIE 5.5; *Windows 95*)*]
17058
+ Parent=IE 5.5
17059
+ Platform=Win95
17060
+
17061
+ [Mozilla/4.0 (compatible; MSIE 5.5; *Windows 98*)*]
17062
+ Parent=IE 5.5
17063
+ Platform=Win98
17064
+
17065
+ [Mozilla/4.0 (compatible; MSIE 5.5; *Windows 98; Win 9x 4.90*)*]
17066
+ Parent=IE 5.5
17067
+ Platform=WinME
17068
+
17069
+ [Mozilla/4.0 (compatible; MSIE 5.5; *Windows NT 4.0*)*]
17070
+ Parent=IE 5.5
17071
+ Platform=WinNT
17072
+
17073
+ [Mozilla/4.0 (compatible; MSIE 5.5; *Windows NT 5.0*)*]
17074
+ Parent=IE 5.5
17075
+ Platform=Win2000
17076
+
17077
+ [Mozilla/4.0 (compatible; MSIE 5.5; *Windows NT 5.01*)*]
17078
+ Parent=IE 5.5
17079
+ Platform=Win2000
17080
+
17081
+ [Mozilla/4.0 (compatible; MSIE 5.5; *Windows NT 5.1*)*]
17082
+ Parent=IE 5.5
17083
+ Platform=WinXP
17084
+
17085
+ [Mozilla/4.0 (compatible; MSIE 5.5; *Windows NT 5.2*)*]
17086
+ Parent=IE 5.5
17087
+ Platform=Win2003
17088
+
17089
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 6.0
17090
+
17091
+ [IE 6.0]
17092
+ Parent=DefaultProperties
17093
+ Browser="IE"
17094
+ Version=6.0
17095
+ MajorVer=6
17096
+ Win32=true
17097
+ Frames=true
17098
+ IFrames=true
17099
+ Tables=true
17100
+ Cookies=true
17101
+ BackgroundSounds=true
17102
+ CDF=true
17103
+ VBScript=true
17104
+ JavaApplets=true
17105
+ JavaScript=true
17106
+ ActiveXControls=true
17107
+ CssVersion=2
17108
+ supportsCSS=true
17109
+
17110
+ [Mozilla/?.* (?compatible; *MSIE 6.0*)*]
17111
+ Parent=IE 6.0
17112
+
17113
+ [Mozilla/4.0 (compatible; MSIE 6.0; *Windows 95*)*]
17114
+ Parent=IE 6.0
17115
+ Platform=Win95
17116
+
17117
+ [Mozilla/4.0 (compatible; MSIE 6.0; *Windows 98*)*]
17118
+ Parent=IE 6.0
17119
+ Platform=Win98
17120
+
17121
+ [Mozilla/4.0 (compatible; MSIE 6.0; *Windows 98; Win 9x 4.90*)*]
17122
+ Parent=IE 6.0
17123
+ Platform=WinME
17124
+
17125
+ [Mozilla/4.0 (compatible; MSIE 6.0; *Windows NT 4.0*)*]
17126
+ Parent=IE 6.0
17127
+ Platform=WinNT
17128
+
17129
+ [Mozilla/4.0 (compatible; MSIE 6.0; *Windows NT 5.0*)*]
17130
+ Parent=IE 6.0
17131
+ Platform=Win2000
17132
+
17133
+ [Mozilla/4.0 (compatible; MSIE 6.0; *Windows NT 5.01*)*]
17134
+ Parent=IE 6.0
17135
+ Platform=Win2000
17136
+
17137
+ [Mozilla/4.0 (compatible; MSIE 6.0; *Windows NT 5.1*)*]
17138
+ Parent=IE 6.0
17139
+ Platform=WinXP
17140
+
17141
+ [Mozilla/4.0 (compatible; MSIE 6.0; *Windows NT 5.2*)*]
17142
+ Parent=IE 6.0
17143
+ Platform=Win2003
17144
+
17145
+ [Mozilla/4.0 (compatible; MSIE 6.0; *Windows NT 5.2;*Win64;*)*]
17146
+ Parent=IE 6.0
17147
+ Platform=WinXP
17148
+ Win32=false
17149
+ Win64=true
17150
+
17151
+ [Mozilla/4.0 (compatible; MSIE 6.0; *Windows NT 5.2;*WOW64;*)*]
17152
+ Parent=IE 6.0
17153
+ Platform=WinXP
17154
+
17155
+ [Mozilla/4.0 (compatible; MSIE 6.0; *Windows NT 6.0*)*]
17156
+ Parent=IE 6.0
17157
+ Platform=WinVista
17158
+
17159
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 7.0
17160
+
17161
+ [IE 7.0]
17162
+ Parent=DefaultProperties
17163
+ Browser="IE"
17164
+ Version=7.0
17165
+ MajorVer=7
17166
+ Win32=true
17167
+ Frames=true
17168
+ IFrames=true
17169
+ Tables=true
17170
+ Cookies=true
17171
+ BackgroundSounds=true
17172
+ CDF=true
17173
+ VBScript=true
17174
+ JavaApplets=true
17175
+ JavaScript=true
17176
+ ActiveXControls=true
17177
+ CssVersion=2
17178
+ supportsCSS=true
17179
+
17180
+ [Mozilla/?.* (?compatible; *MSIE 7.0*)*]
17181
+ Parent=IE 7.0
17182
+
17183
+ [Mozilla/4.0 (compatible; MSIE 7.0; *Windows 98*)*]
17184
+ Parent=IE 7.0
17185
+ Platform=Win98
17186
+
17187
+ [Mozilla/4.0 (compatible; MSIE 7.0; *Windows 98; Win 9x 4.90;*)*]
17188
+ Parent=IE 7.0
17189
+ Platform=WinME
17190
+
17191
+ [Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 4.0*)*]
17192
+ Parent=IE 7.0
17193
+ Platform=WinNT
17194
+
17195
+ [Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 5.0*)*]
17196
+ Parent=IE 7.0
17197
+ Platform=Win2000
17198
+
17199
+ [Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 5.01*)*]
17200
+ Parent=IE 7.0
17201
+ Platform=Win2000
17202
+
17203
+ [Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 5.1*)*]
17204
+ Parent=IE 7.0
17205
+ Platform=WinXP
17206
+
17207
+ [Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 5.2*)*]
17208
+ Parent=IE 7.0
17209
+ Platform=Win2003
17210
+
17211
+ [Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 5.2;*Win64;*)*]
17212
+ Parent=IE 7.0
17213
+ Platform=WinXP
17214
+ Win32=false
17215
+ Win64=true
17216
+
17217
+ [Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 5.2;*WOW64;*)*]
17218
+ Parent=IE 7.0
17219
+ Platform=WinXP
17220
+
17221
+ [Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.0*)*]
17222
+ Parent=IE 7.0
17223
+ Platform=WinVista
17224
+
17225
+ [Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.1*)*]
17226
+ Parent=IE 7.0
17227
+ Platform=Win7
17228
+
17229
+ [Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/4.0; *)*]
17230
+ Parent=IE 7.0
17231
+ Platform=Win7
17232
+
17233
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 8.0
17234
+
17235
+ [IE 8.0]
17236
+ Parent=DefaultProperties
17237
+ Browser="IE"
17238
+ Version=8.0
17239
+ MajorVer=8
17240
+ Win32=true
17241
+ Frames=true
17242
+ IFrames=true
17243
+ Tables=true
17244
+ Cookies=true
17245
+ BackgroundSounds=true
17246
+ CDF=true
17247
+ VBScript=true
17248
+ JavaApplets=true
17249
+ JavaScript=true
17250
+ ActiveXControls=true
17251
+ CssVersion=3
17252
+ supportsCSS=true
17253
+
17254
+ [Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0*)*]
17255
+ Parent=IE 8.0
17256
+ Platform=WinXP
17257
+
17258
+ [Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; Trident/4.0*)*]
17259
+ Parent=IE 8.0
17260
+ Platform=Win2003
17261
+
17262
+ [Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0*)*]
17263
+ Parent=IE 8.0
17264
+ Platform=WinVista
17265
+
17266
+ [Mozilla/4.0 (compatible; MSIE 8.0; Win32*)*]
17267
+ Parent=IE 8.0
17268
+ Platform=Win32
17269
+
17270
+ [Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.0*)*]
17271
+ Parent=IE 8.0
17272
+ Platform=Win2000
17273
+
17274
+ [Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1*)*]
17275
+ Parent=IE 8.0
17276
+ Platform=WinXP
17277
+
17278
+ [Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2*)*]
17279
+ Parent=IE 8.0
17280
+ Platform=Win2003
17281
+
17282
+ [Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0*)*]
17283
+ Parent=IE 8.0
17284
+ Platform=WinVista
17285
+
17286
+ [Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Win64; x64; Trident/4.0*)*]
17287
+ Parent=IE 8.0
17288
+ Platform=WinVista
17289
+ Win32=false
17290
+ Win64=true
17291
+
17292
+ [Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; WOW64; Trident/4.0*)*]
17293
+ Parent=IE 8.0
17294
+ Platform=WinVista
17295
+ Win64=false
17296
+
17297
+ [Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1*)*]
17298
+ Parent=IE 8.0
17299
+ Platform=Win7
17300
+
17301
+ [Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0*)*]
17302
+ Parent=IE 8.0
17303
+ Platform=Win7
17304
+
17305
+ [Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64; x64; Trident/4.0*)*]
17306
+ Parent=IE 8.0
17307
+ Platform=Win7
17308
+ Win32=false
17309
+ Win64=true
17310
+
17311
+ [Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0*)*]
17312
+ Parent=IE 8.0
17313
+ Platform=Win7
17314
+ Win64=false
17315
+
17316
+ [Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 7.0; Trident/4.0*)*]
17317
+ Parent=IE 8.0
17318
+ Platform=Win7
17319
+
17320
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Default Browser
17321
+
17322
+ [*]
17323
+ Browser="Default Browser"
17324
+ Version=0
17325
+ MajorVer=0
17326
+ MinorVer=0
17327
+ Platform=unknown
17328
+ Alpha=false
17329
+ Beta=false
17330
+ Win16=false
17331
+ Win32=false
17332
+ Win64=false
17333
+ Frames=true
17334
+ IFrames=false
17335
+ Tables=true
17336
+ Cookies=false
17337
+ BackgroundSounds=false
17338
+ CDF=false
17339
+ VBScript=false
17340
+ JavaApplets=false
17341
+ JavaScript=false
17342
+ ActiveXControls=false
17343
+ isBanned=false
17344
+ isMobileDevice=false
17345
+ isSyndicationReader=false
17346
+ Crawler=false
17347
+ CssVersion=0
17348
+ supportsCSS=false
17349
+ AOL=false
17350
+ aolVersion=0
includes/version-2-kvasir/README.txt ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ Hello.
2
+
3
+ This is the Open Flash Chart source code.
4
+
5
+ Take a look around :-)
6
+
7
+ The test data is in the 'data-files' directory.
8
+
includes/version-2-kvasir/js/README.txt ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ***************
2
+ ** JS Folder **
3
+ ***************
4
+
5
+ Here are some Javascript libraries used on the code or samples.
6
+
7
+ - swfobject.js
8
+
9
+ SWFObject v1.5: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
10
+ *
11
+ * SWFObject is (c) 2007 Geoff Stearns and is released under the MIT License:
12
+ * http://www.opensource.org/licenses/mit-license.php
includes/version-2-kvasir/js/json/json2.js ADDED
@@ -0,0 +1,461 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ http://www.JSON.org/json2.js
3
+ 2008-03-24
4
+
5
+ Public Domain.
6
+
7
+ NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.
8
+
9
+ See http://www.JSON.org/js.html
10
+
11
+ This file creates a global JSON object containing three methods: stringify,
12
+ parse, and quote.
13
+
14
+
15
+ JSON.stringify(value, replacer, space)
16
+ value any JavaScript value, usually an object or array.
17
+
18
+ replacer an optional parameter that determines how object
19
+ values are stringified for objects without a toJSON
20
+ method. It can be a function or an array.
21
+
22
+ space an optional parameter that specifies the indentation
23
+ of nested structures. If it is omitted, the text will
24
+ be packed without extra whitespace. If it is a number,
25
+ it will specify the number of spaces to indent at each
26
+ level. If it is a string (such as '\t'), it contains the
27
+ characters used to indent at each level.
28
+
29
+ This method produces a JSON text from a JavaScript value.
30
+
31
+ When an object value is found, if the object contains a toJSON
32
+ method, its toJSON method will be called and the result will be
33
+ stringified. A toJSON method does not serialize: it returns the
34
+ value represented by the name/value pair that should be serialized,
35
+ or undefined if nothing should be serialized. The toJSON method will
36
+ be passed the key associated with the value, and this will be bound
37
+ to the object holding the key.
38
+
39
+ This is the toJSON method added to Dates:
40
+
41
+ function toJSON(key) {
42
+ return this.getUTCFullYear() + '-' +
43
+ f(this.getUTCMonth() + 1) + '-' +
44
+ f(this.getUTCDate()) + 'T' +
45
+ f(this.getUTCHours()) + ':' +
46
+ f(this.getUTCMinutes()) + ':' +
47
+ f(this.getUTCSeconds()) + 'Z';
48
+ }
49
+
50
+ You can provide an optional replacer method. It will be passed the
51
+ key and value of each member, with this bound to the containing
52
+ object. The value that is returned from your method will be
53
+ serialized. If your method returns undefined, then the member will
54
+ be excluded from the serialization.
55
+
56
+ If no replacer parameter is provided, then a default replacer
57
+ will be used:
58
+
59
+ function replacer(key, value) {
60
+ return Object.hasOwnProperty.call(this, key) ?
61
+ value : undefined;
62
+ }
63
+
64
+ The default replacer is passed the key and value for each item in
65
+ the structure. It excludes inherited members.
66
+
67
+ If the replacer parameter is an array, then it will be used to
68
+ select the members to be serialized. It filters the results such
69
+ that only members with keys listed in the replacer array are
70
+ stringified.
71
+
72
+ Values that do not have JSON representaions, such as undefined or
73
+ functions, will not be serialized. Such values in objects will be
74
+ dropped; in arrays they will be replaced with null. You can use
75
+ a replacer function to replace those with JSON values.
76
+ JSON.stringify(undefined) returns undefined.
77
+
78
+ The optional space parameter produces a stringification of the value
79
+ that is filled with line breaks and indentation to make it easier to
80
+ read.
81
+
82
+ If the space parameter is a non-empty string, then that string will
83
+ be used for indentation. If the space parameter is a number, then
84
+ then indentation will be that many spaces.
85
+
86
+ Example:
87
+
88
+ text = JSON.stringify(['e', {pluribus: 'unum'}]);
89
+ // text is '["e",{"pluribus":"unum"}]'
90
+
91
+
92
+ text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t');
93
+ // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]'
94
+
95
+
96
+ JSON.parse(text, reviver)
97
+ This method parses a JSON text to produce an object or array.
98
+ It can throw a SyntaxError exception.
99
+
100
+ The optional reviver parameter is a function that can filter and
101
+ transform the results. It receives each of the keys and values,
102
+ and its return value is used instead of the original value.
103
+ If it returns what it received, then the structure is not modified.
104
+ If it returns undefined then the member is deleted.
105
+
106
+ Example:
107
+
108
+ // Parse the text. Values that look like ISO date strings will
109
+ // be converted to Date objects.
110
+
111
+ myData = JSON.parse(text, function (key, value) {
112
+ var a;
113
+ if (typeof value === 'string') {
114
+ a =
115
+ /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value);
116
+ if (a) {
117
+ return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],
118
+ +a[5], +a[6]));
119
+ }
120
+ }
121
+ return value;
122
+ });
123
+
124
+
125
+ JSON.quote(text)
126
+ This method wraps a string in quotes, escaping some characters
127
+ as needed.
128
+
129
+
130
+ This is a reference implementation. You are free to copy, modify, or
131
+ redistribute.
132
+
133
+ USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD THIRD PARTY
134
+ CODE INTO YOUR PAGES.
135
+ */
136
+
137
+ /*jslint regexp: true, forin: true, evil: true */
138
+
139
+ /*global JSON */
140
+
141
+ /*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply,
142
+ call, charCodeAt, floor, getUTCDate, getUTCFullYear, getUTCHours,
143
+ getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join, length,
144
+ parse, propertyIsEnumerable, prototype, push, quote, replace, stringify,
145
+ test, toJSON, toString
146
+ */
147
+
148
+ if (!this.JSON) {
149
+
150
+ // Create a JSON object only if one does not already exist. We create the
151
+ // object in a closure to avoid global variables.
152
+
153
+ JSON = function () {
154
+
155
+ function f(n) { // Format integers to have at least two digits.
156
+ return n < 10 ? '0' + n : n;
157
+ }
158
+
159
+ Date.prototype.toJSON = function () {
160
+
161
+ // Eventually, this method will be based on the date.toISOString method.
162
+
163
+ return this.getUTCFullYear() + '-' +
164
+ f(this.getUTCMonth() + 1) + '-' +
165
+ f(this.getUTCDate()) + 'T' +
166
+ f(this.getUTCHours()) + ':' +
167
+ f(this.getUTCMinutes()) + ':' +
168
+ f(this.getUTCSeconds()) + 'Z';
169
+ };
170
+
171
+
172
+ var escapeable = /["\\\x00-\x1f\x7f-\x9f]/g,
173
+ gap,
174
+ indent,
175
+ meta = { // table of character substitutions
176
+ '\b': '\\b',
177
+ '\t': '\\t',
178
+ '\n': '\\n',
179
+ '\f': '\\f',
180
+ '\r': '\\r',
181
+ '"' : '\\"',
182
+ '\\': '\\\\'
183
+ },
184
+ rep;
185
+
186
+
187
+ function quote(string) {
188
+
189
+ // If the string contains no control characters, no quote characters, and no
190
+ // backslash characters, then we can safely slap some quotes around it.
191
+ // Otherwise we must also replace the offending characters with safe escape
192
+ // sequences.
193
+
194
+ return escapeable.test(string) ?
195
+ '"' + string.replace(escapeable, function (a) {
196
+ var c = meta[a];
197
+ if (typeof c === 'string') {
198
+ return c;
199
+ }
200
+ c = a.charCodeAt();
201
+ return '\\u00' + Math.floor(c / 16).toString(16) +
202
+ (c % 16).toString(16);
203
+ }) + '"' :
204
+ '"' + string + '"';
205
+ }
206
+
207
+
208
+ function str(key, holder) {
209
+
210
+ // Produce a string from holder[key].
211
+
212
+ var i, // The loop counter.
213
+ k, // The member key.
214
+ v, // The member value.
215
+ length,
216
+ mind = gap,
217
+ partial,
218
+ value = holder[key];
219
+
220
+ // If the value has a toJSON method, call it to obtain a replacement value.
221
+
222
+ if (value && typeof value === 'object' &&
223
+ typeof value.toJSON === 'function') {
224
+ value = value.toJSON(key);
225
+ }
226
+
227
+ // If we were called with a replacer function, then call the replacer to
228
+ // obtain a replacement value.
229
+
230
+ if (typeof rep === 'function') {
231
+ value = rep.call(holder, key, value);
232
+ }
233
+
234
+ // What happens next depends on the value's type.
235
+
236
+ switch (typeof value) {
237
+ case 'string':
238
+ return quote(value);
239
+
240
+ case 'number':
241
+
242
+ // JSON numbers must be finite. Encode non-finite numbers as null.
243
+
244
+ return isFinite(value) ? String(value) : 'null';
245
+
246
+ case 'boolean':
247
+ case 'null':
248
+
249
+ // If the value is a boolean or null, convert it to a string. Note:
250
+ // typeof null does not produce 'null'. The case is included here in
251
+ // the remote chance that this gets fixed someday.
252
+
253
+ return String(value);
254
+
255
+ // If the type is 'object', we might be dealing with an object or an array or
256
+ // null.
257
+
258
+ case 'object':
259
+
260
+ // Due to a specification blunder in ECMAScript, typeof null is 'object',
261
+ // so watch out for that case.
262
+
263
+ if (!value) {
264
+ return 'null';
265
+ }
266
+
267
+ // Make an array to hold the partial results of stringifying this object value.
268
+
269
+ gap += indent;
270
+ partial = [];
271
+
272
+ // If the object has a dontEnum length property, we'll treat it as an array.
273
+
274
+ if (typeof value.length === 'number' &&
275
+ !(value.propertyIsEnumerable('length'))) {
276
+
277
+ // The object is an array. Stringify every element. Use null as a placeholder
278
+ // for non-JSON values.
279
+
280
+ length = value.length;
281
+ for (i = 0; i < length; i += 1) {
282
+ partial[i] = str(i, value) || 'null';
283
+ }
284
+
285
+ // Join all of the elements together, separated with commas, and wrap them in
286
+ // brackets.
287
+
288
+ v = partial.length === 0 ? '[]' :
289
+ gap ? '[\n' + gap + partial.join(',\n' + gap) +
290
+ '\n' + mind + ']' :
291
+ '[' + partial.join(',') + ']';
292
+ gap = mind;
293
+ return v;
294
+ }
295
+
296
+ // If the replacer is an array, use it to select the members to be stringified.
297
+
298
+ if (typeof rep === 'object') {
299
+ length = rep.length;
300
+ for (i = 0; i < length; i += 1) {
301
+ k = rep[i];
302
+ if (typeof k === 'string') {
303
+ v = str(k, value, rep);
304
+ if (v) {
305
+ partial.push(quote(k) + (gap ? ': ' : ':') + v);
306
+ }
307
+ }
308
+ }
309
+ } else {
310
+
311
+ // Otherwise, iterate through all of the keys in the object.
312
+
313
+ for (k in value) {
314
+ v = str(k, value, rep);
315
+ if (v) {
316
+ partial.push(quote(k) + (gap ? ': ' : ':') + v);
317
+ }
318
+ }
319
+ }
320
+
321
+ // Join all of the member texts together, separated with commas,
322
+ // and wrap them in braces.
323
+
324
+ v = partial.length === 0 ? '{}' :
325
+ gap ? '{\n' + gap + partial.join(',\n' + gap) +
326
+ '\n' + mind + '}' :
327
+ '{' + partial.join(',') + '}';
328
+ gap = mind;
329
+ return v;
330
+ }
331
+ }
332
+
333
+
334
+ // Return the JSON object containing the stringify, parse, and quote methods.
335
+
336
+ return {
337
+ stringify: function (value, replacer, space) {
338
+
339
+ // The stringify method takes a value and an optional replacer, and an optional
340
+ // space parameter, and returns a JSON text. The replacer can be a function
341
+ // that can replace values, or an array of strings that will select the keys.
342
+ // A default replacer method can be provided. Use of the space parameter can
343
+ // produce text that is more easily readable.
344
+
345
+ var i;
346
+ gap = '';
347
+ indent = '';
348
+ if (space) {
349
+
350
+ // If the space parameter is a number, make an indent string containing that
351
+ // many spaces.
352
+
353
+ if (typeof space === 'number') {
354
+ for (i = 0; i < space; i += 1) {
355
+ indent += ' ';
356
+ }
357
+
358
+ // If the space parameter is a string, it will be used as the indent string.
359
+
360
+ } else if (typeof space === 'string') {
361
+ indent = space;
362
+ }
363
+ }
364
+
365
+ // If there is no replacer parameter, use the default replacer.
366
+
367
+ if (!replacer) {
368
+ rep = function (key, value) {
369
+ if (!Object.hasOwnProperty.call(this, key)) {
370
+ return undefined;
371
+ }
372
+ return value;
373
+ };
374
+
375
+ // The replacer can be a function or an array. Otherwise, throw an error.
376
+
377
+ } else if (typeof replacer === 'function' ||
378
+ (typeof replacer === 'object' &&
379
+ typeof replacer.length === 'number')) {
380
+ rep = replacer;
381
+ } else {
382
+ throw new Error('JSON.stringify');
383
+ }
384
+
385
+ // Make a fake root object containing our value under the key of ''.
386
+ // Return the result of stringifying the value.
387
+
388
+ return str('', {'': value});
389
+ },
390
+
391
+
392
+ parse: function (text, reviver) {
393
+
394
+ // The parse method takes a text and an optional reviver function, and returns
395
+ // a JavaScript value if the text is a valid JSON text.
396
+
397
+ var j;
398
+
399
+ function walk(holder, key) {
400
+
401
+ // The walk method is used to recursively walk the resulting structure so
402
+ // that modifications can be made.
403
+
404
+ var k, v, value = holder[key];
405
+ if (value && typeof value === 'object') {
406
+ for (k in value) {
407
+ if (Object.hasOwnProperty.call(value, k)) {
408
+ v = walk(value, k);
409
+ if (v !== undefined) {
410
+ value[k] = v;
411
+ } else {
412
+ delete value[k];
413
+ }
414
+ }
415
+ }
416
+ }
417
+ return reviver.call(holder, key, value);
418
+ }
419
+
420
+
421
+ // Parsing happens in three stages. In the first stage, we run the text against
422
+ // regular expressions that look for non-JSON patterns. We are especially
423
+ // concerned with '()' and 'new' because they can cause invocation, and '='
424
+ // because it can cause mutation. But just to be safe, we want to reject all
425
+ // unexpected forms.
426
+
427
+ // We split the first stage into 4 regexp operations in order to work around
428
+ // crippling inefficiencies in IE's and Safari's regexp engines. First we
429
+ // replace all backslash pairs with '@' (a non-JSON character). Second, we
430
+ // replace all simple value tokens with ']' characters. Third, we delete all
431
+ // open brackets that follow a colon or comma or that begin the text. Finally,
432
+ // we look to see that the remaining characters are only whitespace or ']' or
433
+ // ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval.
434
+
435
+ if (/^[\],:{}\s]*$/.test(text.replace(/\\["\\\/bfnrtu]/g, '@').
436
+ replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']').
437
+ replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {
438
+
439
+ // In the second stage we use the eval function to compile the text into a
440
+ // JavaScript structure. The '{' operator is subject to a syntactic ambiguity
441
+ // in JavaScript: it can begin a block or an object literal. We wrap the text
442
+ // in parens to eliminate the ambiguity.
443
+
444
+ j = eval('(' + text + ')');
445
+
446
+ // In the optional third stage, we recursively walk the new structure, passing
447
+ // each name/value pair to a reviver function for possible transformation.
448
+
449
+ return typeof reviver === 'function' ?
450
+ walk({'': j}, '') : j;
451
+ }
452
+
453
+ // If the text is not JSON parseable, then a SyntaxError is thrown.
454
+
455
+ throw new SyntaxError('JSON.parse');
456
+ },
457
+
458
+ quote: quote
459
+ };
460
+ }();
461
+ }
includes/version-2-kvasir/js/swfobject.js ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ /* SWFObject v2.1 <http://code.google.com/p/swfobject/>
2
+ Copyright (c) 2007-2008 Geoff Stearns, Michael Williams, and Bobby van der Sluis
3
+ This software is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
4
+ */
5
+ var swfobject=function(){var b="undefined",Q="object",n="Shockwave Flash",p="ShockwaveFlash.ShockwaveFlash",P="application/x-shockwave-flash",m="SWFObjectExprInst",j=window,K=document,T=navigator,o=[],N=[],i=[],d=[],J,Z=null,M=null,l=null,e=false,A=false;var h=function(){var v=typeof K.getElementById!=b&&typeof K.getElementsByTagName!=b&&typeof K.createElement!=b,AC=[0,0,0],x=null;if(typeof T.plugins!=b&&typeof T.plugins[n]==Q){x=T.plugins[n].description;if(x&&!(typeof T.mimeTypes!=b&&T.mimeTypes[P]&&!T.mimeTypes[P].enabledPlugin)){x=x.replace(/^.*\s+(\S+\s+\S+$)/,"$1");AC[0]=parseInt(x.replace(/^(.*)\..*$/,"$1"),10);AC[1]=parseInt(x.replace(/^.*\.(.*)\s.*$/,"$1"),10);AC[2]=/r/.test(x)?parseInt(x.replace(/^.*r(.*)$/,"$1"),10):0}}else{if(typeof j.ActiveXObject!=b){var y=null,AB=false;try{y=new ActiveXObject(p+".7")}catch(t){try{y=new ActiveXObject(p+".6");AC=[6,0,21];y.AllowScriptAccess="always"}catch(t){if(AC[0]==6){AB=true}}if(!AB){try{y=new ActiveXObject(p)}catch(t){}}}if(!AB&&y){try{x=y.GetVariable("$version");if(x){x=x.split(" ")[1].split(",");AC=[parseInt(x[0],10),parseInt(x[1],10),parseInt(x[2],10)]}}catch(t){}}}}var AD=T.userAgent.toLowerCase(),r=T.platform.toLowerCase(),AA=/webkit/.test(AD)?parseFloat(AD.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,q=false,z=r?/win/.test(r):/win/.test(AD),w=r?/mac/.test(r):/mac/.test(AD);/*@cc_on q=true;@if(@_win32)z=true;@elif(@_mac)w=true;@end@*/return{w3cdom:v,pv:AC,webkit:AA,ie:q,win:z,mac:w}}();var L=function(){if(!h.w3cdom){return }f(H);if(h.ie&&h.win){try{K.write("<script id=__ie_ondomload defer=true src=//:><\/script>");J=C("__ie_ondomload");if(J){I(J,"onreadystatechange",S)}}catch(q){}}if(h.webkit&&typeof K.readyState!=b){Z=setInterval(function(){if(/loaded|complete/.test(K.readyState)){E()}},10)}if(typeof K.addEventListener!=b){K.addEventListener("DOMContentLoaded",E,null)}R(E)}();function S(){if(J.readyState=="complete"){J.parentNode.removeChild(J);E()}}function E(){if(e){return }if(h.ie&&h.win){var v=a("span");try{var u=K.getElementsByTagName("body")[0].appendChild(v);u.parentNode.removeChild(u)}catch(w){return }}e=true;if(Z){clearInterval(Z);Z=null}var q=o.length;for(var r=0;r<q;r++){o[r]()}}function f(q){if(e){q()}else{o[o.length]=q}}function R(r){if(typeof j.addEventListener!=b){j.addEventListener("load",r,false)}else{if(typeof K.addEventListener!=b){K.addEventListener("load",r,false)}else{if(typeof j.attachEvent!=b){I(j,"onload",r)}else{if(typeof j.onload=="function"){var q=j.onload;j.onload=function(){q();r()}}else{j.onload=r}}}}}function H(){var t=N.length;for(var q=0;q<t;q++){var u=N[q].id;if(h.pv[0]>0){var r=C(u);if(r){N[q].width=r.getAttribute("width")?r.getAttribute("width"):"0";N[q].height=r.getAttribute("height")?r.getAttribute("height"):"0";if(c(N[q].swfVersion)){if(h.webkit&&h.webkit<312){Y(r)}W(u,true)}else{if(N[q].expressInstall&&!A&&c("6.0.65")&&(h.win||h.mac)){k(N[q])}else{O(r)}}}}else{W(u,true)}}}function Y(t){var q=t.getElementsByTagName(Q)[0];if(q){var w=a("embed"),y=q.attributes;if(y){var v=y.length;for(var u=0;u<v;u++){if(y[u].nodeName=="DATA"){w.setAttribute("src",y[u].nodeValue)}else{w.setAttribute(y[u].nodeName,y[u].nodeValue)}}}var x=q.childNodes;if(x){var z=x.length;for(var r=0;r<z;r++){if(x[r].nodeType==1&&x[r].nodeName=="PARAM"){w.setAttribute(x[r].getAttribute("name"),x[r].getAttribute("value"))}}}t.parentNode.replaceChild(w,t)}}function k(w){A=true;var u=C(w.id);if(u){if(w.altContentId){var y=C(w.altContentId);if(y){M=y;l=w.altContentId}}else{M=G(u)}if(!(/%$/.test(w.width))&&parseInt(w.width,10)<310){w.width="310"}if(!(/%$/.test(w.height))&&parseInt(w.height,10)<137){w.height="137"}K.title=K.title.slice(0,47)+" - Flash Player Installation";var z=h.ie&&h.win?"ActiveX":"PlugIn",q=K.title,r="MMredirectURL="+j.location+"&MMplayerType="+z+"&MMdoctitle="+q,x=w.id;if(h.ie&&h.win&&u.readyState!=4){var t=a("div");x+="SWFObjectNew";t.setAttribute("id",x);u.parentNode.insertBefore(t,u);u.style.display="none";var v=function(){u.parentNode.removeChild(u)};I(j,"onload",v)}U({data:w.expressInstall,id:m,width:w.width,height:w.height},{flashvars:r},x)}}function O(t){if(h.ie&&h.win&&t.readyState!=4){var r=a("div");t.parentNode.insertBefore(r,t);r.parentNode.replaceChild(G(t),r);t.style.display="none";var q=function(){t.parentNode.removeChild(t)};I(j,"onload",q)}else{t.parentNode.replaceChild(G(t),t)}}function G(v){var u=a("div");if(h.win&&h.ie){u.innerHTML=v.innerHTML}else{var r=v.getElementsByTagName(Q)[0];if(r){var w=r.childNodes;if(w){var q=w.length;for(var t=0;t<q;t++){if(!(w[t].nodeType==1&&w[t].nodeName=="PARAM")&&!(w[t].nodeType==8)){u.appendChild(w[t].cloneNode(true))}}}}}return u}function U(AG,AE,t){var q,v=C(t);if(v){if(typeof AG.id==b){AG.id=t}if(h.ie&&h.win){var AF="";for(var AB in AG){if(AG[AB]!=Object.prototype[AB]){if(AB.toLowerCase()=="data"){AE.movie=AG[AB]}else{if(AB.toLowerCase()=="styleclass"){AF+=' class="'+AG[AB]+'"'}else{if(AB.toLowerCase()!="classid"){AF+=" "+AB+'="'+AG[AB]+'"'}}}}}var AD="";for(var AA in AE){if(AE[AA]!=Object.prototype[AA]){AD+='<param name="'+AA+'" value="'+AE[AA]+'" />'}}v.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+AF+">"+AD+"</object>";i[i.length]=AG.id;q=C(AG.id)}else{if(h.webkit&&h.webkit<312){var AC=a("embed");AC.setAttribute("type",P);for(var z in AG){if(AG[z]!=Object.prototype[z]){if(z.toLowerCase()=="data"){AC.setAttribute("src",AG[z])}else{if(z.toLowerCase()=="styleclass"){AC.setAttribute("class",AG[z])}else{if(z.toLowerCase()!="classid"){AC.setAttribute(z,AG[z])}}}}}for(var y in AE){if(AE[y]!=Object.prototype[y]){if(y.toLowerCase()!="movie"){AC.setAttribute(y,AE[y])}}}v.parentNode.replaceChild(AC,v);q=AC}else{var u=a(Q);u.setAttribute("type",P);for(var x in AG){if(AG[x]!=Object.prototype[x]){if(x.toLowerCase()=="styleclass"){u.setAttribute("class",AG[x])}else{if(x.toLowerCase()!="classid"){u.setAttribute(x,AG[x])}}}}for(var w in AE){if(AE[w]!=Object.prototype[w]&&w.toLowerCase()!="movie"){F(u,w,AE[w])}}v.parentNode.replaceChild(u,v);q=u}}}return q}function F(t,q,r){var u=a("param");u.setAttribute("name",q);u.setAttribute("value",r);t.appendChild(u)}function X(r){var q=C(r);if(q&&(q.nodeName=="OBJECT"||q.nodeName=="EMBED")){if(h.ie&&h.win){if(q.readyState==4){B(r)}else{j.attachEvent("onload",function(){B(r)})}}else{q.parentNode.removeChild(q)}}}function B(t){var r=C(t);if(r){for(var q in r){if(typeof r[q]=="function"){r[q]=null}}r.parentNode.removeChild(r)}}function C(t){var q=null;try{q=K.getElementById(t)}catch(r){}return q}function a(q){return K.createElement(q)}function I(t,q,r){t.attachEvent(q,r);d[d.length]=[t,q,r]}function c(t){var r=h.pv,q=t.split(".");q[0]=parseInt(q[0],10);q[1]=parseInt(q[1],10)||0;q[2]=parseInt(q[2],10)||0;return(r[0]>q[0]||(r[0]==q[0]&&r[1]>q[1])||(r[0]==q[0]&&r[1]==q[1]&&r[2]>=q[2]))?true:false}function V(v,r){if(h.ie&&h.mac){return }var u=K.getElementsByTagName("head")[0],t=a("style");t.setAttribute("type","text/css");t.setAttribute("media","screen");if(!(h.ie&&h.win)&&typeof K.createTextNode!=b){t.appendChild(K.createTextNode(v+" {"+r+"}"))}u.appendChild(t);if(h.ie&&h.win&&typeof K.styleSheets!=b&&K.styleSheets.length>0){var q=K.styleSheets[K.styleSheets.length-1];if(typeof q.addRule==Q){q.addRule(v,r)}}}function W(t,q){var r=q?"visible":"hidden";if(e&&C(t)){C(t).style.visibility=r}else{V("#"+t,"visibility:"+r)}}function g(s){var r=/[\\\"<>\.;]/;var q=r.exec(s)!=null;return q?encodeURIComponent(s):s}var D=function(){if(h.ie&&h.win){window.attachEvent("onunload",function(){var w=d.length;for(var v=0;v<w;v++){d[v][0].detachEvent(d[v][1],d[v][2])}var t=i.length;for(var u=0;u<t;u++){X(i[u])}for(var r in h){h[r]=null}h=null;for(var q in swfobject){swfobject[q]=null}swfobject=null})}}();return{registerObject:function(u,q,t){if(!h.w3cdom||!u||!q){return }var r={};r.id=u;r.swfVersion=q;r.expressInstall=t?t:false;N[N.length]=r;W(u,false)},getObjectById:function(v){var q=null;if(h.w3cdom){var t=C(v);if(t){var u=t.getElementsByTagName(Q)[0];if(!u||(u&&typeof t.SetVariable!=b)){q=t}else{if(typeof u.SetVariable!=b){q=u}}}}return q},embedSWF:function(x,AE,AB,AD,q,w,r,z,AC){if(!h.w3cdom||!x||!AE||!AB||!AD||!q){return }AB+="";AD+="";if(c(q)){W(AE,false);var AA={};if(AC&&typeof AC===Q){for(var v in AC){if(AC[v]!=Object.prototype[v]){AA[v]=AC[v]}}}AA.data=x;AA.width=AB;AA.height=AD;var y={};if(z&&typeof z===Q){for(var u in z){if(z[u]!=Object.prototype[u]){y[u]=z[u]}}}if(r&&typeof r===Q){for(var t in r){if(r[t]!=Object.prototype[t]){if(typeof y.flashvars!=b){y.flashvars+="&"+t+"="+r[t]}else{y.flashvars=t+"="+r[t]}}}}f(function(){U(AA,y,AE);if(AA.id==AE){W(AE,true)}})}else{if(w&&!A&&c("6.0.65")&&(h.win||h.mac)){A=true;W(AE,false);f(function(){var AF={};AF.id=AF.altContentId=AE;AF.width=AB;AF.height=AD;AF.expressInstall=w;k(AF)})}}},getFlashPlayerVersion:function(){return{major:h.pv[0],minor:h.pv[1],release:h.pv[2]}},hasFlashPlayerVersion:c,createSWF:function(t,r,q){if(h.w3cdom){return U(t,r,q)}else{return undefined}},removeSWF:function(q){if(h.w3cdom){X(q)}},createCSS:function(r,q){if(h.w3cdom){V(r,q)}},addDomLoadEvent:f,addLoadEvent:R,getQueryParamValue:function(v){var u=K.location.search||K.location.hash;if(v==null){return g(u)}if(u){var t=u.substring(1).split("&");for(var r=0;r<t.length;r++){if(t[r].substring(0,t[r].indexOf("="))==v){return g(t[r].substring((t[r].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(A&&M){var q=C(m);if(q){q.parentNode.replaceChild(M,q);if(l){W(l,true);if(h.ie&&h.win){M.style.display="block"}}M=null;l=null;A=false}}}}}();
includes/version-2-kvasir/open-flash-chart.swf ADDED
Binary file
pretty-bar.php ADDED
@@ -0,0 +1,243 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $root = dirname(dirname(dirname(dirname(__FILE__))));
3
+ if (file_exists($root.'/wp-load.php'))
4
+ require_once($root.'/wp-load.php');
5
+ else
6
+ require_once($root.'/wp-config.php');
7
+
8
+ require_once('prli-config.php');
9
+ require_once(PRLI_MODELS_PATH . '/models.inc.php');
10
+
11
+ $link = $prli_link->getOneFromSlug($_GET['slug']);
12
+ $bar_image = $prli_options->prettybar_image_url;
13
+ $bar_background_image = $prli_options->prettybar_background_image_url;
14
+ $bar_color = $prli_options->prettybar_color;
15
+ $bar_text_color = $prli_options->prettybar_text_color;
16
+ $bar_link_color = $prli_options->prettybar_link_color;
17
+ $bar_visited_color = $prli_options->prettybar_visited_color;
18
+ $bar_hover_color = $prli_options->prettybar_hover_color;
19
+ $bar_show_title = $prli_options->prettybar_show_title;
20
+ $bar_show_description = $prli_options->prettybar_show_description;
21
+ $bar_show_share_links = $prli_options->prettybar_show_share_links;
22
+ $bar_show_target_url_link = $prli_options->prettybar_show_target_url_link;
23
+ $bar_title_limit = (int)$prli_options->prettybar_title_limit;
24
+ $bar_desc_limit = (int)$prli_options->prettybar_desc_limit;
25
+ $bar_link_limit = (int)$prli_options->prettybar_link_limit;
26
+
27
+ $target_url = $_GET['url'];
28
+
29
+ $shortened_title = stripslashes(substr($prli_blogname,0,$bar_title_limit));
30
+ $shortened_desc = stripslashes(substr($prli_blogdescription,0,$bar_desc_limit));
31
+ $shortened_link = stripslashes(substr($target_url,0,$bar_link_limit));
32
+
33
+ if(strlen($prli_blogname) > $bar_title_limit)
34
+ $shortened_title .= "...";
35
+
36
+ if(strlen($prli_blogdescription) > $bar_desc_limit)
37
+ $shortened_desc .= "...";
38
+
39
+ if(strlen($target_url) > $bar_link_limit)
40
+ $shortened_link .= "...";
41
+
42
+ ?>
43
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
44
+ "http://www.w3.org/TR/html4/loose.dtd">
45
+ <html>
46
+ <head>
47
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
48
+ <meta name="description" content="<?php echo stripslashes($link->description); ?>" />
49
+ <title><?php echo stripslashes($link->name); ?></title>
50
+ <style type="text/css">
51
+ html, body {
52
+ margin: 0px;
53
+ padding: 0px;
54
+ <?php
55
+ if(!empty($bar_background_image) and $bar_background_image)
56
+ {
57
+ ?>
58
+ background-image: url(<?php echo $bar_background_image; ?>);
59
+ background-repeat: repeat-x;
60
+ <?php
61
+ }
62
+ else
63
+ {
64
+ ?>
65
+ background-color: #<?php echo $bar_color; ?>;
66
+ <?php
67
+ }
68
+ ?>
69
+ color: #<?php echo $bar_text_color; ?>;
70
+ }
71
+
72
+ #prettybar {
73
+ position: fixed;
74
+ top: 0;
75
+ padding: 0px;
76
+ margin: 0px;
77
+ width: 100%;
78
+ height: 65px;
79
+ border-bottom: 2px solid black;
80
+ }
81
+
82
+ .baritems {
83
+ margin-top: 0px;
84
+ padding: 0px;
85
+ }
86
+
87
+ .blog-title {
88
+ padding-top: 5px;
89
+ margin: 0px;
90
+ width: 200px;
91
+ }
92
+
93
+ h1,h2,h3,h4,p {
94
+ font-family: Arial;
95
+ padding: 0px;
96
+ margin: 0px;
97
+ }
98
+
99
+ a {
100
+ color: #<?php echo $bar_link_color; ?>;
101
+ text-decoration: none;
102
+ }
103
+
104
+ a:visited {
105
+ color: #<?php echo $bar_visited_color; ?>;
106
+ }
107
+
108
+ a:hover {
109
+ color: #<?php echo $bar_hover_color; ?>;
110
+ }
111
+
112
+ .map {
113
+ background-image: url(./images/bar_map.png);
114
+ background-repeat: no-repeat;
115
+ }
116
+
117
+ .closebutton {
118
+ background-position: -200px 0;
119
+ height: 20px;
120
+ width: 20px;
121
+ overflow: hidden;
122
+ /*text-indent: -999em;*/
123
+ cursor: pointer;
124
+ text-align: right;
125
+ float: right;
126
+ }
127
+
128
+ .pb-cell {
129
+ white-space: nowrap;
130
+ overflow: hidden;
131
+ }
132
+
133
+ .right_container {
134
+ float: right;
135
+ margin-top: 8px;
136
+ margin-right: 8px;
137
+ text-align: right;
138
+ }
139
+
140
+ .closebutton:hover {
141
+ background-position: -200px -30px;
142
+ }
143
+
144
+ .closebutton:active {
145
+ background-position: -200px -60px;
146
+ }
147
+
148
+ ul.baritems li {
149
+ display: inline;
150
+ /*float: left;*/
151
+ /*padding-left: 15px;*/
152
+ }
153
+
154
+ .retweet {
155
+ padding-top: 5px;
156
+ padding-left: 15px;
157
+ line-height: 26px;
158
+ width: 200px;
159
+ }
160
+
161
+ .blog-image {
162
+ padding-top: 7px;
163
+ padding-left: 5px;
164
+ padding-right: 5px;
165
+ width: 50px;
166
+ }
167
+
168
+ .small-text {
169
+ font-size: 10px;
170
+ }
171
+
172
+ .powered-by {
173
+ padding-top: 15px;
174
+ text-align: right;
175
+ }
176
+
177
+ /*
178
+ td {
179
+ border: 1px solid black;
180
+ }
181
+ */
182
+ </style>
183
+ </head>
184
+ <body>
185
+ <div id="prettybar">
186
+ <table width="100%" height="65px">
187
+ <tr>
188
+ <td class="blog-image" valign="top">
189
+ <div class="pb-cell">
190
+ <a href="<?php echo $prli_blogurl; ?>" target="_top"><img src="<?php echo $bar_image; ?>" width="48px" height="48px" border="0"/></a></div>
191
+ </td>
192
+ <td class="blog-title" valign="top">
193
+ <div class="pb-cell">
194
+ <h2>
195
+ <?php if( $bar_show_title ) { ?>
196
+ <a href="<?php echo $prli_blogurl; ?>" title="<?php echo $shortened_title; ?>" target="_top"><?php echo $shortened_title; ?></a>
197
+ <?php } else echo "&nbsp;"; ?>
198
+ </h2>
199
+ <?php if( $bar_show_description ) { ?>
200
+ <p title="<?php echo $prli_blogdescription; ?>"><?php echo $shortened_desc; ?></p>
201
+ <?php } else echo "&nbsp;"; ?>
202
+ </div>
203
+ </td>
204
+ <td class="retweet" valign="top">
205
+ <div class="pb-cell">
206
+ <h4>
207
+ <?php if( $bar_show_target_url_link ) { ?>
208
+ <a href="<?php echo $target_url; ?>" title="You're viewing: <?php echo $target_url; ?>" target="_top">Viewing: <?php echo $shortened_link; ?></a>
209
+ <?php } else echo "&nbsp;"; ?>
210
+ </h4>
211
+ <h4>
212
+ <?php if( $bar_show_share_links ) { ?>
213
+ <a href="http://twitter.com/home?status=<?php echo $prli_blogurl . PrliUtils::get_permalink_pre_slug_uri() . $_GET['slug']; ?>" target="_top">Share on Twitter</a>
214
+ <?php } else echo "&nbsp;"; ?>
215
+ </h4>
216
+ </div>
217
+ </td>
218
+ <td valign="top">
219
+ <div class="pb-cell right_container">
220
+ <table width="100%" cellpadding="0" cellspacing="0" style="padding: 0px; margin: 0px;">
221
+ <tr>
222
+ <td>
223
+ <p class="map closebutton"><a href="<?php echo $target_url; ?>" target="_top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a></p>
224
+ </td>
225
+ <tr>
226
+ <td>
227
+ <?php
228
+ $link_html =<<<LINKHTML
229
+ <p class="powered-by small-text">Powered by <a href="http://blairwilliams.com/pl" target="_top"><img src="images/pretty-link-small.png" width="12px" height="12px" border="0"/> Pretty Link</a></p>
230
+ LINKHTML;
231
+ echo apply_filters('prli-display-attrib-link',$link_html);
232
+ ?>
233
+ </td>
234
+ </tr>
235
+ </table>
236
+ </div>
237
+ </td>
238
+ </tr>
239
+ </table>
240
+ </div>
241
+ </div>
242
+ </body>
243
+ </html>
pretty-link.php ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ Plugin Name: Pretty Link
4
+ Plugin URI: http://blairwilliams.com/pretty-link
5
+ Description: Shrink, track and share any URL on the Internet from your WordPress website!
6
+ Version: 1.4.49
7
+ Author: Blair Williams
8
+ Author URI: http://blairwilliams.com
9
+ Copyright: 2009-2010, Caseproof, LLC
10
+
11
+ GNU General Public License, Free Software Foundation <http://creativecommons.org/licenses/GPL/2.0/>
12
+ This program is free software; you can redistribute it and/or modify
13
+ it under the terms of the GNU General Public License as published by
14
+ the Free Software Foundation; either version 2 of the License, or
15
+ (at your option) any later version.
16
+
17
+ This program is distributed in the hope that it will be useful,
18
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
19
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20
+ GNU General Public License for more details.
21
+
22
+ You should have received a copy of the GNU General Public License
23
+ along with this program; if not, write to the Free Software
24
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25
+ */
26
+
27
+ require_once('prli-config.php');
28
+ require_once(PRLI_MODELS_PATH . '/models.inc.php');
29
+ require_once('prli-api.php'); // load api methods
30
+ require_once('prli-xmlrpc.php'); // load xml-rpc api methods
31
+
32
+ require_once(PRLI_PATH.'/prli-main.php');
33
+
34
+ // Provide Back End Hooks to the Pro version of Pretty Link
35
+ if($prli_update->pro_is_installed_and_authorized())
36
+ require_once(PRLI_PATH.'/pro/pretty-link-pro.php');
37
+
38
+ ?>
prli-add-link.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ require_once 'prli-config.php';
3
+ require_once(PRLI_MODELS_PATH . '/models.inc.php');
4
+
5
+ $groups = $prli_group->getAll('',' ORDER BY name');
6
+ $values = setup_new_vars($groups);
7
+
8
+ require_once 'classes/views/prli-links/new.php';
9
+ ?>
prli-api.php ADDED
@@ -0,0 +1,233 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Pretty Link WordPress Plugin API
4
+ */
5
+
6
+ /**
7
+ * Returns the API Version as a string.
8
+ */
9
+ function prli_api_version()
10
+ {
11
+ return '1.3';
12
+ }
13
+
14
+ /**
15
+ * Create a Pretty Link for a long, ugly URL.
16
+ *
17
+ * @param string $target_url Required, it is the value of the Target URL you
18
+ * want the Pretty Link to redirect to
19
+ *
20
+ * @param string $slug Optional, slug for the Pretty Link (string that comes
21
+ * after the Pretty Link's slash) if this value isn't set
22
+ * then a random slug will be automatically generated.
23
+ *
24
+ * @param string $name Optional, name for the Pretty Link. If this value isn't
25
+ * set then the name will be the slug.
26
+ *
27
+ * @param string $description Optional, description for the Pretty Link.
28
+ *
29
+ * @param integer $group_id Optional, the group that this link will be placed in.
30
+ * If this value isn't set then the link will not be
31
+ * placed in a group.
32
+ *
33
+ * @param boolean $link_track_me Optional, If true the link will be tracked,
34
+ * if not set the default value (from the pretty
35
+ * link option page) will be used
36
+ *
37
+ * @param boolean $link_nofollow Optional, If true the nofollow attribute will
38
+ * be set for the link, if not set the default
39
+ * value (from the pretty link option page) will
40
+ * be used
41
+ *
42
+ * @param string $link_redirect_type Optional, valid values include '307', '301',
43
+ * 'prettybar', 'cloak' or 'pixel'
44
+ * if not set the default value (from the pretty
45
+ * link option page) will be used
46
+ *
47
+ * @return boolean / string The Full Pretty Link if Successful and false for Failure.
48
+ * This function will also set a global variable named
49
+ * $prli_pretty_slug which gives the slug of the link
50
+ * created if the link is successfully created -- it will
51
+ * set a variable named $prli_error_messages if the link
52
+ * was not successfully created.
53
+ */
54
+ function prli_create_pretty_link( $target_url,
55
+ $slug = '',
56
+ $name = '',
57
+ $description = '',
58
+ $group_id = 0,
59
+ $track_me = '',
60
+ $nofollow = '',
61
+ $redirect_type = '',
62
+ $param_forwarding = '',
63
+ $param_struct = '' )
64
+ {
65
+ global $wpdb, $prli_link, $prli_blogurl;
66
+ global $prli_error_messages, $prli_pretty_link, $prli_pretty_slug, $prli_options;
67
+
68
+ $prli_error_messages = array();
69
+
70
+ $values = array();
71
+ $values['url'] = $target_url;
72
+ $values['slug'] = (($slug == '')?$prli_link->generateValidSlug():$slug);
73
+ $values['name'] = $name;
74
+ $values['description'] = $description;
75
+ $values['group_id'] = $group_id;
76
+ $values['redirect_type'] = (($redirect_type == '')?$prli_options->link_redirect_type:$redirect_type);
77
+ $values['nofollow'] = (($nofollow == '')?$prli_options->link_nofollow:$nofollow);
78
+ $values['track_me'] = (($track_me == '')?$prli_options->link_track_me:$track_me);
79
+ $values['param_forwarding'] = (($param_forwarding == '')?'off':$param_forwarding);
80
+ $values['param_struct'] = $param_struct;
81
+
82
+ // make array look like $_POST
83
+ if(empty($values['nofollow']) or !$values['nofollow'])
84
+ unset($values['nofollow']);
85
+ if(empty($values['track_me']) or !$values['track_me'])
86
+ unset($values['track_me']);
87
+
88
+ $prli_error_messages = $prli_link->validate( $values );
89
+
90
+ if( count($prli_error_messages) == 0 )
91
+ {
92
+ if( $id = $prli_link->create( $values ) )
93
+ return $id;
94
+ else
95
+ {
96
+ $prli_error_messages[] = "An error prevented your Pretty Link from being created";
97
+ return false;
98
+ }
99
+ }
100
+ else
101
+ return false;
102
+ }
103
+
104
+ function prli_update_pretty_link( $id,
105
+ $target_url = '',
106
+ $slug = '',
107
+ $name = -1,
108
+ $description = -1,
109
+ $group_id = '',
110
+ $track_me = '',
111
+ $nofollow = '',
112
+ $redirect_type = '',
113
+ $param_forwarding = '',
114
+ $param_struct = -1 )
115
+ {
116
+ global $wpdb, $prli_link, $prli_blogurl;
117
+ global $prli_error_messages, $prli_pretty_link, $prli_pretty_slug;
118
+
119
+ if(empty($id))
120
+ {
121
+ $prli_error_messages[] = "Pretty Link ID must be set for successful update.";
122
+ return false;
123
+ }
124
+
125
+ $record = $prli_link->getOne($id);
126
+
127
+ $prli_error_messages = array();
128
+
129
+ $values = array();
130
+ $values['id'] = $id;
131
+ $values['url'] = (($target_url == '')?$record->url:$target_url);
132
+ $values['slug'] = (($slug == '')?$record->slug:$slug);
133
+ $values['name'] = (($name == -1)?$record->name:$name);
134
+ $values['description'] = (($description == -1)?$record->description:$description);
135
+ $values['group_id'] = (($group_id == '')?$record->group_id:$group_id);
136
+ $values['redirect_type'] = (($redirect_type == '')?$record->redirect_type:$redirect_type);
137
+ $values['nofollow'] = (($nofollow == '')?$record->nofollow:$nofollow);
138
+ $values['track_me'] = (($track_me == '')?(int)$record->track_me:$track_me);
139
+ $values['param_forwarding'] = (($param_forwarding == '')?$record->param_forwarding:$param_forwarding);
140
+ $values['param_struct'] = (($param_struct == -1)?$record->param_struct:$param_struct);
141
+
142
+ // make array look like $_POST
143
+ if(empty($values['nofollow']) or !$values['nofollow'])
144
+ unset($values['nofollow']);
145
+ if(empty($values['track_me']) or !$values['track_me'])
146
+ unset($values['track_me']);
147
+
148
+ $prli_error_messages = $prli_link->validate( $values );
149
+
150
+ if( count($prli_error_messages) == 0 )
151
+ {
152
+ if( $prli_link->update( $id, $values ) )
153
+ return true;
154
+ else
155
+ {
156
+ $prli_error_messages[] = "An error prevented your Pretty Link from being created";
157
+ return false;
158
+ }
159
+ }
160
+ else
161
+ return false;
162
+ }
163
+
164
+ /**
165
+ * Get all the pretty link groups in an array suitable for creating a select box.
166
+ *
167
+ * @return bool (false if failure) | array A numerical array of associative arrays
168
+ * containing all the data about the pretty
169
+ * link groups.
170
+ */
171
+ function prli_get_all_groups()
172
+ {
173
+ global $prli_group;
174
+ $groups = $prli_group->getAll('',' ORDER BY gr.name', ARRAY_A);
175
+ return $groups;
176
+ }
177
+
178
+ /**
179
+ * Get all the pretty links in an array suitable for creating a select box.
180
+ *
181
+ * @return bool (false if failure) | array A numerical array of associative arrays
182
+ * containing all the data about the pretty
183
+ * links.
184
+ */
185
+ function prli_get_all_links()
186
+ {
187
+ global $prli_link;
188
+ $links = $prli_link->getAll('',' ORDER BY li.name', ARRAY_A);
189
+ return $links;
190
+ }
191
+
192
+ /**
193
+ * Gets a specific link from a slug and returns info about it in an array
194
+ *
195
+ * @return bool (false if failure) | array An associative array with all the
196
+ * data about the given pretty link.
197
+ */
198
+ function prli_get_link_from_slug($slug, $return_type = OBJECT, $include_stats = false)
199
+ {
200
+ global $prli_link;
201
+ $link = $prli_link->getOneFromSlug($slug, $return_type, $include_stats);
202
+ return $link;
203
+ }
204
+
205
+ /**
206
+ * Gets a specific link from id and returns info about it in an array
207
+ *
208
+ * @return bool (false if failure) | array An associative array with all the
209
+ * data about the given pretty link.
210
+ */
211
+ function prli_get_link($id, $return_type = OBJECT, $include_stats = false)
212
+ {
213
+ global $prli_link;
214
+ $link = $prli_link->getOne($id, $return_type, $include_stats);
215
+ return $link;
216
+ }
217
+
218
+ /**
219
+ * Gets the full pretty link url from an id
220
+ *
221
+ * @return bool (false if failure) | string the pretty link url
222
+ */
223
+ function prli_get_pretty_link_url($id)
224
+ {
225
+ global $prli_link,$prli_blogurl;
226
+
227
+ if($pretty_link = $prli_link->getOne($id))
228
+ return "{$prli_blogurl}".PrliUtils::get_permalink_pre_slug_uri()."{$pretty_link->slug}";
229
+
230
+ return false;
231
+ }
232
+
233
+ ?>
prli-bookmarklet.php ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $root = dirname(dirname(dirname(dirname(__FILE__))));
3
+ if (file_exists($root.'/wp-load.php'))
4
+ require_once($root.'/wp-load.php');
5
+ else
6
+ require_once($root.'/wp-config.php');
7
+
8
+ require_once('prli-config.php');
9
+ require_once(PRLI_MODELS_PATH . '/models.inc.php');
10
+
11
+ if(isset($_GET['k']))
12
+ {
13
+ if($_GET['k'] == $prli_options->bookmarklet_auth)
14
+ {
15
+ $redirect_type = ((isset($_GET['rt']) and $_GET['rt'] != '-1')?$_GET['rt']:'');
16
+ $track = ((isset($_GET['trk']) and $_GET['trk'] != '-1')?$_GET['trk']:'');
17
+ $group = ((isset($_GET['grp']) and $_GET['grp'] != '-1')?$_GET['grp']:'');
18
+
19
+ $result = prli_create_pretty_link( $_GET['target_url'], '', '', '', $group, $track, '', $redirect_type );
20
+
21
+ $plink = $prli_link->getOne($result);
22
+ $target_url = $plink->url;
23
+ $target_url_title = $plink->name;
24
+ $pretty_link = "{$prli_blogurl}".PrliUtils::get_permalink_pre_slug_uri()."{$plink->slug}";
25
+
26
+ $twitter_status = substr($target_url_title,0,(114 - strlen($pretty_link))) . ((strlen($target_url_title) > 114)?"...":'') . " | $pretty_link";
27
+ ?>
28
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
29
+ "http://www.w3.org/TR/html4/loose.dtd">
30
+ <html>
31
+ <head>
32
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
33
+ <title>Here's your Pretty Link</title>
34
+ <style type="text/css">
35
+ body {
36
+ font-family: Arial;
37
+ text-align: center;
38
+ margin-top: 25px;
39
+ }
40
+
41
+ h4 {
42
+ font-size: 18px;
43
+ color: #aaaaaa;
44
+ }
45
+
46
+ h2 {
47
+ font-size: 24px;
48
+ font-weight: bold;
49
+ }
50
+
51
+ h2 a {
52
+ text-decoration: none;
53
+ color: #1f487e;
54
+ }
55
+
56
+ h2 a:hover {
57
+ text-decoration: none;
58
+ color: blue;
59
+ }
60
+ </style>
61
+ </head>
62
+ <body>
63
+ <p><img src="<?php echo PRLI_URL; ?>/images/prettylink_logo.jpg" /></p>
64
+ <h4><em>here's your pretty link for:</em><br/><?php echo $target_url_title; ?><br/>(<span title="<?php echo $target_url; ?>"><?php echo substr($target_url,0,50) . ((strlen($target_url)>50)?"...":''); ?></span>)</h4>
65
+ <h2><a href="<?php echo $pretty_link; ?>"><?php echo $pretty_link; ?></a></h2>
66
+ <p>send this link to:<br/>
67
+ <a href="http://del.icio.us/post?url=<?php echo urlencode($pretty_link) ?>&title=<?php echo urlencode($target_url_title); ?>" target="_blank"><img src="<?php echo PRLI_URL; ?>/images/delicious_32.png" title="delicious" width="32px" height="32px" border="0" /></a>&nbsp;&nbsp;
68
+ <a href="http://www.stumbleupon.com/submit?url=<?php echo urlencode($pretty_link) ?>&title=<?php echo urlencode($target_url_title); ?>" target="_blank"><img src="<?php echo PRLI_URL; ?>/images/stumbleupon_32.png" title="stumbleupon" width="32px" height="32px" border="0" /></a>&nbsp;&nbsp;
69
+ <a href="http://digg.com/submit?phase=2&url=<?php echo urlencode($pretty_link) ?>&title=<?php echo urlencode($target_url_title); ?>" target="_blank"><img src="<?php echo PRLI_URL; ?>/images/digg_32.png" title="digg" width="32px" height="32px" border="0" /></a>&nbsp;&nbsp;
70
+ <a href="http://twitter.com/home?status=<?php echo urlencode($twitter_status); ?>" target="_blank"><img src="<?php echo PRLI_URL; ?>/images/twitter_32.png" title="twitter" width="32px" height="32px" border="0" /></a>&nbsp;&nbsp;
71
+ <a href="http://www.mixx.com/submit?page_url=<?php echo urlencode($pretty_link) ?>&title=<?php echo urlencode($target_url_title); ?>" target="_blank"><img src="<?php echo PRLI_URL; ?>/images/mixx_32.png" title="mixx" width="32px" height="32px" border="0" /></a>&nbsp;&nbsp;
72
+ <a href="http://technorati.com/faves?add=<?php echo urlencode($pretty_link) ?>" target="_blank"><img src="<?php echo PRLI_URL; ?>/images/technorati_32.png" title="technorati" width="32px" height="32px" border="0" /></a>&nbsp;&nbsp;
73
+ <a href="http://www.facebook.com/sharer.php?u=<?php echo urlencode($pretty_link) ?>&t=<?php echo urlencode($target_url_title); ?>" target="_blank"><img src="<?php echo PRLI_URL; ?>/images/facebook_32.png" title="facebook" width="32px" height="32px" border="0" /></a>&nbsp;&nbsp;
74
+ <a href="http://www.newsvine.com/_tools/seed&save?u=<?php echo urlencode($pretty_link) ?>&h=<?php echo urlencode($target_url_title); ?>" target="_blank"><img src="<?php echo PRLI_URL; ?>/images/newsvine_32.png" title="news vine" width="32px" height="32px" border="0" /></a>&nbsp;&nbsp;
75
+ <a href="http://reddit.com/submit?url=<?php echo urlencode($pretty_link) ?>&title=<?php echo urlencode($target_url_title); ?>" target="_blank"><img src="<?php echo PRLI_URL; ?>/images/reddit_32.png" title="reddit" width="32px" height="32px" border="0" /></a>&nbsp;&nbsp;
76
+ <a href="http://www.linkedin.com/sharearticle?mini=true&url=<?php echo urlencode($pretty_link) ?>&title=<?php echo urlencode($target_url_title); ?>" target="_blank"><img src="<?php echo PRLI_URL; ?>/images/linkedin_32.png" title="linkedin" width="32px" height="32px" border="0" /></a>&nbsp;&nbsp;
77
+ <a href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=<?php echo urlencode($pretty_link) ?>&=<?php echo urlencode($target_url_title); ?>" target="_blank"><img src="<?php echo PRLI_URL; ?>/images/yahoobuzz_32.png" title="yahoo! bookmarks" width="32px" height="32px" border="0" /></a>&nbsp;&nbsp;
78
+ <p><a href="<?php echo $_GET['target_url']; ?>">&laquo; back</a></p>
79
+ </body>
80
+ </html>
81
+ <?php
82
+ }
83
+ else
84
+ {
85
+ wp_redirect($prli_blogurl);
86
+ exit;
87
+ }
88
+ }
89
+ else
90
+ {
91
+ wp_redirect($prli_blogurl);
92
+ exit;
93
+ }
94
+ ?>
prli-clicks.php ADDED
@@ -0,0 +1,454 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ require_once 'prli-config.php';
4
+ require_once(PRLI_MODELS_PATH . '/models.inc.php');
5
+ require_once(PRLI_PATH . '/prli-image-lookups.php');
6
+
7
+ $controller_file = basename(__FILE__);
8
+ $max_rows_per_file = 5000;
9
+
10
+ if($_GET['action'] == null and $_POST['action'] == null)
11
+ {
12
+ $page_params = '';
13
+
14
+ $params = $prli_click->get_params_array();
15
+
16
+ $current_page = $params['paged'];
17
+
18
+ $start_timestamp = $prli_utils->get_start_date($params);
19
+ $end_timestamp = $prli_utils->get_end_date($params);
20
+
21
+ $start_timestamp = mktime(0, 0, 0, date('n', $start_timestamp), date('j', $start_timestamp), date('Y', $start_timestamp));
22
+ $end_timestamp = mktime(0, 0, 0, date('n', $end_timestamp), date('j', $end_timestamp), date('Y', $end_timestamp) );
23
+
24
+ $sdyear = date('Y',$start_timestamp);
25
+ $sdmon = date('n',$start_timestamp);
26
+ $sddom = date('j',$start_timestamp);
27
+
28
+ $edyear = date('Y',$end_timestamp);
29
+ $edmon = date('n',$end_timestamp);
30
+ $eddom = date('j',$end_timestamp);
31
+
32
+ $where_clause = " cl.created_at BETWEEN '$sdyear-$sdmon-$sddom 00:00:00' AND '$edyear-$edmon-$eddom 23:59:59'";
33
+
34
+ if(!empty($params['sdate']))
35
+ $page_params .= "&sdate=".$params['sdate'];
36
+
37
+ if(!empty($params['edate']))
38
+ $page_params .= "&edate=".$params['edate'];
39
+
40
+ if(!empty($params['l']) and $params['l'] != 'all')
41
+ {
42
+ $where_clause .= (($params['l'] != 'all')?" AND cl.link_id=".$params['l']:'');
43
+ $link_name = $wpdb->get_var("SELECT name FROM ".$wpdb->prefix."prli_links WHERE id=".$params['l']);
44
+ $link_slug = $wpdb->get_var("SELECT slug FROM ".$wpdb->prefix."prli_links WHERE id=".$params['l']);
45
+
46
+ $page_params .= "&l=".$params['l'];
47
+ }
48
+ else if(!empty($params['ip']))
49
+ {
50
+ $link_name = "IP Address: " . $params['ip'];
51
+ $where_clause .= " AND cl.ip='".$params['ip']."'";
52
+ $page_params .= "&ip=".$params['ip'];
53
+ }
54
+ else if(!empty($params['vuid']))
55
+ {
56
+ $link_name = "Visitor: " . $params['vuid'];
57
+ $where_clause .= " AND cl.vuid='".$params['vuid']."'";
58
+ $page_params .= "&vuid=".$params['vuid'];
59
+ }
60
+ else if(!empty($params['group']))
61
+ {
62
+ $group = $prli_group->getOne($params['group']);
63
+ $link_name = "Group: " . $group->name;
64
+ $where_clause .= " AND cl.link_id IN (SELECT id FROM " . $prli_link->table_name . " WHERE group_id=".$params['group'].")";
65
+ $page_params .= "&group=".$params['group'];
66
+ }
67
+ else
68
+ {
69
+ $link_name = "All Links";
70
+ $where_clause .= "";
71
+ $page_params .= "";
72
+ }
73
+
74
+ if($params['type'] == "unique")
75
+ {
76
+ $where_clause .= " AND first_click=1";
77
+ $page_params .= "&type=unique";
78
+ }
79
+
80
+ $click_vars = prli_get_click_sort_vars($params,$where_clause);
81
+ $sort_params = $page_params . $click_vars['sort_params'];
82
+ $page_params .= $click_vars['page_params'];
83
+ $sort_str = $click_vars['sort_str'];
84
+ $sdir_str = $click_vars['sdir_str'];
85
+ $search_str = $click_vars['search_str'];
86
+
87
+ $where_clause = $click_vars['where_clause'];
88
+ $order_by = $click_vars['order_by'];
89
+ $count_where_clause = $click_vars['count_where_clause'];
90
+
91
+ $record_count = $prli_click->getRecordCount($count_where_clause);
92
+ $page_count = $prli_click->getPageCount($page_size,$count_where_clause);
93
+ $clicks = $prli_click->getPage($current_page,$page_size,$where_clause,$order_by,true);
94
+ $page_last_record = $prli_utils->getLastRecordNum($record_count,$current_page,$page_size);
95
+ $page_first_record = $prli_utils->getFirstRecordNum($record_count,$current_page,$page_size);
96
+
97
+ require_once 'classes/views/prli-clicks/list.php';
98
+ }
99
+ else if($_GET['action'] == 'csv' or $_POST['action'] == 'csv')
100
+ {
101
+ $param_string = '';
102
+ $where_clause = '';
103
+
104
+ if(isset($_GET['l']))
105
+ {
106
+ $where_clause = " link_id=".$_GET['l'];
107
+ $link_name = $wpdb->get_var("SELECT name FROM ".$wpdb->prefix."prli_links WHERE id=".$_GET['l']);
108
+ $link_slug = $wpdb->get_var("SELECT slug FROM ".$wpdb->prefix."prli_links WHERE id=".$_GET['l']);
109
+ $param_string .= "l=".$_GET['l'];
110
+ }
111
+ else if(isset($_GET['ip']))
112
+ {
113
+ $link_name = "ip_addr_" . $_GET['ip'];
114
+ $where_clause = " cl.ip='".$_GET['ip']."'";
115
+ $param_string .= "ip=".$_GET['ip'];
116
+ }
117
+ else if(isset($_GET['vuid']))
118
+ {
119
+ $link_name = "visitor_" . $_GET['vuid'];
120
+ $where_clause = " cl.vuid='".$_GET['vuid']."'";
121
+ $param_string .= "vuid=".$_GET['vuid'];
122
+ }
123
+ else if(isset($_GET['group']))
124
+ {
125
+ $group = $prli_group->getOne($_GET['group']);
126
+ $link_name = "group_" . $group->name;
127
+ $where_clause .= " cl.link_id IN (SELECT id FROM {$prli_link->table_name} WHERE group_id=".$_GET['group'].")";
128
+ $param_string .= "group=".$_GET['group'];
129
+ }
130
+ else
131
+ {
132
+ $link_name = "all_links";
133
+ }
134
+
135
+ $hit_record_count = $prli_click->getRecordCount($where_clause);
136
+ $hit_page_count = (int)ceil($hit_record_count / $max_rows_per_file);
137
+
138
+ $history_where_clause = '';
139
+ if(!empty($where_clause))
140
+ {
141
+ $ips = $wpdb->get_col( "SELECT DISTINCT ip FROM {$prli_click->table_name} cl WHERE{$where_clause}" );
142
+ if(!empty($ips) and count($ips) > 1)
143
+ {
144
+ $ips_str = implode("','",$ips);
145
+ $history_where_clause = " (cl.ip IN ('{$ips_str}'))";
146
+ }
147
+ else if(!empty($ips))
148
+ $history_where_clause = " cl.ip='".$ips[0]."'";
149
+ }
150
+
151
+ $history_record_count = $prli_click->getRecordCount($history_where_clause);
152
+ $history_page_count = ceil($history_record_count / $max_rows_per_file);
153
+
154
+ $query = "SELECT cl.link_id, cl.ip, MIN(cl.created_at) FROM {$prli_click->table_name} cl WHERE{$history_where_clause} GROUP BY cl.ip";
155
+ $link_ids = $wpdb->get_col($query,0);
156
+
157
+ $origin_record_count = count($link_ids);
158
+ $origin_page_count = ceil($origin_record_count / $max_rows_per_file);
159
+
160
+ if( PrliUtils::rewriting_on() )
161
+ {
162
+ $param_string = (empty($param_string)?'':"?{$param_string}");
163
+ $hit_report_url = "{$prli_blogurl}/prli_download_csv_hit_report{$param_string}";
164
+ $history_report_url = "{$prli_blogurl}/prli_download_csv_history_report{$param_string}";
165
+ $origin_report_url = "{$prli_blogurl}/prli_download_csv_origin_report{$param_string}";
166
+ }
167
+ else
168
+ {
169
+ $param_string = (empty($param_string)?'':"&{$param_string}");
170
+ $hit_report_url = "{$prli_blogurl}/index.php?action=prli_download_csv_hit_report{$param_string}";
171
+ $history_report_url = "{$prli_blogurl}/index.php?action=prli_download_csv_history_report{$param_string}";
172
+ $origin_report_url = "{$prli_blogurl}/index.php?action=prli_download_csv_origin_report{$param_string}";
173
+ }
174
+
175
+ require_once 'classes/views/prli-clicks/csv_download.php';
176
+ }
177
+ else if($_GET['action'] == 'download_csv_hit_report' or $_POST['action'] == 'download_csv_hit_report')
178
+ {
179
+ if(isset($_GET['l']))
180
+ {
181
+ $where_clause = " link_id=".$_GET['l'];
182
+ $link_name = $wpdb->get_var("SELECT name FROM ".$wpdb->prefix."prli_links WHERE id=".$_GET['l']);
183
+ $link_slug = $wpdb->get_var("SELECT slug FROM ".$wpdb->prefix."prli_links WHERE id=".$_GET['l']);
184
+ }
185
+ else if(isset($_GET['ip']))
186
+ {
187
+ $link_name = "ip_addr_" . $_GET['ip'];
188
+ $where_clause = " cl.ip='".$_GET['ip']."'";
189
+ }
190
+ else if(isset($_GET['vuid']))
191
+ {
192
+ $link_name = "visitor_" . $_GET['vuid'];
193
+ $where_clause = " cl.vuid='".$_GET['vuid']."'";
194
+ }
195
+ else if(isset($_GET['group']))
196
+ {
197
+ $group = $prli_group->getOne($_GET['group']);
198
+ $link_name = "group_" . $group->name;
199
+ $where_clause .= " cl.link_id IN (SELECT id FROM " . $prli_link->table_name . " WHERE group_id=".$_GET['group'].")";
200
+ }
201
+ else
202
+ {
203
+ $link_name = "all_links";
204
+ $where_clause = "";
205
+ }
206
+
207
+ $link_name = stripslashes($link_name);
208
+ $link_name = preg_replace("#[ ,]#",'',$link_name);
209
+
210
+ $record_count = $prli_click->getRecordCount($where_clause);
211
+ $page_count = (int)ceil($record_count / $max_rows_per_file);
212
+ $prli_page = $_GET['prli_page'];
213
+ $hmin = 0;
214
+
215
+ if($prli_page)
216
+ $hmin = ($prli_page - 1) * $max_rows_per_file;
217
+
218
+ if($prli_page==$page_count)
219
+ $hmax = $record_count;
220
+ else
221
+ $hmax = ($prli_page * $max_rows_per_file) - 1;
222
+
223
+ $hlimit = "{$hmin},{$max_rows_per_file}";
224
+ $clicks = $prli_click->getAll($where_clause,'',false,$hlimit);
225
+ require_once 'classes/views/prli-clicks/csv.php';
226
+ }
227
+ else if($_GET['action'] == 'download_csv_origin_report' or $_POST['action'] == 'download_csv_origin_report')
228
+ {
229
+ if(isset($_GET['l']))
230
+ {
231
+ $where_clause = " link_id=".$_GET['l'];
232
+ $link_name = $wpdb->get_var("SELECT name FROM ".$wpdb->prefix."prli_links WHERE id=".$_GET['l']);
233
+ $link_slug = $wpdb->get_var("SELECT slug FROM ".$wpdb->prefix."prli_links WHERE id=".$_GET['l']);
234
+ }
235
+ else if(isset($_GET['ip']))
236
+ {
237
+ $link_name = "ip_addr_" . $_GET['ip'];
238
+ $where_clause = " cl2.ip='".$_GET['ip']."'";
239
+ }
240
+ else if(isset($_GET['vuid']))
241
+ {
242
+ $link_name = "visitor_" . $_GET['vuid'];
243
+ $where_clause = " cl2.vuid='".$_GET['vuid']."'";
244
+ }
245
+ else if(isset($_GET['group']))
246
+ {
247
+ $group = $prli_group->getOne($_GET['group']);
248
+ $link_name = "group_" . $group->name;
249
+ $where_clause .= " cl2.link_id IN (SELECT id FROM " . $prli_link->table_name . " WHERE group_id=".$_GET['group'].")";
250
+ }
251
+ else
252
+ {
253
+ $link_name = "all_links";
254
+ $where_clause = "";
255
+ }
256
+
257
+ if(!empty($where_clause))
258
+ {
259
+ $ips = $wpdb->get_col( "SELECT DISTINCT ip FROM {$prli_click->table_name} WHERE{$where_clause}" );
260
+ if(!empty($ips) and count($ips) > 1)
261
+ {
262
+ $ips_str = implode("','",$ips);
263
+ $origin_clause = " (cl.ip IN ('{$ips_str}'))";
264
+ }
265
+ else if(!empty($ips))
266
+ $origin_clause = " cl.ip='".$ips[0]."'";
267
+ }
268
+
269
+ $link_name = stripslashes($link_name);
270
+ $link_name = preg_replace("#[ ,]#",'',$link_name);
271
+ $link_name = $link_name . "_origin";
272
+ $record_count = $prli_click->getRecordCount($where_clause);
273
+ $page_count = (int)ceil($record_count / $max_rows_per_file);
274
+ $prli_page = $_GET['prli_page'];
275
+ $hmin = 0;
276
+
277
+ if($prli_page)
278
+ $hmin = ($prli_page - 1) * $max_rows_per_file;
279
+
280
+ if($prli_page==$page_count)
281
+ $hmax = $record_count;
282
+ else
283
+ $hmax = ($prli_page * $max_rows_per_file) - 1;
284
+
285
+ $hlimit = "{$hmin},{$max_rows_per_file}";
286
+ $horder = " ORDER BY cl.ip, cl.created_at DESC";
287
+ //$clicks = $prli_click->getAll($where_clause,$horder,false,$hlimit);
288
+
289
+ $query = "SELECT cl.*, MIN(cl.created_at) as min_created_at, li.name as link_name FROM {$prli_click->table_name} cl, {$prli_link->table_name} li WHERE li.id = cl.link_id AND{$origin_clause} GROUP BY cl.ip LIMIT {$hlimit}";
290
+ $clicks = $wpdb->get_results($query);
291
+
292
+ require_once 'classes/views/prli-clicks/csv.php';
293
+ }
294
+ else if($_GET['action'] == 'download_csv_history_report' or $_POST['action'] == 'download_csv_history_report')
295
+ {
296
+ if(isset($_GET['l']))
297
+ {
298
+ $where_clause = " link_id=".$_GET['l'];
299
+ $link_name = $wpdb->get_var("SELECT name FROM ".$wpdb->prefix."prli_links WHERE id=".$_GET['l']);
300
+ $link_slug = $wpdb->get_var("SELECT slug FROM ".$wpdb->prefix."prli_links WHERE id=".$_GET['l']);
301
+ }
302
+ else if(isset($_GET['ip']))
303
+ {
304
+ $link_name = "ip_addr_" . $_GET['ip'];
305
+ $where_clause = " cl2.ip='".$_GET['ip']."'";
306
+ }
307
+ else if(isset($_GET['vuid']))
308
+ {
309
+ $link_name = "visitor_" . $_GET['vuid'];
310
+ $where_clause = " cl2.vuid='".$_GET['vuid']."'";
311
+ }
312
+ else if(isset($_GET['group']))
313
+ {
314
+ $group = $prli_group->getOne($_GET['group']);
315
+ $link_name = "group_" . $group->name;
316
+ $where_clause .= " cl2.link_id IN (SELECT id FROM " . $prli_link->table_name . " WHERE group_id=".$_GET['group'].")";
317
+ }
318
+ else
319
+ {
320
+ $link_name = "all_links";
321
+ $where_clause = "";
322
+ }
323
+
324
+ if(!empty($where_clause))
325
+ {
326
+ $ips = $wpdb->get_col( "SELECT DISTINCT ip FROM {$prli_click->table_name} WHERE{$where_clause}" );
327
+ if(!empty($ips) and count($ips) > 1)
328
+ {
329
+ $ips_str = implode("','",$ips);
330
+ $where_clause = " (cl.ip IN ('{$ips_str}'))";
331
+ }
332
+ else if(!empty($ips))
333
+ $where_clause = " (cl.ip='".$ips[0]."'";
334
+ }
335
+
336
+ $link_name = stripslashes($link_name);
337
+ $link_name = preg_replace("#[ ,]#",'',$link_name);
338
+ $link_name = $link_name . "_history";
339
+ $record_count = $prli_click->getRecordCount($where_clause);
340
+ $page_count = (int)ceil($record_count / $max_rows_per_file);
341
+ $prli_page = $_GET['prli_page'];
342
+ $hmin = 0;
343
+
344
+ if($prli_page)
345
+ $hmin = ($prli_page - 1) * $max_rows_per_file;
346
+
347
+ if($prli_page==$page_count)
348
+ $hmax = $record_count;
349
+ else
350
+ $hmax = ($prli_page * $max_rows_per_file) - 1;
351
+
352
+ $hlimit = "{$hmin},{$max_rows_per_file}";
353
+ $horder = " ORDER BY cl.ip, cl.created_at DESC";
354
+ $clicks = $prli_click->getAll($where_clause,$horder,false,$hlimit);
355
+ require_once 'classes/views/prli-clicks/csv.php';
356
+ }
357
+
358
+ // Helpers
359
+ function prli_get_click_sort_vars($params,$where_clause = '')
360
+ {
361
+ $count_where_clause = '';
362
+ $page_params = '';
363
+
364
+ // These will have to work with both get and post
365
+ $sort_str = $params['sort'];
366
+ $sdir_str = $params['sdir'];
367
+ $search_str = $params['search'];
368
+
369
+ // Insert search string
370
+ if(!empty($search_str))
371
+ {
372
+ $search_params = explode(" ", $search_str);
373
+
374
+ $first_pass = true;
375
+ foreach($search_params as $search_param)
376
+ {
377
+ if($first_pass)
378
+ {
379
+ if($where_clause != '')
380
+ $where_clause .= ' AND';
381
+
382
+ $first_pass = false;
383
+ }
384
+ else
385
+ $where_clause .= ' AND';
386
+
387
+ $where_clause .= " (cl.ip LIKE '%$search_param%' OR ".
388
+ "cl.vuid LIKE '%$search_param%' OR ".
389
+ "cl.btype LIKE '%$search_param%' OR ".
390
+ "cl.bversion LIKE '%$search_param%' OR ".
391
+ "cl.host LIKE '%$search_param%' OR ".
392
+ "cl.referer LIKE '%$search_param%' OR ".
393
+ "cl.uri LIKE '%$search_param%' OR ".
394
+ "cl.created_at LIKE '%$search_param%'";
395
+ $count_where_clause = $where_clause . ")";
396
+ $where_clause .= " OR li.name LIKE '%$search_param%')";
397
+ }
398
+
399
+ $page_params .="&search=$search_str";
400
+ }
401
+
402
+ // Have to create a separate var so sorting doesn't get screwed up
403
+ $sort_params = $page_params;
404
+
405
+ // make sure page params stay correct
406
+ if(!empty($sort_str))
407
+ $page_params .="&sort=$sort_str";
408
+
409
+ if(!empty($sdir_str))
410
+ $page_params .= "&sdir=$sdir_str";
411
+
412
+ if(empty($count_where_clause))
413
+ $count_where_clause = $where_clause;
414
+
415
+ // Add order by clause
416
+ switch($sort_str)
417
+ {
418
+ case "ip":
419
+ case "vuid":
420
+ case "btype":
421
+ case "bversion":
422
+ case "host":
423
+ case "referer":
424
+ case "uri":
425
+ $order_by .= " ORDER BY cl.$sort_str";
426
+ break;
427
+ case "link":
428
+ $order_by .= " ORDER BY li.name";
429
+ break;
430
+ default:
431
+ $order_by .= " ORDER BY cl.created_at";
432
+ }
433
+
434
+ // Toggle ascending / descending
435
+ if((empty($sort_str) and empty($sdir_str)) or $sdir_str == 'desc')
436
+ {
437
+ $order_by .= ' DESC';
438
+ $sdir_str = 'desc';
439
+ }
440
+ else
441
+ $sdir_str = 'asc';
442
+
443
+ return array('count_where_clause' => $count_where_clause,
444
+ 'sort_str' => $sort_str,
445
+ 'sdir_str' => $sdir_str,
446
+ 'search_str' => $search_str,
447
+ 'where_clause' => $where_clause,
448
+ 'order_by' => $order_by,
449
+ 'sort_params' => $sort_params,
450
+ 'page_params' => $page_params);
451
+ }
452
+
453
+
454
+ ?>
prli-config.php ADDED
@@ -0,0 +1,130 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ define('PRLI_PLUGIN_NAME',"pretty-link");
3
+ define('PRLI_PATH',WP_PLUGIN_DIR.'/'.PRLI_PLUGIN_NAME);
4
+ define('PRLI_MODELS_PATH',PRLI_PATH.'/classes/models');
5
+ define('PRLI_VIEWS_PATH',PRLI_PATH.'/classes/views');
6
+ //define(PRLI_URL,WP_PLUGIN_URL.'/'.PRLI_PLUGIN_NAME);
7
+ define('PRLI_URL',plugins_url($path = '/'.PRLI_PLUGIN_NAME));
8
+
9
+ require_once(PRLI_MODELS_PATH.'/PrliOptions.php');
10
+
11
+ // For IIS compatibility
12
+ if (!function_exists('fnmatch'))
13
+ {
14
+ function fnmatch($pattern, $string)
15
+ {
16
+ return preg_match("#^".strtr(preg_quote($pattern, '#'), array('\*' => '.*', '\?' => '.'))."$#i", $string);
17
+ }
18
+ }
19
+
20
+ // The number of items per page on a table
21
+ global $page_size;
22
+ $page_size = 10;
23
+
24
+ global $prli_blogurl;
25
+ global $prli_siteurl;
26
+ global $prli_blogname;
27
+ global $prli_blogdescription;
28
+
29
+ $prli_blogurl = ((get_option('home'))?get_option('home'):get_option('siteurl'));
30
+ $prli_siteurl = get_option('siteurl');
31
+ $prli_blogname = get_option('blogname');
32
+ $prli_blogdescription = get_option('blogdescription');
33
+
34
+ /***** SETUP OPTIONS OBJECT *****/
35
+ global $prli_options;
36
+
37
+ $prli_options = get_option('prli_options');
38
+
39
+ // If unserializing didn't work
40
+ if(!is_object($prli_options))
41
+ {
42
+ if($prli_options and is_string($prli_options))
43
+ $prli_options = unserialize($prli_options);
44
+
45
+ // If it still isn't an object then let's create it
46
+ if(!is_object($prli_options))
47
+ $prli_options = new PrliOptions();
48
+
49
+ update_option('prli_options',$prli_options);
50
+ }
51
+
52
+ $prli_options->set_default_options(); // Sets defaults for unset options
53
+
54
+ /***** TODO: Uh... these functions should find a better home somewhere *****/
55
+ function setup_new_vars($groups)
56
+ {
57
+ global $prli_link, $prli_options;
58
+
59
+ $values = array();
60
+ $values['url'] = (($_POST['url'] != null)?$_POST['url']:'');
61
+ $values['slug'] = (($_POST['slug'] != null)?$_POST['slug']:$prli_link->generateValidSlug());
62
+ $values['name'] = htmlspecialchars((($_POST['name'] != null)?stripslashes($_POST['name']):''));
63
+ $values['description'] = htmlspecialchars((($_POST['description'] != null)?stripslashes($_POST['description']):''));
64
+
65
+ $values['track_me'] = (((isset($_POST['track_me']) and $_POST['track_me'] == 'on') or (!isset($_POST['track_me']) and $prli_options->link_track_me == '1'))?'checked="true"':'');
66
+ $values['nofollow'] = (((isset($_POST['nofollow']) and $_POST['nofollow'] == 'on') or (!isset($_POST['nofollow']) and $prli_options->link_nofollow == '1'))?'checked="true"':'');
67
+
68
+ $values['redirect_type'] = array();
69
+ $values['redirect_type']['307'] = (((isset($_POST['redirect_type']) and $_POST['redirect_type'] == '307') or (!isset($_POST['redirect_type']) and $prli_options->link_redirect_type == '307'))?'selected="selected"':'');
70
+ $values['redirect_type']['301'] = (((isset($_POST['redirect_type']) and $_POST['redirect_type'] == '301') or (!isset($_POST['redirect_type']) and $prli_options->link_redirect_type == '301'))?'selected="selected"':'');
71
+ $values['redirect_type']['prettybar'] = (((isset($_POST['redirect_type']) and $_POST['redirect_type'] == 'prettybar') or (!isset($_POST['redirect_type']) and $prli_options->link_redirect_type == 'prettybar'))?'selected="selected"':'');
72
+ $values['redirect_type']['cloak'] = (((isset($_POST['redirect_type']) and $_POST['redirect_type'] == 'cloak') or (!isset($_POST['redirect_type']) and $prli_options->link_redirect_type == 'cloak'))?'selected="selected"':'');
73
+ $values['redirect_type']['pixel'] = (((isset($_POST['redirect_type']) and $_POST['redirect_type'] == 'pixel') or (!isset($_POST['redirect_type']) and $prli_options->link_redirect_type == 'pixel'))?'selected="selected"':'');
74
+
75
+ $values['groups'] = array();
76
+
77
+ if(is_array($groups))
78
+ {
79
+ foreach($groups as $group)
80
+ {
81
+ $values['groups'][] = array( 'id' => $group->id,
82
+ 'value' => (($_POST['group_id'] == $group->id)?' selected="true"':''),
83
+ 'name' => $group->name );
84
+ }
85
+ }
86
+
87
+ $values['param_forwarding'] = array();
88
+ $values['param_forwarding']['off'] = (((isset($_POST['param_forwarding']) and $_POST['param_forwarding'] == 'off') or !isset($_POST['param_forwarding']))?'checked="true"':'');
89
+ $values['param_forwarding']['on'] = ((isset($_POST['param_forwarding']) and $_POST['param_forwarding'] == 'on')?'checked="true"':'');
90
+ $values['param_forwarding']['custom'] = ((isset($_POST['param_forwarding']) and $_POST['param_forwarding'] == 'custom')?'checked="true"':'');
91
+
92
+ return $values;
93
+ }
94
+
95
+ function setup_edit_vars($groups,$record)
96
+ {
97
+ global $prli_link;
98
+
99
+ $values = array();
100
+ $values['url'] = (($_POST['url'] != null and $record == null)?$_POST['url']:$record->url);
101
+ $values['slug'] = (($_POST['slug'] != null and $record == null)?$_POST['slug']:$record->slug);
102
+ $values['name'] = htmlspecialchars(stripslashes((($_POST['name'] != null and $record == null)?$_POST['name']:$record->name)));
103
+ $values['description'] = htmlspecialchars(stripslashes((($_POST['description'] != null and $record == null)?$_POST['description']:$record->description)));
104
+ $values['track_me'] = ((($_POST['track_me'] or $record->track_me) and ($_POST['track_me'] == 'on' or $record->track_me == 1))?'checked="true"':'');
105
+ $values['nofollow'] = ((($_POST['nofollow'] or $record->nofollow) and ($_POST['nofollow'] == 'on' or $record->nofollow == 1))?'checked="true"':'');
106
+
107
+ $values['groups'] = array();
108
+ foreach($groups as $group)
109
+ {
110
+ $values['groups'][] = array( 'id' => $group->id,
111
+ 'value' => ((($_POST['group_id'] == $group->id) or ($record->group_id == $group->id))?' selected="true"':''),
112
+ 'name' => $group->name );
113
+ }
114
+
115
+ $values['param_forwarding'] = array();
116
+ $values['param_forwarding']['off'] = ((!isset($_POST['param_forwarding']) or $record->param_forwarding == 'off')?'checked="true"':'');
117
+ $values['param_forwarding']['on'] = (((isset($_POST['param_forwarding']) and $_POST['param_forwarding'] == 'on') or (isset($record->param_forwarding) and $record->param_forwarding == 'on'))?'checked="true"':'');
118
+ $values['param_forwarding']['custom'] = (((isset($_POST['param_forwarding']) and $_POST['param_forwarding'] == 'custom') or (isset($record->param_forwarding) and $record->param_forwarding == 'custom'))?'checked="true"':'');
119
+ $values['param_struct'] = (($_POST['param_struct'] != null and $record == null)?$_POST['param_struct']:$record->param_struct);
120
+
121
+ $values['redirect_type'] = array();
122
+ $values['redirect_type']['307'] = ((!isset($_POST['redirect_type']) or (isset($_POST['redirect_type']) and $_POST['redirect_type'] == '307') or (isset($record->redirect_type) and $record->redirect_type == '307'))?' selected="selected"':'');
123
+ $values['redirect_type']['301'] = (((isset($_POST['redirect_type']) and $_POST['redirect_type'] == '301') or (isset($record->redirect_type) and $record->redirect_type == '301'))?' selected="selected"':'');
124
+ $values['redirect_type']['prettybar'] = (((isset($_POST['redirect_type']) and $_POST['redirect_type'] == 'prettybar') or (isset($record->redirect_type) and $record->redirect_type == 'prettybar'))?' selected="selected"':'');
125
+ $values['redirect_type']['cloak'] = (((isset($_POST['redirect_type']) and $_POST['redirect_type'] == 'cloak') or (isset($record->redirect_type) and $record->redirect_type == 'cloak'))?' selected="selected"':'');
126
+ $values['redirect_type']['pixel'] = (((isset($_POST['redirect_type']) and $_POST['redirect_type'] == 'pixel') or (isset($record->redirect_type) and $record->redirect_type == 'pixel'))?' selected="selected"':'');
127
+
128
+ return $values;
129
+ }
130
+ ?>
prli-dashboard-widget.php ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ require_once('prli-config.php');
3
+ require_once(PRLI_MODELS_PATH . '/models.inc.php');
4
+
5
+ $message = prli_get_main_message("Add a Pretty Link from your Dashboard:");
6
+
7
+ global $prli_group,$prli_link,$prli_blogurl;
8
+
9
+ $groups = $prli_group->getAll('',' ORDER BY name');
10
+ $values = setup_new_vars($groups);
11
+
12
+ require_once(PRLI_VIEWS_PATH . "/prli-dashboard-widget/widget.php");
13
+ ?>
prli-groups.php ADDED
@@ -0,0 +1,175 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ require_once 'prli-config.php';
3
+ require_once(PRLI_MODELS_PATH . '/models.inc.php');
4
+
5
+ $params = $prli_group->get_params_array();
6
+
7
+ if($params['action'] == 'list')
8
+ {
9
+ $prli_message = "Create a group and use it to organize your Pretty Links.";
10
+ prli_display_groups_list($params, $prli_message);
11
+ }
12
+ else if($params['action'] == 'new')
13
+ {
14
+ $links = $prli_link->getAll('',' ORDER BY li.name');
15
+ require_once 'classes/views/prli-groups/new.php';
16
+ }
17
+ else if($params['action'] == 'create')
18
+ {
19
+ $errors = $prli_group->validate($_POST);
20
+ if( count($errors) > 0 )
21
+ {
22
+ $links = $prli_link->getAll('',' ORDER BY li.name');
23
+ require_once 'classes/views/prli-groups/new.php';
24
+ }
25
+ else
26
+ {
27
+ $insert_id = $prli_group->create( $_POST );
28
+ prli_update_groups($insert_id, $_POST['link']);
29
+ $prli_message = "Your Pretty Link Group was Successfully Created";
30
+ prli_display_groups_list($params, $prli_message, '', 1);
31
+ }
32
+ }
33
+ else if($params['action'] == 'edit')
34
+ {
35
+ $record = $prli_group->getOne( $params['id'] );
36
+ $id = $params['id'];
37
+ $links = $prli_link->getAll('',' ORDER BY li.name');
38
+ require_once 'classes/views/prli-groups/edit.php';
39
+ }
40
+ else if($params['action'] == 'update')
41
+ {
42
+ $errors = $prli_group->validate($_POST);
43
+ $id = $_POST['id'];
44
+ if( count($errors) > 0 )
45
+ {
46
+ $links = $prli_link->getAll('',' ORDER BY li.name');
47
+ require_once 'classes/views/prli-groups/edit.php';
48
+ }
49
+ else
50
+ {
51
+ $record = $prli_group->update( $_POST['id'], $_POST );
52
+ prli_update_groups($_POST['id'],$_POST['link']);
53
+ $prli_message = "Your Pretty Link Group was Successfully Updated";
54
+ prli_display_groups_list($params, $prli_message, '', 1);
55
+ }
56
+ }
57
+ else if($params['action'] == 'destroy')
58
+ {
59
+ $prli_group->destroy( $params['id'] );
60
+ $prli_message = "Your Pretty Link Group was Successfully Deleted";
61
+ prli_display_groups_list($params, $prli_message, '', 1);
62
+ }
63
+
64
+ function prli_update_groups($group_id, $values)
65
+ {
66
+ global $prli_link;
67
+
68
+ $links = $prli_link->getAll();
69
+
70
+ foreach($links as $link)
71
+ {
72
+ // Only update a group if the user's pulling it from another group
73
+ if($link->group_id != $group_id and empty($values[$link->id]))
74
+ continue;
75
+
76
+ $prli_link->update_group($link->id, $values[$link->id], $group_id);
77
+ }
78
+ }
79
+
80
+ // Helpers
81
+ function prli_display_groups_list($params, $prli_message, $page_params_ov = false, $current_page_ov = false)
82
+ {
83
+ global $wpdb, $prli_utils, $prli_group, $prli_click, $prli_link, $page_size;
84
+
85
+ $controller_file = basename(__FILE__);
86
+
87
+ $group_vars = prli_get_group_sort_vars($params);
88
+
89
+ if($current_page_ov)
90
+ $current_page = $current_page_ov;
91
+ else
92
+ $current_page = $params['paged'];
93
+
94
+ if($page_params_ov)
95
+ $page_params = $page_params_ov;
96
+ else
97
+ $page_params = $group_vars['page_params'];
98
+
99
+ $sort_str = $group_vars['sort_str'];
100
+ $sdir_str = $group_vars['sdir_str'];
101
+ $search_str = $group_vars['search_str'];
102
+
103
+ $record_count = $prli_group->getRecordCount($group_vars['where_clause']);
104
+ $page_count = $prli_group->getPageCount($page_size,$group_vars['where_clause']);
105
+ $groups = $prli_group->getPage($current_page,$page_size,$group_vars['where_clause'],$group_vars['order_by']);
106
+ $page_last_record = $prli_utils->getLastRecordNum($record_count,$current_page,$page_size);
107
+ $page_first_record = $prli_utils->getFirstRecordNum($record_count,$current_page,$page_size);
108
+
109
+ require_once 'classes/views/prli-groups/list.php';
110
+ }
111
+
112
+ function prli_get_group_sort_vars($params,$where_clause = '')
113
+ {
114
+ $order_by = '';
115
+ $page_params = '';
116
+
117
+ // These will have to work with both get and post
118
+ $sort_str = $params['sort'];
119
+ $sdir_str = $params['sdir'];
120
+ $search_str = $params['search'];
121
+
122
+ // Insert search string
123
+ if(!empty($search_str))
124
+ {
125
+ $search_params = explode(" ", $search_str);
126
+
127
+ foreach($search_params as $search_param)
128
+ {
129
+ if(!empty($where_clause))
130
+ $where_clause .= " AND";
131
+
132
+ $where_clause .= " (name like '%$search_param%' OR description like '%$search_param%' OR created_at like '%$search_param%')";
133
+ }
134
+
135
+ $page_params .="&search=$search_str";
136
+ }
137
+
138
+ // make sure page params stay correct
139
+ if(!empty($sort_str))
140
+ $page_params .="&sort=$sort_str";
141
+
142
+ if(!empty($sdir_str))
143
+ $page_params .= "&sdir=$sdir_str";
144
+
145
+ // Add order by clause
146
+ switch($sort_str)
147
+ {
148
+ case "name":
149
+ case "link_count":
150
+ case "click_count":
151
+ case "description":
152
+ $order_by .= " ORDER BY $sort_str";
153
+ break;
154
+ default:
155
+ $order_by .= " ORDER BY created_at";
156
+ }
157
+
158
+ // Toggle ascending / descending
159
+ if((empty($sort_str) and empty($sdir_str)) or $sdir_str == 'desc')
160
+ {
161
+ $order_by .= ' DESC';
162
+ $sdir_str = 'desc';
163
+ }
164
+ else
165
+ $sdir_str = 'asc';
166
+
167
+ return array('order_by' => $order_by,
168
+ 'sort_str' => $sort_str,
169
+ 'sdir_str' => $sdir_str,
170
+ 'search_str' => $search_str,
171
+ 'where_clause' => $where_clause,
172
+ 'page_params' => $page_params);
173
+ }
174
+
175
+ ?>
prli-image-lookups.php ADDED
@@ -0,0 +1,136 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $browser_images = array(
3
+ "Akregator" => "akregator.png",
4
+ "Amiga" => "amigavoyager.png",
5
+ "Avant Browser" => "avant.png",
6
+ "Chimera" => "chimera.png",
7
+ "Chrome" => "chrome.png",
8
+ "Dillo" => "dillo.png",
9
+ "eCatch" => "ecatch.png",
10
+ "Enigma Browser" => "epiphany.png",
11
+ "FeedDemon" => "feeddemon.png",
12
+ "Firefox" => "firefox.png",
13
+ "Firefox Mobile" => "firefox.png",
14
+ "FlashGet" => "flashget.png",
15
+ "FreshDownload" => "freshdownload.png",
16
+ "FrontPage" => "frontpage.png",
17
+ "Galeon" => "galeon.png",
18
+ "GetRight" => "getright.png",
19
+ "GetRightPro" => "getright.png",
20
+ "gnome-vfs" => "gnome.png",
21
+ "GoZilla" => "gozilla.png",
22
+ "HTTrack" => "httrack.png",
23
+ "IBrowse" => "ibrowse.png",
24
+ "iCab" => "icab.png",
25
+ "K-Meleon" => "kmeleon.png",
26
+ "Konqueror" => "konqueror.png",
27
+ "LeechGet" => "leechget.png",
28
+ "Lynx" => "lynx.png",
29
+ "Media Players" => "mediaplayer.png",
30
+ "Motorola Internet Browser" => "motorola.png",
31
+ "Mozilla" => "mozilla.png",
32
+ "MPlayer" => "mplayer.png",
33
+ "IE" => "msie.png",
34
+ "IE Offline Browser" => "msie.png",
35
+ "IECheck" => "msie.png",
36
+ "IEMobile" => "msie.png",
37
+ "Mosaic" => "ncsa_mosaic.png",
38
+ "NetNewsWire" => "netnewswire.png",
39
+ "Netscape" => "netscape.png",
40
+ "NewsFire" => "newsfire.png",
41
+ "NewsGator" => "newsgator.png",
42
+ "Newz Crawler" => "newzcrawler.png",
43
+ "Nokia" => "nokia.png",
44
+ "OmniWeb" => "omniweb.png",
45
+ "Opera" => "opera.png",
46
+ "Opera Mini" => "opera.png",
47
+ "Opera Mobi" => "opera.png",
48
+ "Phoenix" => "phoenix.png",
49
+ "RealDownload" => "real.png",
50
+ "RealPlayer" => "real.png",
51
+ "RSS Reader Panel" => "rssreader.png",
52
+ "Safari" => "safari.png",
53
+ "Safari RSS" => "safari.png",
54
+ "SafariBookmarkChecker" => "safari.png",
55
+ "SharpReader" => "sharpreader.png",
56
+ "Sony PS2" => "sony.png",
57
+ "SonyEricsson" => "sony.png",
58
+ "Teleport" => "teleport.png",
59
+ "W3C Line Mode" => "w3c.png",
60
+ "W3C Link Checker" => "w3c.png",
61
+ "W3C Validator" => "w3c.png",
62
+ "W3CRobot" => "w3c.png",
63
+ "W3C-WebCon" => "w3c.png",
64
+ "WebCopier" => "webcopier.png",
65
+ "WebReaper" => "webreaper.png",
66
+ "WebTV/MSNTV" => "webtv.png",
67
+ "WebZIP" => "webzip.png",
68
+ "Wizz" => "wizz.png"
69
+ );
70
+
71
+ $os_images = array(
72
+ "AIX" => "aix.png",
73
+ "Amiga" => "amigaos.png",
74
+ "BeOS" => "beos.png",
75
+ "Darwin" => "macosx.png",
76
+ "Debian" => "debian.png",
77
+ "Digital Unix" => "digital.png",
78
+ "FreeBSD" => "freebsd.png",
79
+ "HP-UX" => "hpux.png",
80
+ "iPhone OSX" => "macosx.png",
81
+ "IRIX" => "irix.png",
82
+ "IRIX64" => "irix.png",
83
+ "JAVA" => "java.png",
84
+ "Linux" => "linux.png",
85
+ "Mac68K" => "mac.png",
86
+ "MacOSX" => "macosx.png",
87
+ "MacPPC" => "macintosh.png",
88
+ "NetBSD" => "netbsd.png",
89
+ "OpenBSD" => "openbsd.png",
90
+ "OS/2" => "os2.png",
91
+ "RISC OS" => "riscos.png",
92
+ "Solaris" => "sunos.png",
93
+ "SunOS" => "sunos.png",
94
+ "SymbianOS" => "symbian.png",
95
+ "Unix" => "unix.png",
96
+ "WebTV" => "webtv.png",
97
+ "Win16" => "win16.png",
98
+ "Win2000" => "win2000.png",
99
+ "Win2003" => "win2003.png",
100
+ "Win31" => "win.png",
101
+ "Win32" => "win.png",
102
+ "Win7" => "win.png",
103
+ "Win95" => "win95.png",
104
+ "Win98" => "win98.png",
105
+ "WinCE" => "wince.png",
106
+ "WinME" => "winme.png",
107
+ "WinNT" => "winnt.png",
108
+ "WinVista" => "win.png",
109
+ "WinXP" => "winxp.png"
110
+ );
111
+
112
+ function prli_browser_image($browser)
113
+ {
114
+ global $browser_images;
115
+
116
+ $image = $browser_images[$browser];
117
+
118
+ if(empty($image))
119
+ $image = "unknown.png";
120
+
121
+ return $image;
122
+ }
123
+
124
+ function prli_os_image($os)
125
+ {
126
+ global $os_images;
127
+
128
+ $image = $os_images[$os];
129
+
130
+ if(empty($image))
131
+ $image = "unknown.png";
132
+
133
+ return $image;
134
+ }
135
+
136
+ ?>
prli-links.php ADDED
@@ -0,0 +1,236 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ require_once 'prli-config.php';
3
+ require_once(PRLI_MODELS_PATH . '/models.inc.php');
4
+
5
+ $params = $prli_link->get_params_array();
6
+
7
+ if($params['action'] == 'list')
8
+ {
9
+ if(empty($params['group']))
10
+ $prli_message = prli_get_main_message();
11
+ else
12
+ $prli_message = "Links in Group: " . $wpdb->get_var("SELECT name FROM " . $prli_group->table_name . " WHERE id=".$params['group']);
13
+ if($params['regenerate'] == 'true')
14
+ {
15
+ $wp_rewrite->flush_rules();
16
+ $prli_message = "Your Pretty Links were Successfully Regenerated";
17
+ }
18
+
19
+ prli_display_links_list($params, $prli_message);
20
+ }
21
+ else if($params['action'] == 'list-form')
22
+ {
23
+ if(apply_filters('prli-link-list-process-form', true))
24
+ prli_display_links_list($params, prli_get_main_message());
25
+ }
26
+ else if($params['action'] == 'quick-create')
27
+ {
28
+ $errors = $prli_link->validate($_POST);
29
+
30
+ if( count($errors) > 0 )
31
+ {
32
+ $groups = $prli_group->getAll('',' ORDER BY name');
33
+ $values = setup_new_vars($groups);
34
+ require_once 'classes/views/prli-links/new.php';
35
+ }
36
+ else
37
+ {
38
+ $_POST['param_forwarding'] = 'off';
39
+ $_POST['param_struct'] = '';
40
+ $_POST['name'] = '';
41
+ $_POST['description'] = '';
42
+ if( $prli_options->link_track_me )
43
+ $_POST['track_me'] = 'on';
44
+ if( $prli_options->link_nofollow )
45
+ $_POST['nofollow'] = 'on';
46
+
47
+ $_POST['redirect_type'] = $prli_options->link_redirect_type;
48
+
49
+ $record = $prli_link->create( $_POST );
50
+
51
+ $prli_message = "Your Pretty Link was Successfully Created";
52
+ prli_display_links_list($params, $prli_message, '', 1);
53
+ }
54
+ }
55
+ else if($params['action'] == 'create')
56
+ {
57
+ $errors = $prli_link->validate($_POST);
58
+
59
+ $errors = apply_filters( "prli_validate_link", $errors );
60
+
61
+ if( count($errors) > 0 )
62
+ {
63
+ $groups = $prli_group->getAll('',' ORDER BY name');
64
+ $values = setup_new_vars($groups);
65
+ require_once 'classes/views/prli-links/new.php';
66
+ }
67
+ else
68
+ {
69
+ $record = $prli_link->create( $_POST );
70
+
71
+ do_action( "prli_update_link", $record );
72
+
73
+ $prli_message = "Your Pretty Link was Successfully Created";
74
+ prli_display_links_list($params, $prli_message, '', 1);
75
+ }
76
+ }
77
+ else if($params['action'] == 'edit')
78
+ {
79
+ $groups = $prli_group->getAll('',' ORDER BY name');
80
+
81
+ $record = $prli_link->getOne( $params['id'] );
82
+ $values = setup_edit_vars($groups,$record);
83
+ $id = $params['id'];
84
+ require_once 'classes/views/prli-links/edit.php';
85
+ }
86
+ else if($params['action'] == 'bulk-update')
87
+ {
88
+ if(apply_filters('prli-bulk-link-update', true))
89
+ {
90
+ $prli_message = "Your Pretty Links were Successfully Updated";
91
+ prli_display_links_list($params, $prli_message, '', 1);
92
+ }
93
+ }
94
+ else if($params['action'] == 'update')
95
+ {
96
+ $errors = $prli_link->validate($_POST);
97
+ $id = $_POST['id'];
98
+
99
+ $errors = apply_filters( "prli_validate_link", $errors );
100
+
101
+ if( count($errors) > 0 )
102
+ {
103
+ $groups = $prli_group->getAll('',' ORDER BY name');
104
+ $record = $prli_link->getOne( $params['id'] );
105
+ $values = setup_edit_vars($groups,$record);
106
+ require_once 'classes/views/prli-links/edit.php';
107
+ }
108
+ else
109
+ {
110
+ $record = $prli_link->update( $_POST['id'], $_POST );
111
+
112
+ do_action( "prli_update_link", $id );
113
+
114
+ $prli_message = "Your Pretty Link was Successfully Updated";
115
+ prli_display_links_list($params, $prli_message, '', 1);
116
+ }
117
+ }
118
+ else if($params['action'] == 'reset')
119
+ {
120
+ $prli_link->reset( $params['id'] );
121
+ $prli_message = "Your Pretty Link was Successfully Reset";
122
+ prli_display_links_list($params, $prli_message, '', 1);
123
+ }
124
+ else if($params['action'] == 'destroy')
125
+ {
126
+ $prli_link->destroy( $params['id'] );
127
+ $prli_message = "Your Pretty Link was Successfully Destroyed";
128
+ prli_display_links_list($params, $prli_message, '', 1);
129
+ }
130
+
131
+ // Helpers
132
+ function prli_display_links_list($params, $prli_message, $page_params_ov = false, $current_page_ov = false)
133
+ {
134
+ global $wpdb, $prli_utils, $prli_click, $prli_group, $prli_link, $page_size, $prli_options;
135
+
136
+ $controller_file = basename(__FILE__);
137
+
138
+ $where_clause = '';
139
+ $page_params = '';
140
+
141
+ if(!empty($params['group']))
142
+ {
143
+ $where_clause = " group_id=" . $params['group'];
144
+ $page_params = "&group=" . $params['group'];
145
+ }
146
+
147
+ $link_vars = prli_get_link_sort_vars($params, $where_clause);
148
+
149
+ if($current_page_ov)
150
+ $current_page = $current_page_ov;
151
+ else
152
+ $current_page = $params['paged'];
153
+
154
+ if($page_params_ov)
155
+ $page_params .= $page_params_ov;
156
+ else
157
+ $page_params .= $link_vars['page_params'];
158
+
159
+ $sort_str = $link_vars['sort_str'];
160
+ $sdir_str = $link_vars['sdir_str'];
161
+ $search_str = $link_vars['search_str'];
162
+
163
+ $record_count = $prli_link->getRecordCount($link_vars['where_clause']);
164
+ $page_count = $prli_link->getPageCount($page_size,$link_vars['where_clause']);
165
+ $links = $prli_link->getPage($current_page,$page_size,$link_vars['where_clause'],$link_vars['order_by']);
166
+ $page_last_record = $prli_utils->getLastRecordNum($record_count,$current_page,$page_size);
167
+ $page_first_record = $prli_utils->getFirstRecordNum($record_count,$current_page,$page_size);
168
+
169
+ require_once 'classes/views/prli-links/list.php';
170
+ }
171
+
172
+ function prli_get_link_sort_vars($params,$where_clause = '')
173
+ {
174
+ $order_by = '';
175
+ $page_params = '';
176
+
177
+ // These will have to work with both get and post
178
+ $sort_str = $params['sort'];
179
+ $sdir_str = $params['sdir'];
180
+ $search_str = $params['search'];
181
+
182
+ // Insert search string
183
+ if(!empty($search_str))
184
+ {
185
+ $search_params = explode(" ", $search_str);
186
+
187
+ foreach($search_params as $search_param)
188
+ {
189
+ if(!empty($where_clause))
190
+ $where_clause .= " AND";
191
+
192
+ $where_clause .= " (li.name like '%$search_param%' OR li.slug like '%$search_param%' OR li.url like '%$search_param%' OR li.created_at like '%$search_param%')";
193
+ }
194
+
195
+ $page_params .="&search=$search_str";
196
+ }
197
+
198
+ // make sure page params stay correct
199
+ if(!empty($sort_str))
200
+ $page_params .="&sort=$sort_str";
201
+
202
+ if(!empty($sdir_str))
203
+ $page_params .= "&sdir=$sdir_str";
204
+
205
+ // Add order by clause
206
+ switch($sort_str)
207
+ {
208
+ case "name":
209
+ case "clicks":
210
+ case "group_name":
211
+ case "slug":
212
+ $order_by .= " ORDER BY $sort_str";
213
+ break;
214
+ default:
215
+ $order_by .= " ORDER BY created_at";
216
+ }
217
+
218
+ // Toggle ascending / descending
219
+ if((empty($sort_str) and empty($sdir_str)) or $sdir_str == 'desc')
220
+ {
221
+ $order_by .= ' DESC';
222
+ $sdir_str = 'desc';
223
+ }
224
+ else
225
+ $sdir_str = 'asc';
226
+
227
+ return array('order_by' => $order_by,
228
+ 'sort_str' => $sort_str,
229
+ 'sdir_str' => $sdir_str,
230
+ 'search_str' => $search_str,
231
+ 'where_clause' => $where_clause,
232
+ 'page_params' => $page_params);
233
+ }
234
+
235
+
236
+ ?>
prli-main.php ADDED
@@ -0,0 +1,362 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ add_action('admin_menu', 'prli_menu');
3
+
4
+ function prli_menu()
5
+ {
6
+ add_menu_page('Pretty Link', 'Pretty Link', 8, PRLI_PATH.'/prli-links.php','',PRLI_URL.'/images/pretty-link-small.png');
7
+ add_submenu_page(PRLI_PATH.'/prli-links.php', 'Pretty Link | Add New Link', 'Add New Link', 8, PRLI_PATH.'/prli-add-link.php');
8
+ add_submenu_page(PRLI_PATH.'/prli-links.php', 'Pretty Link | Groups', 'Groups', 8, PRLI_PATH.'/prli-groups.php');
9
+ add_submenu_page(PRLI_PATH.'/prli-links.php', 'Pretty Link | Hits', 'Hits', 8, PRLI_PATH.'/prli-clicks.php');
10
+ add_submenu_page(PRLI_PATH.'/prli-links.php', 'Pretty Link | Tools', 'Tools', 8, PRLI_PATH.'/prli-tools.php');
11
+ add_submenu_page(PRLI_PATH.'/prli-links.php', 'Pretty Link | Options', 'Options', 8, PRLI_PATH.'/prli-options.php');
12
+ add_submenu_page(PRLI_PATH.'/prli-links.php', 'Pretty Link | Pretty Link Pro', 'Pretty Link Pro', 8, PRLI_PATH.'/prli-pro-settings.php');
13
+
14
+ add_action('admin_head-pretty-link/prli-clicks.php', 'prli_reports_admin_header');
15
+ add_action('admin_head-pretty-link/prli-links.php', 'prli_links_admin_header');
16
+ add_action('admin_head-pretty-link/prli-add-link.php', 'prli_links_admin_header');
17
+ add_action('admin_head-pretty-link/prli-groups.php', 'prli_groups_admin_header');
18
+ add_action('admin_head-pretty-link/prli-options.php', 'prli_options_admin_header');
19
+ }
20
+
21
+ /* Add header to prli-options page */
22
+ function prli_options_admin_header()
23
+ {
24
+ require_once 'classes/views/prli-options/head.php';
25
+ }
26
+
27
+ /* Add header to prli-clicks page */
28
+ function prli_reports_admin_header()
29
+ {
30
+ // Don't show this sheesh if we're displaying the vuid or ip grouping
31
+ if(!isset($_GET['ip']) and !isset($_GET['vuid']))
32
+ {
33
+ global $prli_siteurl, $prli_click, $prli_utils;
34
+
35
+ $params = $prli_click->get_params_array();
36
+ $first_click = $prli_utils->getFirstClickDate();
37
+
38
+ // Adjust for the first click
39
+ if(isset($first_click))
40
+ {
41
+ $min_date = (int)((time()-$first_click)/60/60/24);
42
+
43
+ if($min_date < 30)
44
+ $start_timestamp = $prli_utils->get_start_date($params,$min_date);
45
+ else
46
+ $start_timestamp = $prli_utils->get_start_date($params,30);
47
+
48
+ $end_timestamp = $prli_utils->get_end_date($params);
49
+ }
50
+ else
51
+ {
52
+ $min_date = 0;
53
+ $start_timestamp = time();
54
+ $end_timestamp = time();
55
+ }
56
+
57
+ $link_id = $params['l'];
58
+ $type = $params['type'];
59
+ $group = $params['group'];
60
+
61
+ require_once 'classes/views/prli-clicks/head.php';
62
+ }
63
+ }
64
+
65
+ /* Add header to the prli-links page */
66
+ function prli_links_admin_header()
67
+ {
68
+ global $prli_siteurl;
69
+ require_once 'classes/views/prli-links/head.php';
70
+ }
71
+
72
+ /* Add header to the prli-links page */
73
+ function prli_groups_admin_header()
74
+ {
75
+ global $prli_siteurl;
76
+ require_once 'classes/views/prli-groups/head.php';
77
+ }
78
+
79
+ /********* ADD REDIRECTS FOR STANDARD MODE ***********/
80
+ function prli_redirect()
81
+ {
82
+ global $prli_link;
83
+
84
+ // Remove the trailing slash if there is one
85
+ $request_uri = preg_replace('#/$#','',urldecode($_SERVER['REQUEST_URI']));
86
+
87
+ if( $link_info =& $prli_link->is_pretty_link($request_uri,false) )
88
+ prli_link_redirect_from_slug( $link_info['pretty_link_found']->slug, $link_info['pretty_link_params'] );
89
+ }
90
+
91
+ // For use with the prli_redirect function
92
+ function prli_link_redirect_from_slug($slug,$param_str)
93
+ {
94
+ global $prli_link, $prli_utils;
95
+
96
+ $link =& $prli_link->getOneFromSlug(urldecode($slug));
97
+
98
+ if(isset($link->slug) and !empty($link->slug))
99
+ {
100
+ $custom_get = $_GET;
101
+
102
+ if(isset($link->param_forwarding) and $link->param_forwarding == 'custom')
103
+ $custom_get = $prli_utils->decode_custom_param_str($link->param_struct, $param_str);
104
+
105
+ $prli_utils->track_link($link->slug,$custom_get);
106
+ exit;
107
+ }
108
+ }
109
+
110
+ add_action('init', 'prli_redirect'); //Redirect
111
+ //add_action('template_redirect', 'prli_redirect',0); //Redirect
112
+
113
+ function prli_route_scripts()
114
+ {
115
+ if( ( $_GET['action'] == 'prli_download_csv_hit_report' ) or ( PrliUtils::rewriting_on() and preg_match( "#^/prli_download_csv_hit_report#", $_SERVER['REQUEST_URI'] ) ) )
116
+ {
117
+ global $wpdb, $prli_click, $prli_group, $prli_link;
118
+ $_GET['action'] = "download_csv_hit_report";
119
+ require_once( PRLI_PATH . "/prli-clicks.php" );
120
+ exit;
121
+ }
122
+ else if( ( $_GET['action'] == 'prli_download_csv_history_report') or ( PrliUtils::rewriting_on() and preg_match( "#^/prli_download_csv_history_report#", $_SERVER['REQUEST_URI'] ) ) )
123
+ {
124
+ global $wpdb, $prli_click, $prli_group, $prli_link;
125
+ $_GET['action'] = "download_csv_history_report";
126
+ require_once( PRLI_PATH . "/prli-clicks.php" );
127
+ exit;
128
+ }
129
+ else if( ( $_GET['action'] == 'prli_download_csv_origin_report') or ( PrliUtils::rewriting_on() and preg_match( "#^/prli_download_csv_origin_report#", $_SERVER['REQUEST_URI'] ) ) )
130
+ {
131
+ global $wpdb, $prli_click, $prli_group, $prli_link;
132
+ $_GET['action'] = "download_csv_origin_report";
133
+ require_once( PRLI_PATH . "/prli-clicks.php" );
134
+ exit;
135
+ }
136
+ }
137
+
138
+ add_action('init', 'prli_route_scripts');
139
+
140
+ /********* DASHBOARD WIDGET ***********/
141
+ function prli_dashboard_widget_function() {
142
+ require_once 'prli-dashboard-widget.php';
143
+ }
144
+
145
+ // Create the function use in the action hook
146
+ function prli_add_dashboard_widgets() {
147
+ global $current_user;
148
+ get_currentuserinfo();
149
+ if($current_user->user_level >= 8)
150
+ {
151
+ wp_add_dashboard_widget('prli_dashboard_widget', 'Pretty Link Quick Add', 'prli_dashboard_widget_function');
152
+
153
+ // Globalize the metaboxes array, this holds all the widgets for wp-admin
154
+ global $wp_meta_boxes;
155
+
156
+ // Get the regular dashboard widgets array
157
+ $normal_dashboard = $wp_meta_boxes['dashboard']['normal']['core'];
158
+
159
+ // Backup and delete our new dashbaord widget from the end of the array
160
+ $prli_widget_backup = array('prli_dashboard_widget' => $normal_dashboard['prli_dashboard_widget']);
161
+ unset($normal_dashboard['prli_dashboard_widget']);
162
+
163
+ // Merge the two arrays together so our widget is at the beginning
164
+ $i = 0;
165
+ foreach($normal_dashboard as $key => $value)
166
+ {
167
+ if($i == 1 or (count($normal_dashboard) <= 1 and $i == count($normal_dashboard) - 1))
168
+ $sorted_dashboard['prli_dashboard_widget'] = $prli_widget_backup['prli_dashboard_widget'];
169
+
170
+ $sorted_dashboard[$key] = $normal_dashboard[$key];
171
+ $i++;
172
+ }
173
+
174
+ // Save the sorted array back into the original metaboxes
175
+ $wp_meta_boxes['dashboard']['normal']['core'] = $sorted_dashboard;
176
+ }
177
+ }
178
+
179
+ // Hook into the 'wp_dashboard_setup' action to register our other functions
180
+ add_action('wp_dashboard_setup', 'prli_add_dashboard_widgets' );
181
+
182
+ /********* EXPORT PRETTY LINK API VIA XML-RPC ***********/
183
+ function prli_export_api($api_methods)
184
+ {
185
+ $api_methods['prli.create_pretty_link'] = 'prli_xmlrpc_create_pretty_link';
186
+ $api_methods['prli.get_all_groups'] = 'prli_xmlrpc_get_all_groups';
187
+ $api_methods['prli.get_all_links'] = 'prli_xmlrpc_get_all_links';
188
+ $api_methods['prli.get_link'] = 'prli_xmlrpc_get_link';
189
+ $api_methods['prli.get_link_from_slug'] = 'prli_xmlrpc_get_link_from_slug';
190
+ $api_methods['prli.get_pretty_link_url'] = 'prli_xmlrpc_get_pretty_link_url';
191
+ $api_methods['prli.api_version'] = 'prli_xmlrpc_api_version';
192
+
193
+ return $api_methods;
194
+ }
195
+
196
+ add_filter('xmlrpc_methods', 'prli_export_api');
197
+
198
+ /********* INSTALL PLUGIN ***********/
199
+ function prli_install()
200
+ {
201
+ global $wpdb, $prli_utils, $prli_update;
202
+ $db_version = 10; // this is the version of the database we're moving to
203
+ $old_db_version = get_option('prli_db_version');
204
+
205
+ $groups_table = $wpdb->prefix . "prli_groups";
206
+ $clicks_table = $wpdb->prefix . "prli_clicks";
207
+ $pretty_links_table = $wpdb->prefix . "prli_links";
208
+ $link_metas_table = $wpdb->prefix . "prli_link_metas";
209
+
210
+ $charset_collate = '';
211
+ if( $wpdb->has_cap( 'collation' ) )
212
+ {
213
+ if( !empty($wpdb->charset) )
214
+ $charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
215
+ if( !empty($wpdb->collate) )
216
+ $charset_collate .= " COLLATE $wpdb->collate";
217
+ }
218
+
219
+ if($db_version != $old_db_version)
220
+ {
221
+ $prli_utils->migrate_before_db_upgrade();
222
+
223
+ require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
224
+
225
+ /* Create/Upgrade Clicks (Hits) Table */
226
+ $sql = "CREATE TABLE " . $clicks_table . " (
227
+ id int(11) NOT NULL auto_increment,
228
+ ip varchar(255) default NULL,
229
+ browser varchar(255) default NULL,
230
+ btype varchar(255) default NULL,
231
+ bversion varchar(255) default NULL,
232
+ os varchar(255) default NULL,
233
+ referer varchar(255) default NULL,
234
+ host varchar(255) default NULL,
235
+ uri varchar(255) default NULL,
236
+ robot tinyint default 0,
237
+ first_click tinyint default 0,
238
+ created_at datetime NOT NULL,
239
+ link_id int(11) default NULL,
240
+ vuid varchar(25) default NULL,
241
+ PRIMARY KEY (id),
242
+ KEY link_id (link_id),
243
+ KEY vuid (vuid)".
244
+ // We won't worry about this constraint for now.
245
+ //CONSTRAINT ".$clicks_table."_ibfk_1 FOREIGN KEY (link_id) REFERENCES $pretty_links_table (id)
246
+ ") {$charset_collate};";
247
+
248
+ dbDelta($sql);
249
+
250
+ /* Create/Upgrade Pretty Links Table */
251
+ $sql = "CREATE TABLE " . $pretty_links_table . " (
252
+ id int(11) NOT NULL auto_increment,
253
+ name varchar(255) default NULL,
254
+ description text default NULL,
255
+ url text default NULL,
256
+ slug varchar(255) default NULL,
257
+ nofollow tinyint(1) default 0,
258
+ track_me tinyint(1) default 1,
259
+ param_forwarding varchar(255) default NULL,
260
+ param_struct varchar(255) default NULL,
261
+ redirect_type varchar(255) default '307',
262
+ created_at datetime NOT NULL,
263
+ group_id int(11) default NULL,
264
+ PRIMARY KEY (id),
265
+ KEY group_id (group_id),
266
+ KEY slug (slug)
267
+ ) {$charset_collate};";
268
+
269
+ dbDelta($sql);
270
+
271
+ /* Create/Upgrade Groups Table */
272
+ $sql = "CREATE TABLE " . $groups_table . " (
273
+ id int(11) NOT NULL auto_increment,
274
+ name varchar(255) default NULL,
275
+ description text default NULL,
276
+ cmon_g varchar(255) default NULL,
277
+ created_at datetime NOT NULL,
278
+ PRIMARY KEY (id)
279
+ ) {$charset_collate};";
280
+
281
+ dbDelta($sql);
282
+
283
+ /* Create/Upgrade Groups Table */
284
+ $sql = "CREATE TABLE {$link_metas_table} (
285
+ id int(11) NOT NULL auto_increment,
286
+ meta_key varchar(255) default NULL,
287
+ meta_value longtext default NULL,
288
+ link_id int(11) NOT NULL,
289
+ created_at datetime NOT NULL,
290
+ PRIMARY KEY (id),
291
+ KEY link_id (link_id)
292
+ ) {$charset_collate};";
293
+
294
+ dbDelta($sql);
295
+
296
+ $prli_utils->migrate_after_db_upgrade();
297
+ }
298
+
299
+ // Install Pro DB if this user is authorized
300
+ if( $prli_update->pro_is_authorized() )
301
+ $prli_utils->install_pro_db();
302
+
303
+ // If there are any post metas with a post_id of 0 get rid of them...
304
+ $prli_utils->clear_unknown_post_metas();
305
+
306
+ /***** SAVE OPTIONS *****/
307
+ $prli_options = get_option('prli_options');
308
+
309
+ // If unserializing didn't work
310
+ if(!$prli_options)
311
+ $prli_options = new PrliOptions();
312
+ else
313
+ $prli_options->set_default_options(); // Sets defaults for unset options
314
+
315
+ update_option('prli_options',$prli_options);
316
+
317
+ /***** SAVE DB VERSION *****/
318
+ update_option('prli_db_version',$db_version);
319
+ }
320
+
321
+ // Ensure this gets called on first install
322
+ register_activation_hook(PRLI_PATH."/pretty-link.php",'prli_install');
323
+
324
+ add_action('after_plugin_row', 'prli_pro_action_needed');
325
+ add_action('admin_notices', 'prli_pro_get_started_headline');
326
+
327
+ function prli_pro_action_needed( $plugin )
328
+ {
329
+ global $prli_update;
330
+
331
+ if( $plugin == 'pretty-link/pretty-link.php' and
332
+ $prli_update->pro_is_authorized() and
333
+ !$prli_update->pro_is_installed() )
334
+ {
335
+ $prli_update->queue_update(true);
336
+ $inst_install_url = wp_nonce_url('update.php?action=upgrade-plugin&plugin=' . $plugin, 'upgrade-plugin_' . $plugin);
337
+ ?>
338
+ <td colspan="3" class="plugin-update"><div class="update-message" style="-moz-border-radius-bottomleft:5px; -moz-border-radius-bottomright:5px; -moz-border-radius-topleft:5px; -moz-border-radius-topright:5px; border-style:solid; border-width:1px; margin:5px; background-color:#FFEBE8; border-color:#CC0000; padding:3px 5px;"><?php printf(__('Your Pretty Link Pro installation isn\'t quite complete yet.<br/>%1$sAutomatically Upgrade to Enable Pretty Link Pro%2$s', 'pretty-link'), '<a href="'.$inst_install_url.'">', '</a>'); ?></div></td>
339
+ <?php
340
+ }
341
+ }
342
+
343
+ function prli_pro_get_started_headline()
344
+ {
345
+ global $prli_update;
346
+
347
+ // Don't display this error as we're upgrading the thing... cmon
348
+ if(isset($_GET['action']) and $_GET['action'] == 'upgrade-plugin')
349
+ return;
350
+
351
+ if( $prli_update->pro_is_authorized() and
352
+ !$prli_update->pro_is_installed())
353
+ {
354
+ $prli_update->queue_update(true);
355
+ $inst_install_url = wp_nonce_url('update.php?action=upgrade-plugin&plugin=' . $prli_update->plugin_name, 'upgrade-plugin_' . $prli_update->plugin_name);
356
+ ?>
357
+ <div class="error" style="padding-top: 5px; padding-bottom: 5px;"><?php printf(__('Your Pretty Link Pro installation isn\'t quite complete yet.<br/>%1$sAutomatically Upgrade to Enable Pretty Link Pro%2$s', 'pretty-link'), '<a href="'.$inst_install_url.'">','</a>'); ?></div>
358
+ <?php
359
+ }
360
+ }
361
+
362
+ ?>
prli-options.php ADDED
@@ -0,0 +1,157 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ require_once 'prli-config.php';
3
+ require_once(PRLI_MODELS_PATH . '/models.inc.php');
4
+
5
+ $errors = array();
6
+
7
+ // variables for the field and option names
8
+ $prli_exclude_ips = 'prli_exclude_ips';
9
+ $whitelist_ips = 'prli_whitelist_ips';
10
+ $filter_robots = 'prli_filter_robots';
11
+ $prettybar_image_url = 'prli_prettybar_image_url';
12
+ $prettybar_background_image_url = 'prli_prettybar_background_image_url';
13
+ $prettybar_color = 'prli_prettybar_color';
14
+ $prettybar_text_color = 'prli_prettybar_text_color';
15
+ $prettybar_link_color = 'prli_prettybar_link_color';
16
+ $prettybar_hover_color = 'prli_prettybar_hover_color';
17
+ $prettybar_visited_color = 'prli_prettybar_visited_color';
18
+ $prettybar_show_title = 'prli_prettybar_show_title';
19
+ $prettybar_show_description = 'prli_prettybar_show_description';
20
+ $prettybar_show_share_links = 'prli_prettybar_show_share_links';
21
+ $prettybar_show_target_url_link = 'prli_prettybar_show_target_url_link';
22
+ $prettybar_title_limit = 'prli_prettybar_title_limit';
23
+ $prettybar_desc_limit = 'prli_prettybar_desc_limit';
24
+ $prettybar_link_limit = 'prli_prettybar_link_limit';
25
+
26
+ $link_track_me = 'prli_link_track_me';
27
+ $link_prefix = 'prli_link_prefix';
28
+ $link_nofollow = 'prli_link_nofollow';
29
+ $link_redirect_type = 'prli_link_redirect_type';
30
+ $hidden_field_name = 'prli_update_options';
31
+
32
+ $update_message = false;
33
+
34
+ // See if the user has posted us some information
35
+ // If they did, this hidden field will be set to 'Y'
36
+ if( $_POST[ $hidden_field_name ] == 'Y' )
37
+ {
38
+ // Validate This
39
+ if( !empty($_POST[$prettybar_image_url]) and !preg_match('/^http.?:\/\/.*\..*$/', $_POST[$prettybar_image_url] ) )
40
+ $errors[] = "Logo Image URL must be a correctly formatted URL";
41
+
42
+ if( !empty($_POST[$prettybar_background_image_url]) and !preg_match('/^http.?:\/\/.*\..*$/', $_POST[$prettybar_background_image_url] ) )
43
+ $errors[] = "Background Image URL must be a correctly formatted URL";
44
+
45
+ if( !empty($_POST[ $prli_exclude_ips ]) and !preg_match( "#^[ \t]*((\d{1,3}|\*)\.(\d{1,3}|\*)\.(\d{1,3}|\*)\.(\d{1,3}|\*)|([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*))([ \t]*,[ \t]*((\d{1,3}|\*)\.(\d{1,3}|\*)\.(\d{1,3}|\*)\.(\d{1,3}|\*)|([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*)))*$#", $_POST[ $prli_exclude_ips ] ) )
46
+ $errors[] = "Excluded IP Addresses must be a comma separated list of IPv4 or IPv6 addresses or ranges.";
47
+
48
+ if( !empty($_POST[ $whitelist_ips ]) and !preg_match( "#^[ \t]*((\d{1,3}|\*)\.(\d{1,3}|\*)\.(\d{1,3}|\*)\.(\d{1,3}|\*)|([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*))([ \t]*,[ \t]*((\d{1,3}|\*)\.(\d{1,3}|\*)\.(\d{1,3}|\*)\.(\d{1,3}|\*)|([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*)))*$#", $_POST[ $whitelist_ips ] ) )
49
+ $errors[] = "Whitlist IP Addresses must be a comma separated list of IPv4 or IPv6 addresses or ranges.";
50
+
51
+ if( !empty($_POST[ $prettybar_color ]) and !preg_match( "#^[0-9a-fA-F]{6}$#", $_POST[ $prettybar_color ] ) )
52
+ $errors[] = "PrettyBar Background Color must be an actual RGB Value";
53
+
54
+ if( !empty($_POST[ $prettybar_text_color ]) and !preg_match( "#^[0-9a-fA-F]{6}$#", $_POST[ $prettybar_text_color ] ) )
55
+ $errors[] = "PrettyBar Text Color must be an actual RGB Value";
56
+
57
+ if( !empty($_POST[ $prettybar_link_color ]) and !preg_match( "#^[0-9a-fA-F]{6}$#", $_POST[ $prettybar_link_color ] ) )
58
+ $errors[] = "PrettyBar Link Color must be an actual RGB Value";
59
+
60
+ if( !empty($_POST[ $prettybar_hover_color ]) and !preg_match( "#^[0-9a-fA-F]{6}$#", $_POST[ $prettybar_hover_color ] ) )
61
+ $errors[] = "PrettyBar Hover Color must be an actual RGB Value";
62
+
63
+ if( !empty($_POST[ $prettybar_visited_color ]) and !preg_match( "#^[0-9a-fA-F]{6}$#", $_POST[ $prettybar_visited_color ] ) )
64
+ $errors[] = "PrettyBar Hover Color must be an actual RGB Value";
65
+
66
+ if( empty($_POST[ $prettybar_title_limit ]) )
67
+ $errors[] = "PrettyBar Title Character Limit must not be blank";
68
+
69
+ if( empty($_POST[ $prettybar_desc_limit ]) )
70
+ $errors[] = "PrettyBar Description Character Limit must not be blank";
71
+
72
+ if( empty($_POST[ $prettybar_link_limit ]) )
73
+ $errors[] = "PrettyBar Link Character Limit must not be blank";
74
+
75
+ if( !empty($_POST[ $prettybar_title_limit ]) and !preg_match( "#^[0-9]*$#", $_POST[ $prettybar_title_limit ] ) )
76
+ $errors[] = "PrettyBar Title Character Limit must be a number";
77
+
78
+ if( !empty($_POST[ $prettybar_desc_limit ]) and !preg_match( "#^[0-9]*$#", $_POST[ $prettybar_desc_limit ] ) )
79
+ $errors[] = "PrettyBar Description Character Limit must be a number";
80
+
81
+ if( !empty($_POST[ $prettybar_link_limit ]) and !preg_match( "#^[0-9]*$#", $_POST[ $prettybar_link_limit ] ) )
82
+ $errors[] = "PrettyBar Link Character Limit must be a number";
83
+
84
+ $errors = apply_filters('prli-validate-options',$errors);
85
+
86
+ // Read their posted value
87
+ $prli_options->prli_exclude_ips = stripslashes($_POST[ $prli_exclude_ips ]);
88
+ $prli_options->whitelist_ips = stripslashes($_POST[ $whitelist_ips ]);
89
+ $prli_options->filter_robots = (int)isset($_POST[ $filter_robots ]);
90
+ $prli_options->prettybar_image_url = stripslashes($_POST[ $prettybar_image_url ]);
91
+ $prli_options->prettybar_background_image_url = stripslashes($_POST[ $prettybar_background_image_url ]);
92
+ $prli_options->prettybar_color = stripslashes($_POST[ $prettybar_color ]);
93
+ $prli_options->prettybar_text_color = stripslashes($_POST[ $prettybar_text_color ]);
94
+ $prli_options->prettybar_link_color = stripslashes($_POST[ $prettybar_link_color ]);
95
+ $prli_options->prettybar_hover_color = stripslashes($_POST[ $prettybar_hover_color ]);
96
+ $prli_options->prettybar_visited_color = stripslashes($_POST[ $prettybar_visited_color ]);
97
+ $prli_options->prettybar_show_title = (int)isset($_POST[ $prettybar_show_title ]);
98
+ $prli_options->prettybar_show_description = (int)isset($_POST[ $prettybar_show_description ]);
99
+ $prli_options->prettybar_show_share_links = (int)isset($_POST[ $prettybar_show_share_links ]);
100
+ $prli_options->prettybar_show_target_url_link = (int)isset($_POST[ $prettybar_show_target_url_link ]);
101
+ $prli_options->prettybar_title_limit = stripslashes($_POST[ $prettybar_title_limit ]);
102
+ $prli_options->prettybar_desc_limit = stripslashes($_POST[ $prettybar_desc_limit ]);
103
+ $prli_options->prettybar_link_limit = stripslashes($_POST[ $prettybar_link_limit ]);
104
+ $prli_options->link_track_me = (int)isset($_POST[ $link_track_me ]);
105
+ $prli_options->link_prefix = (int)isset($_POST[ $link_prefix ]);
106
+ $prli_options->link_nofollow = (int)isset($_POST[ $link_nofollow ]);
107
+ $prli_options->link_redirect_type = $_POST[ $link_redirect_type ];
108
+
109
+ do_action('prli-store-options');
110
+
111
+ if( count($errors) > 0 )
112
+ require(PRLI_VIEWS_PATH.'/shared/errors.php');
113
+ else
114
+ {
115
+ // Save the posted value in the database
116
+ update_option( 'prli_options', $prli_options );
117
+
118
+ // Put an options updated message on the screen
119
+
120
+ $update_message = __('Options saved.');
121
+ }
122
+ }
123
+ else if($_GET['action'] == 'clear_all_clicks' or $_POST['action'] == 'clear_all_clicks')
124
+ {
125
+ $prli_click->clearAllClicks();
126
+
127
+ $update_message = __('Hit Database was Cleared.');
128
+ }
129
+ else if($_GET['action'] == 'clear_30day_clicks' or $_POST['action'] == 'clear_30day_clicks')
130
+ {
131
+ $num_clicks = $prli_click->clear_clicks_by_age_in_days(30);
132
+
133
+ if($num_clicks)
134
+ $update_message = __("Hits older than 30 days ({$num_clicks} Hits) were deleted" );
135
+ else
136
+ $update_message = __("No hits older than 30 days were found, so nothing was deleted" );
137
+ }
138
+ else if($_GET['action'] == 'clear_90day_clicks' or $_POST['action'] == 'clear_90day_clicks')
139
+ {
140
+ $num_clicks = $prli_click->clear_clicks_by_age_in_days(90);
141
+
142
+ if($num_clicks)
143
+ $update_message = __("Hits older than 90 days ({$num_clicks} Hits) were deleted" );
144
+ else
145
+ $update_message = __("No hits older than 90 days were found, so nothing was deleted" );
146
+ }
147
+
148
+ if($update_message)
149
+ {
150
+ ?>
151
+ <div class="updated"><p><strong><?php echo $update_message; ?></strong></p></div>
152
+ <?php
153
+ }
154
+
155
+ require_once 'classes/views/prli-options/form.php';
156
+
157
+ ?>
prli-pro-settings.php ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ require_once 'prli-config.php';
3
+ require_once(PRLI_MODELS_PATH . '/models.inc.php');
4
+
5
+ $errors = array();
6
+
7
+ // variables for the field and option names
8
+ $prlipro_username = 'prlipro_username';
9
+ $prlipro_password = 'prlipro_password';
10
+ $hidden_field_name = 'prli_update_options';
11
+
12
+ // Read in existing option value from database
13
+ $prlipro_username_val = get_option( $prlipro_username );
14
+ $prlipro_password_val = get_option( $prlipro_password );
15
+
16
+ if($_GET['action'] == 'force-pro-reinstall')
17
+ {
18
+ // Queue the update and auto upgrade
19
+ $prli_update->queue_update(true);
20
+ $reinstall_url = wp_nonce_url('update.php?action=upgrade-plugin&plugin=pretty-link/pretty-link.php', 'upgrade-plugin_pretty-link/pretty-link.php');
21
+ ?>
22
+ <div class="updated"><p><strong><?php printf(__('You\'re almost done!<br/>%1$sFinish your Re-Install of Pretty Link Pro%2$s'), '<a href="'.$reinstall_url.'">', '</a>'); ?></strong></p></div>
23
+ <?php
24
+ }
25
+ if($_GET['action'] == 'pro-uninstall')
26
+ {
27
+ $prli_utils->uninstall_pro();
28
+ ?>
29
+
30
+ <div class="updated"><p><strong><?php _e('Pretty Link Pro Successfully Uninstalled.' ); ?></strong></p></div>
31
+ <?php
32
+ }
33
+
34
+ require_once 'classes/views/prli-options/pro-settings.php';
prli-tools.php ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ <?php
2
+ require_once PRLI_VIEWS_PATH . '/prli-tools/form.php';
3
+ ?>
prli-xmlrpc.php ADDED
@@ -0,0 +1,333 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Pretty Link WordPress Plugin API export via XML-RPC
4
+ *
5
+ * The first 2 arguments to each of these methods are username and password.
6
+ */
7
+
8
+ include_once(ABSPATH . '/wp-includes/class-IXR.php');
9
+
10
+ /**
11
+ * Returns the API Version as a string.
12
+ */
13
+ function prli_xmlrpc_api_version($args)
14
+ {
15
+ $username = $args[0];
16
+ $password = $args[1];
17
+
18
+ if ( !get_option( 'enable_xmlrpc' ) )
19
+ return new IXR_Error( 401, __( 'Sorry, XML-RPC Not enabled for this website' ) );
20
+
21
+ if (!user_pass_ok($username, $password))
22
+ return new IXR_Error( 401, __( 'Sorry, Login failed' ) );
23
+
24
+ // make sure user is an admin
25
+ $userdata = get_userdatabylogin( $username );
26
+ if( !isset($userdata->user_level) or
27
+ (int)$userdata->user_level < 8 )
28
+ return new IXR_Error( 401, __( 'Sorry, you must be an administrator to access this resource' ) );
29
+
30
+ return prli_api_version();
31
+ }
32
+
33
+ /**
34
+ * Get a Pretty Link for a long, ugly URL.
35
+ *
36
+ * @param string $username Required, an admin user of this blog
37
+ *
38
+ * @param string $password Required, the password for this user
39
+ *
40
+ * @param string $target_url Required, it is the value of the Target URL you
41
+ * want the Pretty Link to redirect to
42
+ *
43
+ * @param string $slug Optional, slug for the Pretty Link (string that comes
44
+ * after the Pretty Link's slash) if this value isn't set
45
+ * then a random slug will be automatically generated.
46
+ *
47
+ * @param string $name Optional, name for the Pretty Link. If this value isn't
48
+ * set then the name will be the slug.
49
+ *
50
+ * @param string $description Optional, description for the Pretty Link.
51
+ *
52
+ * @param integer $group_id Optional, the group that this link will be placed in.
53
+ * If this value isn't set then the link will not be
54
+ * placed in a group.
55
+ *
56
+ * @param boolean $link_track_me Optional, If true the link will be tracked,
57
+ * if not set the default value (from the pretty
58
+ * link option page) will be used
59
+ *
60
+ * @param boolean $link_nofollow Optional, If true the nofollow attribute will
61
+ * be set for the link, if not set the default
62
+ * value (from the pretty link option page) will
63
+ * be used
64
+ *
65
+ * @param string $link_redirect_type Optional, valid values include '307' or '301',
66
+ * if not set the default value (from the pretty
67
+ * link option page) will be used
68
+ *
69
+ * @return boolean / string The Full Pretty Link if Successful and false for Failure.
70
+ * This function will also set a global variable named
71
+ * $prli_pretty_slug which gives the slug of the link
72
+ * created if the link is successfully created -- it will
73
+ * set a variable named $prli_error_messages if the link
74
+ * was not successfully created.
75
+ */
76
+ function prli_xmlrpc_create_pretty_link( $args )
77
+ {
78
+ $username = $args[0];
79
+ $password = $args[1];
80
+
81
+ if ( !get_option( 'enable_xmlrpc' ) )
82
+ return new IXR_Error( 401, __( 'Sorry, XML-RPC Not enabled for this website' ) );
83
+
84
+ if (!user_pass_ok($username, $password))
85
+ return new IXR_Error( 401, __( 'Sorry, Login failed' ) );
86
+
87
+ // make sure user is an admin
88
+ $userdata = get_userdatabylogin( $username );
89
+ if( !isset($userdata->user_level) or
90
+ (int)$userdata->user_level < 8 )
91
+ return new IXR_Error( 401, __( 'Sorry, you must be an administrator to access this resource' ) );
92
+
93
+ // Target URL Required
94
+ if(!isset($args[2]))
95
+ return new IXR_Error( 401, __( 'You must provide a target URL' ) );
96
+
97
+ $target_url = $args[2];
98
+
99
+ $slug = (isset($args[3])?$args[3]:'');
100
+ $name = (isset($args[4])?$args[4]:'');
101
+ $description = (isset($args[5])?$args[5]:'');
102
+ $group_id = (isset($args[6])?$args[6]:'');
103
+ $track_me = (isset($args[7])?$args[7]:'');
104
+ $nofollow = (isset($args[8])?$args[8]:'');
105
+ $redirect_type = (isset($args[9])?$args[9]:'');
106
+ $param_forwarding = (isset($args[10])?$args[10]:'off');
107
+ $param_struct = (isset($args[11])?$args[11]:'');
108
+
109
+ if( $link = prli_create_pretty_link( $target_url,
110
+ $slug,
111
+ $name,
112
+ $description,
113
+ $group_id,
114
+ $track_me,
115
+ $nofollow,
116
+ $redirect_type,
117
+ $param_forwarding,
118
+ $param_struct ) )
119
+ return $link;
120
+ else
121
+ return new IXR_Error( 401, __( 'There was an error creating your Pretty Link' ) );
122
+ }
123
+
124
+ function prli_xmlrpc_update_pretty_link( $args )
125
+ {
126
+ $username = $args[0];
127
+ $password = $args[1];
128
+
129
+ if ( !get_option( 'enable_xmlrpc' ) )
130
+ return new IXR_Error( 401, __( 'Sorry, XML-RPC Not enabled for this website' ) );
131
+
132
+ if (!user_pass_ok($username, $password))
133
+ return new IXR_Error( 401, __( 'Sorry, Login failed' ) );
134
+
135
+ // make sure user is an admin
136
+ $userdata = get_userdatabylogin( $username );
137
+ if( !isset($userdata->user_level) or
138
+ (int)$userdata->user_level < 8 )
139
+ return new IXR_Error( 401, __( 'Sorry, you must be an administrator to access this resource' ) );
140
+
141
+ // Target URL Required
142
+ if(!isset($args[2]))
143
+ return new IXR_Error( 401, __( 'You must provide the id of the link you want to update' ) );
144
+
145
+ $id = $args[2];
146
+ $target_url = (isset($args[3])?$args[3]:'');
147
+ $slug = (isset($args[4])?$args[4]:'');
148
+ $name = (isset($args[5])?$args[5]:'');
149
+ $description = (isset($args[6])?$args[6]:'');
150
+ $group_id = (isset($args[7])?$args[7]:'');
151
+ $track_me = (isset($args[8])?$args[8]:'');
152
+ $nofollow = (isset($args[9])?$args[9]:'');
153
+ $redirect_type = (isset($args[10])?$args[10]:'');
154
+ $param_forwarding = (isset($args[11])?$args[11]:'');
155
+ $param_struct = (isset($args[12])?$args[12]:'');
156
+
157
+ if( $link = prli_update_pretty_link( $id,
158
+ $target_url,
159
+ $slug,
160
+ $name,
161
+ $description,
162
+ $group_id,
163
+ $track_me,
164
+ $nofollow,
165
+ $redirect_type,
166
+ $param_forwarding,
167
+ $param_struct ) )
168
+ return $link;
169
+ else
170
+ return new IXR_Error( 401, __( 'There was an error creating your Pretty Link' ) );
171
+ }
172
+
173
+ /**
174
+ * Get all the pretty link groups in an array suitable for creating a select box.
175
+ *
176
+ * @return bool (false if failure) | array A numerical array of associative arrays
177
+ * containing all the data about the pretty
178
+ * link groups.
179
+ */
180
+ function prli_xmlrpc_get_all_groups($args)
181
+ {
182
+ $username = $args[0];
183
+ $password = $args[1];
184
+
185
+ if ( !get_option( 'enable_xmlrpc' ) )
186
+ return new IXR_Error( 401, __( 'Sorry, XML-RPC Not enabled for this website' ) );
187
+
188
+ if (!user_pass_ok($username, $password))
189
+ return new IXR_Error( 401, __( 'Sorry, Login failed' ) );
190
+
191
+ // make sure user is an admin
192
+ $userdata = get_userdatabylogin( $username );
193
+ if( !isset($userdata->user_level) or
194
+ (int)$userdata->user_level < 8 )
195
+ return new IXR_Error( 401, __( 'Sorry, you must be an administrator to access this resource' ) );
196
+
197
+ if( $groups = prli_get_all_groups())
198
+ return $groups;
199
+ else
200
+ return new IXR_Error( 401, __( 'There was an error fetching the Pretty Link Groups' ) );
201
+ }
202
+
203
+ /**
204
+ * Get all the pretty links in an array suitable for creating a select box.
205
+ *
206
+ * @return bool (false if failure) | array A numerical array of associative arrays
207
+ * containing all the data about the pretty
208
+ * links.
209
+ */
210
+ function prli_xmlrpc_get_all_links($args)
211
+ {
212
+ $username = $args[0];
213
+ $password = $args[1];
214
+
215
+ if ( !get_option( 'enable_xmlrpc' ) )
216
+ return new IXR_Error( 401, __( 'Sorry, XML-RPC Not enabled for this website' ) );
217
+
218
+ if (!user_pass_ok($username, $password))
219
+ return new IXR_Error( 401, __( 'Sorry, Login failed' ) );
220
+
221
+ // make sure user is an admin
222
+ $userdata = get_userdatabylogin( $username );
223
+ if( !isset($userdata->user_level) or
224
+ (int)$userdata->user_level < 8 )
225
+ return new IXR_Error( 401, __( 'Sorry, you must be an administrator to access this resource' ) );
226
+
227
+ if( $links = prli_get_all_links())
228
+ return $links;
229
+ else
230
+ return new IXR_Error( 401, __( 'There was an error fetching the Pretty Links' ) );
231
+ }
232
+
233
+ /**
234
+ * Gets a specific link from a slug and returns info about it in an array
235
+ *
236
+ * @return bool (false if failure) | array An associative array with all the
237
+ * data about the given pretty link.
238
+ */
239
+ function prli_xmlrpc_get_link_from_slug($args)
240
+ {
241
+ $username = $args[0];
242
+ $password = $args[1];
243
+
244
+ if ( !get_option( 'enable_xmlrpc' ) )
245
+ return new IXR_Error( 401, __( 'Sorry, XML-RPC Not enabled for this website' ) );
246
+
247
+ if (!user_pass_ok($username, $password))
248
+ return new IXR_Error( 401, __( 'Sorry, Login failed' ) );
249
+
250
+ // make sure user is an admin
251
+ $userdata = get_userdatabylogin( $username );
252
+ if( !isset($userdata->user_level) or
253
+ (int)$userdata->user_level < 8 )
254
+ return new IXR_Error( 401, __( 'Sorry, you must be an administrator to access this resource' ) );
255
+
256
+ if(!isset($args[2]))
257
+ return new IXR_Error( 401, __( 'Sorry, you must provide a slug to lookup' ) );
258
+
259
+ $slug = $args[2];
260
+
261
+ if( $link = prli_get_link_from_slug($slug) )
262
+ return $link;
263
+ else
264
+ return new IXR_Error( 401, __( 'There was an error fetching your Pretty Link' ) );
265
+ }
266
+
267
+ /**
268
+ * Gets a specific link from an id and returns info about it in an array
269
+ *
270
+ * @return bool (false if failure) | array An associative array with all the
271
+ * data about the given pretty link.
272
+ */
273
+ function prli_xmlrpc_get_link($args)
274
+ {
275
+ $username = $args[0];
276
+ $password = $args[1];
277
+
278
+ if ( !get_option( 'enable_xmlrpc' ) )
279
+ return new IXR_Error( 401, __( 'Sorry, XML-RPC Not enabled for this website' ) );
280
+
281
+ if (!user_pass_ok($username, $password))
282
+ return new IXR_Error( 401, __( 'Sorry, Login failed' ) );
283
+
284
+ // make sure user is an admin
285
+ $userdata = get_userdatabylogin( $username );
286
+ if( !isset($userdata->user_level) or
287
+ (int)$userdata->user_level < 8 )
288
+ return new IXR_Error( 401, __( 'Sorry, you must be an administrator to access this resource' ) );
289
+
290
+ if(!isset($args[2]))
291
+ return new IXR_Error( 401, __( 'Sorry, you must provide an id to lookup' ) );
292
+
293
+ $id = $args[2];
294
+
295
+ if( $link = prli_get_link($id) )
296
+ return $link;
297
+ else
298
+ return new IXR_Error( 401, __( 'There was an error fetching your Pretty Link' ) );
299
+ }
300
+
301
+ /**
302
+ * Gets the full Pretty Link URL from a link id
303
+ *
304
+ * @return bool (false if failure) | string containing the pretty link url
305
+ */
306
+ function prli_xmlrpc_get_pretty_link_url($args)
307
+ {
308
+ $username = $args[0];
309
+ $password = $args[1];
310
+
311
+ if ( !get_option( 'enable_xmlrpc' ) )
312
+ return new IXR_Error( 401, __( 'Sorry, XML-RPC Not enabled for this website' ) );
313
+
314
+ if (!user_pass_ok($username, $password))
315
+ return new IXR_Error( 401, __( 'Sorry, Login failed' ) );
316
+
317
+ // make sure user is an admin
318
+ $userdata = get_userdatabylogin( $username );
319
+ if( !isset($userdata->user_level) or
320
+ (int)$userdata->user_level < 8 )
321
+ return new IXR_Error( 401, __( 'Sorry, you must be an administrator to access this resource' ) );
322
+
323
+ if(!isset($args[2]))
324
+ return new IXR_Error( 401, __( 'Sorry, you must provide an id to lookup' ) );
325
+
326
+ $id = $args[2];
327
+
328
+ if( $url = prli_get_pretty_link_url($id) )
329
+ return $url;
330
+ else
331
+ return new IXR_Error( 401, __( 'There was an error fetching your Pretty Link URL' ) );
332
+ }
333
+ ?>
readme.txt ADDED
@@ -0,0 +1,300 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ === Pretty Link ===
2
+ Contributors: supercleanse
3
+ Donate link: http://www.blairwilliams.com/pretty-link/donate/
4
+ Tags: links, link, url, urls, affiliate, affiliates, pretty, marketing, redirect, forward, plugin, twitter, tweet, rewrite, shorturl, hoplink, hop, shortlink, short, shorten, click, clicks, track, tracking, tiny, tinyurl, budurl, shrinking, domain, shrink, mask, masking, slug, slugs, admin, administration, stats, statistics, stat, statistic, cloaking, cloak, email, ajax, javascript, ui, csv, download, page, post, pro, professional, pages, posts, shortcode, seo, automation, keyword, replacement, replacements, widget, widgets, dashboard, sidebar
5
+ Requires at least: 2.9
6
+ Tested up to: 3.0
7
+ Stable tag: 1.4.49
8
+
9
+ Shrink, track and share any URL on the Internet from your WordPress website. Create short links suitable for Twitter using your own domain name!
10
+
11
+ == Description ==
12
+
13
+ Shrink, track and share any URL on the Internet from your WordPress website. You can now shorten links using your own domain name (as opposed to using tinyurl.com, bit.ly, or any other link shrinking service)! In addition to creating clean links, Pretty Link tracks each hit on your URL and provides a full, detailed report of where the hit came from, the browser, os and host. Pretty Link is a killer plugin for people who want to mask their affiliate links, track clicks from emails, their links on Twitter to come from their own domain, or generally increase the reach of their website by spreading these links on forums or comments on other blogs.
14
+
15
+ = Upgrade to Pretty Link Pro =
16
+
17
+ Pretty Link Pro is an upgrade to Pretty Link that adds the capability to automate your pretty link creation, auto-tweet them, replace keywords thoughout your blog and much more. You can learn more about it here:
18
+
19
+ http://prettylinkpro.com
20
+
21
+ = Examples =
22
+
23
+ This is a link setup using Pretty Link that redirects to the Pretty Link Homepage where you can find more info about this Plugin:
24
+
25
+ http://blairwilliams.com/pl
26
+
27
+ Here's a named Pretty Link (I used the slug 'aweber') that redirects to my affiliate link for aweber.com -- only the BEST mailing list and autoresponder service out there -- in my humble opinion :) :
28
+
29
+ http://blairwilliams.com/aweber
30
+
31
+ Here's a link that Pretty Link generated a random slug for (similar to how bit.ly or tinyurl would do):
32
+
33
+ http://blairwilliams.com/w7a
34
+
35
+ Here's a Pretty Link that uses the configurable Pretty Link PrettyBar:
36
+
37
+ http://blairwilliams.com/x0z
38
+
39
+ = Features =
40
+
41
+ * Gives you the ability to create clean, simple URLs on your website that redirect to any other URL
42
+ * Generates random 2-3 character slugs for your URL or allows you to name a custom slug for your URL
43
+ * Tracks the Number of Hits per link
44
+ * Tracks the Number of Unique Hits per link
45
+ * Provides a reporting interface where you can see a configurable chart of clicks per day. This report can be filtered by the specific link clicked, date range, and/or unique clicks.
46
+ * View click details including ip address, remote host, browser (including browser version), operating system, and referring site
47
+ * Download hit details in CSV format
48
+ * Intuitive Javascript / AJAX Admin User Interface
49
+ * Pass custom parameters to your scripts through pretty link and still have full tracking ability
50
+ * Ability to rewrite these custom Parameters before forwarding to Target URL
51
+ * Setup Pretty Links as Tracking Pixels and track impressions
52
+ * Exclude IP Addresses from Stats
53
+ * Enables you to post your Pretty Links to Twitter directly from your WordPress admin
54
+ * Enables you to send your Pretty Links via Email directly from your WordPress admin
55
+ * Select Temporary (307) or Permanent (301) redirection for your Pretty Links
56
+ * Cookie based system for tracking visitor activity across hits
57
+ * Organize Links into Groups
58
+ * Create nofollow/noindex links
59
+ * Turn tracking on / off on each link
60
+ * Keep users on your site even when being redirected by using the PrettyBar which stays at the top of the page
61
+ * Ability to configure and skin the PrettyBar to mirror the look and feel of your site
62
+ * Hide the Target URL by loading it in a full-screen frame
63
+ * Pretty Link Bookmarklet
64
+
65
+ == Installation ==
66
+
67
+ 1. Upload 'pretty-link.zip' to the '/wp-content/plugins/' directory
68
+
69
+ 2. Activate the plugin through the 'Plugins' menu in WordPress
70
+
71
+ 3. Make sure you have changed your permalink Common Settings in Settings -> Permalinks away from "Default" to something else. I prefer using custom and then "/%postname%/" for the simplest possible URL slugs.
72
+
73
+ = Release Notes =
74
+ [Pretty Link Change Log](http://blairwilliams.com/pretty-link/change-log "Pretty link Change Log")
75
+
76
+ == Frequently Asked Questions ==
77
+ [Pretty Link FAQ](http://blairwilliams.com/pretty-link/pretty-link-faq "Pretty link FAQ")
78
+
79
+ = Developers =
80
+ [Pretty Link API](http://blairwilliams.com/pretty-link/api/ "Pretty link API")
81
+
82
+ == Changelog ==
83
+
84
+ = 1.4.49 =
85
+ * Fixed Keyword Caching Issue for Pro Users
86
+ * Fixed recording duplicate tweet issue for Pro Users
87
+
88
+ = 1.4.48 =
89
+ * Fixed a performance issue in Pretty Link affecting some users when viewing their dashboard
90
+ * Fixed the custom menu auto-tweet issue affecting some Pretty Link Pro users
91
+
92
+ = 1.4.47 =
93
+ * Updated code for WP 3.0
94
+ * Fixed tweetbadge indexing issue
95
+ * Added an underscore to postmeta values
96
+
97
+ = 1.4.46 =
98
+ * Fixed a subdirectory redirection issue
99
+
100
+ = 1.4.45 =
101
+ * Refactored and Options code
102
+ * Pro: Refactored Update code to work with the upcoming WordPress 3.0
103
+ * Pro: Tweet Badge now loads asynchronously in an iFrame to prevent performance issues when updating multiple tweet badges simultaneously.
104
+ * Pro: Enabled limit on number of keyword replacements to occur per page load
105
+ * Pro: Cleaned up options code
106
+ * Pro: Added keyword replacement to comments and feeds and an option to make all links into pretty links automatically.
107
+
108
+ = 1.4.44 =
109
+ * Fixed the phantom postmeta issue
110
+
111
+ = 1.4.43 =
112
+ * Added an enhanced CSV Hit Reports...
113
+ * Added CSV IP History reports... (the history of each visitor by IP address)
114
+ * Added CSV IP Origin reports... (the first time we see each visitor click a Pretty Link)
115
+ * Separating CSV Reports into blocks of 5000 rows each ... this will help with performance in a major way and prevent locking ...
116
+ * Added an option to use a prefixed element from your permalink structure (this is necessary for users who need an index.php as part of their permalink structure)
117
+ * Fixed the pretty link nesting issue so larger slugs are matched first enabling users to create folder structures more efficiently
118
+ * The Link Description is now showing up as the meta description for Pretty Bar'd and Cloaked Pretty Links
119
+ * Altered Tweet badge so it shows up as an image which will help it stay consistent across sites and won't ever mess up the excerpts ever again
120
+ * Cleaned up the front facing CSS for the tweet badge, social buttons and twitter comments
121
+ * Checked the [tweetbadge] shortcode and the_tweetbadge() template tag and verified that they are working properly...
122
+ * Fixed saving posts / pages issue... Now pages are saved & auto tweeted (if the option is set)...
123
+
124
+ = 1.4.42 =
125
+ * Fixed more pretty link path issues to easily handle pre-slug elements in custom permalink structures
126
+ * Optimized php code executed in pretty link tracking
127
+ * Replaced fsockopen with curl for validating urls and grabbing the target url title
128
+
129
+ = 1.4.41 =
130
+ * Fixed pretty link path issue
131
+
132
+ = 1.4.40 =
133
+ * Added support for Pre-Slug URL elements -- this will be helpful for those users who don't have rewrite working fully
134
+ * Additional, unnecessary postmeta fields not being created anymore for pro users
135
+ * Fixed auto pretty link creation and auto twitter posting on scheduled and xml-rpc post for pro users
136
+ * Fixed twitter badge count issue -- it was reporting incorrect tweet results for some pro users on some posts
137
+ * Added Option to show tweet badge and/or social buttons in the RSS Feed
138
+
139
+ = 1.4.39 =
140
+ * Fixed browsecap integration for users on PHP 5.3 or higher
141
+ * Added new browsecap file to include android based phones in hit results
142
+ * Fixed form submission issues affecting a small number of users
143
+ * Fixed a pro update bug affecting some users
144
+ * Fixed a bug affecting pro users more tag and keyword replacement
145
+
146
+ = 1.4.38 =
147
+ * Fixed some update and validation bugs affecting a small number of users
148
+
149
+ = 1.4.36 =
150
+ * Fixed pro export issue
151
+ * Fixed html within shortcodes in keyword replacement issues for pro users
152
+ * Fixed XHTML validation for pro users using keyword replacement
153
+ * Added an email button to the social bar for pro users
154
+ * Fixed update code for pro users to not display false update message
155
+ * Fixed url utilities port configuration for all users
156
+ * Fixed url validation issue for all users
157
+
158
+ = 1.4.35 =
159
+ * Made significant changes to the Pretty Link Pro update routines
160
+ * Fixed several bugs with remote url reading
161
+
162
+ = 1.4.34 =
163
+ * Fixed a redirection issue for all users
164
+
165
+ = 1.4.33 =
166
+ * Added more support options for all users
167
+ * Updated install
168
+ * Added exclude tweet badge/comments & social media buttons for specific pages & posts to the page/post edit screen for pro users
169
+
170
+ = 1.4.32 =
171
+ * Optimized CSV download of hits
172
+ * Optimized more SQL calls
173
+ * Fixed keyword replacement bug on password protected posts for Pro Users
174
+ * Fixed group issue on options page for Pro Users
175
+
176
+ = 1.4.31 =
177
+ * Fixed a bug in pretty link, pixel & cloaking redirection.
178
+
179
+ = 1.4.30 =
180
+ * Altered the where Pretty Links are redirected to put less burden on normal page loads
181
+ * Optimized Group & Report SQL calls to be significantly faster
182
+ * Added a shortcode & template tag for pro users to display their pretty links on pages & posts (the shortcode is [post-pretty-link] and the template tag is the_prettylink())
183
+
184
+ = 1.4.29 =
185
+ * Added some more support options
186
+ * fixed some minor bugs in keyword replacement and pro options.
187
+
188
+ = 1.4.28 =
189
+ * Fixed a bug with link creation from the bookmarklet, post publishing and public link creation that was introduced in the last release
190
+
191
+ = 1.4.27 =
192
+ * Simplified SQL Calls and reduced the number of them that it takes to load a page
193
+ * Modified tweets to be counted for each link -- even ones not associated with a post -- got rid of the url_alias feature
194
+ * Streamlined database calls & fixed a bug in the api
195
+ * Added the ability to tweet to multiple accounts...
196
+ * Added tweetmeme count checking and added additional twitter account validation
197
+
198
+ = 1.4.26 =
199
+ * Fixed the html entity display issue for target urls
200
+ * Reduced package size of Pretty Link for more reliable installation
201
+ * Added Customizable Bookmarklet for Pro Users
202
+
203
+ = 1.4.25 =
204
+ * Fixed some bugs in the install
205
+ * Added nofollows to links in the social bar & re-tweet badge
206
+
207
+ = 1.4.23/24 =
208
+ * Fixed an installation issue for PHP4 users
209
+
210
+ = 1.4.22 =
211
+ * Added known robot and unidentified browser filtering to Pretty Link stats
212
+ * Added IP Address range definition to the Excluded IP address field
213
+ * Fixed html formatting issue on the bookmarklet success page
214
+ * Added the ability for Pro users to remove or alter the attribution link on the Pretty Bar
215
+ * Added new shortcodes for Pro users to display the title, target url and social networking buttons for a newly created public pretty link
216
+ * Enhanced the default success page for public link creation for pro users
217
+ * Fixed the redirect-type not being set bug for pro users allowing public link creation
218
+ * Fixed another php short-code bug affecting Pro users (thanks to Clay Loveless of KillerSoft for helping me with that one)
219
+
220
+ = 1.4.21 =
221
+ * Fixed UTF-8 issues
222
+ * Enabled UTF-8 Pretty Link slugs
223
+ * Enabled UTF-8 tweets for Pro users
224
+ * Fixed several issues for users hosted on Windows
225
+ * Added padding configuration to space the buttons on the social bar for Pro users
226
+ * Fixed the html validation issues with the tweet badge and social buttons bar for Pro users
227
+
228
+ = 1.4.20 =
229
+ * Added IPv6 support for IP Address Exclusions
230
+ * Added Twitter Comments post widget for Pro users
231
+ * Added RSS feed support for the tweet badge for Pro users
232
+
233
+ = 1.4.19 =
234
+ * Fixed https image loading / path issue
235
+ * Fixed bookmarklet javascript encoding issue
236
+ * Fixed import / export issue for pro users
237
+ * Added Hyves.nl and Sphinn to the social buttons bar
238
+ * Added more placement options for the social buttons bar
239
+ * Added a social buttons bar shortcode & template tag
240
+
241
+ = 1.4.18 =
242
+ * Added the Social Network Button Bar for Pro Users
243
+
244
+ = 1.4.17 =
245
+ * Fixed the php strict tags issue affecting some users
246
+ * Fixed the click record issue affecting some IIS users
247
+ * Added DOCTYPE line to Pretty Bar HTML
248
+ * Elimitated Pro upgrade messages for Pro users
249
+
250
+ = 1.4.16 =
251
+ * Fixed PrliUrlUtils not found error affecting some users
252
+ * Added instructions for installing the Pretty Link bookmarklet on the iPhone
253
+ * Added a URL Alias feature to Pro to allow tweet counts to be aggregated and hence, more accurate
254
+
255
+ = 1.4.15 =
256
+ * Fixed the nested slug cookie issue.
257
+
258
+ = 1.4.14 =
259
+ * Fixed bookmarklet/fopen issue affecting some users
260
+ * Fixed XML-RPC auto-tweeting of Posts
261
+ * Fixed Scheduled auto-tweeting & link creation of Posts issue
262
+ * Fixed bulk auto link creation issue
263
+ * Added slug choice for your post
264
+ * Added a twitter message formatting textarea on the post edit screen
265
+
266
+ = 1.4.13 =
267
+ * Fixed the option reset issue
268
+
269
+ = 1.4.12 =
270
+ * Added title detection
271
+ * Added enhancements to the Pretty Link Bookmarklet
272
+ * Added better support for IIS by redefining the fnmatch function if it isn't present
273
+ * Changed the keyword replacement algorithm in Pro to replace links throughout the post when thresholds are set (instead of only linking to the top x keywords)
274
+ * Fixed some issues surrounding keyword content caching in Pro
275
+
276
+ == Upgrade Notice ==
277
+ = 1.4.49 =
278
+ * Fixed some important bugs for pro users -- non-pro users will be pretty much unchanged by this release
279
+
280
+ = 1.4.48 =
281
+ Fixed some dashboard performance issues for Pretty Link users and a custom menu tweeting fix that was affecting some pro users.
282
+
283
+ = 1.4.47 =
284
+ Upgrade to make Pretty Link compatible with WordPress 3.0
285
+
286
+ = 1.4.46 =
287
+ If your wordpress website is in a subdirectory and you've had issues with your pretty links since the last release then this upgrade will fix it.
288
+
289
+ = 1.4.45 =
290
+ Bug fixes have been made in Pretty Link and several enhancements have been made it Pretty Link Pro.
291
+
292
+ = 1.4.44 =
293
+ All users -- especially pro users should upgrade to this new version -- it fixes the phantom postmeta issue
294
+
295
+ = 1.4.43 =
296
+ All users should upgrade to this new version -- several functional and performance related issues have been fixed for Pretty Link and Pretty Link Pro users.
297
+
298
+ == Screenshots ==
299
+ [Pretty Link Screenshots](http://blairwilliams.com/pretty-link "Pretty link Screenshots")
300
+ [Pretty Link Pro Screenshots](http://prettylinkpro.com "Pretty link Pro Screenshots")