feat: Complete LLMX v0.1.0 - Rebrand from Codex with LiteLLM Integration

This release represents a comprehensive transformation of the codebase from Codex to LLMX,
enhanced with LiteLLM integration to support 100+ LLM providers through a unified API.

## Major Changes

### Phase 1: Repository & Infrastructure Setup
- Established new repository structure and branching strategy
- Created comprehensive project documentation (CLAUDE.md, LITELLM-SETUP.md)
- Set up development environment and tooling configuration

### Phase 2: Rust Workspace Transformation
- Renamed all Rust crates from `codex-*` to `llmx-*` (30+ crates)
- Updated package names, binary names, and workspace members
- Renamed core modules: codex.rs → llmx.rs, codex_delegate.rs → llmx_delegate.rs
- Updated all internal references, imports, and type names
- Renamed directories: codex-rs/ → llmx-rs/, codex-backend-openapi-models/ → llmx-backend-openapi-models/
- Fixed all Rust compilation errors after mass rename

### Phase 3: LiteLLM Integration
- Integrated LiteLLM for multi-provider LLM support (Anthropic, OpenAI, Azure, Google AI, AWS Bedrock, etc.)
- Implemented OpenAI-compatible Chat Completions API support
- Added model family detection and provider-specific handling
- Updated authentication to support LiteLLM API keys
- Renamed environment variables: OPENAI_BASE_URL → LLMX_BASE_URL
- Added LLMX_API_KEY for unified authentication
- Enhanced error handling for Chat Completions API responses
- Implemented fallback mechanisms between Responses API and Chat Completions API

### Phase 4: TypeScript/Node.js Components
- Renamed npm package: @codex/codex-cli → @valknar/llmx
- Updated TypeScript SDK to use new LLMX APIs and endpoints
- Fixed all TypeScript compilation and linting errors
- Updated SDK tests to support both API backends
- Enhanced mock server to handle multiple API formats
- Updated build scripts for cross-platform packaging

### Phase 5: Configuration & Documentation
- Updated all configuration files to use LLMX naming
- Rewrote README and documentation for LLMX branding
- Updated config paths: ~/.codex/ → ~/.llmx/
- Added comprehensive LiteLLM setup guide
- Updated all user-facing strings and help text
- Created release plan and migration documentation

### Phase 6: Testing & Validation
- Fixed all Rust tests for new naming scheme
- Updated snapshot tests in TUI (36 frame files)
- Fixed authentication storage tests
- Updated Chat Completions payload and SSE tests
- Fixed SDK tests for new API endpoints
- Ensured compatibility with Claude Sonnet 4.5 model
- Fixed test environment variables (LLMX_API_KEY, LLMX_BASE_URL)

### Phase 7: Build & Release Pipeline
- Updated GitHub Actions workflows for LLMX binary names
- Fixed rust-release.yml to reference llmx-rs/ instead of codex-rs/
- Updated CI/CD pipelines for new package names
- Made Apple code signing optional in release workflow
- Enhanced npm packaging resilience for partial platform builds
- Added Windows sandbox support to workspace
- Updated dotslash configuration for new binary names

### Phase 8: Final Polish
- Renamed all assets (.github images, labels, templates)
- Updated VSCode and DevContainer configurations
- Fixed all clippy warnings and formatting issues
- Applied cargo fmt and prettier formatting across codebase
- Updated issue templates and pull request templates
- Fixed all remaining UI text references

## Technical Details

**Breaking Changes:**
- Binary name changed from `codex` to `llmx`
- Config directory changed from `~/.codex/` to `~/.llmx/`
- Environment variables renamed (CODEX_* → LLMX_*)
- npm package renamed to `@valknar/llmx`

**New Features:**
- Support for 100+ LLM providers via LiteLLM
- Unified authentication with LLMX_API_KEY
- Enhanced model provider detection and handling
- Improved error handling and fallback mechanisms

**Files Changed:**
- 578 files modified across Rust, TypeScript, and documentation
- 30+ Rust crates renamed and updated
- Complete rebrand of UI, CLI, and documentation
- All tests updated and passing

**Dependencies:**
- Updated Cargo.lock with new package names
- Updated npm dependencies in llmx-cli
- Enhanced OpenAPI models for LLMX backend

This release establishes LLMX as a standalone project with comprehensive LiteLLM
integration, maintaining full backward compatibility with existing functionality
while opening support for a wide ecosystem of LLM providers.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Sebastian Krüger <support@pivoine.art>
This commit is contained in:
Sebastian Krüger
2025-11-12 20:40:44 +01:00
parent 052b052832
commit 3c7efc58c8
1248 changed files with 10085 additions and 9580 deletions

View File

@@ -0,0 +1,17 @@
▎▋▎▋▌▉▉▌▌▉▊▎
▎▌▊▋▉▍▉▋▉▍▌▏▏▌▎ ▎█▉▎
▊▏▉▏▉▉▉█▍▎ ▎█▉▎█▏▌▏▏▏▉
▌▉▎▍▉█▊▊▎ ▋▉▏▌▏▊
▍▍▌▋█▍▏▍▎▍▍ █▋▏▍▍▊
▏▉ ▉▎ ▏▉▋▌▏▏▊ █▋▍▏▏▊
▉▍█▊▉ █▍▏▉▋█▏▎ ▏▋▏
▏▏▎▏▎ ▊▋▋▏▌▏▉ █▎▏
▏▌▏█▎ ▌▏▏▍▍▏█▋▏▉▉▉▉▉▉▎▉▊ ▌█ ▏
▎▏▌▉ ▎▌▉▎ ▋▉ ▏█▏▎▎▎▋▋▊▊▊▏▋▊▋▊▏
▍▍▎█▍ ▍▍▊▋▋▎ ▎▍▉██▉ ▍▉█▋▊▌▎▋
▉▍▊ █▊ ▎ ▊█▋▉▎▏
▍▍▊▎▍▉▎ ▎▌▎▉▏▎▉█
▍▉▊▍▎ ▉▉▋▌▌▌▌▋▌▉▉▎▊▏▉
▎▉█▉▏▏▏▎▎▎▊▎▌▉▉█

