omniauth-ldap 3.0.0 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/SECURITY.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  | Version | Supported |
6
6
  |----------|-----------|
7
- | 1.latest | ✅ |
7
+ | 3.0.latest | ✅ |
8
8
 
9
9
  ## Security contact information
10
10
 
data/certs/pboling.pem ADDED
@@ -0,0 +1,27 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIEgDCCAuigAwIBAgIBATANBgkqhkiG9w0BAQsFADBDMRUwEwYDVQQDDAxwZXRl
3
+ ci5ib2xpbmcxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkW
4
+ A2NvbTAeFw0yNTA1MDQxNTMzMDlaFw00NTA0MjkxNTMzMDlaMEMxFTATBgNVBAMM
5
+ DHBldGVyLmJvbGluZzEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPy
6
+ LGQBGRYDY29tMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAruUoo0WA
7
+ uoNuq6puKWYeRYiZekz/nsDeK5x/0IEirzcCEvaHr3Bmz7rjo1I6On3gGKmiZs61
8
+ LRmQ3oxy77ydmkGTXBjruJB+pQEn7UfLSgQ0xa1/X3kdBZt6RmabFlBxnHkoaGY5
9
+ mZuZ5+Z7walmv6sFD9ajhzj+oIgwWfnEHkXYTR8I6VLN7MRRKGMPoZ/yvOmxb2DN
10
+ coEEHWKO9CvgYpW7asIihl/9GMpKiRkcYPm9dGQzZc6uTwom1COfW0+ZOFrDVBuV
11
+ FMQRPswZcY4Wlq0uEBLPU7hxnCL9nKK6Y9IhdDcz1mY6HZ91WImNslOSI0S8hRpj
12
+ yGOWxQIhBT3fqCBlRIqFQBudrnD9jSNpSGsFvbEijd5ns7Z9ZMehXkXDycpGAUj1
13
+ to/5cuTWWw1JqUWrKJYoifnVhtE1o1DZ+LkPtWxHtz5kjDG/zR3MG0Ula0UOavlD
14
+ qbnbcXPBnwXtTFeZ3C+yrWpE4pGnl3yGkZj9SMTlo9qnTMiPmuWKQDatAgMBAAGj
15
+ fzB9MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBQE8uWvNbPVNRXZ
16
+ HlgPbc2PCzC4bjAhBgNVHREEGjAYgRZwZXRlci5ib2xpbmdAZ21haWwuY29tMCEG
17
+ A1UdEgQaMBiBFnBldGVyLmJvbGluZ0BnbWFpbC5jb20wDQYJKoZIhvcNAQELBQAD
18
+ ggGBAJbnUwfJQFPkBgH9cL7hoBfRtmWiCvdqdjeTmi04u8zVNCUox0A4gT982DE9
19
+ wmuN12LpdajxZONqbXuzZvc+nb0StFwmFYZG6iDwaf4BPywm2e/Vmq0YG45vZXGR
20
+ L8yMDSK1cQXjmA+ZBKOHKWavxP6Vp7lWvjAhz8RFwqF9GuNIdhv9NpnCAWcMZtpm
21
+ GUPyIWw/Cw/2wZp74QzZj6Npx+LdXoLTF1HMSJXZ7/pkxLCsB8m4EFVdb/IrW/0k
22
+ kNSfjtAfBHO8nLGuqQZVH9IBD1i9K6aSs7pT6TW8itXUIlkIUI2tg5YzW6OFfPzq
23
+ QekSkX3lZfY+HTSp/o+YvKkqWLUV7PQ7xh1ZYDtocpaHwgxe/j3bBqHE+CUPH2vA
24
+ 0V/FwdTRWcwsjVoOJTrYcff8pBZ8r2MvtAc54xfnnhGFzeRHfcltobgFxkAXdE6p
25
+ DVjBtqT23eugOqQ73umLcYDZkc36vnqGxUBSsXrzY9pzV5gGr2I8YUxMqf6ATrZt
26
+ L9nRqA==
27
+ -----END CERTIFICATE-----
@@ -23,7 +23,7 @@ module OmniAuth
23
23
  class Adaptor
