locale 0.9.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. data/ChangeLog +5 -0
  2. data/{README → README.rdoc} +6 -3
  3. data/Rakefile +5 -4
  4. data/lib/locale/driver/cgi.rb +4 -6
  5. data/lib/locale/driver/win32_table.rb +1 -1
  6. data/lib/locale/version.rb +1 -1
  7. data/replace.rb +21 -0
  8. data/test/test_detect_general.rb +5 -1
  9. metadata +6 -66
  10. data/doc/classes/Locale/Driver.html +0 -375
  11. data/doc/classes/Locale/Driver/CGI.html +0 -502
  12. data/doc/classes/Locale/Driver/Env.html +0 -440
  13. data/doc/classes/Locale/Driver/JRuby.html +0 -390
  14. data/doc/classes/Locale/Driver/Posix.html +0 -431
  15. data/doc/classes/Locale/Driver/Win32.html +0 -398
  16. data/doc/classes/Locale/Driver/Win32Table.html +0 -356
  17. data/doc/classes/Locale/Info.html +0 -586
  18. data/doc/classes/Locale/Info/Language.html +0 -764
  19. data/doc/classes/Locale/Info/Region.html +0 -470
  20. data/doc/classes/Locale/Tag/Cldr.html +0 -547
  21. data/doc/classes/Locale/Tag/Common.html +0 -655
  22. data/doc/classes/Locale/Tag/Illegular.html +0 -424
  23. data/doc/classes/Locale/Tag/Posix.html +0 -612
  24. data/doc/classes/Locale/Tag/Rfc.html +0 -610
  25. data/doc/classes/Locale/Tag/Simple.html +0 -684
  26. data/doc/classes/Locale/TagList.html +0 -783
  27. data/doc/classes/Locale/Util.html +0 -476
  28. data/doc/classes/Locale/Util/Memoizable.html +0 -356
  29. data/doc/created.rid +0 -1
  30. data/doc/files/ChangeLog.html +0 -497
  31. data/doc/files/README.html +0 -525
  32. data/doc/files/lib/locale/driver/cgi_rb.html +0 -342
  33. data/doc/files/lib/locale/driver/env_rb.html +0 -354
  34. data/doc/files/lib/locale/driver/jruby_rb.html +0 -359
  35. data/doc/files/lib/locale/driver/posix_rb.html +0 -349
  36. data/doc/files/lib/locale/driver/win32_rb.html +0 -359
  37. data/doc/files/lib/locale/driver/win32_table_rb.html +0 -342
  38. data/doc/files/lib/locale/info/language_rb.html +0 -353
  39. data/doc/files/lib/locale/info/region_rb.html +0 -353
  40. data/doc/files/lib/locale/info_rb.html +0 -354
  41. data/doc/files/lib/locale/tag/cldr_rb.html +0 -342
  42. data/doc/files/lib/locale/tag/common_rb.html +0 -342
  43. data/doc/files/lib/locale/tag/illegular_rb.html +0 -349
  44. data/doc/files/lib/locale/tag/posix_rb.html +0 -342
  45. data/doc/files/lib/locale/tag/rfc_rb.html +0 -342
  46. data/doc/files/lib/locale/tag/simple_rb.html +0 -349
  47. data/doc/files/lib/locale/tag_rb.html +0 -374
  48. data/doc/files/lib/locale/taglist_rb.html +0 -342
  49. data/doc/files/lib/locale/util/memoizable_rb.html +0 -360
  50. data/doc/files/lib/locale/version_rb.html +0 -342
  51. data/doc/files/lib/locale_rb.html +0 -379
  52. data/doc/fr_class_index.html +0 -20
  53. data/doc/fr_file_index.html +0 -23
  54. data/doc/fr_method_index.html +0 -80
  55. data/doc/index.html +0 -1
  56. data/doc/rdoc-style.css +0 -320