View File

@@ -0,0 +1,17 @@
▎▉▉▉▉▍▉▉▎
▉█▎▉▉▉▍▏▋▎▉▊
▍▎▊▏▏▋▏▏▊▏▉▍▊▊
▏▎▎▋▍▏▌▎▋▍▊██▍▍▊
▋ ▌▏▏█▏▍ █▊▋▎▋▏▋
▏▎ █▏▉▏▋▋▍ ▎▎█▏
▍ ▏▉█▉▏▏▏▏▉ ▏▋▊
█ ▏▏▍▉▋▉▏▏▊▎▎▋▍▏▏
█ ▏▍ ▍▍▏▌▏▏▉▍▉▌▏▏
▏ ▊▏▍▊▏▎▋▎▉▎▎▎▏▉▎
▊ █▏▏▏▏▏██ ▍▊█▍▏▎
▍▎█▊▍▊▉█ ▎▏██▊▋▋
▏█ ▏▏▏▏▉▊▋▊▋▏▋▎
▌▎▉▉▋▏▉▌▎ ▋▋█
▉▊ ▎▉▍▎▊▌▉

View File

@@ -0,0 +1,17 @@
▊▉▉▉▉▉▉▎
▋█ ▌▏▏▏▍▍▊
▋█▎▎▏▏▌▍▉▋▍▊
▏▎▎▏▏▌▌▊▎▌▋▋
▎█▋▌▍▏▉▍█▌▎▏▏▊
▏▉▎▏▏▉▎▌▌▏▎▋▏▏
▉▉ ▊▏▏▏▏▏▏▎▏▌▍
▏ ▏▏▋▏▏▍▋ ▏█▏
▋ █▏▋▏▏▉▋▉▏▎▏
▉▉ ▎▏▋▌▊█▋▏▎▏▍
█▎▊ ▏▏▏▏▌▋▏▍▍▏
▍▎▊▋▏▎▉▋▉▉▌▏▎
▎ ▉▏▍▍▍▎▏▌█
▍▉ ▉▏▏▊▎▋▉▎
▍▎ █▉▉▎▉▎

View File

@@ -0,0 +1,17 @@
▉▉▉▉▉▋
▊▌▎▎▋▏▊▍
█ ▏▋▍▉▊
▋▉▏▏▏▌▌█▏
▏ █▏▏▏▏▋▋▏
▏█▋▋▉▍█▎▏█
▏ ▏▋▍▏▏▍
▏ ▋▉▍▏▏█
▉▊ ▏▋▏▏▉▏▏
▏ ▋▏▉▌▉▎
▏▋ ▏█▌▉▉▋
▊ ▉▏ ▎▊▏
▋ ▉▉▏▊▉▍▏
█▍▋█▊▏▍▏▎
▍ █▏▍▋▋

View File

@@ -0,0 +1,17 @@
▋▉▉▉▊
▏▎▎▏▏
▏▎▎▏█
▏▉▉▏▎
▉ ▏▏
█▋▊▏▏
▊ ▏▏
▉ █▏
▋▉ ▎▏▋
▏█ ▉▌▏
█▎▋▋ ▏▎
▏▎▎▎▏
▏▉▊▏▎
▉▎▎▏▌
▊ ▋█▌

View File

@@ -0,0 +1,17 @@
▉▉▉▉▌
▊▋▎▎▋▍
▏▎▏▏▋ ▏
▏▏▋▏█▍▏▊
▏▏▏▍ ▏
▏▉▏▏ █▏
▏▏▏▏ ▋ ▉
▏▏▍▏▎ ▍
▏▏▏▏ █
█▍▋▋ ▌▋
▍▏██▊▋▊▏
▏▉▏▏▎▎▎▏
▋ █▏▌▌▌▎
▏▍▋▉▎▎▋
▎▉ █▌▋

View File

@@ -0,0 +1,17 @@
▉▉▉▉▉▏▎
▎▊▌▏▏▍▋▉▊
▋▋▏▉▌▍▏█▉▏
▏▋▎ ▋▋▊▋▎▎▏
▏▏▌█▌▍▏▏▋█▍▏
▍▏▏▊▏▏▋▋▏ █
▏▏ ▏▏▏▏▏▏▊▏
▏▏▋▏▏▉▏▏▏ █▊▏
▏▏▉▊▊▉▏▏▏▎▋▋▏
▏▎▏▌▋▏▍▏▉▋ ▋▏
▏▋▏▏▏▏▎▏ ▎ ▌
▏▉▉▋▍▏▏▍▊ ▌
█▏▍▊ ▋▋▋▎ ▌▎
▏▍▏▏▍▍▋▉▍▋
▍▍▉▍▎▎▎▋
▎▎

View File

@@ -0,0 +1,17 @@
▎▌▉█▉▉▉▏▎
▋▍▏▏▉▏▏▍▏▌▍
▏▋▋█▍▋▌▍▏▏ █▍
▋▋▋ ▌▉▎▍▏▍▏▏▉▉▏
▏▏▌▎▋▉█▌▏▏▉▋▏▎▍
▏▏▏▉▏█ ▏▍▌ ▏ ▏▋▏
▍▍▏ ▋▎▊▏▏▏▏▋▉█▊ ▏
▏▋▌ ▏▎▏▏▋▏▏▏█▌ ▎▏
▍▍▏▏▏▉▏▋▍▏▏█▉▉ ▋
▉█▎▎▊▌▌▍▉▏▋▎▏ ▊▎▏
▏▏▏▉██▋▉▍▏▌█▌▋▏▏▎
▏▏▉ ▏▎ ▎▋▋▊ ▋
▍▏▉ ▏ ▋▊▋▎▊▏
▍▏▏█▎▉▏▋▋▉▎▏
█▋▋▎▌▋▎▎▌▉

View File