24
24
  include OmniAuth::LDAP::AUTH_SANITIZER::FilteredAttributes
25
25
 
26
- filtered_attributes :@auth, :@configuration, :@connection, :@password, :@tls_options
26
+ filtered_attributes :auth, :configuration, :connection, :key, :password, :tls_options
27
27
 
28
28
  # Generic adaptor error super-class
29
29
  # @see Error classes that inherit from this class
@@ -63,7 +63,7 @@ module OmniAuth
63
63
  # Timeouts
64
64
  :connect_timeout,
65
65
  :read_timeout,
66
- :method,
66
+ :method
67
67
  ]
68
68
 
69
69
  # Required configuration keys. This may include alternatives as sub-lists
@@ -74,7 +74,7 @@ module OmniAuth
74
74
  [:encryption, :method], # :method is deprecated
75
75
  [:hosts, :host],
76
76
  [:hosts, :port],
77
- [:uid, :filter],
77
+ [:uid, :filter]
78
78
  ]
79
79
 
80
80
  # Supported encryption method mapping for configuration readability.
@@ -87,7 +87,7 @@ module OmniAuth
87
87
  # Deprecated. This mapping aimed to be user-friendly, but only caused
88
88
  # confusion. Better to pass through the actual `Net::LDAP` encryption type.
89
89
  ssl: :simple_tls,
90
- tls: :start_tls,
90
+ tls: :start_tls
91
91
  }
92
92
 
93
93
  # @!attribute [rw] bind_dn
@@ -167,7 +167,7 @@ module OmniAuth
167
167
  hosts: @hosts,
168
168
  host: @host,
169
169
  port: @port,
170
- encryption: encryption_options,
170
+ encryption: encryption_options
171
171
  }
172
172
  # Remove passing timeouts here to avoid issues on older net-ldap versions.
173
173
  # We'll set them after initialization if the connection responds to writers.
@@ -181,7 +181,7 @@ module OmniAuth
181
181
  @auth ||= {
182
182
  method: @bind_method,
183
183
  username: @bind_dn,
184
- password: @password,
184
+ password: @password
185
185
  }
186
186
  config[:auth] = @auth
187
187
  @connection = Net::LDAP.new(config)
@@ -235,7 +235,7 @@ module OmniAuth
235
235
  {
236
236
  method: :simple,
237
237
  username: dn,
238
- password: password,
238
+ password: password
239
239
  }
240
240
  end
241
241
 
@@ -275,7 +275,7 @@ module OmniAuth
275
275
 
276
276
  {
277
277
  method: translated_method,
278
- tls_options: tls_options(translated_method),
278
+ tls_options: tls_options(translated_method)
279
279
  }
280
280
  end
281
281
 
@@ -333,7 +333,7 @@ module OmniAuth
333
333
  method: :sasl,
334
334
  initial_credential: initial_credential,
335
335
  mechanism: mechanism,
336
- challenge_response: challenge_response,
336
+ challenge_response: challenge_response
337
337
  }
338
338
  end
339
339
  auths
@@ -437,7 +437,7 @@ module OmniAuth
437
437
  end
438
438
  @last_password_policy_response = ctrl if ctrl
439
439
  end
440
- rescue StandardError
440
+ rescue
441
441
  # Swallow errors to keep authentication flow unaffected when server or gem doesn't support controls
442
442
  @last_password_policy_response = nil
443
443
  end
@@ -13,7 +13,7 @@ module OmniAuth
13
13
 
14
14
  auth_sanitizer_loader_path = File.join(
15
15
  auth_sanitizer_spec.full_gem_path,
16
- "lib/auth_sanitizer/loader.rb",
16
+ "lib/auth_sanitizer/loader.rb"
17
17
  )
18
18
  unless File.file?(auth_sanitizer_loader_path)
19
19
  # :nocov:
