mysql2 0.3.11-x86-mswin32-60 → 0.3.18-x86-mswin32-60

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +15 -0
  2. data/README.md +280 -75
  3. data/ext/mysql2/client.c +721 -206
  4. data/ext/mysql2/client.h +26 -12
  5. data/ext/mysql2/extconf.rb +120 -16
  6. data/ext/mysql2/infile.c +122 -0
  7. data/ext/mysql2/infile.h +1 -0
  8. data/ext/mysql2/mysql2_ext.h +7 -4
  9. data/ext/mysql2/mysql_enc_name_to_ruby.h +168 -0
  10. data/ext/mysql2/mysql_enc_to_ruby.h +246 -0
  11. data/ext/mysql2/result.c +230 -112
  12. data/ext/mysql2/result.h +4 -1
  13. data/lib/mysql2.rb +46 -3
  14. data/lib/mysql2/1.8/mysql2.so +0 -0
  15. data/lib/mysql2/1.9/mysql2.so +0 -0
  16. data/lib/mysql2/2.0/mysql2.so +0 -0
  17. data/lib/mysql2/2.1/mysql2.so +0 -0
  18. data/lib/mysql2/client.rb +48 -200
  19. data/lib/mysql2/console.rb +5 -0
  20. data/lib/mysql2/em.rb +22 -3
  21. data/lib/mysql2/error.rb +71 -6
  22. data/lib/mysql2/mysql2.rb +2 -0
  23. data/lib/mysql2/version.rb +1 -1
  24. data/spec/configuration.yml.example +17 -0
  25. data/spec/em/em_spec.rb +90 -5
  26. data/spec/my.cnf.example +9 -0
  27. data/spec/mysql2/client_spec.rb +501 -69
  28. data/spec/mysql2/error_spec.rb +58 -44
  29. data/spec/mysql2/result_spec.rb +191 -74
  30. data/spec/spec_helper.rb +23 -3
  31. data/spec/test_data +1 -0
  32. data/support/libmysql.def +219 -0
  33. data/support/mysql_enc_to_ruby.rb +82 -0
  34. data/support/ruby_enc_to_mysql.rb +61 -0
  35. data/vendor/README +654 -0
  36. data/vendor/libmysql.dll +0 -0
  37. metadata +86 -221
  38. data/.gitignore +0 -12
  39. data/.rspec +0 -3
  40. data/.rvmrc +0 -1
  41. data/.travis.yml +0 -7
  42. data/CHANGELOG.md +0 -244
  43. data/Gemfile +0 -3
  44. data/MIT-LICENSE +0 -20
  45. data/Rakefile +0 -5
  46. data/benchmark/active_record.rb +0 -51
  47. data/benchmark/active_record_threaded.rb +0 -42
  48. data/benchmark/allocations.rb +0 -33
  49. data/benchmark/escape.rb +0 -36
  50. data/benchmark/query_with_mysql_casting.rb +0 -80
  51. data/benchmark/query_without_mysql_casting.rb +0 -56
  52. data/benchmark/sequel.rb +0 -37
  53. data/benchmark/setup_db.rb +0 -119
  54. data/benchmark/threaded.rb +0 -44
  55. data/mysql2.gemspec +0 -29
  56. data/tasks/benchmarks.rake +0 -20
  57. data/tasks/compile.rake +0 -71
  58. data/tasks/rspec.rake +0 -16
  59. data/tasks/vendor_mysql.rake +0 -40
@@ -3,15 +3,35 @@
3
3
  require 'rspec'
4
4
  require 'mysql2'
5
5
  require 'timeout'
6
+ require 'yaml'
7
+ DatabaseCredentials = YAML.load_file('spec/configuration.yml')
6
8
 
7
9
  RSpec.configure do |config|
10
+ def with_internal_encoding(encoding)
11
+ old_enc = Encoding.default_internal
12
+ Encoding.default_internal = encoding
13
+
14
+ yield
15
+ ensure
16
+ Encoding.default_internal = old_enc
17
+ end
18
+
19
+ config.before :each do
20
+ @client = Mysql2::Client.new DatabaseCredentials['root']
21
+ end
22
+
23
+ config.after :each do
24
+ @client.close
25
+ end
26
+
8
27
  config.before(:all) do
