Skip to content

Instantly share code, notes, and snippets.

@yhilpisch
Last active April 7, 2024 09:24
Show Gist options
  • Save yhilpisch/5dfcfbf3ba53e1d8dec8bf8fae4a9404 to your computer and use it in GitHub Desktop.
Save yhilpisch/5dfcfbf3ba53e1d8dec8bf8fae4a9404 to your computer and use it in GitHub Desktop.

AI-Powered Algorithmic Trading with Python

ODSC London 2023 Half-Day Training

Dr. Yves J. Hilpisch
CEO The Python Quants | The AI Machine
Adjunct Professor of Computational Finance

London, 15. June 2023

Short Link

http://bit.ly/odsc_ldn_2023

Slides

You find the slides under https://certificate.tpq.io/odsc_ldn_2023.pdf

Blog Post

Read the blog post that gives you a quick overview and introduction: https://opendatascience.com/ai-powered-algorithmic-trading-with-python/

Abstract

This half-day trading session covers several important Python topics and skills to apply AI and Machine Learning (ML) to Algorithmic Trading. The session shows how to make use of the Oanda trading API (via a demo account) to retrieve data, stream data, place orders, etc. Building on this, a ML-based trading strategy is formulated and backtested. Finally, the trading strategy is transformed into an online trading algorithm and is deployed for real-time trading on the Oanda trading platform.

Session Outline

  1. Module: Setting up the Python and Oanda (paper) trading infrastructure
  2. Module: Financial data logistics and backtesting of an ML-based algorithmic trading strategy
  3. Module: Deployment of the ML-based algorithmic trading strategy in real-time

Background knowledge needed

Basic knowledge of Python and data science packages, such as NumPy, pandas, and matplotlib.

Python Mastery in Finance Program

Certificate Program in Python for Finance: https://certificate.tpq.io

Python for Finance Basics Bootcamp: https://youtube.com/@dyjh

Financial Theory with Python