@@ -26,7 +26,7 @@ module OmniAuth
26
26
  auth_sanitizer_loader_namespace.module_eval(
27
27
  File.read(auth_sanitizer_loader_path),
28
28
  auth_sanitizer_loader_path,
29
- 1,
29
+ 1
30
30
  )
31
31
 
32
32
  auth_sanitizer_loader_namespace
@@ -1,17 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module OmniAuth
2
4
  module LDAP
3
- # Version namespace for the omniauth-ldap gem
4
- #
5
- # This module contains the version constant used by rubygems and in code
6
- # consumers. It intentionally exposes VERSION both inside the Version
7
- # namespace and as OmniAuth::LDAP::VERSION for compatibility.
8
5
  module Version
9
- # Public semantic version for the gem
10
- # @return [String]
11
- VERSION = "3.0.0"
6
+ VERSION = "3.0.1"
12
7
  end
13
- # Convenience constant for consumers that expect OmniAuth::LDAP::VERSION
14
- # @return [String]
15
- VERSION = Version::VERSION # Make VERSION available in traditional way
8
+ VERSION = Version::VERSION # Traditional Constant Location
16
9
  end
17
10
  end
data/lib/omniauth/ldap.rb CHANGED
File without changes
@@ -72,7 +72,7 @@ module OmniAuth
72
72
  "uid" => "dn",
73
73
  "url" => ["wwwhomepage"],
74
74
  "image" => "jpegPhoto",
75
- "description" => "description",
75
+ "description" => "description"
76
76
  }
77
77
 
78
78
  # Default title shown on the login form.
@@ -169,7 +169,11 @@ module OmniAuth
169
169
 
170
170
  return fail!(:invalid_request_method) unless valid_request_method?
171
171
 
172
- validate_header_auth_configuration!
172
+ begin
173
+ validate_header_auth_configuration!
174
+ rescue => e
175
+ return fail!(:ldap_error, e)
176
+ end
173
177
 
174
178
  # Header-based SSO (REMOTE_USER-style) path
175
179
  if (hu = header_username)
data/lib/omniauth-ldap.rb CHANGED
File without changes
File without changes
@@ -3,9 +3,6 @@ module OmniAuth
3
3
  module Version
4
4
  VERSION: String
5
5
  end
6
-
7
- # Traditional constant alias
8
6
  VERSION: String
9
7
  end
10
8
  end
11
-
File without changes
File without changes
data/sig/rbs/net-ldap.rbs CHANGED
File without changes
data/sig/rbs/net-ntlm.rbs CHANGED
File without changes
data/sig/rbs/sasl.rbs CHANGED
File without changes
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,12 +1,32 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniauth-ldap
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 3.0.1
5
5
  platform: ruby
6
6
  authors:
7
- - Peter Boling
7
+ - Hubert
8
8
  - Ping Yu
9
- - Tom Milewski
9
+ - angel brown
10
+ - Dmitriy Dzema
11
+ - Dmitriy Zaporozhets
12
+ - Pat Thoyts
13
+ - Rashit Azizbaev
14
+ - Samuel de Framond
15
+ - Terry Tai
16
+ - David Benko
17
+ - Jakub Jirutka
18
+ - Jason Hollingsworth
19
+ - Mack Talcott
20
+ - Drew Blessing
21
+ - Julian Kniephoff
22
+ - Mike Tierney
23
+ - Sasha Kotlyar
24
+ - Michael Kozono
25
+ - Tiago Botelho
26
+ - tmilewski
27
+ - Finn Bacall
28
+ - Stan Hu
29
+ - Peter H. Boling
10
30
  bindir: exe
11
31
  cert_chain:
12
32
  - |
@@ -45,20 +65,20 @@ dependencies:
45
65
  requirements:
46
66
  - - "~>"
47
67
  - !ruby/object:Gem::Version
48
- version: '0.1'
68
+ version: '0.2'
49
69
  - - ">="
50
70
  - !ruby/object:Gem::Version
51
- version: 0.1.4
71
+ version: 0.2.1
52
72
  type: :runtime