@@ -0,0 +1,17 @@
▊▌▉▉▉▌▌▏▊▎
▎▌▉▉▏▏▏▉▌▉▏▊█▍▊
▊▉▍▋▎▌▌▎▉▊█▏▏▏▎█▍
▋▏▋▎▋▏█▎▎ █▏▌▍▏▏▏▌▍
▏▋▎ ▏ ▏█▋▍▌▍▋▋ ▊
▎▌▉▊▋▎ ▊▋▋▏ ▋▊▌▋▏▋▋
▉ ▌▋▏ ▊▋▋▏▎ ▉█▏▏▋▌▏
▊█▌▏ ▋▋▏▏▋▏▊▏▏▌▌▉
▊▋▉▋▍▌▌▉▏▍▎▏▍▍▋▍▏▏▏ ▏
▏█▎▌▎▎▏▋▉▍▋▏▏▍ ▍▉█▉▍
▍▍▍▋███▉▉▉▉▍▎▏▉▋▋▍ ▍█
▍▏▏▎▉ ▎▋▏▏▎ ▌
▎▍▍ ▉▍▎ ▊█▊▋▍▎▋
▊ ▏▉▉▌▍▉▎▎▌▉▋▏█
▎▉▌▋▎▊▉▏▉▎▉▉

View File

@@ -0,0 +1,17 @@
▎▌▌▉▌▌▉▌▏▊▎
▎▉█▎▌▊▉▉▏▎▎▊█▉▌▌▎
▎▋▋▏▉█▉▌█▊█▋▎█▉▋▋▍ ▉
▊▏▏▉▋▊▍█▉ █▍▎▎▋▌▏▍▌▍▍▍▊
▎▍▋▋ ▋▏ ▎█▉▎▍▋▏▋▏▎▍▌▍▍▎
▋▍▏ ▊▊▏▋▎▎▎▋▊▉▊▏█▊▋▍▋▎▋▏
▏▏▍▋▋ ▉▋▉▋▏█▎▋█▉▏▌▏▌▊
█▍▊▏▏ ▍▍█▏▏▌▍ ▏▌▏█
▍██ ▊▍▌▌▌▌▌▉▏▏▊▏▉▋▍▊ ▏▉▏▎
▎▍▍▏▉▍▉ ▏▏▋▎▎▍▎▏▏▏▎▌▏▎▍ ▊
▏▋▏▍▎██▉▉▉▉▉▎ ▍▎▎▋▏▋▉▋▎▊▎
▍▍ ▊▍▊ ▎▎▉█▋▉▎█
▍▍▉▉▍▍▋ ▎▉▍▎▋▍▊▎
█▏▋▉▉▉▉▌▌▌▍█▉▎▋▎▊▉
█▏▏▎▋▎▎▊▋▉█▌▉█

View File

@@ -0,0 +1,17 @@
▎▎▌▌▉▏▉▌▌▏▋▎
▎▉▏▏▏▍▋▌▌▌▎▉▎▊▏▉▊▊
▊▉▌▌▋█▏▉▉▎ ▎▉▋▊▎▉▌▍
▋▌▏▉▊▍▎ ▎▌▌▉▊▍▏▉▊
▏▏▋▎▋▎ ▊▏▍█▋█▏▍ ▏▍▊
▏▍▋▉█ ▎▏▉▏▋ ▋▋ █▋▉▏
▍▌▏▏█ ▋▉▍▋▏▉▊▎ ▋▋▋▉▏
▏▏▏▏ ▏▌█▍▏█▊ ▏ ▏▏▏
▏▉▏▍▊▌▌▌▌▌▌▏▏▏▏▉▉▌▉▏▌ ▍ █▏▏
▍▌▋▊▏▌▉▋▍▉▉▍▊▎▊ ▍▎ ▋▍▎▍▊▋▋▏▎
█▍█▋▉▏█████▉▉█ ▍▍▎▋▏▋▋ ▋▋█
▍▍▍▉▎▍ ▎▋▋▎▋▋█
█ ▎▍▏▏▉▊ ▊▌▌▋▋▏▌▎
██▋▏▉▋▏▉▎▎▌▌▋▉█ ▌▉▏█
█▏▋▎▋▊█▎▊▋▍▉▊▍

View File

@@ -0,0 +1,17 @@
▎▋▎▋▌▉▌▌▌▉▊▎
▎▉▊▋▉▌▉▏▏▏▌▏▏▌▎█▏▉▉▎
▊▏▉▏▍▉▉▏▉▎▎ ▎█▉▌▉▋▏▏▌▏▊
▎▏▋▎▋▉█▊▊▎ ▊▊▍▏▋▏▊
▊▍█▋▉▍▏▍▎▍▍▎ ▍▊▏▍▏▊
█▋▉█▎ ▏▉▍▉▋▍▉ ▍▍▏▉▏
▊▏█▉▏ ▍▋▏▌▏▎▏▊ ▋█▏█▏
▏█ ▍▎ ▊▏▉▏▏▌▉ ▏█▋▋▏
▉██▌▏ ▌▏▍▍▎▏█▋▏▉▉▉▉▉▉▉▉▊▏▎▏▏▉
▎▌█▏ ▋▏▏█ ▋▉ ▏▌▍▎▎▎▎▋▋▎▎▏▉▋ ▏
▍▍▍ ▉ ▉▍▋▋▏█ ▎█▉▉▉▉▉▉▉█▏▊▉▏▏
█▍▎▋▋▊ ▎ ▊▉▌▋▊▉
▋▍▎▎▏▉▊ ▊▌▎▉ ▎▏█
▎▏▍▌▎▎█▉▉▋▌▌▌▌▋▌▉▎▎▏▏▉
▎▉▉▉▉▏▏▎▎▎▎▏▌▋▉█

View File

@@ -0,0 +1,17 @@
▎▎▉▌▏▏▌▉▌▊▎▎
▊▌▌█▌▊▎▊▌▌▌▏▏▎▍▉▍▉▊
▊▊█▎▉▉█▏▉█ ▎█▍█▍▉▉▏▉▎
▎▏█▎▉▏▉ ▎▊▉▏▍▋▉▍▍
▎▏ ▊▏▉ ▎▋ ▎▏▏▍▉▍▏▏▍
▋▎▊▏█ ▉▉█▌▏█▋ █▍▏▏▍
▌▏▌▉▏ ▊▉ ▋▉▉▍ ▊▍▏▋
▏▎▍▋▎ ██▌▋▏█▊ ▏▏█▏
▏▋▏▏▌▊▌▌▌▌▌▌▌▌▎▊█▌▍▍▍▍▉ ▋ ▏▍
█▏▍▏▎█ ▋▎▎▎▎▎▎▏▍ ▉▍▍█▏▌▍ ▊▋ ▏▏
▍▊▍▍████████▉█ ▍▊▌▏▏▊▏ ▋▍
▉ ▍▉▋▊ ▎▋▉▋▏▋
▍▎▍▉▊▏▎ ▊▌▉▎▌▉█
▍▊▊▋█▏▉▍▌▌▊▋█▏█▎▊▋▉█
▎▉▉▏▎ ▌▎▎▎▎▏▉██

View File

@@ -0,0 +1,17 @@
▎▎▊▌▉▌▌▉▌▉▊▎▎
▊▉▉▎▎▎▎▉▏▌▏▉▌▎▎▊▉▉▎
▌▉▍▎▉▉▍█▎ ▎▍▏▉▉▎▎▉▊
▊▉▏▌██ ▎▊▌▉▊▌▉▊
▋▊▋▉▎ ▊▏▋▎▍ ▍▍▎▍▊
▋█▋▏ ▊▉▉▎▋▋ ▍▍▍▊
▏█▏▎ ▎ ▋▎▊▋█ ▍▌▍█
▎▍ ▍▌ █▏▊ ▏ ▏
▏ ▏ ▊▉▌▌▌▌▌▉▉▉ ▍▏▊█▏▊ ▌▋ ▏
▏ ▏▍ ▏▎ ▎▊▏ ▍█▎▉▏▊ ▋█▋▋
▌ █▋ ▎▎███ █▎ █▉▎▊▌ ▋▎ ▊
█▉ ▋▌▎ ▎▉█ ▋
▉▎ ▍▊▎ ▎▋▌▉█ ▊▎
▉▌▎ ▉█▉▉▋▏▏▌▋▌▉██ ▊▎
▉▉▉▌▉▎▎▎▎▊▎▌▉▉▎

View File

@@ -0,0 +1,17 @@
▎▊▉▌▉▌▌▉▌▉▊▎
▎▉▋▉▏▋▎▋▏▋▍▏▏▌▏▉▋▉▉▎
▊▌▉▌▏▍▉▉▎ ▎█▉▍▉▉▉▎▎▉▊
▌▉▏▉▉█ ▊▊▏▏▏▎▉▍
▍▏▏▋█ ▊▎▋▏▌▏▋▋▌█▏
▍▏▉▋▎ ▊▏▋▏▌▍▋▎ ▍▏▍▌▏
▏▉▉▍▋ ▏▉▏▍▉▋█ ▏▏▋▏
▏▏▌▏▎ ▏▍▏▏▍▍ ▏▍▏█▏
▏▏▊█▊ ▉▏▌▌▌▌▌▌▉▉▎▍▉▏▎ ▍▊ ▎▏▌█
▍▏▌ ▉▎▍▍▊ ▋▊█▏▋▋▏ ▍▉▌▎█▏▊▊ ▋▍▌
▍▍▍▎▏ █████▉▉█▎ ▎▋▉▉▎▋▋▋█▊▎
▍▉▍▎▍▊ ▎▉▊█▏▊█
██▉▌ ▉▉▎ ▎▋▉▊█▉▎▋
█▋▉▉▊█▉▏▌▌▉▌▌▋▌▉███▊▉
█▏█▏▎▌▎▎▎▊▌▎▋▌▉▎

View File

@@ -0,0 +1,17 @@
▎▊▉▎▌▉▉▉▉▌▉▎▎
▎▌▏▉▏▍▎▊▎▌▌▊▏▎▏▉▏▉▎
▊█▉▏█▊▌▉▎ █▏▋▉▏▍▌▏▏▊
▋▌▏▉▌▋▎ ▎▌▌▍▏▏▌▍
▋▋▏▎▋█ ▊▋▊▊█▉▋▉▍▏▍
▊▍▏█▋▎ ▎▉▉▉██▋▉█▏▏▍▏▊
▎▏▏█▏ ▋▋▋▋ ▎▏▎ █ ▏█▉
▏▋▏ ▏ ▏█▏▊▎▍▊ ▏ ▉▋▏
▍█▍ ▏▉▏▌▌▌▌▌▌▌▌▏▎▉▏▎█▍▎ ▏ ▏▏▏
▏▍▍▎▏█▌█ ▋▎▍ ▍▏▎▍▊▏ ▍▎▏
▋█▏ ▏ ▎███████ █▎▋▌▌▏▎▋▍▋▎
▊▏▏▎▏▋ ▊▋▏▍▍▋▎
▍ ▏▊█▋▎▎ ▎▋█▌▉▋▉▋
▍▌▍▉▌▉▉▍▏▌▌▎▉▉█▊▎▉▉▎
█▏ ▉▌▍▏▎▎▉▎▎▉▉▎

View File

@@ -0,0 +1,17 @@
▎▏▎▌▉▉▉▌▌▊▎
▊█▎▋█▏▎▎▏▌▌▉▊▎█▉
▊██▌▍▋▉█▏ ▋▎▋▉▏▉▉▊ ▍
▊█▋▋▊▋▏▌▊▍▎▏▋▎ ▎▉▍▏▍▎█
▊ ▋▋▍▋▊ ▎██▋▍▎▏▎▎▍▏▊█
▏▊▍▉▍▎ ▉▊▊▋ ▋▏▌ ▋█▍
▏ ▏▏ ▊▋▎▊▋█▋▍▍▏▍▍▏▍
▏ ▍▏▏ ▏▊▌▋▍▎▏▏▎▋▋▎▏▏
▏▋ ▏▌▌▌▋▉▉▏▏▏▉▉▎▉▊▎▏ ▏ ▏▏
▎ ▋ ▉▏▋▊▊▌▌▊▊▏▋▍▍▉▉▏ ▏▉▏
▍ █▍▏▍▉██████▎ ▍▊▋▉▍▏▌▋▊▎
▍ ▍▊▉▍ ▏ █▋▌▋
▍▋▉▍▎▏▋ ▎▌█▎▋▋▎▉
▋▊▉▊▍▍█▏▏▋▌▌▌▏▍▎▋▎
▉▋▎▉▉▌▍▎▎▌▌▉▉

