sqlite3 1.3.8-x64-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. data/.gemtest +0 -0
  2. data/API_CHANGES.rdoc +50 -0
  3. data/CHANGELOG.rdoc +265 -0
  4. data/ChangeLog.cvs +88 -0
  5. data/Gemfile +15 -0
  6. data/LICENSE +27 -0
  7. data/Manifest.txt +52 -0
  8. data/README.rdoc +95 -0
  9. data/Rakefile +10 -0
  10. data/ext/sqlite3/backup.c +168 -0
  11. data/ext/sqlite3/backup.h +15 -0
  12. data/ext/sqlite3/database.c +822 -0
  13. data/ext/sqlite3/database.h +15 -0
  14. data/ext/sqlite3/exception.c +94 -0
  15. data/ext/sqlite3/exception.h +8 -0
  16. data/ext/sqlite3/extconf.rb +51 -0
  17. data/ext/sqlite3/sqlite3.c +40 -0
  18. data/ext/sqlite3/sqlite3_ruby.h +53 -0
  19. data/ext/sqlite3/statement.c +439 -0
  20. data/ext/sqlite3/statement.h +16 -0
  21. data/faq/faq.rb +145 -0
  22. data/faq/faq.yml +426 -0
  23. data/lib/sqlite3.rb +10 -0
  24. data/lib/sqlite3/2.0/sqlite3_native.so +0 -0
  25. data/lib/sqlite3/constants.rb +49 -0
  26. data/lib/sqlite3/database.rb +579 -0
  27. data/lib/sqlite3/errors.rb +44 -0
  28. data/lib/sqlite3/pragmas.rb +280 -0
  29. data/lib/sqlite3/resultset.rb +195 -0
  30. data/lib/sqlite3/statement.rb +144 -0
  31. data/lib/sqlite3/translator.rb +118 -0
  32. data/lib/sqlite3/value.rb +57 -0
  33. data/lib/sqlite3/version.rb +25 -0
  34. data/setup.rb +1333 -0
  35. data/tasks/faq.rake +9 -0
  36. data/tasks/gem.rake +37 -0
  37. data/tasks/native.rake +45 -0
  38. data/tasks/vendor_sqlite3.rake +87 -0
  39. data/test/helper.rb +18 -0
  40. data/test/test_backup.rb +33 -0
  41. data/test/test_collation.rb +82 -0
  42. data/test/test_database.rb +350 -0
  43. data/test/test_database_readonly.rb +29 -0
  44. data/test/test_deprecated.rb +44 -0
  45. data/test/test_encoding.rb +121 -0
  46. data/test/test_integration.rb +555 -0
  47. data/test/test_integration_open_close.rb +30 -0
  48. data/test/test_integration_pending.rb +115 -0
  49. data/test/test_integration_resultset.rb +159 -0
  50. data/test/test_integration_statement.rb +194 -0
  51. data/test/test_result_set.rb +37 -0
  52. data/test/test_sqlite3.rb +9 -0
  53. data/test/test_statement.rb +256 -0
  54. data/test/test_statement_execute.rb +35 -0
  55. metadata +246 -0