53
73
  prerelease: false
54
74
  version_requirements: !ruby/object:Gem::Requirement
55
75
  requirements:
56
76
  - - "~>"
57
77
  - !ruby/object:Gem::Version
58
- version: '0.1'
78
+ version: '0.2'
59
79
  - - ">="
60
80
  - !ruby/object:Gem::Version
61
- version: 0.1.4
81
+ version: 0.2.1
62
82
  - !ruby/object:Gem::Dependency
63
83
  name: net-ldap
64
84
  requirement: !ruby/object:Gem::Requirement
@@ -168,7 +188,7 @@ dependencies:
168
188
  version: '1.1'
169
189
  - - ">="
170
190
  - !ruby/object:Gem::Version
171
- version: 1.1.9
191
+ version: 1.1.12
172
192
  type: :runtime
173
193
  prerelease: false
174
194
  version_requirements: !ruby/object:Gem::Requirement
@@ -178,49 +198,41 @@ dependencies:
178
198
  version: '1.1'
179
199
  - - ">="
180
200
  - !ruby/object:Gem::Version
181
- version: 1.1.9
182
- - !ruby/object:Gem::Dependency
183
- name: roda
184
- requirement: !ruby/object:Gem::Requirement
185
- requirements:
186
- - - "~>"
187
- - !ruby/object:Gem::Version
188
- version: '3.97'
189
- type: :development
190
- prerelease: false
191
- version_requirements: !ruby/object:Gem::Requirement
192
- requirements:
193
- - - "~>"
194
- - !ruby/object:Gem::Version
195
- version: '3.97'
201
+ version: 1.1.12
196
202
  - !ruby/object:Gem::Dependency
197
203
  name: kettle-dev
198
204
  requirement: !ruby/object:Gem::Requirement
199
205
  requirements:
200
206
  - - "~>"
201
207
  - !ruby/object:Gem::Version
202
- version: '1.1'
208
+ version: '2.2'
209
+ - - ">="
210
+ - !ruby/object:Gem::Version
211
+ version: 2.2.9
203
212
  type: :development
204
213
  prerelease: false
205
214
  version_requirements: !ruby/object:Gem::Requirement
206
215
  requirements:
207
216
  - - "~>"
208
217
  - !ruby/object:Gem::Version
209
- version: '1.1'
218
+ version: '2.2'
219
+ - - ">="
220
+ - !ruby/object:Gem::Version
221
+ version: 2.2.9
210
222
  - !ruby/object:Gem::Dependency
211
223
  name: bundler-audit
212
224
  requirement: !ruby/object:Gem::Requirement
213
225
  requirements:
214
226
  - - "~>"
215
227
  - !ruby/object:Gem::Version
216
- version: 0.9.2
228
+ version: 0.9.3
217
229
  type: :development
218
230
  prerelease: false
219
231
  version_requirements: !ruby/object:Gem::Requirement
220
232
  requirements:
221
233
  - - "~>"
222
234
  - !ruby/object:Gem::Version
223
- version: 0.9.2
235
+ version: 0.9.3
224
236
  - !ruby/object:Gem::Dependency
225
237
  name: rake
226
238
  requirement: !ruby/object:Gem::Requirement
@@ -261,48 +273,60 @@ dependencies:
261
273
  requirements:
262
274
  - - "~>"
263
275
  - !ruby/object:Gem::Version
264
- version: '3.0'
276
+ version: '3.1'
277
+ - - ">="
278
+ - !ruby/object:Gem::Version
279
+ version: 3.1.2
265
280
  type: :development
266
281
  prerelease: false
267
282
  version_requirements: !ruby/object:Gem::Requirement
268
283
  requirements:
269
284
  - - "~>"
270
285
  - !ruby/object:Gem::Version
271
- version: '3.0'
286
+ version: '3.1'
287
+ - - ">="
288
+ - !ruby/object:Gem::Version
289
+ version: 3.1.2
272
290
  - !ruby/object:Gem::Dependency
