modsmith-cli 0.1.1__py3-none-any.whl
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.
- modsmith_cli/__init__.py +8 -0
- modsmith_cli/__main__.py +6 -0
- modsmith_cli/app.py +224 -0
- modsmith_cli/commands/__init__.py +1 -0
- modsmith_cli/commands/config.py +81 -0
- modsmith_cli/commands/contents.py +332 -0
- modsmith_cli/commands/discovery.py +152 -0
- modsmith_cli/commands/install.py +351 -0
- modsmith_cli/commands/instance.py +234 -0
- modsmith_cli/commands/list.py +48 -0
- modsmith_cli/commands/search.py +205 -0
- modsmith_cli/commands/update.py +324 -0
- modsmith_cli/context.py +117 -0
- modsmith_cli/core/__init__.py +5 -0
- modsmith_cli/core/config.py +243 -0
- modsmith_cli/core/contents.py +68 -0
- modsmith_cli/core/errors.py +19 -0
- modsmith_cli/core/install.py +244 -0
- modsmith_cli/core/names.py +30 -0
- modsmith_cli/core/paths.py +63 -0
- modsmith_cli/core/platforms.py +98 -0
- modsmith_cli/core/records.py +73 -0
- modsmith_cli/core/refs.py +96 -0
- modsmith_cli/core/registry.py +183 -0
- modsmith_cli/errors.py +180 -0
- modsmith_cli/target.py +43 -0
- modsmith_cli/ui.py +219 -0
- modsmith_cli-0.1.1.dist-info/METADATA +255 -0
- modsmith_cli-0.1.1.dist-info/RECORD +32 -0
- modsmith_cli-0.1.1.dist-info/WHEEL +4 -0
- modsmith_cli-0.1.1.dist-info/entry_points.txt +2 -0
- modsmith_cli-0.1.1.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: modsmith-cli
|
|
3
|
+
Version: 0.1.1
|
|
4
|
+
Summary: Install Minecraft modpacks and mods for the official launcher.
|
|
5
|
+
Project-URL: Homepage, https://modsmithmc.org/
|
|
6
|
+
Project-URL: Source, https://github.com/ModsmithMC/modsmith-cli
|
|
7
|
+
Project-URL: Documentation, https://modsmithmc.org/modsmith-cli/
|
|
8
|
+
Project-URL: Issues, https://github.com/ModsmithMC/modsmith-cli/issues
|
|
9
|
+
Author-email: MeNeither <pengyufeng2003@outlook.com>
|
|
10
|
+
License-Expression: MIT
|
|
11
|
+
License-File: LICENSE
|
|
12
|
+
Classifier: Development Status :: 3 - Alpha
|
|
13
|
+
Classifier: Environment :: Console
|
|
14
|
+
Classifier: Intended Audience :: End Users/Desktop
|
|
15
|
+
Classifier: Operating System :: OS Independent
|
|
16
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
17
|
+
Classifier: Topic :: Games/Entertainment
|
|
18
|
+
Requires-Python: >=3.12
|
|
19
|
+
Requires-Dist: modsmith<0.4,>=0.3.5
|
|
20
|
+
Requires-Dist: platformdirs>=4.3
|
|
21
|
+
Requires-Dist: rich>=13.9
|
|
22
|
+
Requires-Dist: tomli-w>=1.1
|
|
23
|
+
Requires-Dist: typer>=0.15
|
|
24
|
+
Description-Content-Type: text/markdown
|
|
25
|
+
|
|
26
|
+
<p align="center">
|
|
27
|
+
<img src="docs/assets/banner.svg" alt="Modsmith" width="100%">
|
|
28
|
+
</p>
|
|
29
|
+
|
|
30
|
+
<p align="center">
|
|
31
|
+
<strong>Modpacks from your terminal: find, install and update Minecraft modpacks, mods, resource packs and shaders for the official launcher.</strong>
|
|
32
|
+
</p>
|
|
33
|
+
|
|
34
|
+
<p align="center">
|
|
35
|
+
<a href="https://github.com/ModsmithMC/modsmith-cli/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/ModsmithMC/modsmith-cli/ci.yml?branch=main&style=flat-square&label=CI&logo=github" alt="CI"></a>
|
|
36
|
+
<a href="https://pypi.org/project/modsmith-cli/"><img src="https://img.shields.io/pypi/v/modsmith-cli?style=flat-square&color=3c8527" alt="PyPI"></a>
|
|
37
|
+
<a href="https://www.python.org/downloads/"><img src="https://img.shields.io/badge/python-3.12%2B-3776AB?style=flat-square&logo=python&logoColor=white" alt="Python 3.12+"></a>
|
|
38
|
+
<img src="https://img.shields.io/badge/status-alpha-orange?style=flat-square" alt="Alpha">
|
|
39
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-green?style=flat-square" alt="MIT license"></a>
|
|
40
|
+
</p>
|
|
41
|
+
|
|
42
|
+
<p align="center">
|
|
43
|
+
<a href="https://modsmithmc.org/">Website</a> · <a href="https://modsmithmc.org/modsmith-cli/">Documentation</a> · <strong>English</strong> · <a href="README_ZH.md">简体中文</a>
|
|
44
|
+
</p>
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
Modsmith prepares the game files and adds an installation to the official Minecraft launcher. It does not sign in or start the game: you choose the installation in the launcher and play.
|
|
49
|
+
|
|
50
|
+
<table>
|
|
51
|
+
<tr>
|
|
52
|
+
<td width="33%" valign="top">
|
|
53
|
+
<img src="https://raw.githubusercontent.com/ModsmithMC/modsmithmc.github.io/main/site/assets/pixel/package.svg" alt="" width="24" height="24">
|
|
54
|
+
<p><strong>Modpacks in one command</strong></p>
|
|
55
|
+
Install a pack from Modrinth, CurseForge or a file, with its mod loader and Minecraft.
|
|
56
|
+
</td>
|
|
57
|
+
<td width="33%" valign="top">
|
|
58
|
+
<img src="https://raw.githubusercontent.com/ModsmithMC/modsmithmc.github.io/main/site/assets/pixel/puzzle.svg" alt="" width="24" height="24">
|
|
59
|
+
<p><strong>Add what you like</strong></p>
|
|
60
|
+
Add mods, resource packs and shaders, with the mods they need.
|
|
61
|
+
</td>
|
|
62
|
+
<td width="33%" valign="top">
|
|
63
|
+
<img src="https://raw.githubusercontent.com/ModsmithMC/modsmithmc.github.io/main/site/assets/pixel/refresh.svg" alt="" width="24" height="24">
|
|
64
|
+
<p><strong>Updates that keep your changes</strong></p>
|
|
65
|
+
Update a pack and what you added, and see what changed in each release.
|
|
66
|
+
</td>
|
|
67
|
+
</tr>
|
|
68
|
+
<tr>
|
|
69
|
+
<td valign="top">
|
|
70
|
+
<img src="https://raw.githubusercontent.com/ModsmithMC/modsmithmc.github.io/main/site/assets/pixel/list.svg" alt="" width="24" height="24">
|
|
71
|
+
<p><strong>See before it happens</strong></p>
|
|
72
|
+
Every change is shown first and waits for your yes. <code>--dry-run</code> only shows it.
|
|
73
|
+
</td>
|
|
74
|
+
<td valign="top">
|
|
75
|
+
<img src="https://raw.githubusercontent.com/ModsmithMC/modsmithmc.github.io/main/site/assets/pixel/play.svg" alt="" width="24" height="24">
|
|
76
|
+
<p><strong>Ready in the launcher</strong></p>
|
|
77
|
+
Each instance gets its own installation, with the pack's icon, in the official launcher.
|
|
78
|
+
</td>
|
|
79
|
+
<td valign="top">
|
|
80
|
+
<img src="https://raw.githubusercontent.com/ModsmithMC/modsmithmc.github.io/main/site/assets/pixel/link.svg" alt="" width="24" height="24">
|
|
81
|
+
<p><strong>Bring your own</strong></p>
|
|
82
|
+
Take over an installation you made in the launcher, and the mods you put in it.
|
|
83
|
+
</td>
|
|
84
|
+
</tr>
|
|
85
|
+
</table>
|
|
86
|
+
|
|
87
|
+
## Installation
|
|
88
|
+
|
|
89
|
+
Modsmith needs Python 3.12 or newer. Install it from PyPI as a tool with [uv](https://docs.astral.sh/uv/):
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
uv tool install modsmith-cli
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Or with [pipx](https://pipx.pypa.io/):
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
pipx install modsmith-cli
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Then check that it works:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
modsmith --version
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Coming from 0.1.0? It was installed under another name, so remove it first with `uv tool uninstall modsmith-app` or `pipx uninstall modsmith-app`. Your instances and settings stay where they are.
|
|
108
|
+
|
|
109
|
+
## Quick start
|
|
110
|
+
|
|
111
|
+
Find a modpack, install it, and play it from the official launcher:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
modsmith search "fabulously optimized" --type modpack
|
|
115
|
+
modsmith install fabulously-optimized --name fo
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Add a mod and a shader pack, then see what the instance holds:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
modsmith add fo iris
|
|
122
|
+
modsmith add fo complementary-reimagined --type shader
|
|
123
|
+
modsmith show fo
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Keep it up to date:
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
modsmith update fo
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
When you have only one instance, you can leave its name out.
|
|
133
|
+
|
|
134
|
+
## Commands
|
|
135
|
+
|
|
136
|
+
| Command | What it does |
|
|
137
|
+
| --- | --- |
|
|
138
|
+
| `install` | Install a modpack as a new instance |
|
|
139
|
+
| `create` | Start an empty instance, with or without a mod loader |
|
|
140
|
+
| `import` | Manage an installation you made in the official launcher |
|
|
141
|
+
| `list` | List your instances |
|
|
142
|
+
| `show` | List the mods, resource packs and shaders in an instance |
|
|
143
|
+
| `add` / `remove` | Add projects with what they need, or remove them |
|
|
144
|
+
| `enable` / `disable` | Turn files on or off without removing them |
|
|
145
|
+
| `pin` / `unpin` | Keep a project at its release, or let it update |
|
|
146
|
+
| `adopt` | Recognise files you put in an instance yourself |
|
|
147
|
+
| `update` | Update the pack and what you added |
|
|
148
|
+
| `move` / `delete` | Rename, move or delete an instance |
|
|
149
|
+
| `search` / `info` | Find projects and look at their releases |
|
|
150
|
+
| `loaders` | List a mod loader's versions |
|
|
151
|
+
| `config` | Show and change settings |
|
|
152
|
+
|
|
153
|
+
Every command explains itself with `--help`, examples included.
|
|
154
|
+
|
|
155
|
+
## Recipes
|
|
156
|
+
|
|
157
|
+
<details>
|
|
158
|
+
<summary><b>Use CurseForge</b></summary>
|
|
159
|
+
|
|
160
|
+
CurseForge needs an API key, which you can get for free from the [CurseForge console](https://console.curseforge.com). Save it once:
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
modsmith config set curseforge_api_key '<key>'
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
In PowerShell, keep the single quotes: `$` starts a variable inside double quotes. Then name CurseForge projects with `curseforge:`:
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
modsmith install curseforge:all-the-mods-9 --name atm9
|
|
170
|
+
modsmith add atm9 curseforge:jei
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
</details>
|
|
174
|
+
|
|
175
|
+
<details>
|
|
176
|
+
<summary><b>Install files that must be downloaded by hand</b></summary>
|
|
177
|
+
|
|
178
|
+
Some CurseForge authors block downloads by other tools. Modsmith lists those files with a link to each. Download them into one folder, then run the same command again:
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
modsmith install curseforge:all-the-mods-9 --name atm9 --from Downloads/atm9-files
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
</details>
|
|
185
|
+
|
|
186
|
+
<details>
|
|
187
|
+
<summary><b>Choose optional files</b></summary>
|
|
188
|
+
|
|
189
|
+
When a pack has optional files, Modsmith asks which ones you want. To decide on the command line instead:
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
modsmith install fabulously-optimized --optional shaders --optional zoom
|
|
193
|
+
modsmith install fabulously-optimized --all-optional
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
Your choice is remembered, and `update` keeps it.
|
|
197
|
+
|
|
198
|
+
</details>
|
|
199
|
+
|
|
200
|
+
<details>
|
|
201
|
+
<summary><b>Start from nothing</b></summary>
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
modsmith loaders fabric 1.21.1
|
|
205
|
+
modsmith create survival --minecraft 1.21.1 --loader fabric
|
|
206
|
+
modsmith add survival sodium lithium
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
Without `--loader-version`, the recommended version is used.
|
|
210
|
+
|
|
211
|
+
</details>
|
|
212
|
+
|
|
213
|
+
<details>
|
|
214
|
+
<summary><b>Take over an existing installation</b></summary>
|
|
215
|
+
|
|
216
|
+
Give the installation its own game directory in the official launcher, start it once, then:
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
modsmith import "My Fabric world"
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
Modsmith reads its Minecraft and loader versions, and recognises the mods in it so they can be updated.
|
|
223
|
+
|
|
224
|
+
</details>
|
|
225
|
+
|
|
226
|
+
<details>
|
|
227
|
+
<summary><b>Use it in scripts</b></summary>
|
|
228
|
+
|
|
229
|
+
Without a terminal, Modsmith never asks: it stops and tells you to add `--yes`. Deleting needs `--force` as well. For more than that, use the [Modsmith Python library](https://github.com/ModsmithMC/modsmith-python) directly.
|
|
230
|
+
|
|
231
|
+
</details>
|
|
232
|
+
|
|
233
|
+
## Where things go
|
|
234
|
+
|
|
235
|
+
| What | Where |
|
|
236
|
+
| --- | --- |
|
|
237
|
+
| Instances | Your user data folder, under `Modsmith/instances`. Change it with `modsmith config set instances_dir <folder>` |
|
|
238
|
+
| Settings | `config.toml` in your user config folder. `modsmith config path` prints it |
|
|
239
|
+
| Launcher installations | The official launcher's `launcher_profiles.json`, one per instance |
|
|
240
|
+
|
|
241
|
+
Set `MODSMITH_HOME` to keep everything in one folder instead.
|
|
242
|
+
|
|
243
|
+
## Part of Modsmith
|
|
244
|
+
|
|
245
|
+
The command line is built on the Python library, which does the real work: platforms, modpack formats, mod loaders and instances.
|
|
246
|
+
|
|
247
|
+
| | What it is | Code |
|
|
248
|
+
| :--- | :--- | :--- |
|
|
249
|
+
| [Command line](https://modsmithmc.org/modsmith-cli/) | Modpacks from your terminal | [ModsmithMC/modsmith-cli](https://github.com/ModsmithMC/modsmith-cli) |
|
|
250
|
+
| [Python library](https://modsmithmc.org/modsmith-python/) | Build your own modpack tools | [ModsmithMC/modsmith-python](https://github.com/ModsmithMC/modsmith-python) |
|
|
251
|
+
| [Website](https://modsmithmc.org/) | The project's home | [ModsmithMC/modsmithmc.github.io](https://github.com/ModsmithMC/modsmithmc.github.io) |
|
|
252
|
+
|
|
253
|
+
## License
|
|
254
|
+
|
|
255
|
+
Modsmith is released under the [MIT License](LICENSE). It is not affiliated with Mojang, Microsoft, Modrinth or CurseForge.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
modsmith_cli/__init__.py,sha256=wmQAYOKCcZp-sXFfN6GqPlBhdIZK3MnxxAt-INpZIKA,258
|
|
2
|
+
modsmith_cli/__main__.py,sha256=hUlJvdkNJi0a3OjyAkKS6weUJDj-7sXdNeGOvpSmxu0,134
|
|
3
|
+
modsmith_cli/app.py,sha256=-e_ODsJHJdAY_KaOwFeZAq1hpq-Rwbc_am39DH9R-ic,6934
|
|
4
|
+
modsmith_cli/context.py,sha256=hK1tmJGytnTyReKicVz2db19TZVkUlEMnSwKGUmp7GY,3563
|
|
5
|
+
modsmith_cli/errors.py,sha256=DJA6-zwrSyVSOu-kfqCPySyqLvn0zUtPQmKTHA6qEGA,5923
|
|
6
|
+
modsmith_cli/target.py,sha256=bYgiSKEFUXKTGeCQHjR_7id0Pk_ewMiMhc1FcobPlz0,1312
|
|
7
|
+
modsmith_cli/ui.py,sha256=FXmAXurGiPGA5cD8zWw4iAo8bZ28HyrxtFlw1EQPP-I,7270
|
|
8
|
+
modsmith_cli/commands/__init__.py,sha256=owe-HP_g31c-kpyi_OJ3UezfJusqJyXTFxjUfvewuQo,81
|
|
9
|
+
modsmith_cli/commands/config.py,sha256=csOlyTwLLO7MBNW7ldxoDoodtFz1MfKAMX1JYmOn5RE,2530
|
|
10
|
+
modsmith_cli/commands/contents.py,sha256=FEJtEFrhWblm11JXwZ38n3stqgP2GeDBqapSdlEKLW4,11665
|
|
11
|
+
modsmith_cli/commands/discovery.py,sha256=hLBuIebOCnOUaJ-BSZpTI2sq82C1nFtxxsAxh6ladL8,4931
|
|
12
|
+
modsmith_cli/commands/install.py,sha256=FbmkOTfFvY1WYbx5PWag32FI9vcRRR3EMiLtYhVZOd4,11588
|
|
13
|
+
modsmith_cli/commands/instance.py,sha256=OmyvpmbR05z-7NJlaMYWUYftKAoI2OFyZZcqmddhANg,8330
|
|
14
|
+
modsmith_cli/commands/list.py,sha256=Pg1o3xBBgDW_q3-9nCXcXlDpvkAYFQAtKNWLFQxHaYs,1572
|
|
15
|
+
modsmith_cli/commands/search.py,sha256=XNz3yS0ahPTA26SCpKxUSHF6zue9QBVFHo52LfJYAwU,6261
|
|
16
|
+
modsmith_cli/commands/update.py,sha256=1uUSRDt6PCMTETRrh_5VYuQPx7R5HcoTjS_MJ0RHBUc,10929
|
|
17
|
+
modsmith_cli/core/__init__.py,sha256=O9YYe_3bsOQKuAeNhQACs9wdvoAaDH78_Hiva2JZEWo,219
|
|
18
|
+
modsmith_cli/core/config.py,sha256=inv0_QcIC74BoXcRkdnWQrvfW5YnbdRj9Vuzx6j6lMw,6794
|
|
19
|
+
modsmith_cli/core/contents.py,sha256=2zhaI9STB57M0ybZKvF3Owz6tg9kC8RbSQi_ycNJql8,2314
|
|
20
|
+
modsmith_cli/core/errors.py,sha256=ri5QUTKUCBRCdZMAC4kcDF0pn5L2SQeyyBd_NmDjclI,484
|
|
21
|
+
modsmith_cli/core/install.py,sha256=NV3hsJ79oMVFd7cDSqF4XcspFw3hVYls8xgvxJlxSVA,8283
|
|
22
|
+
modsmith_cli/core/names.py,sha256=QqhHadyhNDdiYeIg7dERGswDjsiZxfISOUWjT5K__0I,915
|
|
23
|
+
modsmith_cli/core/paths.py,sha256=bRBQsd5cW8HbvlFXCncI91Zp7LqEamvboXwiAV17SjY,1907
|
|
24
|
+
modsmith_cli/core/platforms.py,sha256=IC9AECseDgfww3PHJyFLU-WiMuD7ZpSbf1lqwuB4WeU,3546
|
|
25
|
+
modsmith_cli/core/records.py,sha256=_IDlu4_IPkRRKQM6-tR_RqoI2Wirecau0_aMJpx0mvM,2235
|
|
26
|
+
modsmith_cli/core/refs.py,sha256=cYCCkYiDBa-Nlq7GuNX2AhjYGehHOUaNe-PEI2LRubw,2570
|
|
27
|
+
modsmith_cli/core/registry.py,sha256=7IU82APQHnlKD536b5YvxlV07cd-08jwczqiI_MFaFU,6175
|
|
28
|
+
modsmith_cli-0.1.1.dist-info/METADATA,sha256=x-WnuB2gmwk5D24SioKgNtAGLLmdJgsHhbC4SsukP8Q,9737
|
|
29
|
+
modsmith_cli-0.1.1.dist-info/WHEEL,sha256=2iZrJkDIkeDh0k9SikKMqFuRP-ua6mb4Ir1AsER4BEw,87
|
|
30
|
+
modsmith_cli-0.1.1.dist-info/entry_points.txt,sha256=uOG8TIGUuQ7pPEu7bE1WAPgZ4G8Lv-edS3nrmqfJHHs,51
|
|
31
|
+
modsmith_cli-0.1.1.dist-info/licenses/LICENSE,sha256=qHokVf-Kk3sukgcwuGaKF6RLeOfqj0dK6r_gJ96AKIE,1066
|
|
32
|
+
modsmith_cli-0.1.1.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 MeNeither
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|