diff --git a/.gitignore b/.gitignore index c259cb8f2d3ec492abbb672179f9125e235806b3..b79145f550b19b9c86992462e10e697b6b677c23 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,13 @@ -.idea -data/ -data-collection/out/ -*.iml -*.db -*.zip -.vector_cache/ -runs/ -*.csv -embeddings/tag_embedding_models/* -*.pt -embeddings/wandb/* \ No newline at end of file +.idea +data/ +data-collection/out/ +*.iml +*.db +*.zip +.vector_cache/ +runs/ +*.csv +embeddings/tag_embedding_models/* +*.pt +embeddings/wandb/* +*.pkl diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000000000000000000000000000000000000..c54084c7c43e503dd776d3dde8cf61753755beb5 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,4 @@ +{ + "python.pythonPath": "\\\\filestore.soton.ac.uk\\users\\lhb1g20\\.conda\\envs\\gpuservice\\python.exe", + "terminal.integrated.windowsEnableConpty": false +} \ No newline at end of file diff --git a/archived/GAT.py b/archived/GAT.py index e484e36da55c95e16dc5c63bddb13742e55a3ab2..9c974c7a54a602386c6e3caeb6b27fb77167c32b 100644 --- a/archived/GAT.py +++ b/archived/GAT.py @@ -1,85 +1,85 @@ -import torch -from torch_geometric.loader import DataLoader -from torch_geometric.nn import GATConv, Linear, MeanAggregation, to_hetero - -from dataset import UserGraphDataset - - -class GAT(torch.nn.Module): - def __init__(self, hidden_channels): - super(GAT, self).__init__() - torch.manual_seed(12345) - self.conv1 = GATConv((-1, -1), hidden_channels, add_self_loops=False) - self.conv2 = GATConv((-1, -1), hidden_channels, add_self_loops=False) - self.conv3 = GATConv((-1, -1), hidden_channels, add_self_loops=False) - self.lin = Linear(hidden_channels, 2) - self.softmax = torch.nn.Softmax(dim=1) - self.pool = MeanAggregation() - - def forward(self, x, edge_index, batch, post_emb): - # 1. Obtain node embeddings - x = self.conv1(x, edge_index) - x = x.relu() - x = self.conv2(x, edge_index) - x = x.relu() - x = self.conv3(x, edge_index) - - # 2. Readout layer - x = self.pool(x, batch) # [batch_size, hidden_channels] - - # 3. Concatenate with post embedding - #x = torch.cat((x, post_emb)) - # 4. Apply a final classifier. - x = self.lin(x) - x = self.softmax(x) - return x - - -def train(model, train_loader): - model.train() - - for data in train_loader: # Iterate in batches over the training dataset. - print(data) - - out = model(data.x_dict, data.edge_index_dict, data.batch_dict, torch.concat([data.question_emb, data.answer_emb])) # Perform a single forward pass. - print(out, data.label) - loss = criterion(out, data.label) # Compute the loss. - loss.backward() # Derive gradients. - optimizer.step() # Update parameters based on gradients. - optimizer.zero_grad() # Clear gradients. - - -def test(loader): - model.eval() - - correct = 0 - for data in loader: # Iterate in batches over the training/test dataset. - out = model(data.x, data.edge_index, data.batch) - pred = out.argmax(dim=1) # Use the class with highest probability. - correct += int((pred == data.y).sum()) # Check against ground-truth labels. - return correct / len(loader.dataset) # Derive ratio of correct predictions. - - -if __name__ == '__main__': - dataset = UserGraphDataset(root="../data", skip_processing=True) - train_dataset, val_dataset, test_dataset = torch.utils.data.random_split(dataset, [0.6, 0.1, 0.3]) - - print(dataset.num_node_features) - - train_loader = DataLoader(train_dataset, batch_size=1) - val_loader = DataLoader(val_dataset, batch_size=64) - test_loader = DataLoader(test_dataset, batch_size=64) - - model = GAT(hidden_channels=64) - sample = train_dataset[0] - metadata = (['question', 'answer', 'comment', 'tag', 'module'], [('tag', 'describes', 'question'), ('tag', 'describes', 'answer'), ('tag', 'describes', 'comment'), ('module', 'imported_in', 'question'), ('module', 'imported_in', 'answer'), ('question', 'rev_describes', 'tag'), ('answer', 'rev_describes', 'tag'), ('comment', 'rev_describes', 'tag'), ('question', 'rev_imported_in', 'module'), ('answer', 'rev_imported_in', 'module')]) - model = to_hetero(model, metadata) - #print(model(sample.x_dict, sample.edge_index_dict, sample.batch_dict)) - - optimizer = torch.optim.Adam(model.parameters(), lr=0.01) - criterion = torch.nn.CrossEntropyLoss() - - for epoch in range(1, 10): - train(model, train_loader) - #train_acc = test(train_loader) - #print(f'Epoch: {epoch:03d}, Train Acc: {train_acc:.4f}, Test Acc: {test_acc:.4f}') +import torch +from torch_geometric.loader import DataLoader +from torch_geometric.nn import GATConv, Linear, MeanAggregation, to_hetero + +from dataset import UserGraphDataset + + +class GAT(torch.nn.Module): + def __init__(self, hidden_channels): + super(GAT, self).__init__() + torch.manual_seed(12345) + self.conv1 = GATConv((-1, -1), hidden_channels, add_self_loops=False) + self.conv2 = GATConv((-1, -1), hidden_channels, add_self_loops=False) + self.conv3 = GATConv((-1, -1), hidden_channels, add_self_loops=False) + self.lin = Linear(hidden_channels, 2) + self.softmax = torch.nn.Softmax(dim=1) + self.pool = MeanAggregation() + + def forward(self, x, edge_index, batch, post_emb): + # 1. Obtain node embeddings + x = self.conv1(x, edge_index) + x = x.relu() + x = self.conv2(x, edge_index) + x = x.relu() + x = self.conv3(x, edge_index) + + # 2. Readout layer + x = self.pool(x, batch) # [batch_size, hidden_channels] + + # 3. Concatenate with post embedding + #x = torch.cat((x, post_emb)) + # 4. Apply a final classifier. + x = self.lin(x) + x = self.softmax(x) + return x + + +def train(model, train_loader): + model.train() + + for data in train_loader: # Iterate in batches over the training dataset. + print(data) + + out = model(data.x_dict, data.edge_index_dict, data.batch_dict, torch.concat([data.question_emb, data.answer_emb])) # Perform a single forward pass. + print(out, data.label) + loss = criterion(out, data.label) # Compute the loss. + loss.backward() # Derive gradients. + optimizer.step() # Update parameters based on gradients. + optimizer.zero_grad() # Clear gradients. + + +def test(loader): + model.eval() + + correct = 0 + for data in loader: # Iterate in batches over the training/test dataset. + out = model(data.x, data.edge_index, data.batch) + pred = out.argmax(dim=1) # Use the class with highest probability. + correct += int((pred == data.y).sum()) # Check against ground-truth labels. + return correct / len(loader.dataset) # Derive ratio of correct predictions. + + +if __name__ == '__main__': + dataset = UserGraphDataset(root="../data", skip_processing=True) + train_dataset, val_dataset, test_dataset = torch.utils.data.random_split(dataset, [0.6, 0.1, 0.3]) + + print(dataset.num_node_features) + + train_loader = DataLoader(train_dataset, batch_size=1) + val_loader = DataLoader(val_dataset, batch_size=64) + test_loader = DataLoader(test_dataset, batch_size=64) + + model = GAT(hidden_channels=64) + sample = train_dataset[0] + metadata = (['question', 'answer', 'comment', 'tag', 'module'], [('tag', 'describes', 'question'), ('tag', 'describes', 'answer'), ('tag', 'describes', 'comment'), ('module', 'imported_in', 'question'), ('module', 'imported_in', 'answer'), ('question', 'rev_describes', 'tag'), ('answer', 'rev_describes', 'tag'), ('comment', 'rev_describes', 'tag'), ('question', 'rev_imported_in', 'module'), ('answer', 'rev_imported_in', 'module')]) + model = to_hetero(model, metadata) + #print(model(sample.x_dict, sample.edge_index_dict, sample.batch_dict)) + + optimizer = torch.optim.Adam(model.parameters(), lr=0.01) + criterion = torch.nn.CrossEntropyLoss() + + for epoch in range(1, 10): + train(model, train_loader) + #train_acc = test(train_loader) + #print(f'Epoch: {epoch:03d}, Train Acc: {train_acc:.4f}, Test Acc: {test_acc:.4f}') diff --git a/archived/db_handler.py b/archived/db_handler.py index 89fd5a1d2fc89637144d219f085b26757b2a5cad..9f54e0a39181b0aa4c6fac5e13c9063ba6cd964c 100644 --- a/archived/db_handler.py +++ b/archived/db_handler.py @@ -1,50 +1,50 @@ -import sqlite3 - -import pandas as pd - - -class DBHandler: - def __init__(self, file_name: str): - self._db = sqlite3.connect(file_name) - - def fetch_questions_by_user_id(self, user_id: int): - questions = pd.read_sql_query(f""" - SELECT * - FROM Post - WHERE Tags LIKE '%python%' AND (PostTypeId = 1) AND ((LastEditorUserId = {user_id}) OR (OwnerUserId = {user_id})) - """, self._db) - questions.set_index('PostId', inplace=True) - - def fetch_answers_by_user_id(self, user_id: int): - answers = pd.read_sql_query(f""" - SELECT A.Tags, B.* - FROM Post A - INNER JOIN Post B ON (B.ParentId = A.PostId) AND (B.ParentId IS NOT NULL) - WHERE A.Tags LIKE '%python%' AND (B.PostTypeId = 2) AND ((B.LastEditorUserId = {user_id}) OR (B.OwnerUserId = {user_id})) - """, self._db) - # Only use the first of the two 'Tags' columns - answers = answers.loc[:, ~answers.columns.duplicated()].copy() - answers.set_index('PostId', inplace=True) - return answers - - def fetch_comments_on_questions_by_user_id(self, user_id: int): - comments_on_questions = pd.read_sql_query(f""" - SELECT A.Tags, B.* - FROM Post A - INNER JOIN Comment B ON (B.PostId = A.PostId) - WHERE A.Tags LIKE '%python%' AND (B.UserId = {user_id}) AND (A.PostTypeId = 1) - """, self._db) - comments_on_questions.set_index('CommentId', inplace=True) - return comments_on_questions - - def fetch_comments_on_answers_by_user_id(self, user_id: int): - comments_on_answers = pd.read_sql_query(f""" - SELECT A.Tags, C.* - FROM Post A - INNER JOIN Post B ON (B.ParentId = A.PostId) AND (B.ParentId IS NOT NULL) - INNER JOIN Comment C ON (B.PostId = C.PostId) - WHERE A.Tags LIKE '%python%' AND (C.UserId = {user_id}) AND (B.PostTypeId = 2) - """, self._db) - comments_on_answers.set_index('CommentId', inplace=True) - return comments_on_answers - +import sqlite3 + +import pandas as pd + + +class DBHandler: + def __init__(self, file_name: str): + self._db = sqlite3.connect(file_name) + + def fetch_questions_by_user_id(self, user_id: int): + questions = pd.read_sql_query(f""" + SELECT * + FROM Post + WHERE Tags LIKE '%python%' AND (PostTypeId = 1) AND ((LastEditorUserId = {user_id}) OR (OwnerUserId = {user_id})) + """, self._db) + questions.set_index('PostId', inplace=True) + + def fetch_answers_by_user_id(self, user_id: int): + answers = pd.read_sql_query(f""" + SELECT A.Tags, B.* + FROM Post A + INNER JOIN Post B ON (B.ParentId = A.PostId) AND (B.ParentId IS NOT NULL) + WHERE A.Tags LIKE '%python%' AND (B.PostTypeId = 2) AND ((B.LastEditorUserId = {user_id}) OR (B.OwnerUserId = {user_id})) + """, self._db) + # Only use the first of the two 'Tags' columns + answers = answers.loc[:, ~answers.columns.duplicated()].copy() + answers.set_index('PostId', inplace=True) + return answers + + def fetch_comments_on_questions_by_user_id(self, user_id: int): + comments_on_questions = pd.read_sql_query(f""" + SELECT A.Tags, B.* + FROM Post A + INNER JOIN Comment B ON (B.PostId = A.PostId) + WHERE A.Tags LIKE '%python%' AND (B.UserId = {user_id}) AND (A.PostTypeId = 1) + """, self._db) + comments_on_questions.set_index('CommentId', inplace=True) + return comments_on_questions + + def fetch_comments_on_answers_by_user_id(self, user_id: int): + comments_on_answers = pd.read_sql_query(f""" + SELECT A.Tags, C.* + FROM Post A + INNER JOIN Post B ON (B.ParentId = A.PostId) AND (B.ParentId IS NOT NULL) + INNER JOIN Comment C ON (B.PostId = C.PostId) + WHERE A.Tags LIKE '%python%' AND (C.UserId = {user_id}) AND (B.PostTypeId = 2) + """, self._db) + comments_on_answers.set_index('CommentId', inplace=True) + return comments_on_answers + diff --git a/archived/embeddings.ipynb b/archived/embeddings.ipynb index 787757ea05cc34836bb198837260d7f770e6125e..48b98e6f13847ac3d3f08c5fb7ae42239a93ce15 100644 --- a/archived/embeddings.ipynb +++ b/archived/embeddings.ipynb @@ -1,874 +1,874 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "source": [ - "# Embeddings\n", - "Exploration into how different embeddings can be used to represent posts." - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": 1, - "outputs": [], - "source": [ - "import itertools\n", - "import sqlite3\n", - "from typing import List\n", - "import itertools\n", - "import pandas as pd\n", - "from typing import *" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": 2, - "outputs": [], - "source": [ - "# Create your connection.\n", - "db = sqlite3.connect('../stackoverflow.db')" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": 3, - "outputs": [ - { - "data": { - "text/plain": " TagName Count\nTagId \n1 .net 323469\n2 html 1146245\n3 javascript 2426650\n4 css 771867\n5 php 1445747\n... ... ...\n158156 lost-update 1\n158157 chai-subset 1\n158159 at-spi 1\n158160 oro 0\n158161 sigsci 1\n\n[63653 rows x 2 columns]", - "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>TagName</th>\n <th>Count</th>\n </tr>\n <tr>\n <th>TagId</th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>1</th>\n <td>.net</td>\n <td>323469</td>\n </tr>\n <tr>\n <th>2</th>\n <td>html</td>\n <td>1146245</td>\n </tr>\n <tr>\n <th>3</th>\n <td>javascript</td>\n <td>2426650</td>\n </tr>\n <tr>\n <th>4</th>\n <td>css</td>\n <td>771867</td>\n </tr>\n <tr>\n <th>5</th>\n <td>php</td>\n <td>1445747</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>158156</th>\n <td>lost-update</td>\n <td>1</td>\n </tr>\n <tr>\n <th>158157</th>\n <td>chai-subset</td>\n <td>1</td>\n </tr>\n <tr>\n <th>158159</th>\n <td>at-spi</td>\n <td>1</td>\n </tr>\n <tr>\n <th>158160</th>\n <td>oro</td>\n <td>0</td>\n </tr>\n <tr>\n <th>158161</th>\n <td>sigsci</td>\n <td>1</td>\n </tr>\n </tbody>\n</table>\n<p>63653 rows × 2 columns</p>\n</div>" - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "tag_df = pd.read_sql_query(\"SELECT * FROM Tag\", db)\n", - "tag_df.set_index('TagId', inplace=True)\n", - "tag_df" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": 4, - "outputs": [ - { - "data": { - "text/plain": " PostTypeId AcceptedAnswerId CreationDate Score \\\nPostId \n1 1 7.0 2008-07-31T21:42:52.667 781 \n2 1 31.0 2008-07-31T22:08:08.620 318 \n3 2 NaN 2008-07-31T22:17:57.883 517 \n4 1 1404.0 2008-07-31T23:40:59.743 2161 \n5 1 1248.0 2008-07-31T23:55:37.967 1629 \n... ... ... ... ... \n499996 2 NaN 2009-04-03T02:10:35.270 2 \n499997 2 NaN 2009-04-03T02:10:49.060 1 \n499998 1 799526.0 2009-04-03T02:11:16.237 4 \n499999 2 NaN 2009-04-03T02:14:04.293 5 \n500000 2 NaN 2009-04-03T02:15:39.347 1 \n\n ViewCount Body \\\nPostId \n1 67914.0 <p>I want to assign the decimal variable "... \n2 23047.0 <p>I have an absolutely positioned <code>div</... \n3 NaN <p>An explicit cast to <code>double</code> lik... \n4 757897.0 <p>Given a <code>DateTime</code> representing ... \n5 193525.0 <p>Given a specific <code>DateTime</code> valu... \n... ... ... \n499996 NaN <p>If we can assume that:</p>\\n\\n<ul>\\n<li>the... \n499997 NaN <p>Change:</p>\\n\\n<pre><code>for ansSeries in ... \n499998 3611.0 <p>Here are the first few lines of my page:</p... \n499999 NaN <p>Since, in general, there is more than one p... \n500000 NaN <p>Ugh. Short of writing your own authenticati... \n\n OwnerUserId LastEditorUserId LastEditorDisplayName \\\nPostId \n1 8.0 16124033.0 Rich B \n2 9.0 9134576.0 user14723686 \n3 9.0 5496973.0 None \n4 1.0 3524942.0 Rich B \n5 1.0 16790137.0 user2370523 \n... ... ... ... \n499996 72990.0 NaN None \n499997 9940.0 NaN None \n499998 63887.0 NaN None \n499999 15168.0 NaN None \n500000 85863.0 NaN None \n\n LastEditDate \\\nPostId \n1 2022-09-08T05:07:26.033 \n2 2021-01-29T18:46:45.963 \n3 2019-10-21T14:03:54.607 \n4 2022-07-27T22:34:36.320 \n5 2022-07-10T00:19:55.237 \n... ... \n499996 None \n499997 None \n499998 None \n499999 None \n500000 None \n\n Title \\\nPostId \n1 How to convert Decimal to Double in C#? \n2 Why did the width collapse in the percentage w... \n3 None \n4 How do I calculate someone's age based on a Da... \n5 Calculate relative time in C# \n... ... \n499996 None \n499997 None \n499998 Why can't I use session_start() in my php scri... \n499999 None \n500000 None \n\n Tags AnswerCount \\\nPostId \n1 <c#><floating-point><type-conversion><double><... 14.0 \n2 <html><css><internet-explorer-7> 7.0 \n3 None NaN \n4 <c#><.net><datetime> 71.0 \n5 <c#><datetime><time><datediff><relative-time-s... 41.0 \n... ... ... \n499996 None NaN \n499997 None NaN \n499998 <php><session><cookies><header> 2.0 \n499999 None NaN \n500000 None NaN \n\n CommentCount FavoriteCount CommunityOwnedDate ContentLicense \\\nPostId \n1 6 60.0 2012-10-31T16:42:47.213 CC BY-SA 4.0 \n2 0 13.0 None CC BY-SA 4.0 \n3 1 NaN None CC BY-SA 4.0 \n4 10 492.0 2011-08-16T19:40:43.080 CC BY-SA 4.0 \n5 3 552.0 2009-09-04T13:15:59.820 CC BY-SA 4.0 \n... ... ... ... ... \n499996 0 NaN None CC BY-SA 2.5 \n499997 0 NaN None CC BY-SA 2.5 \n499998 2 NaN None CC BY-SA 2.5 \n499999 1 NaN None CC BY-SA 2.5 \n500000 1 NaN None CC BY-SA 2.5 \n\n ParentId \nPostId \n1 NaN \n2 NaN \n3 4.0 \n4 NaN \n5 NaN \n... ... \n499996 712186.0 \n499997 712225.0 \n499998 NaN \n499999 712322.0 \n500000 712023.0 \n\n[500000 rows x 18 columns]", - "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>PostTypeId</th>\n <th>AcceptedAnswerId</th>\n <th>CreationDate</th>\n <th>Score</th>\n <th>ViewCount</th>\n <th>Body</th>\n <th>OwnerUserId</th>\n <th>LastEditorUserId</th>\n <th>LastEditorDisplayName</th>\n <th>LastEditDate</th>\n <th>Title</th>\n <th>Tags</th>\n <th>AnswerCount</th>\n <th>CommentCount</th>\n <th>FavoriteCount</th>\n <th>CommunityOwnedDate</th>\n <th>ContentLicense</th>\n <th>ParentId</th>\n </tr>\n <tr>\n <th>PostId</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 <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>1</th>\n <td>1</td>\n <td>7.0</td>\n <td>2008-07-31T21:42:52.667</td>\n <td>781</td>\n <td>67914.0</td>\n <td><p>I want to assign the decimal variable &quot...</td>\n <td>8.0</td>\n <td>16124033.0</td>\n <td>Rich B</td>\n <td>2022-09-08T05:07:26.033</td>\n <td>How to convert Decimal to Double in C#?</td>\n <td><c#><floating-point><type-conversion><double><...</td>\n <td>14.0</td>\n <td>6</td>\n <td>60.0</td>\n <td>2012-10-31T16:42:47.213</td>\n <td>CC BY-SA 4.0</td>\n <td>NaN</td>\n </tr>\n <tr>\n <th>2</th>\n <td>1</td>\n <td>31.0</td>\n <td>2008-07-31T22:08:08.620</td>\n <td>318</td>\n <td>23047.0</td>\n <td><p>I have an absolutely positioned <code>div</...</td>\n <td>9.0</td>\n <td>9134576.0</td>\n <td>user14723686</td>\n <td>2021-01-29T18:46:45.963</td>\n <td>Why did the width collapse in the percentage w...</td>\n <td><html><css><internet-explorer-7></td>\n <td>7.0</td>\n <td>0</td>\n <td>13.0</td>\n <td>None</td>\n <td>CC BY-SA 4.0</td>\n <td>NaN</td>\n </tr>\n <tr>\n <th>3</th>\n <td>2</td>\n <td>NaN</td>\n <td>2008-07-31T22:17:57.883</td>\n <td>517</td>\n <td>NaN</td>\n <td><p>An explicit cast to <code>double</code> lik...</td>\n <td>9.0</td>\n <td>5496973.0</td>\n <td>None</td>\n <td>2019-10-21T14:03:54.607</td>\n <td>None</td>\n <td>None</td>\n <td>NaN</td>\n <td>1</td>\n <td>NaN</td>\n <td>None</td>\n <td>CC BY-SA 4.0</td>\n <td>4.0</td>\n </tr>\n <tr>\n <th>4</th>\n <td>1</td>\n <td>1404.0</td>\n <td>2008-07-31T23:40:59.743</td>\n <td>2161</td>\n <td>757897.0</td>\n <td><p>Given a <code>DateTime</code> representing ...</td>\n <td>1.0</td>\n <td>3524942.0</td>\n <td>Rich B</td>\n <td>2022-07-27T22:34:36.320</td>\n <td>How do I calculate someone's age based on a Da...</td>\n <td><c#><.net><datetime></td>\n <td>71.0</td>\n <td>10</td>\n <td>492.0</td>\n <td>2011-08-16T19:40:43.080</td>\n <td>CC BY-SA 4.0</td>\n <td>NaN</td>\n </tr>\n <tr>\n <th>5</th>\n <td>1</td>\n <td>1248.0</td>\n <td>2008-07-31T23:55:37.967</td>\n <td>1629</td>\n <td>193525.0</td>\n <td><p>Given a specific <code>DateTime</code> valu...</td>\n <td>1.0</td>\n <td>16790137.0</td>\n <td>user2370523</td>\n <td>2022-07-10T00:19:55.237</td>\n <td>Calculate relative time in C#</td>\n <td><c#><datetime><time><datediff><relative-time-s...</td>\n <td>41.0</td>\n <td>3</td>\n <td>552.0</td>\n <td>2009-09-04T13:15:59.820</td>\n <td>CC BY-SA 4.0</td>\n <td>NaN</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>499996</th>\n <td>2</td>\n <td>NaN</td>\n <td>2009-04-03T02:10:35.270</td>\n <td>2</td>\n <td>NaN</td>\n <td><p>If we can assume that:</p>\\n\\n<ul>\\n<li>the...</td>\n <td>72990.0</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>NaN</td>\n <td>0</td>\n <td>NaN</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>712186.0</td>\n </tr>\n <tr>\n <th>499997</th>\n <td>2</td>\n <td>NaN</td>\n <td>2009-04-03T02:10:49.060</td>\n <td>1</td>\n <td>NaN</td>\n <td><p>Change:</p>\\n\\n<pre><code>for ansSeries in ...</td>\n <td>9940.0</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>NaN</td>\n <td>0</td>\n <td>NaN</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>712225.0</td>\n </tr>\n <tr>\n <th>499998</th>\n <td>1</td>\n <td>799526.0</td>\n <td>2009-04-03T02:11:16.237</td>\n <td>4</td>\n <td>3611.0</td>\n <td><p>Here are the first few lines of my page:</p...</td>\n <td>63887.0</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>Why can't I use session_start() in my php scri...</td>\n <td><php><session><cookies><header></td>\n <td>2.0</td>\n <td>2</td>\n <td>NaN</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>NaN</td>\n </tr>\n <tr>\n <th>499999</th>\n <td>2</td>\n <td>NaN</td>\n <td>2009-04-03T02:14:04.293</td>\n <td>5</td>\n <td>NaN</td>\n <td><p>Since, in general, there is more than one p...</td>\n <td>15168.0</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>NaN</td>\n <td>1</td>\n <td>NaN</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>712322.0</td>\n </tr>\n <tr>\n <th>500000</th>\n <td>2</td>\n <td>NaN</td>\n <td>2009-04-03T02:15:39.347</td>\n <td>1</td>\n <td>NaN</td>\n <td><p>Ugh. Short of writing your own authenticati...</td>\n <td>85863.0</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>NaN</td>\n <td>1</td>\n <td>NaN</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>712023.0</td>\n </tr>\n </tbody>\n</table>\n<p>500000 rows × 18 columns</p>\n</div>" - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "POST_LIMIT = 500000\n", - "post_df = pd.read_sql_query(f\"SELECT * FROM Post LIMIT {POST_LIMIT}\", db)\n", - "post_df.set_index('PostId', inplace=True)\n", - "post_df" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": 5, - "outputs": [ - { - "data": { - "text/plain": " UserId Name CreationDate Class TagBased\nBadgeId \n1 3718 Teacher 2008-09-15T08:55:03.923 3 False\n2 994 Teacher 2008-09-15T08:55:03.957 3 False\n3 3893 Teacher 2008-09-15T08:55:03.957 3 False\n4 4591 Teacher 2008-09-15T08:55:03.957 3 False\n5 5196 Teacher 2008-09-15T08:55:03.957 3 False\n... ... ... ... ... ...\n499996 51452 Good Answer 2010-02-15T12:27:33.500 2 False\n499997 250648 Critic 2010-02-15T12:32:31.950 3 False\n499998 162569 Commentator 2010-02-15T12:32:32.713 3 False\n499999 116388 Popular Question 2010-02-15T12:32:32.930 3 False\n500000 267503 Tumbleweed 2010-02-15T12:32:35.007 3 False\n\n[500000 rows x 5 columns]", - "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>UserId</th>\n <th>Name</th>\n <th>CreationDate</th>\n <th>Class</th>\n <th>TagBased</th>\n </tr>\n <tr>\n <th>BadgeId</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>1</th>\n <td>3718</td>\n <td>Teacher</td>\n <td>2008-09-15T08:55:03.923</td>\n <td>3</td>\n <td>False</td>\n </tr>\n <tr>\n <th>2</th>\n <td>994</td>\n <td>Teacher</td>\n <td>2008-09-15T08:55:03.957</td>\n <td>3</td>\n <td>False</td>\n </tr>\n <tr>\n <th>3</th>\n <td>3893</td>\n <td>Teacher</td>\n <td>2008-09-15T08:55:03.957</td>\n <td>3</td>\n <td>False</td>\n </tr>\n <tr>\n <th>4</th>\n <td>4591</td>\n <td>Teacher</td>\n <td>2008-09-15T08:55:03.957</td>\n <td>3</td>\n <td>False</td>\n </tr>\n <tr>\n <th>5</th>\n <td>5196</td>\n <td>Teacher</td>\n <td>2008-09-15T08:55:03.957</td>\n <td>3</td>\n <td>False</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>499996</th>\n <td>51452</td>\n <td>Good Answer</td>\n <td>2010-02-15T12:27:33.500</td>\n <td>2</td>\n <td>False</td>\n </tr>\n <tr>\n <th>499997</th>\n <td>250648</td>\n <td>Critic</td>\n <td>2010-02-15T12:32:31.950</td>\n <td>3</td>\n <td>False</td>\n </tr>\n <tr>\n <th>499998</th>\n <td>162569</td>\n <td>Commentator</td>\n <td>2010-02-15T12:32:32.713</td>\n <td>3</td>\n <td>False</td>\n </tr>\n <tr>\n <th>499999</th>\n <td>116388</td>\n <td>Popular Question</td>\n <td>2010-02-15T12:32:32.930</td>\n <td>3</td>\n <td>False</td>\n </tr>\n <tr>\n <th>500000</th>\n <td>267503</td>\n <td>Tumbleweed</td>\n <td>2010-02-15T12:32:35.007</td>\n <td>3</td>\n <td>False</td>\n </tr>\n </tbody>\n</table>\n<p>500000 rows × 5 columns</p>\n</div>" - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "BADGE_LIMIT = 500000\n", - "badge_df = pd.read_sql_query(f\"SELECT * FROM badge LIMIT {BADGE_LIMIT}\", db)\n", - "badge_df.set_index('BadgeId', inplace=True)\n", - "badge_df" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": 6, - "outputs": [ - { - "data": { - "text/plain": " Reputation CreationDate DisplayName \\\nUserId \n-1009 1 2022-05-17T15:06:54.890 WSO2 \n-1008 1 2022-01-31T19:45:27.477 Twilio \n-1007 1 2021-09-30T18:39:12.143 AudioBubble2 \n-1006 1 2021-09-27T19:40:44.437 Intel \n-1005 1 2021-07-29T14:07:57.580 GitLab \n... ... ... ... \n 884592 31 2011-08-08T18:18:02.387 Ann \n 884593 335 2011-08-08T18:19:27.857 ymliu \n 884595 123 2011-08-08T18:20:03.193 Neil Woods \n 884597 21 2011-08-08T18:21:27.077 Nathan B \n 884599 31 2011-08-08T18:22:16.987 Quaitex \n\n LastAccessDate WebsiteUrl Location \\\nUserId \n-1009 2022-05-17T15:06:54.890 None None \n-1008 2022-01-31T19:45:27.477 None None \n-1007 2021-09-30T18:39:12.143 None None \n-1006 2021-09-27T19:40:44.437 None None \n-1005 2021-07-29T14:07:57.580 None None \n... ... ... ... \n 884592 2011-08-08T18:18:02.387 None None \n 884593 2020-04-23T00:04:46.763 None \n 884595 2021-09-08T11:14:32.143 None \n 884597 2022-09-22T20:23:45.923 None \n 884599 2011-09-01T14:16:54.883 None None \n\n AboutMe Views UpVotes \\\nUserId \n-1009 <p>WSO2 solutions give enterprises the flexibi... 0 0 \n-1008 <p>Twilio has democratized channels like voice... 0 0 \n-1007 <p>Official Q&A support for AudioBubble2</... 0 0 \n-1006 <p>A space for developers to collaborate on In... 0 0 \n-1005 <p>GitLab is the open DevOps platform, deliver... 0 0 \n... ... ... ... \n 884592 None 0 0 \n 884593 33 8 \n 884595 6 3 \n 884597 14 28 \n 884599 None 5 0 \n\n DownVotes ProfileImageUrl AccountId \nUserId \n-1009 0 None NaN \n-1008 0 None NaN \n-1007 0 None NaN \n-1006 0 None NaN \n-1005 0 None NaN \n... ... ... ... \n 884592 0 None 802774.0 \n 884593 0 https://i.stack.imgur.com/jMCNj.jpg 474725.0 \n 884595 0 None 802775.0 \n 884597 0 https://i.stack.imgur.com/CMmBO.jpg 474727.0 \n 884599 0 None 796823.0 \n\n[500000 rows x 12 columns]", - "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>Reputation</th>\n <th>CreationDate</th>\n <th>DisplayName</th>\n <th>LastAccessDate</th>\n <th>WebsiteUrl</th>\n <th>Location</th>\n <th>AboutMe</th>\n <th>Views</th>\n <th>UpVotes</th>\n <th>DownVotes</th>\n <th>ProfileImageUrl</th>\n <th>AccountId</th>\n </tr>\n <tr>\n <th>UserId</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 <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>-1009</th>\n <td>1</td>\n <td>2022-05-17T15:06:54.890</td>\n <td>WSO2</td>\n <td>2022-05-17T15:06:54.890</td>\n <td>None</td>\n <td>None</td>\n <td><p>WSO2 solutions give enterprises the flexibi...</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>None</td>\n <td>NaN</td>\n </tr>\n <tr>\n <th>-1008</th>\n <td>1</td>\n <td>2022-01-31T19:45:27.477</td>\n <td>Twilio</td>\n <td>2022-01-31T19:45:27.477</td>\n <td>None</td>\n <td>None</td>\n <td><p>Twilio has democratized channels like voice...</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>None</td>\n <td>NaN</td>\n </tr>\n <tr>\n <th>-1007</th>\n <td>1</td>\n <td>2021-09-30T18:39:12.143</td>\n <td>AudioBubble2</td>\n <td>2021-09-30T18:39:12.143</td>\n <td>None</td>\n <td>None</td>\n <td><p>Official Q&amp;A support for AudioBubble2</...</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>None</td>\n <td>NaN</td>\n </tr>\n <tr>\n <th>-1006</th>\n <td>1</td>\n <td>2021-09-27T19:40:44.437</td>\n <td>Intel</td>\n <td>2021-09-27T19:40:44.437</td>\n <td>None</td>\n <td>None</td>\n <td><p>A space for developers to collaborate on In...</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>None</td>\n <td>NaN</td>\n </tr>\n <tr>\n <th>-1005</th>\n <td>1</td>\n <td>2021-07-29T14:07:57.580</td>\n <td>GitLab</td>\n <td>2021-07-29T14:07:57.580</td>\n <td>None</td>\n <td>None</td>\n <td><p>GitLab is the open DevOps platform, deliver...</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>None</td>\n <td>NaN</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>884592</th>\n <td>31</td>\n <td>2011-08-08T18:18:02.387</td>\n <td>Ann</td>\n <td>2011-08-08T18:18:02.387</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>None</td>\n <td>802774.0</td>\n </tr>\n <tr>\n <th>884593</th>\n <td>335</td>\n <td>2011-08-08T18:19:27.857</td>\n <td>ymliu</td>\n <td>2020-04-23T00:04:46.763</td>\n <td></td>\n <td>None</td>\n <td></td>\n <td>33</td>\n <td>8</td>\n <td>0</td>\n <td>https://i.stack.imgur.com/jMCNj.jpg</td>\n <td>474725.0</td>\n </tr>\n <tr>\n <th>884595</th>\n <td>123</td>\n <td>2011-08-08T18:20:03.193</td>\n <td>Neil Woods</td>\n <td>2021-09-08T11:14:32.143</td>\n <td></td>\n <td>None</td>\n <td></td>\n <td>6</td>\n <td>3</td>\n <td>0</td>\n <td>None</td>\n <td>802775.0</td>\n </tr>\n <tr>\n <th>884597</th>\n <td>21</td>\n <td>2011-08-08T18:21:27.077</td>\n <td>Nathan B</td>\n <td>2022-09-22T20:23:45.923</td>\n <td></td>\n <td>None</td>\n <td></td>\n <td>14</td>\n <td>28</td>\n <td>0</td>\n <td>https://i.stack.imgur.com/CMmBO.jpg</td>\n <td>474727.0</td>\n </tr>\n <tr>\n <th>884599</th>\n <td>31</td>\n <td>2011-08-08T18:22:16.987</td>\n <td>Quaitex</td>\n <td>2011-09-01T14:16:54.883</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>5</td>\n <td>0</td>\n <td>0</td>\n <td>None</td>\n <td>796823.0</td>\n </tr>\n </tbody>\n</table>\n<p>500000 rows × 12 columns</p>\n</div>" - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "user_LIMIT = 500000\n", - "user_df = pd.read_sql_query(f\"SELECT * FROM user LIMIT {user_LIMIT}\", db)\n", - "user_df.set_index('UserId', inplace=True)\n", - "user_df" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": 7, - "outputs": [ - { - "data": { - "text/plain": " PostId Score Body \\\nCommentId \n1 45651 6 It will help if you give some details of which... \n2 47428 3 One of the things that make a url user-friendl... \n3 47481 0 I agree, both CodeRush and RefactorPro are vis... \n4 47373 0 Just wanted to mention that this is an excelle... \n5 47497 1 Indeed, the only way to do this is get the ser... \n... ... ... ... \n499996 1044179 0 The index is there already. How can I force or... \n499997 1047464 0 are you sure you can rewrite to a URL on anoth... \n499998 1045341 0 Not sure if I understood correctly. \\nWhere's ... \n499999 1047471 0 Is there a way to remove that selected class f... \n500000 1043743 0 I've added some XSLT that does the necessary c... \n\n CreationDate UserId ContentLicense \nCommentId \n1 2008-09-06T13:38:23.647 242.0 CC BY-SA 2.5 \n2 2008-09-06T13:51:47.843 4642.0 CC BY-SA 2.5 \n3 2008-09-06T14:15:46.897 4642.0 CC BY-SA 2.5 \n4 2008-09-06T14:30:40.217 2495.0 CC BY-SA 2.5 \n5 2008-09-06T14:42:35.303 4642.0 CC BY-SA 2.5 \n... ... ... ... \n499996 2009-06-26T05:43:11.223 87248.0 CC BY-SA 2.5 \n499997 2009-06-26T05:43:42.253 109102.0 CC BY-SA 2.5 \n499998 2009-06-26T05:46:21.890 73715.0 CC BY-SA 2.5 \n499999 2009-06-26T05:46:23.497 86038.0 CC BY-SA 2.5 \n500000 2009-06-26T05:48:48.330 18771.0 CC BY-SA 2.5 \n\n[500000 rows x 6 columns]", - "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>PostId</th>\n <th>Score</th>\n <th>Body</th>\n <th>CreationDate</th>\n <th>UserId</th>\n <th>ContentLicense</th>\n </tr>\n <tr>\n <th>CommentId</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>1</th>\n <td>45651</td>\n <td>6</td>\n <td>It will help if you give some details of which...</td>\n <td>2008-09-06T13:38:23.647</td>\n <td>242.0</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>2</th>\n <td>47428</td>\n <td>3</td>\n <td>One of the things that make a url user-friendl...</td>\n <td>2008-09-06T13:51:47.843</td>\n <td>4642.0</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>3</th>\n <td>47481</td>\n <td>0</td>\n <td>I agree, both CodeRush and RefactorPro are vis...</td>\n <td>2008-09-06T14:15:46.897</td>\n <td>4642.0</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>4</th>\n <td>47373</td>\n <td>0</td>\n <td>Just wanted to mention that this is an excelle...</td>\n <td>2008-09-06T14:30:40.217</td>\n <td>2495.0</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>5</th>\n <td>47497</td>\n <td>1</td>\n <td>Indeed, the only way to do this is get the ser...</td>\n <td>2008-09-06T14:42:35.303</td>\n <td>4642.0</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>499996</th>\n <td>1044179</td>\n <td>0</td>\n <td>The index is there already. How can I force or...</td>\n <td>2009-06-26T05:43:11.223</td>\n <td>87248.0</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>499997</th>\n <td>1047464</td>\n <td>0</td>\n <td>are you sure you can rewrite to a URL on anoth...</td>\n <td>2009-06-26T05:43:42.253</td>\n <td>109102.0</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>499998</th>\n <td>1045341</td>\n <td>0</td>\n <td>Not sure if I understood correctly. \\nWhere's ...</td>\n <td>2009-06-26T05:46:21.890</td>\n <td>73715.0</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>499999</th>\n <td>1047471</td>\n <td>0</td>\n <td>Is there a way to remove that selected class f...</td>\n <td>2009-06-26T05:46:23.497</td>\n <td>86038.0</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>500000</th>\n <td>1043743</td>\n <td>0</td>\n <td>I've added some XSLT that does the necessary c...</td>\n <td>2009-06-26T05:48:48.330</td>\n <td>18771.0</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n </tbody>\n</table>\n<p>500000 rows × 6 columns</p>\n</div>" - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "comment_LIMIT = 500000\n", - "comment_df = pd.read_sql_query(f\"SELECT * FROM comment LIMIT {comment_LIMIT}\", db)\n", - "comment_df.set_index('CommentId', inplace=True)\n", - "comment_df" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": 8, - "outputs": [ - { - "data": { - "text/plain": " PostId VoteTypeId CreationDate\nVoteId \n1 1 2 2008-07-31T00:00:00.000\n2 3 2 2008-07-31T00:00:00.000\n3 2 2 2008-07-31T00:00:00.000\n4 4 2 2008-07-31T00:00:00.000\n5 6 2 2008-07-31T00:00:00.000\n... ... ... ...\n499996 231200 2 2008-10-23T00:00:00.000\n499997 231274 2 2008-10-23T00:00:00.000\n499998 230845 5 2008-10-23T00:00:00.000\n499999 231245 2 2008-10-23T00:00:00.000\n500000 149397 2 2008-10-23T00:00:00.000\n\n[500000 rows x 3 columns]", - "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>PostId</th>\n <th>VoteTypeId</th>\n <th>CreationDate</th>\n </tr>\n <tr>\n <th>VoteId</th>\n <th></th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>1</th>\n <td>1</td>\n <td>2</td>\n <td>2008-07-31T00:00:00.000</td>\n </tr>\n <tr>\n <th>2</th>\n <td>3</td>\n <td>2</td>\n <td>2008-07-31T00:00:00.000</td>\n </tr>\n <tr>\n <th>3</th>\n <td>2</td>\n <td>2</td>\n <td>2008-07-31T00:00:00.000</td>\n </tr>\n <tr>\n <th>4</th>\n <td>4</td>\n <td>2</td>\n <td>2008-07-31T00:00:00.000</td>\n </tr>\n <tr>\n <th>5</th>\n <td>6</td>\n <td>2</td>\n <td>2008-07-31T00:00:00.000</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>499996</th>\n <td>231200</td>\n <td>2</td>\n <td>2008-10-23T00:00:00.000</td>\n </tr>\n <tr>\n <th>499997</th>\n <td>231274</td>\n <td>2</td>\n <td>2008-10-23T00:00:00.000</td>\n </tr>\n <tr>\n <th>499998</th>\n <td>230845</td>\n <td>5</td>\n <td>2008-10-23T00:00:00.000</td>\n </tr>\n <tr>\n <th>499999</th>\n <td>231245</td>\n <td>2</td>\n <td>2008-10-23T00:00:00.000</td>\n </tr>\n <tr>\n <th>500000</th>\n <td>149397</td>\n <td>2</td>\n <td>2008-10-23T00:00:00.000</td>\n </tr>\n </tbody>\n</table>\n<p>500000 rows × 3 columns</p>\n</div>" - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "vote_LIMIT = 500000\n", - "vote_df = pd.read_sql_query(f\"SELECT * FROM vote LIMIT {vote_LIMIT}\", db)\n", - "vote_df.set_index('VoteId', inplace=True)\n", - "vote_df" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "markdown", - "source": [ - "So, we want to build an embedding for the body of posts.\n", - "The body of posts are stored as HTML, we need to split up the text and the code snippets so we can process them separately." - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": 9, - "outputs": [ - { - "data": { - "text/plain": " PostTypeId AcceptedAnswerId CreationDate Score \\\nPostId \n1 1 7.0 2008-07-31T21:42:52.667 781 \n\n ViewCount Body \\\nPostId \n1 67914.0 <p>I want to assign the decimal variable "... \n\n OwnerUserId LastEditorUserId LastEditorDisplayName \\\nPostId \n1 8.0 16124033.0 Rich B \n\n LastEditDate Title \\\nPostId \n1 2022-09-08T05:07:26.033 How to convert Decimal to Double in C#? \n\n Tags AnswerCount \\\nPostId \n1 <c#><floating-point><type-conversion><double><... 14.0 \n\n CommentCount FavoriteCount CommunityOwnedDate ContentLicense \\\nPostId \n1 6 60.0 2012-10-31T16:42:47.213 CC BY-SA 4.0 \n\n ParentId \nPostId \n1 NaN ", - "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>PostTypeId</th>\n <th>AcceptedAnswerId</th>\n <th>CreationDate</th>\n <th>Score</th>\n <th>ViewCount</th>\n <th>Body</th>\n <th>OwnerUserId</th>\n <th>LastEditorUserId</th>\n <th>LastEditorDisplayName</th>\n <th>LastEditDate</th>\n <th>Title</th>\n <th>Tags</th>\n <th>AnswerCount</th>\n <th>CommentCount</th>\n <th>FavoriteCount</th>\n <th>CommunityOwnedDate</th>\n <th>ContentLicense</th>\n <th>ParentId</th>\n </tr>\n <tr>\n <th>PostId</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 <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>1</th>\n <td>1</td>\n <td>7.0</td>\n <td>2008-07-31T21:42:52.667</td>\n <td>781</td>\n <td>67914.0</td>\n <td><p>I want to assign the decimal variable &quot...</td>\n <td>8.0</td>\n <td>16124033.0</td>\n <td>Rich B</td>\n <td>2022-09-08T05:07:26.033</td>\n <td>How to convert Decimal to Double in C#?</td>\n <td><c#><floating-point><type-conversion><double><...</td>\n <td>14.0</td>\n <td>6</td>\n <td>60.0</td>\n <td>2012-10-31T16:42:47.213</td>\n <td>CC BY-SA 4.0</td>\n <td>NaN</td>\n </tr>\n </tbody>\n</table>\n</div>" - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "sample_post = post_df.head(1)\n", - "sample_post" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "markdown", - "source": [ - "Let's process the Body first" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": 10, - "outputs": [], - "source": [ - "from bs4 import BeautifulSoup\n", - "import spacy\n", - "import torch\n", - "import torch.nn as nn\n", - "import torch.nn.functional as F\n", - "import torch.optim as optim\n", - "from torchtext.vocab import GloVe\n", - "\n", - "en = spacy.load('en_core_web_sm')\n", - "stopwords = en.Defaults.stop_words" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": 11, - "outputs": [ - { - "data": { - "text/plain": "tensor([-3.6374e-02, 1.1305e-01, -2.9251e-01, 4.6058e-03, 1.1432e-01,\n 1.3817e-01, 1.8094e-01, -1.4077e-01, -2.9465e-02, 8.6996e-01,\n -2.4227e-01, 1.7903e-03, -9.0644e-02, -2.6434e-02, -1.1753e-02,\n -1.5881e-01, -3.0371e-01, 1.7912e+00, -2.6080e-01, 6.3705e-02,\n 3.3689e-02, -6.7376e-02, -1.3606e-01, 5.8075e-02, 2.3817e-01,\n -2.1051e-01, -2.0274e-01, -1.2007e-01, 1.9419e-01, 4.3345e-02,\n -1.2157e-01, -2.8792e-02, 2.0707e-01, 5.3248e-02, 1.3090e-01,\n -7.3865e-02, 8.7552e-02, -5.2587e-02, -2.5966e-01, -1.7451e-01,\n 9.2528e-02, -2.5121e-01, 1.5754e-02, 9.7943e-03, -2.0923e-01,\n -6.1129e-03, 4.2967e-03, 1.8417e-01, -4.4229e-02, 1.0786e-01,\n -7.7416e-02, 2.1915e-01, 9.1229e-02, -4.5503e-02, 6.1583e-02,\n -6.6497e-02, 4.0271e-02, -8.5584e-02, 9.0862e-02, -3.6905e-02,\n -3.1869e-02, 1.5599e-01, -1.6684e-01, 9.5459e-02, 8.6566e-03,\n 6.3764e-02, 1.6507e-01, -5.7868e-02, 1.2635e-01, 3.5084e-02,\n -1.8181e-02, 2.0929e-01, 6.1381e-03, -2.1185e-01, 2.0875e-01,\n -5.7877e-03, -1.6763e-01, -1.6657e-03, 1.3546e-01, -1.2922e-03,\n 2.5813e-02, 1.4587e-01, -6.0748e-02, 2.7971e-01, -1.3223e-01,\n 1.3441e-02, 5.1517e-01, -4.5957e-01, 7.1570e-02, 6.0031e-03,\n -1.2266e-01, 5.8546e-02, 2.6375e-02, -2.4059e-01, 1.6735e-01,\n 1.4737e-01, 3.9753e-02, 1.4721e-02, 4.8923e-03, 5.5796e-02,\n -4.4108e-02, 9.2886e-02, -4.7641e-02, 4.8820e-02, -5.5781e-02,\n -4.1948e-01, 2.4288e-01, -3.7417e-02, -1.4816e-01, 1.0308e-01,\n -6.9336e-02, -1.0844e-01, -3.7208e-02, -6.5000e-02, -4.8448e-02,\n 1.1080e-01, -7.3346e-02, -3.0539e-02, -8.7169e-02, 4.4503e-02,\n 2.0317e-01, -9.4962e-02, -3.5851e-02, 2.5206e-02, -2.0442e-01,\n 1.0963e-01, 2.9626e-01, 3.5071e-02, 1.8693e-02, -1.6769e-01,\n -2.1641e-02, 4.6062e-01, -3.1421e-02, 4.2701e-02, 1.0721e-01,\n 9.8857e-02, -4.1678e-02, -2.0927e-01, -1.5136e-01, -1.9112e-01,\n -1.0427e+00, -1.0529e-01, 1.0680e-01, -6.5143e-02, 2.9127e-02,\n -1.4307e-01, 5.1208e-02, 2.0857e-01, -2.7466e-01, -1.9018e-01,\n 1.1354e-01, -6.2476e-03, 1.4769e-01, -4.5229e-03, 3.1324e-02,\n -1.8422e-01, -1.8878e-01, 8.4901e-02, 2.4357e-01, 1.4580e-03,\n 1.5736e-01, 6.7952e-02, -2.9599e-02, -6.6300e-02, -1.1379e-01,\n -3.6832e-02, -1.5733e-01, -2.2460e-02, -1.2680e-03, 1.7554e-01,\n -9.7585e-02, 6.3587e-02, -1.9106e-01, -2.6922e-01, 1.4811e-01,\n -8.2532e-02, 3.1161e-02, 1.0939e-01, -1.3534e-01, 1.1171e-02,\n 1.3951e-01, 1.9110e-02, 1.8764e-02, -1.1597e-01, -2.3729e-01,\n 1.9230e-01, -3.1623e-01, 6.5513e-02, 1.3013e-01, 1.4497e-02,\n -3.7088e-02, 9.2073e-02, -2.3112e-01, -1.1719e-01, 2.6579e-01,\n -1.1962e-01, -2.8811e-02, -4.5259e-01, -1.5807e-01, 1.2421e-03,\n 1.0005e-01, -6.1528e-02, 9.2894e-02, 2.4100e-01, -6.6927e-02,\n -1.3903e-01, -6.5851e-02, 2.1972e-03, -9.3033e-02, 5.3871e-02,\n -3.8980e-02, 1.3120e-01, -4.9600e-02, -3.3595e-02, -6.8743e-02,\n 5.2723e-02, -1.5917e-01, 1.4971e-01, -2.5889e-01, 1.3380e-01,\n 1.1774e-01, 1.4271e-01, 2.0470e-02, 9.0111e-02, -8.0654e-02,\n 2.9188e-01, -1.5516e-01, -1.0624e-01, 1.2108e-01, -1.9307e-02,\n -1.8038e-01, -2.6928e-01, 1.1441e-01, 6.6768e-02, -2.8219e-01,\n -1.0843e-01, -1.0348e-01, 1.0993e-01, -4.2919e-01, 2.3482e-01,\n 2.0702e-01, 1.3197e-01, 2.0704e-01, 1.7429e-01, 1.2611e-01,\n -1.0745e-01, 2.4112e-01, 3.3692e-02, -2.5452e-01, -6.9537e-02,\n 1.7775e-01, -3.3938e-02, -2.2522e-02, -6.8234e-02, -1.1130e-01,\n 2.4902e-01, -1.0053e-01, -2.7356e-02, 7.4078e-02, -4.5249e-02,\n -7.9914e-02, 1.1117e-01, 2.0239e-02, 8.5573e-02, 2.5660e-02,\n -1.8129e-01, 7.2276e-02, 9.7285e-02, 4.3870e-01, -2.6918e-01,\n 1.7922e-02, -7.1145e-02, 2.9965e-02, 6.9102e-02, -8.5326e-02,\n -8.6552e-02, 1.1103e-02, 1.2541e-03, -6.9890e-02, 1.5100e-01,\n 2.1181e-02, 1.4036e-01, 1.0159e-01, 1.2323e-01, -7.2754e-02,\n -2.5326e-01, 2.0318e-01, 6.6203e-03, 1.9592e-01, -9.0636e-03,\n 2.0394e-01, -1.5663e-01, -3.1973e-01, -6.1289e-02, 3.1670e-01,\n -1.1282e-01, -1.6557e-01, -1.2395e-01, 5.8688e-02, 6.2929e-02])" - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "class PostEmbedding(nn.Module):\n", - "\n", - " def __init__(self):\n", - " super().__init__()\n", - " self._global_vectors = GloVe(name='840B', dim=300)\n", - "\n", - " def forward(self, html: str, title: str, flatten=True) -> torch.tensor:\n", - " soup = BeautifulSoup(html)\n", - " ps = self.get_paragraphs(soup, title)\n", - " if flatten:\n", - " # Treat all paragraphs the same\n", - " ps = [token for para in ps for token in para]\n", - "\n", - " para_emb = self.to_paragraph_embedding(ps)\n", - "\n", - " code = self.get_code(soup)\n", - " return para_emb\n", - "\n", - " def preprocess(self, text: str) -> List[str]:\n", - " doc = en(text.lower())\n", - " tokens = [word.text for word in doc if not (word.is_stop or word.is_punct or word.like_num)]\n", - " return tokens\n", - "\n", - " def get_paragraphs(self, soup: BeautifulSoup, title: str=None) -> List[List[str]]:\n", - " paras = [self.preprocess(x.get_text()) for x in soup.find_all('p')]\n", - " # If title is available add it to the paragraphs\n", - " if title is not None:\n", - " paras += self.preprocess(title)\n", - " return paras\n", - "\n", - " def to_paragraph_embedding(self, tokens: List[str]):\n", - " word_embeddings = self._global_vectors.get_vecs_by_tokens(tokens)\n", - " return torch.sum(word_embeddings, dim=0) / len(tokens)\n", - "\n", - "\n", - " def get_code(self, soup: BeautifulSoup) -> str:\n", - " return \"\\n\".join([x.get_text() for x in soup.find_all('code')])\n", - "\n", - "\n", - "html = sample_post['Body'].item()\n", - "\n", - "embedding = PostEmbedding()\n", - "embedding(html, sample_post['Title'].item())" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "markdown", - "source": [ - "## Extracting features from code snippets\n", - "Since supervisor meeting on 7th November, we decided to constrain it to Python.\n", - "This means that the `ast` library can be used, rather than RegEx for all languages." - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": 14, - "outputs": [ - { - "data": { - "text/plain": " PostTypeId AcceptedAnswerId CreationDate Score \\\nPostId \n1 1 7.0 2008-07-31T21:42:52.667 781 \n2 1 31.0 2008-07-31T22:08:08.620 318 \n3 2 NaN 2008-07-31T22:17:57.883 517 \n4 1 1404.0 2008-07-31T23:40:59.743 2161 \n5 1 1248.0 2008-07-31T23:55:37.967 1629 \n... ... ... ... ... \n499996 2 NaN 2009-04-03T02:10:35.270 2 \n499997 2 NaN 2009-04-03T02:10:49.060 1 \n499998 1 799526.0 2009-04-03T02:11:16.237 4 \n499999 2 NaN 2009-04-03T02:14:04.293 5 \n500000 2 NaN 2009-04-03T02:15:39.347 1 \n\n ViewCount Body \\\nPostId \n1 67914.0 <p>I want to assign the decimal variable "... \n2 23047.0 <p>I have an absolutely positioned <code>div</... \n3 NaN <p>An explicit cast to <code>double</code> lik... \n4 757897.0 <p>Given a <code>DateTime</code> representing ... \n5 193525.0 <p>Given a specific <code>DateTime</code> valu... \n... ... ... \n499996 NaN <p>If we can assume that:</p>\\n\\n<ul>\\n<li>the... \n499997 NaN <p>Change:</p>\\n\\n<pre><code>for ansSeries in ... \n499998 3611.0 <p>Here are the first few lines of my page:</p... \n499999 NaN <p>Since, in general, there is more than one p... \n500000 NaN <p>Ugh. Short of writing your own authenticati... \n\n OwnerUserId LastEditorUserId LastEditorDisplayName \\\nPostId \n1 8.0 16124033.0 Rich B \n2 9.0 9134576.0 user14723686 \n3 9.0 5496973.0 None \n4 1.0 3524942.0 Rich B \n5 1.0 16790137.0 user2370523 \n... ... ... ... \n499996 72990.0 NaN None \n499997 9940.0 NaN None \n499998 63887.0 NaN None \n499999 15168.0 NaN None \n500000 85863.0 NaN None \n\n LastEditDate \\\nPostId \n1 2022-09-08T05:07:26.033 \n2 2021-01-29T18:46:45.963 \n3 2019-10-21T14:03:54.607 \n4 2022-07-27T22:34:36.320 \n5 2022-07-10T00:19:55.237 \n... ... \n499996 None \n499997 None \n499998 None \n499999 None \n500000 None \n\n Title \\\nPostId \n1 How to convert Decimal to Double in C#? \n2 Why did the width collapse in the percentage w... \n3 None \n4 How do I calculate someone's age based on a Da... \n5 Calculate relative time in C# \n... ... \n499996 None \n499997 None \n499998 Why can't I use session_start() in my php scri... \n499999 None \n500000 None \n\n Tags AnswerCount \\\nPostId \n1 <c#><floating-point><type-conversion><double><... 14.0 \n2 <html><css><internet-explorer-7> 7.0 \n3 None NaN \n4 <c#><.net><datetime> 71.0 \n5 <c#><datetime><time><datediff><relative-time-s... 41.0 \n... ... ... \n499996 None NaN \n499997 None NaN \n499998 <php><session><cookies><header> 2.0 \n499999 None NaN \n500000 None NaN \n\n CommentCount FavoriteCount CommunityOwnedDate ContentLicense \\\nPostId \n1 6 60.0 2012-10-31T16:42:47.213 CC BY-SA 4.0 \n2 0 13.0 None CC BY-SA 4.0 \n3 1 NaN None CC BY-SA 4.0 \n4 10 492.0 2011-08-16T19:40:43.080 CC BY-SA 4.0 \n5 3 552.0 2009-09-04T13:15:59.820 CC BY-SA 4.0 \n... ... ... ... ... \n499996 0 NaN None CC BY-SA 2.5 \n499997 0 NaN None CC BY-SA 2.5 \n499998 2 NaN None CC BY-SA 2.5 \n499999 1 NaN None CC BY-SA 2.5 \n500000 1 NaN None CC BY-SA 2.5 \n\n ParentId code_snippets \nPostId \n1 NaN decimal trans = trackBar1.Value / 5000;\\nthis.... \n2 NaN div\\ndiv\\npercentage-based width\\ndiv\\n0 width... \n3 4.0 double\\ndouble trans = (double) trackBar1.Valu... \n4 NaN DateTime \n5 NaN DateTime\\n2 hours ago\\n3 days ago\\na month ago \n... ... ... \n499996 712186.0 $round_count = 0;\\n$header_printed = false;\\n$... \n499997 712225.0 for ansSeries in notmatched:\\n\\nfor ansSeries ... \n499998 NaN <!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 T... \n499999 712322.0 \n500000 712023.0 X-LIGHTTPD-send-file\\nX-sendfile\\nmod proxy scgi \n\n[500000 rows x 19 columns]", - "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>PostTypeId</th>\n <th>AcceptedAnswerId</th>\n <th>CreationDate</th>\n <th>Score</th>\n <th>ViewCount</th>\n <th>Body</th>\n <th>OwnerUserId</th>\n <th>LastEditorUserId</th>\n <th>LastEditorDisplayName</th>\n <th>LastEditDate</th>\n <th>Title</th>\n <th>Tags</th>\n <th>AnswerCount</th>\n <th>CommentCount</th>\n <th>FavoriteCount</th>\n <th>CommunityOwnedDate</th>\n <th>ContentLicense</th>\n <th>ParentId</th>\n <th>code_snippets</th>\n </tr>\n <tr>\n <th>PostId</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 <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>1</th>\n <td>1</td>\n <td>7.0</td>\n <td>2008-07-31T21:42:52.667</td>\n <td>781</td>\n <td>67914.0</td>\n <td><p>I want to assign the decimal variable &quot...</td>\n <td>8.0</td>\n <td>16124033.0</td>\n <td>Rich B</td>\n <td>2022-09-08T05:07:26.033</td>\n <td>How to convert Decimal to Double in C#?</td>\n <td><c#><floating-point><type-conversion><double><...</td>\n <td>14.0</td>\n <td>6</td>\n <td>60.0</td>\n <td>2012-10-31T16:42:47.213</td>\n <td>CC BY-SA 4.0</td>\n <td>NaN</td>\n <td>decimal trans = trackBar1.Value / 5000;\\nthis....</td>\n </tr>\n <tr>\n <th>2</th>\n <td>1</td>\n <td>31.0</td>\n <td>2008-07-31T22:08:08.620</td>\n <td>318</td>\n <td>23047.0</td>\n <td><p>I have an absolutely positioned <code>div</...</td>\n <td>9.0</td>\n <td>9134576.0</td>\n <td>user14723686</td>\n <td>2021-01-29T18:46:45.963</td>\n <td>Why did the width collapse in the percentage w...</td>\n <td><html><css><internet-explorer-7></td>\n <td>7.0</td>\n <td>0</td>\n <td>13.0</td>\n <td>None</td>\n <td>CC BY-SA 4.0</td>\n <td>NaN</td>\n <td>div\\ndiv\\npercentage-based width\\ndiv\\n0 width...</td>\n </tr>\n <tr>\n <th>3</th>\n <td>2</td>\n <td>NaN</td>\n <td>2008-07-31T22:17:57.883</td>\n <td>517</td>\n <td>NaN</td>\n <td><p>An explicit cast to <code>double</code> lik...</td>\n <td>9.0</td>\n <td>5496973.0</td>\n <td>None</td>\n <td>2019-10-21T14:03:54.607</td>\n <td>None</td>\n <td>None</td>\n <td>NaN</td>\n <td>1</td>\n <td>NaN</td>\n <td>None</td>\n <td>CC BY-SA 4.0</td>\n <td>4.0</td>\n <td>double\\ndouble trans = (double) trackBar1.Valu...</td>\n </tr>\n <tr>\n <th>4</th>\n <td>1</td>\n <td>1404.0</td>\n <td>2008-07-31T23:40:59.743</td>\n <td>2161</td>\n <td>757897.0</td>\n <td><p>Given a <code>DateTime</code> representing ...</td>\n <td>1.0</td>\n <td>3524942.0</td>\n <td>Rich B</td>\n <td>2022-07-27T22:34:36.320</td>\n <td>How do I calculate someone's age based on a Da...</td>\n <td><c#><.net><datetime></td>\n <td>71.0</td>\n <td>10</td>\n <td>492.0</td>\n <td>2011-08-16T19:40:43.080</td>\n <td>CC BY-SA 4.0</td>\n <td>NaN</td>\n <td>DateTime</td>\n </tr>\n <tr>\n <th>5</th>\n <td>1</td>\n <td>1248.0</td>\n <td>2008-07-31T23:55:37.967</td>\n <td>1629</td>\n <td>193525.0</td>\n <td><p>Given a specific <code>DateTime</code> valu...</td>\n <td>1.0</td>\n <td>16790137.0</td>\n <td>user2370523</td>\n <td>2022-07-10T00:19:55.237</td>\n <td>Calculate relative time in C#</td>\n <td><c#><datetime><time><datediff><relative-time-s...</td>\n <td>41.0</td>\n <td>3</td>\n <td>552.0</td>\n <td>2009-09-04T13:15:59.820</td>\n <td>CC BY-SA 4.0</td>\n <td>NaN</td>\n <td>DateTime\\n2 hours ago\\n3 days ago\\na month ago</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>499996</th>\n <td>2</td>\n <td>NaN</td>\n <td>2009-04-03T02:10:35.270</td>\n <td>2</td>\n <td>NaN</td>\n <td><p>If we can assume that:</p>\\n\\n<ul>\\n<li>the...</td>\n <td>72990.0</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>NaN</td>\n <td>0</td>\n <td>NaN</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>712186.0</td>\n <td>$round_count = 0;\\n$header_printed = false;\\n$...</td>\n </tr>\n <tr>\n <th>499997</th>\n <td>2</td>\n <td>NaN</td>\n <td>2009-04-03T02:10:49.060</td>\n <td>1</td>\n <td>NaN</td>\n <td><p>Change:</p>\\n\\n<pre><code>for ansSeries in ...</td>\n <td>9940.0</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>NaN</td>\n <td>0</td>\n <td>NaN</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>712225.0</td>\n <td>for ansSeries in notmatched:\\n\\nfor ansSeries ...</td>\n </tr>\n <tr>\n <th>499998</th>\n <td>1</td>\n <td>799526.0</td>\n <td>2009-04-03T02:11:16.237</td>\n <td>4</td>\n <td>3611.0</td>\n <td><p>Here are the first few lines of my page:</p...</td>\n <td>63887.0</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>Why can't I use session_start() in my php scri...</td>\n <td><php><session><cookies><header></td>\n <td>2.0</td>\n <td>2</td>\n <td>NaN</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>NaN</td>\n <td><!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 T...</td>\n </tr>\n <tr>\n <th>499999</th>\n <td>2</td>\n <td>NaN</td>\n <td>2009-04-03T02:14:04.293</td>\n <td>5</td>\n <td>NaN</td>\n <td><p>Since, in general, there is more than one p...</td>\n <td>15168.0</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>NaN</td>\n <td>1</td>\n <td>NaN</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>712322.0</td>\n <td></td>\n </tr>\n <tr>\n <th>500000</th>\n <td>2</td>\n <td>NaN</td>\n <td>2009-04-03T02:15:39.347</td>\n <td>1</td>\n <td>NaN</td>\n <td><p>Ugh. Short of writing your own authenticati...</td>\n <td>85863.0</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>NaN</td>\n <td>1</td>\n <td>NaN</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>712023.0</td>\n <td>X-LIGHTTPD-send-file\\nX-sendfile\\nmod proxy scgi</td>\n </tr>\n </tbody>\n</table>\n<p>500000 rows × 19 columns</p>\n</div>" - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pe = PostEmbedding()\n", - "post_df['code_snippets'] = post_df['Body'].apply(lambda html: pe.get_code(BeautifulSoup(html)))\n", - "post_df" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": 15, - "outputs": [], - "source": [ - "import re\n", - "\n", - "python_class_name_pattern = r\"class ([a-zA-Z_$][a-zA-Z_$0-9]*)[:(]\"\n", - "py_func_name_pattern = r\"def ([a-zA-Z_$][a-zA-Z_$0-9]*)\\(\"\n", - "py_import_pattern = r\"(?m)^(?:from[ ]+(\\S+)[ ]+)?import[ ]+(\\S+)(?:[ ]+as[ ]+\\S+)?[ ]*$\"\n", - "py_variable_names = r\"([a-zA-Z_$0-9]+)[ ]=\"" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": 16, - "outputs": [], - "source": [ - "def find_code_features(code_snippet: str):\n", - " class_names = re.findall(python_class_name_pattern, code_snippet)\n", - " func_names = re.findall(py_func_name_pattern, code_snippet)\n", - " import_names = list(sum(re.findall(py_import_pattern, code_snippet), ()))\n", - " var_names = re.findall(py_variable_names, code_snippet)\n", - " # return {\n", - " # 'class_names' : class_names,\n", - " # 'func_names' : func_names,\n", - " # 'import_names' : import_names,\n", - " # 'var_names' : var_names\n", - " # }\n", - " return import_names\n", - "\n", - "post_df['import_names'] = post_df['code_snippets'].apply(find_code_features)" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": 19, - "outputs": [ - { - "data": { - "text/plain": " code_snippets \\\nPostId \n326 Premature end of script headers\\n\\nimport cgi\\... \n392 from SomeOtherProduct.SomeModule import SomeCl... \n710 raw_input()\\nraw_input\\nimport sys\\nprint \"\"\"M... \n716 import msvcrt\\nanswer=msvcrt.getch()\\n \n720 #!C:\\python25\\python.exe\\nimport msvcrt\\nprint... \n... ... \n499774 import java.io.File;\\n\\npublic class Main\\n{\\n... \n499834 s=\"hello\"\\ntype(s) == type(\"\")\\n\\ndef firstEle... \n499929 for (final String code : Locale.getISOCoun... \n499948 import java.util.*;\\n\\npublic class LocaleTest... \n499949 import java.util.*;\\nimport java.util.Locale;\\... \n\n import_names \nPostId \n326 [, cgi, , MySQLdb, , MySQLdb, , cgi] \n392 [SomeOtherProduct.SomeModule, SomeClass] \n710 [, sys] \n716 [, msvcrt] \n720 [, msvcrt] \n... ... \n499774 [, java.io.File;] \n499834 [, types] \n499929 [, java.util.Locale;, , java.util.*;] \n499948 [, java.util.*;] \n499949 [, java.util.*;, , java.util.Locale;] \n\n[3287 rows x 2 columns]", - "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>code_snippets</th>\n <th>import_names</th>\n </tr>\n <tr>\n <th>PostId</th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>326</th>\n <td>Premature end of script headers\\n\\nimport cgi\\...</td>\n <td>[, cgi, , MySQLdb, , MySQLdb, , cgi]</td>\n </tr>\n <tr>\n <th>392</th>\n <td>from SomeOtherProduct.SomeModule import SomeCl...</td>\n <td>[SomeOtherProduct.SomeModule, SomeClass]</td>\n </tr>\n <tr>\n <th>710</th>\n <td>raw_input()\\nraw_input\\nimport sys\\nprint \"\"\"M...</td>\n <td>[, sys]</td>\n </tr>\n <tr>\n <th>716</th>\n <td>import msvcrt\\nanswer=msvcrt.getch()\\n</td>\n <td>[, msvcrt]</td>\n </tr>\n <tr>\n <th>720</th>\n <td>#!C:\\python25\\python.exe\\nimport msvcrt\\nprint...</td>\n <td>[, msvcrt]</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>499774</th>\n <td>import java.io.File;\\n\\npublic class Main\\n{\\n...</td>\n <td>[, java.io.File;]</td>\n </tr>\n <tr>\n <th>499834</th>\n <td>s=\"hello\"\\ntype(s) == type(\"\")\\n\\ndef firstEle...</td>\n <td>[, types]</td>\n </tr>\n <tr>\n <th>499929</th>\n <td>for (final String code : Locale.getISOCoun...</td>\n <td>[, java.util.Locale;, , java.util.*;]</td>\n </tr>\n <tr>\n <th>499948</th>\n <td>import java.util.*;\\n\\npublic class LocaleTest...</td>\n <td>[, java.util.*;]</td>\n </tr>\n <tr>\n <th>499949</th>\n <td>import java.util.*;\\nimport java.util.Locale;\\...</td>\n <td>[, java.util.*;, , java.util.Locale;]</td>\n </tr>\n </tbody>\n</table>\n<p>3287 rows × 2 columns</p>\n</div>" - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "post_df[['code_snippets', 'import_names']].loc[post_df['import_names'].astype(str) != '[]']" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": 18, - "outputs": [ - { - "data": { - "text/plain": "code_snippets object\nimport_names object\ndtype: object" - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "a = post_df[['code_snippets', 'import_names']]\n", - "a.dtypes" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "markdown", - "source": [ - "## Building the graph\n", - "We want to build a user-expertise graph" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "USER_ID = 653\n", - "user_df.loc[USER_ID]" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "questions_by_user = pd.read_sql_query(f\"SELECT * FROM Post WHERE OwnerUserId={USER_ID} AND PostTypeId=1\", db)\n", - "questions_by_user.set_index('PostId', inplace=True)\n", - "questions_by_user" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "answers_by_user = pd.read_sql_query(f\"SELECT * FROM Post WHERE OwnerUserId={USER_ID} AND PostTypeId=2\", db)\n", - "answers_by_user.set_index('PostId', inplace=True)\n", - "answers_by_user" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "comments_by_user = pd.read_sql_query(f\"SELECT * FROM Comment WHERE UserId={USER_ID}\", db)\n", - "comments_by_user.set_index('CommentId', inplace=True)\n", - "comments_by_user" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "markdown", - "source": [ - "## Tag Embeddings" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "def parse_tag_list(tag_list: str) -> List[str]:\n", - " return tag_list[1:-1].split(\"><\")\n", - "\n", - "def get_parent_tags(post_id: int) -> str:\n", - " tags = pd.read_sql_query(f\"SELECT Tags FROM Post WHERE PostId={post_id}\", db)\n", - " return tags['Tags'].item()" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "tag_frequency = {}\n", - "\n", - "for i, row in questions_by_user.iterrows():\n", - " tags = parse_tag_list(row.Tags)\n", - " for t in tags:\n", - " if t in tag_frequency:\n", - " tag_frequency[t] += 1\n", - " else:\n", - " tag_frequency[t] = 1\n", - "\n", - "for i, row in answers_by_user.iterrows():\n", - " tag_list = get_parent_tags(row.ParentId)\n", - " if tag_list is None:\n", - " continue\n", - " for t in parse_tag_list(tag_list):\n", - " if t in tag_frequency:\n", - " tag_frequency[t] += 1\n", - " else:\n", - " tag_frequency[t] = 1\n", - "\n", - "{k: v for k, v in sorted(tag_frequency.items(), key=lambda item: item[1], reverse=True)}" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "markdown", - "source": [ - "So we can see there are many categories and for a single user; but there is a lot of variance.\n", - "Can we create an embedding for tags which reflect similar categories?" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "markdown", - "source": [ - "Step 1. Build list of Tag vocabulary" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "tag_df.head()" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "tag_df[\"TagName\"].to_csv(\"tag_vocab.csv\", index=False)" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "tag_vocab = list(set(tag_df[\"TagName\"]))" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "post_tags = pd.read_sql_query(f\"SELECT Tags FROM Post WHERE PostTypeId=1\", db)\n", - "post_tags.to_csv(\"all_tags.csv\", index=False)" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "post_tags = pd.read_csv(\"all_tags.csv\")" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "tag_list_df = post_tags['Tags'].apply(lambda row: parse_tag_list(row))" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "combinations = tag_list_df.apply(lambda row: list(itertools.combinations(row, 2)))" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "combinations = combinations[combinations.astype(str) != '[]']" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "tag_pairs = []\n", - "for i in combinations:\n", - " tag_pairs += i" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n", - "device" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "import random\n", - "\n", - "TRAIN_SIZE = 10000\n", - "tag_pairs = random.sample(tag_pairs, TRAIN_SIZE)\n", - "tag_pairs" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "len(tag_pairs), len(tag_vocab)" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "tag_to_ix = {tag: i for i, tag in enumerate(tag_vocab)}" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "class TagEmbedding(nn.Module):\n", - "\n", - " def __init__(self, vocab_size, embedding_dim):\n", - " super(TagEmbedding, self).__init__()\n", - " self.embedding = nn.Embedding(vocab_size, embedding_dim)\n", - " self.linear1 = nn.Linear(embedding_dim, 128)\n", - " self.linear2 = nn.Linear(128, vocab_size)\n", - "\n", - " def forward(self, inputs):\n", - " embeds = self.embedding(inputs).view((1, -1))\n", - " out = F.relu(self.linear1(embeds))\n", - " out = self.linear2(out)\n", - " log_probs = F.log_softmax(out, dim=1)\n", - " return log_probs" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "losses = []\n", - "loss_function = nn.NLLLoss()\n", - "model = TagEmbedding(vocab_size=len(tag_vocab), embedding_dim=20).to(device)\n", - "optimizer = optim.SGD(model.parameters(), lr=0.001)" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "from tqdm import tqdm\n", - "\n", - "for epoch in range(1):\n", - " total_loss = 0\n", - " for tag_a, tag_b in tqdm(tag_pairs):\n", - " tag_a_id = torch.tensor(tag_to_ix[tag_a], dtype=torch.long).to(device)\n", - " model.zero_grad()\n", - " log_probs = model(tag_a_id)\n", - " loss = loss_function(log_probs.flatten(), torch.tensor(tag_to_ix[tag_b], dtype=torch.long).to(device))\n", - " loss.backward()\n", - " optimizer.step()\n", - " total_loss += loss.item()\n", - " losses.append(total_loss)\n" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "embd_a = model.embedding.weight[tag_to_ix[\"python\"]]\n", - "embd_b = model.embedding.weight[tag_to_ix[\"java\"]]" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "sim = torch.nn.CosineSimilarity(dim=0)\n", - "sim(embd_a, embd_b)" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "from torch.utils.tensorboard import SummaryWriter\n", - "writer = SummaryWriter('runs/visualisation2')" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "tag_vocab" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "loaded_model = torch.load(\"10mil.pt\", map_location=torch.device('cpu'))\n", - "writer.add_embedding(loaded_model.embedding.weight,\n", - " metadata = tag_vocab,\n", - " tag = f'Tag embedding')" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "writer.close()" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [], - "metadata": { - "collapsed": false - } - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 2 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.6" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} +{ + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# Embeddings\n", + "Exploration into how different embeddings can be used to represent posts." + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 1, + "outputs": [], + "source": [ + "import itertools\n", + "import sqlite3\n", + "from typing import List\n", + "import itertools\n", + "import pandas as pd\n", + "from typing import *" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 2, + "outputs": [], + "source": [ + "# Create your connection.\n", + "db = sqlite3.connect('../stackoverflow.db')" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 3, + "outputs": [ + { + "data": { + "text/plain": " TagName Count\nTagId \n1 .net 323469\n2 html 1146245\n3 javascript 2426650\n4 css 771867\n5 php 1445747\n... ... ...\n158156 lost-update 1\n158157 chai-subset 1\n158159 at-spi 1\n158160 oro 0\n158161 sigsci 1\n\n[63653 rows x 2 columns]", + "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>TagName</th>\n <th>Count</th>\n </tr>\n <tr>\n <th>TagId</th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>1</th>\n <td>.net</td>\n <td>323469</td>\n </tr>\n <tr>\n <th>2</th>\n <td>html</td>\n <td>1146245</td>\n </tr>\n <tr>\n <th>3</th>\n <td>javascript</td>\n <td>2426650</td>\n </tr>\n <tr>\n <th>4</th>\n <td>css</td>\n <td>771867</td>\n </tr>\n <tr>\n <th>5</th>\n <td>php</td>\n <td>1445747</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>158156</th>\n <td>lost-update</td>\n <td>1</td>\n </tr>\n <tr>\n <th>158157</th>\n <td>chai-subset</td>\n <td>1</td>\n </tr>\n <tr>\n <th>158159</th>\n <td>at-spi</td>\n <td>1</td>\n </tr>\n <tr>\n <th>158160</th>\n <td>oro</td>\n <td>0</td>\n </tr>\n <tr>\n <th>158161</th>\n <td>sigsci</td>\n <td>1</td>\n </tr>\n </tbody>\n</table>\n<p>63653 rows × 2 columns</p>\n</div>" + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tag_df = pd.read_sql_query(\"SELECT * FROM Tag\", db)\n", + "tag_df.set_index('TagId', inplace=True)\n", + "tag_df" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 4, + "outputs": [ + { + "data": { + "text/plain": " PostTypeId AcceptedAnswerId CreationDate Score \\\nPostId \n1 1 7.0 2008-07-31T21:42:52.667 781 \n2 1 31.0 2008-07-31T22:08:08.620 318 \n3 2 NaN 2008-07-31T22:17:57.883 517 \n4 1 1404.0 2008-07-31T23:40:59.743 2161 \n5 1 1248.0 2008-07-31T23:55:37.967 1629 \n... ... ... ... ... \n499996 2 NaN 2009-04-03T02:10:35.270 2 \n499997 2 NaN 2009-04-03T02:10:49.060 1 \n499998 1 799526.0 2009-04-03T02:11:16.237 4 \n499999 2 NaN 2009-04-03T02:14:04.293 5 \n500000 2 NaN 2009-04-03T02:15:39.347 1 \n\n ViewCount Body \\\nPostId \n1 67914.0 <p>I want to assign the decimal variable "... \n2 23047.0 <p>I have an absolutely positioned <code>div</... \n3 NaN <p>An explicit cast to <code>double</code> lik... \n4 757897.0 <p>Given a <code>DateTime</code> representing ... \n5 193525.0 <p>Given a specific <code>DateTime</code> valu... \n... ... ... \n499996 NaN <p>If we can assume that:</p>\\n\\n<ul>\\n<li>the... \n499997 NaN <p>Change:</p>\\n\\n<pre><code>for ansSeries in ... \n499998 3611.0 <p>Here are the first few lines of my page:</p... \n499999 NaN <p>Since, in general, there is more than one p... \n500000 NaN <p>Ugh. Short of writing your own authenticati... \n\n OwnerUserId LastEditorUserId LastEditorDisplayName \\\nPostId \n1 8.0 16124033.0 Rich B \n2 9.0 9134576.0 user14723686 \n3 9.0 5496973.0 None \n4 1.0 3524942.0 Rich B \n5 1.0 16790137.0 user2370523 \n... ... ... ... \n499996 72990.0 NaN None \n499997 9940.0 NaN None \n499998 63887.0 NaN None \n499999 15168.0 NaN None \n500000 85863.0 NaN None \n\n LastEditDate \\\nPostId \n1 2022-09-08T05:07:26.033 \n2 2021-01-29T18:46:45.963 \n3 2019-10-21T14:03:54.607 \n4 2022-07-27T22:34:36.320 \n5 2022-07-10T00:19:55.237 \n... ... \n499996 None \n499997 None \n499998 None \n499999 None \n500000 None \n\n Title \\\nPostId \n1 How to convert Decimal to Double in C#? \n2 Why did the width collapse in the percentage w... \n3 None \n4 How do I calculate someone's age based on a Da... \n5 Calculate relative time in C# \n... ... \n499996 None \n499997 None \n499998 Why can't I use session_start() in my php scri... \n499999 None \n500000 None \n\n Tags AnswerCount \\\nPostId \n1 <c#><floating-point><type-conversion><double><... 14.0 \n2 <html><css><internet-explorer-7> 7.0 \n3 None NaN \n4 <c#><.net><datetime> 71.0 \n5 <c#><datetime><time><datediff><relative-time-s... 41.0 \n... ... ... \n499996 None NaN \n499997 None NaN \n499998 <php><session><cookies><header> 2.0 \n499999 None NaN \n500000 None NaN \n\n CommentCount FavoriteCount CommunityOwnedDate ContentLicense \\\nPostId \n1 6 60.0 2012-10-31T16:42:47.213 CC BY-SA 4.0 \n2 0 13.0 None CC BY-SA 4.0 \n3 1 NaN None CC BY-SA 4.0 \n4 10 492.0 2011-08-16T19:40:43.080 CC BY-SA 4.0 \n5 3 552.0 2009-09-04T13:15:59.820 CC BY-SA 4.0 \n... ... ... ... ... \n499996 0 NaN None CC BY-SA 2.5 \n499997 0 NaN None CC BY-SA 2.5 \n499998 2 NaN None CC BY-SA 2.5 \n499999 1 NaN None CC BY-SA 2.5 \n500000 1 NaN None CC BY-SA 2.5 \n\n ParentId \nPostId \n1 NaN \n2 NaN \n3 4.0 \n4 NaN \n5 NaN \n... ... \n499996 712186.0 \n499997 712225.0 \n499998 NaN \n499999 712322.0 \n500000 712023.0 \n\n[500000 rows x 18 columns]", + "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>PostTypeId</th>\n <th>AcceptedAnswerId</th>\n <th>CreationDate</th>\n <th>Score</th>\n <th>ViewCount</th>\n <th>Body</th>\n <th>OwnerUserId</th>\n <th>LastEditorUserId</th>\n <th>LastEditorDisplayName</th>\n <th>LastEditDate</th>\n <th>Title</th>\n <th>Tags</th>\n <th>AnswerCount</th>\n <th>CommentCount</th>\n <th>FavoriteCount</th>\n <th>CommunityOwnedDate</th>\n <th>ContentLicense</th>\n <th>ParentId</th>\n </tr>\n <tr>\n <th>PostId</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 <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>1</th>\n <td>1</td>\n <td>7.0</td>\n <td>2008-07-31T21:42:52.667</td>\n <td>781</td>\n <td>67914.0</td>\n <td><p>I want to assign the decimal variable &quot...</td>\n <td>8.0</td>\n <td>16124033.0</td>\n <td>Rich B</td>\n <td>2022-09-08T05:07:26.033</td>\n <td>How to convert Decimal to Double in C#?</td>\n <td><c#><floating-point><type-conversion><double><...</td>\n <td>14.0</td>\n <td>6</td>\n <td>60.0</td>\n <td>2012-10-31T16:42:47.213</td>\n <td>CC BY-SA 4.0</td>\n <td>NaN</td>\n </tr>\n <tr>\n <th>2</th>\n <td>1</td>\n <td>31.0</td>\n <td>2008-07-31T22:08:08.620</td>\n <td>318</td>\n <td>23047.0</td>\n <td><p>I have an absolutely positioned <code>div</...</td>\n <td>9.0</td>\n <td>9134576.0</td>\n <td>user14723686</td>\n <td>2021-01-29T18:46:45.963</td>\n <td>Why did the width collapse in the percentage w...</td>\n <td><html><css><internet-explorer-7></td>\n <td>7.0</td>\n <td>0</td>\n <td>13.0</td>\n <td>None</td>\n <td>CC BY-SA 4.0</td>\n <td>NaN</td>\n </tr>\n <tr>\n <th>3</th>\n <td>2</td>\n <td>NaN</td>\n <td>2008-07-31T22:17:57.883</td>\n <td>517</td>\n <td>NaN</td>\n <td><p>An explicit cast to <code>double</code> lik...</td>\n <td>9.0</td>\n <td>5496973.0</td>\n <td>None</td>\n <td>2019-10-21T14:03:54.607</td>\n <td>None</td>\n <td>None</td>\n <td>NaN</td>\n <td>1</td>\n <td>NaN</td>\n <td>None</td>\n <td>CC BY-SA 4.0</td>\n <td>4.0</td>\n </tr>\n <tr>\n <th>4</th>\n <td>1</td>\n <td>1404.0</td>\n <td>2008-07-31T23:40:59.743</td>\n <td>2161</td>\n <td>757897.0</td>\n <td><p>Given a <code>DateTime</code> representing ...</td>\n <td>1.0</td>\n <td>3524942.0</td>\n <td>Rich B</td>\n <td>2022-07-27T22:34:36.320</td>\n <td>How do I calculate someone's age based on a Da...</td>\n <td><c#><.net><datetime></td>\n <td>71.0</td>\n <td>10</td>\n <td>492.0</td>\n <td>2011-08-16T19:40:43.080</td>\n <td>CC BY-SA 4.0</td>\n <td>NaN</td>\n </tr>\n <tr>\n <th>5</th>\n <td>1</td>\n <td>1248.0</td>\n <td>2008-07-31T23:55:37.967</td>\n <td>1629</td>\n <td>193525.0</td>\n <td><p>Given a specific <code>DateTime</code> valu...</td>\n <td>1.0</td>\n <td>16790137.0</td>\n <td>user2370523</td>\n <td>2022-07-10T00:19:55.237</td>\n <td>Calculate relative time in C#</td>\n <td><c#><datetime><time><datediff><relative-time-s...</td>\n <td>41.0</td>\n <td>3</td>\n <td>552.0</td>\n <td>2009-09-04T13:15:59.820</td>\n <td>CC BY-SA 4.0</td>\n <td>NaN</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>499996</th>\n <td>2</td>\n <td>NaN</td>\n <td>2009-04-03T02:10:35.270</td>\n <td>2</td>\n <td>NaN</td>\n <td><p>If we can assume that:</p>\\n\\n<ul>\\n<li>the...</td>\n <td>72990.0</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>NaN</td>\n <td>0</td>\n <td>NaN</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>712186.0</td>\n </tr>\n <tr>\n <th>499997</th>\n <td>2</td>\n <td>NaN</td>\n <td>2009-04-03T02:10:49.060</td>\n <td>1</td>\n <td>NaN</td>\n <td><p>Change:</p>\\n\\n<pre><code>for ansSeries in ...</td>\n <td>9940.0</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>NaN</td>\n <td>0</td>\n <td>NaN</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>712225.0</td>\n </tr>\n <tr>\n <th>499998</th>\n <td>1</td>\n <td>799526.0</td>\n <td>2009-04-03T02:11:16.237</td>\n <td>4</td>\n <td>3611.0</td>\n <td><p>Here are the first few lines of my page:</p...</td>\n <td>63887.0</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>Why can't I use session_start() in my php scri...</td>\n <td><php><session><cookies><header></td>\n <td>2.0</td>\n <td>2</td>\n <td>NaN</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>NaN</td>\n </tr>\n <tr>\n <th>499999</th>\n <td>2</td>\n <td>NaN</td>\n <td>2009-04-03T02:14:04.293</td>\n <td>5</td>\n <td>NaN</td>\n <td><p>Since, in general, there is more than one p...</td>\n <td>15168.0</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>NaN</td>\n <td>1</td>\n <td>NaN</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>712322.0</td>\n </tr>\n <tr>\n <th>500000</th>\n <td>2</td>\n <td>NaN</td>\n <td>2009-04-03T02:15:39.347</td>\n <td>1</td>\n <td>NaN</td>\n <td><p>Ugh. Short of writing your own authenticati...</td>\n <td>85863.0</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>NaN</td>\n <td>1</td>\n <td>NaN</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>712023.0</td>\n </tr>\n </tbody>\n</table>\n<p>500000 rows × 18 columns</p>\n</div>" + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "POST_LIMIT = 500000\n", + "post_df = pd.read_sql_query(f\"SELECT * FROM Post LIMIT {POST_LIMIT}\", db)\n", + "post_df.set_index('PostId', inplace=True)\n", + "post_df" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 5, + "outputs": [ + { + "data": { + "text/plain": " UserId Name CreationDate Class TagBased\nBadgeId \n1 3718 Teacher 2008-09-15T08:55:03.923 3 False\n2 994 Teacher 2008-09-15T08:55:03.957 3 False\n3 3893 Teacher 2008-09-15T08:55:03.957 3 False\n4 4591 Teacher 2008-09-15T08:55:03.957 3 False\n5 5196 Teacher 2008-09-15T08:55:03.957 3 False\n... ... ... ... ... ...\n499996 51452 Good Answer 2010-02-15T12:27:33.500 2 False\n499997 250648 Critic 2010-02-15T12:32:31.950 3 False\n499998 162569 Commentator 2010-02-15T12:32:32.713 3 False\n499999 116388 Popular Question 2010-02-15T12:32:32.930 3 False\n500000 267503 Tumbleweed 2010-02-15T12:32:35.007 3 False\n\n[500000 rows x 5 columns]", + "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>UserId</th>\n <th>Name</th>\n <th>CreationDate</th>\n <th>Class</th>\n <th>TagBased</th>\n </tr>\n <tr>\n <th>BadgeId</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>1</th>\n <td>3718</td>\n <td>Teacher</td>\n <td>2008-09-15T08:55:03.923</td>\n <td>3</td>\n <td>False</td>\n </tr>\n <tr>\n <th>2</th>\n <td>994</td>\n <td>Teacher</td>\n <td>2008-09-15T08:55:03.957</td>\n <td>3</td>\n <td>False</td>\n </tr>\n <tr>\n <th>3</th>\n <td>3893</td>\n <td>Teacher</td>\n <td>2008-09-15T08:55:03.957</td>\n <td>3</td>\n <td>False</td>\n </tr>\n <tr>\n <th>4</th>\n <td>4591</td>\n <td>Teacher</td>\n <td>2008-09-15T08:55:03.957</td>\n <td>3</td>\n <td>False</td>\n </tr>\n <tr>\n <th>5</th>\n <td>5196</td>\n <td>Teacher</td>\n <td>2008-09-15T08:55:03.957</td>\n <td>3</td>\n <td>False</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>499996</th>\n <td>51452</td>\n <td>Good Answer</td>\n <td>2010-02-15T12:27:33.500</td>\n <td>2</td>\n <td>False</td>\n </tr>\n <tr>\n <th>499997</th>\n <td>250648</td>\n <td>Critic</td>\n <td>2010-02-15T12:32:31.950</td>\n <td>3</td>\n <td>False</td>\n </tr>\n <tr>\n <th>499998</th>\n <td>162569</td>\n <td>Commentator</td>\n <td>2010-02-15T12:32:32.713</td>\n <td>3</td>\n <td>False</td>\n </tr>\n <tr>\n <th>499999</th>\n <td>116388</td>\n <td>Popular Question</td>\n <td>2010-02-15T12:32:32.930</td>\n <td>3</td>\n <td>False</td>\n </tr>\n <tr>\n <th>500000</th>\n <td>267503</td>\n <td>Tumbleweed</td>\n <td>2010-02-15T12:32:35.007</td>\n <td>3</td>\n <td>False</td>\n </tr>\n </tbody>\n</table>\n<p>500000 rows × 5 columns</p>\n</div>" + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "BADGE_LIMIT = 500000\n", + "badge_df = pd.read_sql_query(f\"SELECT * FROM badge LIMIT {BADGE_LIMIT}\", db)\n", + "badge_df.set_index('BadgeId', inplace=True)\n", + "badge_df" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 6, + "outputs": [ + { + "data": { + "text/plain": " Reputation CreationDate DisplayName \\\nUserId \n-1009 1 2022-05-17T15:06:54.890 WSO2 \n-1008 1 2022-01-31T19:45:27.477 Twilio \n-1007 1 2021-09-30T18:39:12.143 AudioBubble2 \n-1006 1 2021-09-27T19:40:44.437 Intel \n-1005 1 2021-07-29T14:07:57.580 GitLab \n... ... ... ... \n 884592 31 2011-08-08T18:18:02.387 Ann \n 884593 335 2011-08-08T18:19:27.857 ymliu \n 884595 123 2011-08-08T18:20:03.193 Neil Woods \n 884597 21 2011-08-08T18:21:27.077 Nathan B \n 884599 31 2011-08-08T18:22:16.987 Quaitex \n\n LastAccessDate WebsiteUrl Location \\\nUserId \n-1009 2022-05-17T15:06:54.890 None None \n-1008 2022-01-31T19:45:27.477 None None \n-1007 2021-09-30T18:39:12.143 None None \n-1006 2021-09-27T19:40:44.437 None None \n-1005 2021-07-29T14:07:57.580 None None \n... ... ... ... \n 884592 2011-08-08T18:18:02.387 None None \n 884593 2020-04-23T00:04:46.763 None \n 884595 2021-09-08T11:14:32.143 None \n 884597 2022-09-22T20:23:45.923 None \n 884599 2011-09-01T14:16:54.883 None None \n\n AboutMe Views UpVotes \\\nUserId \n-1009 <p>WSO2 solutions give enterprises the flexibi... 0 0 \n-1008 <p>Twilio has democratized channels like voice... 0 0 \n-1007 <p>Official Q&A support for AudioBubble2</... 0 0 \n-1006 <p>A space for developers to collaborate on In... 0 0 \n-1005 <p>GitLab is the open DevOps platform, deliver... 0 0 \n... ... ... ... \n 884592 None 0 0 \n 884593 33 8 \n 884595 6 3 \n 884597 14 28 \n 884599 None 5 0 \n\n DownVotes ProfileImageUrl AccountId \nUserId \n-1009 0 None NaN \n-1008 0 None NaN \n-1007 0 None NaN \n-1006 0 None NaN \n-1005 0 None NaN \n... ... ... ... \n 884592 0 None 802774.0 \n 884593 0 https://i.stack.imgur.com/jMCNj.jpg 474725.0 \n 884595 0 None 802775.0 \n 884597 0 https://i.stack.imgur.com/CMmBO.jpg 474727.0 \n 884599 0 None 796823.0 \n\n[500000 rows x 12 columns]", + "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>Reputation</th>\n <th>CreationDate</th>\n <th>DisplayName</th>\n <th>LastAccessDate</th>\n <th>WebsiteUrl</th>\n <th>Location</th>\n <th>AboutMe</th>\n <th>Views</th>\n <th>UpVotes</th>\n <th>DownVotes</th>\n <th>ProfileImageUrl</th>\n <th>AccountId</th>\n </tr>\n <tr>\n <th>UserId</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 <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>-1009</th>\n <td>1</td>\n <td>2022-05-17T15:06:54.890</td>\n <td>WSO2</td>\n <td>2022-05-17T15:06:54.890</td>\n <td>None</td>\n <td>None</td>\n <td><p>WSO2 solutions give enterprises the flexibi...</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>None</td>\n <td>NaN</td>\n </tr>\n <tr>\n <th>-1008</th>\n <td>1</td>\n <td>2022-01-31T19:45:27.477</td>\n <td>Twilio</td>\n <td>2022-01-31T19:45:27.477</td>\n <td>None</td>\n <td>None</td>\n <td><p>Twilio has democratized channels like voice...</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>None</td>\n <td>NaN</td>\n </tr>\n <tr>\n <th>-1007</th>\n <td>1</td>\n <td>2021-09-30T18:39:12.143</td>\n <td>AudioBubble2</td>\n <td>2021-09-30T18:39:12.143</td>\n <td>None</td>\n <td>None</td>\n <td><p>Official Q&amp;A support for AudioBubble2</...</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>None</td>\n <td>NaN</td>\n </tr>\n <tr>\n <th>-1006</th>\n <td>1</td>\n <td>2021-09-27T19:40:44.437</td>\n <td>Intel</td>\n <td>2021-09-27T19:40:44.437</td>\n <td>None</td>\n <td>None</td>\n <td><p>A space for developers to collaborate on In...</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>None</td>\n <td>NaN</td>\n </tr>\n <tr>\n <th>-1005</th>\n <td>1</td>\n <td>2021-07-29T14:07:57.580</td>\n <td>GitLab</td>\n <td>2021-07-29T14:07:57.580</td>\n <td>None</td>\n <td>None</td>\n <td><p>GitLab is the open DevOps platform, deliver...</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>None</td>\n <td>NaN</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>884592</th>\n <td>31</td>\n <td>2011-08-08T18:18:02.387</td>\n <td>Ann</td>\n <td>2011-08-08T18:18:02.387</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>None</td>\n <td>802774.0</td>\n </tr>\n <tr>\n <th>884593</th>\n <td>335</td>\n <td>2011-08-08T18:19:27.857</td>\n <td>ymliu</td>\n <td>2020-04-23T00:04:46.763</td>\n <td></td>\n <td>None</td>\n <td></td>\n <td>33</td>\n <td>8</td>\n <td>0</td>\n <td>https://i.stack.imgur.com/jMCNj.jpg</td>\n <td>474725.0</td>\n </tr>\n <tr>\n <th>884595</th>\n <td>123</td>\n <td>2011-08-08T18:20:03.193</td>\n <td>Neil Woods</td>\n <td>2021-09-08T11:14:32.143</td>\n <td></td>\n <td>None</td>\n <td></td>\n <td>6</td>\n <td>3</td>\n <td>0</td>\n <td>None</td>\n <td>802775.0</td>\n </tr>\n <tr>\n <th>884597</th>\n <td>21</td>\n <td>2011-08-08T18:21:27.077</td>\n <td>Nathan B</td>\n <td>2022-09-22T20:23:45.923</td>\n <td></td>\n <td>None</td>\n <td></td>\n <td>14</td>\n <td>28</td>\n <td>0</td>\n <td>https://i.stack.imgur.com/CMmBO.jpg</td>\n <td>474727.0</td>\n </tr>\n <tr>\n <th>884599</th>\n <td>31</td>\n <td>2011-08-08T18:22:16.987</td>\n <td>Quaitex</td>\n <td>2011-09-01T14:16:54.883</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>5</td>\n <td>0</td>\n <td>0</td>\n <td>None</td>\n <td>796823.0</td>\n </tr>\n </tbody>\n</table>\n<p>500000 rows × 12 columns</p>\n</div>" + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "user_LIMIT = 500000\n", + "user_df = pd.read_sql_query(f\"SELECT * FROM user LIMIT {user_LIMIT}\", db)\n", + "user_df.set_index('UserId', inplace=True)\n", + "user_df" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 7, + "outputs": [ + { + "data": { + "text/plain": " PostId Score Body \\\nCommentId \n1 45651 6 It will help if you give some details of which... \n2 47428 3 One of the things that make a url user-friendl... \n3 47481 0 I agree, both CodeRush and RefactorPro are vis... \n4 47373 0 Just wanted to mention that this is an excelle... \n5 47497 1 Indeed, the only way to do this is get the ser... \n... ... ... ... \n499996 1044179 0 The index is there already. How can I force or... \n499997 1047464 0 are you sure you can rewrite to a URL on anoth... \n499998 1045341 0 Not sure if I understood correctly. \\nWhere's ... \n499999 1047471 0 Is there a way to remove that selected class f... \n500000 1043743 0 I've added some XSLT that does the necessary c... \n\n CreationDate UserId ContentLicense \nCommentId \n1 2008-09-06T13:38:23.647 242.0 CC BY-SA 2.5 \n2 2008-09-06T13:51:47.843 4642.0 CC BY-SA 2.5 \n3 2008-09-06T14:15:46.897 4642.0 CC BY-SA 2.5 \n4 2008-09-06T14:30:40.217 2495.0 CC BY-SA 2.5 \n5 2008-09-06T14:42:35.303 4642.0 CC BY-SA 2.5 \n... ... ... ... \n499996 2009-06-26T05:43:11.223 87248.0 CC BY-SA 2.5 \n499997 2009-06-26T05:43:42.253 109102.0 CC BY-SA 2.5 \n499998 2009-06-26T05:46:21.890 73715.0 CC BY-SA 2.5 \n499999 2009-06-26T05:46:23.497 86038.0 CC BY-SA 2.5 \n500000 2009-06-26T05:48:48.330 18771.0 CC BY-SA 2.5 \n\n[500000 rows x 6 columns]", + "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>PostId</th>\n <th>Score</th>\n <th>Body</th>\n <th>CreationDate</th>\n <th>UserId</th>\n <th>ContentLicense</th>\n </tr>\n <tr>\n <th>CommentId</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>1</th>\n <td>45651</td>\n <td>6</td>\n <td>It will help if you give some details of which...</td>\n <td>2008-09-06T13:38:23.647</td>\n <td>242.0</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>2</th>\n <td>47428</td>\n <td>3</td>\n <td>One of the things that make a url user-friendl...</td>\n <td>2008-09-06T13:51:47.843</td>\n <td>4642.0</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>3</th>\n <td>47481</td>\n <td>0</td>\n <td>I agree, both CodeRush and RefactorPro are vis...</td>\n <td>2008-09-06T14:15:46.897</td>\n <td>4642.0</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>4</th>\n <td>47373</td>\n <td>0</td>\n <td>Just wanted to mention that this is an excelle...</td>\n <td>2008-09-06T14:30:40.217</td>\n <td>2495.0</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>5</th>\n <td>47497</td>\n <td>1</td>\n <td>Indeed, the only way to do this is get the ser...</td>\n <td>2008-09-06T14:42:35.303</td>\n <td>4642.0</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>499996</th>\n <td>1044179</td>\n <td>0</td>\n <td>The index is there already. How can I force or...</td>\n <td>2009-06-26T05:43:11.223</td>\n <td>87248.0</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>499997</th>\n <td>1047464</td>\n <td>0</td>\n <td>are you sure you can rewrite to a URL on anoth...</td>\n <td>2009-06-26T05:43:42.253</td>\n <td>109102.0</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>499998</th>\n <td>1045341</td>\n <td>0</td>\n <td>Not sure if I understood correctly. \\nWhere's ...</td>\n <td>2009-06-26T05:46:21.890</td>\n <td>73715.0</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>499999</th>\n <td>1047471</td>\n <td>0</td>\n <td>Is there a way to remove that selected class f...</td>\n <td>2009-06-26T05:46:23.497</td>\n <td>86038.0</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>500000</th>\n <td>1043743</td>\n <td>0</td>\n <td>I've added some XSLT that does the necessary c...</td>\n <td>2009-06-26T05:48:48.330</td>\n <td>18771.0</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n </tbody>\n</table>\n<p>500000 rows × 6 columns</p>\n</div>" + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "comment_LIMIT = 500000\n", + "comment_df = pd.read_sql_query(f\"SELECT * FROM comment LIMIT {comment_LIMIT}\", db)\n", + "comment_df.set_index('CommentId', inplace=True)\n", + "comment_df" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 8, + "outputs": [ + { + "data": { + "text/plain": " PostId VoteTypeId CreationDate\nVoteId \n1 1 2 2008-07-31T00:00:00.000\n2 3 2 2008-07-31T00:00:00.000\n3 2 2 2008-07-31T00:00:00.000\n4 4 2 2008-07-31T00:00:00.000\n5 6 2 2008-07-31T00:00:00.000\n... ... ... ...\n499996 231200 2 2008-10-23T00:00:00.000\n499997 231274 2 2008-10-23T00:00:00.000\n499998 230845 5 2008-10-23T00:00:00.000\n499999 231245 2 2008-10-23T00:00:00.000\n500000 149397 2 2008-10-23T00:00:00.000\n\n[500000 rows x 3 columns]", + "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>PostId</th>\n <th>VoteTypeId</th>\n <th>CreationDate</th>\n </tr>\n <tr>\n <th>VoteId</th>\n <th></th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>1</th>\n <td>1</td>\n <td>2</td>\n <td>2008-07-31T00:00:00.000</td>\n </tr>\n <tr>\n <th>2</th>\n <td>3</td>\n <td>2</td>\n <td>2008-07-31T00:00:00.000</td>\n </tr>\n <tr>\n <th>3</th>\n <td>2</td>\n <td>2</td>\n <td>2008-07-31T00:00:00.000</td>\n </tr>\n <tr>\n <th>4</th>\n <td>4</td>\n <td>2</td>\n <td>2008-07-31T00:00:00.000</td>\n </tr>\n <tr>\n <th>5</th>\n <td>6</td>\n <td>2</td>\n <td>2008-07-31T00:00:00.000</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>499996</th>\n <td>231200</td>\n <td>2</td>\n <td>2008-10-23T00:00:00.000</td>\n </tr>\n <tr>\n <th>499997</th>\n <td>231274</td>\n <td>2</td>\n <td>2008-10-23T00:00:00.000</td>\n </tr>\n <tr>\n <th>499998</th>\n <td>230845</td>\n <td>5</td>\n <td>2008-10-23T00:00:00.000</td>\n </tr>\n <tr>\n <th>499999</th>\n <td>231245</td>\n <td>2</td>\n <td>2008-10-23T00:00:00.000</td>\n </tr>\n <tr>\n <th>500000</th>\n <td>149397</td>\n <td>2</td>\n <td>2008-10-23T00:00:00.000</td>\n </tr>\n </tbody>\n</table>\n<p>500000 rows × 3 columns</p>\n</div>" + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "vote_LIMIT = 500000\n", + "vote_df = pd.read_sql_query(f\"SELECT * FROM vote LIMIT {vote_LIMIT}\", db)\n", + "vote_df.set_index('VoteId', inplace=True)\n", + "vote_df" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "markdown", + "source": [ + "So, we want to build an embedding for the body of posts.\n", + "The body of posts are stored as HTML, we need to split up the text and the code snippets so we can process them separately." + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 9, + "outputs": [ + { + "data": { + "text/plain": " PostTypeId AcceptedAnswerId CreationDate Score \\\nPostId \n1 1 7.0 2008-07-31T21:42:52.667 781 \n\n ViewCount Body \\\nPostId \n1 67914.0 <p>I want to assign the decimal variable "... \n\n OwnerUserId LastEditorUserId LastEditorDisplayName \\\nPostId \n1 8.0 16124033.0 Rich B \n\n LastEditDate Title \\\nPostId \n1 2022-09-08T05:07:26.033 How to convert Decimal to Double in C#? \n\n Tags AnswerCount \\\nPostId \n1 <c#><floating-point><type-conversion><double><... 14.0 \n\n CommentCount FavoriteCount CommunityOwnedDate ContentLicense \\\nPostId \n1 6 60.0 2012-10-31T16:42:47.213 CC BY-SA 4.0 \n\n ParentId \nPostId \n1 NaN ", + "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>PostTypeId</th>\n <th>AcceptedAnswerId</th>\n <th>CreationDate</th>\n <th>Score</th>\n <th>ViewCount</th>\n <th>Body</th>\n <th>OwnerUserId</th>\n <th>LastEditorUserId</th>\n <th>LastEditorDisplayName</th>\n <th>LastEditDate</th>\n <th>Title</th>\n <th>Tags</th>\n <th>AnswerCount</th>\n <th>CommentCount</th>\n <th>FavoriteCount</th>\n <th>CommunityOwnedDate</th>\n <th>ContentLicense</th>\n <th>ParentId</th>\n </tr>\n <tr>\n <th>PostId</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 <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>1</th>\n <td>1</td>\n <td>7.0</td>\n <td>2008-07-31T21:42:52.667</td>\n <td>781</td>\n <td>67914.0</td>\n <td><p>I want to assign the decimal variable &quot...</td>\n <td>8.0</td>\n <td>16124033.0</td>\n <td>Rich B</td>\n <td>2022-09-08T05:07:26.033</td>\n <td>How to convert Decimal to Double in C#?</td>\n <td><c#><floating-point><type-conversion><double><...</td>\n <td>14.0</td>\n <td>6</td>\n <td>60.0</td>\n <td>2012-10-31T16:42:47.213</td>\n <td>CC BY-SA 4.0</td>\n <td>NaN</td>\n </tr>\n </tbody>\n</table>\n</div>" + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sample_post = post_df.head(1)\n", + "sample_post" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "markdown", + "source": [ + "Let's process the Body first" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 10, + "outputs": [], + "source": [ + "from bs4 import BeautifulSoup\n", + "import spacy\n", + "import torch\n", + "import torch.nn as nn\n", + "import torch.nn.functional as F\n", + "import torch.optim as optim\n", + "from torchtext.vocab import GloVe\n", + "\n", + "en = spacy.load('en_core_web_sm')\n", + "stopwords = en.Defaults.stop_words" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 11, + "outputs": [ + { + "data": { + "text/plain": "tensor([-3.6374e-02, 1.1305e-01, -2.9251e-01, 4.6058e-03, 1.1432e-01,\n 1.3817e-01, 1.8094e-01, -1.4077e-01, -2.9465e-02, 8.6996e-01,\n -2.4227e-01, 1.7903e-03, -9.0644e-02, -2.6434e-02, -1.1753e-02,\n -1.5881e-01, -3.0371e-01, 1.7912e+00, -2.6080e-01, 6.3705e-02,\n 3.3689e-02, -6.7376e-02, -1.3606e-01, 5.8075e-02, 2.3817e-01,\n -2.1051e-01, -2.0274e-01, -1.2007e-01, 1.9419e-01, 4.3345e-02,\n -1.2157e-01, -2.8792e-02, 2.0707e-01, 5.3248e-02, 1.3090e-01,\n -7.3865e-02, 8.7552e-02, -5.2587e-02, -2.5966e-01, -1.7451e-01,\n 9.2528e-02, -2.5121e-01, 1.5754e-02, 9.7943e-03, -2.0923e-01,\n -6.1129e-03, 4.2967e-03, 1.8417e-01, -4.4229e-02, 1.0786e-01,\n -7.7416e-02, 2.1915e-01, 9.1229e-02, -4.5503e-02, 6.1583e-02,\n -6.6497e-02, 4.0271e-02, -8.5584e-02, 9.0862e-02, -3.6905e-02,\n -3.1869e-02, 1.5599e-01, -1.6684e-01, 9.5459e-02, 8.6566e-03,\n 6.3764e-02, 1.6507e-01, -5.7868e-02, 1.2635e-01, 3.5084e-02,\n -1.8181e-02, 2.0929e-01, 6.1381e-03, -2.1185e-01, 2.0875e-01,\n -5.7877e-03, -1.6763e-01, -1.6657e-03, 1.3546e-01, -1.2922e-03,\n 2.5813e-02, 1.4587e-01, -6.0748e-02, 2.7971e-01, -1.3223e-01,\n 1.3441e-02, 5.1517e-01, -4.5957e-01, 7.1570e-02, 6.0031e-03,\n -1.2266e-01, 5.8546e-02, 2.6375e-02, -2.4059e-01, 1.6735e-01,\n 1.4737e-01, 3.9753e-02, 1.4721e-02, 4.8923e-03, 5.5796e-02,\n -4.4108e-02, 9.2886e-02, -4.7641e-02, 4.8820e-02, -5.5781e-02,\n -4.1948e-01, 2.4288e-01, -3.7417e-02, -1.4816e-01, 1.0308e-01,\n -6.9336e-02, -1.0844e-01, -3.7208e-02, -6.5000e-02, -4.8448e-02,\n 1.1080e-01, -7.3346e-02, -3.0539e-02, -8.7169e-02, 4.4503e-02,\n 2.0317e-01, -9.4962e-02, -3.5851e-02, 2.5206e-02, -2.0442e-01,\n 1.0963e-01, 2.9626e-01, 3.5071e-02, 1.8693e-02, -1.6769e-01,\n -2.1641e-02, 4.6062e-01, -3.1421e-02, 4.2701e-02, 1.0721e-01,\n 9.8857e-02, -4.1678e-02, -2.0927e-01, -1.5136e-01, -1.9112e-01,\n -1.0427e+00, -1.0529e-01, 1.0680e-01, -6.5143e-02, 2.9127e-02,\n -1.4307e-01, 5.1208e-02, 2.0857e-01, -2.7466e-01, -1.9018e-01,\n 1.1354e-01, -6.2476e-03, 1.4769e-01, -4.5229e-03, 3.1324e-02,\n -1.8422e-01, -1.8878e-01, 8.4901e-02, 2.4357e-01, 1.4580e-03,\n 1.5736e-01, 6.7952e-02, -2.9599e-02, -6.6300e-02, -1.1379e-01,\n -3.6832e-02, -1.5733e-01, -2.2460e-02, -1.2680e-03, 1.7554e-01,\n -9.7585e-02, 6.3587e-02, -1.9106e-01, -2.6922e-01, 1.4811e-01,\n -8.2532e-02, 3.1161e-02, 1.0939e-01, -1.3534e-01, 1.1171e-02,\n 1.3951e-01, 1.9110e-02, 1.8764e-02, -1.1597e-01, -2.3729e-01,\n 1.9230e-01, -3.1623e-01, 6.5513e-02, 1.3013e-01, 1.4497e-02,\n -3.7088e-02, 9.2073e-02, -2.3112e-01, -1.1719e-01, 2.6579e-01,\n -1.1962e-01, -2.8811e-02, -4.5259e-01, -1.5807e-01, 1.2421e-03,\n 1.0005e-01, -6.1528e-02, 9.2894e-02, 2.4100e-01, -6.6927e-02,\n -1.3903e-01, -6.5851e-02, 2.1972e-03, -9.3033e-02, 5.3871e-02,\n -3.8980e-02, 1.3120e-01, -4.9600e-02, -3.3595e-02, -6.8743e-02,\n 5.2723e-02, -1.5917e-01, 1.4971e-01, -2.5889e-01, 1.3380e-01,\n 1.1774e-01, 1.4271e-01, 2.0470e-02, 9.0111e-02, -8.0654e-02,\n 2.9188e-01, -1.5516e-01, -1.0624e-01, 1.2108e-01, -1.9307e-02,\n -1.8038e-01, -2.6928e-01, 1.1441e-01, 6.6768e-02, -2.8219e-01,\n -1.0843e-01, -1.0348e-01, 1.0993e-01, -4.2919e-01, 2.3482e-01,\n 2.0702e-01, 1.3197e-01, 2.0704e-01, 1.7429e-01, 1.2611e-01,\n -1.0745e-01, 2.4112e-01, 3.3692e-02, -2.5452e-01, -6.9537e-02,\n 1.7775e-01, -3.3938e-02, -2.2522e-02, -6.8234e-02, -1.1130e-01,\n 2.4902e-01, -1.0053e-01, -2.7356e-02, 7.4078e-02, -4.5249e-02,\n -7.9914e-02, 1.1117e-01, 2.0239e-02, 8.5573e-02, 2.5660e-02,\n -1.8129e-01, 7.2276e-02, 9.7285e-02, 4.3870e-01, -2.6918e-01,\n 1.7922e-02, -7.1145e-02, 2.9965e-02, 6.9102e-02, -8.5326e-02,\n -8.6552e-02, 1.1103e-02, 1.2541e-03, -6.9890e-02, 1.5100e-01,\n 2.1181e-02, 1.4036e-01, 1.0159e-01, 1.2323e-01, -7.2754e-02,\n -2.5326e-01, 2.0318e-01, 6.6203e-03, 1.9592e-01, -9.0636e-03,\n 2.0394e-01, -1.5663e-01, -3.1973e-01, -6.1289e-02, 3.1670e-01,\n -1.1282e-01, -1.6557e-01, -1.2395e-01, 5.8688e-02, 6.2929e-02])" + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "class PostEmbedding(nn.Module):\n", + "\n", + " def __init__(self):\n", + " super().__init__()\n", + " self._global_vectors = GloVe(name='840B', dim=300)\n", + "\n", + " def forward(self, html: str, title: str, flatten=True) -> torch.tensor:\n", + " soup = BeautifulSoup(html)\n", + " ps = self.get_paragraphs(soup, title)\n", + " if flatten:\n", + " # Treat all paragraphs the same\n", + " ps = [token for para in ps for token in para]\n", + "\n", + " para_emb = self.to_paragraph_embedding(ps)\n", + "\n", + " code = self.get_code(soup)\n", + " return para_emb\n", + "\n", + " def preprocess(self, text: str) -> List[str]:\n", + " doc = en(text.lower())\n", + " tokens = [word.text for word in doc if not (word.is_stop or word.is_punct or word.like_num)]\n", + " return tokens\n", + "\n", + " def get_paragraphs(self, soup: BeautifulSoup, title: str=None) -> List[List[str]]:\n", + " paras = [self.preprocess(x.get_text()) for x in soup.find_all('p')]\n", + " # If title is available add it to the paragraphs\n", + " if title is not None:\n", + " paras += self.preprocess(title)\n", + " return paras\n", + "\n", + " def to_paragraph_embedding(self, tokens: List[str]):\n", + " word_embeddings = self._global_vectors.get_vecs_by_tokens(tokens)\n", + " return torch.sum(word_embeddings, dim=0) / len(tokens)\n", + "\n", + "\n", + " def get_code(self, soup: BeautifulSoup) -> str:\n", + " return \"\\n\".join([x.get_text() for x in soup.find_all('code')])\n", + "\n", + "\n", + "html = sample_post['Body'].item()\n", + "\n", + "embedding = PostEmbedding()\n", + "embedding(html, sample_post['Title'].item())" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "markdown", + "source": [ + "## Extracting features from code snippets\n", + "Since supervisor meeting on 7th November, we decided to constrain it to Python.\n", + "This means that the `ast` library can be used, rather than RegEx for all languages." + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 14, + "outputs": [ + { + "data": { + "text/plain": " PostTypeId AcceptedAnswerId CreationDate Score \\\nPostId \n1 1 7.0 2008-07-31T21:42:52.667 781 \n2 1 31.0 2008-07-31T22:08:08.620 318 \n3 2 NaN 2008-07-31T22:17:57.883 517 \n4 1 1404.0 2008-07-31T23:40:59.743 2161 \n5 1 1248.0 2008-07-31T23:55:37.967 1629 \n... ... ... ... ... \n499996 2 NaN 2009-04-03T02:10:35.270 2 \n499997 2 NaN 2009-04-03T02:10:49.060 1 \n499998 1 799526.0 2009-04-03T02:11:16.237 4 \n499999 2 NaN 2009-04-03T02:14:04.293 5 \n500000 2 NaN 2009-04-03T02:15:39.347 1 \n\n ViewCount Body \\\nPostId \n1 67914.0 <p>I want to assign the decimal variable "... \n2 23047.0 <p>I have an absolutely positioned <code>div</... \n3 NaN <p>An explicit cast to <code>double</code> lik... \n4 757897.0 <p>Given a <code>DateTime</code> representing ... \n5 193525.0 <p>Given a specific <code>DateTime</code> valu... \n... ... ... \n499996 NaN <p>If we can assume that:</p>\\n\\n<ul>\\n<li>the... \n499997 NaN <p>Change:</p>\\n\\n<pre><code>for ansSeries in ... \n499998 3611.0 <p>Here are the first few lines of my page:</p... \n499999 NaN <p>Since, in general, there is more than one p... \n500000 NaN <p>Ugh. Short of writing your own authenticati... \n\n OwnerUserId LastEditorUserId LastEditorDisplayName \\\nPostId \n1 8.0 16124033.0 Rich B \n2 9.0 9134576.0 user14723686 \n3 9.0 5496973.0 None \n4 1.0 3524942.0 Rich B \n5 1.0 16790137.0 user2370523 \n... ... ... ... \n499996 72990.0 NaN None \n499997 9940.0 NaN None \n499998 63887.0 NaN None \n499999 15168.0 NaN None \n500000 85863.0 NaN None \n\n LastEditDate \\\nPostId \n1 2022-09-08T05:07:26.033 \n2 2021-01-29T18:46:45.963 \n3 2019-10-21T14:03:54.607 \n4 2022-07-27T22:34:36.320 \n5 2022-07-10T00:19:55.237 \n... ... \n499996 None \n499997 None \n499998 None \n499999 None \n500000 None \n\n Title \\\nPostId \n1 How to convert Decimal to Double in C#? \n2 Why did the width collapse in the percentage w... \n3 None \n4 How do I calculate someone's age based on a Da... \n5 Calculate relative time in C# \n... ... \n499996 None \n499997 None \n499998 Why can't I use session_start() in my php scri... \n499999 None \n500000 None \n\n Tags AnswerCount \\\nPostId \n1 <c#><floating-point><type-conversion><double><... 14.0 \n2 <html><css><internet-explorer-7> 7.0 \n3 None NaN \n4 <c#><.net><datetime> 71.0 \n5 <c#><datetime><time><datediff><relative-time-s... 41.0 \n... ... ... \n499996 None NaN \n499997 None NaN \n499998 <php><session><cookies><header> 2.0 \n499999 None NaN \n500000 None NaN \n\n CommentCount FavoriteCount CommunityOwnedDate ContentLicense \\\nPostId \n1 6 60.0 2012-10-31T16:42:47.213 CC BY-SA 4.0 \n2 0 13.0 None CC BY-SA 4.0 \n3 1 NaN None CC BY-SA 4.0 \n4 10 492.0 2011-08-16T19:40:43.080 CC BY-SA 4.0 \n5 3 552.0 2009-09-04T13:15:59.820 CC BY-SA 4.0 \n... ... ... ... ... \n499996 0 NaN None CC BY-SA 2.5 \n499997 0 NaN None CC BY-SA 2.5 \n499998 2 NaN None CC BY-SA 2.5 \n499999 1 NaN None CC BY-SA 2.5 \n500000 1 NaN None CC BY-SA 2.5 \n\n ParentId code_snippets \nPostId \n1 NaN decimal trans = trackBar1.Value / 5000;\\nthis.... \n2 NaN div\\ndiv\\npercentage-based width\\ndiv\\n0 width... \n3 4.0 double\\ndouble trans = (double) trackBar1.Valu... \n4 NaN DateTime \n5 NaN DateTime\\n2 hours ago\\n3 days ago\\na month ago \n... ... ... \n499996 712186.0 $round_count = 0;\\n$header_printed = false;\\n$... \n499997 712225.0 for ansSeries in notmatched:\\n\\nfor ansSeries ... \n499998 NaN <!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 T... \n499999 712322.0 \n500000 712023.0 X-LIGHTTPD-send-file\\nX-sendfile\\nmod proxy scgi \n\n[500000 rows x 19 columns]", + "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>PostTypeId</th>\n <th>AcceptedAnswerId</th>\n <th>CreationDate</th>\n <th>Score</th>\n <th>ViewCount</th>\n <th>Body</th>\n <th>OwnerUserId</th>\n <th>LastEditorUserId</th>\n <th>LastEditorDisplayName</th>\n <th>LastEditDate</th>\n <th>Title</th>\n <th>Tags</th>\n <th>AnswerCount</th>\n <th>CommentCount</th>\n <th>FavoriteCount</th>\n <th>CommunityOwnedDate</th>\n <th>ContentLicense</th>\n <th>ParentId</th>\n <th>code_snippets</th>\n </tr>\n <tr>\n <th>PostId</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 <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>1</th>\n <td>1</td>\n <td>7.0</td>\n <td>2008-07-31T21:42:52.667</td>\n <td>781</td>\n <td>67914.0</td>\n <td><p>I want to assign the decimal variable &quot...</td>\n <td>8.0</td>\n <td>16124033.0</td>\n <td>Rich B</td>\n <td>2022-09-08T05:07:26.033</td>\n <td>How to convert Decimal to Double in C#?</td>\n <td><c#><floating-point><type-conversion><double><...</td>\n <td>14.0</td>\n <td>6</td>\n <td>60.0</td>\n <td>2012-10-31T16:42:47.213</td>\n <td>CC BY-SA 4.0</td>\n <td>NaN</td>\n <td>decimal trans = trackBar1.Value / 5000;\\nthis....</td>\n </tr>\n <tr>\n <th>2</th>\n <td>1</td>\n <td>31.0</td>\n <td>2008-07-31T22:08:08.620</td>\n <td>318</td>\n <td>23047.0</td>\n <td><p>I have an absolutely positioned <code>div</...</td>\n <td>9.0</td>\n <td>9134576.0</td>\n <td>user14723686</td>\n <td>2021-01-29T18:46:45.963</td>\n <td>Why did the width collapse in the percentage w...</td>\n <td><html><css><internet-explorer-7></td>\n <td>7.0</td>\n <td>0</td>\n <td>13.0</td>\n <td>None</td>\n <td>CC BY-SA 4.0</td>\n <td>NaN</td>\n <td>div\\ndiv\\npercentage-based width\\ndiv\\n0 width...</td>\n </tr>\n <tr>\n <th>3</th>\n <td>2</td>\n <td>NaN</td>\n <td>2008-07-31T22:17:57.883</td>\n <td>517</td>\n <td>NaN</td>\n <td><p>An explicit cast to <code>double</code> lik...</td>\n <td>9.0</td>\n <td>5496973.0</td>\n <td>None</td>\n <td>2019-10-21T14:03:54.607</td>\n <td>None</td>\n <td>None</td>\n <td>NaN</td>\n <td>1</td>\n <td>NaN</td>\n <td>None</td>\n <td>CC BY-SA 4.0</td>\n <td>4.0</td>\n <td>double\\ndouble trans = (double) trackBar1.Valu...</td>\n </tr>\n <tr>\n <th>4</th>\n <td>1</td>\n <td>1404.0</td>\n <td>2008-07-31T23:40:59.743</td>\n <td>2161</td>\n <td>757897.0</td>\n <td><p>Given a <code>DateTime</code> representing ...</td>\n <td>1.0</td>\n <td>3524942.0</td>\n <td>Rich B</td>\n <td>2022-07-27T22:34:36.320</td>\n <td>How do I calculate someone's age based on a Da...</td>\n <td><c#><.net><datetime></td>\n <td>71.0</td>\n <td>10</td>\n <td>492.0</td>\n <td>2011-08-16T19:40:43.080</td>\n <td>CC BY-SA 4.0</td>\n <td>NaN</td>\n <td>DateTime</td>\n </tr>\n <tr>\n <th>5</th>\n <td>1</td>\n <td>1248.0</td>\n <td>2008-07-31T23:55:37.967</td>\n <td>1629</td>\n <td>193525.0</td>\n <td><p>Given a specific <code>DateTime</code> valu...</td>\n <td>1.0</td>\n <td>16790137.0</td>\n <td>user2370523</td>\n <td>2022-07-10T00:19:55.237</td>\n <td>Calculate relative time in C#</td>\n <td><c#><datetime><time><datediff><relative-time-s...</td>\n <td>41.0</td>\n <td>3</td>\n <td>552.0</td>\n <td>2009-09-04T13:15:59.820</td>\n <td>CC BY-SA 4.0</td>\n <td>NaN</td>\n <td>DateTime\\n2 hours ago\\n3 days ago\\na month ago</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>499996</th>\n <td>2</td>\n <td>NaN</td>\n <td>2009-04-03T02:10:35.270</td>\n <td>2</td>\n <td>NaN</td>\n <td><p>If we can assume that:</p>\\n\\n<ul>\\n<li>the...</td>\n <td>72990.0</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>NaN</td>\n <td>0</td>\n <td>NaN</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>712186.0</td>\n <td>$round_count = 0;\\n$header_printed = false;\\n$...</td>\n </tr>\n <tr>\n <th>499997</th>\n <td>2</td>\n <td>NaN</td>\n <td>2009-04-03T02:10:49.060</td>\n <td>1</td>\n <td>NaN</td>\n <td><p>Change:</p>\\n\\n<pre><code>for ansSeries in ...</td>\n <td>9940.0</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>NaN</td>\n <td>0</td>\n <td>NaN</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>712225.0</td>\n <td>for ansSeries in notmatched:\\n\\nfor ansSeries ...</td>\n </tr>\n <tr>\n <th>499998</th>\n <td>1</td>\n <td>799526.0</td>\n <td>2009-04-03T02:11:16.237</td>\n <td>4</td>\n <td>3611.0</td>\n <td><p>Here are the first few lines of my page:</p...</td>\n <td>63887.0</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>Why can't I use session_start() in my php scri...</td>\n <td><php><session><cookies><header></td>\n <td>2.0</td>\n <td>2</td>\n <td>NaN</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>NaN</td>\n <td><!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 T...</td>\n </tr>\n <tr>\n <th>499999</th>\n <td>2</td>\n <td>NaN</td>\n <td>2009-04-03T02:14:04.293</td>\n <td>5</td>\n <td>NaN</td>\n <td><p>Since, in general, there is more than one p...</td>\n <td>15168.0</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>NaN</td>\n <td>1</td>\n <td>NaN</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>712322.0</td>\n <td></td>\n </tr>\n <tr>\n <th>500000</th>\n <td>2</td>\n <td>NaN</td>\n <td>2009-04-03T02:15:39.347</td>\n <td>1</td>\n <td>NaN</td>\n <td><p>Ugh. Short of writing your own authenticati...</td>\n <td>85863.0</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>NaN</td>\n <td>1</td>\n <td>NaN</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>712023.0</td>\n <td>X-LIGHTTPD-send-file\\nX-sendfile\\nmod proxy scgi</td>\n </tr>\n </tbody>\n</table>\n<p>500000 rows × 19 columns</p>\n</div>" + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pe = PostEmbedding()\n", + "post_df['code_snippets'] = post_df['Body'].apply(lambda html: pe.get_code(BeautifulSoup(html)))\n", + "post_df" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 15, + "outputs": [], + "source": [ + "import re\n", + "\n", + "python_class_name_pattern = r\"class ([a-zA-Z_$][a-zA-Z_$0-9]*)[:(]\"\n", + "py_func_name_pattern = r\"def ([a-zA-Z_$][a-zA-Z_$0-9]*)\\(\"\n", + "py_import_pattern = r\"(?m)^(?:from[ ]+(\\S+)[ ]+)?import[ ]+(\\S+)(?:[ ]+as[ ]+\\S+)?[ ]*$\"\n", + "py_variable_names = r\"([a-zA-Z_$0-9]+)[ ]=\"" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 16, + "outputs": [], + "source": [ + "def find_code_features(code_snippet: str):\n", + " class_names = re.findall(python_class_name_pattern, code_snippet)\n", + " func_names = re.findall(py_func_name_pattern, code_snippet)\n", + " import_names = list(sum(re.findall(py_import_pattern, code_snippet), ()))\n", + " var_names = re.findall(py_variable_names, code_snippet)\n", + " # return {\n", + " # 'class_names' : class_names,\n", + " # 'func_names' : func_names,\n", + " # 'import_names' : import_names,\n", + " # 'var_names' : var_names\n", + " # }\n", + " return import_names\n", + "\n", + "post_df['import_names'] = post_df['code_snippets'].apply(find_code_features)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 19, + "outputs": [ + { + "data": { + "text/plain": " code_snippets \\\nPostId \n326 Premature end of script headers\\n\\nimport cgi\\... \n392 from SomeOtherProduct.SomeModule import SomeCl... \n710 raw_input()\\nraw_input\\nimport sys\\nprint \"\"\"M... \n716 import msvcrt\\nanswer=msvcrt.getch()\\n \n720 #!C:\\python25\\python.exe\\nimport msvcrt\\nprint... \n... ... \n499774 import java.io.File;\\n\\npublic class Main\\n{\\n... \n499834 s=\"hello\"\\ntype(s) == type(\"\")\\n\\ndef firstEle... \n499929 for (final String code : Locale.getISOCoun... \n499948 import java.util.*;\\n\\npublic class LocaleTest... \n499949 import java.util.*;\\nimport java.util.Locale;\\... \n\n import_names \nPostId \n326 [, cgi, , MySQLdb, , MySQLdb, , cgi] \n392 [SomeOtherProduct.SomeModule, SomeClass] \n710 [, sys] \n716 [, msvcrt] \n720 [, msvcrt] \n... ... \n499774 [, java.io.File;] \n499834 [, types] \n499929 [, java.util.Locale;, , java.util.*;] \n499948 [, java.util.*;] \n499949 [, java.util.*;, , java.util.Locale;] \n\n[3287 rows x 2 columns]", + "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>code_snippets</th>\n <th>import_names</th>\n </tr>\n <tr>\n <th>PostId</th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>326</th>\n <td>Premature end of script headers\\n\\nimport cgi\\...</td>\n <td>[, cgi, , MySQLdb, , MySQLdb, , cgi]</td>\n </tr>\n <tr>\n <th>392</th>\n <td>from SomeOtherProduct.SomeModule import SomeCl...</td>\n <td>[SomeOtherProduct.SomeModule, SomeClass]</td>\n </tr>\n <tr>\n <th>710</th>\n <td>raw_input()\\nraw_input\\nimport sys\\nprint \"\"\"M...</td>\n <td>[, sys]</td>\n </tr>\n <tr>\n <th>716</th>\n <td>import msvcrt\\nanswer=msvcrt.getch()\\n</td>\n <td>[, msvcrt]</td>\n </tr>\n <tr>\n <th>720</th>\n <td>#!C:\\python25\\python.exe\\nimport msvcrt\\nprint...</td>\n <td>[, msvcrt]</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>499774</th>\n <td>import java.io.File;\\n\\npublic class Main\\n{\\n...</td>\n <td>[, java.io.File;]</td>\n </tr>\n <tr>\n <th>499834</th>\n <td>s=\"hello\"\\ntype(s) == type(\"\")\\n\\ndef firstEle...</td>\n <td>[, types]</td>\n </tr>\n <tr>\n <th>499929</th>\n <td>for (final String code : Locale.getISOCoun...</td>\n <td>[, java.util.Locale;, , java.util.*;]</td>\n </tr>\n <tr>\n <th>499948</th>\n <td>import java.util.*;\\n\\npublic class LocaleTest...</td>\n <td>[, java.util.*;]</td>\n </tr>\n <tr>\n <th>499949</th>\n <td>import java.util.*;\\nimport java.util.Locale;\\...</td>\n <td>[, java.util.*;, , java.util.Locale;]</td>\n </tr>\n </tbody>\n</table>\n<p>3287 rows × 2 columns</p>\n</div>" + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "post_df[['code_snippets', 'import_names']].loc[post_df['import_names'].astype(str) != '[]']" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 18, + "outputs": [ + { + "data": { + "text/plain": "code_snippets object\nimport_names object\ndtype: object" + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a = post_df[['code_snippets', 'import_names']]\n", + "a.dtypes" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "markdown", + "source": [ + "## Building the graph\n", + "We want to build a user-expertise graph" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "USER_ID = 653\n", + "user_df.loc[USER_ID]" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "questions_by_user = pd.read_sql_query(f\"SELECT * FROM Post WHERE OwnerUserId={USER_ID} AND PostTypeId=1\", db)\n", + "questions_by_user.set_index('PostId', inplace=True)\n", + "questions_by_user" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "answers_by_user = pd.read_sql_query(f\"SELECT * FROM Post WHERE OwnerUserId={USER_ID} AND PostTypeId=2\", db)\n", + "answers_by_user.set_index('PostId', inplace=True)\n", + "answers_by_user" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "comments_by_user = pd.read_sql_query(f\"SELECT * FROM Comment WHERE UserId={USER_ID}\", db)\n", + "comments_by_user.set_index('CommentId', inplace=True)\n", + "comments_by_user" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "markdown", + "source": [ + "## Tag Embeddings" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "def parse_tag_list(tag_list: str) -> List[str]:\n", + " return tag_list[1:-1].split(\"><\")\n", + "\n", + "def get_parent_tags(post_id: int) -> str:\n", + " tags = pd.read_sql_query(f\"SELECT Tags FROM Post WHERE PostId={post_id}\", db)\n", + " return tags['Tags'].item()" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "tag_frequency = {}\n", + "\n", + "for i, row in questions_by_user.iterrows():\n", + " tags = parse_tag_list(row.Tags)\n", + " for t in tags:\n", + " if t in tag_frequency:\n", + " tag_frequency[t] += 1\n", + " else:\n", + " tag_frequency[t] = 1\n", + "\n", + "for i, row in answers_by_user.iterrows():\n", + " tag_list = get_parent_tags(row.ParentId)\n", + " if tag_list is None:\n", + " continue\n", + " for t in parse_tag_list(tag_list):\n", + " if t in tag_frequency:\n", + " tag_frequency[t] += 1\n", + " else:\n", + " tag_frequency[t] = 1\n", + "\n", + "{k: v for k, v in sorted(tag_frequency.items(), key=lambda item: item[1], reverse=True)}" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "markdown", + "source": [ + "So we can see there are many categories and for a single user; but there is a lot of variance.\n", + "Can we create an embedding for tags which reflect similar categories?" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "markdown", + "source": [ + "Step 1. Build list of Tag vocabulary" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "tag_df.head()" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "tag_df[\"TagName\"].to_csv(\"tag_vocab.csv\", index=False)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "tag_vocab = list(set(tag_df[\"TagName\"]))" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "post_tags = pd.read_sql_query(f\"SELECT Tags FROM Post WHERE PostTypeId=1\", db)\n", + "post_tags.to_csv(\"all_tags.csv\", index=False)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "post_tags = pd.read_csv(\"all_tags.csv\")" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "tag_list_df = post_tags['Tags'].apply(lambda row: parse_tag_list(row))" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "combinations = tag_list_df.apply(lambda row: list(itertools.combinations(row, 2)))" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "combinations = combinations[combinations.astype(str) != '[]']" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "tag_pairs = []\n", + "for i in combinations:\n", + " tag_pairs += i" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n", + "device" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "import random\n", + "\n", + "TRAIN_SIZE = 10000\n", + "tag_pairs = random.sample(tag_pairs, TRAIN_SIZE)\n", + "tag_pairs" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "len(tag_pairs), len(tag_vocab)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "tag_to_ix = {tag: i for i, tag in enumerate(tag_vocab)}" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "class TagEmbedding(nn.Module):\n", + "\n", + " def __init__(self, vocab_size, embedding_dim):\n", + " super(TagEmbedding, self).__init__()\n", + " self.embedding = nn.Embedding(vocab_size, embedding_dim)\n", + " self.linear1 = nn.Linear(embedding_dim, 128)\n", + " self.linear2 = nn.Linear(128, vocab_size)\n", + "\n", + " def forward(self, inputs):\n", + " embeds = self.embedding(inputs).view((1, -1))\n", + " out = F.relu(self.linear1(embeds))\n", + " out = self.linear2(out)\n", + " log_probs = F.log_softmax(out, dim=1)\n", + " return log_probs" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "losses = []\n", + "loss_function = nn.NLLLoss()\n", + "model = TagEmbedding(vocab_size=len(tag_vocab), embedding_dim=20).to(device)\n", + "optimizer = optim.SGD(model.parameters(), lr=0.001)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "from tqdm import tqdm\n", + "\n", + "for epoch in range(1):\n", + " total_loss = 0\n", + " for tag_a, tag_b in tqdm(tag_pairs):\n", + " tag_a_id = torch.tensor(tag_to_ix[tag_a], dtype=torch.long).to(device)\n", + " model.zero_grad()\n", + " log_probs = model(tag_a_id)\n", + " loss = loss_function(log_probs.flatten(), torch.tensor(tag_to_ix[tag_b], dtype=torch.long).to(device))\n", + " loss.backward()\n", + " optimizer.step()\n", + " total_loss += loss.item()\n", + " losses.append(total_loss)\n" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "embd_a = model.embedding.weight[tag_to_ix[\"python\"]]\n", + "embd_b = model.embedding.weight[tag_to_ix[\"java\"]]" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "sim = torch.nn.CosineSimilarity(dim=0)\n", + "sim(embd_a, embd_b)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "from torch.utils.tensorboard import SummaryWriter\n", + "writer = SummaryWriter('runs/visualisation2')" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "tag_vocab" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "loaded_model = torch.load(\"10mil.pt\", map_location=torch.device('cpu'))\n", + "writer.add_embedding(loaded_model.embedding.weight,\n", + " metadata = tag_vocab,\n", + " tag = f'Tag embedding')" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "writer.close()" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [], + "metadata": { + "collapsed": false + } + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/archived/pyg_construction_demo.ipynb b/archived/pyg_construction_demo.ipynb index 5f354836bde65d42b808f37b26c64237a319513f..b0cdb2d521e223aeaf5e7fcece8f6a177acf6c19 100644 --- a/archived/pyg_construction_demo.ipynb +++ b/archived/pyg_construction_demo.ipynb @@ -1,487 +1,487 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 15, - "outputs": [], - "source": [ - "import sqlite3\n", - "\n", - "import numpy as np\n", - "import pandas as pd\n", - "from typing import *\n", - "import ast\n", - "\n", - "import torch\n", - "from torch_geometric.data import HeteroData\n", - "from bs4 import BeautifulSoup\n", - "from post_embedding_builder import PostEmbedding\n", - "import networkx as nx\n", - "from matplotlib import pyplot as plt" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": 16, - "outputs": [], - "source": [ - "# Create your connection.\n", - "db = sqlite3.connect('../stackoverflow.db')" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": 17, - "outputs": [], - "source": [ - "user_id = 13009" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": 18, - "outputs": [ - { - "data": { - "text/plain": " PostTypeId AcceptedAnswerId CreationDate Score \\\nPostId \n269676 1 NaN 2008-11-06T18:06:13.213 10 \n1046474 1 1046522.0 2009-06-25T22:04:16.890 5 \n2970045 1 2974177.0 2010-06-03T21:52:14.793 6 \n3712445 1 3712645.0 2010-09-14T20:04:19.940 1 \n5538814 1 5539724.0 2011-04-04T13:00:53.620 0 \n... ... ... ... ... \n36922532 1 36922586.0 2016-04-28T18:18:49.007 6 \n40749339 1 40749648.0 2016-11-22T18:42:04.867 1 \n41616578 1 41623932.0 2017-01-12T15:10:45.340 2 \n44933724 1 44950763.0 2017-07-05T18:40:48.800 0 \n45238835 1 45239952.0 2017-07-21T13:23:56.527 4 \n\n ViewCount Body \\\nPostId \n269676 7250 <p>I want to make my Python library working wi... \n1046474 12418 <p>How do I run this command with subprocess?<... \n2970045 7850 <p>I have a python web application that needs ... \n3712445 405 <p>Say I have text 'C:\\somedir\\test.log' and I... \n5538814 631 <p>I have multiple Django apps, and I have som... \n... ... ... \n36922532 3284 <p>I know there must be a way to do this. But... \n40749339 1271 <p>Say I have a script like this:</p>\\n\\n<pre>... \n41616578 24094 <p>I'm trying to run code like this:</p>\\n\\n<p... \n44933724 388 <p>I've been running fine on Django 1.7. I'm ... \n45238835 1191 <p>I'm on Django 1.9, Python 3.6. I made this... \n\n OwnerUserId LastEditorUserId LastEditorDisplayName \\\nPostId \n269676 13009 13009.0 Greg \n1046474 13009 13009.0 None \n2970045 13009 13009.0 None \n3712445 13009 13009.0 None \n5538814 13009 13009.0 None \n... ... ... ... \n36922532 13009 NaN None \n40749339 13009 NaN None \n41616578 13009 NaN None \n44933724 13009 NaN None \n45238835 13009 NaN None \n\n LastEditDate \\\nPostId \n269676 2008-11-10T15:12:18.133 \n1046474 2009-06-25T22:21:41.520 \n2970045 2010-06-03T22:11:27.260 \n3712445 2010-09-14T20:18:32.083 \n5538814 2011-04-04T13:15:37.903 \n... ... \n36922532 None \n40749339 None \n41616578 None \n44933724 None \n45238835 None \n\n Title \\\nPostId \n269676 How can I Cause a Deadlock in MySQL for Testin... \n1046474 Python - Subprocess - How to call a Piped comm... \n2970045 Python - Launch a Long Running Process from a ... \n3712445 Python Regular Expression Question \n5538814 Django - non app specific models.py? \n... ... \n36922532 Python functools.partial - How to apply it to ... \n40749339 Python subprocess - check exit codes of forked... \n41616578 Psycopg copy_expert method - How to use properly \n44933724 Django 1.11 upgrade - object has no attribute ... \n45238835 Django failing migration - Cannot query \"peter... \n\n Tags AnswerCount \\\nPostId \n269676 <python><mysql><database><deadlock> 5 \n1046474 <python><subprocess><pipe><echo><popen> 2 \n2970045 <python><windows><winapi><popen><long-running-... 4 \n3712445 <python><regex> 4 \n5538814 <python><django><django-models> 3 \n... ... ... \n36922532 <python><static-methods><python-decorators><fu... 3 \n40749339 <python><subprocess><fork> 1 \n41616578 <python><postgresql><psycopg2><psycopg> 2 \n44933724 <python><django><django-models><django-authent... 1 \n45238835 <python><django><migration><django-migrations> 1 \n\n CommentCount FavoriteCount CommunityOwnedDate ContentLicense \\\nPostId \n269676 0 3.0 None CC BY-SA 2.5 \n1046474 2 3.0 None CC BY-SA 2.5 \n2970045 2 6.0 None CC BY-SA 2.5 \n3712445 0 1.0 None CC BY-SA 2.5 \n5538814 0 1.0 None CC BY-SA 2.5 \n... ... ... ... ... \n36922532 0 1.0 None CC BY-SA 3.0 \n40749339 0 NaN None CC BY-SA 3.0 \n41616578 2 NaN None CC BY-SA 3.0 \n44933724 2 0.0 None CC BY-SA 3.0 \n45238835 4 NaN None CC BY-SA 3.0 \n\n ParentId \nPostId \n269676 None \n1046474 None \n2970045 None \n3712445 None \n5538814 None \n... ... \n36922532 None \n40749339 None \n41616578 None \n44933724 None \n45238835 None \n\n[105 rows x 18 columns]", - "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>PostTypeId</th>\n <th>AcceptedAnswerId</th>\n <th>CreationDate</th>\n <th>Score</th>\n <th>ViewCount</th>\n <th>Body</th>\n <th>OwnerUserId</th>\n <th>LastEditorUserId</th>\n <th>LastEditorDisplayName</th>\n <th>LastEditDate</th>\n <th>Title</th>\n <th>Tags</th>\n <th>AnswerCount</th>\n <th>CommentCount</th>\n <th>FavoriteCount</th>\n <th>CommunityOwnedDate</th>\n <th>ContentLicense</th>\n <th>ParentId</th>\n </tr>\n <tr>\n <th>PostId</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 <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>269676</th>\n <td>1</td>\n <td>NaN</td>\n <td>2008-11-06T18:06:13.213</td>\n <td>10</td>\n <td>7250</td>\n <td><p>I want to make my Python library working wi...</td>\n <td>13009</td>\n <td>13009.0</td>\n <td>Greg</td>\n <td>2008-11-10T15:12:18.133</td>\n <td>How can I Cause a Deadlock in MySQL for Testin...</td>\n <td><python><mysql><database><deadlock></td>\n <td>5</td>\n <td>0</td>\n <td>3.0</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>None</td>\n </tr>\n <tr>\n <th>1046474</th>\n <td>1</td>\n <td>1046522.0</td>\n <td>2009-06-25T22:04:16.890</td>\n <td>5</td>\n <td>12418</td>\n <td><p>How do I run this command with subprocess?<...</td>\n <td>13009</td>\n <td>13009.0</td>\n <td>None</td>\n <td>2009-06-25T22:21:41.520</td>\n <td>Python - Subprocess - How to call a Piped comm...</td>\n <td><python><subprocess><pipe><echo><popen></td>\n <td>2</td>\n <td>2</td>\n <td>3.0</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>None</td>\n </tr>\n <tr>\n <th>2970045</th>\n <td>1</td>\n <td>2974177.0</td>\n <td>2010-06-03T21:52:14.793</td>\n <td>6</td>\n <td>7850</td>\n <td><p>I have a python web application that needs ...</td>\n <td>13009</td>\n <td>13009.0</td>\n <td>None</td>\n <td>2010-06-03T22:11:27.260</td>\n <td>Python - Launch a Long Running Process from a ...</td>\n <td><python><windows><winapi><popen><long-running-...</td>\n <td>4</td>\n <td>2</td>\n <td>6.0</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>None</td>\n </tr>\n <tr>\n <th>3712445</th>\n <td>1</td>\n <td>3712645.0</td>\n <td>2010-09-14T20:04:19.940</td>\n <td>1</td>\n <td>405</td>\n <td><p>Say I have text 'C:\\somedir\\test.log' and I...</td>\n <td>13009</td>\n <td>13009.0</td>\n <td>None</td>\n <td>2010-09-14T20:18:32.083</td>\n <td>Python Regular Expression Question</td>\n <td><python><regex></td>\n <td>4</td>\n <td>0</td>\n <td>1.0</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>None</td>\n </tr>\n <tr>\n <th>5538814</th>\n <td>1</td>\n <td>5539724.0</td>\n <td>2011-04-04T13:00:53.620</td>\n <td>0</td>\n <td>631</td>\n <td><p>I have multiple Django apps, and I have som...</td>\n <td>13009</td>\n <td>13009.0</td>\n <td>None</td>\n <td>2011-04-04T13:15:37.903</td>\n <td>Django - non app specific models.py?</td>\n <td><python><django><django-models></td>\n <td>3</td>\n <td>0</td>\n <td>1.0</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>None</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>36922532</th>\n <td>1</td>\n <td>36922586.0</td>\n <td>2016-04-28T18:18:49.007</td>\n <td>6</td>\n <td>3284</td>\n <td><p>I know there must be a way to do this. But...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>Python functools.partial - How to apply it to ...</td>\n <td><python><static-methods><python-decorators><fu...</td>\n <td>3</td>\n <td>0</td>\n <td>1.0</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>None</td>\n </tr>\n <tr>\n <th>40749339</th>\n <td>1</td>\n <td>40749648.0</td>\n <td>2016-11-22T18:42:04.867</td>\n <td>1</td>\n <td>1271</td>\n <td><p>Say I have a script like this:</p>\\n\\n<pre>...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>Python subprocess - check exit codes of forked...</td>\n <td><python><subprocess><fork></td>\n <td>1</td>\n <td>0</td>\n <td>NaN</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>None</td>\n </tr>\n <tr>\n <th>41616578</th>\n <td>1</td>\n <td>41623932.0</td>\n <td>2017-01-12T15:10:45.340</td>\n <td>2</td>\n <td>24094</td>\n <td><p>I'm trying to run code like this:</p>\\n\\n<p...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>Psycopg copy_expert method - How to use properly</td>\n <td><python><postgresql><psycopg2><psycopg></td>\n <td>2</td>\n <td>2</td>\n <td>NaN</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>None</td>\n </tr>\n <tr>\n <th>44933724</th>\n <td>1</td>\n <td>44950763.0</td>\n <td>2017-07-05T18:40:48.800</td>\n <td>0</td>\n <td>388</td>\n <td><p>I've been running fine on Django 1.7. I'm ...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>Django 1.11 upgrade - object has no attribute ...</td>\n <td><python><django><django-models><django-authent...</td>\n <td>1</td>\n <td>2</td>\n <td>0.0</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>None</td>\n </tr>\n <tr>\n <th>45238835</th>\n <td>1</td>\n <td>45239952.0</td>\n <td>2017-07-21T13:23:56.527</td>\n <td>4</td>\n <td>1191</td>\n <td><p>I'm on Django 1.9, Python 3.6. I made this...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>Django failing migration - Cannot query \"peter...</td>\n <td><python><django><migration><django-migrations></td>\n <td>1</td>\n <td>4</td>\n <td>NaN</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>None</td>\n </tr>\n </tbody>\n</table>\n<p>105 rows × 18 columns</p>\n</div>" - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "questions_df = pd.read_sql_query(f\"\"\"\n", - " SELECT *\n", - " FROM Post\n", - " WHERE Tags LIKE '%python%' AND (PostTypeId = 1) AND ((LastEditorUserId = {user_id}) OR (OwnerUserId = {user_id}))\n", - "\"\"\", db)\n", - "questions_df.set_index('PostId', inplace=True)\n", - "questions_df" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": 19, - "outputs": [ - { - "data": { - "text/plain": " Tags PostTypeId \\\nPostId \n6930808 <python><django><django-models><django-admin><... 2 \n45239952 <python><django><migration><django-migrations> 2 \n74335 <python><amazon> 2 \n94627 <python><user-interface><api> 2 \n109724 <python><excel><xlwt><pyexcelerator> 2 \n207065 <python><ajax><screen-scraping><beautifulsoup> 2 \n207074 <python><soap><soap-client> 2 \n224014 <python><ruby><perl><text-parsing> 2 \n273994 <python><programming-languages><python-3.x> 2 \n302681 <python><simplehttpserver><embeddedwebserver> 2 \n338929 <python><indentation> 2 \n350913 <python><django><django-forms> 2 \n368859 <python><unicode><ascii><encode> 2 \n562280 <python><excel-2007> 2 \n1166398 <python><newline><word-wrap> 2 \n1423207 <python><frameworks><cgi><nearlyfreespeech> 2 \n2726298 <python><xlwt><xlrd> 2 \n2883732 <python><sql-server><pyodbc><django-pyodbc> 2 \n2973884 <python><windows><winapi><popen><long-running-... 2 \n2974177 <python><windows><winapi><popen><long-running-... 2 \n3322769 <python><sqlalchemy><orm> 2 \n3364841 <python><session><timeout><sqlalchemy> 2 \n3740202 <python><dictionary> 2 \n5037673 <python><serialization><pickle><inverted-index> 2 \n5486539 <python><django><django-models><django-admin> 2 \n5501441 <python><xpath><elementtree> 2 \n5517355 <python><django><django-models> 2 \n5539724 <python><django><django-models> 2 \n5912867 <python><apache><mod-wsgi><redhat><setuptools> 2 \n5979034 <python><django><django-models><django-admin> 2 \n6507098 <python><django><django-models><django-admin><... 2 \n7097823 <python><django><django-models> 2 \n7323959 <python><popen><subprocess> 2 \n7999028 <python><linux><multithreading><threadpool> 2 \n10047815 <python><django> 2 \n21140430 <python><jdbc><jpype><jaydebeapi> 2 \n23349566 <python><rpy2> 2 \n29807514 <python><curl><python-requests> 2 \n31146549 <python><flask><uwsgi> 2 \n31164662 <python><mongodb><uwsgi><mlab><pymongo-3.x> 2 \n31482430 <python><nginx><flask><memcached><uwsgi> 2 \n31516660 <python><memcached><libmemcached><pylibmc> 2 \n32564909 <python><computer-vision><scikit-image><canny-... 2 \n33284974 <python><oracle><macos><cx-oracle><osx-elcapitan> 2 \n35611090 <python><django><celery><django-celery> 2 \n36922809 <python><static-methods><python-decorators><fu... 2 \n37288365 <python><python-2.7><unicode><subprocess> 2 \n41470962 <python><logging> 2 \n44950763 <python><django><django-models><django-authent... 2 \n\n AcceptedAnswerId CreationDate Score ViewCount \\\nPostId \n6930808 None 2011-08-03T17:45:24.243 1 None \n45239952 None 2017-07-21T14:15:08.280 6 None \n74335 None 2008-09-16T16:40:08.743 2 None \n94627 None 2008-09-18T17:21:42.810 3 None \n109724 None 2008-09-20T23:10:13.863 2 None \n207065 None 2008-10-16T00:58:10.813 0 None \n207074 None 2008-10-16T01:00:24.800 1 None \n224014 None 2008-10-22T00:03:23.323 5 None \n273994 None 2008-11-07T23:29:44.590 4 None \n302681 None 2008-11-19T17:21:06.677 0 None \n338929 None 2008-12-03T22:10:01.007 16 None \n350913 None 2008-12-08T21:12:56.517 40 None \n368859 None 2008-12-15T16:10:11.413 -3 None \n562280 None 2009-02-18T18:28:00.267 0 None \n1166398 None 2009-07-22T16:09:25.197 1 None \n1423207 None 2009-09-14T18:34:18.867 2 None \n2726298 None 2010-04-28T01:30:54.397 263 None \n2883732 None 2010-05-21T16:21:27.240 10 None \n2973884 None 2010-06-04T12:04:23.607 1 None \n2974177 None 2010-06-04T12:41:24.323 7 None \n3322769 None 2010-07-23T22:11:43.417 42 None \n3364841 None 2010-07-29T16:31:24.073 56 None \n3740202 None 2010-09-18T02:57:15.853 7 None \n5037673 None 2011-02-18T04:37:27.133 0 None \n5486539 None 2011-03-30T12:54:01.637 0 None \n5501441 None 2011-03-31T14:27:50.847 56 None \n5517355 None 2011-04-01T18:30:31.930 3 None \n5539724 None 2011-04-04T14:12:30.027 1 None \n5912867 None 2011-05-06T14:28:54.537 0 None \n5979034 None 2011-05-12T13:51:05.513 -2 None \n6507098 None 2011-06-28T13:20:49.480 0 None \n7097823 None 2011-08-17T18:45:06.860 3 None \n7323959 None 2011-09-06T17:45:14.537 8 None \n7999028 None 2011-11-03T17:09:51.260 0 None \n10047815 None 2012-04-06T18:46:30.720 1 None \n21140430 None 2014-01-15T14:44:21.213 5 None \n23349566 None 2014-04-28T19:26:54.797 0 None \n29807514 None 2015-04-22T19:53:07.763 0 None \n31146549 None 2015-06-30T19:13:43.577 7 None \n31164662 None 2015-07-01T14:47:11.400 14 None \n31482430 None 2015-07-17T18:30:07.053 0 None \n31516660 None 2015-07-20T12:34:33.923 0 None \n32564909 None 2015-09-14T12:31:51.097 1 None \n33284974 None 2015-10-22T15:36:24.507 0 None \n35611090 None 2016-02-24T19:18:36.617 0 None \n36922809 None 2016-04-28T18:32:49.863 2 None \n37288365 None 2016-05-18T00:36:59.467 1 None \n41470962 None 2017-01-04T18:37:01.457 1 None \n44950763 None 2017-07-06T13:45:42.037 2 None \n\n Body OwnerUserId \\\nPostId \n6930808 <p>Well, here's a work around since I can't fi... 13009 \n45239952 <p>Looks like I just needed to get User the sa... 13009 \n74335 <p>pyaws seems to be the best one out there. ... 13009 \n94627 <p><a href=\"http://pythoncard.sourceforge.net/... 13009 \n109724 <p>Found example here: <a href=\"http://www.ans... 13009 \n207065 <p>This seems like it's a pretty common proble... 13009 \n207074 <p>As I suggested <a href=\"https://stackoverfl... 13009 \n224014 <p><a href=\"http://pyparsing.wikispaces.com/\" ... 13009 \n273994 <p>Wouldn't VB6 to VB.net be the biggest examp... 13009 \n302681 <p>I made this one. <a href=\"http://www.blend... 13009 \n338929 <p>Python includes a script for the opposite (... 13009 \n350913 <p>I went ahead and answered my own question. ... 13009 \n368859 <p>This seems to work:</p>\\n\\n<pre><code>'add ... 13009 \n562280 <p>May I humbly suggest my site; <a href=\"http... 13009 \n1166398 <p>It looks like it doesn't support that. Thi... 13009 \n1423207 <p>I got web.py to work on nearly free speech ... 13009 \n2726298 <p>Here's some sample code I used recently to ... 13009 \n2883732 <p>Sorry, I asked too soon, <a href=\"http://co... 13009 \n2973884 <p>This almost works (<a href=\"http://docs.pyt... 13009 \n2974177 <p>Ok, I finally figured this out! This seems... 13009 \n3322769 <p>Ok I found it after further searching:</p>\\... 13009 \n3364841 <p>Whenever you create a new session in your c... 13009 \n3740202 <p>What you're describing in your edit is how ... 13009 \n5037673 <p>There's the other pickle library you could ... 13009 \n5486539 <p>What I did to fix this is I dropped every t... 13009 \n5501441 <p>Turns out I needed to say <code>target.find... 13009 \n5517355 <p>Ahh, found it in another SO answer. Weird ... 13009 \n5539724 <p><code>__init__.py</code> in my project's di... 13009 \n5912867 <p>Oh well, instead of fooling with that, I to... 13009 \n5979034 <p><a href=\"http://www.answermysearches.com/fi... 13009 \n6507098 <p>Ok, as a workaround I ended up defining a <... 13009 \n7097823 <p>get_or_create sounds busted to me. I'm jus... 13009 \n7323959 <p>Ok, I'm not sure why but this seems to work... 13009 \n7999028 <p>Actually this does seem to be working. I s... 13009 \n10047815 <p><a href=\"https://stackoverflow.com/question... 13009 \n21140430 <p>Ok, thanks to eltabo and Juan Mellado I fig... 13009 \n23349566 <p>So I was trying to install this on a networ... 13009 \n29807514 <p>Ok, changing to response.content fixed it. ... 13009 \n31146549 <p>Ok, @ipinak was on the right track. It loo... 13009 \n31164662 <p>I fixed it for myself by downgrading from p... 13009 \n31482430 <p>This isn't a great answer, but I ended up u... 13009 \n31516660 <p>As far as I can tell it seems to work fine ... 13009 \n32564909 <p>So the issue was with the canny function re... 13009 \n33284974 <p>I think I fixed it. Basically everything i... 13009 \n35611090 <p>After tooling around for a while and trying... 13009 \n36922809 <p>There's probably a smarter way to do it but... 13009 \n37288365 <p>Wow, this was the weirdest issue ever but I... 13009 \n41470962 <p>Here's what I ended up going with. But I'm... 13009 \n44950763 <p>As @adrien mentioned in the comment, that w... 13009 \n\n LastEditorUserId LastEditorDisplayName LastEditDate \\\nPostId \n6930808 13009.0 None 2011-08-04T11:44:00.257 \n45239952 13009.0 None 2017-07-21T19:13:22.417 \n74335 NaN None None \n94627 216356.0 None 2012-08-09T19:47:56.843 \n109724 NaN None None \n207065 NaN None None \n207074 -1.0 None 2017-05-23T12:34:59.060 \n224014 NaN None None \n273994 NaN None None \n302681 NaN None None \n338929 NaN None None \n350913 NaN None None \n368859 NaN None None \n562280 NaN None None \n1166398 NaN None None \n1423207 NaN None None \n2726298 3801587.0 None 2019-11-04T13:44:52.230 \n2883732 NaN None None \n2973884 NaN None None \n2974177 726378.0 None 2017-07-28T04:22:46.813 \n3322769 NaN None None \n3364841 972208.0 None 2012-03-18T02:57:48.600 \n3740202 NaN None None \n5037673 NaN None None \n5486539 NaN None None \n5501441 3820025.0 None 2018-12-19T15:54:38.900 \n5517355 NaN None None \n5539724 NaN None None \n5912867 NaN None None \n5979034 NaN None None \n6507098 NaN None None \n7097823 NaN None None \n7323959 NaN None None \n7999028 NaN None None \n10047815 -1.0 None 2017-05-23T10:34:38.073 \n21140430 NaN None None \n23349566 NaN None None \n29807514 NaN None None \n31146549 NaN None None \n31164662 NaN None None \n31482430 NaN None None \n31516660 NaN None None \n32564909 NaN None None \n33284974 NaN None None \n35611090 NaN None None \n36922809 NaN None None \n37288365 -1.0 None 2017-05-23T11:44:09.133 \n41470962 NaN None None \n44950763 NaN None None \n\n Title AnswerCount CommentCount FavoriteCount \\\nPostId \n6930808 None None 0 None \n45239952 None None 0 None \n74335 None None 0 None \n94627 None None 1 None \n109724 None None 1 None \n207065 None None 1 None \n207074 None None 0 None \n224014 None None 0 None \n273994 None None 3 None \n302681 None None 0 None \n338929 None None 2 None \n350913 None None 2 None \n368859 None None 5 None \n562280 None None 0 None \n1166398 None None 0 None \n1423207 None None 0 None \n2726298 None None 5 None \n2883732 None None 0 None \n2973884 None None 0 None \n2974177 None None 3 None \n3322769 None None 2 None \n3364841 None None 4 None \n3740202 None None 0 None \n5037673 None None 0 None \n5486539 None None 0 None \n5501441 None None 2 None \n5517355 None None 0 None \n5539724 None None 0 None \n5912867 None None 0 None \n5979034 None None 0 None \n6507098 None None 0 None \n7097823 None None 0 None \n7323959 None None 2 None \n7999028 None None 0 None \n10047815 None None 2 None \n21140430 None None 3 None \n23349566 None None 0 None \n29807514 None None 3 None \n31146549 None None 0 None \n31164662 None None 3 None \n31482430 None None 0 None \n31516660 None None 0 None \n32564909 None None 1 None \n33284974 None None 0 None \n35611090 None None 0 None \n36922809 None None 0 None \n37288365 None None 1 None \n41470962 None None 0 None \n44950763 None None 0 None \n\n CommunityOwnedDate ContentLicense ParentId \nPostId \n6930808 None CC BY-SA 3.0 6913166 \n45239952 None CC BY-SA 3.0 45238835 \n74335 None CC BY-SA 2.5 48884 \n94627 None CC BY-SA 3.0 93930 \n109724 None CC BY-SA 2.5 108134 \n207065 None CC BY-SA 2.5 206855 \n207074 None CC BY-SA 2.5 206154 \n224014 None CC BY-SA 2.5 223866 \n273994 None CC BY-SA 2.5 273524 \n302681 None CC BY-SA 2.5 302615 \n338929 None CC BY-SA 2.5 338767 \n350913 2008-12-08T21:12:56.517 CC BY-SA 2.5 350799 \n368859 None CC BY-SA 2.5 368805 \n562280 None CC BY-SA 2.5 556967 \n1166398 None CC BY-SA 2.5 1166317 \n1423207 None CC BY-SA 2.5 1423041 \n2726298 None CC BY-SA 4.0 2725852 \n2883732 None CC BY-SA 2.5 2883722 \n2973884 None CC BY-SA 2.5 2970045 \n2974177 None CC BY-SA 3.0 2970045 \n3322769 None CC BY-SA 2.5 3322337 \n3364841 None CC BY-SA 3.0 3360951 \n3740202 None CC BY-SA 2.5 3738381 \n5037673 None CC BY-SA 2.5 5037432 \n5486539 None CC BY-SA 2.5 5486018 \n5501441 None CC BY-SA 4.0 5501118 \n5517355 None CC BY-SA 2.5 5517314 \n5539724 None CC BY-SA 2.5 5538814 \n5912867 None CC BY-SA 3.0 5912701 \n5979034 None CC BY-SA 3.0 5486018 \n6507098 None CC BY-SA 3.0 6497882 \n7097823 None CC BY-SA 3.0 7097475 \n7323959 None CC BY-SA 3.0 7323859 \n7999028 None CC BY-SA 3.0 7998850 \n10047815 None CC BY-SA 3.0 10047387 \n21140430 2014-01-15T14:44:21.213 CC BY-SA 3.0 21027904 \n23349566 None CC BY-SA 3.0 23346270 \n29807514 None CC BY-SA 3.0 29807249 \n31146549 None CC BY-SA 3.0 31146007 \n31164662 None CC BY-SA 3.0 31030307 \n31482430 None CC BY-SA 3.0 31478409 \n31516660 None CC BY-SA 3.0 31482138 \n32564909 None CC BY-SA 3.0 32529149 \n33284974 None CC BY-SA 3.0 33259671 \n35611090 None CC BY-SA 3.0 35603707 \n36922809 None CC BY-SA 3.0 36922532 \n37288365 None CC BY-SA 3.0 37245595 \n41470962 None CC BY-SA 3.0 41467032 \n44950763 None CC BY-SA 3.0 44933724 ", - "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>Tags</th>\n <th>PostTypeId</th>\n <th>AcceptedAnswerId</th>\n <th>CreationDate</th>\n <th>Score</th>\n <th>ViewCount</th>\n <th>Body</th>\n <th>OwnerUserId</th>\n <th>LastEditorUserId</th>\n <th>LastEditorDisplayName</th>\n <th>LastEditDate</th>\n <th>Title</th>\n <th>AnswerCount</th>\n <th>CommentCount</th>\n <th>FavoriteCount</th>\n <th>CommunityOwnedDate</th>\n <th>ContentLicense</th>\n <th>ParentId</th>\n </tr>\n <tr>\n <th>PostId</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 <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>6930808</th>\n <td><python><django><django-models><django-admin><...</td>\n <td>2</td>\n <td>None</td>\n <td>2011-08-03T17:45:24.243</td>\n <td>1</td>\n <td>None</td>\n <td><p>Well, here's a work around since I can't fi...</td>\n <td>13009</td>\n <td>13009.0</td>\n <td>None</td>\n <td>2011-08-04T11:44:00.257</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>6913166</td>\n </tr>\n <tr>\n <th>45239952</th>\n <td><python><django><migration><django-migrations></td>\n <td>2</td>\n <td>None</td>\n <td>2017-07-21T14:15:08.280</td>\n <td>6</td>\n <td>None</td>\n <td><p>Looks like I just needed to get User the sa...</td>\n <td>13009</td>\n <td>13009.0</td>\n <td>None</td>\n <td>2017-07-21T19:13:22.417</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>45238835</td>\n </tr>\n <tr>\n <th>74335</th>\n <td><python><amazon></td>\n <td>2</td>\n <td>None</td>\n <td>2008-09-16T16:40:08.743</td>\n <td>2</td>\n <td>None</td>\n <td><p>pyaws seems to be the best one out there. ...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>48884</td>\n </tr>\n <tr>\n <th>94627</th>\n <td><python><user-interface><api></td>\n <td>2</td>\n <td>None</td>\n <td>2008-09-18T17:21:42.810</td>\n <td>3</td>\n <td>None</td>\n <td><p><a href=\"http://pythoncard.sourceforge.net/...</td>\n <td>13009</td>\n <td>216356.0</td>\n <td>None</td>\n <td>2012-08-09T19:47:56.843</td>\n <td>None</td>\n <td>None</td>\n <td>1</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>93930</td>\n </tr>\n <tr>\n <th>109724</th>\n <td><python><excel><xlwt><pyexcelerator></td>\n <td>2</td>\n <td>None</td>\n <td>2008-09-20T23:10:13.863</td>\n <td>2</td>\n <td>None</td>\n <td><p>Found example here: <a href=\"http://www.ans...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>1</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>108134</td>\n </tr>\n <tr>\n <th>207065</th>\n <td><python><ajax><screen-scraping><beautifulsoup></td>\n <td>2</td>\n <td>None</td>\n <td>2008-10-16T00:58:10.813</td>\n <td>0</td>\n <td>None</td>\n <td><p>This seems like it's a pretty common proble...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>1</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>206855</td>\n </tr>\n <tr>\n <th>207074</th>\n <td><python><soap><soap-client></td>\n <td>2</td>\n <td>None</td>\n <td>2008-10-16T01:00:24.800</td>\n <td>1</td>\n <td>None</td>\n <td><p>As I suggested <a href=\"https://stackoverfl...</td>\n <td>13009</td>\n <td>-1.0</td>\n <td>None</td>\n <td>2017-05-23T12:34:59.060</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>206154</td>\n </tr>\n <tr>\n <th>224014</th>\n <td><python><ruby><perl><text-parsing></td>\n <td>2</td>\n <td>None</td>\n <td>2008-10-22T00:03:23.323</td>\n <td>5</td>\n <td>None</td>\n <td><p><a href=\"http://pyparsing.wikispaces.com/\" ...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>223866</td>\n </tr>\n <tr>\n <th>273994</th>\n <td><python><programming-languages><python-3.x></td>\n <td>2</td>\n <td>None</td>\n <td>2008-11-07T23:29:44.590</td>\n <td>4</td>\n <td>None</td>\n <td><p>Wouldn't VB6 to VB.net be the biggest examp...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>3</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>273524</td>\n </tr>\n <tr>\n <th>302681</th>\n <td><python><simplehttpserver><embeddedwebserver></td>\n <td>2</td>\n <td>None</td>\n <td>2008-11-19T17:21:06.677</td>\n <td>0</td>\n <td>None</td>\n <td><p>I made this one. <a href=\"http://www.blend...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>302615</td>\n </tr>\n <tr>\n <th>338929</th>\n <td><python><indentation></td>\n <td>2</td>\n <td>None</td>\n <td>2008-12-03T22:10:01.007</td>\n <td>16</td>\n <td>None</td>\n <td><p>Python includes a script for the opposite (...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>2</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>338767</td>\n </tr>\n <tr>\n <th>350913</th>\n <td><python><django><django-forms></td>\n <td>2</td>\n <td>None</td>\n <td>2008-12-08T21:12:56.517</td>\n <td>40</td>\n <td>None</td>\n <td><p>I went ahead and answered my own question. ...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>2</td>\n <td>None</td>\n <td>2008-12-08T21:12:56.517</td>\n <td>CC BY-SA 2.5</td>\n <td>350799</td>\n </tr>\n <tr>\n <th>368859</th>\n <td><python><unicode><ascii><encode></td>\n <td>2</td>\n <td>None</td>\n <td>2008-12-15T16:10:11.413</td>\n <td>-3</td>\n <td>None</td>\n <td><p>This seems to work:</p>\\n\\n<pre><code>'add ...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>5</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>368805</td>\n </tr>\n <tr>\n <th>562280</th>\n <td><python><excel-2007></td>\n <td>2</td>\n <td>None</td>\n <td>2009-02-18T18:28:00.267</td>\n <td>0</td>\n <td>None</td>\n <td><p>May I humbly suggest my site; <a href=\"http...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>556967</td>\n </tr>\n <tr>\n <th>1166398</th>\n <td><python><newline><word-wrap></td>\n <td>2</td>\n <td>None</td>\n <td>2009-07-22T16:09:25.197</td>\n <td>1</td>\n <td>None</td>\n <td><p>It looks like it doesn't support that. Thi...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>1166317</td>\n </tr>\n <tr>\n <th>1423207</th>\n <td><python><frameworks><cgi><nearlyfreespeech></td>\n <td>2</td>\n <td>None</td>\n <td>2009-09-14T18:34:18.867</td>\n <td>2</td>\n <td>None</td>\n <td><p>I got web.py to work on nearly free speech ...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>1423041</td>\n </tr>\n <tr>\n <th>2726298</th>\n <td><python><xlwt><xlrd></td>\n <td>2</td>\n <td>None</td>\n <td>2010-04-28T01:30:54.397</td>\n <td>263</td>\n <td>None</td>\n <td><p>Here's some sample code I used recently to ...</td>\n <td>13009</td>\n <td>3801587.0</td>\n <td>None</td>\n <td>2019-11-04T13:44:52.230</td>\n <td>None</td>\n <td>None</td>\n <td>5</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 4.0</td>\n <td>2725852</td>\n </tr>\n <tr>\n <th>2883732</th>\n <td><python><sql-server><pyodbc><django-pyodbc></td>\n <td>2</td>\n <td>None</td>\n <td>2010-05-21T16:21:27.240</td>\n <td>10</td>\n <td>None</td>\n <td><p>Sorry, I asked too soon, <a href=\"http://co...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>2883722</td>\n </tr>\n <tr>\n <th>2973884</th>\n <td><python><windows><winapi><popen><long-running-...</td>\n <td>2</td>\n <td>None</td>\n <td>2010-06-04T12:04:23.607</td>\n <td>1</td>\n <td>None</td>\n <td><p>This almost works (<a href=\"http://docs.pyt...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>2970045</td>\n </tr>\n <tr>\n <th>2974177</th>\n <td><python><windows><winapi><popen><long-running-...</td>\n <td>2</td>\n <td>None</td>\n <td>2010-06-04T12:41:24.323</td>\n <td>7</td>\n <td>None</td>\n <td><p>Ok, I finally figured this out! This seems...</td>\n <td>13009</td>\n <td>726378.0</td>\n <td>None</td>\n <td>2017-07-28T04:22:46.813</td>\n <td>None</td>\n <td>None</td>\n <td>3</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>2970045</td>\n </tr>\n <tr>\n <th>3322769</th>\n <td><python><sqlalchemy><orm></td>\n <td>2</td>\n <td>None</td>\n <td>2010-07-23T22:11:43.417</td>\n <td>42</td>\n <td>None</td>\n <td><p>Ok I found it after further searching:</p>\\...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>2</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>3322337</td>\n </tr>\n <tr>\n <th>3364841</th>\n <td><python><session><timeout><sqlalchemy></td>\n <td>2</td>\n <td>None</td>\n <td>2010-07-29T16:31:24.073</td>\n <td>56</td>\n <td>None</td>\n <td><p>Whenever you create a new session in your c...</td>\n <td>13009</td>\n <td>972208.0</td>\n <td>None</td>\n <td>2012-03-18T02:57:48.600</td>\n <td>None</td>\n <td>None</td>\n <td>4</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>3360951</td>\n </tr>\n <tr>\n <th>3740202</th>\n <td><python><dictionary></td>\n <td>2</td>\n <td>None</td>\n <td>2010-09-18T02:57:15.853</td>\n <td>7</td>\n <td>None</td>\n <td><p>What you're describing in your edit is how ...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>3738381</td>\n </tr>\n <tr>\n <th>5037673</th>\n <td><python><serialization><pickle><inverted-index></td>\n <td>2</td>\n <td>None</td>\n <td>2011-02-18T04:37:27.133</td>\n <td>0</td>\n <td>None</td>\n <td><p>There's the other pickle library you could ...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>5037432</td>\n </tr>\n <tr>\n <th>5486539</th>\n <td><python><django><django-models><django-admin></td>\n <td>2</td>\n <td>None</td>\n <td>2011-03-30T12:54:01.637</td>\n <td>0</td>\n <td>None</td>\n <td><p>What I did to fix this is I dropped every t...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>5486018</td>\n </tr>\n <tr>\n <th>5501441</th>\n <td><python><xpath><elementtree></td>\n <td>2</td>\n <td>None</td>\n <td>2011-03-31T14:27:50.847</td>\n <td>56</td>\n <td>None</td>\n <td><p>Turns out I needed to say <code>target.find...</td>\n <td>13009</td>\n <td>3820025.0</td>\n <td>None</td>\n <td>2018-12-19T15:54:38.900</td>\n <td>None</td>\n <td>None</td>\n <td>2</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 4.0</td>\n <td>5501118</td>\n </tr>\n <tr>\n <th>5517355</th>\n <td><python><django><django-models></td>\n <td>2</td>\n <td>None</td>\n <td>2011-04-01T18:30:31.930</td>\n <td>3</td>\n <td>None</td>\n <td><p>Ahh, found it in another SO answer. Weird ...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>5517314</td>\n </tr>\n <tr>\n <th>5539724</th>\n <td><python><django><django-models></td>\n <td>2</td>\n <td>None</td>\n <td>2011-04-04T14:12:30.027</td>\n <td>1</td>\n <td>None</td>\n <td><p><code>__init__.py</code> in my project's di...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>5538814</td>\n </tr>\n <tr>\n <th>5912867</th>\n <td><python><apache><mod-wsgi><redhat><setuptools></td>\n <td>2</td>\n <td>None</td>\n <td>2011-05-06T14:28:54.537</td>\n <td>0</td>\n <td>None</td>\n <td><p>Oh well, instead of fooling with that, I to...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>5912701</td>\n </tr>\n <tr>\n <th>5979034</th>\n <td><python><django><django-models><django-admin></td>\n <td>2</td>\n <td>None</td>\n <td>2011-05-12T13:51:05.513</td>\n <td>-2</td>\n <td>None</td>\n <td><p><a href=\"http://www.answermysearches.com/fi...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>5486018</td>\n </tr>\n <tr>\n <th>6507098</th>\n <td><python><django><django-models><django-admin><...</td>\n <td>2</td>\n <td>None</td>\n <td>2011-06-28T13:20:49.480</td>\n <td>0</td>\n <td>None</td>\n <td><p>Ok, as a workaround I ended up defining a <...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>6497882</td>\n </tr>\n <tr>\n <th>7097823</th>\n <td><python><django><django-models></td>\n <td>2</td>\n <td>None</td>\n <td>2011-08-17T18:45:06.860</td>\n <td>3</td>\n <td>None</td>\n <td><p>get_or_create sounds busted to me. I'm jus...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>7097475</td>\n </tr>\n <tr>\n <th>7323959</th>\n <td><python><popen><subprocess></td>\n <td>2</td>\n <td>None</td>\n <td>2011-09-06T17:45:14.537</td>\n <td>8</td>\n <td>None</td>\n <td><p>Ok, I'm not sure why but this seems to work...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>2</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>7323859</td>\n </tr>\n <tr>\n <th>7999028</th>\n <td><python><linux><multithreading><threadpool></td>\n <td>2</td>\n <td>None</td>\n <td>2011-11-03T17:09:51.260</td>\n <td>0</td>\n <td>None</td>\n <td><p>Actually this does seem to be working. I s...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>7998850</td>\n </tr>\n <tr>\n <th>10047815</th>\n <td><python><django></td>\n <td>2</td>\n <td>None</td>\n <td>2012-04-06T18:46:30.720</td>\n <td>1</td>\n <td>None</td>\n <td><p><a href=\"https://stackoverflow.com/question...</td>\n <td>13009</td>\n <td>-1.0</td>\n <td>None</td>\n <td>2017-05-23T10:34:38.073</td>\n <td>None</td>\n <td>None</td>\n <td>2</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>10047387</td>\n </tr>\n <tr>\n <th>21140430</th>\n <td><python><jdbc><jpype><jaydebeapi></td>\n <td>2</td>\n <td>None</td>\n <td>2014-01-15T14:44:21.213</td>\n <td>5</td>\n <td>None</td>\n <td><p>Ok, thanks to eltabo and Juan Mellado I fig...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>3</td>\n <td>None</td>\n <td>2014-01-15T14:44:21.213</td>\n <td>CC BY-SA 3.0</td>\n <td>21027904</td>\n </tr>\n <tr>\n <th>23349566</th>\n <td><python><rpy2></td>\n <td>2</td>\n <td>None</td>\n <td>2014-04-28T19:26:54.797</td>\n <td>0</td>\n <td>None</td>\n <td><p>So I was trying to install this on a networ...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>23346270</td>\n </tr>\n <tr>\n <th>29807514</th>\n <td><python><curl><python-requests></td>\n <td>2</td>\n <td>None</td>\n <td>2015-04-22T19:53:07.763</td>\n <td>0</td>\n <td>None</td>\n <td><p>Ok, changing to response.content fixed it. ...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>3</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>29807249</td>\n </tr>\n <tr>\n <th>31146549</th>\n <td><python><flask><uwsgi></td>\n <td>2</td>\n <td>None</td>\n <td>2015-06-30T19:13:43.577</td>\n <td>7</td>\n <td>None</td>\n <td><p>Ok, @ipinak was on the right track. It loo...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>31146007</td>\n </tr>\n <tr>\n <th>31164662</th>\n <td><python><mongodb><uwsgi><mlab><pymongo-3.x></td>\n <td>2</td>\n <td>None</td>\n <td>2015-07-01T14:47:11.400</td>\n <td>14</td>\n <td>None</td>\n <td><p>I fixed it for myself by downgrading from p...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>3</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>31030307</td>\n </tr>\n <tr>\n <th>31482430</th>\n <td><python><nginx><flask><memcached><uwsgi></td>\n <td>2</td>\n <td>None</td>\n <td>2015-07-17T18:30:07.053</td>\n <td>0</td>\n <td>None</td>\n <td><p>This isn't a great answer, but I ended up u...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>31478409</td>\n </tr>\n <tr>\n <th>31516660</th>\n <td><python><memcached><libmemcached><pylibmc></td>\n <td>2</td>\n <td>None</td>\n <td>2015-07-20T12:34:33.923</td>\n <td>0</td>\n <td>None</td>\n <td><p>As far as I can tell it seems to work fine ...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>31482138</td>\n </tr>\n <tr>\n <th>32564909</th>\n <td><python><computer-vision><scikit-image><canny-...</td>\n <td>2</td>\n <td>None</td>\n <td>2015-09-14T12:31:51.097</td>\n <td>1</td>\n <td>None</td>\n <td><p>So the issue was with the canny function re...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>1</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>32529149</td>\n </tr>\n <tr>\n <th>33284974</th>\n <td><python><oracle><macos><cx-oracle><osx-elcapitan></td>\n <td>2</td>\n <td>None</td>\n <td>2015-10-22T15:36:24.507</td>\n <td>0</td>\n <td>None</td>\n <td><p>I think I fixed it. Basically everything i...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>33259671</td>\n </tr>\n <tr>\n <th>35611090</th>\n <td><python><django><celery><django-celery></td>\n <td>2</td>\n <td>None</td>\n <td>2016-02-24T19:18:36.617</td>\n <td>0</td>\n <td>None</td>\n <td><p>After tooling around for a while and trying...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>35603707</td>\n </tr>\n <tr>\n <th>36922809</th>\n <td><python><static-methods><python-decorators><fu...</td>\n <td>2</td>\n <td>None</td>\n <td>2016-04-28T18:32:49.863</td>\n <td>2</td>\n <td>None</td>\n <td><p>There's probably a smarter way to do it but...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>36922532</td>\n </tr>\n <tr>\n <th>37288365</th>\n <td><python><python-2.7><unicode><subprocess></td>\n <td>2</td>\n <td>None</td>\n <td>2016-05-18T00:36:59.467</td>\n <td>1</td>\n <td>None</td>\n <td><p>Wow, this was the weirdest issue ever but I...</td>\n <td>13009</td>\n <td>-1.0</td>\n <td>None</td>\n <td>2017-05-23T11:44:09.133</td>\n <td>None</td>\n <td>None</td>\n <td>1</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>37245595</td>\n </tr>\n <tr>\n <th>41470962</th>\n <td><python><logging></td>\n <td>2</td>\n <td>None</td>\n <td>2017-01-04T18:37:01.457</td>\n <td>1</td>\n <td>None</td>\n <td><p>Here's what I ended up going with. But I'm...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>41467032</td>\n </tr>\n <tr>\n <th>44950763</th>\n <td><python><django><django-models><django-authent...</td>\n <td>2</td>\n <td>None</td>\n <td>2017-07-06T13:45:42.037</td>\n <td>2</td>\n <td>None</td>\n <td><p>As @adrien mentioned in the comment, that w...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>44933724</td>\n </tr>\n </tbody>\n</table>\n</div>" - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "answers_df = pd.read_sql_query(f\"\"\"\n", - " SELECT A.Tags, B.*\n", - " FROM Post A\n", - " INNER JOIN Post B ON (B.ParentId = A.PostId) AND (B.ParentId IS NOT NULL)\n", - " WHERE A.Tags LIKE '%python%' AND (B.PostTypeId = 2) AND ((B.LastEditorUserId = {user_id}) OR (B.OwnerUserId = {user_id}))\n", - "\"\"\", db)\n", - "answers_df = answers_df.loc[:,~answers_df.columns.duplicated()].copy()\n", - "answers_df.set_index('PostId', inplace=True)\n", - "answers_df" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": 20, - "outputs": [ - { - "data": { - "text/plain": " Tags PostId Score \\\nCommentId \n857928 <python><subprocess><pipe><echo><popen> 1046474 0 \n1513319 <python><django><forms><django-forms> 1640204 0 \n3029786 <python><windows><winapi><popen><long-running-... 2970045 0 \n3421734 <python><permissions><authorization><decorator... 3302844 0 \n6330991 <python><django><django-models><decimal><scien... 5566121 0 \n6331285 <python><django><django-models><decimal><scien... 5566121 0 \n6774887 <python><database><migration><django-south> 5833418 4 \n8234046 <python><django><django-models><django-admin><... 6913166 1 \n8234115 <python><string-formatting><number-formatting>... 6913532 32 \n8235637 <python><django><django-models><django-admin><... 6913166 0 \n8239108 <python><django><django-models><django-admin><... 6913166 0 \n8257824 <python><django><django-models><django-admin><... 6913166 0 \n8499177 <python><django><django-models> 7097475 0 \n10657798 <python><excel><xlwt> 8590741 0 \n10796244 <python><excel><xlwt> 8590741 0 \n11245320 <python> 8976324 0 \n11245634 <python> 8976324 0 \n12490216 <python><django><django-models><django-admin> 9806936 0 \n32554534 <python><django><django-forms><django-admin><d... 19807757 0 \n32567053 <python><django><django-forms><django-admin><d... 19807757 0 \n36034593 <python><numpy> 23497706 0 \n36034937 <python><numpy> 23497706 0 \n36041765 <python><numpy> 23500754 0 \n47738961 <python><python-requests> 29775247 1 \n47742802 <python><curl><python-requests> 29807249 0 \n47743040 <python><curl><python-requests> 29807249 0 \n48550940 <python><matplotlib> 30223161 0 \n48551405 <python><matplotlib> 30223161 0 \n50303593 <python><mongodb><uwsgi><mlab><pymongo-3.x> 31030307 2 \n50336702 <python><mongodb><uwsgi><mlab><pymongo-3.x> 31030307 1 \n50337057 <python><mongodb><uwsgi><mlab><pymongo-3.x> 31030307 0 \n50376360 <python><mongodb><uwsgi><mlab><pymongo-3.x> 31030307 0 \n54364203 <python><oracle><macos><cx-oracle><osx-elcapitan> 33259671 0 \n58665815 <python><django><celery><django-celery> 35486011 0 \n58894206 <python><django><celery><django-celery> 35603707 0 \n62020862 <python><python-2.7><unicode><subprocess> 37245595 0 \n62020942 <python><python-2.7><unicode><subprocess> 37245595 0 \n62020963 <python><python-2.7><unicode><subprocess> 37245595 0 \n68427097 <python><mocking><generator><python-unittest><... 40595679 0 \n70139817 <python><logging> 41467032 0 \n70435606 <python><postgresql><psycopg2><psycopg> 41616578 0 \n76846070 <python><django><django-models><django-authent... 44933724 0 \n77453798 <python><django><migration><django-migrations> 45238835 0 \n77456266 <python><django><migration><django-migrations> 45238835 0 \n80880518 <python><django> 46960782 0 \n\n Body \\\nCommentId \n857928 Yes, it runs from the windows dos console. \n1513319 lemonad, this would be at form creation time, ... \n3029786 Here are a few windows API commands that look ... \n3421734 I don't think I want to use anything built-in.... \n6330991 4.08E+13 has two decimal places, I'm allowing ... \n6331285 I followed those instructions. I've tried all... \n6774887 It's going to be pretty critical data, and hon... \n8234046 I'm thinking I need to make a custom model fie... \n8234115 nah, not at all. I wanted to separate this int... \n8235637 I'm not seeing much action on this thread. I ... \n8239108 I'm not seeing much action on the Django users... \n8257824 IRC seems to be down. No luck there either. \n8499177 @agf. I don't understand what the resolution ... \n10657798 Well, after playing around, the first number i... \n10796244 Thanks for the answers everyone. If anyone is... \n11245320 @Cameron, so you're saying something I import ... \n11245634 Thanks everyone. If anyone wants to post this... \n12490216 @jpic, that's interesting but it's probably ov... \n32554534 I'm coming across the exact same problem. I a... \n32567053 I put an updated question more inline with wha... \n36034593 I was thinking I could reference just the firs... \n36034937 hmm, I can access the first column with array[... \n36041765 hmm, I just ran the code from your answer. Do... \n47738961 @sigmavirus24, that's right I don't want to lo... \n47742802 Yeah, the requests.get step is instant, so I g... \n47743040 That was absolutely the issue. Thanks! Changi... \n48550940 Thanks for the suggestion. what does zlim do?... \n48551405 Thanks. I guess I don't understand what the h... \n50303593 I'm hitting this too on a similar setup. Did ... \n50336702 Want me to start a bounty? Would you be avail... \n50337057 Is this useful? http://blog.fejes.ca/?p=2496 ... \n50376360 Thanks Jesse, I guess we couldn't tell if it w... \n54364203 Thanks. I believe the fix_oralib.rb also does... \n58665815 @zsepi, I updated the question with those. \n58894206 It set's to write to a specified file, and ema... \n62020862 @tdelaney, did you try it on osx? It actually... \n62020942 I tried redirecting to a file and it still out... \n62020963 @tdelaney, I think you're right, it's probably... \n68427097 Good point. I took that line out. Same issue... \n70139817 I have 'A' and 'B' configured elsewhere to do ... \n70435606 I want to do everything in memory. All the do... \n76846070 Thanks. I didn't notice that. Taking it out ... \n77453798 I was wondering about that. But how would I c... \n77456266 That actually fixed my problem. \n80880518 @Jiaaro, thanks, but just tried it and no impr... \n\n CreationDate UserId ContentLicense \nCommentId \n857928 2009-06-25T22:15:13.437 13009 CC BY-SA 2.5 \n1513319 2009-10-29T12:44:20.160 13009 CC BY-SA 2.5 \n3029786 2010-06-03T22:10:42.643 13009 CC BY-SA 2.5 \n3421734 2010-07-21T19:14:03.313 13009 CC BY-SA 2.5 \n6330991 2011-04-06T12:26:33.123 13009 CC BY-SA 2.5 \n6331285 2011-04-06T12:43:15.377 13009 CC BY-SA 2.5 \n6774887 2011-05-04T20:00:35.997 13009 CC BY-SA 3.0 \n8234046 2011-08-02T14:23:53.283 13009 CC BY-SA 3.0 \n8234115 2011-08-02T14:26:37.263 13009 CC BY-SA 3.0 \n8235637 2011-08-02T15:36:12.527 13009 CC BY-SA 3.0 \n8239108 2011-08-02T18:48:59.337 13009 CC BY-SA 3.0 \n8257824 2011-08-03T16:59:56.540 13009 CC BY-SA 3.0 \n8499177 2011-08-17T18:43:55.627 13009 CC BY-SA 3.0 \n10657798 2011-12-21T15:30:22.113 13009 CC BY-SA 3.0 \n10796244 2011-12-30T19:08:28.063 13009 CC BY-SA 3.0 \n11245320 2012-01-23T18:14:14.870 13009 CC BY-SA 3.0 \n11245634 2012-01-23T18:28:32.813 13009 CC BY-SA 3.0 \n12490216 2012-03-21T15:00:45.163 13009 CC BY-SA 3.0 \n32554534 2014-02-04T15:05:23.023 13009 CC BY-SA 3.0 \n32567053 2014-02-04T20:26:56.147 13009 CC BY-SA 3.0 \n36034593 2014-05-06T14:42:07.190 13009 CC BY-SA 3.0 \n36034937 2014-05-06T14:49:57.347 13009 CC BY-SA 3.0 \n36041765 2014-05-06T17:47:18.563 13009 CC BY-SA 3.0 \n47738961 2015-04-22T18:04:58.213 13009 CC BY-SA 3.0 \n47742802 2015-04-22T19:45:33.083 13009 CC BY-SA 3.0 \n47743040 2015-04-22T19:52:21.247 13009 CC BY-SA 3.0 \n48550940 2015-05-13T19:22:13.533 13009 CC BY-SA 3.0 \n48551405 2015-05-13T19:36:25.690 13009 CC BY-SA 3.0 \n50303593 2015-06-30T19:18:02.697 13009 CC BY-SA 3.0 \n50336702 2015-07-01T14:27:34.823 13009 CC BY-SA 3.0 \n50337057 2015-07-01T14:35:16.503 13009 CC BY-SA 3.0 \n50376360 2015-07-02T13:09:14.617 13009 CC BY-SA 3.0 \n54364203 2015-10-22T13:16:49.317 13009 CC BY-SA 3.0 \n58665815 2016-02-18T15:55:59.940 13009 CC BY-SA 3.0 \n58894206 2016-02-24T14:29:13.990 13009 CC BY-SA 3.0 \n62020862 2016-05-16T03:06:55.457 13009 CC BY-SA 3.0 \n62020942 2016-05-16T03:13:12.050 13009 CC BY-SA 3.0 \n62020963 2016-05-16T03:14:39.700 13009 CC BY-SA 3.0 \n68427097 2016-11-14T18:52:50.053 13009 CC BY-SA 3.0 \n70139817 2017-01-04T15:15:07.183 13009 CC BY-SA 3.0 \n70435606 2017-01-12T15:37:23.967 13009 CC BY-SA 3.0 \n76846070 2017-07-05T20:00:37.840 13009 CC BY-SA 3.0 \n77453798 2017-07-21T17:54:41.707 13009 CC BY-SA 3.0 \n77456266 2017-07-21T19:11:37.543 13009 CC BY-SA 3.0 \n80880518 2017-10-27T02:20:12.973 13009 CC BY-SA 3.0 ", - "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>Tags</th>\n <th>PostId</th>\n <th>Score</th>\n <th>Body</th>\n <th>CreationDate</th>\n <th>UserId</th>\n <th>ContentLicense</th>\n </tr>\n <tr>\n <th>CommentId</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>857928</th>\n <td><python><subprocess><pipe><echo><popen></td>\n <td>1046474</td>\n <td>0</td>\n <td>Yes, it runs from the windows dos console.</td>\n <td>2009-06-25T22:15:13.437</td>\n <td>13009</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>1513319</th>\n <td><python><django><forms><django-forms></td>\n <td>1640204</td>\n <td>0</td>\n <td>lemonad, this would be at form creation time, ...</td>\n <td>2009-10-29T12:44:20.160</td>\n <td>13009</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>3029786</th>\n <td><python><windows><winapi><popen><long-running-...</td>\n <td>2970045</td>\n <td>0</td>\n <td>Here are a few windows API commands that look ...</td>\n <td>2010-06-03T22:10:42.643</td>\n <td>13009</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>3421734</th>\n <td><python><permissions><authorization><decorator...</td>\n <td>3302844</td>\n <td>0</td>\n <td>I don't think I want to use anything built-in....</td>\n <td>2010-07-21T19:14:03.313</td>\n <td>13009</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>6330991</th>\n <td><python><django><django-models><decimal><scien...</td>\n <td>5566121</td>\n <td>0</td>\n <td>4.08E+13 has two decimal places, I'm allowing ...</td>\n <td>2011-04-06T12:26:33.123</td>\n <td>13009</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>6331285</th>\n <td><python><django><django-models><decimal><scien...</td>\n <td>5566121</td>\n <td>0</td>\n <td>I followed those instructions. I've tried all...</td>\n <td>2011-04-06T12:43:15.377</td>\n <td>13009</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>6774887</th>\n <td><python><database><migration><django-south></td>\n <td>5833418</td>\n <td>4</td>\n <td>It's going to be pretty critical data, and hon...</td>\n <td>2011-05-04T20:00:35.997</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>8234046</th>\n <td><python><django><django-models><django-admin><...</td>\n <td>6913166</td>\n <td>1</td>\n <td>I'm thinking I need to make a custom model fie...</td>\n <td>2011-08-02T14:23:53.283</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>8234115</th>\n <td><python><string-formatting><number-formatting>...</td>\n <td>6913532</td>\n <td>32</td>\n <td>nah, not at all. I wanted to separate this int...</td>\n <td>2011-08-02T14:26:37.263</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>8235637</th>\n <td><python><django><django-models><django-admin><...</td>\n <td>6913166</td>\n <td>0</td>\n <td>I'm not seeing much action on this thread. I ...</td>\n <td>2011-08-02T15:36:12.527</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>8239108</th>\n <td><python><django><django-models><django-admin><...</td>\n <td>6913166</td>\n <td>0</td>\n <td>I'm not seeing much action on the Django users...</td>\n <td>2011-08-02T18:48:59.337</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>8257824</th>\n <td><python><django><django-models><django-admin><...</td>\n <td>6913166</td>\n <td>0</td>\n <td>IRC seems to be down. No luck there either.</td>\n <td>2011-08-03T16:59:56.540</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>8499177</th>\n <td><python><django><django-models></td>\n <td>7097475</td>\n <td>0</td>\n <td>@agf. I don't understand what the resolution ...</td>\n <td>2011-08-17T18:43:55.627</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>10657798</th>\n <td><python><excel><xlwt></td>\n <td>8590741</td>\n <td>0</td>\n <td>Well, after playing around, the first number i...</td>\n <td>2011-12-21T15:30:22.113</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>10796244</th>\n <td><python><excel><xlwt></td>\n <td>8590741</td>\n <td>0</td>\n <td>Thanks for the answers everyone. If anyone is...</td>\n <td>2011-12-30T19:08:28.063</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>11245320</th>\n <td><python></td>\n <td>8976324</td>\n <td>0</td>\n <td>@Cameron, so you're saying something I import ...</td>\n <td>2012-01-23T18:14:14.870</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>11245634</th>\n <td><python></td>\n <td>8976324</td>\n <td>0</td>\n <td>Thanks everyone. If anyone wants to post this...</td>\n <td>2012-01-23T18:28:32.813</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>12490216</th>\n <td><python><django><django-models><django-admin></td>\n <td>9806936</td>\n <td>0</td>\n <td>@jpic, that's interesting but it's probably ov...</td>\n <td>2012-03-21T15:00:45.163</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>32554534</th>\n <td><python><django><django-forms><django-admin><d...</td>\n <td>19807757</td>\n <td>0</td>\n <td>I'm coming across the exact same problem. I a...</td>\n <td>2014-02-04T15:05:23.023</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>32567053</th>\n <td><python><django><django-forms><django-admin><d...</td>\n <td>19807757</td>\n <td>0</td>\n <td>I put an updated question more inline with wha...</td>\n <td>2014-02-04T20:26:56.147</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>36034593</th>\n <td><python><numpy></td>\n <td>23497706</td>\n <td>0</td>\n <td>I was thinking I could reference just the firs...</td>\n <td>2014-05-06T14:42:07.190</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>36034937</th>\n <td><python><numpy></td>\n <td>23497706</td>\n <td>0</td>\n <td>hmm, I can access the first column with array[...</td>\n <td>2014-05-06T14:49:57.347</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>36041765</th>\n <td><python><numpy></td>\n <td>23500754</td>\n <td>0</td>\n <td>hmm, I just ran the code from your answer. Do...</td>\n <td>2014-05-06T17:47:18.563</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>47738961</th>\n <td><python><python-requests></td>\n <td>29775247</td>\n <td>1</td>\n <td>@sigmavirus24, that's right I don't want to lo...</td>\n <td>2015-04-22T18:04:58.213</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>47742802</th>\n <td><python><curl><python-requests></td>\n <td>29807249</td>\n <td>0</td>\n <td>Yeah, the requests.get step is instant, so I g...</td>\n <td>2015-04-22T19:45:33.083</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>47743040</th>\n <td><python><curl><python-requests></td>\n <td>29807249</td>\n <td>0</td>\n <td>That was absolutely the issue. Thanks! Changi...</td>\n <td>2015-04-22T19:52:21.247</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>48550940</th>\n <td><python><matplotlib></td>\n <td>30223161</td>\n <td>0</td>\n <td>Thanks for the suggestion. what does zlim do?...</td>\n <td>2015-05-13T19:22:13.533</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>48551405</th>\n <td><python><matplotlib></td>\n <td>30223161</td>\n <td>0</td>\n <td>Thanks. I guess I don't understand what the h...</td>\n <td>2015-05-13T19:36:25.690</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>50303593</th>\n <td><python><mongodb><uwsgi><mlab><pymongo-3.x></td>\n <td>31030307</td>\n <td>2</td>\n <td>I'm hitting this too on a similar setup. Did ...</td>\n <td>2015-06-30T19:18:02.697</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>50336702</th>\n <td><python><mongodb><uwsgi><mlab><pymongo-3.x></td>\n <td>31030307</td>\n <td>1</td>\n <td>Want me to start a bounty? Would you be avail...</td>\n <td>2015-07-01T14:27:34.823</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>50337057</th>\n <td><python><mongodb><uwsgi><mlab><pymongo-3.x></td>\n <td>31030307</td>\n <td>0</td>\n <td>Is this useful? http://blog.fejes.ca/?p=2496 ...</td>\n <td>2015-07-01T14:35:16.503</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>50376360</th>\n <td><python><mongodb><uwsgi><mlab><pymongo-3.x></td>\n <td>31030307</td>\n <td>0</td>\n <td>Thanks Jesse, I guess we couldn't tell if it w...</td>\n <td>2015-07-02T13:09:14.617</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>54364203</th>\n <td><python><oracle><macos><cx-oracle><osx-elcapitan></td>\n <td>33259671</td>\n <td>0</td>\n <td>Thanks. I believe the fix_oralib.rb also does...</td>\n <td>2015-10-22T13:16:49.317</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>58665815</th>\n <td><python><django><celery><django-celery></td>\n <td>35486011</td>\n <td>0</td>\n <td>@zsepi, I updated the question with those.</td>\n <td>2016-02-18T15:55:59.940</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>58894206</th>\n <td><python><django><celery><django-celery></td>\n <td>35603707</td>\n <td>0</td>\n <td>It set's to write to a specified file, and ema...</td>\n <td>2016-02-24T14:29:13.990</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>62020862</th>\n <td><python><python-2.7><unicode><subprocess></td>\n <td>37245595</td>\n <td>0</td>\n <td>@tdelaney, did you try it on osx? It actually...</td>\n <td>2016-05-16T03:06:55.457</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>62020942</th>\n <td><python><python-2.7><unicode><subprocess></td>\n <td>37245595</td>\n <td>0</td>\n <td>I tried redirecting to a file and it still out...</td>\n <td>2016-05-16T03:13:12.050</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>62020963</th>\n <td><python><python-2.7><unicode><subprocess></td>\n <td>37245595</td>\n <td>0</td>\n <td>@tdelaney, I think you're right, it's probably...</td>\n <td>2016-05-16T03:14:39.700</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>68427097</th>\n <td><python><mocking><generator><python-unittest><...</td>\n <td>40595679</td>\n <td>0</td>\n <td>Good point. I took that line out. Same issue...</td>\n <td>2016-11-14T18:52:50.053</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>70139817</th>\n <td><python><logging></td>\n <td>41467032</td>\n <td>0</td>\n <td>I have 'A' and 'B' configured elsewhere to do ...</td>\n <td>2017-01-04T15:15:07.183</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>70435606</th>\n <td><python><postgresql><psycopg2><psycopg></td>\n <td>41616578</td>\n <td>0</td>\n <td>I want to do everything in memory. All the do...</td>\n <td>2017-01-12T15:37:23.967</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>76846070</th>\n <td><python><django><django-models><django-authent...</td>\n <td>44933724</td>\n <td>0</td>\n <td>Thanks. I didn't notice that. Taking it out ...</td>\n <td>2017-07-05T20:00:37.840</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>77453798</th>\n <td><python><django><migration><django-migrations></td>\n <td>45238835</td>\n <td>0</td>\n <td>I was wondering about that. But how would I c...</td>\n <td>2017-07-21T17:54:41.707</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>77456266</th>\n <td><python><django><migration><django-migrations></td>\n <td>45238835</td>\n <td>0</td>\n <td>That actually fixed my problem.</td>\n <td>2017-07-21T19:11:37.543</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>80880518</th>\n <td><python><django></td>\n <td>46960782</td>\n <td>0</td>\n <td>@Jiaaro, thanks, but just tried it and no impr...</td>\n <td>2017-10-27T02:20:12.973</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n </tbody>\n</table>\n</div>" - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "comments_on_questions_df = pd.read_sql_query(f\"\"\"\n", - " SELECT A.Tags, B.*\n", - " FROM Post A\n", - " INNER JOIN Comment B ON (B.PostId = A.PostId)\n", - " WHERE A.Tags LIKE '%python%' AND (B.UserId = {user_id}) AND (A.PostTypeId = 1)\n", - "\"\"\", db)\n", - "comments_on_questions_df.set_index('CommentId', inplace=True)\n", - "comments_on_questions_df" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": 21, - "outputs": [ - { - "data": { - "text/plain": " Tags PostId Score \\\nCommentId \n27452 <python><memory-management><short> 120454 0 \n30223 <python> 125052 0 \n63505 <python> 92318 0 \n124749 <python><mysql><database><deadlock> 270449 0 \n124761 <python><mysql><database><deadlock> 270492 0 \n... ... ... ... \n68725297 <python><subprocess><fork> 40749648 0 \n68725576 <python><subprocess><fork> 40749648 1 \n70480473 <python><postgresql><psycopg2><psycopg> 41623932 0 \n70641464 <python><django><testing><sqlite> 1203379 0 \n79329507 <python> 13091300 9 \n\n Body \\\nCommentId \n27452 Can I use IIBTree without installing all of Zo... \n30223 Keep in mind there are some unpythonic idioms ... \n63505 What about iterators exactly? \n124749 That would just cause a OperationalError: (120... \n124761 How would I make sure they run at exactly the ... \n... ... \n68725297 Follow up question. What if the child finishe... \n68725576 Excellent thanks! From your article, I guess ... \n70480473 Yes, I verified that worked to remove the quot... \n70641464 @bstpierre, how did you force transaction supp... \n79329507 Only problem with this is I get code lint warn... \n\n CreationDate UserId ContentLicense \nCommentId \n27452 2008-09-23T16:48:24.133 13009 CC BY-SA 2.5 \n30223 2008-09-24T14:02:17.330 13009 CC BY-SA 2.5 \n63505 2008-10-08T01:43:15.823 13009 CC BY-SA 2.5 \n124749 2008-11-06T22:10:52.610 13009 CC BY-SA 2.5 \n124761 2008-11-06T22:12:43.137 13009 CC BY-SA 2.5 \n... ... ... ... \n68725297 2016-11-22T19:04:27.827 13009 CC BY-SA 3.0 \n68725576 2016-11-22T19:13:12.043 13009 CC BY-SA 3.0 \n70480473 2017-01-13T17:35:23.640 13009 CC BY-SA 3.0 \n70641464 2017-01-18T15:34:03.417 13009 CC BY-SA 3.0 \n79329507 2017-09-12T18:41:40.393 13009 CC BY-SA 3.0 \n\n[99 rows x 7 columns]", - "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>Tags</th>\n <th>PostId</th>\n <th>Score</th>\n <th>Body</th>\n <th>CreationDate</th>\n <th>UserId</th>\n <th>ContentLicense</th>\n </tr>\n <tr>\n <th>CommentId</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>27452</th>\n <td><python><memory-management><short></td>\n <td>120454</td>\n <td>0</td>\n <td>Can I use IIBTree without installing all of Zo...</td>\n <td>2008-09-23T16:48:24.133</td>\n <td>13009</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>30223</th>\n <td><python></td>\n <td>125052</td>\n <td>0</td>\n <td>Keep in mind there are some unpythonic idioms ...</td>\n <td>2008-09-24T14:02:17.330</td>\n <td>13009</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>63505</th>\n <td><python></td>\n <td>92318</td>\n <td>0</td>\n <td>What about iterators exactly?</td>\n <td>2008-10-08T01:43:15.823</td>\n <td>13009</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>124749</th>\n <td><python><mysql><database><deadlock></td>\n <td>270449</td>\n <td>0</td>\n <td>That would just cause a OperationalError: (120...</td>\n <td>2008-11-06T22:10:52.610</td>\n <td>13009</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>124761</th>\n <td><python><mysql><database><deadlock></td>\n <td>270492</td>\n <td>0</td>\n <td>How would I make sure they run at exactly the ...</td>\n <td>2008-11-06T22:12:43.137</td>\n <td>13009</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>68725297</th>\n <td><python><subprocess><fork></td>\n <td>40749648</td>\n <td>0</td>\n <td>Follow up question. What if the child finishe...</td>\n <td>2016-11-22T19:04:27.827</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>68725576</th>\n <td><python><subprocess><fork></td>\n <td>40749648</td>\n <td>1</td>\n <td>Excellent thanks! From your article, I guess ...</td>\n <td>2016-11-22T19:13:12.043</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>70480473</th>\n <td><python><postgresql><psycopg2><psycopg></td>\n <td>41623932</td>\n <td>0</td>\n <td>Yes, I verified that worked to remove the quot...</td>\n <td>2017-01-13T17:35:23.640</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>70641464</th>\n <td><python><django><testing><sqlite></td>\n <td>1203379</td>\n <td>0</td>\n <td>@bstpierre, how did you force transaction supp...</td>\n <td>2017-01-18T15:34:03.417</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>79329507</th>\n <td><python></td>\n <td>13091300</td>\n <td>9</td>\n <td>Only problem with this is I get code lint warn...</td>\n <td>2017-09-12T18:41:40.393</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n </tbody>\n</table>\n<p>99 rows × 7 columns</p>\n</div>" - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "comments_on_answers_df = pd.read_sql_query(f\"\"\"\n", - " SELECT A.Tags, C.*\n", - " FROM Post A\n", - " INNER JOIN Post B ON (B.ParentId = A.PostId) AND (B.ParentId IS NOT NULL)\n", - " INNER JOIN Comment C ON (B.PostId = C.PostId)\n", - " WHERE A.Tags LIKE '%python%' AND (C.UserId = {user_id}) AND (B.PostTypeId = 2)\n", - "\"\"\", db)\n", - "comments_on_answers_df.set_index('CommentId', inplace=True)\n", - "comments_on_answers_df" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": 22, - "outputs": [], - "source": [ - "from post_embedding_builder import Import" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": 23, - "outputs": [], - "source": [ - "from static_graph_construction import StaticGraphConstruction" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "markdown", - "source": [ - "Let's construct the heterogenous graph" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": 24, - "outputs": [], - "source": [ - "comments_df = pd.concat([comments_on_questions_df, comments_on_answers_df])" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": 27, - "outputs": [], - "source": [ - "graph_constructor = StaticGraphConstruction()" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": 26, - "outputs": [ - { - "ename": "KeyboardInterrupt", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001B[1;31m---------------------------------------------------------------------------\u001B[0m", - "\u001B[1;31mKeyboardInterrupt\u001B[0m Traceback (most recent call last)", - "Cell \u001B[1;32mIn [26], line 3\u001B[0m\n\u001B[0;32m 1\u001B[0m \u001B[38;5;28;01mimport\u001B[39;00m \u001B[38;5;21;01mtorch_geometric\u001B[39;00m\u001B[38;5;21;01m.\u001B[39;00m\u001B[38;5;21;01mtransforms\u001B[39;00m \u001B[38;5;28;01mas\u001B[39;00m \u001B[38;5;21;01mT\u001B[39;00m\n\u001B[0;32m 2\u001B[0m graph_constructor \u001B[38;5;241m=\u001B[39m StaticGraphConstruction()\n\u001B[1;32m----> 3\u001B[0m graph_out \u001B[38;5;241m=\u001B[39m \u001B[43mgraph_constructor\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mconstruct\u001B[49m\u001B[43m(\u001B[49m\u001B[43mquestions_df\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43manswers_df\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mcomments_df\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 4\u001B[0m \u001B[38;5;66;03m#graph_out['module'].x = torch.empty(0, 110, dtype=torch.long)\u001B[39;00m\n\u001B[0;32m 5\u001B[0m graph_out\n", - "File \u001B[1;32m~\\Documents\\graph4stackoverflow\\embeddings\\static_graph_construction.py:120\u001B[0m, in \u001B[0;36mStaticGraphConstruction.construct\u001B[1;34m(self, questions, answers, comments)\u001B[0m\n\u001B[0;32m 114\u001B[0m comments \u001B[38;5;241m=\u001B[39m comments\u001B[38;5;241m.\u001B[39mhead(\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_post_count_limit)\n\u001B[0;32m 116\u001B[0m \u001B[38;5;66;03m# questions.reset_index(inplace=True)\u001B[39;00m\n\u001B[0;32m 117\u001B[0m \u001B[38;5;66;03m# answers.reset_index(inplace=True)\u001B[39;00m\n\u001B[0;32m 118\u001B[0m \u001B[38;5;66;03m# comments.reset_index(inplace=True)\u001B[39;00m\n\u001B[1;32m--> 120\u001B[0m question_nodes \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;43mlist\u001B[39;49m\u001B[43m(\u001B[49m\u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mprocess_questions\u001B[49m\u001B[43m(\u001B[49m\u001B[43mquestions\u001B[49m\u001B[43m)\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 121\u001B[0m answer_nodes \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mlist\u001B[39m(\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mprocess_answers(answers))\n\u001B[0;32m 122\u001B[0m comment_nodes \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mlist\u001B[39m(\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mprocess_comments(comments))\n", - "File \u001B[1;32m~\\Documents\\graph4stackoverflow\\embeddings\\static_graph_construction.py:39\u001B[0m, in \u001B[0;36mStaticGraphConstruction.process_questions\u001B[1;34m(self, questions)\u001B[0m\n\u001B[0;32m 38\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m \u001B[38;5;21mprocess_questions\u001B[39m(\u001B[38;5;28mself\u001B[39m, questions: pd\u001B[38;5;241m.\u001B[39mDataFrame) \u001B[38;5;241m-\u001B[39m\u001B[38;5;241m>\u001B[39m torch\u001B[38;5;241m.\u001B[39mTensor:\n\u001B[1;32m---> 39\u001B[0m word_embedding, code_embedding, modules \u001B[38;5;241m=\u001B[39m \u001B[43mStaticGraphConstruction\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mpost_embedding_builder\u001B[49m\u001B[43m(\u001B[49m\u001B[43mquestions\u001B[49m\u001B[43m[\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mBody\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m]\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43m_use_bert\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mquestions\u001B[49m\u001B[43m[\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mTitle\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m]\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 40\u001B[0m \u001B[38;5;28;01mfor\u001B[39;00m i, body, title, tags \u001B[38;5;129;01min\u001B[39;00m questions[[\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mBody\u001B[39m\u001B[38;5;124m'\u001B[39m, \u001B[38;5;124m'\u001B[39m\u001B[38;5;124mTitle\u001B[39m\u001B[38;5;124m'\u001B[39m, \u001B[38;5;124m'\u001B[39m\u001B[38;5;124mTags\u001B[39m\u001B[38;5;124m'\u001B[39m]]\u001B[38;5;241m.\u001B[39mitertuples():\n\u001B[0;32m 42\u001B[0m modules \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mprocess_module_names(modules)\n", - "File \u001B[1;32m~\\Documents\\graph4stackoverflow\\venv\\lib\\site-packages\\torch\\nn\\modules\\module.py:1190\u001B[0m, in \u001B[0;36mModule._call_impl\u001B[1;34m(self, *input, **kwargs)\u001B[0m\n\u001B[0;32m 1186\u001B[0m \u001B[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001B[39;00m\n\u001B[0;32m 1187\u001B[0m \u001B[38;5;66;03m# this function, and just call forward.\u001B[39;00m\n\u001B[0;32m 1188\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m (\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_backward_hooks \u001B[38;5;129;01mor\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_forward_hooks \u001B[38;5;129;01mor\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_forward_pre_hooks \u001B[38;5;129;01mor\u001B[39;00m _global_backward_hooks\n\u001B[0;32m 1189\u001B[0m \u001B[38;5;129;01mor\u001B[39;00m _global_forward_hooks \u001B[38;5;129;01mor\u001B[39;00m _global_forward_pre_hooks):\n\u001B[1;32m-> 1190\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[43mforward_call\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;28;43minput\u001B[39;49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[43mkwargs\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 1191\u001B[0m \u001B[38;5;66;03m# Do not call functions when jit is used\u001B[39;00m\n\u001B[0;32m 1192\u001B[0m full_backward_hooks, non_full_backward_hooks \u001B[38;5;241m=\u001B[39m [], []\n", - "File \u001B[1;32m~\\Documents\\graph4stackoverflow\\embeddings\\post_embedding_builder.py:64\u001B[0m, in \u001B[0;36mPostEmbedding.forward\u001B[1;34m(self, html_batch, use_bert, title_batch)\u001B[0m\n\u001B[0;32m 62\u001B[0m t1 \u001B[38;5;241m=\u001B[39m time\u001B[38;5;241m.\u001B[39mtime()\n\u001B[0;32m 63\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m use_bert:\n\u001B[1;32m---> 64\u001B[0m para_emb \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mto_bert_embedding\u001B[49m\u001B[43m(\u001B[49m\u001B[43m[\u001B[49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[38;5;124;43m \u001B[39;49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mjoin\u001B[49m\u001B[43m(\u001B[49m\u001B[43mps\u001B[49m\u001B[43m)\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;28;43;01mfor\u001B[39;49;00m\u001B[43m \u001B[49m\u001B[43mps\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;129;43;01min\u001B[39;49;00m\u001B[43m \u001B[49m\u001B[43mparagraph_batches\u001B[49m\u001B[43m]\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 65\u001B[0m \u001B[38;5;28;01melse\u001B[39;00m:\n\u001B[0;32m 66\u001B[0m \u001B[38;5;66;03m#para_emb = self.to_glove_paragraph_embedding(ps)\u001B[39;00m\n\u001B[0;32m 67\u001B[0m \u001B[38;5;28;01mraise\u001B[39;00m \u001B[38;5;167;01mNotImplementedError\u001B[39;00m(\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mGloVe paragraph embedding need to be refactored to work with batches\u001B[39m\u001B[38;5;124m\"\u001B[39m)\n", - "File \u001B[1;32m~\\Documents\\graph4stackoverflow\\embeddings\\post_embedding_builder.py:154\u001B[0m, in \u001B[0;36mPostEmbedding.to_bert_embedding\u001B[1;34m(self, texts)\u001B[0m\n\u001B[0;32m 152\u001B[0m encodings \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_bert_tokenizer(texts, padding\u001B[38;5;241m=\u001B[39m\u001B[38;5;28;01mTrue\u001B[39;00m, truncation\u001B[38;5;241m=\u001B[39m\u001B[38;5;28;01mTrue\u001B[39;00m, return_tensors\u001B[38;5;241m=\u001B[39m\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mpt\u001B[39m\u001B[38;5;124m'\u001B[39m, max_length\u001B[38;5;241m=\u001B[39m\u001B[38;5;241m512\u001B[39m)\n\u001B[0;32m 153\u001B[0m \u001B[38;5;28;01mwith\u001B[39;00m torch\u001B[38;5;241m.\u001B[39mno_grad():\n\u001B[1;32m--> 154\u001B[0m outputs \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43m_bert_model\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[43mencodings\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 155\u001B[0m last_layer \u001B[38;5;241m=\u001B[39m outputs\u001B[38;5;241m.\u001B[39mlast_hidden_state\n\u001B[0;32m 156\u001B[0m \u001B[38;5;28mcls\u001B[39m \u001B[38;5;241m=\u001B[39m last_layer[:, \u001B[38;5;241m0\u001B[39m, :]\n", - "File \u001B[1;32m~\\Documents\\graph4stackoverflow\\venv\\lib\\site-packages\\torch\\nn\\modules\\module.py:1190\u001B[0m, in \u001B[0;36mModule._call_impl\u001B[1;34m(self, *input, **kwargs)\u001B[0m\n\u001B[0;32m 1186\u001B[0m \u001B[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001B[39;00m\n\u001B[0;32m 1187\u001B[0m \u001B[38;5;66;03m# this function, and just call forward.\u001B[39;00m\n\u001B[0;32m 1188\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m (\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_backward_hooks \u001B[38;5;129;01mor\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_forward_hooks \u001B[38;5;129;01mor\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_forward_pre_hooks \u001B[38;5;129;01mor\u001B[39;00m _global_backward_hooks\n\u001B[0;32m 1189\u001B[0m \u001B[38;5;129;01mor\u001B[39;00m _global_forward_hooks \u001B[38;5;129;01mor\u001B[39;00m _global_forward_pre_hooks):\n\u001B[1;32m-> 1190\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[43mforward_call\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;28;43minput\u001B[39;49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[43mkwargs\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 1191\u001B[0m \u001B[38;5;66;03m# Do not call functions when jit is used\u001B[39;00m\n\u001B[0;32m 1192\u001B[0m full_backward_hooks, non_full_backward_hooks \u001B[38;5;241m=\u001B[39m [], []\n", - "File \u001B[1;32m~\\Documents\\graph4stackoverflow\\venv\\lib\\site-packages\\transformers\\models\\bert\\modeling_bert.py:1014\u001B[0m, in \u001B[0;36mBertModel.forward\u001B[1;34m(self, input_ids, attention_mask, token_type_ids, position_ids, head_mask, inputs_embeds, encoder_hidden_states, encoder_attention_mask, past_key_values, use_cache, output_attentions, output_hidden_states, return_dict)\u001B[0m\n\u001B[0;32m 1005\u001B[0m head_mask \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mget_head_mask(head_mask, \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mconfig\u001B[38;5;241m.\u001B[39mnum_hidden_layers)\n\u001B[0;32m 1007\u001B[0m embedding_output \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39membeddings(\n\u001B[0;32m 1008\u001B[0m input_ids\u001B[38;5;241m=\u001B[39minput_ids,\n\u001B[0;32m 1009\u001B[0m position_ids\u001B[38;5;241m=\u001B[39mposition_ids,\n\u001B[1;32m (...)\u001B[0m\n\u001B[0;32m 1012\u001B[0m past_key_values_length\u001B[38;5;241m=\u001B[39mpast_key_values_length,\n\u001B[0;32m 1013\u001B[0m )\n\u001B[1;32m-> 1014\u001B[0m encoder_outputs \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mencoder\u001B[49m\u001B[43m(\u001B[49m\n\u001B[0;32m 1015\u001B[0m \u001B[43m \u001B[49m\u001B[43membedding_output\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 1016\u001B[0m \u001B[43m \u001B[49m\u001B[43mattention_mask\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mextended_attention_mask\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 1017\u001B[0m \u001B[43m \u001B[49m\u001B[43mhead_mask\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mhead_mask\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 1018\u001B[0m \u001B[43m \u001B[49m\u001B[43mencoder_hidden_states\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mencoder_hidden_states\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 1019\u001B[0m \u001B[43m \u001B[49m\u001B[43mencoder_attention_mask\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mencoder_extended_attention_mask\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 1020\u001B[0m \u001B[43m \u001B[49m\u001B[43mpast_key_values\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mpast_key_values\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 1021\u001B[0m \u001B[43m \u001B[49m\u001B[43muse_cache\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43muse_cache\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 1022\u001B[0m \u001B[43m \u001B[49m\u001B[43moutput_attentions\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43moutput_attentions\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 1023\u001B[0m \u001B[43m \u001B[49m\u001B[43moutput_hidden_states\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43moutput_hidden_states\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 1024\u001B[0m \u001B[43m \u001B[49m\u001B[43mreturn_dict\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mreturn_dict\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 1025\u001B[0m \u001B[43m\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 1026\u001B[0m sequence_output \u001B[38;5;241m=\u001B[39m encoder_outputs[\u001B[38;5;241m0\u001B[39m]\n\u001B[0;32m 1027\u001B[0m pooled_output \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mpooler(sequence_output) \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mpooler \u001B[38;5;129;01mis\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m \u001B[38;5;28;01mNone\u001B[39;00m \u001B[38;5;28;01melse\u001B[39;00m \u001B[38;5;28;01mNone\u001B[39;00m\n", - "File \u001B[1;32m~\\Documents\\graph4stackoverflow\\venv\\lib\\site-packages\\torch\\nn\\modules\\module.py:1190\u001B[0m, in \u001B[0;36mModule._call_impl\u001B[1;34m(self, *input, **kwargs)\u001B[0m\n\u001B[0;32m 1186\u001B[0m \u001B[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001B[39;00m\n\u001B[0;32m 1187\u001B[0m \u001B[38;5;66;03m# this function, and just call forward.\u001B[39;00m\n\u001B[0;32m 1188\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m (\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_backward_hooks \u001B[38;5;129;01mor\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_forward_hooks \u001B[38;5;129;01mor\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_forward_pre_hooks \u001B[38;5;129;01mor\u001B[39;00m _global_backward_hooks\n\u001B[0;32m 1189\u001B[0m \u001B[38;5;129;01mor\u001B[39;00m _global_forward_hooks \u001B[38;5;129;01mor\u001B[39;00m _global_forward_pre_hooks):\n\u001B[1;32m-> 1190\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[43mforward_call\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;28;43minput\u001B[39;49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[43mkwargs\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 1191\u001B[0m \u001B[38;5;66;03m# Do not call functions when jit is used\u001B[39;00m\n\u001B[0;32m 1192\u001B[0m full_backward_hooks, non_full_backward_hooks \u001B[38;5;241m=\u001B[39m [], []\n", - "File \u001B[1;32m~\\Documents\\graph4stackoverflow\\venv\\lib\\site-packages\\transformers\\models\\bert\\modeling_bert.py:603\u001B[0m, in \u001B[0;36mBertEncoder.forward\u001B[1;34m(self, hidden_states, attention_mask, head_mask, encoder_hidden_states, encoder_attention_mask, past_key_values, use_cache, output_attentions, output_hidden_states, return_dict)\u001B[0m\n\u001B[0;32m 594\u001B[0m layer_outputs \u001B[38;5;241m=\u001B[39m torch\u001B[38;5;241m.\u001B[39mutils\u001B[38;5;241m.\u001B[39mcheckpoint\u001B[38;5;241m.\u001B[39mcheckpoint(\n\u001B[0;32m 595\u001B[0m create_custom_forward(layer_module),\n\u001B[0;32m 596\u001B[0m hidden_states,\n\u001B[1;32m (...)\u001B[0m\n\u001B[0;32m 600\u001B[0m encoder_attention_mask,\n\u001B[0;32m 601\u001B[0m )\n\u001B[0;32m 602\u001B[0m \u001B[38;5;28;01melse\u001B[39;00m:\n\u001B[1;32m--> 603\u001B[0m layer_outputs \u001B[38;5;241m=\u001B[39m \u001B[43mlayer_module\u001B[49m\u001B[43m(\u001B[49m\n\u001B[0;32m 604\u001B[0m \u001B[43m \u001B[49m\u001B[43mhidden_states\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 605\u001B[0m \u001B[43m \u001B[49m\u001B[43mattention_mask\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 606\u001B[0m \u001B[43m \u001B[49m\u001B[43mlayer_head_mask\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 607\u001B[0m \u001B[43m \u001B[49m\u001B[43mencoder_hidden_states\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 608\u001B[0m \u001B[43m \u001B[49m\u001B[43mencoder_attention_mask\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 609\u001B[0m \u001B[43m \u001B[49m\u001B[43mpast_key_value\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 610\u001B[0m \u001B[43m \u001B[49m\u001B[43moutput_attentions\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 611\u001B[0m \u001B[43m \u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 613\u001B[0m hidden_states \u001B[38;5;241m=\u001B[39m layer_outputs[\u001B[38;5;241m0\u001B[39m]\n\u001B[0;32m 614\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m use_cache:\n", - "File \u001B[1;32m~\\Documents\\graph4stackoverflow\\venv\\lib\\site-packages\\torch\\nn\\modules\\module.py:1190\u001B[0m, in \u001B[0;36mModule._call_impl\u001B[1;34m(self, *input, **kwargs)\u001B[0m\n\u001B[0;32m 1186\u001B[0m \u001B[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001B[39;00m\n\u001B[0;32m 1187\u001B[0m \u001B[38;5;66;03m# this function, and just call forward.\u001B[39;00m\n\u001B[0;32m 1188\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m (\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_backward_hooks \u001B[38;5;129;01mor\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_forward_hooks \u001B[38;5;129;01mor\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_forward_pre_hooks \u001B[38;5;129;01mor\u001B[39;00m _global_backward_hooks\n\u001B[0;32m 1189\u001B[0m \u001B[38;5;129;01mor\u001B[39;00m _global_forward_hooks \u001B[38;5;129;01mor\u001B[39;00m _global_forward_pre_hooks):\n\u001B[1;32m-> 1190\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[43mforward_call\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;28;43minput\u001B[39;49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[43mkwargs\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 1191\u001B[0m \u001B[38;5;66;03m# Do not call functions when jit is used\u001B[39;00m\n\u001B[0;32m 1192\u001B[0m full_backward_hooks, non_full_backward_hooks \u001B[38;5;241m=\u001B[39m [], []\n", - "File \u001B[1;32m~\\Documents\\graph4stackoverflow\\venv\\lib\\site-packages\\transformers\\models\\bert\\modeling_bert.py:489\u001B[0m, in \u001B[0;36mBertLayer.forward\u001B[1;34m(self, hidden_states, attention_mask, head_mask, encoder_hidden_states, encoder_attention_mask, past_key_value, output_attentions)\u001B[0m\n\u001B[0;32m 477\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m \u001B[38;5;21mforward\u001B[39m(\n\u001B[0;32m 478\u001B[0m \u001B[38;5;28mself\u001B[39m,\n\u001B[0;32m 479\u001B[0m hidden_states: torch\u001B[38;5;241m.\u001B[39mTensor,\n\u001B[1;32m (...)\u001B[0m\n\u001B[0;32m 486\u001B[0m ) \u001B[38;5;241m-\u001B[39m\u001B[38;5;241m>\u001B[39m Tuple[torch\u001B[38;5;241m.\u001B[39mTensor]:\n\u001B[0;32m 487\u001B[0m \u001B[38;5;66;03m# decoder uni-directional self-attention cached key/values tuple is at positions 1,2\u001B[39;00m\n\u001B[0;32m 488\u001B[0m self_attn_past_key_value \u001B[38;5;241m=\u001B[39m past_key_value[:\u001B[38;5;241m2\u001B[39m] \u001B[38;5;28;01mif\u001B[39;00m past_key_value \u001B[38;5;129;01mis\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m \u001B[38;5;28;01mNone\u001B[39;00m \u001B[38;5;28;01melse\u001B[39;00m \u001B[38;5;28;01mNone\u001B[39;00m\n\u001B[1;32m--> 489\u001B[0m self_attention_outputs \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mattention\u001B[49m\u001B[43m(\u001B[49m\n\u001B[0;32m 490\u001B[0m \u001B[43m \u001B[49m\u001B[43mhidden_states\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 491\u001B[0m \u001B[43m \u001B[49m\u001B[43mattention_mask\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 492\u001B[0m \u001B[43m \u001B[49m\u001B[43mhead_mask\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 493\u001B[0m \u001B[43m \u001B[49m\u001B[43moutput_attentions\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43moutput_attentions\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 494\u001B[0m \u001B[43m \u001B[49m\u001B[43mpast_key_value\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mself_attn_past_key_value\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 495\u001B[0m \u001B[43m \u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 496\u001B[0m attention_output \u001B[38;5;241m=\u001B[39m self_attention_outputs[\u001B[38;5;241m0\u001B[39m]\n\u001B[0;32m 498\u001B[0m \u001B[38;5;66;03m# if decoder, the last output is tuple of self-attn cache\u001B[39;00m\n", - "File \u001B[1;32m~\\Documents\\graph4stackoverflow\\venv\\lib\\site-packages\\torch\\nn\\modules\\module.py:1190\u001B[0m, in \u001B[0;36mModule._call_impl\u001B[1;34m(self, *input, **kwargs)\u001B[0m\n\u001B[0;32m 1186\u001B[0m \u001B[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001B[39;00m\n\u001B[0;32m 1187\u001B[0m \u001B[38;5;66;03m# this function, and just call forward.\u001B[39;00m\n\u001B[0;32m 1188\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m (\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_backward_hooks \u001B[38;5;129;01mor\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_forward_hooks \u001B[38;5;129;01mor\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_forward_pre_hooks \u001B[38;5;129;01mor\u001B[39;00m _global_backward_hooks\n\u001B[0;32m 1189\u001B[0m \u001B[38;5;129;01mor\u001B[39;00m _global_forward_hooks \u001B[38;5;129;01mor\u001B[39;00m _global_forward_pre_hooks):\n\u001B[1;32m-> 1190\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[43mforward_call\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;28;43minput\u001B[39;49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[43mkwargs\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 1191\u001B[0m \u001B[38;5;66;03m# Do not call functions when jit is used\u001B[39;00m\n\u001B[0;32m 1192\u001B[0m full_backward_hooks, non_full_backward_hooks \u001B[38;5;241m=\u001B[39m [], []\n", - "File \u001B[1;32m~\\Documents\\graph4stackoverflow\\venv\\lib\\site-packages\\transformers\\models\\bert\\modeling_bert.py:419\u001B[0m, in \u001B[0;36mBertAttention.forward\u001B[1;34m(self, hidden_states, attention_mask, head_mask, encoder_hidden_states, encoder_attention_mask, past_key_value, output_attentions)\u001B[0m\n\u001B[0;32m 409\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m \u001B[38;5;21mforward\u001B[39m(\n\u001B[0;32m 410\u001B[0m \u001B[38;5;28mself\u001B[39m,\n\u001B[0;32m 411\u001B[0m hidden_states: torch\u001B[38;5;241m.\u001B[39mTensor,\n\u001B[1;32m (...)\u001B[0m\n\u001B[0;32m 417\u001B[0m output_attentions: Optional[\u001B[38;5;28mbool\u001B[39m] \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;01mFalse\u001B[39;00m,\n\u001B[0;32m 418\u001B[0m ) \u001B[38;5;241m-\u001B[39m\u001B[38;5;241m>\u001B[39m Tuple[torch\u001B[38;5;241m.\u001B[39mTensor]:\n\u001B[1;32m--> 419\u001B[0m self_outputs \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mself\u001B[49m\u001B[43m(\u001B[49m\n\u001B[0;32m 420\u001B[0m \u001B[43m \u001B[49m\u001B[43mhidden_states\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 421\u001B[0m \u001B[43m \u001B[49m\u001B[43mattention_mask\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 422\u001B[0m \u001B[43m \u001B[49m\u001B[43mhead_mask\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 423\u001B[0m \u001B[43m \u001B[49m\u001B[43mencoder_hidden_states\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 424\u001B[0m \u001B[43m \u001B[49m\u001B[43mencoder_attention_mask\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 425\u001B[0m \u001B[43m \u001B[49m\u001B[43mpast_key_value\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 426\u001B[0m \u001B[43m \u001B[49m\u001B[43moutput_attentions\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 427\u001B[0m \u001B[43m \u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 428\u001B[0m attention_output \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39moutput(self_outputs[\u001B[38;5;241m0\u001B[39m], hidden_states)\n\u001B[0;32m 429\u001B[0m outputs \u001B[38;5;241m=\u001B[39m (attention_output,) \u001B[38;5;241m+\u001B[39m self_outputs[\u001B[38;5;241m1\u001B[39m:] \u001B[38;5;66;03m# add attentions if we output them\u001B[39;00m\n", - "File \u001B[1;32m~\\Documents\\graph4stackoverflow\\venv\\lib\\site-packages\\torch\\nn\\modules\\module.py:1190\u001B[0m, in \u001B[0;36mModule._call_impl\u001B[1;34m(self, *input, **kwargs)\u001B[0m\n\u001B[0;32m 1186\u001B[0m \u001B[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001B[39;00m\n\u001B[0;32m 1187\u001B[0m \u001B[38;5;66;03m# this function, and just call forward.\u001B[39;00m\n\u001B[0;32m 1188\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m (\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_backward_hooks \u001B[38;5;129;01mor\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_forward_hooks \u001B[38;5;129;01mor\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_forward_pre_hooks \u001B[38;5;129;01mor\u001B[39;00m _global_backward_hooks\n\u001B[0;32m 1189\u001B[0m \u001B[38;5;129;01mor\u001B[39;00m _global_forward_hooks \u001B[38;5;129;01mor\u001B[39;00m _global_forward_pre_hooks):\n\u001B[1;32m-> 1190\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[43mforward_call\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;28;43minput\u001B[39;49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[43mkwargs\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 1191\u001B[0m \u001B[38;5;66;03m# Do not call functions when jit is used\u001B[39;00m\n\u001B[0;32m 1192\u001B[0m full_backward_hooks, non_full_backward_hooks \u001B[38;5;241m=\u001B[39m [], []\n", - "File \u001B[1;32m~\\Documents\\graph4stackoverflow\\venv\\lib\\site-packages\\transformers\\models\\bert\\modeling_bert.py:347\u001B[0m, in \u001B[0;36mBertSelfAttention.forward\u001B[1;34m(self, hidden_states, attention_mask, head_mask, encoder_hidden_states, encoder_attention_mask, past_key_value, output_attentions)\u001B[0m\n\u001B[0;32m 344\u001B[0m attention_scores \u001B[38;5;241m=\u001B[39m attention_scores \u001B[38;5;241m+\u001B[39m attention_mask\n\u001B[0;32m 346\u001B[0m \u001B[38;5;66;03m# Normalize the attention scores to probabilities.\u001B[39;00m\n\u001B[1;32m--> 347\u001B[0m attention_probs \u001B[38;5;241m=\u001B[39m \u001B[43mnn\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mfunctional\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43msoftmax\u001B[49m\u001B[43m(\u001B[49m\u001B[43mattention_scores\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mdim\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[38;5;241;43m-\u001B[39;49m\u001B[38;5;241;43m1\u001B[39;49m\u001B[43m)\u001B[49m\n\u001B[0;32m 349\u001B[0m \u001B[38;5;66;03m# This is actually dropping out entire tokens to attend to, which might\u001B[39;00m\n\u001B[0;32m 350\u001B[0m \u001B[38;5;66;03m# seem a bit unusual, but is taken from the original Transformer paper.\u001B[39;00m\n\u001B[0;32m 351\u001B[0m attention_probs \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mdropout(attention_probs)\n", - "File \u001B[1;32m~\\Documents\\graph4stackoverflow\\venv\\lib\\site-packages\\torch\\nn\\functional.py:1841\u001B[0m, in \u001B[0;36msoftmax\u001B[1;34m(input, dim, _stacklevel, dtype)\u001B[0m\n\u001B[0;32m 1839\u001B[0m dim \u001B[38;5;241m=\u001B[39m _get_softmax_dim(\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124msoftmax\u001B[39m\u001B[38;5;124m\"\u001B[39m, \u001B[38;5;28minput\u001B[39m\u001B[38;5;241m.\u001B[39mdim(), _stacklevel)\n\u001B[0;32m 1840\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m dtype \u001B[38;5;129;01mis\u001B[39;00m \u001B[38;5;28;01mNone\u001B[39;00m:\n\u001B[1;32m-> 1841\u001B[0m ret \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;43minput\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43msoftmax\u001B[49m\u001B[43m(\u001B[49m\u001B[43mdim\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 1842\u001B[0m \u001B[38;5;28;01melse\u001B[39;00m:\n\u001B[0;32m 1843\u001B[0m ret \u001B[38;5;241m=\u001B[39m \u001B[38;5;28minput\u001B[39m\u001B[38;5;241m.\u001B[39msoftmax(dim, dtype\u001B[38;5;241m=\u001B[39mdtype)\n", - "\u001B[1;31mKeyboardInterrupt\u001B[0m: " - ] - } - ], - "source": [ - "import torch_geometric.transforms as T\n", - "graph_out = graph_constructor.construct(questions_df, answers_df, comments_df)\n", - "#graph_out['module'].x = torch.empty(0, 110, dtype=torch.long)\n", - "graph_out" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "graph_out.__setattr__('question_emb', torch.rand(300))\n", - "graph_out.edge_index_dict" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "from torch_geometric.utils import to_networkx\n", - "\n", - "nx_graph = to_networkx(graph_out.to_homogeneous())\n", - "pos_ug = nx.spring_layout(nx_graph)#, k=0.15, iterations=20)\n", - "plt.figure(figsize=(40,40))\n", - "nx.draw(nx_graph, pos_ug, with_labels=True)\n" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "markdown", - "source": [ - "Let's build a GNN" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "from torch.nn import Linear\n", - "import torch.nn.functional as F\n", - "from torch_geometric.nn import GCNConv, MeanAggregation, GATConv\n", - "from torch_geometric.nn import global_mean_pool\n", - "\n", - "\n", - "class GAT(torch.nn.Module):\n", - " def __init__(self, hidden_channels):\n", - " super(GAT, self).__init__()\n", - " torch.manual_seed(12345)\n", - " self.conv1 = GATConv((-1, -1), hidden_channels, add_self_loops=False)\n", - " self.conv2 = GATConv((-1, -1), hidden_channels, add_self_loops=False)\n", - " self.conv3 = GATConv((-1, -1), hidden_channels, add_self_loops=False)\n", - " self.lin = Linear(hidden_channels, 2)\n", - " self.softmax = torch.nn.Softmax(dim=1)\n", - " #self.pool = global_mean_pool()#MeanAggregation()\n", - "\n", - " def forward(self, x, edge_index, batch, post_emb):\n", - " # 1. Obtain node embeddings\n", - " x = self.conv1(x, edge_index)\n", - " x = x.relu()\n", - " x = self.conv2(x, edge_index)\n", - " x = x.relu()\n", - " x = self.conv3(x, edge_index)\n", - "\n", - " # 2. Readout layer\n", - " x = self.pool(x, batch) # [batch_size, hidden_channels]\n", - " #x = torch.cat((x, post_emb))\n", - " # 3. Apply a final classifier\n", - " # x = F.dropout(x, p=0.5, training=self.training)\n", - " x = self.lin(x)\n", - "\n", - " #x = self.softmax(x)\n", - " return x\n", - "model = GAT(hidden_channels=64)\n", - "print(model)" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "from torch_geometric.nn.module_dict import ModuleDict\n", - "from torch_geometric.nn import HeteroConv\n", - "\n", - "\n", - "class HeteroGNN(torch.nn.Module):\n", - " def __init__(self, hidden_channels, out_channels, num_layers):\n", - " super().__init__()\n", - "\n", - " self.convs = torch.nn.ModuleList()\n", - " for _ in range(num_layers):\n", - " conv = HeteroConv({\n", - " ('tag', 'describes', 'question') : GATConv((-1,-1), hidden_channels, add_self_loops=False),\n", - " ('tag', 'describes', 'answer') : GATConv((-1,-1), hidden_channels, add_self_loops=False),\n", - " ('tag', 'describes', 'comment') : GATConv((-1,-1), hidden_channels, add_self_loops=False),\n", - " ('module', 'imported_in', 'question') : GATConv((-1,-1), hidden_channels, add_self_loops=False),\n", - " ('module', 'imported_in', 'answer') : GATConv((-1,-1), hidden_channels, add_self_loops=False),\n", - " ('question', 'rev_describes', 'tag') : GATConv((-1,-1), hidden_channels, add_self_loops=False),\n", - " ('answer', 'rev_describes', 'tag') : GATConv((-1,-1), hidden_channels, add_self_loops=False),\n", - " ('comment', 'rev_describes', 'tag') : GATConv((-1,-1), hidden_channels, add_self_loops=False),\n", - " ('question', 'rev_imported_in', 'module') : GATConv((-1,-1), hidden_channels, add_self_loops=False),\n", - " ('answer', 'rev_imported_in', 'module') : GATConv((-1,-1), hidden_channels, add_self_loops=False),\n", - " }, aggr='sum')\n", - " self.convs.append(conv)\n", - "\n", - " self.lin = Linear(hidden_channels, out_channels)\n", - " #self.softmax = torch.nn.Softmax(dim=1)\n", - "\n", - "\n", - " def forward(self, x_dict, edge_index_dict, batch_dict, post_emb=2):\n", - " for conv in self.convs:\n", - " x_dict = conv(x_dict, edge_index_dict)\n", - " x_dict = {key: x.relu() for key, x in x_dict.items()}\n", - " #return x_dict\n", - " outs = []\n", - " for x, batch in zip(x_dict.values(), batch_dict.values()):\n", - " outs.append(global_mean_pool(x, batch))\n", - " out = torch.cat(outs, dim=-1)\n", - "\n", - " return out\n", - "\n", - "\n", - "hgnn = HeteroGNN(hidden_channels=64, out_channels=2, num_layers=3)\n", - "hgnn" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "hgnn(graph_out.x_dict, graph_out.edge_index_dict, graph_out.batch_dict, 1)" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "from torch_geometric.nn import to_hetero, to_hetero_with_bases\n", - "\n", - "metadata = (['question', 'answer', 'comment', 'tag', 'module'], [('tag', 'describes', 'question'), ('tag', 'describes', 'answer'), ('tag', 'describes', 'comment'), ('module', 'imported_in', 'question'), ('module', 'imported_in', 'answer'), ('question', 'rev_describes', 'tag'), ('answer', 'rev_describes', 'tag'), ('comment', 'rev_describes', 'tag'), ('question', 'rev_imported_in', 'module'), ('answer', 'rev_imported_in', 'module')])\n", - "model = to_hetero(model, metadata)\n", - "model" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "model(graph_out.x_dict, graph_out.edge_index_dict, graph_out.batch_dict, 1)" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "graph_out.batch_dict" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [ - "print(\"Question ndim:\", graph_out.x_dict['question'].dim())\n", - "print(\"Answer ndim:\", graph_out.x_dict['answer'].dim())\n", - "print(\"Comment ndim:\", graph_out.x_dict['comment'].dim())\n", - "print(\"Tag ndim:\", graph_out.x_dict['tag'].dim())\n", - "print(\"Module ndim:\", graph_out.x_dict['module'].dim())" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [], - "metadata": { - "collapsed": false - } - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 2 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.6" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 15, + "outputs": [], + "source": [ + "import sqlite3\n", + "\n", + "import numpy as np\n", + "import pandas as pd\n", + "from typing import *\n", + "import ast\n", + "\n", + "import torch\n", + "from torch_geometric.data import HeteroData\n", + "from bs4 import BeautifulSoup\n", + "from post_embedding_builder import PostEmbedding\n", + "import networkx as nx\n", + "from matplotlib import pyplot as plt" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 16, + "outputs": [], + "source": [ + "# Create your connection.\n", + "db = sqlite3.connect('../stackoverflow.db')" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 17, + "outputs": [], + "source": [ + "user_id = 13009" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 18, + "outputs": [ + { + "data": { + "text/plain": " PostTypeId AcceptedAnswerId CreationDate Score \\\nPostId \n269676 1 NaN 2008-11-06T18:06:13.213 10 \n1046474 1 1046522.0 2009-06-25T22:04:16.890 5 \n2970045 1 2974177.0 2010-06-03T21:52:14.793 6 \n3712445 1 3712645.0 2010-09-14T20:04:19.940 1 \n5538814 1 5539724.0 2011-04-04T13:00:53.620 0 \n... ... ... ... ... \n36922532 1 36922586.0 2016-04-28T18:18:49.007 6 \n40749339 1 40749648.0 2016-11-22T18:42:04.867 1 \n41616578 1 41623932.0 2017-01-12T15:10:45.340 2 \n44933724 1 44950763.0 2017-07-05T18:40:48.800 0 \n45238835 1 45239952.0 2017-07-21T13:23:56.527 4 \n\n ViewCount Body \\\nPostId \n269676 7250 <p>I want to make my Python library working wi... \n1046474 12418 <p>How do I run this command with subprocess?<... \n2970045 7850 <p>I have a python web application that needs ... \n3712445 405 <p>Say I have text 'C:\\somedir\\test.log' and I... \n5538814 631 <p>I have multiple Django apps, and I have som... \n... ... ... \n36922532 3284 <p>I know there must be a way to do this. But... \n40749339 1271 <p>Say I have a script like this:</p>\\n\\n<pre>... \n41616578 24094 <p>I'm trying to run code like this:</p>\\n\\n<p... \n44933724 388 <p>I've been running fine on Django 1.7. I'm ... \n45238835 1191 <p>I'm on Django 1.9, Python 3.6. I made this... \n\n OwnerUserId LastEditorUserId LastEditorDisplayName \\\nPostId \n269676 13009 13009.0 Greg \n1046474 13009 13009.0 None \n2970045 13009 13009.0 None \n3712445 13009 13009.0 None \n5538814 13009 13009.0 None \n... ... ... ... \n36922532 13009 NaN None \n40749339 13009 NaN None \n41616578 13009 NaN None \n44933724 13009 NaN None \n45238835 13009 NaN None \n\n LastEditDate \\\nPostId \n269676 2008-11-10T15:12:18.133 \n1046474 2009-06-25T22:21:41.520 \n2970045 2010-06-03T22:11:27.260 \n3712445 2010-09-14T20:18:32.083 \n5538814 2011-04-04T13:15:37.903 \n... ... \n36922532 None \n40749339 None \n41616578 None \n44933724 None \n45238835 None \n\n Title \\\nPostId \n269676 How can I Cause a Deadlock in MySQL for Testin... \n1046474 Python - Subprocess - How to call a Piped comm... \n2970045 Python - Launch a Long Running Process from a ... \n3712445 Python Regular Expression Question \n5538814 Django - non app specific models.py? \n... ... \n36922532 Python functools.partial - How to apply it to ... \n40749339 Python subprocess - check exit codes of forked... \n41616578 Psycopg copy_expert method - How to use properly \n44933724 Django 1.11 upgrade - object has no attribute ... \n45238835 Django failing migration - Cannot query \"peter... \n\n Tags AnswerCount \\\nPostId \n269676 <python><mysql><database><deadlock> 5 \n1046474 <python><subprocess><pipe><echo><popen> 2 \n2970045 <python><windows><winapi><popen><long-running-... 4 \n3712445 <python><regex> 4 \n5538814 <python><django><django-models> 3 \n... ... ... \n36922532 <python><static-methods><python-decorators><fu... 3 \n40749339 <python><subprocess><fork> 1 \n41616578 <python><postgresql><psycopg2><psycopg> 2 \n44933724 <python><django><django-models><django-authent... 1 \n45238835 <python><django><migration><django-migrations> 1 \n\n CommentCount FavoriteCount CommunityOwnedDate ContentLicense \\\nPostId \n269676 0 3.0 None CC BY-SA 2.5 \n1046474 2 3.0 None CC BY-SA 2.5 \n2970045 2 6.0 None CC BY-SA 2.5 \n3712445 0 1.0 None CC BY-SA 2.5 \n5538814 0 1.0 None CC BY-SA 2.5 \n... ... ... ... ... \n36922532 0 1.0 None CC BY-SA 3.0 \n40749339 0 NaN None CC BY-SA 3.0 \n41616578 2 NaN None CC BY-SA 3.0 \n44933724 2 0.0 None CC BY-SA 3.0 \n45238835 4 NaN None CC BY-SA 3.0 \n\n ParentId \nPostId \n269676 None \n1046474 None \n2970045 None \n3712445 None \n5538814 None \n... ... \n36922532 None \n40749339 None \n41616578 None \n44933724 None \n45238835 None \n\n[105 rows x 18 columns]", + "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>PostTypeId</th>\n <th>AcceptedAnswerId</th>\n <th>CreationDate</th>\n <th>Score</th>\n <th>ViewCount</th>\n <th>Body</th>\n <th>OwnerUserId</th>\n <th>LastEditorUserId</th>\n <th>LastEditorDisplayName</th>\n <th>LastEditDate</th>\n <th>Title</th>\n <th>Tags</th>\n <th>AnswerCount</th>\n <th>CommentCount</th>\n <th>FavoriteCount</th>\n <th>CommunityOwnedDate</th>\n <th>ContentLicense</th>\n <th>ParentId</th>\n </tr>\n <tr>\n <th>PostId</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 <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>269676</th>\n <td>1</td>\n <td>NaN</td>\n <td>2008-11-06T18:06:13.213</td>\n <td>10</td>\n <td>7250</td>\n <td><p>I want to make my Python library working wi...</td>\n <td>13009</td>\n <td>13009.0</td>\n <td>Greg</td>\n <td>2008-11-10T15:12:18.133</td>\n <td>How can I Cause a Deadlock in MySQL for Testin...</td>\n <td><python><mysql><database><deadlock></td>\n <td>5</td>\n <td>0</td>\n <td>3.0</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>None</td>\n </tr>\n <tr>\n <th>1046474</th>\n <td>1</td>\n <td>1046522.0</td>\n <td>2009-06-25T22:04:16.890</td>\n <td>5</td>\n <td>12418</td>\n <td><p>How do I run this command with subprocess?<...</td>\n <td>13009</td>\n <td>13009.0</td>\n <td>None</td>\n <td>2009-06-25T22:21:41.520</td>\n <td>Python - Subprocess - How to call a Piped comm...</td>\n <td><python><subprocess><pipe><echo><popen></td>\n <td>2</td>\n <td>2</td>\n <td>3.0</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>None</td>\n </tr>\n <tr>\n <th>2970045</th>\n <td>1</td>\n <td>2974177.0</td>\n <td>2010-06-03T21:52:14.793</td>\n <td>6</td>\n <td>7850</td>\n <td><p>I have a python web application that needs ...</td>\n <td>13009</td>\n <td>13009.0</td>\n <td>None</td>\n <td>2010-06-03T22:11:27.260</td>\n <td>Python - Launch a Long Running Process from a ...</td>\n <td><python><windows><winapi><popen><long-running-...</td>\n <td>4</td>\n <td>2</td>\n <td>6.0</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>None</td>\n </tr>\n <tr>\n <th>3712445</th>\n <td>1</td>\n <td>3712645.0</td>\n <td>2010-09-14T20:04:19.940</td>\n <td>1</td>\n <td>405</td>\n <td><p>Say I have text 'C:\\somedir\\test.log' and I...</td>\n <td>13009</td>\n <td>13009.0</td>\n <td>None</td>\n <td>2010-09-14T20:18:32.083</td>\n <td>Python Regular Expression Question</td>\n <td><python><regex></td>\n <td>4</td>\n <td>0</td>\n <td>1.0</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>None</td>\n </tr>\n <tr>\n <th>5538814</th>\n <td>1</td>\n <td>5539724.0</td>\n <td>2011-04-04T13:00:53.620</td>\n <td>0</td>\n <td>631</td>\n <td><p>I have multiple Django apps, and I have som...</td>\n <td>13009</td>\n <td>13009.0</td>\n <td>None</td>\n <td>2011-04-04T13:15:37.903</td>\n <td>Django - non app specific models.py?</td>\n <td><python><django><django-models></td>\n <td>3</td>\n <td>0</td>\n <td>1.0</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>None</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>36922532</th>\n <td>1</td>\n <td>36922586.0</td>\n <td>2016-04-28T18:18:49.007</td>\n <td>6</td>\n <td>3284</td>\n <td><p>I know there must be a way to do this. But...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>Python functools.partial - How to apply it to ...</td>\n <td><python><static-methods><python-decorators><fu...</td>\n <td>3</td>\n <td>0</td>\n <td>1.0</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>None</td>\n </tr>\n <tr>\n <th>40749339</th>\n <td>1</td>\n <td>40749648.0</td>\n <td>2016-11-22T18:42:04.867</td>\n <td>1</td>\n <td>1271</td>\n <td><p>Say I have a script like this:</p>\\n\\n<pre>...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>Python subprocess - check exit codes of forked...</td>\n <td><python><subprocess><fork></td>\n <td>1</td>\n <td>0</td>\n <td>NaN</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>None</td>\n </tr>\n <tr>\n <th>41616578</th>\n <td>1</td>\n <td>41623932.0</td>\n <td>2017-01-12T15:10:45.340</td>\n <td>2</td>\n <td>24094</td>\n <td><p>I'm trying to run code like this:</p>\\n\\n<p...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>Psycopg copy_expert method - How to use properly</td>\n <td><python><postgresql><psycopg2><psycopg></td>\n <td>2</td>\n <td>2</td>\n <td>NaN</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>None</td>\n </tr>\n <tr>\n <th>44933724</th>\n <td>1</td>\n <td>44950763.0</td>\n <td>2017-07-05T18:40:48.800</td>\n <td>0</td>\n <td>388</td>\n <td><p>I've been running fine on Django 1.7. I'm ...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>Django 1.11 upgrade - object has no attribute ...</td>\n <td><python><django><django-models><django-authent...</td>\n <td>1</td>\n <td>2</td>\n <td>0.0</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>None</td>\n </tr>\n <tr>\n <th>45238835</th>\n <td>1</td>\n <td>45239952.0</td>\n <td>2017-07-21T13:23:56.527</td>\n <td>4</td>\n <td>1191</td>\n <td><p>I'm on Django 1.9, Python 3.6. I made this...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>Django failing migration - Cannot query \"peter...</td>\n <td><python><django><migration><django-migrations></td>\n <td>1</td>\n <td>4</td>\n <td>NaN</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>None</td>\n </tr>\n </tbody>\n</table>\n<p>105 rows × 18 columns</p>\n</div>" + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "questions_df = pd.read_sql_query(f\"\"\"\n", + " SELECT *\n", + " FROM Post\n", + " WHERE Tags LIKE '%python%' AND (PostTypeId = 1) AND ((LastEditorUserId = {user_id}) OR (OwnerUserId = {user_id}))\n", + "\"\"\", db)\n", + "questions_df.set_index('PostId', inplace=True)\n", + "questions_df" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 19, + "outputs": [ + { + "data": { + "text/plain": " Tags PostTypeId \\\nPostId \n6930808 <python><django><django-models><django-admin><... 2 \n45239952 <python><django><migration><django-migrations> 2 \n74335 <python><amazon> 2 \n94627 <python><user-interface><api> 2 \n109724 <python><excel><xlwt><pyexcelerator> 2 \n207065 <python><ajax><screen-scraping><beautifulsoup> 2 \n207074 <python><soap><soap-client> 2 \n224014 <python><ruby><perl><text-parsing> 2 \n273994 <python><programming-languages><python-3.x> 2 \n302681 <python><simplehttpserver><embeddedwebserver> 2 \n338929 <python><indentation> 2 \n350913 <python><django><django-forms> 2 \n368859 <python><unicode><ascii><encode> 2 \n562280 <python><excel-2007> 2 \n1166398 <python><newline><word-wrap> 2 \n1423207 <python><frameworks><cgi><nearlyfreespeech> 2 \n2726298 <python><xlwt><xlrd> 2 \n2883732 <python><sql-server><pyodbc><django-pyodbc> 2 \n2973884 <python><windows><winapi><popen><long-running-... 2 \n2974177 <python><windows><winapi><popen><long-running-... 2 \n3322769 <python><sqlalchemy><orm> 2 \n3364841 <python><session><timeout><sqlalchemy> 2 \n3740202 <python><dictionary> 2 \n5037673 <python><serialization><pickle><inverted-index> 2 \n5486539 <python><django><django-models><django-admin> 2 \n5501441 <python><xpath><elementtree> 2 \n5517355 <python><django><django-models> 2 \n5539724 <python><django><django-models> 2 \n5912867 <python><apache><mod-wsgi><redhat><setuptools> 2 \n5979034 <python><django><django-models><django-admin> 2 \n6507098 <python><django><django-models><django-admin><... 2 \n7097823 <python><django><django-models> 2 \n7323959 <python><popen><subprocess> 2 \n7999028 <python><linux><multithreading><threadpool> 2 \n10047815 <python><django> 2 \n21140430 <python><jdbc><jpype><jaydebeapi> 2 \n23349566 <python><rpy2> 2 \n29807514 <python><curl><python-requests> 2 \n31146549 <python><flask><uwsgi> 2 \n31164662 <python><mongodb><uwsgi><mlab><pymongo-3.x> 2 \n31482430 <python><nginx><flask><memcached><uwsgi> 2 \n31516660 <python><memcached><libmemcached><pylibmc> 2 \n32564909 <python><computer-vision><scikit-image><canny-... 2 \n33284974 <python><oracle><macos><cx-oracle><osx-elcapitan> 2 \n35611090 <python><django><celery><django-celery> 2 \n36922809 <python><static-methods><python-decorators><fu... 2 \n37288365 <python><python-2.7><unicode><subprocess> 2 \n41470962 <python><logging> 2 \n44950763 <python><django><django-models><django-authent... 2 \n\n AcceptedAnswerId CreationDate Score ViewCount \\\nPostId \n6930808 None 2011-08-03T17:45:24.243 1 None \n45239952 None 2017-07-21T14:15:08.280 6 None \n74335 None 2008-09-16T16:40:08.743 2 None \n94627 None 2008-09-18T17:21:42.810 3 None \n109724 None 2008-09-20T23:10:13.863 2 None \n207065 None 2008-10-16T00:58:10.813 0 None \n207074 None 2008-10-16T01:00:24.800 1 None \n224014 None 2008-10-22T00:03:23.323 5 None \n273994 None 2008-11-07T23:29:44.590 4 None \n302681 None 2008-11-19T17:21:06.677 0 None \n338929 None 2008-12-03T22:10:01.007 16 None \n350913 None 2008-12-08T21:12:56.517 40 None \n368859 None 2008-12-15T16:10:11.413 -3 None \n562280 None 2009-02-18T18:28:00.267 0 None \n1166398 None 2009-07-22T16:09:25.197 1 None \n1423207 None 2009-09-14T18:34:18.867 2 None \n2726298 None 2010-04-28T01:30:54.397 263 None \n2883732 None 2010-05-21T16:21:27.240 10 None \n2973884 None 2010-06-04T12:04:23.607 1 None \n2974177 None 2010-06-04T12:41:24.323 7 None \n3322769 None 2010-07-23T22:11:43.417 42 None \n3364841 None 2010-07-29T16:31:24.073 56 None \n3740202 None 2010-09-18T02:57:15.853 7 None \n5037673 None 2011-02-18T04:37:27.133 0 None \n5486539 None 2011-03-30T12:54:01.637 0 None \n5501441 None 2011-03-31T14:27:50.847 56 None \n5517355 None 2011-04-01T18:30:31.930 3 None \n5539724 None 2011-04-04T14:12:30.027 1 None \n5912867 None 2011-05-06T14:28:54.537 0 None \n5979034 None 2011-05-12T13:51:05.513 -2 None \n6507098 None 2011-06-28T13:20:49.480 0 None \n7097823 None 2011-08-17T18:45:06.860 3 None \n7323959 None 2011-09-06T17:45:14.537 8 None \n7999028 None 2011-11-03T17:09:51.260 0 None \n10047815 None 2012-04-06T18:46:30.720 1 None \n21140430 None 2014-01-15T14:44:21.213 5 None \n23349566 None 2014-04-28T19:26:54.797 0 None \n29807514 None 2015-04-22T19:53:07.763 0 None \n31146549 None 2015-06-30T19:13:43.577 7 None \n31164662 None 2015-07-01T14:47:11.400 14 None \n31482430 None 2015-07-17T18:30:07.053 0 None \n31516660 None 2015-07-20T12:34:33.923 0 None \n32564909 None 2015-09-14T12:31:51.097 1 None \n33284974 None 2015-10-22T15:36:24.507 0 None \n35611090 None 2016-02-24T19:18:36.617 0 None \n36922809 None 2016-04-28T18:32:49.863 2 None \n37288365 None 2016-05-18T00:36:59.467 1 None \n41470962 None 2017-01-04T18:37:01.457 1 None \n44950763 None 2017-07-06T13:45:42.037 2 None \n\n Body OwnerUserId \\\nPostId \n6930808 <p>Well, here's a work around since I can't fi... 13009 \n45239952 <p>Looks like I just needed to get User the sa... 13009 \n74335 <p>pyaws seems to be the best one out there. ... 13009 \n94627 <p><a href=\"http://pythoncard.sourceforge.net/... 13009 \n109724 <p>Found example here: <a href=\"http://www.ans... 13009 \n207065 <p>This seems like it's a pretty common proble... 13009 \n207074 <p>As I suggested <a href=\"https://stackoverfl... 13009 \n224014 <p><a href=\"http://pyparsing.wikispaces.com/\" ... 13009 \n273994 <p>Wouldn't VB6 to VB.net be the biggest examp... 13009 \n302681 <p>I made this one. <a href=\"http://www.blend... 13009 \n338929 <p>Python includes a script for the opposite (... 13009 \n350913 <p>I went ahead and answered my own question. ... 13009 \n368859 <p>This seems to work:</p>\\n\\n<pre><code>'add ... 13009 \n562280 <p>May I humbly suggest my site; <a href=\"http... 13009 \n1166398 <p>It looks like it doesn't support that. Thi... 13009 \n1423207 <p>I got web.py to work on nearly free speech ... 13009 \n2726298 <p>Here's some sample code I used recently to ... 13009 \n2883732 <p>Sorry, I asked too soon, <a href=\"http://co... 13009 \n2973884 <p>This almost works (<a href=\"http://docs.pyt... 13009 \n2974177 <p>Ok, I finally figured this out! This seems... 13009 \n3322769 <p>Ok I found it after further searching:</p>\\... 13009 \n3364841 <p>Whenever you create a new session in your c... 13009 \n3740202 <p>What you're describing in your edit is how ... 13009 \n5037673 <p>There's the other pickle library you could ... 13009 \n5486539 <p>What I did to fix this is I dropped every t... 13009 \n5501441 <p>Turns out I needed to say <code>target.find... 13009 \n5517355 <p>Ahh, found it in another SO answer. Weird ... 13009 \n5539724 <p><code>__init__.py</code> in my project's di... 13009 \n5912867 <p>Oh well, instead of fooling with that, I to... 13009 \n5979034 <p><a href=\"http://www.answermysearches.com/fi... 13009 \n6507098 <p>Ok, as a workaround I ended up defining a <... 13009 \n7097823 <p>get_or_create sounds busted to me. I'm jus... 13009 \n7323959 <p>Ok, I'm not sure why but this seems to work... 13009 \n7999028 <p>Actually this does seem to be working. I s... 13009 \n10047815 <p><a href=\"https://stackoverflow.com/question... 13009 \n21140430 <p>Ok, thanks to eltabo and Juan Mellado I fig... 13009 \n23349566 <p>So I was trying to install this on a networ... 13009 \n29807514 <p>Ok, changing to response.content fixed it. ... 13009 \n31146549 <p>Ok, @ipinak was on the right track. It loo... 13009 \n31164662 <p>I fixed it for myself by downgrading from p... 13009 \n31482430 <p>This isn't a great answer, but I ended up u... 13009 \n31516660 <p>As far as I can tell it seems to work fine ... 13009 \n32564909 <p>So the issue was with the canny function re... 13009 \n33284974 <p>I think I fixed it. Basically everything i... 13009 \n35611090 <p>After tooling around for a while and trying... 13009 \n36922809 <p>There's probably a smarter way to do it but... 13009 \n37288365 <p>Wow, this was the weirdest issue ever but I... 13009 \n41470962 <p>Here's what I ended up going with. But I'm... 13009 \n44950763 <p>As @adrien mentioned in the comment, that w... 13009 \n\n LastEditorUserId LastEditorDisplayName LastEditDate \\\nPostId \n6930808 13009.0 None 2011-08-04T11:44:00.257 \n45239952 13009.0 None 2017-07-21T19:13:22.417 \n74335 NaN None None \n94627 216356.0 None 2012-08-09T19:47:56.843 \n109724 NaN None None \n207065 NaN None None \n207074 -1.0 None 2017-05-23T12:34:59.060 \n224014 NaN None None \n273994 NaN None None \n302681 NaN None None \n338929 NaN None None \n350913 NaN None None \n368859 NaN None None \n562280 NaN None None \n1166398 NaN None None \n1423207 NaN None None \n2726298 3801587.0 None 2019-11-04T13:44:52.230 \n2883732 NaN None None \n2973884 NaN None None \n2974177 726378.0 None 2017-07-28T04:22:46.813 \n3322769 NaN None None \n3364841 972208.0 None 2012-03-18T02:57:48.600 \n3740202 NaN None None \n5037673 NaN None None \n5486539 NaN None None \n5501441 3820025.0 None 2018-12-19T15:54:38.900 \n5517355 NaN None None \n5539724 NaN None None \n5912867 NaN None None \n5979034 NaN None None \n6507098 NaN None None \n7097823 NaN None None \n7323959 NaN None None \n7999028 NaN None None \n10047815 -1.0 None 2017-05-23T10:34:38.073 \n21140430 NaN None None \n23349566 NaN None None \n29807514 NaN None None \n31146549 NaN None None \n31164662 NaN None None \n31482430 NaN None None \n31516660 NaN None None \n32564909 NaN None None \n33284974 NaN None None \n35611090 NaN None None \n36922809 NaN None None \n37288365 -1.0 None 2017-05-23T11:44:09.133 \n41470962 NaN None None \n44950763 NaN None None \n\n Title AnswerCount CommentCount FavoriteCount \\\nPostId \n6930808 None None 0 None \n45239952 None None 0 None \n74335 None None 0 None \n94627 None None 1 None \n109724 None None 1 None \n207065 None None 1 None \n207074 None None 0 None \n224014 None None 0 None \n273994 None None 3 None \n302681 None None 0 None \n338929 None None 2 None \n350913 None None 2 None \n368859 None None 5 None \n562280 None None 0 None \n1166398 None None 0 None \n1423207 None None 0 None \n2726298 None None 5 None \n2883732 None None 0 None \n2973884 None None 0 None \n2974177 None None 3 None \n3322769 None None 2 None \n3364841 None None 4 None \n3740202 None None 0 None \n5037673 None None 0 None \n5486539 None None 0 None \n5501441 None None 2 None \n5517355 None None 0 None \n5539724 None None 0 None \n5912867 None None 0 None \n5979034 None None 0 None \n6507098 None None 0 None \n7097823 None None 0 None \n7323959 None None 2 None \n7999028 None None 0 None \n10047815 None None 2 None \n21140430 None None 3 None \n23349566 None None 0 None \n29807514 None None 3 None \n31146549 None None 0 None \n31164662 None None 3 None \n31482430 None None 0 None \n31516660 None None 0 None \n32564909 None None 1 None \n33284974 None None 0 None \n35611090 None None 0 None \n36922809 None None 0 None \n37288365 None None 1 None \n41470962 None None 0 None \n44950763 None None 0 None \n\n CommunityOwnedDate ContentLicense ParentId \nPostId \n6930808 None CC BY-SA 3.0 6913166 \n45239952 None CC BY-SA 3.0 45238835 \n74335 None CC BY-SA 2.5 48884 \n94627 None CC BY-SA 3.0 93930 \n109724 None CC BY-SA 2.5 108134 \n207065 None CC BY-SA 2.5 206855 \n207074 None CC BY-SA 2.5 206154 \n224014 None CC BY-SA 2.5 223866 \n273994 None CC BY-SA 2.5 273524 \n302681 None CC BY-SA 2.5 302615 \n338929 None CC BY-SA 2.5 338767 \n350913 2008-12-08T21:12:56.517 CC BY-SA 2.5 350799 \n368859 None CC BY-SA 2.5 368805 \n562280 None CC BY-SA 2.5 556967 \n1166398 None CC BY-SA 2.5 1166317 \n1423207 None CC BY-SA 2.5 1423041 \n2726298 None CC BY-SA 4.0 2725852 \n2883732 None CC BY-SA 2.5 2883722 \n2973884 None CC BY-SA 2.5 2970045 \n2974177 None CC BY-SA 3.0 2970045 \n3322769 None CC BY-SA 2.5 3322337 \n3364841 None CC BY-SA 3.0 3360951 \n3740202 None CC BY-SA 2.5 3738381 \n5037673 None CC BY-SA 2.5 5037432 \n5486539 None CC BY-SA 2.5 5486018 \n5501441 None CC BY-SA 4.0 5501118 \n5517355 None CC BY-SA 2.5 5517314 \n5539724 None CC BY-SA 2.5 5538814 \n5912867 None CC BY-SA 3.0 5912701 \n5979034 None CC BY-SA 3.0 5486018 \n6507098 None CC BY-SA 3.0 6497882 \n7097823 None CC BY-SA 3.0 7097475 \n7323959 None CC BY-SA 3.0 7323859 \n7999028 None CC BY-SA 3.0 7998850 \n10047815 None CC BY-SA 3.0 10047387 \n21140430 2014-01-15T14:44:21.213 CC BY-SA 3.0 21027904 \n23349566 None CC BY-SA 3.0 23346270 \n29807514 None CC BY-SA 3.0 29807249 \n31146549 None CC BY-SA 3.0 31146007 \n31164662 None CC BY-SA 3.0 31030307 \n31482430 None CC BY-SA 3.0 31478409 \n31516660 None CC BY-SA 3.0 31482138 \n32564909 None CC BY-SA 3.0 32529149 \n33284974 None CC BY-SA 3.0 33259671 \n35611090 None CC BY-SA 3.0 35603707 \n36922809 None CC BY-SA 3.0 36922532 \n37288365 None CC BY-SA 3.0 37245595 \n41470962 None CC BY-SA 3.0 41467032 \n44950763 None CC BY-SA 3.0 44933724 ", + "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>Tags</th>\n <th>PostTypeId</th>\n <th>AcceptedAnswerId</th>\n <th>CreationDate</th>\n <th>Score</th>\n <th>ViewCount</th>\n <th>Body</th>\n <th>OwnerUserId</th>\n <th>LastEditorUserId</th>\n <th>LastEditorDisplayName</th>\n <th>LastEditDate</th>\n <th>Title</th>\n <th>AnswerCount</th>\n <th>CommentCount</th>\n <th>FavoriteCount</th>\n <th>CommunityOwnedDate</th>\n <th>ContentLicense</th>\n <th>ParentId</th>\n </tr>\n <tr>\n <th>PostId</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 <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>6930808</th>\n <td><python><django><django-models><django-admin><...</td>\n <td>2</td>\n <td>None</td>\n <td>2011-08-03T17:45:24.243</td>\n <td>1</td>\n <td>None</td>\n <td><p>Well, here's a work around since I can't fi...</td>\n <td>13009</td>\n <td>13009.0</td>\n <td>None</td>\n <td>2011-08-04T11:44:00.257</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>6913166</td>\n </tr>\n <tr>\n <th>45239952</th>\n <td><python><django><migration><django-migrations></td>\n <td>2</td>\n <td>None</td>\n <td>2017-07-21T14:15:08.280</td>\n <td>6</td>\n <td>None</td>\n <td><p>Looks like I just needed to get User the sa...</td>\n <td>13009</td>\n <td>13009.0</td>\n <td>None</td>\n <td>2017-07-21T19:13:22.417</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>45238835</td>\n </tr>\n <tr>\n <th>74335</th>\n <td><python><amazon></td>\n <td>2</td>\n <td>None</td>\n <td>2008-09-16T16:40:08.743</td>\n <td>2</td>\n <td>None</td>\n <td><p>pyaws seems to be the best one out there. ...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>48884</td>\n </tr>\n <tr>\n <th>94627</th>\n <td><python><user-interface><api></td>\n <td>2</td>\n <td>None</td>\n <td>2008-09-18T17:21:42.810</td>\n <td>3</td>\n <td>None</td>\n <td><p><a href=\"http://pythoncard.sourceforge.net/...</td>\n <td>13009</td>\n <td>216356.0</td>\n <td>None</td>\n <td>2012-08-09T19:47:56.843</td>\n <td>None</td>\n <td>None</td>\n <td>1</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>93930</td>\n </tr>\n <tr>\n <th>109724</th>\n <td><python><excel><xlwt><pyexcelerator></td>\n <td>2</td>\n <td>None</td>\n <td>2008-09-20T23:10:13.863</td>\n <td>2</td>\n <td>None</td>\n <td><p>Found example here: <a href=\"http://www.ans...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>1</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>108134</td>\n </tr>\n <tr>\n <th>207065</th>\n <td><python><ajax><screen-scraping><beautifulsoup></td>\n <td>2</td>\n <td>None</td>\n <td>2008-10-16T00:58:10.813</td>\n <td>0</td>\n <td>None</td>\n <td><p>This seems like it's a pretty common proble...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>1</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>206855</td>\n </tr>\n <tr>\n <th>207074</th>\n <td><python><soap><soap-client></td>\n <td>2</td>\n <td>None</td>\n <td>2008-10-16T01:00:24.800</td>\n <td>1</td>\n <td>None</td>\n <td><p>As I suggested <a href=\"https://stackoverfl...</td>\n <td>13009</td>\n <td>-1.0</td>\n <td>None</td>\n <td>2017-05-23T12:34:59.060</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>206154</td>\n </tr>\n <tr>\n <th>224014</th>\n <td><python><ruby><perl><text-parsing></td>\n <td>2</td>\n <td>None</td>\n <td>2008-10-22T00:03:23.323</td>\n <td>5</td>\n <td>None</td>\n <td><p><a href=\"http://pyparsing.wikispaces.com/\" ...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>223866</td>\n </tr>\n <tr>\n <th>273994</th>\n <td><python><programming-languages><python-3.x></td>\n <td>2</td>\n <td>None</td>\n <td>2008-11-07T23:29:44.590</td>\n <td>4</td>\n <td>None</td>\n <td><p>Wouldn't VB6 to VB.net be the biggest examp...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>3</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>273524</td>\n </tr>\n <tr>\n <th>302681</th>\n <td><python><simplehttpserver><embeddedwebserver></td>\n <td>2</td>\n <td>None</td>\n <td>2008-11-19T17:21:06.677</td>\n <td>0</td>\n <td>None</td>\n <td><p>I made this one. <a href=\"http://www.blend...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>302615</td>\n </tr>\n <tr>\n <th>338929</th>\n <td><python><indentation></td>\n <td>2</td>\n <td>None</td>\n <td>2008-12-03T22:10:01.007</td>\n <td>16</td>\n <td>None</td>\n <td><p>Python includes a script for the opposite (...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>2</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>338767</td>\n </tr>\n <tr>\n <th>350913</th>\n <td><python><django><django-forms></td>\n <td>2</td>\n <td>None</td>\n <td>2008-12-08T21:12:56.517</td>\n <td>40</td>\n <td>None</td>\n <td><p>I went ahead and answered my own question. ...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>2</td>\n <td>None</td>\n <td>2008-12-08T21:12:56.517</td>\n <td>CC BY-SA 2.5</td>\n <td>350799</td>\n </tr>\n <tr>\n <th>368859</th>\n <td><python><unicode><ascii><encode></td>\n <td>2</td>\n <td>None</td>\n <td>2008-12-15T16:10:11.413</td>\n <td>-3</td>\n <td>None</td>\n <td><p>This seems to work:</p>\\n\\n<pre><code>'add ...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>5</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>368805</td>\n </tr>\n <tr>\n <th>562280</th>\n <td><python><excel-2007></td>\n <td>2</td>\n <td>None</td>\n <td>2009-02-18T18:28:00.267</td>\n <td>0</td>\n <td>None</td>\n <td><p>May I humbly suggest my site; <a href=\"http...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>556967</td>\n </tr>\n <tr>\n <th>1166398</th>\n <td><python><newline><word-wrap></td>\n <td>2</td>\n <td>None</td>\n <td>2009-07-22T16:09:25.197</td>\n <td>1</td>\n <td>None</td>\n <td><p>It looks like it doesn't support that. Thi...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>1166317</td>\n </tr>\n <tr>\n <th>1423207</th>\n <td><python><frameworks><cgi><nearlyfreespeech></td>\n <td>2</td>\n <td>None</td>\n <td>2009-09-14T18:34:18.867</td>\n <td>2</td>\n <td>None</td>\n <td><p>I got web.py to work on nearly free speech ...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>1423041</td>\n </tr>\n <tr>\n <th>2726298</th>\n <td><python><xlwt><xlrd></td>\n <td>2</td>\n <td>None</td>\n <td>2010-04-28T01:30:54.397</td>\n <td>263</td>\n <td>None</td>\n <td><p>Here's some sample code I used recently to ...</td>\n <td>13009</td>\n <td>3801587.0</td>\n <td>None</td>\n <td>2019-11-04T13:44:52.230</td>\n <td>None</td>\n <td>None</td>\n <td>5</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 4.0</td>\n <td>2725852</td>\n </tr>\n <tr>\n <th>2883732</th>\n <td><python><sql-server><pyodbc><django-pyodbc></td>\n <td>2</td>\n <td>None</td>\n <td>2010-05-21T16:21:27.240</td>\n <td>10</td>\n <td>None</td>\n <td><p>Sorry, I asked too soon, <a href=\"http://co...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>2883722</td>\n </tr>\n <tr>\n <th>2973884</th>\n <td><python><windows><winapi><popen><long-running-...</td>\n <td>2</td>\n <td>None</td>\n <td>2010-06-04T12:04:23.607</td>\n <td>1</td>\n <td>None</td>\n <td><p>This almost works (<a href=\"http://docs.pyt...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>2970045</td>\n </tr>\n <tr>\n <th>2974177</th>\n <td><python><windows><winapi><popen><long-running-...</td>\n <td>2</td>\n <td>None</td>\n <td>2010-06-04T12:41:24.323</td>\n <td>7</td>\n <td>None</td>\n <td><p>Ok, I finally figured this out! This seems...</td>\n <td>13009</td>\n <td>726378.0</td>\n <td>None</td>\n <td>2017-07-28T04:22:46.813</td>\n <td>None</td>\n <td>None</td>\n <td>3</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>2970045</td>\n </tr>\n <tr>\n <th>3322769</th>\n <td><python><sqlalchemy><orm></td>\n <td>2</td>\n <td>None</td>\n <td>2010-07-23T22:11:43.417</td>\n <td>42</td>\n <td>None</td>\n <td><p>Ok I found it after further searching:</p>\\...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>2</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>3322337</td>\n </tr>\n <tr>\n <th>3364841</th>\n <td><python><session><timeout><sqlalchemy></td>\n <td>2</td>\n <td>None</td>\n <td>2010-07-29T16:31:24.073</td>\n <td>56</td>\n <td>None</td>\n <td><p>Whenever you create a new session in your c...</td>\n <td>13009</td>\n <td>972208.0</td>\n <td>None</td>\n <td>2012-03-18T02:57:48.600</td>\n <td>None</td>\n <td>None</td>\n <td>4</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>3360951</td>\n </tr>\n <tr>\n <th>3740202</th>\n <td><python><dictionary></td>\n <td>2</td>\n <td>None</td>\n <td>2010-09-18T02:57:15.853</td>\n <td>7</td>\n <td>None</td>\n <td><p>What you're describing in your edit is how ...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>3738381</td>\n </tr>\n <tr>\n <th>5037673</th>\n <td><python><serialization><pickle><inverted-index></td>\n <td>2</td>\n <td>None</td>\n <td>2011-02-18T04:37:27.133</td>\n <td>0</td>\n <td>None</td>\n <td><p>There's the other pickle library you could ...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>5037432</td>\n </tr>\n <tr>\n <th>5486539</th>\n <td><python><django><django-models><django-admin></td>\n <td>2</td>\n <td>None</td>\n <td>2011-03-30T12:54:01.637</td>\n <td>0</td>\n <td>None</td>\n <td><p>What I did to fix this is I dropped every t...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>5486018</td>\n </tr>\n <tr>\n <th>5501441</th>\n <td><python><xpath><elementtree></td>\n <td>2</td>\n <td>None</td>\n <td>2011-03-31T14:27:50.847</td>\n <td>56</td>\n <td>None</td>\n <td><p>Turns out I needed to say <code>target.find...</td>\n <td>13009</td>\n <td>3820025.0</td>\n <td>None</td>\n <td>2018-12-19T15:54:38.900</td>\n <td>None</td>\n <td>None</td>\n <td>2</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 4.0</td>\n <td>5501118</td>\n </tr>\n <tr>\n <th>5517355</th>\n <td><python><django><django-models></td>\n <td>2</td>\n <td>None</td>\n <td>2011-04-01T18:30:31.930</td>\n <td>3</td>\n <td>None</td>\n <td><p>Ahh, found it in another SO answer. Weird ...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>5517314</td>\n </tr>\n <tr>\n <th>5539724</th>\n <td><python><django><django-models></td>\n <td>2</td>\n <td>None</td>\n <td>2011-04-04T14:12:30.027</td>\n <td>1</td>\n <td>None</td>\n <td><p><code>__init__.py</code> in my project's di...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 2.5</td>\n <td>5538814</td>\n </tr>\n <tr>\n <th>5912867</th>\n <td><python><apache><mod-wsgi><redhat><setuptools></td>\n <td>2</td>\n <td>None</td>\n <td>2011-05-06T14:28:54.537</td>\n <td>0</td>\n <td>None</td>\n <td><p>Oh well, instead of fooling with that, I to...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>5912701</td>\n </tr>\n <tr>\n <th>5979034</th>\n <td><python><django><django-models><django-admin></td>\n <td>2</td>\n <td>None</td>\n <td>2011-05-12T13:51:05.513</td>\n <td>-2</td>\n <td>None</td>\n <td><p><a href=\"http://www.answermysearches.com/fi...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>5486018</td>\n </tr>\n <tr>\n <th>6507098</th>\n <td><python><django><django-models><django-admin><...</td>\n <td>2</td>\n <td>None</td>\n <td>2011-06-28T13:20:49.480</td>\n <td>0</td>\n <td>None</td>\n <td><p>Ok, as a workaround I ended up defining a <...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>6497882</td>\n </tr>\n <tr>\n <th>7097823</th>\n <td><python><django><django-models></td>\n <td>2</td>\n <td>None</td>\n <td>2011-08-17T18:45:06.860</td>\n <td>3</td>\n <td>None</td>\n <td><p>get_or_create sounds busted to me. I'm jus...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>7097475</td>\n </tr>\n <tr>\n <th>7323959</th>\n <td><python><popen><subprocess></td>\n <td>2</td>\n <td>None</td>\n <td>2011-09-06T17:45:14.537</td>\n <td>8</td>\n <td>None</td>\n <td><p>Ok, I'm not sure why but this seems to work...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>2</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>7323859</td>\n </tr>\n <tr>\n <th>7999028</th>\n <td><python><linux><multithreading><threadpool></td>\n <td>2</td>\n <td>None</td>\n <td>2011-11-03T17:09:51.260</td>\n <td>0</td>\n <td>None</td>\n <td><p>Actually this does seem to be working. I s...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>7998850</td>\n </tr>\n <tr>\n <th>10047815</th>\n <td><python><django></td>\n <td>2</td>\n <td>None</td>\n <td>2012-04-06T18:46:30.720</td>\n <td>1</td>\n <td>None</td>\n <td><p><a href=\"https://stackoverflow.com/question...</td>\n <td>13009</td>\n <td>-1.0</td>\n <td>None</td>\n <td>2017-05-23T10:34:38.073</td>\n <td>None</td>\n <td>None</td>\n <td>2</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>10047387</td>\n </tr>\n <tr>\n <th>21140430</th>\n <td><python><jdbc><jpype><jaydebeapi></td>\n <td>2</td>\n <td>None</td>\n <td>2014-01-15T14:44:21.213</td>\n <td>5</td>\n <td>None</td>\n <td><p>Ok, thanks to eltabo and Juan Mellado I fig...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>3</td>\n <td>None</td>\n <td>2014-01-15T14:44:21.213</td>\n <td>CC BY-SA 3.0</td>\n <td>21027904</td>\n </tr>\n <tr>\n <th>23349566</th>\n <td><python><rpy2></td>\n <td>2</td>\n <td>None</td>\n <td>2014-04-28T19:26:54.797</td>\n <td>0</td>\n <td>None</td>\n <td><p>So I was trying to install this on a networ...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>23346270</td>\n </tr>\n <tr>\n <th>29807514</th>\n <td><python><curl><python-requests></td>\n <td>2</td>\n <td>None</td>\n <td>2015-04-22T19:53:07.763</td>\n <td>0</td>\n <td>None</td>\n <td><p>Ok, changing to response.content fixed it. ...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>3</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>29807249</td>\n </tr>\n <tr>\n <th>31146549</th>\n <td><python><flask><uwsgi></td>\n <td>2</td>\n <td>None</td>\n <td>2015-06-30T19:13:43.577</td>\n <td>7</td>\n <td>None</td>\n <td><p>Ok, @ipinak was on the right track. It loo...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>31146007</td>\n </tr>\n <tr>\n <th>31164662</th>\n <td><python><mongodb><uwsgi><mlab><pymongo-3.x></td>\n <td>2</td>\n <td>None</td>\n <td>2015-07-01T14:47:11.400</td>\n <td>14</td>\n <td>None</td>\n <td><p>I fixed it for myself by downgrading from p...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>3</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>31030307</td>\n </tr>\n <tr>\n <th>31482430</th>\n <td><python><nginx><flask><memcached><uwsgi></td>\n <td>2</td>\n <td>None</td>\n <td>2015-07-17T18:30:07.053</td>\n <td>0</td>\n <td>None</td>\n <td><p>This isn't a great answer, but I ended up u...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>31478409</td>\n </tr>\n <tr>\n <th>31516660</th>\n <td><python><memcached><libmemcached><pylibmc></td>\n <td>2</td>\n <td>None</td>\n <td>2015-07-20T12:34:33.923</td>\n <td>0</td>\n <td>None</td>\n <td><p>As far as I can tell it seems to work fine ...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>31482138</td>\n </tr>\n <tr>\n <th>32564909</th>\n <td><python><computer-vision><scikit-image><canny-...</td>\n <td>2</td>\n <td>None</td>\n <td>2015-09-14T12:31:51.097</td>\n <td>1</td>\n <td>None</td>\n <td><p>So the issue was with the canny function re...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>1</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>32529149</td>\n </tr>\n <tr>\n <th>33284974</th>\n <td><python><oracle><macos><cx-oracle><osx-elcapitan></td>\n <td>2</td>\n <td>None</td>\n <td>2015-10-22T15:36:24.507</td>\n <td>0</td>\n <td>None</td>\n <td><p>I think I fixed it. Basically everything i...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>33259671</td>\n </tr>\n <tr>\n <th>35611090</th>\n <td><python><django><celery><django-celery></td>\n <td>2</td>\n <td>None</td>\n <td>2016-02-24T19:18:36.617</td>\n <td>0</td>\n <td>None</td>\n <td><p>After tooling around for a while and trying...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>35603707</td>\n </tr>\n <tr>\n <th>36922809</th>\n <td><python><static-methods><python-decorators><fu...</td>\n <td>2</td>\n <td>None</td>\n <td>2016-04-28T18:32:49.863</td>\n <td>2</td>\n <td>None</td>\n <td><p>There's probably a smarter way to do it but...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>36922532</td>\n </tr>\n <tr>\n <th>37288365</th>\n <td><python><python-2.7><unicode><subprocess></td>\n <td>2</td>\n <td>None</td>\n <td>2016-05-18T00:36:59.467</td>\n <td>1</td>\n <td>None</td>\n <td><p>Wow, this was the weirdest issue ever but I...</td>\n <td>13009</td>\n <td>-1.0</td>\n <td>None</td>\n <td>2017-05-23T11:44:09.133</td>\n <td>None</td>\n <td>None</td>\n <td>1</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>37245595</td>\n </tr>\n <tr>\n <th>41470962</th>\n <td><python><logging></td>\n <td>2</td>\n <td>None</td>\n <td>2017-01-04T18:37:01.457</td>\n <td>1</td>\n <td>None</td>\n <td><p>Here's what I ended up going with. But I'm...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>41467032</td>\n </tr>\n <tr>\n <th>44950763</th>\n <td><python><django><django-models><django-authent...</td>\n <td>2</td>\n <td>None</td>\n <td>2017-07-06T13:45:42.037</td>\n <td>2</td>\n <td>None</td>\n <td><p>As @adrien mentioned in the comment, that w...</td>\n <td>13009</td>\n <td>NaN</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>None</td>\n <td>0</td>\n <td>None</td>\n <td>None</td>\n <td>CC BY-SA 3.0</td>\n <td>44933724</td>\n </tr>\n </tbody>\n</table>\n</div>" + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "answers_df = pd.read_sql_query(f\"\"\"\n", + " SELECT A.Tags, B.*\n", + " FROM Post A\n", + " INNER JOIN Post B ON (B.ParentId = A.PostId) AND (B.ParentId IS NOT NULL)\n", + " WHERE A.Tags LIKE '%python%' AND (B.PostTypeId = 2) AND ((B.LastEditorUserId = {user_id}) OR (B.OwnerUserId = {user_id}))\n", + "\"\"\", db)\n", + "answers_df = answers_df.loc[:,~answers_df.columns.duplicated()].copy()\n", + "answers_df.set_index('PostId', inplace=True)\n", + "answers_df" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 20, + "outputs": [ + { + "data": { + "text/plain": " Tags PostId Score \\\nCommentId \n857928 <python><subprocess><pipe><echo><popen> 1046474 0 \n1513319 <python><django><forms><django-forms> 1640204 0 \n3029786 <python><windows><winapi><popen><long-running-... 2970045 0 \n3421734 <python><permissions><authorization><decorator... 3302844 0 \n6330991 <python><django><django-models><decimal><scien... 5566121 0 \n6331285 <python><django><django-models><decimal><scien... 5566121 0 \n6774887 <python><database><migration><django-south> 5833418 4 \n8234046 <python><django><django-models><django-admin><... 6913166 1 \n8234115 <python><string-formatting><number-formatting>... 6913532 32 \n8235637 <python><django><django-models><django-admin><... 6913166 0 \n8239108 <python><django><django-models><django-admin><... 6913166 0 \n8257824 <python><django><django-models><django-admin><... 6913166 0 \n8499177 <python><django><django-models> 7097475 0 \n10657798 <python><excel><xlwt> 8590741 0 \n10796244 <python><excel><xlwt> 8590741 0 \n11245320 <python> 8976324 0 \n11245634 <python> 8976324 0 \n12490216 <python><django><django-models><django-admin> 9806936 0 \n32554534 <python><django><django-forms><django-admin><d... 19807757 0 \n32567053 <python><django><django-forms><django-admin><d... 19807757 0 \n36034593 <python><numpy> 23497706 0 \n36034937 <python><numpy> 23497706 0 \n36041765 <python><numpy> 23500754 0 \n47738961 <python><python-requests> 29775247 1 \n47742802 <python><curl><python-requests> 29807249 0 \n47743040 <python><curl><python-requests> 29807249 0 \n48550940 <python><matplotlib> 30223161 0 \n48551405 <python><matplotlib> 30223161 0 \n50303593 <python><mongodb><uwsgi><mlab><pymongo-3.x> 31030307 2 \n50336702 <python><mongodb><uwsgi><mlab><pymongo-3.x> 31030307 1 \n50337057 <python><mongodb><uwsgi><mlab><pymongo-3.x> 31030307 0 \n50376360 <python><mongodb><uwsgi><mlab><pymongo-3.x> 31030307 0 \n54364203 <python><oracle><macos><cx-oracle><osx-elcapitan> 33259671 0 \n58665815 <python><django><celery><django-celery> 35486011 0 \n58894206 <python><django><celery><django-celery> 35603707 0 \n62020862 <python><python-2.7><unicode><subprocess> 37245595 0 \n62020942 <python><python-2.7><unicode><subprocess> 37245595 0 \n62020963 <python><python-2.7><unicode><subprocess> 37245595 0 \n68427097 <python><mocking><generator><python-unittest><... 40595679 0 \n70139817 <python><logging> 41467032 0 \n70435606 <python><postgresql><psycopg2><psycopg> 41616578 0 \n76846070 <python><django><django-models><django-authent... 44933724 0 \n77453798 <python><django><migration><django-migrations> 45238835 0 \n77456266 <python><django><migration><django-migrations> 45238835 0 \n80880518 <python><django> 46960782 0 \n\n Body \\\nCommentId \n857928 Yes, it runs from the windows dos console. \n1513319 lemonad, this would be at form creation time, ... \n3029786 Here are a few windows API commands that look ... \n3421734 I don't think I want to use anything built-in.... \n6330991 4.08E+13 has two decimal places, I'm allowing ... \n6331285 I followed those instructions. I've tried all... \n6774887 It's going to be pretty critical data, and hon... \n8234046 I'm thinking I need to make a custom model fie... \n8234115 nah, not at all. I wanted to separate this int... \n8235637 I'm not seeing much action on this thread. I ... \n8239108 I'm not seeing much action on the Django users... \n8257824 IRC seems to be down. No luck there either. \n8499177 @agf. I don't understand what the resolution ... \n10657798 Well, after playing around, the first number i... \n10796244 Thanks for the answers everyone. If anyone is... \n11245320 @Cameron, so you're saying something I import ... \n11245634 Thanks everyone. If anyone wants to post this... \n12490216 @jpic, that's interesting but it's probably ov... \n32554534 I'm coming across the exact same problem. I a... \n32567053 I put an updated question more inline with wha... \n36034593 I was thinking I could reference just the firs... \n36034937 hmm, I can access the first column with array[... \n36041765 hmm, I just ran the code from your answer. Do... \n47738961 @sigmavirus24, that's right I don't want to lo... \n47742802 Yeah, the requests.get step is instant, so I g... \n47743040 That was absolutely the issue. Thanks! Changi... \n48550940 Thanks for the suggestion. what does zlim do?... \n48551405 Thanks. I guess I don't understand what the h... \n50303593 I'm hitting this too on a similar setup. Did ... \n50336702 Want me to start a bounty? Would you be avail... \n50337057 Is this useful? http://blog.fejes.ca/?p=2496 ... \n50376360 Thanks Jesse, I guess we couldn't tell if it w... \n54364203 Thanks. I believe the fix_oralib.rb also does... \n58665815 @zsepi, I updated the question with those. \n58894206 It set's to write to a specified file, and ema... \n62020862 @tdelaney, did you try it on osx? It actually... \n62020942 I tried redirecting to a file and it still out... \n62020963 @tdelaney, I think you're right, it's probably... \n68427097 Good point. I took that line out. Same issue... \n70139817 I have 'A' and 'B' configured elsewhere to do ... \n70435606 I want to do everything in memory. All the do... \n76846070 Thanks. I didn't notice that. Taking it out ... \n77453798 I was wondering about that. But how would I c... \n77456266 That actually fixed my problem. \n80880518 @Jiaaro, thanks, but just tried it and no impr... \n\n CreationDate UserId ContentLicense \nCommentId \n857928 2009-06-25T22:15:13.437 13009 CC BY-SA 2.5 \n1513319 2009-10-29T12:44:20.160 13009 CC BY-SA 2.5 \n3029786 2010-06-03T22:10:42.643 13009 CC BY-SA 2.5 \n3421734 2010-07-21T19:14:03.313 13009 CC BY-SA 2.5 \n6330991 2011-04-06T12:26:33.123 13009 CC BY-SA 2.5 \n6331285 2011-04-06T12:43:15.377 13009 CC BY-SA 2.5 \n6774887 2011-05-04T20:00:35.997 13009 CC BY-SA 3.0 \n8234046 2011-08-02T14:23:53.283 13009 CC BY-SA 3.0 \n8234115 2011-08-02T14:26:37.263 13009 CC BY-SA 3.0 \n8235637 2011-08-02T15:36:12.527 13009 CC BY-SA 3.0 \n8239108 2011-08-02T18:48:59.337 13009 CC BY-SA 3.0 \n8257824 2011-08-03T16:59:56.540 13009 CC BY-SA 3.0 \n8499177 2011-08-17T18:43:55.627 13009 CC BY-SA 3.0 \n10657798 2011-12-21T15:30:22.113 13009 CC BY-SA 3.0 \n10796244 2011-12-30T19:08:28.063 13009 CC BY-SA 3.0 \n11245320 2012-01-23T18:14:14.870 13009 CC BY-SA 3.0 \n11245634 2012-01-23T18:28:32.813 13009 CC BY-SA 3.0 \n12490216 2012-03-21T15:00:45.163 13009 CC BY-SA 3.0 \n32554534 2014-02-04T15:05:23.023 13009 CC BY-SA 3.0 \n32567053 2014-02-04T20:26:56.147 13009 CC BY-SA 3.0 \n36034593 2014-05-06T14:42:07.190 13009 CC BY-SA 3.0 \n36034937 2014-05-06T14:49:57.347 13009 CC BY-SA 3.0 \n36041765 2014-05-06T17:47:18.563 13009 CC BY-SA 3.0 \n47738961 2015-04-22T18:04:58.213 13009 CC BY-SA 3.0 \n47742802 2015-04-22T19:45:33.083 13009 CC BY-SA 3.0 \n47743040 2015-04-22T19:52:21.247 13009 CC BY-SA 3.0 \n48550940 2015-05-13T19:22:13.533 13009 CC BY-SA 3.0 \n48551405 2015-05-13T19:36:25.690 13009 CC BY-SA 3.0 \n50303593 2015-06-30T19:18:02.697 13009 CC BY-SA 3.0 \n50336702 2015-07-01T14:27:34.823 13009 CC BY-SA 3.0 \n50337057 2015-07-01T14:35:16.503 13009 CC BY-SA 3.0 \n50376360 2015-07-02T13:09:14.617 13009 CC BY-SA 3.0 \n54364203 2015-10-22T13:16:49.317 13009 CC BY-SA 3.0 \n58665815 2016-02-18T15:55:59.940 13009 CC BY-SA 3.0 \n58894206 2016-02-24T14:29:13.990 13009 CC BY-SA 3.0 \n62020862 2016-05-16T03:06:55.457 13009 CC BY-SA 3.0 \n62020942 2016-05-16T03:13:12.050 13009 CC BY-SA 3.0 \n62020963 2016-05-16T03:14:39.700 13009 CC BY-SA 3.0 \n68427097 2016-11-14T18:52:50.053 13009 CC BY-SA 3.0 \n70139817 2017-01-04T15:15:07.183 13009 CC BY-SA 3.0 \n70435606 2017-01-12T15:37:23.967 13009 CC BY-SA 3.0 \n76846070 2017-07-05T20:00:37.840 13009 CC BY-SA 3.0 \n77453798 2017-07-21T17:54:41.707 13009 CC BY-SA 3.0 \n77456266 2017-07-21T19:11:37.543 13009 CC BY-SA 3.0 \n80880518 2017-10-27T02:20:12.973 13009 CC BY-SA 3.0 ", + "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>Tags</th>\n <th>PostId</th>\n <th>Score</th>\n <th>Body</th>\n <th>CreationDate</th>\n <th>UserId</th>\n <th>ContentLicense</th>\n </tr>\n <tr>\n <th>CommentId</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>857928</th>\n <td><python><subprocess><pipe><echo><popen></td>\n <td>1046474</td>\n <td>0</td>\n <td>Yes, it runs from the windows dos console.</td>\n <td>2009-06-25T22:15:13.437</td>\n <td>13009</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>1513319</th>\n <td><python><django><forms><django-forms></td>\n <td>1640204</td>\n <td>0</td>\n <td>lemonad, this would be at form creation time, ...</td>\n <td>2009-10-29T12:44:20.160</td>\n <td>13009</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>3029786</th>\n <td><python><windows><winapi><popen><long-running-...</td>\n <td>2970045</td>\n <td>0</td>\n <td>Here are a few windows API commands that look ...</td>\n <td>2010-06-03T22:10:42.643</td>\n <td>13009</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>3421734</th>\n <td><python><permissions><authorization><decorator...</td>\n <td>3302844</td>\n <td>0</td>\n <td>I don't think I want to use anything built-in....</td>\n <td>2010-07-21T19:14:03.313</td>\n <td>13009</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>6330991</th>\n <td><python><django><django-models><decimal><scien...</td>\n <td>5566121</td>\n <td>0</td>\n <td>4.08E+13 has two decimal places, I'm allowing ...</td>\n <td>2011-04-06T12:26:33.123</td>\n <td>13009</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>6331285</th>\n <td><python><django><django-models><decimal><scien...</td>\n <td>5566121</td>\n <td>0</td>\n <td>I followed those instructions. I've tried all...</td>\n <td>2011-04-06T12:43:15.377</td>\n <td>13009</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>6774887</th>\n <td><python><database><migration><django-south></td>\n <td>5833418</td>\n <td>4</td>\n <td>It's going to be pretty critical data, and hon...</td>\n <td>2011-05-04T20:00:35.997</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>8234046</th>\n <td><python><django><django-models><django-admin><...</td>\n <td>6913166</td>\n <td>1</td>\n <td>I'm thinking I need to make a custom model fie...</td>\n <td>2011-08-02T14:23:53.283</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>8234115</th>\n <td><python><string-formatting><number-formatting>...</td>\n <td>6913532</td>\n <td>32</td>\n <td>nah, not at all. I wanted to separate this int...</td>\n <td>2011-08-02T14:26:37.263</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>8235637</th>\n <td><python><django><django-models><django-admin><...</td>\n <td>6913166</td>\n <td>0</td>\n <td>I'm not seeing much action on this thread. I ...</td>\n <td>2011-08-02T15:36:12.527</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>8239108</th>\n <td><python><django><django-models><django-admin><...</td>\n <td>6913166</td>\n <td>0</td>\n <td>I'm not seeing much action on the Django users...</td>\n <td>2011-08-02T18:48:59.337</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>8257824</th>\n <td><python><django><django-models><django-admin><...</td>\n <td>6913166</td>\n <td>0</td>\n <td>IRC seems to be down. No luck there either.</td>\n <td>2011-08-03T16:59:56.540</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>8499177</th>\n <td><python><django><django-models></td>\n <td>7097475</td>\n <td>0</td>\n <td>@agf. I don't understand what the resolution ...</td>\n <td>2011-08-17T18:43:55.627</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>10657798</th>\n <td><python><excel><xlwt></td>\n <td>8590741</td>\n <td>0</td>\n <td>Well, after playing around, the first number i...</td>\n <td>2011-12-21T15:30:22.113</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>10796244</th>\n <td><python><excel><xlwt></td>\n <td>8590741</td>\n <td>0</td>\n <td>Thanks for the answers everyone. If anyone is...</td>\n <td>2011-12-30T19:08:28.063</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>11245320</th>\n <td><python></td>\n <td>8976324</td>\n <td>0</td>\n <td>@Cameron, so you're saying something I import ...</td>\n <td>2012-01-23T18:14:14.870</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>11245634</th>\n <td><python></td>\n <td>8976324</td>\n <td>0</td>\n <td>Thanks everyone. If anyone wants to post this...</td>\n <td>2012-01-23T18:28:32.813</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>12490216</th>\n <td><python><django><django-models><django-admin></td>\n <td>9806936</td>\n <td>0</td>\n <td>@jpic, that's interesting but it's probably ov...</td>\n <td>2012-03-21T15:00:45.163</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>32554534</th>\n <td><python><django><django-forms><django-admin><d...</td>\n <td>19807757</td>\n <td>0</td>\n <td>I'm coming across the exact same problem. I a...</td>\n <td>2014-02-04T15:05:23.023</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>32567053</th>\n <td><python><django><django-forms><django-admin><d...</td>\n <td>19807757</td>\n <td>0</td>\n <td>I put an updated question more inline with wha...</td>\n <td>2014-02-04T20:26:56.147</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>36034593</th>\n <td><python><numpy></td>\n <td>23497706</td>\n <td>0</td>\n <td>I was thinking I could reference just the firs...</td>\n <td>2014-05-06T14:42:07.190</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>36034937</th>\n <td><python><numpy></td>\n <td>23497706</td>\n <td>0</td>\n <td>hmm, I can access the first column with array[...</td>\n <td>2014-05-06T14:49:57.347</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>36041765</th>\n <td><python><numpy></td>\n <td>23500754</td>\n <td>0</td>\n <td>hmm, I just ran the code from your answer. Do...</td>\n <td>2014-05-06T17:47:18.563</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>47738961</th>\n <td><python><python-requests></td>\n <td>29775247</td>\n <td>1</td>\n <td>@sigmavirus24, that's right I don't want to lo...</td>\n <td>2015-04-22T18:04:58.213</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>47742802</th>\n <td><python><curl><python-requests></td>\n <td>29807249</td>\n <td>0</td>\n <td>Yeah, the requests.get step is instant, so I g...</td>\n <td>2015-04-22T19:45:33.083</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>47743040</th>\n <td><python><curl><python-requests></td>\n <td>29807249</td>\n <td>0</td>\n <td>That was absolutely the issue. Thanks! Changi...</td>\n <td>2015-04-22T19:52:21.247</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>48550940</th>\n <td><python><matplotlib></td>\n <td>30223161</td>\n <td>0</td>\n <td>Thanks for the suggestion. what does zlim do?...</td>\n <td>2015-05-13T19:22:13.533</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>48551405</th>\n <td><python><matplotlib></td>\n <td>30223161</td>\n <td>0</td>\n <td>Thanks. I guess I don't understand what the h...</td>\n <td>2015-05-13T19:36:25.690</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>50303593</th>\n <td><python><mongodb><uwsgi><mlab><pymongo-3.x></td>\n <td>31030307</td>\n <td>2</td>\n <td>I'm hitting this too on a similar setup. Did ...</td>\n <td>2015-06-30T19:18:02.697</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>50336702</th>\n <td><python><mongodb><uwsgi><mlab><pymongo-3.x></td>\n <td>31030307</td>\n <td>1</td>\n <td>Want me to start a bounty? Would you be avail...</td>\n <td>2015-07-01T14:27:34.823</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>50337057</th>\n <td><python><mongodb><uwsgi><mlab><pymongo-3.x></td>\n <td>31030307</td>\n <td>0</td>\n <td>Is this useful? http://blog.fejes.ca/?p=2496 ...</td>\n <td>2015-07-01T14:35:16.503</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>50376360</th>\n <td><python><mongodb><uwsgi><mlab><pymongo-3.x></td>\n <td>31030307</td>\n <td>0</td>\n <td>Thanks Jesse, I guess we couldn't tell if it w...</td>\n <td>2015-07-02T13:09:14.617</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>54364203</th>\n <td><python><oracle><macos><cx-oracle><osx-elcapitan></td>\n <td>33259671</td>\n <td>0</td>\n <td>Thanks. I believe the fix_oralib.rb also does...</td>\n <td>2015-10-22T13:16:49.317</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>58665815</th>\n <td><python><django><celery><django-celery></td>\n <td>35486011</td>\n <td>0</td>\n <td>@zsepi, I updated the question with those.</td>\n <td>2016-02-18T15:55:59.940</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>58894206</th>\n <td><python><django><celery><django-celery></td>\n <td>35603707</td>\n <td>0</td>\n <td>It set's to write to a specified file, and ema...</td>\n <td>2016-02-24T14:29:13.990</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>62020862</th>\n <td><python><python-2.7><unicode><subprocess></td>\n <td>37245595</td>\n <td>0</td>\n <td>@tdelaney, did you try it on osx? It actually...</td>\n <td>2016-05-16T03:06:55.457</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>62020942</th>\n <td><python><python-2.7><unicode><subprocess></td>\n <td>37245595</td>\n <td>0</td>\n <td>I tried redirecting to a file and it still out...</td>\n <td>2016-05-16T03:13:12.050</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>62020963</th>\n <td><python><python-2.7><unicode><subprocess></td>\n <td>37245595</td>\n <td>0</td>\n <td>@tdelaney, I think you're right, it's probably...</td>\n <td>2016-05-16T03:14:39.700</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>68427097</th>\n <td><python><mocking><generator><python-unittest><...</td>\n <td>40595679</td>\n <td>0</td>\n <td>Good point. I took that line out. Same issue...</td>\n <td>2016-11-14T18:52:50.053</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>70139817</th>\n <td><python><logging></td>\n <td>41467032</td>\n <td>0</td>\n <td>I have 'A' and 'B' configured elsewhere to do ...</td>\n <td>2017-01-04T15:15:07.183</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>70435606</th>\n <td><python><postgresql><psycopg2><psycopg></td>\n <td>41616578</td>\n <td>0</td>\n <td>I want to do everything in memory. All the do...</td>\n <td>2017-01-12T15:37:23.967</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>76846070</th>\n <td><python><django><django-models><django-authent...</td>\n <td>44933724</td>\n <td>0</td>\n <td>Thanks. I didn't notice that. Taking it out ...</td>\n <td>2017-07-05T20:00:37.840</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>77453798</th>\n <td><python><django><migration><django-migrations></td>\n <td>45238835</td>\n <td>0</td>\n <td>I was wondering about that. But how would I c...</td>\n <td>2017-07-21T17:54:41.707</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>77456266</th>\n <td><python><django><migration><django-migrations></td>\n <td>45238835</td>\n <td>0</td>\n <td>That actually fixed my problem.</td>\n <td>2017-07-21T19:11:37.543</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>80880518</th>\n <td><python><django></td>\n <td>46960782</td>\n <td>0</td>\n <td>@Jiaaro, thanks, but just tried it and no impr...</td>\n <td>2017-10-27T02:20:12.973</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n </tbody>\n</table>\n</div>" + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "comments_on_questions_df = pd.read_sql_query(f\"\"\"\n", + " SELECT A.Tags, B.*\n", + " FROM Post A\n", + " INNER JOIN Comment B ON (B.PostId = A.PostId)\n", + " WHERE A.Tags LIKE '%python%' AND (B.UserId = {user_id}) AND (A.PostTypeId = 1)\n", + "\"\"\", db)\n", + "comments_on_questions_df.set_index('CommentId', inplace=True)\n", + "comments_on_questions_df" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 21, + "outputs": [ + { + "data": { + "text/plain": " Tags PostId Score \\\nCommentId \n27452 <python><memory-management><short> 120454 0 \n30223 <python> 125052 0 \n63505 <python> 92318 0 \n124749 <python><mysql><database><deadlock> 270449 0 \n124761 <python><mysql><database><deadlock> 270492 0 \n... ... ... ... \n68725297 <python><subprocess><fork> 40749648 0 \n68725576 <python><subprocess><fork> 40749648 1 \n70480473 <python><postgresql><psycopg2><psycopg> 41623932 0 \n70641464 <python><django><testing><sqlite> 1203379 0 \n79329507 <python> 13091300 9 \n\n Body \\\nCommentId \n27452 Can I use IIBTree without installing all of Zo... \n30223 Keep in mind there are some unpythonic idioms ... \n63505 What about iterators exactly? \n124749 That would just cause a OperationalError: (120... \n124761 How would I make sure they run at exactly the ... \n... ... \n68725297 Follow up question. What if the child finishe... \n68725576 Excellent thanks! From your article, I guess ... \n70480473 Yes, I verified that worked to remove the quot... \n70641464 @bstpierre, how did you force transaction supp... \n79329507 Only problem with this is I get code lint warn... \n\n CreationDate UserId ContentLicense \nCommentId \n27452 2008-09-23T16:48:24.133 13009 CC BY-SA 2.5 \n30223 2008-09-24T14:02:17.330 13009 CC BY-SA 2.5 \n63505 2008-10-08T01:43:15.823 13009 CC BY-SA 2.5 \n124749 2008-11-06T22:10:52.610 13009 CC BY-SA 2.5 \n124761 2008-11-06T22:12:43.137 13009 CC BY-SA 2.5 \n... ... ... ... \n68725297 2016-11-22T19:04:27.827 13009 CC BY-SA 3.0 \n68725576 2016-11-22T19:13:12.043 13009 CC BY-SA 3.0 \n70480473 2017-01-13T17:35:23.640 13009 CC BY-SA 3.0 \n70641464 2017-01-18T15:34:03.417 13009 CC BY-SA 3.0 \n79329507 2017-09-12T18:41:40.393 13009 CC BY-SA 3.0 \n\n[99 rows x 7 columns]", + "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>Tags</th>\n <th>PostId</th>\n <th>Score</th>\n <th>Body</th>\n <th>CreationDate</th>\n <th>UserId</th>\n <th>ContentLicense</th>\n </tr>\n <tr>\n <th>CommentId</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>27452</th>\n <td><python><memory-management><short></td>\n <td>120454</td>\n <td>0</td>\n <td>Can I use IIBTree without installing all of Zo...</td>\n <td>2008-09-23T16:48:24.133</td>\n <td>13009</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>30223</th>\n <td><python></td>\n <td>125052</td>\n <td>0</td>\n <td>Keep in mind there are some unpythonic idioms ...</td>\n <td>2008-09-24T14:02:17.330</td>\n <td>13009</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>63505</th>\n <td><python></td>\n <td>92318</td>\n <td>0</td>\n <td>What about iterators exactly?</td>\n <td>2008-10-08T01:43:15.823</td>\n <td>13009</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>124749</th>\n <td><python><mysql><database><deadlock></td>\n <td>270449</td>\n <td>0</td>\n <td>That would just cause a OperationalError: (120...</td>\n <td>2008-11-06T22:10:52.610</td>\n <td>13009</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>124761</th>\n <td><python><mysql><database><deadlock></td>\n <td>270492</td>\n <td>0</td>\n <td>How would I make sure they run at exactly the ...</td>\n <td>2008-11-06T22:12:43.137</td>\n <td>13009</td>\n <td>CC BY-SA 2.5</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>68725297</th>\n <td><python><subprocess><fork></td>\n <td>40749648</td>\n <td>0</td>\n <td>Follow up question. What if the child finishe...</td>\n <td>2016-11-22T19:04:27.827</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>68725576</th>\n <td><python><subprocess><fork></td>\n <td>40749648</td>\n <td>1</td>\n <td>Excellent thanks! From your article, I guess ...</td>\n <td>2016-11-22T19:13:12.043</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>70480473</th>\n <td><python><postgresql><psycopg2><psycopg></td>\n <td>41623932</td>\n <td>0</td>\n <td>Yes, I verified that worked to remove the quot...</td>\n <td>2017-01-13T17:35:23.640</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>70641464</th>\n <td><python><django><testing><sqlite></td>\n <td>1203379</td>\n <td>0</td>\n <td>@bstpierre, how did you force transaction supp...</td>\n <td>2017-01-18T15:34:03.417</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n <tr>\n <th>79329507</th>\n <td><python></td>\n <td>13091300</td>\n <td>9</td>\n <td>Only problem with this is I get code lint warn...</td>\n <td>2017-09-12T18:41:40.393</td>\n <td>13009</td>\n <td>CC BY-SA 3.0</td>\n </tr>\n </tbody>\n</table>\n<p>99 rows × 7 columns</p>\n</div>" + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "comments_on_answers_df = pd.read_sql_query(f\"\"\"\n", + " SELECT A.Tags, C.*\n", + " FROM Post A\n", + " INNER JOIN Post B ON (B.ParentId = A.PostId) AND (B.ParentId IS NOT NULL)\n", + " INNER JOIN Comment C ON (B.PostId = C.PostId)\n", + " WHERE A.Tags LIKE '%python%' AND (C.UserId = {user_id}) AND (B.PostTypeId = 2)\n", + "\"\"\", db)\n", + "comments_on_answers_df.set_index('CommentId', inplace=True)\n", + "comments_on_answers_df" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 22, + "outputs": [], + "source": [ + "from post_embedding_builder import Import" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 23, + "outputs": [], + "source": [ + "from static_graph_construction import StaticGraphConstruction" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "markdown", + "source": [ + "Let's construct the heterogenous graph" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 24, + "outputs": [], + "source": [ + "comments_df = pd.concat([comments_on_questions_df, comments_on_answers_df])" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 27, + "outputs": [], + "source": [ + "graph_constructor = StaticGraphConstruction()" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 26, + "outputs": [ + { + "ename": "KeyboardInterrupt", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001B[1;31m---------------------------------------------------------------------------\u001B[0m", + "\u001B[1;31mKeyboardInterrupt\u001B[0m Traceback (most recent call last)", + "Cell \u001B[1;32mIn [26], line 3\u001B[0m\n\u001B[0;32m 1\u001B[0m \u001B[38;5;28;01mimport\u001B[39;00m \u001B[38;5;21;01mtorch_geometric\u001B[39;00m\u001B[38;5;21;01m.\u001B[39;00m\u001B[38;5;21;01mtransforms\u001B[39;00m \u001B[38;5;28;01mas\u001B[39;00m \u001B[38;5;21;01mT\u001B[39;00m\n\u001B[0;32m 2\u001B[0m graph_constructor \u001B[38;5;241m=\u001B[39m StaticGraphConstruction()\n\u001B[1;32m----> 3\u001B[0m graph_out \u001B[38;5;241m=\u001B[39m \u001B[43mgraph_constructor\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mconstruct\u001B[49m\u001B[43m(\u001B[49m\u001B[43mquestions_df\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43manswers_df\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mcomments_df\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 4\u001B[0m \u001B[38;5;66;03m#graph_out['module'].x = torch.empty(0, 110, dtype=torch.long)\u001B[39;00m\n\u001B[0;32m 5\u001B[0m graph_out\n", + "File \u001B[1;32m~\\Documents\\graph4stackoverflow\\embeddings\\static_graph_construction.py:120\u001B[0m, in \u001B[0;36mStaticGraphConstruction.construct\u001B[1;34m(self, questions, answers, comments)\u001B[0m\n\u001B[0;32m 114\u001B[0m comments \u001B[38;5;241m=\u001B[39m comments\u001B[38;5;241m.\u001B[39mhead(\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_post_count_limit)\n\u001B[0;32m 116\u001B[0m \u001B[38;5;66;03m# questions.reset_index(inplace=True)\u001B[39;00m\n\u001B[0;32m 117\u001B[0m \u001B[38;5;66;03m# answers.reset_index(inplace=True)\u001B[39;00m\n\u001B[0;32m 118\u001B[0m \u001B[38;5;66;03m# comments.reset_index(inplace=True)\u001B[39;00m\n\u001B[1;32m--> 120\u001B[0m question_nodes \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;43mlist\u001B[39;49m\u001B[43m(\u001B[49m\u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mprocess_questions\u001B[49m\u001B[43m(\u001B[49m\u001B[43mquestions\u001B[49m\u001B[43m)\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 121\u001B[0m answer_nodes \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mlist\u001B[39m(\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mprocess_answers(answers))\n\u001B[0;32m 122\u001B[0m comment_nodes \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mlist\u001B[39m(\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mprocess_comments(comments))\n", + "File \u001B[1;32m~\\Documents\\graph4stackoverflow\\embeddings\\static_graph_construction.py:39\u001B[0m, in \u001B[0;36mStaticGraphConstruction.process_questions\u001B[1;34m(self, questions)\u001B[0m\n\u001B[0;32m 38\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m \u001B[38;5;21mprocess_questions\u001B[39m(\u001B[38;5;28mself\u001B[39m, questions: pd\u001B[38;5;241m.\u001B[39mDataFrame) \u001B[38;5;241m-\u001B[39m\u001B[38;5;241m>\u001B[39m torch\u001B[38;5;241m.\u001B[39mTensor:\n\u001B[1;32m---> 39\u001B[0m word_embedding, code_embedding, modules \u001B[38;5;241m=\u001B[39m \u001B[43mStaticGraphConstruction\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mpost_embedding_builder\u001B[49m\u001B[43m(\u001B[49m\u001B[43mquestions\u001B[49m\u001B[43m[\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mBody\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m]\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43m_use_bert\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mquestions\u001B[49m\u001B[43m[\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mTitle\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m]\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 40\u001B[0m \u001B[38;5;28;01mfor\u001B[39;00m i, body, title, tags \u001B[38;5;129;01min\u001B[39;00m questions[[\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mBody\u001B[39m\u001B[38;5;124m'\u001B[39m, \u001B[38;5;124m'\u001B[39m\u001B[38;5;124mTitle\u001B[39m\u001B[38;5;124m'\u001B[39m, \u001B[38;5;124m'\u001B[39m\u001B[38;5;124mTags\u001B[39m\u001B[38;5;124m'\u001B[39m]]\u001B[38;5;241m.\u001B[39mitertuples():\n\u001B[0;32m 42\u001B[0m modules \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mprocess_module_names(modules)\n", + "File \u001B[1;32m~\\Documents\\graph4stackoverflow\\venv\\lib\\site-packages\\torch\\nn\\modules\\module.py:1190\u001B[0m, in \u001B[0;36mModule._call_impl\u001B[1;34m(self, *input, **kwargs)\u001B[0m\n\u001B[0;32m 1186\u001B[0m \u001B[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001B[39;00m\n\u001B[0;32m 1187\u001B[0m \u001B[38;5;66;03m# this function, and just call forward.\u001B[39;00m\n\u001B[0;32m 1188\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m (\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_backward_hooks \u001B[38;5;129;01mor\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_forward_hooks \u001B[38;5;129;01mor\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_forward_pre_hooks \u001B[38;5;129;01mor\u001B[39;00m _global_backward_hooks\n\u001B[0;32m 1189\u001B[0m \u001B[38;5;129;01mor\u001B[39;00m _global_forward_hooks \u001B[38;5;129;01mor\u001B[39;00m _global_forward_pre_hooks):\n\u001B[1;32m-> 1190\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[43mforward_call\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;28;43minput\u001B[39;49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[43mkwargs\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 1191\u001B[0m \u001B[38;5;66;03m# Do not call functions when jit is used\u001B[39;00m\n\u001B[0;32m 1192\u001B[0m full_backward_hooks, non_full_backward_hooks \u001B[38;5;241m=\u001B[39m [], []\n", + "File \u001B[1;32m~\\Documents\\graph4stackoverflow\\embeddings\\post_embedding_builder.py:64\u001B[0m, in \u001B[0;36mPostEmbedding.forward\u001B[1;34m(self, html_batch, use_bert, title_batch)\u001B[0m\n\u001B[0;32m 62\u001B[0m t1 \u001B[38;5;241m=\u001B[39m time\u001B[38;5;241m.\u001B[39mtime()\n\u001B[0;32m 63\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m use_bert:\n\u001B[1;32m---> 64\u001B[0m para_emb \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mto_bert_embedding\u001B[49m\u001B[43m(\u001B[49m\u001B[43m[\u001B[49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[38;5;124;43m \u001B[39;49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mjoin\u001B[49m\u001B[43m(\u001B[49m\u001B[43mps\u001B[49m\u001B[43m)\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;28;43;01mfor\u001B[39;49;00m\u001B[43m \u001B[49m\u001B[43mps\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;129;43;01min\u001B[39;49;00m\u001B[43m \u001B[49m\u001B[43mparagraph_batches\u001B[49m\u001B[43m]\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 65\u001B[0m \u001B[38;5;28;01melse\u001B[39;00m:\n\u001B[0;32m 66\u001B[0m \u001B[38;5;66;03m#para_emb = self.to_glove_paragraph_embedding(ps)\u001B[39;00m\n\u001B[0;32m 67\u001B[0m \u001B[38;5;28;01mraise\u001B[39;00m \u001B[38;5;167;01mNotImplementedError\u001B[39;00m(\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mGloVe paragraph embedding need to be refactored to work with batches\u001B[39m\u001B[38;5;124m\"\u001B[39m)\n", + "File \u001B[1;32m~\\Documents\\graph4stackoverflow\\embeddings\\post_embedding_builder.py:154\u001B[0m, in \u001B[0;36mPostEmbedding.to_bert_embedding\u001B[1;34m(self, texts)\u001B[0m\n\u001B[0;32m 152\u001B[0m encodings \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_bert_tokenizer(texts, padding\u001B[38;5;241m=\u001B[39m\u001B[38;5;28;01mTrue\u001B[39;00m, truncation\u001B[38;5;241m=\u001B[39m\u001B[38;5;28;01mTrue\u001B[39;00m, return_tensors\u001B[38;5;241m=\u001B[39m\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mpt\u001B[39m\u001B[38;5;124m'\u001B[39m, max_length\u001B[38;5;241m=\u001B[39m\u001B[38;5;241m512\u001B[39m)\n\u001B[0;32m 153\u001B[0m \u001B[38;5;28;01mwith\u001B[39;00m torch\u001B[38;5;241m.\u001B[39mno_grad():\n\u001B[1;32m--> 154\u001B[0m outputs \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43m_bert_model\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[43mencodings\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 155\u001B[0m last_layer \u001B[38;5;241m=\u001B[39m outputs\u001B[38;5;241m.\u001B[39mlast_hidden_state\n\u001B[0;32m 156\u001B[0m \u001B[38;5;28mcls\u001B[39m \u001B[38;5;241m=\u001B[39m last_layer[:, \u001B[38;5;241m0\u001B[39m, :]\n", + "File \u001B[1;32m~\\Documents\\graph4stackoverflow\\venv\\lib\\site-packages\\torch\\nn\\modules\\module.py:1190\u001B[0m, in \u001B[0;36mModule._call_impl\u001B[1;34m(self, *input, **kwargs)\u001B[0m\n\u001B[0;32m 1186\u001B[0m \u001B[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001B[39;00m\n\u001B[0;32m 1187\u001B[0m \u001B[38;5;66;03m# this function, and just call forward.\u001B[39;00m\n\u001B[0;32m 1188\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m (\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_backward_hooks \u001B[38;5;129;01mor\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_forward_hooks \u001B[38;5;129;01mor\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_forward_pre_hooks \u001B[38;5;129;01mor\u001B[39;00m _global_backward_hooks\n\u001B[0;32m 1189\u001B[0m \u001B[38;5;129;01mor\u001B[39;00m _global_forward_hooks \u001B[38;5;129;01mor\u001B[39;00m _global_forward_pre_hooks):\n\u001B[1;32m-> 1190\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[43mforward_call\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;28;43minput\u001B[39;49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[43mkwargs\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 1191\u001B[0m \u001B[38;5;66;03m# Do not call functions when jit is used\u001B[39;00m\n\u001B[0;32m 1192\u001B[0m full_backward_hooks, non_full_backward_hooks \u001B[38;5;241m=\u001B[39m [], []\n", + "File \u001B[1;32m~\\Documents\\graph4stackoverflow\\venv\\lib\\site-packages\\transformers\\models\\bert\\modeling_bert.py:1014\u001B[0m, in \u001B[0;36mBertModel.forward\u001B[1;34m(self, input_ids, attention_mask, token_type_ids, position_ids, head_mask, inputs_embeds, encoder_hidden_states, encoder_attention_mask, past_key_values, use_cache, output_attentions, output_hidden_states, return_dict)\u001B[0m\n\u001B[0;32m 1005\u001B[0m head_mask \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mget_head_mask(head_mask, \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mconfig\u001B[38;5;241m.\u001B[39mnum_hidden_layers)\n\u001B[0;32m 1007\u001B[0m embedding_output \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39membeddings(\n\u001B[0;32m 1008\u001B[0m input_ids\u001B[38;5;241m=\u001B[39minput_ids,\n\u001B[0;32m 1009\u001B[0m position_ids\u001B[38;5;241m=\u001B[39mposition_ids,\n\u001B[1;32m (...)\u001B[0m\n\u001B[0;32m 1012\u001B[0m past_key_values_length\u001B[38;5;241m=\u001B[39mpast_key_values_length,\n\u001B[0;32m 1013\u001B[0m )\n\u001B[1;32m-> 1014\u001B[0m encoder_outputs \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mencoder\u001B[49m\u001B[43m(\u001B[49m\n\u001B[0;32m 1015\u001B[0m \u001B[43m \u001B[49m\u001B[43membedding_output\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 1016\u001B[0m \u001B[43m \u001B[49m\u001B[43mattention_mask\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mextended_attention_mask\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 1017\u001B[0m \u001B[43m \u001B[49m\u001B[43mhead_mask\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mhead_mask\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 1018\u001B[0m \u001B[43m \u001B[49m\u001B[43mencoder_hidden_states\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mencoder_hidden_states\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 1019\u001B[0m \u001B[43m \u001B[49m\u001B[43mencoder_attention_mask\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mencoder_extended_attention_mask\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 1020\u001B[0m \u001B[43m \u001B[49m\u001B[43mpast_key_values\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mpast_key_values\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 1021\u001B[0m \u001B[43m \u001B[49m\u001B[43muse_cache\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43muse_cache\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 1022\u001B[0m \u001B[43m \u001B[49m\u001B[43moutput_attentions\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43moutput_attentions\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 1023\u001B[0m \u001B[43m \u001B[49m\u001B[43moutput_hidden_states\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43moutput_hidden_states\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 1024\u001B[0m \u001B[43m \u001B[49m\u001B[43mreturn_dict\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mreturn_dict\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 1025\u001B[0m \u001B[43m\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 1026\u001B[0m sequence_output \u001B[38;5;241m=\u001B[39m encoder_outputs[\u001B[38;5;241m0\u001B[39m]\n\u001B[0;32m 1027\u001B[0m pooled_output \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mpooler(sequence_output) \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mpooler \u001B[38;5;129;01mis\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m \u001B[38;5;28;01mNone\u001B[39;00m \u001B[38;5;28;01melse\u001B[39;00m \u001B[38;5;28;01mNone\u001B[39;00m\n", + "File \u001B[1;32m~\\Documents\\graph4stackoverflow\\venv\\lib\\site-packages\\torch\\nn\\modules\\module.py:1190\u001B[0m, in \u001B[0;36mModule._call_impl\u001B[1;34m(self, *input, **kwargs)\u001B[0m\n\u001B[0;32m 1186\u001B[0m \u001B[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001B[39;00m\n\u001B[0;32m 1187\u001B[0m \u001B[38;5;66;03m# this function, and just call forward.\u001B[39;00m\n\u001B[0;32m 1188\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m (\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_backward_hooks \u001B[38;5;129;01mor\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_forward_hooks \u001B[38;5;129;01mor\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_forward_pre_hooks \u001B[38;5;129;01mor\u001B[39;00m _global_backward_hooks\n\u001B[0;32m 1189\u001B[0m \u001B[38;5;129;01mor\u001B[39;00m _global_forward_hooks \u001B[38;5;129;01mor\u001B[39;00m _global_forward_pre_hooks):\n\u001B[1;32m-> 1190\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[43mforward_call\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;28;43minput\u001B[39;49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[43mkwargs\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 1191\u001B[0m \u001B[38;5;66;03m# Do not call functions when jit is used\u001B[39;00m\n\u001B[0;32m 1192\u001B[0m full_backward_hooks, non_full_backward_hooks \u001B[38;5;241m=\u001B[39m [], []\n", + "File \u001B[1;32m~\\Documents\\graph4stackoverflow\\venv\\lib\\site-packages\\transformers\\models\\bert\\modeling_bert.py:603\u001B[0m, in \u001B[0;36mBertEncoder.forward\u001B[1;34m(self, hidden_states, attention_mask, head_mask, encoder_hidden_states, encoder_attention_mask, past_key_values, use_cache, output_attentions, output_hidden_states, return_dict)\u001B[0m\n\u001B[0;32m 594\u001B[0m layer_outputs \u001B[38;5;241m=\u001B[39m torch\u001B[38;5;241m.\u001B[39mutils\u001B[38;5;241m.\u001B[39mcheckpoint\u001B[38;5;241m.\u001B[39mcheckpoint(\n\u001B[0;32m 595\u001B[0m create_custom_forward(layer_module),\n\u001B[0;32m 596\u001B[0m hidden_states,\n\u001B[1;32m (...)\u001B[0m\n\u001B[0;32m 600\u001B[0m encoder_attention_mask,\n\u001B[0;32m 601\u001B[0m )\n\u001B[0;32m 602\u001B[0m \u001B[38;5;28;01melse\u001B[39;00m:\n\u001B[1;32m--> 603\u001B[0m layer_outputs \u001B[38;5;241m=\u001B[39m \u001B[43mlayer_module\u001B[49m\u001B[43m(\u001B[49m\n\u001B[0;32m 604\u001B[0m \u001B[43m \u001B[49m\u001B[43mhidden_states\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 605\u001B[0m \u001B[43m \u001B[49m\u001B[43mattention_mask\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 606\u001B[0m \u001B[43m \u001B[49m\u001B[43mlayer_head_mask\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 607\u001B[0m \u001B[43m \u001B[49m\u001B[43mencoder_hidden_states\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 608\u001B[0m \u001B[43m \u001B[49m\u001B[43mencoder_attention_mask\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 609\u001B[0m \u001B[43m \u001B[49m\u001B[43mpast_key_value\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 610\u001B[0m \u001B[43m \u001B[49m\u001B[43moutput_attentions\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 611\u001B[0m \u001B[43m \u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 613\u001B[0m hidden_states \u001B[38;5;241m=\u001B[39m layer_outputs[\u001B[38;5;241m0\u001B[39m]\n\u001B[0;32m 614\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m use_cache:\n", + "File \u001B[1;32m~\\Documents\\graph4stackoverflow\\venv\\lib\\site-packages\\torch\\nn\\modules\\module.py:1190\u001B[0m, in \u001B[0;36mModule._call_impl\u001B[1;34m(self, *input, **kwargs)\u001B[0m\n\u001B[0;32m 1186\u001B[0m \u001B[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001B[39;00m\n\u001B[0;32m 1187\u001B[0m \u001B[38;5;66;03m# this function, and just call forward.\u001B[39;00m\n\u001B[0;32m 1188\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m (\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_backward_hooks \u001B[38;5;129;01mor\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_forward_hooks \u001B[38;5;129;01mor\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_forward_pre_hooks \u001B[38;5;129;01mor\u001B[39;00m _global_backward_hooks\n\u001B[0;32m 1189\u001B[0m \u001B[38;5;129;01mor\u001B[39;00m _global_forward_hooks \u001B[38;5;129;01mor\u001B[39;00m _global_forward_pre_hooks):\n\u001B[1;32m-> 1190\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[43mforward_call\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;28;43minput\u001B[39;49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[43mkwargs\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 1191\u001B[0m \u001B[38;5;66;03m# Do not call functions when jit is used\u001B[39;00m\n\u001B[0;32m 1192\u001B[0m full_backward_hooks, non_full_backward_hooks \u001B[38;5;241m=\u001B[39m [], []\n", + "File \u001B[1;32m~\\Documents\\graph4stackoverflow\\venv\\lib\\site-packages\\transformers\\models\\bert\\modeling_bert.py:489\u001B[0m, in \u001B[0;36mBertLayer.forward\u001B[1;34m(self, hidden_states, attention_mask, head_mask, encoder_hidden_states, encoder_attention_mask, past_key_value, output_attentions)\u001B[0m\n\u001B[0;32m 477\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m \u001B[38;5;21mforward\u001B[39m(\n\u001B[0;32m 478\u001B[0m \u001B[38;5;28mself\u001B[39m,\n\u001B[0;32m 479\u001B[0m hidden_states: torch\u001B[38;5;241m.\u001B[39mTensor,\n\u001B[1;32m (...)\u001B[0m\n\u001B[0;32m 486\u001B[0m ) \u001B[38;5;241m-\u001B[39m\u001B[38;5;241m>\u001B[39m Tuple[torch\u001B[38;5;241m.\u001B[39mTensor]:\n\u001B[0;32m 487\u001B[0m \u001B[38;5;66;03m# decoder uni-directional self-attention cached key/values tuple is at positions 1,2\u001B[39;00m\n\u001B[0;32m 488\u001B[0m self_attn_past_key_value \u001B[38;5;241m=\u001B[39m past_key_value[:\u001B[38;5;241m2\u001B[39m] \u001B[38;5;28;01mif\u001B[39;00m past_key_value \u001B[38;5;129;01mis\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m \u001B[38;5;28;01mNone\u001B[39;00m \u001B[38;5;28;01melse\u001B[39;00m \u001B[38;5;28;01mNone\u001B[39;00m\n\u001B[1;32m--> 489\u001B[0m self_attention_outputs \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mattention\u001B[49m\u001B[43m(\u001B[49m\n\u001B[0;32m 490\u001B[0m \u001B[43m \u001B[49m\u001B[43mhidden_states\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 491\u001B[0m \u001B[43m \u001B[49m\u001B[43mattention_mask\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 492\u001B[0m \u001B[43m \u001B[49m\u001B[43mhead_mask\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 493\u001B[0m \u001B[43m \u001B[49m\u001B[43moutput_attentions\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43moutput_attentions\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 494\u001B[0m \u001B[43m \u001B[49m\u001B[43mpast_key_value\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mself_attn_past_key_value\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 495\u001B[0m \u001B[43m \u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 496\u001B[0m attention_output \u001B[38;5;241m=\u001B[39m self_attention_outputs[\u001B[38;5;241m0\u001B[39m]\n\u001B[0;32m 498\u001B[0m \u001B[38;5;66;03m# if decoder, the last output is tuple of self-attn cache\u001B[39;00m\n", + "File \u001B[1;32m~\\Documents\\graph4stackoverflow\\venv\\lib\\site-packages\\torch\\nn\\modules\\module.py:1190\u001B[0m, in \u001B[0;36mModule._call_impl\u001B[1;34m(self, *input, **kwargs)\u001B[0m\n\u001B[0;32m 1186\u001B[0m \u001B[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001B[39;00m\n\u001B[0;32m 1187\u001B[0m \u001B[38;5;66;03m# this function, and just call forward.\u001B[39;00m\n\u001B[0;32m 1188\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m (\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_backward_hooks \u001B[38;5;129;01mor\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_forward_hooks \u001B[38;5;129;01mor\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_forward_pre_hooks \u001B[38;5;129;01mor\u001B[39;00m _global_backward_hooks\n\u001B[0;32m 1189\u001B[0m \u001B[38;5;129;01mor\u001B[39;00m _global_forward_hooks \u001B[38;5;129;01mor\u001B[39;00m _global_forward_pre_hooks):\n\u001B[1;32m-> 1190\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[43mforward_call\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;28;43minput\u001B[39;49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[43mkwargs\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 1191\u001B[0m \u001B[38;5;66;03m# Do not call functions when jit is used\u001B[39;00m\n\u001B[0;32m 1192\u001B[0m full_backward_hooks, non_full_backward_hooks \u001B[38;5;241m=\u001B[39m [], []\n", + "File \u001B[1;32m~\\Documents\\graph4stackoverflow\\venv\\lib\\site-packages\\transformers\\models\\bert\\modeling_bert.py:419\u001B[0m, in \u001B[0;36mBertAttention.forward\u001B[1;34m(self, hidden_states, attention_mask, head_mask, encoder_hidden_states, encoder_attention_mask, past_key_value, output_attentions)\u001B[0m\n\u001B[0;32m 409\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m \u001B[38;5;21mforward\u001B[39m(\n\u001B[0;32m 410\u001B[0m \u001B[38;5;28mself\u001B[39m,\n\u001B[0;32m 411\u001B[0m hidden_states: torch\u001B[38;5;241m.\u001B[39mTensor,\n\u001B[1;32m (...)\u001B[0m\n\u001B[0;32m 417\u001B[0m output_attentions: Optional[\u001B[38;5;28mbool\u001B[39m] \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;01mFalse\u001B[39;00m,\n\u001B[0;32m 418\u001B[0m ) \u001B[38;5;241m-\u001B[39m\u001B[38;5;241m>\u001B[39m Tuple[torch\u001B[38;5;241m.\u001B[39mTensor]:\n\u001B[1;32m--> 419\u001B[0m self_outputs \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mself\u001B[49m\u001B[43m(\u001B[49m\n\u001B[0;32m 420\u001B[0m \u001B[43m \u001B[49m\u001B[43mhidden_states\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 421\u001B[0m \u001B[43m \u001B[49m\u001B[43mattention_mask\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 422\u001B[0m \u001B[43m \u001B[49m\u001B[43mhead_mask\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 423\u001B[0m \u001B[43m \u001B[49m\u001B[43mencoder_hidden_states\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 424\u001B[0m \u001B[43m \u001B[49m\u001B[43mencoder_attention_mask\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 425\u001B[0m \u001B[43m \u001B[49m\u001B[43mpast_key_value\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 426\u001B[0m \u001B[43m \u001B[49m\u001B[43moutput_attentions\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 427\u001B[0m \u001B[43m \u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 428\u001B[0m attention_output \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39moutput(self_outputs[\u001B[38;5;241m0\u001B[39m], hidden_states)\n\u001B[0;32m 429\u001B[0m outputs \u001B[38;5;241m=\u001B[39m (attention_output,) \u001B[38;5;241m+\u001B[39m self_outputs[\u001B[38;5;241m1\u001B[39m:] \u001B[38;5;66;03m# add attentions if we output them\u001B[39;00m\n", + "File \u001B[1;32m~\\Documents\\graph4stackoverflow\\venv\\lib\\site-packages\\torch\\nn\\modules\\module.py:1190\u001B[0m, in \u001B[0;36mModule._call_impl\u001B[1;34m(self, *input, **kwargs)\u001B[0m\n\u001B[0;32m 1186\u001B[0m \u001B[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001B[39;00m\n\u001B[0;32m 1187\u001B[0m \u001B[38;5;66;03m# this function, and just call forward.\u001B[39;00m\n\u001B[0;32m 1188\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m (\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_backward_hooks \u001B[38;5;129;01mor\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_forward_hooks \u001B[38;5;129;01mor\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_forward_pre_hooks \u001B[38;5;129;01mor\u001B[39;00m _global_backward_hooks\n\u001B[0;32m 1189\u001B[0m \u001B[38;5;129;01mor\u001B[39;00m _global_forward_hooks \u001B[38;5;129;01mor\u001B[39;00m _global_forward_pre_hooks):\n\u001B[1;32m-> 1190\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[43mforward_call\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;28;43minput\u001B[39;49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[43mkwargs\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 1191\u001B[0m \u001B[38;5;66;03m# Do not call functions when jit is used\u001B[39;00m\n\u001B[0;32m 1192\u001B[0m full_backward_hooks, non_full_backward_hooks \u001B[38;5;241m=\u001B[39m [], []\n", + "File \u001B[1;32m~\\Documents\\graph4stackoverflow\\venv\\lib\\site-packages\\transformers\\models\\bert\\modeling_bert.py:347\u001B[0m, in \u001B[0;36mBertSelfAttention.forward\u001B[1;34m(self, hidden_states, attention_mask, head_mask, encoder_hidden_states, encoder_attention_mask, past_key_value, output_attentions)\u001B[0m\n\u001B[0;32m 344\u001B[0m attention_scores \u001B[38;5;241m=\u001B[39m attention_scores \u001B[38;5;241m+\u001B[39m attention_mask\n\u001B[0;32m 346\u001B[0m \u001B[38;5;66;03m# Normalize the attention scores to probabilities.\u001B[39;00m\n\u001B[1;32m--> 347\u001B[0m attention_probs \u001B[38;5;241m=\u001B[39m \u001B[43mnn\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mfunctional\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43msoftmax\u001B[49m\u001B[43m(\u001B[49m\u001B[43mattention_scores\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mdim\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[38;5;241;43m-\u001B[39;49m\u001B[38;5;241;43m1\u001B[39;49m\u001B[43m)\u001B[49m\n\u001B[0;32m 349\u001B[0m \u001B[38;5;66;03m# This is actually dropping out entire tokens to attend to, which might\u001B[39;00m\n\u001B[0;32m 350\u001B[0m \u001B[38;5;66;03m# seem a bit unusual, but is taken from the original Transformer paper.\u001B[39;00m\n\u001B[0;32m 351\u001B[0m attention_probs \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mdropout(attention_probs)\n", + "File \u001B[1;32m~\\Documents\\graph4stackoverflow\\venv\\lib\\site-packages\\torch\\nn\\functional.py:1841\u001B[0m, in \u001B[0;36msoftmax\u001B[1;34m(input, dim, _stacklevel, dtype)\u001B[0m\n\u001B[0;32m 1839\u001B[0m dim \u001B[38;5;241m=\u001B[39m _get_softmax_dim(\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124msoftmax\u001B[39m\u001B[38;5;124m\"\u001B[39m, \u001B[38;5;28minput\u001B[39m\u001B[38;5;241m.\u001B[39mdim(), _stacklevel)\n\u001B[0;32m 1840\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m dtype \u001B[38;5;129;01mis\u001B[39;00m \u001B[38;5;28;01mNone\u001B[39;00m:\n\u001B[1;32m-> 1841\u001B[0m ret \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;43minput\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43msoftmax\u001B[49m\u001B[43m(\u001B[49m\u001B[43mdim\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 1842\u001B[0m \u001B[38;5;28;01melse\u001B[39;00m:\n\u001B[0;32m 1843\u001B[0m ret \u001B[38;5;241m=\u001B[39m \u001B[38;5;28minput\u001B[39m\u001B[38;5;241m.\u001B[39msoftmax(dim, dtype\u001B[38;5;241m=\u001B[39mdtype)\n", + "\u001B[1;31mKeyboardInterrupt\u001B[0m: " + ] + } + ], + "source": [ + "import torch_geometric.transforms as T\n", + "graph_out = graph_constructor.construct(questions_df, answers_df, comments_df)\n", + "#graph_out['module'].x = torch.empty(0, 110, dtype=torch.long)\n", + "graph_out" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "graph_out.__setattr__('question_emb', torch.rand(300))\n", + "graph_out.edge_index_dict" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "from torch_geometric.utils import to_networkx\n", + "\n", + "nx_graph = to_networkx(graph_out.to_homogeneous())\n", + "pos_ug = nx.spring_layout(nx_graph)#, k=0.15, iterations=20)\n", + "plt.figure(figsize=(40,40))\n", + "nx.draw(nx_graph, pos_ug, with_labels=True)\n" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "markdown", + "source": [ + "Let's build a GNN" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "from torch.nn import Linear\n", + "import torch.nn.functional as F\n", + "from torch_geometric.nn import GCNConv, MeanAggregation, GATConv\n", + "from torch_geometric.nn import global_mean_pool\n", + "\n", + "\n", + "class GAT(torch.nn.Module):\n", + " def __init__(self, hidden_channels):\n", + " super(GAT, self).__init__()\n", + " torch.manual_seed(12345)\n", + " self.conv1 = GATConv((-1, -1), hidden_channels, add_self_loops=False)\n", + " self.conv2 = GATConv((-1, -1), hidden_channels, add_self_loops=False)\n", + " self.conv3 = GATConv((-1, -1), hidden_channels, add_self_loops=False)\n", + " self.lin = Linear(hidden_channels, 2)\n", + " self.softmax = torch.nn.Softmax(dim=1)\n", + " #self.pool = global_mean_pool()#MeanAggregation()\n", + "\n", + " def forward(self, x, edge_index, batch, post_emb):\n", + " # 1. Obtain node embeddings\n", + " x = self.conv1(x, edge_index)\n", + " x = x.relu()\n", + " x = self.conv2(x, edge_index)\n", + " x = x.relu()\n", + " x = self.conv3(x, edge_index)\n", + "\n", + " # 2. Readout layer\n", + " x = self.pool(x, batch) # [batch_size, hidden_channels]\n", + " #x = torch.cat((x, post_emb))\n", + " # 3. Apply a final classifier\n", + " # x = F.dropout(x, p=0.5, training=self.training)\n", + " x = self.lin(x)\n", + "\n", + " #x = self.softmax(x)\n", + " return x\n", + "model = GAT(hidden_channels=64)\n", + "print(model)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "from torch_geometric.nn.module_dict import ModuleDict\n", + "from torch_geometric.nn import HeteroConv\n", + "\n", + "\n", + "class HeteroGNN(torch.nn.Module):\n", + " def __init__(self, hidden_channels, out_channels, num_layers):\n", + " super().__init__()\n", + "\n", + " self.convs = torch.nn.ModuleList()\n", + " for _ in range(num_layers):\n", + " conv = HeteroConv({\n", + " ('tag', 'describes', 'question') : GATConv((-1,-1), hidden_channels, add_self_loops=False),\n", + " ('tag', 'describes', 'answer') : GATConv((-1,-1), hidden_channels, add_self_loops=False),\n", + " ('tag', 'describes', 'comment') : GATConv((-1,-1), hidden_channels, add_self_loops=False),\n", + " ('module', 'imported_in', 'question') : GATConv((-1,-1), hidden_channels, add_self_loops=False),\n", + " ('module', 'imported_in', 'answer') : GATConv((-1,-1), hidden_channels, add_self_loops=False),\n", + " ('question', 'rev_describes', 'tag') : GATConv((-1,-1), hidden_channels, add_self_loops=False),\n", + " ('answer', 'rev_describes', 'tag') : GATConv((-1,-1), hidden_channels, add_self_loops=False),\n", + " ('comment', 'rev_describes', 'tag') : GATConv((-1,-1), hidden_channels, add_self_loops=False),\n", + " ('question', 'rev_imported_in', 'module') : GATConv((-1,-1), hidden_channels, add_self_loops=False),\n", + " ('answer', 'rev_imported_in', 'module') : GATConv((-1,-1), hidden_channels, add_self_loops=False),\n", + " }, aggr='sum')\n", + " self.convs.append(conv)\n", + "\n", + " self.lin = Linear(hidden_channels, out_channels)\n", + " #self.softmax = torch.nn.Softmax(dim=1)\n", + "\n", + "\n", + " def forward(self, x_dict, edge_index_dict, batch_dict, post_emb=2):\n", + " for conv in self.convs:\n", + " x_dict = conv(x_dict, edge_index_dict)\n", + " x_dict = {key: x.relu() for key, x in x_dict.items()}\n", + " #return x_dict\n", + " outs = []\n", + " for x, batch in zip(x_dict.values(), batch_dict.values()):\n", + " outs.append(global_mean_pool(x, batch))\n", + " out = torch.cat(outs, dim=-1)\n", + "\n", + " return out\n", + "\n", + "\n", + "hgnn = HeteroGNN(hidden_channels=64, out_channels=2, num_layers=3)\n", + "hgnn" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "hgnn(graph_out.x_dict, graph_out.edge_index_dict, graph_out.batch_dict, 1)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "from torch_geometric.nn import to_hetero, to_hetero_with_bases\n", + "\n", + "metadata = (['question', 'answer', 'comment', 'tag', 'module'], [('tag', 'describes', 'question'), ('tag', 'describes', 'answer'), ('tag', 'describes', 'comment'), ('module', 'imported_in', 'question'), ('module', 'imported_in', 'answer'), ('question', 'rev_describes', 'tag'), ('answer', 'rev_describes', 'tag'), ('comment', 'rev_describes', 'tag'), ('question', 'rev_imported_in', 'module'), ('answer', 'rev_imported_in', 'module')])\n", + "model = to_hetero(model, metadata)\n", + "model" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "model(graph_out.x_dict, graph_out.edge_index_dict, graph_out.batch_dict, 1)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "graph_out.batch_dict" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "print(\"Question ndim:\", graph_out.x_dict['question'].dim())\n", + "print(\"Answer ndim:\", graph_out.x_dict['answer'].dim())\n", + "print(\"Comment ndim:\", graph_out.x_dict['comment'].dim())\n", + "print(\"Tag ndim:\", graph_out.x_dict['tag'].dim())\n", + "print(\"Module ndim:\", graph_out.x_dict['module'].dim())" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [], + "metadata": { + "collapsed": false + } + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/archived/tag_embedding_trainer.py b/archived/tag_embedding_trainer.py index e1cc3a625ecc6b5a9e5e89ed8f6a2ad96cad13bb..d6383f0b0331152631163360729ec800316a0086 100644 --- a/archived/tag_embedding_trainer.py +++ b/archived/tag_embedding_trainer.py @@ -1,147 +1,147 @@ -import itertools -import logging -import sqlite3 -import time -from typing import * -import random - -from tqdm import tqdm -import pandas as pd -import torch -from torch import nn, optim -from torch.functional import F -from torch.utils.tensorboard import SummaryWriter - -logging.basicConfig(level=logging.INFO) - - -class TagEmbeddingTrainer: - - def __init__(self, database_path: str = None): - logger = logging.getLogger(self.__class__.__name__) - self.device = torch.device("cuda" if torch.cuda.is_available() else "cpu") - logger.info(f"Proceeding with {self.device} . .") - if database_path is not None: - self.db = sqlite3.connect(database_path) - logger.info(f"Connected to {database_path}") - self.tag_vocab: List[str] - self.post_tags: List[Tuple] - - def from_files(self, post_tags_path: str, tag_vocab: str): - tag_df = pd.read_csv(tag_vocab, keep_default_na=False) - self.tag_vocab = list(set(tag_df["TagName"])) - - post_tags = pd.read_csv(post_tags_path) - tag_list_df = post_tags['Tags'].apply(lambda row: self.parse_tag_list(row)) - combinations = tag_list_df.apply(lambda row: list(itertools.combinations(row, 2))) - combinations = combinations[combinations.astype(str) != '[]'] - # Now concatenate all the lists together - tag_pairs = [] - for i in combinations: - tag_pairs += i - self.post_tags = tag_pairs - - - def from_db(self): - tag_df = pd.read_sql_query("SELECT * FROM Tag", self.db) - tag_df.set_index('TagId', inplace=True) - self.tag_vocab = list(set(tag_df["TagName"])) - - post_tags = pd.read_sql_query(f"SELECT Tags FROM Post WHERE PostTypeId=1", self.db) - tag_list_df = post_tags['Tags'].map(self.parse_tag_list) - combinations = tag_list_df.apply(lambda row: list(itertools.combinations(row, 2))) - combinations = combinations[combinations.astype(str) != '[]'] - # Now concatenate all the lists together - tag_pairs = [] - for i in combinations: - tag_pairs += i - self.post_tags = tag_pairs - - def parse_tag_list(self, tag_list: str) -> List[str]: - return tag_list[1:-1].split("><") - - def sample_n(self, df, train_size: int): - return random.sample(df, train_size) - - def train(self, train_size: int, epochs: int): - # Loss - loss_function = nn.NLLLoss() - losses = [] - # Model - self.model = TagEmbedding(vocab_size=len(self.tag_vocab), embedding_dim=20).to(self.device) - # Optimizer - optimizer = optim.SGD(self.model.parameters(), lr=0.001) - # Enumerate the vocabulary, reflects the index of where the 1 is in the one-hot - self.tag_to_ix = {tag: i for i, tag in enumerate(self.tag_vocab)} - # Reduce size of training set - samples = self.sample_n(self.post_tags, train_size) - - for epoch in range(epochs): - total_loss = 0 - for tag_a, tag_b in tqdm(samples): - tag_a_id = torch.tensor(self.tag_to_ix[tag_a], dtype=torch.long).to(self.device) - self.model.zero_grad() - log_probs = self.model(tag_a_id) - loss = loss_function(log_probs.flatten(), torch.tensor(self.tag_to_ix[tag_b], dtype=torch.long).to(self.device)) - loss.backward() - optimizer.step() - total_loss += loss.item() - losses.append(total_loss) - - def get_tag_embedding(self, tag: str): - return self.model.embedding.weight[self.tag_to_ix[tag]] - - def to_tensorboard(self, run_name: str): - """ - Write embedding to Tensorboard projector - tensorboard --logdir="runs/run@20221102-173048" - """ - writer = SummaryWriter(f'runs/{run_name}') - writer.add_embedding(self.model.embedding.weight, - metadata=self.tag_vocab, - tag=f'Tag embedding') - writer.close() - - def load_model(self, model_path: str, vocab_size: int, embedding_dim: int): - self.model = TagEmbedding(vocab_size, embedding_dim) - self.model.load_state_dict(torch.load(model_path, map_location=torch.device('cpu'))) - - - def save_model(self, model_path: str): - torch.save(self.model.state_dict(), model_path) - - - - - -class TagEmbedding(nn.Module): - - def __init__(self, vocab_size, embedding_dim): - super(TagEmbedding, self).__init__() - self.embedding = nn.Embedding(vocab_size, embedding_dim) - self.linear1 = nn.Linear(embedding_dim, 128) - self.linear2 = nn.Linear(128, vocab_size) - - def forward(self, inputs): - embeds = self.embedding(inputs).view((1, -1)) - out = F.relu(self.linear1(embeds)) - out = self.linear2(out) - log_probs = F.log_softmax(out, dim=1) - return log_probs - - -if __name__ == '__main__': - #tet = TagEmbeddingTrainer("../stackoverflow.db") - #tet.from_db() - tet = TagEmbeddingTrainer() - tet.from_files("all_tags.csv", "tag_vocab.csv") - assert len(tet.post_tags) == 84187510, "Incorrect number of post tags!" - assert len(tet.tag_vocab) == 63653, "Incorrect vocab size!" - - # tet.train(25000000, 1) - # tet.to_tensorboard(f"run@{time.strftime('%Y%m%d-%H%M%S')}") - - #tet.save_model("25mil.pt") - tet.load_model("10mil_500d_embd.pt", 63653, 500) - tet.to_tensorboard(f"run@{time.strftime('%Y%m%d-%H%M%S')}") - +import itertools +import logging +import sqlite3 +import time +from typing import * +import random + +from tqdm import tqdm +import pandas as pd +import torch +from torch import nn, optim +from torch.functional import F +from torch.utils.tensorboard import SummaryWriter + +logging.basicConfig(level=logging.INFO) + + +class TagEmbeddingTrainer: + + def __init__(self, database_path: str = None): + logger = logging.getLogger(self.__class__.__name__) + self.device = torch.device("cuda" if torch.cuda.is_available() else "cpu") + logger.info(f"Proceeding with {self.device} . .") + if database_path is not None: + self.db = sqlite3.connect(database_path) + logger.info(f"Connected to {database_path}") + self.tag_vocab: List[str] + self.post_tags: List[Tuple] + + def from_files(self, post_tags_path: str, tag_vocab: str): + tag_df = pd.read_csv(tag_vocab, keep_default_na=False) + self.tag_vocab = list(set(tag_df["TagName"])) + + post_tags = pd.read_csv(post_tags_path) + tag_list_df = post_tags['Tags'].apply(lambda row: self.parse_tag_list(row)) + combinations = tag_list_df.apply(lambda row: list(itertools.combinations(row, 2))) + combinations = combinations[combinations.astype(str) != '[]'] + # Now concatenate all the lists together + tag_pairs = [] + for i in combinations: + tag_pairs += i + self.post_tags = tag_pairs + + + def from_db(self): + tag_df = pd.read_sql_query("SELECT * FROM Tag", self.db) + tag_df.set_index('TagId', inplace=True) + self.tag_vocab = list(set(tag_df["TagName"])) + + post_tags = pd.read_sql_query(f"SELECT Tags FROM Post WHERE PostTypeId=1", self.db) + tag_list_df = post_tags['Tags'].map(self.parse_tag_list) + combinations = tag_list_df.apply(lambda row: list(itertools.combinations(row, 2))) + combinations = combinations[combinations.astype(str) != '[]'] + # Now concatenate all the lists together + tag_pairs = [] + for i in combinations: + tag_pairs += i + self.post_tags = tag_pairs + + def parse_tag_list(self, tag_list: str) -> List[str]: + return tag_list[1:-1].split("><") + + def sample_n(self, df, train_size: int): + return random.sample(df, train_size) + + def train(self, train_size: int, epochs: int): + # Loss + loss_function = nn.NLLLoss() + losses = [] + # Model + self.model = TagEmbedding(vocab_size=len(self.tag_vocab), embedding_dim=20).to(self.device) + # Optimizer + optimizer = optim.SGD(self.model.parameters(), lr=0.001) + # Enumerate the vocabulary, reflects the index of where the 1 is in the one-hot + self.tag_to_ix = {tag: i for i, tag in enumerate(self.tag_vocab)} + # Reduce size of training set + samples = self.sample_n(self.post_tags, train_size) + + for epoch in range(epochs): + total_loss = 0 + for tag_a, tag_b in tqdm(samples): + tag_a_id = torch.tensor(self.tag_to_ix[tag_a], dtype=torch.long).to(self.device) + self.model.zero_grad() + log_probs = self.model(tag_a_id) + loss = loss_function(log_probs.flatten(), torch.tensor(self.tag_to_ix[tag_b], dtype=torch.long).to(self.device)) + loss.backward() + optimizer.step() + total_loss += loss.item() + losses.append(total_loss) + + def get_tag_embedding(self, tag: str): + return self.model.embedding.weight[self.tag_to_ix[tag]] + + def to_tensorboard(self, run_name: str): + """ + Write embedding to Tensorboard projector + tensorboard --logdir="runs/run@20221102-173048" + """ + writer = SummaryWriter(f'runs/{run_name}') + writer.add_embedding(self.model.embedding.weight, + metadata=self.tag_vocab, + tag=f'Tag embedding') + writer.close() + + def load_model(self, model_path: str, vocab_size: int, embedding_dim: int): + self.model = TagEmbedding(vocab_size, embedding_dim) + self.model.load_state_dict(torch.load(model_path, map_location=torch.device('cpu'))) + + + def save_model(self, model_path: str): + torch.save(self.model.state_dict(), model_path) + + + + + +class TagEmbedding(nn.Module): + + def __init__(self, vocab_size, embedding_dim): + super(TagEmbedding, self).__init__() + self.embedding = nn.Embedding(vocab_size, embedding_dim) + self.linear1 = nn.Linear(embedding_dim, 128) + self.linear2 = nn.Linear(128, vocab_size) + + def forward(self, inputs): + embeds = self.embedding(inputs).view((1, -1)) + out = F.relu(self.linear1(embeds)) + out = self.linear2(out) + log_probs = F.log_softmax(out, dim=1) + return log_probs + + +if __name__ == '__main__': + #tet = TagEmbeddingTrainer("../stackoverflow.db") + #tet.from_db() + tet = TagEmbeddingTrainer() + tet.from_files("all_tags.csv", "tag_vocab.csv") + assert len(tet.post_tags) == 84187510, "Incorrect number of post tags!" + assert len(tet.tag_vocab) == 63653, "Incorrect vocab size!" + + # tet.train(25000000, 1) + # tet.to_tensorboard(f"run@{time.strftime('%Y%m%d-%H%M%S')}") + + #tet.save_model("25mil.pt") + tet.load_model("10mil_500d_embd.pt", 63653, 500) + tet.to_tensorboard(f"run@{time.strftime('%Y%m%d-%H%M%S')}") + diff --git a/data-collection/SQLiteSession.java b/data-collection/SQLiteSession.java index ba8ecca8fd78ab981d84e69c95866c4258c2b495..de00275ebe7a9a2ce095fe6e9bb0e85cb1283dcc 100644 --- a/data-collection/SQLiteSession.java +++ b/data-collection/SQLiteSession.java @@ -1,81 +1,81 @@ -import org.apache.logging.log4j.Level; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.apache.logging.log4j.core.config.Configurator; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.sql.*; - -public class SQLiteSession { - private final Logger logger = LogManager.getLogger(SQLiteSession.class); - private Connection conn; - - private PreparedStatement ps; - - private int maxBatchSize; - private int currentBatchsize = 0; - - public SQLiteSession(String url) { - Configurator.setLevel(logger.getName(), Level.WARN); - try { - // create a connection to the database - conn = DriverManager.getConnection(url); - conn.setAutoCommit(false); - logger.info("Connection to SQLite has been established."); - } catch (SQLException e) { - logger.error(e.getMessage()); - } - } - - public void endSession() { - try { - if (conn != null) { - conn.close(); - } - } catch (SQLException ex) { - logger.error(ex.getMessage()); - } - } - - public void createTables() throws SQLException, IOException { - /** - * Create tables using the `create.sql` file in the directory - */ - Statement stmt = conn.createStatement(); - String query = Files.readString(Path.of("create.sql")); - stmt.executeUpdate(query); - conn.commit(); - } - - public void setPreparedStatement(String baseQuery, int batchSize) throws SQLException { - this.ps = conn.prepareStatement(baseQuery); - this.maxBatchSize = batchSize; - } - - public PreparedStatement getPreparedStatement() { - return ps; - } - - public void processBatch() throws SQLException { - ps.addBatch(); - if (++currentBatchsize > maxBatchSize) { - ps.executeBatch(); - currentBatchsize = 0; - logger.info("Executed batch insert."); - } - } - - public void commitChanges() throws SQLException { - conn.commit(); - } - - public static void main(String[] args) throws SQLException, IOException { - SQLiteSession s = new SQLiteSession( - "jdbc:sqlite:..\\stackoverflow.db" - ); - s.createTables(); - s.endSession(); - } +import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.core.config.Configurator; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.sql.*; + +public class SQLiteSession { + private final Logger logger = LogManager.getLogger(SQLiteSession.class); + private Connection conn; + + private PreparedStatement ps; + + private int maxBatchSize; + private int currentBatchsize = 0; + + public SQLiteSession(String url) { + Configurator.setLevel(logger.getName(), Level.WARN); + try { + // create a connection to the database + conn = DriverManager.getConnection(url); + conn.setAutoCommit(false); + logger.info("Connection to SQLite has been established."); + } catch (SQLException e) { + logger.error(e.getMessage()); + } + } + + public void endSession() { + try { + if (conn != null) { + conn.close(); + } + } catch (SQLException ex) { + logger.error(ex.getMessage()); + } + } + + public void createTables() throws SQLException, IOException { + /** + * Create tables using the `create.sql` file in the directory + */ + Statement stmt = conn.createStatement(); + String query = Files.readString(Path.of("create.sql")); + stmt.executeUpdate(query); + conn.commit(); + } + + public void setPreparedStatement(String baseQuery, int batchSize) throws SQLException { + this.ps = conn.prepareStatement(baseQuery); + this.maxBatchSize = batchSize; + } + + public PreparedStatement getPreparedStatement() { + return ps; + } + + public void processBatch() throws SQLException { + ps.addBatch(); + if (++currentBatchsize > maxBatchSize) { + ps.executeBatch(); + currentBatchsize = 0; + logger.info("Executed batch insert."); + } + } + + public void commitChanges() throws SQLException { + conn.commit(); + } + + public static void main(String[] args) throws SQLException, IOException { + SQLiteSession s = new SQLiteSession( + "jdbc:sqlite:..\\stackoverflow.db" + ); + s.createTables(); + s.endSession(); + } } \ No newline at end of file diff --git a/data-collection/StackOverflowHandler.java b/data-collection/StackOverflowHandler.java index 7e9caa989270e0da988c239aa5b5f4637362a08f..2d2c3b6e3ef6cfc8cb6a6cb025409a9d39ccd76a 100644 --- a/data-collection/StackOverflowHandler.java +++ b/data-collection/StackOverflowHandler.java @@ -1,124 +1,124 @@ -import org.apache.logging.log4j.Level; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.apache.logging.log4j.core.config.Configurator; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.DefaultHandler; - -import javax.xml.XMLConstants; -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; -import java.io.IOException; -import java.sql.SQLException; - -public class StackOverflowHandler extends DefaultHandler { - private final SQLiteSession session; - private final String baseInsertQuery; - - private final String[] attributeNames; - - private final Logger logger = LogManager.getLogger(StackOverflowHandler.class); - - public StackOverflowHandler(String pathToDB, String baseInsertQuery, String[] attributeNames) { - Configurator.setLevel(logger.getName(), Level.INFO); - this.session = new SQLiteSession(pathToDB); - this.baseInsertQuery = baseInsertQuery; - this.attributeNames = attributeNames; - } - - public Logger getLogger() { - return logger; - } - - public SQLiteSession getSession() { - return session; - } - - @Override - public void startDocument() { - try { - session.setPreparedStatement(baseInsertQuery, 500); - } catch (SQLException e) { - throw new RuntimeException(e); - } - } - - @Override - public void startElement(String uri, String lName, String qName, Attributes attr) { - if (qName.equals("row")) { - try { - for (int i = 0; i < attributeNames.length; i++) { - getSession().getPreparedStatement().setString(i+1, attr.getValue(attributeNames[i])); - } - getSession().processBatch(); - - } catch (SQLException e) { - getLogger().error(String.format("SQL Error! %s", e)); - } - - } else { - getLogger().error(String.format("Non-row encountered: %s", qName)); - } - } - - @Override - public void endDocument() { - try { - session.getPreparedStatement().executeBatch(); - session.commitChanges(); - } catch (SQLException e) { - throw new RuntimeException(e); - } - } -} - - - -class Main { - public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException { - final long start = System.currentTimeMillis(); - String PATH_TO_DB = "jdbc:sqlite:..\\stackoverflow.db"; - - // New SAXParser - SAXParserFactory factory = SAXParserFactory.newInstance(); - factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING,false); - SAXParser saxParser = factory.newSAXParser(); - - /*// Tags - String[] tagAttributeNames = {"Id", "TagName", "Count"}; - StackOverflowHandler tagsHandler = new StackOverflowHandler(PATH_TO_DB, "INSERT INTO Tag VALUES (?, ?, ?)", tagAttributeNames); - saxParser.parse("..\\data\\raw\\stackoverflow.com-Tags\\tags.xml", tagsHandler); - - // Users - String[] userAttributeNames = {"Id", "Reputation", "CreationDate", "DisplayName", "LastAccessDate", "WebsiteUrl", "Location", "AboutMe", "Views", "UpVotes", "DownVotes", "ProfileImageUrl", "AccountId"}; - StackOverflowHandler usersHandler = new StackOverflowHandler(PATH_TO_DB, "INSERT INTO User VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", userAttributeNames); - saxParser.parse("..\\data\\raw\\stackoverflow.com-Users\\users.xml", usersHandler); -*/ - // Posts - String[] postAttributeNames = {"Id", "PostTypeId", "AcceptedAnswerId", "CreationDate", "Score", "ViewCount", "Body", "OwnerUserId", "LastEditorUserId", "LastEditorDisplayName", "LastEditDate", "Title", "Tags", "AnswerCount", "CommentCount", "FavoriteCount", "CommunityOwnedDate", "ContentLicense", "ParentId"}; - StackOverflowHandler postsHandler = new StackOverflowHandler(PATH_TO_DB, "INSERT INTO Post VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", postAttributeNames); - saxParser.parse("..\\data\\raw\\stackoverflow.com-Posts\\posts.xml", postsHandler); - - // Comments - String[] commentAttributeNames = {"Id", "PostId", "Score", "Text", "CreationDate", "UserId", "ContentLicense"}; - StackOverflowHandler commentsHandler = new StackOverflowHandler(PATH_TO_DB, "INSERT INTO Comment VALUES (?, ?, ?, ?, ?, ?, ?)", commentAttributeNames); - saxParser.parse("..\\data\\raw\\stackoverflow.com-Comments\\comments.xml", commentsHandler); - - // Badges - String[] badgeAttributeNames = {"Id", "UserId", "Name", "Date", "Class", "TagBased"}; - StackOverflowHandler badgesHandler = new StackOverflowHandler(PATH_TO_DB, "INSERT INTO Badge VALUES (?, ?, ?, ?, ?, ?)", badgeAttributeNames); - saxParser.parse("..\\data\\raw\\stackoverflow.com-Badges\\badges.xml", badgesHandler); - - // Votes - String[] voteAttributeNames = {"Id", "PostId", "VoteTypeId", "CreationDate"}; - StackOverflowHandler votesHandler = new StackOverflowHandler(PATH_TO_DB, "INSERT INTO Vote VALUES (?, ?, ?, ?)", voteAttributeNames); - saxParser.parse("..\\data\\raw\\stackoverflow.com-Votes\\votes.xml", votesHandler); - - - // time end - final long durationInMilliseconds = System.currentTimeMillis()-start; - System.out.println("SAX parse took " + durationInMilliseconds + "ms."); - } +import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.core.config.Configurator; +import org.xml.sax.Attributes; +import org.xml.sax.SAXException; +import org.xml.sax.helpers.DefaultHandler; + +import javax.xml.XMLConstants; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; +import java.io.IOException; +import java.sql.SQLException; + +public class StackOverflowHandler extends DefaultHandler { + private final SQLiteSession session; + private final String baseInsertQuery; + + private final String[] attributeNames; + + private final Logger logger = LogManager.getLogger(StackOverflowHandler.class); + + public StackOverflowHandler(String pathToDB, String baseInsertQuery, String[] attributeNames) { + Configurator.setLevel(logger.getName(), Level.INFO); + this.session = new SQLiteSession(pathToDB); + this.baseInsertQuery = baseInsertQuery; + this.attributeNames = attributeNames; + } + + public Logger getLogger() { + return logger; + } + + public SQLiteSession getSession() { + return session; + } + + @Override + public void startDocument() { + try { + session.setPreparedStatement(baseInsertQuery, 500); + } catch (SQLException e) { + throw new RuntimeException(e); + } + } + + @Override + public void startElement(String uri, String lName, String qName, Attributes attr) { + if (qName.equals("row")) { + try { + for (int i = 0; i < attributeNames.length; i++) { + getSession().getPreparedStatement().setString(i+1, attr.getValue(attributeNames[i])); + } + getSession().processBatch(); + + } catch (SQLException e) { + getLogger().error(String.format("SQL Error! %s", e)); + } + + } else { + getLogger().error(String.format("Non-row encountered: %s", qName)); + } + } + + @Override + public void endDocument() { + try { + session.getPreparedStatement().executeBatch(); + session.commitChanges(); + } catch (SQLException e) { + throw new RuntimeException(e); + } + } +} + + + +class Main { + public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException { + final long start = System.currentTimeMillis(); + String PATH_TO_DB = "jdbc:sqlite:..\\stackoverflow.db"; + + // New SAXParser + SAXParserFactory factory = SAXParserFactory.newInstance(); + factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING,false); + SAXParser saxParser = factory.newSAXParser(); + + /*// Tags + String[] tagAttributeNames = {"Id", "TagName", "Count"}; + StackOverflowHandler tagsHandler = new StackOverflowHandler(PATH_TO_DB, "INSERT INTO Tag VALUES (?, ?, ?)", tagAttributeNames); + saxParser.parse("..\\data\\raw\\stackoverflow.com-Tags\\tags.xml", tagsHandler); + + // Users + String[] userAttributeNames = {"Id", "Reputation", "CreationDate", "DisplayName", "LastAccessDate", "WebsiteUrl", "Location", "AboutMe", "Views", "UpVotes", "DownVotes", "ProfileImageUrl", "AccountId"}; + StackOverflowHandler usersHandler = new StackOverflowHandler(PATH_TO_DB, "INSERT INTO User VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", userAttributeNames); + saxParser.parse("..\\data\\raw\\stackoverflow.com-Users\\users.xml", usersHandler); +*/ + // Posts + String[] postAttributeNames = {"Id", "PostTypeId", "AcceptedAnswerId", "CreationDate", "Score", "ViewCount", "Body", "OwnerUserId", "LastEditorUserId", "LastEditorDisplayName", "LastEditDate", "Title", "Tags", "AnswerCount", "CommentCount", "FavoriteCount", "CommunityOwnedDate", "ContentLicense", "ParentId"}; + StackOverflowHandler postsHandler = new StackOverflowHandler(PATH_TO_DB, "INSERT INTO Post VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", postAttributeNames); + saxParser.parse("..\\data\\raw\\stackoverflow.com-Posts\\posts.xml", postsHandler); + + // Comments + String[] commentAttributeNames = {"Id", "PostId", "Score", "Text", "CreationDate", "UserId", "ContentLicense"}; + StackOverflowHandler commentsHandler = new StackOverflowHandler(PATH_TO_DB, "INSERT INTO Comment VALUES (?, ?, ?, ?, ?, ?, ?)", commentAttributeNames); + saxParser.parse("..\\data\\raw\\stackoverflow.com-Comments\\comments.xml", commentsHandler); + + // Badges + String[] badgeAttributeNames = {"Id", "UserId", "Name", "Date", "Class", "TagBased"}; + StackOverflowHandler badgesHandler = new StackOverflowHandler(PATH_TO_DB, "INSERT INTO Badge VALUES (?, ?, ?, ?, ?, ?)", badgeAttributeNames); + saxParser.parse("..\\data\\raw\\stackoverflow.com-Badges\\badges.xml", badgesHandler); + + // Votes + String[] voteAttributeNames = {"Id", "PostId", "VoteTypeId", "CreationDate"}; + StackOverflowHandler votesHandler = new StackOverflowHandler(PATH_TO_DB, "INSERT INTO Vote VALUES (?, ?, ?, ?)", voteAttributeNames); + saxParser.parse("..\\data\\raw\\stackoverflow.com-Votes\\votes.xml", votesHandler); + + + // time end + final long durationInMilliseconds = System.currentTimeMillis()-start; + System.out.println("SAX parse took " + durationInMilliseconds + "ms."); + } } \ No newline at end of file diff --git a/data-collection/create.sql b/data-collection/create.sql index 533ff610dbb54702eb8b54a9240c67da03d0158f..81a3ab8ec698a9cca68c9c8b58db64417fa544d9 100644 --- a/data-collection/create.sql +++ b/data-collection/create.sql @@ -1,82 +1,82 @@ -CREATE TABLE IF NOT EXISTS User ( - UserId INTEGER PRIMARY KEY, - Reputation INTEGER, - CreationDate TEXT, - DisplayName TEXT, - LastAccessDate TEXT, - WebsiteUrl TEXT, - Location Text, - AboutMe Text, - Views INTEGER, - UpVotes INTEGER, - DownVotes INTEGER, - ProfileImageUrl TEXT, - AccountId INTEGER -); - -CREATE TABLE IF NOT EXISTS Post ( - PostId INTEGER PRIMARY KEY, - PostTypeId INTEGER, - AcceptedAnswerId INTEGER, - CreationDate TEXT, - Score INTEGER, - ViewCount INTEGER, - Body TEXT, - OwnerUserId INTEGER, - LastEditorUserId INTEGER, - LastEditorDisplayName TEXT, - LastEditDate TEXT, - Title TEXT, - Tags TEXT, - AnswerCount INTEGER, - CommentCount INTEGER, - FavoriteCount INTEGER, - CommunityOwnedDate TEXT, - ContentLicense TEXT, - ParentId INTEGER, - FOREIGN KEY (OwnerUserId) REFERENCES User (UserId), - FOREIGN KEY (LastEditorUserId) REFERENCES User (UserId) -); - -CREATE TABLE IF NOT EXISTS Comment ( - CommentId INTEGER PRIMARY KEY, - PostId INTEGER, - Score INTEGER, - Body TEXT, - CreationDate TEXT, - UserId INTEGER, - ContentLicense TEXT, - FOREIGN KEY (PostId) REFERENCES Post (PostId), - FOREIGN KEY (UserId) REFERENCES User (UserId) - -); - -CREATE TABLE IF NOT EXISTS Badge ( - BadgeId INTEGER PRIMARY KEY, - UserId INTEGER, - Name TEXT, - CreationDate TEXT, - Class INTEGER, - TagBased TEXT, - FOREIGN KEY (UserId) REFERENCES User (UserId) -); - - -CREATE TABLE IF NOT EXISTS Tag ( - TagId INTEGER PRIMARY KEY, - TagName TEXT, - Count INTEGER -); - - -CREATE TABLE IF NOT EXISTS Vote ( - VoteId INTEGER PRIMARY KEY, - PostId INTEGER, - VoteTypeId INTEGER, - CreationDate TEXT, - FOREIGN KEY (PostId) REFERENCES Post (PostId) -); - - -CREATE INDEX owner_index ON Post (OwnerUserId); +CREATE TABLE IF NOT EXISTS User ( + UserId INTEGER PRIMARY KEY, + Reputation INTEGER, + CreationDate TEXT, + DisplayName TEXT, + LastAccessDate TEXT, + WebsiteUrl TEXT, + Location Text, + AboutMe Text, + Views INTEGER, + UpVotes INTEGER, + DownVotes INTEGER, + ProfileImageUrl TEXT, + AccountId INTEGER +); + +CREATE TABLE IF NOT EXISTS Post ( + PostId INTEGER PRIMARY KEY, + PostTypeId INTEGER, + AcceptedAnswerId INTEGER, + CreationDate TEXT, + Score INTEGER, + ViewCount INTEGER, + Body TEXT, + OwnerUserId INTEGER, + LastEditorUserId INTEGER, + LastEditorDisplayName TEXT, + LastEditDate TEXT, + Title TEXT, + Tags TEXT, + AnswerCount INTEGER, + CommentCount INTEGER, + FavoriteCount INTEGER, + CommunityOwnedDate TEXT, + ContentLicense TEXT, + ParentId INTEGER, + FOREIGN KEY (OwnerUserId) REFERENCES User (UserId), + FOREIGN KEY (LastEditorUserId) REFERENCES User (UserId) +); + +CREATE TABLE IF NOT EXISTS Comment ( + CommentId INTEGER PRIMARY KEY, + PostId INTEGER, + Score INTEGER, + Body TEXT, + CreationDate TEXT, + UserId INTEGER, + ContentLicense TEXT, + FOREIGN KEY (PostId) REFERENCES Post (PostId), + FOREIGN KEY (UserId) REFERENCES User (UserId) + +); + +CREATE TABLE IF NOT EXISTS Badge ( + BadgeId INTEGER PRIMARY KEY, + UserId INTEGER, + Name TEXT, + CreationDate TEXT, + Class INTEGER, + TagBased TEXT, + FOREIGN KEY (UserId) REFERENCES User (UserId) +); + + +CREATE TABLE IF NOT EXISTS Tag ( + TagId INTEGER PRIMARY KEY, + TagName TEXT, + Count INTEGER +); + + +CREATE TABLE IF NOT EXISTS Vote ( + VoteId INTEGER PRIMARY KEY, + PostId INTEGER, + VoteTypeId INTEGER, + CreationDate TEXT, + FOREIGN KEY (PostId) REFERENCES Post (PostId) +); + + +CREATE INDEX owner_index ON Post (OwnerUserId); CREATE INDEX commenter ON Comment (UserId); \ No newline at end of file diff --git a/data-collection/stack_exchange_api.py b/data-collection/stack_exchange_api.py index c720caad1830b1ec1e4887aee0e332851e6b131b..4d281369471465568f3a2c8c824f40266813886a 100644 --- a/data-collection/stack_exchange_api.py +++ b/data-collection/stack_exchange_api.py @@ -1,67 +1,67 @@ -from stackapi import StackAPI, StackAPIError -import logging -from typing import List - -logging.basicConfig(level=logging.INFO) - - -class StackExchangeAPI: - def __init__(self, max_pages: int, page_size: int): - try: - self._SITE = StackAPI('stackoverflow') - self._SITE.max_pages = max_pages - self._SITE.page_size = page_size - except StackAPIError as e: - logging.error(" Error URL: {}".format(e.url)) - logging.error(" Error Code: {}".format(e.code)) - logging.error(" Error Error: {}".format(e.error)) - logging.error(" Error Message: {}".format(e.message)) - - """ - The following methods will be used for data collection in Iteration 1: - User-expertise graph - """ - - def get_user_ids(self) -> List[int]: - """ - Request a set of users and return their ids. - :return: List of ids - """ - response = self._SITE.fetch( - 'users', min=1000 - ) - user_ids = [user['account_id'] for user in response['items']] - return user_ids - - def get_user_activity(self, account_ids: List[int]): - """ - Get questions, answers, comments asked by the users - :param account_ids: List of user ids - :return: - """ - if len(account_ids) > 100: - logging.error("get_user_activity: account_ids should not have more than 100 ids.") - return None - response_answers = self._SITE.fetch( - 'users/{ids}/answers', ids=account_ids, body=True - ) - print(response_answers) - - response_questions = self._SITE.fetch( - 'users/{ids}/questions', ids=account_ids, body=True - ) - - print(response_questions) - - response_comments = self._SITE.fetch( - 'users/{ids}/comments', ids=account_ids - ) - - print(response_comments) - - -if __name__ == '__main__': - a = StackExchangeAPI(1, 100) - ids = a.get_user_ids() - print(len(ids)) - a.get_user_activity(ids) +from stackapi import StackAPI, StackAPIError +import logging +from typing import List + +logging.basicConfig(level=logging.INFO) + + +class StackExchangeAPI: + def __init__(self, max_pages: int, page_size: int): + try: + self._SITE = StackAPI('stackoverflow') + self._SITE.max_pages = max_pages + self._SITE.page_size = page_size + except StackAPIError as e: + logging.error(" Error URL: {}".format(e.url)) + logging.error(" Error Code: {}".format(e.code)) + logging.error(" Error Error: {}".format(e.error)) + logging.error(" Error Message: {}".format(e.message)) + + """ + The following methods will be used for data collection in Iteration 1: + User-expertise graph + """ + + def get_user_ids(self) -> List[int]: + """ + Request a set of users and return their ids. + :return: List of ids + """ + response = self._SITE.fetch( + 'users', min=1000 + ) + user_ids = [user['account_id'] for user in response['items']] + return user_ids + + def get_user_activity(self, account_ids: List[int]): + """ + Get questions, answers, comments asked by the users + :param account_ids: List of user ids + :return: + """ + if len(account_ids) > 100: + logging.error("get_user_activity: account_ids should not have more than 100 ids.") + return None + response_answers = self._SITE.fetch( + 'users/{ids}/answers', ids=account_ids, body=True + ) + print(response_answers) + + response_questions = self._SITE.fetch( + 'users/{ids}/questions', ids=account_ids, body=True + ) + + print(response_questions) + + response_comments = self._SITE.fetch( + 'users/{ids}/comments', ids=account_ids + ) + + print(response_comments) + + +if __name__ == '__main__': + a = StackExchangeAPI(1, 100) + ids = a.get_user_ids() + print(len(ids)) + a.get_user_activity(ids) diff --git a/embeddings/__pycache__/dataset_in_memory.cpython-39.pyc b/embeddings/__pycache__/dataset_in_memory.cpython-39.pyc index 7b5680a08ba3da9769d0355f247721d87c640624..9b83a4765e9795f43b60b3366d7e703ea97591b5 100644 Binary files a/embeddings/__pycache__/dataset_in_memory.cpython-39.pyc and b/embeddings/__pycache__/dataset_in_memory.cpython-39.pyc differ diff --git a/embeddings/__pycache__/helper_functions.cpython-39.pyc b/embeddings/__pycache__/helper_functions.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e9aedf9cfa6437b126da423911d484bebcfbfec9 Binary files /dev/null and b/embeddings/__pycache__/helper_functions.cpython-39.pyc differ diff --git a/embeddings/__pycache__/hetero_GAT_constants.cpython-39.pyc b/embeddings/__pycache__/hetero_GAT_constants.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0e65d91c024cfebce9a45eb473a69058684cf459 Binary files /dev/null and b/embeddings/__pycache__/hetero_GAT_constants.cpython-39.pyc differ diff --git a/embeddings/dataset_in_memory.py b/embeddings/dataset_in_memory.py index 1ecbf6a7b6ca609b0c1c604fbb5d643d5ea79cee..10016e3b41f9e51b24a95ecca49af320e14aaf2e 100644 --- a/embeddings/dataset_in_memory.py +++ b/embeddings/dataset_in_memory.py @@ -16,6 +16,7 @@ class UserGraphDatasetInMemory(InMemoryDataset): self._question_ids = question_ids super().__init__(root, transform, pre_transform, pre_filter) self.data, self.slices = torch.load(self.processed_paths[0]) + # Remove gradient requirements self.data = self.data.apply(lambda x: x.detach()) @property diff --git a/embeddings/helper_functions.py b/embeddings/helper_functions.py new file mode 100644 index 0000000000000000000000000000000000000000..a9b539f3b8dd344ec3865739448acf8820251f0a --- /dev/null +++ b/embeddings/helper_functions.py @@ -0,0 +1,93 @@ +import torch +import wandb +import os + +from custom_logger import setup_custom_logger +import logging + +log = setup_custom_logger("heterogenous_GAT_model", logging.INFO) + + +def create_graph_vis(graph): + g = to_networkx(graph.to_homogeneous()) + pos = nx.spring_layout(g) + vis = GraphVisualization( + g, pos, node_text_position='top left', node_size=20, + ) + fig = vis.create_figure() + return fig + + +""" +Weights & Biases dashboard +""" + +def init_wandb(project_name: str, dataset, data_details): + wandb.init(project=project_name, name="setup") + + # Log all the details about the data to W&B. + wandb.log(data_details) + + # Log exploratory visualizations for each data point to W&B + table = wandb.Table(columns=["Graph", "Number of Nodes", "Number of Edges", "Label"]) + for graph in dataset: + fig = create_graph_vis(graph) + n_nodes = graph.num_nodes + n_edges = graph.num_edges + label = graph.label.item() + + # graph_vis = plotly.io.to_html(fig, full_html=False) + + table.add_data(wandb.Plotly(fig), n_nodes, n_edges, label) + wandb.log({"data": table}) + + # Log the dataset to W&B as an artifact. + dataset_artifact = wandb.Artifact(name="static-graphs", type="dataset", metadata=data_details) + dataset_artifact.add_dir("../data/") + wandb.log_artifact(dataset_artifact) + + # End the W&B run + wandb.finish() + +def start_wandb_for_training(wandb_project_name: str, wandb_run_name: str): + wandb.init(project=wandb_project_name, name=wandb_run_name) + # wandb.use_artifact("static-graphs:latest") + + +def add_cm_to_wandb(test_info): + wandb.log({"test/cm": wandb.plot.confusion_matrix(probs=None, y_true=test_info["trues"], preds=test_info["preds"], class_names=["neutral", "upvoted"])}) + +def log_results_to_wandb(results_map, results_name: str): + wandb.log({ + f"{results_name}/loss": results_map["loss"], + f"{results_name}/accuracy": results_map["accuracy"], + f"{results_name}/f1": results_map["f1-score"], + f"{results_name}/table": results_map["table"] + }) + +""" +PyTorch helpers +""" + + +def save_model(model, model_name: str): + torch.save(model.state_dict(), os.path.join("..", "models", model_name)) + + +def split_test_train_pytorch(dataset, train_split): + train_size = int(0.7 * len(dataset)) + test_size = len(dataset) - (train_size) + + train_dataset, test_dataset = torch.utils.data.random_split(dataset, [train_size, test_size]) + return train_dataset, test_dataset + +def calculate_class_weights(dataset): + # Class weights + log.info(f"Calculating class weights") + train_labels = [x.label for x in dataset] + counts = [train_labels.count(x) for x in [0, 1]] + log.info(counts) + class_weights = [1 - (x / sum(counts)) for x in counts] + log.info(class_weights) + sampler = torch.utils.data.WeightedRandomSampler([class_weights[x] for x in train_labels], len(train_labels)) + return sampler diff --git a/embeddings/hetero_GAT.py b/embeddings/hetero_GAT.py index e217f08a38a8d62fc6f33cc35ce5aaf7e6101bc1..4b5c2919427d1e867334d3d0406084e681f33c62 100644 --- a/embeddings/hetero_GAT.py +++ b/embeddings/hetero_GAT.py @@ -10,16 +10,17 @@ import torch from sklearn.metrics import f1_score, accuracy_score from torch_geometric.loader import DataLoader from torch_geometric.nn import HeteroConv, GATConv, Linear, global_mean_pool -from embeddings.helper_functions import calculate_class_weights, split_test_train_pytorch +from helper_functions import calculate_class_weights, split_test_train_pytorch import wandb from torch_geometric.utils import to_networkx +from sklearn.model_selection import KFold from custom_logger import setup_custom_logger from dataset import UserGraphDataset from dataset_in_memory import UserGraphDatasetInMemory from Visualize import GraphVisualization import helper_functions -from hetero_GAT_constants import TRAIN_BATCH_SIZE, TEST_BATCH_SIZE, IN_MEMORY_DATASET, INCLUDE_ANSWER, USE_WANDB, WANDB_PROJECT_NAME, NUM_WORKERS, EPOCHS, NUM_LAYERS, HIDDEN_CHANNELS, FINAL_MODEL_OUT_PATH, SAVE_CHECKPOINTS +from hetero_GAT_constants import TRAIN_BATCH_SIZE, TEST_BATCH_SIZE, IN_MEMORY_DATASET, INCLUDE_ANSWER, USE_WANDB, WANDB_PROJECT_NAME, NUM_WORKERS, EPOCHS, NUM_LAYERS, HIDDEN_CHANNELS, FINAL_MODEL_OUT_PATH, SAVE_CHECKPOINTS, WANDB_RUN_NAME log = setup_custom_logger("heterogenous_GAT_model", logging.INFO) torch.multiprocessing.set_sharing_strategy('file_system') @@ -28,7 +29,6 @@ rlimit = resource.getrlimit(resource.RLIMIT_NOFILE) resource.setrlimit(resource.RLIMIT_NOFILE, (2048, rlimit[1])) - class HeteroGNN(torch.nn.Module): """ Heterogenous Graph Attentional Network (GAT) @@ -134,15 +134,22 @@ def test(loader): loss = criterion(out, torch.squeeze(data.label, -1)) # Compute the loss. cumulative_loss += loss.item() - pred = out.argmax(dim=1) # Use the class with highest probability. + + # Use the class with highest probability. + pred = out.argmax(dim=1) + + # Cache the predictions for calculating metrics predictions += list([x.item() for x in pred]) true_labels += list([x.item() for x in data.label]) + + # Log table of predictions to WandB if USE_WANDB: #graph_html = wandb.Html(plotly.io.to_html(create_graph_vis(data))) for pred, label in zip(pred, torch.squeeze(data.label, -1)): table.add_data(label, pred) - + + # Collate results into a single dictionary test_results = { "accuracy": accuracy_score(true_labels, predictions), "f1-score": f1_score(true_labels, predictions), @@ -163,6 +170,10 @@ if __name__ == '__main__': if IN_MEMORY_DATASET: train_dataset = UserGraphDatasetInMemory(root="../data", file_name_out='train-4175-qs.pt') test_dataset = UserGraphDatasetInMemory(root="../data", file_name_out='test-1790-qs.pt') + + ## TEST + split1, split2 = helper_functions.split_test_train_pytorch(train_dataset, 0.7) + else: dataset = UserGraphDataset(root="../data", skip_processing=True) train_dataset, test_dataset = split_test_train_pytorch(dataset) @@ -179,8 +190,9 @@ if __name__ == '__main__': log.info(f"Data Details:\n{data_details}") if USE_WANDB: - wandb_run_name = f"run@{time.strftime('%Y%m%d-%H%M%S')}" - helper_functions.start_wandb_for_training(WANDB_PROJECT_NAME, wandb_run_name) + if WANDB_RUN_NAME is None: + run_name = f"run@{time.strftime('%Y%m%d-%H%M%S')}" + helper_functions.start_wandb_for_training(WANDB_PROJECT_NAME, run_name) # Class weights @@ -218,24 +230,16 @@ if __name__ == '__main__': if SAVE_CHECKPOINTS: checkpoint_file_name = f"../models/model-{epoch}.pt" torch.save(model.state_dict(), checkpoint_file_name) - + + # log evaluation results to wandb if USE_WANDB: - wandb.log({ - "train/loss": train_info["loss"], - "train/accuracy": train_info["accuracy"], - "train/f1": train_info["f1-score"], - "train/table": train_info["table"], - "test/loss": test_info["loss"], - "test/accuracy": test_info["accuracy"], - "test/f1": test_info["f1-score"], - "test/table": test_info["table"] - }) + helper_functions.log_results_to_wandb(train_info, "train") + helper_functions.log_results_to_wandb(test_info, "test") log.info(f'Test F1: {train_info["f1-score"]:.4f}') helper_functions.save_model(model, FINAL_MODEL_OUT_PATH) # Plot confusion matrix if USE_WANDB: - wandb.log({"test/cm": wandb.plot.confusion_matrix(probs=None, y_true=test_info["trues"], preds=test_info["preds"], class_names=["neutral", "upvoted"])}) + helper_functions.add_cm_to_wandb(test_info) wandb.finish() - diff --git a/embeddings/hetero_GAT_constants.py b/embeddings/hetero_GAT_constants.py index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..df58a591afaa5e10f13e60e33d96131e60e7b749 100644 --- a/embeddings/hetero_GAT_constants.py +++ b/embeddings/hetero_GAT_constants.py @@ -0,0 +1,23 @@ +# Batch sizes +TRAIN_BATCH_SIZE = 512 +TEST_BATCH_SIZE = 512 + +# Data config +IN_MEMORY_DATASET = True +INCLUDE_ANSWER = True + +# W&B dashboard logging +USE_WANDB = True +WANDB_PROJECT_NAME = "heterogeneous-GAT-model" +WANDB_RUN_NAME = None # None for timestamp + +NUM_WORKERS = 14 + +# Training parameters +EPOCHS = 2 + +# Model architecture +NUM_LAYERS = 3 +HIDDEN_CHANNELS = 64 +FINAL_MODEL_OUT_PATH = "model.pt" +SAVE_CHECKPOINTS = False \ No newline at end of file diff --git a/figures/user-graph.svg b/figures/user-graph.svg index cbae063b4713260bd3d8e0f8a5efb885fe0c6509..7a2c3f3938784198b2f140527a9587ffb1842818 100644 --- a/figures/user-graph.svg +++ b/figures/user-graph.svg @@ -1,11754 +1,11754 @@ -<?xml version="1.0" encoding="utf-8" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="2880pt" height="2880pt" viewBox="0 0 2880 2880" xmlns="http://www.w3.org/2000/svg" version="1.1"> - <metadata> - <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#"> - <cc:Work> - <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> - <dc:date>2023-01-31T18:26:58.932201</dc:date> - <dc:format>image/svg+xml</dc:format> - <dc:creator> - <cc:Agent> - <dc:title>Matplotlib v3.6.2, https://matplotlib.org/</dc:title> - </cc:Agent> - </dc:creator> - </cc:Work> - </rdf:RDF> - </metadata> - <defs> - <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style> - </defs> - <g id="figure_1"> - <g id="patch_1"> - <path d="M 0 2880 -L 2880 2880 -L 2880 0 -L 0 0 -z -" style="fill: #ffffff"/> - </g> - <g id="axes_1"> - <g id="patch_2"> - <path d="M 1539.075445 1629.687828 -Q 2072.021313 1496.075699 2603.882709 1362.735453 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2599.516426 1361.768206 -L 2603.882709 1362.735453 -L 2600.489142 1365.648132 -L 2599.516426 1361.768206 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_3"> - <path d="M 1522.280934 1633.894472 -Q 988.1753 1767.554278 455.154254 1900.942667 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 459.520123 1901.911783 -L 455.154254 1900.942667 -L 458.549069 1898.031441 -L 459.520123 1901.911783 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_4"> - <path d="M 1678.007861 2122.787476 -Q 2097.563249 1987.475792 2516.054574 1852.507282 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2511.633776 1851.831601 -L 2516.054574 1852.507282 -L 2512.861551 1855.638512 -L 2511.633776 1851.831601 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_5"> - <path d="M 1661.528564 2128.124816 -Q 1242.464453 2264.426055 824.463552 2400.381484 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 828.886011 2401.046202 -L 824.463552 2400.381484 -L 827.648802 2397.242347 -L 828.886011 2401.046202 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_6"> - <path d="M 732.16271 882.312965 -Q 520.969959 1104.319786 310.547802 1325.516554 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 314.753829 1323.996903 -L 310.547802 1325.516554 -L 311.855698 1321.239942 -L 314.753829 1323.996903 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_7"> - <path d="M 743.807931 869.503622 -Q 944.950773 637.943677 1145.360429 407.227791 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1141.2274 408.936028 -L 1145.360429 407.227791 -L 1144.247201 411.559156 -L 1141.2274 408.936028 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_8"> - <path d="M 2166.609581 1009.707887 -Q 2314.988026 908.025858 2462.444213 806.975841 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2458.014063 807.587213 -L 2462.444213 806.975841 -L 2460.275221 810.886784 -L 2458.014063 807.587213 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_9"> - <path d="M 1510.391493 2498.767554 -Q 1785.052949 2456.392549 2058.609444 2414.188019 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.351263 2412.821312 -L 2058.609444 2414.188019 -L 2054.96117 2416.774541 -L 2054.351263 2412.821312 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_10"> - <path d="M 1493.265747 2501.350479 -Q 1219.067415 2541.757131 945.975171 2582.000786 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 950.224011 2583.396264 -L 945.975171 2582.000786 -L 949.640858 2579.439001 -L 950.224011 2583.396264 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_11"> - <path d="M 1505.619152 2453.643707 -Q 1782.625875 2433.484777 2058.517514 2413.406997 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.3829 2411.702601 -L 2058.517514 2413.406997 -L 2054.673229 2415.69205 -L 2054.3829 2411.702601 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_12"> - <path d="M 1488.544885 2456.216205 -Q 1216.641167 2518.849514 945.826952 2581.231854 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 950.173819 2582.282924 -L 945.826952 2581.231854 -L 949.275928 2578.385003 -L 950.173819 2582.282924 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_13"> - <path d="M 1326.338641 2291.892755 -Q 1693.031133 2351.598786 2058.620122 2411.125141 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.993527 2408.508309 -L 2058.620122 2411.125141 -L 2054.350699 2412.456318 -L 2054.993527 2408.508309 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_14"> - <path d="M 1309.239564 2289.135864 -Q 942.711173 2230.623586 577.286836 2172.287559 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 580.921534 2174.893124 -L 577.286836 2172.287559 -L 581.552106 2170.943139 -L 580.921534 2174.893124 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_15"> - <path d="M 1506.477375 2495.886283 -Q 1783.091581 2454.926002 2058.599812 2414.129492 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.349997 2412.736985 -L 2058.599812 2414.129492 -L 2054.935917 2416.693839 -L 2054.349997 2412.736985 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_16"> - <path d="M 1489.352549 2498.469463 -Q 1217.106024 2540.290567 945.96457 2581.941915 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 950.221862 2583.311391 -L 945.96457 2581.941915 -L 949.614526 2579.357767 -L 950.221862 2583.311391 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_17"> - <path d="M 1507.273508 2491.528931 -Q 1783.487158 2452.715302 2058.593651 2414.057251 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.354261 2412.633322 -L 2058.593651 2414.057251 -L 2054.910874 2416.594406 -L 2054.354261 2412.633322 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_18"> - <path d="M 1490.148295 2494.11273 -Q 1217.497379 2538.080523 945.950237 2581.870321 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 950.217628 2583.207998 -L 945.950237 2581.870321 -L 949.580813 2579.259015 -L 950.217628 2583.207998 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_19"> - <path d="M 1974.366243 1397.466152 -Q 2020.92115 1900.769209 2067.37308 2402.958986 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2068.996157 2398.791777 -L 2067.37308 2402.958986 -L 2065.01316 2399.1602 -L 2068.996157 2398.791777 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_20"> - <path d="M 1972.732427 1380.229869 -Q 1923.845481 876.660716 1875.066567 374.204366 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1873.462432 378.378902 -L 1875.066567 374.204366 -L 1877.443715 377.992395 -L 1873.462432 378.378902 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_21"> - <path d="M 1805.460525 1412.268532 -Q 1935.766877 1908.294336 2065.78916 2403.238797 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2066.707207 2398.861904 -L 2065.78916 2403.238797 -L 2062.838474 2399.878223 -L 2066.707207 2398.861904 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_22"> - <path d="M 1801.074017 1395.51466 -Q 1671.666417 899.586427 1542.541105 404.740005 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1541.615848 409.115379 -L 1542.541105 404.740005 -L 1545.48625 408.105436 -L 1541.615848 409.115379 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_23"> - <path d="M 1403.250895 1671.463734 -Q 839.200308 1709.573544 276.265212 1747.607986 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 280.390934 1749.333793 -L 276.265212 1747.607986 -L 280.121291 1745.342892 -L 280.390934 1749.333793 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_24"> - <path d="M 1420.527382 1670.300121 -Q 1985.17997 1632.389167 2548.717036 1594.553109 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2544.592042 1592.82556 -L 2548.717036 1594.553109 -L 2544.86 1596.816574 -L 2544.592042 1592.82556 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_25"> - <path d="M 2125.268824 2351.230927 -Q 2099.715177 2378.789174 2074.92172 2405.527597 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2079.108003 2403.954374 -L 2074.92172 2405.527597 -L 2076.174911 2401.234637 -L 2079.108003 2403.954374 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_26"> - <path d="M 2138.42243 2340.161954 -Q 2169.267831 2320.130642 2199.175571 2300.708257 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2194.731612 2301.209479 -L 2199.175571 2300.708257 -L 2196.910174 2304.564158 -L 2194.731612 2301.209479 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_27"> - <path d="M 2379.45734 951.697164 -Q 2374.34316 952.180856 2370.342047 952.559276 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2374.512592 954.173756 -L 2370.342047 952.559276 -L 2374.135959 950.191528 -L 2374.512592 954.173756 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_28"> - <path d="M 1713.040551 1358.673933 -Q 1889.274305 1881.582256 2065.150987 2403.431099 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2065.768741 2399.001835 -L 2065.150987 2403.431099 -L 2061.978228 2400.279336 -L 2065.768741 2399.001835 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_29"> - <path d="M 1707.479986 1342.269568 -Q 1529.713017 820.825428 1352.306812 300.439517 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1351.704502 304.870907 -L 1352.306812 300.439517 -L 1355.490539 303.580199 -L 1351.704502 304.870907 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_30"> - <path d="M 1874.625812 1353.457724 -Q 2039.557833 1820.336948 2204.117447 2286.161984 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2204.67087 2281.724223 -L 2204.117447 2286.161984 -L 2200.899292 2283.056589 -L 2204.67087 2281.724223 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_31"> - <path d="M 1868.885601 1337.112724 -Q 1705.905289 870.280849 1543.293492 404.50453 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1542.723698 408.940219 -L 1543.293492 404.50453 -L 1546.500166 407.621778 -L 1542.723698 408.940219 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_32"> - <path d="M 1914.027313 1002.251734 -Q 2244.992217 1319.981239 2575.150589 1636.936466 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2573.650125 1632.723557 -L 2575.150589 1636.936466 -L 2570.879983 1635.609092 -L 2573.650125 1632.723557 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_33"> - <path d="M 1901.539736 990.24707 -Q 1570.867116 671.925226 1240.999966 354.378765 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1242.494649 358.593729 -L 1240.999966 354.378765 -L 1245.268747 355.711997 -L 1242.494649 358.593729 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_34"> - <path d="M 2255.299329 1522.459034 -Q 2438.360471 1522.374375 2620.30358 1522.290234 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2616.302655 1520.292084 -L 2620.30358 1522.290234 -L 2616.304505 1524.292083 -L 2616.302655 1520.292084 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_35"> - <path d="M 1971.624747 2283.079035 -Q 2017.361107 2344.41695 2062.429148 2404.858568 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2061.641438 2400.456351 -L 2062.429148 2404.858568 -L 2058.434749 2402.847406 -L 2061.641438 2400.456351 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_36"> - <path d="M 1329.850881 462.35067 -Q 1196.83353 420.228853 1064.882049 378.444558 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1068.091642 381.558802 -L 1064.882049 378.444558 -L 1069.299199 377.74543 -L 1068.091642 381.558802 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_37"> - <path d="M 1346.681799 463.739095 -Q 1479.656322 444.72608 1611.524068 425.871314 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1607.281253 424.457621 -L 1611.524068 425.871314 -L 1607.847425 428.417349 -L 1607.281253 424.457621 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_38"> - <path d="M 895.815821 2020.746763 -Q 766.929944 2130.678846 638.894705 2239.885386 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 643.235934 2238.811267 -L 638.894705 2239.885386 -L 640.640147 2235.767931 -L 643.235934 2238.811267 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_39"> - <path d="M 2248.117275 2076.009176 -Q 2399.441636 1973.291968 2549.840945 1871.202674 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2545.408127 1871.794386 -L 2549.840945 1871.202674 -L 2547.654624 1875.103956 -L 2545.408127 1871.794386 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_40"> - <path d="M 2236.953296 2088.556545 -Q 2154.612799 2246.784969 2072.788413 2404.021612 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2076.409064 2401.396562 -L 2072.788413 2404.021612 -L 2072.860763 2399.550062 -L 2076.409064 2401.396562 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_41"> - <path d="M 2262.293963 950.306933 -Q 2362.880141 878.395537 2462.556811 807.13437 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2458.139696 807.83372 -L 2462.556811 807.13437 -L 2460.466022 811.087672 -L 2458.139696 807.83372 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_42"> - <path d="M 1275.716947 1738.920303 -Q 1668.695388 2073.003214 2060.822009 2406.361967 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2059.06986 2402.247362 -L 2060.822009 2406.361967 -L 2056.479036 2405.294923 -L 2059.06986 2402.247362 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_43"> - <path d="M 1262.554632 1727.662779 -Q 871.831124 1391.457527 481.955098 1055.981505 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 483.682649 1060.106498 -L 481.955098 1055.981505 -L 486.291623 1057.074459 -L 483.682649 1060.106498 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_44"> - <path d="M 1974.366253 1397.466178 -Q 2020.921156 1900.769223 2067.373081 2402.958986 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2068.996157 2398.791778 -L 2067.373081 2402.958986 -L 2065.01316 2399.1602 -L 2068.996157 2398.791778 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_45"> - <path d="M 1972.732437 1380.229896 -Q 1923.845486 876.66073 1875.066567 374.204366 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1873.462432 378.378902 -L 1875.066567 374.204366 -L 1877.443715 377.992395 -L 1873.462432 378.378902 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_46"> - <path d="M 1661.359419 379.470336 -Q 1605.010896 386.813074 1549.771033 394.011344 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1553.995932 395.477709 -L 1549.771033 394.011344 -L 1553.479065 391.511244 -L 1553.995932 395.477709 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_47"> - <path d="M 1678.424127 376.561916 -Q 1734.688444 364.684726 1789.858836 353.038459 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1785.531998 351.907762 -L 1789.858836 353.038459 -L 1786.358176 355.821511 -L 1785.531998 351.907762 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_48"> - <path d="M 2189.174111 1383.407856 -Q 2129.499503 917.403062 2069.966906 452.507247 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2068.49118 456.728886 -L 2069.966906 452.507247 -L 2072.458781 456.220812 -L 2068.49118 456.728886 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_49"> - <path d="M 2191.441463 1400.578952 -Q 2254.790275 1866.242294 2317.988378 2330.797806 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2319.43093 2326.564718 -L 2317.988378 2330.797806 -L 2315.467438 2327.103911 -L 2319.43093 2326.564718 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_50"> - <path d="M 2042.732918 772.189102 -Q 2151.37641 636.868788 2259.319952 502.420294 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2255.256175 504.287301 -L 2259.319952 502.420294 -L 2258.375291 506.79152 -L 2255.256175 504.287301 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_51"> - <path d="M 574.163678 2015.909701 -Q 694.28313 2173.422376 813.724613 2330.046031 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 812.889367 2325.652585 -L 813.724613 2330.046031 -L 809.708709 2328.07816 -L 812.889367 2325.652585 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_52"> - <path d="M 563.327933 2002.406115 -Q 434.898891 1850.217623 307.190902 1698.88358 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 308.242137 1703.230407 -L 307.190902 1698.88358 -L 311.299105 1700.650688 -L 308.242137 1703.230407 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_53"> - <path d="M 1301.525592 1404.694203 -Q 1537.171657 949.15183 1772.304035 494.602496 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1768.689814 497.236391 -L 1772.304035 494.602496 -L 1772.242619 499.07421 -L 1768.689814 497.236391 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_54"> - <path d="M 1293.573244 1420.080568 -Q 1058.598764 1875.104125 824.137276 2329.134283 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 827.749654 2326.497861 -L 824.137276 2329.134283 -L 824.195565 2324.662527 -L 827.749654 2326.497861 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_55"> - <path d="M 1279.213982 1735.562045 -Q 1670.458466 2071.310102 2060.8545 2406.330057 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2059.121458 2402.207368 -L 2060.8545 2406.330057 -L 2056.516523 2405.242877 -L 2059.121458 2402.207368 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_56"> - <path d="M 1266.051667 1724.304521 -Q 873.594203 1389.764415 481.987594 1055.949599 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 483.73427 1060.06653 -L 481.987594 1055.949599 -L 486.329145 1057.022417 -L 483.73427 1060.06653 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_57"> - <path d="M 860.453415 1393.436441 -Q 748.043464 1857.594804 635.896672 2320.666545 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 638.781985 2317.24968 -L 635.896672 2320.666545 -L 634.894367 2316.308176 -L 638.781985 2317.24968 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_58"> - <path d="M 864.518566 1376.596153 -Q 976.333486 911.879764 1087.886861 448.250387 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1085.006625 451.671532 -L 1087.886861 448.250387 -L 1088.895636 452.607263 -L 1085.006625 451.671532 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_59"> - <path d="M 1426.992294 492.250331 -Q 1625.396084 467.18319 1822.690659 442.256192 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1818.471513 440.773357 -L 1822.690659 442.256192 -L 1818.972903 444.741809 -L 1818.471513 440.773357 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_60"> - <path d="M 1410.640713 489.492215 -Q 1223.392891 396.70588 1037.146856 304.415957 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1039.842946 307.984024 -L 1037.146856 304.415957 -L 1041.618963 304.399925 -L 1039.842946 307.984024 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_61"> - <path d="M 538.304379 1854.851354 -Q 585.098975 2088.2652 631.673802 2320.582824 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 632.848511 2316.267727 -L 631.673802 2320.582824 -L 628.92655 2317.053998 -L 632.848511 2316.267727 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_62"> - <path d="M 533.450611 1838.291754 -Q 447.167166 1617.417427 361.290535 1397.584493 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 360.8831 1402.038031 -L 361.290535 1397.584493 -L 364.608904 1400.582564 -L 360.8831 1402.038031 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_63"> - <path d="M 2272.523534 1354.980568 -Q 2310.064082 1677.126209 2347.475219 1998.161331 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2348.998777 1993.956719 -L 2347.475219 1998.161331 -L 2345.025664 1994.419717 -L 2348.998777 1993.956719 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_64"> - <path d="M 2270.598231 1337.769617 -Q 2236.038486 1015.385782 2201.597911 694.113611 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2200.035664 698.304004 -L 2201.597911 694.113611 -L 2204.012877 697.877644 -L 2200.035664 698.304004 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_65"> - <path d="M 1572.900929 868.423512 -Q 2034.939318 1069.193376 2495.952297 1269.517669 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2493.080743 1266.089232 -L 2495.952297 1269.517669 -L 2491.486616 1269.75785 -L 2493.080743 1266.089232 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_66"> - <path d="M 1557.019105 861.510056 -Q 1095.561118 660.276531 635.127958 459.489916 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 637.995039 462.922094 -L 635.127958 459.489916 -L 639.593949 459.255558 -L 637.995039 462.922094 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_67"> - <path d="M 427.280142 1479.207506 -Q 414.527413 1184.322161 401.82299 890.553807 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 399.997681 894.636483 -L 401.82299 890.553807 -L 403.993946 894.463659 -L 399.997681 894.636483 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_68"> - <path d="M 427.272848 1496.517702 -Q 414.242972 1791.954968 401.262358 2086.275286 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 403.436659 2082.367292 -L 401.262358 2086.275286 -L 399.440544 2082.191049 -L 403.436659 2082.367292 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_69"> - <path d="M 1361.459933 1462.492068 -Q 1259.547421 2042.022647 1157.828549 2620.452088 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1160.491108 2616.858931 -L 1157.828549 2620.452088 -L 1156.551558 2616.166147 -L 1160.491108 2616.858931 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_70"> - <path d="M 1364.471416 1445.438421 -Q 1467.186025 866.191678 1569.705425 288.045796 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1567.037744 291.635152 -L 1569.705425 288.045796 -L 1570.976301 292.333555 -L 1567.037744 291.635152 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_71"> - <path d="M 1058.213202 1675.494526 -Q 660.647101 1477.618171 264.081911 1280.239989 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 266.771722 1283.812792 -L 264.081911 1280.239989 -L 268.55404 1280.231823 -L 266.771722 1283.812792 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_72"> - <path d="M 1072.951219 1684.46409 -Q 1567.117522 2046.023401 2060.381515 2406.922533 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2058.334278 2402.946502 -L 2060.381515 2406.922533 -L 2055.972348 2406.174704 -L 2058.334278 2402.946502 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_73"> - <path d="M 1060.038935 1673.042255 -Q 770.257154 1364.481099 481.240753 1056.734925 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 482.521179 1061.019841 -L 481.240753 1056.734925 -L 485.436942 1058.281535 -L 482.521179 1061.019841 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_74"> - <path d="M 2243.985109 1819.31418 -Q 2354.869284 1863.889256 2464.716105 1908.047319 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2461.750734 1904.699698 -L 2464.716105 1908.047319 -L 2460.258785 1908.411043 -L 2461.750734 1904.699698 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_75"> - <path d="M 1279.113634 1735.428236 -Q 1670.407874 2071.24264 2060.853689 2406.328913 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2059.120791 2402.206164 -L 2060.853689 2406.328913 -L 2056.515751 2405.241582 -L 2059.120791 2402.206164 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_76"> - <path d="M 1265.951319 1724.170711 -Q 873.543611 1389.696953 481.986784 1055.948454 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 483.733605 1060.065324 -L 481.986784 1055.948454 -L 486.328372 1057.021119 -L 483.733605 1060.065324 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_77"> - <path d="M 463.474254 1450.807345 -Q 377.91372 1449.176698 293.471017 1447.567355 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 297.432181 1449.643212 -L 293.471017 1447.567355 -L 297.5084 1445.643938 -L 297.432181 1449.643212 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_78"> - <path d="M 1420.154618 1506.873902 -Q 1806.325817 1055.43291 2191.770254 604.841516 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2187.650303 606.581058 -L 2191.770254 604.841516 -L 2190.689917 609.181202 -L 2187.650303 606.581058 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_79"> - <path d="M 1408.896222 1520.029774 -Q 1023.067424 1970.700936 637.965732 2420.522793 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 642.086387 2418.784919 -L 637.965732 2420.522793 -L 639.047826 2416.183545 -L 642.086387 2418.784919 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_80"> - <path d="M 1507.358851 863.851731 -Q 1026.121032 835.888191 545.999365 807.989508 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 549.87661 810.218179 -L 545.999365 807.989508 -L 550.108649 806.224915 -L 549.87661 810.218179 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_81"> - <path d="M 1524.649894 864.853422 -Q 2006.3879 892.676201 2487.009733 920.434516 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2483.131705 918.207208 -L 2487.009733 920.434516 -L 2482.901069 922.200553 -L 2483.131705 918.207208 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_82"> - <path d="M 2233.562543 952.70926 -Q 2348.386395 879.408837 2462.267863 806.710006 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2457.820128 807.17654 -L 2462.267863 806.710006 -L 2459.972449 810.548115 -L 2457.820128 807.17654 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_83"> - <path d="M 794.174609 552.528723 -Q 585.546289 694.480337 377.842327 835.803014 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 382.274489 835.206402 -L 377.842327 835.803014 -L 380.024334 831.899318 -L 382.274489 835.206402 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_84"> - <path d="M 808.44602 542.715306 -Q 1015.56426 398.788109 1221.764379 255.498918 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1217.338305 256.139132 -L 1221.764379 255.498918 -L 1219.620906 259.423905 -L 1217.338305 256.139132 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_85"> - <path d="M 1231.226196 2161.182273 -Q 1645.603796 2285.693782 2058.910655 2409.883556 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2055.655391 2406.817083 -L 2058.910655 2409.883556 -L 2054.504318 2410.647884 -L 2055.655391 2406.817083 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_86"> - <path d="M 1214.63349 2156.217229 -Q 800.019429 2032.668764 386.476844 1909.439581 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 389.739119 1912.498594 -L 386.476844 1909.439581 -L 390.881419 1908.665169 -L 389.739119 1912.498594 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_87"> - <path d="M 1650.405494 1108.685214 -Q 2053.470492 1441.436658 2455.673304 1773.47632 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2453.861921 1769.387446 -L 2455.673304 1773.47632 -L 2451.315375 1772.472102 -L 2453.861921 1769.387446 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_88"> - <path d="M 1637.026572 1097.678743 -Q 1232.493377 766.042487 828.824806 435.11505 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 830.650206 439.197686 -L 828.824806 435.11505 -L 833.186154 436.104311 -L 830.650206 439.197686 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_89"> - <path d="M 2298.383826 2104.138965 -Q 2342.538434 2037.289122 2386.076854 1971.372184 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2382.203482 1973.607577 -L 2386.076854 1971.372184 -L 2385.541145 1975.812119 -L 2382.203482 1973.607577 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_90"> - <path d="M 2289.619094 2119.050065 -Q 2252.420153 2190.667326 2215.736561 2261.292411 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2219.355192 2258.664577 -L 2215.736561 2261.292411 -L 2215.805472 2256.820806 -L 2219.355192 2258.664577 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_91"> - <path d="M 371.140533 1473.177786 -Q 325.010006 1515.61346 279.702314 1557.292204 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 284.000215 1556.056062 -L 279.702314 1557.292204 -L 281.292141 1553.112198 -L 284.000215 1556.056062 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_92"> - <path d="M 370.475346 1462.274244 -Q 316.334064 1423.507488 263.101813 1385.391626 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 265.189709 1389.346458 -L 263.101813 1385.391626 -L 267.518415 1386.094208 -L 265.189709 1389.346458 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_93"> - <path d="M 407.53725 1697.71264 -Q 356.855364 1519.32371 306.47903 1342.010252 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 305.648341 1346.404561 -L 306.47903 1342.010252 -L 309.496064 1345.311389 -L 305.648341 1346.404561 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_94"> - <path d="M 408.791946 1714.62994 -Q 384.481681 1902.519985 360.314879 2089.301237 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 362.811609 2085.590936 -L 360.314879 2089.301237 -L 358.844676 2085.077672 -L 362.811609 2085.590936 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_95"> - <path d="M 469.739575 1083.705166 -Q 434.878923 1163.997359 400.463533 1243.264008 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 403.891104 1240.391421 -L 400.463533 1243.264008 -L 400.222005 1238.798399 -L 403.891104 1240.391421 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_96"> - <path d="M 473.665413 1067.109554 -Q 478.619509 977.039286 483.512203 888.085365 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 481.295544 891.969489 -L 483.512203 888.085365 -L 485.289507 892.189168 -L 481.295544 891.969489 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_97"> - <path d="M 1486.103949 2278.221221 -Q 1772.971589 2344.484948 2058.749879 2410.497045 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2055.302631 2407.6481 -L 2058.749879 2410.497045 -L 2054.402374 2411.545476 -L 2055.302631 2407.6481 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_98"> - <path d="M 1470.134695 2280.543755 -Q 1206.981794 2429.848936 944.801313 2578.602395 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 949.267303 2578.36801 -L 944.801313 2578.602395 -L 947.293399 2574.888972 -L 949.267303 2578.36801 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_99"> - <path d="M 1529.49419 1398.42623 -Q 1796.852367 1901.736969 2063.68605 2404.060333 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2063.575839 2399.589555 -L 2063.68605 2404.060333 -L 2060.043301 2401.466036 -L 2063.575839 2399.589555 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_100"> - <path d="M 1521.375229 1383.133847 -Q 1255.015949 881.167506 989.180725 380.188772 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 989.288958 384.659598 -L 989.180725 380.188772 -L 992.822326 382.784681 -L 989.288958 384.659598 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_101"> - <path d="M 2156.9882 1448.97541 -Q 2150.055165 1944.250367 2143.13778 2438.4074 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2145.193572 2434.435786 -L 2143.13778 2438.4074 -L 2141.193963 2434.379798 -L 2145.193572 2434.435786 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_102"> - <path d="M 2157.24867 1431.651264 -Q 2165.2157 935.936007 2173.164764 441.33864 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2171.100743 445.305984 -L 2173.164764 441.33864 -L 2175.100227 445.370263 -L 2171.100743 445.305984 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_103"> - <path d="M 1489.646111 2317.925206 -Q 1774.688867 2364.611545 2058.62829 2411.117173 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2055.004154 2408.496937 -L 2058.62829 2411.117173 -L 2054.35762 2412.444341 -L 2055.004154 2408.496937 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_104"> - <path d="M 1473.326343 2320.335892 -Q 1208.70256 2449.975493 945.082799 2579.123222 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 949.554788 2579.159496 -L 945.082799 2579.123222 -L 947.795012 2575.567395 -L 949.554788 2579.159496 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_105"> - <path d="M 1510.381881 2498.637713 -Q 1785.048069 2456.326633 2058.609258 2414.185773 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.35139 2412.818087 -L 2058.609258 2414.185773 -L 2054.960389 2416.771455 -L 2054.35139 2412.818087 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_106"> - <path d="M 1493.256134 2501.220641 -Q 1219.062535 2541.691213 945.974986 2581.998533 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 950.224148 2583.393031 -L 945.974986 2581.998533 -L 949.640081 2579.435902 -L 950.224148 2583.393031 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_107"> - <path d="M 881.608271 897.115053 -Q 1187.205914 605.376126 1491.994863 314.409218 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1487.720562 315.724645 -L 1491.994863 314.409218 -L 1490.482623 318.617915 -L 1487.720562 315.724645 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_108"> - <path d="M 869.061693 909.052471 -Q 562.631963 1199.625894 257.013514 1489.430015 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 261.292207 1488.128944 -L 257.013514 1489.430015 -L 258.539873 1485.226418 -L 261.292207 1488.128944 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_109"> - <path d="M 1023.400408 1128.939795 -Q 737.124127 1512.65834 451.516403 1895.480766 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 455.511334 1893.470662 -L 451.516403 1895.480766 -L 452.305278 1891.078758 -L 455.511334 1893.470662 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_110"> - <path d="M 1033.747636 1115.048559 -Q 1319.699666 730.545484 1604.984503 346.939546 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1600.992634 348.955725 -L 1604.984503 346.939546 -L 1604.202325 351.342749 -L 1600.992634 348.955725 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_111"> - <path d="M 494.320061 1916.379139 -Q 440.029807 1911.871806 386.853754 1907.456977 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 390.674563 1909.781072 -L 386.853754 1907.456977 -L 391.005516 1905.794787 -L 390.674563 1909.781072 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_112"> - <path d="M 498.292369 1924.400458 -Q 471.142983 1966.986532 444.594616 2008.629857 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 448.431329 2006.332112 -L 444.594616 2008.629857 -L 445.058448 2004.181839 -L 448.431329 2006.332112 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_113"> - <path d="M 488.177846 1652.115038 -Q 381.315283 1698.467965 275.478419 1744.375984 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 279.943944 1744.619054 -L 275.478419 1744.375984 -L 278.35219 1740.949406 -L 279.943944 1744.619054 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_114"> - <path d="M 489.676559 1642.881433 -Q 442.879234 1600.84539 396.913657 1559.556471 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 398.552914 1563.71734 -L 396.913657 1559.556471 -L 401.225907 1560.741587 -L 398.552914 1563.71734 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_115"> - <path d="M 1194.165 2357.654944 -Q 1534.811783 2417.162955 1874.357212 2476.478569 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1870.761054 2473.820064 -L 1874.357212 2476.478569 -L 1870.072713 2477.760392 -L 1870.761054 2473.820064 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_116"> - <path d="M 1177.095922 2354.695486 -Q 836.533508 2296.094308 497.072934 2237.682725 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 500.675841 2240.332076 -L 497.072934 2237.682725 -L 501.354159 2236.39001 -L 500.675841 2240.332076 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_117"> - <path d="M 2084.162472 2016.615787 -Q 2076.39168 2210.330596 2068.665702 2402.928269 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2070.824424 2399.011648 -L 2068.665702 2402.928269 -L 2066.827639 2398.851319 -L 2070.824424 2399.011648 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_118"> - <path d="M 2093.170381 2007.826495 -Q 2313.837445 2004.414279 2533.386609 2001.019349 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2529.356164 1999.081434 -L 2533.386609 2001.019349 -L 2529.41801 2003.080956 -L 2529.356164 1999.081434 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_119"> - <path d="M 1192.218114 1705.407517 -Q 1626.875681 2056.331224 2060.663339 2406.552605 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2058.807422 2402.483751 -L 2060.663339 2406.552605 -L 2056.294706 2405.596027 -L 2058.807422 2402.483751 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_120"> - <path d="M 1178.743693 1694.53049 -Q 744.69985 1344.207818 311.526018 994.587344 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 313.382534 998.655925 -L 311.526018 994.587344 -L 315.894792 995.54328 -L 313.382534 998.655925 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_121"> - <path d="M 2198.665959 1536.919512 -Q 2134.107323 1970.526982 2069.713333 2403.028608 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2072.280583 2399.366747 -L 2069.713333 2403.028608 -L 2068.324194 2398.777691 -L 2072.280583 2399.366747 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_122"> - <path d="M 2201.23588 1519.790197 -Q 2266.775965 1086.249465 2332.148932 653.814207 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2329.573499 657.470317 -L 2332.148932 653.814207 -L 2333.52856 658.06822 -L 2329.573499 657.470317 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_123"> - <path d="M 1491.405189 2318.502931 -Q 1775.563786 2364.901797 2058.618962 2411.120492 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.993544 2408.502029 -L 2058.618962 2411.120492 -L 2054.348941 2412.449748 -L 2054.993544 2408.502029 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_124"> - <path d="M 1475.075786 2320.901273 -Q 1209.577623 2450.268288 945.084528 2579.145572 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 949.556429 2579.191377 -L 945.084528 2579.145572 -L 947.804313 2575.595534 -L 949.556429 2579.191377 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_125"> - <path d="M 1013.295052 2201.684538 -Q 714.765448 2007.501507 417.173053 1813.928099 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 419.43559 1817.785679 -L 417.173053 1813.928099 -L 421.616639 1814.432617 -L 419.43559 1817.785679 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_126"> - <path d="M 1027.797324 2211.152063 -Q 1325.96697 2406.512969 1623.201436 2601.261145 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1620.95172 2597.396073 -L 1623.201436 2601.261145 -L 1618.759549 2600.741875 -L 1620.95172 2597.396073 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_127"> - <path d="M 1497.99671 2393.012499 -Q 1778.808333 2402.705389 2058.502586 2412.359711 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.573961 2410.222914 -L 2058.502586 2412.359711 -L 2054.435973 2414.220533 -L 2054.573961 2410.222914 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_128"> - <path d="M 1481.15417 2395.538034 -Q 1212.818671 2488.071165 945.540126 2580.239814 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 949.973607 2580.826544 -L 945.540126 2580.239814 -L 948.669598 2577.045068 -L 949.973607 2580.826544 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_129"> - <path d="M 1744.541889 1134.187436 -Q 1363.783442 786.000433 983.850067 438.567922 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 985.452256 442.743205 -L 983.850067 438.567922 -L 988.151607 439.791341 -L 985.452256 442.743205 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_130"> - <path d="M 1757.314779 1145.87838 -Q 2138.144308 1494.76824 2518.149454 1842.902858 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2516.551071 1838.726116 -L 2518.149454 1842.902858 -L 2513.849031 1841.675519 -L 2516.551071 1838.726116 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_131"> - <path d="M 1272.831215 559.466291 -Q 1052.239834 589.972752 832.755947 620.326054 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 836.992217 621.759238 -L 832.755947 620.326054 -L 836.444256 617.796948 -L 836.992217 621.759238 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_132"> - <path d="M 1288.198516 552.905431 -Q 1475.287303 404.804364 1661.499476 257.397233 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1657.121854 258.311796 -L 1661.499476 257.397233 -L 1659.604553 261.448068 -L 1657.121854 258.311796 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_133"> - <path d="M 1498.988693 2399.993548 -Q 1779.303164 2406.248688 2058.499879 2412.478886 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.545493 2410.390147 -L 2058.499879 2412.478886 -L 2054.456256 2414.389151 -L 2054.545493 2410.390147 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_134"> - <path d="M 1482.111743 2402.525266 -Q 1213.317143 2491.613123 945.583805 2580.349239 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 950.009906 2580.989263 -L 945.583805 2580.349239 -L 948.751485 2577.192373 -L 950.009906 2580.989263 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_135"> - <path d="M 1644.57048 1609.175127 -Q 1959.888006 1184.116976 2274.539421 759.956765 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2270.549985 761.977755 -L 2274.539421 759.956765 -L 2273.762551 764.360908 -L 2270.549985 761.977755 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_136"> - <path d="M 1634.262684 1623.095636 -Q 1319.573584 2048.851832 1005.549033 2473.708931 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1009.534948 2471.681007 -L 1005.549033 2473.708931 -L 1006.318243 2469.303444 -L 1009.534948 2471.681007 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_137"> - <path d="M 423.34936 1617.647233 -Q 391.777857 1854.032057 360.354365 2089.308687 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 362.866299 2085.608662 -L 360.354365 2089.308687 -L 358.901505 2085.079125 -L 362.866299 2085.608662 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_138"> - <path d="M 423.118084 1600.508943 -Q 385.653029 1367.994127 348.365829 1136.583107 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 347.027609 1140.850327 -L 348.365829 1136.583107 -L 350.976673 1140.214015 -L 347.027609 1140.850327 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_139"> - <path d="M 1646.150396 1609.315716 -Q 1960.681954 1184.191111 2274.548541 759.96529 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2270.561672 761.991339 -L 2274.548541 759.96529 -L 2273.777259 764.370415 -L 2270.561672 761.991339 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_140"> - <path d="M 1635.847504 1623.229625 -Q 1320.369997 2048.922644 1005.558177 2473.717409 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1009.54666 2471.694539 -L 1005.558177 2473.717409 -L 1006.332971 2469.312901 -L 1009.54666 2471.694539 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_141"> - <path d="M 1489.541741 2326.999966 -Q 1774.622666 2369.213948 2058.597615 2411.264162 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.933721 2408.699814 -L 2058.597615 2411.264162 -L 2054.347801 2412.656669 -L 2054.933721 2408.699814 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_142"> - <path d="M 1473.15415 2329.434118 -Q 1208.639791 2454.578888 945.136065 2579.245515 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 949.607144 2579.342738 -L 945.136065 2579.245515 -L 947.896491 2575.726985 -L 949.607144 2579.342738 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_143"> - <path d="M 1493.218032 2363.147514 -Q 1776.430996 2387.550457 2058.530054 2411.85742 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.716513 2409.521417 -L 2058.530054 2411.85742 -L 2054.373127 2413.50665 -L 2054.716513 2409.521417 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_144"> - <path d="M 1476.556471 2365.643603 -Q 1210.444069 2472.916024 945.36862 2579.770439 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 949.826286 2580.129895 -L 945.36862 2579.770439 -L 948.330784 2576.419979 -L 949.826286 2580.129895 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_145"> - <path d="M 2368.670677 1515.222309 -Q 2495.046786 1518.637016 2620.305268 1522.021525 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2616.360749 1519.914213 -L 2620.305268 1522.021525 -L 2616.252707 1523.912754 -L 2616.360749 1519.914213 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_146"> - <path d="M 1485.705463 2318.12716 -Q 1772.716123 2364.718342 2058.623196 2411.130376 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.99535 2408.515278 -L 2058.623196 2411.130376 -L 2054.35441 2412.463593 -L 2054.99535 2408.515278 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_147"> - <path d="M 1469.389213 2320.571105 -Q 1206.725809 2450.084776 945.065166 2579.104008 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 949.537233 2579.128839 -L 945.065166 2579.104008 -L 947.768272 2575.541253 -L 949.537233 2579.128839 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_148"> - <path d="M 2214.369567 2268.621977 -Q 2211.967339 2277.813059 2209.84783 2285.922443 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2212.794313 2282.558184 -L 2209.84783 2285.922443 -L 2208.924313 2281.546701 -L 2212.794313 2282.558184 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_149"> - <path d="M 1432.797563 455.541076 -Q 1432.418372 369.976583 1432.044136 285.530112 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1430.061882 289.538936 -L 1432.044136 285.530112 -L 1434.061843 289.52121 -L 1430.061882 289.538936 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_150"> - <path d="M 618.309358 582.824674 -Q 601.849301 566.408487 586.180868 550.781815 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 587.600742 555.022565 -L 586.180868 550.781815 -L 590.425392 552.190366 -L 587.600742 555.022565 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_151"> - <path d="M 736.906436 695.303846 -Q 661.204928 622.590054 586.30974 550.65076 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 587.809058 554.864078 -L 586.30974 550.65076 -L 590.579985 551.979297 -L 587.809058 554.864078 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_152"> - <path d="M 765.334695 740.898721 -Q 675.269649 645.536298 585.972274 550.986698 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 587.264754 555.267994 -L 585.972274 550.986698 -L 590.172799 552.521491 -L 587.264754 555.267994 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_153"> - <path d="M 300.91305 1191.981652 -Q 312.697695 1194.663616 323.39218 1197.097481 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 319.935723 1194.259717 -L 323.39218 1197.097481 -L 319.048095 1198.159988 -L 319.935723 1194.259717 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_154"> - <path d="M 812.562072 2527.003977 -Q 815.451333 2526.263874 817.25753 2525.801204 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 812.886348 2524.856338 -L 817.25753 2525.801204 -L 813.878928 2528.73123 -L 812.886348 2524.856338 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_155"> - <path d="M 1622.221327 2312.958086 -Q 2007.675951 2214.103877 2392.047589 2115.527411 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2387.676138 2114.583794 -L 2392.047589 2115.527411 -L 2388.669825 2118.458402 -L 2387.676138 2114.583794 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_156"> - <path d="M 1605.460824 2317.32464 -Q 1220.280794 2419.242248 836.181601 2520.87387 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 840.560115 2521.784154 -L 836.181601 2520.87387 -L 839.536937 2517.917229 -L 840.560115 2521.784154 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_157"> - <path d="M 597.715225 1288.907356 -Q 475.54195 1269.721554 354.473172 1250.709199 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 358.114471 1253.305531 -L 354.473172 1250.709199 -L 358.735017 1249.353959 -L 358.114471 1253.305531 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_158"> - <path d="M 1449.438283 1268.293891 -Q 901.455492 1258.817936 354.590568 1249.361312 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 358.55539 1251.430172 -L 354.590568 1249.361312 -L 358.62455 1247.43077 -L 358.55539 1251.430172 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_159"> - <path d="M 1466.757501 1268.596578 -Q 2014.777927 1278.275443 2561.680493 1287.934564 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2557.716434 1285.864241 -L 2561.680493 1287.934564 -L 2557.645799 1289.863617 -L 2557.716434 1285.864241 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_160"> - <path d="M 565.059719 1018.08513 -Q 578.172129 876.444657 591.181478 735.917458 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 588.821269 739.716065 -L 591.181478 735.917458 -L 592.804238 740.084789 -L 588.821269 739.716065 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_161"> - <path d="M 558.176936 1032.879348 -Q 454.534297 1137.954616 351.676783 1242.233906 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 355.909617 1240.790605 -L 351.676783 1242.233906 -L 353.061843 1237.981658 -L 355.909617 1240.790605 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_162"> - <path d="M 2264.942847 1448.015034 -Q 2420.521932 1583.934979 2575.259042 1719.119342 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2573.562552 1714.981478 -L 2575.259042 1719.119342 -L 2570.930856 1717.993816 -L 2573.562552 1714.981478 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_163"> - <path d="M 2263.062975 1435.002434 -Q 2369.263244 1267.690363 2474.864356 1101.322225 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2471.032189 1103.627544 -L 2474.864356 1101.322225 -L 2474.409311 1105.77115 -L 2471.032189 1103.627544 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_164"> - <path d="M 521.712213 999.976954 -Q 555.820199 867.269189 589.649878 735.644266 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 586.71713 739.020505 -L 589.649878 735.644266 -L 590.59122 740.016207 -L 586.71713 739.020505 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_165"> - <path d="M 514.47276 1015.368165 -Q 432.186535 1128.774768 350.556906 1241.27645 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 354.52479 1239.213467 -L 350.556906 1241.27645 -L 351.28725 1236.864354 -L 354.52479 1239.213467 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_166"> - <path d="M 1180.980563 695.173781 -Q 1562.520065 569.20533 1942.997901 443.587397 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1938.572539 442.942282 -L 1942.997901 443.587397 -L 1939.826591 446.740617 -L 1938.572539 442.942282 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_167"> - <path d="M 1164.529443 700.578989 -Q 782.673089 825.433213 401.879407 949.939978 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 406.302892 950.59784 -L 401.879407 949.939978 -L 405.059787 946.795907 -L 406.302892 950.59784 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_168"> - <path d="M 1969.182855 1397.906833 -Q 2018.307439 1900.991422 2067.323367 2402.963269 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2068.925162 2398.787835 -L 2067.323367 2402.963269 -L 2064.944096 2399.176573 -L 2068.925162 2398.787835 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_169"> - <path d="M 1967.548998 1380.670554 -Q 1921.231769 876.882929 1875.016898 374.208642 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1873.391505 378.374947 -L 1875.016898 374.208642 -L 1877.374706 378.00874 -L 1873.391505 378.374947 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_170"> - <path d="M 424.484968 1081.595249 -Q 500.672652 816.897388 576.551089 553.273941 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 573.522721 556.564684 -L 576.551089 553.273941 -L 577.366662 557.671081 -L 573.522721 556.564684 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_171"> - <path d="M 419.60854 1098.212254 -Q 340.723361 1361.948652 262.158569 1624.613904 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 265.220941 1621.354781 -L 262.158569 1624.613904 -L 261.388694 1620.208533 -L 265.220941 1621.354781 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_172"> - <path d="M 906.656458 681.668496 -Q 620.528769 860.596667 335.349024 1038.932047 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 339.80091 1038.506947 -L 335.349024 1038.932047 -L 337.680076 1035.115478 -L 339.80091 1038.506947 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_173"> - <path d="M 921.320861 672.453768 -Q 1206.531914 492.368088 1490.79761 312.879318 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1486.347615 313.323781 -L 1490.79761 312.879318 -L 1488.483183 316.705991 -L 1486.347615 313.323781 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_174"> - <path d="M 2257.348027 1837.141898 -Q 2432.766209 1602.218575 2607.515461 1368.191094 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2603.519696 1370.199541 -L 2607.515461 1368.191094 -L 2606.724759 1372.592774 -L 2603.519696 1370.199541 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_175"> - <path d="M 2249.500241 1852.321981 -Q 2160.219218 2128.390212 2071.282227 2403.394656 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2074.416029 2400.204157 -L 2071.282227 2403.394656 -L 2070.610109 2398.973315 -L 2074.416029 2400.204157 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_176"> - <path d="M 1712.142035 1359.284009 -Q 1888.821549 1881.889669 2065.142994 2403.436185 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2065.756581 2399.006342 -L 2065.142994 2403.436185 -L 2061.967272 2400.28741 -L 2065.756581 2399.006342 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_177"> - <path d="M 1706.581483 1342.879635 -Q 1529.258898 821.128829 1352.296078 300.436592 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1351.68959 304.867413 -L 1352.296078 300.436592 -L 1355.476842 303.580275 -L 1351.68959 304.867413 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_178"> - <path d="M 1866.245427 2412.908087 -Q 1961.649291 2454.048089 2056.026507 2494.74538 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2053.145403 2491.324965 -L 2056.026507 2494.74538 -L 2051.561512 2494.998014 -L 2053.145403 2491.324965 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_179"> - <path d="M 1854.3765 2417.204023 -Q 1812.402208 2499.980395 1770.933556 2581.759607 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1774.526364 2579.096577 -L 1770.933556 2581.759607 -L 1770.958817 2577.287543 -L 1774.526364 2579.096577 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_180"> - <path d="M 2242.170442 1182.520185 -Q 2382.071963 1512.027774 2521.536544 1840.506246 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2521.814241 1836.042741 -L 2521.536544 1840.506246 -L 2518.132357 1837.605985 -L 2521.814241 1836.042741 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_181"> - <path d="M 2235.449713 1166.552095 -Q 2097.634545 836.219729 1960.249859 506.919199 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1959.9442 511.380877 -L 1960.249859 506.919199 -L 1963.635806 509.840733 -L 1959.9442 511.380877 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_182"> - <path d="M 1888.400321 771.348821 -Q 1570.938755 583.557301 1254.439467 396.335008 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1256.863955 400.092913 -L 1254.439467 396.335008 -L 1258.900485 396.65016 -L 1256.863955 400.092913 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_183"> - <path d="M 1903.31655 780.154515 -Q 2221.123859 967.389599 2537.967881 1154.057165 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2535.536724 1150.30357 -L 2537.967881 1154.057165 -L 2533.50631 1153.749934 -L 2535.536724 1150.30357 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_184"> - <path d="M 1506.469321 2495.82563 -Q 1783.087492 2454.895213 2058.599671 2414.128448 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.350007 2412.735483 -L 2058.599671 2414.128448 -L 2054.935501 2416.6924 -L 2054.350007 2412.735483 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_185"> - <path d="M 1489.344497 2498.408824 -Q 1217.101936 2540.259777 945.964427 2581.940855 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 950.221868 2583.309866 -L 945.964427 2581.940855 -L 949.614101 2579.356309 -L 950.221868 2583.309866 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_186"> - <path d="M 1530.431533 1429.208198 -Q 1990.741525 1563.012481 2449.977921 1696.504688 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2446.695165 1693.467664 -L 2449.977921 1696.504688 -L 2445.578648 1697.308678 -L 2446.695165 1693.467664 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_187"> - <path d="M 1513.522033 1425.767743 -Q 888.723658 1351.337671 265.035468 1277.039853 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 268.770804 1279.498971 -L 265.035468 1277.039853 -L 269.243965 1275.527055 -L 268.770804 1279.498971 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_188"> - <path d="M 1526.31699 1434.370132 -Q 1795.198033 1919.747425 2063.537302 2404.146721 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2063.348486 2399.678572 -L 2063.537302 2404.146721 -L 2059.849494 2401.616884 -L 2063.348486 2399.678572 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_189"> - <path d="M 1522.823037 1418.157304 -Q 1566.468695 882.9422 1610.023482 348.841432 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1607.704986 352.665642 -L 1610.023482 348.841432 -L 1611.691752 352.990754 -L 1607.704986 352.665642 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_190"> - <path d="M 1502.780509 2431.537181 -Q 1781.1977 2422.261327 2058.497476 2413.022702 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.433098 2411.157002 -L 2058.497476 2413.022702 -L 2054.56629 2415.154784 -L 2054.433098 2411.157002 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_191"> - <path d="M 1485.77491 2434.095868 -Q 1215.214054 2507.626023 945.732099 2580.862967 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 950.116605 2581.743935 -L 945.732099 2580.862967 -L 949.067577 2577.883943 -L 950.116605 2581.743935 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_192"> - <path d="M 1531.338851 1429.760488 -Q 1991.195706 1563.290071 2449.978874 1696.507885 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2446.695248 1693.471802 -L 2449.978874 1696.507885 -L 2445.579832 1697.313136 -L 2446.695248 1693.471802 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_193"> - <path d="M 1514.41694 1426.317036 -Q 889.174169 1351.614195 265.041536 1277.04399 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 268.776019 1279.504404 -L 265.041536 1277.04399 -L 269.250557 1275.532652 -L 268.776019 1279.504404 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_194"> - <path d="M 1527.211086 1434.918927 -Q 1795.646477 1920.020217 2063.540546 2404.143258 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2063.353794 2399.675023 -L 2063.540546 2404.143258 -L 2059.853907 2401.611719 -L 2063.353794 2399.675023 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_195"> - <path d="M 1523.716236 1418.714263 -Q 1566.9192 883.218789 1610.032254 348.837728 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1607.717062 352.663939 -L 1610.032254 348.837728 -L 1611.704108 352.985608 -L 1607.717062 352.663939 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_196"> - <path d="M 2211.958972 1127.079756 -Q 2343.468463 1069.620514 2473.953441 1012.608903 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2469.487285 1012.377692 -L 2473.953441 1012.608903 -L 2471.088779 1016.043101 -L 2469.487285 1012.377692 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_197"> - <path d="M 1611.977825 1759.024827 -Q 1126.524499 2042.414608 642.036725 2325.240733 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 646.49949 2324.951376 -L 642.036725 2325.240733 -L 644.482899 2321.496907 -L 646.49949 2324.951376 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_198"> - <path d="M 1626.938259 1750.292339 -Q 2111.899406 1467.245736 2595.894952 1184.762705 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2591.432162 1185.051679 -L 2595.894952 1184.762705 -L 2593.448457 1188.506321 -L 2591.432162 1185.051679 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_199"> - <path d="M 1645.265325 1610.214835 -Q 1960.238247 1184.641048 2274.546049 759.965935 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2270.558845 761.991324 -L 2274.546049 759.965935 -L 2273.774038 764.370932 -L 2270.558845 761.991324 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_200"> - <path d="M 1634.957533 1624.135347 -Q 1319.923827 2049.375905 1005.555662 2473.7181 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1009.543811 2471.694573 -L 1005.555662 2473.7181 -L 1006.32973 2469.313464 -L 1009.543811 2471.694573 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_201"> - <path d="M 2315.125004 1935.429469 -Q 2423.56632 1851.875813 2531.121997 1769.004539 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2526.73276 1769.861623 -L 2531.121997 1769.004539 -L 2529.174122 1773.030179 -L 2526.73276 1769.861623 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_202"> - <path d="M 2310.545189 1949.066152 -Q 2349.035069 2090.192439 2387.230768 2230.240088 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2388.1078 2225.854793 -L 2387.230768 2230.240088 -L 2384.248751 2226.907285 -L 2388.1078 2225.854793 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_203"> - <path d="M 642.565529 1940.974275 -Q 599.040749 2108.130347 555.797694 2274.204462 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 558.741086 2270.837499 -L 555.797694 2274.204462 -L 554.870158 2269.829571 -L 558.741086 2270.837499 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_204"> - <path d="M 636.736459 1929.304234 -Q 481.338644 1865.504693 326.975091 1802.129774 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 329.915788 1805.499091 -L 326.975091 1802.129774 -L 331.434963 1801.798806 -L 329.915788 1805.499091 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_205"> - <path d="M 955.485169 635.957644 -Q 1126.88295 479.151525 1297.455828 323.100082 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1293.154562 324.324462 -L 1297.455828 323.100082 -L 1295.854572 327.275723 -L 1293.154562 324.324462 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_206"> - <path d="M 940.54671 643.187028 -Q 704.522031 681.409565 469.601009 719.453372 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 473.869288 720.78821 -L 469.601009 719.453372 -L 473.229847 716.839652 -L 473.869288 720.78821 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_207"> - <path d="M 1727.772669 2300.894112 -Q 1763.977797 2378.595621 1799.710719 2455.283708 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1799.83417 2450.813276 -L 1799.710719 2455.283708 -L 1796.208444 2452.502688 -L 1799.83417 2450.813276 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_208"> - <path d="M 845.908672 743.24265 -Q 872.27344 673.050564 898.245081 603.905116 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 894.966305 606.946436 -L 898.245081 603.905116 -L 898.710872 608.352929 -L 894.966305 606.946436 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_209"> - <path d="M 834.508899 749.069584 -Q 742.327205 723.905172 651.224079 699.035195 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 654.556178 702.017999 -L 651.224079 699.035195 -L 655.609581 698.159198 -L 654.556178 702.017999 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_210"> - <path d="M 1888.233094 616.155969 -Q 1942.629238 502.254069 1996.543567 389.361057 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1993.015021 392.108668 -L 1996.543567 389.361057 -L 1996.624527 393.83246 -L 1993.015021 392.108668 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_211"> - <path d="M 1974.366245 1397.466157 -Q 2020.921151 1900.769212 2067.37308 2402.958986 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2068.996157 2398.791777 -L 2067.37308 2402.958986 -L 2065.01316 2399.1602 -L 2068.996157 2398.791777 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_212"> - <path d="M 1972.732429 1380.229875 -Q 1923.845482 876.660719 1875.066567 374.204366 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1873.462432 378.378902 -L 1875.066567 374.204366 -L 1877.443715 377.992395 -L 1873.462432 378.378902 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_213"> - <path d="M 1642.765526 568.84411 -Q 1593.62399 485.787397 1545.051769 403.692913 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1545.367323 408.153902 -L 1545.051769 403.692913 -L 1548.809893 406.117063 -L 1545.367323 408.153902 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_214"> - <path d="M 1652.024936 569.125219 -Q 1723.300512 463.661171 1793.950052 359.123447 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1790.053215 361.31768 -L 1793.950052 359.123447 -L 1793.367336 363.557457 -L 1790.053215 361.31768 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_215"> - <path d="M 884.805205 731.659584 -Q 795.777847 599.644475 707.375598 468.556316 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 707.95388 472.990906 -L 707.375598 468.556316 -L 711.27024 470.754444 -L 707.95388 472.990906 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_216"> - <path d="M 1362.152885 1462.817148 -Q 1259.896429 2042.186374 1157.834298 2620.454584 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1160.499095 2616.863087 -L 1157.834298 2620.454584 -L 1156.559978 2616.167847 -L 1160.499095 2616.863087 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_217"> - <path d="M 1365.164369 1445.763501 -Q 1467.535033 866.355406 1569.711174 288.048293 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1567.045731 291.639311 -L 1569.711174 288.048293 -L 1570.984723 292.335258 -L 1567.045731 291.639311 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_218"> - <path d="M 1278.660526 2182.723989 -Q 1744.412047 2284.377622 2209.071248 2385.792848 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2205.589721 2382.985898 -L 2209.071248 2385.792848 -L 2204.736772 2386.893899 -L 2205.589721 2382.985898 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_219"> - <path d="M 1261.731182 2179.047045 -Q 795.728074 2078.329627 330.817768 1977.848395 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 334.304989 1980.648269 -L 330.817768 1977.848395 -L 335.149999 1976.738543 -L 334.304989 1980.648269 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_220"> - <path d="M 1282.3194 1088.956162 -Q 1352.966304 718.410573 1423.403819 348.963234 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1420.690075 352.517893 -L 1423.403819 348.963234 -L 1424.619299 353.267024 -L 1420.690075 352.517893 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_221"> - <path d="M 1279.06015 1088.955144 -Q 1203.400745 695.976531 1127.952711 304.095791 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1126.745003 308.401768 -L 1127.952711 304.095791 -L 1130.672868 307.645544 -L 1126.745003 308.401768 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_222"> - <path d="M 1278.974939 1105.948893 -Q 1140.216971 1789.517255 1001.681417 2471.98993 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1004.437177 2468.467745 -L 1001.681417 2471.98993 -L 1000.517125 2467.672012 -L 1004.437177 2468.467745 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_223"> - <path d="M 1285.015048 1089.957155 -Q 1506.592629 704.810876 1727.612679 320.633698 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1723.884411 323.10352 -L 1727.612679 320.633698 -L 1727.351575 325.098206 -L 1723.884411 323.10352 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_224"> - <path d="M 1508.199848 863.832633 -Q 1026.541565 835.878342 545.999439 807.98883 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 549.876839 810.217231 -L 545.999439 807.98883 -L 550.108599 806.22395 -L 549.876839 810.217231 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_225"> - <path d="M 1525.490892 864.834322 -Q 2006.808433 892.666352 2487.009805 920.43384 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2483.131932 918.206263 -L 2487.009805 920.43384 -L 2482.901019 922.199592 -L 2483.131932 918.206263 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_226"> - <path d="M 722.908039 873.849857 -Q 516.278124 1100.029248 310.402299 1325.383202 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 314.576805 1323.77899 -L 310.402299 1325.383202 -L 311.623633 1321.08107 -L 314.576805 1323.77899 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_227"> - <path d="M 734.559572 861.033247 -Q 940.262208 633.64952 1145.214792 407.094901 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1141.048167 408.719474 -L 1145.214792 407.094901 -L 1144.014476 411.402945 -L 1141.048167 408.719474 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_228"> - <path d="M 802.015504 946.104972 -Q 556.333778 1136.698718 311.535432 1326.60716 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 315.921814 1325.735581 -L 311.535432 1326.60716 -L 313.469997 1322.575107 -L 315.921814 1325.735581 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_229"> - <path d="M 813.493597 933.481643 -Q 980.314878 670.321092 1146.53756 408.104829 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1142.706757 410.412413 -L 1146.53756 408.104829 -L 1146.085145 412.554023 -L 1142.706757 410.412413 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_230"> - <path d="M 2303.17151 2106.941106 -Q 2345.052349 2038.766432 2386.347968 1971.544396 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2382.550091 1973.905778 -L 2386.347968 1971.544396 -L 2385.958347 1975.999527 -L 2382.550091 1973.905778 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_231"> - <path d="M 2294.397465 2121.871921 -Q 2254.93353 2192.145577 2216.017039 2261.444397 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2219.719473 2258.936015 -L 2216.017039 2261.444397 -L 2216.231793 2256.977421 -L 2219.719473 2258.936015 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_232"> - <path d="M 1810.904832 2233.51081 -Q 1881.111525 2315.752147 1950.592317 2397.14315 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1949.516376 2392.802372 -L 1950.592317 2397.14315 -L 1946.474131 2395.399436 -L 1949.516376 2392.802372 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_233"> - <path d="M 1809.344009 2234.579103 -Q 1892.782657 2391.849539 1975.697319 2548.132332 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1975.589397 2543.661498 -L 1975.697319 2548.132332 -L 1972.055899 2545.536169 -L 1975.589397 2543.661498 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_234"> - <path d="M 909.021925 579.35442 -Q 858.312953 483.565037 808.12707 388.763772 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 808.230934 393.234702 -L 808.12707 388.763772 -L 811.766132 391.363239 -L 808.230934 393.234702 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_235"> - <path d="M 1943.965526 2380.928934 -Q 1863.248812 2452.861071 1783.366783 2524.049366 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1787.683666 2522.881238 -L 1783.366783 2524.049366 -L 1785.022411 2519.894983 -L 1787.683666 2522.881238 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_236"> - <path d="M 1957.464191 2370.10317 -Q 2044.278168 2307.601732 2130.184799 2245.753535 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2125.770028 2246.46753 -L 2130.184799 2245.753535 -L 2128.107133 2249.71375 -L 2125.770028 2246.46753 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_237"> - <path d="M 1514.58616 2503.163492 -Q 1787.157116 2458.628382 2058.624668 2414.273557 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.354513 2412.944733 -L 2058.624668 2414.273557 -L 2054.999516 2416.892387 -L 2054.354513 2412.944733 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_238"> - <path d="M 1497.460972 2505.74747 -Q 1221.167337 2543.993606 945.981176 2582.08644 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 950.217631 2583.519076 -L 945.981176 2582.08644 -L 949.669158 2579.556858 -L 950.217631 2583.519076 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_239"> - <path d="M 2156.988199 1448.97541 -Q 2150.055165 1944.250367 2143.13778 2438.4074 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2145.193572 2434.435786 -L 2143.13778 2438.4074 -L 2141.193963 2434.379798 -L 2145.193572 2434.435786 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_240"> - <path d="M 2157.248669 1431.651263 -Q 2165.215699 935.936007 2173.164764 441.33864 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2171.100743 445.305984 -L 2173.164764 441.33864 -L 2175.100226 445.370263 -L 2171.100743 445.305984 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_241"> - <path d="M 1512.310959 2507.159718 -Q 1786.023165 2460.653731 2058.633135 2414.335024 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.354636 2413.033313 -L 2058.633135 2414.335024 -L 2055.024667 2416.976796 -L 2054.354636 2413.033313 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_242"> - <path d="M 1495.185198 2509.742704 -Q 1220.033381 2546.01894 945.990006 2582.149037 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 950.217109 2583.60904 -L 945.990006 2582.149037 -L 949.69427 2579.643357 -L 950.217109 2583.60904 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_243"> - <path d="M 1512.311021 2507.157359 -Q 1786.023197 2460.652534 2058.633135 2414.334983 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.354642 2413.033255 -L 2058.633135 2414.334983 -L 2055.024656 2416.976741 -L 2054.354642 2413.033255 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_244"> - <path d="M 1495.18526 2509.740346 -Q 1220.033413 2546.017742 945.990007 2582.148996 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 950.217115 2583.608981 -L 945.990007 2582.148996 -L 949.69426 2579.643301 -L 950.217115 2583.608981 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_245"> - <path d="M 548.685536 1893.971019 -Q 467.215362 1899.990378 386.860182 1905.927355 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 390.996675 1907.627185 -L 386.860182 1905.927355 -L 390.701942 1903.638059 -L 390.996675 1907.627185 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_246"> - <path d="M 551.340488 1899.596969 -Q 498.328946 1955.105278 446.089579 2009.805043 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 450.298569 2008.293617 -L 446.089579 2009.805043 -L 447.405832 2005.530996 -L 450.298569 2008.293617 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_247"> - <path d="M 1512.801692 2493.514281 -Q 1786.251111 2453.729313 2058.594144 2414.105316 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.347866 2412.702062 -L 2058.594144 2414.105316 -L 2054.923774 2416.660386 -L 2054.347866 2412.702062 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_248"> - <path d="M 1495.676169 2496.096865 -Q 1220.265566 2539.093899 945.959616 2581.918474 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 950.220245 2583.277533 -L 945.959616 2581.918474 -L 949.60324 2579.325406 -L 950.220245 2583.277533 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_249"> - <path d="M 1492.34458 2349.233488 -Q 1776.005292 2380.490976 2058.554697 2411.626006 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.797824 2409.199918 -L 2058.554697 2411.626006 -L 2054.359703 2413.175852 -L 2054.797824 2409.199918 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_250"> - <path d="M 1475.776498 2351.702097 -Q 1210.015357 2465.855761 945.281491 2579.568174 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 949.746122 2579.827155 -L 945.281491 2579.568174 -L 948.167454 2576.151858 -L 949.746122 2579.827155 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_251"> - <path d="M 1509.145205 2485.219855 -Q 1784.415979 2449.515324 2058.578006 2413.954605 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.353976 2412.485737 -L 2058.578006 2413.954605 -L 2054.868494 2416.452508 -L 2054.353976 2412.485737 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_252"> - <path d="M 1492.019445 2487.802842 -Q 1218.426195 2534.880532 945.934786 2581.768627 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 950.216011 2583.061342 -L 945.934786 2581.768627 -L 949.537692 2579.119276 -L 950.216011 2583.061342 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_253"> - <path d="M 1743.694932 1135.286302 -Q 1363.35644 786.554437 983.842017 438.57816 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 985.438658 442.755568 -L 983.842017 438.57816 -L 988.141928 439.807292 -L 985.438658 442.755568 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_254"> - <path d="M 1756.467815 1146.977254 -Q 2137.717306 1495.322245 2518.141412 1842.913087 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2516.537487 1838.73847 -L 2518.141412 1842.913087 -L 2513.839364 1841.691457 -L 2516.537487 1838.73847 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_255"> - <path d="M 373.923868 1620.510719 -Q 366.626414 1855.427268 359.363673 2089.226322 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 361.486905 2085.290349 -L 359.363673 2089.226322 -L 357.488834 2085.166152 -L 361.486905 2085.290349 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_256"> - <path d="M 373.704526 1603.208504 -Q 360.501307 1369.390085 347.361121 1136.687921 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 345.589814 1140.794315 -L 347.361121 1136.687921 -L 349.583452 1140.568803 -L 345.589814 1140.794315 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_257"> - <path d="M 1923.011856 2220.971119 -Q 1993.028457 2313.383421 2062.36988 2404.904581 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2061.548414 2400.508538 -L 2062.36988 2404.904581 -L 2058.360166 2402.924129 -L 2061.548414 2400.508538 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_258"> - <path d="M 1404.368335 1671.480606 -Q 839.758935 1709.582337 276.265032 1747.60879 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 280.390615 1749.334931 -L 276.265032 1747.60879 -L 280.121295 1745.344008 -L 280.390615 1749.334931 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_259"> - <path d="M 1421.644823 1670.316996 -Q 1985.738598 1632.39796 2548.716856 1594.55391 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2544.591723 1592.826693 -L 2548.716856 1594.55391 -L 2544.860002 1596.817686 -L 2544.591723 1592.826693 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_260"> - <path d="M 1433.142964 442.434113 -Q 1432.601553 363.422786 1432.067803 285.529466 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1430.095259 289.543077 -L 1432.067803 285.529466 -L 1434.095165 289.515668 -L 1430.095259 289.543077 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_261"> - <path d="M 1623.343719 2317.339558 -Q 2008.243186 2216.318188 2392.061246 2115.580645 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2387.684559 2114.661619 -L 2392.061246 2115.580645 -L 2388.700013 2118.530579 -L 2387.684559 2114.661619 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_262"> - <path d="M 1606.583225 2321.706145 -Q 1220.848029 2421.45656 836.19526 2520.92706 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 840.568594 2521.861915 -L 836.19526 2520.92706 -L 839.567144 2517.989306 -L 840.568594 2521.861915 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_263"> - <path d="M 1560.977843 1070.251345 -Q 1828.254362 798.294355 2094.747203 527.134767 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2090.516997 528.585751 -L 2094.747203 527.134767 -L 2093.369867 531.389522 -L 2090.516997 528.585751 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_264"> - <path d="M 1546.334869 1077.652295 -Q 949.861904 1162.810101 354.495751 1247.809889 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 358.738269 1249.22447 -L 354.495751 1247.809889 -L 358.172926 1245.264623 -L 358.738269 1249.22447 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_265"> - <path d="M 1563.387869 1078.194437 -Q 2063.183452 1182.268015 2561.88448 1286.113671 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2558.376198 1283.340233 -L 2561.88448 1286.113671 -L 2557.56076 1287.256234 -L 2558.376198 1283.340233 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_266"> - <path d="M 1531.114702 1709.621707 -Q 1022.449634 1913.5212 514.822329 2117.004702 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 519.279289 2117.37282 -L 514.822329 2117.004702 -L 517.790999 2113.660005 -L 519.279289 2117.37282 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_267"> - <path d="M 1547.182156 1703.146106 -Q 2055.305487 1497.253468 2562.392619 1291.780699 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2557.934313 1291.429263 -L 2562.392619 1291.780699 -L 2559.436486 1295.136482 -L 2557.934313 1291.429263 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_268"> - <path d="M 485.840065 985.200298 -Q 537.318632 859.694122 588.372921 735.222349 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 585.004582 738.164166 -L 588.372921 735.222349 -L 588.705372 739.68211 -L 585.004582 738.164166 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_269"> - <path d="M 478.44792 1000.843432 -Q 413.682977 1121.203702 349.447813 1240.579423 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 353.104417 1238.004692 -L 349.447813 1240.579423 -L 349.58199 1236.109301 -L 353.104417 1238.004692 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_270"> - <path d="M 2506.718723 1421.131375 -Q 2543.623368 1569.140676 2580.257524 1716.065156 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2581.230379 1711.700119 -L 2580.257524 1716.065156 -L 2577.349207 1712.66785 -L 2581.230379 1711.700119 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_271"> - <path d="M 2503.960243 1404.087211 -Q 2492.36368 1252.892875 2480.85262 1102.813298 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2479.164377 1106.954534 -L 2480.85262 1102.813298 -L 2483.152663 1106.648634 -L 2479.164377 1106.954534 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_272"> - <path d="M 1180.980543 695.173735 -Q 1562.520055 569.205307 1942.9979 443.587397 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1938.572539 442.942281 -L 1942.9979 443.587397 -L 1939.826591 446.740616 -L 1938.572539 442.942281 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_273"> - <path d="M 1164.529423 700.578943 -Q 782.673079 825.433189 401.879407 949.939977 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 406.302892 950.597839 -L 401.879407 949.939977 -L 405.059787 946.795906 -L 406.302892 950.597839 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_274"> - <path d="M 906.674086 681.695427 -Q 620.537694 860.610303 335.349275 1038.932433 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 339.801181 1038.507543 -L 335.349275 1038.932433 -L 337.680507 1035.115974 -L 339.801181 1038.507543 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_275"> - <path d="M 921.338488 672.480698 -Q 1206.540839 492.381724 1490.797861 312.879704 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1486.347888 313.324376 -L 1490.797861 312.879704 -L 1488.483615 316.706486 -L 1486.347888 313.324376 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_276"> - <path d="M 1708.186298 1360.69781 -Q 1886.828281 1882.602073 2065.108198 2403.448553 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2065.705047 2399.016423 -L 2065.108198 2403.448553 -L 2061.920603 2400.311796 -L 2065.705047 2399.016423 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_277"> - <path d="M 1702.628525 1344.301512 -Q 1527.267015 821.845308 1352.261266 300.449026 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1351.638029 304.877522 -L 1352.261266 300.449026 -L 1355.43012 303.604713 -L 1351.638029 304.877522 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_278"> - <path d="M 1860.292772 2401.453707 -Q 1958.738139 2448.179149 2056.173467 2494.425194 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2053.417416 2490.903236 -L 2056.173467 2494.425194 -L 2051.702271 2494.51686 -L 2053.417416 2490.903236 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_279"> - <path d="M 1848.94029 2405.647702 -Q 1809.490004 2494.108275 1770.495091 2581.547752 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1773.950872 2578.709165 -L 1770.495091 2581.547752 -L 1770.29769 2577.079975 -L 1773.950872 2578.709165 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_280"> - <path d="M 1876.958036 1352.653669 -Q 2040.734056 1819.931435 2204.140273 2286.154096 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2204.704653 2281.717715 -L 2204.140273 2286.154096 -L 2200.929797 2283.040763 -L 2204.704653 2281.717715 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_281"> - <path d="M 1871.21779 1336.308682 -Q 1707.081503 869.875339 1543.316341 404.496638 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1542.757517 408.933722 -L 1543.316341 404.496638 -L 1546.530714 407.605947 -L 1542.757517 408.933722 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_282"> - <path d="M 2266.445228 1506.568634 -Q 2443.937363 1514.24017 2620.312508 1521.863428 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2616.402602 1519.692567 -L 2620.312508 1521.863428 -L 2616.229876 1523.688836 -L 2616.402602 1519.692567 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_283"> - <path d="M 1512.26627 2488.850471 -Q 1785.979268 2451.361416 2058.584573 2414.024077 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.350176 2412.585368 -L 2058.584573 2414.024077 -L 2054.892968 2416.548369 -L 2054.350176 2412.585368 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_284"> - <path d="M 1495.140681 2491.432477 -Q 1219.993726 2536.726029 945.949958 2581.83798 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 950.221698 2583.161701 -L 945.949958 2581.83798 -L 949.571979 2579.21482 -L 950.221698 2583.161701 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_285"> - <path d="M 1678.007861 2122.787475 -Q 2097.563249 1987.475792 2516.054574 1852.507282 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2511.633776 1851.831601 -L 2516.054574 1852.507282 -L 2512.861551 1855.638512 -L 2511.633776 1851.831601 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_286"> - <path d="M 1661.528564 2128.124815 -Q 1242.464453 2264.426055 824.463552 2400.381484 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 828.886011 2401.046202 -L 824.463552 2400.381484 -L 827.648802 2397.242347 -L 828.886011 2401.046202 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_287"> - <path d="M 1275.707617 1738.926143 -Q 1668.690684 2073.006158 2060.821924 2406.362024 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2059.069734 2402.247437 -L 2060.821924 2406.362024 -L 2056.47894 2405.295024 -L 2059.069734 2402.247437 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_288"> - <path d="M 1262.545303 1727.668618 -Q 871.826421 1391.460471 481.955012 1055.981562 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 483.682522 1060.106573 -L 481.955012 1055.981562 -L 486.291527 1057.074561 -L 483.682522 1060.106573 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_289"> - <path d="M 722.745863 873.700074 -Q 516.195905 1099.953313 310.399745 1325.380847 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 314.573681 1323.775151 -L 310.399745 1325.380847 -L 311.61955 1321.078281 -L 314.573681 1323.775151 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_290"> - <path d="M 734.397395 860.883465 -Q 940.179991 633.573586 1145.212239 407.092549 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1141.045038 408.715643 -L 1145.212239 407.092549 -L 1144.010394 411.400167 -L 1141.045038 408.715643 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_291"> - <path d="M 1650.405494 1108.685214 -Q 2053.470492 1441.436657 2455.673304 1773.47632 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2453.861921 1769.387446 -L 2455.673304 1773.47632 -L 2451.315375 1772.472102 -L 2453.861921 1769.387446 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_292"> - <path d="M 1637.026572 1097.678743 -Q 1232.493377 766.042487 828.824806 435.11505 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 830.650206 439.197686 -L 828.824806 435.11505 -L 833.186154 436.104311 -L 830.650206 439.197686 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_293"> - <path d="M 1515.209985 2498.091802 -Q 1787.461184 2456.055353 2058.607442 2414.18951 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.349097 2412.823313 -L 2058.607442 2414.18951 -L 2054.959476 2416.776468 -L 2054.349097 2412.823313 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_294"> - <path d="M 1498.085158 2500.675077 -Q 1221.475627 2541.419915 945.972195 2582.001824 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 950.22095 2583.39756 -L 945.972195 2582.001824 -L 949.638037 2579.440261 -L 950.22095 2583.39756 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_295"> - <path d="M 1498.168524 2397.589544 -Q 1778.891193 2405.028525 2058.496221 2412.437888 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.550605 2410.33263 -L 2058.496221 2412.437888 -L 2054.444645 2414.331226 -L 2054.550605 2410.33263 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_296"> - <path d="M 1481.300292 2400.121162 -Q 1212.905304 2490.392958 945.570016 2580.308335 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 949.998898 2580.928821 -L 945.570016 2580.308335 -L 948.723734 2577.137521 -L 949.998898 2580.928821 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_297"> - <path d="M 1023.400408 1128.939795 -Q 737.124127 1512.65834 451.516403 1895.480766 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 455.511334 1893.470662 -L 451.516403 1895.480766 -L 452.305278 1891.078758 -L 455.511334 1893.470662 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_298"> - <path d="M 1033.747636 1115.048559 -Q 1319.699666 730.545484 1604.984503 346.939546 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1600.992634 348.955725 -L 1604.984503 346.939546 -L 1604.202325 351.342749 -L 1600.992634 348.955725 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_299"> - <path d="M 1507.272958 2491.528067 -Q 1783.486879 2452.714864 2058.593643 2414.057236 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.354255 2412.6333 -L 2058.593643 2414.057236 -L 2054.910861 2416.594384 -L 2054.354255 2412.6333 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_300"> - <path d="M 1490.147745 2494.111867 -Q 1217.4971 2538.080085 945.950229 2581.870306 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 950.217621 2583.207976 -L 945.950229 2581.870306 -L 949.5808 2579.258994 -L 950.217621 2583.207976 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_301"> - <path d="M 1013.292739 2201.687764 -Q 714.764278 2007.50314 417.173022 1813.928143 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 419.435538 1817.785736 -L 417.173022 1813.928143 -L 421.616606 1814.432686 -L 419.435538 1817.785736 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_302"> - <path d="M 1027.795012 2211.15529 -Q 1325.9658 2406.514602 1623.201405 2601.261188 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1620.951668 2597.396129 -L 1623.201405 2601.261188 -L 1618.759515 2600.741943 -L 1620.951668 2597.396129 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_303"> - <path d="M 1491.748522 2337.773279 -Q 1775.716005 2374.676945 2058.574776 2411.436525 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.865879 2408.937708 -L 2058.574776 2411.436525 -L 2054.350385 2412.904352 -L 2054.865879 2408.937708 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_304"> - <path d="M 1475.274451 2340.217866 -Q 1209.731847 2460.041952 945.208327 2579.406183 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 949.676928 2579.583953 -L 945.208327 2579.406183 -L 948.031703 2575.937964 -L 949.676928 2579.583953 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_305"> - <path d="M 1492.54446 2363.713011 -Q 1776.093549 2387.837822 2058.528628 2411.867851 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.712578 2409.53595 -L 2058.528628 2411.867851 -L 2054.373477 2413.52155 -L 2054.712578 2409.53595 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_306"> - <path d="M 1475.883378 2366.213292 -Q 1210.106635 2473.203447 945.367043 2579.776089 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 949.824538 2580.137665 -L 945.367043 2579.776089 -L 948.330802 2576.427039 -L 949.824538 2580.137665 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_307"> - <path d="M 1488.022104 2316.792783 -Q 1773.87373 2364.038438 2058.622287 2411.101778 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2055.001964 2408.476276 -L 2058.622287 2411.101778 -L 2054.349691 2412.422735 -L 2055.001964 2408.476276 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_308"> - <path d="M 1471.703282 2319.214303 -Q 1207.883356 2449.404558 945.066031 2579.100048 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 949.538106 2579.12343 -L 945.066031 2579.100048 -L 947.767981 2575.536417 -L 949.538106 2579.12343 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_309"> - <path d="M 1506.389683 2500.52538 -Q 1783.05564 2457.279587 2058.616975 2414.206457 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.356093 2412.848192 -L 2058.616975 2414.206457 -L 2054.973834 2416.800204 -L 2054.356093 2412.848192 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_310"> - <path d="M 1489.256443 2503.108683 -Q 1217.061445 2542.645472 945.972871 2582.02155 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 950.218818 2583.425807 -L 945.972871 2582.02155 -L 949.643845 2579.467347 -L 950.218818 2583.425807 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_311"> - <path d="M 1647.513052 1610.489142 -Q 1961.368816 1184.782589 2274.56112 759.975937 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2270.577664 762.008688 -L 2274.56112 759.975937 -L 2273.797247 764.382353 -L 2270.577664 762.008688 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_312"> - <path d="M 1637.205279 1624.409661 -Q 1321.054387 2049.517445 1005.570691 2473.728094 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1009.562565 2471.711923 -L 1005.570691 2473.728094 -L 1006.352878 2469.324892 -L 1009.562565 2471.711923 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_313"> - <path d="M 1644.937716 1610.045939 -Q 1960.073114 1184.555915 2274.543085 759.964338 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2270.555191 761.988369 -L 2274.543085 759.964338 -L 2273.769573 764.369072 -L 2270.555191 761.988369 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_314"> - <path d="M 1634.629926 1623.966452 -Q 1319.758695 2049.290772 1005.552697 2473.716503 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1009.540157 2471.691616 -L 1005.552697 2473.716503 -L 1006.325263 2469.311603 -L 1009.540157 2471.691616 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_315"> - <path d="M 1496.690352 2383.168869 -Q 1778.158324 2397.709562 2058.509751 2412.192574 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.618261 2409.988872 -L 2058.509751 2412.192574 -L 2054.411895 2413.983545 -L 2054.618261 2409.988872 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_316"> - <path d="M 1479.90787 2385.682154 -Q 1212.173717 2483.073722 945.490243 2580.083093 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 949.93296 2580.595214 -L 945.490243 2580.083093 -L 948.56557 2576.836192 -L 949.93296 2580.595214 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_317"> - <path d="M 1969.311646 1398.049547 -Q 2018.372381 1901.063385 2067.324586 2402.964469 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2068.926849 2398.789214 -L 2067.324586 2402.964469 -L 2064.94574 2399.177506 -L 2068.926849 2398.789214 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_318"> - <path d="M 1967.677029 1380.805463 -Q 1921.296328 876.950956 1875.01811 374.209776 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1873.393187 378.376264 -L 1875.01811 374.209776 -L 1877.376347 378.009607 -L 1873.393187 378.376264 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_319"> - <path d="M 1968.991986 1397.874647 -Q 2018.211194 1900.975192 2067.321542 2402.963016 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2068.922571 2398.787288 -L 2067.321542 2402.963016 -L 2064.941577 2399.176755 -L 2068.922571 2398.787288 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_320"> - <path d="M 1967.357411 1380.630549 -Q 1921.135162 876.862757 1875.015067 374.208321 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1873.38891 378.374328 -L 1875.015067 374.208321 -L 1877.372179 378.008851 -L 1873.38891 378.374328 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_321"> - <path d="M 736.281087 708.816653 -Q 660.75527 629.483321 586.000352 550.959751 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 587.309856 555.235871 -L 586.000352 550.959751 -L 590.20695 552.477819 -L 587.309856 555.235871 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_322"> - <path d="M 771.434476 748.979157 -Q 678.305605 649.586744 585.941177 551.01019 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 587.216685 555.296573 -L 585.941177 551.01019 -L 590.135588 552.561613 -L 587.216685 555.296573 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_323"> - <path d="M 782.01173 749.906697 -Q 683.670534 649.976776 586.113548 550.843733 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 587.493721 555.097569 -L 586.113548 550.843733 -L 590.344721 552.291896 -L 587.493721 555.097569 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_324"> - <path d="M 975.132992 2245.732806 -Q 902.971216 2380.73503 831.336486 2514.751242 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 834.985939 2512.166384 -L 831.336486 2514.751242 -L 831.458272 2510.280765 -L 834.985939 2512.166384 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_325"> - <path d="M 1622.223504 2312.964442 -Q 2007.677051 2214.107089 2392.047615 2115.527489 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2387.676156 2114.583908 -L 2392.047615 2115.527489 -L 2388.669875 2118.458508 -L 2387.676156 2114.583908 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_326"> - <path d="M 1605.463001 2317.330995 -Q 1220.281894 2419.24546 836.181627 2520.873947 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 840.560133 2521.784268 -L 836.181627 2520.873947 -L 839.536987 2517.917335 -L 840.560133 2521.784268 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_327"> - <path d="M 1622.221316 2312.958053 -Q 2007.675945 2214.10386 2392.047589 2115.527411 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2387.676138 2114.583794 -L 2392.047589 2115.527411 -L 2388.669825 2118.458402 -L 2387.676138 2114.583794 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_328"> - <path d="M 1605.460813 2317.324606 -Q 1220.280788 2419.242231 836.181601 2520.873869 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 840.560115 2521.784153 -L 836.181601 2520.873869 -L 839.536937 2517.917229 -L 840.560115 2521.784153 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_329"> - <path d="M 2229.93475 1028.525071 -Q 2291.518257 993.158575 2352.132233 958.348866 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2347.667527 958.606539 -L 2352.132233 958.348866 -L 2349.659548 962.075235 -L 2347.667527 958.606539 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_330"> - <path d="M 2386.999496 932.643534 -Q 2377.205288 940.376948 2368.288556 947.417516 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2372.66731 946.508389 -L 2368.288556 947.417516 -L 2370.188507 943.369036 -L 2372.66731 946.508389 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_331"> - <path d="M 1530.398872 1707.113605 -Q 1022.088913 1912.257318 514.815738 2116.982605 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 519.27355 2117.340257 -L 514.815738 2116.982605 -L 517.776547 2113.630947 -L 519.27355 2117.340257 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_332"> - <path d="M 1546.466325 1700.638004 -Q 2054.944766 1495.989586 2562.386025 1291.758605 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2557.928556 1291.396705 -L 2562.386025 1291.758605 -L 2559.422023 1295.10744 -L 2557.928556 1291.396705 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_333"> - <path d="M 1531.196544 1706.797812 -Q 1022.486964 1912.099762 514.81417 2116.983293 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 519.27198 2117.340967 -L 514.81417 2116.983293 -L 517.774996 2113.63165 -L 519.27198 2117.340967 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_334"> - <path d="M 1547.263987 1700.322224 -Q 2055.342816 1495.832031 2562.384465 1291.759279 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2557.926995 1291.397398 -L 2562.384465 1291.759279 -L 2559.420479 1295.108127 -L 2557.926995 1291.397398 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_335"> - <path d="M 1530.323942 1706.929156 -Q 1022.051154 1912.16437 514.815075 2116.980973 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 519.272951 2117.337821 -L 514.815075 2116.980973 -L 517.77528 2113.628781 -L 519.272951 2117.337821 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_336"> - <path d="M 1546.391395 1700.453555 -Q 2054.907007 1495.896639 2562.385362 1291.756972 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2557.927958 1291.394269 -L 2562.385362 1291.756972 -L 2559.420757 1295.105273 -L 2557.927958 1291.394269 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_337"> - <path d="M 1530.825941 1706.628689 -Q 1022.300212 1912.014539 514.811156 2116.981691 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 519.269061 2117.338174 -L 514.811156 2116.981691 -L 517.771085 2113.629257 -L 519.269061 2117.338174 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_338"> - <path d="M 1546.885513 1700.156272 -Q 2055.156003 1495.746832 2562.389201 1291.754555 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2557.931827 1291.391483 -L 2562.389201 1291.754555 -L 2559.424319 1295.102611 -L 2557.931827 1291.391483 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_339"> - <path d="M 930.398692 718.255705 -Q 632.538769 879.128241 335.66257 1039.469473 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 340.132479 1039.328361 -L 335.66257 1039.469473 -L 338.231626 1035.808878 -L 340.132479 1039.328361 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_340"> - <path d="M 945.031044 709.059483 -Q 1218.54151 510.899895 1491.146591 313.396262 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1486.733978 314.123478 -L 1491.146591 313.396262 -L 1489.080796 317.362682 -L 1486.733978 314.123478 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_341"> - <path d="M 1708.186553 1360.699983 -Q 1886.82841 1882.603168 2065.108199 2403.44857 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2065.705046 2399.01644 -L 2065.108199 2403.44857 -L 2061.920604 2400.311814 -L 2065.705046 2399.01644 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_342"> - <path d="M 1702.62878 1344.303685 -Q 1527.267144 821.846403 1352.261267 300.449043 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1351.638029 304.877539 -L 1352.261267 300.449043 -L 1355.430121 303.604731 -L 1351.638029 304.877539 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_343"> - <path d="M 1712.142874 1359.28765 -Q 1888.821972 1881.891504 2065.143001 2403.436213 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2065.756586 2399.00637 -L 2065.143001 2403.436213 -L 2061.967277 2400.287439 -L 2065.756586 2399.00637 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_344"> - <path d="M 1706.585071 1342.891363 -Q 1529.260705 821.134739 1352.296106 300.436683 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1351.689616 304.867504 -L 1352.296106 300.436683 -L 1355.476868 303.580367 -L 1351.689616 304.867504 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_345"> - <path d="M 1878.229504 1352.028129 -Q 2041.375303 1819.615953 2204.152784 2286.148152 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2204.72341 2281.71257 -L 2204.152784 2286.148152 -L 2200.946694 2283.030302 -L 2204.72341 2281.71257 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_346"> - <path d="M 1872.489238 1335.683151 -Q 1707.724012 869.563447 1543.331398 404.497859 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1542.778834 408.935727 -L 1543.331398 404.497859 -L 1546.550154 407.602631 -L 1542.778834 408.935727 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_347"> - <path d="M 1876.86339 1352.688526 -Q 2040.686323 1819.949014 2204.139346 2286.154435 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2204.703278 2281.717997 -L 2204.139346 2286.154435 -L 2200.928555 2283.041427 -L 2204.703278 2281.717997 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_348"> - <path d="M 1871.123145 1336.343538 -Q 1707.03377 869.892919 1543.315413 404.496978 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1542.756141 408.934005 -L 1543.315413 404.496978 -L 1546.529472 407.606612 -L 1542.756141 408.934005 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_349"> - <path d="M 1874.420537 1353.521751 -Q 2039.454306 1820.369239 2204.11544 2286.162619 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2204.667908 2281.724739 -L 2204.11544 2286.162619 -L 2200.896617 2283.057916 -L 2204.667908 2281.724739 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_350"> - <path d="M 1868.680329 1337.17675 -Q 1705.801762 870.31314 1543.291483 404.505165 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1542.720733 408.940731 -L 1543.291483 404.505165 -L 1546.497486 407.623104 -L 1542.720733 408.940731 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_351"> - <path d="M 1914.027162 1002.251871 -Q 2244.992141 1319.981308 2575.150588 1636.936467 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2573.650123 1632.723558 -L 2575.150588 1636.936467 -L 2570.879981 1635.609094 -L 2573.650123 1632.723558 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_352"> - <path d="M 1901.539585 990.247207 -Q 1570.86704 671.925295 1240.999964 354.378767 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1242.494646 358.593731 -L 1240.999964 354.378767 -L 1245.268745 355.712 -L 1242.494646 358.593731 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_353"> - <path d="M 2569.568529 1521.03136 -Q 2595.494971 1521.568769 2620.30362 1522.083009 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2616.345927 1520.000543 -L 2620.30362 1522.083009 -L 2616.263032 1523.999684 -L 2616.345927 1520.000543 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_354"> - <path d="M 1888.400656 771.348257 -Q 1570.938924 583.557015 1254.439472 396.335 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1256.863963 400.092904 -L 1254.439472 396.335 -L 1258.900489 396.650149 -L 1256.863963 400.092904 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_355"> - <path d="M 1903.316885 780.15395 -Q 2221.124029 967.389313 2537.967885 1154.057158 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2535.536731 1150.30356 -L 2537.967885 1154.057158 -L 2533.506315 1153.749922 -L 2535.536731 1150.30356 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_356"> - <path d="M 1512.992193 2492.980915 -Q 1786.347831 2453.458514 2058.596941 2414.096097 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.351916 2412.689056 -L 2058.596941 2414.096097 -L 2054.924294 2416.647893 -L 2054.351916 2412.689056 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_357"> - <path d="M 1495.866757 2495.563316 -Q 1220.362318 2538.823043 945.962379 2581.909342 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 950.224201 2583.264656 -L 945.962379 2581.909342 -L 949.603723 2579.313073 -L 950.224201 2583.264656 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_358"> - <path d="M 1840.94242 1385.041482 -Q 1953.672851 1894.641306 2066.161796 2403.149486 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2067.250618 2398.811922 -L 2066.161796 2403.149486 -L 2063.345038 2399.675889 -L 2067.250618 2398.811922 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_359"> - <path d="M 1837.21149 1368.129559 -Q 1724.945429 857.84207 1612.919597 348.646501 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1611.825778 352.982808 -L 1612.919597 348.646501 -L 1615.732352 352.12334 -L 1611.825778 352.982808 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_360"> - <path d="M 1840.651466 1384.133806 -Q 1953.527045 1894.187657 2066.161047 2403.149885 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2067.249507 2398.812229 -L 2066.161047 2403.149885 -L 2063.343999 2399.676524 -L 2067.249507 2398.812229 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_361"> - <path d="M 1836.920545 1367.221879 -Q 1724.799623 857.388421 1612.918838 348.646903 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1611.824652 352.983118 -L 1612.918838 348.646903 -L 1615.731298 352.123981 -L 1611.824652 352.983118 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_362"> - <path d="M 1934.955415 2224.071977 -Q 1999.115514 2314.848627 2062.630309 2404.712271 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2061.954832 2400.291442 -L 2062.630309 2404.712271 -L 2058.688359 2402.600155 -L 2061.954832 2400.291442 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_363"> - <path d="M 1741.084135 2297.82356 -Q 2112.675845 2199.29589 2483.186865 2101.054766 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2478.807881 2100.146744 -L 2483.186865 2101.054766 -L 2479.833057 2104.01314 -L 2478.807881 2100.146744 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_364"> - <path d="M 1724.351107 2302.277517 -Q 1352.722872 2401.578587 982.174776 2500.591039 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 986.555494 2501.490655 -L 982.174776 2500.591039 -L 985.5229 2497.626234 -L 986.555494 2501.490655 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_365"> - <path d="M 1537.358353 1629.604284 -Q 2071.160161 1496.032573 2603.877375 1362.732258 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2599.511527 1361.763049 -L 2603.877375 1362.732258 -L 2600.482499 1365.643411 -L 2599.511527 1361.763049 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_366"> - <path d="M 1520.55556 1633.813 -Q 987.314084 1767.511169 455.157074 1900.937432 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 459.523378 1901.904586 -L 455.157074 1900.937432 -L 458.55058 1898.024681 -L 459.523378 1901.904586 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_367"> - <path d="M 1537.71088 1629.466482 -Q 2071.337801 1495.963135 2603.880116 1362.731135 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2599.51431 1361.761736 -L 2603.880116 1362.731135 -L 2600.485113 1365.642141 -L 2599.51431 1361.761736 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_368"> - <path d="M 1520.908084 1633.6752 -Q 987.487622 1767.442758 455.151614 1900.938365 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 459.51796 1901.905331 -L 455.151614 1900.938365 -L 458.544994 1898.025468 -L 459.51796 1901.905331 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_369"> - <path d="M 1277.697953 1737.215873 -Q 1669.694139 2072.143902 2060.840307 2406.345661 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2059.098379 2402.226718 -L 2060.840307 2406.345661 -L 2056.499996 2405.267837 -L 2059.098379 2402.226718 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_370"> - <path d="M 1264.535639 1725.958348 -Q 872.829876 1390.598215 481.973404 1055.965204 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 483.7112 1060.085891 -L 481.973404 1055.965204 -L 486.312631 1057.047379 -L 483.7112 1060.085891 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_371"> - <path d="M 1658.7651 459.454339 -Q 1603.227032 429.424275 1548.672435 399.925985 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1551.239743 403.587806 -L 1548.672435 399.925985 -L 1553.142277 400.069231 -L 1551.239743 403.587806 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_372"> - <path d="M 1672.997956 457.981265 -Q 1732.907149 407.296539 1791.962795 357.333934 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1787.617287 358.390607 -L 1791.962795 357.333934 -L 1790.200828 361.444345 -L 1787.617287 358.390607 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_373"> - <path d="M 2193.963486 1382.828556 -Q 2131.915591 917.10718 2070.015347 452.494046 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2068.561115 456.723137 -L 2070.015347 452.494046 -L 2072.526081 456.194886 -L 2068.561115 456.723137 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_374"> - <path d="M 2196.230874 1399.999648 -Q 2257.206841 1865.949998 2318.037734 2330.791766 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2319.501796 2326.566068 -L 2318.037734 2330.791766 -L 2315.535613 2327.085098 -L 2319.501796 2326.566068 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_375"> - <path d="M 2193.963485 1382.828555 -Q 2131.915591 917.10718 2070.015347 452.494046 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2068.561115 456.723137 -L 2070.015347 452.494046 -L 2072.526081 456.194886 -L 2068.561115 456.723137 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_376"> - <path d="M 2196.230873 1399.999646 -Q 2257.20684 1865.949997 2318.037734 2330.791766 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2319.501796 2326.566068 -L 2318.037734 2330.791766 -L 2315.535613 2327.085098 -L 2319.501796 2326.566068 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_377"> - <path d="M 2192.934564 1382.948793 -Q 2131.396434 917.167847 2070.004744 452.495304 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2068.545894 456.722804 -L 2070.004744 452.495304 -L 2072.511434 456.198884 -L 2068.545894 456.722804 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_378"> - <path d="M 2195.201945 1400.119885 -Q 2256.68768 1866.010665 2318.027131 2330.793023 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2319.486578 2326.565729 -L 2318.027131 2330.793023 -L 2315.520964 2327.089089 -L 2319.486578 2326.565729 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_379"> - <path d="M 2189.001309 1383.438733 -Q 2129.412313 917.418642 2069.965123 452.507556 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2068.488616 456.728921 -L 2069.965123 452.507556 -L 2072.456311 456.22158 -L 2068.488616 456.728921 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_380"> - <path d="M 2191.26866 1400.609829 -Q 2254.703085 1866.257874 2317.986595 2330.798116 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2319.428365 2326.564761 -L 2317.986595 2330.798116 -L 2315.464973 2327.104687 -L 2319.428365 2326.564761 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_381"> - <path d="M 2191.714115 1383.092912 -Q 2130.781108 917.244152 2069.993105 452.503983 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2068.528778 456.729589 -L 2069.993105 452.503983 -L 2072.494994 456.210808 -L 2068.528778 456.729589 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_382"> - <path d="M 2193.981487 1400.264006 -Q 2256.07188 1866.083384 2318.014554 2330.794529 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2319.468523 2326.565348 -L 2318.014554 2330.794529 -L 2315.503591 2327.093845 -L 2319.468523 2326.565348 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_383"> - <path d="M 1302.232212 1403.897926 -Q 1537.526115 948.753859 1772.306583 494.602962 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1768.693029 497.237772 -L 1772.306583 494.602962 -L 1772.246299 499.074691 -L 1768.693029 497.237772 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_384"> - <path d="M 1294.27986 1419.284293 -Q 1058.953223 1874.706154 824.139829 2329.134748 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 827.752877 2326.499243 -L 824.139829 2329.134748 -L 824.199254 2324.663006 -L 827.752877 2326.499243 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_385"> - <path d="M 1277.609302 1737.277452 -Q 1669.649445 2072.174948 2060.839496 2406.346259 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2059.097154 2402.227491 -L 2060.839496 2406.346259 -L 2056.499077 2405.268871 -L 2059.097154 2402.227491 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_386"> - <path d="M 1264.446987 1726.019927 -Q 872.785181 1390.629261 481.972592 1055.965802 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 483.709975 1060.086664 -L 481.972592 1055.965802 -L 486.311711 1057.048413 -L 483.709975 1060.086664 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_387"> - <path d="M 606.664227 1833.29058 -Q 619.895531 2077.405997 633.066325 2320.405018 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 634.846907 2316.302638 -L 633.066325 2320.405018 -L 630.85277 2316.519124 -L 634.846907 2316.302638 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_388"> - <path d="M 601.909326 1817.115732 -Q 481.963912 1606.557745 362.571899 1396.971224 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 362.813993 1401.436803 -L 362.571899 1396.971224 -L 366.289618 1399.456896 -L 362.813993 1401.436803 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_389"> - <path d="M 1572.900929 868.423512 -Q 2034.939318 1069.193376 2495.952297 1269.517669 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2493.080743 1266.089232 -L 2495.952297 1269.517669 -L 2491.486616 1269.75785 -L 2493.080743 1266.089232 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_390"> - <path d="M 1557.019105 861.510056 -Q 1095.561118 660.276531 635.127958 459.489916 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 637.995039 462.922094 -L 635.127958 459.489916 -L 639.593949 459.255558 -L 637.995039 462.922094 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_391"> - <path d="M 2277.287981 1354.476188 -Q 2312.477413 1676.868205 2347.54553 1998.148789 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2349.099695 1993.955393 -L 2347.54553 1998.148789 -L 2345.123313 1994.389419 -L 2349.099695 1993.955393 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_392"> - <path d="M 2275.362678 1337.265237 -Q 2238.452106 1015.130268 2201.668807 694.106065 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2200.137153 698.307736 -L 2201.668807 694.106065 -L 2204.111151 697.852391 -L 2200.137153 698.307736 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_393"> - <path d="M 2272.523796 1354.980491 -Q 2310.064215 1677.12617 2347.475223 1998.16133 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2348.998783 1993.956718 -L 2347.475223 1998.16133 -L 2345.025669 1994.419715 -L 2348.998783 1993.956718 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_394"> - <path d="M 2270.598493 1337.76954 -Q 2236.038618 1015.385743 2201.597915 694.11361 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2200.03567 698.304003 -L 2201.597915 694.11361 -L 2204.012882 697.877642 -L 2200.03567 698.304003 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_395"> - <path d="M 2265.803081 1356.095664 -Q 2306.659278 1677.688615 2347.37457 1998.172447 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2348.854502 1993.952281 -L 2347.37457 1998.172447 -L 2344.886396 1994.456402 -L 2348.854502 1993.952281 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_396"> - <path d="M 2263.877627 1338.884734 -Q 2232.633654 1015.948192 2201.497347 694.124488 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2199.891842 698.298497 -L 2201.497347 694.124488 -L 2203.873252 697.913298 -L 2199.891842 698.298497 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_397"> - <path d="M 2277.233157 1354.486911 -Q 2312.449639 1676.873637 2347.544714 1998.14894 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2349.098524 1993.955413 -L 2347.544714 1998.14894 -L 2345.122178 1994.389776 -L 2349.098524 1993.955413 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_398"> - <path d="M 2275.307854 1337.275959 -Q 2238.424333 1015.1357 2201.66799 694.106218 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2200.13598 698.307758 -L 2201.66799 694.106218 -L 2204.110017 697.85275 -L 2200.13598 698.307758 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_399"> - <path d="M 2277.313044 1354.471372 -Q 2312.490382 1676.868258 2347.546448 1998.153706 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2349.100775 1993.96037 -L 2347.546448 1998.153706 -L 2345.124375 1994.394242 -L 2349.100775 1993.96037 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_400"> - <path d="M 2275.387741 1337.260421 -Q 2238.464803 1015.127828 2201.66918 694.105997 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2200.137689 698.307727 -L 2201.66918 694.105997 -L 2204.111669 697.852228 -L 2200.137689 698.307727 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_401"> - <path d="M 403.784985 1479.68777 -Q 402.609991 1184.565765 401.439449 890.561785 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 399.45539 894.569716 -L 401.439449 890.561785 -L 403.455359 894.553791 -L 399.45539 894.569716 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_402"> - <path d="M 403.776918 1497.007254 -Q 402.325562 1792.194135 400.879703 2086.262996 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 402.899346 2082.272877 -L 400.879703 2086.262996 -L 398.899394 2082.253211 -L 402.899346 2082.272877 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_403"> - <path d="M 1277.771618 1737.163991 -Q 1669.731278 2072.117745 2060.840981 2406.345157 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2059.099399 2402.226068 -L 2060.840981 2406.345157 -L 2056.500761 2405.26697 -L 2059.099399 2402.226068 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_404"> - <path d="M 1264.609303 1725.906466 -Q 872.867015 1390.572058 481.974078 1055.9647 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 483.71222 1060.085242 -L 481.974078 1055.9647 -L 486.313397 1057.046512 -L 483.71222 1060.085242 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_405"> - <path d="M 2265.539214 943.31209 -Q 2364.46383 874.844743 2462.469124 807.013672 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2458.041853 807.645555 -L 2462.469124 807.013672 -L 2460.318268 810.934618 -L 2458.041853 807.645555 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_406"> - <path d="M 2292.05106 919.441517 -Q 2377.668383 862.833254 2462.35309 806.841617 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2457.913407 807.379407 -L 2462.35309 806.841617 -L 2460.119512 810.716037 -L 2457.913407 807.379407 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_407"> - <path d="M 768.561907 915.561201 -Q 539.405511 1121.191534 311.081244 1326.075168 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 315.394098 1324.892251 -L 311.081244 1326.075168 -L 312.722623 1321.915135 -L 315.394098 1324.892251 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_408"> - <path d="M 780.155935 902.809304 -Q 963.392 654.809199 1145.963675 407.708309 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1141.97812 409.736942 -L 1145.963675 407.708309 -L 1145.195249 412.113933 -L 1141.97812 409.736942 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_409"> - <path d="M 856.277804 643.157422 -Q 617.028887 740.596869 378.815422 837.614606 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 383.274345 837.95812 -L 378.815422 837.614606 -L 381.765587 834.253575 -L 383.274345 837.95812 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_410"> - <path d="M 870.215559 633.575551 -Q 1047.044555 444.906236 1223.108993 257.052673 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1218.914367 258.603513 -L 1223.108993 257.052673 -L 1221.83289 261.338878 -L 1218.914367 258.603513 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_411"> - <path d="M 1648.073997 1111.900214 -Q 2052.29206 1443.054813 2455.645265 1773.500878 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2453.818515 1769.418846 -L 2455.645265 1773.500878 -L 2451.283589 1772.513059 -L 2453.818515 1769.418846 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_412"> - <path d="M 1634.695057 1100.893768 -Q 1231.314942 767.660639 828.796781 435.139572 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 830.606829 439.229038 -L 828.796781 435.139572 -L 833.154382 436.145214 -L 830.606829 439.229038 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_413"> - <path d="M 1648.076846 1111.89821 -Q 2052.293497 1443.053802 2455.64529 1773.500859 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2453.818554 1769.418821 -L 2455.64529 1773.500859 -L 2451.283618 1772.513026 -L 2453.818554 1769.418821 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_414"> - <path d="M 1634.697907 1100.891764 -Q 1231.316378 767.659629 828.796807 435.139553 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 830.606867 439.229013 -L 828.796807 435.139553 -L 833.154411 436.145181 -L 830.606867 439.229013 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_415"> - <path d="M 1648.093902 1111.882124 -Q 2052.302094 1443.045693 2455.645446 1773.500708 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2453.8188 1769.41863 -L 2455.645446 1773.500708 -L 2451.283796 1772.512778 -L 2453.8188 1769.41863 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_416"> - <path d="M 1634.714962 1100.875678 -Q 1231.324976 767.65152 828.796963 435.139402 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 830.607113 439.228822 -L 828.796963 435.139402 -L 833.154589 436.144934 -L 830.607113 439.228822 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_417"> - <path d="M 1650.922418 1107.905319 -Q 2053.731077 1441.043507 2455.678178 1773.469154 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2453.870405 1769.378682 -L 2455.678178 1773.469154 -L 2451.321137 1772.461089 -L 2453.870405 1769.378682 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_418"> - <path d="M 1637.5435 1096.898842 -Q 1232.753964 765.649334 828.829676 435.107882 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 830.658679 439.188905 -L 828.829676 435.107882 -L 833.191896 436.093293 -L 830.658679 439.188905 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_419"> - <path d="M 2216.039267 972.962482 -Q 2339.68488 889.62497 2462.403384 806.912333 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2457.968647 807.489489 -L 2462.403384 806.912333 -L 2460.204266 810.806416 -L 2457.968647 807.489489 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_420"> - <path d="M 2122.40024 1035.201713 -Q 2292.860407 920.738907 2462.392385 806.899372 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2457.956657 807.468863 -L 2462.392385 806.899372 -L 2460.186542 810.789649 -L 2457.956657 807.468863 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_421"> - <path d="M 2330.139343 895.557877 -Q 2396.727376 850.914918 2462.386766 806.894552 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2457.950624 807.460808 -L 2462.386766 806.894552 -L 2460.178085 810.783219 -L 2457.950624 807.460808 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_422"> - <path d="M 1530.241424 1399.611837 -Q 1797.226748 1902.330378 2063.68767 2404.061498 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2063.577863 2399.59071 -L 2063.68767 2404.061498 -L 2060.045156 2401.466871 -L 2063.577863 2399.59071 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_423"> - <path d="M 1522.118306 1384.311636 -Q 1255.388248 881.756992 989.182335 380.189907 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 989.290975 384.660723 -L 989.182335 380.189907 -L 992.824172 382.785485 -L 989.290975 384.660723 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_424"> - <path d="M 1483.306776 2284.243943 -Q 1771.561665 2347.541898 2058.724538 2410.600057 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2055.246585 2407.78868 -L 2058.724538 2410.600057 -L 2054.388665 2411.695594 -L 2055.246585 2407.78868 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_425"> - <path d="M 1467.288816 2286.609535 -Q 1205.57119 2432.906494 944.829476 2578.65793 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 949.296867 2578.451973 -L 944.829476 2578.65793 -L 947.345145 2574.960443 -L 949.296867 2578.451973 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_426"> - <path d="M 1514.334831 2502.684943 -Q 1787.029512 2458.385415 2058.620625 2414.265162 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.351686 2412.932437 -L 2058.620625 2414.265162 -L 2054.993082 2416.880679 -L 2054.351686 2412.932437 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_427"> - <path d="M 1497.209498 2505.268663 -Q 1221.043958 2543.749948 945.985754 2582.076935 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 950.223494 2583.505765 -L 945.985754 2582.076935 -L 949.671462 2579.544041 -L 950.223494 2583.505765 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_428"> - <path d="M 1508.860254 2503.885542 -Q 1784.292655 2458.988022 2058.621586 2414.270377 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.351925 2412.939966 -L 2058.621586 2414.270377 -L 2054.995461 2416.887859 -L 2054.351925 2412.939966 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_429"> - <path d="M 1491.734795 2506.467427 -Q 1218.30711 2544.352627 945.986879 2582.084382 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 950.223518 2583.516475 -L 945.986879 2582.084382 -L 949.674537 2579.554327 -L 950.223518 2583.516475 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_430"> - <path d="M 1487.01066 2301.822679 -Q 1773.387166 2356.448189 2058.665438 2410.864214 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2055.111017 2408.150159 -L 2058.665438 2410.864214 -L 2054.361542 2412.079318 -L 2055.111017 2408.150159 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_431"> - <path d="M 1470.828359 2304.20804 -Q 1207.402847 2441.811777 944.968313 2578.897864 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 949.439746 2578.818578 -L 944.968313 2578.897864 -L 947.587743 2575.273146 -L 949.439746 2578.818578 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_432"> - <path d="M 1502.714976 2430.855716 -Q 1781.164431 2421.915378 2058.496428 2413.010918 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.434306 2411.140312 -L 2058.496428 2413.010918 -L 2054.56267 2415.138252 -L 2054.434306 2411.140312 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_433"> - <path d="M 1485.709371 2433.41434 -Q 1215.180786 2507.280078 945.730754 2580.851326 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 950.116301 2581.727098 -L 945.730754 2580.851326 -L 949.0627 2577.868351 -L 950.116301 2581.727098 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_434"> - <path d="M 881.607827 897.114673 -Q 1187.20569 605.375934 1491.994858 314.409214 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1487.720556 315.724638 -L 1491.994858 314.409214 -L 1490.482616 318.61791 -L 1487.720556 315.724638 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_435"> - <path d="M 869.06125 909.052092 -Q 562.631739 1199.625702 257.013509 1489.430011 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 261.292201 1488.128937 -L 257.013509 1489.430011 -L 258.539865 1485.226413 -L 261.292201 1488.128937 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_436"> - <path d="M 1507.972701 2474.604806 -Q 1783.820723 2444.126287 2058.557474 2413.770552 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.362025 2412.221937 -L 2058.557474 2413.770552 -L 2054.801312 2416.197742 -L 2054.362025 2412.221937 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_437"> - <path d="M 1490.864124 2477.184501 -Q 1217.835432 2529.490634 945.904804 2581.586403 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 950.209673 2582.798059 -L 945.904804 2581.586403 -L 949.45705 2578.869502 -L 950.209673 2582.798059 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_438"> - <path d="M 1490.734204 2336.534818 -Q 1775.210101 2374.049649 2058.577561 2411.418307 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.873378 2408.912508 -L 2058.577561 2411.418307 -L 2054.350412 2412.878174 -L 2054.873378 2408.912508 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_439"> - <path d="M 1474.260499 2338.984061 -Q 1209.221552 2459.414153 945.200487 2579.381732 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 949.669537 2579.547843 -L 945.200487 2579.381732 -L 948.014805 2575.906159 -L 949.669537 2579.547843 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_440"> - <path d="M 1493.671883 2367.554436 -Q 1776.656943 2389.786641 2058.527404 2411.931278 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.696335 2409.624135 -L 2058.527404 2411.931278 -L 2054.383048 2413.611847 -L 2054.696335 2409.624135 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_441"> - <path d="M 1476.975831 2370.056281 -Q 1210.665117 2475.151915 945.394384 2579.837135 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 949.849304 2580.22917 -L 945.394384 2579.837135 -L 948.380964 2576.50842 -L 949.849304 2580.22917 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_442"> - <path d="M 1513.102422 2492.725844 -Q 1786.403796 2453.32901 2058.598575 2414.091693 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.354144 2412.682862 -L 2058.598575 2414.091693 -L 2054.924851 2416.641939 -L 2054.354144 2412.682862 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_443"> - <path d="M 1495.977004 2495.308205 -Q 1220.414014 2538.694209 945.955454 2581.906326 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 950.217837 2583.259873 -L 945.955454 2581.906326 -L 949.595721 2579.308547 -L 950.217837 2583.259873 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_444"> - <path d="M 1194.163299 2357.668703 -Q 1534.810922 2417.169919 1874.357187 2476.478761 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1870.760977 2473.820327 -L 1874.357187 2476.478761 -L 1870.072714 2477.760669 -L 1870.760977 2473.820327 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_445"> - <path d="M 1177.094221 2354.709245 -Q 836.532647 2296.101272 497.072909 2237.682917 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 500.675764 2240.33234 -L 497.072909 2237.682917 -L 501.35416 2236.390287 -L 500.675764 2240.33234 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_446"> - <path d="M 2292.582964 2205.97983 -Q 2183.613208 2306.403377 2075.465603 2406.069251 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2079.762386 2404.829229 -L 2075.465603 2406.069251 -L 2077.051656 2401.887811 -L 2079.762386 2404.829229 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_447"> - <path d="M 2305.661685 2194.636378 -Q 2421.060031 2100.488647 2535.592078 2007.047686 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2531.2284 2008.026622 -L 2535.592078 2007.047686 -L 2533.757019 2011.12599 -L 2531.2284 2008.026622 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_448"> - <path d="M 1505.005741 2448.605072 -Q 1782.318757 2430.926494 2058.516004 2413.319046 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.396867 2411.577579 -L 2058.516004 2413.319046 -L 2054.651348 2415.569476 -L 2054.396867 2411.577579 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_449"> - <path d="M 1487.939982 2451.17521 -Q 1216.329885 2516.291507 945.807014 2581.147151 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 950.163062 2582.159498 -L 945.807014 2581.147151 -L 949.23052 2578.269721 -L 950.163062 2582.159498 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_450"> - <path d="M 1487.618337 2321.284061 -Q 1773.668872 2366.317161 2058.614976 2411.176389 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.974672 2408.578662 -L 2058.614976 2411.176389 -L 2054.352612 2412.529996 -L 2054.974672 2408.578662 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_451"> - <path d="M 1471.274581 2323.718617 -Q 1207.682223 2451.681453 945.095647 2579.156025 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 949.567477 2579.208356 -L 945.095647 2579.156025 -L 947.820609 2575.60996 -L 949.567477 2579.208356 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_452"> - <path d="M 2198.693259 1536.922151 -Q 2134.121106 1970.528314 2069.713634 2403.028639 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2072.280997 2399.366857 -L 2069.713634 2403.028639 -L 2068.324627 2398.777679 -L 2072.280997 2399.366857 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_453"> - <path d="M 2201.263179 1519.792836 -Q 2266.789749 1086.250798 2332.149233 653.814238 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2329.573913 657.470428 -L 2332.149233 653.814238 -L 2333.528993 658.068208 -L 2329.573913 657.470428 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_454"> - <path d="M 2198.67464 1536.920352 -Q 2134.111705 1970.527406 2069.713428 2403.028617 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2072.280715 2399.366782 -L 2069.713428 2403.028617 -L 2068.324332 2398.777687 -L 2072.280715 2399.366782 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_455"> - <path d="M 2201.24456 1519.791037 -Q 2266.780348 1086.249889 2332.149028 653.814217 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2329.57363 657.470352 -L 2332.149028 653.814217 -L 2333.528698 658.068216 -L 2329.57363 657.470352 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_456"> - <path d="M 1483.724846 2275.663937 -Q 1771.782641 2343.191962 2058.751913 2410.46481 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2055.313967 2407.604648 -L 2058.751913 2410.46481 -L 2054.401016 2411.49907 -L 2055.313967 2407.604648 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_457"> - <path d="M 1467.791705 2278.000817 -Q 1205.797827 2428.557201 944.773325 2578.556527 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 949.237959 2578.297609 -L 944.773325 2578.556527 -L 947.244971 2574.829469 -L 949.237959 2578.297609 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_458"> - <path d="M 1484.943121 2278.638516 -Q 1772.387216 2344.697641 2058.741681 2410.506352 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2055.291257 2407.661255 -L 2058.741681 2410.506352 -L 2054.395349 2411.559633 -L 2055.291257 2407.661255 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_459"> - <path d="M 1468.974999 2280.974724 -Q 1206.401894 2430.062845 944.801031 2578.598931 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 949.266945 2578.363107 -L 944.801031 2578.598931 -L 947.291921 2574.884705 -L 949.266945 2578.363107 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_460"> - <path d="M 1496.329523 2364.941952 -Q 1777.988271 2388.459318 2058.532862 2411.883657 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.713145 2409.557767 -L 2058.532862 2411.883657 -L 2054.380319 2413.543896 -L 2054.713145 2409.557767 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_461"> - <path d="M 1479.648842 2367.420445 -Q 1211.996664 2473.824247 945.383432 2579.815022 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 949.839323 2580.195851 -L 945.383432 2579.815022 -L 948.36163 2576.478806 -L 949.839323 2580.195851 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_462"> - <path d="M 1331.68596 1044.949146 -Q 821.916211 1187.609159 313.22313 1329.967865 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 317.61413 1330.815877 -L 313.22313 1329.967865 -L 316.536139 1326.963873 -L 317.61413 1330.815877 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_463"> - <path d="M 1348.356487 1040.275899 -Q 1858.458932 897.035057 2367.484977 754.096477 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2363.093228 753.252358 -L 2367.484977 754.096477 -L 2364.174632 757.103405 -L 2363.093228 753.252358 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_464"> - <path d="M 1743.695114 1135.286089 -Q 1363.356533 786.55433 983.842019 438.578158 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 985.438661 442.755565 -L 983.842019 438.578158 -L 988.14193 439.807289 -L 985.438661 442.755565 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_465"> - <path d="M 1756.467998 1146.977041 -Q 2137.717398 1495.322137 2518.141414 1842.913085 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2516.53749 1838.738468 -L 2518.141414 1842.913085 -L 2513.839366 1841.691454 -L 2516.53749 1838.738468 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_466"> - <path d="M 1743.695891 1135.285161 -Q 1363.356924 786.553862 983.842027 438.578149 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 985.438673 442.755555 -L 983.842027 438.578149 -L 988.141939 439.807275 -L 985.438673 442.755555 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_467"> - <path d="M 1756.468775 1146.976113 -Q 2137.71779 1495.321669 2518.141421 1842.913076 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2516.537502 1838.738457 -L 2518.141421 1842.913076 -L 2513.839374 1841.69144 -L 2516.537502 1838.738457 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_468"> - <path d="M 1239.800683 445.721576 -Q 1035.422156 532.009837 832.073626 617.863236 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 836.536563 618.149937 -L 832.073626 617.863236 -L 834.980749 614.464907 -L 836.536563 618.149937 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_469"> - <path d="M 1255.66781 438.77702 -Q 1458.47325 346.839981 1660.260402 255.364558 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1655.7915 255.19452 -L 1660.260402 255.364558 -L 1657.44303 258.837657 -L 1655.7915 255.19452 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_470"> - <path d="M 1499.423828 2404.274757 -Q 1779.5197 2408.421777 2058.49766 2412.552246 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.527706 2410.493248 -L 2058.49766 2412.552246 -L 2054.46849 2414.49281 -L 2054.527706 2410.493248 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_471"> - <path d="M 1482.529665 2406.809677 -Q 1213.53342 2493.786259 945.600981 2580.418873 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 950.022283 2581.091249 -L 945.600981 2580.418873 -L 948.791663 2577.285257 -L 950.022283 2581.091249 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_472"> - <path d="M 1508.831506 2504.060276 -Q 1784.278062 2459.076725 2058.6212 2414.273374 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.351145 2412.944227 -L 2058.6212 2414.273374 -L 2054.99585 2416.89193 -L 2054.351145 2412.944227 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_473"> - <path d="M 1491.706052 2506.642135 -Q 1218.292516 2544.441331 945.986481 2582.087415 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 950.222688 2583.520786 -L 945.986481 2582.087415 -L 949.674902 2579.558472 -L 950.222688 2583.520786 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_474"> - <path d="M 413.397343 1618.212234 -Q 386.7152 1854.301254 360.158615 2089.279312 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 362.595173 2085.529221 -L 360.158615 2089.279312 -L 358.620477 2085.080011 -L 362.595173 2085.529221 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_475"> - <path d="M 413.169545 1601.029228 -Q 380.589943 1368.266201 348.16532 1136.610414 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 346.739099 1140.849034 -L 348.16532 1136.610414 -L 350.700483 1140.294563 -L 346.739099 1140.849034 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_476"> - <path d="M 1969.101025 1397.903351 -Q 2018.266176 1900.989666 2067.322584 2402.963248 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2068.924046 2398.787686 -L 2067.322584 2402.963248 -L 2064.943012 2399.176741 -L 2068.924046 2398.787686 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_477"> - <path d="M 1967.467168 1380.667072 -Q 1921.190506 876.881173 1875.016115 374.208621 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1873.39039 378.374796 -L 1875.016115 374.208621 -L 1877.373621 378.008906 -L 1873.39039 378.374796 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_478"> - <path d="M 1515.211414 2498.127053 -Q 1787.461909 2456.073251 2058.607475 2414.190125 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.349044 2412.824194 -L 2058.607475 2414.190125 -L 2054.959671 2416.777311 -L 2054.349044 2412.824194 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_479"> - <path d="M 1498.086587 2500.710336 -Q 1221.476352 2541.437814 945.972227 2582.00243 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 950.220896 2583.398428 -L 945.972227 2582.00243 -L 949.638227 2579.441094 -L 950.220896 2583.398428 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_480"> - <path d="M 2604.039161 1520.07533 -Q 2612.745226 1520.814237 2620.337261 1521.458594 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2616.520728 1519.127484 -L 2620.337261 1521.458594 -L 2616.182453 1523.113155 -L 2616.520728 1519.127484 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_481"> - <path d="M 2498.969885 1521.263648 -Q 2560.194918 1521.740915 2620.301952 1522.209468 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2616.317663 1520.178348 -L 2620.301952 1522.209468 -L 2616.286483 1524.178227 -L 2616.317663 1520.178348 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_482"> - <path d="M 1469.048905 2094.688216 -Q 1942.311867 1992.218744 2414.482113 1889.985864 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2410.149473 1888.877611 -L 2414.482113 1889.985864 -L 2410.995927 1892.787025 -L 2410.149473 1888.877611 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_483"> - <path d="M 1452.12658 2098.373004 -Q 978.781695 2202.025182 506.528967 2305.438201 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 510.8642 2306.53627 -L 506.528967 2305.438201 -L 510.008561 2302.628856 -L 510.8642 2306.53627 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_484"> - <path d="M 1945.308013 2247.068896 -Q 2004.210059 2326.406663 2062.445648 2404.846748 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2061.667077 2400.442906 -L 2062.445648 2404.846748 -L 2058.455431 2402.8273 -L 2061.667077 2400.442906 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_485"> - <path d="M 1496.342221 2366.430145 -Q 1777.990352 2389.214285 2058.52409 2411.908276 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.698379 2409.592259 -L 2058.52409 2411.908276 -L 2054.375849 2413.579234 -L 2054.698379 2409.592259 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_486"> - <path d="M 1479.65313 2368.912375 -Q 1212.002985 2474.579622 945.392765 2579.836312 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 949.847739 2580.227727 -L 945.392765 2579.836312 -L 948.378882 2576.507182 -L 949.847739 2580.227727 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_487"> - <path d="M 1488.103982 2311.688366 -Q 1773.924125 2361.450171 2058.642802 2411.020209 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2055.045124 2408.363761 -L 2058.642802 2411.020209 -L 2054.359038 2412.304483 -L 2055.045124 2408.363761 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_488"> - <path d="M 1471.836305 2314.095232 -Q 1207.934489 2446.81612 945.031505 2579.034677 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 949.503628 2579.024251 -L 945.031505 2579.034677 -L 947.706438 2575.450722 -L 949.503628 2579.024251 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_489"> - <path d="M 1508.531812 2487.232733 -Q 1784.108842 2450.536651 2058.577621 2413.988145 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.348629 2412.533628 -L 2058.577621 2413.988145 -L 2054.876612 2416.498629 -L 2054.348629 2412.533628 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_490"> - <path d="M 1491.414795 2489.81486 -Q 1218.127697 2535.900564 945.943068 2581.800352 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 950.219951 2583.107359 -L 945.943068 2581.800352 -L 949.554803 2579.16305 -L 950.219951 2583.107359 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_491"> - <path d="M 2017.36123 2215.503066 -Q 2041.734971 2309.907069 2065.829217 2403.228537 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2066.765764 2398.855565 -L 2065.829217 2403.228537 -L 2062.892768 2399.855516 -L 2066.765764 2398.855565 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_492"> - <path d="M 2023.06404 2210.731697 -Q 2111.283647 2251.249852 2198.487257 2291.301372 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2195.687054 2287.814416 -L 2198.487257 2291.301372 -L 2194.01757 2291.44936 -L 2195.687054 2287.814416 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_493"> - <path d="M 2116.642304 2193.733943 -Q 2159.124826 2241.327852 2200.862838 2288.087673 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2199.691257 2283.771726 -L 2200.862838 2288.087673 -L 2196.707132 2286.435369 -L 2199.691257 2283.771726 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_494"> - <path d="M 2156.48381 2230.310457 -Q 2179.262024 2259.436211 2201.351481 2287.681276 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2200.462738 2283.298339 -L 2201.351481 2287.681276 -L 2197.311885 2285.762508 -L 2200.462738 2283.298339 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_495"> - <path d="M 1974.538339 1397.21151 -Q 2021.007929 1900.640807 2067.374755 2402.956803 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2068.998627 2398.789905 -L 2067.374755 2402.956803 -L 2065.01556 2399.157566 -L 2068.998627 2398.789905 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_496"> - <path d="M 1972.903764 1379.967413 -Q 1923.931877 876.528374 1875.068235 374.202117 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1873.464901 378.376961 -L 1875.068235 374.202117 -L 1877.44611 377.98969 -L 1873.464901 378.376961 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_497"> - <path d="M 1969.182542 1397.845376 -Q 2018.307281 1900.960433 2067.323371 2402.962746 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2068.925189 2398.787321 -L 2067.323371 2402.962746 -L 2064.944121 2399.176037 -L 2068.925189 2398.787321 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_498"> - <path d="M 1967.547967 1380.601279 -Q 1921.231249 876.847997 1875.016895 374.208054 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1873.391523 378.374367 -L 1875.016895 374.208054 -L 1877.374723 378.008139 -L 1873.391523 378.374367 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_499"> - <path d="M 674.221052 637.566823 -Q 629.820753 593.762004 586.216343 550.742399 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 587.659166 554.975396 -L 586.216343 550.742399 -L 590.468434 552.127939 -L 587.659166 554.975396 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_500"> - <path d="M 815.906854 774.455012 -Q 700.682476 662.186702 586.258873 550.698623 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 587.728092 554.922531 -L 586.258873 550.698623 -L 590.51953 552.057592 -L 587.728092 554.922531 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_501"> - <path d="M 704.947426 675.128205 -Q 645.096608 612.629208 586.019067 550.937702 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 587.341142 555.209952 -L 586.019067 550.937702 -L 590.230112 552.443392 -L 587.341142 555.209952 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_502"> - <path d="M 739.498468 720.530055 -Q 662.285785 635.409166 585.824267 551.116378 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 587.030367 555.422806 -L 585.824267 551.116378 -L 589.993069 552.735355 -L 587.030367 555.422806 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_503"> - <path d="M 801.549106 765.354726 -Q 693.470646 657.671926 586.184204 550.778244 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 587.606195 555.018284 -L 586.184204 550.778244 -L 590.429431 552.184675 -L 587.606195 555.018284 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_504"> - <path d="M 727.80337 699.355592 -Q 656.52063 624.746028 586.010232 550.944851 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 587.327357 555.218629 -L 586.010232 550.944851 -L 590.219529 552.455418 -L 587.327357 555.218629 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_505"> - <path d="M 754.651105 716.524266 -Q 670.040781 633.238726 586.22724 550.737494 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 587.674885 554.968844 -L 586.22724 550.737494 -L 590.480907 552.118188 -L 587.674885 554.968844 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_506"> - <path d="M 1489.431443 2445.146369 -Q 1774.53137 2429.163925 2058.515016 2413.244059 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2054.409344 2411.471079 -L 2058.515016 2413.244059 -L 2054.633229 2415.464809 -L 2054.409344 2411.471079 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_507"> - <path d="M 1472.138925 2446.161518 -Q 1188.2431 2463.578504 905.46321 2480.927027 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 909.578173 2482.678335 -L 905.46321 2480.927027 -L 909.333234 2478.685841 -L 909.578173 2482.678335 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_508"> - <path d="M 1623.343719 2317.339558 -Q 2008.243186 2216.318188 2392.061246 2115.580645 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2387.684559 2114.661619 -L 2392.061246 2115.580645 -L 2388.700013 2118.530579 -L 2387.684559 2114.661619 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_509"> - <path d="M 1606.583225 2321.706145 -Q 1220.848029 2421.45656 836.19526 2520.92706 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 840.568594 2521.861915 -L 836.19526 2520.92706 -L 839.567144 2517.989306 -L 840.568594 2521.861915 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_510"> - <path d="M 994.653664 2233.027466 -Q 912.858504 2374.452366 831.623097 2514.909446 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 835.35702 2512.448183 -L 831.623097 2514.909446 -L 831.89444 2510.445549 -L 835.35702 2512.448183 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_511"> - <path d="M 949.496676 2320.259355 -Q 890.351167 2418.112281 831.783997 2515.008376 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 835.564757 2512.619682 -L 831.783997 2515.008376 -L 832.141498 2510.550552 -L 835.564757 2512.619682 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_512"> - <path d="M 1223.891077 958.002851 -Q 788.46181 1102.23626 354.093867 1246.118113 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 358.519858 1246.758897 -L 354.093867 1246.118113 -L 357.262089 1242.96179 -L 358.519858 1246.758897 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_513"> - <path d="M 1240.330915 952.544629 -Q 1675.214489 807.824075 2109.037226 663.456546 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2104.610353 662.821886 -L 2109.037226 663.456546 -L 2105.873374 666.617249 -L 2104.610353 662.821886 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_514"> - <path d="M 1449.052167 1268.599754 -Q 901.260921 1258.972066 354.587536 1249.364026 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 358.551773 1251.434008 -L 354.587536 1249.364026 -L 358.622064 1247.434625 -L 358.551773 1251.434008 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_515"> - <path d="M 1466.371385 1268.902441 -Q 2014.583355 1278.429573 2561.677461 1287.937278 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2557.712817 1285.868076 -L 2561.677461 1287.937278 -L 2557.643313 1289.867472 -L 2557.712817 1285.868076 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_516"> - <path d="M 1320.279282 1385.297581 -Q 1010.216731 1908.193619 700.724427 2430.127982 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 704.484899 2427.707476 -L 700.724427 2430.127982 -L 701.044305 2425.667301 -L 704.484899 2427.707476 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_517"> - <path d="M 1329.11364 1370.401298 -Q 1639.52812 847.063913 1949.372232 324.68813 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1945.611451 327.108157 -L 1949.372232 324.68813 -L 1949.051785 329.148771 -L 1945.611451 327.108157 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_518"> - <path d="M 1712.146077 1359.301192 -Q 1888.823586 1881.898328 2065.143024 2403.436319 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2065.756604 2399.006475 -L 2065.143024 2403.436319 -L 2061.967297 2400.287549 -L 2065.756604 2399.006475 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_519"> - <path d="M 1706.588274 1342.904905 -Q 1529.26232 821.141562 1352.296129 300.436789 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1351.689635 304.867609 -L 1352.296129 300.436789 -L 1355.476888 303.580477 -L 1351.689635 304.867609 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_520"> - <path d="M 1857.702766 2394.862136 -Q 1957.482207 2444.801718 2056.261848 2494.2409 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2053.579997 2490.662119 -L 2056.261848 2494.2409 -L 2051.789712 2494.239112 -L 2053.579997 2490.662119 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_521"> - <path d="M 1846.612986 2398.975162 -Q 1808.233768 2490.731484 1770.285975 2581.456364 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1773.674587 2578.537921 -L 1770.285975 2581.456364 -L 1769.984387 2576.994409 -L 1773.674587 2578.537921 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_522"> - <path d="M 1914.022023 1002.256543 -Q 2244.989547 1319.983666 2575.150534 1636.936517 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2573.650037 1632.723619 -L 2575.150534 1636.936517 -L 2570.879918 1635.609176 -L 2573.650037 1632.723619 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_523"> - <path d="M 1901.534445 990.251879 -Q 1570.864447 671.927653 1240.99991 354.378816 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1242.494561 358.593792 -L 1240.99991 354.378816 -L 1245.268681 355.712081 -L 1242.494561 358.593792 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_524"> - <path d="M 2243.377537 1181.986659 -Q 2382.682724 1511.757823 2521.552845 1840.499076 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2521.83867 1836.036083 -L 2521.552845 1840.499076 -L 2518.153946 1837.592621 -L 2521.83867 1836.036083 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_525"> - <path d="M 2236.658986 1166.023723 -Q 2098.246407 835.952386 1960.26619 506.912098 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1959.968657 511.374326 -L 1960.26619 506.912098 -L 1963.657453 509.827461 -L 1959.968657 511.374326 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_526"> - <path d="M 2244.551867 1181.471277 -Q 2383.276906 1511.497053 2521.568704 1840.492148 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2521.862425 1836.029668 -L 2521.568704 1840.492148 -L 2518.174953 1837.579683 -L 2521.862425 1836.029668 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_527"> - <path d="M 2237.833307 1165.508345 -Q 2098.840585 835.691617 1960.282049 506.905172 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1959.992415 511.367919 -L 1960.282049 506.905172 -L 1963.678466 509.814528 -L 1959.992415 511.367919 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_528"> - <path d="M 2198.888264 1201.311579 -Q 2360.174722 1521.540709 2520.95826 1840.771305 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2520.945186 1836.299188 -L 2520.95826 1840.771305 -L 2517.372722 1838.098494 -L 2520.945186 1836.299188 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_529"> - <path d="M 2192.184195 1185.385041 -Q 2075.738747 845.73563 1959.655889 507.143824 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1959.061227 511.576248 -L 1959.655889 507.143824 -L 1962.84503 510.279008 -L 1959.061227 511.576248 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_530"> - <path d="M 1887.586703 772.725571 -Q 1570.527227 584.253661 1254.428807 396.353039 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1256.845238 400.116131 -L 1254.428807 396.353039 -L 1258.889139 396.67775 -L 1256.845238 400.116131 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_531"> - <path d="M 1902.502933 781.531265 -Q 2220.712331 968.085959 2537.957228 1154.075201 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2535.518035 1150.326824 -L 2537.957228 1154.075201 -L 2533.49501 1153.77753 -L 2535.518035 1150.326824 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_532"> - <path d="M 1973.100895 2478.125504 -Q 2017.11925 2447.864217 2060.216286 2418.236309 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 2055.787048 2418.854249 -L 2060.216286 2418.236309 -L 2058.053096 2422.150464 -L 2055.787048 2418.854249 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="patch_533"> - <path d="M 1959.140628 2488.357308 -Q 1916.764225 2521.42903 1875.269213 2553.81289 -" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> - <path d="M 1879.65305 2552.928602 -L 1875.269213 2553.81289 -L 1877.192085 2549.775247 -L 1879.65305 2552.928602 -z -" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> - </g> - <g id="PathCollection_1"> - <defs> - <path id="C0_0_c30399ca38" d="M 0 8.660254 -C 2.296726 8.660254 4.499694 7.747755 6.123724 6.123724 -C 7.747755 4.499694 8.660254 2.296726 8.660254 -0 -C 8.660254 -2.296726 7.747755 -4.499694 6.123724 -6.123724 -C 4.499694 -7.747755 2.296726 -8.660254 0 -8.660254 -C -2.296726 -8.660254 -4.499694 -7.747755 -6.123724 -6.123724 -C -7.747755 -4.499694 -8.660254 -2.296726 -8.660254 0 -C -8.660254 2.296726 -7.747755 4.499694 -6.123724 6.123724 -C -4.499694 7.747755 -2.296726 8.660254 0 8.660254 -z -"/> - </defs> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1530.678918" y="1631.792878" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2613.36416" y="1360.358407" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="445.670971" y="1903.315856" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1669.766711" y="2125.445346" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2525.357985" y="1849.506819" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="815.164122" y="2403.406138" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="738.130558" y="876.039535" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="303.80639" y="1332.603157" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1151.77399" y="399.844362" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2159.464204" y="1014.604531" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2470.510004" y="801.448447" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1501.830363" y="2500.088373" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2068.273834" y="2412.696989" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="936.298194" y="2583.426813" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1496.984786" y="2454.272065" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1317.793013" y="2290.501329" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="567.630674" y="2170.746058" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1497.909199" y="2497.155035" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1498.699827" y="2492.733707" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1973.568919" y="1388.846315" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1874.121555" y="364.470098" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1803.259689" y="1403.890804" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1540.071383" y="395.275299" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1411.888969" y="1670.880106" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="266.507411" y="1748.267267" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2558.475344" y="1593.897933" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2131.158505" y="2344.87922" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2207.375059" y="2295.383428" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2388.077492" y="950.881881" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2360.611023" y="953.479623" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1710.275096" y="1350.46847" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1349.150702" y="291.181692" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1871.741202" y="1345.292152" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1907.778146" y="996.252473" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2582.204459" y="1643.708249" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1233.957818" y="347.599645" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2246.637048" y="1522.46304" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2630.082645" y="1522.285711" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1966.449309" y="2276.138156" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1338.107118" y="464.965124" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1055.558443" y="375.492107" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1621.205523" y="424.487036" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="902.403916" y="2015.127504" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="631.454807" y="2246.231182" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2240.951689" y="2080.873093" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2557.93033" y="1865.711694" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2255.248429" y="955.343949" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1269.116853" y="1733.309363" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="474.545483" y="1049.605766" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="685.946265" y="2217.821204" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1973.568929" y="1388.846342" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1669.948393" y="378.351113" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1799.427583" y="351.018531" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2190.274415" y="1392.000236" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2068.724443" y="442.804731" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2319.30631" y="2340.485641" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2037.311266" y="778.942011" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2265.44184" y="494.795209" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="568.912511" y="2009.023843" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="819.652406" y="2337.819147" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="300.885499" y="1691.411673" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1297.5456" y="1412.388178" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1776.797295" y="485.91629" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1272.643011" y="1729.923139" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="862.492271" y="1385.017683" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="633.595511" y="2330.168404" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1090.173884" y="438.745241" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1418.398015" y="493.336167" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1832.388945" y="441.030872" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1028.384575" y="300.074011" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="536.601629" y="1846.357947" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="357.731905" y="1388.474866" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2271.521088" y="1346.378306" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2348.606811" y="2007.871832" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2200.555593" y="684.390555" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1564.95864" y="864.972344" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2504.923995" y="1273.416146" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="626.166825" y="455.582127" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="427.654506" y="1487.864052" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="401.400524" y="880.785002" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="400.831624" y="2096.041678" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1362.959772" y="1453.963155" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1156.134982" y="2630.082645" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1571.412368" y="278.419695" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1065.965681" y="1679.353085" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="255.329155" y="1275.883573" style="fill: #ffa500; stroke: #ffa500"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2235.946531" y="1816.082698" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2473.786841" y="1911.693725" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1272.541827" y="1729.788215" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="472.131945" y="1450.972347" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="283.692752" y="1447.380997" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1414.525954" y="1513.453909" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2198.126797" y="597.410604" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="631.607863" y="2427.949165" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1516.003687" y="864.354061" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="536.240564" y="807.422448" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2496.770057" y="920.998224" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2226.261474" y="957.370064" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="801.336178" y="547.655961" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="369.75867" y="841.303169" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1229.796519" y="249.917355" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1222.935467" y="2158.691088" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="377.108199" y="1906.647873" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1643.725037" y="1103.170144" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2463.211099" y="1779.699168" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="821.260257" y="428.913634" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2293.610149" y="2111.366286" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2391.466782" y="1963.211862" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2211.229737" y="2269.969174" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="377.514414" y="1467.314425" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="272.507202" y="1563.911018" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="255.150385" y="1379.698169" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="409.903287" y="1706.040563" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="359.060084" y="2098.999338" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="473.189684" y="1075.758763" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="396.56944" y="1252.233011" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="484.049091" y="878.324232" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1477.664223" y="2276.271724" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1525.433407" y="1390.781669" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="984.59618" y="371.548987" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2157.109456" y="1440.313272" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2143.000957" y="2448.181625" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2173.321852" y="431.564451" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1481.103215" y="2316.52599" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1501.820602" y="2499.956539" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="875.343535" y="903.095685" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1499.066609" y="307.658172" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="249.917355" y="1496.158981" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1028.579216" y="1121.998233" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1610.818264" y="339.095226" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="502.949367" y="1917.095569" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="439.339313" y="2016.873237" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="496.120549" y="1648.669795" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="389.637106" y="1553.020255" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1185.632167" y="2356.164333" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1883.987137" y="2478.160833" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="487.43398" y="2236.024133" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2084.509678" y="2007.960417" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2543.166467" y="2000.868122" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1185.479561" y="1699.9671" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="303.918212" y="988.44698" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2199.941226" y="1528.354195" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2333.610285" y="644.147515" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1482.861071" y="2317.107804" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1020.55295" y="2206.405545" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="408.976478" y="1808.596515" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1631.382568" y="2606.621426" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1489.344035" y="2392.713831" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1750.930741" y="1140.029763" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="976.636132" y="431.971092" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1281.409053" y="558.280027" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="823.066439" y="621.666054" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1669.16875" y="251.32617" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1490.333164" y="2399.800403" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1639.408978" y="1616.132997" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2280.364275" y="752.104675" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="999.736022" y="2481.573598" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="424.496108" y="1609.061205" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="346.809943" y="1126.926999" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1641.00172" y="1616.274727" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="519.647605" y="2054.078304" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1480.979118" y="2325.732036" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1484.592306" y="2362.404282" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="312.783995" y="1869.698761" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2360.012578" y="1514.988366" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1477.159305" y="2316.73984" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2216.559065" y="2260.244816" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1432.835932" y="464.199168" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1432.0008" y="275.751255" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="624.43994" y="588.938916" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="579.256202" y="543.875604" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="743.151025" y="701.301979" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="771.27976" y="747.193459" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="292.4705" y="1190.060285" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="332.927578" y="1199.267559" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="804.173513" y="2529.152763" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="826.726541" y="2523.375653" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1613.835021" y="2315.10885" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2401.516777" y="2113.098931" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="606.272822" y="1290.251221" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="344.813322" y="1249.192239" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1458.097594" y="1268.443631" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2571.458327" y="1288.107255" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="564.261176" y="1026.711007" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="592.083255" y="726.176451" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2258.420302" y="1442.316684" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2582.623216" y="1725.552972" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2480.104998" y="1093.065913" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="519.557557" y="1008.360315" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1172.758417" y="697.888391" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1952.283258" y="440.521759" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="392.586215" y="952.97854" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1968.341521" y="1389.290738" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="422.090406" y="1089.914646" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="259.35749" y="1633.978737" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="913.998131" y="677.077427" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="327.058377" y="1044.116551" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2252.164489" y="1844.083788" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1709.369585" y="1351.083296" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1858.293647" y="2409.479124" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2065.008406" y="2498.618549" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1766.511701" y="2590.47983" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2238.784833" y="1174.54612" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1956.485348" y="497.895955" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1895.854377" y="775.7582" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1246.025321" y="391.357695" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2546.391152" y="1159.019706" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1497.901023" y="2497.093457" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1522.118907" y="1426.791859" style="fill: #0000ff; stroke: #0000ff"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2459.368376" y="1699.234334" style="fill: #ffa500; stroke: #ffa500"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1494.129268" y="2431.825409" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1523.019929" y="1427.344905" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2204.022436" y="1130.547394" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2482.911893" y="1008.694768" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1619.457991" y="1754.658182" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2604.343665" y="1179.831631" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1640.114389" y="1617.174491" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2308.267125" y="1940.713441" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2538.866408" y="1763.037498" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2389.804675" y="2239.677527" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="644.747792" y="1932.593337" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="553.334063" y="2283.665989" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="317.931297" y="1798.416788" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="949.096466" y="641.802455" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1304.671866" y="316.498369" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="459.950371" y="721.016225" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1724.114601" y="2293.043362" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1803.840289" y="2464.14637" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="842.863386" y="751.350251" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="901.683275" y="594.75146" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="641.791155" y="696.460129" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1884.502601" y="623.967375" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2000.756354" y="380.539761" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1973.568921" y="1388.846321" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1647.176485" y="576.299307" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="889.647941" y="738.840684" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="701.908481" y="460.449345" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1363.657787" y="1454.290611" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1270.19814" y="2180.877012" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2218.622161" y="2387.877404" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="321.261804" y="1975.783061" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1280.697832" y="1097.461342" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1425.235119" y="339.358" style="fill: #ffa500; stroke: #ffa500"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1126.103502" y="294.490911" style="fill: #ffa500; stroke: #ffa500"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1732.487139" y="312.160909" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1516.844623" y="864.334355" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="728.746952" y="867.458518" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="808.85496" y="940.799092" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2298.637409" y="2114.321828" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1805.283901" y="2226.926354" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1956.940281" y="2404.579264" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1980.281113" y="2556.772158" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="913.074489" y="587.009725" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="803.553314" y="380.123934" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1950.433442" y="2375.164934" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1776.068409" y="2530.553442" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2138.118637" y="2240.041594" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1506.037135" y="2504.560309" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2157.109455" y="1440.313272" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1503.770538" y="2508.610806" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1503.770601" y="2508.608412" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="557.322837" y="1893.332859" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1504.233855" y="2494.760841" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1483.732913" y="2348.28454" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1500.556154" y="2486.333915" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1750.076737" y="1141.137771" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="374.192759" y="1611.854715" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1917.783169" y="2214.06997" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1413.006088" y="1670.897702" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1433.20231" y="451.094804" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1614.969492" y="2319.537472" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1554.907043" y="1076.428455" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2101.600262" y="520.161699" style="fill: #ffa500; stroke: #ffa500"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1539.152709" y="1706.399655" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="505.746497" y="2120.64277" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="482.552608" y="993.21521" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2504.622795" y="1412.725472" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1172.758397" y="697.888344" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="914.015982" y="677.104699" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1705.383053" y="1352.508103" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1852.467116" y="2397.739391" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1874.093645" y="1344.481127" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2257.790643" y="1506.194567" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1503.690174" y="2490.025095" style="fill: #008000; stroke: #008000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1669.766711" y="2125.445346" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1269.107446" y="1733.315252" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="728.582516" y="867.306649" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1643.725037" y="1103.170144" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1506.653189" y="2499.412999" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1489.50949" y="2397.360085" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1028.579216" y="1121.998233" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1498.699268" y="2492.732831" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1020.55061" y="2206.408811" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1483.164188" y="2336.657682" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1483.917681" y="2362.979031" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1479.473466" y="2315.379861" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1497.829007" y="2501.863504" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1642.375439" y="1617.457679" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1639.784122" y="1617.004225" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="498.765089" y="634.762167" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2349.154271" y="559.483795" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1488.044819" y="2382.722239" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1968.470638" y="1389.426791" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1968.149032" y="1389.258279" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="742.252684" y="715.089298" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="777.356071" y="755.299019" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="788.088437" y="756.081575" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="979.216548" y="2238.093176" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1613.837221" y="2315.115274" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1613.83501" y="2315.108816" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2222.424038" y="1032.838362" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2393.794593" y="927.278189" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1538.431268" y="1703.871892" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1539.227246" y="1703.55683" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1538.35575" y="1703.685997" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1538.853741" y="1703.386383" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="938.017503" y="714.140827" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1705.38331" y="1352.510293" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1709.370431" y="1351.086965" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1875.376135" y="1343.850164" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1873.998178" y="1344.516286" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1871.534148" y="1345.356734" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1907.777994" y="996.252612" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2560.909179" y="1520.851867" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1895.854716" y="775.75763" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1504.418557" y="2494.220511" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1839.072218" y="1376.587202" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1838.780635" y="1375.680036" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1929.955473" y="2216.99783" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1732.715101" y="2300.042612" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2492.636163" y="2098.549281" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="972.725207" y="2503.116015" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="727.593614" y="2333.941552" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2074.510796" y="575.424029" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1528.956744" y="1631.706595" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1529.312023" y="1631.567717" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1271.114357" y="1731.590739" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1666.386076" y="463.575087" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2195.10754" y="1391.415644" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2195.107539" y="1391.415643" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2194.06922" y="1391.53698" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2190.100035" y="1392.031395" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2192.837622" y="1391.682416" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1298.254457" y="1411.592354" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1271.024967" y="1731.652831" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="606.195335" y="1824.639601" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1564.95864" y="864.972344" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2276.348309" y="1345.86728" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2271.521354" y="1346.378228" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2264.71144" y="1347.50299" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2276.292763" y="1345.878144" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2276.373703" y="1345.862401" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="403.819477" y="1488.351263" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1271.188635" y="1731.538425" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2258.416127" y="948.242095" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2284.829064" y="924.216539" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="775.007708" y="909.777151" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="864.295464" y="639.892051" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1641.374377" y="1106.411568" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1641.37725" y="1106.409547" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1641.394446" y="1106.393329" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1644.24621" y="1102.383839" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2208.856737" y="977.803528" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2115.208663" y="1040.030807" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2322.945294" y="900.381022" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1526.177938" y="1391.960519" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1474.844872" y="2282.385792" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1505.790641" y="2504.072955" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1500.310823" y="2505.279162" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1478.501912" y="2300.19966" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1494.062732" y="2431.133519" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="875.343087" y="903.095302" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1499.365638" y="2475.555802" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1482.143844" y="2335.401977" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1485.034899" y="2366.875888" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1504.530488" y="2493.961502" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1185.630445" y="2356.178262" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2298.950363" y="2200.11181" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1496.361962" y="2449.156109" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1479.06375" y="2319.937308" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2199.968793" y="1528.35686" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2199.949991" y="1528.355044" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1475.296526" y="2273.688126" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1476.504888" y="2276.699278" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1487.696518" y="2364.221131" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1340.022522" y="1042.616143" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2376.898981" y="751.452949" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1750.076922" y="1141.137556" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1750.077705" y="1141.13662" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1247.781589" y="442.352051" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1490.765969" y="2404.146571" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1500.281636" y="2505.456567" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="414.37001" y="1609.605881" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1968.258996" y="1389.287226" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1506.65464" y="2499.448795" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="420.565792" y="1331.036451" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2595.408792" y="1519.342847" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2490.306385" y="1521.196113" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1460.584734" y="2096.520853" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2424.037499" y="1887.91696" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="496.980027" y="2307.52921" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1940.144602" y="2240.11407" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1487.709408" y="2365.731787" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1479.57478" y="2310.203416" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1499.950948" y="2488.375368" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2015.196373" y="2207.118176" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2110.873033" y="2187.270528" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2151.149143" y="2223.489193" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1973.742476" y="1388.589512" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1968.341206" y="1389.22876" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="680.384154" y="643.647268" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="822.108222" y="780.497285" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="710.937124" y="681.382925" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="745.318871" y="726.94659" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="807.687213" y="771.470362" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="733.785436" y="705.616846" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="760.820914" y="722.597471" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1480.785315" y="2445.631063" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="895.705523" y="2481.52566" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1614.969492" y="2319.537472" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="998.989412" y="2225.530901" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="953.976119" y="2312.848368" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1232.112704" y="955.279485" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2118.313745" y="660.369507" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1457.708452" y="1268.751892" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1324.69639" y="1377.848476" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="695.734739" y="2438.542697" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1954.362254" y="316.275297" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1709.373659" y="1351.100613" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1849.955261" y="2390.984512" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1907.772807" y="996.257327" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2240.008563" y="1174.01143" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2241.196923" y="1173.489891" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2194.992853" y="1193.577365" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1895.031318" y="777.150926" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1965.966749" y="2483.030014" style="fill: #ffff00; stroke: #ffff00"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="1867.560087" y="2559.829306" style="fill: #ff0000; stroke: #ff0000"/> - </g> - <g clip-path="url(#pcd1a210b40)"> - <use xlink:href="#C0_0_c30399ca38" x="2102.3715" y="2357.549376" style="fill: #ffff00; stroke: #ffff00"/> - </g> - </g> - <g id="text_1"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 0 --> - <g transform="translate(1526.861418 1635.104128) scale(0.12 -0.12)"> - <defs> - <path id="DejaVuSans-30" d="M 2034 4250 -Q 1547 4250 1301 3770 -Q 1056 3291 1056 2328 -Q 1056 1369 1301 889 -Q 1547 409 2034 409 -Q 2525 409 2770 889 -Q 3016 1369 3016 2328 -Q 3016 3291 2770 3770 -Q 2525 4250 2034 4250 -z -M 2034 4750 -Q 2819 4750 3233 4129 -Q 3647 3509 3647 2328 -Q 3647 1150 3233 529 -Q 2819 -91 2034 -91 -Q 1250 -91 836 529 -Q 422 1150 422 2328 -Q 422 3509 836 4129 -Q 1250 4750 2034 4750 -z -" transform="scale(0.015625)"/> - </defs> - <use xlink:href="#DejaVuSans-30"/> - </g> - </g> - </g> - <g id="text_2"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 1 --> - <g transform="translate(2609.54666 1363.669657) scale(0.12 -0.12)"> - <defs> - <path id="DejaVuSans-31" d="M 794 531 -L 1825 531 -L 1825 4091 -L 703 3866 -L 703 4441 -L 1819 4666 -L 2450 4666 -L 2450 531 -L 3481 531 -L 3481 0 -L 794 0 -L 794 531 -z -" transform="scale(0.015625)"/> - </defs> - <use xlink:href="#DejaVuSans-31"/> - </g> - </g> - </g> - <g id="text_3"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 2 --> - <g transform="translate(441.853471 1906.627106) scale(0.12 -0.12)"> - <defs> - <path id="DejaVuSans-32" d="M 1228 531 -L 3431 531 -L 3431 0 -L 469 0 -L 469 531 -Q 828 903 1448 1529 -Q 2069 2156 2228 2338 -Q 2531 2678 2651 2914 -Q 2772 3150 2772 3378 -Q 2772 3750 2511 3984 -Q 2250 4219 1831 4219 -Q 1534 4219 1204 4116 -Q 875 4013 500 3803 -L 500 4441 -Q 881 4594 1212 4672 -Q 1544 4750 1819 4750 -Q 2544 4750 2975 4387 -Q 3406 4025 3406 3419 -Q 3406 3131 3298 2873 -Q 3191 2616 2906 2266 -Q 2828 2175 2409 1742 -Q 1991 1309 1228 531 -z -" transform="scale(0.015625)"/> - </defs> - <use xlink:href="#DejaVuSans-32"/> - </g> - </g> - </g> - <g id="text_4"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 3 --> - <g transform="translate(1665.949211 2128.756596) scale(0.12 -0.12)"> - <defs> - <path id="DejaVuSans-33" d="M 2597 2516 -Q 3050 2419 3304 2112 -Q 3559 1806 3559 1356 -Q 3559 666 3084 287 -Q 2609 -91 1734 -91 -Q 1441 -91 1130 -33 -Q 819 25 488 141 -L 488 750 -Q 750 597 1062 519 -Q 1375 441 1716 441 -Q 2309 441 2620 675 -Q 2931 909 2931 1356 -Q 2931 1769 2642 2001 -Q 2353 2234 1838 2234 -L 1294 2234 -L 1294 2753 -L 1863 2753 -Q 2328 2753 2575 2939 -Q 2822 3125 2822 3475 -Q 2822 3834 2567 4026 -Q 2313 4219 1838 4219 -Q 1578 4219 1281 4162 -Q 984 4106 628 3988 -L 628 4550 -Q 988 4650 1302 4700 -Q 1616 4750 1894 4750 -Q 2613 4750 3031 4423 -Q 3450 4097 3450 3541 -Q 3450 3153 3228 2886 -Q 3006 2619 2597 2516 -z -" transform="scale(0.015625)"/> - </defs> - <use xlink:href="#DejaVuSans-33"/> - </g> - </g> - </g> - <g id="text_5"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 4 --> - <g transform="translate(2521.540485 1852.818069) scale(0.12 -0.12)"> - <defs> - <path id="DejaVuSans-34" d="M 2419 4116 -L 825 1625 -L 2419 1625 -L 2419 4116 -z -M 2253 4666 -L 3047 4666 -L 3047 1625 -L 3713 1625 -L 3713 1100 -L 3047 1100 -L 3047 0 -L 2419 0 -L 2419 1100 -L 313 1100 -L 313 1709 -L 2253 4666 -z -" transform="scale(0.015625)"/> - </defs> - <use xlink:href="#DejaVuSans-34"/> - </g> - </g> - </g> - <g id="text_6"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 5 --> - <g transform="translate(811.346622 2406.717388) scale(0.12 -0.12)"> - <defs> - <path id="DejaVuSans-35" d="M 691 4666 -L 3169 4666 -L 3169 4134 -L 1269 4134 -L 1269 2991 -Q 1406 3038 1543 3061 -Q 1681 3084 1819 3084 -Q 2600 3084 3056 2656 -Q 3513 2228 3513 1497 -Q 3513 744 3044 326 -Q 2575 -91 1722 -91 -Q 1428 -91 1123 -41 -Q 819 9 494 109 -L 494 744 -Q 775 591 1075 516 -Q 1375 441 1709 441 -Q 2250 441 2565 725 -Q 2881 1009 2881 1497 -Q 2881 1984 2565 2268 -Q 2250 2553 1709 2553 -Q 1456 2553 1204 2497 -Q 953 2441 691 2322 -L 691 4666 -z -" transform="scale(0.015625)"/> - </defs> - <use xlink:href="#DejaVuSans-35"/> - </g> - </g> - </g> - <g id="text_7"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 6 --> - <g transform="translate(734.313058 879.350785) scale(0.12 -0.12)"> - <defs> - <path id="DejaVuSans-36" d="M 2113 2584 -Q 1688 2584 1439 2293 -Q 1191 2003 1191 1497 -Q 1191 994 1439 701 -Q 1688 409 2113 409 -Q 2538 409 2786 701 -Q 3034 994 3034 1497 -Q 3034 2003 2786 2293 -Q 2538 2584 2113 2584 -z -M 3366 4563 -L 3366 3988 -Q 3128 4100 2886 4159 -Q 2644 4219 2406 4219 -Q 1781 4219 1451 3797 -Q 1122 3375 1075 2522 -Q 1259 2794 1537 2939 -Q 1816 3084 2150 3084 -Q 2853 3084 3261 2657 -Q 3669 2231 3669 1497 -Q 3669 778 3244 343 -Q 2819 -91 2113 -91 -Q 1303 -91 875 529 -Q 447 1150 447 2328 -Q 447 3434 972 4092 -Q 1497 4750 2381 4750 -Q 2619 4750 2861 4703 -Q 3103 4656 3366 4563 -z -" transform="scale(0.015625)"/> - </defs> - <use xlink:href="#DejaVuSans-36"/> - </g> - </g> - </g> - <g id="text_8"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 7 --> - <g transform="translate(299.98889 1335.914407) scale(0.12 -0.12)"> - <defs> - <path id="DejaVuSans-37" d="M 525 4666 -L 3525 4666 -L 3525 4397 -L 1831 0 -L 1172 0 -L 2766 4134 -L 525 4134 -L 525 4666 -z -" transform="scale(0.015625)"/> - </defs> - <use xlink:href="#DejaVuSans-37"/> - </g> - </g> - </g> - <g id="text_9"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 8 --> - <g transform="translate(1147.95649 403.155612) scale(0.12 -0.12)"> - <defs> - <path id="DejaVuSans-38" d="M 2034 2216 -Q 1584 2216 1326 1975 -Q 1069 1734 1069 1313 -Q 1069 891 1326 650 -Q 1584 409 2034 409 -Q 2484 409 2743 651 -Q 3003 894 3003 1313 -Q 3003 1734 2745 1975 -Q 2488 2216 2034 2216 -z -M 1403 2484 -Q 997 2584 770 2862 -Q 544 3141 544 3541 -Q 544 4100 942 4425 -Q 1341 4750 2034 4750 -Q 2731 4750 3128 4425 -Q 3525 4100 3525 3541 -Q 3525 3141 3298 2862 -Q 3072 2584 2669 2484 -Q 3125 2378 3379 2068 -Q 3634 1759 3634 1313 -Q 3634 634 3220 271 -Q 2806 -91 2034 -91 -Q 1263 -91 848 271 -Q 434 634 434 1313 -Q 434 1759 690 2068 -Q 947 2378 1403 2484 -z -M 1172 3481 -Q 1172 3119 1398 2916 -Q 1625 2713 2034 2713 -Q 2441 2713 2670 2916 -Q 2900 3119 2900 3481 -Q 2900 3844 2670 4047 -Q 2441 4250 2034 4250 -Q 1625 4250 1398 4047 -Q 1172 3844 1172 3481 -z -" transform="scale(0.015625)"/> - </defs> - <use xlink:href="#DejaVuSans-38"/> - </g> - </g> - </g> - <g id="text_10"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 9 --> - <g transform="translate(2155.646704 1017.915781) scale(0.12 -0.12)"> - <defs> - <path id="DejaVuSans-39" d="M 703 97 -L 703 672 -Q 941 559 1184 500 -Q 1428 441 1663 441 -Q 2288 441 2617 861 -Q 2947 1281 2994 2138 -Q 2813 1869 2534 1725 -Q 2256 1581 1919 1581 -Q 1219 1581 811 2004 -Q 403 2428 403 3163 -Q 403 3881 828 4315 -Q 1253 4750 1959 4750 -Q 2769 4750 3195 4129 -Q 3622 3509 3622 2328 -Q 3622 1225 3098 567 -Q 2575 -91 1691 -91 -Q 1453 -91 1209 -44 -Q 966 3 703 97 -z -M 1959 2075 -Q 2384 2075 2632 2365 -Q 2881 2656 2881 3163 -Q 2881 3666 2632 3958 -Q 2384 4250 1959 4250 -Q 1534 4250 1286 3958 -Q 1038 3666 1038 3163 -Q 1038 2656 1286 2365 -Q 1534 2075 1959 2075 -z -" transform="scale(0.015625)"/> - </defs> - <use xlink:href="#DejaVuSans-39"/> - </g> - </g> - </g> - <g id="text_11"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 10 --> - <g transform="translate(2462.875004 804.759697) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - </g> - </g> - </g> - <g id="text_12"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 11 --> - <g transform="translate(1494.195363 2503.399623) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - </g> - </g> - </g> - <g id="text_13"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 12 --> - <g transform="translate(2060.638834 2416.008239) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - </g> - </g> - </g> - <g id="text_14"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 13 --> - <g transform="translate(928.663194 2586.738063) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - </g> - </g> - </g> - <g id="text_15"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 14 --> - <g transform="translate(1489.349786 2457.583315) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - </g> - </g> - </g> - <g id="text_16"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 15 --> - <g transform="translate(1310.158013 2293.812579) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - </g> - </g> - </g> - <g id="text_17"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 16 --> - <g transform="translate(559.995674 2174.057308) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - </g> - </g> - </g> - <g id="text_18"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 17 --> - <g transform="translate(1490.274199 2500.466285) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - </g> - </g> - </g> - <g id="text_19"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 18 --> - <g transform="translate(1491.064827 2496.044957) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - </g> - </g> - </g> - <g id="text_20"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 19 --> - <g transform="translate(1965.933919 1392.157565) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - </g> - </g> - </g> - <g id="text_21"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 20 --> - <g transform="translate(1866.486555 367.781348) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - </g> - </g> - </g> - <g id="text_22"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 21 --> - <g transform="translate(1795.624689 1407.202054) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - </g> - </g> - </g> - <g id="text_23"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 22 --> - <g transform="translate(1532.436383 398.586549) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - </g> - </g> - </g> - <g id="text_24"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 23 --> - <g transform="translate(1404.253969 1674.191356) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - </g> - </g> - </g> - <g id="text_25"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 24 --> - <g transform="translate(258.872411 1751.578517) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - </g> - </g> - </g> - <g id="text_26"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 25 --> - <g transform="translate(2550.840344 1597.209183) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - </g> - </g> - </g> - <g id="text_27"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 26 --> - <g transform="translate(2123.523505 2348.19047) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - </g> - </g> - </g> - <g id="text_28"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 27 --> - <g transform="translate(2199.740059 2298.694678) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - </g> - </g> - </g> - <g id="text_29"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 28 --> - <g transform="translate(2380.442492 954.193131) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - </g> - </g> - </g> - <g id="text_30"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 29 --> - <g transform="translate(2352.976023 956.790873) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - </g> - </g> - </g> - <g id="text_31"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 30 --> - <g transform="translate(1702.640096 1353.77972) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - </g> - </g> - </g> - <g id="text_32"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 31 --> - <g transform="translate(1341.515702 294.492942) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - </g> - </g> - </g> - <g id="text_33"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 32 --> - <g transform="translate(1864.106202 1348.603402) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - </g> - </g> - </g> - <g id="text_34"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 33 --> - <g transform="translate(1900.143146 999.563723) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - </g> - </g> - </g> - <g id="text_35"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 34 --> - <g transform="translate(2574.569459 1647.019499) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - </g> - </g> - </g> - <g id="text_36"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 35 --> - <g transform="translate(1226.322818 350.910895) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - </g> - </g> - </g> - <g id="text_37"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 36 --> - <g transform="translate(2239.002048 1525.77429) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - </g> - </g> - </g> - <g id="text_38"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 37 --> - <g transform="translate(2622.447645 1525.596961) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - </g> - </g> - </g> - <g id="text_39"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 38 --> - <g transform="translate(1958.814309 2279.449406) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - </g> - </g> - </g> - <g id="text_40"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 39 --> - <g transform="translate(1330.472118 468.276374) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - </g> - </g> - </g> - <g id="text_41"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 40 --> - <g transform="translate(1047.923443 378.803357) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - </g> - </g> - </g> - <g id="text_42"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 41 --> - <g transform="translate(1613.570523 427.798286) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - </g> - </g> - </g> - <g id="text_43"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 42 --> - <g transform="translate(894.768916 2018.438754) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - </g> - </g> - </g> - <g id="text_44"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 43 --> - <g transform="translate(623.819807 2249.542432) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - </g> - </g> - </g> - <g id="text_45"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 44 --> - <g transform="translate(2233.316689 2084.184343) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - </g> - </g> - </g> - <g id="text_46"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 45 --> - <g transform="translate(2550.29533 1869.022944) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - </g> - </g> - </g> - <g id="text_47"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 46 --> - <g transform="translate(2247.613429 958.655199) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - </g> - </g> - </g> - <g id="text_48"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 47 --> - <g transform="translate(1261.481853 1736.620613) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - </g> - </g> - </g> - <g id="text_49"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 48 --> - <g transform="translate(466.910483 1052.917016) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - </g> - </g> - </g> - <g id="text_50"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 49 --> - <g transform="translate(678.311265 2221.132454) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - </g> - </g> - </g> - <g id="text_51"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 50 --> - <g transform="translate(1965.933929 1392.157592) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-35"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - </g> - </g> - </g> - <g id="text_52"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 51 --> - <g transform="translate(1662.313393 381.662363) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-35"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - </g> - </g> - </g> - <g id="text_53"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 52 --> - <g transform="translate(1791.792583 354.329781) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-35"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - </g> - </g> - </g> - <g id="text_54"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 53 --> - <g transform="translate(2182.639415 1395.311486) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-35"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - </g> - </g> - </g> - <g id="text_55"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 54 --> - <g transform="translate(2061.089443 446.115981) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-35"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - </g> - </g> - </g> - <g id="text_56"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 55 --> - <g transform="translate(2311.67131 2343.796891) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-35"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - </g> - </g> - </g> - <g id="text_57"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 56 --> - <g transform="translate(2029.676266 782.253261) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-35"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - </g> - </g> - </g> - <g id="text_58"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 57 --> - <g transform="translate(2257.80684 498.106459) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-35"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - </g> - </g> - </g> - <g id="text_59"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 58 --> - <g transform="translate(561.277511 2012.335093) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-35"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - </g> - </g> - </g> - <g id="text_60"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 59 --> - <g transform="translate(812.017406 2341.130397) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-35"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - </g> - </g> - </g> - <g id="text_61"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 60 --> - <g transform="translate(293.250499 1694.722923) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-36"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - </g> - </g> - </g> - <g id="text_62"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 61 --> - <g transform="translate(1289.9106 1415.699428) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-36"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - </g> - </g> - </g> - <g id="text_63"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 62 --> - <g transform="translate(1769.162295 489.22754) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-36"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - </g> - </g> - </g> - <g id="text_64"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 63 --> - <g transform="translate(1265.008011 1733.234389) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-36"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - </g> - </g> - </g> - <g id="text_65"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 64 --> - <g transform="translate(854.857271 1388.328933) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-36"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - </g> - </g> - </g> - <g id="text_66"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 65 --> - <g transform="translate(625.960511 2333.479654) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-36"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - </g> - </g> - </g> - <g id="text_67"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 66 --> - <g transform="translate(1082.538884 442.056491) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-36"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - </g> - </g> - </g> - <g id="text_68"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 67 --> - <g transform="translate(1410.763015 496.647417) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-36"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - </g> - </g> - </g> - <g id="text_69"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 68 --> - <g transform="translate(1824.753945 444.342122) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-36"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - </g> - </g> - </g> - <g id="text_70"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 69 --> - <g transform="translate(1020.749575 303.385261) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-36"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - </g> - </g> - </g> - <g id="text_71"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 70 --> - <g transform="translate(528.966629 1849.669197) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-37"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - </g> - </g> - </g> - <g id="text_72"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 71 --> - <g transform="translate(350.096905 1391.786116) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-37"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - </g> - </g> - </g> - <g id="text_73"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 72 --> - <g transform="translate(2263.886088 1349.689556) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-37"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - </g> - </g> - </g> - <g id="text_74"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 73 --> - <g transform="translate(2340.971811 2011.183082) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-37"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - </g> - </g> - </g> - <g id="text_75"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 74 --> - <g transform="translate(2192.920593 687.701805) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-37"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - </g> - </g> - </g> - <g id="text_76"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 75 --> - <g transform="translate(1557.32364 868.283594) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-37"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - </g> - </g> - </g> - <g id="text_77"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 76 --> - <g transform="translate(2497.288995 1276.727396) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-37"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - </g> - </g> - </g> - <g id="text_78"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 77 --> - <g transform="translate(618.531825 458.893377) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-37"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - </g> - </g> - </g> - <g id="text_79"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 78 --> - <g transform="translate(420.019506 1491.175302) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-37"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - </g> - </g> - </g> - <g id="text_80"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 79 --> - <g transform="translate(393.765524 884.096252) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-37"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - </g> - </g> - </g> - <g id="text_81"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 80 --> - <g transform="translate(393.196624 2099.352928) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-38"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - </g> - </g> - </g> - <g id="text_82"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 81 --> - <g transform="translate(1355.324772 1457.274405) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-38"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - </g> - </g> - </g> - <g id="text_83"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 82 --> - <g transform="translate(1148.499982 2633.393895) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-38"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - </g> - </g> - </g> - <g id="text_84"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 83 --> - <g transform="translate(1563.777368 281.730945) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-38"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - </g> - </g> - </g> - <g id="text_85"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 84 --> - <g transform="translate(1058.330681 1682.664335) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-38"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - </g> - </g> - </g> - <g id="text_86"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 85 --> - <g transform="translate(247.694155 1279.194823) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-38"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - </g> - </g> - </g> - <g id="text_87"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 86 --> - <g transform="translate(2228.311531 1819.393948) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-38"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - </g> - </g> - </g> - <g id="text_88"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 87 --> - <g transform="translate(2466.151841 1915.004975) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-38"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - </g> - </g> - </g> - <g id="text_89"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 88 --> - <g transform="translate(1264.906827 1733.099465) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-38"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - </g> - </g> - </g> - <g id="text_90"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 89 --> - <g transform="translate(464.496945 1454.283597) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-38"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - </g> - </g> - </g> - <g id="text_91"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 90 --> - <g transform="translate(276.057752 1450.692247) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-39"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - </g> - </g> - </g> - <g id="text_92"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 91 --> - <g transform="translate(1406.890954 1516.765159) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-39"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - </g> - </g> - </g> - <g id="text_93"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 92 --> - <g transform="translate(2190.491797 600.721854) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-39"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - </g> - </g> - </g> - <g id="text_94"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 93 --> - <g transform="translate(623.972863 2431.260415) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-39"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - </g> - </g> - </g> - <g id="text_95"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 94 --> - <g transform="translate(1508.368687 867.665311) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-39"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - </g> - </g> - </g> - <g id="text_96"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 95 --> - <g transform="translate(528.605564 810.733698) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-39"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - </g> - </g> - </g> - <g id="text_97"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 96 --> - <g transform="translate(2489.135057 924.309474) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-39"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - </g> - </g> - </g> - <g id="text_98"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 97 --> - <g transform="translate(2218.626474 960.681314) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-39"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - </g> - </g> - </g> - <g id="text_99"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 98 --> - <g transform="translate(793.701178 550.967211) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-39"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - </g> - </g> - </g> - <g id="text_100"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 99 --> - <g transform="translate(362.12367 844.614419) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-39"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - </g> - </g> - </g> - <g id="text_101"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 100 --> - <g transform="translate(1218.344019 253.228605) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-30" x="127.246094"/> - </g> - </g> - </g> - <g id="text_102"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 101 --> - <g transform="translate(1211.482967 2162.002338) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-31" x="127.246094"/> - </g> - </g> - </g> - <g id="text_103"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 102 --> - <g transform="translate(365.655699 1909.959123) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-32" x="127.246094"/> - </g> - </g> - </g> - <g id="text_104"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 103 --> - <g transform="translate(1632.272537 1106.481394) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-33" x="127.246094"/> - </g> - </g> - </g> - <g id="text_105"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 104 --> - <g transform="translate(2451.758599 1783.010418) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-34" x="127.246094"/> - </g> - </g> - </g> - <g id="text_106"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 105 --> - <g transform="translate(809.807757 432.224884) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-35" x="127.246094"/> - </g> - </g> - </g> - <g id="text_107"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 106 --> - <g transform="translate(2282.157649 2114.677536) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-36" x="127.246094"/> - </g> - </g> - </g> - <g id="text_108"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 107 --> - <g transform="translate(2380.014282 1966.523112) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-37" x="127.246094"/> - </g> - </g> - </g> - <g id="text_109"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 108 --> - <g transform="translate(2199.777237 2273.280424) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-38" x="127.246094"/> - </g> - </g> - </g> - <g id="text_110"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 109 --> - <g transform="translate(366.061914 1470.625675) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-39" x="127.246094"/> - </g> - </g> - </g> - <g id="text_111"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 110 --> - <g transform="translate(261.054702 1567.222268) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-30" x="127.246094"/> - </g> - </g> - </g> - <g id="text_112"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 111 --> - <g transform="translate(243.697885 1383.009419) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-31" x="127.246094"/> - </g> - </g> - </g> - <g id="text_113"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 112 --> - <g transform="translate(398.450787 1709.351813) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-32" x="127.246094"/> - </g> - </g> - </g> - <g id="text_114"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 113 --> - <g transform="translate(347.607584 2102.310588) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-33" x="127.246094"/> - </g> - </g> - </g> - <g id="text_115"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 114 --> - <g transform="translate(461.737184 1079.070013) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-34" x="127.246094"/> - </g> - </g> - </g> - <g id="text_116"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 115 --> - <g transform="translate(385.11694 1255.544261) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-35" x="127.246094"/> - </g> - </g> - </g> - <g id="text_117"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 116 --> - <g transform="translate(472.596591 881.635482) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-36" x="127.246094"/> - </g> - </g> - </g> - <g id="text_118"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 117 --> - <g transform="translate(1466.211723 2279.582974) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-37" x="127.246094"/> - </g> - </g> - </g> - <g id="text_119"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 118 --> - <g transform="translate(1513.980907 1394.092919) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-38" x="127.246094"/> - </g> - </g> - </g> - <g id="text_120"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 119 --> - <g transform="translate(973.14368 374.860237) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-39" x="127.246094"/> - </g> - </g> - </g> - <g id="text_121"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 120 --> - <g transform="translate(2145.656956 1443.624522) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-30" x="127.246094"/> - </g> - </g> - </g> - <g id="text_122"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 121 --> - <g transform="translate(2131.548457 2451.492875) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-31" x="127.246094"/> - </g> - </g> - </g> - <g id="text_123"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 122 --> - <g transform="translate(2161.869352 434.875701) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-32" x="127.246094"/> - </g> - </g> - </g> - <g id="text_124"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 123 --> - <g transform="translate(1469.650715 2319.83724) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-33" x="127.246094"/> - </g> - </g> - </g> - <g id="text_125"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 124 --> - <g transform="translate(1490.368102 2503.267789) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-34" x="127.246094"/> - </g> - </g> - </g> - <g id="text_126"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 125 --> - <g transform="translate(863.891035 906.406935) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-35" x="127.246094"/> - </g> - </g> - </g> - <g id="text_127"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 126 --> - <g transform="translate(1487.614109 310.969422) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-36" x="127.246094"/> - </g> - </g> - </g> - <g id="text_128"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 127 --> - <g transform="translate(238.464855 1499.470231) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-37" x="127.246094"/> - </g> - </g> - </g> - <g id="text_129"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 128 --> - <g transform="translate(1017.126716 1125.309483) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-38" x="127.246094"/> - </g> - </g> - </g> - <g id="text_130"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 129 --> - <g transform="translate(1599.365764 342.406476) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-39" x="127.246094"/> - </g> - </g> - </g> - <g id="text_131"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 130 --> - <g transform="translate(491.496867 1920.406819) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-30" x="127.246094"/> - </g> - </g> - </g> - <g id="text_132"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 131 --> - <g transform="translate(427.886813 2020.184487) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-31" x="127.246094"/> - </g> - </g> - </g> - <g id="text_133"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 132 --> - <g transform="translate(484.668049 1651.981045) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-32" x="127.246094"/> - </g> - </g> - </g> - <g id="text_134"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 133 --> - <g transform="translate(378.184606 1556.331505) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-33" x="127.246094"/> - </g> - </g> - </g> - <g id="text_135"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 134 --> - <g transform="translate(1174.179667 2359.475583) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-34" x="127.246094"/> - </g> - </g> - </g> - <g id="text_136"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 135 --> - <g transform="translate(1872.534637 2481.472083) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-35" x="127.246094"/> - </g> - </g> - </g> - <g id="text_137"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 136 --> - <g transform="translate(475.98148 2239.335383) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-36" x="127.246094"/> - </g> - </g> - </g> - <g id="text_138"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 137 --> - <g transform="translate(2073.057178 2011.271667) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-37" x="127.246094"/> - </g> - </g> - </g> - <g id="text_139"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 138 --> - <g transform="translate(2531.713967 2004.179372) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-38" x="127.246094"/> - </g> - </g> - </g> - <g id="text_140"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 139 --> - <g transform="translate(1174.027061 1703.27835) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-39" x="127.246094"/> - </g> - </g> - </g> - <g id="text_141"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 140 --> - <g transform="translate(292.465712 991.75823) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - <use xlink:href="#DejaVuSans-30" x="127.246094"/> - </g> - </g> - </g> - <g id="text_142"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 141 --> - <g transform="translate(2188.488726 1531.665445) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - <use xlink:href="#DejaVuSans-31" x="127.246094"/> - </g> - </g> - </g> - <g id="text_143"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 142 --> - <g transform="translate(2322.157785 647.458765) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - <use xlink:href="#DejaVuSans-32" x="127.246094"/> - </g> - </g> - </g> - <g id="text_144"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 143 --> - <g transform="translate(1471.408571 2320.419054) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - <use xlink:href="#DejaVuSans-33" x="127.246094"/> - </g> - </g> - </g> - <g id="text_145"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 144 --> - <g transform="translate(1009.10045 2209.716795) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - <use xlink:href="#DejaVuSans-34" x="127.246094"/> - </g> - </g> - </g> - <g id="text_146"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 145 --> - <g transform="translate(397.523978 1811.907765) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - <use xlink:href="#DejaVuSans-35" x="127.246094"/> - </g> - </g> - </g> - <g id="text_147"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 146 --> - <g transform="translate(1619.930068 2609.932676) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - <use xlink:href="#DejaVuSans-36" x="127.246094"/> - </g> - </g> - </g> - <g id="text_148"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 147 --> - <g transform="translate(1477.891535 2396.025081) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - <use xlink:href="#DejaVuSans-37" x="127.246094"/> - </g> - </g> - </g> - <g id="text_149"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 148 --> - <g transform="translate(1739.478241 1143.341013) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - <use xlink:href="#DejaVuSans-38" x="127.246094"/> - </g> - </g> - </g> - <g id="text_150"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 149 --> - <g transform="translate(965.183632 435.282342) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - <use xlink:href="#DejaVuSans-39" x="127.246094"/> - </g> - </g> - </g> - <g id="text_151"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 150 --> - <g transform="translate(1269.956553 561.591277) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - <use xlink:href="#DejaVuSans-30" x="127.246094"/> - </g> - </g> - </g> - <g id="text_152"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 151 --> - <g transform="translate(811.613939 624.977304) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - <use xlink:href="#DejaVuSans-31" x="127.246094"/> - </g> - </g> - </g> - <g id="text_153"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 152 --> - <g transform="translate(1657.71625 254.63742) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - <use xlink:href="#DejaVuSans-32" x="127.246094"/> - </g> - </g> - </g> - <g id="text_154"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 153 --> - <g transform="translate(1478.880664 2403.111653) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - <use xlink:href="#DejaVuSans-33" x="127.246094"/> - </g> - </g> - </g> - <g id="text_155"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 154 --> - <g transform="translate(1627.956478 1619.444247) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - <use xlink:href="#DejaVuSans-34" x="127.246094"/> - </g> - </g> - </g> - <g id="text_156"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 155 --> - <g transform="translate(2268.911775 755.415925) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - <use xlink:href="#DejaVuSans-35" x="127.246094"/> - </g> - </g> - </g> - <g id="text_157"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 156 --> - <g transform="translate(988.283522 2484.884848) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - <use xlink:href="#DejaVuSans-36" x="127.246094"/> - </g> - </g> - </g> - <g id="text_158"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 157 --> - <g transform="translate(413.043608 1612.372455) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - <use xlink:href="#DejaVuSans-37" x="127.246094"/> - </g> - </g> - </g> - <g id="text_159"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 158 --> - <g transform="translate(335.357443 1130.238249) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - <use xlink:href="#DejaVuSans-38" x="127.246094"/> - </g> - </g> - </g> - <g id="text_160"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 159 --> - <g transform="translate(1629.54922 1619.585977) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - <use xlink:href="#DejaVuSans-39" x="127.246094"/> - </g> - </g> - </g> - <g id="text_161"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 160 --> - <g transform="translate(508.195105 2057.389554) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - <use xlink:href="#DejaVuSans-30" x="127.246094"/> - </g> - </g> - </g> - <g id="text_162"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 161 --> - <g transform="translate(1469.526618 2329.043286) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - <use xlink:href="#DejaVuSans-31" x="127.246094"/> - </g> - </g> - </g> - <g id="text_163"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 162 --> - <g transform="translate(1473.139806 2365.715532) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - <use xlink:href="#DejaVuSans-32" x="127.246094"/> - </g> - </g> - </g> - <g id="text_164"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 163 --> - <g transform="translate(301.331495 1873.010011) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - <use xlink:href="#DejaVuSans-33" x="127.246094"/> - </g> - </g> - </g> - <g id="text_165"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 164 --> - <g transform="translate(2348.560078 1518.299616) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - <use xlink:href="#DejaVuSans-34" x="127.246094"/> - </g> - </g> - </g> - <g id="text_166"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 165 --> - <g transform="translate(1465.706805 2320.05109) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - <use xlink:href="#DejaVuSans-35" x="127.246094"/> - </g> - </g> - </g> - <g id="text_167"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 166 --> - <g transform="translate(2205.106565 2263.556066) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - <use xlink:href="#DejaVuSans-36" x="127.246094"/> - </g> - </g> - </g> - <g id="text_168"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 167 --> - <g transform="translate(1421.383432 467.510418) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - <use xlink:href="#DejaVuSans-37" x="127.246094"/> - </g> - </g> - </g> - <g id="text_169"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 168 --> - <g transform="translate(1420.5483 279.062505) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - <use xlink:href="#DejaVuSans-38" x="127.246094"/> - </g> - </g> - </g> - <g id="text_170"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 169 --> - <g transform="translate(612.98744 592.250166) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - <use xlink:href="#DejaVuSans-39" x="127.246094"/> - </g> - </g> - </g> - <g id="text_171"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 170 --> - <g transform="translate(567.803702 547.186854) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - <use xlink:href="#DejaVuSans-30" x="127.246094"/> - </g> - </g> - </g> - <g id="text_172"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 171 --> - <g transform="translate(731.698525 704.613229) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - <use xlink:href="#DejaVuSans-31" x="127.246094"/> - </g> - </g> - </g> - <g id="text_173"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 172 --> - <g transform="translate(759.82726 750.504709) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - <use xlink:href="#DejaVuSans-32" x="127.246094"/> - </g> - </g> - </g> - <g id="text_174"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 173 --> - <g transform="translate(281.018 1193.371535) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - <use xlink:href="#DejaVuSans-33" x="127.246094"/> - </g> - </g> - </g> - <g id="text_175"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 174 --> - <g transform="translate(321.475078 1202.578809) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - <use xlink:href="#DejaVuSans-34" x="127.246094"/> - </g> - </g> - </g> - <g id="text_176"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 175 --> - <g transform="translate(792.721013 2532.464013) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - <use xlink:href="#DejaVuSans-35" x="127.246094"/> - </g> - </g> - </g> - <g id="text_177"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 176 --> - <g transform="translate(815.274041 2526.686903) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - <use xlink:href="#DejaVuSans-36" x="127.246094"/> - </g> - </g> - </g> - <g id="text_178"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 177 --> - <g transform="translate(1602.382521 2318.4201) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - <use xlink:href="#DejaVuSans-37" x="127.246094"/> - </g> - </g> - </g> - <g id="text_179"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 178 --> - <g transform="translate(2390.064277 2116.410181) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - <use xlink:href="#DejaVuSans-38" x="127.246094"/> - </g> - </g> - </g> - <g id="text_180"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 179 --> - <g transform="translate(594.820322 1293.562471) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - <use xlink:href="#DejaVuSans-39" x="127.246094"/> - </g> - </g> - </g> - <g id="text_181"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 180 --> - <g transform="translate(333.360822 1252.503489) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - <use xlink:href="#DejaVuSans-30" x="127.246094"/> - </g> - </g> - </g> - <g id="text_182"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 181 --> - <g transform="translate(1446.645094 1271.754881) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - <use xlink:href="#DejaVuSans-31" x="127.246094"/> - </g> - </g> - </g> - <g id="text_183"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 182 --> - <g transform="translate(2560.005827 1291.418505) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - <use xlink:href="#DejaVuSans-32" x="127.246094"/> - </g> - </g> - </g> - <g id="text_184"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 183 --> - <g transform="translate(552.808676 1030.022257) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - <use xlink:href="#DejaVuSans-33" x="127.246094"/> - </g> - </g> - </g> - <g id="text_185"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 184 --> - <g transform="translate(580.630755 729.487701) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - <use xlink:href="#DejaVuSans-34" x="127.246094"/> - </g> - </g> - </g> - <g id="text_186"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 185 --> - <g transform="translate(2246.967802 1445.627934) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - <use xlink:href="#DejaVuSans-35" x="127.246094"/> - </g> - </g> - </g> - <g id="text_187"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 186 --> - <g transform="translate(2571.170716 1728.864222) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - <use xlink:href="#DejaVuSans-36" x="127.246094"/> - </g> - </g> - </g> - <g id="text_188"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 187 --> - <g transform="translate(2468.652498 1096.377163) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - <use xlink:href="#DejaVuSans-37" x="127.246094"/> - </g> - </g> - </g> - <g id="text_189"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 188 --> - <g transform="translate(508.105057 1011.671565) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - <use xlink:href="#DejaVuSans-38" x="127.246094"/> - </g> - </g> - </g> - <g id="text_190"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 189 --> - <g transform="translate(1161.305917 701.199641) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - <use xlink:href="#DejaVuSans-39" x="127.246094"/> - </g> - </g> - </g> - <g id="text_191"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 190 --> - <g transform="translate(1940.830758 443.833009) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - <use xlink:href="#DejaVuSans-30" x="127.246094"/> - </g> - </g> - </g> - <g id="text_192"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 191 --> - <g transform="translate(381.133715 956.28979) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - <use xlink:href="#DejaVuSans-31" x="127.246094"/> - </g> - </g> - </g> - <g id="text_193"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 192 --> - <g transform="translate(1956.889021 1392.601988) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - <use xlink:href="#DejaVuSans-32" x="127.246094"/> - </g> - </g> - </g> - <g id="text_194"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 193 --> - <g transform="translate(410.637906 1093.225896) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - <use xlink:href="#DejaVuSans-33" x="127.246094"/> - </g> - </g> - </g> - <g id="text_195"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 194 --> - <g transform="translate(247.90499 1637.289987) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - <use xlink:href="#DejaVuSans-34" x="127.246094"/> - </g> - </g> - </g> - <g id="text_196"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 195 --> - <g transform="translate(902.545631 680.388677) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - <use xlink:href="#DejaVuSans-35" x="127.246094"/> - </g> - </g> - </g> - <g id="text_197"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 196 --> - <g transform="translate(315.605877 1047.427801) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - <use xlink:href="#DejaVuSans-36" x="127.246094"/> - </g> - </g> - </g> - <g id="text_198"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 197 --> - <g transform="translate(2240.711989 1847.395038) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - <use xlink:href="#DejaVuSans-37" x="127.246094"/> - </g> - </g> - </g> - <g id="text_199"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 198 --> - <g transform="translate(1697.917085 1354.394546) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - <use xlink:href="#DejaVuSans-38" x="127.246094"/> - </g> - </g> - </g> - <g id="text_200"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 199 --> - <g transform="translate(1846.841147 2412.790374) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-31"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - <use xlink:href="#DejaVuSans-39" x="127.246094"/> - </g> - </g> - </g> - <g id="text_201"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 200 --> - <g transform="translate(2053.555906 2501.929799) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-30" x="127.246094"/> - </g> - </g> - </g> - <g id="text_202"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 201 --> - <g transform="translate(1755.059201 2593.79108) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-31" x="127.246094"/> - </g> - </g> - </g> - <g id="text_203"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 202 --> - <g transform="translate(2227.332333 1177.85737) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-32" x="127.246094"/> - </g> - </g> - </g> - <g id="text_204"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 203 --> - <g transform="translate(1945.032848 501.207205) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-33" x="127.246094"/> - </g> - </g> - </g> - <g id="text_205"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 204 --> - <g transform="translate(1884.401877 779.06945) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-34" x="127.246094"/> - </g> - </g> - </g> - <g id="text_206"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 205 --> - <g transform="translate(1234.572821 394.668945) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-35" x="127.246094"/> - </g> - </g> - </g> - <g id="text_207"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 206 --> - <g transform="translate(2534.938652 1162.330956) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-36" x="127.246094"/> - </g> - </g> - </g> - <g id="text_208"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 207 --> - <g transform="translate(1486.448523 2500.404707) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-37" x="127.246094"/> - </g> - </g> - </g> - <g id="text_209"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 208 --> - <g transform="translate(1510.666407 1430.103109) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-38" x="127.246094"/> - </g> - </g> - </g> - <g id="text_210"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 209 --> - <g transform="translate(2447.915876 1702.545584) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-39" x="127.246094"/> - </g> - </g> - </g> - <g id="text_211"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 210 --> - <g transform="translate(1482.676768 2435.136659) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-30" x="127.246094"/> - </g> - </g> - </g> - <g id="text_212"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 211 --> - <g transform="translate(1511.567429 1430.656155) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-31" x="127.246094"/> - </g> - </g> - </g> - <g id="text_213"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 212 --> - <g transform="translate(2192.569936 1133.858644) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-32" x="127.246094"/> - </g> - </g> - </g> - <g id="text_214"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 213 --> - <g transform="translate(2471.459393 1012.006018) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-33" x="127.246094"/> - </g> - </g> - </g> - <g id="text_215"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 214 --> - <g transform="translate(1608.005491 1757.969432) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-34" x="127.246094"/> - </g> - </g> - </g> - <g id="text_216"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 215 --> - <g transform="translate(2592.891165 1183.142881) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-35" x="127.246094"/> - </g> - </g> - </g> - <g id="text_217"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 216 --> - <g transform="translate(1628.661889 1620.485741) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-36" x="127.246094"/> - </g> - </g> - </g> - <g id="text_218"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 217 --> - <g transform="translate(2296.814625 1944.024691) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-37" x="127.246094"/> - </g> - </g> - </g> - <g id="text_219"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 218 --> - <g transform="translate(2527.413908 1766.348748) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-38" x="127.246094"/> - </g> - </g> - </g> - <g id="text_220"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 219 --> - <g transform="translate(2378.352175 2242.988777) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-39" x="127.246094"/> - </g> - </g> - </g> - <g id="text_221"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 220 --> - <g transform="translate(633.295292 1935.904587) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-30" x="127.246094"/> - </g> - </g> - </g> - <g id="text_222"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 221 --> - <g transform="translate(541.881563 2286.977239) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-31" x="127.246094"/> - </g> - </g> - </g> - <g id="text_223"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 222 --> - <g transform="translate(306.478797 1801.728038) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-32" x="127.246094"/> - </g> - </g> - </g> - <g id="text_224"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 223 --> - <g transform="translate(937.643966 645.113705) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-33" x="127.246094"/> - </g> - </g> - </g> - <g id="text_225"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 224 --> - <g transform="translate(1293.219366 319.809619) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-34" x="127.246094"/> - </g> - </g> - </g> - <g id="text_226"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 225 --> - <g transform="translate(448.497871 724.327475) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-35" x="127.246094"/> - </g> - </g> - </g> - <g id="text_227"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 226 --> - <g transform="translate(1712.662101 2296.354612) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-36" x="127.246094"/> - </g> - </g> - </g> - <g id="text_228"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 227 --> - <g transform="translate(1792.387789 2467.45762) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-37" x="127.246094"/> - </g> - </g> - </g> - <g id="text_229"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 228 --> - <g transform="translate(831.410886 754.661501) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-38" x="127.246094"/> - </g> - </g> - </g> - <g id="text_230"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 229 --> - <g transform="translate(890.230775 598.06271) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-39" x="127.246094"/> - </g> - </g> - </g> - <g id="text_231"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 230 --> - <g transform="translate(630.338655 699.771379) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-30" x="127.246094"/> - </g> - </g> - </g> - <g id="text_232"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 231 --> - <g transform="translate(1873.050101 627.278625) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-31" x="127.246094"/> - </g> - </g> - </g> - <g id="text_233"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 232 --> - <g transform="translate(1989.303854 383.851011) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-32" x="127.246094"/> - </g> - </g> - </g> - <g id="text_234"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 233 --> - <g transform="translate(1962.116421 1392.157571) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-33" x="127.246094"/> - </g> - </g> - </g> - <g id="text_235"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 234 --> - <g transform="translate(1635.723985 579.610557) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-34" x="127.246094"/> - </g> - </g> - </g> - <g id="text_236"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 235 --> - <g transform="translate(878.195441 742.151934) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-35" x="127.246094"/> - </g> - </g> - </g> - <g id="text_237"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 236 --> - <g transform="translate(690.455981 463.760595) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-36" x="127.246094"/> - </g> - </g> - </g> - <g id="text_238"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 237 --> - <g transform="translate(1352.205287 1457.601861) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-37" x="127.246094"/> - </g> - </g> - </g> - <g id="text_239"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 238 --> - <g transform="translate(1258.74564 2184.188262) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-38" x="127.246094"/> - </g> - </g> - </g> - <g id="text_240"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 239 --> - <g transform="translate(2207.169661 2391.188654) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-39" x="127.246094"/> - </g> - </g> - </g> - <g id="text_241"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 240 --> - <g transform="translate(309.809304 1979.094311) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - <use xlink:href="#DejaVuSans-30" x="127.246094"/> - </g> - </g> - </g> - <g id="text_242"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 241 --> - <g transform="translate(1269.245332 1100.772592) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - <use xlink:href="#DejaVuSans-31" x="127.246094"/> - </g> - </g> - </g> - <g id="text_243"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 242 --> - <g transform="translate(1413.782619 342.66925) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - <use xlink:href="#DejaVuSans-32" x="127.246094"/> - </g> - </g> - </g> - <g id="text_244"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 243 --> - <g transform="translate(1114.651002 297.802161) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - <use xlink:href="#DejaVuSans-33" x="127.246094"/> - </g> - </g> - </g> - <g id="text_245"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 244 --> - <g transform="translate(1721.034639 315.472159) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - <use xlink:href="#DejaVuSans-34" x="127.246094"/> - </g> - </g> - </g> - <g id="text_246"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 245 --> - <g transform="translate(1505.392123 867.645605) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - <use xlink:href="#DejaVuSans-35" x="127.246094"/> - </g> - </g> - </g> - <g id="text_247"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 246 --> - <g transform="translate(717.294452 870.769768) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - <use xlink:href="#DejaVuSans-36" x="127.246094"/> - </g> - </g> - </g> - <g id="text_248"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 247 --> - <g transform="translate(797.40246 944.110342) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - <use xlink:href="#DejaVuSans-37" x="127.246094"/> - </g> - </g> - </g> - <g id="text_249"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 248 --> - <g transform="translate(2287.184909 2117.633078) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - <use xlink:href="#DejaVuSans-38" x="127.246094"/> - </g> - </g> - </g> - <g id="text_250"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 249 --> - <g transform="translate(1793.831401 2230.237604) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - <use xlink:href="#DejaVuSans-39" x="127.246094"/> - </g> - </g> - </g> - <g id="text_251"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 250 --> - <g transform="translate(1945.487781 2407.890514) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - <use xlink:href="#DejaVuSans-30" x="127.246094"/> - </g> - </g> - </g> - <g id="text_252"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 251 --> - <g transform="translate(1968.828613 2560.083408) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - <use xlink:href="#DejaVuSans-31" x="127.246094"/> - </g> - </g> - </g> - <g id="text_253"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 252 --> - <g transform="translate(901.621989 590.320975) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - <use xlink:href="#DejaVuSans-32" x="127.246094"/> - </g> - </g> - </g> - <g id="text_254"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 253 --> - <g transform="translate(792.100814 383.435184) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - <use xlink:href="#DejaVuSans-33" x="127.246094"/> - </g> - </g> - </g> - <g id="text_255"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 254 --> - <g transform="translate(1938.980942 2378.476184) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - <use xlink:href="#DejaVuSans-34" x="127.246094"/> - </g> - </g> - </g> - <g id="text_256"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 255 --> - <g transform="translate(1764.615909 2533.864692) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - <use xlink:href="#DejaVuSans-35" x="127.246094"/> - </g> - </g> - </g> - <g id="text_257"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 256 --> - <g transform="translate(2126.666137 2243.352844) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - <use xlink:href="#DejaVuSans-36" x="127.246094"/> - </g> - </g> - </g> - <g id="text_258"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 257 --> - <g transform="translate(1494.584635 2507.871559) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - <use xlink:href="#DejaVuSans-37" x="127.246094"/> - </g> - </g> - </g> - <g id="text_259"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 258 --> - <g transform="translate(2145.656955 1443.624522) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - <use xlink:href="#DejaVuSans-38" x="127.246094"/> - </g> - </g> - </g> - <g id="text_260"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 259 --> - <g transform="translate(1492.318038 2511.922056) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - <use xlink:href="#DejaVuSans-39" x="127.246094"/> - </g> - </g> - </g> - <g id="text_261"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 260 --> - <g transform="translate(1492.318101 2511.919662) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - <use xlink:href="#DejaVuSans-30" x="127.246094"/> - </g> - </g> - </g> - <g id="text_262"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 261 --> - <g transform="translate(545.870337 1896.644109) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - <use xlink:href="#DejaVuSans-31" x="127.246094"/> - </g> - </g> - </g> - <g id="text_263"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 262 --> - <g transform="translate(1492.781355 2498.072091) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - <use xlink:href="#DejaVuSans-32" x="127.246094"/> - </g> - </g> - </g> - <g id="text_264"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 263 --> - <g transform="translate(1472.280413 2351.59579) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - <use xlink:href="#DejaVuSans-33" x="127.246094"/> - </g> - </g> - </g> - <g id="text_265"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 264 --> - <g transform="translate(1489.103654 2489.645165) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - <use xlink:href="#DejaVuSans-34" x="127.246094"/> - </g> - </g> - </g> - <g id="text_266"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 265 --> - <g transform="translate(1738.624237 1144.449021) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - <use xlink:href="#DejaVuSans-35" x="127.246094"/> - </g> - </g> - </g> - <g id="text_267"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 266 --> - <g transform="translate(362.740259 1615.165965) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - <use xlink:href="#DejaVuSans-36" x="127.246094"/> - </g> - </g> - </g> - <g id="text_268"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 267 --> - <g transform="translate(1906.330669 2217.38122) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - <use xlink:href="#DejaVuSans-37" x="127.246094"/> - </g> - </g> - </g> - <g id="text_269"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 268 --> - <g transform="translate(1401.553588 1674.208952) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - <use xlink:href="#DejaVuSans-38" x="127.246094"/> - </g> - </g> - </g> - <g id="text_270"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 269 --> - <g transform="translate(1421.74981 454.406054) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - <use xlink:href="#DejaVuSans-39" x="127.246094"/> - </g> - </g> - </g> - <g id="text_271"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 270 --> - <g transform="translate(1603.516992 2322.848722) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - <use xlink:href="#DejaVuSans-30" x="127.246094"/> - </g> - </g> - </g> - <g id="text_272"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 271 --> - <g transform="translate(1543.454543 1079.739705) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - <use xlink:href="#DejaVuSans-31" x="127.246094"/> - </g> - </g> - </g> - <g id="text_273"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 272 --> - <g transform="translate(2090.147762 523.472949) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - <use xlink:href="#DejaVuSans-32" x="127.246094"/> - </g> - </g> - </g> - <g id="text_274"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 273 --> - <g transform="translate(1527.700209 1709.710905) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - <use xlink:href="#DejaVuSans-33" x="127.246094"/> - </g> - </g> - </g> - <g id="text_275"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 274 --> - <g transform="translate(494.293997 2123.95402) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - <use xlink:href="#DejaVuSans-34" x="127.246094"/> - </g> - </g> - </g> - <g id="text_276"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 275 --> - <g transform="translate(471.100108 996.52646) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - <use xlink:href="#DejaVuSans-35" x="127.246094"/> - </g> - </g> - </g> - <g id="text_277"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 276 --> - <g transform="translate(2493.170295 1416.036722) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - <use xlink:href="#DejaVuSans-36" x="127.246094"/> - </g> - </g> - </g> - <g id="text_278"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 277 --> - <g transform="translate(1161.305897 701.199594) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - <use xlink:href="#DejaVuSans-37" x="127.246094"/> - </g> - </g> - </g> - <g id="text_279"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 278 --> - <g transform="translate(902.563482 680.415949) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - <use xlink:href="#DejaVuSans-38" x="127.246094"/> - </g> - </g> - </g> - <g id="text_280"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 279 --> - <g transform="translate(1693.930553 1355.819353) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - <use xlink:href="#DejaVuSans-39" x="127.246094"/> - </g> - </g> - </g> - <g id="text_281"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 280 --> - <g transform="translate(1841.014616 2401.050641) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - <use xlink:href="#DejaVuSans-30" x="127.246094"/> - </g> - </g> - </g> - <g id="text_282"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 281 --> - <g transform="translate(1862.641145 1347.792377) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - <use xlink:href="#DejaVuSans-31" x="127.246094"/> - </g> - </g> - </g> - <g id="text_283"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 282 --> - <g transform="translate(2246.338143 1509.505817) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - <use xlink:href="#DejaVuSans-32" x="127.246094"/> - </g> - </g> - </g> - <g id="text_284"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 283 --> - <g transform="translate(1492.237674 2493.336345) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - <use xlink:href="#DejaVuSans-33" x="127.246094"/> - </g> - </g> - </g> - <g id="text_285"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 284 --> - <g transform="translate(1658.314211 2128.756596) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - <use xlink:href="#DejaVuSans-34" x="127.246094"/> - </g> - </g> - </g> - <g id="text_286"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 285 --> - <g transform="translate(1257.654946 1736.626502) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - <use xlink:href="#DejaVuSans-35" x="127.246094"/> - </g> - </g> - </g> - <g id="text_287"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 286 --> - <g transform="translate(717.130016 870.617899) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - <use xlink:href="#DejaVuSans-36" x="127.246094"/> - </g> - </g> - </g> - <g id="text_288"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 287 --> - <g transform="translate(1632.272537 1106.481394) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - <use xlink:href="#DejaVuSans-37" x="127.246094"/> - </g> - </g> - </g> - <g id="text_289"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 288 --> - <g transform="translate(1495.200689 2502.724249) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - <use xlink:href="#DejaVuSans-38" x="127.246094"/> - </g> - </g> - </g> - <g id="text_290"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 289 --> - <g transform="translate(1478.05699 2400.671335) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - <use xlink:href="#DejaVuSans-39" x="127.246094"/> - </g> - </g> - </g> - <g id="text_291"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 290 --> - <g transform="translate(1017.126716 1125.309483) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - <use xlink:href="#DejaVuSans-30" x="127.246094"/> - </g> - </g> - </g> - <g id="text_292"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 291 --> - <g transform="translate(1487.246768 2496.044081) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - <use xlink:href="#DejaVuSans-31" x="127.246094"/> - </g> - </g> - </g> - <g id="text_293"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 292 --> - <g transform="translate(1009.09811 2209.720061) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - <use xlink:href="#DejaVuSans-32" x="127.246094"/> - </g> - </g> - </g> - <g id="text_294"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 293 --> - <g transform="translate(1471.711688 2339.968932) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - <use xlink:href="#DejaVuSans-33" x="127.246094"/> - </g> - </g> - </g> - <g id="text_295"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 294 --> - <g transform="translate(1472.465181 2366.290281) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - <use xlink:href="#DejaVuSans-34" x="127.246094"/> - </g> - </g> - </g> - <g id="text_296"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 295 --> - <g transform="translate(1468.020966 2318.691111) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - <use xlink:href="#DejaVuSans-35" x="127.246094"/> - </g> - </g> - </g> - <g id="text_297"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 296 --> - <g transform="translate(1486.376507 2505.174754) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - <use xlink:href="#DejaVuSans-36" x="127.246094"/> - </g> - </g> - </g> - <g id="text_298"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 297 --> - <g transform="translate(1630.922939 1620.768929) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - <use xlink:href="#DejaVuSans-37" x="127.246094"/> - </g> - </g> - </g> - <g id="text_299"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 298 --> - <g transform="translate(1628.331622 1620.315475) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - <use xlink:href="#DejaVuSans-38" x="127.246094"/> - </g> - </g> - </g> - <g id="text_300"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 299 --> - <g transform="translate(487.312589 638.073417) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-32"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - <use xlink:href="#DejaVuSans-39" x="127.246094"/> - </g> - </g> - </g> - <g id="text_301"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 300 --> - <g transform="translate(2337.701771 562.795045) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-30" x="127.246094"/> - </g> - </g> - </g> - <g id="text_302"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 301 --> - <g transform="translate(1476.592319 2386.033489) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-31" x="127.246094"/> - </g> - </g> - </g> - <g id="text_303"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 302 --> - <g transform="translate(1957.018138 1392.738041) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-32" x="127.246094"/> - </g> - </g> - </g> - <g id="text_304"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 303 --> - <g transform="translate(1956.696532 1392.569529) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-33" x="127.246094"/> - </g> - </g> - </g> - <g id="text_305"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 304 --> - <g transform="translate(730.800184 718.400548) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-34" x="127.246094"/> - </g> - </g> - </g> - <g id="text_306"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 305 --> - <g transform="translate(765.903571 758.610269) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-35" x="127.246094"/> - </g> - </g> - </g> - <g id="text_307"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 306 --> - <g transform="translate(776.635937 759.392825) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-36" x="127.246094"/> - </g> - </g> - </g> - <g id="text_308"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 307 --> - <g transform="translate(967.764048 2241.404426) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-37" x="127.246094"/> - </g> - </g> - </g> - <g id="text_309"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 308 --> - <g transform="translate(1602.384721 2318.426524) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-38" x="127.246094"/> - </g> - </g> - </g> - <g id="text_310"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 309 --> - <g transform="translate(1602.38251 2318.420066) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-39" x="127.246094"/> - </g> - </g> - </g> - <g id="text_311"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 310 --> - <g transform="translate(2210.971538 1036.149612) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-30" x="127.246094"/> - </g> - </g> - </g> - <g id="text_312"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 311 --> - <g transform="translate(2382.342093 930.589439) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-31" x="127.246094"/> - </g> - </g> - </g> - <g id="text_313"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 312 --> - <g transform="translate(1526.978768 1707.183142) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-32" x="127.246094"/> - </g> - </g> - </g> - <g id="text_314"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 313 --> - <g transform="translate(1527.774746 1706.86808) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-33" x="127.246094"/> - </g> - </g> - </g> - <g id="text_315"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 314 --> - <g transform="translate(1526.90325 1706.997247) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-34" x="127.246094"/> - </g> - </g> - </g> - <g id="text_316"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 315 --> - <g transform="translate(1527.401241 1706.697633) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-35" x="127.246094"/> - </g> - </g> - </g> - <g id="text_317"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 316 --> - <g transform="translate(926.565003 717.452077) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-36" x="127.246094"/> - </g> - </g> - </g> - <g id="text_318"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 317 --> - <g transform="translate(1693.93081 1355.821543) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-37" x="127.246094"/> - </g> - </g> - </g> - <g id="text_319"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 318 --> - <g transform="translate(1697.917931 1354.398215) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-38" x="127.246094"/> - </g> - </g> - </g> - <g id="text_320"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 319 --> - <g transform="translate(1863.923635 1347.161414) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-39" x="127.246094"/> - </g> - </g> - </g> - <g id="text_321"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 320 --> - <g transform="translate(1862.545678 1347.827536) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-30" x="127.246094"/> - </g> - </g> - </g> - <g id="text_322"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 321 --> - <g transform="translate(1860.081648 1348.667984) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-31" x="127.246094"/> - </g> - </g> - </g> - <g id="text_323"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 322 --> - <g transform="translate(1896.325494 999.563862) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-32" x="127.246094"/> - </g> - </g> - </g> - <g id="text_324"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 323 --> - <g transform="translate(2549.456679 1524.163117) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-33" x="127.246094"/> - </g> - </g> - </g> - <g id="text_325"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 324 --> - <g transform="translate(1884.402216 779.06888) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-34" x="127.246094"/> - </g> - </g> - </g> - <g id="text_326"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 325 --> - <g transform="translate(1492.966057 2497.531761) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-35" x="127.246094"/> - </g> - </g> - </g> - <g id="text_327"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 326 --> - <g transform="translate(1827.619718 1379.898452) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-36" x="127.246094"/> - </g> - </g> - </g> - <g id="text_328"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 327 --> - <g transform="translate(1827.328135 1378.991286) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-37" x="127.246094"/> - </g> - </g> - </g> - <g id="text_329"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 328 --> - <g transform="translate(1918.502973 2220.30908) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-38" x="127.246094"/> - </g> - </g> - </g> - <g id="text_330"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 329 --> - <g transform="translate(1721.262601 2303.353862) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-39" x="127.246094"/> - </g> - </g> - </g> - <g id="text_331"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 330 --> - <g transform="translate(2481.183663 2101.860531) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-30" x="127.246094"/> - </g> - </g> - </g> - <g id="text_332"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 331 --> - <g transform="translate(961.272707 2506.427265) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-31" x="127.246094"/> - </g> - </g> - </g> - <g id="text_333"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 332 --> - <g transform="translate(716.141114 2337.252802) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-32" x="127.246094"/> - </g> - </g> - </g> - <g id="text_334"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 333 --> - <g transform="translate(2063.058296 578.735279) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-33" x="127.246094"/> - </g> - </g> - </g> - <g id="text_335"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 334 --> - <g transform="translate(1517.504244 1635.017845) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-34" x="127.246094"/> - </g> - </g> - </g> - <g id="text_336"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 335 --> - <g transform="translate(1517.859523 1634.878967) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-35" x="127.246094"/> - </g> - </g> - </g> - <g id="text_337"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 336 --> - <g transform="translate(1259.661857 1734.901989) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-36" x="127.246094"/> - </g> - </g> - </g> - <g id="text_338"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 337 --> - <g transform="translate(1654.933576 466.886337) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-37" x="127.246094"/> - </g> - </g> - </g> - <g id="text_339"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 338 --> - <g transform="translate(2183.65504 1394.726894) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-38" x="127.246094"/> - </g> - </g> - </g> - <g id="text_340"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 339 --> - <g transform="translate(2183.655039 1394.726893) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-39" x="127.246094"/> - </g> - </g> - </g> - <g id="text_341"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 340 --> - <g transform="translate(2182.61672 1394.84823) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - <use xlink:href="#DejaVuSans-30" x="127.246094"/> - </g> - </g> - </g> - <g id="text_342"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 341 --> - <g transform="translate(2178.647535 1395.342645) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - <use xlink:href="#DejaVuSans-31" x="127.246094"/> - </g> - </g> - </g> - <g id="text_343"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 342 --> - <g transform="translate(2181.385122 1394.993666) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - <use xlink:href="#DejaVuSans-32" x="127.246094"/> - </g> - </g> - </g> - <g id="text_344"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 343 --> - <g transform="translate(1286.801957 1414.903604) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - <use xlink:href="#DejaVuSans-33" x="127.246094"/> - </g> - </g> - </g> - <g id="text_345"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 344 --> - <g transform="translate(1259.572467 1734.964081) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - <use xlink:href="#DejaVuSans-34" x="127.246094"/> - </g> - </g> - </g> - <g id="text_346"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 345 --> - <g transform="translate(594.742835 1827.950851) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - <use xlink:href="#DejaVuSans-35" x="127.246094"/> - </g> - </g> - </g> - <g id="text_347"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 346 --> - <g transform="translate(1553.50614 868.283594) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - <use xlink:href="#DejaVuSans-36" x="127.246094"/> - </g> - </g> - </g> - <g id="text_348"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 347 --> - <g transform="translate(2264.895809 1349.17853) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - <use xlink:href="#DejaVuSans-37" x="127.246094"/> - </g> - </g> - </g> - <g id="text_349"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 348 --> - <g transform="translate(2260.068854 1349.689478) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - <use xlink:href="#DejaVuSans-38" x="127.246094"/> - </g> - </g> - </g> - <g id="text_350"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 349 --> - <g transform="translate(2253.25894 1350.81424) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-34" x="63.623047"/> - <use xlink:href="#DejaVuSans-39" x="127.246094"/> - </g> - </g> - </g> - <g id="text_351"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 350 --> - <g transform="translate(2264.840263 1349.189394) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - <use xlink:href="#DejaVuSans-30" x="127.246094"/> - </g> - </g> - </g> - <g id="text_352"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 351 --> - <g transform="translate(2264.921203 1349.173651) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - <use xlink:href="#DejaVuSans-31" x="127.246094"/> - </g> - </g> - </g> - <g id="text_353"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 352 --> - <g transform="translate(392.366977 1491.662513) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - <use xlink:href="#DejaVuSans-32" x="127.246094"/> - </g> - </g> - </g> - <g id="text_354"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 353 --> - <g transform="translate(1259.736135 1734.849675) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - <use xlink:href="#DejaVuSans-33" x="127.246094"/> - </g> - </g> - </g> - <g id="text_355"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 354 --> - <g transform="translate(2246.963627 951.553345) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - <use xlink:href="#DejaVuSans-34" x="127.246094"/> - </g> - </g> - </g> - <g id="text_356"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 355 --> - <g transform="translate(2273.376564 927.527789) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - <use xlink:href="#DejaVuSans-35" x="127.246094"/> - </g> - </g> - </g> - <g id="text_357"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 356 --> - <g transform="translate(763.555208 913.088401) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - <use xlink:href="#DejaVuSans-36" x="127.246094"/> - </g> - </g> - </g> - <g id="text_358"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 357 --> - <g transform="translate(852.842964 643.203301) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - <use xlink:href="#DejaVuSans-37" x="127.246094"/> - </g> - </g> - </g> - <g id="text_359"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 358 --> - <g transform="translate(1629.921877 1109.722818) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - <use xlink:href="#DejaVuSans-38" x="127.246094"/> - </g> - </g> - </g> - <g id="text_360"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 359 --> - <g transform="translate(1629.92475 1109.720797) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-35" x="63.623047"/> - <use xlink:href="#DejaVuSans-39" x="127.246094"/> - </g> - </g> - </g> - <g id="text_361"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 360 --> - <g transform="translate(1629.941946 1109.704579) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - <use xlink:href="#DejaVuSans-30" x="127.246094"/> - </g> - </g> - </g> - <g id="text_362"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 361 --> - <g transform="translate(1632.79371 1105.695089) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - <use xlink:href="#DejaVuSans-31" x="127.246094"/> - </g> - </g> - </g> - <g id="text_363"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 362 --> - <g transform="translate(2197.404237 981.114778) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - <use xlink:href="#DejaVuSans-32" x="127.246094"/> - </g> - </g> - </g> - <g id="text_364"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 363 --> - <g transform="translate(2103.756163 1043.342057) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - <use xlink:href="#DejaVuSans-33" x="127.246094"/> - </g> - </g> - </g> - <g id="text_365"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 364 --> - <g transform="translate(2311.492794 903.692272) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - <use xlink:href="#DejaVuSans-34" x="127.246094"/> - </g> - </g> - </g> - <g id="text_366"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 365 --> - <g transform="translate(1514.725438 1395.271769) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - <use xlink:href="#DejaVuSans-35" x="127.246094"/> - </g> - </g> - </g> - <g id="text_367"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 366 --> - <g transform="translate(1463.392372 2285.697042) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - <use xlink:href="#DejaVuSans-36" x="127.246094"/> - </g> - </g> - </g> - <g id="text_368"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 367 --> - <g transform="translate(1494.338141 2507.384205) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - <use xlink:href="#DejaVuSans-37" x="127.246094"/> - </g> - </g> - </g> - <g id="text_369"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 368 --> - <g transform="translate(1488.858323 2508.590412) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - <use xlink:href="#DejaVuSans-38" x="127.246094"/> - </g> - </g> - </g> - <g id="text_370"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 369 --> - <g transform="translate(1467.049412 2303.51091) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-36" x="63.623047"/> - <use xlink:href="#DejaVuSans-39" x="127.246094"/> - </g> - </g> - </g> - <g id="text_371"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 370 --> - <g transform="translate(1482.610232 2434.444769) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - <use xlink:href="#DejaVuSans-30" x="127.246094"/> - </g> - </g> - </g> - <g id="text_372"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 371 --> - <g transform="translate(863.890587 906.406552) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - <use xlink:href="#DejaVuSans-31" x="127.246094"/> - </g> - </g> - </g> - <g id="text_373"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 372 --> - <g transform="translate(1487.913138 2478.867052) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - <use xlink:href="#DejaVuSans-32" x="127.246094"/> - </g> - </g> - </g> - <g id="text_374"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 373 --> - <g transform="translate(1470.691344 2338.713227) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - <use xlink:href="#DejaVuSans-33" x="127.246094"/> - </g> - </g> - </g> - <g id="text_375"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 374 --> - <g transform="translate(1473.582399 2370.187138) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - <use xlink:href="#DejaVuSans-34" x="127.246094"/> - </g> - </g> - </g> - <g id="text_376"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 375 --> - <g transform="translate(1493.077988 2497.272752) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - <use xlink:href="#DejaVuSans-35" x="127.246094"/> - </g> - </g> - </g> - <g id="text_377"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 376 --> - <g transform="translate(1174.177945 2359.489512) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - <use xlink:href="#DejaVuSans-36" x="127.246094"/> - </g> - </g> - </g> - <g id="text_378"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 377 --> - <g transform="translate(2287.497863 2203.42306) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - <use xlink:href="#DejaVuSans-37" x="127.246094"/> - </g> - </g> - </g> - <g id="text_379"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 378 --> - <g transform="translate(1484.909462 2452.467359) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - <use xlink:href="#DejaVuSans-38" x="127.246094"/> - </g> - </g> - </g> - <g id="text_380"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 379 --> - <g transform="translate(1467.61125 2323.248558) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-37" x="63.623047"/> - <use xlink:href="#DejaVuSans-39" x="127.246094"/> - </g> - </g> - </g> - <g id="text_381"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 380 --> - <g transform="translate(2188.516293 1531.66811) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - <use xlink:href="#DejaVuSans-30" x="127.246094"/> - </g> - </g> - </g> - <g id="text_382"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 381 --> - <g transform="translate(2188.497491 1531.666294) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - <use xlink:href="#DejaVuSans-31" x="127.246094"/> - </g> - </g> - </g> - <g id="text_383"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 382 --> - <g transform="translate(1463.844026 2276.999376) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - <use xlink:href="#DejaVuSans-32" x="127.246094"/> - </g> - </g> - </g> - <g id="text_384"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 383 --> - <g transform="translate(1465.052388 2280.010528) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - <use xlink:href="#DejaVuSans-33" x="127.246094"/> - </g> - </g> - </g> - <g id="text_385"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 384 --> - <g transform="translate(1476.244018 2367.532381) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - <use xlink:href="#DejaVuSans-34" x="127.246094"/> - </g> - </g> - </g> - <g id="text_386"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 385 --> - <g transform="translate(1328.570022 1045.927393) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - <use xlink:href="#DejaVuSans-35" x="127.246094"/> - </g> - </g> - </g> - <g id="text_387"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 386 --> - <g transform="translate(2365.446481 754.764199) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - <use xlink:href="#DejaVuSans-36" x="127.246094"/> - </g> - </g> - </g> - <g id="text_388"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 387 --> - <g transform="translate(1738.624422 1144.448806) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - <use xlink:href="#DejaVuSans-37" x="127.246094"/> - </g> - </g> - </g> - <g id="text_389"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 388 --> - <g transform="translate(1738.625205 1144.44787) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - <use xlink:href="#DejaVuSans-38" x="127.246094"/> - </g> - </g> - </g> - <g id="text_390"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 389 --> - <g transform="translate(1236.329089 445.663301) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-38" x="63.623047"/> - <use xlink:href="#DejaVuSans-39" x="127.246094"/> - </g> - </g> - </g> - <g id="text_391"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 390 --> - <g transform="translate(1479.313469 2407.457821) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - <use xlink:href="#DejaVuSans-30" x="127.246094"/> - </g> - </g> - </g> - <g id="text_392"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 391 --> - <g transform="translate(1488.829136 2508.767817) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - <use xlink:href="#DejaVuSans-31" x="127.246094"/> - </g> - </g> - </g> - <g id="text_393"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 392 --> - <g transform="translate(402.91751 1612.917131) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - <use xlink:href="#DejaVuSans-32" x="127.246094"/> - </g> - </g> - </g> - <g id="text_394"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 393 --> - <g transform="translate(1956.806496 1392.598476) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - <use xlink:href="#DejaVuSans-33" x="127.246094"/> - </g> - </g> - </g> - <g id="text_395"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 394 --> - <g transform="translate(1495.20214 2502.760045) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - <use xlink:href="#DejaVuSans-34" x="127.246094"/> - </g> - </g> - </g> - <g id="text_396"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 395 --> - <g transform="translate(409.113292 1334.347701) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - <use xlink:href="#DejaVuSans-35" x="127.246094"/> - </g> - </g> - </g> - <g id="text_397"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 396 --> - <g transform="translate(2583.956292 1522.654097) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - <use xlink:href="#DejaVuSans-36" x="127.246094"/> - </g> - </g> - </g> - <g id="text_398"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 397 --> - <g transform="translate(2478.853885 1524.507363) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - <use xlink:href="#DejaVuSans-37" x="127.246094"/> - </g> - </g> - </g> - <g id="text_399"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 398 --> - <g transform="translate(1449.132234 2099.832103) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - <use xlink:href="#DejaVuSans-38" x="127.246094"/> - </g> - </g> - </g> - <g id="text_400"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 399 --> - <g transform="translate(2412.584999 1891.22821) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-33"/> - <use xlink:href="#DejaVuSans-39" x="63.623047"/> - <use xlink:href="#DejaVuSans-39" x="127.246094"/> - </g> - </g> - </g> - <g id="text_401"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 400 --> - <g transform="translate(485.527527 2310.84046) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-30" x="127.246094"/> - </g> - </g> - </g> - <g id="text_402"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 401 --> - <g transform="translate(1928.692102 2243.42532) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-31" x="127.246094"/> - </g> - </g> - </g> - <g id="text_403"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 402 --> - <g transform="translate(1476.256908 2369.043037) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-32" x="127.246094"/> - </g> - </g> - </g> - <g id="text_404"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 403 --> - <g transform="translate(1468.12228 2313.514666) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-33" x="127.246094"/> - </g> - </g> - </g> - <g id="text_405"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 404 --> - <g transform="translate(1488.498448 2491.686618) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-34" x="127.246094"/> - </g> - </g> - </g> - <g id="text_406"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 405 --> - <g transform="translate(2003.743873 2210.429426) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-35" x="127.246094"/> - </g> - </g> - </g> - <g id="text_407"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 406 --> - <g transform="translate(2099.420533 2190.581778) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-36" x="127.246094"/> - </g> - </g> - </g> - <g id="text_408"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 407 --> - <g transform="translate(2139.696643 2226.800443) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-37" x="127.246094"/> - </g> - </g> - </g> - <g id="text_409"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 408 --> - <g transform="translate(1962.289976 1391.900762) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-38" x="127.246094"/> - </g> - </g> - </g> - <g id="text_410"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 409 --> - <g transform="translate(1956.888706 1392.54001) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-30" x="63.623047"/> - <use xlink:href="#DejaVuSans-39" x="127.246094"/> - </g> - </g> - </g> - <g id="text_411"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 410 --> - <g transform="translate(668.931654 646.958518) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-30" x="127.246094"/> - </g> - </g> - </g> - <g id="text_412"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 411 --> - <g transform="translate(810.655722 783.808535) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-31" x="127.246094"/> - </g> - </g> - </g> - <g id="text_413"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 412 --> - <g transform="translate(699.484624 684.694175) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-32" x="127.246094"/> - </g> - </g> - </g> - <g id="text_414"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 413 --> - <g transform="translate(733.866371 730.25784) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-33" x="127.246094"/> - </g> - </g> - </g> - <g id="text_415"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 414 --> - <g transform="translate(796.234713 774.781612) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-34" x="127.246094"/> - </g> - </g> - </g> - <g id="text_416"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 415 --> - <g transform="translate(722.332936 708.928096) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-35" x="127.246094"/> - </g> - </g> - </g> - <g id="text_417"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 416 --> - <g transform="translate(749.368414 725.908721) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-36" x="127.246094"/> - </g> - </g> - </g> - <g id="text_418"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 417 --> - <g transform="translate(1469.332815 2448.942313) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-37" x="127.246094"/> - </g> - </g> - </g> - <g id="text_419"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 418 --> - <g transform="translate(884.253023 2484.83691) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-38" x="127.246094"/> - </g> - </g> - </g> - <g id="text_420"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 419 --> - <g transform="translate(1603.516992 2322.848722) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-31" x="63.623047"/> - <use xlink:href="#DejaVuSans-39" x="127.246094"/> - </g> - </g> - </g> - <g id="text_421"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 420 --> - <g transform="translate(987.536912 2228.842151) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-30" x="127.246094"/> - </g> - </g> - </g> - <g id="text_422"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 421 --> - <g transform="translate(942.523619 2316.159618) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-31" x="127.246094"/> - </g> - </g> - </g> - <g id="text_423"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 422 --> - <g transform="translate(1220.660204 958.590735) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-32" x="127.246094"/> - </g> - </g> - </g> - <g id="text_424"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 423 --> - <g transform="translate(2106.861245 663.680757) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-33" x="127.246094"/> - </g> - </g> - </g> - <g id="text_425"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 424 --> - <g transform="translate(1446.255952 1272.063142) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-34" x="127.246094"/> - </g> - </g> - </g> - <g id="text_426"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 425 --> - <g transform="translate(1313.24389 1381.159726) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-35" x="127.246094"/> - </g> - </g> - </g> - <g id="text_427"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 426 --> - <g transform="translate(684.282239 2441.853947) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-36" x="127.246094"/> - </g> - </g> - </g> - <g id="text_428"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 427 --> - <g transform="translate(1942.909754 319.586547) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-37" x="127.246094"/> - </g> - </g> - </g> - <g id="text_429"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 428 --> - <g transform="translate(1697.921159 1354.411863) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-38" x="127.246094"/> - </g> - </g> - </g> - <g id="text_430"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 429 --> - <g transform="translate(1838.502761 2394.295762) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-32" x="63.623047"/> - <use xlink:href="#DejaVuSans-39" x="127.246094"/> - </g> - </g> - </g> - <g id="text_431"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 430 --> - <g transform="translate(1896.320307 999.568577) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-30" x="127.246094"/> - </g> - </g> - </g> - <g id="text_432"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 431 --> - <g transform="translate(2228.556063 1177.32268) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-31" x="127.246094"/> - </g> - </g> - </g> - <g id="text_433"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 432 --> - <g transform="translate(2229.744423 1176.801141) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-32" x="127.246094"/> - </g> - </g> - </g> - <g id="text_434"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 433 --> - <g transform="translate(2183.540353 1196.888615) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-33" x="127.246094"/> - </g> - </g> - </g> - <g id="text_435"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 434 --> - <g transform="translate(1883.578818 780.462176) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-34" x="127.246094"/> - </g> - </g> - </g> - <g id="text_436"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 435 --> - <g transform="translate(1954.514249 2486.341264) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-35" x="127.246094"/> - </g> - </g> - </g> - <g id="text_437"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 436 --> - <g transform="translate(1856.107587 2563.140556) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-36" x="127.246094"/> - </g> - </g> - </g> - <g id="text_438"> - <g clip-path="url(#pcd1a210b40)"> - <!-- 437 --> - <g transform="translate(2090.919 2360.860626) scale(0.12 -0.12)"> - <use xlink:href="#DejaVuSans-34"/> - <use xlink:href="#DejaVuSans-33" x="63.623047"/> - <use xlink:href="#DejaVuSans-37" x="127.246094"/> - </g> - </g> - </g> - </g> - </g> - <defs> - <clipPath id="pcd1a210b40"> - <rect x="0" y="0" width="2880" height="2880"/> - </clipPath> - </defs> -</svg> +<?xml version="1.0" encoding="utf-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="2880pt" height="2880pt" viewBox="0 0 2880 2880" xmlns="http://www.w3.org/2000/svg" version="1.1"> + <metadata> + <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#"> + <cc:Work> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> + <dc:date>2023-01-31T18:26:58.932201</dc:date> + <dc:format>image/svg+xml</dc:format> + <dc:creator> + <cc:Agent> + <dc:title>Matplotlib v3.6.2, https://matplotlib.org/</dc:title> + </cc:Agent> + </dc:creator> + </cc:Work> + </rdf:RDF> + </metadata> + <defs> + <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style> + </defs> + <g id="figure_1"> + <g id="patch_1"> + <path d="M 0 2880 +L 2880 2880 +L 2880 0 +L 0 0 +z +" style="fill: #ffffff"/> + </g> + <g id="axes_1"> + <g id="patch_2"> + <path d="M 1539.075445 1629.687828 +Q 2072.021313 1496.075699 2603.882709 1362.735453 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2599.516426 1361.768206 +L 2603.882709 1362.735453 +L 2600.489142 1365.648132 +L 2599.516426 1361.768206 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_3"> + <path d="M 1522.280934 1633.894472 +Q 988.1753 1767.554278 455.154254 1900.942667 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 459.520123 1901.911783 +L 455.154254 1900.942667 +L 458.549069 1898.031441 +L 459.520123 1901.911783 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_4"> + <path d="M 1678.007861 2122.787476 +Q 2097.563249 1987.475792 2516.054574 1852.507282 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2511.633776 1851.831601 +L 2516.054574 1852.507282 +L 2512.861551 1855.638512 +L 2511.633776 1851.831601 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_5"> + <path d="M 1661.528564 2128.124816 +Q 1242.464453 2264.426055 824.463552 2400.381484 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 828.886011 2401.046202 +L 824.463552 2400.381484 +L 827.648802 2397.242347 +L 828.886011 2401.046202 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_6"> + <path d="M 732.16271 882.312965 +Q 520.969959 1104.319786 310.547802 1325.516554 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 314.753829 1323.996903 +L 310.547802 1325.516554 +L 311.855698 1321.239942 +L 314.753829 1323.996903 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_7"> + <path d="M 743.807931 869.503622 +Q 944.950773 637.943677 1145.360429 407.227791 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1141.2274 408.936028 +L 1145.360429 407.227791 +L 1144.247201 411.559156 +L 1141.2274 408.936028 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_8"> + <path d="M 2166.609581 1009.707887 +Q 2314.988026 908.025858 2462.444213 806.975841 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2458.014063 807.587213 +L 2462.444213 806.975841 +L 2460.275221 810.886784 +L 2458.014063 807.587213 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_9"> + <path d="M 1510.391493 2498.767554 +Q 1785.052949 2456.392549 2058.609444 2414.188019 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.351263 2412.821312 +L 2058.609444 2414.188019 +L 2054.96117 2416.774541 +L 2054.351263 2412.821312 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_10"> + <path d="M 1493.265747 2501.350479 +Q 1219.067415 2541.757131 945.975171 2582.000786 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 950.224011 2583.396264 +L 945.975171 2582.000786 +L 949.640858 2579.439001 +L 950.224011 2583.396264 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_11"> + <path d="M 1505.619152 2453.643707 +Q 1782.625875 2433.484777 2058.517514 2413.406997 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.3829 2411.702601 +L 2058.517514 2413.406997 +L 2054.673229 2415.69205 +L 2054.3829 2411.702601 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_12"> + <path d="M 1488.544885 2456.216205 +Q 1216.641167 2518.849514 945.826952 2581.231854 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 950.173819 2582.282924 +L 945.826952 2581.231854 +L 949.275928 2578.385003 +L 950.173819 2582.282924 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_13"> + <path d="M 1326.338641 2291.892755 +Q 1693.031133 2351.598786 2058.620122 2411.125141 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.993527 2408.508309 +L 2058.620122 2411.125141 +L 2054.350699 2412.456318 +L 2054.993527 2408.508309 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_14"> + <path d="M 1309.239564 2289.135864 +Q 942.711173 2230.623586 577.286836 2172.287559 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 580.921534 2174.893124 +L 577.286836 2172.287559 +L 581.552106 2170.943139 +L 580.921534 2174.893124 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_15"> + <path d="M 1506.477375 2495.886283 +Q 1783.091581 2454.926002 2058.599812 2414.129492 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.349997 2412.736985 +L 2058.599812 2414.129492 +L 2054.935917 2416.693839 +L 2054.349997 2412.736985 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_16"> + <path d="M 1489.352549 2498.469463 +Q 1217.106024 2540.290567 945.96457 2581.941915 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 950.221862 2583.311391 +L 945.96457 2581.941915 +L 949.614526 2579.357767 +L 950.221862 2583.311391 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_17"> + <path d="M 1507.273508 2491.528931 +Q 1783.487158 2452.715302 2058.593651 2414.057251 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.354261 2412.633322 +L 2058.593651 2414.057251 +L 2054.910874 2416.594406 +L 2054.354261 2412.633322 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_18"> + <path d="M 1490.148295 2494.11273 +Q 1217.497379 2538.080523 945.950237 2581.870321 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 950.217628 2583.207998 +L 945.950237 2581.870321 +L 949.580813 2579.259015 +L 950.217628 2583.207998 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_19"> + <path d="M 1974.366243 1397.466152 +Q 2020.92115 1900.769209 2067.37308 2402.958986 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2068.996157 2398.791777 +L 2067.37308 2402.958986 +L 2065.01316 2399.1602 +L 2068.996157 2398.791777 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_20"> + <path d="M 1972.732427 1380.229869 +Q 1923.845481 876.660716 1875.066567 374.204366 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1873.462432 378.378902 +L 1875.066567 374.204366 +L 1877.443715 377.992395 +L 1873.462432 378.378902 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_21"> + <path d="M 1805.460525 1412.268532 +Q 1935.766877 1908.294336 2065.78916 2403.238797 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2066.707207 2398.861904 +L 2065.78916 2403.238797 +L 2062.838474 2399.878223 +L 2066.707207 2398.861904 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_22"> + <path d="M 1801.074017 1395.51466 +Q 1671.666417 899.586427 1542.541105 404.740005 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1541.615848 409.115379 +L 1542.541105 404.740005 +L 1545.48625 408.105436 +L 1541.615848 409.115379 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_23"> + <path d="M 1403.250895 1671.463734 +Q 839.200308 1709.573544 276.265212 1747.607986 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 280.390934 1749.333793 +L 276.265212 1747.607986 +L 280.121291 1745.342892 +L 280.390934 1749.333793 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_24"> + <path d="M 1420.527382 1670.300121 +Q 1985.17997 1632.389167 2548.717036 1594.553109 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2544.592042 1592.82556 +L 2548.717036 1594.553109 +L 2544.86 1596.816574 +L 2544.592042 1592.82556 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_25"> + <path d="M 2125.268824 2351.230927 +Q 2099.715177 2378.789174 2074.92172 2405.527597 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2079.108003 2403.954374 +L 2074.92172 2405.527597 +L 2076.174911 2401.234637 +L 2079.108003 2403.954374 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_26"> + <path d="M 2138.42243 2340.161954 +Q 2169.267831 2320.130642 2199.175571 2300.708257 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2194.731612 2301.209479 +L 2199.175571 2300.708257 +L 2196.910174 2304.564158 +L 2194.731612 2301.209479 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_27"> + <path d="M 2379.45734 951.697164 +Q 2374.34316 952.180856 2370.342047 952.559276 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2374.512592 954.173756 +L 2370.342047 952.559276 +L 2374.135959 950.191528 +L 2374.512592 954.173756 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_28"> + <path d="M 1713.040551 1358.673933 +Q 1889.274305 1881.582256 2065.150987 2403.431099 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2065.768741 2399.001835 +L 2065.150987 2403.431099 +L 2061.978228 2400.279336 +L 2065.768741 2399.001835 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_29"> + <path d="M 1707.479986 1342.269568 +Q 1529.713017 820.825428 1352.306812 300.439517 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1351.704502 304.870907 +L 1352.306812 300.439517 +L 1355.490539 303.580199 +L 1351.704502 304.870907 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_30"> + <path d="M 1874.625812 1353.457724 +Q 2039.557833 1820.336948 2204.117447 2286.161984 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2204.67087 2281.724223 +L 2204.117447 2286.161984 +L 2200.899292 2283.056589 +L 2204.67087 2281.724223 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_31"> + <path d="M 1868.885601 1337.112724 +Q 1705.905289 870.280849 1543.293492 404.50453 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1542.723698 408.940219 +L 1543.293492 404.50453 +L 1546.500166 407.621778 +L 1542.723698 408.940219 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_32"> + <path d="M 1914.027313 1002.251734 +Q 2244.992217 1319.981239 2575.150589 1636.936466 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2573.650125 1632.723557 +L 2575.150589 1636.936466 +L 2570.879983 1635.609092 +L 2573.650125 1632.723557 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_33"> + <path d="M 1901.539736 990.24707 +Q 1570.867116 671.925226 1240.999966 354.378765 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1242.494649 358.593729 +L 1240.999966 354.378765 +L 1245.268747 355.711997 +L 1242.494649 358.593729 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_34"> + <path d="M 2255.299329 1522.459034 +Q 2438.360471 1522.374375 2620.30358 1522.290234 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2616.302655 1520.292084 +L 2620.30358 1522.290234 +L 2616.304505 1524.292083 +L 2616.302655 1520.292084 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_35"> + <path d="M 1971.624747 2283.079035 +Q 2017.361107 2344.41695 2062.429148 2404.858568 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2061.641438 2400.456351 +L 2062.429148 2404.858568 +L 2058.434749 2402.847406 +L 2061.641438 2400.456351 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_36"> + <path d="M 1329.850881 462.35067 +Q 1196.83353 420.228853 1064.882049 378.444558 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1068.091642 381.558802 +L 1064.882049 378.444558 +L 1069.299199 377.74543 +L 1068.091642 381.558802 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_37"> + <path d="M 1346.681799 463.739095 +Q 1479.656322 444.72608 1611.524068 425.871314 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1607.281253 424.457621 +L 1611.524068 425.871314 +L 1607.847425 428.417349 +L 1607.281253 424.457621 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_38"> + <path d="M 895.815821 2020.746763 +Q 766.929944 2130.678846 638.894705 2239.885386 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 643.235934 2238.811267 +L 638.894705 2239.885386 +L 640.640147 2235.767931 +L 643.235934 2238.811267 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_39"> + <path d="M 2248.117275 2076.009176 +Q 2399.441636 1973.291968 2549.840945 1871.202674 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2545.408127 1871.794386 +L 2549.840945 1871.202674 +L 2547.654624 1875.103956 +L 2545.408127 1871.794386 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_40"> + <path d="M 2236.953296 2088.556545 +Q 2154.612799 2246.784969 2072.788413 2404.021612 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2076.409064 2401.396562 +L 2072.788413 2404.021612 +L 2072.860763 2399.550062 +L 2076.409064 2401.396562 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_41"> + <path d="M 2262.293963 950.306933 +Q 2362.880141 878.395537 2462.556811 807.13437 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2458.139696 807.83372 +L 2462.556811 807.13437 +L 2460.466022 811.087672 +L 2458.139696 807.83372 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_42"> + <path d="M 1275.716947 1738.920303 +Q 1668.695388 2073.003214 2060.822009 2406.361967 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2059.06986 2402.247362 +L 2060.822009 2406.361967 +L 2056.479036 2405.294923 +L 2059.06986 2402.247362 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_43"> + <path d="M 1262.554632 1727.662779 +Q 871.831124 1391.457527 481.955098 1055.981505 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 483.682649 1060.106498 +L 481.955098 1055.981505 +L 486.291623 1057.074459 +L 483.682649 1060.106498 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_44"> + <path d="M 1974.366253 1397.466178 +Q 2020.921156 1900.769223 2067.373081 2402.958986 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2068.996157 2398.791778 +L 2067.373081 2402.958986 +L 2065.01316 2399.1602 +L 2068.996157 2398.791778 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_45"> + <path d="M 1972.732437 1380.229896 +Q 1923.845486 876.66073 1875.066567 374.204366 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1873.462432 378.378902 +L 1875.066567 374.204366 +L 1877.443715 377.992395 +L 1873.462432 378.378902 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_46"> + <path d="M 1661.359419 379.470336 +Q 1605.010896 386.813074 1549.771033 394.011344 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1553.995932 395.477709 +L 1549.771033 394.011344 +L 1553.479065 391.511244 +L 1553.995932 395.477709 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_47"> + <path d="M 1678.424127 376.561916 +Q 1734.688444 364.684726 1789.858836 353.038459 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1785.531998 351.907762 +L 1789.858836 353.038459 +L 1786.358176 355.821511 +L 1785.531998 351.907762 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_48"> + <path d="M 2189.174111 1383.407856 +Q 2129.499503 917.403062 2069.966906 452.507247 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2068.49118 456.728886 +L 2069.966906 452.507247 +L 2072.458781 456.220812 +L 2068.49118 456.728886 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_49"> + <path d="M 2191.441463 1400.578952 +Q 2254.790275 1866.242294 2317.988378 2330.797806 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2319.43093 2326.564718 +L 2317.988378 2330.797806 +L 2315.467438 2327.103911 +L 2319.43093 2326.564718 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_50"> + <path d="M 2042.732918 772.189102 +Q 2151.37641 636.868788 2259.319952 502.420294 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2255.256175 504.287301 +L 2259.319952 502.420294 +L 2258.375291 506.79152 +L 2255.256175 504.287301 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_51"> + <path d="M 574.163678 2015.909701 +Q 694.28313 2173.422376 813.724613 2330.046031 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 812.889367 2325.652585 +L 813.724613 2330.046031 +L 809.708709 2328.07816 +L 812.889367 2325.652585 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_52"> + <path d="M 563.327933 2002.406115 +Q 434.898891 1850.217623 307.190902 1698.88358 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 308.242137 1703.230407 +L 307.190902 1698.88358 +L 311.299105 1700.650688 +L 308.242137 1703.230407 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_53"> + <path d="M 1301.525592 1404.694203 +Q 1537.171657 949.15183 1772.304035 494.602496 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1768.689814 497.236391 +L 1772.304035 494.602496 +L 1772.242619 499.07421 +L 1768.689814 497.236391 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_54"> + <path d="M 1293.573244 1420.080568 +Q 1058.598764 1875.104125 824.137276 2329.134283 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 827.749654 2326.497861 +L 824.137276 2329.134283 +L 824.195565 2324.662527 +L 827.749654 2326.497861 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_55"> + <path d="M 1279.213982 1735.562045 +Q 1670.458466 2071.310102 2060.8545 2406.330057 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2059.121458 2402.207368 +L 2060.8545 2406.330057 +L 2056.516523 2405.242877 +L 2059.121458 2402.207368 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_56"> + <path d="M 1266.051667 1724.304521 +Q 873.594203 1389.764415 481.987594 1055.949599 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 483.73427 1060.06653 +L 481.987594 1055.949599 +L 486.329145 1057.022417 +L 483.73427 1060.06653 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_57"> + <path d="M 860.453415 1393.436441 +Q 748.043464 1857.594804 635.896672 2320.666545 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 638.781985 2317.24968 +L 635.896672 2320.666545 +L 634.894367 2316.308176 +L 638.781985 2317.24968 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_58"> + <path d="M 864.518566 1376.596153 +Q 976.333486 911.879764 1087.886861 448.250387 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1085.006625 451.671532 +L 1087.886861 448.250387 +L 1088.895636 452.607263 +L 1085.006625 451.671532 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_59"> + <path d="M 1426.992294 492.250331 +Q 1625.396084 467.18319 1822.690659 442.256192 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1818.471513 440.773357 +L 1822.690659 442.256192 +L 1818.972903 444.741809 +L 1818.471513 440.773357 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_60"> + <path d="M 1410.640713 489.492215 +Q 1223.392891 396.70588 1037.146856 304.415957 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1039.842946 307.984024 +L 1037.146856 304.415957 +L 1041.618963 304.399925 +L 1039.842946 307.984024 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_61"> + <path d="M 538.304379 1854.851354 +Q 585.098975 2088.2652 631.673802 2320.582824 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 632.848511 2316.267727 +L 631.673802 2320.582824 +L 628.92655 2317.053998 +L 632.848511 2316.267727 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_62"> + <path d="M 533.450611 1838.291754 +Q 447.167166 1617.417427 361.290535 1397.584493 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 360.8831 1402.038031 +L 361.290535 1397.584493 +L 364.608904 1400.582564 +L 360.8831 1402.038031 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_63"> + <path d="M 2272.523534 1354.980568 +Q 2310.064082 1677.126209 2347.475219 1998.161331 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2348.998777 1993.956719 +L 2347.475219 1998.161331 +L 2345.025664 1994.419717 +L 2348.998777 1993.956719 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_64"> + <path d="M 2270.598231 1337.769617 +Q 2236.038486 1015.385782 2201.597911 694.113611 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2200.035664 698.304004 +L 2201.597911 694.113611 +L 2204.012877 697.877644 +L 2200.035664 698.304004 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_65"> + <path d="M 1572.900929 868.423512 +Q 2034.939318 1069.193376 2495.952297 1269.517669 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2493.080743 1266.089232 +L 2495.952297 1269.517669 +L 2491.486616 1269.75785 +L 2493.080743 1266.089232 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_66"> + <path d="M 1557.019105 861.510056 +Q 1095.561118 660.276531 635.127958 459.489916 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 637.995039 462.922094 +L 635.127958 459.489916 +L 639.593949 459.255558 +L 637.995039 462.922094 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_67"> + <path d="M 427.280142 1479.207506 +Q 414.527413 1184.322161 401.82299 890.553807 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 399.997681 894.636483 +L 401.82299 890.553807 +L 403.993946 894.463659 +L 399.997681 894.636483 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_68"> + <path d="M 427.272848 1496.517702 +Q 414.242972 1791.954968 401.262358 2086.275286 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 403.436659 2082.367292 +L 401.262358 2086.275286 +L 399.440544 2082.191049 +L 403.436659 2082.367292 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_69"> + <path d="M 1361.459933 1462.492068 +Q 1259.547421 2042.022647 1157.828549 2620.452088 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1160.491108 2616.858931 +L 1157.828549 2620.452088 +L 1156.551558 2616.166147 +L 1160.491108 2616.858931 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_70"> + <path d="M 1364.471416 1445.438421 +Q 1467.186025 866.191678 1569.705425 288.045796 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1567.037744 291.635152 +L 1569.705425 288.045796 +L 1570.976301 292.333555 +L 1567.037744 291.635152 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_71"> + <path d="M 1058.213202 1675.494526 +Q 660.647101 1477.618171 264.081911 1280.239989 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 266.771722 1283.812792 +L 264.081911 1280.239989 +L 268.55404 1280.231823 +L 266.771722 1283.812792 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_72"> + <path d="M 1072.951219 1684.46409 +Q 1567.117522 2046.023401 2060.381515 2406.922533 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2058.334278 2402.946502 +L 2060.381515 2406.922533 +L 2055.972348 2406.174704 +L 2058.334278 2402.946502 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_73"> + <path d="M 1060.038935 1673.042255 +Q 770.257154 1364.481099 481.240753 1056.734925 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 482.521179 1061.019841 +L 481.240753 1056.734925 +L 485.436942 1058.281535 +L 482.521179 1061.019841 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_74"> + <path d="M 2243.985109 1819.31418 +Q 2354.869284 1863.889256 2464.716105 1908.047319 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2461.750734 1904.699698 +L 2464.716105 1908.047319 +L 2460.258785 1908.411043 +L 2461.750734 1904.699698 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_75"> + <path d="M 1279.113634 1735.428236 +Q 1670.407874 2071.24264 2060.853689 2406.328913 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2059.120791 2402.206164 +L 2060.853689 2406.328913 +L 2056.515751 2405.241582 +L 2059.120791 2402.206164 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_76"> + <path d="M 1265.951319 1724.170711 +Q 873.543611 1389.696953 481.986784 1055.948454 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 483.733605 1060.065324 +L 481.986784 1055.948454 +L 486.328372 1057.021119 +L 483.733605 1060.065324 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_77"> + <path d="M 463.474254 1450.807345 +Q 377.91372 1449.176698 293.471017 1447.567355 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 297.432181 1449.643212 +L 293.471017 1447.567355 +L 297.5084 1445.643938 +L 297.432181 1449.643212 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_78"> + <path d="M 1420.154618 1506.873902 +Q 1806.325817 1055.43291 2191.770254 604.841516 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2187.650303 606.581058 +L 2191.770254 604.841516 +L 2190.689917 609.181202 +L 2187.650303 606.581058 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_79"> + <path d="M 1408.896222 1520.029774 +Q 1023.067424 1970.700936 637.965732 2420.522793 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 642.086387 2418.784919 +L 637.965732 2420.522793 +L 639.047826 2416.183545 +L 642.086387 2418.784919 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_80"> + <path d="M 1507.358851 863.851731 +Q 1026.121032 835.888191 545.999365 807.989508 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 549.87661 810.218179 +L 545.999365 807.989508 +L 550.108649 806.224915 +L 549.87661 810.218179 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_81"> + <path d="M 1524.649894 864.853422 +Q 2006.3879 892.676201 2487.009733 920.434516 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2483.131705 918.207208 +L 2487.009733 920.434516 +L 2482.901069 922.200553 +L 2483.131705 918.207208 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_82"> + <path d="M 2233.562543 952.70926 +Q 2348.386395 879.408837 2462.267863 806.710006 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2457.820128 807.17654 +L 2462.267863 806.710006 +L 2459.972449 810.548115 +L 2457.820128 807.17654 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_83"> + <path d="M 794.174609 552.528723 +Q 585.546289 694.480337 377.842327 835.803014 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 382.274489 835.206402 +L 377.842327 835.803014 +L 380.024334 831.899318 +L 382.274489 835.206402 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_84"> + <path d="M 808.44602 542.715306 +Q 1015.56426 398.788109 1221.764379 255.498918 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1217.338305 256.139132 +L 1221.764379 255.498918 +L 1219.620906 259.423905 +L 1217.338305 256.139132 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_85"> + <path d="M 1231.226196 2161.182273 +Q 1645.603796 2285.693782 2058.910655 2409.883556 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2055.655391 2406.817083 +L 2058.910655 2409.883556 +L 2054.504318 2410.647884 +L 2055.655391 2406.817083 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_86"> + <path d="M 1214.63349 2156.217229 +Q 800.019429 2032.668764 386.476844 1909.439581 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 389.739119 1912.498594 +L 386.476844 1909.439581 +L 390.881419 1908.665169 +L 389.739119 1912.498594 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_87"> + <path d="M 1650.405494 1108.685214 +Q 2053.470492 1441.436658 2455.673304 1773.47632 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2453.861921 1769.387446 +L 2455.673304 1773.47632 +L 2451.315375 1772.472102 +L 2453.861921 1769.387446 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_88"> + <path d="M 1637.026572 1097.678743 +Q 1232.493377 766.042487 828.824806 435.11505 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 830.650206 439.197686 +L 828.824806 435.11505 +L 833.186154 436.104311 +L 830.650206 439.197686 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_89"> + <path d="M 2298.383826 2104.138965 +Q 2342.538434 2037.289122 2386.076854 1971.372184 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2382.203482 1973.607577 +L 2386.076854 1971.372184 +L 2385.541145 1975.812119 +L 2382.203482 1973.607577 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_90"> + <path d="M 2289.619094 2119.050065 +Q 2252.420153 2190.667326 2215.736561 2261.292411 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2219.355192 2258.664577 +L 2215.736561 2261.292411 +L 2215.805472 2256.820806 +L 2219.355192 2258.664577 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_91"> + <path d="M 371.140533 1473.177786 +Q 325.010006 1515.61346 279.702314 1557.292204 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 284.000215 1556.056062 +L 279.702314 1557.292204 +L 281.292141 1553.112198 +L 284.000215 1556.056062 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_92"> + <path d="M 370.475346 1462.274244 +Q 316.334064 1423.507488 263.101813 1385.391626 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 265.189709 1389.346458 +L 263.101813 1385.391626 +L 267.518415 1386.094208 +L 265.189709 1389.346458 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_93"> + <path d="M 407.53725 1697.71264 +Q 356.855364 1519.32371 306.47903 1342.010252 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 305.648341 1346.404561 +L 306.47903 1342.010252 +L 309.496064 1345.311389 +L 305.648341 1346.404561 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_94"> + <path d="M 408.791946 1714.62994 +Q 384.481681 1902.519985 360.314879 2089.301237 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 362.811609 2085.590936 +L 360.314879 2089.301237 +L 358.844676 2085.077672 +L 362.811609 2085.590936 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_95"> + <path d="M 469.739575 1083.705166 +Q 434.878923 1163.997359 400.463533 1243.264008 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 403.891104 1240.391421 +L 400.463533 1243.264008 +L 400.222005 1238.798399 +L 403.891104 1240.391421 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_96"> + <path d="M 473.665413 1067.109554 +Q 478.619509 977.039286 483.512203 888.085365 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 481.295544 891.969489 +L 483.512203 888.085365 +L 485.289507 892.189168 +L 481.295544 891.969489 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_97"> + <path d="M 1486.103949 2278.221221 +Q 1772.971589 2344.484948 2058.749879 2410.497045 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2055.302631 2407.6481 +L 2058.749879 2410.497045 +L 2054.402374 2411.545476 +L 2055.302631 2407.6481 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_98"> + <path d="M 1470.134695 2280.543755 +Q 1206.981794 2429.848936 944.801313 2578.602395 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 949.267303 2578.36801 +L 944.801313 2578.602395 +L 947.293399 2574.888972 +L 949.267303 2578.36801 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_99"> + <path d="M 1529.49419 1398.42623 +Q 1796.852367 1901.736969 2063.68605 2404.060333 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2063.575839 2399.589555 +L 2063.68605 2404.060333 +L 2060.043301 2401.466036 +L 2063.575839 2399.589555 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_100"> + <path d="M 1521.375229 1383.133847 +Q 1255.015949 881.167506 989.180725 380.188772 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 989.288958 384.659598 +L 989.180725 380.188772 +L 992.822326 382.784681 +L 989.288958 384.659598 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_101"> + <path d="M 2156.9882 1448.97541 +Q 2150.055165 1944.250367 2143.13778 2438.4074 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2145.193572 2434.435786 +L 2143.13778 2438.4074 +L 2141.193963 2434.379798 +L 2145.193572 2434.435786 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_102"> + <path d="M 2157.24867 1431.651264 +Q 2165.2157 935.936007 2173.164764 441.33864 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2171.100743 445.305984 +L 2173.164764 441.33864 +L 2175.100227 445.370263 +L 2171.100743 445.305984 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_103"> + <path d="M 1489.646111 2317.925206 +Q 1774.688867 2364.611545 2058.62829 2411.117173 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2055.004154 2408.496937 +L 2058.62829 2411.117173 +L 2054.35762 2412.444341 +L 2055.004154 2408.496937 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_104"> + <path d="M 1473.326343 2320.335892 +Q 1208.70256 2449.975493 945.082799 2579.123222 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 949.554788 2579.159496 +L 945.082799 2579.123222 +L 947.795012 2575.567395 +L 949.554788 2579.159496 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_105"> + <path d="M 1510.381881 2498.637713 +Q 1785.048069 2456.326633 2058.609258 2414.185773 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.35139 2412.818087 +L 2058.609258 2414.185773 +L 2054.960389 2416.771455 +L 2054.35139 2412.818087 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_106"> + <path d="M 1493.256134 2501.220641 +Q 1219.062535 2541.691213 945.974986 2581.998533 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 950.224148 2583.393031 +L 945.974986 2581.998533 +L 949.640081 2579.435902 +L 950.224148 2583.393031 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_107"> + <path d="M 881.608271 897.115053 +Q 1187.205914 605.376126 1491.994863 314.409218 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1487.720562 315.724645 +L 1491.994863 314.409218 +L 1490.482623 318.617915 +L 1487.720562 315.724645 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_108"> + <path d="M 869.061693 909.052471 +Q 562.631963 1199.625894 257.013514 1489.430015 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 261.292207 1488.128944 +L 257.013514 1489.430015 +L 258.539873 1485.226418 +L 261.292207 1488.128944 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_109"> + <path d="M 1023.400408 1128.939795 +Q 737.124127 1512.65834 451.516403 1895.480766 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 455.511334 1893.470662 +L 451.516403 1895.480766 +L 452.305278 1891.078758 +L 455.511334 1893.470662 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_110"> + <path d="M 1033.747636 1115.048559 +Q 1319.699666 730.545484 1604.984503 346.939546 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1600.992634 348.955725 +L 1604.984503 346.939546 +L 1604.202325 351.342749 +L 1600.992634 348.955725 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_111"> + <path d="M 494.320061 1916.379139 +Q 440.029807 1911.871806 386.853754 1907.456977 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 390.674563 1909.781072 +L 386.853754 1907.456977 +L 391.005516 1905.794787 +L 390.674563 1909.781072 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_112"> + <path d="M 498.292369 1924.400458 +Q 471.142983 1966.986532 444.594616 2008.629857 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 448.431329 2006.332112 +L 444.594616 2008.629857 +L 445.058448 2004.181839 +L 448.431329 2006.332112 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_113"> + <path d="M 488.177846 1652.115038 +Q 381.315283 1698.467965 275.478419 1744.375984 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 279.943944 1744.619054 +L 275.478419 1744.375984 +L 278.35219 1740.949406 +L 279.943944 1744.619054 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_114"> + <path d="M 489.676559 1642.881433 +Q 442.879234 1600.84539 396.913657 1559.556471 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 398.552914 1563.71734 +L 396.913657 1559.556471 +L 401.225907 1560.741587 +L 398.552914 1563.71734 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_115"> + <path d="M 1194.165 2357.654944 +Q 1534.811783 2417.162955 1874.357212 2476.478569 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1870.761054 2473.820064 +L 1874.357212 2476.478569 +L 1870.072713 2477.760392 +L 1870.761054 2473.820064 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_116"> + <path d="M 1177.095922 2354.695486 +Q 836.533508 2296.094308 497.072934 2237.682725 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 500.675841 2240.332076 +L 497.072934 2237.682725 +L 501.354159 2236.39001 +L 500.675841 2240.332076 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_117"> + <path d="M 2084.162472 2016.615787 +Q 2076.39168 2210.330596 2068.665702 2402.928269 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2070.824424 2399.011648 +L 2068.665702 2402.928269 +L 2066.827639 2398.851319 +L 2070.824424 2399.011648 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_118"> + <path d="M 2093.170381 2007.826495 +Q 2313.837445 2004.414279 2533.386609 2001.019349 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2529.356164 1999.081434 +L 2533.386609 2001.019349 +L 2529.41801 2003.080956 +L 2529.356164 1999.081434 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_119"> + <path d="M 1192.218114 1705.407517 +Q 1626.875681 2056.331224 2060.663339 2406.552605 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2058.807422 2402.483751 +L 2060.663339 2406.552605 +L 2056.294706 2405.596027 +L 2058.807422 2402.483751 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_120"> + <path d="M 1178.743693 1694.53049 +Q 744.69985 1344.207818 311.526018 994.587344 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 313.382534 998.655925 +L 311.526018 994.587344 +L 315.894792 995.54328 +L 313.382534 998.655925 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_121"> + <path d="M 2198.665959 1536.919512 +Q 2134.107323 1970.526982 2069.713333 2403.028608 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2072.280583 2399.366747 +L 2069.713333 2403.028608 +L 2068.324194 2398.777691 +L 2072.280583 2399.366747 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_122"> + <path d="M 2201.23588 1519.790197 +Q 2266.775965 1086.249465 2332.148932 653.814207 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2329.573499 657.470317 +L 2332.148932 653.814207 +L 2333.52856 658.06822 +L 2329.573499 657.470317 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_123"> + <path d="M 1491.405189 2318.502931 +Q 1775.563786 2364.901797 2058.618962 2411.120492 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.993544 2408.502029 +L 2058.618962 2411.120492 +L 2054.348941 2412.449748 +L 2054.993544 2408.502029 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_124"> + <path d="M 1475.075786 2320.901273 +Q 1209.577623 2450.268288 945.084528 2579.145572 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 949.556429 2579.191377 +L 945.084528 2579.145572 +L 947.804313 2575.595534 +L 949.556429 2579.191377 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_125"> + <path d="M 1013.295052 2201.684538 +Q 714.765448 2007.501507 417.173053 1813.928099 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 419.43559 1817.785679 +L 417.173053 1813.928099 +L 421.616639 1814.432617 +L 419.43559 1817.785679 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_126"> + <path d="M 1027.797324 2211.152063 +Q 1325.96697 2406.512969 1623.201436 2601.261145 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1620.95172 2597.396073 +L 1623.201436 2601.261145 +L 1618.759549 2600.741875 +L 1620.95172 2597.396073 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_127"> + <path d="M 1497.99671 2393.012499 +Q 1778.808333 2402.705389 2058.502586 2412.359711 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.573961 2410.222914 +L 2058.502586 2412.359711 +L 2054.435973 2414.220533 +L 2054.573961 2410.222914 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_128"> + <path d="M 1481.15417 2395.538034 +Q 1212.818671 2488.071165 945.540126 2580.239814 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 949.973607 2580.826544 +L 945.540126 2580.239814 +L 948.669598 2577.045068 +L 949.973607 2580.826544 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_129"> + <path d="M 1744.541889 1134.187436 +Q 1363.783442 786.000433 983.850067 438.567922 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 985.452256 442.743205 +L 983.850067 438.567922 +L 988.151607 439.791341 +L 985.452256 442.743205 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_130"> + <path d="M 1757.314779 1145.87838 +Q 2138.144308 1494.76824 2518.149454 1842.902858 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2516.551071 1838.726116 +L 2518.149454 1842.902858 +L 2513.849031 1841.675519 +L 2516.551071 1838.726116 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_131"> + <path d="M 1272.831215 559.466291 +Q 1052.239834 589.972752 832.755947 620.326054 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 836.992217 621.759238 +L 832.755947 620.326054 +L 836.444256 617.796948 +L 836.992217 621.759238 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_132"> + <path d="M 1288.198516 552.905431 +Q 1475.287303 404.804364 1661.499476 257.397233 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1657.121854 258.311796 +L 1661.499476 257.397233 +L 1659.604553 261.448068 +L 1657.121854 258.311796 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_133"> + <path d="M 1498.988693 2399.993548 +Q 1779.303164 2406.248688 2058.499879 2412.478886 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.545493 2410.390147 +L 2058.499879 2412.478886 +L 2054.456256 2414.389151 +L 2054.545493 2410.390147 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_134"> + <path d="M 1482.111743 2402.525266 +Q 1213.317143 2491.613123 945.583805 2580.349239 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 950.009906 2580.989263 +L 945.583805 2580.349239 +L 948.751485 2577.192373 +L 950.009906 2580.989263 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_135"> + <path d="M 1644.57048 1609.175127 +Q 1959.888006 1184.116976 2274.539421 759.956765 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2270.549985 761.977755 +L 2274.539421 759.956765 +L 2273.762551 764.360908 +L 2270.549985 761.977755 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_136"> + <path d="M 1634.262684 1623.095636 +Q 1319.573584 2048.851832 1005.549033 2473.708931 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1009.534948 2471.681007 +L 1005.549033 2473.708931 +L 1006.318243 2469.303444 +L 1009.534948 2471.681007 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_137"> + <path d="M 423.34936 1617.647233 +Q 391.777857 1854.032057 360.354365 2089.308687 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 362.866299 2085.608662 +L 360.354365 2089.308687 +L 358.901505 2085.079125 +L 362.866299 2085.608662 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_138"> + <path d="M 423.118084 1600.508943 +Q 385.653029 1367.994127 348.365829 1136.583107 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 347.027609 1140.850327 +L 348.365829 1136.583107 +L 350.976673 1140.214015 +L 347.027609 1140.850327 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_139"> + <path d="M 1646.150396 1609.315716 +Q 1960.681954 1184.191111 2274.548541 759.96529 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2270.561672 761.991339 +L 2274.548541 759.96529 +L 2273.777259 764.370415 +L 2270.561672 761.991339 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_140"> + <path d="M 1635.847504 1623.229625 +Q 1320.369997 2048.922644 1005.558177 2473.717409 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1009.54666 2471.694539 +L 1005.558177 2473.717409 +L 1006.332971 2469.312901 +L 1009.54666 2471.694539 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_141"> + <path d="M 1489.541741 2326.999966 +Q 1774.622666 2369.213948 2058.597615 2411.264162 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.933721 2408.699814 +L 2058.597615 2411.264162 +L 2054.347801 2412.656669 +L 2054.933721 2408.699814 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_142"> + <path d="M 1473.15415 2329.434118 +Q 1208.639791 2454.578888 945.136065 2579.245515 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 949.607144 2579.342738 +L 945.136065 2579.245515 +L 947.896491 2575.726985 +L 949.607144 2579.342738 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_143"> + <path d="M 1493.218032 2363.147514 +Q 1776.430996 2387.550457 2058.530054 2411.85742 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.716513 2409.521417 +L 2058.530054 2411.85742 +L 2054.373127 2413.50665 +L 2054.716513 2409.521417 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_144"> + <path d="M 1476.556471 2365.643603 +Q 1210.444069 2472.916024 945.36862 2579.770439 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 949.826286 2580.129895 +L 945.36862 2579.770439 +L 948.330784 2576.419979 +L 949.826286 2580.129895 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_145"> + <path d="M 2368.670677 1515.222309 +Q 2495.046786 1518.637016 2620.305268 1522.021525 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2616.360749 1519.914213 +L 2620.305268 1522.021525 +L 2616.252707 1523.912754 +L 2616.360749 1519.914213 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_146"> + <path d="M 1485.705463 2318.12716 +Q 1772.716123 2364.718342 2058.623196 2411.130376 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.99535 2408.515278 +L 2058.623196 2411.130376 +L 2054.35441 2412.463593 +L 2054.99535 2408.515278 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_147"> + <path d="M 1469.389213 2320.571105 +Q 1206.725809 2450.084776 945.065166 2579.104008 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 949.537233 2579.128839 +L 945.065166 2579.104008 +L 947.768272 2575.541253 +L 949.537233 2579.128839 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_148"> + <path d="M 2214.369567 2268.621977 +Q 2211.967339 2277.813059 2209.84783 2285.922443 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2212.794313 2282.558184 +L 2209.84783 2285.922443 +L 2208.924313 2281.546701 +L 2212.794313 2282.558184 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_149"> + <path d="M 1432.797563 455.541076 +Q 1432.418372 369.976583 1432.044136 285.530112 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1430.061882 289.538936 +L 1432.044136 285.530112 +L 1434.061843 289.52121 +L 1430.061882 289.538936 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_150"> + <path d="M 618.309358 582.824674 +Q 601.849301 566.408487 586.180868 550.781815 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 587.600742 555.022565 +L 586.180868 550.781815 +L 590.425392 552.190366 +L 587.600742 555.022565 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_151"> + <path d="M 736.906436 695.303846 +Q 661.204928 622.590054 586.30974 550.65076 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 587.809058 554.864078 +L 586.30974 550.65076 +L 590.579985 551.979297 +L 587.809058 554.864078 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_152"> + <path d="M 765.334695 740.898721 +Q 675.269649 645.536298 585.972274 550.986698 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 587.264754 555.267994 +L 585.972274 550.986698 +L 590.172799 552.521491 +L 587.264754 555.267994 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_153"> + <path d="M 300.91305 1191.981652 +Q 312.697695 1194.663616 323.39218 1197.097481 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 319.935723 1194.259717 +L 323.39218 1197.097481 +L 319.048095 1198.159988 +L 319.935723 1194.259717 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_154"> + <path d="M 812.562072 2527.003977 +Q 815.451333 2526.263874 817.25753 2525.801204 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 812.886348 2524.856338 +L 817.25753 2525.801204 +L 813.878928 2528.73123 +L 812.886348 2524.856338 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_155"> + <path d="M 1622.221327 2312.958086 +Q 2007.675951 2214.103877 2392.047589 2115.527411 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2387.676138 2114.583794 +L 2392.047589 2115.527411 +L 2388.669825 2118.458402 +L 2387.676138 2114.583794 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_156"> + <path d="M 1605.460824 2317.32464 +Q 1220.280794 2419.242248 836.181601 2520.87387 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 840.560115 2521.784154 +L 836.181601 2520.87387 +L 839.536937 2517.917229 +L 840.560115 2521.784154 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_157"> + <path d="M 597.715225 1288.907356 +Q 475.54195 1269.721554 354.473172 1250.709199 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 358.114471 1253.305531 +L 354.473172 1250.709199 +L 358.735017 1249.353959 +L 358.114471 1253.305531 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_158"> + <path d="M 1449.438283 1268.293891 +Q 901.455492 1258.817936 354.590568 1249.361312 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 358.55539 1251.430172 +L 354.590568 1249.361312 +L 358.62455 1247.43077 +L 358.55539 1251.430172 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_159"> + <path d="M 1466.757501 1268.596578 +Q 2014.777927 1278.275443 2561.680493 1287.934564 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2557.716434 1285.864241 +L 2561.680493 1287.934564 +L 2557.645799 1289.863617 +L 2557.716434 1285.864241 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_160"> + <path d="M 565.059719 1018.08513 +Q 578.172129 876.444657 591.181478 735.917458 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 588.821269 739.716065 +L 591.181478 735.917458 +L 592.804238 740.084789 +L 588.821269 739.716065 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_161"> + <path d="M 558.176936 1032.879348 +Q 454.534297 1137.954616 351.676783 1242.233906 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 355.909617 1240.790605 +L 351.676783 1242.233906 +L 353.061843 1237.981658 +L 355.909617 1240.790605 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_162"> + <path d="M 2264.942847 1448.015034 +Q 2420.521932 1583.934979 2575.259042 1719.119342 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2573.562552 1714.981478 +L 2575.259042 1719.119342 +L 2570.930856 1717.993816 +L 2573.562552 1714.981478 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_163"> + <path d="M 2263.062975 1435.002434 +Q 2369.263244 1267.690363 2474.864356 1101.322225 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2471.032189 1103.627544 +L 2474.864356 1101.322225 +L 2474.409311 1105.77115 +L 2471.032189 1103.627544 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_164"> + <path d="M 521.712213 999.976954 +Q 555.820199 867.269189 589.649878 735.644266 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 586.71713 739.020505 +L 589.649878 735.644266 +L 590.59122 740.016207 +L 586.71713 739.020505 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_165"> + <path d="M 514.47276 1015.368165 +Q 432.186535 1128.774768 350.556906 1241.27645 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 354.52479 1239.213467 +L 350.556906 1241.27645 +L 351.28725 1236.864354 +L 354.52479 1239.213467 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_166"> + <path d="M 1180.980563 695.173781 +Q 1562.520065 569.20533 1942.997901 443.587397 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1938.572539 442.942282 +L 1942.997901 443.587397 +L 1939.826591 446.740617 +L 1938.572539 442.942282 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_167"> + <path d="M 1164.529443 700.578989 +Q 782.673089 825.433213 401.879407 949.939978 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 406.302892 950.59784 +L 401.879407 949.939978 +L 405.059787 946.795907 +L 406.302892 950.59784 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_168"> + <path d="M 1969.182855 1397.906833 +Q 2018.307439 1900.991422 2067.323367 2402.963269 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2068.925162 2398.787835 +L 2067.323367 2402.963269 +L 2064.944096 2399.176573 +L 2068.925162 2398.787835 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_169"> + <path d="M 1967.548998 1380.670554 +Q 1921.231769 876.882929 1875.016898 374.208642 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1873.391505 378.374947 +L 1875.016898 374.208642 +L 1877.374706 378.00874 +L 1873.391505 378.374947 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_170"> + <path d="M 424.484968 1081.595249 +Q 500.672652 816.897388 576.551089 553.273941 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 573.522721 556.564684 +L 576.551089 553.273941 +L 577.366662 557.671081 +L 573.522721 556.564684 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_171"> + <path d="M 419.60854 1098.212254 +Q 340.723361 1361.948652 262.158569 1624.613904 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 265.220941 1621.354781 +L 262.158569 1624.613904 +L 261.388694 1620.208533 +L 265.220941 1621.354781 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_172"> + <path d="M 906.656458 681.668496 +Q 620.528769 860.596667 335.349024 1038.932047 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 339.80091 1038.506947 +L 335.349024 1038.932047 +L 337.680076 1035.115478 +L 339.80091 1038.506947 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_173"> + <path d="M 921.320861 672.453768 +Q 1206.531914 492.368088 1490.79761 312.879318 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1486.347615 313.323781 +L 1490.79761 312.879318 +L 1488.483183 316.705991 +L 1486.347615 313.323781 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_174"> + <path d="M 2257.348027 1837.141898 +Q 2432.766209 1602.218575 2607.515461 1368.191094 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2603.519696 1370.199541 +L 2607.515461 1368.191094 +L 2606.724759 1372.592774 +L 2603.519696 1370.199541 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_175"> + <path d="M 2249.500241 1852.321981 +Q 2160.219218 2128.390212 2071.282227 2403.394656 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2074.416029 2400.204157 +L 2071.282227 2403.394656 +L 2070.610109 2398.973315 +L 2074.416029 2400.204157 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_176"> + <path d="M 1712.142035 1359.284009 +Q 1888.821549 1881.889669 2065.142994 2403.436185 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2065.756581 2399.006342 +L 2065.142994 2403.436185 +L 2061.967272 2400.28741 +L 2065.756581 2399.006342 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_177"> + <path d="M 1706.581483 1342.879635 +Q 1529.258898 821.128829 1352.296078 300.436592 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1351.68959 304.867413 +L 1352.296078 300.436592 +L 1355.476842 303.580275 +L 1351.68959 304.867413 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_178"> + <path d="M 1866.245427 2412.908087 +Q 1961.649291 2454.048089 2056.026507 2494.74538 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2053.145403 2491.324965 +L 2056.026507 2494.74538 +L 2051.561512 2494.998014 +L 2053.145403 2491.324965 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_179"> + <path d="M 1854.3765 2417.204023 +Q 1812.402208 2499.980395 1770.933556 2581.759607 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1774.526364 2579.096577 +L 1770.933556 2581.759607 +L 1770.958817 2577.287543 +L 1774.526364 2579.096577 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_180"> + <path d="M 2242.170442 1182.520185 +Q 2382.071963 1512.027774 2521.536544 1840.506246 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2521.814241 1836.042741 +L 2521.536544 1840.506246 +L 2518.132357 1837.605985 +L 2521.814241 1836.042741 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_181"> + <path d="M 2235.449713 1166.552095 +Q 2097.634545 836.219729 1960.249859 506.919199 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1959.9442 511.380877 +L 1960.249859 506.919199 +L 1963.635806 509.840733 +L 1959.9442 511.380877 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_182"> + <path d="M 1888.400321 771.348821 +Q 1570.938755 583.557301 1254.439467 396.335008 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1256.863955 400.092913 +L 1254.439467 396.335008 +L 1258.900485 396.65016 +L 1256.863955 400.092913 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_183"> + <path d="M 1903.31655 780.154515 +Q 2221.123859 967.389599 2537.967881 1154.057165 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2535.536724 1150.30357 +L 2537.967881 1154.057165 +L 2533.50631 1153.749934 +L 2535.536724 1150.30357 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_184"> + <path d="M 1506.469321 2495.82563 +Q 1783.087492 2454.895213 2058.599671 2414.128448 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.350007 2412.735483 +L 2058.599671 2414.128448 +L 2054.935501 2416.6924 +L 2054.350007 2412.735483 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_185"> + <path d="M 1489.344497 2498.408824 +Q 1217.101936 2540.259777 945.964427 2581.940855 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 950.221868 2583.309866 +L 945.964427 2581.940855 +L 949.614101 2579.356309 +L 950.221868 2583.309866 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_186"> + <path d="M 1530.431533 1429.208198 +Q 1990.741525 1563.012481 2449.977921 1696.504688 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2446.695165 1693.467664 +L 2449.977921 1696.504688 +L 2445.578648 1697.308678 +L 2446.695165 1693.467664 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_187"> + <path d="M 1513.522033 1425.767743 +Q 888.723658 1351.337671 265.035468 1277.039853 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 268.770804 1279.498971 +L 265.035468 1277.039853 +L 269.243965 1275.527055 +L 268.770804 1279.498971 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_188"> + <path d="M 1526.31699 1434.370132 +Q 1795.198033 1919.747425 2063.537302 2404.146721 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2063.348486 2399.678572 +L 2063.537302 2404.146721 +L 2059.849494 2401.616884 +L 2063.348486 2399.678572 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_189"> + <path d="M 1522.823037 1418.157304 +Q 1566.468695 882.9422 1610.023482 348.841432 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1607.704986 352.665642 +L 1610.023482 348.841432 +L 1611.691752 352.990754 +L 1607.704986 352.665642 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_190"> + <path d="M 1502.780509 2431.537181 +Q 1781.1977 2422.261327 2058.497476 2413.022702 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.433098 2411.157002 +L 2058.497476 2413.022702 +L 2054.56629 2415.154784 +L 2054.433098 2411.157002 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_191"> + <path d="M 1485.77491 2434.095868 +Q 1215.214054 2507.626023 945.732099 2580.862967 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 950.116605 2581.743935 +L 945.732099 2580.862967 +L 949.067577 2577.883943 +L 950.116605 2581.743935 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_192"> + <path d="M 1531.338851 1429.760488 +Q 1991.195706 1563.290071 2449.978874 1696.507885 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2446.695248 1693.471802 +L 2449.978874 1696.507885 +L 2445.579832 1697.313136 +L 2446.695248 1693.471802 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_193"> + <path d="M 1514.41694 1426.317036 +Q 889.174169 1351.614195 265.041536 1277.04399 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 268.776019 1279.504404 +L 265.041536 1277.04399 +L 269.250557 1275.532652 +L 268.776019 1279.504404 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_194"> + <path d="M 1527.211086 1434.918927 +Q 1795.646477 1920.020217 2063.540546 2404.143258 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2063.353794 2399.675023 +L 2063.540546 2404.143258 +L 2059.853907 2401.611719 +L 2063.353794 2399.675023 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_195"> + <path d="M 1523.716236 1418.714263 +Q 1566.9192 883.218789 1610.032254 348.837728 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1607.717062 352.663939 +L 1610.032254 348.837728 +L 1611.704108 352.985608 +L 1607.717062 352.663939 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_196"> + <path d="M 2211.958972 1127.079756 +Q 2343.468463 1069.620514 2473.953441 1012.608903 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2469.487285 1012.377692 +L 2473.953441 1012.608903 +L 2471.088779 1016.043101 +L 2469.487285 1012.377692 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_197"> + <path d="M 1611.977825 1759.024827 +Q 1126.524499 2042.414608 642.036725 2325.240733 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 646.49949 2324.951376 +L 642.036725 2325.240733 +L 644.482899 2321.496907 +L 646.49949 2324.951376 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_198"> + <path d="M 1626.938259 1750.292339 +Q 2111.899406 1467.245736 2595.894952 1184.762705 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2591.432162 1185.051679 +L 2595.894952 1184.762705 +L 2593.448457 1188.506321 +L 2591.432162 1185.051679 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_199"> + <path d="M 1645.265325 1610.214835 +Q 1960.238247 1184.641048 2274.546049 759.965935 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2270.558845 761.991324 +L 2274.546049 759.965935 +L 2273.774038 764.370932 +L 2270.558845 761.991324 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_200"> + <path d="M 1634.957533 1624.135347 +Q 1319.923827 2049.375905 1005.555662 2473.7181 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1009.543811 2471.694573 +L 1005.555662 2473.7181 +L 1006.32973 2469.313464 +L 1009.543811 2471.694573 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_201"> + <path d="M 2315.125004 1935.429469 +Q 2423.56632 1851.875813 2531.121997 1769.004539 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2526.73276 1769.861623 +L 2531.121997 1769.004539 +L 2529.174122 1773.030179 +L 2526.73276 1769.861623 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_202"> + <path d="M 2310.545189 1949.066152 +Q 2349.035069 2090.192439 2387.230768 2230.240088 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2388.1078 2225.854793 +L 2387.230768 2230.240088 +L 2384.248751 2226.907285 +L 2388.1078 2225.854793 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_203"> + <path d="M 642.565529 1940.974275 +Q 599.040749 2108.130347 555.797694 2274.204462 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 558.741086 2270.837499 +L 555.797694 2274.204462 +L 554.870158 2269.829571 +L 558.741086 2270.837499 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_204"> + <path d="M 636.736459 1929.304234 +Q 481.338644 1865.504693 326.975091 1802.129774 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 329.915788 1805.499091 +L 326.975091 1802.129774 +L 331.434963 1801.798806 +L 329.915788 1805.499091 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_205"> + <path d="M 955.485169 635.957644 +Q 1126.88295 479.151525 1297.455828 323.100082 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1293.154562 324.324462 +L 1297.455828 323.100082 +L 1295.854572 327.275723 +L 1293.154562 324.324462 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_206"> + <path d="M 940.54671 643.187028 +Q 704.522031 681.409565 469.601009 719.453372 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 473.869288 720.78821 +L 469.601009 719.453372 +L 473.229847 716.839652 +L 473.869288 720.78821 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_207"> + <path d="M 1727.772669 2300.894112 +Q 1763.977797 2378.595621 1799.710719 2455.283708 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1799.83417 2450.813276 +L 1799.710719 2455.283708 +L 1796.208444 2452.502688 +L 1799.83417 2450.813276 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_208"> + <path d="M 845.908672 743.24265 +Q 872.27344 673.050564 898.245081 603.905116 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 894.966305 606.946436 +L 898.245081 603.905116 +L 898.710872 608.352929 +L 894.966305 606.946436 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_209"> + <path d="M 834.508899 749.069584 +Q 742.327205 723.905172 651.224079 699.035195 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 654.556178 702.017999 +L 651.224079 699.035195 +L 655.609581 698.159198 +L 654.556178 702.017999 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_210"> + <path d="M 1888.233094 616.155969 +Q 1942.629238 502.254069 1996.543567 389.361057 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1993.015021 392.108668 +L 1996.543567 389.361057 +L 1996.624527 393.83246 +L 1993.015021 392.108668 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_211"> + <path d="M 1974.366245 1397.466157 +Q 2020.921151 1900.769212 2067.37308 2402.958986 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2068.996157 2398.791777 +L 2067.37308 2402.958986 +L 2065.01316 2399.1602 +L 2068.996157 2398.791777 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_212"> + <path d="M 1972.732429 1380.229875 +Q 1923.845482 876.660719 1875.066567 374.204366 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1873.462432 378.378902 +L 1875.066567 374.204366 +L 1877.443715 377.992395 +L 1873.462432 378.378902 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_213"> + <path d="M 1642.765526 568.84411 +Q 1593.62399 485.787397 1545.051769 403.692913 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1545.367323 408.153902 +L 1545.051769 403.692913 +L 1548.809893 406.117063 +L 1545.367323 408.153902 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_214"> + <path d="M 1652.024936 569.125219 +Q 1723.300512 463.661171 1793.950052 359.123447 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1790.053215 361.31768 +L 1793.950052 359.123447 +L 1793.367336 363.557457 +L 1790.053215 361.31768 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_215"> + <path d="M 884.805205 731.659584 +Q 795.777847 599.644475 707.375598 468.556316 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 707.95388 472.990906 +L 707.375598 468.556316 +L 711.27024 470.754444 +L 707.95388 472.990906 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_216"> + <path d="M 1362.152885 1462.817148 +Q 1259.896429 2042.186374 1157.834298 2620.454584 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1160.499095 2616.863087 +L 1157.834298 2620.454584 +L 1156.559978 2616.167847 +L 1160.499095 2616.863087 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_217"> + <path d="M 1365.164369 1445.763501 +Q 1467.535033 866.355406 1569.711174 288.048293 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1567.045731 291.639311 +L 1569.711174 288.048293 +L 1570.984723 292.335258 +L 1567.045731 291.639311 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_218"> + <path d="M 1278.660526 2182.723989 +Q 1744.412047 2284.377622 2209.071248 2385.792848 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2205.589721 2382.985898 +L 2209.071248 2385.792848 +L 2204.736772 2386.893899 +L 2205.589721 2382.985898 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_219"> + <path d="M 1261.731182 2179.047045 +Q 795.728074 2078.329627 330.817768 1977.848395 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 334.304989 1980.648269 +L 330.817768 1977.848395 +L 335.149999 1976.738543 +L 334.304989 1980.648269 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_220"> + <path d="M 1282.3194 1088.956162 +Q 1352.966304 718.410573 1423.403819 348.963234 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1420.690075 352.517893 +L 1423.403819 348.963234 +L 1424.619299 353.267024 +L 1420.690075 352.517893 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_221"> + <path d="M 1279.06015 1088.955144 +Q 1203.400745 695.976531 1127.952711 304.095791 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1126.745003 308.401768 +L 1127.952711 304.095791 +L 1130.672868 307.645544 +L 1126.745003 308.401768 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_222"> + <path d="M 1278.974939 1105.948893 +Q 1140.216971 1789.517255 1001.681417 2471.98993 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1004.437177 2468.467745 +L 1001.681417 2471.98993 +L 1000.517125 2467.672012 +L 1004.437177 2468.467745 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_223"> + <path d="M 1285.015048 1089.957155 +Q 1506.592629 704.810876 1727.612679 320.633698 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1723.884411 323.10352 +L 1727.612679 320.633698 +L 1727.351575 325.098206 +L 1723.884411 323.10352 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_224"> + <path d="M 1508.199848 863.832633 +Q 1026.541565 835.878342 545.999439 807.98883 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 549.876839 810.217231 +L 545.999439 807.98883 +L 550.108599 806.22395 +L 549.876839 810.217231 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_225"> + <path d="M 1525.490892 864.834322 +Q 2006.808433 892.666352 2487.009805 920.43384 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2483.131932 918.206263 +L 2487.009805 920.43384 +L 2482.901019 922.199592 +L 2483.131932 918.206263 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_226"> + <path d="M 722.908039 873.849857 +Q 516.278124 1100.029248 310.402299 1325.383202 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 314.576805 1323.77899 +L 310.402299 1325.383202 +L 311.623633 1321.08107 +L 314.576805 1323.77899 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_227"> + <path d="M 734.559572 861.033247 +Q 940.262208 633.64952 1145.214792 407.094901 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1141.048167 408.719474 +L 1145.214792 407.094901 +L 1144.014476 411.402945 +L 1141.048167 408.719474 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_228"> + <path d="M 802.015504 946.104972 +Q 556.333778 1136.698718 311.535432 1326.60716 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 315.921814 1325.735581 +L 311.535432 1326.60716 +L 313.469997 1322.575107 +L 315.921814 1325.735581 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_229"> + <path d="M 813.493597 933.481643 +Q 980.314878 670.321092 1146.53756 408.104829 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1142.706757 410.412413 +L 1146.53756 408.104829 +L 1146.085145 412.554023 +L 1142.706757 410.412413 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_230"> + <path d="M 2303.17151 2106.941106 +Q 2345.052349 2038.766432 2386.347968 1971.544396 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2382.550091 1973.905778 +L 2386.347968 1971.544396 +L 2385.958347 1975.999527 +L 2382.550091 1973.905778 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_231"> + <path d="M 2294.397465 2121.871921 +Q 2254.93353 2192.145577 2216.017039 2261.444397 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2219.719473 2258.936015 +L 2216.017039 2261.444397 +L 2216.231793 2256.977421 +L 2219.719473 2258.936015 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_232"> + <path d="M 1810.904832 2233.51081 +Q 1881.111525 2315.752147 1950.592317 2397.14315 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1949.516376 2392.802372 +L 1950.592317 2397.14315 +L 1946.474131 2395.399436 +L 1949.516376 2392.802372 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_233"> + <path d="M 1809.344009 2234.579103 +Q 1892.782657 2391.849539 1975.697319 2548.132332 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1975.589397 2543.661498 +L 1975.697319 2548.132332 +L 1972.055899 2545.536169 +L 1975.589397 2543.661498 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_234"> + <path d="M 909.021925 579.35442 +Q 858.312953 483.565037 808.12707 388.763772 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 808.230934 393.234702 +L 808.12707 388.763772 +L 811.766132 391.363239 +L 808.230934 393.234702 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_235"> + <path d="M 1943.965526 2380.928934 +Q 1863.248812 2452.861071 1783.366783 2524.049366 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1787.683666 2522.881238 +L 1783.366783 2524.049366 +L 1785.022411 2519.894983 +L 1787.683666 2522.881238 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_236"> + <path d="M 1957.464191 2370.10317 +Q 2044.278168 2307.601732 2130.184799 2245.753535 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2125.770028 2246.46753 +L 2130.184799 2245.753535 +L 2128.107133 2249.71375 +L 2125.770028 2246.46753 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_237"> + <path d="M 1514.58616 2503.163492 +Q 1787.157116 2458.628382 2058.624668 2414.273557 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.354513 2412.944733 +L 2058.624668 2414.273557 +L 2054.999516 2416.892387 +L 2054.354513 2412.944733 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_238"> + <path d="M 1497.460972 2505.74747 +Q 1221.167337 2543.993606 945.981176 2582.08644 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 950.217631 2583.519076 +L 945.981176 2582.08644 +L 949.669158 2579.556858 +L 950.217631 2583.519076 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_239"> + <path d="M 2156.988199 1448.97541 +Q 2150.055165 1944.250367 2143.13778 2438.4074 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2145.193572 2434.435786 +L 2143.13778 2438.4074 +L 2141.193963 2434.379798 +L 2145.193572 2434.435786 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_240"> + <path d="M 2157.248669 1431.651263 +Q 2165.215699 935.936007 2173.164764 441.33864 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2171.100743 445.305984 +L 2173.164764 441.33864 +L 2175.100226 445.370263 +L 2171.100743 445.305984 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_241"> + <path d="M 1512.310959 2507.159718 +Q 1786.023165 2460.653731 2058.633135 2414.335024 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.354636 2413.033313 +L 2058.633135 2414.335024 +L 2055.024667 2416.976796 +L 2054.354636 2413.033313 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_242"> + <path d="M 1495.185198 2509.742704 +Q 1220.033381 2546.01894 945.990006 2582.149037 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 950.217109 2583.60904 +L 945.990006 2582.149037 +L 949.69427 2579.643357 +L 950.217109 2583.60904 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_243"> + <path d="M 1512.311021 2507.157359 +Q 1786.023197 2460.652534 2058.633135 2414.334983 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.354642 2413.033255 +L 2058.633135 2414.334983 +L 2055.024656 2416.976741 +L 2054.354642 2413.033255 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_244"> + <path d="M 1495.18526 2509.740346 +Q 1220.033413 2546.017742 945.990007 2582.148996 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 950.217115 2583.608981 +L 945.990007 2582.148996 +L 949.69426 2579.643301 +L 950.217115 2583.608981 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_245"> + <path d="M 548.685536 1893.971019 +Q 467.215362 1899.990378 386.860182 1905.927355 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 390.996675 1907.627185 +L 386.860182 1905.927355 +L 390.701942 1903.638059 +L 390.996675 1907.627185 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_246"> + <path d="M 551.340488 1899.596969 +Q 498.328946 1955.105278 446.089579 2009.805043 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 450.298569 2008.293617 +L 446.089579 2009.805043 +L 447.405832 2005.530996 +L 450.298569 2008.293617 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_247"> + <path d="M 1512.801692 2493.514281 +Q 1786.251111 2453.729313 2058.594144 2414.105316 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.347866 2412.702062 +L 2058.594144 2414.105316 +L 2054.923774 2416.660386 +L 2054.347866 2412.702062 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_248"> + <path d="M 1495.676169 2496.096865 +Q 1220.265566 2539.093899 945.959616 2581.918474 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 950.220245 2583.277533 +L 945.959616 2581.918474 +L 949.60324 2579.325406 +L 950.220245 2583.277533 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_249"> + <path d="M 1492.34458 2349.233488 +Q 1776.005292 2380.490976 2058.554697 2411.626006 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.797824 2409.199918 +L 2058.554697 2411.626006 +L 2054.359703 2413.175852 +L 2054.797824 2409.199918 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_250"> + <path d="M 1475.776498 2351.702097 +Q 1210.015357 2465.855761 945.281491 2579.568174 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 949.746122 2579.827155 +L 945.281491 2579.568174 +L 948.167454 2576.151858 +L 949.746122 2579.827155 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_251"> + <path d="M 1509.145205 2485.219855 +Q 1784.415979 2449.515324 2058.578006 2413.954605 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.353976 2412.485737 +L 2058.578006 2413.954605 +L 2054.868494 2416.452508 +L 2054.353976 2412.485737 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_252"> + <path d="M 1492.019445 2487.802842 +Q 1218.426195 2534.880532 945.934786 2581.768627 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 950.216011 2583.061342 +L 945.934786 2581.768627 +L 949.537692 2579.119276 +L 950.216011 2583.061342 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_253"> + <path d="M 1743.694932 1135.286302 +Q 1363.35644 786.554437 983.842017 438.57816 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 985.438658 442.755568 +L 983.842017 438.57816 +L 988.141928 439.807292 +L 985.438658 442.755568 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_254"> + <path d="M 1756.467815 1146.977254 +Q 2137.717306 1495.322245 2518.141412 1842.913087 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2516.537487 1838.73847 +L 2518.141412 1842.913087 +L 2513.839364 1841.691457 +L 2516.537487 1838.73847 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_255"> + <path d="M 373.923868 1620.510719 +Q 366.626414 1855.427268 359.363673 2089.226322 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 361.486905 2085.290349 +L 359.363673 2089.226322 +L 357.488834 2085.166152 +L 361.486905 2085.290349 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_256"> + <path d="M 373.704526 1603.208504 +Q 360.501307 1369.390085 347.361121 1136.687921 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 345.589814 1140.794315 +L 347.361121 1136.687921 +L 349.583452 1140.568803 +L 345.589814 1140.794315 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_257"> + <path d="M 1923.011856 2220.971119 +Q 1993.028457 2313.383421 2062.36988 2404.904581 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2061.548414 2400.508538 +L 2062.36988 2404.904581 +L 2058.360166 2402.924129 +L 2061.548414 2400.508538 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_258"> + <path d="M 1404.368335 1671.480606 +Q 839.758935 1709.582337 276.265032 1747.60879 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 280.390615 1749.334931 +L 276.265032 1747.60879 +L 280.121295 1745.344008 +L 280.390615 1749.334931 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_259"> + <path d="M 1421.644823 1670.316996 +Q 1985.738598 1632.39796 2548.716856 1594.55391 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2544.591723 1592.826693 +L 2548.716856 1594.55391 +L 2544.860002 1596.817686 +L 2544.591723 1592.826693 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_260"> + <path d="M 1433.142964 442.434113 +Q 1432.601553 363.422786 1432.067803 285.529466 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1430.095259 289.543077 +L 1432.067803 285.529466 +L 1434.095165 289.515668 +L 1430.095259 289.543077 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_261"> + <path d="M 1623.343719 2317.339558 +Q 2008.243186 2216.318188 2392.061246 2115.580645 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2387.684559 2114.661619 +L 2392.061246 2115.580645 +L 2388.700013 2118.530579 +L 2387.684559 2114.661619 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_262"> + <path d="M 1606.583225 2321.706145 +Q 1220.848029 2421.45656 836.19526 2520.92706 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 840.568594 2521.861915 +L 836.19526 2520.92706 +L 839.567144 2517.989306 +L 840.568594 2521.861915 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_263"> + <path d="M 1560.977843 1070.251345 +Q 1828.254362 798.294355 2094.747203 527.134767 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2090.516997 528.585751 +L 2094.747203 527.134767 +L 2093.369867 531.389522 +L 2090.516997 528.585751 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_264"> + <path d="M 1546.334869 1077.652295 +Q 949.861904 1162.810101 354.495751 1247.809889 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 358.738269 1249.22447 +L 354.495751 1247.809889 +L 358.172926 1245.264623 +L 358.738269 1249.22447 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_265"> + <path d="M 1563.387869 1078.194437 +Q 2063.183452 1182.268015 2561.88448 1286.113671 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2558.376198 1283.340233 +L 2561.88448 1286.113671 +L 2557.56076 1287.256234 +L 2558.376198 1283.340233 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_266"> + <path d="M 1531.114702 1709.621707 +Q 1022.449634 1913.5212 514.822329 2117.004702 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 519.279289 2117.37282 +L 514.822329 2117.004702 +L 517.790999 2113.660005 +L 519.279289 2117.37282 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_267"> + <path d="M 1547.182156 1703.146106 +Q 2055.305487 1497.253468 2562.392619 1291.780699 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2557.934313 1291.429263 +L 2562.392619 1291.780699 +L 2559.436486 1295.136482 +L 2557.934313 1291.429263 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_268"> + <path d="M 485.840065 985.200298 +Q 537.318632 859.694122 588.372921 735.222349 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 585.004582 738.164166 +L 588.372921 735.222349 +L 588.705372 739.68211 +L 585.004582 738.164166 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_269"> + <path d="M 478.44792 1000.843432 +Q 413.682977 1121.203702 349.447813 1240.579423 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 353.104417 1238.004692 +L 349.447813 1240.579423 +L 349.58199 1236.109301 +L 353.104417 1238.004692 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_270"> + <path d="M 2506.718723 1421.131375 +Q 2543.623368 1569.140676 2580.257524 1716.065156 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2581.230379 1711.700119 +L 2580.257524 1716.065156 +L 2577.349207 1712.66785 +L 2581.230379 1711.700119 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_271"> + <path d="M 2503.960243 1404.087211 +Q 2492.36368 1252.892875 2480.85262 1102.813298 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2479.164377 1106.954534 +L 2480.85262 1102.813298 +L 2483.152663 1106.648634 +L 2479.164377 1106.954534 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_272"> + <path d="M 1180.980543 695.173735 +Q 1562.520055 569.205307 1942.9979 443.587397 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1938.572539 442.942281 +L 1942.9979 443.587397 +L 1939.826591 446.740616 +L 1938.572539 442.942281 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_273"> + <path d="M 1164.529423 700.578943 +Q 782.673079 825.433189 401.879407 949.939977 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 406.302892 950.597839 +L 401.879407 949.939977 +L 405.059787 946.795906 +L 406.302892 950.597839 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_274"> + <path d="M 906.674086 681.695427 +Q 620.537694 860.610303 335.349275 1038.932433 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 339.801181 1038.507543 +L 335.349275 1038.932433 +L 337.680507 1035.115974 +L 339.801181 1038.507543 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_275"> + <path d="M 921.338488 672.480698 +Q 1206.540839 492.381724 1490.797861 312.879704 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1486.347888 313.324376 +L 1490.797861 312.879704 +L 1488.483615 316.706486 +L 1486.347888 313.324376 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_276"> + <path d="M 1708.186298 1360.69781 +Q 1886.828281 1882.602073 2065.108198 2403.448553 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2065.705047 2399.016423 +L 2065.108198 2403.448553 +L 2061.920603 2400.311796 +L 2065.705047 2399.016423 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_277"> + <path d="M 1702.628525 1344.301512 +Q 1527.267015 821.845308 1352.261266 300.449026 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1351.638029 304.877522 +L 1352.261266 300.449026 +L 1355.43012 303.604713 +L 1351.638029 304.877522 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_278"> + <path d="M 1860.292772 2401.453707 +Q 1958.738139 2448.179149 2056.173467 2494.425194 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2053.417416 2490.903236 +L 2056.173467 2494.425194 +L 2051.702271 2494.51686 +L 2053.417416 2490.903236 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_279"> + <path d="M 1848.94029 2405.647702 +Q 1809.490004 2494.108275 1770.495091 2581.547752 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1773.950872 2578.709165 +L 1770.495091 2581.547752 +L 1770.29769 2577.079975 +L 1773.950872 2578.709165 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_280"> + <path d="M 1876.958036 1352.653669 +Q 2040.734056 1819.931435 2204.140273 2286.154096 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2204.704653 2281.717715 +L 2204.140273 2286.154096 +L 2200.929797 2283.040763 +L 2204.704653 2281.717715 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_281"> + <path d="M 1871.21779 1336.308682 +Q 1707.081503 869.875339 1543.316341 404.496638 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1542.757517 408.933722 +L 1543.316341 404.496638 +L 1546.530714 407.605947 +L 1542.757517 408.933722 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_282"> + <path d="M 2266.445228 1506.568634 +Q 2443.937363 1514.24017 2620.312508 1521.863428 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2616.402602 1519.692567 +L 2620.312508 1521.863428 +L 2616.229876 1523.688836 +L 2616.402602 1519.692567 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_283"> + <path d="M 1512.26627 2488.850471 +Q 1785.979268 2451.361416 2058.584573 2414.024077 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.350176 2412.585368 +L 2058.584573 2414.024077 +L 2054.892968 2416.548369 +L 2054.350176 2412.585368 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_284"> + <path d="M 1495.140681 2491.432477 +Q 1219.993726 2536.726029 945.949958 2581.83798 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 950.221698 2583.161701 +L 945.949958 2581.83798 +L 949.571979 2579.21482 +L 950.221698 2583.161701 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_285"> + <path d="M 1678.007861 2122.787475 +Q 2097.563249 1987.475792 2516.054574 1852.507282 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2511.633776 1851.831601 +L 2516.054574 1852.507282 +L 2512.861551 1855.638512 +L 2511.633776 1851.831601 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_286"> + <path d="M 1661.528564 2128.124815 +Q 1242.464453 2264.426055 824.463552 2400.381484 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 828.886011 2401.046202 +L 824.463552 2400.381484 +L 827.648802 2397.242347 +L 828.886011 2401.046202 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_287"> + <path d="M 1275.707617 1738.926143 +Q 1668.690684 2073.006158 2060.821924 2406.362024 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2059.069734 2402.247437 +L 2060.821924 2406.362024 +L 2056.47894 2405.295024 +L 2059.069734 2402.247437 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_288"> + <path d="M 1262.545303 1727.668618 +Q 871.826421 1391.460471 481.955012 1055.981562 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 483.682522 1060.106573 +L 481.955012 1055.981562 +L 486.291527 1057.074561 +L 483.682522 1060.106573 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_289"> + <path d="M 722.745863 873.700074 +Q 516.195905 1099.953313 310.399745 1325.380847 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 314.573681 1323.775151 +L 310.399745 1325.380847 +L 311.61955 1321.078281 +L 314.573681 1323.775151 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_290"> + <path d="M 734.397395 860.883465 +Q 940.179991 633.573586 1145.212239 407.092549 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1141.045038 408.715643 +L 1145.212239 407.092549 +L 1144.010394 411.400167 +L 1141.045038 408.715643 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_291"> + <path d="M 1650.405494 1108.685214 +Q 2053.470492 1441.436657 2455.673304 1773.47632 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2453.861921 1769.387446 +L 2455.673304 1773.47632 +L 2451.315375 1772.472102 +L 2453.861921 1769.387446 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_292"> + <path d="M 1637.026572 1097.678743 +Q 1232.493377 766.042487 828.824806 435.11505 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 830.650206 439.197686 +L 828.824806 435.11505 +L 833.186154 436.104311 +L 830.650206 439.197686 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_293"> + <path d="M 1515.209985 2498.091802 +Q 1787.461184 2456.055353 2058.607442 2414.18951 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.349097 2412.823313 +L 2058.607442 2414.18951 +L 2054.959476 2416.776468 +L 2054.349097 2412.823313 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_294"> + <path d="M 1498.085158 2500.675077 +Q 1221.475627 2541.419915 945.972195 2582.001824 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 950.22095 2583.39756 +L 945.972195 2582.001824 +L 949.638037 2579.440261 +L 950.22095 2583.39756 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_295"> + <path d="M 1498.168524 2397.589544 +Q 1778.891193 2405.028525 2058.496221 2412.437888 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.550605 2410.33263 +L 2058.496221 2412.437888 +L 2054.444645 2414.331226 +L 2054.550605 2410.33263 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_296"> + <path d="M 1481.300292 2400.121162 +Q 1212.905304 2490.392958 945.570016 2580.308335 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 949.998898 2580.928821 +L 945.570016 2580.308335 +L 948.723734 2577.137521 +L 949.998898 2580.928821 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_297"> + <path d="M 1023.400408 1128.939795 +Q 737.124127 1512.65834 451.516403 1895.480766 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 455.511334 1893.470662 +L 451.516403 1895.480766 +L 452.305278 1891.078758 +L 455.511334 1893.470662 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_298"> + <path d="M 1033.747636 1115.048559 +Q 1319.699666 730.545484 1604.984503 346.939546 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1600.992634 348.955725 +L 1604.984503 346.939546 +L 1604.202325 351.342749 +L 1600.992634 348.955725 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_299"> + <path d="M 1507.272958 2491.528067 +Q 1783.486879 2452.714864 2058.593643 2414.057236 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.354255 2412.6333 +L 2058.593643 2414.057236 +L 2054.910861 2416.594384 +L 2054.354255 2412.6333 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_300"> + <path d="M 1490.147745 2494.111867 +Q 1217.4971 2538.080085 945.950229 2581.870306 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 950.217621 2583.207976 +L 945.950229 2581.870306 +L 949.5808 2579.258994 +L 950.217621 2583.207976 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_301"> + <path d="M 1013.292739 2201.687764 +Q 714.764278 2007.50314 417.173022 1813.928143 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 419.435538 1817.785736 +L 417.173022 1813.928143 +L 421.616606 1814.432686 +L 419.435538 1817.785736 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_302"> + <path d="M 1027.795012 2211.15529 +Q 1325.9658 2406.514602 1623.201405 2601.261188 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1620.951668 2597.396129 +L 1623.201405 2601.261188 +L 1618.759515 2600.741943 +L 1620.951668 2597.396129 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_303"> + <path d="M 1491.748522 2337.773279 +Q 1775.716005 2374.676945 2058.574776 2411.436525 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.865879 2408.937708 +L 2058.574776 2411.436525 +L 2054.350385 2412.904352 +L 2054.865879 2408.937708 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_304"> + <path d="M 1475.274451 2340.217866 +Q 1209.731847 2460.041952 945.208327 2579.406183 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 949.676928 2579.583953 +L 945.208327 2579.406183 +L 948.031703 2575.937964 +L 949.676928 2579.583953 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_305"> + <path d="M 1492.54446 2363.713011 +Q 1776.093549 2387.837822 2058.528628 2411.867851 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.712578 2409.53595 +L 2058.528628 2411.867851 +L 2054.373477 2413.52155 +L 2054.712578 2409.53595 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_306"> + <path d="M 1475.883378 2366.213292 +Q 1210.106635 2473.203447 945.367043 2579.776089 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 949.824538 2580.137665 +L 945.367043 2579.776089 +L 948.330802 2576.427039 +L 949.824538 2580.137665 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_307"> + <path d="M 1488.022104 2316.792783 +Q 1773.87373 2364.038438 2058.622287 2411.101778 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2055.001964 2408.476276 +L 2058.622287 2411.101778 +L 2054.349691 2412.422735 +L 2055.001964 2408.476276 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_308"> + <path d="M 1471.703282 2319.214303 +Q 1207.883356 2449.404558 945.066031 2579.100048 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 949.538106 2579.12343 +L 945.066031 2579.100048 +L 947.767981 2575.536417 +L 949.538106 2579.12343 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_309"> + <path d="M 1506.389683 2500.52538 +Q 1783.05564 2457.279587 2058.616975 2414.206457 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.356093 2412.848192 +L 2058.616975 2414.206457 +L 2054.973834 2416.800204 +L 2054.356093 2412.848192 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_310"> + <path d="M 1489.256443 2503.108683 +Q 1217.061445 2542.645472 945.972871 2582.02155 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 950.218818 2583.425807 +L 945.972871 2582.02155 +L 949.643845 2579.467347 +L 950.218818 2583.425807 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_311"> + <path d="M 1647.513052 1610.489142 +Q 1961.368816 1184.782589 2274.56112 759.975937 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2270.577664 762.008688 +L 2274.56112 759.975937 +L 2273.797247 764.382353 +L 2270.577664 762.008688 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_312"> + <path d="M 1637.205279 1624.409661 +Q 1321.054387 2049.517445 1005.570691 2473.728094 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1009.562565 2471.711923 +L 1005.570691 2473.728094 +L 1006.352878 2469.324892 +L 1009.562565 2471.711923 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_313"> + <path d="M 1644.937716 1610.045939 +Q 1960.073114 1184.555915 2274.543085 759.964338 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2270.555191 761.988369 +L 2274.543085 759.964338 +L 2273.769573 764.369072 +L 2270.555191 761.988369 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_314"> + <path d="M 1634.629926 1623.966452 +Q 1319.758695 2049.290772 1005.552697 2473.716503 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1009.540157 2471.691616 +L 1005.552697 2473.716503 +L 1006.325263 2469.311603 +L 1009.540157 2471.691616 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_315"> + <path d="M 1496.690352 2383.168869 +Q 1778.158324 2397.709562 2058.509751 2412.192574 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.618261 2409.988872 +L 2058.509751 2412.192574 +L 2054.411895 2413.983545 +L 2054.618261 2409.988872 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_316"> + <path d="M 1479.90787 2385.682154 +Q 1212.173717 2483.073722 945.490243 2580.083093 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 949.93296 2580.595214 +L 945.490243 2580.083093 +L 948.56557 2576.836192 +L 949.93296 2580.595214 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_317"> + <path d="M 1969.311646 1398.049547 +Q 2018.372381 1901.063385 2067.324586 2402.964469 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2068.926849 2398.789214 +L 2067.324586 2402.964469 +L 2064.94574 2399.177506 +L 2068.926849 2398.789214 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_318"> + <path d="M 1967.677029 1380.805463 +Q 1921.296328 876.950956 1875.01811 374.209776 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1873.393187 378.376264 +L 1875.01811 374.209776 +L 1877.376347 378.009607 +L 1873.393187 378.376264 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_319"> + <path d="M 1968.991986 1397.874647 +Q 2018.211194 1900.975192 2067.321542 2402.963016 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2068.922571 2398.787288 +L 2067.321542 2402.963016 +L 2064.941577 2399.176755 +L 2068.922571 2398.787288 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_320"> + <path d="M 1967.357411 1380.630549 +Q 1921.135162 876.862757 1875.015067 374.208321 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1873.38891 378.374328 +L 1875.015067 374.208321 +L 1877.372179 378.008851 +L 1873.38891 378.374328 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_321"> + <path d="M 736.281087 708.816653 +Q 660.75527 629.483321 586.000352 550.959751 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 587.309856 555.235871 +L 586.000352 550.959751 +L 590.20695 552.477819 +L 587.309856 555.235871 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_322"> + <path d="M 771.434476 748.979157 +Q 678.305605 649.586744 585.941177 551.01019 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 587.216685 555.296573 +L 585.941177 551.01019 +L 590.135588 552.561613 +L 587.216685 555.296573 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_323"> + <path d="M 782.01173 749.906697 +Q 683.670534 649.976776 586.113548 550.843733 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 587.493721 555.097569 +L 586.113548 550.843733 +L 590.344721 552.291896 +L 587.493721 555.097569 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_324"> + <path d="M 975.132992 2245.732806 +Q 902.971216 2380.73503 831.336486 2514.751242 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 834.985939 2512.166384 +L 831.336486 2514.751242 +L 831.458272 2510.280765 +L 834.985939 2512.166384 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_325"> + <path d="M 1622.223504 2312.964442 +Q 2007.677051 2214.107089 2392.047615 2115.527489 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2387.676156 2114.583908 +L 2392.047615 2115.527489 +L 2388.669875 2118.458508 +L 2387.676156 2114.583908 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_326"> + <path d="M 1605.463001 2317.330995 +Q 1220.281894 2419.24546 836.181627 2520.873947 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 840.560133 2521.784268 +L 836.181627 2520.873947 +L 839.536987 2517.917335 +L 840.560133 2521.784268 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_327"> + <path d="M 1622.221316 2312.958053 +Q 2007.675945 2214.10386 2392.047589 2115.527411 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2387.676138 2114.583794 +L 2392.047589 2115.527411 +L 2388.669825 2118.458402 +L 2387.676138 2114.583794 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_328"> + <path d="M 1605.460813 2317.324606 +Q 1220.280788 2419.242231 836.181601 2520.873869 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 840.560115 2521.784153 +L 836.181601 2520.873869 +L 839.536937 2517.917229 +L 840.560115 2521.784153 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_329"> + <path d="M 2229.93475 1028.525071 +Q 2291.518257 993.158575 2352.132233 958.348866 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2347.667527 958.606539 +L 2352.132233 958.348866 +L 2349.659548 962.075235 +L 2347.667527 958.606539 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_330"> + <path d="M 2386.999496 932.643534 +Q 2377.205288 940.376948 2368.288556 947.417516 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2372.66731 946.508389 +L 2368.288556 947.417516 +L 2370.188507 943.369036 +L 2372.66731 946.508389 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_331"> + <path d="M 1530.398872 1707.113605 +Q 1022.088913 1912.257318 514.815738 2116.982605 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 519.27355 2117.340257 +L 514.815738 2116.982605 +L 517.776547 2113.630947 +L 519.27355 2117.340257 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_332"> + <path d="M 1546.466325 1700.638004 +Q 2054.944766 1495.989586 2562.386025 1291.758605 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2557.928556 1291.396705 +L 2562.386025 1291.758605 +L 2559.422023 1295.10744 +L 2557.928556 1291.396705 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_333"> + <path d="M 1531.196544 1706.797812 +Q 1022.486964 1912.099762 514.81417 2116.983293 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 519.27198 2117.340967 +L 514.81417 2116.983293 +L 517.774996 2113.63165 +L 519.27198 2117.340967 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_334"> + <path d="M 1547.263987 1700.322224 +Q 2055.342816 1495.832031 2562.384465 1291.759279 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2557.926995 1291.397398 +L 2562.384465 1291.759279 +L 2559.420479 1295.108127 +L 2557.926995 1291.397398 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_335"> + <path d="M 1530.323942 1706.929156 +Q 1022.051154 1912.16437 514.815075 2116.980973 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 519.272951 2117.337821 +L 514.815075 2116.980973 +L 517.77528 2113.628781 +L 519.272951 2117.337821 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_336"> + <path d="M 1546.391395 1700.453555 +Q 2054.907007 1495.896639 2562.385362 1291.756972 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2557.927958 1291.394269 +L 2562.385362 1291.756972 +L 2559.420757 1295.105273 +L 2557.927958 1291.394269 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_337"> + <path d="M 1530.825941 1706.628689 +Q 1022.300212 1912.014539 514.811156 2116.981691 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 519.269061 2117.338174 +L 514.811156 2116.981691 +L 517.771085 2113.629257 +L 519.269061 2117.338174 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_338"> + <path d="M 1546.885513 1700.156272 +Q 2055.156003 1495.746832 2562.389201 1291.754555 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2557.931827 1291.391483 +L 2562.389201 1291.754555 +L 2559.424319 1295.102611 +L 2557.931827 1291.391483 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_339"> + <path d="M 930.398692 718.255705 +Q 632.538769 879.128241 335.66257 1039.469473 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 340.132479 1039.328361 +L 335.66257 1039.469473 +L 338.231626 1035.808878 +L 340.132479 1039.328361 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_340"> + <path d="M 945.031044 709.059483 +Q 1218.54151 510.899895 1491.146591 313.396262 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1486.733978 314.123478 +L 1491.146591 313.396262 +L 1489.080796 317.362682 +L 1486.733978 314.123478 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_341"> + <path d="M 1708.186553 1360.699983 +Q 1886.82841 1882.603168 2065.108199 2403.44857 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2065.705046 2399.01644 +L 2065.108199 2403.44857 +L 2061.920604 2400.311814 +L 2065.705046 2399.01644 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_342"> + <path d="M 1702.62878 1344.303685 +Q 1527.267144 821.846403 1352.261267 300.449043 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1351.638029 304.877539 +L 1352.261267 300.449043 +L 1355.430121 303.604731 +L 1351.638029 304.877539 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_343"> + <path d="M 1712.142874 1359.28765 +Q 1888.821972 1881.891504 2065.143001 2403.436213 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2065.756586 2399.00637 +L 2065.143001 2403.436213 +L 2061.967277 2400.287439 +L 2065.756586 2399.00637 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_344"> + <path d="M 1706.585071 1342.891363 +Q 1529.260705 821.134739 1352.296106 300.436683 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1351.689616 304.867504 +L 1352.296106 300.436683 +L 1355.476868 303.580367 +L 1351.689616 304.867504 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_345"> + <path d="M 1878.229504 1352.028129 +Q 2041.375303 1819.615953 2204.152784 2286.148152 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2204.72341 2281.71257 +L 2204.152784 2286.148152 +L 2200.946694 2283.030302 +L 2204.72341 2281.71257 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_346"> + <path d="M 1872.489238 1335.683151 +Q 1707.724012 869.563447 1543.331398 404.497859 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1542.778834 408.935727 +L 1543.331398 404.497859 +L 1546.550154 407.602631 +L 1542.778834 408.935727 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_347"> + <path d="M 1876.86339 1352.688526 +Q 2040.686323 1819.949014 2204.139346 2286.154435 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2204.703278 2281.717997 +L 2204.139346 2286.154435 +L 2200.928555 2283.041427 +L 2204.703278 2281.717997 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_348"> + <path d="M 1871.123145 1336.343538 +Q 1707.03377 869.892919 1543.315413 404.496978 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1542.756141 408.934005 +L 1543.315413 404.496978 +L 1546.529472 407.606612 +L 1542.756141 408.934005 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_349"> + <path d="M 1874.420537 1353.521751 +Q 2039.454306 1820.369239 2204.11544 2286.162619 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2204.667908 2281.724739 +L 2204.11544 2286.162619 +L 2200.896617 2283.057916 +L 2204.667908 2281.724739 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_350"> + <path d="M 1868.680329 1337.17675 +Q 1705.801762 870.31314 1543.291483 404.505165 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1542.720733 408.940731 +L 1543.291483 404.505165 +L 1546.497486 407.623104 +L 1542.720733 408.940731 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_351"> + <path d="M 1914.027162 1002.251871 +Q 2244.992141 1319.981308 2575.150588 1636.936467 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2573.650123 1632.723558 +L 2575.150588 1636.936467 +L 2570.879981 1635.609094 +L 2573.650123 1632.723558 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_352"> + <path d="M 1901.539585 990.247207 +Q 1570.86704 671.925295 1240.999964 354.378767 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1242.494646 358.593731 +L 1240.999964 354.378767 +L 1245.268745 355.712 +L 1242.494646 358.593731 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_353"> + <path d="M 2569.568529 1521.03136 +Q 2595.494971 1521.568769 2620.30362 1522.083009 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2616.345927 1520.000543 +L 2620.30362 1522.083009 +L 2616.263032 1523.999684 +L 2616.345927 1520.000543 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_354"> + <path d="M 1888.400656 771.348257 +Q 1570.938924 583.557015 1254.439472 396.335 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1256.863963 400.092904 +L 1254.439472 396.335 +L 1258.900489 396.650149 +L 1256.863963 400.092904 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_355"> + <path d="M 1903.316885 780.15395 +Q 2221.124029 967.389313 2537.967885 1154.057158 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2535.536731 1150.30356 +L 2537.967885 1154.057158 +L 2533.506315 1153.749922 +L 2535.536731 1150.30356 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_356"> + <path d="M 1512.992193 2492.980915 +Q 1786.347831 2453.458514 2058.596941 2414.096097 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.351916 2412.689056 +L 2058.596941 2414.096097 +L 2054.924294 2416.647893 +L 2054.351916 2412.689056 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_357"> + <path d="M 1495.866757 2495.563316 +Q 1220.362318 2538.823043 945.962379 2581.909342 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 950.224201 2583.264656 +L 945.962379 2581.909342 +L 949.603723 2579.313073 +L 950.224201 2583.264656 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_358"> + <path d="M 1840.94242 1385.041482 +Q 1953.672851 1894.641306 2066.161796 2403.149486 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2067.250618 2398.811922 +L 2066.161796 2403.149486 +L 2063.345038 2399.675889 +L 2067.250618 2398.811922 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_359"> + <path d="M 1837.21149 1368.129559 +Q 1724.945429 857.84207 1612.919597 348.646501 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1611.825778 352.982808 +L 1612.919597 348.646501 +L 1615.732352 352.12334 +L 1611.825778 352.982808 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_360"> + <path d="M 1840.651466 1384.133806 +Q 1953.527045 1894.187657 2066.161047 2403.149885 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2067.249507 2398.812229 +L 2066.161047 2403.149885 +L 2063.343999 2399.676524 +L 2067.249507 2398.812229 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_361"> + <path d="M 1836.920545 1367.221879 +Q 1724.799623 857.388421 1612.918838 348.646903 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1611.824652 352.983118 +L 1612.918838 348.646903 +L 1615.731298 352.123981 +L 1611.824652 352.983118 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_362"> + <path d="M 1934.955415 2224.071977 +Q 1999.115514 2314.848627 2062.630309 2404.712271 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2061.954832 2400.291442 +L 2062.630309 2404.712271 +L 2058.688359 2402.600155 +L 2061.954832 2400.291442 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_363"> + <path d="M 1741.084135 2297.82356 +Q 2112.675845 2199.29589 2483.186865 2101.054766 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2478.807881 2100.146744 +L 2483.186865 2101.054766 +L 2479.833057 2104.01314 +L 2478.807881 2100.146744 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_364"> + <path d="M 1724.351107 2302.277517 +Q 1352.722872 2401.578587 982.174776 2500.591039 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 986.555494 2501.490655 +L 982.174776 2500.591039 +L 985.5229 2497.626234 +L 986.555494 2501.490655 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_365"> + <path d="M 1537.358353 1629.604284 +Q 2071.160161 1496.032573 2603.877375 1362.732258 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2599.511527 1361.763049 +L 2603.877375 1362.732258 +L 2600.482499 1365.643411 +L 2599.511527 1361.763049 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_366"> + <path d="M 1520.55556 1633.813 +Q 987.314084 1767.511169 455.157074 1900.937432 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 459.523378 1901.904586 +L 455.157074 1900.937432 +L 458.55058 1898.024681 +L 459.523378 1901.904586 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_367"> + <path d="M 1537.71088 1629.466482 +Q 2071.337801 1495.963135 2603.880116 1362.731135 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2599.51431 1361.761736 +L 2603.880116 1362.731135 +L 2600.485113 1365.642141 +L 2599.51431 1361.761736 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_368"> + <path d="M 1520.908084 1633.6752 +Q 987.487622 1767.442758 455.151614 1900.938365 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 459.51796 1901.905331 +L 455.151614 1900.938365 +L 458.544994 1898.025468 +L 459.51796 1901.905331 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_369"> + <path d="M 1277.697953 1737.215873 +Q 1669.694139 2072.143902 2060.840307 2406.345661 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2059.098379 2402.226718 +L 2060.840307 2406.345661 +L 2056.499996 2405.267837 +L 2059.098379 2402.226718 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_370"> + <path d="M 1264.535639 1725.958348 +Q 872.829876 1390.598215 481.973404 1055.965204 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 483.7112 1060.085891 +L 481.973404 1055.965204 +L 486.312631 1057.047379 +L 483.7112 1060.085891 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_371"> + <path d="M 1658.7651 459.454339 +Q 1603.227032 429.424275 1548.672435 399.925985 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1551.239743 403.587806 +L 1548.672435 399.925985 +L 1553.142277 400.069231 +L 1551.239743 403.587806 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_372"> + <path d="M 1672.997956 457.981265 +Q 1732.907149 407.296539 1791.962795 357.333934 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1787.617287 358.390607 +L 1791.962795 357.333934 +L 1790.200828 361.444345 +L 1787.617287 358.390607 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_373"> + <path d="M 2193.963486 1382.828556 +Q 2131.915591 917.10718 2070.015347 452.494046 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2068.561115 456.723137 +L 2070.015347 452.494046 +L 2072.526081 456.194886 +L 2068.561115 456.723137 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_374"> + <path d="M 2196.230874 1399.999648 +Q 2257.206841 1865.949998 2318.037734 2330.791766 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2319.501796 2326.566068 +L 2318.037734 2330.791766 +L 2315.535613 2327.085098 +L 2319.501796 2326.566068 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_375"> + <path d="M 2193.963485 1382.828555 +Q 2131.915591 917.10718 2070.015347 452.494046 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2068.561115 456.723137 +L 2070.015347 452.494046 +L 2072.526081 456.194886 +L 2068.561115 456.723137 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_376"> + <path d="M 2196.230873 1399.999646 +Q 2257.20684 1865.949997 2318.037734 2330.791766 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2319.501796 2326.566068 +L 2318.037734 2330.791766 +L 2315.535613 2327.085098 +L 2319.501796 2326.566068 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_377"> + <path d="M 2192.934564 1382.948793 +Q 2131.396434 917.167847 2070.004744 452.495304 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2068.545894 456.722804 +L 2070.004744 452.495304 +L 2072.511434 456.198884 +L 2068.545894 456.722804 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_378"> + <path d="M 2195.201945 1400.119885 +Q 2256.68768 1866.010665 2318.027131 2330.793023 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2319.486578 2326.565729 +L 2318.027131 2330.793023 +L 2315.520964 2327.089089 +L 2319.486578 2326.565729 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_379"> + <path d="M 2189.001309 1383.438733 +Q 2129.412313 917.418642 2069.965123 452.507556 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2068.488616 456.728921 +L 2069.965123 452.507556 +L 2072.456311 456.22158 +L 2068.488616 456.728921 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_380"> + <path d="M 2191.26866 1400.609829 +Q 2254.703085 1866.257874 2317.986595 2330.798116 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2319.428365 2326.564761 +L 2317.986595 2330.798116 +L 2315.464973 2327.104687 +L 2319.428365 2326.564761 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_381"> + <path d="M 2191.714115 1383.092912 +Q 2130.781108 917.244152 2069.993105 452.503983 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2068.528778 456.729589 +L 2069.993105 452.503983 +L 2072.494994 456.210808 +L 2068.528778 456.729589 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_382"> + <path d="M 2193.981487 1400.264006 +Q 2256.07188 1866.083384 2318.014554 2330.794529 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2319.468523 2326.565348 +L 2318.014554 2330.794529 +L 2315.503591 2327.093845 +L 2319.468523 2326.565348 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_383"> + <path d="M 1302.232212 1403.897926 +Q 1537.526115 948.753859 1772.306583 494.602962 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1768.693029 497.237772 +L 1772.306583 494.602962 +L 1772.246299 499.074691 +L 1768.693029 497.237772 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_384"> + <path d="M 1294.27986 1419.284293 +Q 1058.953223 1874.706154 824.139829 2329.134748 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 827.752877 2326.499243 +L 824.139829 2329.134748 +L 824.199254 2324.663006 +L 827.752877 2326.499243 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_385"> + <path d="M 1277.609302 1737.277452 +Q 1669.649445 2072.174948 2060.839496 2406.346259 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2059.097154 2402.227491 +L 2060.839496 2406.346259 +L 2056.499077 2405.268871 +L 2059.097154 2402.227491 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_386"> + <path d="M 1264.446987 1726.019927 +Q 872.785181 1390.629261 481.972592 1055.965802 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 483.709975 1060.086664 +L 481.972592 1055.965802 +L 486.311711 1057.048413 +L 483.709975 1060.086664 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_387"> + <path d="M 606.664227 1833.29058 +Q 619.895531 2077.405997 633.066325 2320.405018 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 634.846907 2316.302638 +L 633.066325 2320.405018 +L 630.85277 2316.519124 +L 634.846907 2316.302638 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_388"> + <path d="M 601.909326 1817.115732 +Q 481.963912 1606.557745 362.571899 1396.971224 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 362.813993 1401.436803 +L 362.571899 1396.971224 +L 366.289618 1399.456896 +L 362.813993 1401.436803 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_389"> + <path d="M 1572.900929 868.423512 +Q 2034.939318 1069.193376 2495.952297 1269.517669 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2493.080743 1266.089232 +L 2495.952297 1269.517669 +L 2491.486616 1269.75785 +L 2493.080743 1266.089232 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_390"> + <path d="M 1557.019105 861.510056 +Q 1095.561118 660.276531 635.127958 459.489916 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 637.995039 462.922094 +L 635.127958 459.489916 +L 639.593949 459.255558 +L 637.995039 462.922094 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_391"> + <path d="M 2277.287981 1354.476188 +Q 2312.477413 1676.868205 2347.54553 1998.148789 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2349.099695 1993.955393 +L 2347.54553 1998.148789 +L 2345.123313 1994.389419 +L 2349.099695 1993.955393 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_392"> + <path d="M 2275.362678 1337.265237 +Q 2238.452106 1015.130268 2201.668807 694.106065 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2200.137153 698.307736 +L 2201.668807 694.106065 +L 2204.111151 697.852391 +L 2200.137153 698.307736 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_393"> + <path d="M 2272.523796 1354.980491 +Q 2310.064215 1677.12617 2347.475223 1998.16133 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2348.998783 1993.956718 +L 2347.475223 1998.16133 +L 2345.025669 1994.419715 +L 2348.998783 1993.956718 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_394"> + <path d="M 2270.598493 1337.76954 +Q 2236.038618 1015.385743 2201.597915 694.11361 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2200.03567 698.304003 +L 2201.597915 694.11361 +L 2204.012882 697.877642 +L 2200.03567 698.304003 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_395"> + <path d="M 2265.803081 1356.095664 +Q 2306.659278 1677.688615 2347.37457 1998.172447 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2348.854502 1993.952281 +L 2347.37457 1998.172447 +L 2344.886396 1994.456402 +L 2348.854502 1993.952281 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_396"> + <path d="M 2263.877627 1338.884734 +Q 2232.633654 1015.948192 2201.497347 694.124488 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2199.891842 698.298497 +L 2201.497347 694.124488 +L 2203.873252 697.913298 +L 2199.891842 698.298497 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_397"> + <path d="M 2277.233157 1354.486911 +Q 2312.449639 1676.873637 2347.544714 1998.14894 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2349.098524 1993.955413 +L 2347.544714 1998.14894 +L 2345.122178 1994.389776 +L 2349.098524 1993.955413 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_398"> + <path d="M 2275.307854 1337.275959 +Q 2238.424333 1015.1357 2201.66799 694.106218 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2200.13598 698.307758 +L 2201.66799 694.106218 +L 2204.110017 697.85275 +L 2200.13598 698.307758 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_399"> + <path d="M 2277.313044 1354.471372 +Q 2312.490382 1676.868258 2347.546448 1998.153706 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2349.100775 1993.96037 +L 2347.546448 1998.153706 +L 2345.124375 1994.394242 +L 2349.100775 1993.96037 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_400"> + <path d="M 2275.387741 1337.260421 +Q 2238.464803 1015.127828 2201.66918 694.105997 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2200.137689 698.307727 +L 2201.66918 694.105997 +L 2204.111669 697.852228 +L 2200.137689 698.307727 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_401"> + <path d="M 403.784985 1479.68777 +Q 402.609991 1184.565765 401.439449 890.561785 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 399.45539 894.569716 +L 401.439449 890.561785 +L 403.455359 894.553791 +L 399.45539 894.569716 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_402"> + <path d="M 403.776918 1497.007254 +Q 402.325562 1792.194135 400.879703 2086.262996 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 402.899346 2082.272877 +L 400.879703 2086.262996 +L 398.899394 2082.253211 +L 402.899346 2082.272877 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_403"> + <path d="M 1277.771618 1737.163991 +Q 1669.731278 2072.117745 2060.840981 2406.345157 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2059.099399 2402.226068 +L 2060.840981 2406.345157 +L 2056.500761 2405.26697 +L 2059.099399 2402.226068 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_404"> + <path d="M 1264.609303 1725.906466 +Q 872.867015 1390.572058 481.974078 1055.9647 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 483.71222 1060.085242 +L 481.974078 1055.9647 +L 486.313397 1057.046512 +L 483.71222 1060.085242 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_405"> + <path d="M 2265.539214 943.31209 +Q 2364.46383 874.844743 2462.469124 807.013672 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2458.041853 807.645555 +L 2462.469124 807.013672 +L 2460.318268 810.934618 +L 2458.041853 807.645555 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_406"> + <path d="M 2292.05106 919.441517 +Q 2377.668383 862.833254 2462.35309 806.841617 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2457.913407 807.379407 +L 2462.35309 806.841617 +L 2460.119512 810.716037 +L 2457.913407 807.379407 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_407"> + <path d="M 768.561907 915.561201 +Q 539.405511 1121.191534 311.081244 1326.075168 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 315.394098 1324.892251 +L 311.081244 1326.075168 +L 312.722623 1321.915135 +L 315.394098 1324.892251 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_408"> + <path d="M 780.155935 902.809304 +Q 963.392 654.809199 1145.963675 407.708309 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1141.97812 409.736942 +L 1145.963675 407.708309 +L 1145.195249 412.113933 +L 1141.97812 409.736942 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_409"> + <path d="M 856.277804 643.157422 +Q 617.028887 740.596869 378.815422 837.614606 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 383.274345 837.95812 +L 378.815422 837.614606 +L 381.765587 834.253575 +L 383.274345 837.95812 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_410"> + <path d="M 870.215559 633.575551 +Q 1047.044555 444.906236 1223.108993 257.052673 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1218.914367 258.603513 +L 1223.108993 257.052673 +L 1221.83289 261.338878 +L 1218.914367 258.603513 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_411"> + <path d="M 1648.073997 1111.900214 +Q 2052.29206 1443.054813 2455.645265 1773.500878 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2453.818515 1769.418846 +L 2455.645265 1773.500878 +L 2451.283589 1772.513059 +L 2453.818515 1769.418846 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_412"> + <path d="M 1634.695057 1100.893768 +Q 1231.314942 767.660639 828.796781 435.139572 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 830.606829 439.229038 +L 828.796781 435.139572 +L 833.154382 436.145214 +L 830.606829 439.229038 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_413"> + <path d="M 1648.076846 1111.89821 +Q 2052.293497 1443.053802 2455.64529 1773.500859 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2453.818554 1769.418821 +L 2455.64529 1773.500859 +L 2451.283618 1772.513026 +L 2453.818554 1769.418821 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_414"> + <path d="M 1634.697907 1100.891764 +Q 1231.316378 767.659629 828.796807 435.139553 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 830.606867 439.229013 +L 828.796807 435.139553 +L 833.154411 436.145181 +L 830.606867 439.229013 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_415"> + <path d="M 1648.093902 1111.882124 +Q 2052.302094 1443.045693 2455.645446 1773.500708 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2453.8188 1769.41863 +L 2455.645446 1773.500708 +L 2451.283796 1772.512778 +L 2453.8188 1769.41863 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_416"> + <path d="M 1634.714962 1100.875678 +Q 1231.324976 767.65152 828.796963 435.139402 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 830.607113 439.228822 +L 828.796963 435.139402 +L 833.154589 436.144934 +L 830.607113 439.228822 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_417"> + <path d="M 1650.922418 1107.905319 +Q 2053.731077 1441.043507 2455.678178 1773.469154 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2453.870405 1769.378682 +L 2455.678178 1773.469154 +L 2451.321137 1772.461089 +L 2453.870405 1769.378682 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_418"> + <path d="M 1637.5435 1096.898842 +Q 1232.753964 765.649334 828.829676 435.107882 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 830.658679 439.188905 +L 828.829676 435.107882 +L 833.191896 436.093293 +L 830.658679 439.188905 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_419"> + <path d="M 2216.039267 972.962482 +Q 2339.68488 889.62497 2462.403384 806.912333 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2457.968647 807.489489 +L 2462.403384 806.912333 +L 2460.204266 810.806416 +L 2457.968647 807.489489 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_420"> + <path d="M 2122.40024 1035.201713 +Q 2292.860407 920.738907 2462.392385 806.899372 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2457.956657 807.468863 +L 2462.392385 806.899372 +L 2460.186542 810.789649 +L 2457.956657 807.468863 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_421"> + <path d="M 2330.139343 895.557877 +Q 2396.727376 850.914918 2462.386766 806.894552 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2457.950624 807.460808 +L 2462.386766 806.894552 +L 2460.178085 810.783219 +L 2457.950624 807.460808 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_422"> + <path d="M 1530.241424 1399.611837 +Q 1797.226748 1902.330378 2063.68767 2404.061498 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2063.577863 2399.59071 +L 2063.68767 2404.061498 +L 2060.045156 2401.466871 +L 2063.577863 2399.59071 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_423"> + <path d="M 1522.118306 1384.311636 +Q 1255.388248 881.756992 989.182335 380.189907 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 989.290975 384.660723 +L 989.182335 380.189907 +L 992.824172 382.785485 +L 989.290975 384.660723 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_424"> + <path d="M 1483.306776 2284.243943 +Q 1771.561665 2347.541898 2058.724538 2410.600057 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2055.246585 2407.78868 +L 2058.724538 2410.600057 +L 2054.388665 2411.695594 +L 2055.246585 2407.78868 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_425"> + <path d="M 1467.288816 2286.609535 +Q 1205.57119 2432.906494 944.829476 2578.65793 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 949.296867 2578.451973 +L 944.829476 2578.65793 +L 947.345145 2574.960443 +L 949.296867 2578.451973 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_426"> + <path d="M 1514.334831 2502.684943 +Q 1787.029512 2458.385415 2058.620625 2414.265162 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.351686 2412.932437 +L 2058.620625 2414.265162 +L 2054.993082 2416.880679 +L 2054.351686 2412.932437 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_427"> + <path d="M 1497.209498 2505.268663 +Q 1221.043958 2543.749948 945.985754 2582.076935 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 950.223494 2583.505765 +L 945.985754 2582.076935 +L 949.671462 2579.544041 +L 950.223494 2583.505765 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_428"> + <path d="M 1508.860254 2503.885542 +Q 1784.292655 2458.988022 2058.621586 2414.270377 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.351925 2412.939966 +L 2058.621586 2414.270377 +L 2054.995461 2416.887859 +L 2054.351925 2412.939966 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_429"> + <path d="M 1491.734795 2506.467427 +Q 1218.30711 2544.352627 945.986879 2582.084382 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 950.223518 2583.516475 +L 945.986879 2582.084382 +L 949.674537 2579.554327 +L 950.223518 2583.516475 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_430"> + <path d="M 1487.01066 2301.822679 +Q 1773.387166 2356.448189 2058.665438 2410.864214 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2055.111017 2408.150159 +L 2058.665438 2410.864214 +L 2054.361542 2412.079318 +L 2055.111017 2408.150159 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_431"> + <path d="M 1470.828359 2304.20804 +Q 1207.402847 2441.811777 944.968313 2578.897864 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 949.439746 2578.818578 +L 944.968313 2578.897864 +L 947.587743 2575.273146 +L 949.439746 2578.818578 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_432"> + <path d="M 1502.714976 2430.855716 +Q 1781.164431 2421.915378 2058.496428 2413.010918 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.434306 2411.140312 +L 2058.496428 2413.010918 +L 2054.56267 2415.138252 +L 2054.434306 2411.140312 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_433"> + <path d="M 1485.709371 2433.41434 +Q 1215.180786 2507.280078 945.730754 2580.851326 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 950.116301 2581.727098 +L 945.730754 2580.851326 +L 949.0627 2577.868351 +L 950.116301 2581.727098 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_434"> + <path d="M 881.607827 897.114673 +Q 1187.20569 605.375934 1491.994858 314.409214 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1487.720556 315.724638 +L 1491.994858 314.409214 +L 1490.482616 318.61791 +L 1487.720556 315.724638 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_435"> + <path d="M 869.06125 909.052092 +Q 562.631739 1199.625702 257.013509 1489.430011 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 261.292201 1488.128937 +L 257.013509 1489.430011 +L 258.539865 1485.226413 +L 261.292201 1488.128937 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_436"> + <path d="M 1507.972701 2474.604806 +Q 1783.820723 2444.126287 2058.557474 2413.770552 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.362025 2412.221937 +L 2058.557474 2413.770552 +L 2054.801312 2416.197742 +L 2054.362025 2412.221937 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_437"> + <path d="M 1490.864124 2477.184501 +Q 1217.835432 2529.490634 945.904804 2581.586403 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 950.209673 2582.798059 +L 945.904804 2581.586403 +L 949.45705 2578.869502 +L 950.209673 2582.798059 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_438"> + <path d="M 1490.734204 2336.534818 +Q 1775.210101 2374.049649 2058.577561 2411.418307 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.873378 2408.912508 +L 2058.577561 2411.418307 +L 2054.350412 2412.878174 +L 2054.873378 2408.912508 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_439"> + <path d="M 1474.260499 2338.984061 +Q 1209.221552 2459.414153 945.200487 2579.381732 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 949.669537 2579.547843 +L 945.200487 2579.381732 +L 948.014805 2575.906159 +L 949.669537 2579.547843 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_440"> + <path d="M 1493.671883 2367.554436 +Q 1776.656943 2389.786641 2058.527404 2411.931278 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.696335 2409.624135 +L 2058.527404 2411.931278 +L 2054.383048 2413.611847 +L 2054.696335 2409.624135 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_441"> + <path d="M 1476.975831 2370.056281 +Q 1210.665117 2475.151915 945.394384 2579.837135 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 949.849304 2580.22917 +L 945.394384 2579.837135 +L 948.380964 2576.50842 +L 949.849304 2580.22917 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_442"> + <path d="M 1513.102422 2492.725844 +Q 1786.403796 2453.32901 2058.598575 2414.091693 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.354144 2412.682862 +L 2058.598575 2414.091693 +L 2054.924851 2416.641939 +L 2054.354144 2412.682862 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_443"> + <path d="M 1495.977004 2495.308205 +Q 1220.414014 2538.694209 945.955454 2581.906326 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 950.217837 2583.259873 +L 945.955454 2581.906326 +L 949.595721 2579.308547 +L 950.217837 2583.259873 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_444"> + <path d="M 1194.163299 2357.668703 +Q 1534.810922 2417.169919 1874.357187 2476.478761 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1870.760977 2473.820327 +L 1874.357187 2476.478761 +L 1870.072714 2477.760669 +L 1870.760977 2473.820327 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_445"> + <path d="M 1177.094221 2354.709245 +Q 836.532647 2296.101272 497.072909 2237.682917 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 500.675764 2240.33234 +L 497.072909 2237.682917 +L 501.35416 2236.390287 +L 500.675764 2240.33234 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_446"> + <path d="M 2292.582964 2205.97983 +Q 2183.613208 2306.403377 2075.465603 2406.069251 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2079.762386 2404.829229 +L 2075.465603 2406.069251 +L 2077.051656 2401.887811 +L 2079.762386 2404.829229 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_447"> + <path d="M 2305.661685 2194.636378 +Q 2421.060031 2100.488647 2535.592078 2007.047686 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2531.2284 2008.026622 +L 2535.592078 2007.047686 +L 2533.757019 2011.12599 +L 2531.2284 2008.026622 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_448"> + <path d="M 1505.005741 2448.605072 +Q 1782.318757 2430.926494 2058.516004 2413.319046 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.396867 2411.577579 +L 2058.516004 2413.319046 +L 2054.651348 2415.569476 +L 2054.396867 2411.577579 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_449"> + <path d="M 1487.939982 2451.17521 +Q 1216.329885 2516.291507 945.807014 2581.147151 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 950.163062 2582.159498 +L 945.807014 2581.147151 +L 949.23052 2578.269721 +L 950.163062 2582.159498 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_450"> + <path d="M 1487.618337 2321.284061 +Q 1773.668872 2366.317161 2058.614976 2411.176389 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.974672 2408.578662 +L 2058.614976 2411.176389 +L 2054.352612 2412.529996 +L 2054.974672 2408.578662 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_451"> + <path d="M 1471.274581 2323.718617 +Q 1207.682223 2451.681453 945.095647 2579.156025 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 949.567477 2579.208356 +L 945.095647 2579.156025 +L 947.820609 2575.60996 +L 949.567477 2579.208356 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_452"> + <path d="M 2198.693259 1536.922151 +Q 2134.121106 1970.528314 2069.713634 2403.028639 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2072.280997 2399.366857 +L 2069.713634 2403.028639 +L 2068.324627 2398.777679 +L 2072.280997 2399.366857 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_453"> + <path d="M 2201.263179 1519.792836 +Q 2266.789749 1086.250798 2332.149233 653.814238 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2329.573913 657.470428 +L 2332.149233 653.814238 +L 2333.528993 658.068208 +L 2329.573913 657.470428 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_454"> + <path d="M 2198.67464 1536.920352 +Q 2134.111705 1970.527406 2069.713428 2403.028617 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2072.280715 2399.366782 +L 2069.713428 2403.028617 +L 2068.324332 2398.777687 +L 2072.280715 2399.366782 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_455"> + <path d="M 2201.24456 1519.791037 +Q 2266.780348 1086.249889 2332.149028 653.814217 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2329.57363 657.470352 +L 2332.149028 653.814217 +L 2333.528698 658.068216 +L 2329.57363 657.470352 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_456"> + <path d="M 1483.724846 2275.663937 +Q 1771.782641 2343.191962 2058.751913 2410.46481 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2055.313967 2407.604648 +L 2058.751913 2410.46481 +L 2054.401016 2411.49907 +L 2055.313967 2407.604648 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_457"> + <path d="M 1467.791705 2278.000817 +Q 1205.797827 2428.557201 944.773325 2578.556527 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 949.237959 2578.297609 +L 944.773325 2578.556527 +L 947.244971 2574.829469 +L 949.237959 2578.297609 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_458"> + <path d="M 1484.943121 2278.638516 +Q 1772.387216 2344.697641 2058.741681 2410.506352 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2055.291257 2407.661255 +L 2058.741681 2410.506352 +L 2054.395349 2411.559633 +L 2055.291257 2407.661255 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_459"> + <path d="M 1468.974999 2280.974724 +Q 1206.401894 2430.062845 944.801031 2578.598931 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 949.266945 2578.363107 +L 944.801031 2578.598931 +L 947.291921 2574.884705 +L 949.266945 2578.363107 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_460"> + <path d="M 1496.329523 2364.941952 +Q 1777.988271 2388.459318 2058.532862 2411.883657 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.713145 2409.557767 +L 2058.532862 2411.883657 +L 2054.380319 2413.543896 +L 2054.713145 2409.557767 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_461"> + <path d="M 1479.648842 2367.420445 +Q 1211.996664 2473.824247 945.383432 2579.815022 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 949.839323 2580.195851 +L 945.383432 2579.815022 +L 948.36163 2576.478806 +L 949.839323 2580.195851 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_462"> + <path d="M 1331.68596 1044.949146 +Q 821.916211 1187.609159 313.22313 1329.967865 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 317.61413 1330.815877 +L 313.22313 1329.967865 +L 316.536139 1326.963873 +L 317.61413 1330.815877 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_463"> + <path d="M 1348.356487 1040.275899 +Q 1858.458932 897.035057 2367.484977 754.096477 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2363.093228 753.252358 +L 2367.484977 754.096477 +L 2364.174632 757.103405 +L 2363.093228 753.252358 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_464"> + <path d="M 1743.695114 1135.286089 +Q 1363.356533 786.55433 983.842019 438.578158 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 985.438661 442.755565 +L 983.842019 438.578158 +L 988.14193 439.807289 +L 985.438661 442.755565 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_465"> + <path d="M 1756.467998 1146.977041 +Q 2137.717398 1495.322137 2518.141414 1842.913085 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2516.53749 1838.738468 +L 2518.141414 1842.913085 +L 2513.839366 1841.691454 +L 2516.53749 1838.738468 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_466"> + <path d="M 1743.695891 1135.285161 +Q 1363.356924 786.553862 983.842027 438.578149 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 985.438673 442.755555 +L 983.842027 438.578149 +L 988.141939 439.807275 +L 985.438673 442.755555 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_467"> + <path d="M 1756.468775 1146.976113 +Q 2137.71779 1495.321669 2518.141421 1842.913076 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2516.537502 1838.738457 +L 2518.141421 1842.913076 +L 2513.839374 1841.69144 +L 2516.537502 1838.738457 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_468"> + <path d="M 1239.800683 445.721576 +Q 1035.422156 532.009837 832.073626 617.863236 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 836.536563 618.149937 +L 832.073626 617.863236 +L 834.980749 614.464907 +L 836.536563 618.149937 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_469"> + <path d="M 1255.66781 438.77702 +Q 1458.47325 346.839981 1660.260402 255.364558 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1655.7915 255.19452 +L 1660.260402 255.364558 +L 1657.44303 258.837657 +L 1655.7915 255.19452 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_470"> + <path d="M 1499.423828 2404.274757 +Q 1779.5197 2408.421777 2058.49766 2412.552246 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.527706 2410.493248 +L 2058.49766 2412.552246 +L 2054.46849 2414.49281 +L 2054.527706 2410.493248 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_471"> + <path d="M 1482.529665 2406.809677 +Q 1213.53342 2493.786259 945.600981 2580.418873 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 950.022283 2581.091249 +L 945.600981 2580.418873 +L 948.791663 2577.285257 +L 950.022283 2581.091249 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_472"> + <path d="M 1508.831506 2504.060276 +Q 1784.278062 2459.076725 2058.6212 2414.273374 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.351145 2412.944227 +L 2058.6212 2414.273374 +L 2054.99585 2416.89193 +L 2054.351145 2412.944227 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_473"> + <path d="M 1491.706052 2506.642135 +Q 1218.292516 2544.441331 945.986481 2582.087415 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 950.222688 2583.520786 +L 945.986481 2582.087415 +L 949.674902 2579.558472 +L 950.222688 2583.520786 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_474"> + <path d="M 413.397343 1618.212234 +Q 386.7152 1854.301254 360.158615 2089.279312 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 362.595173 2085.529221 +L 360.158615 2089.279312 +L 358.620477 2085.080011 +L 362.595173 2085.529221 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_475"> + <path d="M 413.169545 1601.029228 +Q 380.589943 1368.266201 348.16532 1136.610414 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 346.739099 1140.849034 +L 348.16532 1136.610414 +L 350.700483 1140.294563 +L 346.739099 1140.849034 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_476"> + <path d="M 1969.101025 1397.903351 +Q 2018.266176 1900.989666 2067.322584 2402.963248 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2068.924046 2398.787686 +L 2067.322584 2402.963248 +L 2064.943012 2399.176741 +L 2068.924046 2398.787686 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_477"> + <path d="M 1967.467168 1380.667072 +Q 1921.190506 876.881173 1875.016115 374.208621 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1873.39039 378.374796 +L 1875.016115 374.208621 +L 1877.373621 378.008906 +L 1873.39039 378.374796 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_478"> + <path d="M 1515.211414 2498.127053 +Q 1787.461909 2456.073251 2058.607475 2414.190125 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.349044 2412.824194 +L 2058.607475 2414.190125 +L 2054.959671 2416.777311 +L 2054.349044 2412.824194 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_479"> + <path d="M 1498.086587 2500.710336 +Q 1221.476352 2541.437814 945.972227 2582.00243 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 950.220896 2583.398428 +L 945.972227 2582.00243 +L 949.638227 2579.441094 +L 950.220896 2583.398428 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_480"> + <path d="M 2604.039161 1520.07533 +Q 2612.745226 1520.814237 2620.337261 1521.458594 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2616.520728 1519.127484 +L 2620.337261 1521.458594 +L 2616.182453 1523.113155 +L 2616.520728 1519.127484 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_481"> + <path d="M 2498.969885 1521.263648 +Q 2560.194918 1521.740915 2620.301952 1522.209468 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2616.317663 1520.178348 +L 2620.301952 1522.209468 +L 2616.286483 1524.178227 +L 2616.317663 1520.178348 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_482"> + <path d="M 1469.048905 2094.688216 +Q 1942.311867 1992.218744 2414.482113 1889.985864 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2410.149473 1888.877611 +L 2414.482113 1889.985864 +L 2410.995927 1892.787025 +L 2410.149473 1888.877611 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_483"> + <path d="M 1452.12658 2098.373004 +Q 978.781695 2202.025182 506.528967 2305.438201 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 510.8642 2306.53627 +L 506.528967 2305.438201 +L 510.008561 2302.628856 +L 510.8642 2306.53627 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_484"> + <path d="M 1945.308013 2247.068896 +Q 2004.210059 2326.406663 2062.445648 2404.846748 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2061.667077 2400.442906 +L 2062.445648 2404.846748 +L 2058.455431 2402.8273 +L 2061.667077 2400.442906 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_485"> + <path d="M 1496.342221 2366.430145 +Q 1777.990352 2389.214285 2058.52409 2411.908276 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.698379 2409.592259 +L 2058.52409 2411.908276 +L 2054.375849 2413.579234 +L 2054.698379 2409.592259 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_486"> + <path d="M 1479.65313 2368.912375 +Q 1212.002985 2474.579622 945.392765 2579.836312 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 949.847739 2580.227727 +L 945.392765 2579.836312 +L 948.378882 2576.507182 +L 949.847739 2580.227727 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_487"> + <path d="M 1488.103982 2311.688366 +Q 1773.924125 2361.450171 2058.642802 2411.020209 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2055.045124 2408.363761 +L 2058.642802 2411.020209 +L 2054.359038 2412.304483 +L 2055.045124 2408.363761 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_488"> + <path d="M 1471.836305 2314.095232 +Q 1207.934489 2446.81612 945.031505 2579.034677 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 949.503628 2579.024251 +L 945.031505 2579.034677 +L 947.706438 2575.450722 +L 949.503628 2579.024251 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_489"> + <path d="M 1508.531812 2487.232733 +Q 1784.108842 2450.536651 2058.577621 2413.988145 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.348629 2412.533628 +L 2058.577621 2413.988145 +L 2054.876612 2416.498629 +L 2054.348629 2412.533628 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_490"> + <path d="M 1491.414795 2489.81486 +Q 1218.127697 2535.900564 945.943068 2581.800352 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 950.219951 2583.107359 +L 945.943068 2581.800352 +L 949.554803 2579.16305 +L 950.219951 2583.107359 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_491"> + <path d="M 2017.36123 2215.503066 +Q 2041.734971 2309.907069 2065.829217 2403.228537 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2066.765764 2398.855565 +L 2065.829217 2403.228537 +L 2062.892768 2399.855516 +L 2066.765764 2398.855565 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_492"> + <path d="M 2023.06404 2210.731697 +Q 2111.283647 2251.249852 2198.487257 2291.301372 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2195.687054 2287.814416 +L 2198.487257 2291.301372 +L 2194.01757 2291.44936 +L 2195.687054 2287.814416 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_493"> + <path d="M 2116.642304 2193.733943 +Q 2159.124826 2241.327852 2200.862838 2288.087673 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2199.691257 2283.771726 +L 2200.862838 2288.087673 +L 2196.707132 2286.435369 +L 2199.691257 2283.771726 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_494"> + <path d="M 2156.48381 2230.310457 +Q 2179.262024 2259.436211 2201.351481 2287.681276 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2200.462738 2283.298339 +L 2201.351481 2287.681276 +L 2197.311885 2285.762508 +L 2200.462738 2283.298339 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_495"> + <path d="M 1974.538339 1397.21151 +Q 2021.007929 1900.640807 2067.374755 2402.956803 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2068.998627 2398.789905 +L 2067.374755 2402.956803 +L 2065.01556 2399.157566 +L 2068.998627 2398.789905 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_496"> + <path d="M 1972.903764 1379.967413 +Q 1923.931877 876.528374 1875.068235 374.202117 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1873.464901 378.376961 +L 1875.068235 374.202117 +L 1877.44611 377.98969 +L 1873.464901 378.376961 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_497"> + <path d="M 1969.182542 1397.845376 +Q 2018.307281 1900.960433 2067.323371 2402.962746 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2068.925189 2398.787321 +L 2067.323371 2402.962746 +L 2064.944121 2399.176037 +L 2068.925189 2398.787321 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_498"> + <path d="M 1967.547967 1380.601279 +Q 1921.231249 876.847997 1875.016895 374.208054 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1873.391523 378.374367 +L 1875.016895 374.208054 +L 1877.374723 378.008139 +L 1873.391523 378.374367 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_499"> + <path d="M 674.221052 637.566823 +Q 629.820753 593.762004 586.216343 550.742399 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 587.659166 554.975396 +L 586.216343 550.742399 +L 590.468434 552.127939 +L 587.659166 554.975396 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_500"> + <path d="M 815.906854 774.455012 +Q 700.682476 662.186702 586.258873 550.698623 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 587.728092 554.922531 +L 586.258873 550.698623 +L 590.51953 552.057592 +L 587.728092 554.922531 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_501"> + <path d="M 704.947426 675.128205 +Q 645.096608 612.629208 586.019067 550.937702 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 587.341142 555.209952 +L 586.019067 550.937702 +L 590.230112 552.443392 +L 587.341142 555.209952 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_502"> + <path d="M 739.498468 720.530055 +Q 662.285785 635.409166 585.824267 551.116378 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 587.030367 555.422806 +L 585.824267 551.116378 +L 589.993069 552.735355 +L 587.030367 555.422806 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_503"> + <path d="M 801.549106 765.354726 +Q 693.470646 657.671926 586.184204 550.778244 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 587.606195 555.018284 +L 586.184204 550.778244 +L 590.429431 552.184675 +L 587.606195 555.018284 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_504"> + <path d="M 727.80337 699.355592 +Q 656.52063 624.746028 586.010232 550.944851 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 587.327357 555.218629 +L 586.010232 550.944851 +L 590.219529 552.455418 +L 587.327357 555.218629 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_505"> + <path d="M 754.651105 716.524266 +Q 670.040781 633.238726 586.22724 550.737494 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 587.674885 554.968844 +L 586.22724 550.737494 +L 590.480907 552.118188 +L 587.674885 554.968844 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_506"> + <path d="M 1489.431443 2445.146369 +Q 1774.53137 2429.163925 2058.515016 2413.244059 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2054.409344 2411.471079 +L 2058.515016 2413.244059 +L 2054.633229 2415.464809 +L 2054.409344 2411.471079 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_507"> + <path d="M 1472.138925 2446.161518 +Q 1188.2431 2463.578504 905.46321 2480.927027 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 909.578173 2482.678335 +L 905.46321 2480.927027 +L 909.333234 2478.685841 +L 909.578173 2482.678335 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_508"> + <path d="M 1623.343719 2317.339558 +Q 2008.243186 2216.318188 2392.061246 2115.580645 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2387.684559 2114.661619 +L 2392.061246 2115.580645 +L 2388.700013 2118.530579 +L 2387.684559 2114.661619 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_509"> + <path d="M 1606.583225 2321.706145 +Q 1220.848029 2421.45656 836.19526 2520.92706 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 840.568594 2521.861915 +L 836.19526 2520.92706 +L 839.567144 2517.989306 +L 840.568594 2521.861915 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_510"> + <path d="M 994.653664 2233.027466 +Q 912.858504 2374.452366 831.623097 2514.909446 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 835.35702 2512.448183 +L 831.623097 2514.909446 +L 831.89444 2510.445549 +L 835.35702 2512.448183 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_511"> + <path d="M 949.496676 2320.259355 +Q 890.351167 2418.112281 831.783997 2515.008376 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 835.564757 2512.619682 +L 831.783997 2515.008376 +L 832.141498 2510.550552 +L 835.564757 2512.619682 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_512"> + <path d="M 1223.891077 958.002851 +Q 788.46181 1102.23626 354.093867 1246.118113 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 358.519858 1246.758897 +L 354.093867 1246.118113 +L 357.262089 1242.96179 +L 358.519858 1246.758897 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_513"> + <path d="M 1240.330915 952.544629 +Q 1675.214489 807.824075 2109.037226 663.456546 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2104.610353 662.821886 +L 2109.037226 663.456546 +L 2105.873374 666.617249 +L 2104.610353 662.821886 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_514"> + <path d="M 1449.052167 1268.599754 +Q 901.260921 1258.972066 354.587536 1249.364026 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 358.551773 1251.434008 +L 354.587536 1249.364026 +L 358.622064 1247.434625 +L 358.551773 1251.434008 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_515"> + <path d="M 1466.371385 1268.902441 +Q 2014.583355 1278.429573 2561.677461 1287.937278 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2557.712817 1285.868076 +L 2561.677461 1287.937278 +L 2557.643313 1289.867472 +L 2557.712817 1285.868076 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_516"> + <path d="M 1320.279282 1385.297581 +Q 1010.216731 1908.193619 700.724427 2430.127982 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 704.484899 2427.707476 +L 700.724427 2430.127982 +L 701.044305 2425.667301 +L 704.484899 2427.707476 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_517"> + <path d="M 1329.11364 1370.401298 +Q 1639.52812 847.063913 1949.372232 324.68813 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1945.611451 327.108157 +L 1949.372232 324.68813 +L 1949.051785 329.148771 +L 1945.611451 327.108157 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_518"> + <path d="M 1712.146077 1359.301192 +Q 1888.823586 1881.898328 2065.143024 2403.436319 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2065.756604 2399.006475 +L 2065.143024 2403.436319 +L 2061.967297 2400.287549 +L 2065.756604 2399.006475 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_519"> + <path d="M 1706.588274 1342.904905 +Q 1529.26232 821.141562 1352.296129 300.436789 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1351.689635 304.867609 +L 1352.296129 300.436789 +L 1355.476888 303.580477 +L 1351.689635 304.867609 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_520"> + <path d="M 1857.702766 2394.862136 +Q 1957.482207 2444.801718 2056.261848 2494.2409 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2053.579997 2490.662119 +L 2056.261848 2494.2409 +L 2051.789712 2494.239112 +L 2053.579997 2490.662119 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_521"> + <path d="M 1846.612986 2398.975162 +Q 1808.233768 2490.731484 1770.285975 2581.456364 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1773.674587 2578.537921 +L 1770.285975 2581.456364 +L 1769.984387 2576.994409 +L 1773.674587 2578.537921 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_522"> + <path d="M 1914.022023 1002.256543 +Q 2244.989547 1319.983666 2575.150534 1636.936517 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2573.650037 1632.723619 +L 2575.150534 1636.936517 +L 2570.879918 1635.609176 +L 2573.650037 1632.723619 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_523"> + <path d="M 1901.534445 990.251879 +Q 1570.864447 671.927653 1240.99991 354.378816 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1242.494561 358.593792 +L 1240.99991 354.378816 +L 1245.268681 355.712081 +L 1242.494561 358.593792 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_524"> + <path d="M 2243.377537 1181.986659 +Q 2382.682724 1511.757823 2521.552845 1840.499076 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2521.83867 1836.036083 +L 2521.552845 1840.499076 +L 2518.153946 1837.592621 +L 2521.83867 1836.036083 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_525"> + <path d="M 2236.658986 1166.023723 +Q 2098.246407 835.952386 1960.26619 506.912098 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1959.968657 511.374326 +L 1960.26619 506.912098 +L 1963.657453 509.827461 +L 1959.968657 511.374326 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_526"> + <path d="M 2244.551867 1181.471277 +Q 2383.276906 1511.497053 2521.568704 1840.492148 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2521.862425 1836.029668 +L 2521.568704 1840.492148 +L 2518.174953 1837.579683 +L 2521.862425 1836.029668 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_527"> + <path d="M 2237.833307 1165.508345 +Q 2098.840585 835.691617 1960.282049 506.905172 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1959.992415 511.367919 +L 1960.282049 506.905172 +L 1963.678466 509.814528 +L 1959.992415 511.367919 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_528"> + <path d="M 2198.888264 1201.311579 +Q 2360.174722 1521.540709 2520.95826 1840.771305 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2520.945186 1836.299188 +L 2520.95826 1840.771305 +L 2517.372722 1838.098494 +L 2520.945186 1836.299188 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_529"> + <path d="M 2192.184195 1185.385041 +Q 2075.738747 845.73563 1959.655889 507.143824 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1959.061227 511.576248 +L 1959.655889 507.143824 +L 1962.84503 510.279008 +L 1959.061227 511.576248 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_530"> + <path d="M 1887.586703 772.725571 +Q 1570.527227 584.253661 1254.428807 396.353039 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1256.845238 400.116131 +L 1254.428807 396.353039 +L 1258.889139 396.67775 +L 1256.845238 400.116131 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_531"> + <path d="M 1902.502933 781.531265 +Q 2220.712331 968.085959 2537.957228 1154.075201 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2535.518035 1150.326824 +L 2537.957228 1154.075201 +L 2533.49501 1153.77753 +L 2535.518035 1150.326824 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_532"> + <path d="M 1973.100895 2478.125504 +Q 2017.11925 2447.864217 2060.216286 2418.236309 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 2055.787048 2418.854249 +L 2060.216286 2418.236309 +L 2058.053096 2422.150464 +L 2055.787048 2418.854249 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="patch_533"> + <path d="M 1959.140628 2488.357308 +Q 1916.764225 2521.42903 1875.269213 2553.81289 +" clip-path="url(#pcd1a210b40)" style="fill: none; stroke: #000000; stroke-linecap: round"/> + <path d="M 1879.65305 2552.928602 +L 1875.269213 2553.81289 +L 1877.192085 2549.775247 +L 1879.65305 2552.928602 +z +" clip-path="url(#pcd1a210b40)" style="stroke: #000000; stroke-linecap: round"/> + </g> + <g id="PathCollection_1"> + <defs> + <path id="C0_0_c30399ca38" d="M 0 8.660254 +C 2.296726 8.660254 4.499694 7.747755 6.123724 6.123724 +C 7.747755 4.499694 8.660254 2.296726 8.660254 -0 +C 8.660254 -2.296726 7.747755 -4.499694 6.123724 -6.123724 +C 4.499694 -7.747755 2.296726 -8.660254 0 -8.660254 +C -2.296726 -8.660254 -4.499694 -7.747755 -6.123724 -6.123724 +C -7.747755 -4.499694 -8.660254 -2.296726 -8.660254 0 +C -8.660254 2.296726 -7.747755 4.499694 -6.123724 6.123724 +C -4.499694 7.747755 -2.296726 8.660254 0 8.660254 +z +"/> + </defs> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1530.678918" y="1631.792878" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2613.36416" y="1360.358407" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="445.670971" y="1903.315856" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1669.766711" y="2125.445346" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2525.357985" y="1849.506819" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="815.164122" y="2403.406138" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="738.130558" y="876.039535" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="303.80639" y="1332.603157" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1151.77399" y="399.844362" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2159.464204" y="1014.604531" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2470.510004" y="801.448447" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1501.830363" y="2500.088373" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2068.273834" y="2412.696989" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="936.298194" y="2583.426813" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1496.984786" y="2454.272065" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1317.793013" y="2290.501329" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="567.630674" y="2170.746058" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1497.909199" y="2497.155035" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1498.699827" y="2492.733707" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1973.568919" y="1388.846315" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1874.121555" y="364.470098" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1803.259689" y="1403.890804" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1540.071383" y="395.275299" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1411.888969" y="1670.880106" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="266.507411" y="1748.267267" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2558.475344" y="1593.897933" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2131.158505" y="2344.87922" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2207.375059" y="2295.383428" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2388.077492" y="950.881881" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2360.611023" y="953.479623" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1710.275096" y="1350.46847" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1349.150702" y="291.181692" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1871.741202" y="1345.292152" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1907.778146" y="996.252473" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2582.204459" y="1643.708249" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1233.957818" y="347.599645" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2246.637048" y="1522.46304" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2630.082645" y="1522.285711" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1966.449309" y="2276.138156" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1338.107118" y="464.965124" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1055.558443" y="375.492107" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1621.205523" y="424.487036" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="902.403916" y="2015.127504" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="631.454807" y="2246.231182" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2240.951689" y="2080.873093" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2557.93033" y="1865.711694" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2255.248429" y="955.343949" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1269.116853" y="1733.309363" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="474.545483" y="1049.605766" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="685.946265" y="2217.821204" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1973.568929" y="1388.846342" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1669.948393" y="378.351113" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1799.427583" y="351.018531" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2190.274415" y="1392.000236" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2068.724443" y="442.804731" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2319.30631" y="2340.485641" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2037.311266" y="778.942011" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2265.44184" y="494.795209" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="568.912511" y="2009.023843" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="819.652406" y="2337.819147" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="300.885499" y="1691.411673" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1297.5456" y="1412.388178" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1776.797295" y="485.91629" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1272.643011" y="1729.923139" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="862.492271" y="1385.017683" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="633.595511" y="2330.168404" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1090.173884" y="438.745241" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1418.398015" y="493.336167" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1832.388945" y="441.030872" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1028.384575" y="300.074011" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="536.601629" y="1846.357947" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="357.731905" y="1388.474866" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2271.521088" y="1346.378306" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2348.606811" y="2007.871832" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2200.555593" y="684.390555" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1564.95864" y="864.972344" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2504.923995" y="1273.416146" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="626.166825" y="455.582127" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="427.654506" y="1487.864052" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="401.400524" y="880.785002" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="400.831624" y="2096.041678" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1362.959772" y="1453.963155" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1156.134982" y="2630.082645" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1571.412368" y="278.419695" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1065.965681" y="1679.353085" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="255.329155" y="1275.883573" style="fill: #ffa500; stroke: #ffa500"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2235.946531" y="1816.082698" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2473.786841" y="1911.693725" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1272.541827" y="1729.788215" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="472.131945" y="1450.972347" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="283.692752" y="1447.380997" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1414.525954" y="1513.453909" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2198.126797" y="597.410604" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="631.607863" y="2427.949165" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1516.003687" y="864.354061" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="536.240564" y="807.422448" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2496.770057" y="920.998224" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2226.261474" y="957.370064" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="801.336178" y="547.655961" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="369.75867" y="841.303169" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1229.796519" y="249.917355" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1222.935467" y="2158.691088" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="377.108199" y="1906.647873" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1643.725037" y="1103.170144" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2463.211099" y="1779.699168" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="821.260257" y="428.913634" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2293.610149" y="2111.366286" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2391.466782" y="1963.211862" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2211.229737" y="2269.969174" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="377.514414" y="1467.314425" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="272.507202" y="1563.911018" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="255.150385" y="1379.698169" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="409.903287" y="1706.040563" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="359.060084" y="2098.999338" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="473.189684" y="1075.758763" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="396.56944" y="1252.233011" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="484.049091" y="878.324232" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1477.664223" y="2276.271724" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1525.433407" y="1390.781669" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="984.59618" y="371.548987" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2157.109456" y="1440.313272" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2143.000957" y="2448.181625" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2173.321852" y="431.564451" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1481.103215" y="2316.52599" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1501.820602" y="2499.956539" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="875.343535" y="903.095685" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1499.066609" y="307.658172" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="249.917355" y="1496.158981" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1028.579216" y="1121.998233" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1610.818264" y="339.095226" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="502.949367" y="1917.095569" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="439.339313" y="2016.873237" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="496.120549" y="1648.669795" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="389.637106" y="1553.020255" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1185.632167" y="2356.164333" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1883.987137" y="2478.160833" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="487.43398" y="2236.024133" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2084.509678" y="2007.960417" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2543.166467" y="2000.868122" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1185.479561" y="1699.9671" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="303.918212" y="988.44698" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2199.941226" y="1528.354195" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2333.610285" y="644.147515" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1482.861071" y="2317.107804" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1020.55295" y="2206.405545" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="408.976478" y="1808.596515" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1631.382568" y="2606.621426" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1489.344035" y="2392.713831" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1750.930741" y="1140.029763" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="976.636132" y="431.971092" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1281.409053" y="558.280027" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="823.066439" y="621.666054" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1669.16875" y="251.32617" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1490.333164" y="2399.800403" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1639.408978" y="1616.132997" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2280.364275" y="752.104675" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="999.736022" y="2481.573598" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="424.496108" y="1609.061205" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="346.809943" y="1126.926999" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1641.00172" y="1616.274727" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="519.647605" y="2054.078304" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1480.979118" y="2325.732036" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1484.592306" y="2362.404282" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="312.783995" y="1869.698761" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2360.012578" y="1514.988366" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1477.159305" y="2316.73984" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2216.559065" y="2260.244816" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1432.835932" y="464.199168" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1432.0008" y="275.751255" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="624.43994" y="588.938916" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="579.256202" y="543.875604" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="743.151025" y="701.301979" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="771.27976" y="747.193459" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="292.4705" y="1190.060285" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="332.927578" y="1199.267559" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="804.173513" y="2529.152763" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="826.726541" y="2523.375653" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1613.835021" y="2315.10885" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2401.516777" y="2113.098931" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="606.272822" y="1290.251221" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="344.813322" y="1249.192239" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1458.097594" y="1268.443631" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2571.458327" y="1288.107255" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="564.261176" y="1026.711007" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="592.083255" y="726.176451" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2258.420302" y="1442.316684" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2582.623216" y="1725.552972" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2480.104998" y="1093.065913" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="519.557557" y="1008.360315" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1172.758417" y="697.888391" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1952.283258" y="440.521759" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="392.586215" y="952.97854" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1968.341521" y="1389.290738" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="422.090406" y="1089.914646" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="259.35749" y="1633.978737" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="913.998131" y="677.077427" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="327.058377" y="1044.116551" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2252.164489" y="1844.083788" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1709.369585" y="1351.083296" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1858.293647" y="2409.479124" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2065.008406" y="2498.618549" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1766.511701" y="2590.47983" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2238.784833" y="1174.54612" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1956.485348" y="497.895955" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1895.854377" y="775.7582" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1246.025321" y="391.357695" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2546.391152" y="1159.019706" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1497.901023" y="2497.093457" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1522.118907" y="1426.791859" style="fill: #0000ff; stroke: #0000ff"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2459.368376" y="1699.234334" style="fill: #ffa500; stroke: #ffa500"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1494.129268" y="2431.825409" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1523.019929" y="1427.344905" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2204.022436" y="1130.547394" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2482.911893" y="1008.694768" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1619.457991" y="1754.658182" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2604.343665" y="1179.831631" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1640.114389" y="1617.174491" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2308.267125" y="1940.713441" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2538.866408" y="1763.037498" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2389.804675" y="2239.677527" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="644.747792" y="1932.593337" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="553.334063" y="2283.665989" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="317.931297" y="1798.416788" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="949.096466" y="641.802455" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1304.671866" y="316.498369" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="459.950371" y="721.016225" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1724.114601" y="2293.043362" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1803.840289" y="2464.14637" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="842.863386" y="751.350251" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="901.683275" y="594.75146" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="641.791155" y="696.460129" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1884.502601" y="623.967375" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2000.756354" y="380.539761" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1973.568921" y="1388.846321" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1647.176485" y="576.299307" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="889.647941" y="738.840684" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="701.908481" y="460.449345" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1363.657787" y="1454.290611" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1270.19814" y="2180.877012" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2218.622161" y="2387.877404" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="321.261804" y="1975.783061" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1280.697832" y="1097.461342" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1425.235119" y="339.358" style="fill: #ffa500; stroke: #ffa500"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1126.103502" y="294.490911" style="fill: #ffa500; stroke: #ffa500"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1732.487139" y="312.160909" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1516.844623" y="864.334355" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="728.746952" y="867.458518" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="808.85496" y="940.799092" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2298.637409" y="2114.321828" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1805.283901" y="2226.926354" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1956.940281" y="2404.579264" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1980.281113" y="2556.772158" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="913.074489" y="587.009725" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="803.553314" y="380.123934" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1950.433442" y="2375.164934" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1776.068409" y="2530.553442" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2138.118637" y="2240.041594" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1506.037135" y="2504.560309" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2157.109455" y="1440.313272" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1503.770538" y="2508.610806" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1503.770601" y="2508.608412" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="557.322837" y="1893.332859" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1504.233855" y="2494.760841" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1483.732913" y="2348.28454" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1500.556154" y="2486.333915" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1750.076737" y="1141.137771" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="374.192759" y="1611.854715" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1917.783169" y="2214.06997" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1413.006088" y="1670.897702" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1433.20231" y="451.094804" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1614.969492" y="2319.537472" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1554.907043" y="1076.428455" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2101.600262" y="520.161699" style="fill: #ffa500; stroke: #ffa500"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1539.152709" y="1706.399655" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="505.746497" y="2120.64277" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="482.552608" y="993.21521" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2504.622795" y="1412.725472" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1172.758397" y="697.888344" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="914.015982" y="677.104699" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1705.383053" y="1352.508103" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1852.467116" y="2397.739391" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1874.093645" y="1344.481127" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2257.790643" y="1506.194567" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1503.690174" y="2490.025095" style="fill: #008000; stroke: #008000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1669.766711" y="2125.445346" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1269.107446" y="1733.315252" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="728.582516" y="867.306649" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1643.725037" y="1103.170144" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1506.653189" y="2499.412999" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1489.50949" y="2397.360085" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1028.579216" y="1121.998233" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1498.699268" y="2492.732831" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1020.55061" y="2206.408811" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1483.164188" y="2336.657682" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1483.917681" y="2362.979031" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1479.473466" y="2315.379861" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1497.829007" y="2501.863504" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1642.375439" y="1617.457679" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1639.784122" y="1617.004225" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="498.765089" y="634.762167" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2349.154271" y="559.483795" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1488.044819" y="2382.722239" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1968.470638" y="1389.426791" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1968.149032" y="1389.258279" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="742.252684" y="715.089298" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="777.356071" y="755.299019" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="788.088437" y="756.081575" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="979.216548" y="2238.093176" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1613.837221" y="2315.115274" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1613.83501" y="2315.108816" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2222.424038" y="1032.838362" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2393.794593" y="927.278189" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1538.431268" y="1703.871892" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1539.227246" y="1703.55683" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1538.35575" y="1703.685997" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1538.853741" y="1703.386383" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="938.017503" y="714.140827" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1705.38331" y="1352.510293" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1709.370431" y="1351.086965" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1875.376135" y="1343.850164" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1873.998178" y="1344.516286" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1871.534148" y="1345.356734" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1907.777994" y="996.252612" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2560.909179" y="1520.851867" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1895.854716" y="775.75763" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1504.418557" y="2494.220511" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1839.072218" y="1376.587202" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1838.780635" y="1375.680036" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1929.955473" y="2216.99783" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1732.715101" y="2300.042612" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2492.636163" y="2098.549281" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="972.725207" y="2503.116015" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="727.593614" y="2333.941552" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2074.510796" y="575.424029" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1528.956744" y="1631.706595" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1529.312023" y="1631.567717" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1271.114357" y="1731.590739" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1666.386076" y="463.575087" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2195.10754" y="1391.415644" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2195.107539" y="1391.415643" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2194.06922" y="1391.53698" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2190.100035" y="1392.031395" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2192.837622" y="1391.682416" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1298.254457" y="1411.592354" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1271.024967" y="1731.652831" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="606.195335" y="1824.639601" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1564.95864" y="864.972344" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2276.348309" y="1345.86728" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2271.521354" y="1346.378228" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2264.71144" y="1347.50299" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2276.292763" y="1345.878144" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2276.373703" y="1345.862401" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="403.819477" y="1488.351263" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1271.188635" y="1731.538425" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2258.416127" y="948.242095" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2284.829064" y="924.216539" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="775.007708" y="909.777151" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="864.295464" y="639.892051" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1641.374377" y="1106.411568" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1641.37725" y="1106.409547" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1641.394446" y="1106.393329" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1644.24621" y="1102.383839" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2208.856737" y="977.803528" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2115.208663" y="1040.030807" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2322.945294" y="900.381022" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1526.177938" y="1391.960519" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1474.844872" y="2282.385792" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1505.790641" y="2504.072955" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1500.310823" y="2505.279162" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1478.501912" y="2300.19966" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1494.062732" y="2431.133519" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="875.343087" y="903.095302" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1499.365638" y="2475.555802" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1482.143844" y="2335.401977" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1485.034899" y="2366.875888" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1504.530488" y="2493.961502" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1185.630445" y="2356.178262" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2298.950363" y="2200.11181" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1496.361962" y="2449.156109" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1479.06375" y="2319.937308" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2199.968793" y="1528.35686" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2199.949991" y="1528.355044" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1475.296526" y="2273.688126" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1476.504888" y="2276.699278" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1487.696518" y="2364.221131" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1340.022522" y="1042.616143" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2376.898981" y="751.452949" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1750.076922" y="1141.137556" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1750.077705" y="1141.13662" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1247.781589" y="442.352051" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1490.765969" y="2404.146571" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1500.281636" y="2505.456567" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="414.37001" y="1609.605881" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1968.258996" y="1389.287226" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1506.65464" y="2499.448795" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="420.565792" y="1331.036451" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2595.408792" y="1519.342847" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2490.306385" y="1521.196113" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1460.584734" y="2096.520853" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2424.037499" y="1887.91696" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="496.980027" y="2307.52921" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1940.144602" y="2240.11407" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1487.709408" y="2365.731787" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1479.57478" y="2310.203416" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1499.950948" y="2488.375368" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2015.196373" y="2207.118176" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2110.873033" y="2187.270528" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2151.149143" y="2223.489193" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1973.742476" y="1388.589512" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1968.341206" y="1389.22876" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="680.384154" y="643.647268" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="822.108222" y="780.497285" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="710.937124" y="681.382925" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="745.318871" y="726.94659" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="807.687213" y="771.470362" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="733.785436" y="705.616846" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="760.820914" y="722.597471" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1480.785315" y="2445.631063" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="895.705523" y="2481.52566" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1614.969492" y="2319.537472" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="998.989412" y="2225.530901" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="953.976119" y="2312.848368" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1232.112704" y="955.279485" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2118.313745" y="660.369507" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1457.708452" y="1268.751892" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1324.69639" y="1377.848476" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="695.734739" y="2438.542697" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1954.362254" y="316.275297" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1709.373659" y="1351.100613" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1849.955261" y="2390.984512" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1907.772807" y="996.257327" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2240.008563" y="1174.01143" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2241.196923" y="1173.489891" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2194.992853" y="1193.577365" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1895.031318" y="777.150926" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1965.966749" y="2483.030014" style="fill: #ffff00; stroke: #ffff00"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="1867.560087" y="2559.829306" style="fill: #ff0000; stroke: #ff0000"/> + </g> + <g clip-path="url(#pcd1a210b40)"> + <use xlink:href="#C0_0_c30399ca38" x="2102.3715" y="2357.549376" style="fill: #ffff00; stroke: #ffff00"/> + </g> + </g> + <g id="text_1"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 0 --> + <g transform="translate(1526.861418 1635.104128) scale(0.12 -0.12)"> + <defs> + <path id="DejaVuSans-30" d="M 2034 4250 +Q 1547 4250 1301 3770 +Q 1056 3291 1056 2328 +Q 1056 1369 1301 889 +Q 1547 409 2034 409 +Q 2525 409 2770 889 +Q 3016 1369 3016 2328 +Q 3016 3291 2770 3770 +Q 2525 4250 2034 4250 +z +M 2034 4750 +Q 2819 4750 3233 4129 +Q 3647 3509 3647 2328 +Q 3647 1150 3233 529 +Q 2819 -91 2034 -91 +Q 1250 -91 836 529 +Q 422 1150 422 2328 +Q 422 3509 836 4129 +Q 1250 4750 2034 4750 +z +" transform="scale(0.015625)"/> + </defs> + <use xlink:href="#DejaVuSans-30"/> + </g> + </g> + </g> + <g id="text_2"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 1 --> + <g transform="translate(2609.54666 1363.669657) scale(0.12 -0.12)"> + <defs> + <path id="DejaVuSans-31" d="M 794 531 +L 1825 531 +L 1825 4091 +L 703 3866 +L 703 4441 +L 1819 4666 +L 2450 4666 +L 2450 531 +L 3481 531 +L 3481 0 +L 794 0 +L 794 531 +z +" transform="scale(0.015625)"/> + </defs> + <use xlink:href="#DejaVuSans-31"/> + </g> + </g> + </g> + <g id="text_3"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 2 --> + <g transform="translate(441.853471 1906.627106) scale(0.12 -0.12)"> + <defs> + <path id="DejaVuSans-32" d="M 1228 531 +L 3431 531 +L 3431 0 +L 469 0 +L 469 531 +Q 828 903 1448 1529 +Q 2069 2156 2228 2338 +Q 2531 2678 2651 2914 +Q 2772 3150 2772 3378 +Q 2772 3750 2511 3984 +Q 2250 4219 1831 4219 +Q 1534 4219 1204 4116 +Q 875 4013 500 3803 +L 500 4441 +Q 881 4594 1212 4672 +Q 1544 4750 1819 4750 +Q 2544 4750 2975 4387 +Q 3406 4025 3406 3419 +Q 3406 3131 3298 2873 +Q 3191 2616 2906 2266 +Q 2828 2175 2409 1742 +Q 1991 1309 1228 531 +z +" transform="scale(0.015625)"/> + </defs> + <use xlink:href="#DejaVuSans-32"/> + </g> + </g> + </g> + <g id="text_4"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 3 --> + <g transform="translate(1665.949211 2128.756596) scale(0.12 -0.12)"> + <defs> + <path id="DejaVuSans-33" d="M 2597 2516 +Q 3050 2419 3304 2112 +Q 3559 1806 3559 1356 +Q 3559 666 3084 287 +Q 2609 -91 1734 -91 +Q 1441 -91 1130 -33 +Q 819 25 488 141 +L 488 750 +Q 750 597 1062 519 +Q 1375 441 1716 441 +Q 2309 441 2620 675 +Q 2931 909 2931 1356 +Q 2931 1769 2642 2001 +Q 2353 2234 1838 2234 +L 1294 2234 +L 1294 2753 +L 1863 2753 +Q 2328 2753 2575 2939 +Q 2822 3125 2822 3475 +Q 2822 3834 2567 4026 +Q 2313 4219 1838 4219 +Q 1578 4219 1281 4162 +Q 984 4106 628 3988 +L 628 4550 +Q 988 4650 1302 4700 +Q 1616 4750 1894 4750 +Q 2613 4750 3031 4423 +Q 3450 4097 3450 3541 +Q 3450 3153 3228 2886 +Q 3006 2619 2597 2516 +z +" transform="scale(0.015625)"/> + </defs> + <use xlink:href="#DejaVuSans-33"/> + </g> + </g> + </g> + <g id="text_5"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 4 --> + <g transform="translate(2521.540485 1852.818069) scale(0.12 -0.12)"> + <defs> + <path id="DejaVuSans-34" d="M 2419 4116 +L 825 1625 +L 2419 1625 +L 2419 4116 +z +M 2253 4666 +L 3047 4666 +L 3047 1625 +L 3713 1625 +L 3713 1100 +L 3047 1100 +L 3047 0 +L 2419 0 +L 2419 1100 +L 313 1100 +L 313 1709 +L 2253 4666 +z +" transform="scale(0.015625)"/> + </defs> + <use xlink:href="#DejaVuSans-34"/> + </g> + </g> + </g> + <g id="text_6"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 5 --> + <g transform="translate(811.346622 2406.717388) scale(0.12 -0.12)"> + <defs> + <path id="DejaVuSans-35" d="M 691 4666 +L 3169 4666 +L 3169 4134 +L 1269 4134 +L 1269 2991 +Q 1406 3038 1543 3061 +Q 1681 3084 1819 3084 +Q 2600 3084 3056 2656 +Q 3513 2228 3513 1497 +Q 3513 744 3044 326 +Q 2575 -91 1722 -91 +Q 1428 -91 1123 -41 +Q 819 9 494 109 +L 494 744 +Q 775 591 1075 516 +Q 1375 441 1709 441 +Q 2250 441 2565 725 +Q 2881 1009 2881 1497 +Q 2881 1984 2565 2268 +Q 2250 2553 1709 2553 +Q 1456 2553 1204 2497 +Q 953 2441 691 2322 +L 691 4666 +z +" transform="scale(0.015625)"/> + </defs> + <use xlink:href="#DejaVuSans-35"/> + </g> + </g> + </g> + <g id="text_7"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 6 --> + <g transform="translate(734.313058 879.350785) scale(0.12 -0.12)"> + <defs> + <path id="DejaVuSans-36" d="M 2113 2584 +Q 1688 2584 1439 2293 +Q 1191 2003 1191 1497 +Q 1191 994 1439 701 +Q 1688 409 2113 409 +Q 2538 409 2786 701 +Q 3034 994 3034 1497 +Q 3034 2003 2786 2293 +Q 2538 2584 2113 2584 +z +M 3366 4563 +L 3366 3988 +Q 3128 4100 2886 4159 +Q 2644 4219 2406 4219 +Q 1781 4219 1451 3797 +Q 1122 3375 1075 2522 +Q 1259 2794 1537 2939 +Q 1816 3084 2150 3084 +Q 2853 3084 3261 2657 +Q 3669 2231 3669 1497 +Q 3669 778 3244 343 +Q 2819 -91 2113 -91 +Q 1303 -91 875 529 +Q 447 1150 447 2328 +Q 447 3434 972 4092 +Q 1497 4750 2381 4750 +Q 2619 4750 2861 4703 +Q 3103 4656 3366 4563 +z +" transform="scale(0.015625)"/> + </defs> + <use xlink:href="#DejaVuSans-36"/> + </g> + </g> + </g> + <g id="text_8"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 7 --> + <g transform="translate(299.98889 1335.914407) scale(0.12 -0.12)"> + <defs> + <path id="DejaVuSans-37" d="M 525 4666 +L 3525 4666 +L 3525 4397 +L 1831 0 +L 1172 0 +L 2766 4134 +L 525 4134 +L 525 4666 +z +" transform="scale(0.015625)"/> + </defs> + <use xlink:href="#DejaVuSans-37"/> + </g> + </g> + </g> + <g id="text_9"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 8 --> + <g transform="translate(1147.95649 403.155612) scale(0.12 -0.12)"> + <defs> + <path id="DejaVuSans-38" d="M 2034 2216 +Q 1584 2216 1326 1975 +Q 1069 1734 1069 1313 +Q 1069 891 1326 650 +Q 1584 409 2034 409 +Q 2484 409 2743 651 +Q 3003 894 3003 1313 +Q 3003 1734 2745 1975 +Q 2488 2216 2034 2216 +z +M 1403 2484 +Q 997 2584 770 2862 +Q 544 3141 544 3541 +Q 544 4100 942 4425 +Q 1341 4750 2034 4750 +Q 2731 4750 3128 4425 +Q 3525 4100 3525 3541 +Q 3525 3141 3298 2862 +Q 3072 2584 2669 2484 +Q 3125 2378 3379 2068 +Q 3634 1759 3634 1313 +Q 3634 634 3220 271 +Q 2806 -91 2034 -91 +Q 1263 -91 848 271 +Q 434 634 434 1313 +Q 434 1759 690 2068 +Q 947 2378 1403 2484 +z +M 1172 3481 +Q 1172 3119 1398 2916 +Q 1625 2713 2034 2713 +Q 2441 2713 2670 2916 +Q 2900 3119 2900 3481 +Q 2900 3844 2670 4047 +Q 2441 4250 2034 4250 +Q 1625 4250 1398 4047 +Q 1172 3844 1172 3481 +z +" transform="scale(0.015625)"/> + </defs> + <use xlink:href="#DejaVuSans-38"/> + </g> + </g> + </g> + <g id="text_10"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 9 --> + <g transform="translate(2155.646704 1017.915781) scale(0.12 -0.12)"> + <defs> + <path id="DejaVuSans-39" d="M 703 97 +L 703 672 +Q 941 559 1184 500 +Q 1428 441 1663 441 +Q 2288 441 2617 861 +Q 2947 1281 2994 2138 +Q 2813 1869 2534 1725 +Q 2256 1581 1919 1581 +Q 1219 1581 811 2004 +Q 403 2428 403 3163 +Q 403 3881 828 4315 +Q 1253 4750 1959 4750 +Q 2769 4750 3195 4129 +Q 3622 3509 3622 2328 +Q 3622 1225 3098 567 +Q 2575 -91 1691 -91 +Q 1453 -91 1209 -44 +Q 966 3 703 97 +z +M 1959 2075 +Q 2384 2075 2632 2365 +Q 2881 2656 2881 3163 +Q 2881 3666 2632 3958 +Q 2384 4250 1959 4250 +Q 1534 4250 1286 3958 +Q 1038 3666 1038 3163 +Q 1038 2656 1286 2365 +Q 1534 2075 1959 2075 +z +" transform="scale(0.015625)"/> + </defs> + <use xlink:href="#DejaVuSans-39"/> + </g> + </g> + </g> + <g id="text_11"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 10 --> + <g transform="translate(2462.875004 804.759697) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + </g> + </g> + </g> + <g id="text_12"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 11 --> + <g transform="translate(1494.195363 2503.399623) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + </g> + </g> + </g> + <g id="text_13"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 12 --> + <g transform="translate(2060.638834 2416.008239) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + </g> + </g> + </g> + <g id="text_14"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 13 --> + <g transform="translate(928.663194 2586.738063) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + </g> + </g> + </g> + <g id="text_15"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 14 --> + <g transform="translate(1489.349786 2457.583315) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + </g> + </g> + </g> + <g id="text_16"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 15 --> + <g transform="translate(1310.158013 2293.812579) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + </g> + </g> + </g> + <g id="text_17"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 16 --> + <g transform="translate(559.995674 2174.057308) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + </g> + </g> + </g> + <g id="text_18"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 17 --> + <g transform="translate(1490.274199 2500.466285) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + </g> + </g> + </g> + <g id="text_19"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 18 --> + <g transform="translate(1491.064827 2496.044957) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + </g> + </g> + </g> + <g id="text_20"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 19 --> + <g transform="translate(1965.933919 1392.157565) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + </g> + </g> + </g> + <g id="text_21"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 20 --> + <g transform="translate(1866.486555 367.781348) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + </g> + </g> + </g> + <g id="text_22"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 21 --> + <g transform="translate(1795.624689 1407.202054) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + </g> + </g> + </g> + <g id="text_23"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 22 --> + <g transform="translate(1532.436383 398.586549) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + </g> + </g> + </g> + <g id="text_24"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 23 --> + <g transform="translate(1404.253969 1674.191356) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + </g> + </g> + </g> + <g id="text_25"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 24 --> + <g transform="translate(258.872411 1751.578517) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + </g> + </g> + </g> + <g id="text_26"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 25 --> + <g transform="translate(2550.840344 1597.209183) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + </g> + </g> + </g> + <g id="text_27"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 26 --> + <g transform="translate(2123.523505 2348.19047) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + </g> + </g> + </g> + <g id="text_28"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 27 --> + <g transform="translate(2199.740059 2298.694678) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + </g> + </g> + </g> + <g id="text_29"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 28 --> + <g transform="translate(2380.442492 954.193131) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + </g> + </g> + </g> + <g id="text_30"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 29 --> + <g transform="translate(2352.976023 956.790873) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + </g> + </g> + </g> + <g id="text_31"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 30 --> + <g transform="translate(1702.640096 1353.77972) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + </g> + </g> + </g> + <g id="text_32"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 31 --> + <g transform="translate(1341.515702 294.492942) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + </g> + </g> + </g> + <g id="text_33"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 32 --> + <g transform="translate(1864.106202 1348.603402) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + </g> + </g> + </g> + <g id="text_34"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 33 --> + <g transform="translate(1900.143146 999.563723) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + </g> + </g> + </g> + <g id="text_35"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 34 --> + <g transform="translate(2574.569459 1647.019499) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + </g> + </g> + </g> + <g id="text_36"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 35 --> + <g transform="translate(1226.322818 350.910895) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + </g> + </g> + </g> + <g id="text_37"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 36 --> + <g transform="translate(2239.002048 1525.77429) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + </g> + </g> + </g> + <g id="text_38"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 37 --> + <g transform="translate(2622.447645 1525.596961) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + </g> + </g> + </g> + <g id="text_39"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 38 --> + <g transform="translate(1958.814309 2279.449406) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + </g> + </g> + </g> + <g id="text_40"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 39 --> + <g transform="translate(1330.472118 468.276374) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + </g> + </g> + </g> + <g id="text_41"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 40 --> + <g transform="translate(1047.923443 378.803357) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + </g> + </g> + </g> + <g id="text_42"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 41 --> + <g transform="translate(1613.570523 427.798286) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + </g> + </g> + </g> + <g id="text_43"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 42 --> + <g transform="translate(894.768916 2018.438754) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + </g> + </g> + </g> + <g id="text_44"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 43 --> + <g transform="translate(623.819807 2249.542432) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + </g> + </g> + </g> + <g id="text_45"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 44 --> + <g transform="translate(2233.316689 2084.184343) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + </g> + </g> + </g> + <g id="text_46"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 45 --> + <g transform="translate(2550.29533 1869.022944) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + </g> + </g> + </g> + <g id="text_47"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 46 --> + <g transform="translate(2247.613429 958.655199) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + </g> + </g> + </g> + <g id="text_48"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 47 --> + <g transform="translate(1261.481853 1736.620613) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + </g> + </g> + </g> + <g id="text_49"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 48 --> + <g transform="translate(466.910483 1052.917016) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + </g> + </g> + </g> + <g id="text_50"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 49 --> + <g transform="translate(678.311265 2221.132454) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + </g> + </g> + </g> + <g id="text_51"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 50 --> + <g transform="translate(1965.933929 1392.157592) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-35"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + </g> + </g> + </g> + <g id="text_52"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 51 --> + <g transform="translate(1662.313393 381.662363) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-35"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + </g> + </g> + </g> + <g id="text_53"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 52 --> + <g transform="translate(1791.792583 354.329781) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-35"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + </g> + </g> + </g> + <g id="text_54"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 53 --> + <g transform="translate(2182.639415 1395.311486) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-35"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + </g> + </g> + </g> + <g id="text_55"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 54 --> + <g transform="translate(2061.089443 446.115981) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-35"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + </g> + </g> + </g> + <g id="text_56"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 55 --> + <g transform="translate(2311.67131 2343.796891) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-35"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + </g> + </g> + </g> + <g id="text_57"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 56 --> + <g transform="translate(2029.676266 782.253261) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-35"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + </g> + </g> + </g> + <g id="text_58"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 57 --> + <g transform="translate(2257.80684 498.106459) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-35"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + </g> + </g> + </g> + <g id="text_59"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 58 --> + <g transform="translate(561.277511 2012.335093) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-35"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + </g> + </g> + </g> + <g id="text_60"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 59 --> + <g transform="translate(812.017406 2341.130397) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-35"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + </g> + </g> + </g> + <g id="text_61"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 60 --> + <g transform="translate(293.250499 1694.722923) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-36"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + </g> + </g> + </g> + <g id="text_62"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 61 --> + <g transform="translate(1289.9106 1415.699428) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-36"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + </g> + </g> + </g> + <g id="text_63"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 62 --> + <g transform="translate(1769.162295 489.22754) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-36"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + </g> + </g> + </g> + <g id="text_64"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 63 --> + <g transform="translate(1265.008011 1733.234389) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-36"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + </g> + </g> + </g> + <g id="text_65"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 64 --> + <g transform="translate(854.857271 1388.328933) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-36"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + </g> + </g> + </g> + <g id="text_66"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 65 --> + <g transform="translate(625.960511 2333.479654) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-36"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + </g> + </g> + </g> + <g id="text_67"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 66 --> + <g transform="translate(1082.538884 442.056491) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-36"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + </g> + </g> + </g> + <g id="text_68"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 67 --> + <g transform="translate(1410.763015 496.647417) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-36"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + </g> + </g> + </g> + <g id="text_69"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 68 --> + <g transform="translate(1824.753945 444.342122) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-36"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + </g> + </g> + </g> + <g id="text_70"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 69 --> + <g transform="translate(1020.749575 303.385261) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-36"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + </g> + </g> + </g> + <g id="text_71"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 70 --> + <g transform="translate(528.966629 1849.669197) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-37"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + </g> + </g> + </g> + <g id="text_72"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 71 --> + <g transform="translate(350.096905 1391.786116) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-37"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + </g> + </g> + </g> + <g id="text_73"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 72 --> + <g transform="translate(2263.886088 1349.689556) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-37"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + </g> + </g> + </g> + <g id="text_74"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 73 --> + <g transform="translate(2340.971811 2011.183082) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-37"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + </g> + </g> + </g> + <g id="text_75"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 74 --> + <g transform="translate(2192.920593 687.701805) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-37"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + </g> + </g> + </g> + <g id="text_76"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 75 --> + <g transform="translate(1557.32364 868.283594) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-37"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + </g> + </g> + </g> + <g id="text_77"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 76 --> + <g transform="translate(2497.288995 1276.727396) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-37"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + </g> + </g> + </g> + <g id="text_78"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 77 --> + <g transform="translate(618.531825 458.893377) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-37"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + </g> + </g> + </g> + <g id="text_79"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 78 --> + <g transform="translate(420.019506 1491.175302) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-37"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + </g> + </g> + </g> + <g id="text_80"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 79 --> + <g transform="translate(393.765524 884.096252) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-37"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + </g> + </g> + </g> + <g id="text_81"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 80 --> + <g transform="translate(393.196624 2099.352928) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-38"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + </g> + </g> + </g> + <g id="text_82"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 81 --> + <g transform="translate(1355.324772 1457.274405) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-38"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + </g> + </g> + </g> + <g id="text_83"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 82 --> + <g transform="translate(1148.499982 2633.393895) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-38"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + </g> + </g> + </g> + <g id="text_84"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 83 --> + <g transform="translate(1563.777368 281.730945) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-38"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + </g> + </g> + </g> + <g id="text_85"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 84 --> + <g transform="translate(1058.330681 1682.664335) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-38"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + </g> + </g> + </g> + <g id="text_86"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 85 --> + <g transform="translate(247.694155 1279.194823) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-38"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + </g> + </g> + </g> + <g id="text_87"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 86 --> + <g transform="translate(2228.311531 1819.393948) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-38"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + </g> + </g> + </g> + <g id="text_88"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 87 --> + <g transform="translate(2466.151841 1915.004975) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-38"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + </g> + </g> + </g> + <g id="text_89"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 88 --> + <g transform="translate(1264.906827 1733.099465) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-38"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + </g> + </g> + </g> + <g id="text_90"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 89 --> + <g transform="translate(464.496945 1454.283597) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-38"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + </g> + </g> + </g> + <g id="text_91"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 90 --> + <g transform="translate(276.057752 1450.692247) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-39"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + </g> + </g> + </g> + <g id="text_92"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 91 --> + <g transform="translate(1406.890954 1516.765159) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-39"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + </g> + </g> + </g> + <g id="text_93"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 92 --> + <g transform="translate(2190.491797 600.721854) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-39"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + </g> + </g> + </g> + <g id="text_94"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 93 --> + <g transform="translate(623.972863 2431.260415) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-39"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + </g> + </g> + </g> + <g id="text_95"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 94 --> + <g transform="translate(1508.368687 867.665311) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-39"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + </g> + </g> + </g> + <g id="text_96"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 95 --> + <g transform="translate(528.605564 810.733698) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-39"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + </g> + </g> + </g> + <g id="text_97"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 96 --> + <g transform="translate(2489.135057 924.309474) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-39"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + </g> + </g> + </g> + <g id="text_98"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 97 --> + <g transform="translate(2218.626474 960.681314) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-39"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + </g> + </g> + </g> + <g id="text_99"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 98 --> + <g transform="translate(793.701178 550.967211) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-39"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + </g> + </g> + </g> + <g id="text_100"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 99 --> + <g transform="translate(362.12367 844.614419) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-39"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + </g> + </g> + </g> + <g id="text_101"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 100 --> + <g transform="translate(1218.344019 253.228605) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-30" x="127.246094"/> + </g> + </g> + </g> + <g id="text_102"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 101 --> + <g transform="translate(1211.482967 2162.002338) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-31" x="127.246094"/> + </g> + </g> + </g> + <g id="text_103"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 102 --> + <g transform="translate(365.655699 1909.959123) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-32" x="127.246094"/> + </g> + </g> + </g> + <g id="text_104"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 103 --> + <g transform="translate(1632.272537 1106.481394) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-33" x="127.246094"/> + </g> + </g> + </g> + <g id="text_105"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 104 --> + <g transform="translate(2451.758599 1783.010418) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-34" x="127.246094"/> + </g> + </g> + </g> + <g id="text_106"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 105 --> + <g transform="translate(809.807757 432.224884) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-35" x="127.246094"/> + </g> + </g> + </g> + <g id="text_107"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 106 --> + <g transform="translate(2282.157649 2114.677536) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-36" x="127.246094"/> + </g> + </g> + </g> + <g id="text_108"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 107 --> + <g transform="translate(2380.014282 1966.523112) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-37" x="127.246094"/> + </g> + </g> + </g> + <g id="text_109"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 108 --> + <g transform="translate(2199.777237 2273.280424) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-38" x="127.246094"/> + </g> + </g> + </g> + <g id="text_110"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 109 --> + <g transform="translate(366.061914 1470.625675) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-39" x="127.246094"/> + </g> + </g> + </g> + <g id="text_111"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 110 --> + <g transform="translate(261.054702 1567.222268) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-30" x="127.246094"/> + </g> + </g> + </g> + <g id="text_112"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 111 --> + <g transform="translate(243.697885 1383.009419) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-31" x="127.246094"/> + </g> + </g> + </g> + <g id="text_113"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 112 --> + <g transform="translate(398.450787 1709.351813) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-32" x="127.246094"/> + </g> + </g> + </g> + <g id="text_114"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 113 --> + <g transform="translate(347.607584 2102.310588) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-33" x="127.246094"/> + </g> + </g> + </g> + <g id="text_115"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 114 --> + <g transform="translate(461.737184 1079.070013) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-34" x="127.246094"/> + </g> + </g> + </g> + <g id="text_116"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 115 --> + <g transform="translate(385.11694 1255.544261) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-35" x="127.246094"/> + </g> + </g> + </g> + <g id="text_117"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 116 --> + <g transform="translate(472.596591 881.635482) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-36" x="127.246094"/> + </g> + </g> + </g> + <g id="text_118"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 117 --> + <g transform="translate(1466.211723 2279.582974) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-37" x="127.246094"/> + </g> + </g> + </g> + <g id="text_119"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 118 --> + <g transform="translate(1513.980907 1394.092919) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-38" x="127.246094"/> + </g> + </g> + </g> + <g id="text_120"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 119 --> + <g transform="translate(973.14368 374.860237) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-39" x="127.246094"/> + </g> + </g> + </g> + <g id="text_121"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 120 --> + <g transform="translate(2145.656956 1443.624522) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-30" x="127.246094"/> + </g> + </g> + </g> + <g id="text_122"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 121 --> + <g transform="translate(2131.548457 2451.492875) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-31" x="127.246094"/> + </g> + </g> + </g> + <g id="text_123"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 122 --> + <g transform="translate(2161.869352 434.875701) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-32" x="127.246094"/> + </g> + </g> + </g> + <g id="text_124"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 123 --> + <g transform="translate(1469.650715 2319.83724) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-33" x="127.246094"/> + </g> + </g> + </g> + <g id="text_125"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 124 --> + <g transform="translate(1490.368102 2503.267789) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-34" x="127.246094"/> + </g> + </g> + </g> + <g id="text_126"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 125 --> + <g transform="translate(863.891035 906.406935) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-35" x="127.246094"/> + </g> + </g> + </g> + <g id="text_127"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 126 --> + <g transform="translate(1487.614109 310.969422) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-36" x="127.246094"/> + </g> + </g> + </g> + <g id="text_128"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 127 --> + <g transform="translate(238.464855 1499.470231) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-37" x="127.246094"/> + </g> + </g> + </g> + <g id="text_129"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 128 --> + <g transform="translate(1017.126716 1125.309483) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-38" x="127.246094"/> + </g> + </g> + </g> + <g id="text_130"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 129 --> + <g transform="translate(1599.365764 342.406476) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-39" x="127.246094"/> + </g> + </g> + </g> + <g id="text_131"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 130 --> + <g transform="translate(491.496867 1920.406819) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-30" x="127.246094"/> + </g> + </g> + </g> + <g id="text_132"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 131 --> + <g transform="translate(427.886813 2020.184487) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-31" x="127.246094"/> + </g> + </g> + </g> + <g id="text_133"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 132 --> + <g transform="translate(484.668049 1651.981045) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-32" x="127.246094"/> + </g> + </g> + </g> + <g id="text_134"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 133 --> + <g transform="translate(378.184606 1556.331505) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-33" x="127.246094"/> + </g> + </g> + </g> + <g id="text_135"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 134 --> + <g transform="translate(1174.179667 2359.475583) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-34" x="127.246094"/> + </g> + </g> + </g> + <g id="text_136"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 135 --> + <g transform="translate(1872.534637 2481.472083) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-35" x="127.246094"/> + </g> + </g> + </g> + <g id="text_137"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 136 --> + <g transform="translate(475.98148 2239.335383) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-36" x="127.246094"/> + </g> + </g> + </g> + <g id="text_138"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 137 --> + <g transform="translate(2073.057178 2011.271667) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-37" x="127.246094"/> + </g> + </g> + </g> + <g id="text_139"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 138 --> + <g transform="translate(2531.713967 2004.179372) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-38" x="127.246094"/> + </g> + </g> + </g> + <g id="text_140"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 139 --> + <g transform="translate(1174.027061 1703.27835) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-39" x="127.246094"/> + </g> + </g> + </g> + <g id="text_141"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 140 --> + <g transform="translate(292.465712 991.75823) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + <use xlink:href="#DejaVuSans-30" x="127.246094"/> + </g> + </g> + </g> + <g id="text_142"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 141 --> + <g transform="translate(2188.488726 1531.665445) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + <use xlink:href="#DejaVuSans-31" x="127.246094"/> + </g> + </g> + </g> + <g id="text_143"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 142 --> + <g transform="translate(2322.157785 647.458765) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + <use xlink:href="#DejaVuSans-32" x="127.246094"/> + </g> + </g> + </g> + <g id="text_144"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 143 --> + <g transform="translate(1471.408571 2320.419054) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + <use xlink:href="#DejaVuSans-33" x="127.246094"/> + </g> + </g> + </g> + <g id="text_145"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 144 --> + <g transform="translate(1009.10045 2209.716795) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + <use xlink:href="#DejaVuSans-34" x="127.246094"/> + </g> + </g> + </g> + <g id="text_146"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 145 --> + <g transform="translate(397.523978 1811.907765) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + <use xlink:href="#DejaVuSans-35" x="127.246094"/> + </g> + </g> + </g> + <g id="text_147"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 146 --> + <g transform="translate(1619.930068 2609.932676) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + <use xlink:href="#DejaVuSans-36" x="127.246094"/> + </g> + </g> + </g> + <g id="text_148"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 147 --> + <g transform="translate(1477.891535 2396.025081) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + <use xlink:href="#DejaVuSans-37" x="127.246094"/> + </g> + </g> + </g> + <g id="text_149"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 148 --> + <g transform="translate(1739.478241 1143.341013) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + <use xlink:href="#DejaVuSans-38" x="127.246094"/> + </g> + </g> + </g> + <g id="text_150"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 149 --> + <g transform="translate(965.183632 435.282342) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + <use xlink:href="#DejaVuSans-39" x="127.246094"/> + </g> + </g> + </g> + <g id="text_151"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 150 --> + <g transform="translate(1269.956553 561.591277) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + <use xlink:href="#DejaVuSans-30" x="127.246094"/> + </g> + </g> + </g> + <g id="text_152"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 151 --> + <g transform="translate(811.613939 624.977304) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + <use xlink:href="#DejaVuSans-31" x="127.246094"/> + </g> + </g> + </g> + <g id="text_153"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 152 --> + <g transform="translate(1657.71625 254.63742) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + <use xlink:href="#DejaVuSans-32" x="127.246094"/> + </g> + </g> + </g> + <g id="text_154"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 153 --> + <g transform="translate(1478.880664 2403.111653) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + <use xlink:href="#DejaVuSans-33" x="127.246094"/> + </g> + </g> + </g> + <g id="text_155"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 154 --> + <g transform="translate(1627.956478 1619.444247) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + <use xlink:href="#DejaVuSans-34" x="127.246094"/> + </g> + </g> + </g> + <g id="text_156"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 155 --> + <g transform="translate(2268.911775 755.415925) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + <use xlink:href="#DejaVuSans-35" x="127.246094"/> + </g> + </g> + </g> + <g id="text_157"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 156 --> + <g transform="translate(988.283522 2484.884848) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + <use xlink:href="#DejaVuSans-36" x="127.246094"/> + </g> + </g> + </g> + <g id="text_158"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 157 --> + <g transform="translate(413.043608 1612.372455) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + <use xlink:href="#DejaVuSans-37" x="127.246094"/> + </g> + </g> + </g> + <g id="text_159"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 158 --> + <g transform="translate(335.357443 1130.238249) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + <use xlink:href="#DejaVuSans-38" x="127.246094"/> + </g> + </g> + </g> + <g id="text_160"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 159 --> + <g transform="translate(1629.54922 1619.585977) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + <use xlink:href="#DejaVuSans-39" x="127.246094"/> + </g> + </g> + </g> + <g id="text_161"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 160 --> + <g transform="translate(508.195105 2057.389554) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + <use xlink:href="#DejaVuSans-30" x="127.246094"/> + </g> + </g> + </g> + <g id="text_162"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 161 --> + <g transform="translate(1469.526618 2329.043286) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + <use xlink:href="#DejaVuSans-31" x="127.246094"/> + </g> + </g> + </g> + <g id="text_163"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 162 --> + <g transform="translate(1473.139806 2365.715532) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + <use xlink:href="#DejaVuSans-32" x="127.246094"/> + </g> + </g> + </g> + <g id="text_164"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 163 --> + <g transform="translate(301.331495 1873.010011) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + <use xlink:href="#DejaVuSans-33" x="127.246094"/> + </g> + </g> + </g> + <g id="text_165"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 164 --> + <g transform="translate(2348.560078 1518.299616) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + <use xlink:href="#DejaVuSans-34" x="127.246094"/> + </g> + </g> + </g> + <g id="text_166"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 165 --> + <g transform="translate(1465.706805 2320.05109) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + <use xlink:href="#DejaVuSans-35" x="127.246094"/> + </g> + </g> + </g> + <g id="text_167"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 166 --> + <g transform="translate(2205.106565 2263.556066) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + <use xlink:href="#DejaVuSans-36" x="127.246094"/> + </g> + </g> + </g> + <g id="text_168"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 167 --> + <g transform="translate(1421.383432 467.510418) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + <use xlink:href="#DejaVuSans-37" x="127.246094"/> + </g> + </g> + </g> + <g id="text_169"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 168 --> + <g transform="translate(1420.5483 279.062505) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + <use xlink:href="#DejaVuSans-38" x="127.246094"/> + </g> + </g> + </g> + <g id="text_170"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 169 --> + <g transform="translate(612.98744 592.250166) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + <use xlink:href="#DejaVuSans-39" x="127.246094"/> + </g> + </g> + </g> + <g id="text_171"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 170 --> + <g transform="translate(567.803702 547.186854) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + <use xlink:href="#DejaVuSans-30" x="127.246094"/> + </g> + </g> + </g> + <g id="text_172"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 171 --> + <g transform="translate(731.698525 704.613229) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + <use xlink:href="#DejaVuSans-31" x="127.246094"/> + </g> + </g> + </g> + <g id="text_173"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 172 --> + <g transform="translate(759.82726 750.504709) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + <use xlink:href="#DejaVuSans-32" x="127.246094"/> + </g> + </g> + </g> + <g id="text_174"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 173 --> + <g transform="translate(281.018 1193.371535) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + <use xlink:href="#DejaVuSans-33" x="127.246094"/> + </g> + </g> + </g> + <g id="text_175"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 174 --> + <g transform="translate(321.475078 1202.578809) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + <use xlink:href="#DejaVuSans-34" x="127.246094"/> + </g> + </g> + </g> + <g id="text_176"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 175 --> + <g transform="translate(792.721013 2532.464013) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + <use xlink:href="#DejaVuSans-35" x="127.246094"/> + </g> + </g> + </g> + <g id="text_177"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 176 --> + <g transform="translate(815.274041 2526.686903) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + <use xlink:href="#DejaVuSans-36" x="127.246094"/> + </g> + </g> + </g> + <g id="text_178"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 177 --> + <g transform="translate(1602.382521 2318.4201) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + <use xlink:href="#DejaVuSans-37" x="127.246094"/> + </g> + </g> + </g> + <g id="text_179"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 178 --> + <g transform="translate(2390.064277 2116.410181) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + <use xlink:href="#DejaVuSans-38" x="127.246094"/> + </g> + </g> + </g> + <g id="text_180"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 179 --> + <g transform="translate(594.820322 1293.562471) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + <use xlink:href="#DejaVuSans-39" x="127.246094"/> + </g> + </g> + </g> + <g id="text_181"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 180 --> + <g transform="translate(333.360822 1252.503489) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + <use xlink:href="#DejaVuSans-30" x="127.246094"/> + </g> + </g> + </g> + <g id="text_182"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 181 --> + <g transform="translate(1446.645094 1271.754881) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + <use xlink:href="#DejaVuSans-31" x="127.246094"/> + </g> + </g> + </g> + <g id="text_183"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 182 --> + <g transform="translate(2560.005827 1291.418505) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + <use xlink:href="#DejaVuSans-32" x="127.246094"/> + </g> + </g> + </g> + <g id="text_184"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 183 --> + <g transform="translate(552.808676 1030.022257) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + <use xlink:href="#DejaVuSans-33" x="127.246094"/> + </g> + </g> + </g> + <g id="text_185"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 184 --> + <g transform="translate(580.630755 729.487701) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + <use xlink:href="#DejaVuSans-34" x="127.246094"/> + </g> + </g> + </g> + <g id="text_186"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 185 --> + <g transform="translate(2246.967802 1445.627934) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + <use xlink:href="#DejaVuSans-35" x="127.246094"/> + </g> + </g> + </g> + <g id="text_187"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 186 --> + <g transform="translate(2571.170716 1728.864222) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + <use xlink:href="#DejaVuSans-36" x="127.246094"/> + </g> + </g> + </g> + <g id="text_188"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 187 --> + <g transform="translate(2468.652498 1096.377163) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + <use xlink:href="#DejaVuSans-37" x="127.246094"/> + </g> + </g> + </g> + <g id="text_189"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 188 --> + <g transform="translate(508.105057 1011.671565) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + <use xlink:href="#DejaVuSans-38" x="127.246094"/> + </g> + </g> + </g> + <g id="text_190"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 189 --> + <g transform="translate(1161.305917 701.199641) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + <use xlink:href="#DejaVuSans-39" x="127.246094"/> + </g> + </g> + </g> + <g id="text_191"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 190 --> + <g transform="translate(1940.830758 443.833009) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + <use xlink:href="#DejaVuSans-30" x="127.246094"/> + </g> + </g> + </g> + <g id="text_192"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 191 --> + <g transform="translate(381.133715 956.28979) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + <use xlink:href="#DejaVuSans-31" x="127.246094"/> + </g> + </g> + </g> + <g id="text_193"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 192 --> + <g transform="translate(1956.889021 1392.601988) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + <use xlink:href="#DejaVuSans-32" x="127.246094"/> + </g> + </g> + </g> + <g id="text_194"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 193 --> + <g transform="translate(410.637906 1093.225896) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + <use xlink:href="#DejaVuSans-33" x="127.246094"/> + </g> + </g> + </g> + <g id="text_195"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 194 --> + <g transform="translate(247.90499 1637.289987) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + <use xlink:href="#DejaVuSans-34" x="127.246094"/> + </g> + </g> + </g> + <g id="text_196"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 195 --> + <g transform="translate(902.545631 680.388677) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + <use xlink:href="#DejaVuSans-35" x="127.246094"/> + </g> + </g> + </g> + <g id="text_197"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 196 --> + <g transform="translate(315.605877 1047.427801) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + <use xlink:href="#DejaVuSans-36" x="127.246094"/> + </g> + </g> + </g> + <g id="text_198"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 197 --> + <g transform="translate(2240.711989 1847.395038) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + <use xlink:href="#DejaVuSans-37" x="127.246094"/> + </g> + </g> + </g> + <g id="text_199"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 198 --> + <g transform="translate(1697.917085 1354.394546) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + <use xlink:href="#DejaVuSans-38" x="127.246094"/> + </g> + </g> + </g> + <g id="text_200"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 199 --> + <g transform="translate(1846.841147 2412.790374) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-31"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + <use xlink:href="#DejaVuSans-39" x="127.246094"/> + </g> + </g> + </g> + <g id="text_201"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 200 --> + <g transform="translate(2053.555906 2501.929799) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-30" x="127.246094"/> + </g> + </g> + </g> + <g id="text_202"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 201 --> + <g transform="translate(1755.059201 2593.79108) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-31" x="127.246094"/> + </g> + </g> + </g> + <g id="text_203"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 202 --> + <g transform="translate(2227.332333 1177.85737) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-32" x="127.246094"/> + </g> + </g> + </g> + <g id="text_204"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 203 --> + <g transform="translate(1945.032848 501.207205) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-33" x="127.246094"/> + </g> + </g> + </g> + <g id="text_205"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 204 --> + <g transform="translate(1884.401877 779.06945) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-34" x="127.246094"/> + </g> + </g> + </g> + <g id="text_206"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 205 --> + <g transform="translate(1234.572821 394.668945) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-35" x="127.246094"/> + </g> + </g> + </g> + <g id="text_207"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 206 --> + <g transform="translate(2534.938652 1162.330956) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-36" x="127.246094"/> + </g> + </g> + </g> + <g id="text_208"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 207 --> + <g transform="translate(1486.448523 2500.404707) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-37" x="127.246094"/> + </g> + </g> + </g> + <g id="text_209"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 208 --> + <g transform="translate(1510.666407 1430.103109) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-38" x="127.246094"/> + </g> + </g> + </g> + <g id="text_210"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 209 --> + <g transform="translate(2447.915876 1702.545584) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-39" x="127.246094"/> + </g> + </g> + </g> + <g id="text_211"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 210 --> + <g transform="translate(1482.676768 2435.136659) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-30" x="127.246094"/> + </g> + </g> + </g> + <g id="text_212"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 211 --> + <g transform="translate(1511.567429 1430.656155) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-31" x="127.246094"/> + </g> + </g> + </g> + <g id="text_213"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 212 --> + <g transform="translate(2192.569936 1133.858644) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-32" x="127.246094"/> + </g> + </g> + </g> + <g id="text_214"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 213 --> + <g transform="translate(2471.459393 1012.006018) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-33" x="127.246094"/> + </g> + </g> + </g> + <g id="text_215"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 214 --> + <g transform="translate(1608.005491 1757.969432) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-34" x="127.246094"/> + </g> + </g> + </g> + <g id="text_216"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 215 --> + <g transform="translate(2592.891165 1183.142881) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-35" x="127.246094"/> + </g> + </g> + </g> + <g id="text_217"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 216 --> + <g transform="translate(1628.661889 1620.485741) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-36" x="127.246094"/> + </g> + </g> + </g> + <g id="text_218"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 217 --> + <g transform="translate(2296.814625 1944.024691) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-37" x="127.246094"/> + </g> + </g> + </g> + <g id="text_219"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 218 --> + <g transform="translate(2527.413908 1766.348748) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-38" x="127.246094"/> + </g> + </g> + </g> + <g id="text_220"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 219 --> + <g transform="translate(2378.352175 2242.988777) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-39" x="127.246094"/> + </g> + </g> + </g> + <g id="text_221"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 220 --> + <g transform="translate(633.295292 1935.904587) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-30" x="127.246094"/> + </g> + </g> + </g> + <g id="text_222"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 221 --> + <g transform="translate(541.881563 2286.977239) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-31" x="127.246094"/> + </g> + </g> + </g> + <g id="text_223"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 222 --> + <g transform="translate(306.478797 1801.728038) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-32" x="127.246094"/> + </g> + </g> + </g> + <g id="text_224"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 223 --> + <g transform="translate(937.643966 645.113705) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-33" x="127.246094"/> + </g> + </g> + </g> + <g id="text_225"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 224 --> + <g transform="translate(1293.219366 319.809619) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-34" x="127.246094"/> + </g> + </g> + </g> + <g id="text_226"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 225 --> + <g transform="translate(448.497871 724.327475) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-35" x="127.246094"/> + </g> + </g> + </g> + <g id="text_227"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 226 --> + <g transform="translate(1712.662101 2296.354612) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-36" x="127.246094"/> + </g> + </g> + </g> + <g id="text_228"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 227 --> + <g transform="translate(1792.387789 2467.45762) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-37" x="127.246094"/> + </g> + </g> + </g> + <g id="text_229"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 228 --> + <g transform="translate(831.410886 754.661501) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-38" x="127.246094"/> + </g> + </g> + </g> + <g id="text_230"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 229 --> + <g transform="translate(890.230775 598.06271) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-39" x="127.246094"/> + </g> + </g> + </g> + <g id="text_231"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 230 --> + <g transform="translate(630.338655 699.771379) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-30" x="127.246094"/> + </g> + </g> + </g> + <g id="text_232"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 231 --> + <g transform="translate(1873.050101 627.278625) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-31" x="127.246094"/> + </g> + </g> + </g> + <g id="text_233"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 232 --> + <g transform="translate(1989.303854 383.851011) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-32" x="127.246094"/> + </g> + </g> + </g> + <g id="text_234"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 233 --> + <g transform="translate(1962.116421 1392.157571) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-33" x="127.246094"/> + </g> + </g> + </g> + <g id="text_235"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 234 --> + <g transform="translate(1635.723985 579.610557) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-34" x="127.246094"/> + </g> + </g> + </g> + <g id="text_236"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 235 --> + <g transform="translate(878.195441 742.151934) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-35" x="127.246094"/> + </g> + </g> + </g> + <g id="text_237"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 236 --> + <g transform="translate(690.455981 463.760595) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-36" x="127.246094"/> + </g> + </g> + </g> + <g id="text_238"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 237 --> + <g transform="translate(1352.205287 1457.601861) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-37" x="127.246094"/> + </g> + </g> + </g> + <g id="text_239"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 238 --> + <g transform="translate(1258.74564 2184.188262) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-38" x="127.246094"/> + </g> + </g> + </g> + <g id="text_240"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 239 --> + <g transform="translate(2207.169661 2391.188654) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-39" x="127.246094"/> + </g> + </g> + </g> + <g id="text_241"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 240 --> + <g transform="translate(309.809304 1979.094311) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + <use xlink:href="#DejaVuSans-30" x="127.246094"/> + </g> + </g> + </g> + <g id="text_242"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 241 --> + <g transform="translate(1269.245332 1100.772592) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + <use xlink:href="#DejaVuSans-31" x="127.246094"/> + </g> + </g> + </g> + <g id="text_243"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 242 --> + <g transform="translate(1413.782619 342.66925) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + <use xlink:href="#DejaVuSans-32" x="127.246094"/> + </g> + </g> + </g> + <g id="text_244"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 243 --> + <g transform="translate(1114.651002 297.802161) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + <use xlink:href="#DejaVuSans-33" x="127.246094"/> + </g> + </g> + </g> + <g id="text_245"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 244 --> + <g transform="translate(1721.034639 315.472159) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + <use xlink:href="#DejaVuSans-34" x="127.246094"/> + </g> + </g> + </g> + <g id="text_246"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 245 --> + <g transform="translate(1505.392123 867.645605) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + <use xlink:href="#DejaVuSans-35" x="127.246094"/> + </g> + </g> + </g> + <g id="text_247"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 246 --> + <g transform="translate(717.294452 870.769768) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + <use xlink:href="#DejaVuSans-36" x="127.246094"/> + </g> + </g> + </g> + <g id="text_248"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 247 --> + <g transform="translate(797.40246 944.110342) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + <use xlink:href="#DejaVuSans-37" x="127.246094"/> + </g> + </g> + </g> + <g id="text_249"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 248 --> + <g transform="translate(2287.184909 2117.633078) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + <use xlink:href="#DejaVuSans-38" x="127.246094"/> + </g> + </g> + </g> + <g id="text_250"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 249 --> + <g transform="translate(1793.831401 2230.237604) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + <use xlink:href="#DejaVuSans-39" x="127.246094"/> + </g> + </g> + </g> + <g id="text_251"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 250 --> + <g transform="translate(1945.487781 2407.890514) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + <use xlink:href="#DejaVuSans-30" x="127.246094"/> + </g> + </g> + </g> + <g id="text_252"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 251 --> + <g transform="translate(1968.828613 2560.083408) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + <use xlink:href="#DejaVuSans-31" x="127.246094"/> + </g> + </g> + </g> + <g id="text_253"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 252 --> + <g transform="translate(901.621989 590.320975) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + <use xlink:href="#DejaVuSans-32" x="127.246094"/> + </g> + </g> + </g> + <g id="text_254"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 253 --> + <g transform="translate(792.100814 383.435184) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + <use xlink:href="#DejaVuSans-33" x="127.246094"/> + </g> + </g> + </g> + <g id="text_255"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 254 --> + <g transform="translate(1938.980942 2378.476184) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + <use xlink:href="#DejaVuSans-34" x="127.246094"/> + </g> + </g> + </g> + <g id="text_256"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 255 --> + <g transform="translate(1764.615909 2533.864692) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + <use xlink:href="#DejaVuSans-35" x="127.246094"/> + </g> + </g> + </g> + <g id="text_257"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 256 --> + <g transform="translate(2126.666137 2243.352844) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + <use xlink:href="#DejaVuSans-36" x="127.246094"/> + </g> + </g> + </g> + <g id="text_258"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 257 --> + <g transform="translate(1494.584635 2507.871559) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + <use xlink:href="#DejaVuSans-37" x="127.246094"/> + </g> + </g> + </g> + <g id="text_259"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 258 --> + <g transform="translate(2145.656955 1443.624522) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + <use xlink:href="#DejaVuSans-38" x="127.246094"/> + </g> + </g> + </g> + <g id="text_260"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 259 --> + <g transform="translate(1492.318038 2511.922056) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + <use xlink:href="#DejaVuSans-39" x="127.246094"/> + </g> + </g> + </g> + <g id="text_261"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 260 --> + <g transform="translate(1492.318101 2511.919662) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + <use xlink:href="#DejaVuSans-30" x="127.246094"/> + </g> + </g> + </g> + <g id="text_262"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 261 --> + <g transform="translate(545.870337 1896.644109) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + <use xlink:href="#DejaVuSans-31" x="127.246094"/> + </g> + </g> + </g> + <g id="text_263"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 262 --> + <g transform="translate(1492.781355 2498.072091) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + <use xlink:href="#DejaVuSans-32" x="127.246094"/> + </g> + </g> + </g> + <g id="text_264"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 263 --> + <g transform="translate(1472.280413 2351.59579) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + <use xlink:href="#DejaVuSans-33" x="127.246094"/> + </g> + </g> + </g> + <g id="text_265"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 264 --> + <g transform="translate(1489.103654 2489.645165) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + <use xlink:href="#DejaVuSans-34" x="127.246094"/> + </g> + </g> + </g> + <g id="text_266"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 265 --> + <g transform="translate(1738.624237 1144.449021) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + <use xlink:href="#DejaVuSans-35" x="127.246094"/> + </g> + </g> + </g> + <g id="text_267"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 266 --> + <g transform="translate(362.740259 1615.165965) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + <use xlink:href="#DejaVuSans-36" x="127.246094"/> + </g> + </g> + </g> + <g id="text_268"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 267 --> + <g transform="translate(1906.330669 2217.38122) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + <use xlink:href="#DejaVuSans-37" x="127.246094"/> + </g> + </g> + </g> + <g id="text_269"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 268 --> + <g transform="translate(1401.553588 1674.208952) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + <use xlink:href="#DejaVuSans-38" x="127.246094"/> + </g> + </g> + </g> + <g id="text_270"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 269 --> + <g transform="translate(1421.74981 454.406054) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + <use xlink:href="#DejaVuSans-39" x="127.246094"/> + </g> + </g> + </g> + <g id="text_271"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 270 --> + <g transform="translate(1603.516992 2322.848722) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + <use xlink:href="#DejaVuSans-30" x="127.246094"/> + </g> + </g> + </g> + <g id="text_272"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 271 --> + <g transform="translate(1543.454543 1079.739705) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + <use xlink:href="#DejaVuSans-31" x="127.246094"/> + </g> + </g> + </g> + <g id="text_273"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 272 --> + <g transform="translate(2090.147762 523.472949) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + <use xlink:href="#DejaVuSans-32" x="127.246094"/> + </g> + </g> + </g> + <g id="text_274"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 273 --> + <g transform="translate(1527.700209 1709.710905) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + <use xlink:href="#DejaVuSans-33" x="127.246094"/> + </g> + </g> + </g> + <g id="text_275"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 274 --> + <g transform="translate(494.293997 2123.95402) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + <use xlink:href="#DejaVuSans-34" x="127.246094"/> + </g> + </g> + </g> + <g id="text_276"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 275 --> + <g transform="translate(471.100108 996.52646) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + <use xlink:href="#DejaVuSans-35" x="127.246094"/> + </g> + </g> + </g> + <g id="text_277"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 276 --> + <g transform="translate(2493.170295 1416.036722) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + <use xlink:href="#DejaVuSans-36" x="127.246094"/> + </g> + </g> + </g> + <g id="text_278"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 277 --> + <g transform="translate(1161.305897 701.199594) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + <use xlink:href="#DejaVuSans-37" x="127.246094"/> + </g> + </g> + </g> + <g id="text_279"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 278 --> + <g transform="translate(902.563482 680.415949) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + <use xlink:href="#DejaVuSans-38" x="127.246094"/> + </g> + </g> + </g> + <g id="text_280"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 279 --> + <g transform="translate(1693.930553 1355.819353) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + <use xlink:href="#DejaVuSans-39" x="127.246094"/> + </g> + </g> + </g> + <g id="text_281"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 280 --> + <g transform="translate(1841.014616 2401.050641) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + <use xlink:href="#DejaVuSans-30" x="127.246094"/> + </g> + </g> + </g> + <g id="text_282"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 281 --> + <g transform="translate(1862.641145 1347.792377) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + <use xlink:href="#DejaVuSans-31" x="127.246094"/> + </g> + </g> + </g> + <g id="text_283"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 282 --> + <g transform="translate(2246.338143 1509.505817) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + <use xlink:href="#DejaVuSans-32" x="127.246094"/> + </g> + </g> + </g> + <g id="text_284"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 283 --> + <g transform="translate(1492.237674 2493.336345) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + <use xlink:href="#DejaVuSans-33" x="127.246094"/> + </g> + </g> + </g> + <g id="text_285"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 284 --> + <g transform="translate(1658.314211 2128.756596) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + <use xlink:href="#DejaVuSans-34" x="127.246094"/> + </g> + </g> + </g> + <g id="text_286"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 285 --> + <g transform="translate(1257.654946 1736.626502) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + <use xlink:href="#DejaVuSans-35" x="127.246094"/> + </g> + </g> + </g> + <g id="text_287"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 286 --> + <g transform="translate(717.130016 870.617899) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + <use xlink:href="#DejaVuSans-36" x="127.246094"/> + </g> + </g> + </g> + <g id="text_288"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 287 --> + <g transform="translate(1632.272537 1106.481394) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + <use xlink:href="#DejaVuSans-37" x="127.246094"/> + </g> + </g> + </g> + <g id="text_289"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 288 --> + <g transform="translate(1495.200689 2502.724249) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + <use xlink:href="#DejaVuSans-38" x="127.246094"/> + </g> + </g> + </g> + <g id="text_290"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 289 --> + <g transform="translate(1478.05699 2400.671335) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + <use xlink:href="#DejaVuSans-39" x="127.246094"/> + </g> + </g> + </g> + <g id="text_291"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 290 --> + <g transform="translate(1017.126716 1125.309483) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + <use xlink:href="#DejaVuSans-30" x="127.246094"/> + </g> + </g> + </g> + <g id="text_292"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 291 --> + <g transform="translate(1487.246768 2496.044081) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + <use xlink:href="#DejaVuSans-31" x="127.246094"/> + </g> + </g> + </g> + <g id="text_293"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 292 --> + <g transform="translate(1009.09811 2209.720061) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + <use xlink:href="#DejaVuSans-32" x="127.246094"/> + </g> + </g> + </g> + <g id="text_294"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 293 --> + <g transform="translate(1471.711688 2339.968932) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + <use xlink:href="#DejaVuSans-33" x="127.246094"/> + </g> + </g> + </g> + <g id="text_295"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 294 --> + <g transform="translate(1472.465181 2366.290281) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + <use xlink:href="#DejaVuSans-34" x="127.246094"/> + </g> + </g> + </g> + <g id="text_296"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 295 --> + <g transform="translate(1468.020966 2318.691111) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + <use xlink:href="#DejaVuSans-35" x="127.246094"/> + </g> + </g> + </g> + <g id="text_297"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 296 --> + <g transform="translate(1486.376507 2505.174754) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + <use xlink:href="#DejaVuSans-36" x="127.246094"/> + </g> + </g> + </g> + <g id="text_298"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 297 --> + <g transform="translate(1630.922939 1620.768929) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + <use xlink:href="#DejaVuSans-37" x="127.246094"/> + </g> + </g> + </g> + <g id="text_299"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 298 --> + <g transform="translate(1628.331622 1620.315475) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + <use xlink:href="#DejaVuSans-38" x="127.246094"/> + </g> + </g> + </g> + <g id="text_300"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 299 --> + <g transform="translate(487.312589 638.073417) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-32"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + <use xlink:href="#DejaVuSans-39" x="127.246094"/> + </g> + </g> + </g> + <g id="text_301"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 300 --> + <g transform="translate(2337.701771 562.795045) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-30" x="127.246094"/> + </g> + </g> + </g> + <g id="text_302"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 301 --> + <g transform="translate(1476.592319 2386.033489) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-31" x="127.246094"/> + </g> + </g> + </g> + <g id="text_303"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 302 --> + <g transform="translate(1957.018138 1392.738041) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-32" x="127.246094"/> + </g> + </g> + </g> + <g id="text_304"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 303 --> + <g transform="translate(1956.696532 1392.569529) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-33" x="127.246094"/> + </g> + </g> + </g> + <g id="text_305"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 304 --> + <g transform="translate(730.800184 718.400548) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-34" x="127.246094"/> + </g> + </g> + </g> + <g id="text_306"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 305 --> + <g transform="translate(765.903571 758.610269) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-35" x="127.246094"/> + </g> + </g> + </g> + <g id="text_307"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 306 --> + <g transform="translate(776.635937 759.392825) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-36" x="127.246094"/> + </g> + </g> + </g> + <g id="text_308"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 307 --> + <g transform="translate(967.764048 2241.404426) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-37" x="127.246094"/> + </g> + </g> + </g> + <g id="text_309"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 308 --> + <g transform="translate(1602.384721 2318.426524) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-38" x="127.246094"/> + </g> + </g> + </g> + <g id="text_310"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 309 --> + <g transform="translate(1602.38251 2318.420066) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-39" x="127.246094"/> + </g> + </g> + </g> + <g id="text_311"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 310 --> + <g transform="translate(2210.971538 1036.149612) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-30" x="127.246094"/> + </g> + </g> + </g> + <g id="text_312"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 311 --> + <g transform="translate(2382.342093 930.589439) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-31" x="127.246094"/> + </g> + </g> + </g> + <g id="text_313"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 312 --> + <g transform="translate(1526.978768 1707.183142) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-32" x="127.246094"/> + </g> + </g> + </g> + <g id="text_314"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 313 --> + <g transform="translate(1527.774746 1706.86808) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-33" x="127.246094"/> + </g> + </g> + </g> + <g id="text_315"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 314 --> + <g transform="translate(1526.90325 1706.997247) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-34" x="127.246094"/> + </g> + </g> + </g> + <g id="text_316"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 315 --> + <g transform="translate(1527.401241 1706.697633) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-35" x="127.246094"/> + </g> + </g> + </g> + <g id="text_317"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 316 --> + <g transform="translate(926.565003 717.452077) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-36" x="127.246094"/> + </g> + </g> + </g> + <g id="text_318"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 317 --> + <g transform="translate(1693.93081 1355.821543) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-37" x="127.246094"/> + </g> + </g> + </g> + <g id="text_319"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 318 --> + <g transform="translate(1697.917931 1354.398215) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-38" x="127.246094"/> + </g> + </g> + </g> + <g id="text_320"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 319 --> + <g transform="translate(1863.923635 1347.161414) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-39" x="127.246094"/> + </g> + </g> + </g> + <g id="text_321"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 320 --> + <g transform="translate(1862.545678 1347.827536) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-30" x="127.246094"/> + </g> + </g> + </g> + <g id="text_322"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 321 --> + <g transform="translate(1860.081648 1348.667984) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-31" x="127.246094"/> + </g> + </g> + </g> + <g id="text_323"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 322 --> + <g transform="translate(1896.325494 999.563862) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-32" x="127.246094"/> + </g> + </g> + </g> + <g id="text_324"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 323 --> + <g transform="translate(2549.456679 1524.163117) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-33" x="127.246094"/> + </g> + </g> + </g> + <g id="text_325"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 324 --> + <g transform="translate(1884.402216 779.06888) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-34" x="127.246094"/> + </g> + </g> + </g> + <g id="text_326"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 325 --> + <g transform="translate(1492.966057 2497.531761) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-35" x="127.246094"/> + </g> + </g> + </g> + <g id="text_327"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 326 --> + <g transform="translate(1827.619718 1379.898452) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-36" x="127.246094"/> + </g> + </g> + </g> + <g id="text_328"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 327 --> + <g transform="translate(1827.328135 1378.991286) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-37" x="127.246094"/> + </g> + </g> + </g> + <g id="text_329"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 328 --> + <g transform="translate(1918.502973 2220.30908) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-38" x="127.246094"/> + </g> + </g> + </g> + <g id="text_330"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 329 --> + <g transform="translate(1721.262601 2303.353862) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-39" x="127.246094"/> + </g> + </g> + </g> + <g id="text_331"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 330 --> + <g transform="translate(2481.183663 2101.860531) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-30" x="127.246094"/> + </g> + </g> + </g> + <g id="text_332"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 331 --> + <g transform="translate(961.272707 2506.427265) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-31" x="127.246094"/> + </g> + </g> + </g> + <g id="text_333"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 332 --> + <g transform="translate(716.141114 2337.252802) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-32" x="127.246094"/> + </g> + </g> + </g> + <g id="text_334"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 333 --> + <g transform="translate(2063.058296 578.735279) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-33" x="127.246094"/> + </g> + </g> + </g> + <g id="text_335"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 334 --> + <g transform="translate(1517.504244 1635.017845) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-34" x="127.246094"/> + </g> + </g> + </g> + <g id="text_336"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 335 --> + <g transform="translate(1517.859523 1634.878967) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-35" x="127.246094"/> + </g> + </g> + </g> + <g id="text_337"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 336 --> + <g transform="translate(1259.661857 1734.901989) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-36" x="127.246094"/> + </g> + </g> + </g> + <g id="text_338"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 337 --> + <g transform="translate(1654.933576 466.886337) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-37" x="127.246094"/> + </g> + </g> + </g> + <g id="text_339"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 338 --> + <g transform="translate(2183.65504 1394.726894) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-38" x="127.246094"/> + </g> + </g> + </g> + <g id="text_340"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 339 --> + <g transform="translate(2183.655039 1394.726893) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-39" x="127.246094"/> + </g> + </g> + </g> + <g id="text_341"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 340 --> + <g transform="translate(2182.61672 1394.84823) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + <use xlink:href="#DejaVuSans-30" x="127.246094"/> + </g> + </g> + </g> + <g id="text_342"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 341 --> + <g transform="translate(2178.647535 1395.342645) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + <use xlink:href="#DejaVuSans-31" x="127.246094"/> + </g> + </g> + </g> + <g id="text_343"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 342 --> + <g transform="translate(2181.385122 1394.993666) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + <use xlink:href="#DejaVuSans-32" x="127.246094"/> + </g> + </g> + </g> + <g id="text_344"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 343 --> + <g transform="translate(1286.801957 1414.903604) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + <use xlink:href="#DejaVuSans-33" x="127.246094"/> + </g> + </g> + </g> + <g id="text_345"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 344 --> + <g transform="translate(1259.572467 1734.964081) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + <use xlink:href="#DejaVuSans-34" x="127.246094"/> + </g> + </g> + </g> + <g id="text_346"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 345 --> + <g transform="translate(594.742835 1827.950851) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + <use xlink:href="#DejaVuSans-35" x="127.246094"/> + </g> + </g> + </g> + <g id="text_347"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 346 --> + <g transform="translate(1553.50614 868.283594) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + <use xlink:href="#DejaVuSans-36" x="127.246094"/> + </g> + </g> + </g> + <g id="text_348"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 347 --> + <g transform="translate(2264.895809 1349.17853) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + <use xlink:href="#DejaVuSans-37" x="127.246094"/> + </g> + </g> + </g> + <g id="text_349"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 348 --> + <g transform="translate(2260.068854 1349.689478) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + <use xlink:href="#DejaVuSans-38" x="127.246094"/> + </g> + </g> + </g> + <g id="text_350"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 349 --> + <g transform="translate(2253.25894 1350.81424) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-34" x="63.623047"/> + <use xlink:href="#DejaVuSans-39" x="127.246094"/> + </g> + </g> + </g> + <g id="text_351"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 350 --> + <g transform="translate(2264.840263 1349.189394) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + <use xlink:href="#DejaVuSans-30" x="127.246094"/> + </g> + </g> + </g> + <g id="text_352"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 351 --> + <g transform="translate(2264.921203 1349.173651) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + <use xlink:href="#DejaVuSans-31" x="127.246094"/> + </g> + </g> + </g> + <g id="text_353"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 352 --> + <g transform="translate(392.366977 1491.662513) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + <use xlink:href="#DejaVuSans-32" x="127.246094"/> + </g> + </g> + </g> + <g id="text_354"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 353 --> + <g transform="translate(1259.736135 1734.849675) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + <use xlink:href="#DejaVuSans-33" x="127.246094"/> + </g> + </g> + </g> + <g id="text_355"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 354 --> + <g transform="translate(2246.963627 951.553345) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + <use xlink:href="#DejaVuSans-34" x="127.246094"/> + </g> + </g> + </g> + <g id="text_356"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 355 --> + <g transform="translate(2273.376564 927.527789) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + <use xlink:href="#DejaVuSans-35" x="127.246094"/> + </g> + </g> + </g> + <g id="text_357"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 356 --> + <g transform="translate(763.555208 913.088401) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + <use xlink:href="#DejaVuSans-36" x="127.246094"/> + </g> + </g> + </g> + <g id="text_358"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 357 --> + <g transform="translate(852.842964 643.203301) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + <use xlink:href="#DejaVuSans-37" x="127.246094"/> + </g> + </g> + </g> + <g id="text_359"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 358 --> + <g transform="translate(1629.921877 1109.722818) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + <use xlink:href="#DejaVuSans-38" x="127.246094"/> + </g> + </g> + </g> + <g id="text_360"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 359 --> + <g transform="translate(1629.92475 1109.720797) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-35" x="63.623047"/> + <use xlink:href="#DejaVuSans-39" x="127.246094"/> + </g> + </g> + </g> + <g id="text_361"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 360 --> + <g transform="translate(1629.941946 1109.704579) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + <use xlink:href="#DejaVuSans-30" x="127.246094"/> + </g> + </g> + </g> + <g id="text_362"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 361 --> + <g transform="translate(1632.79371 1105.695089) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + <use xlink:href="#DejaVuSans-31" x="127.246094"/> + </g> + </g> + </g> + <g id="text_363"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 362 --> + <g transform="translate(2197.404237 981.114778) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + <use xlink:href="#DejaVuSans-32" x="127.246094"/> + </g> + </g> + </g> + <g id="text_364"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 363 --> + <g transform="translate(2103.756163 1043.342057) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + <use xlink:href="#DejaVuSans-33" x="127.246094"/> + </g> + </g> + </g> + <g id="text_365"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 364 --> + <g transform="translate(2311.492794 903.692272) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + <use xlink:href="#DejaVuSans-34" x="127.246094"/> + </g> + </g> + </g> + <g id="text_366"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 365 --> + <g transform="translate(1514.725438 1395.271769) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + <use xlink:href="#DejaVuSans-35" x="127.246094"/> + </g> + </g> + </g> + <g id="text_367"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 366 --> + <g transform="translate(1463.392372 2285.697042) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + <use xlink:href="#DejaVuSans-36" x="127.246094"/> + </g> + </g> + </g> + <g id="text_368"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 367 --> + <g transform="translate(1494.338141 2507.384205) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + <use xlink:href="#DejaVuSans-37" x="127.246094"/> + </g> + </g> + </g> + <g id="text_369"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 368 --> + <g transform="translate(1488.858323 2508.590412) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + <use xlink:href="#DejaVuSans-38" x="127.246094"/> + </g> + </g> + </g> + <g id="text_370"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 369 --> + <g transform="translate(1467.049412 2303.51091) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-36" x="63.623047"/> + <use xlink:href="#DejaVuSans-39" x="127.246094"/> + </g> + </g> + </g> + <g id="text_371"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 370 --> + <g transform="translate(1482.610232 2434.444769) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + <use xlink:href="#DejaVuSans-30" x="127.246094"/> + </g> + </g> + </g> + <g id="text_372"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 371 --> + <g transform="translate(863.890587 906.406552) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + <use xlink:href="#DejaVuSans-31" x="127.246094"/> + </g> + </g> + </g> + <g id="text_373"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 372 --> + <g transform="translate(1487.913138 2478.867052) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + <use xlink:href="#DejaVuSans-32" x="127.246094"/> + </g> + </g> + </g> + <g id="text_374"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 373 --> + <g transform="translate(1470.691344 2338.713227) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + <use xlink:href="#DejaVuSans-33" x="127.246094"/> + </g> + </g> + </g> + <g id="text_375"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 374 --> + <g transform="translate(1473.582399 2370.187138) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + <use xlink:href="#DejaVuSans-34" x="127.246094"/> + </g> + </g> + </g> + <g id="text_376"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 375 --> + <g transform="translate(1493.077988 2497.272752) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + <use xlink:href="#DejaVuSans-35" x="127.246094"/> + </g> + </g> + </g> + <g id="text_377"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 376 --> + <g transform="translate(1174.177945 2359.489512) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + <use xlink:href="#DejaVuSans-36" x="127.246094"/> + </g> + </g> + </g> + <g id="text_378"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 377 --> + <g transform="translate(2287.497863 2203.42306) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + <use xlink:href="#DejaVuSans-37" x="127.246094"/> + </g> + </g> + </g> + <g id="text_379"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 378 --> + <g transform="translate(1484.909462 2452.467359) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + <use xlink:href="#DejaVuSans-38" x="127.246094"/> + </g> + </g> + </g> + <g id="text_380"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 379 --> + <g transform="translate(1467.61125 2323.248558) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-37" x="63.623047"/> + <use xlink:href="#DejaVuSans-39" x="127.246094"/> + </g> + </g> + </g> + <g id="text_381"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 380 --> + <g transform="translate(2188.516293 1531.66811) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + <use xlink:href="#DejaVuSans-30" x="127.246094"/> + </g> + </g> + </g> + <g id="text_382"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 381 --> + <g transform="translate(2188.497491 1531.666294) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + <use xlink:href="#DejaVuSans-31" x="127.246094"/> + </g> + </g> + </g> + <g id="text_383"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 382 --> + <g transform="translate(1463.844026 2276.999376) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + <use xlink:href="#DejaVuSans-32" x="127.246094"/> + </g> + </g> + </g> + <g id="text_384"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 383 --> + <g transform="translate(1465.052388 2280.010528) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + <use xlink:href="#DejaVuSans-33" x="127.246094"/> + </g> + </g> + </g> + <g id="text_385"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 384 --> + <g transform="translate(1476.244018 2367.532381) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + <use xlink:href="#DejaVuSans-34" x="127.246094"/> + </g> + </g> + </g> + <g id="text_386"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 385 --> + <g transform="translate(1328.570022 1045.927393) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + <use xlink:href="#DejaVuSans-35" x="127.246094"/> + </g> + </g> + </g> + <g id="text_387"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 386 --> + <g transform="translate(2365.446481 754.764199) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + <use xlink:href="#DejaVuSans-36" x="127.246094"/> + </g> + </g> + </g> + <g id="text_388"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 387 --> + <g transform="translate(1738.624422 1144.448806) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + <use xlink:href="#DejaVuSans-37" x="127.246094"/> + </g> + </g> + </g> + <g id="text_389"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 388 --> + <g transform="translate(1738.625205 1144.44787) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + <use xlink:href="#DejaVuSans-38" x="127.246094"/> + </g> + </g> + </g> + <g id="text_390"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 389 --> + <g transform="translate(1236.329089 445.663301) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-38" x="63.623047"/> + <use xlink:href="#DejaVuSans-39" x="127.246094"/> + </g> + </g> + </g> + <g id="text_391"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 390 --> + <g transform="translate(1479.313469 2407.457821) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + <use xlink:href="#DejaVuSans-30" x="127.246094"/> + </g> + </g> + </g> + <g id="text_392"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 391 --> + <g transform="translate(1488.829136 2508.767817) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + <use xlink:href="#DejaVuSans-31" x="127.246094"/> + </g> + </g> + </g> + <g id="text_393"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 392 --> + <g transform="translate(402.91751 1612.917131) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + <use xlink:href="#DejaVuSans-32" x="127.246094"/> + </g> + </g> + </g> + <g id="text_394"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 393 --> + <g transform="translate(1956.806496 1392.598476) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + <use xlink:href="#DejaVuSans-33" x="127.246094"/> + </g> + </g> + </g> + <g id="text_395"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 394 --> + <g transform="translate(1495.20214 2502.760045) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + <use xlink:href="#DejaVuSans-34" x="127.246094"/> + </g> + </g> + </g> + <g id="text_396"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 395 --> + <g transform="translate(409.113292 1334.347701) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + <use xlink:href="#DejaVuSans-35" x="127.246094"/> + </g> + </g> + </g> + <g id="text_397"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 396 --> + <g transform="translate(2583.956292 1522.654097) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + <use xlink:href="#DejaVuSans-36" x="127.246094"/> + </g> + </g> + </g> + <g id="text_398"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 397 --> + <g transform="translate(2478.853885 1524.507363) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + <use xlink:href="#DejaVuSans-37" x="127.246094"/> + </g> + </g> + </g> + <g id="text_399"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 398 --> + <g transform="translate(1449.132234 2099.832103) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + <use xlink:href="#DejaVuSans-38" x="127.246094"/> + </g> + </g> + </g> + <g id="text_400"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 399 --> + <g transform="translate(2412.584999 1891.22821) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-33"/> + <use xlink:href="#DejaVuSans-39" x="63.623047"/> + <use xlink:href="#DejaVuSans-39" x="127.246094"/> + </g> + </g> + </g> + <g id="text_401"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 400 --> + <g transform="translate(485.527527 2310.84046) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-30" x="127.246094"/> + </g> + </g> + </g> + <g id="text_402"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 401 --> + <g transform="translate(1928.692102 2243.42532) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-31" x="127.246094"/> + </g> + </g> + </g> + <g id="text_403"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 402 --> + <g transform="translate(1476.256908 2369.043037) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-32" x="127.246094"/> + </g> + </g> + </g> + <g id="text_404"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 403 --> + <g transform="translate(1468.12228 2313.514666) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-33" x="127.246094"/> + </g> + </g> + </g> + <g id="text_405"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 404 --> + <g transform="translate(1488.498448 2491.686618) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-34" x="127.246094"/> + </g> + </g> + </g> + <g id="text_406"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 405 --> + <g transform="translate(2003.743873 2210.429426) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-35" x="127.246094"/> + </g> + </g> + </g> + <g id="text_407"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 406 --> + <g transform="translate(2099.420533 2190.581778) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-36" x="127.246094"/> + </g> + </g> + </g> + <g id="text_408"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 407 --> + <g transform="translate(2139.696643 2226.800443) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-37" x="127.246094"/> + </g> + </g> + </g> + <g id="text_409"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 408 --> + <g transform="translate(1962.289976 1391.900762) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-38" x="127.246094"/> + </g> + </g> + </g> + <g id="text_410"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 409 --> + <g transform="translate(1956.888706 1392.54001) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-30" x="63.623047"/> + <use xlink:href="#DejaVuSans-39" x="127.246094"/> + </g> + </g> + </g> + <g id="text_411"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 410 --> + <g transform="translate(668.931654 646.958518) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-30" x="127.246094"/> + </g> + </g> + </g> + <g id="text_412"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 411 --> + <g transform="translate(810.655722 783.808535) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-31" x="127.246094"/> + </g> + </g> + </g> + <g id="text_413"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 412 --> + <g transform="translate(699.484624 684.694175) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-32" x="127.246094"/> + </g> + </g> + </g> + <g id="text_414"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 413 --> + <g transform="translate(733.866371 730.25784) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-33" x="127.246094"/> + </g> + </g> + </g> + <g id="text_415"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 414 --> + <g transform="translate(796.234713 774.781612) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-34" x="127.246094"/> + </g> + </g> + </g> + <g id="text_416"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 415 --> + <g transform="translate(722.332936 708.928096) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-35" x="127.246094"/> + </g> + </g> + </g> + <g id="text_417"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 416 --> + <g transform="translate(749.368414 725.908721) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-36" x="127.246094"/> + </g> + </g> + </g> + <g id="text_418"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 417 --> + <g transform="translate(1469.332815 2448.942313) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-37" x="127.246094"/> + </g> + </g> + </g> + <g id="text_419"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 418 --> + <g transform="translate(884.253023 2484.83691) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-38" x="127.246094"/> + </g> + </g> + </g> + <g id="text_420"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 419 --> + <g transform="translate(1603.516992 2322.848722) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-31" x="63.623047"/> + <use xlink:href="#DejaVuSans-39" x="127.246094"/> + </g> + </g> + </g> + <g id="text_421"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 420 --> + <g transform="translate(987.536912 2228.842151) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-30" x="127.246094"/> + </g> + </g> + </g> + <g id="text_422"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 421 --> + <g transform="translate(942.523619 2316.159618) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-31" x="127.246094"/> + </g> + </g> + </g> + <g id="text_423"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 422 --> + <g transform="translate(1220.660204 958.590735) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-32" x="127.246094"/> + </g> + </g> + </g> + <g id="text_424"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 423 --> + <g transform="translate(2106.861245 663.680757) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-33" x="127.246094"/> + </g> + </g> + </g> + <g id="text_425"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 424 --> + <g transform="translate(1446.255952 1272.063142) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-34" x="127.246094"/> + </g> + </g> + </g> + <g id="text_426"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 425 --> + <g transform="translate(1313.24389 1381.159726) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-35" x="127.246094"/> + </g> + </g> + </g> + <g id="text_427"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 426 --> + <g transform="translate(684.282239 2441.853947) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-36" x="127.246094"/> + </g> + </g> + </g> + <g id="text_428"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 427 --> + <g transform="translate(1942.909754 319.586547) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-37" x="127.246094"/> + </g> + </g> + </g> + <g id="text_429"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 428 --> + <g transform="translate(1697.921159 1354.411863) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-38" x="127.246094"/> + </g> + </g> + </g> + <g id="text_430"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 429 --> + <g transform="translate(1838.502761 2394.295762) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-32" x="63.623047"/> + <use xlink:href="#DejaVuSans-39" x="127.246094"/> + </g> + </g> + </g> + <g id="text_431"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 430 --> + <g transform="translate(1896.320307 999.568577) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-30" x="127.246094"/> + </g> + </g> + </g> + <g id="text_432"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 431 --> + <g transform="translate(2228.556063 1177.32268) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-31" x="127.246094"/> + </g> + </g> + </g> + <g id="text_433"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 432 --> + <g transform="translate(2229.744423 1176.801141) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-32" x="127.246094"/> + </g> + </g> + </g> + <g id="text_434"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 433 --> + <g transform="translate(2183.540353 1196.888615) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-33" x="127.246094"/> + </g> + </g> + </g> + <g id="text_435"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 434 --> + <g transform="translate(1883.578818 780.462176) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-34" x="127.246094"/> + </g> + </g> + </g> + <g id="text_436"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 435 --> + <g transform="translate(1954.514249 2486.341264) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-35" x="127.246094"/> + </g> + </g> + </g> + <g id="text_437"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 436 --> + <g transform="translate(1856.107587 2563.140556) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-36" x="127.246094"/> + </g> + </g> + </g> + <g id="text_438"> + <g clip-path="url(#pcd1a210b40)"> + <!-- 437 --> + <g transform="translate(2090.919 2360.860626) scale(0.12 -0.12)"> + <use xlink:href="#DejaVuSans-34"/> + <use xlink:href="#DejaVuSans-33" x="63.623047"/> + <use xlink:href="#DejaVuSans-37" x="127.246094"/> + </g> + </g> + </g> + </g> + </g> + <defs> + <clipPath id="pcd1a210b40"> + <rect x="0" y="0" width="2880" height="2880"/> + </clipPath> + </defs> +</svg> diff --git a/requirements.txt b/requirements.txt index c3be34b9f39070854305afb241baa29af243348c..29963bbd754bdf7f64b498872f6897307cba21e4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,149 +1,30 @@ -absl-py==1.3.0 -anyio==3.6.2 -argon2-cffi==21.3.0 -argon2-cffi-bindings==21.2.0 -asttokens==2.1.0 -attrs==22.1.0 -backcall==0.2.0 -beautifulsoup4==4.11.1 -bleach==5.0.1 -blis==0.7.9 -bs4==0.0.1 -cachetools==5.2.0 -catalogue==2.0.8 -certifi==2022.9.24 -cffi==1.15.1 -charset-normalizer==2.1.1 -click==8.1.3 -colorama==0.4.6 -confection==0.0.3 -contourpy==1.0.6 -cycler==0.11.0 -cymem==2.0.7 -debugpy==1.6.3 -decorator==5.1.1 -defusedxml==0.7.1 -dgl==0.9.1 -en-core-web-sm @ https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.4.1/en_core_web_sm-3.4.1-py3-none-any.whl -entrypoints==0.4 -executing==1.2.0 -fastjsonschema==2.16.2 -filelock==3.8.0 -fonttools==4.38.0 -google-auth==2.14.0 -google-auth-oauthlib==0.4.6 -graph4nlp==0.5.5 -grpcio==1.50.0 -huggingface-hub==0.10.1 +certifi==2022.12.7 +charset-normalizer==2.0.12 +dataclasses==0.8 +decorator==4.4.2 +googledrivedownloader==0.4 idna==3.4 -importlib-metadata==5.0.0 -importlib-resources==5.10.0 -ipykernel==6.16.2 -ipython==8.6.0 -ipython-genutils==0.2.0 -ipywidgets==8.0.2 -jedi==0.18.1 -Jinja2==3.1.2 -joblib==1.2.0 -jsonschema==4.16.0 -jupyter==1.0.0 -jupyter-console==6.4.4 -jupyter-server==1.21.0 -jupyter_client==7.4.4 -jupyter_core==4.11.2 -jupyterlab-pygments==0.2.2 -jupyterlab-widgets==3.0.3 -kiwisolver==1.4.4 -langcodes==3.3.0 -littleutils==0.2.2 -lxml==4.9.1 -Markdown==3.4.1 -MarkupSafe==2.1.1 -matplotlib==3.6.2 -matplotlib-inline==0.1.6 -mistune==2.0.4 -murmurhash==1.0.9 -nbclassic==0.4.7 -nbclient==0.7.0 -nbconvert==7.2.3 -nbformat==5.7.0 -nest-asyncio==1.5.6 -networkx==2.8.8 -nltk==3.7 -notebook==6.5.2 -notebook_shim==0.2.0 -numpy==1.23.5 -oauthlib==3.2.2 -ogb==1.3.5 -outdated==0.2.2 -packaging==21.3 -pandas==1.5.1 -pandocfilters==1.5.0 -parso==0.8.3 -pathy==0.6.2 -pickleshare==0.7.5 -Pillow==9.3.0 -pkgutil_resolve_name==1.3.10 -preshed==3.0.8 -prometheus-client==0.15.0 -prompt-toolkit==3.0.31 -protobuf==3.19.6 -psutil==5.9.3 -pure-eval==0.2.2 -pyasn1==0.4.8 -pyasn1-modules==0.2.8 -pycparser==2.21 -pydantic==1.10.2 -Pygments==2.13.0 +importlib-resources==5.4.0 +isodate==0.6.1 +Jinja2==3.0.3 +joblib==1.1.1 +MarkupSafe==2.0.1 +networkx==2.5.1 +numpy==1.19.5 +pandas==1.1.5 +Pillow==8.4.0 pyparsing==3.0.9 -pyrsistent==0.18.1 python-dateutil==2.8.2 -pythonds==1.2.1 -pytz==2022.5 -pywin32==304 -pywinpty==2.0.9 +pytz==2022.7.1 PyYAML==6.0 -pyzmq==24.0.1 -qtconsole==5.3.2 -QtPy==2.2.1 -regex==2022.10.31 -requests==2.28.1 -requests-oauthlib==1.3.1 -rsa==4.9 -scikit-learn==1.1.3 -scipy==1.9.3 -Send2Trash==1.8.0 +rdflib==5.0.0 +requests==2.27.1 +scikit-learn==0.24.2 +scipy==1.5.4 six==1.16.0 -smart-open==5.2.1 -sniffio==1.3.0 -soupsieve==2.3.2.post1 -spacy==3.4.2 -spacy-legacy==3.0.10 -spacy-loggers==1.0.3 -srsly==2.4.5 -stack-data==0.6.0 -stanfordcorenlp==3.9.1.1 -tensorboard==2.10.1 -tensorboard-data-server==0.6.1 -tensorboard-plugin-wit==1.8.1 -terminado==0.17.0 -thinc==8.1.5 threadpoolctl==3.1.0 -tinycss2==1.2.1 -tokenizers==0.13.2 -torch==1.13.0 -torchtext==0.14.0 -tornado==6.2 tqdm==4.64.1 -traitlets==5.5.0 -transformers==4.24.0 -typer==0.4.2 -typing_extensions==4.4.0 -urllib3==1.26.12 -wasabi==0.10.1 -wcwidth==0.2.5 -webencodings==0.5.1 -websocket-client==1.4.1 -Werkzeug==2.2.2 -widgetsnbextension==4.0.3 -zipp==3.10.0 +typing_extensions==4.1.1 +urllib3==1.26.14 +yacs==0.1.8 +zipp==3.6.0