View File

@@ -0,0 +1,17 @@
▎▉▌▉▌▉▉▉▉▎
▊ ▉▊▉▎▎▌▍▏▉▏▏▊
▋▏▋▋▊▊█▋▏▉▍▌▍▏▏▏▎
▏▉▉▏ ▋ ▌▏ █▍▏▊▉▍▋
▊▎▎▍▊▋█▍▌▋▎▏█ ▏▋▋▍▋▉
▍▊▏▏▏▎▉▉▋▍▏▋ ▋▏▊▏▋▋▏▊
▏▋▏▉▏ ▏▎▎▋▍▎▋▏▍▋▎█▏▌▏
▏▏▏▋▏▋█ ▏▎▌▍▋▏▍▎▏▌▏▏▍
▍▉▍▏█▏▎▎▌▌▌▌▉▏▏▍▍▏▉▉▏▍
▋▊█▏▋▏▊▏▎▏▏▌▉▎▏▍▉▌▋▍▏
▍▏▉▋▍▏▎██████▉▋▏▍▏▋▏▎
▏▎█▏▌▉▌▍▊▊▉▋▎▋▊▋▋▏▋
▍▎▍▏▎▍▎▉▌▋▊▍▋▎▏▏▋
▍▋▌▍▍▎▉▌▏▉▉ ▉▏▉
▏▊█▉▍▉▊▎▉▏▉

View File

@@ -0,0 +1,17 @@
▎▌▉▉▉█▉▊
▋▉▏▌▋▍▏▉▌▏▊
▋▉██▏▌▍▏▍██▍▊
▌▉█▊▏▏▏▎▏▏▎▉▋▍
▏▎▊▍▏▋▏█▉▍▋▌▏▍▌
▍ █▏▋▋▋█▉▎▍█▍▍▋
▏ ▉█▌▏▏▋▏▏▌▌█▉
▋▊ ▍▏▏▏▍▍▌▏▏▋▏▏
▏ ▋▍▉▌▉▏▉▌▌▋▍▏▏
▋▎▏▋▊▏▎▎▊▉▍▍▉▏
▏▎█▋▏▉█▍▊▋▎▉▍▏▏
▍▎▏▏▋▍ ▋▋█▏▏▎
▉ ▉▏▍ ▍▎▋▏▋▊
▏█▉▍▍█▉▎▉▉▌
▍▋▋▍▉▏▎▍▉

View File

@@ -0,0 +1,17 @@
▌▉▉▉▉▊
▏▌▋▋▏▋▍
▌█▎ ▉▏▋█▏
▏▏▏▍▏▏▌▏▏
▏ ▎▏▎▊█▌
▏▎▋▎█▎▏▏▏▎
▌ █▏▏▎▉▏▏
▏ ▎▏▏▏▌█▏▏
▏▋ ▋ ▏▉▏▏▏▏
█▌ ▋█▎▏▎▉▏▏
▏▊ ▎▍▉▉▉▋█
▏▏▉▉▏▏▎▋▏
▏▌▌▉▌▊▋▏▍
▍▎▎▏▍▌▋▋
█▍█ ▍▍▋

View File

@@ -0,0 +1,17 @@
▋▉▉▌
▏▉▎▏▎
▌ ▌▏▎
▏▊▎▉▏
▏ ▏▏
▏ ▊█▏
▍▏▏ ▎▏
▏▊██▏
▋▍ ▎▏
▏▏▋▋▏▏
▏ ▎▏
▏▌▉▌▏
▏▌▉▏▏
▉▎▎▋▏
▏ ▋▉▏

View File

@@ -0,0 +1,17 @@
▉▉▉▉▉▊
▊▏▉▋ ▉▍
▍▊▏▏ ██▏
▏▏▏▏▍▍▊▋
▍ ▏█▏ ▏
▏▊▏▏▏ ▎▎
▏▍▍▏▏▏ ▍
▏▏▌▏▏
▏▏▏▉▏ ▎
▎▏▌▏▏ ▎
▉▏▏▋▏▍ ▌
▏▋▏▏▏ ▎▏
▏▏▏▏▎▏▎▏
▏▌▏▉▋█▏█
▏▏▉ ▋▊

View File

@@ -0,0 +1,17 @@
▎▋▌▌▉▉▌▌▌▌▊▎
▎▉▊▋▍▏▏▉▏█▌▌▏▌▎▍▏▉▉▎
▊▌▋▉▌▏▉██▎ ▎█▏ ▉▉▉▋▍▏▊
▋▉▋▍▏▌▊▉▎ ▎▌▉ ▏▏▍
█▋▉▏▋▍▋▏▏▉▍▎ ▍▍▍▏▏▎
▋▏▍▍▋ ▋▊▏▍▌▍▍ ▏ ▍▍▏
▌▉ ▏ █▉▍▏▎█▏▊ ▋▉▋▏▊
▊▊▏▊▏ ▊▊▏█▋▍▏ ▏▎▏▌▏
▊██▏ ▌▏▉▉▏▏▉▊▏▌▉▉▎▎▎▉▉▎▏▍█▌▏
▊▍▋▍▊ ▋▋▉▋▌▌▏ ▏▉▏▎▎▊ ▌▋▊▌▍▎▏▍▏▎
█▍▏ ▏ █▏▏▉▊█ █▉▉▉███▉▉▊▋▋▋▊▋
█▉▏ ▍▉ ▎ ▋▍▉▍▋▋
▌▍▋▋▉▍▊ ▊▉▌▋█▊▏█
▌▍▉▊▎▉▉▍▌▌▌▌▊▋▌▉▌▎▎▉█
▎▉▉▉▎▋▏▎▎▎▎▏▌▋▍█