Our newest book about Financial Theory with Python (https://home.tpq.io/books/ftwp/).

Sign up under https://finpy.pqp.io to access all the Jupyter Notebooks and execute them on our Quant Platform.

Python for Algorithmic Trading

Our recent book about Python for Algorithmic Trading (https://py4at.tpq.io).

Sign up under https://py4at.pqp.io to access all the Jupyter Notebooks and execute them on our Quant Platform.

Artificial Intelligence in Finance

Our recent book about Artificial Intelligence in Finance (https://aiif.tpq.io).

Sign up under https://aiif.pqp.io to access all the Jupyter Notebooks and execute them on our Quant Platform.

Python for Finance (2nd ed.)

Our standard reference book about Python for Finance (http://py4fi.tpq.io).

Sign up under https://py4fi.pqp.io to access all the Jupyter Notebooks and execute them on our Quant Platform.

Further Resources

Python

If you have either Miniconda or Anaconda already installed, there is no need to install anything new.

Otherwise, you might want to install Miniconda for your operating system: https://conda.io/en/master/miniconda.html

Read more about the management of environments under: https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html

Cloud

Use this link to get a 200 USD free credit for 60 days on DigitalOcean when signing up for a new account.

Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<img src='http://hilpisch.com/tpq_logo.png' width=\"350px\" align=\"right\">"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# AI-Powered Algorithmic Trading with Python\n",
"\n",
"**ODSC London 2023**"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Dr. Yves J. Hilpisch | The Python Quants & The AI Machine\n",
"\n",
"https://tpq.io | https://aimachine.io | [@dyjh](http://twitter.com/dyjh)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a href=\"https://home.tpq.io/certificates/pyalgo\" target=\"_blank\"><img src=\"https://hilpisch.com/aiif_cover_shadow.png\" width=\"300px\" align=\"left\"></a>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Case Study: AI-Powered Strategy"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Oanda API "
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import tpqoa\n",
"import numpy as np\n",
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"from pylab import plt\n",
"plt.style.use('seaborn-v0_8')\n",
"%config InlineBackend.figure_format = 'svg'"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"import warnings\n",
"warnings.simplefilter('ignore')"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"oanda = tpqoa.tpqoa('../oanda.cfg')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## The Data "
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"DatetimeIndex: 11435 entries, 2023-06-14 00:00:00 to 2023-06-14 21:57:55\n",
"Data columns (total 6 columns):\n",
" # Column Non-Null Count Dtype \n",
"--- ------ -------------- ----- \n",
" 0 o 11435 non-null float64\n",
" 1 h 11435 non-null float64\n",
" 2 l 11435 non-null float64\n",
" 3 c 11435 non-null float64\n",
" 4 volume 11435 non-null int64 \n",
" 5 complete 11435 non-null bool \n",
"dtypes: bool(1), float64(4), int64(1)\n",
"memory usage: 547.2 KB\n",
"CPU times: user 341 ms, sys: 15.4 ms, total: 356 ms\n",
"Wall time: 1.69 s\n"
]
}
],
"source": [
"%%time\n",
"data = oanda.get_history(\n",
" instrument='BCO_USD',\n",
" start='2023-06-14',\n",
" end='2023-06-15',\n",
" granularity='S5',\n",
" price='M'\n",
")\n",
"data.info()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"data['r'] = np.log(data['c'] / data['c'].shift(1))"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"data['d'] = np.sign(data['r'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## The Strategy "
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"lags = 3"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"cols = list()\n",
"for lag in range(1, lags + 1):\n",
" col = f'lag_{lag}'\n",
" data[col] = data['r'].shift(lag)\n",
" cols.append(col)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>o</th>\n",
" <th>h</th>\n",
" <th>l</th>\n",
" <th>c</th>\n",
" <th>volume</th>\n",
" <th>complete</th>\n",
" <th>r</th>\n",
" <th>d</th>\n",
" <th>lag_1</th>\n",
" <th>lag_2</th>\n",
" <th>lag_3</th>\n",
" </tr>\n",
" <tr>\n",
" <th>time</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2023-06-14 00:00:00</th>\n",
" <td>74.159</td>\n",
" <td>74.164</td>\n",
" <td>74.159</td>\n",
" <td>74.164</td>\n",
" <td>2</td>\n",
" <td>True</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2023-06-14 00:00:05</th>\n",
" <td>74.169</td>\n",
" <td>74.169</td>\n",
" <td>74.139</td>\n",
" <td>74.139</td>\n",
" <td>8</td>\n",
" <td>True</td>\n",
" <td>-0.000337</td>\n",
" <td>-1.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2023-06-14 00:00:10</th>\n",
" <td>74.159</td>\n",
" <td>74.159</td>\n",
" <td>74.134</td>\n",
" <td>74.134</td>\n",
" <td>3</td>\n",
" <td>True</td>\n",
" <td>-0.000067</td>\n",
" <td>-1.0</td>\n",
" <td>-0.000337</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2023-06-14 00:00:15</th>\n",
" <td>74.114</td>\n",
" <td>74.134</td>\n",
" <td>74.114</td>\n",
" <td>74.129</td>\n",
" <td>7</td>\n",
" <td>True</td>\n",
" <td>-0.000067</td>\n",
" <td>-1.0</td>\n",
" <td>-0.000067</td>\n",
" <td>-0.000337</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2023-06-14 00:00:25</th>\n",
" <td>74.124</td>\n",
" <td>74.124</td>\n",
" <td>74.114</td>\n",
" <td>74.114</td>\n",
" <td>2</td>\n",
" <td>True</td>\n",
" <td>-0.000202</td>\n",
" <td>-1.0</td>\n",
" <td>-0.000067</td>\n",
" <td>-0.000067</td>\n",
" <td>-0.000337</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" o h l c volume complete \\\n",
"time \n",
"2023-06-14 00:00:00 74.159 74.164 74.159 74.164 2 True \n",
"2023-06-14 00:00:05 74.169 74.169 74.139 74.139 8 True \n",
"2023-06-14 00:00:10 74.159 74.159 74.134 74.134 3 True \n",
"2023-06-14 00:00:15 74.114 74.134 74.114 74.129 7 True \n",
"2023-06-14 00:00:25 74.124 74.124 74.114 74.114 2 True \n",
"\n",
" r d lag_1 lag_2 lag_3 \n",
"time \n",
"2023-06-14 00:00:00 NaN NaN NaN NaN NaN \n",
"2023-06-14 00:00:05 -0.000337 -1.0 NaN NaN NaN \n",
"2023-06-14 00:00:10 -0.000067 -1.0 -0.000337 NaN NaN \n",
"2023-06-14 00:00:15 -0.000067 -1.0 -0.000067 -0.000337 NaN \n",
"2023-06-14 00:00:25 -0.000202 -1.0 -0.000067 -0.000067 -0.000337 "
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.head()"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"data.dropna(inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"data['d'] = data['d'].astype(int)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Train-Test Split"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"9144"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"split = int(len(data) * 0.8)\n",
"split"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"train = data.iloc[:split].copy()"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"mu, std = train.mean(), train.std()"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"train_ = (train - mu) / std"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"test = data.iloc[split:].copy()"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"test_ = (test - mu) / std"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Training of the Model"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.neural_network import MLPClassifier\n",
"from sklearn.metrics import accuracy_score"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"model = MLPClassifier(hidden_layer_sizes=[24],\n",
" shuffle=False,\n",
" max_iter=500)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>#sk-container-id-1 {color: black;background-color: white;}#sk-container-id-1 pre{padding: 0;}#sk-container-id-1 div.sk-toggleable {background-color: white;}#sk-container-id-1 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-1 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-1 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-1 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-1 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-1 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-1 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-1 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-1 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-1 div.sk-item {position: relative;z-index: 1;}#sk-container-id-1 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-1 div.sk-item::before, #sk-container-id-1 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-1 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-1 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-1 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-1 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-1 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-1 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-1 div.sk-label-container {text-align: center;}#sk-container-id-1 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-1 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>MLPClassifier(hidden_layer_sizes=[24], max_iter=500, shuffle=False)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">MLPClassifier</label><div class=\"sk-toggleable__content\"><pre>MLPClassifier(hidden_layer_sizes=[24], max_iter=500, shuffle=False)</pre></div></div></div></div></div>"
],
"text/plain": [
"MLPClassifier(hidden_layer_sizes=[24], max_iter=500, shuffle=False)"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model.fit(train_[cols], train['d'])"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.43580489938757655"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"accuracy_score(train['d'], model.predict(train_[cols]))"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"490.04375pt\" height=\"335.465312pt\" viewBox=\"0 0 490.04375 335.465312\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">\n",
" <metadata>\n",
" <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
" <cc:Work>\n",
" <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
" <dc:date>2023-06-15T10:37:27.570439</dc:date>\n",
" <dc:format>image/svg+xml</dc:format>\n",
" <dc:creator>\n",
" <cc:Agent>\n",
" <dc:title>Matplotlib v3.6.2, https://matplotlib.org/</dc:title>\n",
" </cc:Agent>\n",
" </dc:creator>\n",
" </cc:Work>\n",
" </rdf:RDF>\n",
" </metadata>\n",
" <defs>\n",
" <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
" </defs>\n",
" <g id=\"figure_1\">\n",
" <g id=\"patch_1\">\n",
" <path d=\"M 0 335.465312 \n",
"L 490.04375 335.465312 \n",
"L 490.04375 0 \n",
"L 0 0 \n",
"z\n",
"\" style=\"fill: #ffffff\"/>\n",
" </g>\n",
" <g id=\"axes_1\">\n",
" <g id=\"patch_2\">\n",
" <path d=\"M 36.44375 312.12 \n",
"L 482.84375 312.12 \n",
"L 482.84375 7.2 \n",
"L 36.44375 7.2 \n",
"z\n",
"\" style=\"fill: #eaeaf2\"/>\n",
" </g>\n",
" <g id=\"matplotlib.axis_1\">\n",
" <g id=\"xtick_1\">\n",
" <g id=\"line2d_1\">\n",
" <path d=\"M 67.433379 312.12 \n",
"L 67.433379 7.2 \n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: none; stroke: #ffffff; stroke-linecap: round\"/>\n",
" </g>\n",
" <g id=\"line2d_2\"/>\n",
" <g id=\"text_1\">\n",
" <!-- −0.004 -->\n",
" <g style=\"fill: #262626\" transform=\"translate(52.002129 326.277812) scale(0.1 -0.1)\">\n",
" <defs>\n",
" <path id=\"ArialMT-2212\" d=\"M 3381 1997 \n",
"L 356 1997 \n",
"L 356 2522 \n",
"L 3381 2522 \n",
"L 3381 1997 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" <path id=\"ArialMT-30\" d=\"M 266 2259 \n",
"Q 266 3072 433 3567 \n",
"Q 600 4063 929 4331 \n",
"Q 1259 4600 1759 4600 \n",
"Q 2128 4600 2406 4451 \n",
"Q 2684 4303 2865 4023 \n",
"Q 3047 3744 3150 3342 \n",
"Q 3253 2941 3253 2259 \n",
"Q 3253 1453 3087 958 \n",
"Q 2922 463 2592 192 \n",
"Q 2263 -78 1759 -78 \n",
"Q 1097 -78 719 397 \n",
"Q 266 969 266 2259 \n",
"z\n",
"M 844 2259 \n",
"Q 844 1131 1108 757 \n",
"Q 1372 384 1759 384 \n",
"Q 2147 384 2411 759 \n",
"Q 2675 1134 2675 2259 \n",
"Q 2675 3391 2411 3762 \n",
"Q 2147 4134 1753 4134 \n",
"Q 1366 4134 1134 3806 \n",
"Q 844 3388 844 2259 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" <path id=\"ArialMT-2e\" d=\"M 581 0 \n",
"L 581 641 \n",
"L 1222 641 \n",
"L 1222 0 \n",
"L 581 0 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" <path id=\"ArialMT-34\" d=\"M 2069 0 \n",
"L 2069 1097 \n",
"L 81 1097 \n",
"L 81 1613 \n",
"L 2172 4581 \n",
"L 2631 4581 \n",
"L 2631 1613 \n",
"L 3250 1613 \n",
"L 3250 1097 \n",
"L 2631 1097 \n",
"L 2631 0 \n",
"L 2069 0 \n",
"z\n",
"M 2069 1613 \n",
"L 2069 3678 \n",
"L 634 1613 \n",
"L 2069 1613 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" </defs>\n",
" <use xlink:href=\"#ArialMT-2212\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"58.398438\"/>\n",
" <use xlink:href=\"#ArialMT-2e\" x=\"114.013672\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"141.796875\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"197.412109\"/>\n",
" <use xlink:href=\"#ArialMT-34\" x=\"253.027344\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"xtick_2\">\n",
" <g id=\"line2d_3\">\n",
" <path d=\"M 137.539562 312.12 \n",
"L 137.539562 7.2 \n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: none; stroke: #ffffff; stroke-linecap: round\"/>\n",
" </g>\n",
" <g id=\"line2d_4\"/>\n",
" <g id=\"text_2\">\n",
" <!-- −0.003 -->\n",
" <g style=\"fill: #262626\" transform=\"translate(122.108312 326.277812) scale(0.1 -0.1)\">\n",
" <defs>\n",
" <path id=\"ArialMT-33\" d=\"M 269 1209 \n",
"L 831 1284 \n",
"Q 928 806 1161 595 \n",
"Q 1394 384 1728 384 \n",
"Q 2125 384 2398 659 \n",
"Q 2672 934 2672 1341 \n",
"Q 2672 1728 2419 1979 \n",
"Q 2166 2231 1775 2231 \n",
"Q 1616 2231 1378 2169 \n",
"L 1441 2663 \n",
"Q 1497 2656 1531 2656 \n",
"Q 1891 2656 2178 2843 \n",
"Q 2466 3031 2466 3422 \n",
"Q 2466 3731 2256 3934 \n",
"Q 2047 4138 1716 4138 \n",
"Q 1388 4138 1169 3931 \n",
"Q 950 3725 888 3313 \n",
"L 325 3413 \n",
"Q 428 3978 793 4289 \n",
"Q 1159 4600 1703 4600 \n",
"Q 2078 4600 2393 4439 \n",
"Q 2709 4278 2876 4000 \n",
"Q 3044 3722 3044 3409 \n",
"Q 3044 3113 2884 2869 \n",
"Q 2725 2625 2413 2481 \n",
"Q 2819 2388 3044 2092 \n",
"Q 3269 1797 3269 1353 \n",
"Q 3269 753 2831 336 \n",
"Q 2394 -81 1725 -81 \n",
"Q 1122 -81 723 278 \n",
"Q 325 638 269 1209 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" </defs>\n",
" <use xlink:href=\"#ArialMT-2212\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"58.398438\"/>\n",
" <use xlink:href=\"#ArialMT-2e\" x=\"114.013672\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"141.796875\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"197.412109\"/>\n",
" <use xlink:href=\"#ArialMT-33\" x=\"253.027344\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"xtick_3\">\n",
" <g id=\"line2d_5\">\n",
" <path d=\"M 207.645745 312.12 \n",
"L 207.645745 7.2 \n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: none; stroke: #ffffff; stroke-linecap: round\"/>\n",
" </g>\n",
" <g id=\"line2d_6\"/>\n",
" <g id=\"text_3\">\n",
" <!-- −0.002 -->\n",
" <g style=\"fill: #262626\" transform=\"translate(192.214495 326.277812) scale(0.1 -0.1)\">\n",
" <defs>\n",
" <path id=\"ArialMT-32\" d=\"M 3222 541 \n",
"L 3222 0 \n",
"L 194 0 \n",
"Q 188 203 259 391 \n",
"Q 375 700 629 1000 \n",
"Q 884 1300 1366 1694 \n",
"Q 2113 2306 2375 2664 \n",
"Q 2638 3022 2638 3341 \n",
"Q 2638 3675 2398 3904 \n",
"Q 2159 4134 1775 4134 \n",
"Q 1369 4134 1125 3890 \n",
"Q 881 3647 878 3216 \n",
"L 300 3275 \n",
"Q 359 3922 746 4261 \n",
"Q 1134 4600 1788 4600 \n",
"Q 2447 4600 2831 4234 \n",
"Q 3216 3869 3216 3328 \n",
"Q 3216 3053 3103 2787 \n",
"Q 2991 2522 2730 2228 \n",
"Q 2469 1934 1863 1422 \n",
"Q 1356 997 1212 845 \n",
"Q 1069 694 975 541 \n",
"L 3222 541 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" </defs>\n",
" <use xlink:href=\"#ArialMT-2212\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"58.398438\"/>\n",
" <use xlink:href=\"#ArialMT-2e\" x=\"114.013672\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"141.796875\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"197.412109\"/>\n",
" <use xlink:href=\"#ArialMT-32\" x=\"253.027344\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"xtick_4\">\n",
" <g id=\"line2d_7\">\n",
" <path d=\"M 277.751927 312.12 \n",
"L 277.751927 7.2 \n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: none; stroke: #ffffff; stroke-linecap: round\"/>\n",
" </g>\n",
" <g id=\"line2d_8\"/>\n",
" <g id=\"text_4\">\n",
" <!-- −0.001 -->\n",
" <g style=\"fill: #262626\" transform=\"translate(262.320677 326.277812) scale(0.1 -0.1)\">\n",
" <defs>\n",
" <path id=\"ArialMT-31\" d=\"M 2384 0 \n",
"L 1822 0 \n",
"L 1822 3584 \n",
"Q 1619 3391 1289 3197 \n",
"Q 959 3003 697 2906 \n",
"L 697 3450 \n",
"Q 1169 3672 1522 3987 \n",
"Q 1875 4303 2022 4600 \n",
"L 2384 4600 \n",
"L 2384 0 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" </defs>\n",
" <use xlink:href=\"#ArialMT-2212\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"58.398438\"/>\n",
" <use xlink:href=\"#ArialMT-2e\" x=\"114.013672\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"141.796875\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"197.412109\"/>\n",
" <use xlink:href=\"#ArialMT-31\" x=\"253.027344\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"xtick_5\">\n",
" <g id=\"line2d_9\">\n",
" <path d=\"M 347.85811 312.12 \n",
"L 347.85811 7.2 \n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: none; stroke: #ffffff; stroke-linecap: round\"/>\n",
" </g>\n",
" <g id=\"line2d_10\"/>\n",
" <g id=\"text_5\">\n",
" <!-- 0.000 -->\n",
" <g style=\"fill: #262626\" transform=\"translate(335.347173 326.277812) scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#ArialMT-30\"/>\n",
" <use xlink:href=\"#ArialMT-2e\" x=\"55.615234\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"83.398438\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"139.013672\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"194.628906\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"xtick_6\">\n",
" <g id=\"line2d_11\">\n",
" <path d=\"M 417.964293 312.12 \n",
"L 417.964293 7.2 \n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: none; stroke: #ffffff; stroke-linecap: round\"/>\n",
" </g>\n",
" <g id=\"line2d_12\"/>\n",
" <g id=\"text_6\">\n",
" <!-- 0.001 -->\n",
" <g style=\"fill: #262626\" transform=\"translate(405.453355 326.277812) scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#ArialMT-30\"/>\n",
" <use xlink:href=\"#ArialMT-2e\" x=\"55.615234\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"83.398438\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"139.013672\"/>\n",
" <use xlink:href=\"#ArialMT-31\" x=\"194.628906\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"matplotlib.axis_2\">\n",
" <g id=\"ytick_1\">\n",
" <g id=\"line2d_13\">\n",
" <path d=\"M 36.44375 312.12 \n",
"L 482.84375 312.12 \n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: none; stroke: #ffffff; stroke-linecap: round\"/>\n",
" </g>\n",
" <g id=\"line2d_14\"/>\n",
" <g id=\"text_7\">\n",
" <!-- 0 -->\n",
" <g style=\"fill: #262626\" transform=\"translate(23.882813 315.698906) scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#ArialMT-30\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"ytick_2\">\n",
" <g id=\"line2d_15\">\n",
" <path d=\"M 36.44375 277.858556 \n",
"L 482.84375 277.858556 \n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: none; stroke: #ffffff; stroke-linecap: round\"/>\n",
" </g>\n",
" <g id=\"line2d_16\"/>\n",
" <g id=\"text_8\">\n",
" <!-- 250 -->\n",
" <g style=\"fill: #262626\" transform=\"translate(12.760938 281.437462) scale(0.1 -0.1)\">\n",
" <defs>\n",
" <path id=\"ArialMT-35\" d=\"M 266 1200 \n",
"L 856 1250 \n",
"Q 922 819 1161 601 \n",
"Q 1400 384 1738 384 \n",
"Q 2144 384 2425 690 \n",
"Q 2706 997 2706 1503 \n",
"Q 2706 1984 2436 2262 \n",
"Q 2166 2541 1728 2541 \n",
"Q 1456 2541 1237 2417 \n",
"Q 1019 2294 894 2097 \n",
"L 366 2166 \n",
"L 809 4519 \n",
"L 3088 4519 \n",
"L 3088 3981 \n",
"L 1259 3981 \n",
"L 1013 2750 \n",
"Q 1425 3038 1878 3038 \n",
"Q 2478 3038 2890 2622 \n",
"Q 3303 2206 3303 1553 \n",
"Q 3303 931 2941 478 \n",
"Q 2500 -78 1738 -78 \n",
"Q 1113 -78 717 272 \n",
"Q 322 622 266 1200 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" </defs>\n",
" <use xlink:href=\"#ArialMT-32\"/>\n",
" <use xlink:href=\"#ArialMT-35\" x=\"55.615234\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"111.230469\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"ytick_3\">\n",
" <g id=\"line2d_17\">\n",
" <path d=\"M 36.44375 243.597112 \n",
"L 482.84375 243.597112 \n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: none; stroke: #ffffff; stroke-linecap: round\"/>\n",
" </g>\n",
" <g id=\"line2d_18\"/>\n",
" <g id=\"text_9\">\n",
" <!-- 500 -->\n",
" <g style=\"fill: #262626\" transform=\"translate(12.760938 247.176018) scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#ArialMT-35\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"55.615234\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"111.230469\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"ytick_4\">\n",
" <g id=\"line2d_19\">\n",
" <path d=\"M 36.44375 209.335668 \n",
"L 482.84375 209.335668 \n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: none; stroke: #ffffff; stroke-linecap: round\"/>\n",
" </g>\n",
" <g id=\"line2d_20\"/>\n",
" <g id=\"text_10\">\n",
" <!-- 750 -->\n",
" <g style=\"fill: #262626\" transform=\"translate(12.760938 212.914574) scale(0.1 -0.1)\">\n",
" <defs>\n",
" <path id=\"ArialMT-37\" d=\"M 303 3981 \n",
"L 303 4522 \n",
"L 3269 4522 \n",
"L 3269 4084 \n",
"Q 2831 3619 2401 2847 \n",
"Q 1972 2075 1738 1259 \n",
"Q 1569 684 1522 0 \n",
"L 944 0 \n",
"Q 953 541 1156 1306 \n",
"Q 1359 2072 1739 2783 \n",
"Q 2119 3494 2547 3981 \n",
"L 303 3981 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" </defs>\n",
" <use xlink:href=\"#ArialMT-37\"/>\n",
" <use xlink:href=\"#ArialMT-35\" x=\"55.615234\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"111.230469\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"ytick_5\">\n",
" <g id=\"line2d_21\">\n",
" <path d=\"M 36.44375 175.074224 \n",
"L 482.84375 175.074224 \n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: none; stroke: #ffffff; stroke-linecap: round\"/>\n",
" </g>\n",
" <g id=\"line2d_22\"/>\n",
" <g id=\"text_11\">\n",
" <!-- 1000 -->\n",
" <g style=\"fill: #262626\" transform=\"translate(7.2 178.65313) scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#ArialMT-31\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"55.615234\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"111.230469\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"166.845703\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"ytick_6\">\n",
" <g id=\"line2d_23\">\n",
" <path d=\"M 36.44375 140.81278 \n",
"L 482.84375 140.81278 \n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: none; stroke: #ffffff; stroke-linecap: round\"/>\n",
" </g>\n",
" <g id=\"line2d_24\"/>\n",
" <g id=\"text_12\">\n",
" <!-- 1250 -->\n",
" <g style=\"fill: #262626\" transform=\"translate(7.2 144.391686) scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#ArialMT-31\"/>\n",
" <use xlink:href=\"#ArialMT-32\" x=\"55.615234\"/>\n",
" <use xlink:href=\"#ArialMT-35\" x=\"111.230469\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"166.845703\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"ytick_7\">\n",
" <g id=\"line2d_25\">\n",
" <path d=\"M 36.44375 106.551336 \n",
"L 482.84375 106.551336 \n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: none; stroke: #ffffff; stroke-linecap: round\"/>\n",
" </g>\n",
" <g id=\"line2d_26\"/>\n",
" <g id=\"text_13\">\n",
" <!-- 1500 -->\n",
" <g style=\"fill: #262626\" transform=\"translate(7.2 110.130242) scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#ArialMT-31\"/>\n",
" <use xlink:href=\"#ArialMT-35\" x=\"55.615234\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"111.230469\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"166.845703\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"ytick_8\">\n",
" <g id=\"line2d_27\">\n",
" <path d=\"M 36.44375 72.289891 \n",
"L 482.84375 72.289891 \n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: none; stroke: #ffffff; stroke-linecap: round\"/>\n",
" </g>\n",
" <g id=\"line2d_28\"/>\n",
" <g id=\"text_14\">\n",
" <!-- 1750 -->\n",
" <g style=\"fill: #262626\" transform=\"translate(7.2 75.868798) scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#ArialMT-31\"/>\n",
" <use xlink:href=\"#ArialMT-37\" x=\"55.615234\"/>\n",
" <use xlink:href=\"#ArialMT-35\" x=\"111.230469\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"166.845703\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"ytick_9\">\n",
" <g id=\"line2d_29\">\n",
" <path d=\"M 36.44375 38.028447 \n",
"L 482.84375 38.028447 \n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: none; stroke: #ffffff; stroke-linecap: round\"/>\n",
" </g>\n",
" <g id=\"line2d_30\"/>\n",
" <g id=\"text_15\">\n",
" <!-- 2000 -->\n",
" <g style=\"fill: #262626\" transform=\"translate(7.2 41.607354) scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#ArialMT-32\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"55.615234\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"111.230469\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"166.845703\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"patch_3\">\n",
" <path d=\"M 56.734659 312.12 \n",
"L 60.792841 312.12 \n",
"L 60.792841 311.982954 \n",
"L 56.734659 311.982954 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_4\">\n",
" <path d=\"M 60.792841 312.12 \n",
"L 64.851023 312.12 \n",
"L 64.851023 312.12 \n",
"L 60.792841 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_5\">\n",
" <path d=\"M 64.851023 312.12 \n",
"L 68.909205 312.12 \n",
"L 68.909205 312.12 \n",
"L 64.851023 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_6\">\n",
" <path d=\"M 68.909205 312.12 \n",
"L 72.967386 312.12 \n",
"L 72.967386 312.12 \n",
"L 68.909205 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_7\">\n",
" <path d=\"M 72.967386 312.12 \n",
"L 77.025568 312.12 \n",
"L 77.025568 312.12 \n",
"L 72.967386 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_8\">\n",
" <path d=\"M 77.025568 312.12 \n",
"L 81.08375 312.12 \n",
"L 81.08375 312.12 \n",
"L 77.025568 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_9\">\n",
" <path d=\"M 81.08375 312.12 \n",
"L 85.141932 312.12 \n",
"L 85.141932 312.12 \n",
"L 81.08375 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_10\">\n",
" <path d=\"M 85.141932 312.12 \n",
"L 89.200114 312.12 \n",
"L 89.200114 312.12 \n",
"L 85.141932 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_11\">\n",
" <path d=\"M 89.200114 312.12 \n",
"L 93.258295 312.12 \n",
"L 93.258295 312.12 \n",
"L 89.200114 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_12\">\n",
" <path d=\"M 93.258295 312.12 \n",
"L 97.316477 312.12 \n",
"L 97.316477 312.12 \n",
"L 93.258295 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_13\">\n",
" <path d=\"M 97.316477 312.12 \n",
"L 101.374659 312.12 \n",
"L 101.374659 312.12 \n",
"L 97.316477 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_14\">\n",
" <path d=\"M 101.374659 312.12 \n",
"L 105.432841 312.12 \n",
"L 105.432841 312.12 \n",
"L 101.374659 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_15\">\n",
" <path d=\"M 105.432841 312.12 \n",
"L 109.491023 312.12 \n",
"L 109.491023 312.12 \n",
"L 105.432841 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_16\">\n",
" <path d=\"M 109.491023 312.12 \n",
"L 113.549205 312.12 \n",
"L 113.549205 312.12 \n",
"L 109.491023 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_17\">\n",
" <path d=\"M 113.549205 312.12 \n",
"L 117.607386 312.12 \n",
"L 117.607386 312.12 \n",
"L 113.549205 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_18\">\n",
" <path d=\"M 117.607386 312.12 \n",
"L 121.665568 312.12 \n",
"L 121.665568 312.12 \n",
"L 117.607386 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_19\">\n",
" <path d=\"M 121.665568 312.12 \n",
"L 125.72375 312.12 \n",
"L 125.72375 312.12 \n",
"L 121.665568 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_20\">\n",
" <path d=\"M 125.72375 312.12 \n",
"L 129.781932 312.12 \n",
"L 129.781932 312.12 \n",
"L 125.72375 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_21\">\n",
" <path d=\"M 129.781932 312.12 \n",
"L 133.840114 312.12 \n",
"L 133.840114 312.12 \n",
"L 129.781932 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_22\">\n",
" <path d=\"M 133.840114 312.12 \n",
"L 137.898295 312.12 \n",
"L 137.898295 312.12 \n",
"L 133.840114 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_23\">\n",
" <path d=\"M 137.898295 312.12 \n",
"L 141.956477 312.12 \n",
"L 141.956477 311.982954 \n",
"L 137.898295 311.982954 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_24\">\n",
" <path d=\"M 141.956477 312.12 \n",
"L 146.014659 312.12 \n",
"L 146.014659 312.12 \n",
"L 141.956477 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_25\">\n",
" <path d=\"M 146.014659 312.12 \n",
"L 150.072841 312.12 \n",
"L 150.072841 312.12 \n",
"L 146.014659 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_26\">\n",
" <path d=\"M 150.072841 312.12 \n",
"L 154.131023 312.12 \n",
"L 154.131023 312.12 \n",
"L 150.072841 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_27\">\n",
" <path d=\"M 154.131023 312.12 \n",
"L 158.189205 312.12 \n",
"L 158.189205 312.12 \n",
"L 154.131023 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_28\">\n",
" <path d=\"M 158.189205 312.12 \n",
"L 162.247386 312.12 \n",
"L 162.247386 312.12 \n",
"L 158.189205 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_29\">\n",
" <path d=\"M 162.247386 312.12 \n",
"L 166.305568 312.12 \n",
"L 166.305568 312.12 \n",
"L 162.247386 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_30\">\n",
" <path d=\"M 166.305568 312.12 \n",
"L 170.36375 312.12 \n",
"L 170.36375 312.12 \n",
"L 166.305568 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_31\">\n",
" <path d=\"M 170.36375 312.12 \n",
"L 174.421932 312.12 \n",
"L 174.421932 312.12 \n",
"L 170.36375 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_32\">\n",
" <path d=\"M 174.421932 312.12 \n",
"L 178.480114 312.12 \n",
"L 178.480114 312.12 \n",
"L 174.421932 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_33\">\n",
" <path d=\"M 178.480114 312.12 \n",
"L 182.538295 312.12 \n",
"L 182.538295 312.12 \n",
"L 178.480114 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_34\">\n",
" <path d=\"M 182.538295 312.12 \n",
"L 186.596477 312.12 \n",
"L 186.596477 312.12 \n",
"L 182.538295 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_35\">\n",
" <path d=\"M 186.596477 312.12 \n",
"L 190.654659 312.12 \n",
"L 190.654659 312.12 \n",
"L 186.596477 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_36\">\n",
" <path d=\"M 190.654659 312.12 \n",
"L 194.712841 312.12 \n",
"L 194.712841 312.12 \n",
"L 190.654659 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_37\">\n",
" <path d=\"M 194.712841 312.12 \n",
"L 198.771023 312.12 \n",
"L 198.771023 311.982954 \n",
"L 194.712841 311.982954 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_38\">\n",
" <path d=\"M 198.771023 312.12 \n",
"L 202.829205 312.12 \n",
"L 202.829205 312.12 \n",
"L 198.771023 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_39\">\n",
" <path d=\"M 202.829205 312.12 \n",
"L 206.887386 312.12 \n",
"L 206.887386 311.982954 \n",
"L 202.829205 311.982954 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_40\">\n",
" <path d=\"M 206.887386 312.12 \n",
"L 210.945568 312.12 \n",
"L 210.945568 312.12 \n",
"L 206.887386 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_41\">\n",
" <path d=\"M 210.945568 312.12 \n",
"L 215.00375 312.12 \n",
"L 215.00375 311.845908 \n",
"L 210.945568 311.845908 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_42\">\n",
" <path d=\"M 215.00375 312.12 \n",
"L 219.061932 312.12 \n",
"L 219.061932 312.12 \n",
"L 215.00375 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_43\">\n",
" <path d=\"M 219.061932 312.12 \n",
"L 223.120114 312.12 \n",
"L 223.120114 312.12 \n",
"L 219.061932 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_44\">\n",
" <path d=\"M 223.120114 312.12 \n",
"L 227.178295 312.12 \n",
"L 227.178295 312.12 \n",
"L 223.120114 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_45\">\n",
" <path d=\"M 227.178295 312.12 \n",
"L 231.236477 312.12 \n",
"L 231.236477 312.12 \n",
"L 227.178295 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_46\">\n",
" <path d=\"M 231.236477 312.12 \n",
"L 235.294659 312.12 \n",
"L 235.294659 311.982954 \n",
"L 231.236477 311.982954 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_47\">\n",
" <path d=\"M 235.294659 312.12 \n",
"L 239.352841 312.12 \n",
"L 239.352841 311.982954 \n",
"L 235.294659 311.982954 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_48\">\n",
" <path d=\"M 239.352841 312.12 \n",
"L 243.411023 312.12 \n",
"L 243.411023 312.12 \n",
"L 239.352841 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_49\">\n",
" <path d=\"M 243.411023 312.12 \n",
"L 247.469205 312.12 \n",
"L 247.469205 311.982954 \n",
"L 243.411023 311.982954 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_50\">\n",
" <path d=\"M 247.469205 312.12 \n",
"L 251.527386 312.12 \n",
"L 251.527386 312.12 \n",
"L 247.469205 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_51\">\n",
" <path d=\"M 251.527386 312.12 \n",
"L 255.585568 312.12 \n",
"L 255.585568 312.12 \n",
"L 251.527386 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_52\">\n",
" <path d=\"M 255.585568 312.12 \n",
"L 259.64375 312.12 \n",
"L 259.64375 311.708863 \n",
"L 255.585568 311.708863 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_53\">\n",
" <path d=\"M 259.64375 312.12 \n",
"L 263.701932 312.12 \n",
"L 263.701932 311.845908 \n",
"L 259.64375 311.845908 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_54\">\n",
" <path d=\"M 263.701932 312.12 \n",
"L 267.760114 312.12 \n",
"L 267.760114 311.982954 \n",
"L 263.701932 311.982954 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_55\">\n",
" <path d=\"M 267.760114 312.12 \n",
"L 271.818295 312.12 \n",
"L 271.818295 312.12 \n",
"L 267.760114 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_56\">\n",
" <path d=\"M 271.818295 312.12 \n",
"L 275.876477 312.12 \n",
"L 275.876477 311.982954 \n",
"L 271.818295 311.982954 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_57\">\n",
" <path d=\"M 275.876477 312.12 \n",
"L 279.934659 312.12 \n",
"L 279.934659 311.708863 \n",
"L 275.876477 311.708863 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_58\">\n",
" <path d=\"M 279.934659 312.12 \n",
"L 283.992841 312.12 \n",
"L 283.992841 311.297725 \n",
"L 279.934659 311.297725 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_59\">\n",
" <path d=\"M 283.992841 312.12 \n",
"L 288.051023 312.12 \n",
"L 288.051023 311.434771 \n",
"L 283.992841 311.434771 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_60\">\n",
" <path d=\"M 288.051023 312.12 \n",
"L 292.109205 312.12 \n",
"L 292.109205 310.886588 \n",
"L 288.051023 310.886588 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_61\">\n",
" <path d=\"M 292.109205 312.12 \n",
"L 296.167386 312.12 \n",
"L 296.167386 310.338405 \n",
"L 292.109205 310.338405 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_62\">\n",
" <path d=\"M 296.167386 312.12 \n",
"L 300.225568 312.12 \n",
"L 300.225568 310.201359 \n",
"L 296.167386 310.201359 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_63\">\n",
" <path d=\"M 300.225568 312.12 \n",
"L 304.28375 312.12 \n",
"L 304.28375 309.790222 \n",
"L 300.225568 309.790222 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_64\">\n",
" <path d=\"M 304.28375 312.12 \n",
"L 308.341932 312.12 \n",
"L 308.341932 305.404757 \n",
"L 304.28375 305.404757 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_65\">\n",
" <path d=\"M 308.341932 312.12 \n",
"L 312.400114 312.12 \n",
"L 312.400114 304.171345 \n",
"L 308.341932 304.171345 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_66\">\n",
" <path d=\"M 312.400114 312.12 \n",
"L 316.458295 312.12 \n",
"L 316.458295 302.38975 \n",
"L 312.400114 302.38975 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_67\">\n",
" <path d=\"M 316.458295 312.12 \n",
"L 320.516477 312.12 \n",
"L 320.516477 295.26337 \n",
"L 316.458295 295.26337 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_68\">\n",
" <path d=\"M 320.516477 312.12 \n",
"L 324.574659 312.12 \n",
"L 324.574659 290.05563 \n",
"L 320.516477 290.05563 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_69\">\n",
" <path d=\"M 324.574659 312.12 \n",
"L 328.632841 312.12 \n",
"L 328.632841 309.927268 \n",
"L 324.574659 309.927268 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_70\">\n",
" <path d=\"M 328.632841 312.12 \n",
"L 332.691023 312.12 \n",
"L 332.691023 261.961246 \n",
"L 328.632841 261.961246 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_71\">\n",
" <path d=\"M 332.691023 312.12 \n",
"L 336.749205 312.12 \n",
"L 336.749205 234.552091 \n",
"L 332.691023 234.552091 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_72\">\n",
" <path d=\"M 336.749205 312.12 \n",
"L 340.807386 312.12 \n",
"L 340.807386 155.202586 \n",
"L 336.749205 155.202586 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_73\">\n",
" <path d=\"M 340.807386 312.12 \n",
"L 344.865568 312.12 \n",
"L 344.865568 35.287532 \n",
"L 340.807386 35.287532 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_74\">\n",
" <path d=\"M 344.865568 312.12 \n",
"L 348.92375 312.12 \n",
"L 348.92375 37.754356 \n",
"L 344.865568 37.754356 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_75\">\n",
" <path d=\"M 348.92375 312.12 \n",
"L 352.981932 312.12 \n",
"L 352.981932 21.72 \n",
"L 348.92375 21.72 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_76\">\n",
" <path d=\"M 352.981932 312.12 \n",
"L 357.040114 312.12 \n",
"L 357.040114 311.16068 \n",
"L 352.981932 311.16068 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_77\">\n",
" <path d=\"M 357.040114 312.12 \n",
"L 361.098295 312.12 \n",
"L 361.098295 150.268938 \n",
"L 357.040114 150.268938 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_78\">\n",
" <path d=\"M 361.098295 312.12 \n",
"L 365.156477 312.12 \n",
"L 365.156477 236.607777 \n",
"L 361.098295 236.607777 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_79\">\n",
" <path d=\"M 365.156477 312.12 \n",
"L 369.214659 312.12 \n",
"L 369.214659 265.250345 \n",
"L 365.156477 265.250345 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_80\">\n",
" <path d=\"M 369.214659 312.12 \n",
"L 373.272841 312.12 \n",
"L 373.272841 285.533119 \n",
"L 369.214659 285.533119 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_81\">\n",
" <path d=\"M 373.272841 312.12 \n",
"L 377.331023 312.12 \n",
"L 377.331023 292.933591 \n",
"L 373.272841 292.933591 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_82\">\n",
" <path d=\"M 377.331023 312.12 \n",
"L 381.389205 312.12 \n",
"L 381.389205 303.760208 \n",
"L 377.331023 303.760208 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_83\">\n",
" <path d=\"M 381.389205 312.12 \n",
"L 385.447386 312.12 \n",
"L 385.447386 307.597489 \n",
"L 381.389205 307.597489 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_84\">\n",
" <path d=\"M 385.447386 312.12 \n",
"L 389.505568 312.12 \n",
"L 389.505568 307.597489 \n",
"L 385.447386 307.597489 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_85\">\n",
" <path d=\"M 389.505568 312.12 \n",
"L 393.56375 312.12 \n",
"L 393.56375 307.871581 \n",
"L 389.505568 307.871581 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_86\">\n",
" <path d=\"M 393.56375 312.12 \n",
"L 397.621932 312.12 \n",
"L 397.621932 309.242039 \n",
"L 393.56375 309.242039 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_87\">\n",
" <path d=\"M 397.621932 312.12 \n",
"L 401.680114 312.12 \n",
"L 401.680114 310.064313 \n",
"L 397.621932 310.064313 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_88\">\n",
" <path d=\"M 401.680114 312.12 \n",
"L 405.738295 312.12 \n",
"L 405.738295 310.886588 \n",
"L 401.680114 310.886588 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_89\">\n",
" <path d=\"M 405.738295 312.12 \n",
"L 409.796477 312.12 \n",
"L 409.796477 311.434771 \n",
"L 405.738295 311.434771 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_90\">\n",
" <path d=\"M 409.796477 312.12 \n",
"L 413.854659 312.12 \n",
"L 413.854659 311.434771 \n",
"L 409.796477 311.434771 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_91\">\n",
" <path d=\"M 413.854659 312.12 \n",
"L 417.912841 312.12 \n",
"L 417.912841 311.434771 \n",
"L 413.854659 311.434771 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_92\">\n",
" <path d=\"M 417.912841 312.12 \n",
"L 421.971023 312.12 \n",
"L 421.971023 311.708863 \n",
"L 417.912841 311.708863 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_93\">\n",
" <path d=\"M 421.971023 312.12 \n",
"L 426.029205 312.12 \n",
"L 426.029205 311.434771 \n",
"L 421.971023 311.434771 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_94\">\n",
" <path d=\"M 426.029205 312.12 \n",
"L 430.087386 312.12 \n",
"L 430.087386 312.12 \n",
"L 426.029205 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_95\">\n",
" <path d=\"M 430.087386 312.12 \n",
"L 434.145568 312.12 \n",
"L 434.145568 311.845908 \n",
"L 430.087386 311.845908 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_96\">\n",
" <path d=\"M 434.145568 312.12 \n",
"L 438.20375 312.12 \n",
"L 438.20375 311.708863 \n",
"L 434.145568 311.708863 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_97\">\n",
" <path d=\"M 438.20375 312.12 \n",
"L 442.261932 312.12 \n",
"L 442.261932 311.982954 \n",
"L 438.20375 311.982954 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_98\">\n",
" <path d=\"M 442.261932 312.12 \n",
"L 446.320114 312.12 \n",
"L 446.320114 312.12 \n",
"L 442.261932 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_99\">\n",
" <path d=\"M 446.320114 312.12 \n",
"L 450.378295 312.12 \n",
"L 450.378295 312.12 \n",
"L 446.320114 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_100\">\n",
" <path d=\"M 450.378295 312.12 \n",
"L 454.436477 312.12 \n",
"L 454.436477 311.845908 \n",
"L 450.378295 311.845908 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_101\">\n",
" <path d=\"M 454.436477 312.12 \n",
"L 458.494659 312.12 \n",
"L 458.494659 312.12 \n",
"L 454.436477 312.12 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_102\">\n",
" <path d=\"M 458.494659 312.12 \n",
"L 462.552841 312.12 \n",
"L 462.552841 311.708863 \n",
"L 458.494659 311.708863 \n",
"z\n",
"\" clip-path=\"url(#pe03bc2a0ae)\" style=\"fill: #4c72b0\"/>\n",
" </g>\n",
" <g id=\"patch_103\">\n",
" <path d=\"M 36.44375 312.12 \n",
"L 36.44375 7.2 \n",
"\" style=\"fill: none\"/>\n",
" </g>\n",
" <g id=\"patch_104\">\n",
" <path d=\"M 482.84375 312.12 \n",
"L 482.84375 7.2 \n",
"\" style=\"fill: none\"/>\n",
" </g>\n",
" <g id=\"patch_105\">\n",
" <path d=\"M 36.44375 312.12 \n",
"L 482.84375 312.12 \n",
"\" style=\"fill: none\"/>\n",
" </g>\n",
" <g id=\"patch_106\">\n",
" <path d=\"M 36.44375 7.2 \n",
"L 482.84375 7.2 \n",
"\" style=\"fill: none\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <defs>\n",
" <clipPath id=\"pe03bc2a0ae\">\n",
" <rect x=\"36.44375\" y=\"7.2\" width=\"446.4\" height=\"304.92\"/>\n",
" </clipPath>\n",
" </defs>\n",
"</svg>\n"
],
"text/plain": [
"<Figure size 800x550 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"data['r'].hist(bins=100);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Testing of the Model"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
"test['p'] = model.predict(test_[cols])"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.4302579798863139"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"accuracy_score(test['d'], test['p'])"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
"test['s'] = test['p'] * test['r']"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"r 0.992232\n",
"s 1.006379\n",
"dtype: float64"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test[['r', 's']].sum().apply(np.exp)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"492.821875pt\" height=\"332.396635pt\" viewBox=\"0 0 492.821875 332.396635\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">\n",
" <metadata>\n",
" <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
" <cc:Work>\n",
" <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
" <dc:date>2023-06-15T10:37:27.668129</dc:date>\n",
" <dc:format>image/svg+xml</dc:format>\n",
" <dc:creator>\n",
" <cc:Agent>\n",
" <dc:title>Matplotlib v3.6.2, https://matplotlib.org/</dc:title>\n",
" </cc:Agent>\n",
" </dc:creator>\n",
" </cc:Work>\n",
" </rdf:RDF>\n",
" </metadata>\n",
" <defs>\n",
" <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
" </defs>\n",
" <g id=\"figure_1\">\n",
" <g id=\"patch_1\">\n",
" <path d=\"M 0 332.396635 \n",
"L 492.821875 332.396635 \n",
"L 492.821875 0 \n",
"L 0 0 \n",
"z\n",
"\" style=\"fill: #ffffff\"/>\n",
" </g>\n",
" <g id=\"axes_1\">\n",
" <g id=\"patch_2\">\n",
" <path d=\"M 39.221875 276.48 \n",
"L 485.621875 276.48 \n",
"L 485.621875 7.2 \n",
"L 39.221875 7.2 \n",
"z\n",
"\" style=\"fill: #eaeaf2\"/>\n",
" </g>\n",
" <g id=\"matplotlib.axis_1\">\n",
" <g id=\"xtick_1\">\n",
" <g id=\"line2d_1\">\n",
" <path d=\"M 64.003165 276.48 \n",
"L 64.003165 7.2 \n",
"\" clip-path=\"url(#p9e6ffe71de)\" style=\"fill: none; stroke: #ffffff; stroke-linecap: round\"/>\n",
" </g>\n",
" <g id=\"line2d_2\"/>\n",
" <g id=\"text_1\">\n",
" <!-- 06-14 17 -->\n",
" <g style=\"fill: #262626\" transform=\"translate(28.824415 309.415566) rotate(-30) scale(0.1 -0.1)\">\n",
" <defs>\n",
" <path id=\"ArialMT-30\" d=\"M 266 2259 \n",
"Q 266 3072 433 3567 \n",
"Q 600 4063 929 4331 \n",
"Q 1259 4600 1759 4600 \n",
"Q 2128 4600 2406 4451 \n",
"Q 2684 4303 2865 4023 \n",
"Q 3047 3744 3150 3342 \n",
"Q 3253 2941 3253 2259 \n",
"Q 3253 1453 3087 958 \n",
"Q 2922 463 2592 192 \n",
"Q 2263 -78 1759 -78 \n",
"Q 1097 -78 719 397 \n",
"Q 266 969 266 2259 \n",
"z\n",
"M 844 2259 \n",
"Q 844 1131 1108 757 \n",
"Q 1372 384 1759 384 \n",
"Q 2147 384 2411 759 \n",
"Q 2675 1134 2675 2259 \n",
"Q 2675 3391 2411 3762 \n",
"Q 2147 4134 1753 4134 \n",
"Q 1366 4134 1134 3806 \n",
"Q 844 3388 844 2259 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" <path id=\"ArialMT-36\" d=\"M 3184 3459 \n",
"L 2625 3416 \n",
"Q 2550 3747 2413 3897 \n",
"Q 2184 4138 1850 4138 \n",
"Q 1581 4138 1378 3988 \n",
"Q 1113 3794 959 3422 \n",
"Q 806 3050 800 2363 \n",
"Q 1003 2672 1297 2822 \n",
"Q 1591 2972 1913 2972 \n",
"Q 2475 2972 2870 2558 \n",
"Q 3266 2144 3266 1488 \n",
"Q 3266 1056 3080 686 \n",
"Q 2894 316 2569 119 \n",
"Q 2244 -78 1831 -78 \n",
"Q 1128 -78 684 439 \n",
"Q 241 956 241 2144 \n",
"Q 241 3472 731 4075 \n",
"Q 1159 4600 1884 4600 \n",
"Q 2425 4600 2770 4297 \n",
"Q 3116 3994 3184 3459 \n",
"z\n",
"M 888 1484 \n",
"Q 888 1194 1011 928 \n",
"Q 1134 663 1356 523 \n",
"Q 1578 384 1822 384 \n",
"Q 2178 384 2434 671 \n",
"Q 2691 959 2691 1453 \n",
"Q 2691 1928 2437 2201 \n",
"Q 2184 2475 1800 2475 \n",
"Q 1419 2475 1153 2201 \n",
"Q 888 1928 888 1484 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" <path id=\"ArialMT-2d\" d=\"M 203 1375 \n",
"L 203 1941 \n",
"L 1931 1941 \n",
"L 1931 1375 \n",
"L 203 1375 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" <path id=\"ArialMT-31\" d=\"M 2384 0 \n",
"L 1822 0 \n",
"L 1822 3584 \n",
"Q 1619 3391 1289 3197 \n",
"Q 959 3003 697 2906 \n",
"L 697 3450 \n",
"Q 1169 3672 1522 3987 \n",
"Q 1875 4303 2022 4600 \n",
"L 2384 4600 \n",
"L 2384 0 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" <path id=\"ArialMT-34\" d=\"M 2069 0 \n",
"L 2069 1097 \n",
"L 81 1097 \n",
"L 81 1613 \n",
"L 2172 4581 \n",
"L 2631 4581 \n",
"L 2631 1613 \n",
"L 3250 1613 \n",
"L 3250 1097 \n",
"L 2631 1097 \n",
"L 2631 0 \n",
"L 2069 0 \n",
"z\n",
"M 2069 1613 \n",
"L 2069 3678 \n",
"L 634 1613 \n",
"L 2069 1613 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" <path id=\"ArialMT-20\" transform=\"scale(0.015625)\"/>\n",
" <path id=\"ArialMT-37\" d=\"M 303 3981 \n",
"L 303 4522 \n",
"L 3269 4522 \n",
"L 3269 4084 \n",
"Q 2831 3619 2401 2847 \n",
"Q 1972 2075 1738 1259 \n",
"Q 1569 684 1522 0 \n",
"L 944 0 \n",
"Q 953 541 1156 1306 \n",
"Q 1359 2072 1739 2783 \n",
"Q 2119 3494 2547 3981 \n",
"L 303 3981 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" </defs>\n",
" <use xlink:href=\"#ArialMT-30\"/>\n",
" <use xlink:href=\"#ArialMT-36\" x=\"55.615234\"/>\n",
" <use xlink:href=\"#ArialMT-2d\" x=\"111.230469\"/>\n",
" <use xlink:href=\"#ArialMT-31\" x=\"144.53125\"/>\n",
" <use xlink:href=\"#ArialMT-34\" x=\"200.146484\"/>\n",
" <use xlink:href=\"#ArialMT-20\" x=\"255.761719\"/>\n",
" <use xlink:href=\"#ArialMT-31\" x=\"283.544922\"/>\n",
" <use xlink:href=\"#ArialMT-37\" x=\"339.160156\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"xtick_2\">\n",
" <g id=\"line2d_3\">\n",
" <path d=\"M 144.830023 276.48 \n",
"L 144.830023 7.2 \n",
"\" clip-path=\"url(#p9e6ffe71de)\" style=\"fill: none; stroke: #ffffff; stroke-linecap: round\"/>\n",
" </g>\n",
" <g id=\"line2d_4\"/>\n",
" <g id=\"text_2\">\n",
" <!-- 06-14 18 -->\n",
" <g style=\"fill: #262626\" transform=\"translate(109.651273 309.415566) rotate(-30) scale(0.1 -0.1)\">\n",
" <defs>\n",
" <path id=\"ArialMT-38\" d=\"M 1131 2484 \n",
"Q 781 2613 612 2850 \n",
"Q 444 3088 444 3419 \n",
"Q 444 3919 803 4259 \n",
"Q 1163 4600 1759 4600 \n",
"Q 2359 4600 2725 4251 \n",
"Q 3091 3903 3091 3403 \n",
"Q 3091 3084 2923 2848 \n",
"Q 2756 2613 2416 2484 \n",
"Q 2838 2347 3058 2040 \n",
"Q 3278 1734 3278 1309 \n",
"Q 3278 722 2862 322 \n",
"Q 2447 -78 1769 -78 \n",
"Q 1091 -78 675 323 \n",
"Q 259 725 259 1325 \n",
"Q 259 1772 486 2073 \n",
"Q 713 2375 1131 2484 \n",
"z\n",
"M 1019 3438 \n",
"Q 1019 3113 1228 2906 \n",
"Q 1438 2700 1772 2700 \n",
"Q 2097 2700 2305 2904 \n",
"Q 2513 3109 2513 3406 \n",
"Q 2513 3716 2298 3927 \n",
"Q 2084 4138 1766 4138 \n",
"Q 1444 4138 1231 3931 \n",
"Q 1019 3725 1019 3438 \n",
"z\n",
"M 838 1322 \n",
"Q 838 1081 952 856 \n",
"Q 1066 631 1291 507 \n",
"Q 1516 384 1775 384 \n",
"Q 2178 384 2440 643 \n",
"Q 2703 903 2703 1303 \n",
"Q 2703 1709 2433 1975 \n",
"Q 2163 2241 1756 2241 \n",
"Q 1359 2241 1098 1978 \n",
"Q 838 1716 838 1322 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" </defs>\n",
" <use xlink:href=\"#ArialMT-30\"/>\n",
" <use xlink:href=\"#ArialMT-36\" x=\"55.615234\"/>\n",
" <use xlink:href=\"#ArialMT-2d\" x=\"111.230469\"/>\n",
" <use xlink:href=\"#ArialMT-31\" x=\"144.53125\"/>\n",
" <use xlink:href=\"#ArialMT-34\" x=\"200.146484\"/>\n",
" <use xlink:href=\"#ArialMT-20\" x=\"255.761719\"/>\n",
" <use xlink:href=\"#ArialMT-31\" x=\"283.544922\"/>\n",
" <use xlink:href=\"#ArialMT-38\" x=\"339.160156\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"xtick_3\">\n",
" <g id=\"line2d_5\">\n",
" <path d=\"M 225.656881 276.48 \n",
"L 225.656881 7.2 \n",
"\" clip-path=\"url(#p9e6ffe71de)\" style=\"fill: none; stroke: #ffffff; stroke-linecap: round\"/>\n",
" </g>\n",
" <g id=\"line2d_6\"/>\n",
" <g id=\"text_3\">\n",
" <!-- 06-14 19 -->\n",
" <g style=\"fill: #262626\" transform=\"translate(190.478131 309.415566) rotate(-30) scale(0.1 -0.1)\">\n",
" <defs>\n",
" <path id=\"ArialMT-39\" d=\"M 350 1059 \n",
"L 891 1109 \n",
"Q 959 728 1153 556 \n",
"Q 1347 384 1650 384 \n",
"Q 1909 384 2104 503 \n",
"Q 2300 622 2425 820 \n",
"Q 2550 1019 2634 1356 \n",
"Q 2719 1694 2719 2044 \n",
"Q 2719 2081 2716 2156 \n",
"Q 2547 1888 2255 1720 \n",
"Q 1963 1553 1622 1553 \n",
"Q 1053 1553 659 1965 \n",
"Q 266 2378 266 3053 \n",
"Q 266 3750 677 4175 \n",
"Q 1088 4600 1706 4600 \n",
"Q 2153 4600 2523 4359 \n",
"Q 2894 4119 3086 3673 \n",
"Q 3278 3228 3278 2384 \n",
"Q 3278 1506 3087 986 \n",
"Q 2897 466 2520 194 \n",
"Q 2144 -78 1638 -78 \n",
"Q 1100 -78 759 220 \n",
"Q 419 519 350 1059 \n",
"z\n",
"M 2653 3081 \n",
"Q 2653 3566 2395 3850 \n",
"Q 2138 4134 1775 4134 \n",
"Q 1400 4134 1122 3828 \n",
"Q 844 3522 844 3034 \n",
"Q 844 2597 1108 2323 \n",
"Q 1372 2050 1759 2050 \n",
"Q 2150 2050 2401 2323 \n",
"Q 2653 2597 2653 3081 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" </defs>\n",
" <use xlink:href=\"#ArialMT-30\"/>\n",
" <use xlink:href=\"#ArialMT-36\" x=\"55.615234\"/>\n",
" <use xlink:href=\"#ArialMT-2d\" x=\"111.230469\"/>\n",
" <use xlink:href=\"#ArialMT-31\" x=\"144.53125\"/>\n",
" <use xlink:href=\"#ArialMT-34\" x=\"200.146484\"/>\n",
" <use xlink:href=\"#ArialMT-20\" x=\"255.761719\"/>\n",
" <use xlink:href=\"#ArialMT-31\" x=\"283.544922\"/>\n",
" <use xlink:href=\"#ArialMT-39\" x=\"339.160156\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"xtick_4\">\n",
" <g id=\"line2d_7\">\n",
" <path d=\"M 306.483738 276.48 \n",
"L 306.483738 7.2 \n",
"\" clip-path=\"url(#p9e6ffe71de)\" style=\"fill: none; stroke: #ffffff; stroke-linecap: round\"/>\n",
" </g>\n",
" <g id=\"line2d_8\"/>\n",
" <g id=\"text_4\">\n",
" <!-- 06-14 20 -->\n",
" <g style=\"fill: #262626\" transform=\"translate(271.304989 309.415566) rotate(-30) scale(0.1 -0.1)\">\n",
" <defs>\n",
" <path id=\"ArialMT-32\" d=\"M 3222 541 \n",
"L 3222 0 \n",
"L 194 0 \n",
"Q 188 203 259 391 \n",
"Q 375 700 629 1000 \n",
"Q 884 1300 1366 1694 \n",
"Q 2113 2306 2375 2664 \n",
"Q 2638 3022 2638 3341 \n",
"Q 2638 3675 2398 3904 \n",
"Q 2159 4134 1775 4134 \n",
"Q 1369 4134 1125 3890 \n",
"Q 881 3647 878 3216 \n",
"L 300 3275 \n",
"Q 359 3922 746 4261 \n",
"Q 1134 4600 1788 4600 \n",
"Q 2447 4600 2831 4234 \n",
"Q 3216 3869 3216 3328 \n",
"Q 3216 3053 3103 2787 \n",
"Q 2991 2522 2730 2228 \n",
"Q 2469 1934 1863 1422 \n",
"Q 1356 997 1212 845 \n",
"Q 1069 694 975 541 \n",
"L 3222 541 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" </defs>\n",
" <use xlink:href=\"#ArialMT-30\"/>\n",
" <use xlink:href=\"#ArialMT-36\" x=\"55.615234\"/>\n",
" <use xlink:href=\"#ArialMT-2d\" x=\"111.230469\"/>\n",
" <use xlink:href=\"#ArialMT-31\" x=\"144.53125\"/>\n",
" <use xlink:href=\"#ArialMT-34\" x=\"200.146484\"/>\n",
" <use xlink:href=\"#ArialMT-20\" x=\"255.761719\"/>\n",
" <use xlink:href=\"#ArialMT-32\" x=\"283.544922\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"339.160156\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"xtick_5\">\n",
" <g id=\"line2d_9\">\n",
" <path d=\"M 387.310596 276.48 \n",
"L 387.310596 7.2 \n",
"\" clip-path=\"url(#p9e6ffe71de)\" style=\"fill: none; stroke: #ffffff; stroke-linecap: round\"/>\n",
" </g>\n",
" <g id=\"line2d_10\"/>\n",
" <g id=\"text_5\">\n",
" <!-- 06-14 21 -->\n",
" <g style=\"fill: #262626\" transform=\"translate(352.131847 309.415566) rotate(-30) scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#ArialMT-30\"/>\n",
" <use xlink:href=\"#ArialMT-36\" x=\"55.615234\"/>\n",
" <use xlink:href=\"#ArialMT-2d\" x=\"111.230469\"/>\n",
" <use xlink:href=\"#ArialMT-31\" x=\"144.53125\"/>\n",
" <use xlink:href=\"#ArialMT-34\" x=\"200.146484\"/>\n",
" <use xlink:href=\"#ArialMT-20\" x=\"255.761719\"/>\n",
" <use xlink:href=\"#ArialMT-32\" x=\"283.544922\"/>\n",
" <use xlink:href=\"#ArialMT-31\" x=\"339.160156\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"xtick_6\">\n",
" <g id=\"line2d_11\">\n",
" <path d=\"M 468.137454 276.48 \n",
"L 468.137454 7.2 \n",
"\" clip-path=\"url(#p9e6ffe71de)\" style=\"fill: none; stroke: #ffffff; stroke-linecap: round\"/>\n",
" </g>\n",
" <g id=\"line2d_12\"/>\n",
" <g id=\"text_6\">\n",
" <!-- 06-14 22 -->\n",
" <g style=\"fill: #262626\" transform=\"translate(432.958704 309.415566) rotate(-30) scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#ArialMT-30\"/>\n",
" <use xlink:href=\"#ArialMT-36\" x=\"55.615234\"/>\n",
" <use xlink:href=\"#ArialMT-2d\" x=\"111.230469\"/>\n",
" <use xlink:href=\"#ArialMT-31\" x=\"144.53125\"/>\n",
" <use xlink:href=\"#ArialMT-34\" x=\"200.146484\"/>\n",
" <use xlink:href=\"#ArialMT-20\" x=\"255.761719\"/>\n",
" <use xlink:href=\"#ArialMT-32\" x=\"283.544922\"/>\n",
" <use xlink:href=\"#ArialMT-32\" x=\"339.160156\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_7\">\n",
" <!-- time -->\n",
" <g style=\"fill: #262626\" transform=\"translate(252.032031 323.010385) scale(0.11 -0.11)\">\n",
" <defs>\n",
" <path id=\"ArialMT-74\" d=\"M 1650 503 \n",
"L 1731 6 \n",
"Q 1494 -44 1306 -44 \n",
"Q 1000 -44 831 53 \n",
"Q 663 150 594 308 \n",
"Q 525 466 525 972 \n",
"L 525 2881 \n",
"L 113 2881 \n",
"L 113 3319 \n",
"L 525 3319 \n",
"L 525 4141 \n",
"L 1084 4478 \n",
"L 1084 3319 \n",
"L 1650 3319 \n",
"L 1650 2881 \n",
"L 1084 2881 \n",
"L 1084 941 \n",
"Q 1084 700 1114 631 \n",
"Q 1144 563 1211 522 \n",
"Q 1278 481 1403 481 \n",
"Q 1497 481 1650 503 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" <path id=\"ArialMT-69\" d=\"M 425 3934 \n",
"L 425 4581 \n",
"L 988 4581 \n",
"L 988 3934 \n",
"L 425 3934 \n",
"z\n",
"M 425 0 \n",
"L 425 3319 \n",
"L 988 3319 \n",
"L 988 0 \n",
"L 425 0 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" <path id=\"ArialMT-6d\" d=\"M 422 0 \n",
"L 422 3319 \n",
"L 925 3319 \n",
"L 925 2853 \n",
"Q 1081 3097 1340 3245 \n",
"Q 1600 3394 1931 3394 \n",
"Q 2300 3394 2536 3241 \n",
"Q 2772 3088 2869 2813 \n",
"Q 3263 3394 3894 3394 \n",
"Q 4388 3394 4653 3120 \n",
"Q 4919 2847 4919 2278 \n",
"L 4919 0 \n",
"L 4359 0 \n",
"L 4359 2091 \n",
"Q 4359 2428 4304 2576 \n",
"Q 4250 2725 4106 2815 \n",
"Q 3963 2906 3769 2906 \n",
"Q 3419 2906 3187 2673 \n",
"Q 2956 2441 2956 1928 \n",
"L 2956 0 \n",
"L 2394 0 \n",
"L 2394 2156 \n",
"Q 2394 2531 2256 2718 \n",
"Q 2119 2906 1806 2906 \n",
"Q 1569 2906 1367 2781 \n",
"Q 1166 2656 1075 2415 \n",
"Q 984 2175 984 1722 \n",
"L 984 0 \n",
"L 422 0 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" <path id=\"ArialMT-65\" d=\"M 2694 1069 \n",
"L 3275 997 \n",
"Q 3138 488 2766 206 \n",
"Q 2394 -75 1816 -75 \n",
"Q 1088 -75 661 373 \n",
"Q 234 822 234 1631 \n",
"Q 234 2469 665 2931 \n",
"Q 1097 3394 1784 3394 \n",
"Q 2450 3394 2872 2941 \n",
"Q 3294 2488 3294 1666 \n",
"Q 3294 1616 3291 1516 \n",
"L 816 1516 \n",
"Q 847 969 1125 678 \n",
"Q 1403 388 1819 388 \n",
"Q 2128 388 2347 550 \n",
"Q 2566 713 2694 1069 \n",
"z\n",
"M 847 1978 \n",
"L 2700 1978 \n",
"Q 2663 2397 2488 2606 \n",
"Q 2219 2931 1791 2931 \n",
"Q 1403 2931 1139 2672 \n",
"Q 875 2413 847 1978 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" </defs>\n",
" <use xlink:href=\"#ArialMT-74\"/>\n",
" <use xlink:href=\"#ArialMT-69\" x=\"27.783203\"/>\n",
" <use xlink:href=\"#ArialMT-6d\" x=\"50\"/>\n",
" <use xlink:href=\"#ArialMT-65\" x=\"133.300781\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"matplotlib.axis_2\">\n",
" <g id=\"ytick_1\">\n",
" <g id=\"line2d_13\">\n",
" <path d=\"M 39.221875 259.36957 \n",
"L 485.621875 259.36957 \n",
"\" clip-path=\"url(#p9e6ffe71de)\" style=\"fill: none; stroke: #ffffff; stroke-linecap: round\"/>\n",
" </g>\n",
" <g id=\"line2d_14\"/>\n",
" <g id=\"text_8\">\n",
" <!-- 0.985 -->\n",
" <g style=\"fill: #262626\" transform=\"translate(7.2 262.948476) scale(0.1 -0.1)\">\n",
" <defs>\n",
" <path id=\"ArialMT-2e\" d=\"M 581 0 \n",
"L 581 641 \n",
"L 1222 641 \n",
"L 1222 0 \n",
"L 581 0 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" <path id=\"ArialMT-35\" d=\"M 266 1200 \n",
"L 856 1250 \n",
"Q 922 819 1161 601 \n",
"Q 1400 384 1738 384 \n",
"Q 2144 384 2425 690 \n",
"Q 2706 997 2706 1503 \n",
"Q 2706 1984 2436 2262 \n",
"Q 2166 2541 1728 2541 \n",
"Q 1456 2541 1237 2417 \n",
"Q 1019 2294 894 2097 \n",
"L 366 2166 \n",
"L 809 4519 \n",
"L 3088 4519 \n",
"L 3088 3981 \n",
"L 1259 3981 \n",
"L 1013 2750 \n",
"Q 1425 3038 1878 3038 \n",
"Q 2478 3038 2890 2622 \n",
"Q 3303 2206 3303 1553 \n",
"Q 3303 931 2941 478 \n",
"Q 2500 -78 1738 -78 \n",
"Q 1113 -78 717 272 \n",
"Q 322 622 266 1200 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" </defs>\n",
" <use xlink:href=\"#ArialMT-30\"/>\n",
" <use xlink:href=\"#ArialMT-2e\" x=\"55.615234\"/>\n",
" <use xlink:href=\"#ArialMT-39\" x=\"83.398438\"/>\n",
" <use xlink:href=\"#ArialMT-38\" x=\"139.013672\"/>\n",
" <use xlink:href=\"#ArialMT-35\" x=\"194.628906\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"ytick_2\">\n",
" <g id=\"line2d_15\">\n",
" <path d=\"M 39.221875 217.167511 \n",
"L 485.621875 217.167511 \n",
"\" clip-path=\"url(#p9e6ffe71de)\" style=\"fill: none; stroke: #ffffff; stroke-linecap: round\"/>\n",
" </g>\n",
" <g id=\"line2d_16\"/>\n",
" <g id=\"text_9\">\n",
" <!-- 0.990 -->\n",
" <g style=\"fill: #262626\" transform=\"translate(7.2 220.746417) scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#ArialMT-30\"/>\n",
" <use xlink:href=\"#ArialMT-2e\" x=\"55.615234\"/>\n",
" <use xlink:href=\"#ArialMT-39\" x=\"83.398438\"/>\n",
" <use xlink:href=\"#ArialMT-39\" x=\"139.013672\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"194.628906\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"ytick_3\">\n",
" <g id=\"line2d_17\">\n",
" <path d=\"M 39.221875 174.965451 \n",
"L 485.621875 174.965451 \n",
"\" clip-path=\"url(#p9e6ffe71de)\" style=\"fill: none; stroke: #ffffff; stroke-linecap: round\"/>\n",
" </g>\n",
" <g id=\"line2d_18\"/>\n",
" <g id=\"text_10\">\n",
" <!-- 0.995 -->\n",
" <g style=\"fill: #262626\" transform=\"translate(7.2 178.544357) scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#ArialMT-30\"/>\n",
" <use xlink:href=\"#ArialMT-2e\" x=\"55.615234\"/>\n",
" <use xlink:href=\"#ArialMT-39\" x=\"83.398438\"/>\n",
" <use xlink:href=\"#ArialMT-39\" x=\"139.013672\"/>\n",
" <use xlink:href=\"#ArialMT-35\" x=\"194.628906\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"ytick_4\">\n",
" <g id=\"line2d_19\">\n",
" <path d=\"M 39.221875 132.763392 \n",
"L 485.621875 132.763392 \n",
"\" clip-path=\"url(#p9e6ffe71de)\" style=\"fill: none; stroke: #ffffff; stroke-linecap: round\"/>\n",
" </g>\n",
" <g id=\"line2d_20\"/>\n",
" <g id=\"text_11\">\n",
" <!-- 1.000 -->\n",
" <g style=\"fill: #262626\" transform=\"translate(7.2 136.342298) scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#ArialMT-31\"/>\n",
" <use xlink:href=\"#ArialMT-2e\" x=\"55.615234\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"83.398438\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"139.013672\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"194.628906\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"ytick_5\">\n",
" <g id=\"line2d_21\">\n",
" <path d=\"M 39.221875 90.561332 \n",
"L 485.621875 90.561332 \n",
"\" clip-path=\"url(#p9e6ffe71de)\" style=\"fill: none; stroke: #ffffff; stroke-linecap: round\"/>\n",
" </g>\n",
" <g id=\"line2d_22\"/>\n",
" <g id=\"text_12\">\n",
" <!-- 1.005 -->\n",
" <g style=\"fill: #262626\" transform=\"translate(7.2 94.140238) scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#ArialMT-31\"/>\n",
" <use xlink:href=\"#ArialMT-2e\" x=\"55.615234\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"83.398438\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"139.013672\"/>\n",
" <use xlink:href=\"#ArialMT-35\" x=\"194.628906\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"ytick_6\">\n",
" <g id=\"line2d_23\">\n",
" <path d=\"M 39.221875 48.359272 \n",
"L 485.621875 48.359272 \n",
"\" clip-path=\"url(#p9e6ffe71de)\" style=\"fill: none; stroke: #ffffff; stroke-linecap: round\"/>\n",
" </g>\n",
" <g id=\"line2d_24\"/>\n",
" <g id=\"text_13\">\n",
" <!-- 1.010 -->\n",
" <g style=\"fill: #262626\" transform=\"translate(7.2 51.938179) scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#ArialMT-31\"/>\n",
" <use xlink:href=\"#ArialMT-2e\" x=\"55.615234\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"83.398438\"/>\n",
" <use xlink:href=\"#ArialMT-31\" x=\"139.013672\"/>\n",
" <use xlink:href=\"#ArialMT-30\" x=\"194.628906\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"line2d_25\">\n",
" <path d=\"M 59.512784 132.195213 \n",
"L 59.737303 133.33157 \n",
"L 59.961822 130.490676 \n",
"L 60.074082 127.649781 \n",
"L 60.186341 127.649781 \n",
"L 60.41086 127.081602 \n",
"L 60.52312 127.081602 \n",
"L 60.859898 128.786139 \n",
"L 61.084417 135.717922 \n",
"L 61.308936 136.286101 \n",
"L 61.421196 135.717922 \n",
"L 61.533456 136.85428 \n",
"L 61.757975 136.85428 \n",
"L 61.870234 138.558817 \n",
"L 61.982494 137.422459 \n",
"L 62.094753 137.422459 \n",
"L 62.207013 136.85428 \n",
"L 62.319272 137.990638 \n",
"L 62.431532 137.990638 \n",
"L 62.543791 138.558817 \n",
"L 62.656051 140.831533 \n",
"L 62.76831 139.695175 \n",
"L 62.992829 134.467928 \n",
"L 63.105089 136.85428 \n",
"L 63.217348 135.149743 \n",
"L 63.329608 135.717922 \n",
"L 63.441867 134.467928 \n",
"L 63.666387 138.558817 \n",
"L 63.778646 137.422459 \n",
"L 63.890906 137.422459 \n",
"L 64.003165 142.536069 \n",
"L 64.227684 142.536069 \n",
"L 64.452203 137.990638 \n",
"L 64.676722 136.85428 \n",
"L 65.12576 127.081602 \n",
"L 65.23802 127.081602 \n",
"L 65.350279 125.377065 \n",
"L 65.462539 125.377065 \n",
"L 65.574798 126.513423 \n",
"L 65.687058 123.104349 \n",
"L 65.799317 123.104349 \n",
"L 65.911577 120.263455 \n",
"L 66.023837 120.831634 \n",
"L 66.136096 123.104349 \n",
"L 66.248356 123.104349 \n",
"L 66.472875 130.490676 \n",
"L 66.585134 129.354318 \n",
"L 66.697394 131.627034 \n",
"L 66.809653 130.490676 \n",
"L 66.921913 131.627034 \n",
"L 67.034172 130.490676 \n",
"L 67.146432 128.21796 \n",
"L 67.258691 129.922497 \n",
"L 67.48321 127.649781 \n",
"L 67.59547 127.649781 \n",
"L 67.932248 126.513423 \n",
"L 68.044508 127.649781 \n",
"L 68.269027 124.240707 \n",
"L 68.493546 123.672528 \n",
"L 68.718065 121.967992 \n",
"L 68.830325 122.53617 \n",
"L 69.054844 120.831634 \n",
"L 69.391622 119.695276 \n",
"L 69.503882 120.831634 \n",
"L 69.84066 120.831634 \n",
"L 70.065179 121.967992 \n",
"L 70.177439 120.831634 \n",
"L 70.289698 121.967992 \n",
"L 70.401958 121.967992 \n",
"L 70.850996 124.808886 \n",
"L 71.075515 128.21796 \n",
"L 71.187775 128.786139 \n",
"L 71.300034 127.649781 \n",
"L 71.412294 128.21796 \n",
"L 71.524553 127.081602 \n",
"L 71.636813 127.081602 \n",
"L 71.749072 126.513423 \n",
"L 71.973591 124.240707 \n",
"L 72.085851 125.945244 \n",
"L 72.31037 125.945244 \n",
"L 72.422629 124.808886 \n",
"L 72.534889 124.808886 \n",
"L 72.759408 127.081602 \n",
"L 72.871668 124.240707 \n",
"L 73.208446 125.377065 \n",
"L 73.320706 124.808886 \n",
"L 73.432965 125.945244 \n",
"L 73.545225 124.808886 \n",
"L 73.657484 125.377065 \n",
"L 73.994263 125.945244 \n",
"L 74.218782 127.649781 \n",
"L 74.331041 125.945244 \n",
"L 74.780079 130.490676 \n",
"L 74.892339 130.490676 \n",
"L 75.116858 128.786139 \n",
"L 75.453637 127.081602 \n",
"L 75.565896 125.377065 \n",
"L 75.790415 126.513423 \n",
"L 76.014934 125.377065 \n",
"L 76.127194 128.786139 \n",
"L 76.351713 128.21796 \n",
"L 76.463972 128.21796 \n",
"L 76.576232 131.627034 \n",
"L 76.800751 131.058855 \n",
"L 76.91301 128.786139 \n",
"L 77.02527 129.922497 \n",
"L 77.137529 129.354318 \n",
"L 77.249789 131.058855 \n",
"L 77.362049 131.058855 \n",
"L 77.923346 128.21796 \n",
"L 78.260125 129.354318 \n",
"L 78.596903 134.013385 \n",
"L 78.709163 133.33157 \n",
"L 78.821422 134.013385 \n",
"L 79.27046 141.96789 \n",
"L 79.494979 147.64968 \n",
"L 79.719499 148.217859 \n",
"L 79.831758 145.376964 \n",
"L 80.168537 151.058754 \n",
"L 80.280796 147.64968 \n",
"L 80.505315 150.490575 \n",
"L 80.617575 150.490575 \n",
"L 80.729834 149.922396 \n",
"L 80.842094 153.331469 \n",
"L 80.954353 150.490575 \n",
"L 81.066613 152.195112 \n",
"L 81.291132 151.058754 \n",
"L 81.62791 152.195112 \n",
"L 81.74017 151.626933 \n",
"L 81.85243 156.172364 \n",
"L 81.964689 155.036006 \n",
"L 82.076949 155.604185 \n",
"L 82.301468 153.899648 \n",
"L 82.638246 149.922396 \n",
"L 83.424063 154.467827 \n",
"L 83.536322 152.195112 \n",
"L 83.760841 153.899648 \n",
"L 83.873101 153.331469 \n",
"L 83.98536 153.899648 \n",
"L 84.09762 158.44508 \n",
"L 84.20988 156.740543 \n",
"L 84.322139 157.876901 \n",
"L 84.658918 157.876901 \n",
"L 84.883437 163.55869 \n",
"L 84.995696 162.990512 \n",
"L 85.220215 153.899648 \n",
"L 85.332475 156.172364 \n",
"L 85.556994 155.604185 \n",
"L 85.781513 155.604185 \n",
"L 85.893772 156.172364 \n",
"L 86.230551 148.217859 \n",
"L 86.34281 148.786038 \n",
"L 86.679589 147.64968 \n",
"L 86.791849 147.64968 \n",
"L 87.016368 149.922396 \n",
"L 87.128627 147.64968 \n",
"L 87.240887 147.64968 \n",
"L 87.577665 146.513322 \n",
"L 87.914444 147.64968 \n",
"L 88.026703 147.64968 \n",
"L 88.138963 147.081501 \n",
"L 88.475741 151.626933 \n",
"L 89.037039 148.217859 \n",
"L 89.261558 145.376964 \n",
"L 89.486077 147.081501 \n",
"L 89.598337 147.081501 \n",
"L 89.822856 148.217859 \n",
"L 90.159634 153.331469 \n",
"L 90.271894 152.76329 \n",
"L 90.833191 154.467827 \n",
"L 91.057711 154.467827 \n",
"L 91.16997 153.899648 \n",
"L 91.28223 154.467827 \n",
"L 91.394489 153.899648 \n",
"L 91.619008 156.740543 \n",
"L 91.731268 155.604185 \n",
"L 91.843527 157.308722 \n",
"L 91.955787 162.422333 \n",
"L 92.180306 158.44508 \n",
"L 92.292565 162.990512 \n",
"L 92.404825 162.990512 \n",
"L 92.741603 164.126869 \n",
"L 92.966122 159.581438 \n",
"L 93.078382 158.44508 \n",
"L 93.190642 159.581438 \n",
"L 93.302901 159.581438 \n",
"L 93.415161 159.013259 \n",
"L 93.52742 156.172364 \n",
"L 93.63968 156.172364 \n",
"L 93.751939 155.036006 \n",
"L 93.864199 152.195112 \n",
"L 94.088718 153.899648 \n",
"L 94.200977 154.467827 \n",
"L 94.313237 156.172364 \n",
"L 94.425496 154.467827 \n",
"L 94.537756 154.467827 \n",
"L 94.762275 152.195112 \n",
"L 95.099053 154.467827 \n",
"L 95.435832 158.44508 \n",
"L 95.660351 154.467827 \n",
"L 95.772611 156.172364 \n",
"L 95.88487 153.331469 \n",
"L 95.99713 154.467827 \n",
"L 96.109389 152.195112 \n",
"L 96.333908 154.467827 \n",
"L 96.446168 153.331469 \n",
"L 96.558427 153.331469 \n",
"L 96.670687 155.036006 \n",
"L 96.895206 153.899648 \n",
"L 97.007465 154.467827 \n",
"L 97.119725 153.899648 \n",
"L 97.231984 155.036006 \n",
"L 97.344244 154.467827 \n",
"L 97.793282 158.44508 \n",
"L 97.905542 158.44508 \n",
"L 98.130061 157.308722 \n",
"L 98.35458 159.013259 \n",
"L 98.466839 159.013259 \n",
"L 98.803618 155.036006 \n",
"L 99.028137 159.013259 \n",
"L 99.364915 155.036006 \n",
"L 99.477175 155.036006 \n",
"L 99.813953 157.308722 \n",
"L 99.926213 156.740543 \n",
"L 100.038473 155.604185 \n",
"L 100.150732 155.604185 \n",
"L 100.487511 157.308722 \n",
"L 100.59977 156.172364 \n",
"L 100.71203 156.172364 \n",
"L 100.936549 157.308722 \n",
"L 101.161068 156.740543 \n",
"L 101.385587 156.740543 \n",
"L 101.497846 157.876901 \n",
"L 101.610106 157.876901 \n",
"L 101.834625 160.149617 \n",
"L 102.059144 160.149617 \n",
"L 102.395923 158.44508 \n",
"L 102.508182 159.013259 \n",
"L 102.732701 151.058754 \n",
"L 102.844961 151.626933 \n",
"L 102.95722 153.331469 \n",
"L 103.06948 151.626933 \n",
"L 103.181739 153.331469 \n",
"L 103.406258 150.490575 \n",
"L 103.630777 151.058754 \n",
"L 103.855296 150.490575 \n",
"L 103.967556 150.490575 \n",
"L 104.192075 152.195112 \n",
"L 104.304334 150.490575 \n",
"L 104.416594 160.717796 \n",
"L 104.865632 158.44508 \n",
"L 104.977892 160.149617 \n",
"L 105.090151 160.149617 \n",
"L 105.31467 162.422333 \n",
"L 105.763708 160.149617 \n",
"L 105.875968 161.285975 \n",
"L 106.100487 160.149617 \n",
"L 106.212746 160.717796 \n",
"L 106.325006 158.44508 \n",
"L 106.437265 159.581438 \n",
"L 106.549525 159.581438 \n",
"L 106.661784 160.149617 \n",
"L 106.774044 159.581438 \n",
"L 106.886304 161.285975 \n",
"L 106.998563 160.149617 \n",
"L 107.110823 160.717796 \n",
"L 107.335342 159.013259 \n",
"L 107.559861 161.285975 \n",
"L 107.78438 162.422333 \n",
"L 108.008899 161.854154 \n",
"L 108.121158 162.990512 \n",
"L 108.682456 157.308722 \n",
"L 108.794715 160.149617 \n",
"L 109.019234 159.581438 \n",
"L 109.131494 156.740543 \n",
"L 109.356013 157.876901 \n",
"L 109.580532 155.036006 \n",
"L 109.692792 153.899648 \n",
"L 109.805051 154.467827 \n",
"L 110.02957 152.76329 \n",
"L 110.14183 154.467827 \n",
"L 110.254089 154.467827 \n",
"L 110.478608 155.036006 \n",
"L 110.703127 154.467827 \n",
"L 110.815387 154.467827 \n",
"L 111.039906 153.331469 \n",
"L 111.152165 151.058754 \n",
"L 111.264425 152.76329 \n",
"L 111.376685 152.195112 \n",
"L 111.601204 153.331469 \n",
"L 111.713463 155.036006 \n",
"L 111.825723 152.76329 \n",
"L 112.050242 152.76329 \n",
"L 112.274761 154.467827 \n",
"L 112.38702 153.899648 \n",
"L 112.611539 157.876901 \n",
"L 112.723799 157.308722 \n",
"L 112.836058 155.604185 \n",
"L 113.060577 156.740543 \n",
"L 113.172837 159.013259 \n",
"L 113.285096 159.013259 \n",
"L 113.509615 156.740543 \n",
"L 113.621875 156.740543 \n",
"L 113.846394 159.581438 \n",
"L 113.958654 157.876901 \n",
"L 114.183173 159.581438 \n",
"L 114.295432 160.717796 \n",
"L 115.081249 149.922396 \n",
"L 115.193508 150.490575 \n",
"L 115.305768 149.922396 \n",
"L 115.418027 147.64968 \n",
"L 115.530287 143.104248 \n",
"L 115.642546 144.808785 \n",
"L 115.867065 144.240606 \n",
"L 116.091585 148.217859 \n",
"L 116.316104 142.536069 \n",
"L 116.652882 145.376964 \n",
"L 116.765142 144.240606 \n",
"L 116.877401 144.240606 \n",
"L 116.989661 144.808785 \n",
"L 117.21418 144.240606 \n",
"L 117.326439 145.376964 \n",
"L 117.438699 145.376964 \n",
"L 117.550958 144.240606 \n",
"L 117.999996 153.899648 \n",
"L 118.112256 155.036006 \n",
"L 118.224516 154.467827 \n",
"L 118.336775 152.76329 \n",
"L 118.449035 152.76329 \n",
"L 118.673554 149.354217 \n",
"L 118.898073 152.195112 \n",
"L 119.010332 152.195112 \n",
"L 119.234851 151.626933 \n",
"L 119.347111 151.626933 \n",
"L 119.45937 153.331469 \n",
"L 119.796149 152.195112 \n",
"L 119.908408 152.76329 \n",
"L 120.132927 151.626933 \n",
"L 120.357446 153.331469 \n",
"L 120.581966 151.058754 \n",
"L 121.143263 153.331469 \n",
"L 121.255523 156.172364 \n",
"L 121.367782 152.195112 \n",
"L 121.480042 152.76329 \n",
"L 121.704561 150.490575 \n",
"L 121.81682 145.376964 \n",
"L 121.92908 145.945143 \n",
"L 122.153599 145.376964 \n",
"L 122.265858 145.945143 \n",
"L 122.490377 148.217859 \n",
"L 122.602637 145.376964 \n",
"L 122.714897 145.376964 \n",
"L 122.827156 144.240606 \n",
"L 122.939416 146.513322 \n",
"L 123.051675 146.513322 \n",
"L 123.163935 145.376964 \n",
"L 123.388454 148.217859 \n",
"L 123.725232 149.354217 \n",
"L 123.949751 148.786038 \n",
"L 124.062011 150.490575 \n",
"L 124.17427 148.786038 \n",
"L 124.398789 153.899648 \n",
"L 124.735568 152.76329 \n",
"L 125.296866 159.013259 \n",
"L 125.409125 157.876901 \n",
"L 125.521385 157.876901 \n",
"L 125.633644 155.604185 \n",
"L 125.858163 155.036006 \n",
"L 125.970423 156.740543 \n",
"L 126.082682 156.740543 \n",
"L 126.194942 155.604185 \n",
"L 126.307201 155.604185 \n",
"L 126.53172 160.717796 \n",
"L 126.64398 160.149617 \n",
"L 126.868499 160.717796 \n",
"L 126.980758 160.149617 \n",
"L 127.093018 158.44508 \n",
"L 127.317537 159.013259 \n",
"L 127.542056 158.44508 \n",
"L 127.766575 158.44508 \n",
"L 127.878835 159.581438 \n",
"L 127.991094 157.308722 \n",
"L 128.103354 157.308722 \n",
"L 128.327873 156.740543 \n",
"L 128.440132 158.44508 \n",
"L 128.552392 158.44508 \n",
"L 128.664651 159.013259 \n",
"L 129.00143 159.581438 \n",
"L 129.113689 157.876901 \n",
"L 129.338208 160.149617 \n",
"L 129.450468 157.876901 \n",
"L 129.674987 158.44508 \n",
"L 129.787247 157.308722 \n",
"L 129.899506 157.308722 \n",
"L 130.011766 159.581438 \n",
"L 130.236285 156.172364 \n",
"L 130.348544 157.308722 \n",
"L 130.685323 156.172364 \n",
"L 130.797582 153.899648 \n",
"L 130.909842 154.467827 \n",
"L 131.022101 153.899648 \n",
"L 131.35888 160.149617 \n",
"L 131.471139 160.717796 \n",
"L 131.583399 160.149617 \n",
"L 131.695658 158.44508 \n",
"L 131.807918 159.581438 \n",
"L 131.920178 162.422333 \n",
"L 132.032437 162.422333 \n",
"L 132.144697 165.263227 \n",
"L 132.256956 165.263227 \n",
"L 132.481475 165.831406 \n",
"L 132.593735 165.831406 \n",
"L 132.705994 166.967764 \n",
"L 132.818254 170.376838 \n",
"L 132.930513 170.376838 \n",
"L 133.155032 168.672301 \n",
"L 133.267292 167.535943 \n",
"L 133.379551 170.945017 \n",
"L 133.491811 169.808659 \n",
"L 133.60407 170.945017 \n",
"L 133.71633 170.376838 \n",
"L 133.828589 168.104122 \n",
"L 133.940849 168.104122 \n",
"L 134.053108 169.24048 \n",
"L 134.165368 169.24048 \n",
"L 134.389887 167.535943 \n",
"L 134.502147 168.672301 \n",
"L 134.614406 168.104122 \n",
"L 134.726666 168.672301 \n",
"L 134.838925 170.945017 \n",
"L 134.951185 170.376838 \n",
"L 135.175704 170.376838 \n",
"L 135.287963 169.808659 \n",
"L 135.400223 170.376838 \n",
"L 135.512482 169.808659 \n",
"L 135.849261 172.081375 \n",
"L 136.07378 173.217733 \n",
"L 136.298299 169.808659 \n",
"L 136.522818 170.945017 \n",
"L 136.635078 170.376838 \n",
"L 136.747337 168.672301 \n",
"L 136.859597 170.376838 \n",
"L 136.971856 169.24048 \n",
"L 137.084116 169.808659 \n",
"L 137.196375 168.672301 \n",
"L 137.308635 169.24048 \n",
"L 137.420894 168.672301 \n",
"L 137.533154 169.24048 \n",
"L 137.757673 171.513196 \n",
"L 137.982192 171.513196 \n",
"L 138.094451 170.945017 \n",
"L 138.31897 170.945017 \n",
"L 138.880268 169.24048 \n",
"L 139.104787 170.945017 \n",
"L 139.329306 169.24048 \n",
"L 139.441566 169.24048 \n",
"L 139.666085 170.376838 \n",
"L 139.778344 173.217733 \n",
"L 140.002863 173.785912 \n",
"L 140.115123 176.058627 \n",
"L 140.339642 174.35409 \n",
"L 140.67642 175.490448 \n",
"L 140.90094 177.763164 \n",
"L 141.349978 179.467701 \n",
"L 141.574497 183.444954 \n",
"L 141.686756 182.876775 \n",
"L 141.799016 183.444954 \n",
"L 141.911275 182.876775 \n",
"L 142.023535 184.013133 \n",
"L 142.135794 188.558564 \n",
"L 142.248054 187.990385 \n",
"L 142.360313 183.444954 \n",
"L 142.584832 184.013133 \n",
"L 143.14613 176.058627 \n",
"L 143.25839 176.626806 \n",
"L 143.707428 189.126743 \n",
"L 143.819687 186.854027 \n",
"L 143.931947 187.422206 \n",
"L 144.044206 185.717669 \n",
"L 144.156466 186.854027 \n",
"L 144.268725 189.126743 \n",
"L 144.717763 182.308596 \n",
"L 144.830023 198.217606 \n",
"L 145.166801 172.081375 \n",
"L 145.279061 178.899522 \n",
"L 145.39132 173.217733 \n",
"L 145.50358 174.922269 \n",
"L 145.728099 174.922269 \n",
"L 145.840359 172.649554 \n",
"L 145.952618 179.467701 \n",
"L 146.064878 179.467701 \n",
"L 146.177137 180.604059 \n",
"L 146.289397 182.876775 \n",
"L 146.401656 181.740417 \n",
"L 146.513916 189.694922 \n",
"L 146.626175 189.694922 \n",
"L 146.850694 191.967638 \n",
"L 147.075213 189.126743 \n",
"L 147.187473 184.013133 \n",
"L 147.299732 187.422206 \n",
"L 147.411992 182.308596 \n",
"L 147.524251 184.581312 \n",
"L 147.636511 184.013133 \n",
"L 147.748771 187.422206 \n",
"L 147.86103 194.808533 \n",
"L 147.97329 191.967638 \n",
"L 148.085549 192.535817 \n",
"L 148.197809 197.649427 \n",
"L 148.310068 194.240354 \n",
"L 148.646847 199.353964 \n",
"L 148.759106 201.058501 \n",
"L 148.983625 223.331116 \n",
"L 149.095885 227.308368 \n",
"L 149.208144 222.194758 \n",
"L 149.320404 229.581084 \n",
"L 149.432663 225.603832 \n",
"L 149.544923 227.876547 \n",
"L 149.657182 232.421979 \n",
"L 149.769442 231.285621 \n",
"L 149.881701 231.285621 \n",
"L 150.106221 210.831179 \n",
"L 150.21848 215.376611 \n",
"L 150.555259 200.490322 \n",
"L 150.779778 204.467575 \n",
"L 150.892037 204.467575 \n",
"L 151.004297 198.785785 \n",
"L 151.228816 199.353964 \n",
"L 151.341075 199.353964 \n",
"L 151.565594 202.763038 \n",
"L 151.790113 206.74029 \n",
"L 152.014632 199.353964 \n",
"L 152.239152 215.376611 \n",
"L 152.351411 214.808432 \n",
"L 152.463671 215.376611 \n",
"L 152.57593 213.672074 \n",
"L 152.800449 218.217505 \n",
"L 152.912709 216.512968 \n",
"L 153.249487 225.603832 \n",
"L 153.474006 223.899295 \n",
"L 153.586266 223.899295 \n",
"L 153.698525 224.467474 \n",
"L 153.810785 219.922042 \n",
"L 153.923044 220.490221 \n",
"L 154.035304 222.762937 \n",
"L 154.147563 219.353863 \n",
"L 154.259823 227.876547 \n",
"L 154.372082 227.876547 \n",
"L 154.596602 231.285621 \n",
"L 154.708861 231.285621 \n",
"L 154.821121 227.876547 \n",
"L 155.270159 232.990158 \n",
"L 155.382418 231.8538 \n",
"L 155.494678 228.444726 \n",
"L 155.606937 232.421979 \n",
"L 155.719197 231.285621 \n",
"L 155.831456 233.558337 \n",
"L 156.055975 229.581084 \n",
"L 156.168235 234.126516 \n",
"L 156.280494 231.285621 \n",
"L 156.392754 232.421979 \n",
"L 156.505013 232.421979 \n",
"L 156.617273 230.717442 \n",
"L 156.954052 233.558337 \n",
"L 157.066311 251.740063 \n",
"L 157.178571 251.171884 \n",
"L 157.40309 246.626453 \n",
"L 157.515349 247.762811 \n",
"L 157.739868 242.081021 \n",
"L 157.852128 243.785558 \n",
"L 157.964387 236.399232 \n",
"L 158.188906 244.921916 \n",
"L 158.413425 230.717442 \n",
"L 158.525685 231.8538 \n",
"L 158.637944 231.8538 \n",
"L 158.862463 228.444726 \n",
"L 159.086983 232.990158 \n",
"L 159.199242 224.467474 \n",
"L 159.311502 225.035653 \n",
"L 159.536021 220.490221 \n",
"L 159.76054 228.444726 \n",
"L 159.985059 235.262874 \n",
"L 160.097318 232.421979 \n",
"L 160.209578 234.126516 \n",
"L 160.321837 233.558337 \n",
"L 160.434097 231.8538 \n",
"L 160.546356 232.990158 \n",
"L 160.658616 235.262874 \n",
"L 160.770875 235.262874 \n",
"L 160.995394 236.399232 \n",
"L 161.107654 238.671947 \n",
"L 161.219913 236.399232 \n",
"L 161.556692 239.240126 \n",
"L 161.668952 236.399232 \n",
"L 161.893471 236.399232 \n",
"L 162.00573 241.512842 \n",
"L 162.230249 237.535589 \n",
"L 162.454768 248.330989 \n",
"L 162.679287 240.376484 \n",
"L 162.791547 240.944663 \n",
"L 163.016066 239.240126 \n",
"L 163.128325 239.808305 \n",
"L 163.577363 230.717442 \n",
"L 163.801883 235.262874 \n",
"L 163.914142 234.126516 \n",
"L 164.026402 236.967411 \n",
"L 164.138661 236.399232 \n",
"L 164.250921 237.535589 \n",
"L 164.36318 234.694695 \n",
"L 164.47544 237.535589 \n",
"L 164.587699 236.399232 \n",
"L 164.812218 236.967411 \n",
"L 164.924478 231.285621 \n",
"L 165.036737 236.399232 \n",
"L 165.148997 235.262874 \n",
"L 165.261256 238.671947 \n",
"L 165.373516 235.262874 \n",
"L 165.485775 236.967411 \n",
"L 165.598035 236.967411 \n",
"L 165.710294 235.262874 \n",
"L 165.934814 240.944663 \n",
"L 166.047073 236.399232 \n",
"L 166.383852 246.058274 \n",
"L 166.608371 243.217379 \n",
"L 166.72063 245.490095 \n",
"L 166.83289 244.353737 \n",
"L 166.945149 246.626453 \n",
"L 167.057409 244.353737 \n",
"L 167.169668 245.490095 \n",
"L 167.281928 244.921916 \n",
"L 167.506447 240.944663 \n",
"L 167.618706 241.512842 \n",
"L 167.843225 248.330989 \n",
"L 167.955485 247.194632 \n",
"L 168.180004 249.467347 \n",
"L 168.404523 245.490095 \n",
"L 168.516783 245.490095 \n",
"L 168.629042 248.899168 \n",
"L 168.853561 244.353737 \n",
"L 168.965821 245.490095 \n",
"L 169.19034 250.035526 \n",
"L 169.414859 245.490095 \n",
"L 169.639378 246.058274 \n",
"L 169.751637 249.467347 \n",
"L 169.863897 248.899168 \n",
"L 169.976156 249.467347 \n",
"L 170.312935 246.058274 \n",
"L 170.537454 249.467347 \n",
"L 170.649714 246.058274 \n",
"L 170.761973 246.058274 \n",
"L 170.874233 249.467347 \n",
"L 170.986492 248.330989 \n",
"L 171.098752 248.330989 \n",
"L 171.211011 251.171884 \n",
"L 171.54779 246.626453 \n",
"L 171.660049 247.762811 \n",
"L 171.772309 246.626453 \n",
"L 171.884568 248.899168 \n",
"L 171.996828 247.762811 \n",
"L 172.109087 244.921916 \n",
"L 172.333606 248.330989 \n",
"L 172.558125 244.353737 \n",
"L 172.670385 247.194632 \n",
"L 172.894904 243.785558 \n",
"L 173.007164 242.6492 \n",
"L 173.119423 242.6492 \n",
"L 173.231683 241.512842 \n",
"L 173.568461 227.308368 \n",
"L 173.680721 229.581084 \n",
"L 173.79298 227.876547 \n",
"L 173.90524 223.899295 \n",
"L 174.017499 223.899295 \n",
"L 174.242018 228.444726 \n",
"L 174.466537 232.990158 \n",
"L 174.578797 232.990158 \n",
"L 174.691056 231.285621 \n",
"L 174.803316 232.990158 \n",
"L 175.252354 227.308368 \n",
"L 175.364614 229.012905 \n",
"L 175.476873 227.876547 \n",
"L 175.813652 233.558337 \n",
"L 175.925911 233.558337 \n",
"L 176.038171 231.8538 \n",
"L 176.15043 234.126516 \n",
"L 176.26269 228.444726 \n",
"L 176.374949 229.012905 \n",
"L 176.599468 235.262874 \n",
"L 176.711728 232.421979 \n",
"L 176.936247 235.262874 \n",
"L 177.160766 232.421979 \n",
"L 177.385285 236.399232 \n",
"L 177.497545 235.831053 \n",
"L 177.834323 230.149263 \n",
"L 178.058842 230.717442 \n",
"L 178.171102 230.717442 \n",
"L 178.395621 226.740189 \n",
"L 178.50788 231.8538 \n",
"L 178.732399 229.012905 \n",
"L 178.956918 239.240126 \n",
"L 179.069178 238.103768 \n",
"L 179.181437 238.103768 \n",
"L 179.293697 239.808305 \n",
"L 179.405956 236.399232 \n",
"L 179.630476 238.671947 \n",
"L 179.742735 237.535589 \n",
"L 179.854995 240.376484 \n",
"L 179.967254 235.262874 \n",
"L 180.079514 236.967411 \n",
"L 180.191773 240.376484 \n",
"L 180.304033 239.808305 \n",
"L 180.416292 238.103768 \n",
"L 180.640811 242.081021 \n",
"L 180.753071 240.944663 \n",
"L 180.97759 241.512842 \n",
"L 181.089849 245.490095 \n",
"L 181.426628 235.831053 \n",
"L 181.538887 235.831053 \n",
"L 181.651147 234.126516 \n",
"L 181.875666 235.831053 \n",
"L 181.987926 234.694695 \n",
"L 182.100185 235.262874 \n",
"L 182.212445 238.103768 \n",
"L 182.436964 235.831053 \n",
"L 182.661483 248.330989 \n",
"L 182.773742 247.194632 \n",
"L 182.886002 247.194632 \n",
"L 182.998261 250.603705 \n",
"L 183.22278 246.626453 \n",
"L 183.33504 248.899168 \n",
"L 183.447299 246.626453 \n",
"L 183.559559 248.899168 \n",
"L 183.784078 247.762811 \n",
"L 183.896337 246.058274 \n",
"L 184.008597 246.058274 \n",
"L 184.120857 246.626453 \n",
"L 184.233116 249.467347 \n",
"L 184.457635 245.490095 \n",
"L 184.682154 247.762811 \n",
"L 184.906673 246.626453 \n",
"L 185.131192 248.330989 \n",
"L 185.243452 251.740063 \n",
"L 185.355711 250.603705 \n",
"L 185.467971 247.762811 \n",
"L 185.58023 247.762811 \n",
"L 185.804749 252.308242 \n",
"L 185.917009 250.035526 \n",
"L 186.029268 252.876421 \n",
"L 186.141528 250.035526 \n",
"L 186.253787 250.035526 \n",
"L 186.366047 250.603705 \n",
"L 186.478307 250.035526 \n",
"L 186.815085 255.149137 \n",
"L 186.927345 252.308242 \n",
"L 187.039604 256.285495 \n",
"L 187.264123 255.717316 \n",
"L 187.376383 256.853674 \n",
"L 187.488642 256.285495 \n",
"L 187.713161 257.990032 \n",
"L 187.825421 256.853674 \n",
"L 187.93768 258.558211 \n",
"L 188.04994 257.990032 \n",
"L 188.162199 258.558211 \n",
"L 188.386718 261.399105 \n",
"L 188.498978 263.103642 \n",
"L 188.611238 263.103642 \n",
"L 188.835757 260.830926 \n",
"L 189.060276 260.262747 \n",
"L 189.172535 260.262747 \n",
"L 189.284795 261.967284 \n",
"L 189.509314 259.694568 \n",
"L 189.621573 261.967284 \n",
"L 189.733833 261.967284 \n",
"L 189.846092 263.671821 \n",
"L 189.958352 260.830926 \n",
"L 190.182871 263.103642 \n",
"L 190.40739 259.126389 \n",
"L 190.519649 260.262747 \n",
"L 190.856428 260.262747 \n",
"L 190.968688 259.694568 \n",
"L 191.080947 261.967284 \n",
"L 191.193207 260.830926 \n",
"L 191.417726 262.535463 \n",
"L 191.529985 263.671821 \n",
"L 191.754504 264.24 \n",
"L 191.866764 263.671821 \n",
"L 192.091283 259.694568 \n",
"L 192.203542 261.967284 \n",
"L 192.315802 259.126389 \n",
"L 192.428061 259.126389 \n",
"L 192.540321 258.558211 \n",
"L 192.76484 259.126389 \n",
"L 192.877099 259.126389 \n",
"L 192.989359 257.421853 \n",
"L 193.101618 258.558211 \n",
"L 193.550657 251.171884 \n",
"L 193.775176 246.626453 \n",
"L 194.336473 249.467347 \n",
"L 194.560992 246.626453 \n",
"L 194.785511 240.376484 \n",
"L 194.897771 239.808305 \n",
"L 195.01003 240.944663 \n",
"L 195.234549 240.376484 \n",
"L 195.346809 236.967411 \n",
"L 195.459069 237.535589 \n",
"L 195.571328 239.240126 \n",
"L 195.683588 237.535589 \n",
"L 196.020366 243.217379 \n",
"L 196.244885 234.126516 \n",
"L 196.357145 236.399232 \n",
"L 196.469404 236.399232 \n",
"L 196.581664 236.967411 \n",
"L 196.693923 239.808305 \n",
"L 196.918442 237.535589 \n",
"L 197.142961 238.103768 \n",
"L 197.255221 242.081021 \n",
"L 197.47974 237.535589 \n",
"L 197.704259 240.944663 \n",
"L 197.816519 240.376484 \n",
"L 197.928778 243.217379 \n",
"L 198.153297 243.217379 \n",
"L 198.377816 245.490095 \n",
"L 198.490076 244.921916 \n",
"L 198.602335 246.058274 \n",
"L 198.714595 246.058274 \n",
"L 198.939114 248.899168 \n",
"L 199.051373 247.762811 \n",
"L 199.388152 250.603705 \n",
"L 199.612671 248.899168 \n",
"L 199.72493 247.194632 \n",
"L 199.83719 249.467347 \n",
"L 200.286228 243.217379 \n",
"L 200.510747 245.490095 \n",
"L 200.735266 240.944663 \n",
"L 200.847526 243.217379 \n",
"L 200.959785 242.6492 \n",
"L 201.072045 244.921916 \n",
"L 201.184304 244.353737 \n",
"L 201.296564 250.035526 \n",
"L 201.521083 248.330989 \n",
"L 201.633342 250.603705 \n",
"L 202.19464 247.762811 \n",
"L 202.531419 251.740063 \n",
"L 202.643678 250.603705 \n",
"L 202.755938 251.171884 \n",
"L 202.868197 252.876421 \n",
"L 203.204976 248.899168 \n",
"L 203.317235 249.467347 \n",
"L 203.429495 251.171884 \n",
"L 203.541754 251.171884 \n",
"L 203.654014 250.035526 \n",
"L 203.766273 250.603705 \n",
"L 203.990792 250.035526 \n",
"L 204.215311 243.217379 \n",
"L 204.327571 245.490095 \n",
"L 204.43983 244.921916 \n",
"L 204.66435 241.512842 \n",
"L 204.776609 243.217379 \n",
"L 204.888869 242.6492 \n",
"L 205.001128 238.103768 \n",
"L 205.113388 238.103768 \n",
"L 205.225647 236.399232 \n",
"L 205.337907 237.535589 \n",
"L 205.562426 233.558337 \n",
"L 206.011464 240.944663 \n",
"L 206.123723 240.944663 \n",
"L 206.348242 241.512842 \n",
"L 206.460502 240.944663 \n",
"L 206.685021 242.6492 \n",
"L 207.358578 245.490095 \n",
"L 207.470838 244.921916 \n",
"L 207.583097 243.217379 \n",
"L 207.695357 243.217379 \n",
"L 207.807616 241.512842 \n",
"L 207.919876 242.081021 \n",
"L 208.032135 241.512842 \n",
"L 208.481173 243.785558 \n",
"L 208.593433 243.217379 \n",
"L 208.705692 244.353737 \n",
"L 208.930211 243.785558 \n",
"L 209.154731 245.490095 \n",
"L 209.37925 247.194632 \n",
"L 209.940547 244.353737 \n",
"L 210.165066 240.944663 \n",
"L 210.277326 239.808305 \n",
"L 210.389585 239.808305 \n",
"L 210.501845 241.512842 \n",
"L 210.614104 240.376484 \n",
"L 210.838623 236.399232 \n",
"L 211.175402 238.671947 \n",
"L 211.512181 234.694695 \n",
"L 211.848959 237.535589 \n",
"L 211.961219 234.126516 \n",
"L 212.185738 234.126516 \n",
"L 212.522516 236.399232 \n",
"L 212.747035 235.262874 \n",
"L 212.859295 232.990158 \n",
"L 213.196073 234.694695 \n",
"L 213.420592 231.8538 \n",
"L 213.532852 235.262874 \n",
"L 213.757371 231.8538 \n",
"L 214.430928 228.444726 \n",
"L 214.655447 228.444726 \n",
"L 214.767707 230.149263 \n",
"L 214.879966 229.012905 \n",
"L 215.104485 229.581084 \n",
"L 215.216745 230.717442 \n",
"L 215.329004 230.717442 \n",
"L 215.441264 230.149263 \n",
"L 215.553523 231.8538 \n",
"L 215.665783 231.285621 \n",
"L 216.002562 231.285621 \n",
"L 216.676119 235.831053 \n",
"L 216.900638 235.262874 \n",
"L 217.461935 231.8538 \n",
"L 217.910973 226.740189 \n",
"L 218.023233 227.876547 \n",
"L 218.360012 227.876547 \n",
"L 218.472271 230.149263 \n",
"L 218.80905 228.444726 \n",
"L 218.921309 229.012905 \n",
"L 219.033569 228.444726 \n",
"L 219.258088 231.8538 \n",
"L 219.482607 231.285621 \n",
"L 219.707126 234.126516 \n",
"L 219.931645 232.990158 \n",
"L 220.043904 234.694695 \n",
"L 220.156164 232.990158 \n",
"L 220.268423 232.990158 \n",
"L 220.380683 233.558337 \n",
"L 220.829721 231.8538 \n",
"L 221.05424 231.8538 \n",
"L 221.278759 230.717442 \n",
"L 221.391019 231.285621 \n",
"L 221.503278 232.990158 \n",
"L 221.840057 230.717442 \n",
"L 221.952316 231.285621 \n",
"L 222.064576 232.421979 \n",
"L 222.289095 231.285621 \n",
"L 222.513614 232.990158 \n",
"L 222.738133 232.990158 \n",
"L 223.074912 236.399232 \n",
"L 223.187171 235.831053 \n",
"L 223.299431 238.103768 \n",
"L 223.41169 236.967411 \n",
"L 223.748469 237.535589 \n",
"L 223.860728 236.967411 \n",
"L 224.085247 238.671947 \n",
"L 224.197507 239.808305 \n",
"L 224.422026 239.240126 \n",
"L 224.646545 239.240126 \n",
"L 224.871064 238.103768 \n",
"L 225.207843 239.240126 \n",
"L 225.320102 238.671947 \n",
"L 225.432362 240.376484 \n",
"L 225.544621 238.671947 \n",
"L 225.656881 239.240126 \n",
"L 225.8814 236.967411 \n",
"L 226.105919 235.831053 \n",
"L 226.442697 236.399232 \n",
"L 226.779476 236.399232 \n",
"L 226.891735 231.8538 \n",
"L 227.003995 232.421979 \n",
"L 227.340774 232.990158 \n",
"L 227.565293 234.694695 \n",
"L 227.677552 234.126516 \n",
"L 227.789812 234.694695 \n",
"L 227.902071 236.399232 \n",
"L 228.351109 236.399232 \n",
"L 228.575628 235.831053 \n",
"L 228.687888 236.399232 \n",
"L 228.912407 234.126516 \n",
"L 229.136926 235.262874 \n",
"L 229.249185 238.671947 \n",
"L 229.361445 237.535589 \n",
"L 229.810483 238.671947 \n",
"L 229.922743 238.103768 \n",
"L 230.035002 239.240126 \n",
"L 230.147262 238.103768 \n",
"L 230.48404 240.376484 \n",
"L 230.933078 237.535589 \n",
"L 231.045338 238.671947 \n",
"L 231.157597 237.535589 \n",
"L 231.269857 237.535589 \n",
"L 231.943414 235.831053 \n",
"L 232.167933 236.399232 \n",
"L 232.392452 235.831053 \n",
"L 232.616971 233.558337 \n",
"L 232.84149 230.149263 \n",
"L 232.95375 229.581084 \n",
"L 233.290528 230.717442 \n",
"L 233.627307 229.581084 \n",
"L 233.739566 230.717442 \n",
"L 234.076345 231.285621 \n",
"L 234.300864 229.581084 \n",
"L 234.413124 229.581084 \n",
"L 234.749902 226.740189 \n",
"L 234.862162 226.740189 \n",
"L 235.19894 219.353863 \n",
"L 235.3112 218.785684 \n",
"L 235.423459 220.490221 \n",
"L 235.535719 219.922042 \n",
"L 235.760238 214.808432 \n",
"L 235.984757 210.831179 \n",
"L 236.097016 210.831179 \n",
"L 236.209276 211.399358 \n",
"L 236.321536 210.263 \n",
"L 236.658314 210.263 \n",
"L 236.770574 211.967537 \n",
"L 236.995093 210.263 \n",
"L 237.107352 212.535716 \n",
"L 237.66865 214.808432 \n",
"L 237.780909 217.649326 \n",
"L 238.005428 217.081147 \n",
"L 238.117688 217.649326 \n",
"L 238.229947 217.081147 \n",
"L 238.454466 218.785684 \n",
"L 238.566726 218.217505 \n",
"L 238.678986 219.353863 \n",
"L 238.791245 218.217505 \n",
"L 238.903505 218.217505 \n",
"L 239.240283 215.944789 \n",
"L 239.352543 217.081147 \n",
"L 239.577062 220.490221 \n",
"L 239.689321 221.0584 \n",
"L 240.0261 219.353863 \n",
"L 240.138359 220.490221 \n",
"L 240.475138 220.490221 \n",
"L 240.699657 218.785684 \n",
"L 240.811916 217.081147 \n",
"L 241.036436 215.944789 \n",
"L 241.148695 217.081147 \n",
"L 241.373214 216.512968 \n",
"L 242.27129 219.353863 \n",
"L 242.38355 218.217505 \n",
"L 242.608069 218.217505 \n",
"L 242.944847 215.944789 \n",
"L 243.169367 219.353863 \n",
"L 243.281626 217.081147 \n",
"L 243.393886 217.081147 \n",
"L 243.506145 218.217505 \n",
"L 243.955183 217.081147 \n",
"L 244.067443 220.490221 \n",
"L 244.291962 217.649326 \n",
"L 244.516481 219.922042 \n",
"L 244.853259 218.217505 \n",
"L 244.965519 219.353863 \n",
"L 245.077778 219.353863 \n",
"L 245.190038 220.490221 \n",
"L 245.302297 220.490221 \n",
"L 245.414557 219.353863 \n",
"L 245.751336 219.353863 \n",
"L 245.863595 220.490221 \n",
"L 246.088114 219.353863 \n",
"L 246.424893 222.762937 \n",
"L 246.649412 221.0584 \n",
"L 246.761671 222.762937 \n",
"L 247.09845 225.603832 \n",
"L 247.322969 230.717442 \n",
"L 247.435228 230.149263 \n",
"L 247.659748 230.717442 \n",
"L 247.772007 230.717442 \n",
"L 247.996526 232.990158 \n",
"L 248.108786 232.421979 \n",
"L 248.221045 229.581084 \n",
"L 248.333305 230.149263 \n",
"L 248.445564 229.581084 \n",
"L 248.557824 230.149263 \n",
"L 248.670083 231.8538 \n",
"L 248.782343 231.8538 \n",
"L 248.894602 232.421979 \n",
"L 249.231381 232.990158 \n",
"L 249.34364 231.8538 \n",
"L 249.4559 232.421979 \n",
"L 249.792678 230.717442 \n",
"L 250.129457 231.8538 \n",
"L 250.241717 231.285621 \n",
"L 250.353976 229.581084 \n",
"L 250.466236 229.581084 \n",
"L 250.803014 231.8538 \n",
"L 250.915274 229.581084 \n",
"L 251.139793 232.421979 \n",
"L 251.252052 231.8538 \n",
"L 251.588831 233.558337 \n",
"L 251.70109 232.421979 \n",
"L 251.81335 232.990158 \n",
"L 251.925609 232.421979 \n",
"L 252.037869 225.035653 \n",
"L 252.262388 227.308368 \n",
"L 252.374648 227.308368 \n",
"L 252.486907 226.740189 \n",
"L 252.599167 227.308368 \n",
"L 252.711426 226.740189 \n",
"L 252.935945 228.444726 \n",
"L 253.272724 226.172011 \n",
"L 253.384983 223.899295 \n",
"L 253.609502 221.626579 \n",
"L 253.721762 221.626579 \n",
"L 253.834021 221.0584 \n",
"L 254.05854 221.626579 \n",
"L 254.1708 224.467474 \n",
"L 254.732098 222.194758 \n",
"L 254.844357 218.217505 \n",
"L 254.956617 218.785684 \n",
"L 255.181136 215.944789 \n",
"L 255.293395 215.944789 \n",
"L 255.630174 213.672074 \n",
"L 255.742433 214.240253 \n",
"L 255.854693 214.808432 \n",
"L 256.079212 218.217505 \n",
"L 256.191471 218.217505 \n",
"L 256.41599 217.649326 \n",
"L 256.640509 218.217505 \n",
"L 256.865029 217.081147 \n",
"L 257.089548 217.081147 \n",
"L 257.201807 216.512968 \n",
"L 257.314067 214.808432 \n",
"L 257.426326 214.808432 \n",
"L 257.650845 211.967537 \n",
"L 257.763105 213.672074 \n",
"L 257.987624 213.672074 \n",
"L 258.099883 213.103895 \n",
"L 258.324402 213.672074 \n",
"L 258.436662 214.808432 \n",
"L 258.548921 214.808432 \n",
"L 258.77344 218.217505 \n",
"L 258.8857 216.512968 \n",
"L 259.222479 217.081147 \n",
"L 259.446998 214.808432 \n",
"L 259.671517 216.512968 \n",
"L 259.896036 214.240253 \n",
"L 260.008295 214.808432 \n",
"L 260.232814 211.967537 \n",
"L 260.345074 213.103895 \n",
"L 260.569593 209.126642 \n",
"L 260.681852 210.263 \n",
"L 260.794112 210.263 \n",
"L 261.018631 211.967537 \n",
"L 261.24315 209.126642 \n",
"L 261.35541 209.126642 \n",
"L 261.579929 205.717568 \n",
"L 261.804448 206.853926 \n",
"L 261.916707 209.126642 \n",
"L 262.028967 207.990284 \n",
"L 262.141226 207.990284 \n",
"L 262.478005 206.285747 \n",
"L 262.590264 206.853926 \n",
"L 263.039302 204.58121 \n",
"L 263.71286 203.444853 \n",
"L 263.825119 204.58121 \n",
"L 264.049638 204.013032 \n",
"L 264.161898 199.4676 \n",
"L 264.274157 199.4676 \n",
"L 264.498676 198.331242 \n",
"L 264.723195 198.331242 \n",
"L 264.947714 199.4676 \n",
"L 265.059974 198.331242 \n",
"L 265.172233 198.899421 \n",
"L 265.284493 197.763063 \n",
"L 265.396752 198.331242 \n",
"L 265.509012 197.194884 \n",
"L 265.621271 198.899421 \n",
"L 265.733531 197.763063 \n",
"L 265.84579 197.763063 \n",
"L 266.07031 198.899421 \n",
"L 266.182569 205.149389 \n",
"L 266.407088 205.149389 \n",
"L 266.519348 206.853926 \n",
"L 266.631607 205.149389 \n",
"L 266.856126 205.717568 \n",
"L 266.968386 205.717568 \n",
"L 267.192905 207.990284 \n",
"L 267.754202 210.263 \n",
"L 267.866462 209.126642 \n",
"L 267.978721 210.263 \n",
"L 268.090981 209.126642 \n",
"L 268.203241 209.126642 \n",
"L 268.3155 208.558463 \n",
"L 268.42776 205.717568 \n",
"L 268.652279 205.149389 \n",
"L 268.764538 205.717568 \n",
"L 269.101317 203.444853 \n",
"L 269.213576 204.013032 \n",
"L 269.325836 204.58121 \n",
"L 269.662614 201.740316 \n",
"L 269.887133 201.172137 \n",
"L 270.111652 201.172137 \n",
"L 270.336171 202.876674 \n",
"L 270.560691 206.285747 \n",
"L 270.78521 206.853926 \n",
"L 270.897469 206.285747 \n",
"L 271.009729 203.444853 \n",
"L 271.683286 203.444853 \n",
"L 272.132324 204.58121 \n",
"L 272.356843 203.444853 \n",
"L 272.469102 204.013032 \n",
"L 272.581362 203.444853 \n",
"L 272.805881 204.013032 \n",
"L 273.0304 203.444853 \n",
"L 273.254919 203.444853 \n",
"L 273.591698 202.876674 \n",
"L 273.703957 201.172137 \n",
"L 274.040736 201.172137 \n",
"L 274.152995 203.444853 \n",
"L 274.265255 203.444853 \n",
"L 274.377514 204.58121 \n",
"L 274.489774 203.444853 \n",
"L 275.051072 202.308495 \n",
"L 275.275591 202.308495 \n",
"L 275.50011 203.444853 \n",
"L 275.724629 202.308495 \n",
"L 275.949148 204.58121 \n",
"L 276.061407 203.444853 \n",
"L 276.285926 205.149389 \n",
"L 276.510445 202.308495 \n",
"L 276.622705 202.876674 \n",
"L 277.071743 204.013032 \n",
"L 277.408522 203.444853 \n",
"L 277.520781 204.013032 \n",
"L 277.633041 202.876674 \n",
"L 277.969819 202.308495 \n",
"L 278.306598 203.444853 \n",
"L 278.418857 202.876674 \n",
"L 278.643376 204.58121 \n",
"L 278.755636 205.717568 \n",
"L 279.092414 205.717568 \n",
"L 279.429193 204.58121 \n",
"L 279.541453 203.444853 \n",
"L 280.327269 203.444853 \n",
"L 280.439529 202.876674 \n",
"L 280.888567 203.444853 \n",
"L 281.000826 204.013032 \n",
"L 281.449864 204.58121 \n",
"L 281.786643 206.285747 \n",
"L 282.123422 205.149389 \n",
"L 282.235681 205.717568 \n",
"L 282.347941 205.149389 \n",
"L 282.4602 205.717568 \n",
"L 282.684719 203.444853 \n",
"L 282.909238 204.013032 \n",
"L 283.021498 202.876674 \n",
"L 283.246017 204.013032 \n",
"L 283.358276 203.444853 \n",
"L 283.582795 201.172137 \n",
"L 283.807314 201.740316 \n",
"L 283.919574 200.603958 \n",
"L 284.256353 200.035779 \n",
"L 284.368612 197.763063 \n",
"L 284.480872 198.331242 \n",
"L 284.705391 197.763063 \n",
"L 285.042169 197.763063 \n",
"L 285.266688 198.331242 \n",
"L 286.052505 197.763063 \n",
"L 286.389284 199.4676 \n",
"L 286.950581 198.899421 \n",
"L 287.062841 197.194884 \n",
"L 287.399619 198.331242 \n",
"L 287.511879 198.899421 \n",
"L 287.848657 198.899421 \n",
"L 287.960917 198.331242 \n",
"L 288.185436 201.740316 \n",
"L 288.297695 201.172137 \n",
"L 288.409955 202.308495 \n",
"L 288.634474 201.172137 \n",
"L 288.858993 201.740316 \n",
"L 288.971253 201.172137 \n",
"L 289.195772 202.308495 \n",
"L 289.981588 198.899421 \n",
"L 290.430626 197.763063 \n",
"L 290.542886 198.899421 \n",
"L 290.879665 195.490347 \n",
"L 291.328703 195.490347 \n",
"L 291.665481 196.626705 \n",
"L 292.00226 197.194884 \n",
"L 292.226779 196.626705 \n",
"L 292.563557 196.058526 \n",
"L 293.012595 197.194884 \n",
"L 293.237115 198.899421 \n",
"L 293.349374 198.331242 \n",
"L 293.461634 199.4676 \n",
"L 293.573893 201.740316 \n",
"L 293.686153 200.603958 \n",
"L 293.798412 201.172137 \n",
"L 294.022931 200.603958 \n",
"L 294.471969 202.308495 \n",
"L 294.584229 201.172137 \n",
"L 294.921007 204.58121 \n",
"L 295.145526 205.149389 \n",
"L 295.370045 204.58121 \n",
"L 295.819084 204.58121 \n",
"L 296.155862 203.444853 \n",
"L 296.268122 204.013032 \n",
"L 296.6049 201.172137 \n",
"L 296.71716 196.626705 \n",
"L 296.829419 197.194884 \n",
"L 297.166198 201.172137 \n",
"L 297.727496 197.763063 \n",
"L 297.839755 198.331242 \n",
"L 298.176534 197.763063 \n",
"L 298.288793 198.331242 \n",
"L 298.625572 202.308495 \n",
"L 298.850091 200.035779 \n",
"L 299.299129 199.4676 \n",
"L 300.084946 195.490347 \n",
"L 300.197205 196.626705 \n",
"L 300.646243 196.626705 \n",
"L 300.983022 197.763063 \n",
"L 301.095281 197.763063 \n",
"L 301.207541 198.899421 \n",
"L 301.3198 198.899421 \n",
"L 301.544319 197.763063 \n",
"L 301.881098 200.035779 \n",
"L 301.993357 199.4676 \n",
"L 302.330136 197.194884 \n",
"L 302.442396 196.058526 \n",
"L 302.554655 196.626705 \n",
"L 302.891434 194.922168 \n",
"L 303.003693 197.763063 \n",
"L 303.67725 197.763063 \n",
"L 303.78951 196.626705 \n",
"L 304.014029 196.626705 \n",
"L 304.238548 196.058526 \n",
"L 304.575327 196.626705 \n",
"L 304.687586 196.626705 \n",
"L 305.136624 195.490347 \n",
"L 305.697922 195.490347 \n",
"L 306.0347 194.353989 \n",
"L 306.14696 194.353989 \n",
"L 306.259219 194.922168 \n",
"L 306.483738 194.353989 \n",
"L 306.708257 194.353989 \n",
"L 307.157296 196.058526 \n",
"L 307.606334 194.353989 \n",
"L 308.055372 193.217632 \n",
"L 308.279891 194.353989 \n",
"L 308.841188 191.967638 \n",
"L 309.065708 191.967638 \n",
"L 309.177967 193.217632 \n",
"L 309.514746 193.78581 \n",
"L 310.076043 194.353989 \n",
"L 310.412822 193.78581 \n",
"L 310.525081 193.217632 \n",
"L 310.7496 194.353989 \n",
"L 311.198638 192.649453 \n",
"L 311.647677 193.217632 \n",
"L 311.872196 194.922168 \n",
"L 312.208974 193.78581 \n",
"L 312.321234 194.353989 \n",
"L 312.433493 196.626705 \n",
"L 312.545753 196.626705 \n",
"L 312.770272 199.4676 \n",
"L 312.882531 200.035779 \n",
"L 312.994791 198.899421 \n",
"L 313.10705 198.899421 \n",
"L 313.331569 198.331242 \n",
"L 313.668348 200.035779 \n",
"L 313.892867 202.308495 \n",
"L 314.229646 202.876674 \n",
"L 314.454165 205.149389 \n",
"L 314.790943 205.717568 \n",
"L 315.127722 205.717568 \n",
"L 315.239981 205.149389 \n",
"L 315.4645 206.285747 \n",
"L 315.57676 205.717568 \n",
"L 315.801279 206.285747 \n",
"L 315.913539 205.717568 \n",
"L 316.362577 206.285747 \n",
"L 316.474836 205.717568 \n",
"L 316.811615 206.853926 \n",
"L 317.148393 204.58121 \n",
"L 317.372912 202.308495 \n",
"L 317.709691 202.876674 \n",
"L 318.158729 201.172137 \n",
"L 318.607767 201.172137 \n",
"L 318.720027 200.035779 \n",
"L 318.832286 200.603958 \n",
"L 319.281324 201.172137 \n",
"L 319.842622 200.035779 \n",
"L 319.954881 199.4676 \n",
"L 320.516179 200.035779 \n",
"L 320.740698 199.4676 \n",
"L 320.852958 200.035779 \n",
"L 321.077477 199.4676 \n",
"L 321.638774 200.035779 \n",
"L 321.751034 198.899421 \n",
"L 321.975553 198.331242 \n",
"L 322.424591 195.490347 \n",
"L 322.985889 195.490347 \n",
"L 323.098148 197.194884 \n",
"L 323.434927 196.058526 \n",
"L 323.547186 196.626705 \n",
"L 323.771705 196.058526 \n",
"L 324.108484 197.194884 \n",
"L 324.333003 197.763063 \n",
"L 326.353674 198.331242 \n",
"L 326.465934 198.899421 \n",
"L 327.251751 199.4676 \n",
"L 327.813048 198.899421 \n",
"L 328.037567 200.035779 \n",
"L 328.149827 199.4676 \n",
"L 329.047903 199.4676 \n",
"L 329.272422 198.899421 \n",
"L 331.629872 200.035779 \n",
"L 331.854391 199.4676 \n",
"L 332.415689 200.035779 \n",
"L 332.527948 200.603958 \n",
"L 332.640208 200.035779 \n",
"L 335.446696 202.308495 \n",
"L 335.671215 202.876674 \n",
"L 336.344772 203.444853 \n",
"L 338.589963 203.444853 \n",
"L 339.488039 202.876674 \n",
"L 339.600298 203.444853 \n",
"L 339.712558 202.876674 \n",
"L 339.937077 204.013032 \n",
"L 340.386115 203.444853 \n",
"L 341.284191 207.990284 \n",
"L 341.733229 207.422105 \n",
"L 341.845489 208.558463 \n",
"L 342.631305 210.831179 \n",
"L 342.968084 213.672074 \n",
"L 343.080343 213.672074 \n",
"L 343.417122 211.967537 \n",
"L 343.753901 212.535716 \n",
"L 343.97842 211.967537 \n",
"L 344.539717 210.831179 \n",
"L 345.325534 210.263 \n",
"L 345.774572 209.694821 \n",
"L 346.22361 211.399358 \n",
"L 346.560389 210.263 \n",
"L 346.784908 206.853926 \n",
"L 346.897167 209.694821 \n",
"L 347.009427 208.558463 \n",
"L 347.458465 209.694821 \n",
"L 348.244282 205.717568 \n",
"L 348.356541 204.013032 \n",
"L 348.468801 204.013032 \n",
"L 348.58106 205.149389 \n",
"L 348.69332 204.58121 \n",
"L 348.805579 205.717568 \n",
"L 349.030098 205.149389 \n",
"L 349.142358 205.717568 \n",
"L 350.264953 204.58121 \n",
"L 350.713991 202.876674 \n",
"L 350.826251 203.444853 \n",
"L 351.163029 204.013032 \n",
"L 351.499808 202.308495 \n",
"L 351.836586 203.444853 \n",
"L 352.061105 203.444853 \n",
"L 352.510144 202.876674 \n",
"L 352.622403 204.013032 \n",
"L 352.734663 202.876674 \n",
"L 352.846922 202.876674 \n",
"L 353.183701 200.603958 \n",
"L 353.40822 201.172137 \n",
"L 353.632739 190.944916 \n",
"L 353.857258 193.217632 \n",
"L 353.969517 192.081274 \n",
"L 354.081777 194.353989 \n",
"L 354.194036 194.353989 \n",
"L 354.306296 195.490347 \n",
"L 354.530815 196.058526 \n",
"L 354.755334 195.490347 \n",
"L 354.979853 196.626705 \n",
"L 355.092113 192.081274 \n",
"L 355.316632 192.081274 \n",
"L 355.76567 193.217632 \n",
"L 355.990189 192.081274 \n",
"L 356.326967 192.081274 \n",
"L 356.663746 195.490347 \n",
"L 356.888265 195.490347 \n",
"L 357.112784 198.331242 \n",
"L 357.337303 197.194884 \n",
"L 357.561822 198.331242 \n",
"L 357.674082 197.763063 \n",
"L 358.12312 198.899421 \n",
"L 358.796677 198.331242 \n",
"L 358.908936 197.763063 \n",
"L 359.021196 198.899421 \n",
"L 359.245715 198.899421 \n",
"L 360.256051 194.922168 \n",
"L 360.705089 196.058526 \n",
"L 360.929608 194.353989 \n",
"L 361.154127 194.922168 \n",
"L 361.490906 194.353989 \n",
"L 362.164463 195.490347 \n",
"L 362.388982 195.490347 \n",
"L 362.501241 196.058526 \n",
"L 363.287058 194.922168 \n",
"L 363.511577 193.217632 \n",
"L 363.736096 193.78581 \n",
"L 363.848356 194.922168 \n",
"L 364.634172 195.490347 \n",
"L 365.08321 194.353989 \n",
"L 365.756767 195.490347 \n",
"L 366.205806 197.194884 \n",
"L 366.318065 196.058526 \n",
"L 366.430325 196.626705 \n",
"L 366.542584 195.490347 \n",
"L 366.654844 196.058526 \n",
"L 367.216141 196.626705 \n",
"L 367.328401 197.763063 \n",
"L 367.44066 196.058526 \n",
"L 367.889698 198.899421 \n",
"L 368.001958 197.763063 \n",
"L 368.114218 197.763063 \n",
"L 369.012294 197.194884 \n",
"L 369.124553 196.626705 \n",
"L 370.134889 197.194884 \n",
"L 370.696187 198.331242 \n",
"L 370.808446 197.763063 \n",
"L 371.032965 198.331242 \n",
"L 371.369744 200.603958 \n",
"L 372.043301 200.035779 \n",
"L 372.26782 200.603958 \n",
"L 372.492339 198.899421 \n",
"L 373.053637 201.172137 \n",
"L 373.278156 200.603958 \n",
"L 373.614934 201.172137 \n",
"L 373.727194 200.603958 \n",
"L 373.839453 201.740316 \n",
"L 373.951713 201.172137 \n",
"L 374.176232 201.740316 \n",
"L 374.51301 201.172137 \n",
"L 374.737529 200.035779 \n",
"L 375.074308 201.172137 \n",
"L 375.747865 201.172137 \n",
"L 376.309163 201.740316 \n",
"L 376.421422 202.308495 \n",
"L 376.758201 201.172137 \n",
"L 377.319499 201.740316 \n",
"L 377.431758 202.308495 \n",
"L 377.768537 200.035779 \n",
"L 378.329834 198.899421 \n",
"L 378.442094 198.331242 \n",
"L 379.34017 199.4676 \n",
"L 379.564689 201.172137 \n",
"L 379.676949 201.172137 \n",
"L 380.238246 202.308495 \n",
"L 380.350506 201.740316 \n",
"L 380.687284 201.172137 \n",
"L 381.80988 200.603958 \n",
"L 381.922139 203.444853 \n",
"L 383.830551 204.58121 \n",
"L 384.616368 204.58121 \n",
"L 384.840887 203.444853 \n",
"L 384.953146 204.013032 \n",
"L 385.402184 203.444853 \n",
"L 385.514444 204.013032 \n",
"L 386.188001 202.308495 \n",
"L 386.973818 203.444853 \n",
"L 387.198337 203.444853 \n",
"L 387.310596 207.990284 \n",
"L 389.106749 204.58121 \n",
"L 392.699053 203.444853 \n",
"L 403.475968 203.444853 \n",
"L 403.812746 202.876674 \n",
"L 403.925006 203.444853 \n",
"L 408.303127 206.853926 \n",
"L 408.415387 205.149389 \n",
"L 412.681249 207.422105 \n",
"L 412.793508 206.285747 \n",
"L 416.049035 206.285747 \n",
"L 416.161294 206.853926 \n",
"L 417.396149 208.558463 \n",
"L 417.732927 209.694821 \n",
"L 427.948544 210.263 \n",
"L 435.694451 209.694821 \n",
"L 435.806711 204.58121 \n",
"L 436.143489 205.149389 \n",
"L 436.368009 196.058526 \n",
"L 436.480268 196.626705 \n",
"L 436.704787 196.626705 \n",
"L 437.715123 197.194884 \n",
"L 448.042999 196.626705 \n",
"L 452.64564 198.331242 \n",
"L 453.319197 198.899421 \n",
"L 454.666311 201.740316 \n",
"L 455.227609 201.172137 \n",
"L 460.728325 201.740316 \n",
"L 464.43289 200.603958 \n",
"L 465.330966 198.331242 \n",
"L 465.330966 198.331242 \n",
"\" clip-path=\"url(#p9e6ffe71de)\" style=\"fill: none; stroke: #4c72b0; stroke-width: 1.75; stroke-linecap: round\"/>\n",
" </g>\n",
" <g id=\"line2d_26\">\n",
" <path d=\"M 59.512784 132.195213 \n",
"L 59.625044 131.626995 \n",
"L 59.737303 132.195251 \n",
"L 59.849563 131.05874 \n",
"L 59.961822 132.763162 \n",
"L 60.074082 129.923032 \n",
"L 60.186341 129.923032 \n",
"L 60.41086 130.49102 \n",
"L 60.52312 130.49102 \n",
"L 60.859898 132.194869 \n",
"L 61.084417 139.123854 \n",
"L 61.421196 137.98784 \n",
"L 61.533456 139.123892 \n",
"L 61.757975 139.123892 \n",
"L 61.870234 140.82797 \n",
"L 61.982494 139.691918 \n",
"L 62.094753 139.691918 \n",
"L 62.543791 137.419469 \n",
"L 62.656051 139.692492 \n",
"L 62.76831 138.555981 \n",
"L 62.88057 141.964137 \n",
"L 63.554127 132.420617 \n",
"L 63.666387 134.694374 \n",
"L 63.778646 133.557496 \n",
"L 63.890906 133.557496 \n",
"L 64.003165 138.673449 \n",
"L 64.227684 138.673449 \n",
"L 64.339944 134.694374 \n",
"L 64.676722 136.399347 \n",
"L 65.12576 146.161244 \n",
"L 65.23802 146.161244 \n",
"L 65.350279 147.861587 \n",
"L 65.462539 147.861587 \n",
"L 65.574798 146.728101 \n",
"L 65.687058 143.327186 \n",
"L 65.799317 143.327186 \n",
"L 65.911577 146.16033 \n",
"L 66.023837 145.593853 \n",
"L 66.136096 143.327186 \n",
"L 66.248356 143.327186 \n",
"L 66.472875 135.95209 \n",
"L 66.585134 134.816468 \n",
"L 66.697394 137.087713 \n",
"L 67.034172 133.680386 \n",
"L 67.258691 137.654608 \n",
"L 67.370951 136.519291 \n",
"L 67.48321 137.654455 \n",
"L 67.59547 137.654455 \n",
"L 67.819989 138.221923 \n",
"L 68.044508 136.519481 \n",
"L 68.156767 134.249153 \n",
"L 68.269027 135.384164 \n",
"L 68.493546 135.951556 \n",
"L 68.718065 137.653272 \n",
"L 68.942584 135.951708 \n",
"L 69.054844 136.518871 \n",
"L 69.279363 135.951746 \n",
"L 69.391622 136.518833 \n",
"L 69.503882 135.384584 \n",
"L 69.84066 135.384584 \n",
"L 70.065179 136.518985 \n",
"L 70.289698 134.25003 \n",
"L 70.401958 134.25003 \n",
"L 70.514218 133.682639 \n",
"L 70.850996 135.952357 \n",
"L 71.075515 139.356934 \n",
"L 71.412294 137.08691 \n",
"L 71.524553 135.951746 \n",
"L 71.636813 135.951746 \n",
"L 71.749072 135.384164 \n",
"L 71.973591 137.653882 \n",
"L 72.085851 135.951708 \n",
"L 72.31037 135.951708 \n",
"L 72.422629 134.816696 \n",
"L 72.534889 134.816696 \n",
"L 72.759408 137.086719 \n",
"L 72.871668 134.24919 \n",
"L 73.320706 132.546367 \n",
"L 73.657484 129.707425 \n",
"L 73.994263 130.275313 \n",
"L 74.218782 131.978976 \n",
"L 74.55556 128.00315 \n",
"L 74.780079 130.275924 \n",
"L 74.892339 130.275924 \n",
"L 75.116858 128.571344 \n",
"L 75.453637 130.27558 \n",
"L 75.565896 131.979128 \n",
"L 75.678156 131.411355 \n",
"L 76.014934 133.114636 \n",
"L 76.127194 136.520588 \n",
"L 76.351713 135.952929 \n",
"L 76.463972 135.952929 \n",
"L 76.576232 139.35888 \n",
"L 76.800751 138.791222 \n",
"L 77.02527 135.385118 \n",
"L 77.137529 134.817306 \n",
"L 77.249789 133.113529 \n",
"L 77.362049 133.113529 \n",
"L 77.474308 133.681531 \n",
"L 78.035606 130.841672 \n",
"L 78.260125 131.409712 \n",
"L 78.596903 136.067646 \n",
"L 78.709163 135.385997 \n",
"L 78.821422 136.067646 \n",
"L 79.27046 144.020215 \n",
"L 79.494979 138.335978 \n",
"L 79.719499 137.767132 \n",
"L 79.944018 133.215717 \n",
"L 80.056277 133.784831 \n",
"L 80.168537 130.368765 \n",
"L 80.280796 133.784831 \n",
"L 80.505315 130.938301 \n",
"L 80.617575 130.938301 \n",
"L 80.729834 130.368804 \n",
"L 80.842094 133.785791 \n",
"L 81.066613 129.229462 \n",
"L 81.515651 130.93834 \n",
"L 81.74017 129.799075 \n",
"L 81.85243 125.239401 \n",
"L 81.964689 126.379781 \n",
"L 82.189208 125.23944 \n",
"L 82.301468 126.379666 \n",
"L 82.413727 125.239594 \n",
"L 82.638246 128.088813 \n",
"L 82.975025 126.379512 \n",
"L 83.199544 128.089159 \n",
"L 83.424063 129.228924 \n",
"L 83.648582 125.809476 \n",
"L 83.98536 127.519469 \n",
"L 84.09762 132.079143 \n",
"L 84.322139 129.229193 \n",
"L 84.658918 129.229193 \n",
"L 84.883437 134.930324 \n",
"L 84.995696 135.500399 \n",
"L 85.220215 126.379821 \n",
"L 85.444734 123.528717 \n",
"L 85.781513 123.528717 \n",
"L 85.893772 124.099061 \n",
"L 86.006032 120.676996 \n",
"L 86.118291 125.237287 \n",
"L 86.230551 125.237287 \n",
"L 86.34281 124.66752 \n",
"L 86.56733 125.237287 \n",
"L 86.791849 124.667558 \n",
"L 87.016368 126.946473 \n",
"L 87.128627 124.667558 \n",
"L 87.240887 124.667558 \n",
"L 87.465406 125.237248 \n",
"L 87.689925 124.097906 \n",
"L 87.914444 124.667635 \n",
"L 88.026703 124.667635 \n",
"L 88.138963 124.097906 \n",
"L 88.251222 122.388374 \n",
"L 88.475741 125.238171 \n",
"L 88.81252 123.528293 \n",
"L 89.149299 126.377129 \n",
"L 89.261558 128.085508 \n",
"L 89.373818 126.946665 \n",
"L 89.822856 128.65516 \n",
"L 90.159634 133.780644 \n",
"L 90.720932 136.058368 \n",
"L 91.057711 136.058368 \n",
"L 91.506749 133.210839 \n",
"L 91.619008 134.919795 \n",
"L 91.843527 132.071188 \n",
"L 91.955787 137.200134 \n",
"L 92.180306 133.210954 \n",
"L 92.292565 137.770016 \n",
"L 92.404825 137.770016 \n",
"L 92.741603 138.909782 \n",
"L 92.853863 142.327693 \n",
"L 92.966122 141.188851 \n",
"L 93.078382 142.327539 \n",
"L 93.190642 141.188851 \n",
"L 93.302901 141.188851 \n",
"L 93.415161 141.758234 \n",
"L 93.52742 138.911513 \n",
"L 93.63968 138.911513 \n",
"L 93.751939 140.050048 \n",
"L 93.864199 142.89504 \n",
"L 93.976458 141.757273 \n",
"L 94.088718 142.326233 \n",
"L 94.200977 141.757235 \n",
"L 94.313237 143.464345 \n",
"L 94.425496 141.757235 \n",
"L 94.537756 141.757235 \n",
"L 94.650015 140.050125 \n",
"L 94.762275 140.619123 \n",
"L 95.099053 138.342669 \n",
"L 95.435832 142.327539 \n",
"L 95.548092 138.911936 \n",
"L 95.660351 139.481165 \n",
"L 96.221649 129.799778 \n",
"L 96.333908 130.369584 \n",
"L 96.446168 131.509041 \n",
"L 96.558427 131.509041 \n",
"L 96.670687 133.217995 \n",
"L 96.782946 132.648344 \n",
"L 97.007465 133.787531 \n",
"L 97.344244 131.508925 \n",
"L 97.456503 130.369315 \n",
"L 97.681022 132.078961 \n",
"L 97.793282 133.218726 \n",
"L 97.905542 133.218726 \n",
"L 98.130061 132.078961 \n",
"L 98.35458 133.788608 \n",
"L 98.466839 133.788608 \n",
"L 98.579099 132.648844 \n",
"L 98.803618 135.497293 \n",
"L 98.915877 133.788454 \n",
"L 99.028137 136.067368 \n",
"L 99.140396 134.358183 \n",
"L 99.252656 136.067022 \n",
"L 99.701694 134.358375 \n",
"L 99.813953 135.497678 \n",
"L 100.150732 133.788724 \n",
"L 100.487511 135.497678 \n",
"L 100.59977 134.358375 \n",
"L 100.71203 134.358375 \n",
"L 100.936549 135.497678 \n",
"L 101.161068 134.928026 \n",
"L 101.385587 134.928026 \n",
"L 101.497846 136.067329 \n",
"L 101.610106 136.067329 \n",
"L 101.722365 134.358029 \n",
"L 101.946884 134.927911 \n",
"L 102.059144 134.927911 \n",
"L 102.171403 134.358029 \n",
"L 102.283663 134.927873 \n",
"L 102.508182 133.788223 \n",
"L 102.620442 126.379753 \n",
"L 102.732701 126.949597 \n",
"L 102.844961 126.379753 \n",
"L 103.293999 120.108048 \n",
"L 103.518518 122.388847 \n",
"L 103.630777 122.388847 \n",
"L 103.855296 122.958921 \n",
"L 103.967556 122.958921 \n",
"L 104.192075 124.66903 \n",
"L 104.304334 122.958921 \n",
"L 104.416594 112.685796 \n",
"L 104.528853 113.25718 \n",
"L 104.865632 111.543143 \n",
"L 104.977892 113.25718 \n",
"L 105.090151 113.25718 \n",
"L 105.202411 111.542795 \n",
"L 105.31467 112.114373 \n",
"L 105.988227 108.113022 \n",
"L 106.100487 108.684715 \n",
"L 106.212746 109.25637 \n",
"L 106.437265 105.826287 \n",
"L 106.549525 105.826287 \n",
"L 106.774044 104.682553 \n",
"L 106.998563 101.82231 \n",
"L 107.223082 100.677958 \n",
"L 107.559861 104.110358 \n",
"L 107.67212 103.538278 \n",
"L 107.78438 104.110397 \n",
"L 108.008899 103.538278 \n",
"L 108.121158 104.682515 \n",
"L 108.233418 103.538278 \n",
"L 108.345677 104.68236 \n",
"L 108.457937 103.538433 \n",
"L 108.570196 104.110358 \n",
"L 108.682456 105.82567 \n",
"L 108.906975 102.39439 \n",
"L 109.019234 102.39439 \n",
"L 109.243754 98.962106 \n",
"L 109.356013 98.389949 \n",
"L 109.580532 101.249961 \n",
"L 109.692792 102.393425 \n",
"L 109.917311 101.249999 \n",
"L 110.254089 104.108042 \n",
"L 110.590868 102.964771 \n",
"L 110.815387 102.964771 \n",
"L 110.927646 102.393116 \n",
"L 111.039906 102.964732 \n",
"L 111.264425 98.963341 \n",
"L 111.488944 97.819684 \n",
"L 111.601204 98.391571 \n",
"L 111.713463 100.10723 \n",
"L 111.825723 97.819684 \n",
"L 112.050242 97.819684 \n",
"L 112.162501 96.675757 \n",
"L 112.274761 97.247798 \n",
"L 112.38702 96.675757 \n",
"L 112.611539 100.680042 \n",
"L 112.723799 100.108002 \n",
"L 112.948318 102.395585 \n",
"L 113.060577 102.967394 \n",
"L 113.172837 100.67954 \n",
"L 113.285096 100.67954 \n",
"L 113.397356 102.395547 \n",
"L 113.734135 100.679733 \n",
"L 113.846394 102.395856 \n",
"L 114.070913 100.107654 \n",
"L 114.295432 102.396126 \n",
"L 114.407692 100.679772 \n",
"L 114.632211 104.682706 \n",
"L 114.74447 104.111128 \n",
"L 114.968989 106.968052 \n",
"L 115.081249 108.681281 \n",
"L 115.193508 108.110282 \n",
"L 115.305768 108.681281 \n",
"L 115.418027 110.964508 \n",
"L 115.642546 117.237382 \n",
"L 115.867065 117.807381 \n",
"L 116.091585 121.797107 \n",
"L 116.203844 124.64595 \n",
"L 116.428363 120.65876 \n",
"L 116.652882 118.949224 \n",
"L 116.765142 117.809303 \n",
"L 116.877401 117.809303 \n",
"L 116.989661 118.379264 \n",
"L 117.21418 117.809303 \n",
"L 117.326439 118.949224 \n",
"L 117.438699 118.949224 \n",
"L 117.550958 120.088992 \n",
"L 117.887737 128.636096 \n",
"L 118.336775 124.075794 \n",
"L 118.449035 124.075794 \n",
"L 118.673554 127.495098 \n",
"L 118.785813 125.21587 \n",
"L 119.010332 125.785831 \n",
"L 119.234851 125.21587 \n",
"L 119.347111 125.21587 \n",
"L 119.45937 126.925752 \n",
"L 119.57163 126.355791 \n",
"L 119.908408 127.495598 \n",
"L 120.020668 126.925714 \n",
"L 120.357446 129.20498 \n",
"L 120.694225 126.355907 \n",
"L 120.806485 126.925791 \n",
"L 120.918744 126.355868 \n",
"L 121.143263 126.925829 \n",
"L 121.255523 129.775633 \n",
"L 121.480042 125.215908 \n",
"L 121.704561 127.495444 \n",
"L 121.92908 121.798104 \n",
"L 122.490377 125.216523 \n",
"L 122.602637 122.367873 \n",
"L 122.714897 122.367873 \n",
"L 122.827156 123.507179 \n",
"L 122.939416 121.228259 \n",
"L 123.051675 121.228259 \n",
"L 123.163935 122.367873 \n",
"L 123.388454 125.216523 \n",
"L 123.612973 124.646755 \n",
"L 123.725232 125.216562 \n",
"L 123.949751 124.646755 \n",
"L 124.28653 118.946109 \n",
"L 124.398789 121.797836 \n",
"L 124.511049 121.22749 \n",
"L 125.072347 124.649139 \n",
"L 125.184606 125.789676 \n",
"L 125.296866 128.070749 \n",
"L 125.409125 126.930213 \n",
"L 125.521385 126.930213 \n",
"L 125.633644 124.649139 \n",
"L 125.858163 125.219369 \n",
"L 125.970423 123.508448 \n",
"L 126.082682 123.508448 \n",
"L 126.194942 124.649139 \n",
"L 126.307201 124.649139 \n",
"L 126.53172 129.781555 \n",
"L 126.980758 131.492129 \n",
"L 127.205277 129.211633 \n",
"L 127.317537 129.211633 \n",
"L 127.542056 129.781786 \n",
"L 127.766575 129.781786 \n",
"L 127.878835 130.922014 \n",
"L 127.991094 128.641557 \n",
"L 128.103354 128.641557 \n",
"L 128.327873 128.071443 \n",
"L 128.440132 129.781786 \n",
"L 128.552392 129.781786 \n",
"L 128.664651 129.211633 \n",
"L 129.00143 129.781824 \n",
"L 129.225949 126.360329 \n",
"L 129.338208 126.930752 \n",
"L 129.562728 129.78194 \n",
"L 129.674987 129.78194 \n",
"L 129.787247 130.922014 \n",
"L 129.899506 130.922014 \n",
"L 130.011766 133.201856 \n",
"L 130.124025 131.491975 \n",
"L 130.348544 134.340969 \n",
"L 130.573063 133.771239 \n",
"L 130.685323 134.34093 \n",
"L 130.909842 131.492629 \n",
"L 131.022101 132.06232 \n",
"L 131.134361 129.783094 \n",
"L 131.35888 133.772816 \n",
"L 131.471139 134.342776 \n",
"L 131.583399 133.772816 \n",
"L 131.807918 130.922861 \n",
"L 131.920178 133.773432 \n",
"L 132.032437 133.773432 \n",
"L 132.144697 130.921897 \n",
"L 132.256956 130.921897 \n",
"L 132.481475 130.351359 \n",
"L 132.593735 130.351359 \n",
"L 132.705994 131.492513 \n",
"L 132.818254 134.915973 \n",
"L 132.930513 134.915973 \n",
"L 133.042773 135.486511 \n",
"L 133.155032 134.345512 \n",
"L 133.267292 135.486357 \n",
"L 133.491811 130.92128 \n",
"L 133.71633 129.208546 \n",
"L 133.828589 131.491779 \n",
"L 133.940849 131.491779 \n",
"L 134.053108 130.350317 \n",
"L 134.165368 130.350317 \n",
"L 134.277628 131.491779 \n",
"L 134.726666 128.638008 \n",
"L 134.838925 130.92155 \n",
"L 134.951185 130.350665 \n",
"L 135.175704 130.350665 \n",
"L 135.737001 126.924657 \n",
"L 135.849261 127.495851 \n",
"L 136.07378 128.63824 \n",
"L 136.186039 126.924657 \n",
"L 136.298299 128.637893 \n",
"L 136.522818 127.495813 \n",
"L 136.635078 128.066891 \n",
"L 136.747337 129.779663 \n",
"L 136.971856 126.924812 \n",
"L 137.533154 123.497916 \n",
"L 137.757673 125.783002 \n",
"L 137.982192 125.783002 \n",
"L 138.094451 125.211731 \n",
"L 138.31897 125.211731 \n",
"L 138.880268 123.497916 \n",
"L 138.992528 122.926606 \n",
"L 139.104787 124.069303 \n",
"L 139.329306 122.355257 \n",
"L 139.441566 122.355257 \n",
"L 139.666085 123.497955 \n",
"L 139.778344 126.354699 \n",
"L 140.002863 126.926047 \n",
"L 140.115123 124.640034 \n",
"L 140.339642 122.925059 \n",
"L 140.67642 121.781588 \n",
"L 140.90094 124.06884 \n",
"L 141.349978 125.784278 \n",
"L 141.574497 129.786968 \n",
"L 141.686756 129.215155 \n",
"L 141.799016 129.786968 \n",
"L 142.023535 128.071375 \n",
"L 142.135794 132.647117 \n",
"L 142.248054 132.075149 \n",
"L 142.472573 137.21976 \n",
"L 142.584832 137.21976 \n",
"L 143.14613 145.211057 \n",
"L 143.25839 144.640752 \n",
"L 143.595168 156.617963 \n",
"L 143.707428 156.047581 \n",
"L 143.931947 158.898757 \n",
"L 144.156466 156.048045 \n",
"L 144.268725 158.329109 \n",
"L 144.493244 154.907513 \n",
"L 144.605504 155.47774 \n",
"L 144.717763 158.327719 \n",
"L 144.830023 142.342934 \n",
"L 144.942282 150.342911 \n",
"L 145.054542 144.634064 \n",
"L 145.279061 125.218421 \n",
"L 145.39132 130.932677 \n",
"L 145.50358 129.219212 \n",
"L 145.728099 129.219212 \n",
"L 145.840359 126.934128 \n",
"L 145.952618 120.073308 \n",
"L 146.064878 120.073308 \n",
"L 146.177137 121.217707 \n",
"L 146.289397 123.506505 \n",
"L 146.401656 122.362106 \n",
"L 146.513916 114.343713 \n",
"L 146.626175 114.343713 \n",
"L 146.850694 116.636856 \n",
"L 146.962954 114.916999 \n",
"L 147.075213 116.063415 \n",
"L 147.187473 121.218445 \n",
"L 147.299732 117.782457 \n",
"L 147.411992 122.935391 \n",
"L 147.524251 120.645974 \n",
"L 147.636511 121.218445 \n",
"L 147.748771 117.782457 \n",
"L 147.97329 107.458685 \n",
"L 148.085549 108.032593 \n",
"L 148.422328 97.117554 \n",
"L 148.534587 95.392441 \n",
"L 148.759106 98.268215 \n",
"L 148.871366 114.487582 \n",
"L 148.983625 108.156143 \n",
"L 149.095885 112.188257 \n",
"L 149.208144 107.004111 \n",
"L 149.432663 118.522514 \n",
"L 149.544923 116.220017 \n",
"L 149.769442 110.458442 \n",
"L 149.881701 110.458442 \n",
"L 150.106221 89.70773 \n",
"L 150.33074 100.654757 \n",
"L 150.442999 109.394056 \n",
"L 150.555259 109.394056 \n",
"L 150.667518 107.095989 \n",
"L 150.779778 108.820007 \n",
"L 150.892037 108.820007 \n",
"L 151.004297 103.073279 \n",
"L 151.228816 103.647952 \n",
"L 151.341075 103.647952 \n",
"L 151.565594 107.095989 \n",
"L 151.677854 105.371619 \n",
"L 151.790113 107.671247 \n",
"L 152.014632 100.197457 \n",
"L 152.126892 89.144846 \n",
"L 152.239152 94.332516 \n",
"L 152.351411 93.756108 \n",
"L 152.463671 94.332516 \n",
"L 152.68819 89.720274 \n",
"L 152.800449 91.450673 \n",
"L 152.912709 89.720274 \n",
"L 153.024968 93.757872 \n",
"L 153.137228 92.604116 \n",
"L 153.361747 97.796569 \n",
"L 153.586266 98.373329 \n",
"L 153.698525 97.796569 \n",
"L 153.923044 92.605333 \n",
"L 154.147563 86.834039 \n",
"L 154.259823 78.167315 \n",
"L 154.372082 78.167315 \n",
"L 154.484342 79.90243 \n",
"L 154.596602 78.16696 \n",
"L 154.708861 78.16696 \n",
"L 154.821121 74.695311 \n",
"L 154.93338 75.852528 \n",
"L 155.157899 74.116349 \n",
"L 155.270159 76.431727 \n",
"L 155.382418 75.274038 \n",
"L 155.719197 83.950874 \n",
"L 155.831456 81.637387 \n",
"L 156.055975 85.685162 \n",
"L 156.168235 90.308986 \n",
"L 156.392754 86.262983 \n",
"L 156.505013 86.262983 \n",
"L 156.617273 87.997034 \n",
"L 156.729532 86.841079 \n",
"L 156.841792 88.575249 \n",
"L 156.954052 88.575249 \n",
"L 157.178571 107.651079 \n",
"L 157.627609 99.558602 \n",
"L 157.739868 103.025995 \n",
"L 157.852128 101.292653 \n",
"L 158.413425 70.625555 \n",
"L 158.525685 69.467233 \n",
"L 158.637944 69.467233 \n",
"L 158.862463 72.941253 \n",
"L 158.974723 70.046433 \n",
"L 159.086983 71.783917 \n",
"L 159.199242 63.096499 \n",
"L 159.311502 63.67566 \n",
"L 159.536021 68.306428 \n",
"L 159.64828 65.412789 \n",
"L 159.985059 77.570209 \n",
"L 160.097318 74.675585 \n",
"L 160.434097 78.727427 \n",
"L 160.546356 79.884646 \n",
"L 160.658616 82.199083 \n",
"L 160.770875 82.199083 \n",
"L 160.883135 81.620435 \n",
"L 160.995394 82.199123 \n",
"L 161.107654 84.513876 \n",
"L 161.332173 81.041589 \n",
"L 161.556692 82.778127 \n",
"L 161.668952 79.883897 \n",
"L 161.893471 79.883897 \n",
"L 162.11799 71.773302 \n",
"L 162.230249 72.932257 \n",
"L 162.454768 83.940833 \n",
"L 162.791547 75.249813 \n",
"L 163.016066 76.98789 \n",
"L 163.128325 77.567131 \n",
"L 163.240585 74.670927 \n",
"L 163.577363 81.037802 \n",
"L 163.689623 76.987259 \n",
"L 163.801883 77.566184 \n",
"L 163.914142 76.408334 \n",
"L 164.026402 79.302959 \n",
"L 164.250921 77.566026 \n",
"L 164.47544 71.77421 \n",
"L 164.587699 72.933008 \n",
"L 164.812218 72.353649 \n",
"L 165.148997 84.508238 \n",
"L 165.373516 91.448242 \n",
"L 165.485775 89.713951 \n",
"L 165.598035 89.713951 \n",
"L 165.710294 91.448242 \n",
"L 165.822554 95.494096 \n",
"L 165.934814 93.759804 \n",
"L 166.047073 89.13408 \n",
"L 166.159333 92.025157 \n",
"L 166.271592 88.554444 \n",
"L 166.383852 92.026578 \n",
"L 166.608371 89.133133 \n",
"L 166.72063 91.447889 \n",
"L 166.83289 90.290511 \n",
"L 166.945149 87.975124 \n",
"L 167.057409 90.290511 \n",
"L 167.281928 88.554128 \n",
"L 167.394187 90.290314 \n",
"L 167.618706 87.397224 \n",
"L 167.730966 81.026868 \n",
"L 167.843225 81.606426 \n",
"L 167.955485 80.44731 \n",
"L 168.180004 82.765542 \n",
"L 168.292264 80.44731 \n",
"L 168.404523 82.185628 \n",
"L 168.516783 82.185628 \n",
"L 168.741302 75.229507 \n",
"L 168.853561 76.38894 \n",
"L 168.965821 75.229507 \n",
"L 169.19034 79.86787 \n",
"L 169.527118 74.649672 \n",
"L 169.639378 74.649672 \n",
"L 169.863897 70.58865 \n",
"L 170.088416 68.847403 \n",
"L 170.200675 70.588333 \n",
"L 170.312935 70.008142 \n",
"L 170.425195 67.686743 \n",
"L 170.537454 68.847759 \n",
"L 170.649714 65.364711 \n",
"L 170.761973 65.364711 \n",
"L 170.986492 60.718268 \n",
"L 171.098752 60.718268 \n",
"L 171.211011 63.623187 \n",
"L 171.323271 61.880236 \n",
"L 171.43553 64.784163 \n",
"L 171.54779 64.784163 \n",
"L 171.772309 62.461338 \n",
"L 171.996828 58.975595 \n",
"L 172.333606 65.363918 \n",
"L 172.445866 61.879919 \n",
"L 172.558125 62.460546 \n",
"L 172.782645 56.6517 \n",
"L 172.894904 57.232644 \n",
"L 173.007164 56.070835 \n",
"L 173.119423 56.070835 \n",
"L 173.231683 54.909026 \n",
"L 173.343942 60.133959 \n",
"L 173.456202 53.751847 \n",
"L 173.568461 56.651819 \n",
"L 173.79298 52.59166 \n",
"L 173.90524 56.650517 \n",
"L 174.017499 56.650517 \n",
"L 174.129759 52.59166 \n",
"L 174.242018 53.171773 \n",
"L 174.466537 48.52834 \n",
"L 174.578797 48.52834 \n",
"L 174.915575 43.300562 \n",
"L 175.140095 46.785036 \n",
"L 175.252354 47.365505 \n",
"L 175.589133 42.13923 \n",
"L 175.813652 45.625127 \n",
"L 175.925911 45.625127 \n",
"L 176.15043 41.557613 \n",
"L 176.374949 35.163278 \n",
"L 176.487209 32.83713 \n",
"L 176.599468 36.908999 \n",
"L 176.711728 34.000521 \n",
"L 176.823987 36.327303 \n",
"L 176.936247 35.745568 \n",
"L 177.273026 29.926828 \n",
"L 177.385285 31.091171 \n",
"L 177.497545 30.509 \n",
"L 177.609804 28.180314 \n",
"L 177.722064 28.762446 \n",
"L 177.834323 31.671915 \n",
"L 178.058842 31.09018 \n",
"L 178.171102 31.09018 \n",
"L 178.283361 27.59953 \n",
"L 178.395621 28.181266 \n",
"L 178.62014 21.777976 \n",
"L 178.732399 23.524847 \n",
"L 178.956918 34.003929 \n",
"L 179.069178 32.839587 \n",
"L 179.181437 32.839587 \n",
"L 179.293697 34.5861 \n",
"L 179.518216 29.346202 \n",
"L 179.742735 27.598775 \n",
"L 179.854995 30.511219 \n",
"L 180.079514 23.520996 \n",
"L 180.304033 19.44 \n",
"L 180.640811 25.270012 \n",
"L 180.753071 24.104081 \n",
"L 180.97759 24.687046 \n",
"L 181.089849 20.60434 \n",
"L 181.426628 30.512728 \n",
"L 181.538887 30.512728 \n",
"L 181.651147 32.258884 \n",
"L 181.763407 31.094859 \n",
"L 181.987926 32.840976 \n",
"L 182.100185 32.259003 \n",
"L 182.212445 35.169065 \n",
"L 182.324704 33.423028 \n",
"L 182.436964 34.005001 \n",
"L 182.661483 46.80753 \n",
"L 182.773742 45.643663 \n",
"L 182.886002 45.643663 \n",
"L 182.998261 49.135262 \n",
"L 183.110521 46.225596 \n",
"L 183.22278 47.389304 \n",
"L 183.33504 49.716401 \n",
"L 183.559559 45.061571 \n",
"L 183.784078 46.225596 \n",
"L 183.896337 44.479797 \n",
"L 184.008597 44.479797 \n",
"L 184.120857 43.897824 \n",
"L 184.233116 46.807887 \n",
"L 184.345376 43.315812 \n",
"L 184.457635 43.897785 \n",
"L 184.682154 46.225517 \n",
"L 184.906673 45.061651 \n",
"L 185.131192 46.80745 \n",
"L 185.243452 50.299049 \n",
"L 185.355711 49.135183 \n",
"L 185.467971 52.043855 \n",
"L 185.58023 52.043855 \n",
"L 185.69249 50.29889 \n",
"L 185.804749 53.207761 \n",
"L 186.029268 47.9708 \n",
"L 186.141528 50.880664 \n",
"L 186.253787 50.880664 \n",
"L 186.478307 52.044173 \n",
"L 186.590566 49.716758 \n",
"L 186.815085 52.626821 \n",
"L 186.927345 49.716758 \n",
"L 187.151864 54.37282 \n",
"L 187.264123 54.37282 \n",
"L 187.376383 55.536686 \n",
"L 187.825421 53.208635 \n",
"L 188.04994 50.87967 \n",
"L 188.162199 50.297299 \n",
"L 188.386718 53.209351 \n",
"L 188.498978 51.461762 \n",
"L 188.611238 51.461762 \n",
"L 188.723497 53.209351 \n",
"L 188.835757 52.626941 \n",
"L 189.060276 53.209312 \n",
"L 189.172535 53.209312 \n",
"L 189.284795 54.956304 \n",
"L 189.397054 53.209312 \n",
"L 189.509314 53.791603 \n",
"L 189.621573 56.120608 \n",
"L 189.733833 56.120608 \n",
"L 190.070611 50.295905 \n",
"L 190.182871 51.461204 \n",
"L 190.29513 49.130606 \n",
"L 190.40739 50.878196 \n",
"L 190.519649 49.713216 \n",
"L 190.856428 49.713216 \n",
"L 190.968688 49.130646 \n",
"L 191.193207 45.633953 \n",
"L 191.305466 45.051025 \n",
"L 191.529985 47.382897 \n",
"L 191.754504 47.965865 \n",
"L 191.866764 47.382897 \n",
"L 191.979023 45.633993 \n",
"L 192.091283 47.965228 \n",
"L 192.428061 42.719152 \n",
"L 192.76484 41.553176 \n",
"L 192.877099 41.553176 \n",
"L 193.213878 36.888156 \n",
"L 193.438397 40.385965 \n",
"L 193.775176 47.372992 \n",
"L 194.111954 45.627308 \n",
"L 194.224214 46.791335 \n",
"L 194.336473 46.791335 \n",
"L 194.448733 47.955204 \n",
"L 194.560992 46.209639 \n",
"L 194.785511 52.605242 \n",
"L 194.897771 53.186184 \n",
"L 195.12229 51.443158 \n",
"L 195.234549 51.443158 \n",
"L 195.459069 47.375688 \n",
"L 195.908107 40.398075 \n",
"L 196.020366 42.725493 \n",
"L 196.132626 38.070658 \n",
"L 196.244885 42.722955 \n",
"L 196.357145 40.397441 \n",
"L 196.469404 40.397441 \n",
"L 196.581664 39.815864 \n",
"L 196.693923 42.723946 \n",
"L 196.806183 41.560713 \n",
"L 197.030702 43.305245 \n",
"L 197.142961 43.305245 \n",
"L 197.255221 39.233098 \n",
"L 197.47974 43.886664 \n",
"L 197.704259 47.374935 \n",
"L 197.816519 46.793556 \n",
"L 197.928778 49.700449 \n",
"L 198.153297 49.700449 \n",
"L 198.377816 52.025964 \n",
"L 198.490076 51.444585 \n",
"L 198.602335 52.607342 \n",
"L 198.714595 52.607342 \n",
"L 198.826854 50.862849 \n",
"L 198.939114 52.026083 \n",
"L 199.051373 50.862849 \n",
"L 199.388152 53.770933 \n",
"L 199.612671 52.026083 \n",
"L 199.949449 46.208328 \n",
"L 200.061709 47.372038 \n",
"L 200.173969 43.881385 \n",
"L 200.286228 43.881385 \n",
"L 200.398488 42.135701 \n",
"L 200.510747 42.717715 \n",
"L 201.072045 32.820624 \n",
"L 201.184304 32.237975 \n",
"L 201.296564 26.407506 \n",
"L 201.408823 26.990911 \n",
"L 201.521083 25.82418 \n",
"L 201.633342 28.157641 \n",
"L 201.745602 27.574276 \n",
"L 201.857861 28.157602 \n",
"L 202.3069 24.074085 \n",
"L 202.531419 26.991707 \n",
"L 202.755938 25.241094 \n",
"L 202.868197 26.991907 \n",
"L 202.980457 25.824698 \n",
"L 203.317235 29.324929 \n",
"L 203.429495 27.574953 \n",
"L 203.541754 27.574953 \n",
"L 203.766273 29.324969 \n",
"L 203.990792 28.741683 \n",
"L 204.103052 23.492113 \n",
"L 204.215311 25.241612 \n",
"L 204.43983 22.325423 \n",
"L 204.55209 24.658247 \n",
"L 204.888869 21.159369 \n",
"L 205.001128 25.823109 \n",
"L 205.113388 25.823109 \n",
"L 205.225647 27.5707 \n",
"L 205.337907 26.405718 \n",
"L 205.450166 23.492868 \n",
"L 205.562426 24.657849 \n",
"L 205.674685 22.327569 \n",
"L 206.011464 27.572129 \n",
"L 206.123723 27.572129 \n",
"L 206.460502 26.406552 \n",
"L 206.685021 28.154977 \n",
"L 207.358578 31.069019 \n",
"L 207.470838 30.486211 \n",
"L 207.583097 32.234278 \n",
"L 207.695357 32.234278 \n",
"L 207.807616 33.981631 \n",
"L 208.144395 32.234398 \n",
"L 208.481173 33.981869 \n",
"L 208.930211 31.651589 \n",
"L 209.154731 33.399537 \n",
"L 209.37925 35.147486 \n",
"L 209.828288 32.816888 \n",
"L 209.940547 33.399498 \n",
"L 210.165066 36.893487 \n",
"L 210.277326 38.057515 \n",
"L 210.389585 38.057515 \n",
"L 210.614104 35.147009 \n",
"L 210.726364 38.638616 \n",
"L 211.287662 35.729538 \n",
"L 211.399921 37.474985 \n",
"L 211.62444 35.14804 \n",
"L 211.848959 36.893606 \n",
"L 211.961219 33.402474 \n",
"L 212.185738 33.402474 \n",
"L 212.297997 32.820579 \n",
"L 212.522516 34.566383 \n",
"L 212.747035 33.402514 \n",
"L 212.971554 36.311235 \n",
"L 213.196073 35.147842 \n",
"L 213.308333 32.820738 \n",
"L 213.420592 33.402474 \n",
"L 213.645112 27.000005 \n",
"L 213.757371 27.582138 \n",
"L 213.869631 27.000044 \n",
"L 213.98189 28.164072 \n",
"L 214.09415 28.164072 \n",
"L 214.430928 26.418268 \n",
"L 214.655447 26.418268 \n",
"L 214.767707 28.164072 \n",
"L 214.879966 27.000203 \n",
"L 215.104485 26.418229 \n",
"L 215.216745 27.582257 \n",
"L 215.329004 27.582257 \n",
"L 215.441264 27.000243 \n",
"L 215.553523 28.746284 \n",
"L 215.665783 28.16427 \n",
"L 216.002562 28.16427 \n",
"L 216.676119 32.820381 \n",
"L 216.900638 32.238367 \n",
"L 217.349676 30.492326 \n",
"L 217.686454 34.564481 \n",
"L 217.910973 37.470787 \n",
"L 218.023233 36.308502 \n",
"L 218.360012 36.308502 \n",
"L 218.472271 38.633388 \n",
"L 218.584531 38.052167 \n",
"L 218.69679 39.214452 \n",
"L 218.80905 39.214452 \n",
"L 218.921309 39.795515 \n",
"L 219.033569 39.214452 \n",
"L 219.145828 36.889565 \n",
"L 219.258088 38.052325 \n",
"L 219.482607 37.470945 \n",
"L 219.707126 40.377845 \n",
"L 219.819385 40.959185 \n",
"L 219.931645 40.377884 \n",
"L 220.043904 42.121787 \n",
"L 220.156164 40.377884 \n",
"L 220.268423 40.377884 \n",
"L 220.380683 40.959185 \n",
"L 220.717462 39.796584 \n",
"L 220.829721 40.377845 \n",
"L 221.05424 40.377845 \n",
"L 221.1665 39.796623 \n",
"L 221.391019 40.958948 \n",
"L 221.503278 42.702375 \n",
"L 221.615538 42.121232 \n",
"L 221.727797 43.283359 \n",
"L 221.952316 42.121351 \n",
"L 222.064576 43.283478 \n",
"L 222.176835 42.702414 \n",
"L 222.738133 45.02639 \n",
"L 222.962652 42.701821 \n",
"L 223.074912 43.864422 \n",
"L 223.187171 43.283121 \n",
"L 223.299431 45.608325 \n",
"L 223.41169 44.445723 \n",
"L 223.748469 43.864383 \n",
"L 224.085247 46.189626 \n",
"L 224.197507 47.352227 \n",
"L 224.422026 46.770926 \n",
"L 224.646545 46.770926 \n",
"L 224.758804 46.189626 \n",
"L 225.207843 47.93333 \n",
"L 225.320102 47.352108 \n",
"L 225.76914 41.537594 \n",
"L 226.105919 43.281853 \n",
"L 226.442697 42.700512 \n",
"L 226.779476 42.700512 \n",
"L 227.003995 37.468051 \n",
"L 227.340774 36.886552 \n",
"L 227.453033 35.723317 \n",
"L 227.565293 36.305014 \n",
"L 227.677552 35.723317 \n",
"L 227.789812 36.305014 \n",
"L 227.902071 38.050105 \n",
"L 228.351109 38.050105 \n",
"L 228.575628 37.468408 \n",
"L 228.687888 38.050105 \n",
"L 228.800147 36.886711 \n",
"L 229.024666 38.631485 \n",
"L 229.136926 39.213024 \n",
"L 229.249185 42.702255 \n",
"L 229.361445 41.539178 \n",
"L 229.810483 40.375942 \n",
"L 230.035002 42.120836 \n",
"L 230.371781 39.212389 \n",
"L 230.5963 40.376061 \n",
"L 230.933078 38.048955 \n",
"L 231.157597 35.721374 \n",
"L 231.269857 35.721374 \n",
"L 231.494376 35.139438 \n",
"L 231.606635 35.721334 \n",
"L 231.831155 35.721334 \n",
"L 232.167933 34.557583 \n",
"L 232.392452 33.975647 \n",
"L 232.504712 35.139359 \n",
"L 232.616971 33.975806 \n",
"L 232.84149 37.465039 \n",
"L 232.95375 38.0463 \n",
"L 233.402788 36.302318 \n",
"L 233.627307 36.883659 \n",
"L 233.739566 38.046261 \n",
"L 234.076345 38.627562 \n",
"L 234.188605 37.46496 \n",
"L 234.862162 40.951342 \n",
"L 235.19894 48.495409 \n",
"L 235.3112 49.07517 \n",
"L 235.535719 46.755695 \n",
"L 235.647978 51.392832 \n",
"L 235.760238 50.813505 \n",
"L 235.984757 54.866864 \n",
"L 236.097016 54.866864 \n",
"L 236.546055 53.13034 \n",
"L 236.658314 53.13034 \n",
"L 236.770574 54.866903 \n",
"L 236.882833 53.709194 \n",
"L 236.995093 54.288009 \n",
"L 237.107352 56.603113 \n",
"L 237.66865 58.918217 \n",
"L 237.780909 61.812097 \n",
"L 238.005428 61.233321 \n",
"L 238.117688 61.812097 \n",
"L 238.566726 60.075611 \n",
"L 238.678986 61.233478 \n",
"L 238.791245 60.075611 \n",
"L 238.903505 60.075611 \n",
"L 239.128024 58.917745 \n",
"L 239.240283 60.075454 \n",
"L 239.352543 58.917745 \n",
"L 239.577062 62.391345 \n",
"L 239.801581 61.23336 \n",
"L 239.91384 62.391227 \n",
"L 240.0261 62.391227 \n",
"L 240.138359 63.548936 \n",
"L 240.475138 63.548936 \n",
"L 240.699657 61.812372 \n",
"L 240.811916 63.548582 \n",
"L 241.036436 64.705662 \n",
"L 241.148695 63.548582 \n",
"L 241.934512 61.233754 \n",
"L 242.27129 62.391463 \n",
"L 242.38355 61.233754 \n",
"L 242.608069 61.233754 \n",
"L 242.944847 63.548543 \n",
"L 243.169367 60.075887 \n",
"L 243.281626 62.391306 \n",
"L 243.393886 62.391306 \n",
"L 243.506145 63.5487 \n",
"L 243.955183 62.391306 \n",
"L 244.067443 58.917705 \n",
"L 244.404221 63.548897 \n",
"L 244.853259 65.863646 \n",
"L 244.965519 64.706409 \n",
"L 245.077778 64.706409 \n",
"L 245.190038 63.548857 \n",
"L 245.302297 63.548857 \n",
"L 245.414557 64.706409 \n",
"L 245.751336 64.706409 \n",
"L 245.863595 63.548857 \n",
"L 246.200374 61.233281 \n",
"L 246.424893 63.54933 \n",
"L 246.537152 62.391306 \n",
"L 246.649412 62.970278 \n",
"L 246.761671 64.707078 \n",
"L 247.09845 67.601745 \n",
"L 247.210709 71.654279 \n",
"L 247.322969 70.496255 \n",
"L 247.659748 71.654319 \n",
"L 247.772007 71.654319 \n",
"L 247.996526 73.970368 \n",
"L 248.108786 73.391355 \n",
"L 248.221045 70.496294 \n",
"L 248.445564 71.654279 \n",
"L 248.557824 71.075306 \n",
"L 248.670083 72.812343 \n",
"L 248.782343 72.812343 \n",
"L 248.894602 72.233291 \n",
"L 249.231381 72.812383 \n",
"L 249.4559 71.07507 \n",
"L 249.568159 70.4959 \n",
"L 249.680419 71.07503 \n",
"L 250.129457 69.337599 \n",
"L 250.241717 69.916808 \n",
"L 250.353976 68.179298 \n",
"L 250.466236 68.179298 \n",
"L 250.578495 67.600089 \n",
"L 250.803014 69.337836 \n",
"L 251.027533 65.282738 \n",
"L 251.139793 66.44171 \n",
"L 251.252052 65.862224 \n",
"L 251.588831 67.600681 \n",
"L 251.81335 65.862184 \n",
"L 251.925609 65.28262 \n",
"L 252.150128 73.967372 \n",
"L 252.262388 72.810136 \n",
"L 252.374648 72.810136 \n",
"L 252.486907 72.231439 \n",
"L 252.599167 72.810136 \n",
"L 253.272724 69.337244 \n",
"L 253.384983 71.652033 \n",
"L 253.609502 73.965561 \n",
"L 253.721762 73.965561 \n",
"L 253.834021 74.543747 \n",
"L 254.05854 73.965561 \n",
"L 254.283059 70.494836 \n",
"L 254.395319 71.651915 \n",
"L 254.507579 71.651915 \n",
"L 254.732098 71.073454 \n",
"L 254.956617 66.445728 \n",
"L 255.181136 69.337442 \n",
"L 255.293395 69.337442 \n",
"L 255.517914 70.493577 \n",
"L 255.742433 68.759571 \n",
"L 255.854693 69.337639 \n",
"L 256.079212 72.806044 \n",
"L 256.191471 72.806044 \n",
"L 256.41599 72.227977 \n",
"L 256.640509 72.806044 \n",
"L 256.865029 71.649909 \n",
"L 257.089548 71.649909 \n",
"L 257.201807 71.071842 \n",
"L 257.314067 72.805691 \n",
"L 257.426326 72.805691 \n",
"L 257.650845 75.693869 \n",
"L 257.763105 73.961198 \n",
"L 257.987624 73.961198 \n",
"L 258.324402 72.805809 \n",
"L 258.436662 73.961315 \n",
"L 258.548921 73.961315 \n",
"L 258.77344 77.427835 \n",
"L 258.8857 75.694575 \n",
"L 259.222479 75.116783 \n",
"L 259.446998 77.427482 \n",
"L 259.559257 76.272289 \n",
"L 259.783776 78.005157 \n",
"L 260.008295 79.737396 \n",
"L 260.120555 78.582674 \n",
"L 260.345074 81.468654 \n",
"L 260.457333 78.583027 \n",
"L 260.569593 79.737121 \n",
"L 260.681852 78.583027 \n",
"L 260.794112 78.583027 \n",
"L 260.906371 78.005863 \n",
"L 261.018631 79.16027 \n",
"L 261.13089 76.851455 \n",
"L 261.35541 77.42862 \n",
"L 261.579929 80.889961 \n",
"L 261.692188 80.313267 \n",
"L 261.804448 80.89 \n",
"L 261.916707 83.196934 \n",
"L 262.028967 82.043467 \n",
"L 262.141226 82.043467 \n",
"L 262.253486 81.466734 \n",
"L 262.478005 82.620044 \n",
"L 263.039302 79.736808 \n",
"L 263.71286 80.889961 \n",
"L 263.825119 79.736808 \n",
"L 264.049638 79.160152 \n",
"L 264.161898 83.770889 \n",
"L 264.274157 83.770889 \n",
"L 264.498676 84.922792 \n",
"L 264.723195 84.922792 \n",
"L 264.947714 86.074538 \n",
"L 265.284493 83.194977 \n",
"L 265.509012 81.466929 \n",
"L 265.733531 78.585962 \n",
"L 265.84579 78.585962 \n",
"L 266.07031 79.738489 \n",
"L 266.182569 86.077391 \n",
"L 266.407088 86.077391 \n",
"L 266.519348 87.806182 \n",
"L 266.743867 85.501088 \n",
"L 266.968386 85.501088 \n",
"L 267.192905 87.806456 \n",
"L 267.754202 90.111824 \n",
"L 268.090981 86.653302 \n",
"L 268.203241 86.653302 \n",
"L 268.3155 86.076803 \n",
"L 268.42776 88.958318 \n",
"L 268.652279 89.534386 \n",
"L 268.764538 88.958318 \n",
"L 269.325836 92.413711 \n",
"L 269.438095 91.262122 \n",
"L 269.550355 92.413554 \n",
"L 269.662614 91.837916 \n",
"L 269.887133 92.413515 \n",
"L 270.111652 92.413515 \n",
"L 270.336171 94.140195 \n",
"L 270.560691 97.593555 \n",
"L 270.897469 96.442318 \n",
"L 271.009729 99.319532 \n",
"L 271.683286 99.319532 \n",
"L 272.132324 100.470027 \n",
"L 272.244583 99.89478 \n",
"L 272.469102 101.045158 \n",
"L 272.805881 99.89478 \n",
"L 273.0304 99.319532 \n",
"L 273.254919 99.319532 \n",
"L 273.591698 98.744285 \n",
"L 273.703957 97.018542 \n",
"L 274.040736 97.018542 \n",
"L 274.152995 99.319532 \n",
"L 274.265255 99.319532 \n",
"L 274.489774 97.018074 \n",
"L 275.051072 98.168725 \n",
"L 275.275591 98.168725 \n",
"L 275.38785 97.593438 \n",
"L 275.50011 98.168764 \n",
"L 275.724629 97.018113 \n",
"L 275.836888 95.291784 \n",
"L 276.061407 97.018308 \n",
"L 276.285926 98.744519 \n",
"L 276.398186 97.593712 \n",
"L 276.622705 99.894741 \n",
"L 277.071743 101.045079 \n",
"L 277.408522 100.46991 \n",
"L 277.633041 98.744207 \n",
"L 277.969819 99.319415 \n",
"L 278.306598 98.16892 \n",
"L 278.643376 100.469949 \n",
"L 278.755636 101.620444 \n",
"L 279.092414 101.620444 \n",
"L 279.429193 100.469949 \n",
"L 279.541453 99.319454 \n",
"L 280.327269 99.319454 \n",
"L 280.439529 98.744207 \n",
"L 280.888567 98.16892 \n",
"L 281.000826 98.744246 \n",
"L 281.449864 99.319571 \n",
"L 281.786643 101.045548 \n",
"L 282.347941 98.744128 \n",
"L 282.57246 97.017722 \n",
"L 282.684719 98.168529 \n",
"L 282.909238 98.743855 \n",
"L 283.021498 97.593204 \n",
"L 283.358276 95.866914 \n",
"L 283.582795 98.168217 \n",
"L 283.807314 97.593008 \n",
"L 283.919574 98.743347 \n",
"L 284.256353 99.3184 \n",
"L 284.368612 101.617829 \n",
"L 284.480872 101.043089 \n",
"L 284.705391 101.617829 \n",
"L 285.042169 101.617829 \n",
"L 285.266688 102.19253 \n",
"L 286.052505 101.617829 \n",
"L 286.277024 100.46827 \n",
"L 286.389284 101.043128 \n",
"L 286.950581 100.46827 \n",
"L 287.062841 98.743699 \n",
"L 287.28736 98.168802 \n",
"L 287.399619 98.743738 \n",
"L 287.511879 98.168763 \n",
"L 287.848657 98.168763 \n",
"L 287.960917 97.59375 \n",
"L 288.297695 93.566783 \n",
"L 288.522214 91.840025 \n",
"L 288.858993 92.991184 \n",
"L 289.083512 91.840025 \n",
"L 289.195772 92.415663 \n",
"L 289.64481 90.688749 \n",
"L 289.757069 91.839869 \n",
"L 290.430626 93.565963 \n",
"L 290.767405 89.538293 \n",
"L 290.879665 90.113658 \n",
"L 291.328703 90.113658 \n",
"L 291.665481 91.264309 \n",
"L 292.00226 91.839635 \n",
"L 292.226779 91.264309 \n",
"L 292.563557 90.688984 \n",
"L 293.012595 89.538176 \n",
"L 293.237115 91.264622 \n",
"L 293.349374 90.68914 \n",
"L 293.461634 91.840103 \n",
"L 293.573893 94.14203 \n",
"L 293.798412 92.415546 \n",
"L 294.022931 91.839986 \n",
"L 294.471969 93.566666 \n",
"L 294.696488 91.26427 \n",
"L 294.921007 93.567135 \n",
"L 295.145526 94.142851 \n",
"L 295.370045 93.567135 \n",
"L 295.819084 93.567135 \n",
"L 296.043603 92.991419 \n",
"L 296.268122 94.142734 \n",
"L 296.6049 91.264544 \n",
"L 296.71716 95.867149 \n",
"L 296.829419 95.292096 \n",
"L 296.941679 93.566471 \n",
"L 297.053938 95.867773 \n",
"L 297.166198 95.867773 \n",
"L 297.502976 93.566471 \n",
"L 297.727496 94.716966 \n",
"L 297.839755 94.141757 \n",
"L 298.176534 93.56651 \n",
"L 298.288793 92.991223 \n",
"L 298.625572 97.018502 \n",
"L 298.737831 95.867851 \n",
"L 298.850091 97.018346 \n",
"L 299.299129 96.443177 \n",
"L 299.635907 98.168334 \n",
"L 299.748167 97.593399 \n",
"L 299.860426 98.168295 \n",
"L 299.972686 97.593437 \n",
"L 300.084946 98.168256 \n",
"L 300.197205 97.018541 \n",
"L 300.646243 97.018541 \n",
"L 300.983022 98.168412 \n",
"L 301.095281 98.168412 \n",
"L 301.207541 99.318283 \n",
"L 301.3198 99.318283 \n",
"L 301.43206 99.893179 \n",
"L 301.544319 99.318322 \n",
"L 301.881098 101.617751 \n",
"L 301.993357 101.042894 \n",
"L 302.330136 98.743464 \n",
"L 302.442396 99.893023 \n",
"L 302.779174 98.168724 \n",
"L 302.891434 98.743464 \n",
"L 303.003693 101.616971 \n",
"L 303.67725 101.616971 \n",
"L 303.78951 100.467568 \n",
"L 304.014029 100.467568 \n",
"L 304.238548 101.042231 \n",
"L 304.575327 100.467568 \n",
"L 304.687586 100.467568 \n",
"L 305.136624 99.318166 \n",
"L 305.697922 99.318166 \n",
"L 306.0347 100.467412 \n",
"L 306.14696 100.467412 \n",
"L 306.483738 99.318205 \n",
"L 306.708257 99.318205 \n",
"L 307.157296 101.042075 \n",
"L 307.606334 99.318205 \n",
"L 307.830853 98.743581 \n",
"L 308.279891 100.467257 \n",
"L 308.39215 99.892711 \n",
"L 308.728929 101.041646 \n",
"L 308.841188 100.352379 \n",
"L 309.065708 100.352379 \n",
"L 309.177967 99.088533 \n",
"L 309.514746 99.663094 \n",
"L 310.076043 100.237655 \n",
"L 310.412822 99.663094 \n",
"L 310.7496 101.386582 \n",
"L 310.86186 100.812099 \n",
"L 311.086379 101.386543 \n",
"L 311.198638 100.812138 \n",
"L 311.647677 100.237694 \n",
"L 311.872196 101.961144 \n",
"L 311.984455 101.38666 \n",
"L 312.321234 102.53551 \n",
"L 312.433493 104.833131 \n",
"L 312.545753 104.833131 \n",
"L 312.658012 103.109564 \n",
"L 312.882531 104.833482 \n",
"L 312.994791 103.684204 \n",
"L 313.10705 103.684204 \n",
"L 313.556088 102.534886 \n",
"L 313.668348 101.385296 \n",
"L 313.892867 103.684789 \n",
"L 314.229646 104.259662 \n",
"L 314.454165 106.559154 \n",
"L 314.790943 107.134027 \n",
"L 315.127722 107.134027 \n",
"L 315.913539 103.684047 \n",
"L 316.362577 103.1089 \n",
"L 316.587096 101.95849 \n",
"L 316.811615 102.533754 \n",
"L 316.923874 101.95849 \n",
"L 317.036134 102.533715 \n",
"L 317.148393 101.383344 \n",
"L 317.372912 103.683461 \n",
"L 317.709691 103.108549 \n",
"L 317.82195 103.683461 \n",
"L 318.158729 102.533715 \n",
"L 318.607767 102.533715 \n",
"L 318.832286 100.809056 \n",
"L 319.281324 101.384007 \n",
"L 319.842622 100.234105 \n",
"L 319.954881 100.809017 \n",
"L 320.516179 101.38389 \n",
"L 321.077477 99.659154 \n",
"L 321.638774 99.084163 \n",
"L 321.751034 97.934105 \n",
"L 321.975553 98.509095 \n",
"L 322.424591 95.634339 \n",
"L 322.985889 95.634339 \n",
"L 323.098148 93.909134 \n",
"L 323.883965 91.032974 \n",
"L 324.333003 92.183657 \n",
"L 326.353674 92.758998 \n",
"L 326.465934 93.334339 \n",
"L 327.251751 93.909681 \n",
"L 327.813048 93.334339 \n",
"L 328.149827 91.608003 \n",
"L 329.047903 91.608003 \n",
"L 329.272422 91.032505 \n",
"L 331.629872 89.881354 \n",
"L 331.854391 89.3057 \n",
"L 332.415689 88.730008 \n",
"L 332.527948 89.305739 \n",
"L 332.640208 88.730008 \n",
"L 335.446696 86.426455 \n",
"L 335.671215 87.002499 \n",
"L 336.344772 86.426416 \n",
"L 338.589963 86.426416 \n",
"L 339.488039 85.850293 \n",
"L 339.824817 84.12169 \n",
"L 339.937077 84.697969 \n",
"L 340.386115 84.12169 \n",
"L 341.284191 88.731924 \n",
"L 341.733229 88.155645 \n",
"L 341.845489 87.00293 \n",
"L 342.070008 86.426455 \n",
"L 342.406786 87.002969 \n",
"L 342.743565 89.309025 \n",
"L 342.968084 91.038567 \n",
"L 343.080343 91.038567 \n",
"L 343.417122 89.309025 \n",
"L 343.753901 88.732472 \n",
"L 343.97842 88.155879 \n",
"L 344.539717 87.002694 \n",
"L 345.325534 86.426102 \n",
"L 345.774572 87.002655 \n",
"L 346.22361 88.732198 \n",
"L 346.560389 87.579169 \n",
"L 347.009427 80.082723 \n",
"L 347.458465 78.928755 \n",
"L 347.907503 76.620504 \n",
"L 348.132022 77.197528 \n",
"L 348.468801 80.08147 \n",
"L 348.805579 77.197723 \n",
"L 349.142358 76.043873 \n",
"L 350.264953 74.889904 \n",
"L 350.377213 75.466849 \n",
"L 350.713991 74.313037 \n",
"L 350.826251 74.889943 \n",
"L 351.163029 75.466849 \n",
"L 351.275289 74.889943 \n",
"L 351.836586 77.197097 \n",
"L 352.061105 77.197097 \n",
"L 352.510144 76.620348 \n",
"L 352.734663 74.312881 \n",
"L 352.846922 74.312881 \n",
"L 352.959182 73.735975 \n",
"L 353.183701 75.46634 \n",
"L 353.40822 74.88963 \n",
"L 353.520479 70.275636 \n",
"L 353.632739 76.039219 \n",
"L 353.857258 73.734724 \n",
"L 353.969517 72.582163 \n",
"L 354.081777 74.887284 \n",
"L 354.194036 74.887284 \n",
"L 354.306296 73.734567 \n",
"L 354.530815 74.311004 \n",
"L 354.755334 73.734567 \n",
"L 354.979853 74.88744 \n",
"L 355.092113 70.275948 \n",
"L 355.316632 70.275948 \n",
"L 355.76567 69.122919 \n",
"L 355.990189 70.275948 \n",
"L 356.326967 70.275948 \n",
"L 356.439227 69.122919 \n",
"L 356.663746 71.42929 \n",
"L 356.888265 71.42929 \n",
"L 357.112784 74.312254 \n",
"L 357.561822 76.618156 \n",
"L 357.674082 76.04172 \n",
"L 358.12312 74.888691 \n",
"L 358.796677 74.312098 \n",
"L 359.245715 76.041681 \n",
"L 360.256051 80.075368 \n",
"L 360.705089 81.227302 \n",
"L 360.929608 82.954853 \n",
"L 361.490906 81.80327 \n",
"L 362.164463 80.651491 \n",
"L 362.388982 80.651491 \n",
"L 362.501241 80.075485 \n",
"L 363.287058 78.923394 \n",
"L 363.511577 80.651179 \n",
"L 363.736096 81.22699 \n",
"L 363.848356 82.378612 \n",
"L 364.634172 82.954424 \n",
"L 365.08321 81.802801 \n",
"L 365.756767 80.651023 \n",
"L 366.205806 82.378925 \n",
"L 366.542584 79.498892 \n",
"L 366.654844 78.922808 \n",
"L 367.216141 79.498931 \n",
"L 367.328401 80.651179 \n",
"L 367.44066 78.922808 \n",
"L 367.665179 77.770404 \n",
"L 367.889698 79.499244 \n",
"L 368.001958 78.346684 \n",
"L 368.114218 78.346684 \n",
"L 369.012294 77.770404 \n",
"L 369.124553 78.346645 \n",
"L 370.134889 78.922847 \n",
"L 370.696187 80.075251 \n",
"L 371.032965 78.922808 \n",
"L 371.369744 81.227928 \n",
"L 372.043301 80.651648 \n",
"L 372.26782 81.227928 \n",
"L 372.604598 78.922769 \n",
"L 373.053637 80.651843 \n",
"L 373.278156 80.075485 \n",
"L 373.614934 80.651843 \n",
"L 374.176232 77.769544 \n",
"L 374.51301 77.192951 \n",
"L 374.62527 77.769504 \n",
"L 375.074308 76.039804 \n",
"L 375.747865 76.039804 \n",
"L 376.309163 75.463093 \n",
"L 376.421422 76.039843 \n",
"L 376.758201 74.886344 \n",
"L 377.319499 74.309555 \n",
"L 377.431758 74.886383 \n",
"L 377.656277 73.732727 \n",
"L 377.768537 74.886226 \n",
"L 378.329834 73.732884 \n",
"L 378.442094 74.309516 \n",
"L 378.891132 73.732884 \n",
"L 379.34017 74.309555 \n",
"L 379.564689 76.039569 \n",
"L 379.676949 76.039569 \n",
"L 380.238246 77.192911 \n",
"L 380.350506 76.61624 \n",
"L 380.687284 77.192872 \n",
"L 381.80988 76.616279 \n",
"L 381.922139 73.732336 \n",
"L 383.830551 74.886305 \n",
"L 384.616368 74.886305 \n",
"L 384.953146 73.155312 \n",
"L 385.402184 72.578249 \n",
"L 385.738963 71.424006 \n",
"L 386.075741 72.001108 \n",
"L 386.188001 71.424045 \n",
"L 386.973818 70.269763 \n",
"L 387.198337 70.269763 \n",
"L 387.310596 65.649498 \n",
"L 389.106749 69.115167 \n",
"L 392.699053 70.269763 \n",
"L 403.475968 70.269763 \n",
"L 403.812746 70.846943 \n",
"L 403.925006 70.269763 \n",
"L 408.303127 73.73308 \n",
"L 408.415387 72.001422 \n",
"L 412.681249 69.691916 \n",
"L 412.793508 70.846826 \n",
"L 416.049035 70.846826 \n",
"L 416.161294 71.424202 \n",
"L 417.396149 73.156331 \n",
"L 417.732927 74.311084 \n",
"L 427.948544 74.88846 \n",
"L 435.694451 74.311084 \n",
"L 435.806711 69.114697 \n",
"L 436.143489 69.692073 \n",
"L 436.368009 78.920069 \n",
"L 436.480268 78.343906 \n",
"L 436.704787 78.343906 \n",
"L 437.715123 77.767665 \n",
"L 448.042999 77.191385 \n",
"L 452.64564 75.462193 \n",
"L 453.319197 76.038707 \n",
"L 454.666311 78.921281 \n",
"L 455.227609 78.344767 \n",
"L 460.728325 77.768213 \n",
"L 464.43289 76.615027 \n",
"L 465.330966 78.920773 \n",
"L 465.330966 78.920773 \n",
"\" clip-path=\"url(#p9e6ffe71de)\" style=\"fill: none; stroke: #55a868; stroke-width: 1.75; stroke-linecap: round\"/>\n",
" </g>\n",
" <g id=\"patch_3\">\n",
" <path d=\"M 39.221875 276.48 \n",
"L 39.221875 7.2 \n",
"\" style=\"fill: none\"/>\n",
" </g>\n",
" <g id=\"patch_4\">\n",
" <path d=\"M 485.621875 276.48 \n",
"L 485.621875 7.2 \n",
"\" style=\"fill: none\"/>\n",
" </g>\n",
" <g id=\"patch_5\">\n",
" <path d=\"M 39.221875 276.48 \n",
"L 485.621875 276.48 \n",
"\" style=\"fill: none\"/>\n",
" </g>\n",
" <g id=\"patch_6\">\n",
" <path d=\"M 39.221875 7.2 \n",
"L 485.621875 7.2 \n",
"\" style=\"fill: none\"/>\n",
" </g>\n",
" <g id=\"legend_1\">\n",
" <g id=\"line2d_27\">\n",
" <path d=\"M 443.621875 19.857813 \n",
"L 453.621875 19.857813 \n",
"L 463.621875 19.857813 \n",
"\" style=\"fill: none; stroke: #4c72b0; stroke-width: 1.75; stroke-linecap: round\"/>\n",
" </g>\n",
" <g id=\"text_14\">\n",
" <!-- r -->\n",
" <g style=\"fill: #262626\" transform=\"translate(471.621875 23.357813) scale(0.1 -0.1)\">\n",
" <defs>\n",
" <path id=\"ArialMT-72\" d=\"M 416 0 \n",
"L 416 3319 \n",
"L 922 3319 \n",
"L 922 2816 \n",
"Q 1116 3169 1280 3281 \n",
"Q 1444 3394 1641 3394 \n",
"Q 1925 3394 2219 3213 \n",
"L 2025 2691 \n",
"Q 1819 2813 1613 2813 \n",
"Q 1428 2813 1281 2702 \n",
"Q 1134 2591 1072 2394 \n",
"Q 978 2094 978 1738 \n",
"L 978 0 \n",
"L 416 0 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" </defs>\n",
" <use xlink:href=\"#ArialMT-72\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"line2d_28\">\n",
" <path d=\"M 443.621875 34.003125 \n",
"L 453.621875 34.003125 \n",
"L 463.621875 34.003125 \n",
"\" style=\"fill: none; stroke: #55a868; stroke-width: 1.75; stroke-linecap: round\"/>\n",
" </g>\n",
" <g id=\"text_15\">\n",
" <!-- s -->\n",
" <g style=\"fill: #262626\" transform=\"translate(471.621875 37.503125) scale(0.1 -0.1)\">\n",
" <defs>\n",
" <path id=\"ArialMT-73\" d=\"M 197 991 \n",
"L 753 1078 \n",
"Q 800 744 1014 566 \n",
"Q 1228 388 1613 388 \n",
"Q 2000 388 2187 545 \n",
"Q 2375 703 2375 916 \n",
"Q 2375 1106 2209 1216 \n",
"Q 2094 1291 1634 1406 \n",
"Q 1016 1563 777 1677 \n",
"Q 538 1791 414 1992 \n",
"Q 291 2194 291 2438 \n",
"Q 291 2659 392 2848 \n",
"Q 494 3038 669 3163 \n",
"Q 800 3259 1026 3326 \n",
"Q 1253 3394 1513 3394 \n",
"Q 1903 3394 2198 3281 \n",
"Q 2494 3169 2634 2976 \n",
"Q 2775 2784 2828 2463 \n",
"L 2278 2388 \n",
"Q 2241 2644 2061 2787 \n",
"Q 1881 2931 1553 2931 \n",
"Q 1166 2931 1000 2803 \n",
"Q 834 2675 834 2503 \n",
"Q 834 2394 903 2306 \n",
"Q 972 2216 1119 2156 \n",
"Q 1203 2125 1616 2013 \n",
"Q 2213 1853 2448 1751 \n",
"Q 2684 1650 2818 1456 \n",
"Q 2953 1263 2953 975 \n",
"Q 2953 694 2789 445 \n",
"Q 2625 197 2315 61 \n",
"Q 2006 -75 1616 -75 \n",
"Q 969 -75 630 194 \n",
"Q 291 463 197 991 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" </defs>\n",
" <use xlink:href=\"#ArialMT-73\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <defs>\n",
" <clipPath id=\"p9e6ffe71de\">\n",
" <rect x=\"39.221875\" y=\"7.2\" width=\"446.4\" height=\"269.28\"/>\n",
" </clipPath>\n",
" </defs>\n",
"</svg>\n"
],
"text/plain": [
"<Figure size 800x550 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"test[['r', 's']].cumsum().apply(np.exp).plot();"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Trading Code"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\u001b[0;31mSignature:\u001b[0m \u001b[0moanda\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mon_success\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtime\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbid\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mask\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mSource:\u001b[0m \n",
" \u001b[0;32mdef\u001b[0m \u001b[0mon_success\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtime\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbid\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mask\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n",
"\u001b[0;34m\u001b[0m \u001b[0;34m''' Method called when new data is retrieved. '''\u001b[0m\u001b[0;34m\u001b[0m\n",
"\u001b[0;34m\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtime\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbid\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mask\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mFile:\u001b[0m ~/Python/envs/work/lib/python3.8/site-packages/tpqoa/tpqoa.py\n",
"\u001b[0;31mType:\u001b[0m method\n"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"oanda.on_success??"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2023-06-15T09:37:30.898327098Z 74.009 74.039\n",
"2023-06-15T09:37:45.026917617Z 74.014 74.044\n",
"2023-06-15T09:37:45.414371727Z 74.009 74.049\n",
"2023-06-15T09:37:45.640733375Z 74.004 74.034\n",
"2023-06-15T09:37:45.744644284Z 74.009 74.039\n",
"2023-06-15T09:37:46.854105015Z 74.004 74.034\n",
"2023-06-15T09:37:49.192007820Z 73.994 74.024\n",
"2023-06-15T09:37:49.445936122Z 73.989 74.019\n",
"2023-06-15T09:37:50.041196816Z 73.984 74.014\n",
"2023-06-15T09:37:50.446683952Z 73.989 74.019\n"
]
}
],
"source": [
"oanda.stream_data('BCO_USD', stop=10) # streaming data"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"\n",
" {'id': '3526', 'time': '2023-06-15T09:37:50.706973802Z', 'userID': 13834683, 'accountID': '101-004-13834683-001', 'batchID': '3525', 'requestID': '61118239246145035', 'type': 'ORDER_FILL', 'orderID': '3525', 'instrument': 'BCO_USD', 'units': '100.0', 'gainQuoteHomeConversionFactor': '0.917317013471', 'lossQuoteHomeConversionFactor': '0.926536279938', 'price': 74.024, 'fullVWAP': 74.024, 'fullPrice': {'type': 'PRICE', 'bids': [{'price': 73.994, 'liquidity': '5000'}, {'price': 73.984, 'liquidity': '5000'}, {'price': 73.974, 'liquidity': '10000'}], 'asks': [{'price': 74.024, 'liquidity': '5000'}, {'price': 74.034, 'liquidity': '5000'}, {'price': 74.044, 'liquidity': '10000'}], 'closeoutBid': 73.974, 'closeoutAsk': 74.044}, 'reason': 'MARKET_ORDER', 'pl': '0.0', 'financing': '0.0', 'commission': '0.0', 'guaranteedExecutionFee': '0.0', 'accountBalance': '101292.3298', 'tradeOpened': {'tradeID': '3526', 'units': '100.0', 'price': 74.024, 'guaranteedExecutionFee': '0.0', 'halfSpreadCost': '1.3829', 'initialMarginRequired': '682.31'}, 'halfSpreadCost': '1.3829'} \n",
"\n"
]
}
],
"source": [
"oanda.create_order('BCO_USD', units=100) # opening long position"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"\n",
" {'id': '3528', 'time': '2023-06-15T09:37:50.852999858Z', 'userID': 13834683, 'accountID': '101-004-13834683-001', 'batchID': '3527', 'requestID': '61118239246145182', 'type': 'ORDER_FILL', 'orderID': '3527', 'instrument': 'BCO_USD', 'units': '-100.0', 'gainQuoteHomeConversionFactor': '0.917317013471', 'lossQuoteHomeConversionFactor': '0.926536279938', 'price': 74.009, 'fullVWAP': 74.009, 'fullPrice': {'type': 'PRICE', 'bids': [{'price': 74.009, 'liquidity': '5000'}, {'price': 73.999, 'liquidity': '5000'}, {'price': 73.989, 'liquidity': '10000'}], 'asks': [{'price': 74.039, 'liquidity': '4900'}, {'price': 74.049, 'liquidity': '5000'}, {'price': 74.059, 'liquidity': '10000'}], 'closeoutBid': 73.989, 'closeoutAsk': 74.059}, 'reason': 'MARKET_ORDER', 'pl': '-1.3898', 'financing': '0.0', 'commission': '0.0', 'guaranteedExecutionFee': '0.0', 'accountBalance': '101290.94', 'tradesClosed': [{'tradeID': '3526', 'units': '-100.0', 'price': 74.009, 'realizedPL': '-1.3898', 'financing': '0.0', 'guaranteedExecutionFee': '0.0', 'halfSpreadCost': '1.3829'}], 'halfSpreadCost': '1.3829'} \n",
"\n"
]
}
],
"source": [
"oanda.create_order('BCO_USD', units=-100) # closing long position"
]
},
{
"cell_type": "markdown",
"metadata": {
"tags": []
},
"source": [
"## Simple Deployment"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"model.predict(test[cols])[-1]"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [],
"source": [
"class MLPTrader(tpqoa.tpqoa):\n",
" def __init__(self, config_file, model, lags):\n",
" super().__init__(config_file)\n",
" self.model = model\n",
" self.min_length = lags\n",
" self.position = 0\n",
" self.units = 100\n",
" self.tick_data = pd.DataFrame()\n",
" def on_success(self, time, bid, ask):\n",
" trade = False\n",
" print(self.ticks, end=' ')\n",
" df = pd.DataFrame({'b': bid, 'a': ask, 'm': (ask + bid) / 2},\n",
" index=[pd.Timestamp(time).tz_localize(tz=None)])\n",
" self.tick_data = pd.concat((self.tick_data, df))\n",
" # resampling the tick data to 5 second intervals\n",
" self.data = self.tick_data.resample('5s', label='right').last().ffill()\n",
" self.data['r'] = np.log(self.data['m'] / self.data['m'].shift(1))\n",
" self.data.dropna(inplace=True)\n",
" if len(self.data) > self.min_length:\n",
" self.min_length += 1\n",
" # checking for long signal\n",
" prediction = self.model.predict(\n",
" self.data['m'].iloc[-lags-1:-1].values.reshape(1, -1))\n",
" print(prediction)\n",
" if prediction == 1 and self.position in [0, -1]:\n",
" o = oanda.create_order(self.stream_instrument,\n",
" units=(1 - self.position) * self.units,\n",
" suppress=True, ret=True)\n",
" print('\\n*** GOING LONG ***')\n",
" self.print_transactions(tid=int(o['id']) - 1)\n",
" self.position = 1\n",
" # checking for short signal\n",
" elif prediction == -1 and self.position in [0, 1]:\n",
" o = oanda.create_order(self.stream_instrument,\n",
" units=-(1 + self.position) * self.units,\n",
" suppress=True, ret=True)\n",
" print('\\n*** GOING SHORT ***')\n",
" self.print_transactions(tid=int(o['id']) - 1)\n",
" self.position = -1 "
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 2 3 4 5 6 [-1]\n",
"\n",
"*** GOING SHORT ***\n",
"3530 | 2023-06-15T09:39:20.41 | BCO_USD | -100.0 | 0.0\n",
"7 8 9 [-1]\n",
"10 [-1]\n",
"11 [-1]\n",
"12 [-1]\n",
"13 [-1]\n",
"14 15 [-1]\n",
"16 [-1]\n",
"17 [-1]\n",
"18 19 20 [-1]\n",
"21 [-1]\n",
"22 23 24 [-1]\n",
"25 26 27 [-1]\n",
"28 29 [-1]\n",
"30 31 32 [-1]\n",
"33 [-1]\n",
"34 35 [-1]\n",
"36 37 [-1]\n",
"38 [-1]\n",
"39 [-1]\n",
"40 [-1]\n",
"41 [-1]\n",
"42 43 [-1]\n",
"44 45 46 47 [-1]\n",
"48 [-1]\n",
"49 50 [-1]\n",
"51 [-1]\n",
"52 53 54 [-1]\n",
"55 [-1]\n",
"56 [-1]\n",
"57 58 [-1]\n",
"59 60 61 62 [-1]\n",
"63 64 [-1]\n",
"65 [-1]\n",
"66 67 68 69 [-1]\n",
"70 71 72 73 [-1]\n",
"74 75 76 77 [-1]\n",
"78 79 80 81 [-1]\n",
"82 [-1]\n",
"83 84 85 86 [-1]\n",
"87 [-1]\n",
"88 [-1]\n",
"89 90 91 92 [-1]\n",
"93 [-1]\n",
"94 95 [-1]\n",
"96 97 98 99 [-1]\n",
"100 [-1]\n",
"101 102 103 [-1]\n",
"104 [-1]\n",
"105 106 107 108 109 110 [-1]\n",
"111 112 113 114 115 [-1]\n",
"116 117 118 [-1]\n",
"119 120 121 [-1]\n",
"122 123 124 125 126 127 128 [-1]\n",
"129 130 [-1]\n",
"131 132 133 134 135 [-1]\n",
"136 137 [-1]\n",
"138 [-1]\n",
"139 [-1]\n",
"140 141 [-1]\n",
"142 143 [-1]\n",
"144 145 146 147 [-1]\n",
"148 [-1]\n",
"149 150 "
]
}
],
"source": [
"mt = MLPTrader('../oanda.cfg', model, lags=lags)\n",
"mt.stream_data('BCO_USD', stop=150)"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"*** POSITION CLOSED ***\n",
"3532 | 2023-06-15T09:44:34.11 | BCO_USD | 100.0 | 0.0\n",
"\n",
"\n",
"{'accountBalance': '101290.9375',\n",
" 'accountID': '101-004-13834683-001',\n",
" 'batchID': '3531',\n",
" 'commission': '0.0',\n",
" 'financing': '-0.0025',\n",
" 'fullPrice': {'asks': [{'liquidity': '5000', 'price': 74.004},\n",
" {'liquidity': '5000', 'price': 74.014},\n",
" {'liquidity': '10000', 'price': 74.024}],\n",
" 'bids': [{'liquidity': '5000', 'price': 73.974},\n",
" {'liquidity': '5000', 'price': 73.964},\n",
" {'liquidity': '10000', 'price': 73.954}],\n",
" 'closeoutAsk': 74.024,\n",
" 'closeoutBid': 73.954,\n",
" 'type': 'PRICE'},\n",
" 'fullVWAP': 74.004,\n",
" 'gainQuoteHomeConversionFactor': '0.917638490624',\n",
" 'guaranteedExecutionFee': '0.0',\n",
" 'halfSpreadCost': '1.3834',\n",
" 'id': '3532',\n",
" 'instrument': 'BCO_USD',\n",
" 'lossQuoteHomeConversionFactor': '0.926860988017',\n",
" 'orderID': '3531',\n",
" 'pl': '0.0',\n",
" 'price': 74.004,\n",
" 'reason': 'MARKET_ORDER',\n",
" 'requestID': '43103842433344056',\n",
" 'time': '2023-06-15T09:44:34.110549953Z',\n",
" 'tradesClosed': [{'financing': '-0.0025',\n",
" 'guaranteedExecutionFee': '0.0',\n",
" 'halfSpreadCost': '1.3834',\n",
" 'price': 74.004,\n",
" 'realizedPL': '0.0',\n",
" 'tradeID': '3530',\n",
" 'units': '100.0'}],\n",
" 'type': 'ORDER_FILL',\n",
" 'units': '100.0',\n",
" 'userID': 13834683}\n"
]
}
],
"source": [
"from pprint import pprint\n",
"o = mt.create_order('BCO_USD', units=-mt.position * mt.units,\n",
" suppress=True, ret=True)\n",
"print('\\n*** POSITION CLOSED ***')\n",
"mt.print_transactions(tid=int(o['id']) - 1)\n",
"print('\\n')\n",
"pprint(o)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<img src='http://hilpisch.com/tpq_logo.png' width=\"350px\" align=\"right\">"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.15"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
#
# Example Code for Algorithmic Strategy Deployment
# on Oanda (https://oanda.com)
#
# (c) Dr. Yves J. Hilpisch
# The Python Quants GmbH
#
# The code is for illustration purposes only. No warranties or representations
# to the extent permitted by applicable law. The code does not
# represent investment advice or a recommendation in any regard.
#
import re
import math
import uuid
import numpy as np
import pandas as pd
from time import sleep
from tpqoa import tpqoa
from retrying import retry
from dateutil import parser
from abc import abstractmethod, ABCMeta
from datetime import timedelta, datetime
from model import Signal, Prediction, signal_queue
valid_instruments = ['EUR_USD', 'BCO_USD']
valid_frequency = ['M1', 'M5', 'M10', 'M30']
def roundup(x, freq):
return int(math.ceil(x / freq)) * freq
def round_time(dt=None, date_delta=timedelta(minutes=1), to='average'):
"""
Round a datetime object to a multiple of a timedelta
dt: datetime.datetime object, default now.
dateDelta: timedelta object, we round to a multiple of this,
default 1 minute.
from: http://stackoverflow.com/questions/3463930/how-to-round-the-minute-of-a-datetime-object-python
"""
round_to = date_delta.total_seconds()
if dt is None:
dt = datetime.utcnow()
seconds = (dt - timedelta(dt.minute)).second
if to == 'up':
rounding = (seconds + round_to) // round_to * round_to
elif to == 'down':
rounding = seconds // round_to * round_to
else:
rounding = (seconds + round_to / 2) // round_to * round_to
dt = dt + timedelta(seconds=(rounding - seconds),
microseconds=-dt.microsecond)
return dt
class BaseStrategy(metaclass=ABCMeta):
def __init__(self, model_parameters, config):
self.data_source = tpqoa(config)
self.data = pd.DataFrame()
self.live_price_data = pd.DataFrame()
self.model_params = model_parameters
self.n_bars = 120
self.first_run = True
self.stop_model = False
self.model_id = uuid.uuid4()
self.signal_count = 0
self.feature_labels = set()
# Important model params
self.trading_quantity = None
self.instrument = None
self.frequency = None
self.initialize()
self.validate()
##################################################################
# PRIVATE METHODS APPLICABLE FOR ALL STRATEGIES
##################################################################
def _initialize_model_params(self):
model_parameters = self.model_params
for key, value in model_parameters.items():
setattr(self, key, value)
@staticmethod
def _get_time_unit_and_duration(freq):
freq = re.findall(r'[A-Za-z]+|\d+', freq)
min_or_sec = freq[0]
duration = int(freq[1])
return duration, min_or_sec
@retry(stop_max_attempt_number=7, wait_fixed=5000, wrap_exception=True)
def _get_data(self, instrument, start, end, freq=None, price='M'):
if freq is None:
freq = self.frequency
msg = f"Trying to get data from OANDA for {instrument} {start} {end}"
msg += f" {freq} {price} at {datetime.utcnow()}"
print(msg)
start = parser.parse(start).strftime("%Y-%m-%d %H:%M:%S")
end = parser.parse(end).strftime("%Y-%m-%d %H:%M:%S")
raw_data = self.data_source.get_history(
instrument, start, end, freq, price)
return raw_data
@staticmethod
def _sleep_for_signal_gen(duration, signal_date):
current_min = parser.parse(signal_date).minute
current_second = parser.parse(signal_date).second
next_min_level = roundup(current_min, duration)
seconds_to_sleep = (((next_min_level - current_min) * 60) + 1 -
current_second)
if seconds_to_sleep > 0:
print(f'signal gen thread: sleeping for {seconds_to_sleep} seconds')
sleep(seconds_to_sleep)
@staticmethod
def _sleep_until_next_signal(duration, min_or_sec, signal_date):
time_diff = (parser.parse(signal_date) -
parser.parse(datetime.utcnow().isoformat() + 'Z'))
seconds_diff = time_diff.seconds
microseconds_diff = time_diff.microseconds
# Sleep till the next min
sleep_duration = duration
if min_or_sec == 'M':
sleep_duration = 60 * duration
if seconds_diff < sleep_duration:
msg = f'signal gen thread: sleeping for '
msg += f'{seconds_diff + microseconds_diff / 1000000} seconds'
print(msg)
sleep(seconds_diff + microseconds_diff / 1000000)
def _publish_stop_signal(self):
signal = Signal()
signal.signal_id = uuid.uuid4()
signal.model_id = self.model_id
signal.instrument = self.instrument
signal.prediction = Prediction.STOP
self._publish_signal(signal)
@staticmethod
def _publish_signal(signal):
print(f'Publishing Signal: {signal.signal_id}')
signal_queue.put(signal)
def _prepare_predict_data(self, original_signal_date):
predict_data = pd.DataFrame()
predict_data[self.instrument + '_close'] = self.live_price_data['c']
predict_data[self.instrument + '_open'] = self.live_price_data['o']
predict_data[self.instrument + '_high'] = self.live_price_data['h']
predict_data[self.instrument + '_low'] = self.live_price_data['l']
predict_data[self.instrument + '_volume'] = self.live_price_data['volume']
predict_data[self.instrument + '_date'] = self.live_price_data['time']
predict_data[self.instrument + '_return'] = \
np.log(predict_data[self.instrument + '_close'] / \
predict_data[self.instrument + '_close'].shift(1))
predict_data.dropna(inplace=True)
predict_data.set_index(self.instrument + '_date', inplace=True)
predict_data.loc[parser.parse(original_signal_date)] = 100
return predict_data
def _get_signal_for_prediction(self, prediction):
signal = Signal()
signal.signal_id = uuid.uuid4()
signal.model_id = self.model_id
signal.instrument = self.instrument
signal.prediction = prediction
signal.quantity = self.trading_quantity
return signal
##################################################################
# PUBLIC METHODS THAT CAN BE OVERRIDDEN IN THE ACTUAL STRATEGY
##################################################################
def set_n_bars(self, n_bars):
# Override the number of candles to be fetched from data source.
self.n_bars = n_bars
def initialize(self):
self._initialize_model_params()
def validate(self):
instrument = self.model_params['instrument']
if instrument not in valid_instruments:
exit(f'{instrument} is not a valid/supported instruments')
self.instrument = instrument
frequency = self.model_params['frequency']
if frequency not in valid_frequency:
exit(f'{frequency} is not a valid/supported frequency')
self.frequency = frequency
if 'trading_quantity' not in self.model_params:
exit(f'trading quantity is mandatory')
else:
self.trading_quantity = self.model_params['trading_quantity']
if ('n_signals_to_gen' not in self.model_params) \
and ('stop_time' not in self.model_params):
exit('stop_time or n_signals_to_gen required as exit condition')
def generate_signal(self):
signal_date = datetime.utcnow().isoformat()[:-7] + 'Z'
duration, min_or_sec = self._get_time_unit_and_duration(self.frequency)
if self.first_run is True and 'trade_immediately' in self.model_params and \
self.model_params['trade_immediately'] is True:
self.first_run = False
else:
self.first_run = False
if min_or_sec == 'M':
self._sleep_for_signal_gen(duration, signal_date)
signal_date = datetime.utcnow().isoformat()[:-7] + 'Z'
print(f"generating signal now {datetime.utcnow()}")
while True:
try:
self.check_for_stop_condition(signal_date)
if self.stop_model is True:
self._publish_stop_signal()
break
if min_or_sec == 'M':
signal_date = round_time(parser.parse(signal_date),
date_delta=timedelta(minutes=duration),
to='up').isoformat()[:-6] + 'Z'
signal = self.predict_for_time(signal_date)
self.signal_count += 1
self._publish_signal(signal)
if min_or_sec == 'M':
self._sleep_for_signal_gen(duration, signal_date)
sleep(2)
self._sleep_until_next_signal(duration, min_or_sec, signal_date)
signal_date = datetime.utcnow().isoformat()[:-7] + 'Z'
except Exception as e:
import traceback
print(f'{traceback.format_exc()}')
def check_for_stop_condition(self, signal_time):
if 'n_signals_to_gen' in self.model_params:
if self.signal_count >= self.model_params['n_signals_to_gen']:
self.stop_model = True
if 'stop_time' in self.model_params:
stop_time = parser.parse(
parser.parse(self.model_params['stop_time']
).strftime("%Y-%m-%dT%H:%M:%SZ"))
if stop_time <= signal_time:
self.stop_model = True
def predict_for_time(self, signal_date=None, is_first_run=False):
signal_date = signal_date[:-1]
original_signal_date = signal_date
signal_date = parser.parse(signal_date)
# * 3 is to avoid the lags being NaN
time_periods_to_populate = self.n_bars
start = self.get_starting_time(signal_date, time_periods_to_populate)
raw_data = self._get_data(self.instrument,
start.strftime("%Y-%m-%dT%H:%M:%SZ"),
datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%SZ"),
freq=self.frequency, price='M')
raw_data_len = len(raw_data)
time_diff = (signal_date - start).seconds / 60
duration, min_or_sec = self._get_time_unit_and_duration(self.frequency)
retry_count = 0
while raw_data_len < time_diff / duration:
sleep(2)
if retry_count > 6:
print("Expected candles are {} got {}; stopping model.".format(
str(int(time_diff / duration)), str(raw_data_len)))
self.stop_model = True
break
raw_data = self._get_data(self.instrument,
start.strftime("%Y-%m-%dT%H:%M:%SZ"),
datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%SZ"),
freq=self.frequency, price='M')
raw_data_len = len(raw_data)
retry_count += 1
print("Expected candles are {} got {}.".format(
str(int(time_diff / duration)), str(raw_data_len)))
if self.stop_model is True:
return
raw_data.dropna(inplace=True)
self.live_price_data = raw_data.reset_index()
predict_data = self._prepare_predict_data(original_signal_date)
self.custom_data_preparation(predict_data, False)
prediction = self.on_signal(predict_data, signal_date)
signal = self._get_signal_for_prediction(prediction)
return signal
def get_starting_time(self, signal_date, delta):
duration, min_or_sec = self._get_time_unit_and_duration(self.frequency)
if 'D' in self.frequency:
return_date = signal_date - timedelta(days=delta * duration)
elif 'M' in self.frequency:
return_date = signal_date - timedelta(minutes=delta * duration)
elif 'S' in self.frequency:
return_date = signal_date - timedelta(seconds=delta * duration * 2)
else:
raise Exception(self.frequency + ' is not supported')
return return_date
@abstractmethod
def custom_data_preparation(self, data, is_train_date):
pass
@abstractmethod
def on_signal(self, predicted_data, signal_date):
pass
#
# Example Code for Algorithmic Strategy Deployment
# on Oanda (https://oanda.com)
#
# (c) Dr. Yves J. Hilpisch
# The Python Quants GmbH
#
# The code is for illustration purposes only. No warranties or representations
# to the extent permitted by applicable law. The code does not
# represent investment advice or a recommendation in any regard.
#
import threading
from model import signal_queue
from processor import SignalProcessor
from one import one # imports the trading strategy
model_parameters = dict()
model_parameters['instrument'] = 'EUR_USD'
model_parameters['frequency'] = 'M1'
model_parameters['trading_quantity'] = 10000
model_parameters['n_signals_to_gen'] = 10
model_parameters['sma'] = 10
model_parameters['trade_immediately'] = True
if __name__ == '__main__':
conf_file = '../oanda.cfg'
threading.Thread(target=SignalProcessor(conf_file).listen_to_signal,
daemon=True).start()
strategy = one(model_parameters, '../oanda.cfg')
strategy.generate_signal()
signal_queue.join()
#
# Example Code for Algorithmic Strategy Deployment
# on Oanda (https://oanda.com)
#
# (c) Dr. Yves J. Hilpisch
# The Python Quants GmbH
#
# The code is for illustration purposes only. No warranties or representations
# to the extent permitted by applicable law. The code does not
# represent investment advice or a recommendation in any regard.
#
import threading
from model import signal_queue
from processor import SignalProcessor
from sma import sma # imports the trading strategy
model_parameters = dict()
model_parameters['instrument'] = 'EUR_USD'
model_parameters['frequency'] = 'M1'
model_parameters['trading_quantity'] = 10000
model_parameters['n_signals_to_gen'] = 10
model_parameters['sma1'] = 3
model_parameters['sma2'] = 10
model_parameters['trade_immediately'] = True
if __name__ == '__main__':
conf_file = '../oanda.cfg'
threading.Thread(target=SignalProcessor(conf_file).listen_to_signal,
daemon=True).start()
strategy = sma(model_parameters, '../oanda.cfg')
strategy.generate_signal()
signal_queue.join()
#
# Example Code for Algorithmic Strategy Deployment
# on Oanda (https://oanda.com)
#
# (c) Dr. Yves J. Hilpisch
# The Python Quants GmbH
#
# The code is for illustration purposes only. No warranties or representations
# to the extent permitted by applicable law. The code does not
# represent investment advice or a recommendation in any regard.
#
import queue
from enum import Enum
signal_queue = queue.Queue()
class Prediction(Enum):
LONG = 1
SHORT = 2
NEUTRAL = 3
STOP = 4
class Signal:
def __init__(self):
self.model_id = None
self.signal_id = None
self.instrument = None
self.prediction_time = None
self.prediction = None
self.quantity = None
def __repr__(self):
return str(self.__dict__)
class SignalProcessingException(Exception):
pass
[oanda]
access_token = c71f59_YOURACCESSTOKEN_13da5b8f60fac1397232
account_id = 101-004-YOURID-001
account_type = practice
#
# Example Code for Algorithmic Strategy Deployment
# on Oanda (https://oanda.com)
#
# (c) Dr. Yves J. Hilpisch
# The Python Quants GmbH
#
# The code is for illustration purposes only. No warranties or representations
# to the extent permitted by applicable law. The code does not
# represent investment advice or a recommendation in any regard.
#
''' This is a trading strategy template for an algorithmic trading strategy based
on technical indicators that can be defined flexibly.
'''
import numpy as np
from model import Prediction
from base import BaseStrategy
class one(BaseStrategy):
"""
This is the set of default model parameters.
Override and add where applicable.
"""
def __init__(self, model_parameters, config):
super().__init__(model_parameters, config)
if model_parameters['sma'] > self.n_bars:
self.n_bars = model_parameters['sma'] * 3
def custom_data_preparation(self, data, is_training_data):
"""
Add required data preparations here.
"""
prediction = self.instrument + '_prediction'
data['sma'] = (data[self.instrument + '_close'].rolling(
self.sma).mean().shift(1))
data.dropna(inplace=True)
price = data[self.instrument + '_close'].shift(1)
data[prediction] = np.where(price > data['sma'], 1, -1)
def on_signal(self, predicted_data, signal_date):
"""
This method is called every time the strategy generates a signal.
"""
direction = predicted_data.loc[signal_date][
self.instrument + '_prediction']
if direction == -1:
prediction = Prediction.SHORT
else:
prediction = Prediction.LONG
return prediction
#
# Example Code for Algorithmic Strategy Deployment
# on Oanda (https://oanda.com)
#
# (c) Dr. Yves J. Hilpisch
# The Python Quants GmbH
#
# The code is for illustration purposes only. No warranties or representations
# to the extent permitted by applicable law. The code does not
# represent investment advice or a recommendation in any regard.
#
from enum import Enum
from tpqoa import tpqoa
from threading import RLock
from collections import defaultdict
from model import signal_queue, Prediction, SignalProcessingException
class StateAttrDef:
QUANTITY = 'quantity'
PRICE = 'price'
REAL_PNL = 'real_pnl'
class SignalProcessingType(Enum):
GO_LONG = 1
GO_SHORT = 2
GO_LONG_FROM_SHORT = 3
GO_SHORT_FROM_LONG = 4
STOP = 5
NOOP = 6
class SignalProcessor:
def __init__(self, conf_file='../oanda.cfg'):
self.state = defaultdict(self._get_empty_state)
self.oanda = tpqoa(conf_file)
self.lock = RLock()
@staticmethod
def _get_empty_state():
empty_state = dict()
empty_state[StateAttrDef.QUANTITY] = 0.0
empty_state[StateAttrDef.PRICE] = 0.0
empty_state[StateAttrDef.REAL_PNL] = 0.0
return empty_state
def listen_to_signal(self):
while True:
try:
signal = signal_queue.get()
print(f'Processing signal: {signal.signal_id}')
self.process_signal(signal)
except Exception as e:
import traceback
print(f'{traceback.format_exc()}')
def process_signal(self, signal):
with self.lock:
current_state = self.state[signal.instrument]
print(f'Start processing signal {signal}.\nState={current_state}')
signum_value = self._get_signum(current_state[StateAttrDef.QUANTITY])
processing_type = self._get_processing_type(
signum_value, signal.prediction)
print(f'Processing type: {processing_type}')
state = self.place_trades_for_signal(
signal, processing_type, current_state)
print(f'Processed signal: {signal}.\nState={state}')
def place_trades_for_signal(self, signal, processing_type, current_state):
if SignalProcessingType.NOOP == processing_type:
return current_state
if processing_type in [SignalProcessingType.GO_LONG,
SignalProcessingType.GO_LONG_FROM_SHORT]:
net_qty = signal.quantity + abs(current_state[StateAttrDef.QUANTITY])
elif processing_type in [SignalProcessingType.GO_SHORT,
SignalProcessingType.GO_SHORT_FROM_LONG]:
net_qty = ((-1 * signal.quantity) -
abs(current_state[StateAttrDef.QUANTITY]))
elif processing_type == SignalProcessingType.STOP:
net_qty = -1 * current_state[StateAttrDef.QUANTITY]
else:
msg = f'Invalid processing type {processing_type} encountered.'
raise SignalProcessingException(msg)
order_response = self._place_trade_for_ins(signal.instrument, net_qty)
updated_state = self._update_state(order_response, current_state)
return updated_state
@staticmethod
def _update_state(order_response, state):
if 'tradesClosed' in order_response:
for closed_trd in order_response['tradesClosed']:
state[StateAttrDef.QUANTITY] += float(closed_trd['units'])
state[StateAttrDef.REAL_PNL] += float(closed_trd['realizedPL'])
if abs(state[StateAttrDef.QUANTITY]) <= 0.0001:
state[StateAttrDef.PRICE] = 0.0
if 'tradeOpened' in order_response:
open_trade = order_response['tradeOpened']
state[StateAttrDef.QUANTITY] += float(open_trade['units'])
state[StateAttrDef.PRICE] += float(open_trade['price'])
return state
def _place_trade_for_ins(self, instrument, qty):
response = self.oanda.create_order(
instrument, qty, ret=True, suppress=True)
# if type is not ORDER_FILL, there is some problem wih the order placement.
if response['type'] != 'ORDER_FILL':
raise SignalProcessingException(f'Error creating order: {response}.')
return response
@staticmethod
def _get_processing_type(signum_value, prediction):
if Prediction.STOP == prediction:
return SignalProcessingType.STOP
if signum_value == 0:
return SignalProcessingType.GO_LONG if prediction == Prediction.LONG \
else SignalProcessingType.GO_SHORT
if signum_value == 1:
return SignalProcessingType.GO_SHORT_FROM_LONG \
if prediction == Prediction.SHORT \
else SignalProcessingType.NOOP
if signum_value == -1:
return SignalProcessingType.GO_LONG_FROM_SHORT \
if prediction == Prediction.LONG \
else SignalProcessingType.NOOP
@staticmethod
def _get_signum(x):
if x == 0:
return 0
else:
return 1 if x > 0 else -1
#
# Example Code for Algorithmic Strategy Deployment
# on Oanda (https://oanda.com)
#
# (c) Dr. Yves J. Hilpisch
# The Python Quants GmbH
#
# The code is for illustration purposes only. No warranties or representations
# to the extent permitted by applicable law. The code does not
# represent investment advice or a recommendation in any regard.
#
''' This is a trading strategy template for an algorithmic trading strategy based
on technical indicators that can be defined flexibly.
'''
import numpy as np
from model import Prediction
from base import BaseStrategy
class sma(BaseStrategy):
"""
This is the set of default model parameters.
Override and add where applicable.
"""
def __init__(self, model_parameters, config):
super().__init__(model_parameters, config)
if model_parameters['sma1'] or model_parameters['sma2'] > self.n_bars:
if model_parameters['sma1'] > model_parameters['sma2']:
self.n_bars = model_parameters['sma1'] * 3
else:
self.n_bars = model_parameters['sma2'] * 3
def custom_data_preparation(self, data, is_training_data):
"""
Add required data preparations here.
"""
prediction = self.instrument + '_prediction'
data['sma1'] = (data[self.instrument + '_close'].rolling(
self.sma1).mean().shift(1))
data['sma2'] = (data[self.instrument + '_close'].rolling(
self.sma2).mean().shift(1))
data.dropna(inplace=True)
data[prediction] = np.where(data['sma1'] > data['sma2'], 1, -1)
def on_signal(self, predicted_data, signal_date):
"""
This method is called every time the strategy generates a signal.
"""
direction = predicted_data.loc[signal_date][
self.instrument + '_prediction']
if direction == -1:
prediction = Prediction.SHORT
else:
prediction = Prediction.LONG
return prediction
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment