Merge pull request #16 from invariantlabs-ai/readme-update

Readme update
This commit is contained in:
Hemang Sarkar authored and GitHub committed 2025-03-05 15:07:21 +01:00
commit e6f6e49354
2 files changed
+176 -38

No files matched your search

+116 -38
View File
@@ -1,34 +1,37 @@
# **Invariant Proxy**
# Invariant Gateway
Invariant Proxy is a lightweight Docker service that acts as an intermediary between AI Agents and LLM providers (such as OpenAI and Anthropic). It captures and forwards agent interactions to the [Invariant Explorer](https://explorer.invariantlabs.ai/), enabling seamless debugging, visualization, and exploration of traces.
**LLM proxy to observe and debug what your AI agents are doing.**
![Invariant Proxy Diagram](resources/images/invariant-proxy.png)
[Documentation](https://explorer.invariantlabs.ai/docs/gateway) | [Quickstart for Users](#quickstart-for-users) | [Quickstart for Developers](#quickstart-for-developers)
---
Invariant Gateway is a lightweight _zero-configuration_ service that acts as an intermediary between AI Agents and LLM providers (such as OpenAI and Anthropic).
## **Why Use Invariant Proxy?**
- ✅ **Intercept AI interactions** for better debugging and analysis.
- ✅ **Seamlessly forward API requests** to OpenAI, Anthropic, and other LLM providers (**supports streaming responses too**).
- ✅ **Works with AI Agent platforms and systems** like OpenHands, SWE-agent, etc.
- ✅ **Automatically store and organize traces** in the Invariant Explorer.
Gateway automatically traces agent interactions and stores them in the [Invariant Explorer](https://explorer.invariantlabs.ai/), giving you insights into what your agents are doing.
This enables you to _observe and debug_ your agents in [Invariant Explorer](https://explorer.invariantlabs.ai/).
---
<br/>
<br/>
## **Getting Started**
<div align="center">
<img src="resources/images/overview.svg" alt="Invariant Gateway Diagram" width="80%"/>
</div>
### **Run the Proxy Locally**
To start the Invariant Proxy, run:
<br/>
<br/>
```bash
bash run.sh build && bash run.sh up
```
- [x] **Single Line Setup**: Just change the base URL of your LLM provider to the Invariant Gateway.
- [x] **Intercepts agents on an LLM-level** for better debugging and analysis.
- [x] **Tool Calling and Computer Use Support** to capture all forms of agentic interactions.
- [x] **Seamless forwarding and LLM streaming** to OpenAI, Anthropic, and other LLM providers.
- [x] **Store and organize runtime traces** in the [Invariant Explorer](https://explorer.invariantlabs.ai/).
This will launch the proxy at [http://localhost:8005/api/v1/proxy/](http://localhost:8005/api/v1/proxy/docs/).
## **Quickstart for Teams and Users**
### **Set Up an Invariant API Key**
1. Follow the instructions [here](https://explorer.invariantlabs.ai/docs/explorer/api/client-setup/) to obtain an API key. This allows the proxy to push traces to [Invariant Explorer](https://explorer.invariantlabs.ai).
Looking to observe and secure AI agents in your organization? See our [no-code quickstart guide for users](#quickstart-for-users) to get started.
---
## **Quickstart for Developers**
To add Gateway to your agentic system, follow onf of the integration guides below, depending on the LLM provider.
## **Integration Guides**
@@ -37,7 +40,7 @@ This will launch the proxy at [http://localhost:8005/api/v1/proxy/](http://local
1. Follow [these steps](https://platform.openai.com/docs/quickstart#create-and-export-an-api-key) to obtain an OpenAI API key.
2. **Modify OpenAI Client Setup**
Instead of connecting directly to OpenAI, configure your `OpenAI` client to use the proxy:
Instead of connecting directly to OpenAI, configure your `OpenAI` client to use Gateway:
```python
from httpx import Client
@@ -49,7 +52,7 @@ This will launch the proxy at [http://localhost:8005/api/v1/proxy/](http://local
"Invariant-Authorization": "Bearer your-invariant-api-key"
},
),
base_url="http://localhost:8005/api/v1/proxy/{add-your-dataset-name-here}/openai",
base_url="https://explorer.invariantlabs.ai/api/v1/gateway/{add-your-dataset-name-here}/openai",
)
```
@@ -70,24 +73,77 @@ This will launch the proxy at [http://localhost:8005/api/v1/proxy/](http://local
"Invariant-Authorization": "Bearer your-invariant-api-key"
},
),
base_url="http://localhost:8005/api/v1/proxy/{add-your-dataset-name-here}/anthropic",
base_url="https://explorer.invariantlabs.ai/api/v1/gateway/{add-your-dataset-name-here}/anthropic",
)
```
> **Note:** Do not include the curly braces `{}`. If the dataset does not exist in Invariant Explorer, it will be created before adding traces.
### **🔹 OpenAI Swarm Integration**
Integrating directly with a specific agent framework is also supported, simply by configuring the underlying LLM client.
For instance, [OpenAI Swarm](https://github.com/openai/swarm) relies on OpenAI's Python client, the setup is very similar to the standard OpenAI integration:
```python
from swarm import Swarm, Agent
from openai import OpenAI
from httpx import Client
import os
client = Swarm(
client=OpenAI(
http_client=Client(headers={"Invariant-Authorization": "Bearer " + os.getenv("INVARIANT_API_KEY", "")}),
base_url="https://explorer.invariantlabs.ai/api/v1/proxy/weather-swarm-agent/openai",
)
)
def get_weather():
return "It's sunny."
agent = Agent(
name="Agent A",
instructions="You are a helpful agent.",
functions=[get_weather],
)
response = client.run(
agent=agent,
messages=[{"role": "user", "content": "What's the weather?"}],
)
print(response.messages[-1]["content"])
# Output: "It seems to be sunny."
```
---
## **OpenHands Integration**
## Quickstart for Users
If you are not building an agent yourself but would like to observe and secure AI agents in your organization, you can do so by configuring the agents to use the Gateway.
See below for example integrations with popular agents.
### **OpenHands Integration**
[OpenHands](https://github.com/All-Hands-AI/OpenHands) (formerly OpenDevin) is a platform for software development agents powered by AI.
### **How to Integrate OpenHands with Invariant Proxy**
#### **How to Integrate OpenHands with Invariant Gateway**
#### **Step 1: Modify the API Base**
Enable the `Advanced Options` toggle under settings and update the `Base URL`:
##### **Step 1: Modify the API Base**
Enable the `Advanced Options` toggle under settings and update the `Base URL` to the following
```
https://explorer.invariantlabs.ai/api/v1/gateway/{add-your-dataset-name-here}/openai
```
<img src="./resources/images/openhands-integration.png" height=300/>
#### **Step 2: Adjust the API Key Format**
##### **Step 2: Adjust the API Key Format**
Set the API Key using the following format:
```text
@@ -96,27 +152,30 @@ Set the API Key using the following format:
> **Note:** Do not include the curly braces `{}`.
The Invariant Proxy extracts the `invariant-auth` field from the API key and correctly forwards it to Invariant Explorer while sending the actual API key to OpenAI or Anthropic.
The Invariant Gateway extracts the `invariant-auth` field from the API key and correctly forwards it to Invariant Explorer while sending the actual API key to OpenAI or Anthropic.
---
## **SWE-agent Integration**
### **SWE-agent Integration**
[SWE-agent](https://github.com/SWE-agent/SWE-agent) allows your preferred language model (e.g., GPT-4o or Claude Sonnet 3.5) to autonomously utilize tools for various tasks, such as fixing issues in real GitHub repositories.
### **Using SWE-agent with Invariant Proxy**
SWE-agent does not support custom headers, so you **cannot** pass the Invariant API Key via `Invariant-Authorization`. However, **there is a workaround** using the Invariant Proxy.
#### **Using SWE-agent with Invariant Gateway**
#### **Step 1: Modify the API Base**
SWE-agent does not support custom headers, so you **cannot** pass the Invariant API Key via `Invariant-Authorization`. However, **there is a workaround** using the Invariant Gateway.
##### **Step 1: Modify the API Base**
Run `sweagent` with the following flag:
```bash
--agent.model.api_base=http://localhost:8005/api/v1/proxy/{add-your-dataset-name-here}/openai
--agent.model.api_base=https://explorer.invariantlabs.ai/api/v1/gateway/{add-your-dataset-name-here}/openai
```
> **Note:** Do not include the curly braces `{}`.
#### **Step 2: Adjust the API Key Format**
##### **Step 2: Adjust the API Key Format**
Instead of setting your API Key normally, modify the environment variable as follows:
```bash
@@ -126,19 +185,38 @@ export ANTHROPIC_API_KEY={your-anthropic-api-key}|invariant-auth: {your-invarian
> **Note:** Do not include the curly braces `{}`.
This setup ensures that SWE-agent works seamlessly with Invariant Proxy, maintaining compatibility while enabling full functionality. 🚀
This setup ensures that SWE-agent works seamlessly with Invariant Gateway, maintaining compatibility while enabling full functionality. 🚀
---
## **Run the Gateway Locally**
You can also operate your own instance of the Gateway, to ensure privacy and security.
First, clone this repository. To start the Invariant Gateway, run:
```bash
bash run.sh build && bash run.sh up
```
This will launch Gateway at [http://localhost:8005/api/v1/gateway/](http://localhost:8005/api/v1/gateway/docs/).
### **Set Up an Invariant API Key**
1. Follow the instructions [here](https://explorer.invariantlabs.ai/docs/explorer/api/client-setup/) to obtain an API key. This allows the gateway to push traces to [Invariant Explorer](https://explorer.invariantlabs.ai).
---
## **Development**
### **Pushing to Local Explorer**
By default the proxy points to the Production Explorer instance. To point it to your local Explorer instance, modify the `INVARIANT_API_URL` value inside `.env`. Follow instructions in `.env` on how to point to the local instance.
By default Gateway points to the public Explorer instance at `explorer.invariantlabs.ai`. To point it to your local Explorer instance, modify the `INVARIANT_API_URL` value inside `.env`. Follow instructions in `.env` on how to point to the local instance.
### **Run Tests**
To run tests, execute:
```bash
./run.sh tests
```
+60
View File
@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="975px" height="417px" viewBox="0 0 975 417" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Group 10</title>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Group-10">
<rect id="Rectangle-Copy-4" fill="#8993FE" x="0" y="5" width="175" height="175" rx="30"></rect>
<path d="M54.4678228,103 L56.2573418,97.9154937 L65.2049367,97.9154937 L66.9944557,103 L69.6361266,103 L62.1655949,82.6903797 L59.3250886,82.6903797 L51.8261519,103 L54.4678228,103 Z M64.3811899,95.6430886 L57.1094937,95.6430886 L60.7169367,85.048 L60.7737468,85.048 L64.3811899,95.6430886 Z M77.6463544,108.027696 C81.6230633,108.027696 84.0658987,106.067747 84.0658987,102.204658 L84.0658987,88.5134177 L81.7934937,88.5134177 L81.7934937,90.3029367 L81.7366835,90.3029367 C80.8845316,89.1951392 79.5210886,88.1157468 77.1350633,88.1157468 C73.5560253,88.1157468 70.6587089,90.416557 70.6587089,95.1886076 C70.6587089,99.9606582 73.5560253,102.261468 77.1350633,102.261468 C79.5210886,102.261468 80.8845316,101.238886 81.7366835,99.9890633 L81.7934937,99.9890633 L81.7934937,102.176253 C81.7934937,104.874734 80.2312152,106.039342 77.5327342,106.039342 C74.8342532,106.039342 73.6412405,104.931544 73.3571899,103.454481 L71.0847848,103.454481 C71.3120253,105.925722 73.6696456,108.027696 77.6463544,108.027696 Z M77.4191139,100.273114 C74.4365823,100.273114 72.9311139,98.0291139 72.9311139,95.1886076 C72.9311139,92.3481013 74.4365823,90.1041013 77.4191139,90.1041013 C80.1175949,90.1041013 81.7934937,91.78 81.7934937,95.1886076 C81.7934937,98.5972152 80.1175949,100.273114 77.4191139,100.273114 Z M93.4395696,103.397671 C97.0470127,103.397671 99.1205823,101.238886 99.8591139,98.5404051 L97.5867089,98.5404051 C97.3310633,99.5345823 96.2516709,101.409316 93.3543544,101.409316 C90.2013924,101.409316 88.6391139,98.966481 88.6391139,96.3532152 L100.086354,96.3532152 C100.086354,91.2118987 97.8707595,88.1157468 93.3259494,88.1157468 C89.0935949,88.1157468 86.3667089,90.9278481 86.3667089,95.7567089 C86.3667089,100.301519 89.0367848,103.397671 93.4395696,103.397671 Z M97.8139494,94.3648608 L88.6391139,94.3648608 C88.6391139,92.0356456 90.5990633,90.1041013 93.3259494,90.1041013 C96.0528354,90.1041013 97.8139494,92.0356456 97.8139494,94.3648608 Z M104.602759,103 L104.602759,93.9671899 C104.602759,91.7231899 106.307063,90.1041013 108.863519,90.1041013 C111.135924,90.1041013 112.016481,91.5811646 112.016481,93.4558987 L112.016481,103 L114.288886,103 L114.288886,92.8877975 C114.288886,89.5644051 112.073291,88.1157468 109.43162,88.1157468 C106.96038,88.1157468 105.426506,89.2235443 104.65957,90.2461266 L104.602759,90.2461266 L104.602759,88.5134177 L102.330354,88.5134177 L102.330354,103 L104.602759,103 Z M121.929848,103.17043 C122.526354,103.17043 123.122861,103.11362 123.634152,103 L123.634152,101.011646 C121.702608,101.153671 120.793646,100.86962 120.793646,99.2221266 L120.793646,90.5017722 L123.634152,90.5017722 L123.634152,88.5134177 L120.793646,88.5134177 L120.793646,83.684557 L118.521241,83.684557 L118.521241,88.5134177 L116.390861,88.5134177 L116.390861,90.5017722 L118.521241,90.5017722 L118.521241,99.4493671 C118.521241,102.403494 119.998304,103.17043 121.929848,103.17043 Z" id="Agent" fill="#FFFFFF" fill-rule="nonzero"></path>
<rect id="Rectangle-Copy-6" fill="#3D39FF" x="402" y="0" width="175" height="175" rx="30"></rect>
<rect id="Rectangle-Copy-7" fill="#7F7B8C" x="385" y="351" width="209" height="64" rx="32"></rect>
<path d="M453.291924,394 L453.291924,391.727595 L441.162962,391.727595 L441.162962,384.626329 L451.58762,384.626329 L451.58762,382.353924 L441.162962,382.353924 L441.162962,375.962785 L452.951063,375.962785 L452.951063,373.69038 L438.606506,373.69038 L438.606506,394 L453.291924,394 Z M457.240228,394 L461.472582,388.091747 L461.529392,388.091747 L465.790152,394 L468.488633,394 L462.86443,386.586278 L467.977342,379.513418 L465.278861,379.513418 L461.529392,385.052405 L461.472582,385.052405 L457.723114,379.513418 L455.024633,379.513418 L460.137544,386.586278 L454.541747,394 L457.240228,394 Z M472.493747,398.885671 L472.493747,392.125266 L472.550557,392.125266 C473.402709,393.375089 474.766152,394.397671 477.152177,394.397671 C480.731215,394.397671 483.628532,391.528759 483.628532,386.756709 C483.628532,381.984658 480.731215,379.115747 477.152177,379.115747 C474.766152,379.115747 473.402709,380.195139 472.550557,381.302937 L472.493747,381.302937 L472.493747,379.513418 L470.221342,379.513418 L470.221342,398.885671 L472.493747,398.885671 Z M476.868127,392.409316 C474.169646,392.409316 472.493747,390.165316 472.493747,386.756709 C472.493747,383.348101 474.169646,381.104101 476.868127,381.104101 C479.850658,381.104101 481.356127,383.916203 481.356127,386.756709 C481.356127,389.597215 479.850658,392.409316 476.868127,392.409316 Z M488.372177,394 L488.372177,373.69038 L486.099772,373.69038 L486.099772,394 L488.372177,394 Z M497.859468,394.397671 C502.262253,394.397671 504.932329,391.273114 504.932329,386.756709 C504.932329,382.240304 502.262253,379.115747 497.859468,379.115747 C493.428278,379.115747 490.758203,382.240304 490.758203,386.756709 C490.758203,391.273114 493.428278,394.397671 497.859468,394.397671 Z M497.859468,392.409316 C494.592886,392.409316 493.030608,389.852861 493.030608,386.756709 C493.030608,383.660557 494.592886,381.104101 497.859468,381.104101 C501.097646,381.104101 502.659924,383.660557 502.659924,386.756709 C502.659924,389.852861 501.097646,392.409316 497.859468,392.409316 Z M509.505544,394 L509.505544,386.273823 C509.505544,383.177671 511.692734,380.962076 514.845696,381.473367 L514.902506,381.473367 L514.902506,379.200962 C514.504835,379.144152 514.107165,379.115747 513.567468,379.115747 C511.493899,379.115747 510.329291,380.47919 509.562354,382.382329 L509.505544,382.382329 L509.505544,379.513418 L507.233139,379.513418 L507.233139,394 L509.505544,394 Z M523.22519,394.397671 C526.832633,394.397671 528.906203,392.238886 529.644734,389.540405 L527.372329,389.540405 C527.116684,390.534582 526.037291,392.409316 523.139975,392.409316 C519.987013,392.409316 518.424734,389.966481 518.424734,387.353215 L529.871975,387.353215 C529.871975,382.211899 527.65638,379.115747 523.11157,379.115747 C518.879215,379.115747 516.152329,381.927848 516.152329,386.756709 C516.152329,391.301519 518.822405,394.397671 523.22519,394.397671 Z M527.59957,385.364861 L518.424734,385.364861 C518.424734,383.035646 520.384684,381.104101 523.11157,381.104101 C525.838456,381.104101 527.59957,383.035646 527.59957,385.364861 Z M534.38838,394 L534.38838,386.273823 C534.38838,383.177671 536.57557,380.962076 539.728532,381.473367 L539.785342,381.473367 L539.785342,379.200962 C539.387671,379.144152 538.99,379.115747 538.450304,379.115747 C536.376734,379.115747 535.212127,380.47919 534.44519,382.382329 L534.38838,382.382329 L534.38838,379.513418 L532.115975,379.513418 L532.115975,394 L534.38838,394 Z" id="Explorer" fill="#FFFFFF" fill-rule="nonzero"></path>
<rect id="Rectangle-Copy-5" fill="#FF4572" x="800" y="5" width="175" height="175" rx="30"></rect>
<path d="M875.086987,86 L875.086987,83.7275949 L864.435089,83.7275949 L864.435089,65.6903797 L861.878633,65.6903797 L861.878633,86 L875.086987,86 Z M890.823392,86 L890.823392,83.7275949 L880.171494,83.7275949 L880.171494,65.6903797 L877.615038,65.6903797 L877.615038,86 L890.823392,86 Z M895.907899,86 L895.907899,69.2978228 L895.964709,69.2978228 L902.100203,86 L904.372608,86 L910.508101,69.2978228 L910.564911,69.2978228 L910.564911,86 L913.121367,86 L913.121367,65.6903797 L909.627544,65.6903797 L903.26481,82.5629873 L903.208,82.5629873 L896.845266,65.6903797 L893.351443,65.6903797 L893.351443,86 L895.907899,86 Z M840.873089,120.964869 L840.873089,112.471755 L846.383671,112.471755 C850.104734,112.471755 852.973646,110.824261 852.973646,106.563502 C852.973646,102.302742 850.104734,100.655249 846.383671,100.655249 L838.316633,100.655249 L838.316633,120.964869 L840.873089,120.964869 Z M846.667722,110.19935 L840.873089,110.19935 L840.873089,102.927654 L846.667722,102.927654 C849.195772,102.927654 850.41719,104.092261 850.41719,106.563502 C850.41719,109.034742 849.195772,110.19935 846.667722,110.19935 Z M857.37643,120.964869 L857.37643,113.238692 C857.37643,110.14254 859.56362,107.926945 862.716582,108.438236 L862.773392,108.438236 L862.773392,106.165831 C862.375722,106.109021 861.978051,106.080616 861.438354,106.080616 C859.364785,106.080616 858.200177,107.444059 857.433241,109.347198 L857.37643,109.347198 L857.37643,106.478287 L855.104025,106.478287 L855.104025,120.964869 L857.37643,120.964869 Z M871.124481,121.36254 C875.527266,121.36254 878.197342,118.237983 878.197342,113.721578 C878.197342,109.205173 875.527266,106.080616 871.124481,106.080616 C866.693291,106.080616 864.023215,109.205173 864.023215,113.721578 C864.023215,118.237983 866.693291,121.36254 871.124481,121.36254 Z M871.124481,119.374185 C867.857899,119.374185 866.29562,116.81773 866.29562,113.721578 C866.29562,110.625426 867.857899,108.06897 871.124481,108.06897 C874.362658,108.06897 875.924937,110.625426 875.924937,113.721578 C875.924937,116.81773 874.362658,119.374185 871.124481,119.374185 Z M886.775671,120.964869 L891.973797,106.478287 L889.502557,106.478287 L885.497443,118.692464 L885.469038,118.692464 L881.463924,106.478287 L878.992684,106.478287 L884.19081,120.964869 L886.775671,120.964869 Z M895.013139,103.666185 C895.666456,103.666185 896.433392,103.183299 896.433392,102.302742 C896.433392,101.422185 895.666456,100.939299 895.013139,100.939299 C894.388228,100.939299 893.592886,101.422185 893.592886,102.302742 C893.592886,103.183299 894.388228,103.666185 895.013139,103.666185 Z M896.149342,120.964869 L896.149342,106.478287 L893.876937,106.478287 L893.876937,120.964869 L896.149342,120.964869 Z M905.267367,121.36254 C907.596582,121.36254 908.960025,120.283147 909.812177,119.17535 L909.868987,119.17535 L909.868987,120.964869 L912.141392,120.964869 L912.141392,100.655249 L909.868987,100.655249 L909.868987,108.353021 L909.812177,108.353021 C908.960025,107.103198 907.596582,106.080616 905.267367,106.080616 C901.631519,106.080616 898.734203,108.949527 898.734203,113.721578 C898.734203,118.493628 901.631519,121.36254 905.267367,121.36254 Z M905.494608,119.374185 C902.512076,119.374185 901.006608,116.562084 901.006608,113.721578 C901.006608,110.881071 902.512076,108.06897 905.494608,108.06897 C908.193089,108.06897 909.868987,110.31297 909.868987,113.721578 C909.868987,117.130185 908.193089,119.374185 905.494608,119.374185 Z M921.515063,121.36254 C925.122506,121.36254 927.196076,119.203755 927.934608,116.505274 L925.662203,116.505274 C925.406557,117.499451 924.327165,119.374185 921.429848,119.374185 C918.276886,119.374185 916.714608,116.93135 916.714608,114.318084 L928.161848,114.318084 C928.161848,109.176768 925.946253,106.080616 921.401443,106.080616 C917.169089,106.080616 914.442203,108.892717 914.442203,113.721578 C914.442203,118.266388 917.112278,121.36254 921.515063,121.36254 Z M925.889443,112.32973 L916.714608,112.32973 C916.714608,110.000515 918.674557,108.06897 921.401443,108.06897 C924.128329,108.06897 925.889443,110.000515 925.889443,112.32973 Z M932.678253,120.964869 L932.678253,113.238692 C932.678253,110.14254 934.865443,107.926945 938.018405,108.438236 L938.075215,108.438236 L938.075215,106.165831 C937.677544,106.109021 937.279873,106.080616 936.740177,106.080616 C934.666608,106.080616 933.502,107.444059 932.735063,109.347198 L932.678253,109.347198 L932.678253,106.478287 L930.405848,106.478287 L930.405848,120.964869 L932.678253,120.964869 Z" id="LLMProvider" fill="#FFFFFF" fill-rule="nonzero"></path>
<circle id="Oval" fill="#BDB8FF" cx="320.5" cy="56.5" r="30.5"></circle>
<path d="M324.992138,45.4605138 C325.546865,44.8976636 326.417534,44.8507594 327.024918,45.3198013 L327.183605,45.4605138 L332.838259,51.1979713 C335.624499,54.0249004 335.717373,58.5468947 333.116906,61.501991 L332.838284,61.8019674 L327.183609,67.5394827 C326.578454,68.153503 325.5973,68.1535062 324.992142,67.5394897 C324.437413,66.9766412 324.391183,66.0932233 324.853453,65.4769436 L324.992135,65.3159322 L330.643697,59.5815844 C332.243639,57.9489406 332.316364,55.3670434 330.864582,53.6593612 L330.646814,53.4215505 L324.992138,47.6840713 C324.386981,47.0700529 324.386981,46.0745323 324.992138,45.4605138 Z" id="Path" fill="#2F2E6B" fill-rule="nonzero"></path>
<path d="M326.105291,54.9236586 C326.961112,54.9236586 327.654892,55.6275979 327.654892,56.4959511 C327.654892,57.2975079 327.063742,57.9589725 326.29967,58.0559933 L326.105291,58.0682437 L306.549601,58.0682437 C305.69378,58.0682437 305,57.3643043 305,56.4959511 C305,55.6943943 305.59115,55.0329298 306.355223,54.935909 L306.549601,54.9236586 L326.105291,54.9236586 Z" id="Path" fill="#2F2E6B" fill-rule="nonzero"></path>
<circle id="Oval" fill="#BDB8FF" cx="259.5" cy="56.5" r="30.5"></circle>
<path d="M263.992138,45.4605138 C264.546865,44.8976636 265.417534,44.8507594 266.024918,45.3198013 L266.183605,45.4605138 L271.838259,51.1979713 C274.624499,54.0249004 274.717373,58.5468947 272.116906,61.501991 L271.838284,61.8019674 L266.183609,67.5394827 C265.578454,68.153503 264.5973,68.1535062 263.992142,67.5394897 C263.437413,66.9766412 263.391183,66.0932233 263.853453,65.4769436 L263.992135,65.3159322 L269.643697,59.5815844 C271.243639,57.9489406 271.316364,55.3670434 269.864582,53.6593612 L269.646814,53.4215505 L263.992138,47.6840713 C263.386981,47.0700529 263.386981,46.0745323 263.992138,45.4605138 Z" id="Path" fill="#2F2E6B" fill-rule="nonzero"></path>
<path d="M265.105291,54.9236586 C265.961112,54.9236586 266.654892,55.6275979 266.654892,56.4959511 C266.654892,57.2975079 266.063742,57.9589725 265.29967,58.0559933 L265.105291,58.0682437 L245.549601,58.0682437 C244.69378,58.0682437 244,57.3643043 244,56.4959511 C244,55.6943943 244.59115,55.0329298 245.355223,54.935909 L245.549601,54.9236586 L265.105291,54.9236586 Z" id="Path" fill="#2F2E6B" fill-rule="nonzero"></path>
<circle id="Oval" fill="#BDB8FF" transform="translate(320.500000, 128.500000) rotate(180.000000) translate(-320.500000, -128.500000) " cx="320.5" cy="128.5" r="30.5"></circle>
<path d="M306.453868,117.460514 C307.008595,116.897664 307.879263,116.850759 308.486647,117.319801 L308.645335,117.460514 L314.299989,123.197971 C317.086228,126.0249 317.179103,130.546895 314.578635,133.501991 L314.300014,133.801967 L308.645338,139.539483 C308.040183,140.153503 307.05903,140.153506 306.453871,139.53949 C305.899142,138.976641 305.852912,138.093223 306.315183,137.476944 L306.453864,137.315932 L312.105427,131.581584 C313.705369,129.948941 313.778093,127.367043 312.326311,125.659361 L312.108543,125.421551 L306.453868,119.684071 C305.848711,119.070053 305.848711,118.074532 306.453868,117.460514 Z" id="Path" fill="#2F2E6B" fill-rule="nonzero" transform="translate(311.230865, 128.500000) rotate(180.000000) translate(-311.230865, -128.500000) "></path>
<path d="M334.450399,126.931756 C335.30622,126.931756 336,127.635696 336,128.504049 C336,129.305606 335.40885,129.96707 334.644777,130.064091 L334.450399,130.076341 L314.894709,130.076341 C314.038888,130.076341 313.345108,129.372402 313.345108,128.504049 C313.345108,127.702492 313.936258,127.041028 314.70033,126.944007 L314.894709,126.931756 L334.450399,126.931756 Z" id="Path" fill="#2F2E6B" fill-rule="nonzero" transform="translate(324.672554, 128.504049) rotate(180.000000) translate(-324.672554, -128.504049) "></path>
<circle id="Oval" fill="#BDB8FF" transform="translate(259.500000, 128.500000) rotate(180.000000) translate(-259.500000, -128.500000) " cx="259.5" cy="128.5" r="30.5"></circle>
<path d="M245.453868,117.460514 C246.008595,116.897664 246.879263,116.850759 247.486647,117.319801 L247.645335,117.460514 L253.299989,123.197971 C256.086228,126.0249 256.179103,130.546895 253.578635,133.501991 L253.300014,133.801967 L247.645338,139.539483 C247.040183,140.153503 246.05903,140.153506 245.453871,139.53949 C244.899142,138.976641 244.852912,138.093223 245.315183,137.476944 L245.453864,137.315932 L251.105427,131.581584 C252.705369,129.948941 252.778093,127.367043 251.326311,125.659361 L251.108543,125.421551 L245.453868,119.684071 C244.848711,119.070053 244.848711,118.074532 245.453868,117.460514 Z" id="Path" fill="#2F2E6B" fill-rule="nonzero" transform="translate(250.230865, 128.500000) rotate(180.000000) translate(-250.230865, -128.500000) "></path>
<path d="M273.450399,126.931756 C274.30622,126.931756 275,127.635696 275,128.504049 C275,129.305606 274.40885,129.96707 273.644777,130.064091 L273.450399,130.076341 L253.894709,130.076341 C253.038888,130.076341 252.345108,129.372402 252.345108,128.504049 C252.345108,127.702492 252.936258,127.041028 253.70033,126.944007 L253.894709,126.931756 L273.450399,126.931756 Z" id="Path" fill="#2F2E6B" fill-rule="nonzero" transform="translate(263.672554, 128.504049) rotate(180.000000) translate(-263.672554, -128.504049) "></path>
<circle id="Oval" fill="#BDB8FF" cx="719.5" cy="56.5" r="30.5"></circle>
<path d="M723.992138,45.4605138 C724.546865,44.8976636 725.417534,44.8507594 726.024918,45.3198013 L726.183605,45.4605138 L731.838259,51.1979713 C734.624499,54.0249004 734.717373,58.5468947 732.116906,61.501991 L731.838284,61.8019674 L726.183609,67.5394827 C725.578454,68.153503 724.5973,68.1535062 723.992142,67.5394897 C723.437413,66.9766412 723.391183,66.0932233 723.853453,65.4769436 L723.992135,65.3159322 L729.643697,59.5815844 C731.243639,57.9489406 731.316364,55.3670434 729.864582,53.6593612 L729.646814,53.4215505 L723.992138,47.6840713 C723.386981,47.0700529 723.386981,46.0745323 723.992138,45.4605138 Z" id="Path" fill="#2F2E6B" fill-rule="nonzero"></path>
<path d="M725.105291,54.9236586 C725.961112,54.9236586 726.654892,55.6275979 726.654892,56.4959511 C726.654892,57.2975079 726.063742,57.9589725 725.29967,58.0559933 L725.105291,58.0682437 L705.549601,58.0682437 C704.69378,58.0682437 704,57.3643043 704,56.4959511 C704,55.6943943 704.59115,55.0329298 705.355223,54.935909 L705.549601,54.9236586 L725.105291,54.9236586 Z" id="Path" fill="#2F2E6B" fill-rule="nonzero"></path>
<circle id="Oval" fill="#BDB8FF" cx="658.5" cy="56.5" r="30.5"></circle>
<path d="M662.992138,45.4605138 C663.546865,44.8976636 664.417534,44.8507594 665.024918,45.3198013 L665.183605,45.4605138 L670.838259,51.1979713 C673.624499,54.0249004 673.717373,58.5468947 671.116906,61.501991 L670.838284,61.8019674 L665.183609,67.5394827 C664.578454,68.153503 663.5973,68.1535062 662.992142,67.5394897 C662.437413,66.9766412 662.391183,66.0932233 662.853453,65.4769436 L662.992135,65.3159322 L668.643697,59.5815844 C670.243639,57.9489406 670.316364,55.3670434 668.864582,53.6593612 L668.646814,53.4215505 L662.992138,47.6840713 C662.386981,47.0700529 662.386981,46.0745323 662.992138,45.4605138 Z" id="Path" fill="#2F2E6B" fill-rule="nonzero"></path>
<path d="M664.105291,54.9236586 C664.961112,54.9236586 665.654892,55.6275979 665.654892,56.4959511 C665.654892,57.2975079 665.063742,57.9589725 664.29967,58.0559933 L664.105291,58.0682437 L644.549601,58.0682437 C643.69378,58.0682437 643,57.3643043 643,56.4959511 C643,55.6943943 643.59115,55.0329298 644.355223,54.935909 L644.549601,54.9236586 L664.105291,54.9236586 Z" id="Path" fill="#2F2E6B" fill-rule="nonzero"></path>
<circle id="Oval" fill="#BDB8FF" transform="translate(719.500000, 128.500000) rotate(180.000000) translate(-719.500000, -128.500000) " cx="719.5" cy="128.5" r="30.5"></circle>
<path d="M705.453868,117.460514 C706.008595,116.897664 706.879263,116.850759 707.486647,117.319801 L707.645335,117.460514 L713.299989,123.197971 C716.086228,126.0249 716.179103,130.546895 713.578635,133.501991 L713.300014,133.801967 L707.645338,139.539483 C707.040183,140.153503 706.05903,140.153506 705.453871,139.53949 C704.899142,138.976641 704.852912,138.093223 705.315183,137.476944 L705.453864,137.315932 L711.105427,131.581584 C712.705369,129.948941 712.778093,127.367043 711.326311,125.659361 L711.108543,125.421551 L705.453868,119.684071 C704.848711,119.070053 704.848711,118.074532 705.453868,117.460514 Z" id="Path" fill="#2F2E6B" fill-rule="nonzero" transform="translate(710.230865, 128.500000) rotate(180.000000) translate(-710.230865, -128.500000) "></path>
<path d="M733.450399,126.931756 C734.30622,126.931756 735,127.635696 735,128.504049 C735,129.305606 734.40885,129.96707 733.644777,130.064091 L733.450399,130.076341 L713.894709,130.076341 C713.038888,130.076341 712.345108,129.372402 712.345108,128.504049 C712.345108,127.702492 712.936258,127.041028 713.70033,126.944007 L713.894709,126.931756 L733.450399,126.931756 Z" id="Path" fill="#2F2E6B" fill-rule="nonzero" transform="translate(723.672554, 128.504049) rotate(180.000000) translate(-723.672554, -128.504049) "></path>
<circle id="Oval" fill="#BDB8FF" transform="translate(658.500000, 128.500000) rotate(180.000000) translate(-658.500000, -128.500000) " cx="658.5" cy="128.5" r="30.5"></circle>
<path d="M644.453868,117.460514 C645.008595,116.897664 645.879263,116.850759 646.486647,117.319801 L646.645335,117.460514 L652.299989,123.197971 C655.086228,126.0249 655.179103,130.546895 652.578635,133.501991 L652.300014,133.801967 L646.645338,139.539483 C646.040183,140.153503 645.05903,140.153506 644.453871,139.53949 C643.899142,138.976641 643.852912,138.093223 644.315183,137.476944 L644.453864,137.315932 L650.105427,131.581584 C651.705369,129.948941 651.778093,127.367043 650.326311,125.659361 L650.108543,125.421551 L644.453868,119.684071 C643.848711,119.070053 643.848711,118.074532 644.453868,117.460514 Z" id="Path" fill="#2F2E6B" fill-rule="nonzero" transform="translate(649.230865, 128.500000) rotate(180.000000) translate(-649.230865, -128.500000) "></path>
<path d="M672.450399,126.931756 C673.30622,126.931756 674,127.635696 674,128.504049 C674,129.305606 673.40885,129.96707 672.644777,130.064091 L672.450399,130.076341 L652.894709,130.076341 C652.038888,130.076341 651.345108,129.372402 651.345108,128.504049 C651.345108,127.702492 651.936258,127.041028 652.70033,126.944007 L652.894709,126.931756 L672.450399,126.931756 Z" id="Path" fill="#2F2E6B" fill-rule="nonzero" transform="translate(662.672554, 128.504049) rotate(180.000000) translate(-662.672554, -128.504049) "></path>
<circle id="Oval" fill="#BDB8FF" transform="translate(489.000000, 234.000000) rotate(90.000000) translate(-489.000000, -234.000000) " cx="489" cy="234" r="30.5"></circle>
<path d="M484.223003,232.229649 C484.77773,231.666799 485.648399,231.619895 486.255783,232.088936 L486.41447,232.229649 L492.069124,237.967107 C494.855364,240.794036 494.948238,245.31603 492.347771,248.271126 L492.069149,248.571103 L486.414473,254.308618 C485.809318,254.922638 484.828165,254.922641 484.223006,254.308625 C483.668277,253.745776 483.622047,252.862359 484.084318,252.246079 L484.222999,252.085067 L489.874562,246.35072 C491.474504,244.718076 491.547229,242.136179 490.095446,240.428496 L489.877679,240.190686 L484.223003,234.453207 C483.617846,233.839188 483.617846,232.843667 484.223003,232.229649 Z" id="Path" fill="#2F2E6B" fill-rule="nonzero" transform="translate(489.000000, 243.269135) rotate(90.000000) translate(-489.000000, -243.269135) "></path>
<path d="M498.781894,228.255153 C499.637715,228.255153 500.331495,228.959093 500.331495,229.827446 C500.331495,230.629003 499.740345,231.290467 498.976272,231.387488 L498.781894,231.399739 L479.226204,231.399739 C478.370383,231.399739 477.676603,230.695799 477.676603,229.827446 C477.676603,229.025889 478.267753,228.364425 479.031825,228.267404 L479.226204,228.255153 L498.781894,228.255153 Z" id="Path" fill="#2F2E6B" fill-rule="nonzero" transform="translate(489.004049, 229.827446) rotate(90.000000) translate(-489.004049, -229.827446) "></path>
<circle id="Oval" fill="#BDB8FF" transform="translate(489.000000, 295.000000) rotate(90.000000) translate(-489.000000, -295.000000) " cx="489" cy="295" r="30.5"></circle>
<path d="M484.223003,293.229649 C484.77773,292.666799 485.648399,292.619895 486.255783,293.088936 L486.41447,293.229649 L492.069124,298.967107 C494.855364,301.794036 494.948238,306.31603 492.347771,309.271126 L492.069149,309.571103 L486.414473,315.308618 C485.809318,315.922638 484.828165,315.922641 484.223006,315.308625 C483.668277,314.745776 483.622047,313.862359 484.084318,313.246079 L484.222999,313.085067 L489.874562,307.35072 C491.474504,305.718076 491.547229,303.136179 490.095446,301.428496 L489.877679,301.190686 L484.223003,295.453207 C483.617846,294.839188 483.617846,293.843667 484.223003,293.229649 Z" id="Path" fill="#2F2E6B" fill-rule="nonzero" transform="translate(489.000000, 304.269135) rotate(90.000000) translate(-489.000000, -304.269135) "></path>
<path d="M498.781894,289.255153 C499.637715,289.255153 500.331495,289.959093 500.331495,290.827446 C500.331495,291.629003 499.740345,292.290467 498.976272,292.387488 L498.781894,292.399739 L479.226204,292.399739 C478.370383,292.399739 477.676603,291.695799 477.676603,290.827446 C477.676603,290.025889 478.267753,289.364425 479.031825,289.267404 L479.226204,289.255153 L498.781894,289.255153 Z" id="Path" fill="#2F2E6B" fill-rule="nonzero" transform="translate(489.004049, 290.827446) rotate(90.000000) translate(-489.004049, -290.827446) "></path>
<path d="M442.04643,81 L442.04643,60.6903797 L439.489975,60.6903797 L439.489975,81 L442.04643,81 Z M447.841063,81 L447.841063,71.9671899 C447.841063,69.7231899 449.545367,68.1041013 452.101823,68.1041013 C454.374228,68.1041013 455.254785,69.5811646 455.254785,71.4558987 L455.254785,81 L457.52719,81 L457.52719,70.8877975 C457.52719,67.5644051 455.311595,66.1157468 452.669924,66.1157468 C450.198684,66.1157468 448.66481,67.2235443 447.897873,68.2461266 L447.841063,68.2461266 L447.841063,66.5134177 L445.568658,66.5134177 L445.568658,81 L447.841063,81 Z M466.844051,81 L472.042177,66.5134177 L469.570937,66.5134177 L465.565823,78.7275949 L465.537418,78.7275949 L461.532304,66.5134177 L459.061063,66.5134177 L464.25919,81 L466.844051,81 Z M477.552759,81.3976709 C479.938785,81.3976709 481.557873,80.545519 482.466835,79.1820759 L482.523646,79.1820759 C482.921316,80.7727595 483.745063,81.1420253 485.108506,81.1420253 C485.534582,81.1420253 485.847038,81.1136203 486.443544,80.9147848 L486.443544,79.3241013 C484.994886,79.4945316 484.796051,78.8696203 484.796051,77.7334177 L484.796051,70.688962 C484.796051,67.1951392 482.32481,66.1157468 479.569519,66.1157468 C475.36557,66.1157468 473.632861,68.2177215 473.490835,71.0014177 L475.763241,71.0014177 C475.905266,68.899443 476.814228,68.1041013 479.569519,68.1041013 C481.898734,68.1041013 482.523646,69.0698734 482.523646,70.2060759 C482.523646,71.6547342 481.415848,71.9671899 478.973013,72.4216709 C475.223544,73.1317975 472.780709,73.9839494 472.780709,77.2789367 C472.780709,79.7217722 474.627038,81.3976709 477.552759,81.3976709 Z M477.78,79.4093165 C475.905266,79.4093165 475.053114,78.5855696 475.053114,77.1653165 C475.053114,75.4326076 476.359747,74.722481 479.171848,74.1259747 C480.705722,73.813519 482.09757,73.4158481 482.523646,72.9897722 L482.523646,75.4042025 C482.523646,78.1878987 480.478481,79.4093165 477.78,79.4093165 Z M490.420253,81 L490.420253,73.2738228 C490.420253,70.1776709 492.607443,67.9620759 495.760405,68.4733671 L495.817215,68.4733671 L495.817215,66.200962 C495.419544,66.1441519 495.021873,66.1157468 494.482177,66.1157468 C492.408608,66.1157468 491.244,67.4791899 490.477063,69.3823291 L490.420253,69.3823291 L490.420253,66.5134177 L488.147848,66.5134177 L488.147848,81 L490.420253,81 Z M499.311038,63.7013165 C499.964354,63.7013165 500.731291,63.2184304 500.731291,62.3378734 C500.731291,61.4573165 499.964354,60.9744304 499.311038,60.9744304 C498.686127,60.9744304 497.890785,61.4573165 497.890785,62.3378734 C497.890785,63.2184304 498.686127,63.7013165 499.311038,63.7013165 Z M500.447241,81 L500.447241,66.5134177 L498.174835,66.5134177 L498.174835,81 L500.447241,81 Z M507.747342,81.3976709 C510.133367,81.3976709 511.752456,80.545519 512.661418,79.1820759 L512.718228,79.1820759 C513.115899,80.7727595 513.939646,81.1420253 515.303089,81.1420253 C515.729165,81.1420253 516.04162,81.1136203 516.638127,80.9147848 L516.638127,79.3241013 C515.189468,79.4945316 514.990633,78.8696203 514.990633,77.7334177 L514.990633,70.688962 C514.990633,67.1951392 512.519392,66.1157468 509.764101,66.1157468 C505.560152,66.1157468 503.827443,68.2177215 503.685418,71.0014177 L505.957823,71.0014177 C506.099848,68.899443 507.00881,68.1041013 509.764101,68.1041013 C512.093316,68.1041013 512.718228,69.0698734 512.718228,70.2060759 C512.718228,71.6547342 511.61043,71.9671899 509.167595,72.4216709 C505.418127,73.1317975 502.975291,73.9839494 502.975291,77.2789367 C502.975291,79.7217722 504.82162,81.3976709 507.747342,81.3976709 Z M507.974582,79.4093165 C506.099848,79.4093165 505.247696,78.5855696 505.247696,77.1653165 C505.247696,75.4326076 506.554329,74.722481 509.36643,74.1259747 C510.900304,73.813519 512.292152,73.4158481 512.718228,72.9897722 L512.718228,75.4042025 C512.718228,78.1878987 510.673063,79.4093165 507.974582,79.4093165 Z M520.614835,81 L520.614835,71.9671899 C520.614835,69.7231899 522.319139,68.1041013 524.875595,68.1041013 C527.148,68.1041013 528.028557,69.5811646 528.028557,71.4558987 L528.028557,81 L530.300962,81 L530.300962,70.8877975 C530.300962,67.5644051 528.085367,66.1157468 525.443696,66.1157468 C522.972456,66.1157468 521.438582,67.2235443 520.671646,68.2461266 L520.614835,68.2461266 L520.614835,66.5134177 L518.34243,66.5134177 L518.34243,81 L520.614835,81 Z M537.941924,81.1704304 C538.53843,81.1704304 539.134937,81.1136203 539.646228,81 L539.646228,79.0116456 C537.714684,79.1536709 536.805722,78.8696203 536.805722,77.2221266 L536.805722,68.5017722 L539.646228,68.5017722 L539.646228,66.5134177 L536.805722,66.5134177 L536.805722,61.684557 L534.533316,61.684557 L534.533316,66.5134177 L532.402937,66.5134177 L532.402937,68.5017722 L534.533316,68.5017722 L534.533316,77.4493671 C534.533316,80.4034937 536.01038,81.1704304 537.941924,81.1704304 Z M444.972152,116.36254 C448.096709,116.36254 449.999848,115.226337 451.533722,113.095958 L451.590532,113.095958 L452.442684,115.964869 L454.146987,115.964869 L454.146987,105.398185 L444.972152,105.398185 L444.972152,107.67Line truncated
<rect id="Rectangle" fill="#FFFFFF" opacity="0.866792225" x="534" y="223" width="115" height="82" rx="11"></rect>
<path d="M547.210443,248 L548.219937,245.058544 L553.302215,245.058544 L554.311709,248 L556.417721,248 L551.857595,235.55538 L549.681962,235.55538 L545.10443,248 L547.210443,248 Z M552.745253,243.335443 L548.794304,243.335443 L550.761076,237.452532 L550.795886,237.452532 L552.745253,243.335443 Z M561.325949,251.080696 C563.849683,251.080696 565.398734,249.949367 565.398734,247.390823 L565.398734,239.106013 L563.571202,239.106013 L563.571202,240.150317 L563.536392,240.150317 C563.066455,239.523734 562.248417,238.862342 560.838607,238.862342 C558.610759,238.862342 556.939873,240.393987 556.939873,243.213608 C556.939873,246.015823 558.610759,247.564873 560.838607,247.564873 C562.248417,247.564873 563.066455,246.903481 563.536392,246.242089 L563.571202,246.242089 L563.571202,247.321203 C563.571202,248.922468 562.787974,249.618671 561.256329,249.618671 C559.811709,249.618671 559.185126,249.026899 559.011076,248.243671 L557.166139,248.243671 C557.357595,249.740506 558.767405,251.080696 561.325949,251.080696 Z M561.186709,246.068038 C559.585443,246.068038 558.767405,244.849684 558.767405,243.213608 C558.767405,241.560127 559.585443,240.359177 561.186709,240.359177 C562.666139,240.359177 563.553797,241.333861 563.553797,243.213608 C563.553797,245.093354 562.666139,246.068038 561.186709,246.068038 Z M571.125,248.261076 C573.405063,248.261076 574.727848,246.973101 575.180379,245.28481 L573.352848,245.28481 C573.196202,245.824367 572.587025,246.764241 571.072784,246.764241 C569.454114,246.764241 568.496835,245.528481 568.496835,244.031646 L575.31962,244.031646 C575.31962,240.863924 573.90981,238.862342 571.037974,238.862342 C568.357595,238.862342 566.669303,240.672468 566.669303,243.561709 C566.669303,246.346519 568.357595,248.261076 571.125,248.261076 Z M573.492088,242.674051 L568.496835,242.674051 C568.496835,241.299051 569.558544,240.306962 571.037974,240.306962 C572.517405,240.306962 573.492088,241.299051 573.492088,242.674051 Z M578.400316,248 L578.400316,242.587025 C578.400316,241.264241 579.305379,240.411393 580.715189,240.411393 C581.968354,240.411393 582.473101,241.177215 582.473101,242.378165 L582.473101,248 L584.318037,248 L584.318037,241.856013 C584.318037,239.81962 583.012658,238.862342 581.359177,238.862342 C579.827531,238.862342 578.905063,239.558544 578.435126,240.254747 L578.400316,240.254747 L578.400316,239.106013 L576.572784,239.106013 L576.572784,248 L578.400316,248 Z M588.982594,248.121835 C589.469936,248.121835 589.870252,248.06962 590.235759,247.982595 L590.235759,246.48576 C589.052214,246.55538 588.564873,246.433544 588.564873,245.424051 L588.564873,240.602848 L590.235759,240.602848 L590.235759,239.106013 L588.564873,239.106013 L588.564873,236.303798 L586.719936,236.303798 L586.719936,239.106013 L585.431961,239.106013 L585.431961,240.602848 L586.719936,240.602848 L586.719936,245.580696 C586.719936,247.460443 587.520569,248.121835 588.982594,248.121835 Z M600.400316,248 L600.400316,237.313291 L604.36867,237.313291 L604.36867,235.55538 L594.343354,235.55538 L594.343354,237.313291 L598.329113,237.313291 L598.329113,248 L600.400316,248 Z M607.414556,248 L607.414556,243.457279 C607.414556,241.560127 608.824366,240.376582 610.582277,240.672468 L610.617088,240.672468 L610.617088,238.949367 C610.356012,238.914557 610.129746,238.897152 609.816455,238.897152 C608.650315,238.897152 607.919303,239.662975 607.449366,240.776899 L607.414556,240.776899 L607.414556,239.106013 L605.587024,239.106013 L605.587024,248 L607.414556,248 Z M614.20253,248.261076 C615.57753,248.261076 616.587024,247.721519 617.143986,246.938291 L617.178796,246.938291 C617.352847,247.808544 617.805379,248.156646 618.780062,248.156646 C619.128163,248.156646 619.424049,248.121835 619.841771,247.96519 L619.841771,247.094937 C619.128163,247.164557 618.988923,246.833861 618.988923,246.207279 L618.988923,241.977848 C618.988923,239.61076 617.526898,238.862342 615.560125,238.862342 C612.879746,238.862342 611.783227,240.202532 611.696201,241.908228 L613.471518,241.908228 C613.558543,240.759494 614.0981,240.306962 615.560125,240.306962 C616.77848,240.306962 617.161391,240.794304 617.161391,241.438291 C617.161391,242.291139 616.325948,242.46519 614.950948,242.726266 C612.7231,243.161392 611.27848,243.77057 611.27848,245.719937 C611.27848,247.216772 612.392404,248.261076 614.20253,248.261076 Z M614.602847,246.816456 C613.610758,246.816456 613.123417,246.363924 613.123417,245.545886 C613.123417,244.640823 613.784809,244.205696 615.299049,243.875 C616.151898,243.700949 616.865505,243.492089 617.161391,243.283228 L617.161391,244.623418 C617.161391,246.068038 616.117087,246.816456 614.602847,246.816456 Z M624.819619,248.261076 C627.134492,248.261076 628.718353,246.746835 628.857594,244.693038 L627.030062,244.693038 C626.960442,245.685127 626.386075,246.764241 624.819619,246.764241 C623.009492,246.764241 622.261075,245.232595 622.261075,243.561709 C622.261075,241.890823 623.026897,240.359177 624.819619,240.359177 C626.386075,240.359177 626.96Line truncated
<path d="M548.555988,265.149951 C550.494645,265.149951 551.319377,264.111003 551.319377,262.997079 C551.319377,261.251217 550.194742,260.962025 548.470302,260.533593 C547.345667,260.255112 546.520935,260.115872 546.520935,259.098345 C546.520935,258.466407 547.099318,258.048686 548.18111,258.048686 C549.391431,258.048686 549.969815,258.584226 550.109055,259.612464 L551.073028,259.612464 C550.944498,258.027264 549.809153,257.191821 548.18111,257.191821 C546.488802,257.191821 545.556962,257.995132 545.556962,259.205453 C545.556962,260.694255 546.927945,261.090555 548.074002,261.358325 C549.787731,261.754625 550.355404,261.94742 550.355404,262.997079 C550.355404,263.682571 549.884128,264.293087 548.555988,264.293087 C546.949367,264.293087 546.306719,263.479065 546.19961,262.429406 L545.235638,262.429406 C545.342746,264.185979 546.745862,265.149951 548.555988,265.149951 Z M554.650438,265.149951 C556.010711,265.149951 556.7926,264.33593 557.071081,263.318403 L556.214216,263.318403 C556.117819,263.693281 555.710808,264.400195 554.618306,264.400195 C553.429406,264.400195 552.840311,263.479065 552.840311,262.493671 L557.156767,262.493671 C557.156767,260.555015 556.321324,259.387537 554.607595,259.387537 C553.011684,259.387537 551.983447,260.447907 551.983447,262.268744 C551.983447,263.982473 552.990263,265.149951 554.650438,265.149951 Z M556.299902,261.743914 L552.840311,261.743914 C552.840311,260.865628 553.579357,260.137293 554.607595,260.137293 C555.635832,260.137293 556.299902,260.865628 556.299902,261.743914 Z M560.337877,265.149951 C561.687439,265.149951 562.662122,264.228822 562.737098,262.986368 L561.880233,262.986368 C561.83739,263.639727 561.44109,264.400195 560.337877,264.400195 C559.041869,264.400195 558.549172,263.296982 558.549172,262.268744 C558.549172,261.240506 559.041869,260.137293 560.337877,260.137293 C561.430379,260.137293 561.83739,260.908471 561.880233,261.508277 L562.737098,261.508277 C562.608568,260.287244 561.687439,259.387537 560.337877,259.387537 C558.741967,259.387537 557.692307,260.555015 557.692307,262.268744 C557.692307,263.982473 558.741967,265.149951 560.337877,265.149951 Z M565.361246,265.149951 C566.293086,265.149951 566.87147,264.73223 567.160662,264.346641 L567.182083,264.346641 L567.182083,265 L568.038948,265 L568.038948,259.537488 L567.182083,259.537488 L567.182083,262.943525 C567.182083,263.789679 566.539435,264.400195 565.575462,264.400195 C564.718598,264.400195 564.386562,263.843233 564.386562,263.136319 L564.386562,259.537488 L563.529698,259.537488 L563.529698,263.350536 C563.529698,264.6037 564.365141,265.149951 565.361246,265.149951 Z M570.074002,265 L570.074002,262.08666 C570.074002,260.919182 570.898734,260.083739 572.087633,260.276534 L572.109055,260.276534 L572.109055,259.419669 C571.959104,259.398247 571.809152,259.387537 571.605647,259.387537 C570.823758,259.387537 570.384615,259.901655 570.095423,260.61928 L570.074002,260.61928 L570.074002,259.537488 L569.217137,259.537488 L569.217137,265 L570.074002,265 Z M573.426484,258.477118 C573.672833,258.477118 573.962025,258.295034 573.962025,257.962999 C573.962025,257.630964 573.672833,257.44888 573.426484,257.44888 C573.190847,257.44888 572.890944,257.630964 572.890944,257.962999 C572.890944,258.295034 573.190847,258.477118 573.426484,258.477118 Z M573.854917,265 L573.854917,259.537488 L572.998052,259.537488 L572.998052,265 L573.854917,265 Z M576.875365,265.064265 C577.100292,265.064265 577.325219,265.042843 577.518013,265 L577.518013,264.250243 C576.789678,264.303797 576.446932,264.196689 576.446932,263.575463 L576.446932,260.287244 L577.518013,260.287244 L577.518013,259.537488 L576.446932,259.537488 L576.446932,257.716651 L575.590068,257.716651 L575.590068,259.537488 L574.786757,259.537488 L574.786757,260.287244 L575.590068,260.287244 L575.590068,263.661149 C575.590068,264.775073 576.14703,265.064265 576.875365,265.064265 Z M579.188899,266.842259 C580.195715,266.842259 580.474196,266.038948 580.709834,265.449854 L583.04479,259.537488 L582.080817,259.537488 L580.506329,263.993184 L580.484907,263.993184 L578.814021,259.537488 L577.850048,259.537488 L579.917234,264.550146 C580.13145,265.085686 579.906523,265.546251 579.681596,265.7926 C579.392404,266.103213 579.060369,266.135346 578.589094,266.092502 L578.460564,266.092502 L578.460564,266.735151 C578.599805,266.777994 578.846153,266.842259 579.188899,266.842259 Z M588.764361,265.149951 C590.703018,265.149951 591.52775,264.111003 591.52775,262.997079 C591.52775,261.251217 590.403115,260.962025 588.678675,260.533593 C587.55404,260.255112 586.729308,260.115872 586.729308,259.098345 C586.729308,258.466407 587.307692,258.048686 588.389483,258.048686 C589.599805,258.048686 590.178188,258.584226 590.317429,259.612464 L591.281401,259.612464 C591.152872,258.027264 590.017526,257.191821 588.389483,257.191821 C586.697176,257.191821 585.765335,257.995132 585.765335,259.205453 C585.765335,260.694255 587.136319,261.090555 588.282375,261.358325 C589.996104,261.754625 590.56Line truncated
<g id="Group-7" transform="translate(385.000000, 353.000000)"></g>
<g id="Group-8" transform="translate(800.000000, 7.000000)"></g>
<g id="Group-9" transform="translate(229.000000, 28.000000)">
<g id="Group-11"></g>
<g id="Group-6" transform="translate(0.000000, 72.000000)"></g>
</g>
<g id="Group-9-Copy" transform="translate(628.000000, 28.000000)">
<g id="Group-11"></g>
<g id="Group-6" transform="translate(0.000000, 72.000000)"></g>
</g>
<g id="Group-12" transform="translate(542.000000, 236.000000)"></g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 63 KiB