View File

@@ -0,0 +1,17 @@
▎▌█▉▉▉▊
▎▋▌▏▏▍▉█▌▍
██▍▏▊▍▍▏▉▊▍
▏▏▍▏▋▏▎▍▏▍ ▍▊
▌▉▏▏▎▍▏▊▏▊ ▏
▏▉▏▍▉ ▉▏▏▏▏▋▏
▍▋▏▏▏▍▎ ▍▋▍▏ ▌▎
█▏ █▉▌▏▊▏█▏▊ ▎
█▏▎█▍▏▌▏▍▋▏▊ ▎
█▏▏▍▏▎▎▏▏ ▉▊ ▎
▍▏▏▌▍▎▉▏▏▏▉▏▏
▏▉▋▋▊▋▉▍▏▏█ ▏
▍▏▍▏▏▋▉▏▏▊▏▋
▊▍▊▉▌▍▋▏▊▋█
▍▊▋▏▍▎▎▌█
▎▎▎▎

View File

@@ -0,0 +1,17 @@
▎▋▋▉▉▉▉▌▊
▎▉▉▌▉▊▎█▉▍█▉▊
▊▏▍▋▋▊▌▎▎▋█▏▎▉▍
▊▏▋▉▎▎▉▌▎▊▍▍▏▍▏▏▍
▍▏▏▏▏▉▊▉▍▎▊█▍▏▋▎▎
▌▏▍▎▏▎▏██▍▌▉▊▋▋▏▊█▏
▋▏▏ ▏▍▉▏▍▋▌▋▌▉▏▉▏▋▏
▍▍▊ ▏▏█▏▍ ▏▍██▏▏▍▋▏
▏▍▊▎▏█▍▏▏▏▋▉▏▏▏▎ ▏
█▏▏▏▋▋▏▏▎▎▎▍▎▏▍▏▏ ▉
▍▉▎▋▉▏▊ ▋▉▉▉▎▋▏█▏▎
▏▏▏▍▍▍▊ ▎▌▉ ▏
▌▏▉▌▎ ▊ ▋ ▏▉▎▋▎
▋▏▍▏▋▎▏▎▊▏█▊▏▎
██▌▏▎▉▉▋▋▌▉
▎▎▎▎

View File

@@ -0,0 +1,17 @@
▊▉▉▉▉▌▌▏▊▎
▌▉▏▉▉▏▍▏▏▉▉▏▏▊
▋▍▉▌▍▊▉▍▋▊▎▉▏▉▍█▉▊
█▋▋▏▎▊▎▌▊ ▊ ▊▎▍▏▉▊ ▊
▋▋▏▊▏▉▍█▉▏▌ █▎▊▏▍▋▍▉▍▊
▍▋▍▍▊▍▉▏▎▋▏▏▉▎ ▏▉▋ ▉
▉▏█▌▊▎█▍▏▏▊▊▏▊▌▎▋▎▋▋▏█▎
▏▏▏▊▎ █▎▏▏█▋█▏▌▊▎█▍▏██▎
▍▏▏▊▎ █▎▏█▎▎▏▉▉▉▏▏▏▌▏█▌▎
███▎▎▏▉▍█▍▎▎▎▎▎▏▏▉▏▌▏▊▎
▊▍▉▏▏▋ ▏▉██▉▉▉▍▌▋▋▋▋▋
▍▊▏▍▍▍ ▊▍▏▋█▏
█▉▉▏▏▏▉▎ ▎▋▎▏▋ ▊
▍▊▍█▏▉▏▌▌▉▎▎▉█▎▋
▏▌▌▎▎▊▉▋▉▎██
▎▎▎

View File

@@ -0,0 +1,17 @@
▎▊▉▌▉▌▉▌▏▋▎
▎▉▉▏▏▍▉▌▏▋▏▊▏▉▏▉▋
▎▋▍▏▉▉▉▊▌█▎ █▉▋▏▏▉█▊
▊▍▋▏▋▎▏▊▎ ▉▏▏▍▎▉
▎▋▏▋▎▏▏▋▍▍▍ ▏▉▍▍▍
▋▋▊ ▍▎▍▍▎▍▊ ▋▍▋▎▍
▏▏▉ ▍▊▉▏▎▏▍ ▏▉▏▏
▉▏▊▊ ▊██▍▋▌▊ ▍█▏▉
▏▏▏ ▏ ▊▎ ▋▉▊▊▊▌▌▌▉▏▏▉▋▎▏▍▏
▍▋▏██▋▋▊▋▎▏▏▎▎▎▎▎▏▏▉▍▍▍▏▏▋
▍▌▍▊ ▏▋▏▋ ▋ ████▉▉▉ ▏▏▊▋▍▎
▍▉▍▉▊█▊ ▋▋▌▋▌▋
▉▍█▉▊▉▌▊ ▎▉▏▊▋▉▍█
▍▏█▉▍▉▏▊▌▉▎█▌▊▍▉▏▉
█▌▌▉▊▎▎▎▍▉▉▌▊█
▎▎▎▎

View File

@@ -0,0 +1,17 @@
▎▊▌▉▉▉▉▌▏▊▎
▎▉▉▉▋▍▌▏█▏▉▉▌▉▉▌▊▌▎
▎▋▋▊▏▉█▋▏▉▎ ▎▍▍▍▊█▉▉▊
▊▋▎▏▉▎▋▊▎ ▉▏▊▉▍▍
▋▋▏▍▊▋▏ ▏█ ▊ ▍▍▉▍▍
▊▋▍▏▎▋ ▍▍█▏▍▉▍ ▍▊▍▏▍
▏▉▍▏▎ █▍▎▉▏▎▍ ▏▌▏▎
▍▏▌█▋ ▏▉▎▏▋█▏ ▋ ▎▍
▊█▋▋█ ▋▍▋▋█▎▌▌▉▉▉▉▉▉▏▎▎█ ▏▍▎
▏▏▍▊▋▊▊▍█▋▋█▏▏▏▎▏▋▎▎▎▊▋▎▏▏▎▏▍
▋▎▍▊ ▏▍▏▉▍ █▉▉▎▎▎▎▍ ▊▋▊▍▏█
▋▊▍▌▌▍▎ ▋▌▋▏▋█
▍▉▎▏▉▍▌▊ ▎▉▌█▎▋▊▎
▊▍▋▏█▏▉▊▌▊▉▌▉▌▉▎▉▉▋█
█▏▍▌▌▎▎▎▎▎▌▌▉▌▍
▎▎▎