273
291
  name: kettle-test
274
292
  requirement: !ruby/object:Gem::Requirement
275
293
  requirements:
276
294
  - - "~>"
277
295
  - !ruby/object:Gem::Version
278
- version: '1.0'
296
+ version: '2.0'
279
297
  - - ">="
280
298
  - !ruby/object:Gem::Version
281
- version: 1.0.6
299
+ version: 2.0.5
282
300
  type: :development
283
301
  prerelease: false
284
302
  version_requirements: !ruby/object:Gem::Requirement
285
303
  requirements:
286
304
  - - "~>"
287
305
  - !ruby/object:Gem::Version
288
- version: '1.0'
306
+ version: '2.0'
289
307
  - - ">="
290
308
  - !ruby/object:Gem::Version
291
- version: 1.0.6
309
+ version: 2.0.5
292
310
  - !ruby/object:Gem::Dependency
293
- name: rack-test
311
+ name: turbo_tests2
294
312
  requirement: !ruby/object:Gem::Requirement
295
313
  requirements:
296
314
  - - "~>"
297
315
  - !ruby/object:Gem::Version
298
- version: '2.2'
316
+ version: '3.1'
317
+ - - ">="
318
+ - !ruby/object:Gem::Version
319
+ version: 3.1.3
299
320
  type: :development
300
321
  prerelease: false
301
322
  version_requirements: !ruby/object:Gem::Requirement
302
323
  requirements:
303
324
  - - "~>"
304
325
  - !ruby/object:Gem::Version
305
- version: '2.2'
326
+ version: '3.1'
327
+ - - ">="
328
+ - !ruby/object:Gem::Version
329
+ version: 3.1.3
306
330
  - !ruby/object:Gem::Dependency
307
331
  name: ruby-progressbar
308
332
  requirement: !ruby/object:Gem::Requirement
@@ -326,7 +350,7 @@ dependencies:
326
350
  version: '1.0'
327
351
  - - ">="
328
352
  - !ruby/object:Gem::Version
329
- version: 1.0.2
353
+ version: 1.0.3
330
354
  type: :development
331
355
  prerelease: false
332
356
  version_requirements: !ruby/object:Gem::Requirement
@@ -336,27 +360,55 @@ dependencies:
336
360
  version: '1.0'
337
361
  - - ">="
338
362
  - !ruby/object:Gem::Version
339
- version: 1.0.2
363
+ version: 1.0.3
340
364
  - !ruby/object:Gem::Dependency
341
365
  name: gitmoji-regex
342
366
  requirement: !ruby/object:Gem::Requirement
343
367
  requirements:
344
368
  - - "~>"
345
369
  - !ruby/object:Gem::Version
346
- version: '1.0'
370
+ version: '2.0'
347
371
  - - ">="
348
372
  - !ruby/object:Gem::Version
349
- version: 1.0.3
373
+ version: 2.0.2
350
374
  type: :development
351
375
  prerelease: false
352
376
  version_requirements: !ruby/object:Gem::Requirement
353
377
  requirements:
354
378
  - - "~>"
355
379
  - !ruby/object:Gem::Version
356
- version: '1.0'
380
+ version: '2.0'
357
381
  - - ">="
358
382
  - !ruby/object:Gem::Version
359
- version: 1.0.3
383
+ version: 2.0.2
384
+ - !ruby/object:Gem::Dependency
385
+ name: rack-test
386
+ requirement: !ruby/object:Gem::Requirement
387
+ requirements:
388
+ - - "~>"
389
+ - !ruby/object:Gem::Version
390
+ version: '2.2'
391
+ type: :development
392
+ prerelease: false
393
+ version_requirements: !ruby/object:Gem::Requirement
394
+ requirements:
395
+ - - "~>"
396
+ - !ruby/object:Gem::Version
397
+ version: '2.2'
398
+ - !ruby/object:Gem::Dependency
399
+ name: roda
400
+ requirement: !ruby/object:Gem::Requirement
401
+ requirements:
402
+ - - "~>"
403
+ - !ruby/object:Gem::Version
404
+ version: '3.97'
405
+ type: :development
406
+ prerelease: false
407
+ version_requirements: !ruby/object:Gem::Requirement
408
+ requirements:
409
+ - - "~>"
410
+ - !ruby/object:Gem::Version
411
+ version: '3.97'
360
412
  description: "\U0001F4C1 LDAP strategy for OmniAuth."