File without changes
@@ -0,0 +1,50 @@
1
+ = API Changes
2
+
3
+ * SQLite3::Database#execute only accepts an array for bind parameters.
4
+
5
+ * SQLite3::ResultSet used to query the database for the first row, regardless
6
+ of whether the user asked for it or not. I have removed that so that rows
7
+ will not be returned until the user asks for them. This is a subtle but
8
+ sometimes important change in behavior.
9
+
10
+ 83882d2208ed189361617d5ab8532a325aaf729d
11
+
12
+ * SQLite3::Database#trace now takes either a block or an object that responds
13
+ to "call". The previous implementation passed around a VALUE that was cast
14
+ to a void *. This is dangerous because the value could get garbage collected
15
+ before the proc was called. If the user wants data passed around with the
16
+ block, they should use variables available to the closure or create an
17
+ object.
18
+
19
+ * SQLite3::Statement#step automatically converts to ruby types, where before
20
+ all values were automatically yielded as strings. This will only be a
21
+ problem for people who were accessing information about the database that
22
+ wasn't previously passed through the pure ruby conversion code.
23
+
24
+ * SQLite3::Database#errmsg no longer takes a parameter to return error
25
+ messages as UTF-16. Do people even use that? I opt for staying UTF-8 when
26
+ possible. See test_integration.rb test_errmsg_utf16
27
+
28
+ * SQLite3::Database#authorize same changes as trace
29
+
30
+ * test/test_tc_database.rb was removed because we no longer use the Driver
31
+ design pattern.
32
+
33
+ = Garbage Collection Strategy
34
+
35
+ All statements keep pointers back to their respective database connections.
36
+ The @connection instance variable on the Statement handle keeps the database
37
+ connection alive. Memory allocated for a statement handler will be freed in
38
+ two cases:
39
+
40
+ * close is called on the statement
41
+ * The SQLite3::Database object gets garbage collected
42
+
43
+ We can't free the memory for the statement in the garbage collection function
44
+ for the statement handler. The reason is because there exists a race
45
+ condition. We cannot guarantee the order in which objects will be garbage
46
+ collected. So, it is possible that a connection and a statement are up for
47
+ garbage collection. If the database connection were to be free'd before the
48
+ statement, then boom. Instead we'll be conservative and free unclosed
49
+ statements when the connection is terminated.
50
+
@@ -0,0 +1,265 @@
1
+ === 1.3.8 / 2013-08-17
2
+
3
+ * Enhancements:
4
+ * Windows: build against SQLite 3.7.17
5
+
6
+ * Bugfixes:
7
+ * Reset exception message. Closes #80
8
+ * Correctly convert BLOB values to Ruby. Closes #65
9
+ * Add MIT license reference to gemspec. Closes #99
10
+ * Remove unused pointer. Closes #89
11
+
12
+ * Internal:
13
+ * Backport improvements in cross compilation for Windows
14
+ * Use of Minitest for internal tests
15
+ * Use Gemfile (generated by Hoe) to deal with dependencies
16
+ * Cleanup Travis CI
17
+
18
+ === 1.3.7 / 2013-01-11
19
+
20
+ * Bugfixes
21
+ * Closing a bad statement twice will not segv.
22
+
23
+ * Internal
24
+ * Unset environment variables that could affect cross compilation.
25
+
26
+ === 1.3.6 / 2012-04-16
27
+
28
+ * Enhancements
29
+ * Windows: build against SQLite 3.7.11
30
+ * Added SQLite3::ResultSet#each_hash for fetching each row as a hash.
31
+ * Added SQLite3::ResultSet#next_hash for fetching one row as a hash.
32
+
33
+ * Bugfixes
34
+ * Support both UTF-16LE and UTF-16BE encoding modes on PPC. Closes #63
35
+ * Protect parameters to custom functions from being garbage collected too
36
+ soon. Fixes #60. Thanks hirataya!
37
+ * Fix backwards compatibility with 1.2.5 with bind vars and `query` method.
38
+ Fixes #35.
39
+ * Fix double definition error caused by defining sqlite3_int64/uint64.
40
+ * Fix suspicious version regexp.
41
+
42
+ * Deprecations
43
+ * ArrayWithTypesAndFields#types is deprecated and the class will be removed
44
+ in version 2.0.0. Please use the `types` method on the ResultSet class
45
+ that created this object.
46
+ * ArrayWithTypesAndFields#fields is deprecated and the class will be removed
47
+ in version 2.0.0. Please use the `columns` method on the ResultSet class
48
+ that created this object.
49
+ * The ArrayWithTypesAndFields class will be removed in 2.0.0
50
+ * The ArrayWithTypes class will be removed in 2.0.0
51
+ * HashWithTypesAndFields#types is deprecated and the class will be removed
52
+ in version 2.0.0. Please use the `types` method on the ResultSet class
53
+ that created this object.
54
+ * HashWithTypesAndFields#fields is deprecated and the class will be removed
55
+ in version 2.0.0. Please use the `columns` method on the ResultSet class
56
+ that created this object.
57
+
58
+ === 1.3.5 / 2011-12-03 - ZOMG Holidays are here Edition!
59
+
60
+ * Enhancements
61
+ * Windows: build against SQLite 3.7.9
62
+ * Static: enable SQLITE_ENABLE_COLUMN_METADATA
63
+ * Added Statement#clear_bindings! to set bindings back to nil
64
+
65
+ * Bugfixes
66
+ * Fixed a segv on Database.new. Fixes #34 (thanks nobu!)
67
+ * Database error is not reset, so don't check it in Statement#reset!
68
+ * Remove conditional around Bignum statement bindings.
69
+ Fixes #52. Fixes #56. Thank you Evgeny Myasishchev.
70
+
71
+ * Internal
72
+ * Use proper endianness when testing database connection with UTF-16.
73
+ Fixes #40. Fixes #51
74
+ * Use -fPIC for static compilation when host is x86_64.
75
+
76
+ === 1.3.4 / 2011-07-25
77
+
78
+ * Enhancements:
79
+ * Windows: build against SQLite 3.7.7.1
80
+ * Windows: build static binaries that do not depend on sqlite3.dll be
81
+ installed anymore
82
+
83
+ * Bugfixes
84
+ * Backup API is conditionaly required so that older libsqlite3 can be used.
85
+ Thanks Hongli Lai.
86
+ * Fixed segmentation fault when nil is passed to SQLite3::Statement.new
87
+ * Fix extconf's hardcoded path that affected installation on certain systems.
88
+
89
+ === 1.3.3 / 2010-01-16
90
+
91
+ * Bugfixes
92
+ * Abort on installation if sqlite3_backup_init is missing. Fixes #19
93
+ * Gem has been renamed to 'sqlite3'. Please use `gem install sqlite3`
94
+
95
+ === 1.3.2 / 2010-10-30 / RubyConf Uruguay Edition!
96
+
97
+ * Enhancements:
98
+ * Windows: build against 3.7.3 version of SQLite3
99
+ * SQLite3::Database can now be open as readonly
100
+
101
+ db = SQLite3::Database.new('my.db', :readonly => true)
102
+
103
+ * Added SQLite3::SQLITE_VERSION and SQLite3::SQLITE_VERSION_NUMBER [nurse]
104
+
105
+ * Bugfixes
106
+ * type_translation= works along with Database#execute and a block
107
+ * defined functions are kept in a hash to prevent GC. #7
108
+ * Removed GCC specific flags from extconf.
109
+
110
+ * DEPRECATIONS
111
+ * SQLite3::Database#type_translation= will be deprecated in the future with
112
+ no replacement.
113
+ * SQlite3::Version will be deprecated in 2.0.0 with SQLite3::VERSION as the
114
+ replacement.
115
+
116
+ === 1.3.1 / 2010-07-09
117
+
118
+ * Enhancements
119
+ * Custom collations may be defined using SQLite3::Database#collation
120
+
121
+ * Bugfixes
122
+ * Statements returning 0 columns are automatically stepped. [RF #28308]
123
+ * SQLite3::Database#encoding works on 1.8 and 1.9
124
+
125
+ === 1.3.0 / 2010-06-06
126
+
127
+ * Enhancements
128
+ * Complete rewrite of C-based adapter from SWIG to hand-crafted one [tenderlove]
129
+ See API_CHANGES document for details.
130
+ This closes: Bug #27300, Bug #27241, Patch #16020
131
+ * Improved UTF, Unicode, M17N, all that handling and proper BLOB handling [tenderlove, nurse]
132
+ * Added support for type translations [tenderlove]
133
+
134
+ @db.translator.add_translator('sometime') do |type, thing|
135
+ 'output' # this will be returned as value for that column
136
+ end
137
+
138
+ * Experimental
139
+ * Added API to access and load extensions. [kashif]
140
+ These functions maps directly into SQLite3 own enable_load_extension()
141
+ and load_extension() C-API functions. See SQLite3::Database API documentation for details.
142
+ This closes: Patches #9178
143
+
144
+ * Bugfixes
145
+ * Corrected gem dependencies (runtime and development)
146
+ * Fixed threaded tests [Alexey Borzenkov]
147
+ * Removed GitHub gemspec
148
+ * Fixed "No definition for" warnings from RDoc
149
+ * Generate zip and tgz files for releases
150
+ * Added Luis Lavena as gem Author (maintainer)
151
+ * Prevent mkmf interfere with Mighty Snow Leopard
152
+ * Allow extension compilation search for common lib paths [kashif]
153
+ (lookup /usr/local, /opt/local and /usr)
154
+ * Corrected extension compilation under MSVC [romuloceccon]
155
+ * Define load_extension functionality based on availability [tenderlove]
156
+ * Deprecation notices for Database#query. Fixes RF #28192
157
+
158
+ === 1.3.0.beta.2 / 2010-05-15
159
+
160
+ * Enhancements
161
+ * Added support for type translations [tenderlove]
162
+
163
+ @db.translator.add_translator('sometime') do |type, thing|
164
+ 'output' # this will be returned as value for that column
165
+ end
166
+
167
+ * Bugfixes
168
+ * Allow extension compilation search for common lib paths [kashif]
169
+ (lookup /usr/local, /opt/local and /usr)
170
+ * Corrected extension compilation under MSVC [romuloceccon]
171
+ * Define load_extension functionality based on availability [tenderlove]
172
+ * Deprecation notices for Database#query. Fixes RF #28192
173
+
174
+ === 1.3.0.beta.1 / 2010-05-10
175
+
176
+ * Enhancements
177
+ * Complete rewrite of C-based adapter from SWIG to hand-crafted one [tenderlove]
178
+ See API_CHANGES document for details.
179
+ This closes: Bug #27300, Bug #27241, Patch #16020
180
+ * Improved UTF, Unicode, M17N, all that handling and proper BLOB handling [tenderlove, nurse]
181
+
182
+ * Experimental
183
+ * Added API to access and load extensions. [kashif]
184
+ These functions maps directly into SQLite3 own enable_load_extension()
185
+ and load_extension() C-API functions. See SQLite3::Database API documentation for details.
186
+ This closes: Patches #9178
187
+
188
+ * Bugfixes
189
+ * Corrected gem dependencies (runtime and development)
190
+ * Fixed threaded tests [Alexey Borzenkov]
191
+ * Removed GitHub gemspec
192
+ * Fixed "No definition for" warnings from RDoc
193
+ * Generate zip and tgz files for releases
194
+ * Added Luis Lavena as gem Author (maintainer)
195
+ * Prevent mkmf interfere with Mighty Snow Leopard
196
+
197
+ === 1.2.5 / 25 Jul 2009
198
+
199
+ * Check for illegal nil before executing SQL [Erik Veenstra]
200
+ * Switch to Hoe for gem task management and packaging.
201
+ * Advertise rake-compiler as development dependency.
202
+ * Build gem binaries for Windows.
203
+ * Improved Ruby 1.9 support compatibility.
204
+ * Taint returned values. Patch #20325.
205
+ * Database.open and Database.new now take an optional block [Gerrit Kaiser]
206
+
207
+
208
+ === 1.2.4.1 (internal) / 5 Jul 2009
209
+
210
+ * Check for illegal nil before executing SQL [Erik Veenstra]
211
+ * Switch to Hoe for gem task management and packaging.
212
+ * Advertise rake-compiler as development dependency.
213
+ * Build gem binaries for Windows.
214
+ * Improved Ruby 1.9 support compatibility.
215
+
216
+
217
+ === 1.2.4 / 27 Aug 2008
218
+
219
+ * Package the updated C file for source builds. [Jamis Buck]
220
+
221
+
222
+ === 1.2.3 / 26 Aug 2008
223
+
224
+ * Fix incorrect permissions on database.rb and translator.rb [Various]
225
+
226
+ * Avoid using Object#extend for greater speedups [Erik Veenstra]
227
+
228
+ * Ruby 1.9 compatibility tweaks for Array#zip [jimmy88@gmail.com]
229
+
230
+ * Fix linking against Ruby 1.8.5 [Rob Holland <rob@inversepath.com>]
231
+
232
+
233
+ === 1.2.2 / 31 May 2008
234
+
235
+ * Make the table_info method adjust the returned default value for the rows
236
+ so that the sqlite3 change in 3.3.8 and greater can be handled
237
+ transparently [Jamis Buck <jamis@37signals.com>]
238
+
239
+ * Ruby 1.9 compatibility tweaks [Roman Le Negrate <roman2k@free.fr>]
240
+
241
+ * Various performance enhancements [thanks Erik Veenstra]
242
+
243
+ * Correct busy_handler documentation [Rob Holland <rob@inversepath.com>]
244
+
245
+ * Use int_bind64 on Fixnum values larger than a 32bit C int can take. [Rob Holland <rob@inversepath.com>]
246
+
247
+ * Work around a quirk in SQLite's error reporting by calling sqlite3_reset
248
+ to produce a more informative error code upon a failure from
249
+ sqlite3_step. [Rob Holland <rob@inversepath.com>]
250
+
251
+ * Various documentation, test, and style tweaks [Rob Holland <rob@inversepath.com>]
252
+
253
+ * Be more granular with time/data translation [Rob Holland <rob@inversepath.com>]
254
+
255
+ * Use Date directly for parsing rather than going via Time [Rob Holland <rob@inversepath.com>]
256
+
257
+ * Check for the rt library and fdatasync so we link against that when
258
+ needed [Rob Holland <rob@inversepath.com>]
259
+
260
+ * Rename data structures to avoid collision on win32. based on patch
261
+ by: Luis Lavena [Rob Holland <rob@inversepath.com>]
262
+
263
+ * Add test for defaults [Daniel Rodríguez Troitiño]
264
+
265
+ * Correctly unquote double-quoted pragma defaults [Łukasz Dargiewicz <lukasz.dargiewicz@gmail.com>]
@@ -0,0 +1,88 @@
1
+ 2005-01-05 09:40 minam
2
+
3
+ * Rakefile, sqlite3-ruby-win32.gemspec, sqlite3-ruby.gemspec: Added
4
+ win32 gem.
5
+
6
+ 2005-01-05 07:31 minam
7
+
8
+ * Rakefile, test/tc_integration.rb, test/tests.rb: Added
9
+ native-vs-dl benchmark to Rakefile. Added SQLITE3_DRIVERS
10
+ environment variable to integration test to specify which
11
+ driver(s) should be tested (defaults to "Native").
12
+
13
+ 2005-01-04 14:26 minam
14
+
15
+ * ext/sqlite3_api/sqlite3_api.i, lib/sqlite3/database.rb,
16
+ lib/sqlite3/driver/native/driver.rb, test/tc_database.rb,
17
+ test/tc_integration.rb, test/tests.rb: Unit tests: done. Bugs:
18
+ fixed.
19
+
20
+ 2005-01-03 23:13 minam
21
+
22
+ * ext/sqlite3_api/sqlite3_api.i, lib/sqlite3/database.rb,
23
+ lib/sqlite3/driver/dl/driver.rb,
24
+ lib/sqlite3/driver/native/driver.rb, test/tc_integration.rb:
25
+ Custom functions (aggregate and otherwise) are supported by the
26
+ native driver now. Test cases for the same.
27
+
28
+ 2005-01-03 13:51 minam
29
+
30
+ * ext/sqlite3_api/MANIFEST, ext/sqlite3_api/extconf.rb,
31
+ ext/sqlite3_api/post-clean.rb, ext/sqlite3_api/post-distclean.rb,
32
+ ext/sqlite3_api/sqlite3_api.i, lib/sqlite3/database.rb,
33
+ lib/sqlite3/resultset.rb, lib/sqlite3/version.rb,
34
+ lib/sqlite3/driver/dl/driver.rb,
35
+ lib/sqlite3/driver/native/driver.rb, test/native-vs-dl.rb,
36
+ test/tc_integration.rb: Added preliminary implementation of
37
+ native driver (swig-based), and integration tests.
38
+
39
+ 2004-12-29 19:37 minam
40
+
41
+ * lib/sqlite3/driver/dl/driver.rb: Some fixes to allow the DL
42
+ driver to work with Ruby 1.8.1.
43
+
44
+ 2004-12-29 14:52 minam
45
+
46
+ * lib/sqlite3/: database.rb, version.rb: Made #quote a class method
47
+ (again). Bumped version to 0.6.
48
+
49
+ 2004-12-25 22:59 minam
50
+
51
+ * lib/sqlite3/driver/dl/api.rb: Added check for darwin in supported
52
+ platforms (thanks to bitsweat).
53
+
54
+ 2004-12-22 12:38 minam
55
+
56
+ * Rakefile: Rakefile wasn't packaging the README file.
57
+
58
+ 2004-12-21 22:28 minam
59
+
60
+ * Rakefile, sqlite3-ruby.gemspec, test/bm.rb: Packaging now works.
61
+ Added benchmarks.
62
+
63
+ 2004-12-21 21:45 minam
64
+
65
+ * LICENSE, README, Rakefile, setup.rb, sqlite3-ruby.gemspec,
66
+ doc/faq/faq.rb, doc/faq/faq.yml, lib/sqlite3.rb,
67
+ lib/sqlite3/statement.rb, lib/sqlite3/constants.rb,
68
+ lib/sqlite3/database.rb, lib/sqlite3/resultset.rb,
69
+ lib/sqlite3/translator.rb, lib/sqlite3/value.rb,
70
+ lib/sqlite3/version.rb, lib/sqlite3/errors.rb,
71
+ lib/sqlite3/pragmas.rb, lib/sqlite3/driver/dl/api.rb,
72
+ lib/sqlite3/driver/dl/driver.rb, test/mocks.rb,
73
+ test/tc_database.rb, test/tests.rb, test/driver/dl/tc_driver.rb:
74
+ Initial import
75
+
76
+ 2004-12-21 21:45 minam
77
+
78
+ * LICENSE, README, Rakefile, setup.rb, sqlite3-ruby.gemspec,
79
+ doc/faq/faq.rb, doc/faq/faq.yml, lib/sqlite3.rb,
80
+ lib/sqlite3/statement.rb, lib/sqlite3/constants.rb,
81
+ lib/sqlite3/database.rb, lib/sqlite3/resultset.rb,
82
+ lib/sqlite3/translator.rb, lib/sqlite3/value.rb,
83
+ lib/sqlite3/version.rb, lib/sqlite3/errors.rb,
84
+ lib/sqlite3/pragmas.rb, lib/sqlite3/driver/dl/api.rb,
85
+ lib/sqlite3/driver/dl/driver.rb, test/mocks.rb,
86
+ test/tc_database.rb, test/tests.rb, test/driver/dl/tc_driver.rb:
87
+ Initial revision
88
+
data/Gemfile ADDED
@@ -0,0 +1,15 @@
1
+ # -*- ruby -*-
2
+
3
+ # DO NOT EDIT THIS FILE. Instead, edit Rakefile, and run `rake bundler:gemfile`.
4
+
5
+ source "https://rubygems.org/"
6
+
7
+
8
+ gem "minitest", "~>5.0", :group => [:development, :test]
9
+ gem "rdoc", "~>4.0", :group => [:development, :test]
10
+ gem "rake-compiler", "~>0.9.1", :group => [:development, :test]
11
+ gem "mini_portile", "~>0.5.1", :group => [:development, :test]
12
+ gem "hoe-bundler", "~>1.0", :group => [:development, :test]
13
+ gem "hoe", "~>3.7", :group => [:development, :test]
14
+
15
+ # vim: syntax=ruby
data/LICENSE ADDED
@@ -0,0 +1,27 @@
1
+ Copyright (c) 2004, Jamis Buck (jamis@jamisbuck.org)
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without
5
+ modification, are permitted provided that the following conditions are met:
6
+
7
+ * Redistributions of source code must retain the above copyright notice,
8
+ this list of conditions and the following disclaimer.
9
+
10
+ * Redistributions in binary form must reproduce the above copyright
11
+ notice, this list of conditions and the following disclaimer in the
12
+ documentation and/or other materials provided with the distribution.
13
+
14
+ * The names of its contributors may not be used to endorse or promote
15
+ products derived from this software without specific prior written
16
+ permission.
17
+
18
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
22
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
25
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
26
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.