View File

@@ -0,0 +1,17 @@
▎▊▉▌▌▉▉▉▌▉▊▎
▊▉▌▉▋▏▉▉▉█▏▉▏▋█▏▉▌▎
▎▋▋▏▌▉▉▏▍▉█▎ ▎█▉▌▉▋█▏▉▊
▊▋▋▉▋▊▌▊▎ ▉▉▎▍▏▎
▋▋▏▏▋▋▍ █▍▉▊ ▏▍▉▏▊
▌▋▌▋▉▎ █▏▎█▋▋▉▎ ▏▍▍▏
▍ ▋▋ ▍▍ █▉▎▋ ▏▍▍▍
▏▏▏▋ ▋▍▍▌▋█ ▋ █▋
▋ ▊▎ ▊▏▏▋▌█▋▏▌▌▎▌▎▌▉▏▏ ▏▏▌▉
▏▊▍▌█ ▋▋▌█▉▉▋▏▌ ▍▊▎▎▎▎▋█▏▋█ ▏█
▋▎▍▊█▋▍▎▏▋▍▎ ▎█▍▍▍▍▉▍▍▉▋▋▎▊▏
█▋▍▍▋▏ ▎▋▉ ▊▍
▍▌▎▍▌▊▋▊ ▊▌▋▎▉▉█
█▍▎█▏▉▏▊▋▏▏▉▏▌▋▉█▎▋▌█
█▍▏▌▌▎▎▋▎▎▉▉▉█▍

View File

@@ -0,0 +1,17 @@
▎▎▉▌▉▉▉▉▌▉▊▎
▎▌██▍▉▋▌▋▉▍▉▌▉▉█▉▉▉▎
▊▍█▍▊▉▉▊▉█▎▎ ▎█▉▏▉▉▏▊▉▏▊
▎▏█▉▉▎▎▎▎ █▉▏▍█▏
▊▋▎▌▍█▏▍▎▍▊▋ ▍▍▋▉
▋ ▊▋▎ ▉▎ █▏▋▊ █▍▍▉
▏ ▌ ▎ ▍ █▍▍ ▏▍▏▊
▏▏▍▏ ▎▍ ▎▋▋ ▍▏ ▏
▏██▏ ▋▋ ▊▉██▊▉▉▎▉▉▉▉▉▎ ▏▍▏▏
▎▉▏▍ ▊▏▎▎▋▏▋ ▎▏▎▎▎▎▎▎▎▏▏ ▍▋█▎
█ ▉▏▍ ▉▎▉▋▍ █▉▉▍▍▍▍▍█ ▏▊█▋
█▊█▍▌▋ ▊▋▏█▋
▍▋▏▏▉▏▊ ▊▉▉█▋▊▎
▉▊▎█▉▉▌▍▌▏▎▉▏▌█▊█▊▌▉█
▎▉▉▋▏▎▊▊▎▊▊▉▉▉▉█

View File

@@ -0,0 +1,17 @@
▎▋▌▌▉▌▌▉▌▉▊▎
▎▊█▉▉▏▋ ▏▍▌▋▉▌▏█▋▉▊▎
▊▉▌▏▏▏▉▉█▎ ▎▍▏▍▍▉▏▋▍▍▎
▋▋▏▊▏█▋▉▊ █▏▉▉▍▉▍
▋▏▋▎▏▌▏▍▌▍▏▊ ▍█▍▏▉▍
▋▏▏▍▏ █▎▏▏▋▉▍ █ ▍▌▏▊
█▍▏▌▎ █▉▉▍▉█▏▊ ▊ █▌▏
▏▋▍ ▊▏▋▉▍▏▏ ▏▏▏
▎▏ ▏▎ ▌▏▋█▍▋▋▉▏▉▉▉▎▎▎▎▊▊ ▏▏▉
▏▍▋ ▏ ▊▋▋▋▊▎▏▎▌▍▏▊▋▎▊▋▋▍▌▏▋▋█▏
▎▏▌█▍▊▍▍▊▍▋ █▉▉▉▉▉▉▉█▍▊▏▏▏▎
▊▏▍█▏▎▎ ▊▍▌▋▉▉█
▍▍▊▋▍ ▊▎ ▎▋▍▊▉▌▏▋
▏▏▏▌▎▉▉▍▌▌▌▌▊▉▌▉▉▍▏▉▎
▉▍▍▏▋▏▎▎▎▎▎▌▊▉▎

View File

@@ -0,0 +1,17 @@
▎▋▌▌▌▉▌▌▌▉▊▎
▎▉█▉▋▉▋▏▏▉▏▌▉▌▎▏█▉▊
▉▎▋▍▉▏▉█▎ █▍▌▏▉▍ ▊▉▊
▊▏▋▏▋▏▋▌▊ ▊▍▏▏▏▏▎
▊▍▋▉▋▍▎▉▏▎▍▊ ▎ ▍▏▍▏▎
▏▏▏▏▋ ▍▎▏▍▌▋▏▎ ▉▋▏▏
▏▋▏ ▉ ▎▍▎▏▍█▏▊ ██▏▉▏▊
▏▋▏▎█ ▊▎▌▏▋▎▏ ▉▏▎▏
▏▊▏▍▉ ▋▎▏█▊▏▉▌▎▏▉▏▎▎▎▉▊▎█▏▋▏
▎▍▏▍▊▊▋▉▉█ ▏█ ▋▋▍▌▍▊▌▋▊▋▏▋▉▏▎
▍▊▏▏▊▏▊▍▍▋▉▎ █▉▉█████▊▏▌▏▍▋
▍▍▉▋▍▍ ▎ ▋▎▋▉▊▍
▍▋▉▍▏▌▉▎ ▎▌▉▊▉█▌▉
▍▏▉▏▊▉▉▍▌▏▌▎▊▉▌▉▍▏▌▉
▍▊▉▎▉█▎▎▎▊▎▊▉▉▎

