hps 2.3.2 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +4 -4
  3. data/Gemfile.lock +59 -0
  4. data/LICENSE.md +264 -264
  5. data/PRIVACY.txt +65 -65
  6. data/README.md +213 -213
  7. data/Rakefile +15 -15
  8. data/examples/sinatra-verify-only/Gemfile +4 -4
  9. data/examples/sinatra-verify-only/app.rb +32 -32
  10. data/examples/sinatra-verify-only/views/index.erb +478 -478
  11. data/examples/sinatra-verify-only/views/result.erb +39 -39
  12. data/hps.gemspec +28 -27
  13. data/lib/hps/configuration.rb +17 -17
  14. data/lib/hps/entities/hps_account_verify.rb +8 -8
  15. data/lib/hps/entities/hps_address.rb +6 -6
  16. data/lib/hps/entities/hps_authorization.rb +12 -12
  17. data/lib/hps/entities/hps_batch.rb +6 -6
  18. data/lib/hps/entities/hps_cardholder.rb +6 -6
  19. data/lib/hps/entities/hps_charge.rb +8 -8
  20. data/lib/hps/entities/hps_charge_exceptions.rb +6 -6
  21. data/lib/hps/entities/hps_check.rb +18 -18
  22. data/lib/hps/entities/hps_check_holder.rb +10 -10
  23. data/lib/hps/entities/hps_check_response.rb +45 -45
  24. data/lib/hps/entities/hps_check_response_details.rb +9 -9
  25. data/lib/hps/entities/hps_credit_card.rb +34 -34
  26. data/lib/hps/entities/hps_direct_market_data.rb +5 -5
  27. data/lib/hps/entities/hps_encryption_data.rb +6 -6
  28. data/lib/hps/entities/hps_gift_card.rb +133 -133
  29. data/lib/hps/entities/hps_manage_tokens.rb +8 -8
  30. data/lib/hps/entities/hps_refund.rb +8 -8
  31. data/lib/hps/entities/hps_report_transaction_details.rb +10 -10
  32. data/lib/hps/entities/hps_report_transaction_summary.rb +6 -6
  33. data/lib/hps/entities/hps_reversal.rb +10 -10
  34. data/lib/hps/entities/hps_token_data.rb +10 -10
  35. data/lib/hps/entities/hps_track_data.rb +5 -5
  36. data/lib/hps/entities/hps_transaction.rb +161 -161
  37. data/lib/hps/entities/hps_transaction_details.rb +6 -6
  38. data/lib/hps/entities/hps_transaction_header.rb +8 -8
  39. data/lib/hps/entities/hps_transaction_type.rb +16 -16
  40. data/lib/hps/entities/hps_void.rb +8 -8
  41. data/lib/hps/infrastructure/api_connection_exception.rb +11 -11
  42. data/lib/hps/infrastructure/authentication_exception.rb +11 -11
  43. data/lib/hps/infrastructure/card_exception.rb +15 -15
  44. data/lib/hps/infrastructure/exceptions.json +547 -547
  45. data/lib/hps/infrastructure/hps_account_type.rb +11 -11
  46. data/lib/hps/infrastructure/hps_check_exception.rb +13 -13
  47. data/lib/hps/infrastructure/hps_check_type.rb +11 -11
  48. data/lib/hps/infrastructure/hps_data_entry_mode.rb +11 -11
  49. data/lib/hps/infrastructure/hps_exception.rb +25 -25
  50. data/lib/hps/infrastructure/hps_exception_mapper.rb +145 -145
  51. data/lib/hps/infrastructure/hps_gateway_response_validation.rb +20 -20
  52. data/lib/hps/infrastructure/hps_input_validation.rb +13 -13
  53. data/lib/hps/infrastructure/hps_sdk_codes.rb +48 -48
  54. data/lib/hps/infrastructure/hps_sec_code.rb +27 -27
  55. data/lib/hps/infrastructure/hps_track_data_method.rb +6 -6
  56. data/lib/hps/infrastructure/invalid_request_exception.rb +15 -15
  57. data/lib/hps/services/hps_batch_service.rb +29 -29
  58. data/lib/hps/services/hps_charge_service.rb +773 -773
  59. data/lib/hps/services/hps_check_service.rb +110 -110
  60. data/lib/hps/services/hps_gift_card_service.rb +301 -301
  61. data/lib/hps/services/hps_service.rb +141 -136
  62. data/lib/hps/version.rb +3 -3
  63. data/lib/hps.rb +63 -63
  64. data/tests/amex_tests.rb +292 -292
  65. data/tests/cert_tests.rb +80 -80
  66. data/tests/certification/card_present_spec.rb +320 -320
  67. data/tests/certification/gift_card_certification_test.rb +106 -106
  68. data/tests/certification/gift_card_certification_tests.rb +107 -107
  69. data/tests/check_tests.rb +50 -50
  70. data/tests/discover_tests.rb +386 -386
  71. data/tests/exception_mapper_tests.rb +311 -311
  72. data/tests/general_tests.rb +140 -140
  73. data/tests/giftcard_tests.rb +212 -212
  74. data/tests/hps_token_service.rb +56 -56
  75. data/tests/mastercard_tests.rb +387 -387
  76. data/tests/secret_key.rb +11 -11
  77. data/tests/test_check.rb +77 -77
  78. data/tests/test_data.rb +138 -138
  79. data/tests/test_helper.rb +179 -179
  80. data/tests/token_tests.rb +512 -512
  81. data/tests/visa_tests.rb +445 -445
  82. metadata +31 -11
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fde3630d75851b0e8d0e3d57b8499a910f70fc1a6d9f4db50ec61f170dea6257
4
- data.tar.gz: 7b2a572ae0cd537c9b9bdd5772afd584cec130a15afbe93514a23fb8e514f69a
3
+ metadata.gz: b55fd79529b2ecd012c6eec5c0929716907da1512c04bc721b4b310ea843f192
4
+ data.tar.gz: 21757e64f55614bb7b6345253cdb6e84d9e9dcf2bc088ead0d6acd7d8b3f9390
5
5
  SHA512:
