
# Laboratório de pesquisa de segurança autorizado reproduzindo CVE-2026-27941 (solicitação pwn em fluxos de trabalho pull_request_target) — snapshot de openlit/openlit
Artefacto de investigação automatizado — não é o projeto original.
Este repositório é um laboratório descartável construído por um harness automatizado para uma tese de mestrado na Université Laval sobre a reprodução de vulnerabilidades publicadas em workflows do GitHub Actions. É um snapshot verbatim de
openlit/openlitno commit8529a7746ce2cae946bd2346cb3792c22f86cbee(2026-02-24), redistribuído sob a licença desse próprio projeto, cujo ficheiro está incluído inalterado neste snapshot.O projeto original não está envolvido, nunca é alvo, e a vulnerabilidade aqui estudada já é pública. Cada segredo e variável neste repositório é um valor fictício gerado aleatoriamente — nenhuma credencial real está presente. Referências de ações e imagens de runners estão fixadas no que resolveram em 2026-02-24; consulte
pinning.mdna saída do harness para todas as alterações feitas ao snapshot.Perguntas ou objeções: [email protected]
❤️ Patrocine este projeto ❤️
OpenLIT permite-lhe simplificar o seu fluxo de trabalho de desenvolvimento de IA, especialmente para IA Generativa e LLMs. Agiliza tarefas essenciais como experimentar com LLMs, organizar e versionar prompts, e gerir chaves de API de forma segura. Com apenas uma linha de código, pode ativar observabilidade nativa OpenTelemetry, oferecendo monitorização full-stack que inclui LLMs, bases de dados vetoriais e GPUs. Isto permite que os programadores construam funcionalidades e aplicações de IA com confiança, fazendo a transição suave de testes para produção.
Este projeto segue e mantém orgulhosamente as Convenções Semânticas com a comunidade OpenTelemetry, atualizando consistentemente para se alinhar com os padrões mais recentes em Observabilidade.