361
413
  email:
362
414
  - floss@galtzo.com
@@ -368,7 +420,7 @@ extra_rdoc_files:
368
420
  - CODE_OF_CONDUCT.md
369
421
  - CONTRIBUTING.md
370
422
  - FUNDING.md
371
- - LICENSE.txt
423
+ - LICENSE.md
372
424
  - README.md
373
425
  - RUBOCOP.md
374
426
  - SECURITY.md
@@ -378,10 +430,11 @@ files:
378
430
  - CODE_OF_CONDUCT.md
379
431
  - CONTRIBUTING.md
380
432
  - FUNDING.md
381
- - LICENSE.txt
433
+ - LICENSE.md
382
434
  - README.md
383
435
  - RUBOCOP.md
384
436
  - SECURITY.md
437
+ - certs/pboling.pem
385
438
  - lib/omniauth-ldap.rb
386
439
  - lib/omniauth/ldap.rb
387
440
  - lib/omniauth/ldap/adaptor.rb
@@ -399,11 +452,11 @@ homepage: https://github.com/omniauth/omniauth-ldap
399
452
  licenses:
400
453
  - MIT
401
454
  metadata:
402
- homepage_uri: https://omniauth-ldap.galtzo.com/
403
- source_code_uri: https://github.com/omniauth/omniauth-ldap/tree/v3.0.0
404
- changelog_uri: https://github.com/omniauth/omniauth-ldap/blob/v3.0.0/CHANGELOG.md
455
+ homepage_uri: https://omniauth-ldap.galtzo.com
456
+ source_code_uri: https://github.com/omniauth/omniauth-ldap/tree/v3.0.1
457
+ changelog_uri: https://github.com/omniauth/omniauth-ldap/blob/v3.0.1/CHANGELOG.md
405
458
  bug_tracker_uri: https://github.com/omniauth/omniauth-ldap/issues
406
- documentation_uri: https://www.rubydoc.info/gems/omniauth-ldap/3.0.0
459
+ documentation_uri: https://www.rubydoc.info/gems/omniauth-ldap/3.0.1
407
460
  funding_uri: https://github.com/sponsors/pboling
408
461
  wiki_uri: https://github.com/omniauth/omniauth-ldap/wiki
409
462
  news_uri: https://www.railsbling.com/tags/omniauth-ldap
@@ -432,7 +485,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
432
485
  - !ruby/object:Gem::Version
433
486
  version: '0'
434
487
  requirements: []
435
- rubygems_version: 4.0.11
488
+ rubygems_version: 4.0.10
436
489
  specification_version: 4
437
490
  summary: "\U0001F4C1 LDAP strategy for OmniAuth."
438
491
  test_files: []
metadata.gz.sig CHANGED
Binary file
data/LICENSE.txt DELETED
@@ -1,24 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2025 - 2026 Peter H. Boling, and omniauth-ldap contributors
4
- Copyright (c) 2014 David Benko
5
- Copyright (c) 2011 by Ping Yu and Intridea, Inc.
6
-
7
- Permission is hereby granted, free of charge, to any person obtaining
8
- a copy of this software and associated documentation files (the
9
- "Software"), to deal in the Software without restriction, including
10
- without limitation the rights to use, copy, modify, merge, publish,
11
- distribute, sublicense, and/or sell copies of the Software, and to
12
- permit persons to whom the Software is furnished to do so, subject to
13
- the following conditions:
14
-
15
- The above copyright notice and this permission notice shall be
16
- included in all copies or substantial portions of the Software.
17
-
18
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
19
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
22
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
23
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
24
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.