@@ -1,525 +0,0 @@
1
- <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"/><title>File: README</title><link type="text/css" href=".././rdoc-style.css" media="screen" rel="stylesheet"/><script type="text/javascript">
2
- // Allison template
3
- // Copyright 2007, 2008 Cloudburst, LLC. Licensed under the AFL 3. See the included LICENSE file.
4
-
5
- var href_base = '.././rdoc-style.css'.replace(/(.*\/).*/, '$1'); // inline js is good for something
6
-
7
- function $(id) {
8
- if (document.getElementById)
9
- elem = document.getElementById(id);
10
- else if ( document.all )
11
- elem = eval("document.all." + id);
12
- else
13
- return false;
14
- return elem;
15
- }
16
-
17
- function toggle(id) {
18
- elem = $(id);
19
- elemStyle = elem.style;
20
- if (elemStyle.display == "block") {
21
- elemStyle.display = "none"
22
- } else {
23
- elemStyle.display = "block"
24
- }
25
- return true;
26
- }
27
-
28
- function toggleText(id) {
29
- elem = $(id)
30
- if (m = elem.innerHTML.match(/(Hide)(.*)/)) {
31
- elem.innerHTML = "Show" + m[2];
32
- } else if (m = elem.innerHTML.match(/(Show)(.*)/)) {
33
- elem.innerHTML = "Hide" + m[2];
34
- }
35
- return true;
36
- }
37
-
38
- function span(s, klass) {
39
- return '<span class="' + klass + '">' + s + '</span>';
40
- }
41
-
42
- function highlightSymbols() {
43
- pres = document.getElementsByTagName('pre');
44
- for(var i = 0; i < pres.length; i++) {
45
- pre = pres[i];
46
- spans = pre.getElementsByTagName('span');
47
- for(var k = 0; k < spans.length; k++) {
48
- span = spans[k];
49
- if (span.className.match(/ruby-identifier/)) {
50
- if (span.innerHTML.match(/^:/)) {
51
- span.className += " ruby-symbol";
52
- }
53
- }
54
- }
55
- }
56
- }
57
-
58
- function hasClass(obj) {
59
- var result = false;
60
- if (obj.getAttributeNode("class") != null) {
61
- result = obj.getAttributeNode("class").value;
62
- }
63
- return result;
64
- }
65
-
66
- function stripe() {
67
- var even = true;
68
- var color = "#e4ebed";
69
- var tables = document.getElementsByTagName('table');
70
- if (tables.length == 0) { return; }
71
- for (var h = 0; h < tables.length; h++) {
72
- var trs = tables[h].getElementsByTagName("tr");
73
- for (var i = 0; i < trs.length; i++) {
74
- var tds = trs[i].getElementsByTagName("td");
75
- for (var j = 0; j < tds.length; j++) {
76
- if (hasClass(tds[j]) != "first") {
77
- var mytd = tds[j];
78
- if (even) {
79
- mytd.style.backgroundColor = color;
80
- }
81
- }
82
- }
83
- even = ! even;
84
- }
85
- }
86
- }
87
-
88
- function ajaxGet(url) {
89
- url = (href_base + url).replace('/./', '/')
90
- var req = false;
91
-
92
- if (window.ActiveXObject) {
93
- try {
94
- // stupid hack because IE7 disables local Ajax with the native xmlhttprequest object
95
- // for security purposes. Yet ActiveX still works. Thanks, Microsoft. I hate you. Die.
96
- req = new ActiveXObject("MSXML2.XMLHTTP.3.0");
97
- } catch (e) {
98
- try {
99
- /* IE 6 and maybe 5, don't know, don't care */
100
- req = new ActiveXObject("Msxml2.XMLHTTP");
101
- } catch (e) {
102
- try {
103
- req = new ActiveXObject("Microsoft.XMLHTTP");
104
- } catch (e) {
105
- req = false;
106
- }
107
- }
108
- }
109
- }
110
-
111
- /* real browsers */
112
- if (!req && window.XMLHttpRequest) {
113
- try {
114
- req = new XMLHttpRequest();
115
- } catch (e) {
116
- req = false;
117
- }
118
- }
119
-
120
- if (req) {
121
- req.open('GET', url, false);
122
- req.send(null);
123
- return req.responseText;
124
- } else {
125
- return "Ajax error";
126
- }
127
- }
128
-
129
-
130
- function addEvent(elm, evType, fn, useCapture) {
131
- if (elm.addEventListener) {
132
- elm.addEventListener(evType, fn, useCapture);
133
- return true;
134
- } else if (elm.attachEvent) {
135
- var r = elm.attachEvent('on' + evType, fn);
136
- return r;
137
- } else {
138
- elm['on' + evType] = fn;
139
- }
140
- }
141
-
142
- function insertIndices() {
143
- pages = ["class", "file", "method"]
144
- for (x in pages) {
145
- $(pages[x]).innerHTML += ajaxGet('fr_' + pages[x] + '_index.html').replace(/(href=")/g, '$1' + href_base);
146
- }
147
- /* mouseoverify method links */
148
- links = $('method').getElementsByTagName('a');
149
- for (var x = 0; x < links.length; x++) {
150
- if (m = links[x].innerHTML.match(/(.*)\s\((.*)\)/)) {
151
- links[x].innerHTML = m[1] + '<br>';
152
- links[x].title = m[2];
153
- }
154
- }
155
- /* this is stupid */
156
- $('class').style.display = "block";
157
- $('file').style.display = "block";
158
-
159
- /* has to be here because IE7 does not guarantee the onLoad callback order */
160
- abbreviateIndicesInner(["class", "file"], 25, "a");
161
- /* same, linkTitle() depends on the class link list */
162
- linkTitle();
163
- }
164
-
165
- function abbreviateIndices() {
166
- var ids = ["defined_in", "child_of", "includes", "requires", "method", "methods"];
167
- abbreviateIndicesInner(ids, 25, 'a');
168
- abbreviateIndicesInner(ids, 25, 'span');
169
- }
170
-
171
- function abbreviateIndicesInner(indices, amount, tag) {
172
- for (var x = 0; x < indices.length; x++) {
173
- var the_index = $(indices[x]);
174
- if (the_index) {
175
- links = the_index.getElementsByTagName(tag);
176
- for (var y = 0; y < links.length; y++) {
177
- var link = links[y];
178
- if (link.getElementsByTagName('span').length == 0 && link.getElementsByTagName('a').length == 0) {
179
- // avoid nesting
180
- link.innerHTML = link.innerHTML.replace(/<br>|\n/gi, '');
181
- link.title = link.innerHTML;
182
- link.innerHTML = abbreviate(link.innerHTML, amount) + '<br>';
183
- }
184
- }
185
- }
186
- }
187
- }
188
-
189
- function linkTitle() {
190
-
191
- /* grab the correct title element from the index */
192
- var index_page = ajaxGet('index.html');
193
- title_text = index_page.match(/<title>(.*)<\/title>/m)[1];
194
- document.title = title_text + " - " + document.title;
195
- var p = $('header').getElementsByTagName('p')[0]
196
- if (p.innerHTML.match(/^\s*$/)) {
197
- p.innerHTML = title_text;
198
- } else {
199
- p.innerHTML = title_text + ": " + p.innerHTML;
200
- }
201
-
202
- /* set the link properly */
203
- title_link = index_page.match(/<a\s+href="(.*?)"/)[1];
204
- var element = $('title');
205
- var item_type = "";
206
- var item_name = "";
207
- if (m = element.innerHTML.match(/(Class:|Module:|File:)\s*(.*)/)) {
208
- item_type = m[1];
209
- item_name = m[2];
210
- } else {
211
- item_name = element.innerHTML;
212
- }
213
- element.innerHTML = '<a href="' + href_base + title_link + '">' + item_type + " " + abbreviate(item_name, 45) + '</a>';
214
- element.getElementsByTagName('a')[0].title = item_name
215
-
216
- /* breadcrumb navigation */
217
- items = item_name.split("::");
218
- items_new = item_name.split("::");
219
- file_links = $('class').getElementsByTagName('a');
220
- for (var x = 0; x < items.length - 1; x++ ){
221
- var item = items[x];
222
- link = ("/classes/" + items.slice(0,x).join("/") + "/" + item + ".html").replace('//', '/');
223
- regex = new RegExp(RegExp.escape(link) + '$');
224
- for (var y = 0; y < file_links.length; y++) {
225
- if (file_links[y].href.match(regex)) {
226
- items_new[x] = '<a href="' + href_base + link + '">' + item + '</a>';
227
- break;
228
- }
229
- }
230
- }
231
- $('item_name').innerHTML = item_type + ' ' + items_new.join(" :: ");
232
- }
233
-
234
- function abbreviate(s, size) {
235
- while (s.length > size) {
236
- var old_s = s;
237
- s = s.replace(/\s|\n/mg, '');
238
- s = s.replace(/([A-Z])[a-z]+/m, '$1');
239
- if (!s || old_s == s) {
240
- return "..." + s.substring(s.length - size, s.length);
241
- }
242
- }
243
- return s;
244
- }
245
-
246
- function disableSubmit(event) {
247
- var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
248
- if (keyCode == 13) {
249
- return false;
250
- } else {
251
- return true;
252
- }
253
- }
254
-
255
- function filterList(id, s, event) {
256
-
257
- /* some weak escaping */
258
- s = s.replace(/[^\w\d\.\_\-\/\:\=\[\]\?\!]/g, '');
259
- s = RegExp.escape(s);
260
-
261
- var show_all = false;
262
- if (s.match(/^\s*$/)) {
263
- show_all = true;
264
- }
265
-
266
- links = $(id).getElementsByTagName('a')
267
- regex = new RegExp(s, 'i');
268
-
269
- for (var x = 0; x < links.length; x++) {
270
- var link = links[x];
271
- if (show_all) {
272
- link.style.display = 'inline';
273
- } else {
274
- if (link.innerHTML.match(regex)) {
275
- link.style.display = 'inline';
276
- } else {
277
- link.style.display = 'none';
278
- }
279
- }
280
- }
281
- return true;
282
- }
283
-
284
- RegExp.escape = function(text) {
285
- if (!arguments.callee.sRE) {
286
- var specials = ['/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\'];
287
- arguments.callee.sRE = new RegExp(
288
- '(\\' + specials.join('|\\') + ')', 'g'
289
- );
290
- }
291
- return text.replace(arguments.callee.sRE, '\\$1');
292
- }
293
-
294
- function hacks() {
295
- // show the spacer if necessary,
296
- divs = document.getElementsByTagName('div');
297
- for(var x = 0; x < divs.length; x++) {
298
- if (divs[x].className && divs[x].className.match(/top/)) {
299
- document.getElementById('spacer').style.display = 'block';
300
- }
301
- }
302
- // remove extra colons from tables
303
- tds = document.getElementsByTagName('td');
304
- for(var x = 0; x < tds.length; x++) {
305
- str = tds[x].innerHTML
306
- if (str.charAt(str.length - 1) == ":") {
307
- tds[x].innerHTML = str.slice(0, str.length - 1)
308
- }
309
- }
310
- }
311
-
312
- addEvent(window, 'load', insertIndices, false);
313
- addEvent(window, 'load', abbreviateIndices, false);
314
- addEvent(window, 'load', stripe, false);
315
- addEvent(window, 'load', highlightSymbols, false);
316
- addEvent(window, 'load', hacks, false);
317
- </script></head><body><div id="container"><div class="curve" id="preheader_curve_0"></div><div class="curve" id="preheader_curve_1"></div><div class="curve" id="preheader_curve_2"></div><div class="curve" id="preheader_curve_3"></div><div class="curve" id="preheader_curve_4"></div><div class="curve" id="preheader_curve_5"></div><div id="header"><p>
318
- README
319
- </p><span><h1 id="title">
320
- File: README
321
- </h1></span>
322
- </div><div class="clear"></div><div id="left">
323
-
324
-
325
-
326
-
327
- <div id="spacer"></div><div class="navigation darker index" id="class_wrapper"><div class="list_header"><h3>All classes</h3></div><div class="list_header_link"><a onclick="toggle('class'); toggleText('class_link'); return false;" href="#" id="class_link">Hide...</a></div><div class="clear"></div><div id="class"><form><label for="filter_class">Filter:&nbsp;&nbsp;</label><input type="text" onKeyUp="return filterList('class', this.value, event);" onKeyPress="return disableSubmit(event);" id="filter_class"></input></form></div></div><div class="navigation darker index" id="file_wrapper"><div class="list_header"><h3>All files</h3></div><div class="list_header_link"><a onclick="toggle('file'); toggleText('file_link'); return false;" href="#" id="file_link">Hide...</a></div><div class="clear"></div><div id="file"><form><label for="filter_file">Filter:&nbsp;&nbsp;</label><input type="text" onKeyUp="return filterList('file', this.value, event);" onKeyPress="return disableSubmit(event);" id="filter_file"></input></form></div></div><div class="navigation darker index" id="method_wrapper"><div class="list_header"><h3>All methods</h3></div><div class="list_header_link"><a onclick="toggle('method'); toggleText('method_link'); return false;" href="#" id="method_link">Show...</a></div><div class="clear"></div><div id="method"><form><label for="filter_method">Filter:&nbsp;&nbsp;</label><input type="text" onKeyUp="return filterList('method', this.value, event);" onKeyPress="return disableSubmit(event);" id="filter_method"></input></form></div></div></div><div id="content">
328
- <h1 id="item_name">File: README</h1>
329
-
330
- <div id="description"><h1>Ruby-Locale</h1>
331
- <p>
332
- Ruby-Locale is the pure ruby library which provides basic and general
333
- purpose APIs for localization.
334
- </p>
335
- <ul>
336
- <li>Manage Locale ID(Language Tag)
337
-
338
- <ul>
339
- <li>Each thread has a Locale ID.
340
-
341
- </li>
342
- <li>POSIX, CLDR, IETF(RFC4646, 3066(BCP47)), Win32 and Java language tags and
343
- convert the tag string to each other.
344
-
345
- </li>
346
- <li>Auto detect Locale ID. POSIX(Unix/Linux/*BSD), Win32, JRuby, CGI.
347
-
348
- </li>
349
- </ul>
350
- </li>
351
- <li>Resources
352
-
353
- <ul>
354
- <li>ISO 639-3 languages
355
-
356
- </li>
357
- <li>ISO 3166 region(countries).
358
-
359
- </li>
360
- </ul>
361
- </li>
362
- <li>Support Ruby 1.8.7, Ruby 1.9.1, JRuby 1.1.4. Tested on Win32 and Linux.
363
-
364
- </li>
365
- </ul>
366
- <h2>Website</h2>
367
- <ul>
368
- <li><a
369
- href="http://www.yotabanana.com/hiki/ruby-locale.html">www.yotabanana.com/hiki/ruby-locale.html</a>
370
-
371
- </li>
372
- <li><a href="http://locale.rubyforge.org">locale.rubyforge.org</a>/
373
-
374
- </li>
375
- </ul>
376
- <h2>Requirements</h2>
377
- <ul>
378
- <li>Ruby-1.8.7 or later &lt;<a
379
- href="http://www.ruby-lang.org/ja">www.ruby-lang.org/ja</a>/&gt;
380
-
381
- </li>
382
- <li>JRuby-1.1.4 or later &lt;<a
383
- href="http://jruby.codehaus.org">jruby.codehaus.org</a>/&gt;
384
-
385
- </li>
386
- </ul>
387
- <h2>Install</h2>
388
- <ul>
389
- <li>gem: ($ su)
390
-
391
- <pre>
392
- # gem install locale
393
- </pre>
394
- </li>
395
- <li>tar-ball: Download tar-ball from <a
396
- href="http://rubyforge.org/projects/locale">rubyforge.org/projects/locale</a>/
397
- De-Compress archive and enter its top directory. Then type: ($ su) # ruby
398
- setup.rb
399
-
400
- </li>
401
- </ul>
402
- <h2>The simplest usage</h2>
403
- <pre>
404
- require 'rubygems'
405
- require 'locale'
406
-
407
- p Locale.current
408
- </pre>
409
- <h2>License</h2>
410
- <p>
411
- This program is licenced under the same licence as Ruby. (See the file
412
- &#8216;COPYING&#8217;.)
413
- </p>
414
- <ul>
415
- <li>locale/language.rb, locale/region.rb, locale/data/language.tab.gz,
416
- locale/data/region.tab.gz:
417
-
418
- <ul>
419
- <li>Copyright (C) 2006 Antonio Terceiro
420
-
421
- </li>
422
- <li>Copyright (C) 2008 Masao Mutoh &lt;mutoh at highway.ne.jp&gt;
423
-
424
- </li>
425
- </ul>
426
- </li>
427
- <li>setup.rb version 3.4.1
428
-
429
- <ul>
430
- <li>Copyright (C) 2000-2005 Minero Aoki &lt;aamine at loveruby.net&gt;
431
-
432
- </li>
433
- <li>This file is released under LGPL. See the top of the setup.rb.
434
-
435
- </li>
436
- </ul>
437
- </li>
438
- <li>Others(Some files are separated from Ruby-GetText-Package-1.92.0)
439
-
440
- <ul>
441
- <li>Copyright (C) 2008 Masao Mutoh &lt;mutoh at highwhay.ne.jp&gt;
442
-
443
- </li>
444
- </ul>
445
- </li>
446
- </ul>
447
- <h2>References</h2>
448
- <h3>Other libraries</h3>
449
- <ul>
450
- <li>langtag-0.1.0
451
-
452
- <pre>
453
- by Martin Dürst &lt;http://rubyforge.org/projects/langtag/&gt;
454
- </pre>
455
- </li>
456
- <li>memoizable.rb
457
-
458
- <pre>
459
- from ActiveSupport-2.2.0 &lt;http://rubyforge.org/projects/activesupport/&gt;
460
- </pre>
461
- </li>
462
- <li>Ruby-GetText-Package-1.92.0
463
-
464
- <pre>
465
- by Masao Mutoh &lt;http://www.yotabanana.com/hiki/ruby-gettext.html&gt;
466
- </pre>
467
- </li>
468
- </ul>
469
- <h3>Documents</h3>
470
- <ul>
471
- <li>The Open Group Base Specifications Issue 6 IEEE Std 1003.1, 2004 Edition
472
- Internationalization Variables &lt;<a
473
- href="http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap08.html">www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap08.html</a>&gt;
474
-
475
- </li>
476
- <li>GNU `gettext&#8217; utilities - Setting the Locale through Environment
477
- Variables &lt;<a
478
- href="http://www.gnu.org/software/gettext/manual/gettext.html#Setting-the-POSIX-Locale">www.gnu.org/software/gettext/manual/gettext.html#Setting-the-POSIX-Locale</a>&gt;
479
-
480
- </li>
481
- <li>BCP47 / RFC4646, RFC3066 - Tags for Identifying Languages (Keep RFC3066
482
- compatibility) &lt;<a
483
- href="http://www.ietf.org/rfc/rfc4646.txt">www.ietf.org/rfc/rfc4646.txt</a>&gt;
484
- &lt;<a
485
- href="http://www.ietf.org/rfc/rfc3066.txt">www.ietf.org/rfc/rfc3066.txt</a>&gt;
486
-
487
- </li>
488
- <li>Unicode Locale Data Markup Language (LDML) 1.6.1 Unicode Language and
489
- Locale Identifiers &lt;<a
490
- href="http://www.unicode.org/reports/tr35/tr35-11.html#Unicode_Language_and_Locale_Identifiers">www.unicode.org/reports/tr35/tr35-11.html#Unicode_Language_and_Locale_Identifiers</a>&gt;
491
-
492
- </li>
493
- <li>JDK 6 Documentation - Java Supported Locales &lt;<a
494
- href="http://java.sun.com/javase/6/docs/technotes/guides/intl/locale.doc.html">java.sun.com/javase/6/docs/technotes/guides/intl/locale.doc.html</a>&gt;
495
-
496
- </li>
497
- <li>Microsoft Developer Network - Locales and Languages &lt;<a
498
- href="http://msdn.microsoft.com/en-us/library/ms776264(VS.85).aspx">msdn.microsoft.com/en-us/library/ms776264(VS.85).aspx</a>&gt;
499
-
500
- </li>
501
- <li>ISO 639
502
-
503
- </li>
504
- <li>ISO 3166
505
-
506
- </li>
507
- </ul>
508
- <h2>Maintainer</h2>
509
- <p>
510
- Masao Mutoh &lt;mutoh at highway.ne.jp&gt;
511
- </p>
512
- </div>
513
-
514
-
515
-
516
-
517
- <p></p>
518
-
519
-
520
-
521
-
522
-
523
-
524
-
525
- </div><div class="clear" id="footer">Generated on Jan 21, 2008 / Allison 2 &copy; 2007 <a href="http://cloudbur.st">Cloudburst, LLC</a></div></div></body></html>