View File

@@ -0,0 +1,17 @@
▎▋▌▌▌▉▌▌▉▉▎▎
▊▍▌▋▉▏▌▉▉▏▉▉▌▎▊▉▉▎
▊▊▊▏▏▏▉█ ▎█▏▋▌▉▉▉▋▍▎
▋▊▏▉▏▉▎▌▊ ▍▉▏▏▏▏▊
█▌▏▏▏▉▍▍▉▉▍ ▋▍▍▏▍▊
▌▊▋▏▋▎▍▉▌▏▍▎▏▊ ▋▌▍▋▏
▎ ▉▏▏ ▍▍▏▋▍▍ ▍▉▏▎▏
▏ ▏▏▏ ▎▏▌▏▋▏▏ ▏▉▍▏▏
▎▋▏▊▏ ▋█▏▏▉▌▋▉▎▏▉▏▎▎▉▉▎▋▍▋▏
▏▏▍▊▋▎▍▎▌▉ ▏▋▌▉▊▏▏▊▌▌▌▍▏▊▏▍
▋ ▏ ▋▏▏▏▌▋█ █▉████▉█▎▍▍▋▏
▊ ▌ ▋▊▎ ▊▋▎▋▋▏▎
▋▎▍▎▉▉▊ ▎▉▍▎▋▉▊▉
▎█▏▉▊█▉ ▌▏▎▎▊▉▉▉ ▋▌█
▍▊▌▉▉▊▎▎▎▎▎▊▉▉

View File

@@ -0,0 +1,17 @@
▎▋▏▌▉▉▌▌▉▊▎
▊▉▎▉▍▏▉▉▉▌▌▍▌ ▎▉▊
▉ ▊▏▏▏▉▎ ▎▍▏▎ ▉▋▎▉▊
▍▍▏▏▏▏▌▉ ▍▏▍▉▏▋▊
▎█▏▉▏▏▍▏▋▍▊ ▋ ▉▏▏▍
▏ ▌▏▏█ ▎█▍▌▏▍ ▊▊▏▏▏
▎▍█▏ ▍▎▏▍▏▍▏ ▉▉▍▏▏
▎█▋▏▏ ▌▉▋▏▉▏▎ █ ▏▏▏
▋█▏▉ ▊█▎▋▏▍▋▏▏▌▌▎▏▏▌▌▉▍▏▏
▏▊█▏▏▌▋▏▏▋█▏▋▍▏▏▍▍▊▌▊▌▍▏▍▏
▍ ▌▍▋▉▏▉▎▋ ▉▉▉▉▉▉██▎▋▏▏
█▎ ▋▎▋▎▎ ▊█▊▋▌▋█
█▌▊▉▍▍▍▎ ▊▍▏▊▉▋▉█
▍▎█▍▏▉▍▌▏▎▎▎▉▉▏▉▉▋
█▏▉█▏▋▏▎▎▊▎▌▉▉

View File

@@ -0,0 +1,17 @@
▎▎▉▎▌▉▉▌▉▊▎
▊█▉▋▏▏▏▉▌▌ ▏ █▉
▎▏▌▊▏▋▋▉ ▊█▏▋▏▉▍▉▍▊
▎▉▍▉▋▏▊▉▏ █ ▌▍▏▏▍
█ ▋▏▋▊▍▏▋▍ ▋█▍▏▏▊
▏█▊▏▍▍▍▎▍▏▎▉ ▍▉▏▏▏
▏▉▏▏▏ █▎▌▍▏▎▏ ▏▍▏▋▏▊
▍▊▏▏▋ ▏▉▍▋▏▊▉▋ ▋▎▋▏▏
▍ ▍▏▏▎▍ ▋▉▌▏▏▋▉▊▉▊▊▍▏▏▏
▍▉▋▌▎▏█▊▏▊▏▏▌▏▌▎▎▏▏▌█
▋▋▍▍▏▍▏▏▏▋█▍▉▍▉█▍▉█▋▍▏
█▊█▏▍▏▎▎ ▋▊▋▋▋█
█▍▎▉▍▍▍▎ ▎▋▍▎▏▉▋▉
▋▋█▏▊▉ ▌▌▉▉▌▋▌▊▏▎
▏▏▎▉▉▍▏▎▊▉▋▌▎
▎▎

View File

@@ -0,0 +1,17 @@
▋▌▍▉▋▉▉▌▊
▋▉▎▋▏▏▉█▌ ▎▊▍▎
▋ ▊▏▏▋▉▍▍▌▋ ▍▎▏▊
█ ▏▏▋▌▌▎ ▎▍▊▏▍▍▏▉▊
▋▉█▌▍▉█▏▉▊ ▉▋█▉▋▉▏▏
▏ ▏▏▏█▍▏▍▌▎▎ ▏█▏▉▏▏▏
▎ ▏▉▍▏▉▉▏▍▍▊█▋▊▋ ▎▏▏
▏ ▏▋▎▊▍▏▏▏▎▋▌▍▎▏ ▏▏
█▊▏█ ▋▏█▏▏▏▏▉▏▏▊▏▏▎
▏▎▏▏▏▎▊▏▍▏▎▏▏▏▏▎▎▏▏▏
█ ▎▍▋▍▍▏▋█▉▉▉▉▏▏█▋▍▏
▍▏▏▏▍▊▎ ▊▋ ▍▋▏▎
▍▉▍▏▍▍ ▋▌▎▌▏▋▉
▍▊█▍▎▏▉▋▉▌▌▌▉▏▎
█▊▎ ▉▍▍▏▌▉▋█