📈 Dashboard de Análises: Monitorize a saúde e o desempenho da sua aplicação de IA com dashboards detalhados que acompanham métricas, custos e interações de utilizadores, proporcionando uma visão clara da eficiência geral.
🔌 SDKs de Observabilidade nativos OpenTelemetry: SDKs neutros em relação ao fornecedor para enviar traces e métricas para as suas ferramentas de observabilidade existentes.
💲 Acompanhamento de Custos para Modelos Personalizados e Fine-Tuned: Adapte as estimativas de custos para modelos específicos usando ficheiros de preços personalizados para um orçamento preciso.
🐛 Dashboard de Monitorização de Exceções: Identifique e resolva rapidamente problemas ao acompanhar exceções e erros comuns com um dashboard de monitorização dedicado.
💭 Gestão de Prompts: Gira e versione prompts usando o Prompt Hub para acesso consistente e fácil em todas as aplicações.
🔑 Gestão de Chaves de API e Segredos: Trate as suas chaves de API e segredos de forma segura e centralizada, evitando práticas inseguras.
🎮 Experimente com diferentes LLMs: Use o OpenGround para explorar, testar e comparar vários LLMs lado a lado.
🚀 Fleet Hub para Gestão OpAMP: Gira e monitorize centralmente os OpenTelemetry Collectors na sua infraestrutura usando o protocolo OpAMP (Open Agent Management Protocol) com comunicação TLS segura.
flowchart TB; subgraph " " direction LR; subgraph " " direction LR; OpenLIT_SDK[OpenLIT SDK] -->|Sends Traces & Metrics| OTC[OpenTelemetry Collector]; OTC -->|Stores Data| ClickHouseDB[ClickHouse]; end subgraph " " direction RL; OpenLIT_UI[OpenLIT] -->|Pulls Data| ClickHouseDB; end end
### Passo 1: Implementar a Stack OpenLIT
1. Clonar o Repositório OpenLIT via Git
Abra a sua linha de comandos ou terminal e execute: ```shell
git clone [email protected]:openlit/openlit.git
Auto-hospedagem usando Docker
Implante e execute o OpenLIT com o seguinte comando: ```shell docker compose up -d
Para instruções sobre instalação em Kubernetes usando Helm, consulte o guia de instalação via Helm no Kubernetes.
Abra sua linha de comando ou terminal e execute:```bash pip install openlit
> Para instruções sobre como usar o SDK TypeScript, visite o [guia de instalação do SDK TypeScript](https://github.com/openlit/openlit/tree/main/sdk/typescript#-installation).
### Etapa 3: Inicialize o OpenLIT na sua aplicação
Integre o OpenLIT nas suas aplicações de IA adicionando as seguintes linhas ao seu código.```python
import openlit
openlit.init()
Configure o destino dos dados de telemetria da seguinte forma:
| Finalidade | Parâmetro/Variável de Ambiente | Para Enviar ao OpenLIT |
|---|---|---|
| Enviar dados para um endpoint OTLP HTTP | otlp_endpoint ou OTEL_EXPORTER_OTLP_ENDPOINT | "http://127.0.0.1:4318" |
| Autenticar backends de telemetria | otlp_headers ou OTEL_EXPORTER_OTLP_HEADERS | Não necessário por padrão |
💡 Info: Se o
otlp_endpointouOTEL_EXPORTER_OTLP_ENDPOINTnão for fornecido, o SDK do OpenLIT enviará os traces diretamente para o seu console, o que é recomendado durante a fase de desenvolvimento.
Adicione as duas linhas a seguir ao código da sua aplicação: ```python import openlit
openlit.init( otlp_endpoint="http://127.0.0.1:4318", )
</details>
---
<details>
---
<summary>Inicializar usando Variáveis de Ambiente</summary>
Adicione as duas linhas seguintes ao código da sua aplicação: ```python
import openlit
openlit.init()
Então, configure o seu endpoint OTLP usando a variável de ambiente: ```env export OTEL_EXPORTER_OTLP_ENDPOINT = "http://127.0.0.1:4318"
</details>
---
### Passo 4: Visualizar e Otimizar
Com os dados de Observabilidade agora sendo coletados e enviados para o OpenLIT, o próximo passo é visualizar e analisar esses dados para obter insights sobre o desempenho, o comportamento da sua aplicação de IA e identificar áreas de melhoria.
Basta acessar o OpenLIT em `127.0.0.1:3000` no seu navegador para começar a explorar. Você pode fazer login usando as credenciais padrão:
- **Email**: `[email protected]`
- **Senha**: `openlituser`


## 📦 Integrações Suportadas
O OpenLIT auto-instrumenta **mais de 44 provedores de LLM, frameworks de IA e bancos de dados vetoriais** com uma única linha de código. Cada integração produz traces e métricas [nativos do OpenTelemetry](https://opentelemetry.io/). Clique em qualquer card para ver a documentação da integração.
<sub>
<img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="16"> SDK Python
<img src="https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white&style=flat-square" height="16"> SDK TypeScript
</sub>
### Provedores de LLM
<table>
<tr>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/openai"><b>OpenAI</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"> <img src="https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/anthropic"><b>Anthropic</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"> <img src="https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/cohere"><b>Cohere</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"> <img src="https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/mistral"><b>Mistral AI</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"> <img src="https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white&style=flat-square" height="18"></td>
</tr>
<tr>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/groq"><b>Groq</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"> <img src="https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/google-ai-studio"><b>Google AI Studio</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"> <img src="https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/together"><b>Together AI</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"> <img src="https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/ollama"><b>Ollama</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"> <img src="https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white&style=flat-square" height="18"></td>
</tr>
<tr>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/bedrock"><b>AWS Bedrock</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"> <img src="https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/azure-ai-inference"><b>Azure AI Inference</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/vertexai"><b>Vertex AI</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/vllm"><b>vLLM</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
</tr>
<tr>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/reka"><b>Reka</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/litellm"><b>LiteLLM</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/huggingface"><b>Hugging Face</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/ai21"><b>AI21</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
</tr>
<tr>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/gpt4all"><b>GPT4All</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/premai"><b>PremAI</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/sarvam"><b>Sarvam AI</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/julep-ai"><b>Julep</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
</tr>
<tr>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/multion"><b>MultiOn</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
</tr>
</table>
### Frameworks de IA
<table>
<tr>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/langchain"><b>LangChain</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"> <img src="https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/llama-index"><b>LlamaIndex</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"> <img src="https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/crewai"><b>CrewAI</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/pydantic"><b>Pydantic AI</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
</tr>
<tr>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/phidata"><b>Agno</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/browser-use"><b>Browser Use</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/haystack"><b>Haystack</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/letta"><b>Letta</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
</tr>
<tr>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/mem0"><b>Mem0</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/ag2"><b>AG2 (AutoGen)</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/controlflow"><b>Controlflow</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/crawl4ai"><b>Crawl4AI</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
</tr>
<tr>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/dynamiq"><b>Dynamiq</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/openai-agents"><b>OpenAI Agents</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/firecrawl"><b>Firecrawl</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
</tr>
</table>
### Bancos de Dados Vetoriais
<table>
<tr>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/pinecone"><b>Pinecone</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"> <img src="https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/chromadb"><b>ChromaDB</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/qdrant"><b>Qdrant</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/milvus"><b>Milvus</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
</tr>
<tr>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/astradb"><b>Astra DB</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/psycopg"><b>PostgreSQL</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
</tr>
</table>
### Ferramentas Especializadas
<table>
<tr>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/elevenlabs"><b>ElevenLabs</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
<td align="center" width="160"><a href="https://docs.openlit.io/latest/sdk/integrations/assemblyai"><b>AssemblyAI</b></a><br/><img src="https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white&style=flat-square" height="18"></td>
</tr>
</table>
## 🛣️ Roadmap
Estamos dedicados a melhorar continuamente o OpenLIT. Aqui está uma visão do que já foi realizado e do que está por vir:
| Recurso | Status |
| --------------------------------------------------------------------------------------------------------------------------------- | ------------- |
| [SDK de Observabilidade nativo do OpenTelemetry para Tracing e Métricas](https://github.com/openlit/openlit/tree/text-upgrade/sdk/python) | ✅ Concluído |
| [Monitoramento de GPU nativo do OpenTelemetry](https://docs.openlit.io/latest/features/gpu) | ✅ Concluído |
| [Monitoramento de Exceções e Erros](https://docs.openlit.io/latest/features/exceptions) | ✅ Concluído |
| [Prompt Hub para Gerenciar e Versionar Prompts](https://docs.openlit.io/latest/features/prompt-hub) | ✅ Concluído |
| [OpenGround para Testar e Comparar LLMs](https://docs.openlit.io/latest/features/openground) | ✅ Concluído |
| [Vault para Gerenciamento Central de Chaves de API e Segredos de LLM](https://docs.openlit.io/latest/features/vault) | ✅ Concluído |
| [Rastreamento de Custos para Modelos Personalizados](https://docs.openlit.io/latest/features/pricing) | ✅ Concluído |
| [Implementação de Guardrails em Tempo Real](https://docs.openlit.io/latest/features/guardrails) | ✅ Concluído |
| [Avaliação Programática para Respostas de LLM](https://docs.openlit.io/latest/features/evaluations) | ✅ Concluído |
| [Fleet Hub para Gerenciamento OpAMP](https://docs.openlit.io/latest/openlit/observability/fleet-hub) | ✅ Concluído |
| [Métricas de Autoavaliação Baseadas no Uso](https://github.com/openlit/openlit/issues/470) | 🔜 Em Breve |
| [Feedback Humano para Eventos de LLM](https://github.com/openlit/openlit/issues/471) | 🔜 Em Breve |
| [Geração de Datasets Baseada em Eventos de LLM](https://github.com/openlit/openlit/issues/472) | 🔜 Em Breve |
| [Busca sobre Traces]() | 🔜 Em Breve |
## 🌱 Contribuindo
Seja grande ou pequena, adoramos contribuições 💚. Confira nosso [guia de Contribuição](https://github.com/pvharmo2/gha-lab-6c3094af9e/blob/main/CONTRIBUTING.md) para começar
Não sabe por onde começar? Aqui estão algumas maneiras de se envolver:
- Junte-se à nossa comunidade no [Slack](https://join.slack.com/t/openlit/shared_invite/zt-2etnfttwg-TjP_7BZXfYg84oAukY8QRQ) ou [Discord](https://discord.gg/rjvTm6zd) para discutir ideias, compartilhar feedback e se conectar tanto com nossa equipe quanto com a comunidade OpenLIT em geral.
Sua contribuição nos ajuda a crescer e melhorar, e estamos aqui para apoiá-lo em cada etapa do caminho.
[](https://www.producthunt.com/posts/openlit?embed=true&utm_source=badge-featured&utm_medium=badge&utm_souce=badge-openlit)
<a href="https://fazier.com/launches/openlit-2" target="_blank" rel="noopener noreferrer"><img src="https://fazier.com/api/v1/public/badges/embed_image.svg?launch_id=779&badge_type=daily" width="270" alt="Example Image" class="d-inline-block mt-3 p-3 rounded img-fluid" /></a>
## 💚 Comunidade & Suporte
Conecte-se com a comunidade e os mantenedores do OpenLIT para suporte, discussões e atualizações:
- 🌟 Se você gostou, deixe uma estrela no nosso [GitHub](https://github.com/openlit/openlit/).
- 🌍 Junte-se à nossa comunidade no [Slack](https://join.slack.com/t/openlit/shared_invite/zt-2etnfttwg-TjP_7BZXfYg84oAukY8QRQ) ou [Discord](https://discord.gg/CQnXwNT3) para interações ao vivo e perguntas.
- 🐞 Reporte bugs nas nossas [Issues do GitHub](https://github.com/openlit/openlit/issues) para nos ajudar a melhorar o OpenLIT.
- 𝕏 Siga-nos no [X](https://twitter.com/openlit_io) para as últimas atualizações e novidades.
## Licença
O OpenLIT está disponível sob a licença [Apache-2.0](https://github.com/pvharmo2/gha-lab-6c3094af9e/blob/main/LICENSE).
## 🙇♂️ Agradecimentos
<p>Este projeto é orgulhosamente apoiado por:</p>
<p>
<a href="https://www.testmuai.com/?utm_medium=sponsor&utm_source=openlit" target="_blank">
<img src="https://assets.kitploit.com/production/public/readmes/54232/59e406ce9676e24c2e228a1804d1810579038817584ead02e904e630264533c7/3ca662f501e7be9fcc4af3ff06d2755ca0712b463591ada282d81325365618bb-display-v1.webp" style={{ verticalAlign: 'middle' }} height="80" />
</a>
<a href="https://www.digitalocean.com/">
<img src="https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/SVG/DO_Logo_horizontal_blue.svg" height="80px" width="200px">
</a>
</p>