6
- metadata.gz: d00ea93bbe04f5436f423c39f90e04931eff8115ee19658c2052684c6b4c6cf38723c185cf2801e0525c852dcc0e533fc93d9d2363825eddf1a06d6d4dcad32d
7
- data.tar.gz: 0de30cb6cfff974b79c2ae40596d6b4b6ca1dd9e02c058e2a46c3ed1a6bef4ad2532e4cf4d6cade10843a5481ac89cb0a6a481e96fa22c31c0741743a56a57da
6
+ metadata.gz: be56f3bc438bafb038222b18fdb8fb6d83e1580379ff4c87eedf19875939190429386e6e269f673f94b71d0ce91b5798a004d84fe3ea7c9d8b983288496af7ae
7
+ data.tar.gz: 12d7b307280987cd47a432c022261a1ff05d4aaebcdf0d1c57e8ba4e505f84d01e1d2b2d5c3d855f7f3242705ba37aca48c961e757189fc9d1d98680895956d4
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source 'https://rubygems.org'
2
-
3
- # Specify your gem's dependencies in hps.gemspec
4
- gemspec
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in hps.gemspec
4
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,59 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ hps (2.4.0)
5
+ activesupport (>= 2.3.14, <= 7.1.3)
6
+ builder (>= 2.1.2, < 4.0.0)
7
+ rexml (~> 3.2, >= 3.2.4)
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ activesupport (7.0.1)
13
+ concurrent-ruby (~> 1.0, >= 1.0.2)
14
+ i18n (>= 1.6, < 2)
15
+ minitest (>= 5.1)
16
+ tzinfo (~> 2.0)
17
+ builder (3.2.4)
18
+ coderay (1.1.3)
19
+ concurrent-ruby (1.2.3)
20
+ diff-lcs (1.5.1)
21
+ i18n (1.14.1)
22
+ concurrent-ruby (~> 1.0)
23
+ method_source (1.0.0)
24
+ minitest (5.22.2)
25
+ pry (0.14.2)
26
+ coderay (~> 1.1)
27
+ method_source (~> 1.0)
28
+ rake (13.1.0)
29
+ rexml (3.2.6)
30
+ rspec (3.13.0)
31
+ rspec-core (~> 3.13.0)
32
+ rspec-expectations (~> 3.13.0)
33
+ rspec-mocks (~> 3.13.0)
34
+ rspec-core (3.13.0)
35
+ rspec-support (~> 3.13.0)
36
+ rspec-expectations (3.13.0)
37
+ diff-lcs (>= 1.2.0, < 2.0)
38
+ rspec-support (~> 3.13.0)
39
+ rspec-mocks (3.13.0)
40
+ diff-lcs (>= 1.2.0, < 2.0)
41
+ rspec-support (~> 3.13.0)
42
+ rspec-support (3.13.0)
43
+ tzinfo (2.0.6)
44
+ concurrent-ruby (~> 1.0)
45
+
46
+ PLATFORMS
47
+ arm64-darwin-23
48
+ ruby
49
+ x64-mingw-ucrt
50
+
51
+ DEPENDENCIES
52
+ bundler (~> 2.5.6)
53
+ hps!
54
+ pry
55
+ rake
56
+ rspec
57
+
58
+ BUNDLED WITH
59
+ 2.5.6
data/LICENSE.md CHANGED
@@ -1,264 +1,264 @@
1
- The GNU General Public License, Version 2, June 1991 (GPLv2)
2
- ============================================================
3
-
4
- > Copyright (C) 1989, 1991 Free Software Foundation, Inc.
5
- > 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
6
-
7
- Everyone is permitted to copy and distribute verbatim copies of this license
8
- document, but changing it is not allowed.
9
-
10
-
11
- Preamble
12
- --------
13
-
14
- The licenses for most software are designed to take away your freedom to share
15
- and change it. By contrast, the GNU General Public License is intended to
16
- guarantee your freedom to share and change free software--to make sure the
17
- software is free for all its users. This General Public License applies to most
18
- of the Free Software Foundation's software and to any other program whose
19
- authors commit to using it. (Some other Free Software Foundation software is
20
- covered by the GNU Library General Public License instead.) You can apply it to
21
- your programs, too.
22
-
23
- When we speak of free software, we are referring to freedom, not price. Our
24
- General Public Licenses are designed to make sure that you have the freedom to
25
- distribute copies of free software (and charge for this service if you wish),
26
- that you receive source code or can get it if you want it, that you can change
27
- the software or use pieces of it in new free programs; and that you know you can
28
- do these things.
29
-
30
- To protect your rights, we need to make restrictions that forbid anyone to deny
31
- you these rights or to ask you to surrender the rights. These restrictions
32
- translate to certain responsibilities for you if you distribute copies of the
33
- software, or if you modify it.
34
-
35
- For example, if you distribute copies of such a program, whether gratis or for a
36
- fee, you must give the recipients all the rights that you have. You must make
37
- sure that they, too, receive or can get the source code. And you must show them
38
- these terms so they know their rights.
39
-
40
- We protect your rights with two steps: (1) copyright the software, and (2) offer
41
- you this license which gives you legal permission to copy, distribute and/or
42
- modify the software.
43
-
44
- Also, for each author's protection and ours, we want to make certain that
45
- everyone understands that there is no warranty for this free software. If the
46
- software is modified by someone else and passed on, we want its recipients to
47
- know that what they have is not the original, so that any problems introduced by
48
- others will not reflect on the original authors' reputations.
49
-
50
- Finally, any free program is threatened constantly by software patents. We wish
51
- to avoid the danger that redistributors of a free program will individually
52
- obtain patent licenses, in effect making the program proprietary. To prevent
53
- this, we have made it clear that any patent must be licensed for everyone's free
54
- use or not licensed at all.
55
-
56
- The precise terms and conditions for copying, distribution and modification
57
- follow.
58
-
59
-
60
- Terms And Conditions For Copying, Distribution And Modification
61
- ---------------------------------------------------------------
62
-
63
- **0.** This License applies to any program or other work which contains a notice
64
- placed by the copyright holder saying it may be distributed under the terms of
65
- this General Public License. The "Program", below, refers to any such program or
66
- work, and a "work based on the Program" means either the Program or any
67
- derivative work under copyright law: that is to say, a work containing the
68
- Program or a portion of it, either verbatim or with modifications and/or
69
- translated into another language. (Hereinafter, translation is included without
70
- limitation in the term "modification".) Each licensee is addressed as "you".
71
-
72
- Activities other than copying, distribution and modification are not covered by
73
- this License; they are outside its scope. The act of running the Program is not
74
- restricted, and the output from the Program is covered only if its contents
75
- constitute a work based on the Program (independent of having been made by
76
- running the Program). Whether that is true depends on what the Program does.
77
-
78
- **1.** You may copy and distribute verbatim copies of the Program's source code
79
- as you receive it, in any medium, provided that you conspicuously and
80
- appropriately publish on each copy an appropriate copyright notice and
81
- disclaimer of warranty; keep intact all the notices that refer to this License
82
- and to the absence of any warranty; and give any other recipients of the Program
83
- a copy of this License along with the Program.
84
-
85
- You may charge a fee for the physical act of transferring a copy, and you may at
86
- your option offer warranty protection in exchange for a fee.
87
-
88
- **2.** You may modify your copy or copies of the Program or any portion of it,
89
- thus forming a work based on the Program, and copy and distribute such
90
- modifications or work under the terms of Section 1 above, provided that you also
91
- meet all of these conditions:
92
-
93
- * **a)** You must cause the modified files to carry prominent notices stating
94
- that you changed the files and the date of any change.
95
-
96
- * **b)** You must cause any work that you distribute or publish, that in whole
97
- or in part contains or is derived from the Program or any part thereof, to
98
- be licensed as a whole at no charge to all third parties under the terms of
99
- this License.
100
-
101
- * **c)** If the modified program normally reads commands interactively when
102
- run, you must cause it, when started running for such interactive use in the
103
- most ordinary way, to print or display an announcement including an
104
- appropriate copyright notice and a notice that there is no warranty (or
105
- else, saying that you provide a warranty) and that users may redistribute
106
- the program under these conditions, and telling the user how to view a copy
107
- of this License. (Exception: if the Program itself is interactive but does
108
- not normally print such an announcement, your work based on the Program is
109
- not required to print an announcement.)
110
-
111
- These requirements apply to the modified work as a whole. If identifiable
112
- sections of that work are not derived from the Program, and can be reasonably
113
- considered independent and separate works in themselves, then this License, and
114
- its terms, do not apply to those sections when you distribute them as separate
115
- works. But when you distribute the same sections as part of a whole which is a
116
- work based on the Program, the distribution of the whole must be on the terms of
117
- this License, whose permissions for other licensees extend to the entire whole,
118
- and thus to each and every part regardless of who wrote it.
119
-
120
- Thus, it is not the intent of this section to claim rights or contest your
121
- rights to work written entirely by you; rather, the intent is to exercise the
122
- right to control the distribution of derivative or collective works based on the
123
- Program.
124
-
125
- In addition, mere aggregation of another work not based on the Program with the
126
- Program (or with a work based on the Program) on a volume of a storage or
127
- distribution medium does not bring the other work under the scope of this
128
- License.
129
-
130
- **3.** You may copy and distribute the Program (or a work based on it, under
131
- Section 2) in object code or executable form under the terms of Sections 1 and 2
132
- above provided that you also do one of the following:
133
-
134
- * **a)** Accompany it with the complete corresponding machine-readable source
135
- code, which must be distributed under the terms of Sections 1 and 2 above on
136
- a medium customarily used for software interchange; or,
137
-
138
- * **b)** Accompany it with a written offer, valid for at least three years, to
139
- give any third party, for a charge no more than your cost of physically
140
- performing source distribution, a complete machine-readable copy of the
141
- corresponding source code, to be distributed under the terms of Sections 1
142
- and 2 above on a medium customarily used for software interchange; or,
143
-
144
- * **c)** Accompany it with the information you received as to the offer to
145
- distribute corresponding source code. (This alternative is allowed only for
146
- noncommercial distribution and only if you received the program in object
147
- code or executable form with such an offer, in accord with Subsection b
148
- above.)
149
-
150
- The source code for a work means the preferred form of the work for making
151
- modifications to it. For an executable work, complete source code means all the
152
- source code for all modules it contains, plus any associated interface
153
- definition files, plus the scripts used to control compilation and installation
154
- of the executable. However, as a special exception, the source code distributed
155
- need not include anything that is normally distributed (in either source or
156
- binary form) with the major components (compiler, kernel, and so on) of the
157
- operating system on which the executable runs, unless that component itself
158
- accompanies the executable.
159
-
160
- If distribution of executable or object code is made by offering access to copy
161
- from a designated place, then offering equivalent access to copy the source code
162
- from the same place counts as distribution of the source code, even though third
163
- parties are not compelled to copy the source along with the object code.
164
-
165
- **4.** You may not copy, modify, sublicense, or distribute the Program except as
166
- expressly provided under this License. Any attempt otherwise to copy, modify,
167
- sublicense or distribute the Program is void, and will automatically terminate
168
- your rights under this License. However, parties who have received copies, or
169
- rights, from you under this License will not have their licenses terminated so
170
- long as such parties remain in full compliance.
171
-
172
- **5.** You are not required to accept this License, since you have not signed
173
- it. However, nothing else grants you permission to modify or distribute the
174
- Program or its derivative works. These actions are prohibited by law if you do
175
- not accept this License. Therefore, by modifying or distributing the Program (or
176
- any work based on the Program), you indicate your acceptance of this License to
177
- do so, and all its terms and conditions for copying, distributing or modifying
178
- the Program or works based on it.
179
-
180
- **6.** Each time you redistribute the Program (or any work based on the
181
- Program), the recipient automatically receives a license from the original
182
- licensor to copy, distribute or modify the Program subject to these terms and
183
- conditions. You may not impose any further restrictions on the recipients'
184
- exercise of the rights granted herein. You are not responsible for enforcing
185
- compliance by third parties to this License.
186
-
187
- **7.** If, as a consequence of a court judgment or allegation of patent
188
- infringement or for any other reason (not limited to patent issues), conditions
189
- are imposed on you (whether by court order, agreement or otherwise) that
190
- contradict the conditions of this License, they do not excuse you from the
191
- conditions of this License. If you cannot distribute so as to satisfy
192
- simultaneously your obligations under this License and any other pertinent
193
- obligations, then as a consequence you may not distribute the Program at all.
194
- For example, if a patent license would not permit royalty-free redistribution of
195
- the Program by all those who receive copies directly or indirectly through you,
196
- then the only way you could satisfy both it and this License would be to refrain
197
- entirely from distribution of the Program.
198
-
199
- If any portion of this section is held invalid or unenforceable under any
200
- particular circumstance, the balance of the section is intended to apply and the
201
- section as a whole is intended to apply in other circumstances.
202
-
203
- It is not the purpose of this section to induce you to infringe any patents or
204
- other property right claims or to contest validity of any such claims; this
205
- section has the sole purpose of protecting the integrity of the free software
206
- distribution system, which is implemented by public license practices. Many
207
- people have made generous contributions to the wide range of software
208
- distributed through that system in reliance on consistent application of that
209
- system; it is up to the author/donor to decide if he or she is willing to
210
- distribute software through any other system and a licensee cannot impose that
211
- choice.
212
-
213
- This section is intended to make thoroughly clear what is believed to be a
214
- consequence of the rest of this License.
215
-
216
- **8.** If the distribution and/or use of the Program is restricted in certain
217
- countries either by patents or by copyrighted interfaces, the original copyright
218
- holder who places the Program under this License may add an explicit
219
- geographical distribution limitation excluding those countries, so that
220
- distribution is permitted only in or among countries not thus excluded. In such
221
- case, this License incorporates the limitation as if written in the body of this
222
- License.
223
-
224
- **9.** The Free Software Foundation may publish revised and/or new versions of
225
- the General Public License from time to time. Such new versions will be similar
226
- in spirit to the present version, but may differ in detail to address new
227
- problems or concerns.
228
-
229
- Each version is given a distinguishing version number. If the Program specifies
230
- a version number of this License which applies to it and "any later version",
231
- you have the option of following the terms and conditions either of that version
232
- or of any later version published by the Free Software Foundation. If the
233
- Program does not specify a version number of this License, you may choose any
234
- version ever published by the Free Software Foundation.
235
-
236
- **10.** If you wish to incorporate parts of the Program into other free programs
237
- whose distribution conditions are different, write to the author to ask for
238
- permission. For software which is copyrighted by the Free Software Foundation,
239
- write to the Free Software Foundation; we sometimes make exceptions for this.
240
- Our decision will be guided by the two goals of preserving the free status of
241
- all derivatives of our free software and of promoting the sharing and reuse of
242
- software generally.
243
-
244
-
245
- No Warranty
246
- -----------
247
-
248
- **11.** BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
249
- THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
250
- STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM
251
- "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
252
- BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
253
- PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
254
- PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
255
- ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
256
-
257
- **12.** IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
258
- WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE
259
- THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
260
- GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
261
- INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA
262
- BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
263
- FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER
264
- OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
1
+ The GNU General Public License, Version 2, June 1991 (GPLv2)
2
+ ============================================================
3
+
4
+ > Copyright (C) 1989, 1991 Free Software Foundation, Inc.
5
+ > 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
6
+
7
+ Everyone is permitted to copy and distribute verbatim copies of this license
8
+ document, but changing it is not allowed.
9
+
10
+
11
+ Preamble
12
+ --------
13
+
14
+ The licenses for most software are designed to take away your freedom to share
15
+ and change it. By contrast, the GNU General Public License is intended to
16
+ guarantee your freedom to share and change free software--to make sure the
17
+ software is free for all its users. This General Public License applies to most
18
+ of the Free Software Foundation's software and to any other program whose
19
+ authors commit to using it. (Some other Free Software Foundation software is
20
+ covered by the GNU Library General Public License instead.) You can apply it to
21
+ your programs, too.
22
+
23
+ When we speak of free software, we are referring to freedom, not price. Our
24
+ General Public Licenses are designed to make sure that you have the freedom to
25
+ distribute copies of free software (and charge for this service if you wish),
26
+ that you receive source code or can get it if you want it, that you can change
27
+ the software or use pieces of it in new free programs; and that you know you can
28
+ do these things.
29
+
30
+ To protect your rights, we need to make restrictions that forbid anyone to deny
31
+ you these rights or to ask you to surrender the rights. These restrictions
32
+ translate to certain responsibilities for you if you distribute copies of the
33
+ software, or if you modify it.
34
+
35
+ For example, if you distribute copies of such a program, whether gratis or for a
36
+ fee, you must give the recipients all the rights that you have. You must make
37
+ sure that they, too, receive or can get the source code. And you must show them
38
+ these terms so they know their rights.
39
+
40
+ We protect your rights with two steps: (1) copyright the software, and (2) offer
41
+ you this license which gives you legal permission to copy, distribute and/or
42
+ modify the software.
43
+
44
+ Also, for each author's protection and ours, we want to make certain that
45
+ everyone understands that there is no warranty for this free software. If the
46
+ software is modified by someone else and passed on, we want its recipients to
47
+ know that what they have is not the original, so that any problems introduced by
48
+ others will not reflect on the original authors' reputations.
49
+
50
+ Finally, any free program is threatened constantly by software patents. We wish
51
+ to avoid the danger that redistributors of a free program will individually
52
+ obtain patent licenses, in effect making the program proprietary. To prevent
53
+ this, we have made it clear that any patent must be licensed for everyone's free
54
+ use or not licensed at all.
55
+
56
+ The precise terms and conditions for copying, distribution and modification
57
+ follow.
58
+
59
+
60
+ Terms And Conditions For Copying, Distribution And Modification
61
+ ---------------------------------------------------------------
62
+
63
+ **0.** This License applies to any program or other work which contains a notice
64
+ placed by the copyright holder saying it may be distributed under the terms of
65
+ this General Public License. The "Program", below, refers to any such program or
66
+ work, and a "work based on the Program" means either the Program or any
67
+ derivative work under copyright law: that is to say, a work containing the
68
+ Program or a portion of it, either verbatim or with modifications and/or
69
+ translated into another language. (Hereinafter, translation is included without
70
+ limitation in the term "modification".) Each licensee is addressed as "you".
71
+
72
+ Activities other than copying, distribution and modification are not covered by
73
+ this License; they are outside its scope. The act of running the Program is not
74
+ restricted, and the output from the Program is covered only if its contents
75
+ constitute a work based on the Program (independent of having been made by
76
+ running the Program). Whether that is true depends on what the Program does.
77
+
78
+ **1.** You may copy and distribute verbatim copies of the Program's source code
79
+ as you receive it, in any medium, provided that you conspicuously and
80
+ appropriately publish on each copy an appropriate copyright notice and
81
+ disclaimer of warranty; keep intact all the notices that refer to this License
82
+ and to the absence of any warranty; and give any other recipients of the Program
83
+ a copy of this License along with the Program.
84
+
85
+ You may charge a fee for the physical act of transferring a copy, and you may at
86
+ your option offer warranty protection in exchange for a fee.
87
+
88
+ **2.** You may modify your copy or copies of the Program or any portion of it,
89
+ thus forming a work based on the Program, and copy and distribute such
90
+ modifications or work under the terms of Section 1 above, provided that you also
91
+ meet all of these conditions:
92
+
93
+ * **a)** You must cause the modified files to carry prominent notices stating
94
+ that you changed the files and the date of any change.
95
+
96
+ * **b)** You must cause any work that you distribute or publish, that in whole
97
+ or in part contains or is derived from the Program or any part thereof, to
98
+ be licensed as a whole at no charge to all third parties under the terms of
99
+ this License.
100
+
101
+ * **c)** If the modified program normally reads commands interactively when
102
+ run, you must cause it, when started running for such interactive use in the
103
+ most ordinary way, to print or display an announcement including an
104
+ appropriate copyright notice and a notice that there is no warranty (or
105
+ else, saying that you provide a warranty) and that users may redistribute
106
+ the program under these conditions, and telling the user how to view a copy
107
+ of this License. (Exception: if the Program itself is interactive but does
108
+ not normally print such an announcement, your work based on the Program is
109
+ not required to print an announcement.)
110
+
111
+ These requirements apply to the modified work as a whole. If identifiable
112
+ sections of that work are not derived from the Program, and can be reasonably
113
+ considered independent and separate works in themselves, then this License, and
114
+ its terms, do not apply to those sections when you distribute them as separate
115
+ works. But when you distribute the same sections as part of a whole which is a
116
+ work based on the Program, the distribution of the whole must be on the terms of
117
+ this License, whose permissions for other licensees extend to the entire whole,
118
+ and thus to each and every part regardless of who wrote it.
119
+
120
+ Thus, it is not the intent of this section to claim rights or contest your
121
+ rights to work written entirely by you; rather, the intent is to exercise the
122
+ right to control the distribution of derivative or collective works based on the
123
+ Program.
124
+
125
+ In addition, mere aggregation of another work not based on the Program with the
126
+ Program (or with a work based on the Program) on a volume of a storage or
127
+ distribution medium does not bring the other work under the scope of this
128
+ License.
129
+
130
+ **3.** You may copy and distribute the Program (or a work based on it, under
131
+ Section 2) in object code or executable form under the terms of Sections 1 and 2
132
+ above provided that you also do one of the following:
133
+
134
+ * **a)** Accompany it with the complete corresponding machine-readable source
135
+ code, which must be distributed under the terms of Sections 1 and 2 above on
136
+ a medium customarily used for software interchange; or,
137
+
138
+ * **b)** Accompany it with a written offer, valid for at least three years, to
139
+ give any third party, for a charge no more than your cost of physically
140
+ performing source distribution, a complete machine-readable copy of the
141
+ corresponding source code, to be distributed under the terms of Sections 1
142
+ and 2 above on a medium customarily used for software interchange; or,
143
+
144
+ * **c)** Accompany it with the information you received as to the offer to
145
+ distribute corresponding source code. (This alternative is allowed only for
146
+ noncommercial distribution and only if you received the program in object
147
+ code or executable form with such an offer, in accord with Subsection b
148
+ above.)
149
+
150
+ The source code for a work means the preferred form of the work for making
151
+ modifications to it. For an executable work, complete source code means all the
152
+ source code for all modules it contains, plus any associated interface
153
+ definition files, plus the scripts used to control compilation and installation
154
+ of the executable. However, as a special exception, the source code distributed
155
+ need not include anything that is normally distributed (in either source or
156
+ binary form) with the major components (compiler, kernel, and so on) of the
157
+ operating system on which the executable runs, unless that component itself
158
+ accompanies the executable.
159
+
160
+ If distribution of executable or object code is made by offering access to copy
161
+ from a designated place, then offering equivalent access to copy the source code
162
+ from the same place counts as distribution of the source code, even though third
163
+ parties are not compelled to copy the source along with the object code.
164
+
165
+ **4.** You may not copy, modify, sublicense, or distribute the Program except as
166
+ expressly provided under this License. Any attempt otherwise to copy, modify,
167
+ sublicense or distribute the Program is void, and will automatically terminate
168
+ your rights under this License. However, parties who have received copies, or
169
+ rights, from you under this License will not have their licenses terminated so
170
+ long as such parties remain in full compliance.
171
+
172
+ **5.** You are not required to accept this License, since you have not signed
173
+ it. However, nothing else grants you permission to modify or distribute the
174
+ Program or its derivative works. These actions are prohibited by law if you do
175
+ not accept this License. Therefore, by modifying or distributing the Program (or
176
+ any work based on the Program), you indicate your acceptance of this License to
177
+ do so, and all its terms and conditions for copying, distributing or modifying
178
+ the Program or works based on it.
179
+
180
+ **6.** Each time you redistribute the Program (or any work based on the
181
+ Program), the recipient automatically receives a license from the original
182
+ licensor to copy, distribute or modify the Program subject to these terms and
183
+ conditions. You may not impose any further restrictions on the recipients'
184
+ exercise of the rights granted herein. You are not responsible for enforcing
185
+ compliance by third parties to this License.
186
+
187
+ **7.** If, as a consequence of a court judgment or allegation of patent
188
+ infringement or for any other reason (not limited to patent issues), conditions
189
+ are imposed on you (whether by court order, agreement or otherwise) that
190
+ contradict the conditions of this License, they do not excuse you from the
191
+ conditions of this License. If you cannot distribute so as to satisfy
192
+ simultaneously your obligations under this License and any other pertinent
193
+ obligations, then as a consequence you may not distribute the Program at all.
194
+ For example, if a patent license would not permit royalty-free redistribution of
195
+ the Program by all those who receive copies directly or indirectly through you,
196
+ then the only way you could satisfy both it and this License would be to refrain
197
+ entirely from distribution of the Program.
198
+
199
+ If any portion of this section is held invalid or unenforceable under any
200
+ particular circumstance, the balance of the section is intended to apply and the
201
+ section as a whole is intended to apply in other circumstances.
202
+
203
+ It is not the purpose of this section to induce you to infringe any patents or
204
+ other property right claims or to contest validity of any such claims; this
205
+ section has the sole purpose of protecting the integrity of the free software
206
+ distribution system, which is implemented by public license practices. Many
207
+ people have made generous contributions to the wide range of software
208
+ distributed through that system in reliance on consistent application of that
209
+ system; it is up to the author/donor to decide if he or she is willing to
210
+ distribute software through any other system and a licensee cannot impose that
211
+ choice.
212
+
213
+ This section is intended to make thoroughly clear what is believed to be a
214
+ consequence of the rest of this License.
215
+
216
+ **8.** If the distribution and/or use of the Program is restricted in certain
217
+ countries either by patents or by copyrighted interfaces, the original copyright
218
+ holder who places the Program under this License may add an explicit
219
+ geographical distribution limitation excluding those countries, so that
220
+ distribution is permitted only in or among countries not thus excluded. In such
221
+ case, this License incorporates the limitation as if written in the body of this
222
+ License.
223
+
224
+ **9.** The Free Software Foundation may publish revised and/or new versions of
225
+ the General Public License from time to time. Such new versions will be similar
226
+ in spirit to the present version, but may differ in detail to address new
227
+ problems or concerns.
228
+
229
+ Each version is given a distinguishing version number. If the Program specifies
230
+ a version number of this License which applies to it and "any later version",
231
+ you have the option of following the terms and conditions either of that version
232
+ or of any later version published by the Free Software Foundation. If the
233
+ Program does not specify a version number of this License, you may choose any
234
+ version ever published by the Free Software Foundation.
235
+
236
+ **10.** If you wish to incorporate parts of the Program into other free programs
237
+ whose distribution conditions are different, write to the author to ask for
238
+ permission. For software which is copyrighted by the Free Software Foundation,
239
+ write to the Free Software Foundation; we sometimes make exceptions for this.
240
+ Our decision will be guided by the two goals of preserving the free status of
241
+ all derivatives of our free software and of promoting the sharing and reuse of
242
+ software generally.
243
+
244
+
245
+ No Warranty
246
+ -----------
247
+
248
+ **11.** BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
249
+ THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
250
+ STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM
251
+ "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
252
+ BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
253
+ PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
254
+ PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
255
+ ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
256
+
257
+ **12.** IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
258
+ WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE
259
+ THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
260
+ GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
261
+ INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA
262
+ BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
263
+ FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER
264
+ OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.