@apresai/gimage-mcp 1.2.61 → 1.2.64
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.
- package/bin/CHANGELOG.md +374 -0
- package/bin/LICENSE +21 -0
- package/bin/README.md +833 -0
- package/bin/gimage +0 -0
- package/package.json +1 -1
- package/README.md +0 -186
- package/bin/gimage-mcp.js +0 -55
package/bin/CHANGELOG.md
ADDED
|
@@ -0,0 +1,374 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
(empty - ready for next release)
|
|
11
|
+
|
|
12
|
+
## [1.2.63] - 2025-11-06
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
|
|
16
|
+
- **Generate command**: Now accepts positional prompt argument (`gimage generate "sunset"`) in addition to flag-based prompt (`--prompt`) for improved UX
|
|
17
|
+
- **Auth commands**: Refactored into modular structure with new dedicated `auth status` command providing detailed credential information
|
|
18
|
+
- **CLI verbose output**: Improved formatting and consistency across all image processing commands (resize, crop, scale, compress, convert)
|
|
19
|
+
- **Configuration**: Streamlined config management, removing legacy config command in favor of auth commands
|
|
20
|
+
- **Documentation**: Comprehensive overhaul of README.md, COMMANDS.md, CLAUDE.md, and MCP_USAGE.md with clearer examples and better organization
|
|
21
|
+
- **Integration tests**: Updated CLI E2E tests to use new positional prompt syntax
|
|
22
|
+
|
|
23
|
+
### Removed
|
|
24
|
+
|
|
25
|
+
- **Batch CLI commands**: Removed `gimage batch` command (batch operations now exclusively through MCP server)
|
|
26
|
+
- **TUI batch menu**: Removed batch processing UI from TUI (use MCP server batch tools instead)
|
|
27
|
+
- **Batch history tracking**: Removed history persistence system (`internal/batch/history.go` and tests)
|
|
28
|
+
- **Documentation files**: Removed 12 planning/implementation docs (DESIGN.md, IMPLEMENTATION_SUMMARY.md, PRODUCTION_QUALITY_FIXES.md, TUI_FEATURE_TOUR.md, TUI_IMPLEMENTATION_SUMMARY.md, TESTING.md, lambda.md, tui.md, npm/README.md, test/integration/README.md, internal/generate/README.md, INTEGRATION_GUIDE.md) - ~14,000 lines total
|
|
29
|
+
- **Config command**: Removed legacy `gimage config` subcommand
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
## [1.2.61] - 2025-11-05
|
|
33
|
+
|
|
34
|
+
### Changed
|
|
35
|
+
-
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
## [1.2.60] - 2025-11-05
|
|
39
|
+
|
|
40
|
+
### Added
|
|
41
|
+
- Imagen 3 models support (`imagen-3.0-generate-001`, `imagen-3.0-generate-002`, `imagen-3.0-fast-generate-001`)
|
|
42
|
+
- Model alias `imagen-3` for latest Imagen 3 model
|
|
43
|
+
- Enhanced MCP end-to-end test coverage with model metadata validation
|
|
44
|
+
|
|
45
|
+
### Changed
|
|
46
|
+
- Updated model registry with comprehensive Imagen 3 and Imagen 4 model definitions
|
|
47
|
+
- Improved provider auto-detection logic to handle both Imagen 3 and Imagen 4 models
|
|
48
|
+
- Streamlined `models_test.go` using table-driven tests (197 → 151 lines)
|
|
49
|
+
|
|
50
|
+
### Fixed
|
|
51
|
+
- Resolved logger deadlock in auth commands by deferring stdout restoration
|
|
52
|
+
- Fixed test suite reliability issues in model registry tests
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
## [1.2.58] - 2025-11-05
|
|
56
|
+
|
|
57
|
+
### Added
|
|
58
|
+
- **Provider System**: New architecture for AI backends with clean abstraction layer for Gemini, Vertex AI, and AWS Bedrock
|
|
59
|
+
- **Model Registry**: Centralized system for model management and auto-detection
|
|
60
|
+
- **Enhanced Auth Commands**:
|
|
61
|
+
- `auth list` - Display all configured credentials and their status
|
|
62
|
+
- `auth setup` - Interactive setup wizard for configuring providers
|
|
63
|
+
- `auth test` - Validate credentials and test API connectivity
|
|
64
|
+
- **Design Documentation**: Added `DESIGN.md` documenting provider architecture and patterns
|
|
65
|
+
|
|
66
|
+
### Changed
|
|
67
|
+
- **Major Refactor**: Migrated from monolithic `models.go` (643 lines) to modular `providers.go` (565 lines) with cleaner separation
|
|
68
|
+
- **Auth Command Structure**: Reorganized authentication commands with new subcommands for better UX
|
|
69
|
+
- **Generate Command**: Enhanced with improved provider selection logic and better error handling
|
|
70
|
+
- **MCP Server**: Updated tools and prompts to work with new provider system
|
|
71
|
+
- **Logging**: Improved context and verbosity handling across components
|
|
72
|
+
|
|
73
|
+
### Removed
|
|
74
|
+
- **Legacy Code**: Removed old model management system (`internal/generate/models.go` and tests)
|
|
75
|
+
- **Test Files**: Cleaned up automated TUI tests (`automated_test.go`, `debug_test.go`)
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
## [1.1.54] - 2025-11-05
|
|
79
|
+
|
|
80
|
+
### Fixed
|
|
81
|
+
- TUI image generation now works correctly by switching from SDK to REST client for API calls
|
|
82
|
+
- Enhanced TUI generation flow with improved error handling and progress feedback
|
|
83
|
+
|
|
84
|
+
### Added
|
|
85
|
+
- Comprehensive logging system for debugging TUI operations
|
|
86
|
+
- Automated testing suite for TUI image generation workflows
|
|
87
|
+
- Debug mode support with detailed operation logging
|
|
88
|
+
- Progress indicators and status messages during image generation
|
|
89
|
+
|
|
90
|
+
### Changed
|
|
91
|
+
- Refactored TUI generation flow to use REST client instead of SDK for better reliability
|
|
92
|
+
- Improved TUI styles and visual feedback during operations
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
## [1.1.52] - 2025-11-05
|
|
96
|
+
|
|
97
|
+
### Added
|
|
98
|
+
- macOS keyboard shortcuts for improved navigation
|
|
99
|
+
- Settings navigation menu for easier configuration access
|
|
100
|
+
- Editable API keys in settings interface
|
|
101
|
+
|
|
102
|
+
### Changed
|
|
103
|
+
- Enhanced error handling in generate flow
|
|
104
|
+
- Improved settings menu UI and functionality
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
## [1.1.50] - 2025-11-05
|
|
108
|
+
|
|
109
|
+
### Changed
|
|
110
|
+
- Updated Go dependencies to resolve test compatibility issues
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
## [1.1.48] - 2025-11-05
|
|
114
|
+
|
|
115
|
+
### Fixed
|
|
116
|
+
|
|
117
|
+
- Add context.Context parameter to test function calls for proper context handling in image processing tests
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
## [1.1.46] - 2025-11-05
|
|
121
|
+
|
|
122
|
+
```markdown
|
|
123
|
+
## [Unreleased]
|
|
124
|
+
|
|
125
|
+
### Added
|
|
126
|
+
- Interactive TUI (Terminal User Interface) with main menu, batch processing, generation flow, and settings management
|
|
127
|
+
- Batch operation history tracking with persistent storage
|
|
128
|
+
- Progress reporter for real-time operation feedback
|
|
129
|
+
- Production quality test suite with comprehensive integration tests
|
|
130
|
+
- Image compression operation with quality control
|
|
131
|
+
- TUI documentation and feature tour
|
|
132
|
+
- Test fixtures (small_test.png, test_image.png, test_image_512x512.png)
|
|
133
|
+
|
|
134
|
+
### Changed
|
|
135
|
+
- Simplified CLI command outputs for better TUI integration
|
|
136
|
+
- Improved image processing operations (resize, scale, crop, convert) with enhanced error handling
|
|
137
|
+
- Streamlined documentation: consolidated guides into concise references
|
|
138
|
+
- Reduced project documentation by 56% (removed planning and implementation tracking docs)
|
|
139
|
+
- Updated lambda.md from 1,385 to 272 lines (removed CDK code, kept deployment guide)
|
|
140
|
+
- Updated INTEGRATION_GUIDE.md to focus on crisp examples only
|
|
141
|
+
|
|
142
|
+
### Removed
|
|
143
|
+
- Project planning documents (RELEASING.md, roadmap.md, HOMEBREW.md)
|
|
144
|
+
- Implementation tracking docs (DEPLOYMENT_CHECKLIST.md, LAMBDA_STATUS.md)
|
|
145
|
+
- Research/analysis docs (MCP_LLM_LEARNING_ANALYSIS.md, AI_TOOL_CALLING_IMPROVEMENTS.md, AWS_BEDROCK_SDK_GUIDE.md, etc.)
|
|
146
|
+
- Redundant documentation (API_REFERENCE.md, SWAGGER_SETUP.md, RELEASE_NOTES.md, etc.)
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
## [1.1.43] - 2025-11-02
|
|
151
|
+
|
|
152
|
+
### Added
|
|
153
|
+
|
|
154
|
+
- MCP Prompts feature: New prompt templates for image generation, batch processing, and common workflows
|
|
155
|
+
- MCP server now exposes 13 prompt templates via the prompts/list capability
|
|
156
|
+
- Comprehensive documentation for MCP Prompts design and implementation (MCP_PROMPTS_DESIGN.md, MCP_PROMPTS_IMPLEMENTATION.md)
|
|
157
|
+
- Analysis documentation for LLM learning patterns with MCP (MCP_LLM_LEARNING_ANALYSIS.md)
|
|
158
|
+
|
|
159
|
+
### Changed
|
|
160
|
+
|
|
161
|
+
- Enhanced MCP tool descriptions with more actionable guidance for LLM clients
|
|
162
|
+
- Improved MCP handler with prompt list and get capabilities
|
|
163
|
+
- Updated MCP server to register prompt templates on initialization
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
## [1.1.41] - 2025-11-02
|
|
167
|
+
|
|
168
|
+
### Changed
|
|
169
|
+
-
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
## [1.1.40] - 2025-11-02
|
|
173
|
+
|
|
174
|
+
### Changed
|
|
175
|
+
- Build number incremented to 1.1.40 (automatic versioning from git commit count)
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
## [1.1.38] - 2025-11-02
|
|
179
|
+
|
|
180
|
+
### Changed
|
|
181
|
+
- Upgraded GoReleaser configuration to v2 format for improved build and release automation
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
## [1.1.36] - 2025-11-02
|
|
185
|
+
|
|
186
|
+
### Changed
|
|
187
|
+
- Build number incremented to 1.1.36 (automatic versioning from git commit count)
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
## [1.1.34] - 2025-11-02
|
|
191
|
+
|
|
192
|
+
### Changed
|
|
193
|
+
-
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
## [1.1.33] - 2025-11-02
|
|
197
|
+
|
|
198
|
+
### Changed
|
|
199
|
+
- Updated .gitignore patterns for improved exclusion rules
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
## [1.1.32] - 2025-11-02
|
|
203
|
+
|
|
204
|
+
### Added
|
|
205
|
+
|
|
206
|
+
- AWS Bedrock Nova Canvas integration with dual implementation modes (REST and SDK)
|
|
207
|
+
- AWS Bedrock authentication setup via `gimage auth bedrock` command
|
|
208
|
+
- Nova Canvas model support (`amazon.nova-canvas-v1:0`) with quality presets (standard/premium)
|
|
209
|
+
- Advanced generation controls: negative prompts, CFG scale, seed, and quality settings
|
|
210
|
+
- Comprehensive AWS Bedrock documentation (SDK guide, quickstart, onboarding guide)
|
|
211
|
+
- Testing infrastructure with coverage reporting tools (`cmd/coverage-report`, `cmd/test-report`, `cmd/test-summary`)
|
|
212
|
+
- Extensive test suites for Bedrock REST and SDK clients (382+ and 305+ test cases respectively)
|
|
213
|
+
- MCP tools test coverage (batch, convert, generate operations)
|
|
214
|
+
- End-to-end integration tests for CLI and generation workflows
|
|
215
|
+
- Testing best practices documentation (TESTING.md)
|
|
216
|
+
- Model onboarding guide (MODEL_ONBOARDING.md) for adding new backends
|
|
217
|
+
- Documentation index (DOCUMENTATION_INDEX.md) for centralized reference
|
|
218
|
+
- Coverage report scripts with detailed HTML output
|
|
219
|
+
|
|
220
|
+
### Changed
|
|
221
|
+
|
|
222
|
+
- Updated CLAUDE.md with multi-backend architecture guidance and AWS Bedrock sections
|
|
223
|
+
- Enhanced `gimage generate` command with AWS-specific flags (quality, seed, CFG scale, negative prompts)
|
|
224
|
+
- Expanded configuration system to support AWS credentials and region settings
|
|
225
|
+
- Updated README.md with AWS Bedrock usage examples
|
|
226
|
+
- Improved MCP_TOOLS.md with Bedrock integration examples
|
|
227
|
+
- Enhanced Makefile with test coverage and reporting targets
|
|
228
|
+
- Refactored generate models to support backend-specific options
|
|
229
|
+
- Updated auth.go with Bedrock credential management (REST and SDK modes)
|
|
230
|
+
|
|
231
|
+
### Fixed
|
|
232
|
+
|
|
233
|
+
- Image scaling operations with improved precision
|
|
234
|
+
- Crop and scale CLI commands with better error handling
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
## [1.1.29] - 2025-11-02
|
|
238
|
+
|
|
239
|
+
### Changed
|
|
240
|
+
-
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
## [1.1.28] - 2025-11-02
|
|
244
|
+
|
|
245
|
+
### Changed
|
|
246
|
+
-
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
## [1.1.27] - 2025-11-02
|
|
250
|
+
|
|
251
|
+
### Changed
|
|
252
|
+
-
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
## [1.1.26] - 2025-11-02
|
|
256
|
+
|
|
257
|
+
### Removed
|
|
258
|
+
- Removed MCP tool tests (convert_test.go, generate_test.go, models_test.go) that were incompatible with current implementation
|
|
259
|
+
|
|
260
|
+
|
|
261
|
+
## [1.1.23] - 2025-11-02
|
|
262
|
+
|
|
263
|
+
### Added
|
|
264
|
+
- Comprehensive model pricing and announcement system with cost tracking and latest model information
|
|
265
|
+
- Unit tests for generate command with coverage for both Gemini and Vertex AI backends
|
|
266
|
+
- Unit tests for convert operation with format conversion validation
|
|
267
|
+
- Unit tests for resize operation with comprehensive dimension and format testing
|
|
268
|
+
- Unit tests for crop operation with boundary and validation testing
|
|
269
|
+
- Automated changelog update script for release process
|
|
270
|
+
|
|
271
|
+
### Changed
|
|
272
|
+
- Enhanced generate command with model pricing display and cost estimation
|
|
273
|
+
- Improved MCP server with model information and pricing details
|
|
274
|
+
- Updated RELEASING.md with streamlined release workflow and automation improvements
|
|
275
|
+
- Refactored Makefile with improved test coverage reporting and build targets
|
|
276
|
+
|
|
277
|
+
|
|
278
|
+
## [1.1.19] - 2025-11-02
|
|
279
|
+
|
|
280
|
+
### Changed
|
|
281
|
+
- Build number incremented to 1.1.19 (automatic versioning from git commit count)
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
## [1.1.18] - 2025-11-01
|
|
285
|
+
|
|
286
|
+
### Changed
|
|
287
|
+
- Build number incremented to 1.1.18 (automatic versioning from git commit count)
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
## [1.1.9] - 2025-11-01
|
|
291
|
+
|
|
292
|
+
### Added
|
|
293
|
+
- **Automated version synchronization** between CLI and npm package
|
|
294
|
+
- **Build number versioning** using git commit count (format: 1.1.[build])
|
|
295
|
+
- WebP support via nativewebp library (pure Go, zero C dependencies)
|
|
296
|
+
- CLI `convert` command for format conversion
|
|
297
|
+
- Comprehensive integration tests for WebP
|
|
298
|
+
- End-to-end tests for all 10 MCP tools
|
|
299
|
+
- Help text displayed when running `gimage` with no arguments
|
|
300
|
+
- Complete release automation with GoReleaser
|
|
301
|
+
- GitHub Actions workflows for CI and releases
|
|
302
|
+
- npm package for MCP server distribution
|
|
303
|
+
- Homebrew tap for macOS/Linux distribution
|
|
304
|
+
- Comprehensive RELEASING.md guide
|
|
305
|
+
- `make version` and `make sync-version` commands
|
|
306
|
+
|
|
307
|
+
### Changed
|
|
308
|
+
- **Version numbering scheme** to 1.1.[commit_count] for automatic sync
|
|
309
|
+
- Root command now shows help instead of crashing when run without arguments
|
|
310
|
+
- All MCP tools now support WebP output format
|
|
311
|
+
- Homebrew tap repository renamed to `homebrew-tap` (conventional naming)
|
|
312
|
+
- Documentation updated for new distribution methods
|
|
313
|
+
|
|
314
|
+
### Fixed
|
|
315
|
+
- Root command exit behavior
|
|
316
|
+
- WebP encoding in all contexts (CLI, MCP server, programmatic usage)
|
|
317
|
+
- Version synchronization between CLI binary and npm package
|
|
318
|
+
|
|
319
|
+
## [0.1.1] - 2025-11-01
|
|
320
|
+
|
|
321
|
+
### Added
|
|
322
|
+
- Automatic format conversion based on output file extension
|
|
323
|
+
- Specify `-o output.jpg` to save as JPEG
|
|
324
|
+
- Specify `-o output.png` to save as PNG
|
|
325
|
+
- Specify `-o output.gif` to save as GIF
|
|
326
|
+
- Specify `-o output.bmp` to save as BMP
|
|
327
|
+
- Specify `-o output.tiff` to save as TIFF
|
|
328
|
+
- Intelligent transparency handling (converts transparent areas to white when saving to formats that don't support transparency)
|
|
329
|
+
- Format normalization (automatically handles .jpg vs .jpeg, .tif vs .tiff)
|
|
330
|
+
|
|
331
|
+
### Changed
|
|
332
|
+
- SaveImage now automatically converts image format based on file extension
|
|
333
|
+
|
|
334
|
+
## [0.1.0] - 2025-11-01
|
|
335
|
+
|
|
336
|
+
### Added
|
|
337
|
+
- Initial release of gimage CLI tool
|
|
338
|
+
- AI-powered image generation using Google Gemini 2.5 Flash Image
|
|
339
|
+
- AI-powered image generation using Vertex AI Imagen 4
|
|
340
|
+
- Image processing operations:
|
|
341
|
+
- Resize: Change image dimensions
|
|
342
|
+
- Scale: Scale by percentage
|
|
343
|
+
- Crop: Extract specific regions
|
|
344
|
+
- Compress: Reduce file size
|
|
345
|
+
- Batch processing with concurrent operations
|
|
346
|
+
- MCP server for Claude integration
|
|
347
|
+
- Support for multiple image formats: PNG, JPG, WebP, GIF, TIFF, BMP
|
|
348
|
+
- Pure Go implementation with zero C dependencies
|
|
349
|
+
- Cross-platform support (Linux, macOS, Windows, ARM)
|
|
350
|
+
- Interactive authentication setup:
|
|
351
|
+
- `gimage auth gemini` - Gemini API key setup
|
|
352
|
+
- `gimage auth vertex` - Vertex AI setup (Express Mode or Full Mode)
|
|
353
|
+
- Smart credential detection - auto-selects API based on available credentials
|
|
354
|
+
- Configuration system with markdown-based config file (~/.gimage/config.md)
|
|
355
|
+
- Comprehensive CLI with Cobra framework
|
|
356
|
+
|
|
357
|
+
### Features
|
|
358
|
+
- Text-to-image generation with customizable prompts
|
|
359
|
+
- Multiple generation styles: photorealistic, artistic, anime
|
|
360
|
+
- Configurable image sizes and aspect ratios
|
|
361
|
+
- Negative prompts for image generation
|
|
362
|
+
- Seed support for reproducible results
|
|
363
|
+
- Verbose mode for debugging
|
|
364
|
+
- Model listing and auto-detection
|
|
365
|
+
- Express Mode for Vertex AI (API key authentication)
|
|
366
|
+
- Full Mode for Vertex AI (service account authentication)
|
|
367
|
+
|
|
368
|
+
### Technical
|
|
369
|
+
- Built with Go 1.22+
|
|
370
|
+
- Uses disintegration/imaging library for image processing
|
|
371
|
+
- Gemini API integration via REST
|
|
372
|
+
- Vertex AI integration via REST (Express Mode) and SDK (Full Mode)
|
|
373
|
+
- Concurrent batch processing with worker pools
|
|
374
|
+
- Comprehensive error handling and validation
|
package/bin/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Chad Masso
|
|
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.
|