9
- client = Mysql2::Client.new :host => "localhost", :username => "root", :database => 'test'
28
+ client = Mysql2::Client.new DatabaseCredentials['root']
10
29
  client.query %[
11
30
  CREATE TABLE IF NOT EXISTS mysql2_test (
12
31
  id MEDIUMINT NOT NULL AUTO_INCREMENT,
13
32
  null_test VARCHAR(10),
14
33
  bit_test BIT(64),
34
+ single_bit_test BIT(1),
15
35
  tiny_int_test TINYINT,
16
36
  bool_cast_test TINYINT(1),
17
37
  small_int_test SMALLINT,
@@ -48,7 +68,7 @@ RSpec.configure do |config|
48
68
  client.query "DELETE FROM mysql2_test;"
49
69
  client.query %[
50
70
  INSERT INTO mysql2_test (
51
- null_test, bit_test, tiny_int_test, bool_cast_test, small_int_test, medium_int_test, int_test, big_int_test,
71
+ null_test, bit_test, single_bit_test, tiny_int_test, bool_cast_test, small_int_test, medium_int_test, int_test, big_int_test,
52
72
  float_test, float_zero_test, double_test, decimal_test, decimal_zero_test, date_test, date_time_test, timestamp_test, time_test,
53
73
  year_test, char_test, varchar_test, binary_test, varbinary_test, tiny_blob_test,
54
74
  tiny_text_test, blob_test, text_test, medium_blob_test, medium_text_test,
@@ -56,7 +76,7 @@ RSpec.configure do |config|
56
76
  )
57
77
 
58
78
  VALUES (
59
- NULL, b'101', 1, 1, 10, 10, 10, 10,
79
+ NULL, b'101', b'1', 1, 1, 10, 10, 10, 10,
60
80
  10.3, 0, 10.3, 10.3, 0, '2010-4-4', '2010-4-4 11:44:00', '2010-4-4 11:44:00', '11:44:00',
61
81
  2009, "test", "test", "test", "test", "test",
62
82
  "test", "test", "test", "test", "test",
@@ -0,0 +1 @@
1
+ \N Hello World
@@ -0,0 +1,219 @@
1
+ ; MySQL's Connector/C ships with a libmysql.dll main library and libmysql.lib
2
+ ; interface library. However, the interface library is not linkable by MinGW.
3
+ ;
4
+ ; At compile time, we generate a libmysql.a interface library with dlltool.exe.
5
+ ;
6
+ ; This def file can be re-generated using the reimp.exe or gendef.exe tools.
7
+ ;
8
+ LIBRARY libmysql.dll
9
+ EXPORTS
10
+ mysql_affected_rows
11
+ mysql_affected_rows@4
12
+ mysql_change_user
13
+ mysql_change_user@16
14
+ mysql_character_set_name
15
+ mysql_character_set_name@4
16
+ mysql_close
17
+ mysql_close@4
18
+ mysql_data_seek
19
+ mysql_data_seek@12
20
+ mysql_debug
21
+ mysql_debug@4
22
+ mysql_dump_debug_info
23
+ mysql_dump_debug_info@4
24
+ mysql_eof
25
+ mysql_eof@4
26
+ mysql_errno
27
+ mysql_errno@4
28
+ mysql_error
29
+ mysql_error@4
30
+ mysql_escape_string
31
+ mysql_escape_string@12
32
+ mysql_fetch_field
33
+ mysql_fetch_field@4
34
+ mysql_fetch_field_direct
35
+ mysql_fetch_field_direct@8
36
+ mysql_fetch_fields
37
+ mysql_fetch_fields@4
38
+ mysql_fetch_lengths
39
+ mysql_fetch_lengths@4
40
+ mysql_fetch_row
41
+ mysql_fetch_row@4
42
+ mysql_field_count
43
+ mysql_field_count@4
44
+ mysql_field_seek
45
+ mysql_field_seek@8
46
+ mysql_field_tell
47
+ mysql_field_tell@4
48
+ mysql_free_result
49
+ mysql_free_result@4
50
+ mysql_get_client_info
51
+ mysql_get_client_info@0
52
+ mysql_get_client_version
53
+ mysql_get_client_version@0
54
+ mysql_get_host_info
55
+ mysql_get_host_info@4
56
+ mysql_get_option
57
+ mysql_get_option@12
58
+ mysql_get_proto_info
59
+ mysql_get_proto_info@4
60
+ mysql_get_server_info
61
+ mysql_get_server_info@4
62
+ mysql_get_server_version
63
+ mysql_get_server_version@4
64
+ mysql_get_ssl_cipher
65
+ mysql_get_ssl_cipher@4
66
+ mysql_hex_string
67
+ mysql_hex_string@12
68
+ mysql_info
69
+ mysql_info@4
70
+ mysql_init
71
+ mysql_init@4
72
+ mysql_insert_id
73
+ mysql_insert_id@4
74
+ mysql_kill
75
+ mysql_kill@8
76
+ mysql_library_end
77
+ mysql_library_end@0
78
+ mysql_library_init
79
+ mysql_library_init@12
80
+ mysql_list_dbs
81
+ mysql_list_dbs@8
82
+ mysql_list_fields
83
+ mysql_list_fields@12
84
+ mysql_list_processes
85
+ mysql_list_processes@4
86
+ mysql_list_tables
87
+ mysql_list_tables@8
88
+ mysql_more_results
89
+ mysql_more_results@4
90
+ mysql_next_result
91
+ mysql_next_result@4
92
+ mysql_num_fields
93
+ mysql_num_fields@4
94
+ mysql_num_rows
95
+ mysql_num_rows@4
96
+ mysql_options
97
+ mysql_options@12
98
+ mysql_options4
99
+ mysql_options4@16
100
+ mysql_ping
101
+ mysql_ping@4
102
+ mysql_query
103
+ mysql_query@8
104
+ mysql_read_query_result
105
+ mysql_read_query_result@4
106
+ mysql_real_connect
107
+ mysql_real_connect@32
108
+ mysql_real_escape_string
109
+ mysql_real_escape_string@16
110
+ mysql_real_query
111
+ mysql_real_query@12
112
+ mysql_refresh
113
+ mysql_refresh@8
114
+ mysql_reset_connection
115
+ mysql_reset_connection@4
116
+ mysql_rollback
117
+ mysql_rollback@4
118
+ mysql_row_seek
119
+ mysql_row_seek@8
120
+ mysql_row_tell
121
+ mysql_row_tell@4
122
+ mysql_select_db
123
+ mysql_select_db@8
124
+ mysql_send_query
125
+ mysql_send_query@12
126
+ mysql_server_end
127
+ mysql_server_end@0
128
+ mysql_server_init
129
+ mysql_server_init@12
130
+ mysql_session_track_get_first
131
+ mysql_session_track_get_first@16
132
+ mysql_session_track_get_next
133
+ mysql_session_track_get_next@16
134
+ mysql_set_character_set
135
+ mysql_set_character_set@8
136
+ mysql_set_local_infile_default
137
+ mysql_set_local_infile_default@4
138
+ mysql_set_local_infile_handler
139
+ mysql_set_local_infile_handler@24
140
+ mysql_set_server_option
141
+ mysql_set_server_option@8
142
+ mysql_shutdown
143
+ mysql_shutdown@8
144
+ mysql_sqlstate
145
+ mysql_sqlstate@4
146
+ mysql_ssl_set
147
+ mysql_ssl_set@24
148
+ mysql_stat
149
+ mysql_stat@4
150
+ mysql_stmt_affected_rows
151
+ mysql_stmt_affected_rows@4
152
+ mysql_stmt_attr_get
153
+ mysql_stmt_attr_get@12
154
+ mysql_stmt_attr_set
155
+ mysql_stmt_attr_set@12
156
+ mysql_stmt_bind_param
157
+ mysql_stmt_bind_param@8
158
+ mysql_stmt_bind_result
159
+ mysql_stmt_bind_result@8
160
+ mysql_stmt_close
161
+ mysql_stmt_close@4
162
+ mysql_stmt_data_seek
163
+ mysql_stmt_data_seek@12
164
+ mysql_stmt_errno
165
+ mysql_stmt_errno@4
166
+ mysql_stmt_error
167
+ mysql_stmt_error@4
168
+ mysql_stmt_execute
169
+ mysql_stmt_execute@4
170
+ mysql_stmt_fetch
171
+ mysql_stmt_fetch@4
172
+ mysql_stmt_fetch_column
173
+ mysql_stmt_fetch_column@16
174
+ mysql_stmt_field_count
175
+ mysql_stmt_field_count@4
176
+ mysql_stmt_free_result
177
+ mysql_stmt_free_result@4
178
+ mysql_stmt_init
179
+ mysql_stmt_init@4
180
+ mysql_stmt_insert_id
181
+ mysql_stmt_insert_id@4
182
+ mysql_stmt_next_result
183
+ mysql_stmt_next_result@4
184
+ mysql_stmt_num_rows
185
+ mysql_stmt_num_rows@4
186
+ mysql_stmt_param_count
187
+ mysql_stmt_param_count@4
188
+ mysql_stmt_param_metadata
189
+ mysql_stmt_param_metadata@4
190
+ mysql_stmt_prepare
191
+ mysql_stmt_prepare@12
192
+ mysql_stmt_reset
193
+ mysql_stmt_reset@4
194
+ mysql_stmt_result_metadata
195
+ mysql_stmt_result_metadata@4
196
+ mysql_stmt_row_seek
197
+ mysql_stmt_row_seek@8
198
+ mysql_stmt_row_tell
199
+ mysql_stmt_row_tell@4
200
+ mysql_stmt_send_long_data
201
+ mysql_stmt_send_long_data@16
202
+ mysql_stmt_sqlstate
203
+ mysql_stmt_sqlstate@4
204
+ mysql_stmt_store_result
205
+ mysql_stmt_store_result@4
206
+ mysql_store_result
207
+ mysql_store_result@4
208
+ mysql_thread_end
209
+ mysql_thread_end@0
210
+ mysql_thread_id
211
+ mysql_thread_id@4
212
+ mysql_thread_init
213
+ mysql_thread_init@0
214
+ mysql_thread_safe
215
+ mysql_thread_safe@0
216
+ mysql_use_result
217
+ mysql_use_result@4
218
+ mysql_warning_count
219
+ mysql_warning_count@4
@@ -0,0 +1,82 @@
1
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
2
+ require 'mysql2'
3
+
4
+ user, pass, host, port = ENV.values_at('user', 'pass', 'host', 'port')
5
+
6
+ mysql_to_rb = {
7
+ "big5" => "Big5",
8
+ "dec8" => "NULL",
9
+ "cp850" => "CP850",
10
+ "hp8" => "NULL",
11
+ "koi8r" => "KOI8-R",
12
+ "latin1" => "ISO-8859-1",
13
+ "latin2" => "ISO-8859-2",
14
+ "swe7" => "NULL",
15
+ "ascii" => "US-ASCII",
16
+ "ujis" => "eucJP-ms",
17
+ "sjis" => "Shift_JIS",
18
+ "hebrew" => "ISO-8859-8",
19
+ "tis620" => "TIS-620",
20
+ "euckr" => "EUC-KR",
21
+ "koi8u" => "KOI8-R",
22
+ "gb2312" => "GB2312",
23
+ "greek" => "ISO-8859-7",
24
+ "cp1250" => "Windows-1250",
25
+ "gbk" => "GBK",
26
+ "latin5" => "ISO-8859-9",
27
+ "armscii8" => "NULL",
28
+ "utf8" => "UTF-8",
29
+ "ucs2" => "UTF-16BE",
30
+ "cp866" => "IBM866",
31
+ "keybcs2" => "NULL",
32
+ "macce" => "macCentEuro",
33
+ "macroman" => "macRoman",
34
+ "cp852" => "CP852",
35
+ "latin7" => "ISO-8859-13",
36
+ "utf8mb4" => "UTF-8",
37
+ "cp1251" => "Windows-1251",
38
+ "utf16" => "UTF-16",
39
+ "cp1256" => "Windows-1256",
40
+ "cp1257" => "Windows-1257",
41
+ "utf32" => "UTF-32",
42
+ "binary" => "ASCII-8BIT",
43
+ "geostd8" => "NULL",
44
+ "cp932" => "Windows-31J",
45
+ "eucjpms" => "eucJP-ms"
46
+ }
47
+
48
+ client = Mysql2::Client.new(:username => user, :password => pass, :host => host, :port => port.to_i)
49
+ collations = client.query "SHOW COLLATION", :as => :array
50
+ encodings = Array.new(collations.to_a.last[2].to_i)
51
+ encodings_with_nil = Array.new(encodings.size)
52
+
53
+ collations.each do |collation|
54
+ mysql_col_idx = collation[2].to_i
55
+ rb_enc = mysql_to_rb[collation[1]]
56
+ encodings[mysql_col_idx-1] = [mysql_col_idx, rb_enc]
57
+ end
58
+
59
+ encodings.each_with_index do |encoding, idx|
60
+ encodings_with_nil[idx] = (encoding || [idx, "NULL"])
61
+ end
62
+
63
+ encodings_with_nil.sort! do |a, b|
64
+ a[0] <=> b[0]
65
+ end
66
+
67
+ encodings_with_nil = encodings_with_nil.map do |encoding|
68
+ name = "NULL"
69
+
70
+ if !encoding.nil? && encoding[1] != "NULL"
71
+ name = "\"#{encoding[1]}\""
72
+ end
73
+
74
+ " #{name}"
75
+ end
76
+
77
+ # start printing output
78
+
79
+ puts "const char *mysql2_mysql_enc_to_rb[] = {"
80
+ puts encodings_with_nil.join(",\n")
81
+ puts "};"
82
+ puts
@@ -0,0 +1,61 @@
1
+ mysql_to_rb = {
2
+ "big5" => "Big5",
3
+ "dec8" => nil,
4
+ "cp850" => "CP850",
5
+ "hp8" => nil,
6
+ "koi8r" => "KOI8-R",
7
+ "latin1" => "ISO-8859-1",
8
+ "latin2" => "ISO-8859-2",
9
+ "swe7" => nil,
10
+ "ascii" => "US-ASCII",
11
+ "ujis" => "eucJP-ms",
12
+ "sjis" => "Shift_JIS",
13
+ "hebrew" => "ISO-8859-8",
14
+ "tis620" => "TIS-620",
15
+ "euckr" => "EUC-KR",
16
+ "koi8u" => "KOI8-R",
17
+ "gb2312" => "GB2312",
18
+ "greek" => "ISO-8859-7",
19
+ "cp1250" => "Windows-1250",
20
+ "gbk" => "GBK",
21
+ "latin5" => "ISO-8859-9",
22
+ "armscii8" => nil,
23
+ "utf8" => "UTF-8",
24
+ "ucs2" => "UTF-16BE",
25
+ "cp866" => "IBM866",
26
+ "keybcs2" => nil,
27
+ "macce" => "macCentEuro",
28
+ "macroman" => "macRoman",
29
+ "cp852" => "CP852",
30
+ "latin7" => "ISO-8859-13",
31
+ "utf8mb4" => "UTF-8",
32
+ "cp1251" => "Windows-1251",
33
+ "utf16" => "UTF-16",
34
+ "cp1256" => "Windows-1256",
35
+ "cp1257" => "Windows-1257",
36
+ "utf32" => "UTF-32",
37
+ "binary" => "ASCII-8BIT",
38
+ "geostd8" => nil,
39
+ "cp932" => "Windows-31J",
40
+ "eucjpms" => "eucJP-ms"
41
+ }
42
+
43
+ puts <<-header
44
+ %readonly-tables
45
+ %enum
46
+ %define lookup-function-name mysql2_mysql_enc_name_to_rb
47
+ %define hash-function-name mysql2_mysql_enc_name_to_rb_hash
48
+ %struct-type
49
+ struct mysql2_mysql_enc_name_to_rb_map { const char *name; const char *rb_name; }
50
+ %%
51
+ header
52
+
53
+ mysql_to_rb.each do |mysql, ruby|
54
+ if ruby.nil?
55
+ name = "NULL"
56
+ else
57
+ name = "\"#{ruby}\""
58
+ end
59
+
60
+ puts "#{mysql}, #{name}"
61
+ end
@@ -0,0 +1,654 @@
1
+ MySQL Connector/C 6.1
2
+
3
+ This is a release of MySQL Connector/C, Oracle's dual-
4
+ license C Driver for MySQL. For the avoidance of
5
+ doubt, this particular copy of the software is released
6
+ under the version 2 of the GNU General Public License.
7
+ MySQL Connector/C is brought to you by Oracle.
8
+
9
+ Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
10
+
11
+ License information can be found in the COPYING file.
12
+
13
+ MySQL FOSS License Exception
14
+ We want free and open source software applications under
15
+ certain licenses to be able to use the GPL-licensed MySQL
16
+ Connector/C (specified GPL-licensed MySQL client libraries)
17
+ despite the fact that not all such FOSS licenses are
18
+ compatible with version 2 of the GNU General Public License.
19
+ Therefore there are special exceptions to the terms and
20
+ conditions of the GPLv2 as applied to these client libraries,
21
+ which are identified and described in more detail in the
22
+ FOSS License Exception at
23
+ <http://www.mysql.com/about/legal/licensing/foss-exception/>
24
+
25
+ This software is OSI Certified Open Source Software.
26
+ OSI Certified is a certification mark of the Open Source Initiative.
27
+
28
+ This distribution may include materials developed by third
29
+ parties. For license and attribution notices for these
30
+ materials, please refer to the documentation that accompanies
31
+ this distribution (see the "Licenses for Third-Party Components"
32
+ appendix) or view the online documentation at
33
+ <http://dev.mysql.com/doc/>
34
+ A copy of the license/notices is also reproduced below.
35
+
36
+ GPLv2 Disclaimer
37
+ For the avoidance of doubt, except that if any license choice
38
+ other than GPL or LGPL is available it will apply instead,
39
+ Oracle elects to use only the General Public License version 2
40
+ (GPLv2) at this time for any software where a choice of GPL
41
+ license versions is made available with the language indicating
42
+ that GPLv2 or any later version may be used, or where a choice
43
+ of which version of the GPL is applied is otherwise unspecified.
44
+
45
+ CONTENTS
46
+
47
+ * Documentation Location
48
+ * Third-Party Component Notices
49
+
50
+ DOCUMENTATION LOCATION
51
+
52
+ You may also find the latest copy of the documentation on
53
+ the MySQL website at
54
+ <http://dev.mysql.com/doc/connector-c/en/index.html>
55
+
56
+
57
+ ***************************************************************
58
+
59
+ Third-Party Component Notices
60
+
61
+ ****************************************************************
62
+ Appendix A. Licenses for Third-Party Components
63
+
64
+ The following is a list of the libraries we have included with the
65
+ Connector/C source and components used to test it. We are
66
+ thankful to all individuals that have created these. Some of the
67
+ components require that their licensing terms be included in the
68
+ documentation of products that include them. Cross references to
69
+ these licensing terms are given with the applicable items in the
70
+ list.
71
+
72
+ * GroupLens Research Project
73
+ The MySQL Quality Assurance team would like to acknowledge the
74
+ use of the MovieLens Data Sets (10 million ratings and 100,000
75
+ tags for 10681 movies by 71567 users) to help test MySQL
76
+ products and to thank the GroupLens Research Project at the
77
+ University of Minnesota for making the data sets available.
78
+
79
+
80
+ * Section A.1, "dtoa.c License"
81
+ * Section A.2, "Fred Fish's Dbug Library License"
82
+ * Section A.3, "GNU General Public License Version 2.0, June
83
+ 1991"
84
+ * Section A.4, "md5 (Message-Digest Algorithm 5) License"
85
+ * Section A.5, "RegEX-Spencer Library License"
86
+ * Section A.6, "Richard A. O'Keefe String Library License"
87
+ * Section A.7, "SHA-1 in C License"
88
+ * Section A.8, "zlib License"
89
+
90
+
91
+ A.1. dtoa.c License
92
+ ----------------------------------------------------------------
93
+ The following software may be included in this product:
94
+
95
+ dtoa.c
96
+
97
+ The author of this software is David M. Gay.
98
+
99
+ Copyright (c) 1991, 2000, 2001 by Lucent Technologies.
100
+
101
+ Permission to use, copy, modify, and distribute this software for
102
+ any purpose without fee is hereby granted, provided that this entire
103
+ notice is included in all copies of any software which is or includes
104
+
105
+ a copy or modification of this software and in all copies of the
106
+ supporting documentation for such software.
107
+
108
+ THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR
109
+ IMPLIED WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR LUCENT
110
+ MAKES ANY REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE
111
+ MERCHANTABILITY OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR
112
+ PURPOSE.
113
+
114
+
115
+ A.2. Fred Fish's Dbug Library License
116
+ ----------------------------------------------------------------
117
+ The following software may be included in this product:
118
+
119
+ Fred Fish's Dbug Library
120
+ N O T I C E
121
+
122
+ Copyright Abandoned, 1987, Fred Fish
123
+
124
+ This previously copyrighted work has been placed into the public
125
+ domain by the author and may be freely used for any purpose,
126
+ private or commercial.
127
+
128
+ Because of the number of inquiries I was receiving about the use
129
+ of this product in commercially developed works I have decided to
130
+ simply make it public domain to further its unrestricted use. I
131
+ specifically would be most happy to see this material become a
132
+ part of the standard Unix distributions by AT&T and the Berkeley
133
+ Computer Science Research Group, and a standard part of the GNU
134
+ system from the Free Software Foundation.
135
+
136
+ I would appreciate it, as a courtesy, if this notice is left in
137
+ all copies and derivative works. Thank you.
138
+
139
+ The author makes no warranty of any kind with respect to this
140
+ product and explicitly disclaims any implied warranties of mer-
141
+ chantability or fitness for any particular purpose.
142
+
143
+ The dbug_analyze.c file is subject to the following notice:
144
+
145
+ Copyright June 1987, Binayak Banerjee
146
+ All rights reserved.
147
+
148
+ This program may be freely distributed under the same terms and
149
+ conditions as Fred Fish's Dbug package.
150
+
151
+
152
+ A.3. GNU General Public License Version 2.0, June 1991
153
+ ----------------------------------------------------------------
154
+ The following applies to all products licensed under the GNU General
155
+ Public License, Version 2.0: You may not use the identified files
156
+ except in compliance with the GNU General Public License, Version
157
+ 2.0 (the "License.") You may obtain a copy of the License at
158
+ http://www.gnu.org/licenses/gpl-2.0.txt. A copy of the license is
159
+ also reproduced below. Unless required by applicable law or agreed
160
+ to in writing, software distributed under the License is distributed
161
+ on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
162
+ either express or implied. See the License for the specific language
163
+ governing permissions and limitations under the License.
164
+
165
+ GNU GENERAL PUBLIC LICENSE
166
+ Version 2, June 1991
167
+
168
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
169
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
170
+ Everyone is permitted to copy and distribute verbatim
171
+ copies of this license document, but changing it is not
172
+ allowed.
173
+
174
+ Preamble
175
+
176
+ The licenses for most software are designed to take away your
177
+ freedom to share and change it. By contrast, the GNU General Public
178
+ License is intended to guarantee your freedom to share and change free
179
+ software--to make sure the software is free for all its users. This
180
+ General Public License applies to most of the Free Software
181
+ Foundation's software and to any other program whose authors commit to
182
+ using it. (Some other Free Software Foundation software is covered by
183
+ the GNU Lesser General Public License instead.) You can apply it to
184
+ your programs, too.
185
+
186
+ When we speak of free software, we are referring to freedom, not
187
+ price. Our General Public Licenses are designed to make sure that you
188
+ have the freedom to distribute copies of free software (and charge for
189
+ this service if you wish), that you receive source code or can get it
190
+ if you want it, that you can change the software or use pieces of it
191
+ in new free programs; and that you know you can do these things.
192
+
193
+ To protect your rights, we need to make restrictions that forbid
194
+ anyone to deny you these rights or to ask you to surrender the rights.
195
+ These restrictions translate to certain responsibilities for you if you
196
+ distribute copies of the software, or if you modify it.
197
+
198
+ For example, if you distribute copies of such a program, whether
199
+ gratis or for a fee, you must give the recipients all the rights that
200
+ you have. You must make sure that they, too, receive or can get the
201
+ source code. And you must show them these terms so they know their
202
+ rights.
203
+
204
+ We protect your rights with two steps: (1) copyright the software,
205
+ and (2) offer you this license which gives you legal permission to
206
+ copy, distribute and/or modify the software.
207
+
208
+ Also, for each author's protection and ours, we want to make certain
209
+ that everyone understands that there is no warranty for this free
210
+ software. If the software is modified by someone else and passed on,
211
+
212
+ we want its recipients to know that what they have is not the original,
213
+ so that any problems introduced by others will not reflect on the
214
+ original authors' reputations.
215
+
216
+ Finally, any free program is threatened constantly by software
217
+ patents. We wish to avoid the danger that redistributors of a free
218
+ program will individually obtain patent licenses, in effect making the
219
+ program proprietary. To prevent this, we have made it clear that any
220
+ patent must be licensed for everyone's free use or not licensed at all.
221
+
222
+ The precise terms and conditions for copying, distribution and
223
+ modification follow.
224
+
225
+ GNU GENERAL PUBLIC LICENSE
226
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
227
+
228
+ 0. This License applies to any program or other work which contains
229
+ a notice placed by the copyright holder saying it may be distributed
230
+ under the terms of this General Public License. The "Program", below,
231
+ refers to any such program or work, and a "work based on the Program"
232
+ means either the Program or any derivative work under copyright law:
233
+ that is to say, a work containing the Program or a portion of it,
234
+ either verbatim or with modifications and/or translated into another
235
+ language. (Hereinafter, translation is included without limitation in
236
+ the term "modification".) Each licensee is addressed as "you".
237
+
238
+ Activities other than copying, distribution and modification are not
239
+ covered by this License; they are outside its scope. The act of
240
+ running the Program is not restricted, and the output from the Program
241
+ is covered only if its contents constitute a work based on the
242
+ Program (independent of having been made by running the Program).
243
+ Whether that is true depends on what the Program does.
244
+
245
+
246
+ 1. You may copy and distribute verbatim copies of the Program's
247
+ source code as you receive it, in any medium, provided that you
248
+ conspicuously and appropriately publish on each copy an appropriate
249
+ copyright notice and disclaimer of warranty; keep intact all the
250
+ notices that refer to this License and to the absence of any warranty;
251
+ and give any other recipients of the Program a copy of this License
252
+ along with the Program.
253
+
254
+ You may charge a fee for the physical act of transferring a copy, and
255
+ you may at your option offer warranty protection in exchange for a fee.
256
+
257
+
258
+ 2. You may modify your copy or copies of the Program or any portion
259
+ of it, thus forming a work based on the Program, and copy and
260
+ distribute such modifications or work under the terms of Section 1
261
+ above, provided that you also meet all of these conditions:
262
+
263
+ a) You must cause the modified files to carry prominent notices
264
+ stating that you changed the files and the date of any change.
265
+
266
+ b) You must cause any work that you distribute or publish, that in
267
+ whole or in part contains or is derived from the Program or any
268
+ part thereof, to be licensed as a whole at no charge to all third
269
+ parties under the terms of this License.
270
+
271
+ c) If the modified program normally reads commands interactively
272
+ when run, you must cause it, when started running for such
273
+ interactive use in the most ordinary way, to print or display an
274
+ announcement including an appropriate copyright notice and a
275
+ notice that there is no warranty (or else, saying that you provide
276
+ a warranty) and that users may redistribute the program under
277
+ these conditions, and telling the user how to view a copy of this
278
+ License. (Exception: if the Program itself is interactive but
279
+ does not normally print such an announcement, your work based on
280
+ the Program is not required to print an announcement.)
281
+
282
+ These requirements apply to the modified work as a whole. If
283
+ identifiable sections of that work are not derived from the Program,
284
+ and can be reasonably considered independent and separate works in
285
+ themselves, then this License, and its terms, do not apply to those
286
+ sections when you distribute them as separate works. But when you
287
+ distribute the same sections as part of a whole which is a work based
288
+ on the Program, the distribution of the whole must be on the terms of
289
+ this License, whose permissions for other licensees extend to the
290
+ entire whole, and thus to each and every part regardless of who wrote it.
291
+
292
+ Thus, it is not the intent of this section to claim rights or contest
293
+ your rights to work written entirely by you; rather, the intent is to
294
+ exercise the right to control the distribution of derivative or
295
+ collective works based on the Program.
296
+
297
+ In addition, mere aggregation of another work not based on the Program
298
+ with the Program (or with a work based on the Program) on a volume of
299
+ a storage or distribution medium does not bring the other work under
300
+ the scope of this License.
301
+
302
+
303
+ 3. You may copy and distribute the Program (or a work based on it,
304
+ under Section 2) in object code or executable form under the terms of
305
+ Sections 1 and 2 above provided that you also do one of the following:
306
+
307
+ a) Accompany it with the complete corresponding machine-readable
308
+ source code, which must be distributed under the terms of Sections
309
+ 1 and 2 above on a medium customarily used for software
310
+ interchange; or,
311
+
312
+ b) Accompany it with a written offer, valid for at least three
313
+ years, to give any third party, for a charge no more than your
314
+ cost of physically performing source distribution, a complete
315
+ machine-readable copy of the corresponding source code, to be
316
+ distributed under the terms of Sections 1 and 2 above on a medium
317
+ customarily used for software interchange; or,
318
+
319
+ c) Accompany it with the information you received as to the offer
320
+ to distribute corresponding source code. (This alternative is
321
+ allowed only for noncommercial distribution and only if you
322
+ received the program in object code or executable form with such
323
+ an offer, in accord with Subsection b above.)
324
+
325
+ The source code for a work means the preferred form of the work for
326
+ making modifications to it. For an executable work, complete source
327
+ code means all the source code for all modules it contains, plus any
328
+ associated interface definition files, plus the scripts used to
329
+ control compilation and installation of the executable. However, as
330
+ a special exception, the source code distributed need not include
331
+ anything that is normally distributed (in either source or binary
332
+ form) with the major components (compiler, kernel, and so on) of the
333
+ operating system on which the executable runs, unless that component
334
+ itself accompanies the executable.
335
+
336
+ If distribution of executable or object code is made by offering
337
+ access to copy from a designated place, then offering equivalent
338
+ access to copy the source code from the same place counts as
339
+ distribution of the source code, even though third parties are not
340
+ compelled to copy the source along with the object code.
341
+
342
+
343
+ 4. You may not copy, modify, sublicense, or distribute the Program
344
+ except as expressly provided under this License. Any attempt
345
+ otherwise to copy, modify, sublicense or distribute the Program is
346
+ void, and will automatically terminate your rights under this License.
347
+ However, parties who have received copies, or rights, from you under
348
+ this License will not have their licenses terminated so long as such
349
+ parties remain in full compliance.
350
+
351
+
352
+ 5. You are not required to accept this License, since you have not
353
+ signed it. However, nothing else grants you permission to modify or
354
+ distribute the Program or its derivative works. These actions are
355
+ prohibited by law if you do not accept this License. Therefore, by
356
+ modifying or distributing the Program (or any work based on the
357
+ Program), you indicate your acceptance of this License to do so, and
358
+ all its terms and conditions for copying, distributing or modifying
359
+ the Program or works based on it.
360
+
361
+
362
+ 6. Each time you redistribute the Program (or any work based on the
363
+ Program), the recipient automatically receives a license from the
364
+ original licensor to copy, distribute or modify the Program subject to
365
+ these terms and conditions. You may not impose any further
366
+ restrictions on the recipients' exercise of the rights granted herein.
367
+ You are not responsible for enforcing compliance by third parties to
368
+ this License.
369
+
370
+
371
+ 7. If, as a consequence of a court judgment or allegation of patent
372
+ infringement or for any other reason (not limited to patent issues),
373
+ conditions are imposed on you (whether by court order, agreement or
374
+ otherwise) that contradict the conditions of this License, they do not
375
+ excuse you from the conditions of this License. If you cannot
376
+ distribute so as to satisfy simultaneously your obligations under this
377
+ License and any other pertinent obligations, then as a consequence you
378
+ may not distribute the Program at all. For example, if a patent
379
+ license would not permit royalty-free redistribution of the Program by
380
+ all those who receive copies directly or indirectly through you, then
381
+ the only way you could satisfy both it and this License would be to
382
+ refrain entirely from distribution of the Program.
383
+
384
+ If any portion of this section is held invalid or unenforceable under
385
+ any particular circumstance, the balance of the section is intended to
386
+ apply and the section as a whole is intended to apply in other
387
+ circumstances.
388
+
389
+ It is not the purpose of this section to induce you to infringe any
390
+ patents or other property right claims or to contest validity of any
391
+ such claims; this section has the sole purpose of protecting the
392
+ integrity of the free software distribution system, which is
393
+ implemented by public license practices. Many people have made
394
+ generous contributions to the wide range of software distributed
395
+ through that system in reliance on consistent application of that
396
+ system; it is up to the author/donor to decide if he or she is willing
397
+ to distribute software through any other system and a licensee cannot
398
+ impose that choice.
399
+
400
+ This section is intended to make thoroughly clear what is believed to
401
+ be a consequence of the rest of this License.
402
+
403
+
404
+ 8. If the distribution and/or use of the Program is restricted in
405
+ certain countries either by patents or by copyrighted interfaces, the
406
+ original copyright holder who places the Program under this License
407
+ may add an explicit geographical distribution limitation excluding
408
+ those countries, so that distribution is permitted only in or among
409
+ countries not thus excluded. In such case, this License incorporates
410
+ the limitation as if written in the body of this License.
411
+
412
+
413
+ 9. The Free Software Foundation may publish revised and/or new
414
+ versions of the General Public License from time to time. Such new
415
+ versions will be similar in spirit to the present version, but may
416
+ differ in detail to address new problems or concerns.
417
+
418
+ Each version is given a distinguishing version number. If the Program
419
+ specifies a version number of this License which applies to it and
420
+ "any later version", you have the option of following the terms and
421
+ conditions either of that version or of any later version published by
422
+ the Free Software Foundation. If the Program does not specify a
423
+ version number of this License, you may choose any version ever
424
+ published by the Free Software Foundation.
425
+
426
+ 10. If you wish to incorporate parts of the Program into other free
427
+ programs whose distribution conditions are different, write to the
428
+ author to ask for permission. For software which is copyrighted by the
429
+ Free Software Foundation, write to the Free Software Foundation; we
430
+ sometimes make exceptions for this. Our decision will be guided by the
431
+ two goals of preserving the free status of all derivatives of our free
432
+ software and of promoting the sharing and reuse of software generally.
433
+
434
+ NO WARRANTY
435
+
436
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
437
+ WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
438
+
439
+ EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
440
+ OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND,
441
+ EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
442
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
443
+ THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS
444
+ WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
445
+ ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
446
+
447
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
448
+ WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
449
+ AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU
450
+ FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
451
+ CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
452
+ PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
453
+ RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
454
+ FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF
455
+ SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
456
+ DAMAGES.
457
+
458
+ END OF TERMS AND CONDITIONS
459
+
460
+ How to Apply These Terms to Your New Programs
461
+
462
+ If you develop a new program, and you want it to be of the greatest
463
+ possible use to the public, the best way to achieve this is to make it
464
+ free software which everyone can redistribute and change under these
465
+ terms.
466
+
467
+ To do so, attach the following notices to the program. It is safest
468
+ to attach them to the start of each source file to most effectively
469
+ convey the exclusion of warranty; and each file should have at least
470
+ the "copyright" line and a pointer to where the full notice is found.
471
+
472
+ <one line to give the program's name and a brief idea of what it
473
+ does.>
474
+ Copyright (C) <year> <name of author>
475
+
476
+ This program is free software; you can redistribute it and/or
477
+ modify it under the terms of the GNU General Public License as
478
+ published by the Free Software Foundation; either version
479
+ 2 of the License, or (at your option) any later version.
480
+
481
+ This program is distributed in the hope that it will be useful,
482
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
483
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
484
+ GNU General Public License for more details.
485
+
486
+ You should have received a copy of the GNU General Public License
487
+ along with this program; if not, write to the Free Software
488
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
489
+ 02110-1301 USA.
490
+
491
+ Also add information on how to contact you by electronic and paper mail.
492
+
493
+ If the program is interactive, make it output a short notice like this
494
+ when it starts in an interactive mode:
495
+
496
+ Gnomovision version 69, Copyright (C) year name of author
497
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
498
+ type 'show w'. This is free software, and you are welcome
499
+ to redistribute it under certain conditions; type 'show c'
500
+ for details.
501
+
502
+ The hypothetical commands 'show w' and 'show c' should show the
503
+ appropriate parts of the General Public License. Of course, the
504
+ commands you use may be called something other than 'show w' and
505
+ 'show c'; they could even be mouse-clicks or menu items--whatever
506
+ suits your program.
507
+
508
+ You should also get your employer (if you work as a programmer) or your
509
+ school, if any, to sign a "copyright disclaimer" for the program, if
510
+ necessary. Here is a sample; alter the names:
511
+
512
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
513
+ program 'Gnomovision' (which makes passes at compilers) written
514
+ by James Hacker.
515
+
516
+ <signature of Ty Coon>, 1 April 1989
517
+ Ty Coon, President of Vice
518
+
519
+ This General Public License does not permit incorporating your program
520
+ into proprietary programs. If your program is a subroutine library,
521
+ you may consider it more useful to permit linking proprietary
522
+ applications with the library. If this is what you want to do, use
523
+ the GNU Lesser General Public License instead of this License.
524
+
525
+
526
+ A.4. md5 (Message-Digest Algorithm 5) License
527
+ ----------------------------------------------------------------
528
+ The following software may be included in this product:
529
+
530
+ md5 (Message-Digest Algorithm 5)
531
+
532
+ This code implements the MD5 message-digest algorithm.
533
+ The algorithm is due to Ron Rivest. This code was
534
+ written by Colin Plumb in 1993, no copyright is claimed.
535
+ This code is in the public domain; do with it what you wish.
536
+
537
+ Equivalent code is available from RSA Data Security, Inc.
538
+ This code has been tested against that, and is equivalent,
539
+ except that you don't need to include two pages of legalese
540
+ with every copy.
541
+
542
+ The code has been modified by Mikael Ronstroem to handle
543
+ calculating a hash value of a key that is always a multiple
544
+ of 4 bytes long. Word 0 of the calculated 4-word hash value
545
+ is returned as the hash value.
546
+
547
+
548
+ A.5. RegEX-Spencer Library License
549
+ ----------------------------------------------------------------
550
+
551
+ The following software may be included in this product:
552
+
553
+ Henry Spencer's Regular-Expression Library (RegEX-Spencer)
554
+
555
+ Copyright 1992, 1993, 1994 Henry Spencer. All rights reserved.
556
+ This software is not subject to any license of the American Telephone
557
+ and Telegraph Company or of the Regents of the University of California.
558
+
559
+ Permission is granted to anyone to use this software for any purposeon
560
+ any computer system, and to alter it and redistribute it, subject
561
+ to the following restrictions:
562
+
563
+ 1. The author is not responsible for the consequences of use of this
564
+ software, no matter how awful, even if they arise from flaws in it.
565
+
566
+ 2. The origin of this software must not be misrepresented, either by
567
+ explicit claim or by omission. Since few users ever read sources,
568
+ credits must appear in the documentation.
569
+
570
+ 3. Altered versions must be plainly marked as such, and must not be
571
+ misrepresented as being the original software. Since few users
572
+ ever read sources, credits must appear in the documentation.
573
+
574
+ 4. This notice may not be removed or altered.
575
+
576
+
577
+ A.6. Richard A. O'Keefe String Library License
578
+ ----------------------------------------------------------------
579
+
580
+ The following software may be included in this product:
581
+
582
+ Richard A. O'Keefe String Library
583
+
584
+ The Richard O'Keefe String Library is subject to the following notice:
585
+
586
+ These files are in the public domain. This includes getopt.c, which
587
+ is the work of Henry Spencer, University of Toronto Zoology, who
588
+ says of it "None of this software is derived from Bell software. I
589
+ had no access to the source for Bell's versions at the time I wrote
590
+ it. This software is hereby explicitly placed in the public domain.
591
+ It may be used for any purpose on any machine by anyone." I would
592
+ greatly prefer it if *my* material received no military use.
593
+
594
+ The t_ctype.h file is subject to the following notice:
595
+
596
+ Copyright (C) 1998, 1999 by Pruet Boonma, all rights reserved.
597
+ Copyright (C) 1998 by Theppitak Karoonboonyanan, all rights reserved.
598
+
599
+ Permission to use, copy, modify, distribute and sell this software
600
+ and its documentation for any purpose is hereby granted without fee,
601
+ provided that the above copyright notice appear in all copies.
602
+
603
+ Smaphan Raruenrom and Pruet Boonma makes no representations about
604
+ the suitability of this software for any purpose. It is provided
605
+ "as is" without express or implied warranty.
606
+
607
+
608
+ A.7. SHA-1 in C License
609
+ ----------------------------------------------------------------
610
+ The following software may be included in this product:
611
+
612
+ SHA-1 in C
613
+
614
+ By Steve Reid <steve@edmweb.com>
615
+ 100% Public Domain
616
+
617
+
618
+ A.8. zlib License
619
+ ----------------------------------------------------------------
620
+ The following software may be included in this product:
621
+
622
+ zlib
623
+
624
+ Oracle gratefully acknowledges the contributions of Jean-loup Gailly
625
+ and Mark Adler in creating the zlib general purpose compression library
626
+ which is used in this product.
627
+
628
+ zlib.h -- interface of the 'zlib' general purpose compression library
629
+ Copyright (C) 1995-2004 Jean-loup Gailly and Mark Adler
630
+
631
+ zlib.h -- interface of the 'zlib' general purpose compression library
632
+ version 1.2.3, July 18th, 2005
633
+ Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler
634
+
635
+ zlib.h -- interface of the 'zlib' general purpose compression library
636
+ version 1.2.5, April 19th, 2010
637
+ Copyright (C) 1995-2010 Jean-loup Gailly and Mark Adler
638
+
639
+ This software is provided 'as-is', without any express or implied warranty.
640
+ In no event will the authors be held liable for any damages arising from the
641
+ use of this software. Permission is granted to anyone to use this software
642
+ for any purpose,including commercial applications, and to alter it and
643
+ redistribute it freely, subject to the following restrictions:
644
+
645
+ 1. The origin of this software must not be misrepresented; you must not
646
+ claim that you wrote the original software. If you use this software
647
+ in a product, an acknowledgment in the product documentation would
648
+ be appreciated but is not required.
649
+ 2. Altered source versions must be plainly marked as such, and must not
650
+ be misrepresented as being the original software.
651
+ 3. This notice may not be removed or altered from any source distribution.
652
+
653
+ Jean-loup Gailly jloup@gzip.org
654
+ Mark Adler madler@alumni.caltech.edu