add lectures to the materials

This commit is contained in:
Bogumił Kamiński committed 2022-11-10 17:49:50 +01:00
1 parent 77f4ed89d8
commit 6ee6486cf3
18 files changed
+89863 -3

No files matched your search

+3 -3
View File
@@ -918,10 +918,10 @@ uuid = "90014a1f-27ba-587c-ab20-58faa44d9150"
version = "0.11.16"
[[deps.Parsers]]
deps = ["Dates", "SnoopPrecompile"]
git-tree-sha1 = "cceb0257b662528ecdf0b4b4302eb00e767b38e7"
deps = ["Dates"]
git-tree-sha1 = "3d5bf43e3e8b412656404ed9466f1dcbf7c50269"
uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0"
version = "2.5.0"
version = "2.4.0"
[[deps.Pixman_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
+4
View File
@@ -9,6 +9,10 @@ Extras:
* in the `/exercises` folder for each book chapter you can find 10 additional
exercises with solutions (they are meant for self study and are not discussed
in the book)
* in the `/lectures` folder for each book chapter you can find a Jupyter
Notebook file with code from this chapter (note that the code is slightly
adjusted in comparison to code contained in .jl files in the root folder
to accomodate it for running in Jupyter Notebook).
## Setting up your environment
+74
View File
@@ -0,0 +1,74 @@
# Julia for Data Analysis
## Contents
This folder contains Jupyter Notebooks with lecture templates to the book
["Julia for Data Analysis"](https://www.manning.com/books/julia-for-data-analysis?utm_source=bkamins&utm_medium=affiliate&utm_campaign=book_kaminski2_julia_3_17_22)
that is written by Bogumił Kamiński and is planned to be published in 2022
by [Manning Publications Co.](https://www.manning.com/).
The lecture tempates can be used as:
* starting point for preparation of teaching materials by instructors giving
couses about data analysis using the Julia language.
* An alternative for the readers of the book to .jl files located in the root
folder of this repository.
The notebooks were prepared by [Bogumił Kamiński](https://github.com/bkamins)
and [Daniel Kaszyński](https://www.linkedin.com/in/daniel-kaszy%C5%84ski-3a7807113/).
The files containing lecture template have a naming convention
`lectureDD.ipynb`, where `DD` is book chapter number for which the were
prepared.
The differences from the codes presented in the book (the .jl files
in the root folder) are:
* code layout was changed (so it is not identical to code presented in the book);
* some codes adjusted or omitted in comparison to the book version, to make the
presentation suitable for Jupyter Notebook format.
## Running instructions
The Jupyter Notebooks are stored in the *lectures* folder of the repository.
Therefore they will automatically use the information from
*Project.toml* and *Manifest.toml* files that are contained in the root
folder of the repository to properly set up the working environment.
However, before running Jupyter Notebooks you need to make sure that your
environment is properly configured to run Julia in Jupyter.
The notebooks were prepared under Julia 1.7, but they should work under newer
Julia 1.x versions. In this case what you might need to do is change Jupyter
Notebook kernel to the version of Julia that you have. In this case please
make sure to run the following command in projects root folder before
working with the notebooks:
```
julia --project -e "using Pkg; Pkg.instantiate()"
```
The simplest way to configure your environment is as follows:
* Start Julia in a terminal using `julia` command in the folder containing the
lecture materials.
* press <kbd>]</kbd> to switch to package manager mode.
* Make sure you are in a home project environment. Your prompt should look as
`(@v1.8) pkg>`. If it is not then run the `activate` command. Then you will
switch to the home project environment. The reason why we do it is to avoid
adding IJulia.jl to the local project environment of the book (as it could
update some of the packages used in the book).
* Install the [IJulia.jl package](https://github.com/JuliaLang/IJulia.jl) by
running command `add IJulia`.
* Rress <kbd>Backspace</kbd> to leave package manager mode.
* Run the command `using IJulia; notebook(dir=pwd())` that will start Jupyter
in the current Julia directory. This directory should be the folder
containing the lecture materials as we have started Julia in this folder. If
you are not in this folder then instead of passing `pwd()` write a path to
the folder where the lecture materials are located.
---
*Preparation of these exercises have been supported by the Polish National Agency for Academic Exchange under the Strategic Partnerships programme, grant number BPI/PST/2021/1/00069/U/00001.*
![SGH & NAWA](logo.png)
+879
View File
@@ -0,0 +1,879 @@
{
"cells": [
{
"cell_type": "markdown",
"id": "7f8bec03",
"metadata": {},
"source": [
"# Julia for Data Analysis\n",
"\n",
"## Bogumił Kamiński"
]
},
{
"cell_type": "markdown",
"id": "f190bea8",
"metadata": {},
"source": [
"# Lecture 1. Introduction"
]
},
{
"cell_type": "markdown",
"id": "90be7554",
"metadata": {},
"source": [
"## What is Julia and why is it useful?\n",
"\n",
"### Comparison of execution speed of Julia, Java, Python, and C"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "cb50d0a0",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"600\" height=\"400\" viewBox=\"0 0 2400 1600\">\n",
"<defs>\n",
" <clipPath id=\"clip650\">\n",
" <rect x=\"0\" y=\"0\" width=\"2400\" height=\"1600\"/>\n",
" </clipPath>\n",
"</defs>\n",
"<path clip-path=\"url(#clip650)\" d=\"\n",
"M0 1600 L2400 1600 L2400 0 L0 0 Z\n",
" \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
"<defs>\n",
" <clipPath id=\"clip651\">\n",
" <rect x=\"480\" y=\"0\" width=\"1681\" height=\"1600\"/>\n",
" </clipPath>\n",
"</defs>\n",
"<path clip-path=\"url(#clip650)\" d=\"\n",
"M195.435 1395.33 L1153.53 1395.33 L1153.53 47.2441 L195.435 47.2441 Z\n",
" \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
"<defs>\n",
" <clipPath id=\"clip652\">\n",
" <rect x=\"195\" y=\"47\" width=\"959\" height=\"1349\"/>\n",
" </clipPath>\n",
"</defs>\n",
"<polyline clip-path=\"url(#clip652)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 222.551,1395.33 222.551,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip652)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 322.98,1395.33 322.98,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip652)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 423.41,1395.33 423.41,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip652)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 523.839,1395.33 523.839,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip652)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 624.268,1395.33 624.268,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip652)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 724.697,1395.33 724.697,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip652)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 825.127,1395.33 825.127,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip652)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 925.556,1395.33 925.556,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip652)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 1025.99,1395.33 1025.99,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip652)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 1126.41,1395.33 1126.41,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip650)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 195.435,1395.33 1153.53,1395.33 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip650)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 222.551,1395.33 222.551,1376.43 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip650)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 322.98,1395.33 322.98,1376.43 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip650)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 423.41,1395.33 423.41,1376.43 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip650)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 523.839,1395.33 523.839,1376.43 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip650)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 624.268,1395.33 624.268,1376.43 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip650)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 724.697,1395.33 724.697,1376.43 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip650)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 825.127,1395.33 825.127,1376.43 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip650)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 925.556,1395.33 925.556,1376.43 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip650)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 1025.99,1395.33 1025.99,1376.43 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip650)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 1126.41,1395.33 1126.41,1376.43 \n",
" \"/>\n",
"<path clip-path=\"url(#clip650)\" d=\"M110.421 1478.17 L115.104 1491.04 L111.602 1492.31 L106.96 1479.56 Q105.859 1476.53 104.132 1475.46 Q102.404 1474.38 100.044 1475.24 Q97.2082 1476.27 96.2295 1478.68 Q95.2508 1481.08 96.3869 1484.2 L100.772 1496.25 L97.2509 1497.53 L89.4921 1476.22 L93.0132 1474.94 L94.2186 1478.25 Q94.7751 1475.87 96.1227 1474.3 Q97.4893 1472.72 99.7161 1471.91 Q103.39 1470.58 106.105 1472.17 Q108.814 1473.75 110.421 1478.17 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M115.865 1476.9 L126.123 1473.17 L127.259 1476.29 L117.001 1480.02 L115.865 1476.9 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M147.584 1467.16 Q146.178 1463.3 143.783 1461.69 Q141.399 1460.06 138.621 1461.07 Q135.842 1462.08 135.047 1464.87 Q134.264 1467.64 135.67 1471.5 Q137.076 1475.37 139.459 1477 Q141.855 1478.6 144.634 1477.59 Q147.412 1476.58 148.196 1473.82 Q148.991 1471.03 147.584 1467.16 M132.961 1464.06 Q133.372 1461.75 134.715 1460.23 Q136.069 1458.68 138.41 1457.83 Q142.293 1456.42 145.832 1458.62 Q149.391 1460.82 151.22 1465.84 Q153.049 1470.87 151.735 1474.84 Q150.44 1478.8 146.557 1480.21 Q144.216 1481.06 142.189 1480.77 Q140.175 1480.44 138.378 1478.94 L139.542 1482.14 L136.021 1483.42 L125.242 1453.81 L128.763 1452.53 L132.961 1464.06 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M162.293 1452.5 Q159.476 1453.53 158.642 1456.33 Q157.802 1459.11 159.195 1462.94 Q160.587 1466.76 163.008 1468.38 Q165.442 1469.98 168.278 1468.94 Q171.076 1467.93 171.909 1465.12 Q172.742 1462.32 171.357 1458.51 Q169.978 1454.72 167.538 1453.11 Q165.09 1451.48 162.293 1452.5 M161.212 1449.53 Q165.78 1447.87 169.468 1449.89 Q173.156 1451.91 175.068 1457.16 Q176.973 1462.4 175.453 1466.33 Q173.926 1470.25 169.359 1471.91 Q164.772 1473.58 161.083 1471.56 Q157.407 1469.52 155.502 1464.28 Q153.59 1459.03 155.098 1455.12 Q156.625 1451.2 161.212 1449.53 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M192.192 1442.5 L187.994 1430.97 L191.496 1429.69 L202.275 1459.31 L198.773 1460.58 L197.609 1457.38 Q197.198 1459.69 195.844 1461.24 Q194.501 1462.76 192.141 1463.62 Q188.277 1465.03 184.719 1462.83 Q181.179 1460.63 179.351 1455.6 Q177.522 1450.58 178.817 1446.61 Q180.131 1442.64 183.994 1441.24 Q186.354 1440.38 188.369 1440.7 Q190.395 1441 192.192 1442.5 M182.967 1454.29 Q184.373 1458.15 186.756 1459.78 Q189.152 1461.39 191.931 1460.38 Q194.71 1459.37 195.512 1456.6 Q196.307 1453.81 194.901 1449.94 Q193.494 1446.08 191.099 1444.47 Q188.696 1442.85 185.918 1443.86 Q183.139 1444.87 182.344 1447.66 Q181.561 1450.42 182.967 1454.29 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M219.078 1455.43 Q218.979 1459.78 217.993 1461.45 Q217.008 1463.13 214.648 1463.99 L211.85 1465.01 L210.783 1462.07 L212.838 1461.33 Q214.285 1460.8 214.835 1459.82 Q215.385 1458.85 215.427 1455.94 L215.474 1454.12 L199.217 1436.28 L202.929 1434.93 L215.659 1449.18 L216.252 1430.08 L219.963 1428.73 L219.078 1455.43 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M117.924 1507.06 Q118.379 1504.22 119.797 1502.43 Q121.215 1500.64 123.69 1499.74 Q127.021 1498.53 129.681 1500.21 Q132.334 1501.88 133.9 1506.18 L138.583 1519.04 L135.062 1520.32 L130.42 1507.57 Q129.305 1504.51 127.68 1503.42 Q126.054 1502.33 123.827 1503.14 Q121.106 1504.13 120.184 1506.51 Q119.263 1508.9 120.399 1512.02 L124.784 1524.07 L121.263 1525.35 L116.621 1512.6 Q115.499 1509.51 113.881 1508.44 Q112.255 1507.35 109.99 1508.18 Q107.307 1509.15 106.392 1511.55 Q105.47 1513.94 106.6 1517.04 L110.985 1529.09 L107.464 1530.37 L99.7049 1509.05 L103.226 1507.77 L104.431 1511.08 Q104.917 1508.69 106.252 1507.14 Q107.588 1505.6 109.891 1504.76 Q112.213 1503.92 114.26 1504.51 Q116.327 1505.09 117.924 1507.06 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M151.355 1502.26 Q147.111 1503.8 145.827 1505.37 Q144.544 1506.94 145.396 1509.28 Q146.075 1511.14 147.695 1511.8 Q149.327 1512.44 151.44 1511.67 Q154.352 1510.61 155.354 1507.92 Q156.369 1505.2 155.122 1501.77 L154.838 1500.99 L151.355 1502.26 M157.814 1498.27 L162.241 1510.43 L158.739 1511.71 L157.561 1508.47 Q157.068 1510.85 155.619 1512.43 Q154.162 1514 151.574 1514.94 Q148.3 1516.13 145.694 1515.01 Q143.099 1513.86 141.977 1510.78 Q140.668 1507.18 142.401 1504.48 Q144.153 1501.78 148.93 1500.04 L153.841 1498.25 L153.716 1497.91 Q152.836 1495.49 150.76 1494.76 Q148.695 1494 145.821 1495.05 Q143.994 1495.71 142.421 1496.78 Q140.848 1497.85 139.568 1499.31 L138.391 1496.07 Q140.043 1494.63 141.719 1493.61 Q143.389 1492.57 145.102 1491.95 Q149.727 1490.26 152.884 1491.83 Q156.041 1493.4 157.814 1498.27 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /Line truncated
" 195.435,1357.17 1153.53,1357.17 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip652)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 195.435,835.991 1153.53,835.991 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip652)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 195.435,314.81 1153.53,314.81 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip650)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 195.435,1395.33 195.435,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip650)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 195.435,1357.17 214.333,1357.17 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip650)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 195.435,835.991 214.333,835.991 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip650)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 195.435,314.81 214.333,314.81 \n",
" \"/>\n",
"<path clip-path=\"url(#clip650)\" d=\"M97.5675 1374.49 L104.252 1374.49 L104.252 1351.42 L96.9802 1352.88 L96.9802 1349.15 L104.211 1347.69 L108.302 1347.69 L108.302 1374.49 L114.986 1374.49 L114.986 1377.93 L97.5675 1377.93 L97.5675 1374.49 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M132 1350.39 Q128.841 1350.39 127.24 1353.51 Q125.661 1356.61 125.661 1362.84 Q125.661 1369.06 127.24 1372.18 Q128.841 1375.28 132 1375.28 Q135.18 1375.28 136.76 1372.18 Q138.36 1369.06 138.36 1362.84 Q138.36 1356.61 136.76 1353.51 Q135.18 1350.39 132 1350.39 M132 1347.15 Q137.084 1347.15 139.758 1351.18 Q142.452 1355.19 142.452 1362.84 Q142.452 1370.48 139.758 1374.51 Q137.084 1378.52 132 1378.52 Q126.916 1378.52 124.222 1374.51 Q121.549 1370.48 121.549 1362.84 Q121.549 1355.19 124.222 1351.18 Q126.916 1347.15 132 1347.15 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M150.943 1331.57 Q148.376 1331.57 147.076 1334.1 Q145.792 1336.62 145.792 1341.69 Q145.792 1346.74 147.076 1349.28 Q148.376 1351.79 150.943 1351.79 Q153.527 1351.79 154.811 1349.28 Q156.111 1346.74 156.111 1341.69 Q156.111 1336.62 154.811 1334.1 Q153.527 1331.57 150.943 1331.57 M150.943 1328.94 Q155.074 1328.94 157.246 1332.21 Q159.435 1335.47 159.435 1341.69 Q159.435 1347.89 157.246 1351.17 Q155.074 1354.43 150.943 1354.43 Q146.813 1354.43 144.624 1351.17 Q142.452 1347.89 142.452 1341.69 Q142.452 1335.47 144.624 1332.21 Q146.813 1328.94 150.943 1328.94 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M99.9209 853.31 L106.605 853.31 L106.605 830.24 L99.3335 831.698 L99.3335 827.971 L106.564 826.513 L110.656 826.513 L110.656 853.31 L117.34 853.31 L117.34 856.753 L99.9209 856.753 L99.9209 853.31 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M134.354 829.207 Q131.194 829.207 129.594 832.326 Q128.014 835.425 128.014 841.663 Q128.014 847.881 129.594 851.001 Q131.194 854.1 134.354 854.1 Q137.534 854.1 139.113 851.001 Q140.713 847.881 140.713 841.663 Q140.713 835.425 139.113 832.326 Q137.534 829.207 134.354 829.207 M134.354 825.966 Q139.437 825.966 142.111 829.997 Q144.805 834.007 144.805 841.663 Q144.805 849.299 142.111 853.33 Q139.437 857.34 134.354 857.34 Q129.27 857.34 126.576 853.33 Q123.902 849.299 123.902 841.663 Q123.902 834.007 126.576 829.997 Q129.27 825.966 134.354 825.966 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M145.282 829.971 L150.713 829.971 L150.713 811.227 L144.805 812.412 L144.805 809.384 L150.68 808.199 L154.004 808.199 L154.004 829.971 L159.435 829.971 L159.435 832.769 L145.282 832.769 L145.282 829.971 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M98.9499 332.129 L105.634 332.129 L105.634 309.059 L98.3625 310.517 L98.3625 306.79 L105.593 305.332 L109.685 305.332 L109.685 332.129 L116.369 332.129 L116.369 335.572 L98.9499 335.572 L98.9499 332.129 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M133.383 308.026 Q130.223 308.026 128.623 311.145 Q127.043 314.244 127.043 320.482 Q127.043 326.701 128.623 329.82 Q130.223 332.919 133.383 332.919 Q136.563 332.919 138.142 329.82 Q139.743 326.701 139.743 320.482 Q139.743 314.244 138.142 311.145 Q136.563 308.026 133.383 308.026 M133.383 304.785 Q138.466 304.785 141.14 308.816 Q143.834 312.826 143.834 320.482 Q143.834 328.118 141.14 332.149 Q138.466 336.159 133.383 336.159 Q128.299 336.159 125.605 332.149 Q122.931 328.118 122.931 320.482 Q122.931 312.826 125.605 308.816 Q128.299 304.785 133.383 304.785 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M147.833 308.79 L159.435 308.79 L159.435 311.588 L143.834 311.588 L143.834 308.79 Q145.726 306.832 148.985 303.541 Q152.26 300.233 153.099 299.278 Q154.695 297.484 155.321 296.25 Q155.963 294.999 155.963 293.798 Q155.963 291.84 154.58 290.606 Q153.214 289.371 151.009 289.371 Q149.446 289.371 147.701 289.914 Q145.973 290.457 143.998 291.56 L143.998 288.203 Q146.006 287.396 147.751 286.985 Q149.495 286.574 150.943 286.574 Q154.761 286.574 157.032 288.483 Q159.303 290.392 159.303 293.584 Q159.303 295.098 158.727 296.464 Q158.168 297.814 156.67 299.657 Q156.259 300.134 154.054 302.421 Q151.848 304.693 147.833 308.79 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M39.6339 1001.35 L41.4568 1001.35 L41.4568 1018.49 Q45.3052 1018.25 47.3306 1016.18 Q49.3358 1014.09 49.3358 1010.39 Q49.3358 1008.24 48.8092 1006.24 Q48.2826 1004.21 47.2294 1002.23 L50.7536 1002.23 Q51.6043 1004.23 52.0499 1006.34 Q52.4955 1008.44 52.4955 1010.61 Q52.4955 1016.04 49.3358 1019.22 Q46.1761 1022.38 40.7884 1022.38 Q35.2184 1022.38 31.9575 1019.38 Q28.6762 1016.36 28.6762 1011.26 Q28.6762 1006.6Line truncated
"<path clip-path=\"url(#clip652)\" d=\"M306.98 1081.19 L306.98 1113.19 L338.98 1113.19 L338.98 1081.19 L306.98 1081.19 Z\" fill=\"#d3d3d3\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<path clip-path=\"url(#clip652)\" d=\"M407.41 1040.17 L407.41 1072.17 L439.41 1072.17 L439.41 1040.17 L407.41 1040.17 Z\" fill=\"#d3d3d3\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<path clip-path=\"url(#clip652)\" d=\"M507.839 1267.85 L507.839 1299.85 L539.839 1299.85 L539.839 1267.85 L507.839 1267.85 Z\" fill=\"#d3d3d3\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<path clip-path=\"url(#clip652)\" d=\"M608.268 1243.67 L608.268 1275.67 L640.268 1275.67 L640.268 1243.67 L608.268 1243.67 Z\" fill=\"#d3d3d3\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<path clip-path=\"url(#clip652)\" d=\"M708.697 1296.22 L708.697 1328.22 L740.697 1328.22 L740.697 1296.22 L708.697 1296.22 Z\" fill=\"#d3d3d3\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<path clip-path=\"url(#clip652)\" d=\"M809.127 1236.41 L809.127 1268.41 L841.127 1268.41 L841.127 1236.41 L809.127 1236.41 Z\" fill=\"#d3d3d3\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<path clip-path=\"url(#clip652)\" d=\"M909.556 1037.26 L909.556 1069.26 L941.556 1069.26 L941.556 1037.26 L909.556 1037.26 Z\" fill=\"#d3d3d3\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<path clip-path=\"url(#clip652)\" d=\"M1009.99 1263.29 L1009.99 1295.29 L1041.99 1295.29 L1041.99 1263.29 L1009.99 1263.29 Z\" fill=\"#d3d3d3\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<path clip-path=\"url(#clip652)\" d=\"M1110.41 911.484 L1110.41 943.484 L1142.41 943.484 L1142.41 911.484 L1110.41 911.484 Z\" fill=\"#d3d3d3\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<path clip-path=\"url(#clip652)\" d=\"M222.551 83.6849 L202.551 103.685 L222.551 123.685 L242.551 103.685 L222.551 83.6849 Z\" fill=\"#add8e6\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<path clip-path=\"url(#clip652)\" d=\"M322.98 224.509 L302.98 244.509 L322.98 264.509 L342.98 244.509 L322.98 224.509 Z\" fill=\"#add8e6\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<path clip-path=\"url(#clip652)\" d=\"M423.41 65.3973 L403.41 85.3973 L423.41 105.397 L443.41 85.3973 L423.41 65.3973 Z\" fill=\"#add8e6\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<path clip-path=\"url(#clip652)\" d=\"M523.839 475.317 L503.839 495.317 L523.839 515.317 L543.839 495.317 L523.839 475.317 Z\" fill=\"#add8e6\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<path clip-path=\"url(#clip652)\" d=\"M624.268 464.23 L604.268 484.23 L624.268 504.23 L644.268 484.23 L624.268 464.23 Z\" fill=\"#add8e6\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<path clip-path=\"url(#clip652)\" d=\"M724.697 780.562 L704.697 800.562 L724.697 820.562 L744.697 800.562 L724.697 780.562 Z\" fill=\"#add8e6\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<path clip-path=\"url(#clip652)\" d=\"M825.127 580.6 L805.127 600.6 L825.127 620.6 L845.127 600.6 L825.127 580.6 Z\" fill=\"#add8e6\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<path clip-path=\"url(#clip652)\" d=\"M925.556 707.547 L905.556 727.547 L925.556 747.547 L945.556 727.547 L925.556 707.547 Z\" fill=\"#add8e6\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<path clip-path=\"url(#clip652)\" d=\"M1025.99 1172.34 L1005.99 1192.34 L1025.99 1212.34 L1045.99 1192.34 L1025.99 1172.34 Z\" fill=\"#add8e6\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<path clip-path=\"url(#clip652)\" d=\"M1126.41 1220.42 L1106.41 1240.42 L1126.41 1260.42 L1146.41 1240.42 L1126.41 1220.42 Z\" fill=\"#add8e6\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip652)\" cx=\"222.551\" cy=\"1202.95\" r=\"18\" fill=\"#ffd700\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip652)\" cx=\"322.98\" cy=\"1337.19\" r=\"18\" fill=\"#ffd700\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip652)\" cx=\"423.41\" cy=\"1131.74\" r=\"18\" fill=\"#ffd700\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip652)\" cx=\"523.839\" cy=\"1349.83\" r=\"18\" fill=\"#ffd700\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip652)\" cx=\"624.268\" cy=\"1273.27\" r=\"18\" fill=\"#ffd700\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip652)\" cx=\"724.697\" cy=\"1307.12\" r=\"18\" fill=\"#ffd700\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip652)\" cx=\"825.127\" cy=\"1011.38\" r=\"18\" fill=\"#ffd700\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip652)\" cx=\"925.556\" cy=\"1072.83\" r=\"18\" fill=\"#ffd700\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip652)\" cx=\"1025.99\" cy=\"1232.83\" r=\"18\" fill=\"#ffd700\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip652)\" cx=\"1126.41\" cy=\"1181.29\" r=\"18\" fill=\"#ffd700\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<polyline clip-path=\"url(#clip652)\" style=\"stroke:#ff0000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" -762.661,1357.17 2111.63,1357.17 \n",
" \"/>\n",
"<path clip-path=\"url(#clip650)\" d=\"\n",
"M878.948 318.98 L1121.59 318.98 L1121.59 92.1801 L878.948 92.1801 Z\n",
" \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
"<polyline clip-path=\"url(#clip650)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 878.948,318.98 1121.59,318.98 1121.59,92.1801 878.948,92.1801 878.948,318.98 \n",
" \"/>\n",
"<path clip-path=\"url(#clip650)\" d=\"M899.13 115.14 L899.13 159.94 L943.93 159.94 L943.93 115.14 L899.13 115.14 Z\" fill=\"#d3d3d3\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"4.48\"/>\n",
"<path clip-path=\"url(#clip650)\" d=\"M970.33 122.42 L974.421 122.42 L974.421 150.554 Q974.421 156.022 972.335 158.493 Q970.269 160.964 965.671 160.964 L964.112 160.964 L964.112 157.521 L965.388 157.521 Q968.102 157.521 969.216 156.002 Q970.33 154.483 970.33 150.554 L970.33 122.42 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M992.711 141.257 Q988.194 141.257 986.452 142.29 Q984.711 143.323 984.711 145.814 Q984.711 147.799 986.007 148.974 Q987.323 150.128 989.572 150.128 Q992.671 150.128 994.534 147.941 Q996.418 145.733 996.418 142.087 L996.418 141.257 L992.711 141.257 M1000.14 139.718 L1000.14 152.66 L996.418 152.66 L996.418 149.217 Q995.142 151.283 993.238 152.275 Q991.334 153.248 988.579 153.248 Q985.095 153.248 983.029 151.303 Q980.984 149.338 980.984 146.057 Q980.984 142.229 983.536 140.285 Q986.108 138.34 991.192 138.34 L996.418 138.34 L996.418 137.976 Q996.418 135.403 994.716 134.006 Q993.035 132.588 989.977 132.588 Q988.032 132.588 986.189 133.054 Q984.346 133.52 982.645 134.451 L982.645 131.008 Q984.69 130.218 986.614 129.833 Q988.539 129.428 990.362 129.428 Q995.283 129.428 997.714 131.98 Q1000.14 134.532 1000.14 139.718 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M1005.15 129.975 L1009.1 129.975 L1016.19 149.014 L1023.28 129.975 L1027.22 129.975 L1018.72 152.66 L1013.65 152.66 L1005.15 129.975 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M1042.68 141.257 Q1038.16 141.257 1036.42 142.29 Q1034.68 143.323 1034.68 145.814 Q1034.68 147.799 1035.97 148.974 Q1037.29 150.128 1039.54 150.128 Q1042.64 150.128 1044.5 147.941 Q1046.39 145.733 1046.39 142.087 L1046.39 141.257 L1042.68 141.257 M1050.11 139.718 L1050.11 152.66 L1046.39 152.66 L1046.39 149.217 Q1045.11 151.283 1043.21 152.275 Q1041.3 153.248 1038.55 153.248 Q1035.06 153.248 1033 151.303 Q1030.95 149.338 1030.95 146.057 Q1030.95 142.229 1033.5 140.285 Q1036.08 138.34 1041.16 138.34 L1046.39 138.34 L1046.39 137.976 Q1046.39 135.403 1044.68 134.006 Q1043 132.588 1039.94 132.588 Q1038 132.588 1036.16 133.054 Q1034.31 133.52 1032.61 134.451 L1032.61 131.008 Q1034.66 130.218 1036.58 129.833 Q1038.51 129.428 1040.33 129.428 Q1045.25 129.428 1047.68 131.98 Q1050.11 134.532 1050.11 139.718 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M921.53 160.5 L899.13 182.9 L921.53 205.3 L943.93 182.9 L921.53 160.5 Z\" fill=\"#add8e6\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.584\"/>\n",
"<path clip-path=\"url(#clip650)\" d=\"M968.203 171.142 L968.203 182.505 L973.348 182.505 Q976.204 182.505 977.763 181.027 Q979.323 179.548 979.323 176.814 Q979.323 174.1 977.763 172.621 Q976.204 171.142 973.348 171.142 L968.203 171.142 M964.112 167.78 L973.348 167.78 Q978.432 167.78 981.024 170.089 Q983.637 172.378 983.637 176.814 Q983.637 181.29 981.024 183.579 Q978.432 185.867 973.348 185.867 L968.203 185.867 L968.203 198.02 L964.112 198.02 L964.112 167.78 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M998.403 200.127 Q996.823 204.178 995.324 205.413 Q993.825 206.649 991.314 206.649 L988.336 206.649 L988.336 203.529 L990.524 203.529 Q992.063 203.529 992.914 202.8 Q993.764 202.071 994.797 199.357 L995.466 197.656 L986.29 175.335 L990.24 175.335 L997.329 193.078 L1004.42 175.335 L1008.37 175.335 L998.403 200.127 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M1017.2 168.894 L1017.2 175.335 L1024.88 175.335 L1024.88 178.231 L1017.2 178.231 L1017.2 190.546 Q1017.2 193.321 1017.95 194.111 Q1018.72 194.901 1021.05 194.901 L1024.88 194.901 L1024.88 198.02 L1021.05 198.02 Q1016.73 198.02 1015.09 196.42 Q1013.45 194.8 1013.45 190.546 L1013.45 178.231 L1010.72 178.231 L1010.72 175.335 L1013.45 175.335 L1013.45 168.894 L1017.2 168.894 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M1048.63 184.328 L1048.63 198.02 L1044.91 198.02 L1044.91 184.45 Q1044.91 181.229 1043.65 179.629 Q1042.4 178.029 1039.88 178.029 Q1036.87 178.029 1035.12 179.953 Q1033.38 181.877 1033.38 185.199 L1033.38 198.02 L1029.64 198.02 L1029.64 166.504 L1033.38 166.504 L1033.38 178.859 Q1034.72 176.814 1036.52 175.801 Q1038.34 174.788 1040.71 174.788 Q1044.62 174.788 1046.63 177.219 Q1048.63 179.629 1048.63 184.328 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M1064.86 177.948 Q1061.86 177.948 1060.12 180.297 Q1058.38 182.627 1058.38 186.698 Q1058.38 190.769 1060.1 193.119 Q1061.84 195.448 1064.86 195.448 Q1067.84 195.448 1069.58 193.098 Q1071.32 190.749 1071.32 186.698 Q1071.32 182.667 1069.58 180.318 Q1067.84 177.948 1064.86 177.948 M1064.86 174.788 Q1069.72 174.788 1072.49 177.948 Q1075.27 181.108 1075.27 186.698 Q1075.27 192.268 1072.49 195.448 Q1069.72 198.608 1064.86 198.608 Q1059.98 198.608 1057.2 195.448 Q1054.45 192.268 1054.45 186.698 Q1054.45 181.108 1057.2 177.948 Q1059.98 174.788 1064.86 174.788 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M1100.3 184.328 L1100.3 198.02 L1096.58 198.02 L1096.58 184.45 Q1096.58 181.229 1095.32 179.629 Q1094.06 178.029 1091.55 178.029 Q1088.54 178.029 1086.79 179.953 Q1085.05 181.877 1085.05 185.199 L1085.05 198.02 L1081.3 198.02 L1081.3 175.335 L1085.05 175.335 L1085.05 178.859 Q1086.39 176.814 1088.19 175.801 Q1090.01 174.788 1092.38 174.788 Q1096.29 174.788 1098.3 177.219 Q1100.3 179.629 1100.3 184.328 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><circle clip-path=\"url(#clip650)\" cx=\"921.53\" cy=\"228.26\" r=\"20.16\" fill=\"#ffd700\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.584\"/>\n",
"<path clip-path=\"url(#clip650)\" d=\"M970.33 213.14 L974.421 213.14 L974.421 241.274 Q974.421 246.742 972.335 249.213 Q970.269 251.684 965.671 251.684 L964.112 251.684 L964.112 248.241 L965.388 248.241 Q968.102 248.241 969.216 246.722 Q970.33 245.203 970.33 241.274 L970.33 213.14 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M982.017 234.428 L982.017 220.695 L985.744 220.695 L985.744 234.286 Q985.744 237.506 986.999 239.127 Q988.255 240.727 990.767 240.727 Q993.785 240.727 995.526 238.803 Q997.289 236.878 997.289 233.557 L997.289 220.695 L1001.02 220.695 L1001.02 243.38 L997.289 243.38 L997.289 239.896 Q995.932 241.962 994.129 242.975 Q992.347 243.968 989.977 243.968 Q986.068 243.968 984.042 241.537 Q982.017 239.106 982.017 234.428 M991.395 220.148 L991.395 220.148 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M1008.69 211.864 L1012.42 211.864 L1012.42 243.38 L1008.69 243.38 L1008.69 211.864 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M1020.22 220.695 L1023.94 220.695 L1023.94 243.38 L1020.22 243.38 L1020.22 220.695 M1020.22 211.864 L1023.94 211.864 L1023.94 216.583 L1020.22 216.583 L1020.22 211.864 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M1042.05 231.977 Q1037.53 231.977 1035.79 233.01 Q1034.05 234.043 1034.05 236.534 Q1034.05 238.519 1035.35 239.694 Q1036.66 240.848 1038.91 240.848 Q1042.01 240.848 1043.87 238.661 Q1045.76 236.453 1045.76 232.807 L1045.76 231.977 L1042.05 231.977 M1049.48 230.438 L1049.48 243.38 L1045.76 243.38 L1045.76 239.937 Q1044.48 242.003 1042.58 242.995 Q1040.67 243.968 1037.92 243.968 Q1034.44 243.968 1032.37 242.023 Q1030.32 240.058 1030.32 236.777 Q1030.32 232.949 1032.88 231.005 Q1035.45 229.06 1040.53 229.06 L1045.76 229.06 L1045.76 228.696 Q1045.76 226.123 1044.06 224.726 Q1042.38 223.308 1039.32 223.308 Q1037.37 223.308 1035.53 223.774 Q1033.69 224.24 1031.98 225.171 L1031.98 221.728 Q1034.03 220.938 1035.95 220.553 Q1037.88 220.148 1039.7 220.148 Q1044.62 220.148 1047.05 222.7 Q1049.48 225.252 1049.48 230.438 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><polyline clip-path=\"url(#clip650)\" style=\"stroke:#ff0000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:3.5; stroke-opacity:1; fill:none\" points=\"\n",
" 889.593,273.62 953.466,273.62 \n",
" \"/>\n",
"<path clip-path=\"url(#clip650)\" d=\"M988.498 260.829 L988.498 265.144 Q986.432 263.219 984.083 262.267 Q981.753 261.316 979.12 261.316 Q973.935 261.316 971.181 264.495 Q968.426 267.655 968.426 273.651 Q968.426 279.626 971.181 282.806 Q973.935 285.965 979.12 285.965 Q981.753 285.965 984.083 285.013 Q986.432 284.061 988.498 282.137 L988.498 286.411 Q986.351 287.869 983.941 288.598 Q981.551 289.328 978.877 289.328 Q972.011 289.328 968.061 285.135 Q964.112 280.922 964.112 273.651 Q964.112 266.359 968.061 262.166 Q972.011 257.953 978.877 257.953 Q981.591 257.953 983.981 258.682 Q986.392 259.391 988.498 260.829 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"\n",
"M1394.66 1395.33 L2352.76 1395.33 L2352.76 47.2441 L1394.66 47.2441 Z\n",
" \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
"<defs>\n",
" <clipPath id=\"clip653\">\n",
" <rect x=\"1394\" y=\"47\" width=\"959\" height=\"1349\"/>\n",
" </clipPath>\n",
"</defs>\n",
"<polyline clip-path=\"url(#clip653)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 1421.78,1395.33 1421.78,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip653)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 1522.21,1395.33 1522.21,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip653)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 1622.63,1395.33 1622.63,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip653)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 1723.06,1395.33 1723.06,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip653)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 1823.49,1395.33 1823.49,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip653)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 1923.92,1395.33 1923.92,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip653)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 2024.35,1395.33 2024.35,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip653)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 2124.78,1395.33 2124.78,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip653)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 2225.21,1395.33 2225.21,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip653)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 2325.64,1395.33 2325.64,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip650)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 1394.66,1395.33 2352.76,1395.33 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip650)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 1421.78,1395.33 1421.78,1376.43 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip650)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 1522.21,1395.33 1522.21,1376.43 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip650)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 1622.63,1395.33 1622.63,1376.43 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip650)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 1723.06,1395.33 1723.06,1376.43 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip650)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 1823.49,1395.33 1823.49,1376.43 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip650)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 1923.92,1395.33 1923.92,1376.43 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip650)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 2024.35,1395.33 2024.35,1376.43 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip650)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 2124.78,1395.33 2124.78,1376.43 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip650)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 2225.21,1395.33 2225.21,1376.43 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip650)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 2325.64,1395.33 2325.64,1376.43 \n",
" \"/>\n",
"<path clip-path=\"url(#clip650)\" d=\"M1309.65 1478.17 L1314.33 1491.04 L1310.83 1492.31 L1306.19 1479.56 Q1305.08 1476.53 1303.36 1475.46 Q1301.63 1474.38 1299.27 1475.24 Q1296.43 1476.27 1295.45 1478.68 Q1294.48 1481.08 1295.61 1484.2 L1300 1496.25 L1296.48 1497.53 L1288.72 1476.22 L1292.24 1474.94 L1293.44 1478.25 Q1294 1475.87 1295.35 1474.3 Q1296.71 1472.72 1298.94 1471.91 Q1302.61 1470.58 1305.33 1472.17 Q1308.04 1473.75 1309.65 1478.17 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M1315.09 1476.9 L1325.35 1473.17 L1326.48 1476.29 L1316.23 1480.02 L1315.09 1476.9 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M1346.81 1467.16 Q1345.4 1463.3 1343.01 1461.69 Q1340.62 1460.06 1337.85 1461.07 Q1335.07 1462.08 1334.27 1464.87 Q1333.49 1467.64 1334.9 1471.5 Q1336.3 1475.37 1338.68 1477 Q1341.08 1478.6 1343.86 1477.59 Q1346.64 1476.58 1347.42 1473.82 Q1348.22 1471.03 1346.81 1467.16 M1332.19 1464.06 Q1332.6 1461.75 1333.94 1460.23 Q1335.29 1458.68 1337.64 1457.83 Q1341.52 1456.42 1345.06 1458.62 Q1348.62 1460.82 1350.45 1465.84 Q1352.27 1470.87 1350.96 1474.84 Q1349.66 1478.8 1345.78 1480.21 Q1343.44 1481.06 1341.41 1480.77 Q1339.4 1480.44 1337.6 1478.94 L1338.77 1482.14 L1335.25 1483.42 L1324.47 1453.81 L1327.99 1452.53 L1332.19 1464.06 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M1361.52 1452.5 Q1358.7 1453.53 1357.87 1456.33 Q1357.03 1459.11 1358.42 1462.94 Q1359.81 1466.76 1362.23 1468.38 Q1364.67 1469.98 1367.5 1468.94 Q1370.3 1467.93 1371.13 1465.12 Q1371.97 1462.32 1370.58 1458.51 Q1369.2 1454.72 1366.76 1453.11 Q1364.32 1451.48 1361.52 1452.5 M1360.44 1449.53 Q1365.01 1447.87 1368.69 1449.89 Q1372.38 1451.91 1374.29 1457.16 Q1376.2 1462.4 1374.68 1466.33 Q1373.15 1470.25 1368.58 1471.91 Q1364 1473.58 1360.31 1471.56 Q1356.63 1469.52 1354.73 1464.28 Q1352.82 1459.03 1354.32 1455.12 Q1355.85 1451.2 1360.44 1449.53 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M1391.42 1442.5 L1387.22 1430.97 L1390.72 1429.69 L1401.5 1459.31 L1398 1460.58 L1396.83 1457.38 Q1396.42 1459.69 1395.07 1461.24 Q1393.73 1462.76 1391.37 1463.62 Q1387.5 1465.03 1383.94 1462.83 Q1380.4 1460.63 1378.58 1455.6 Q1376.75 1450.58 1378.04 1446.61 Q1379.36 1442.64 1383.22 1441.24 Q1385.58 1440.38 1387.59 1440.7 Q1389.62 1441 1391.42 1442.5 M1382.19 1454.29 Q1383.6 1458.15 1385.98 1459.78 Q1388.38 1461.39 1391.16 1460.38 Q1393.93 1459.37 1394.74 1456.6 Q1395.53 1453.81 1394.13 1449.94 Q1392.72 1446.08 1390.32 1444.47 Q1387.92 1442.85 1385.14 1443.86 Q1382.36 1444.87 1381.57 1447.66 Q1380.79 1450.42 1382.19 1454.29 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M1418.3 1455.43 Q1418.2 1459.78 1417.22 1461.45 Q1416.23 1463.13 1413.87 1463.99 L1411.07 1465.01 L1410.01 1462.07 L1412.06 1461.33 Q1413.51 1460.8 1414.06 1459.82 Q1414.61 1458.85 1414.65 1455.94 L1414.7 1454.12 L1398.44 1436.28 L1402.15 1434.93 L1414.88 1449.18 L1415.48 1430.08 L1419.19 1428.73 L1418.3 1455.43 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M1317.15 1507.06 Q1317.6 1504.22 1319.02 1502.43 Q1320.44 1500.64 1322.92 1499.74 Q1326.25 1498.53 1328.91 1500.21 Q1331.56 1501.88 1333.12 1506.18 L1337.81 1519.04 L1334.29 1520.32 L1329.65 1507.57 Q1328.53 1504.51 1326.9 1503.42 Q1325.28 1502.33 1323.05 1503.14 Q1320.33 1504.13 1319.41 1506.51 Q1318.49 1508.9 1319.62 1512.02 L1324.01 1524.07 L1320.49 1525.35 L1315.85 1512.6 Q1314.72 1509.51 1313.11 1508.44 Q1311.48 1507.35 1309.22 1508.18 Q1306.53 1509.15 1305.62 1511.55 Q1304.7 1513.94 1305.82 1517.04 L1310.21 1529.09 L1306.69 1530.37 L1298.93 1509.05 L1302.45 1507.77 L1303.66 1511.08 Q1304.14 1508.69 1305.48 1507.14 Q1306.81 1505.6 1309.12 1504.76 Q1311.44 1503.92 1313.49 1504.51 Q1315.55 1505.09 1317.15 1507.06 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M1350.58 1502.26 Q1346.34 1503.8 1345.05 1505.37 Q1343.77 1506.94 1344.62 1509.28 Q1345.3 1511.14 1346.92 1511.8 Q1348.55 1512.44 1350.66 1511.67 Q1353.58 1510.61 1354.58 1507.92 Q1355.59 1505.2 1354.35 1501.77 L1354.06 1500.99 L1350.58 1502.26 M1357.04 1498.27 L1361.47 1510.43 L1357.96 1511.71 L1356.79 1508.47 Q1356.29 1510.85 1354.84 1512.43 Q1353.39 1514 1350.8 1514.94 Q1347.53 1516.13 1344.92 1515.01 Q1342.32 1513.86 1341.2 1510.78 Q1339.89 1507.18 1341.63 1504.48 Q1343.38 1501.78 1348.16 1500.04 L1353.07 1498.25 L1352.94 1497.91 Q1352.06 1495.49 1349.98 1494.76 Q1347.92 1494 1345.05 1495.05 Q1343.22 1495.71 1341.65 1496.78 Q1340.07 1497.85 1338.79 1499.31 L1337.62 1496.07 Q1339.27 1494.63 1340.94 1493.61 Q1342.61 1492.57 1344.33 1491.95 Q1348.95 1490.26 1352.11 1491.83 Q1355.27 1493.4 1357.04 1498.27 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clipLine truncated
" 1394.66,1241.14 2352.76,1241.14 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip653)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 1394.66,1068.41 2352.76,1068.41 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip653)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 1394.66,895.681 2352.76,895.681 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip653)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 1394.66,722.951 2352.76,722.951 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip653)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 1394.66,550.221 2352.76,550.221 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip653)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 1394.66,377.491 2352.76,377.491 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip653)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 1394.66,204.762 2352.76,204.762 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip650)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 1394.66,1395.33 1394.66,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip650)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 1394.66,1241.14 1413.56,1241.14 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip650)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 1394.66,1068.41 1413.56,1068.41 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip650)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 1394.66,895.681 1413.56,895.681 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip650)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 1394.66,722.951 1413.56,722.951 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip650)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 1394.66,550.221 1413.56,550.221 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip650)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 1394.66,377.491 1413.56,377.491 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip650)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 1394.66,204.762 1413.56,204.762 \n",
" \"/>\n",
"<path clip-path=\"url(#clip650)\" d=\"M1308.21 1228.71 Q1305.05 1228.71 1303.45 1231.83 Q1301.87 1234.93 1301.87 1241.17 Q1301.87 1247.39 1303.45 1250.51 Q1305.05 1253.61 1308.21 1253.61 Q1311.39 1253.61 1312.97 1250.51 Q1314.57 1247.39 1314.57 1241.17 Q1314.57 1234.93 1312.97 1231.83 Q1311.39 1228.71 1308.21 1228.71 M1308.21 1225.47 Q1313.29 1225.47 1315.96 1229.5 Q1318.66 1233.51 1318.66 1241.17 Q1318.66 1248.81 1315.96 1252.84 Q1313.29 1256.85 1308.21 1256.85 Q1303.12 1256.85 1300.43 1252.84 Q1297.75 1248.81 1297.75 1241.17 Q1297.75 1233.51 1300.43 1229.5 Q1303.12 1225.47 1308.21 1225.47 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M1325.85 1251.12 L1330.12 1251.12 L1330.12 1256.26 L1325.85 1256.26 L1325.85 1251.12 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M1350.27 1229.58 L1339.95 1245.73 L1350.27 1245.73 L1350.27 1229.58 M1349.2 1226.02 L1354.35 1226.02 L1354.35 1245.73 L1358.66 1245.73 L1358.66 1249.13 L1354.35 1249.13 L1354.35 1256.26 L1350.27 1256.26 L1350.27 1249.13 L1336.62 1249.13 L1336.62 1245.18 L1349.2 1226.02 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M1308.49 1055.98 Q1305.33 1055.98 1303.73 1059.1 Q1302.15 1062.2 1302.15 1068.44 Q1302.15 1074.66 1303.73 1077.78 Q1305.33 1080.88 1308.49 1080.88 Q1311.67 1080.88 1313.25 1077.78 Q1314.85 1074.66 1314.85 1068.44 Q1314.85 1062.2 1313.25 1059.1 Q1311.67 1055.98 1308.49 1055.98 M1308.49 1052.74 Q1313.57 1052.74 1316.25 1056.77 Q1318.94 1060.78 1318.94 1068.44 Q1318.94 1076.08 1316.25 1080.11 Q1313.57 1084.12 1308.49 1084.12 Q1303.41 1084.12 1300.71 1080.11 Q1298.04 1076.08 1298.04 1068.44 Q1298.04 1060.78 1300.71 1056.77 Q1303.41 1052.74 1308.49 1052.74 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M1326.13 1078.39 L1330.41 1078.39 L1330.41 1083.53 L1326.13 1083.53 L1326.13 1078.39 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M1348.57 1066.78 Q1345.82 1066.78 1344.2 1068.66 Q1342.6 1070.55 1342.6 1073.83 Q1342.6 1077.09 1344.2 1078.99 Q1345.82 1080.88 1348.57 1080.88 Q1351.33 1080.88 1352.93 1078.99 Q1354.55 1077.09 1354.55 1073.83 Q1354.55 1070.55 1352.93 1068.66 Q1351.33 1066.78 1348.57 1066.78 M1356.7 1053.96 L1356.7 1057.69 Q1355.16 1056.96 1353.58 1056.57 Q1352.02 1056.19 1350.48 1056.19 Q1346.43 1056.19 1344.28 1058.92 Q1342.15 1061.66 1341.85 1067.18 Q1343.04 1065.42 1344.85 1064.49 Q1346.65 1063.54 1348.82 1063.54 Q1353.37 1063.54 1356.01 1066.31 Q1358.66 1069.07 1358.66 1073.83 Q1358.66 1078.49 1355.91 1081.3 Q1353.15 1084.12 1348.57 1084.12 Q1343.33 1084.12 1340.55 1080.11 Q1337.78 1076.08 1337.78 1068.44 Q1337.78 1061.27 1341.18 1057.02 Q1344.58 1052.74 1350.32 1052.74 Q1351.85 1052.74 1353.41 1053.05 Q1354.99 1053.35 1356.7 1053.96 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M1308.71 883.254 Q1305.55 883.254 1303.95 886.374 Q1302.37 889.473 1302.37 895.711 Q1302.37 901.929 1303.95 905.048 Q1305.55 908.147 1308.71 908.147 Q1311.89 908.147 1313.47 905.048 Q1315.07 901.929 1315.07 895.711 Q1315.07 889.473 1313.47 886.374 Q1311.89 883.254 1308.71 883.254 M1308.71 880.014 Q1313.8 880.014 1316.47 884.044 Q1319.16 888.055 1319.16 895.711 Q1319.16 903.347 1316.47 907.378 Q1313.8 911.388 1308.71 911.388 Q1303.63 911.388 1300.93 907.378 Q1298.26 903.347 1298.26 895.711 Q1298.26 888.055 1300.93 884.044 Q1303.63 880.014 1308.71 880.014 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M1326.35 905.656 L1330.63 905.656 L1330.63 910.801 L1326.35 910.801 L1326.35 905.656 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M1348.29 896.44 Q1345.37 896.44 1343.69 898 Q1342.03 899.559 1342.03 902.294 Q1342.03 905.028 1343.69 906.588 Q1345.37 908.147 1348.29 908.147 Q1351.21 908.147 1352.89 906.588 Q1354.57 905.008 1354.57 902.294 Q1354.57 899.559 1352.89 898 Q1351.23 896.44 1348.29 896.44 M1344.2 894.698 Q1341.57 894.05 1340.09 892.247 Q1338.63 890.445 1338.63 887.852 Q1338.63 884.227 1341.2 882.12 Q1343.79 880.014 1348.29 880.014 Q1352.81 880.014 1355.38 882.12 Q1357.95 884.227 1357.95 887.852 Q1357.95 890.445 1356.47 892.247 Q1355.01 894.05 1352.4 894.698 Q1355.36 895.387 1357 897.392 Q1358.66 899.397 1358.66 902.294 Q1358.66 906.689 1355.97 909.038 Q1353.29 911.388 1348.29 911.388 Q1343.29 911.388 1340.59 909.038 Q1337.92 906.689 1337.92 902.294 Q1337.92 899.397 1339.58 897.392 Q1341.24 895.387 1344.2 894.698 M1342.7 888.237 Q1342.7 890.587 1344.16 891.903 Q1345.64 893.22 1348.29 893.22 Q1350.92 893.22 1352.4 891.903 Q1353.9 890.587 1353.9 888.237 Q1353.9 885.887 1352.4 884.571 Q1350.92 883.254 1348.29 883.254 Q1345.64 883.254 1344.16 884.571 Q1342.7 885.887 1342.7 888.237 Z\" fill=\"#000000\" fill-ruLine truncated
"<path clip-path=\"url(#clip653)\" d=\"M1506.21 964.904 L1506.21 996.904 L1538.21 996.904 L1538.21 964.904 L1506.21 964.904 Z\" fill=\"#d3d3d3\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<path clip-path=\"url(#clip653)\" d=\"M1606.63 1025.14 L1606.63 1057.14 L1638.63 1057.14 L1638.63 1025.14 L1606.63 1025.14 Z\" fill=\"#d3d3d3\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<path clip-path=\"url(#clip653)\" d=\"M1707.06 353.899 L1707.06 385.899 L1739.06 385.899 L1739.06 353.899 L1707.06 353.899 Z\" fill=\"#d3d3d3\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<path clip-path=\"url(#clip653)\" d=\"M1807.49 69.3973 L1807.49 101.397 L1839.49 101.397 L1839.49 69.3973 L1807.49 69.3973 Z\" fill=\"#d3d3d3\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<path clip-path=\"url(#clip653)\" d=\"M1907.92 531.468 L1907.92 563.468 L1939.92 563.468 L1939.92 531.468 L1907.92 531.468 Z\" fill=\"#d3d3d3\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<path clip-path=\"url(#clip653)\" d=\"M2008.35 679.194 L2008.35 711.194 L2040.35 711.194 L2040.35 679.194 L2008.35 679.194 Z\" fill=\"#d3d3d3\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<path clip-path=\"url(#clip653)\" d=\"M2108.78 611.136 L2108.78 643.136 L2140.78 643.136 L2140.78 611.136 L2108.78 611.136 Z\" fill=\"#d3d3d3\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<path clip-path=\"url(#clip653)\" d=\"M2209.21 965.253 L2209.21 997.253 L2241.21 997.253 L2241.21 965.253 L2209.21 965.253 Z\" fill=\"#d3d3d3\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<path clip-path=\"url(#clip653)\" d=\"M2309.64 996.276 L2309.64 1028.28 L2341.64 1028.28 L2341.64 996.276 L2309.64 996.276 Z\" fill=\"#d3d3d3\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<path clip-path=\"url(#clip653)\" d=\"M1421.78 934.068 L1401.78 954.068 L1421.78 974.068 L1441.78 954.068 L1421.78 934.068 Z\" fill=\"#add8e6\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<path clip-path=\"url(#clip653)\" d=\"M1522.21 1043.08 L1502.21 1063.08 L1522.21 1083.08 L1542.21 1063.08 L1522.21 1043.08 Z\" fill=\"#add8e6\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<path clip-path=\"url(#clip653)\" d=\"M1622.63 1272.94 L1602.63 1292.94 L1622.63 1312.94 L1642.63 1292.94 L1622.63 1272.94 Z\" fill=\"#add8e6\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<path clip-path=\"url(#clip653)\" d=\"M1723.06 664.988 L1703.06 684.988 L1723.06 704.988 L1743.06 684.988 L1723.06 664.988 Z\" fill=\"#add8e6\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<path clip-path=\"url(#clip653)\" d=\"M1823.49 417.232 L1803.49 437.232 L1823.49 457.232 L1843.49 437.232 L1823.49 417.232 Z\" fill=\"#add8e6\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<path clip-path=\"url(#clip653)\" d=\"M1923.92 438.58 L1903.92 458.58 L1923.92 478.58 L1943.92 458.58 L1923.92 438.58 Z\" fill=\"#add8e6\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<path clip-path=\"url(#clip653)\" d=\"M2024.35 862.016 L2004.35 882.016 L2024.35 902.016 L2044.35 882.016 L2024.35 862.016 Z\" fill=\"#add8e6\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<path clip-path=\"url(#clip653)\" d=\"M2124.78 1208.83 L2104.78 1228.83 L2124.78 1248.83 L2144.78 1228.83 L2124.78 1208.83 Z\" fill=\"#add8e6\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<path clip-path=\"url(#clip653)\" d=\"M2225.21 1117.34 L2205.21 1137.34 L2225.21 1157.34 L2245.21 1137.34 L2225.21 1117.34 Z\" fill=\"#add8e6\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<path clip-path=\"url(#clip653)\" d=\"M2325.64 699.241 L2305.64 719.241 L2325.64 739.241 L2345.64 719.241 L2325.64 699.241 Z\" fill=\"#add8e6\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip653)\" cx=\"1421.78\" cy=\"999.022\" r=\"18\" fill=\"#ffd700\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip653)\" cx=\"1522.21\" cy=\"1115.59\" r=\"18\" fill=\"#ffd700\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip653)\" cx=\"1622.63\" cy=\"1277.07\" r=\"18\" fill=\"#ffd700\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip653)\" cx=\"1723.06\" cy=\"573.948\" r=\"18\" fill=\"#ffd700\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip653)\" cx=\"1823.49\" cy=\"947.865\" r=\"18\" fill=\"#ffd700\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip653)\" cx=\"1923.92\" cy=\"1041.23\" r=\"18\" fill=\"#ffd700\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip653)\" cx=\"2024.35\" cy=\"909.772\" r=\"18\" fill=\"#ffd700\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip653)\" cx=\"2124.78\" cy=\"1357.17\" r=\"18\" fill=\"#ffd700\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip653)\" cx=\"2225.21\" cy=\"1185.68\" r=\"18\" fill=\"#ffd700\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip653)\" cx=\"2325.64\" cy=\"1117.37\" r=\"18\" fill=\"#ffd700\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<polyline clip-path=\"url(#clip653)\" style=\"stroke:#ff0000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 436.565,722.951 3310.85,722.951 \n",
" \"/>\n",
"<path clip-path=\"url(#clip650)\" d=\"\n",
"M2078.17 318.98 L2320.82 318.98 L2320.82 92.1801 L2078.17 92.1801 Z\n",
" \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
"<polyline clip-path=\"url(#clip650)\" style=\"stroke:#000000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 2078.17,318.98 2320.82,318.98 2320.82,92.1801 2078.17,92.1801 2078.17,318.98 \n",
" \"/>\n",
"<path clip-path=\"url(#clip650)\" d=\"M2098.35 115.14 L2098.35 159.94 L2143.15 159.94 L2143.15 115.14 L2098.35 115.14 Z\" fill=\"#d3d3d3\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"4.48\"/>\n",
"<path clip-path=\"url(#clip650)\" d=\"M2169.56 122.42 L2173.65 122.42 L2173.65 150.554 Q2173.65 156.022 2171.56 158.493 Q2169.49 160.964 2164.9 160.964 L2163.34 160.964 L2163.34 157.521 L2164.61 157.521 Q2167.33 157.521 2168.44 156.002 Q2169.56 154.483 2169.56 150.554 L2169.56 122.42 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M2191.94 141.257 Q2187.42 141.257 2185.68 142.29 Q2183.94 143.323 2183.94 145.814 Q2183.94 147.799 2185.23 148.974 Q2186.55 150.128 2188.8 150.128 Q2191.9 150.128 2193.76 147.941 Q2195.64 145.733 2195.64 142.087 L2195.64 141.257 L2191.94 141.257 M2199.37 139.718 L2199.37 152.66 L2195.64 152.66 L2195.64 149.217 Q2194.37 151.283 2192.46 152.275 Q2190.56 153.248 2187.8 153.248 Q2184.32 153.248 2182.25 151.303 Q2180.21 149.338 2180.21 146.057 Q2180.21 142.229 2182.76 140.285 Q2185.33 138.34 2190.42 138.34 L2195.64 138.34 L2195.64 137.976 Q2195.64 135.403 2193.94 134.006 Q2192.26 132.588 2189.2 132.588 Q2187.26 132.588 2185.41 133.054 Q2183.57 133.52 2181.87 134.451 L2181.87 131.008 Q2183.92 130.218 2185.84 129.833 Q2187.76 129.428 2189.59 129.428 Q2194.51 129.428 2196.94 131.98 Q2199.37 134.532 2199.37 139.718 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M2204.37 129.975 L2208.32 129.975 L2215.41 149.014 L2222.5 129.975 L2226.45 129.975 L2217.94 152.66 L2212.88 152.66 L2204.37 129.975 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M2241.9 141.257 Q2237.39 141.257 2235.65 142.29 Q2233.9 143.323 2233.9 145.814 Q2233.9 147.799 2235.2 148.974 Q2236.52 150.128 2238.76 150.128 Q2241.86 150.128 2243.73 147.941 Q2245.61 145.733 2245.61 142.087 L2245.61 141.257 L2241.9 141.257 M2249.34 139.718 L2249.34 152.66 L2245.61 152.66 L2245.61 149.217 Q2244.33 151.283 2242.43 152.275 Q2240.53 153.248 2237.77 153.248 Q2234.29 153.248 2232.22 151.303 Q2230.18 149.338 2230.18 146.057 Q2230.18 142.229 2232.73 140.285 Q2235.3 138.34 2240.39 138.34 L2245.61 138.34 L2245.61 137.976 Q2245.61 135.403 2243.91 134.006 Q2242.23 132.588 2239.17 132.588 Q2237.23 132.588 2235.38 133.054 Q2233.54 133.52 2231.84 134.451 L2231.84 131.008 Q2233.88 130.218 2235.81 129.833 Q2237.73 129.428 2239.55 129.428 Q2244.48 129.428 2246.91 131.98 Q2249.34 134.532 2249.34 139.718 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M2120.75 160.5 L2098.35 182.9 L2120.75 205.3 L2143.15 182.9 L2120.75 160.5 Z\" fill=\"#add8e6\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.584\"/>\n",
"<path clip-path=\"url(#clip650)\" d=\"M2167.43 171.142 L2167.43 182.505 L2172.57 182.505 Q2175.43 182.505 2176.99 181.027 Q2178.55 179.548 2178.55 176.814 Q2178.55 174.1 2176.99 172.621 Q2175.43 171.142 2172.57 171.142 L2167.43 171.142 M2163.34 167.78 L2172.57 167.78 Q2177.66 167.78 2180.25 170.089 Q2182.86 172.378 2182.86 176.814 Q2182.86 181.29 2180.25 183.579 Q2177.66 185.867 2172.57 185.867 L2167.43 185.867 L2167.43 198.02 L2163.34 198.02 L2163.34 167.78 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M2197.63 200.127 Q2196.05 204.178 2194.55 205.413 Q2193.05 206.649 2190.54 206.649 L2187.56 206.649 L2187.56 203.529 L2189.75 203.529 Q2191.29 203.529 2192.14 202.8 Q2192.99 202.071 2194.02 199.357 L2194.69 197.656 L2185.52 175.335 L2189.47 175.335 L2196.55 193.078 L2203.64 175.335 L2207.59 175.335 L2197.63 200.127 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M2216.42 168.894 L2216.42 175.335 L2224.1 175.335 L2224.1 178.231 L2216.42 178.231 L2216.42 190.546 Q2216.42 193.321 2217.17 194.111 Q2217.94 194.901 2220.27 194.901 L2224.1 194.901 L2224.1 198.02 L2220.27 198.02 Q2215.96 198.02 2214.32 196.42 Q2212.68 194.8 2212.68 190.546 L2212.68 178.231 L2209.94 178.231 L2209.94 175.335 L2212.68 175.335 L2212.68 168.894 L2216.42 168.894 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M2247.86 184.328 L2247.86 198.02 L2244.13 198.02 L2244.13 184.45 Q2244.13 181.229 2242.88 179.629 Q2241.62 178.029 2239.11 178.029 Q2236.09 178.029 2234.35 179.953 Q2232.61 181.877 2232.61 185.199 L2232.61 198.02 L2228.86 198.02 L2228.86 166.504 L2232.61 166.504 L2232.61 178.859 Q2233.94 176.814 2235.75 175.801 Q2237.57 174.788 2239.94 174.788 Q2243.85 174.788 2245.85 177.219 Q2247.86 179.629 2247.86 184.328 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M2264.08 177.948 Q2261.09 177.948 2259.34 180.297 Q2257.6 182.627 2257.6 186.698 Q2257.6 190.769 2259.32 193.119 Q2261.07 195.448 2264.08 195.448 Q2267.06 195.448 2268.8 193.098 Q2270.54 190.749 2270.54 186.698 Q2270.54 182.667 2268.8 180.318 Q2267.06 177.948 2264.08 177.948 M2264.08 174.788 Q2268.94 174.788 2271.72 177.948 Q2274.49 181.108 2274.49 186.698 Q2274.49 192.268 2271.72 195.448 Q2268.94 198.608 2264.08 198.608 Q2259.2 198.608 2256.43 195.448 Q2253.67 192.268 2253.67 186.698 Q2253.67 181.108 2256.43 177.948 Q2259.2 174.788 2264.08 174.788 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M2299.53 184.328 L2299.53 198.02 L2295.8 198.02 L2295.8 184.45 Q2295.8 181.229 2294.55 179.629 Q2293.29 178.029 2290.78 178.029 Q2287.76 178.029 2286.02 179.953 Q2284.28 181.877 2284.28 185.199 L2284.28 198.02 L2280.53 198.02 L2280.53 175.335 L2284.28 175.335 L2284.28 178.859 Q2285.61 176.814 2287.42 175.801 Q2289.24 174.788 2291.61 174.788 Q2295.52 174.788 2297.52 177.219 Q2299.53 179.629 2299.53 184.328 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><circle clip-path=\"url(#clip650)\" cx=\"2120.75\" cy=\"228.26\" r=\"20.16\" fill=\"#ffd700\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.584\"/>\n",
"<path clip-path=\"url(#clip650)\" d=\"M2169.56 213.14 L2173.65 213.14 L2173.65 241.274 Q2173.65 246.742 2171.56 249.213 Q2169.49 251.684 2164.9 251.684 L2163.34 251.684 L2163.34 248.241 L2164.61 248.241 Q2167.33 248.241 2168.44 246.722 Q2169.56 245.203 2169.56 241.274 L2169.56 213.14 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M2181.24 234.428 L2181.24 220.695 L2184.97 220.695 L2184.97 234.286 Q2184.97 237.506 2186.22 239.127 Q2187.48 240.727 2189.99 240.727 Q2193.01 240.727 2194.75 238.803 Q2196.51 236.878 2196.51 233.557 L2196.51 220.695 L2200.24 220.695 L2200.24 243.38 L2196.51 243.38 L2196.51 239.896 Q2195.16 241.962 2193.35 242.975 Q2191.57 243.968 2189.2 243.968 Q2185.29 243.968 2183.27 241.537 Q2181.24 239.106 2181.24 234.428 M2190.62 220.148 L2190.62 220.148 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M2207.92 211.864 L2211.64 211.864 L2211.64 243.38 L2207.92 243.38 L2207.92 211.864 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M2219.44 220.695 L2223.17 220.695 L2223.17 243.38 L2219.44 243.38 L2219.44 220.695 M2219.44 211.864 L2223.17 211.864 L2223.17 216.583 L2219.44 216.583 L2219.44 211.864 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip650)\" d=\"M2241.28 231.977 Q2236.76 231.977 2235.02 233.01 Q2233.28 234.043 2233.28 236.534 Q2233.28 238.519 2234.57 239.694 Q2235.89 240.848 2238.14 240.848 Q2241.24 240.848 2243.1 238.661 Q2244.98 236.453 2244.98 232.807 L2244.98 231.977 L2241.28 231.977 M2248.71 230.438 L2248.71 243.38 L2244.98 243.38 L2244.98 239.937 Q2243.71 242.003 2241.8 242.995 Q2239.9 243.968 2237.14 243.968 Q2233.66 243.968 2231.59 242.023 Q2229.55 240.058 2229.55 236.777 Q2229.55 232.949 2232.1 231.005 Q2234.67 229.06 2239.76 229.06 L2244.98 229.06 L2244.98 228.696 Q2244.98 226.123 2243.28 224.726 Q2241.6 223.308 2238.54 223.308 Q2236.6 223.308 2234.75 223.774 Q2232.91 224.24 2231.21 225.171 L2231.21 221.728 Q2233.26 220.938 2235.18 220.553 Q2237.1 220.148 2238.93 220.148 Q2243.85 220.148 2246.28 222.7 Q2248.71 225.252 2248.71 230.438 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><polyline clip-path=\"url(#clip650)\" style=\"stroke:#ff0000; stroke-linecap:butt; stroke-linejoin:round; stroke-width:3.5; stroke-opacity:1; fill:none\" points=\"\n",
" 2088.82,273.62 2152.69,273.62 \n",
" \"/>\n",
"<path clip-path=\"url(#clip650)\" d=\"M2187.72 260.829 L2187.72 265.144 Q2185.66 263.219 2183.31 262.267 Q2180.98 261.316 2178.35 261.316 Q2173.16 261.316 2170.41 264.495 Q2167.65 267.655 2167.65 273.651 Q2167.65 279.626 2170.41 282.806 Q2173.16 285.965 2178.35 285.965 Q2180.98 285.965 2183.31 285.013 Q2185.66 284.061 2187.72 282.137 L2187.72 286.411 Q2185.58 287.869 2183.17 288.598 Q2180.78 289.328 2178.1 289.328 Q2171.24 289.328 2167.29 285.135 Q2163.34 280.922 2163.34 273.651 Q2163.34 266.359 2167.29 262.166 Q2171.24 257.953 2178.1 257.953 Q2180.82 257.953 2183.21 258.682 Q2185.62 259.391 2187.72 260.829 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /></svg>\n"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data = \"\"\"\n",
"problem,language,time,size\n",
"n-body,C,2.13,1633\n",
"mandelbrot,C,1.3,1135\n",
"spectral norm,C,0.41,1197\n",
"fannkuch-redux,C,7.58,910\n",
"fasta,C,0.78,1463\n",
"k-nucleotide,C,3.96,1506\n",
"binary-trees,C,1.58,809\n",
"reverse-complement,C,0.41,1965\n",
"pidigits,C,0.56,1090\n",
"regex-redux,C,0.8,1397\n",
"n-body,Java,6.77,1489\n",
"mandelbrot,Java,4.1,796\n",
"spectral norm,Java,1.55,756\n",
"fannkuch-redux,Java,10.48,1282\n",
"fasta,Java,1.2,2543\n",
"k-nucleotide,Java,4.83,1812\n",
"binary-trees,Java,2.51,835\n",
"reverse-complement,Java,1.57,2183\n",
"pidigits,Java,0.79,764\n",
"regex-redux,Java,5.34,929\n",
"n-body,Python,541.34,1196\n",
"mandelbrot,Python,177.35,688\n",
"spectral norm,Python,112.97,407\n",
"fannkuch-redux,Python,341.45,950\n",
"fasta,Python,36.9,1947\n",
"k-nucleotide,Python,46.31,1967\n",
"binary-trees,Python,44.7,660\n",
"reverse-complement,Python,6.62,814\n",
"pidigits,Python,1.16,567\n",
"regex-redux,Python,1.34,1403\n",
"n-body,Julia,4.21,1111\n",
"mandelbrot,Julia,1.42,619\n",
"spectral norm,Julia,1.11,429\n",
"fannkuch-redux,Julia,7.83,1067\n",
"fasta,Julia,1.13,1082\n",
"k-nucleotide,Julia,4.94,951\n",
"binary-trees,Julia,7.28,634\n",
"reverse-complement,Julia,1.44,522\n",
"pidigits,Julia,0.97,506\n",
"regex-redux,Julia,1.74,759\n",
"\"\"\"\n",
"\n",
"using CSV\n",
"using DataFrames\n",
"using Plots\n",
"\n",
"df = CSV.read(IOBuffer(data), DataFrame)\n",
"\n",
"plot(map([:time, :size],\n",
" [\"execution time (relative to C)\",\n",
" \"code size (relative to C)\"]) do col, title\n",
" df_plot = unstack(df, :problem, :language, col)\n",
" df_plot[!, Not(:problem)] ./= df_plot.C\n",
" select!(df_plot, Not(:C))\n",
" scatter(df_plot.problem, Matrix(select(df_plot, Not(:problem)));\n",
" labels=permutedims(names(df_plot, Not(:problem))),\n",
" ylabel=title,\n",
" yaxis = col == :time ? :log : :none,\n",
" xrotation=20,\n",
" markershape=[:rect :diamond :circle],\n",
" markersize=[4 5 5],\n",
" markercolor=[:lightgray :lightblue :gold],\n",
" xtickfontsize=7, ytickfontsize=7,\n",
" legendfontsize=7, ylabelfontsize=7)\n",
" hline!([1.0]; color=:red, labels=\"C\")\n",
"end...)"
]
},
{
"cell_type": "markdown",
"id": "fddc5ffc",
"metadata": {},
"source": [
"## Key features of Julia from data scientist’s perspective"
]
},
{
"cell_type": "markdown",
"id": "979e1ae9",
"metadata": {},
"source": [
"### Julia is fast because it is a compiled language"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "eb06fc1d",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 0.000004 seconds\n"
]
},
{
"data": {
"text/plain": [
"500000000500000000"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"function sum_n(n)\n",
" s = 0\n",
" for i in 1:n\n",
" s += i\n",
" end\n",
" return s\n",
"end\n",
"@time sum_n(1_000_000_000)"
]
},
{
"cell_type": "markdown",
"id": "e804cf4a",
"metadata": {},
"source": [
"### Julia provides a full support for interactive workflows"
]
},
{
"cell_type": "markdown",
"id": "eb17d0d3",
"metadata": {},
"source": [
"### Julia programs are highly reusable and easy to compose together"
]
},
{
"cell_type": "markdown",
"id": "f870f256",
"metadata": {},
"source": [
"### Julia has an in-built package manager"
]
},
{
"cell_type": "markdown",
"id": "1dca4066",
"metadata": {},
"source": [
"### It is easy to integrate existing code with Julia"
]
},
{
"cell_type": "markdown",
"id": "b25b96cd",
"metadata": {},
"source": [
"## Tabular data"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "7f0fe481",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div class=\"data-frame\"><p>3 rows × 5 columns</p><table class=\"data-frame\"><thead><tr><th></th><th>id</th><th>name</th><th>age</th><th>friends</th><th>location</th></tr><tr><th></th><th title=\"Int64\">Int64</th><th title=\"String\">String</th><th title=\"Int64\">Int64</th><th title=\"Vector{Int64}\">Array…</th><th title=\"NamedTuple{(:city, :state), Tuple{String, String}}\">NamedTup…</th></tr></thead><tbody><tr><th>1</th><td>1</td><td>Alice</td><td>19</td><td>[2]</td><td>(city = &quot;Atlanta&quot;, state = &quot;GA&quot;)</td></tr><tr><th>2</th><td>2</td><td>Bob</td><td>24</td><td>[1, 3]</td><td>(city = &quot;Boston&quot;, state = &quot;MA&quot;)</td></tr><tr><th>3</th><td>3</td><td>Clyde</td><td>21</td><td>[2]</td><td>(city = &quot;Austin&quot;, state = &quot;TX&quot;)</td></tr></tbody></table></div>"
],
"text/latex": [
"\\begin{tabular}{r|ccccc}\n",
"\t& id & name & age & friends & location\\\\\n",
"\t\\hline\n",
"\t& Int64 & String & Int64 & Array… & NamedTup…\\\\\n",
"\t\\hline\n",
"\t1 & 1 & Alice & 19 & [2] & (city = \"Atlanta\", state = \"GA\") \\\\\n",
"\t2 & 2 & Bob & 24 & [1, 3] & (city = \"Boston\", state = \"MA\") \\\\\n",
"\t3 & 3 & Clyde & 21 & [2] & (city = \"Austin\", state = \"TX\") \\\\\n",
"\\end{tabular}\n"
],
"text/plain": [
"\u001b[1m3×5 DataFrame\u001b[0m\n",
"\u001b[1m Row \u001b[0m│\u001b[1m id \u001b[0m\u001b[1m name \u001b[0m\u001b[1m age \u001b[0m\u001b[1m friends \u001b[0m\u001b[1m location \u001b[0m\n",
"\u001b[1m \u001b[0m│\u001b[90m Int64 \u001b[0m\u001b[90m String \u001b[0m\u001b[90m Int64 \u001b[0m\u001b[90m Array… \u001b[0m\u001b[90m NamedTup… \u001b[0m\n",
"─────┼─────────────────────────────────────────────────────────────────\n",
" 1 │ 1 Alice 19 [2] (city = \"Atlanta\", state = \"GA\")\n",
" 2 │ 2 Bob 24 [1, 3] (city = \"Boston\", state = \"MA\")\n",
" 3 │ 3 Clyde 21 [2] (city = \"Austin\", state = \"TX\")"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"using DataFrames\n",
"\n",
"DataFrame(id=1:3,\n",
" name=[\"Alice\", \"Bob\", \"Clyde\"],\n",
" age=[19, 24, 21], \n",
" friends=[[2], [1, 3], [2]],\n",
" location=[(city=\"Atlanta\", state=\"GA\"),\n",
" (city=\"Boston\", state=\"MA\"),\n",
" (city=\"Austin\", state=\"TX\")])"
]
},
{
"cell_type": "markdown",
"id": "3b9d5fed",
"metadata": {},
"source": [
"## Julia’s drawbacks\n",
"\n",
"### Compilation takes time which is noticable in short sessions"
]
},
{
"cell_type": "markdown",
"id": "5158177c",
"metadata": {},
"source": [
"# First steps with Julia"
]
},
{
"cell_type": "markdown",
"id": "64319fda",
"metadata": {},
"source": [
"## Getting help in and on Julia using `?`"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "fcc88738",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"search: \u001b[0m\u001b[1m&\u001b[22m\u001b[0m\u001b[1m&\u001b[22m\n",
"\n"
]
},
{
"data": {
"text/latex": [
"\\begin{verbatim}\n",
"x && y\n",
"\\end{verbatim}\n",
"Short-circuiting boolean AND.\n",
"\n",
"See also \\href{@ref}{\\texttt{\\&}}, the ternary operator \\texttt{? :}, and the manual section on \\href{@ref man-conditional-evaluation}{control flow}.\n",
"\n",
"\\section{Examples}\n",
"\\begin{verbatim}\n",
"julia> x = 3;\n",
"\n",
"julia> x > 1 && x < 10 && x isa Int\n",
"true\n",
"\n",
"julia> x < 0 && error(\"expected positive x\")\n",
"false\n",
"\\end{verbatim}\n"
],
"text/markdown": [
"```\n",
"x && y\n",
"```\n",
"\n",
"Short-circuiting boolean AND.\n",
"\n",
"See also [`&`](@ref), the ternary operator `? :`, and the manual section on [control flow](@ref man-conditional-evaluation).\n",
"\n",
"# Examples\n",
"\n",
"```jldoctest\n",
"julia> x = 3;\n",
"\n",
"julia> x > 1 && x < 10 && x isa Int\n",
"true\n",
"\n",
"julia> x < 0 && error(\"expected positive x\")\n",
"false\n",
"```\n"
],
"text/plain": [
"\u001b[36m x && y\u001b[39m\n",
"\n",
" Short-circuiting boolean AND.\n",
"\n",
" See also \u001b[36m&\u001b[39m, the ternary operator \u001b[36m? :\u001b[39m, and the manual section on control\n",
" flow.\n",
"\n",
"\u001b[1m Examples\u001b[22m\n",
"\u001b[1m ≡≡≡≡≡≡≡≡≡≡\u001b[22m\n",
"\n",
"\u001b[36m julia> x = 3;\u001b[39m\n",
"\u001b[36m \u001b[39m\n",
"\u001b[36m julia> x > 1 && x < 10 && x isa Int\u001b[39m\n",
"\u001b[36m true\u001b[39m\n",
"\u001b[36m \u001b[39m\n",
"\u001b[36m julia> x < 0 && error(\"expected positive x\")\u001b[39m\n",
"\u001b[36m false\u001b[39m"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"? &&"
]
},
{
"cell_type": "markdown",
"id": "9e3ba862",
"metadata": {},
"source": [
"### Julia documentation: https://docs.julialang.org/en/v1/\n",
"### Julia Slack: https://julialang.org/slack/\n",
"### Julia Discourse: https://discourse.julialang.org/"
]
},
{
"cell_type": "markdown",
"id": "99f11d44",
"metadata": {},
"source": [
"## Managing packages in Julia"
]
},
{
"cell_type": "markdown",
"id": "1ea7572a",
"metadata": {},
"source": [
"### Project.toml and Manifest.toml define project environment"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "8519aeca",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[deps]\n",
"Arrow = \"69666777-d1a9-59fb-9406-91d4454c9d45\"\n",
"BenchmarkTools = \"6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf\"\n",
"CSV = \"336ed68f-0bac-5ca0-87d4-7b16caf5d00b\"\n",
"CategoricalArrays = \"324d7699-5711-5eae-9e2f-1d82baa6b597\"\n",
"CodecBzip2 = \"523fee87-0ab8-5b00-afb7-3ecf72e48cfd\"\n",
"Conda = \"8f4d0f93-b110-5947-807f-2305c1781a2d\"\n",
"DataFrames = \"a93c6f00-e57d-5684-b7b6-d8193f3e46c0\"\n",
"DataFramesMeta = \"1313f7d8-7da2-5740-9ea0-a2ca25f37964\"\n",
"Distributions = \"31c24e10-a181-5473-b8eb-7969acd0382f\"\n",
"FreqTables = \"da1fdf0e-e0ff-5433-a45f-9bb5ff651cb1\"\n",
"GLM = \"38e38edf-8417-5370-95a0-9cbb8c7f171a\"\n",
"Genie = \"c43c736e-a2d1-11e8-161f-af95117fbd1e\"\n",
"Graphs = \"86223c79-3864-5bf0-83f7-82e725a168b6\"\n",
"HTTP = \"cd3eb016-35fb-5094-929b-558a96fad6f3\"\n",
"Impute = \"f7bf1975-0170-51b9-8c5f-a992d46b9575\"\n",
"InlineStrings = \"842dd82b-1e85-43dc-bf29-5d0ee9dffc48\"\n",
"JSON3 = \"0f8b85d8-7281-11e9-16c2-39a750bddbf1\"\n",
"Loess = \"4345ca2d-374a-55d4-8d30-97f9976e7612\"\n",
"Missings = \"e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28\"\n",
"Plots = \"91a5bcdd-55d7-5caf-9e0b-520d859cae80\"\n",
"PooledArrays = \"2dfb63ee-cc39-5dd5-95bd-886bf059d720\"\n",
"PyCall = \"438e738f-606a-5dbb-bf0a-cddfbfd45ab0\"\n",
"RCall = \"6f49c342-dc21-5d91-9882-a32aef131414\"\n",
"ROCAnalysis = \"f535d66d-59bb-5153-8d2b-ef0a426c6aff\"\n",
"SQLite = \"0aa819cd-b072-5ff4-a722-6bc24af294d9\"\n",
"StatsBase = \"2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91\"\n",
"ThreadsX = \"ac1d9e8a-700a-412c-b207-f0111f4b6c0d\"\n",
"ZipFile = \"a5390f91-8eb1-5f08-bee0-b1d1ffed6cea\"\n"
]
}
],
"source": [
"foreach(println, readlines(\"../Project.toml\"))"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "48b4da05",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"# This file is machine-generated - editing it directly is not advised\n",
"\n",
"julia_version = \"1.7.3\"\n",
"manifest_format = \"2.0\"\n",
"\n",
"[[deps.AbstractFFTs]]\n",
"deps = [\"ChainRulesCore\", \"LinearAlgebra\"]\n",
"git-tree-sha1 = \"69f7020bd72f069c219b5e8c236c1fa90d2cb409\"\n",
"uuid = \"621f4979-c628-5d54-868e-fcf4e3e8185c\"\n",
"version = \"1.2.1\"\n",
"\n",
"[[deps.Adapt]]\n",
"deps = [\"LinearAlgebra\"]\n",
"git-tree-sha1 = \"195c5505521008abea5aee4f96930717958eac6f\"\n",
"uuid = \"79e6a3ab-5dfb-504d-930d-738a2a938a0e\"\n",
"version = \"3.4.0\"\n",
"\n",
"[[deps.ArgCheck]]\n",
"git-tree-sha1 = \"a3a402a35a2f7e0b87828ccabbd5ebfbebe356b4\"\n",
"uuid = \"dce04be8-c92d-5529-be00-80e4d2c0e197\"\n",
"version = \"2.3.0\"\n"
]
}
],
"source": [
"foreach(println, readlines(\"../Manifest.toml\")[1:21])"
]
},
{
"cell_type": "markdown",
"id": "93628a3b",
"metadata": {},
"source": [
"### In Jupyter Notebook project environment is automatically activated"
]
},
{
"cell_type": "markdown",
"id": "db6cd87f",
"metadata": {},
"source": [
"### Managing packages"
]
},
{
"cell_type": "markdown",
"id": "29a58ed5",
"metadata": {},
"source": [
"Please refer to the \"Julia for Data Analysis\" book, Appendix A, for details how to manage packages."
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "fbd15b5e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[32m\u001b[1m Status\u001b[22m\u001b[39m `C:\\Users\\bogum\\Desktop\\Manning\\book_v2\\codes\\JuliaForDataAnalysis\\Project.toml`\n",
" \u001b[90m [69666777] \u001b[39mArrow v2.3.0\n",
" \u001b[90m [6e4b80f9] \u001b[39mBenchmarkTools v1.3.1\n",
" \u001b[90m [336ed68f] \u001b[39mCSV v0.10.4\n",
" \u001b[90m [324d7699] \u001b[39mCategoricalArrays v0.10.6\n",
" \u001b[90m [523fee87] \u001b[39mCodecBzip2 v0.7.2\n",
" \u001b[90m [8f4d0f93] \u001b[39mConda v1.7.0\n",
" \u001b[90m [a93c6f00] \u001b[39mDataFrames v1.3.4\n",
" \u001b[90m [1313f7d8] \u001b[39mDataFramesMeta v0.12.0\n",
" \u001b[90m [31c24e10] \u001b[39mDistributions v0.25.70\n",
" \u001b[90m [da1fdf0e] \u001b[39mFreqTables v0.4.5\n",
" \u001b[90m [38e38edf] \u001b[39mGLM v1.8.0\n",
" \u001b[90m [c43c736e] \u001b[39mGenie v5.3.1\n",
" \u001b[90m [86223c79] \u001b[39mGraphs v1.7.2\n",
" \u001b[90m [cd3eb016] \u001b[39mHTTP v1.3.3\n",
" \u001b[90m [f7bf1975] \u001b[39mImpute v0.6.8\n",
" \u001b[90m [842dd82b] \u001b[39mInlineStrings v1.1.4\n",
" \u001b[90m [0f8b85d8] \u001b[39mJSON3 v1.9.5\n",
" \u001b[90m [4345ca2d] \u001b[39mLoess v0.5.4\n",
" \u001b[90m [e1d29d7a] \u001b[39mMissings v1.0.2\n",
" \u001b[90m [91a5bcdd] \u001b[39mPlots v1.31.7\n",
" \u001b[90m [2dfb63ee] \u001b[39mPooledArrays v1.4.2\n",
" \u001b[90m [438e738f] \u001b[39mPyCall v1.94.1\n",
" \u001b[90m [6f49c342] \u001b[39mRCall v0.13.13\n",
" \u001b[90m [f535d66d] \u001b[39mROCAnalysis v0.3.5\n",
" \u001b[90m [0aa819cd] \u001b[39mSQLite v1.4.2\n",
" \u001b[90m [2913bbd2] \u001b[39mStatsBase v0.33.21\n",
" \u001b[90m [ac1d9e8a] \u001b[39mThreadsX v0.1.10\n",
" \u001b[90m [a5390f91] \u001b[39mZipFile v0.10.0\n"
]
}
],
"source": [
"] status"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Julia 1.7.3",
"language": "julia",
"name": "julia-1.7"
},
"language_info": {
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
"version": "1.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB