{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "4159be0e",
   "metadata": {
    "hideCode": false,
    "hidePrompt": false,
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# 2023-04-03 Nonlinear Regression\n",
    "\n",
    "## Last time\n",
    "\n",
    "* Discuss projects\n",
    "* Gradient-based optimization for linear models\n",
    "* Effect of conditioning on convergence rate\n",
    "\n",
    "## Today\n",
    "* Nonlinear models\n",
    "* Computing derivatives\n",
    "  * numeric\n",
    "  * analytic by hand\n",
    "  * algorithmic (automatic) differentiation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "eb781a7a",
   "metadata": {
    "slideshow": {
     "slide_type": "skip"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "vcond (generic function with 1 method)"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "using LinearAlgebra\n",
    "using Plots\n",
    "default(linewidth=4, legendfontsize=12)\n",
    "\n",
    "function vander(x, k=nothing)\n",
    "    if isnothing(k)\n",
    "        k = length(x)\n",
    "    end\n",
    "    m = length(x)\n",
    "    V = ones(m, k)\n",
    "    for j in 2:k\n",
    "        V[:, j] = V[:, j-1] .* x\n",
    "    end\n",
    "    V\n",
    "end\n",
    "\n",
    "function vander_chebyshev(x, n=nothing)\n",
    "    if isnothing(n)\n",
    "        n = length(x) # Square by default\n",
    "    end\n",
    "    m = length(x)\n",
    "    T = ones(m, n)\n",
    "    if n > 1\n",
    "        T[:, 2] = x\n",
    "    end\n",
    "    for k in 3:n\n",
    "        #T[:, k] = x .* T[:, k-1]\n",
    "        T[:, k] = 2 * x .* T[:,k-1] - T[:, k-2]\n",
    "    end\n",
    "    T\n",
    "end\n",
    "\n",
    "function chebyshev_regress_eval(x, xx, n)\n",
    "    V = vander_chebyshev(x, n)\n",
    "    vander_chebyshev(xx, n) / V\n",
    "end\n",
    "\n",
    "runge(x) = 1 / (1 + 10*x^2)\n",
    "runge_noisy(x, sigma) = runge.(x) + randn(size(x)) * sigma\n",
    "\n",
    "CosRange(a, b, n) = (a + b)/2 .+ (b - a)/2 * cos.(LinRange(-pi, 0, n))\n",
    "\n",
    "vcond(mat, points, nmax) = [cond(mat(points(-1, 1, n))) for n in 2:nmax]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ab251374",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Gradient descent\n",
    "\n",
    "Instead of solving the least squares problem using linear algebra (QR factorization), we could solve it using gradient descent.  That is, on each iteration, we'll take a step in the direction of the negative gradient."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "04841eea",
   "metadata": {
    "cell_style": "center"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "grad_descent (generic function with 1 method)"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "function grad_descent(loss, grad, c0; gamma=1e-3, tol=1e-5)\n",
    "    \"\"\"Minimize loss(c) via gradient descent with initial guess c0\n",
    "    using learning rate gamma.  Declares convergence when gradient\n",
    "    is less than tol or after 500 steps.\n",
    "    \"\"\"\n",
    "    c = copy(c0)\n",
    "    chist = [copy(c)]\n",
    "    lhist = [loss(c)]\n",
    "    for it in 1:500\n",
    "        g = grad(c)\n",
    "        c -= gamma * g\n",
    "        push!(chist, copy(c))\n",
    "        push!(lhist, loss(c))\n",
    "        if norm(g) < tol\n",
    "            break\n",
    "        end\n",
    "    end\n",
    "    (c, hcat(chist...), lhist)\n",
    "end"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ca23b5fe",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Quadratic model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "id": "ab3a31f0",
   "metadata": {
    "cell_style": "split",
    "hideCode": false,
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cond(A) = 9.46578492882319\n"
     ]
    },
    {
     "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=\"clip600\">\n",
       "    <rect x=\"0\" y=\"0\" width=\"2400\" height=\"1600\"/>\n",
       "  </clipPath>\n",
       "</defs>\n",
       "<path clip-path=\"url(#clip600)\" 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=\"clip601\">\n",
       "    <rect x=\"480\" y=\"0\" width=\"1681\" height=\"1600\"/>\n",
       "  </clipPath>\n",
       "</defs>\n",
       "<path clip-path=\"url(#clip600)\" d=\"\n",
       "M213.607 1486.45 L2352.76 1486.45 L2352.76 47.2441 L213.607 47.2441  Z\n",
       "  \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
       "<defs>\n",
       "  <clipPath id=\"clip602\">\n",
       "    <rect x=\"213\" y=\"47\" width=\"2140\" height=\"1440\"/>\n",
       "  </clipPath>\n",
       "</defs>\n",
       "<polyline clip-path=\"url(#clip602)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  213.607,1486.45 213.607,47.2441 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip602)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  748.395,1486.45 748.395,47.2441 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip602)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  1283.18,1486.45 1283.18,47.2441 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip602)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  1817.97,1486.45 1817.97,47.2441 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip602)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  2352.76,1486.45 2352.76,47.2441 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip600)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  213.607,1486.45 2352.76,1486.45 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip600)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  213.607,1486.45 213.607,1467.55 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip600)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  748.395,1486.45 748.395,1467.55 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip600)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1283.18,1486.45 1283.18,1467.55 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip600)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1817.97,1486.45 1817.97,1467.55 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip600)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  2352.76,1486.45 2352.76,1467.55 \n",
       "  \"/>\n",
       "<path clip-path=\"url(#clip600)\" d=\"M213.607 1517.37 Q209.996 1517.37 208.168 1520.93 Q206.362 1524.47 206.362 1531.6 Q206.362 1538.71 208.168 1542.27 Q209.996 1545.82 213.607 1545.82 Q217.242 1545.82 219.047 1542.27 Q220.876 1538.71 220.876 1531.6 Q220.876 1524.47 219.047 1520.93 Q217.242 1517.37 213.607 1517.37 M213.607 1513.66 Q219.418 1513.66 222.473 1518.27 Q225.552 1522.85 225.552 1531.6 Q225.552 1540.33 222.473 1544.94 Q219.418 1549.52 213.607 1549.52 Q207.797 1549.52 204.719 1544.94 Q201.663 1540.33 201.663 1531.6 Q201.663 1522.85 204.719 1518.27 Q207.797 1513.66 213.607 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M727.168 1544.91 L743.487 1544.91 L743.487 1548.85 L721.543 1548.85 L721.543 1544.91 Q724.205 1542.16 728.788 1537.53 Q733.395 1532.88 734.575 1531.53 Q736.821 1529.01 737.7 1527.27 Q738.603 1525.51 738.603 1523.82 Q738.603 1521.07 736.659 1519.33 Q734.737 1517.6 731.635 1517.6 Q729.436 1517.6 726.983 1518.36 Q724.552 1519.13 721.774 1520.68 L721.774 1515.95 Q724.598 1514.82 727.052 1514.24 Q729.506 1513.66 731.543 1513.66 Q736.913 1513.66 740.108 1516.35 Q743.302 1519.03 743.302 1523.52 Q743.302 1525.65 742.492 1527.57 Q741.705 1529.47 739.598 1532.07 Q739.02 1532.74 735.918 1535.95 Q732.816 1539.15 727.168 1544.91 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M763.302 1517.37 Q759.691 1517.37 757.862 1520.93 Q756.057 1524.47 756.057 1531.6 Q756.057 1538.71 757.862 1542.27 Q759.691 1545.82 763.302 1545.82 Q766.936 1545.82 768.742 1542.27 Q770.57 1538.71 770.57 1531.6 Q770.57 1524.47 768.742 1520.93 Q766.936 1517.37 763.302 1517.37 M763.302 1513.66 Q769.112 1513.66 772.168 1518.27 Q775.246 1522.85 775.246 1531.6 Q775.246 1540.33 772.168 1544.94 Q769.112 1549.52 763.302 1549.52 Q757.492 1549.52 754.413 1544.94 Q751.358 1540.33 751.358 1531.6 Q751.358 1522.85 754.413 1518.27 Q757.492 1513.66 763.302 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M1271.35 1518.36 L1259.55 1536.81 L1271.35 1536.81 L1271.35 1518.36 M1270.13 1514.29 L1276.01 1514.29 L1276.01 1536.81 L1280.94 1536.81 L1280.94 1540.7 L1276.01 1540.7 L1276.01 1548.85 L1271.35 1548.85 L1271.35 1540.7 L1255.75 1540.7 L1255.75 1536.19 L1270.13 1514.29 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M1298.67 1517.37 Q1295.06 1517.37 1293.23 1520.93 Q1291.42 1524.47 1291.42 1531.6 Q1291.42 1538.71 1293.23 1542.27 Q1295.06 1545.82 1298.67 1545.82 Q1302.3 1545.82 1304.11 1542.27 Q1305.94 1538.71 1305.94 1531.6 Q1305.94 1524.47 1304.11 1520.93 Q1302.3 1517.37 1298.67 1517.37 M1298.67 1513.66 Q1304.48 1513.66 1307.53 1518.27 Q1310.61 1522.85 1310.61 1531.6 Q1310.61 1540.33 1307.53 1544.94 Q1304.48 1549.52 1298.67 1549.52 Q1292.86 1549.52 1289.78 1544.94 Q1286.72 1540.33 1286.72 1531.6 Q1286.72 1522.85 1289.78 1518.27 Q1292.86 1513.66 1298.67 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M1803.37 1529.7 Q1800.23 1529.7 1798.37 1531.86 Q1796.55 1534.01 1796.55 1537.76 Q1796.55 1541.49 1798.37 1543.66 Q1800.23 1545.82 1803.37 1545.82 Q1806.52 1545.82 1808.35 1543.66 Q1810.2 1541.49 1810.2 1537.76 Q1810.2 1534.01 1808.35 1531.86 Q1806.52 1529.7 1803.37 1529.7 M1812.66 1515.05 L1812.66 1519.31 Q1810.9 1518.48 1809.09 1518.04 Q1807.31 1517.6 1805.55 1517.6 Q1800.92 1517.6 1798.47 1520.72 Q1796.04 1523.85 1795.69 1530.17 Q1797.05 1528.15 1799.11 1527.09 Q1801.17 1526 1803.65 1526 Q1808.86 1526 1811.87 1529.17 Q1814.9 1532.32 1814.9 1537.76 Q1814.9 1543.08 1811.75 1546.3 Q1808.61 1549.52 1803.37 1549.52 Q1797.38 1549.52 1794.21 1544.94 Q1791.04 1540.33 1791.04 1531.6 Q1791.04 1523.41 1794.92 1518.55 Q1798.81 1513.66 1805.36 1513.66 Q1807.12 1513.66 1808.91 1514.01 Q1810.71 1514.36 1812.66 1515.05 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M1832.96 1517.37 Q1829.35 1517.37 1827.52 1520.93 Q1825.71 1524.47 1825.71 1531.6 Q1825.71 1538.71 1827.52 1542.27 Q1829.35 1545.82 1832.96 1545.82 Q1836.59 1545.82 1838.4 1542.27 Q1840.23 1538.71 1840.23 1531.6 Q1840.23 1524.47 1838.4 1520.93 Q1836.59 1517.37 1832.96 1517.37 M1832.96 1513.66 Q1838.77 1513.66 1841.82 1518.27 Q1844.9 1522.85 1844.9 1531.6 Q1844.9 1540.33 1841.82 1544.94 Q1838.77 1549.52 1832.96 1549.52 Q1827.15 1549.52 1824.07 1544.94 Q1821.01 1540.33 1821.01 1531.6 Q1821.01 1522.85 1824.07 1518.27 Q1827.15 1513.66 1832.96 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M2337.63 1532.44 Q2334.3 1532.44 2332.37 1534.22 Q2330.48 1536 2330.48 1539.13 Q2330.48 1542.25 2332.37 1544.03 Q2334.3 1545.82 2337.63 1545.82 Q2340.96 1545.82 2342.88 1544.03 Q2344.8 1542.23 2344.8 1539.13 Q2344.8 1536 2342.88 1534.22 Q2340.99 1532.44 2337.63 1532.44 M2332.95 1530.45 Q2329.94 1529.7 2328.25 1527.64 Q2326.59 1525.58 2326.59 1522.62 Q2326.59 1518.48 2329.53 1516.07 Q2332.49 1513.66 2337.63 1513.66 Q2342.79 1513.66 2345.73 1516.07 Q2348.67 1518.48 2348.67 1522.62 Q2348.67 1525.58 2346.98 1527.64 Q2345.31 1529.7 2342.33 1530.45 Q2345.71 1531.23 2347.58 1533.52 Q2349.48 1535.82 2349.48 1539.13 Q2349.48 1544.15 2346.4 1546.83 Q2343.35 1549.52 2337.63 1549.52 Q2331.91 1549.52 2328.83 1546.83 Q2325.78 1544.15 2325.78 1539.13 Q2325.78 1535.82 2327.68 1533.52 Q2329.57 1531.23 2332.95 1530.45 M2331.24 1523.06 Q2331.24 1525.75 2332.91 1527.25 Q2334.6 1528.76 2337.63 1528.76 Q2340.64 1528.76 2342.33 1527.25 Q2344.04 1525.75 2344.04 1523.06 Q2344.04 1520.38 2342.33 1518.87 Q2340.64 1517.37 2337.63 1517.37 Q2334.6 1517.37 2332.91 1518.87 Q2331.24 1520.38 2331.24 1523.06 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M2367.79 1517.37 Q2364.18 1517.37 2362.35 1520.93 Q2360.55 1524.47 2360.55 1531.6 Q2360.55 1538.71 2362.35 1542.27 Q2364.18 1545.82 2367.79 1545.82 Q2371.42 1545.82 2373.23 1542.27 Q2375.06 1538.71 2375.06 1531.6 Q2375.06 1524.47 2373.23 1520.93 Q2371.42 1517.37 2367.79 1517.37 M2367.79 1513.66 Q2373.6 1513.66 2376.66 1518.27 Q2379.73 1522.85 2379.73 1531.6 Q2379.73 1540.33 2376.66 1544.94 Q2373.6 1549.52 2367.79 1549.52 Q2361.98 1549.52 2358.9 1544.94 Q2355.85 1540.33 2355.85 1531.6 Q2355.85 1522.85 2358.9 1518.27 Q2361.98 1513.66 2367.79 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><polyline clip-path=\"url(#clip602)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  213.607,1301.6 2352.76,1301.6 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip602)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  213.607,731.762 2352.76,731.762 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip602)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  213.607,161.924 2352.76,161.924 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip600)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  213.607,1486.45 213.607,47.2441 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip600)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  213.607,1301.6 232.505,1301.6 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip600)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  213.607,731.762 232.505,731.762 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip600)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  213.607,161.924 232.505,161.924 \n",
       "  \"/>\n",
       "<path clip-path=\"url(#clip600)\" d=\"M51.6634 1321.39 L59.3023 1321.39 L59.3023 1295.03 L50.9921 1296.69 L50.9921 1292.43 L59.256 1290.77 L63.9319 1290.77 L63.9319 1321.39 L71.5707 1321.39 L71.5707 1325.33 L51.6634 1325.33 L51.6634 1321.39 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M91.0151 1293.85 Q87.404 1293.85 85.5753 1297.41 Q83.7697 1300.95 83.7697 1308.08 Q83.7697 1315.19 85.5753 1318.75 Q87.404 1322.3 91.0151 1322.3 Q94.6493 1322.3 96.4548 1318.75 Q98.2835 1315.19 98.2835 1308.08 Q98.2835 1300.95 96.4548 1297.41 Q94.6493 1293.85 91.0151 1293.85 M91.0151 1290.14 Q96.8252 1290.14 99.8808 1294.75 Q102.959 1299.33 102.959 1308.08 Q102.959 1316.81 99.8808 1321.42 Q96.8252 1326 91.0151 1326 Q85.2049 1326 82.1262 1321.42 Q79.0707 1316.81 79.0707 1308.08 Q79.0707 1299.33 82.1262 1294.75 Q85.2049 1290.14 91.0151 1290.14 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M102.959 1284.24 L127.071 1284.24 L127.071 1287.44 L102.959 1287.44 L102.959 1284.24 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M135.929 1294.72 L142.136 1294.72 L142.136 1273.3 L135.384 1274.65 L135.384 1271.19 L142.098 1269.84 L145.898 1269.84 L145.898 1294.72 L152.104 1294.72 L152.104 1297.92 L135.929 1297.92 L135.929 1294.72 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M167.903 1272.34 Q164.969 1272.34 163.483 1275.24 Q162.016 1278.11 162.016 1283.91 Q162.016 1289.68 163.483 1292.58 Q164.969 1295.45 167.903 1295.45 Q170.855 1295.45 172.322 1292.58 Q173.808 1289.68 173.808 1283.91 Q173.808 1278.11 172.322 1275.24 Q170.855 1272.34 167.903 1272.34 M167.903 1269.33 Q172.623 1269.33 175.106 1273.07 Q177.607 1276.8 177.607 1283.91 Q177.607 1291 175.106 1294.74 Q172.623 1298.46 167.903 1298.46 Q163.182 1298.46 160.68 1294.74 Q158.198 1291 158.198 1283.91 Q158.198 1276.8 160.68 1273.07 Q163.182 1269.33 167.903 1269.33 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M76.9787 751.555 L84.6175 751.555 L84.6175 725.189 L76.3074 726.856 L76.3074 722.596 L84.5712 720.93 L89.2471 720.93 L89.2471 751.555 L96.886 751.555 L96.886 755.49 L76.9787 755.49 L76.9787 751.555 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M116.33 724.008 Q112.719 724.008 110.891 727.573 Q109.085 731.115 109.085 738.244 Q109.085 745.351 110.891 748.916 Q112.719 752.457 116.33 752.457 Q119.965 752.457 121.77 748.916 Q123.599 745.351 123.599 738.244 Q123.599 731.115 121.77 727.573 Q119.965 724.008 116.33 724.008 M116.33 720.305 Q122.14 720.305 125.196 724.911 Q128.275 729.494 128.275 738.244 Q128.275 746.971 125.196 751.578 Q122.14 756.161 116.33 756.161 Q110.52 756.161 107.441 751.578 Q104.386 746.971 104.386 738.244 Q104.386 729.494 107.441 724.911 Q110.52 720.305 116.33 720.305 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M128.275 714.406 L152.386 714.406 L152.386 717.603 L128.275 717.603 L128.275 714.406 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M160.624 699.999 L175.539 699.999 L175.539 703.197 L164.103 703.197 L164.103 710.08 Q164.931 709.798 165.759 709.666 Q166.586 709.516 167.414 709.516 Q172.116 709.516 174.862 712.093 Q177.607 714.669 177.607 719.07 Q177.607 723.603 174.786 726.123 Q171.965 728.625 166.831 728.625 Q165.063 728.625 163.22 728.324 Q161.395 728.023 159.439 727.421 L159.439 723.603 Q161.132 724.525 162.937 724.976 Q164.743 725.427 166.755 725.427 Q170.009 725.427 171.909 723.716 Q173.808 722.004 173.808 719.07 Q173.808 716.136 171.909 714.425 Q170.009 712.713 166.755 712.713 Q165.232 712.713 163.709 713.052 Q162.204 713.39 160.624 714.105 L160.624 699.999 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M106.902 181.716 L114.541 181.716 L114.541 155.351 L106.231 157.017 L106.231 152.758 L114.494 151.092 L119.17 151.092 L119.17 181.716 L126.809 181.716 L126.809 185.652 L106.902 185.652 L106.902 181.716 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M146.253 154.17 Q142.642 154.17 140.814 157.735 Q139.008 161.277 139.008 168.406 Q139.008 175.513 140.814 179.077 Q142.642 182.619 146.253 182.619 Q149.888 182.619 151.693 179.077 Q153.522 175.513 153.522 168.406 Q153.522 161.277 151.693 157.735 Q149.888 154.17 146.253 154.17 M146.253 150.467 Q152.064 150.467 155.119 155.073 Q158.198 159.656 158.198 168.406 Q158.198 177.133 155.119 181.739 Q152.064 186.323 146.253 186.323 Q140.443 186.323 137.365 181.739 Q134.309 177.133 134.309 168.406 Q134.309 159.656 137.365 155.073 Q140.443 150.467 146.253 150.467 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M167.903 132.663 Q164.969 132.663 163.483 135.559 Q162.016 138.437 162.016 144.229 Q162.016 150.003 163.483 152.9 Q164.969 155.777 167.903 155.777 Q170.855 155.777 172.322 152.9 Q173.808 150.003 173.808 144.229 Q173.808 138.437 172.322 135.559 Q170.855 132.663 167.903 132.663 M167.903 129.653 Q172.623 129.653 175.106 133.396 Q177.607 137.12 177.607 144.229 Q177.607 151.32 175.106 155.063 Q172.623 158.787 167.903 158.787 Q163.182 158.787 160.68 155.063 Q158.198 151.32 158.198 144.229 Q158.198 137.12 160.68 133.396 Q163.182 129.653 167.903 129.653 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><polyline clip-path=\"url(#clip602)\" style=\"stroke:#009af9; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  240.347,87.9763 267.086,111.065 293.826,134.148 320.565,157.223 347.304,180.29 374.044,203.35 400.783,226.401 427.522,249.444 454.262,272.478 481.001,295.503 \n",
       "  507.74,318.517 534.48,341.522 561.219,364.516 587.958,387.5 614.698,410.471 641.437,433.431 668.177,456.379 694.916,479.313 721.655,502.235 748.395,525.142 \n",
       "  775.134,548.035 801.873,570.913 828.613,593.776 855.352,616.623 882.091,639.453 908.831,662.266 935.57,685.062 962.309,707.839 989.049,730.597 1015.79,753.336 \n",
       "  1042.53,776.055 1069.27,798.753 1096.01,821.43 1122.75,844.085 1149.48,866.718 1176.22,889.328 1202.96,911.914 1229.7,934.476 1256.44,957.013 1283.18,979.525 \n",
       "  1309.92,1002.01 1336.66,1024.47 1363.4,1046.91 1390.14,1069.31 1416.88,1091.69 1443.62,1114.04 1470.36,1136.36 1497.1,1158.65 1523.84,1180.92 1550.58,1203.15 \n",
       "  1577.31,1225.36 1604.05,1247.53 1630.79,1269.67 1657.53,1291.79 1684.27,1313.87 1711.01,1335.92 1737.75,1357.94 1764.49,1379.93 1791.23,1401.89 1817.97,1423.82 \n",
       "  1844.71,1445.72 \n",
       "  \"/>\n",
       "<path clip-path=\"url(#clip600)\" d=\"\n",
       "M1965.12 250.738 L2281.45 250.738 L2281.45 95.2176 L1965.12 95.2176  Z\n",
       "  \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
       "<polyline clip-path=\"url(#clip600)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1965.12,250.738 2281.45,250.738 2281.45,95.2176 1965.12,95.2176 1965.12,250.738 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip600)\" style=\"stroke:#009af9; stroke-linecap:round; stroke-linejoin:round; stroke-width:6; stroke-opacity:1; fill:none\" points=\"\n",
       "  1988.89,172.978 2131.5,172.978 \n",
       "  \"/>\n",
       "<path clip-path=\"url(#clip600)\" d=\"M2176.03 202.509 Q2173.32 209.453 2170.75 211.571 Q2168.19 213.689 2163.88 213.689 L2158.78 213.689 L2158.78 208.342 L2162.53 208.342 Q2165.16 208.342 2166.62 207.092 Q2168.08 205.842 2169.85 201.189 L2171 198.273 L2155.27 160.009 L2162.04 160.009 L2174.19 190.425 L2186.35 160.009 L2193.12 160.009 L2176.03 202.509 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M2204.05 192.995 L2215.51 192.995 L2215.51 153.446 L2203.05 155.946 L2203.05 149.558 L2215.44 147.058 L2222.46 147.058 L2222.46 192.995 L2233.91 192.995 L2233.91 198.898 L2204.05 198.898 L2204.05 192.995 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /></svg>\n"
      ]
     },
     "execution_count": 112,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A = [1 1; 1 8]\n",
    "@show cond(A)\n",
    "loss(c) = .5 * c' * A * c\n",
    "grad(c) = A * c\n",
    "\n",
    "c, chist, lhist = grad_descent(loss, grad, [.9, .9],\n",
    "    gamma=.22)\n",
    "plot(lhist, yscale=:log10, xlims=(0, 80))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "id": "7909e35d",
   "metadata": {
    "cell_style": "split"
   },
   "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=\"clip640\">\n",
       "    <rect x=\"0\" y=\"0\" width=\"2400\" height=\"1600\"/>\n",
       "  </clipPath>\n",
       "</defs>\n",
       "<path clip-path=\"url(#clip640)\" 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=\"clip641\">\n",
       "    <rect x=\"480\" y=\"0\" width=\"1681\" height=\"1600\"/>\n",
       "  </clipPath>\n",
       "</defs>\n",
       "<path clip-path=\"url(#clip640)\" d=\"\n",
       "M193.936 1486.45 L2112.76 1486.45 L2112.76 47.2441 L193.936 47.2441  Z\n",
       "  \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
       "<defs>\n",
       "  <clipPath id=\"clip642\">\n",
       "    <rect x=\"193\" y=\"47\" width=\"1920\" height=\"1440\"/>\n",
       "  </clipPath>\n",
       "</defs>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  248.242,1486.45 248.242,47.2441 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  700.794,1486.45 700.794,47.2441 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  1153.35,1486.45 1153.35,47.2441 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  1605.9,1486.45 1605.9,47.2441 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  2058.45,1486.45 2058.45,47.2441 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip640)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  193.936,1486.45 2112.76,1486.45 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip640)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  248.242,1486.45 248.242,1467.55 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip640)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  700.794,1486.45 700.794,1467.55 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip640)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1153.35,1486.45 1153.35,1467.55 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip640)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1605.9,1486.45 1605.9,1467.55 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip640)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  2058.45,1486.45 2058.45,1467.55 \n",
       "  \"/>\n",
       "<path clip-path=\"url(#clip640)\" d=\"M194.77 1532.02 L224.446 1532.02 L224.446 1535.95 L194.77 1535.95 L194.77 1532.02 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M235.349 1544.91 L242.988 1544.91 L242.988 1518.55 L234.677 1520.21 L234.677 1515.95 L242.941 1514.29 L247.617 1514.29 L247.617 1544.91 L255.256 1544.91 L255.256 1548.85 L235.349 1548.85 L235.349 1544.91 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M264.7 1542.97 L269.585 1542.97 L269.585 1548.85 L264.7 1548.85 L264.7 1542.97 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M289.77 1517.37 Q286.159 1517.37 284.33 1520.93 Q282.524 1524.47 282.524 1531.6 Q282.524 1538.71 284.33 1542.27 Q286.159 1545.82 289.77 1545.82 Q293.404 1545.82 295.21 1542.27 Q297.038 1538.71 297.038 1531.6 Q297.038 1524.47 295.21 1520.93 Q293.404 1517.37 289.77 1517.37 M289.77 1513.66 Q295.58 1513.66 298.635 1518.27 Q301.714 1522.85 301.714 1531.6 Q301.714 1540.33 298.635 1544.94 Q295.58 1549.52 289.77 1549.52 Q283.96 1549.52 280.881 1544.94 Q277.825 1540.33 277.825 1531.6 Q277.825 1522.85 280.881 1518.27 Q283.96 1513.66 289.77 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M647.82 1532.02 L677.496 1532.02 L677.496 1535.95 L647.82 1535.95 L647.82 1532.02 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M697.588 1517.37 Q693.977 1517.37 692.148 1520.93 Q690.343 1524.47 690.343 1531.6 Q690.343 1538.71 692.148 1542.27 Q693.977 1545.82 697.588 1545.82 Q701.222 1545.82 703.028 1542.27 Q704.857 1538.71 704.857 1531.6 Q704.857 1524.47 703.028 1520.93 Q701.222 1517.37 697.588 1517.37 M697.588 1513.66 Q703.398 1513.66 706.454 1518.27 Q709.532 1522.85 709.532 1531.6 Q709.532 1540.33 706.454 1544.94 Q703.398 1549.52 697.588 1549.52 Q691.778 1549.52 688.699 1544.94 Q685.644 1540.33 685.644 1531.6 Q685.644 1522.85 688.699 1518.27 Q691.778 1513.66 697.588 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M717.75 1542.97 L722.634 1542.97 L722.634 1548.85 L717.75 1548.85 L717.75 1542.97 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M732.866 1514.29 L751.222 1514.29 L751.222 1518.22 L737.148 1518.22 L737.148 1526.7 Q738.167 1526.35 739.185 1526.19 Q740.204 1526 741.222 1526 Q747.009 1526 750.389 1529.17 Q753.768 1532.34 753.768 1537.76 Q753.768 1543.34 750.296 1546.44 Q746.824 1549.52 740.505 1549.52 Q738.329 1549.52 736.06 1549.15 Q733.815 1548.78 731.407 1548.04 L731.407 1543.34 Q733.491 1544.47 735.713 1545.03 Q737.935 1545.58 740.412 1545.58 Q744.417 1545.58 746.754 1543.48 Q749.092 1541.37 749.092 1537.76 Q749.092 1534.15 746.754 1532.04 Q744.417 1529.94 740.412 1529.94 Q738.537 1529.94 736.662 1530.35 Q734.81 1530.77 732.866 1531.65 L732.866 1514.29 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M1130.73 1517.37 Q1127.12 1517.37 1125.29 1520.93 Q1123.49 1524.47 1123.49 1531.6 Q1123.49 1538.71 1125.29 1542.27 Q1127.12 1545.82 1130.73 1545.82 Q1134.36 1545.82 1136.17 1542.27 Q1138 1538.71 1138 1531.6 Q1138 1524.47 1136.17 1520.93 Q1134.36 1517.37 1130.73 1517.37 M1130.73 1513.66 Q1136.54 1513.66 1139.6 1518.27 Q1142.67 1522.85 1142.67 1531.6 Q1142.67 1540.33 1139.6 1544.94 Q1136.54 1549.52 1130.73 1549.52 Q1124.92 1549.52 1121.84 1544.94 Q1118.79 1540.33 1118.79 1531.6 Q1118.79 1522.85 1121.84 1518.27 Q1124.92 1513.66 1130.73 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M1150.89 1542.97 L1155.78 1542.97 L1155.78 1548.85 L1150.89 1548.85 L1150.89 1542.97 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M1175.96 1517.37 Q1172.35 1517.37 1170.52 1520.93 Q1168.72 1524.47 1168.72 1531.6 Q1168.72 1538.71 1170.52 1542.27 Q1172.35 1545.82 1175.96 1545.82 Q1179.6 1545.82 1181.4 1542.27 Q1183.23 1538.71 1183.23 1531.6 Q1183.23 1524.47 1181.4 1520.93 Q1179.6 1517.37 1175.96 1517.37 M1175.96 1513.66 Q1181.77 1513.66 1184.83 1518.27 Q1187.91 1522.85 1187.91 1531.6 Q1187.91 1540.33 1184.83 1544.94 Q1181.77 1549.52 1175.96 1549.52 Q1170.15 1549.52 1167.07 1544.94 Q1164.02 1540.33 1164.02 1531.6 Q1164.02 1522.85 1167.07 1518.27 Q1170.15 1513.66 1175.96 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M1583.78 1517.37 Q1580.17 1517.37 1578.34 1520.93 Q1576.53 1524.47 1576.53 1531.6 Q1576.53 1538.71 1578.34 1542.27 Q1580.17 1545.82 1583.78 1545.82 Q1587.41 1545.82 1589.22 1542.27 Q1591.05 1538.71 1591.05 1531.6 Q1591.05 1524.47 1589.22 1520.93 Q1587.41 1517.37 1583.78 1517.37 M1583.78 1513.66 Q1589.59 1513.66 1592.65 1518.27 Q1595.72 1522.85 1595.72 1531.6 Q1595.72 1540.33 1592.65 1544.94 Q1589.59 1549.52 1583.78 1549.52 Q1577.97 1549.52 1574.89 1544.94 Q1571.84 1540.33 1571.84 1531.6 Q1571.84 1522.85 1574.89 1518.27 Q1577.97 1513.66 1583.78 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M1603.94 1542.97 L1608.83 1542.97 L1608.83 1548.85 L1603.94 1548.85 L1603.94 1542.97 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M1619.06 1514.29 L1637.41 1514.29 L1637.41 1518.22 L1623.34 1518.22 L1623.34 1526.7 Q1624.36 1526.35 1625.38 1526.19 Q1626.4 1526 1627.41 1526 Q1633.2 1526 1636.58 1529.17 Q1639.96 1532.34 1639.96 1537.76 Q1639.96 1543.34 1636.49 1546.44 Q1633.02 1549.52 1626.7 1549.52 Q1624.52 1549.52 1622.25 1549.15 Q1620.01 1548.78 1617.6 1548.04 L1617.6 1543.34 Q1619.68 1544.47 1621.9 1545.03 Q1624.13 1545.58 1626.6 1545.58 Q1630.61 1545.58 1632.95 1543.48 Q1635.28 1541.37 1635.28 1537.76 Q1635.28 1534.15 1632.95 1532.04 Q1630.61 1529.94 1626.6 1529.94 Q1624.73 1529.94 1622.85 1530.35 Q1621 1530.77 1619.06 1531.65 L1619.06 1514.29 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M2025.6 1544.91 L2033.24 1544.91 L2033.24 1518.55 L2024.93 1520.21 L2024.93 1515.95 L2033.2 1514.29 L2037.87 1514.29 L2037.87 1544.91 L2045.51 1544.91 L2045.51 1548.85 L2025.6 1548.85 L2025.6 1544.91 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M2054.95 1542.97 L2059.84 1542.97 L2059.84 1548.85 L2054.95 1548.85 L2054.95 1542.97 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M2080.02 1517.37 Q2076.41 1517.37 2074.58 1520.93 Q2072.78 1524.47 2072.78 1531.6 Q2072.78 1538.71 2074.58 1542.27 Q2076.41 1545.82 2080.02 1545.82 Q2083.66 1545.82 2085.46 1542.27 Q2087.29 1538.71 2087.29 1531.6 Q2087.29 1524.47 2085.46 1520.93 Q2083.66 1517.37 2080.02 1517.37 M2080.02 1513.66 Q2085.83 1513.66 2088.89 1518.27 Q2091.97 1522.85 2091.97 1531.6 Q2091.97 1540.33 2088.89 1544.94 Q2085.83 1549.52 2080.02 1549.52 Q2074.21 1549.52 2071.13 1544.94 Q2068.08 1540.33 2068.08 1531.6 Q2068.08 1522.85 2071.13 1518.27 Q2074.21 1513.66 2080.02 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><polyline clip-path=\"url(#clip642)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  193.936,1445.72 2112.76,1445.72 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  193.936,1106.28 2112.76,1106.28 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  193.936,766.846 2112.76,766.846 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  193.936,427.411 2112.76,427.411 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  193.936,87.9763 2112.76,87.9763 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip640)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  193.936,1486.45 193.936,47.2441 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip640)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  193.936,1445.72 210.733,1445.72 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip640)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  193.936,1106.28 210.733,1106.28 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip640)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  193.936,766.846 210.733,766.846 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip640)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  193.936,427.411 210.733,427.411 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip640)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  193.936,87.9763 210.733,87.9763 \n",
       "  \"/>\n",
       "<path clip-path=\"url(#clip640)\" d=\"M50.9921 1446.17 L80.6679 1446.17 L80.6679 1450.1 L50.9921 1450.1 L50.9921 1446.17 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M91.5706 1459.06 L99.2095 1459.06 L99.2095 1432.69 L90.8993 1434.36 L90.8993 1430.1 L99.1632 1428.44 L103.839 1428.44 L103.839 1459.06 L111.478 1459.06 L111.478 1463 L91.5706 1463 L91.5706 1459.06 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M120.922 1457.12 L125.807 1457.12 L125.807 1463 L120.922 1463 L120.922 1457.12 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M145.992 1431.51 Q142.381 1431.51 140.552 1435.08 Q138.746 1438.62 138.746 1445.75 Q138.746 1452.86 140.552 1456.42 Q142.381 1459.96 145.992 1459.96 Q149.626 1459.96 151.431 1456.42 Q153.26 1452.86 153.26 1445.75 Q153.26 1438.62 151.431 1435.08 Q149.626 1431.51 145.992 1431.51 M145.992 1427.81 Q151.802 1427.81 154.857 1432.42 Q157.936 1437 157.936 1445.75 Q157.936 1454.48 154.857 1459.08 Q151.802 1463.67 145.992 1463.67 Q140.181 1463.67 137.103 1459.08 Q134.047 1454.48 134.047 1445.75 Q134.047 1437 137.103 1432.42 Q140.181 1427.81 145.992 1427.81 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M51.9875 1106.73 L81.6633 1106.73 L81.6633 1110.67 L51.9875 1110.67 L51.9875 1106.73 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M101.756 1092.08 Q98.1447 1092.08 96.316 1095.64 Q94.5104 1099.19 94.5104 1106.32 Q94.5104 1113.42 96.316 1116.99 Q98.1447 1120.53 101.756 1120.53 Q105.39 1120.53 107.196 1116.99 Q109.024 1113.42 109.024 1106.32 Q109.024 1099.19 107.196 1095.64 Q105.39 1092.08 101.756 1092.08 M101.756 1088.38 Q107.566 1088.38 110.621 1092.98 Q113.7 1097.57 113.7 1106.32 Q113.7 1115.04 110.621 1119.65 Q107.566 1124.23 101.756 1124.23 Q95.9456 1124.23 92.8669 1119.65 Q89.8114 1115.04 89.8114 1106.32 Q89.8114 1097.57 92.8669 1092.98 Q95.9456 1088.38 101.756 1088.38 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M121.918 1117.68 L126.802 1117.68 L126.802 1123.56 L121.918 1123.56 L121.918 1117.68 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M137.033 1089 L155.39 1089 L155.39 1092.94 L141.316 1092.94 L141.316 1101.41 Q142.334 1101.06 143.353 1100.9 Q144.371 1100.71 145.39 1100.71 Q151.177 1100.71 154.556 1103.89 Q157.936 1107.06 157.936 1112.47 Q157.936 1118.05 154.464 1121.15 Q150.992 1124.23 144.672 1124.23 Q142.496 1124.23 140.228 1123.86 Q137.982 1123.49 135.575 1122.75 L135.575 1118.05 Q137.658 1119.19 139.881 1119.74 Q142.103 1120.3 144.58 1120.3 Q148.584 1120.3 150.922 1118.19 Q153.26 1116.08 153.26 1112.47 Q153.26 1108.86 150.922 1106.76 Q148.584 1104.65 144.58 1104.65 Q142.705 1104.65 140.83 1105.07 Q138.978 1105.48 137.033 1106.36 L137.033 1089 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M100.76 752.645 Q97.1493 752.645 95.3206 756.209 Q93.515 759.751 93.515 766.881 Q93.515 773.987 95.3206 777.552 Q97.1493 781.094 100.76 781.094 Q104.395 781.094 106.2 777.552 Q108.029 773.987 108.029 766.881 Q108.029 759.751 106.2 756.209 Q104.395 752.645 100.76 752.645 M100.76 748.941 Q106.571 748.941 109.626 753.547 Q112.705 758.131 112.705 766.881 Q112.705 775.608 109.626 780.214 Q106.571 784.797 100.76 784.797 Q94.9502 784.797 91.8715 780.214 Q88.816 775.608 88.816 766.881 Q88.816 758.131 91.8715 753.547 Q94.9502 748.941 100.76 748.941 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M120.922 778.246 L125.807 778.246 L125.807 784.126 L120.922 784.126 L120.922 778.246 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M145.992 752.645 Q142.381 752.645 140.552 756.209 Q138.746 759.751 138.746 766.881 Q138.746 773.987 140.552 777.552 Q142.381 781.094 145.992 781.094 Q149.626 781.094 151.431 777.552 Q153.26 773.987 153.26 766.881 Q153.26 759.751 151.431 756.209 Q149.626 752.645 145.992 752.645 M145.992 748.941 Q151.802 748.941 154.857 753.547 Q157.936 758.131 157.936 766.881 Q157.936 775.608 154.857 780.214 Q151.802 784.797 145.992 784.797 Q140.181 784.797 137.103 780.214 Q134.047 775.608 134.047 766.881 Q134.047 758.131 137.103 753.547 Q140.181 748.941 145.992 748.941 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M101.756 413.21 Q98.1447 413.21 96.316 416.775 Q94.5104 420.316 94.5104 427.446 Q94.5104 434.552 96.316 438.117 Q98.1447 441.659 101.756 441.659 Q105.39 441.659 107.196 438.117 Q109.024 434.552 109.024 427.446 Q109.024 420.316 107.196 416.775 Q105.39 413.21 101.756 413.21 M101.756 409.506 Q107.566 409.506 110.621 414.113 Q113.7 418.696 113.7 427.446 Q113.7 436.173 110.621 440.779 Q107.566 445.362 101.756 445.362 Q95.9456 445.362 92.8669 440.779 Q89.8114 436.173 89.8114 427.446 Q89.8114 418.696 92.8669 414.113 Q95.9456 409.506 101.756 409.506 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M121.918 438.812 L126.802 438.812 L126.802 444.691 L121.918 444.691 L121.918 438.812 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M137.033 410.131 L155.39 410.131 L155.39 414.066 L141.316 414.066 L141.316 422.538 Q142.334 422.191 143.353 422.029 Q144.371 421.844 145.39 421.844 Q151.177 421.844 154.556 425.015 Q157.936 428.187 157.936 433.603 Q157.936 439.182 154.464 442.284 Q150.992 445.362 144.672 445.362 Q142.496 445.362 140.228 444.992 Q137.982 444.622 135.575 443.881 L135.575 439.182 Q137.658 440.316 139.881 440.872 Q142.103 441.427 144.58 441.427 Q148.584 441.427 150.922 439.321 Q153.26 437.214 153.26 433.603 Q153.26 429.992 150.922 427.886 Q148.584 425.779 144.58 425.779 Q142.705 425.779 140.83 426.196 Q138.978 426.613 137.033 427.492 L137.033 410.131 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M91.5706 101.321 L99.2095 101.321 L99.2095 74.9555 L90.8993 76.6222 L90.8993 72.3629 L99.1632 70.6963 L103.839 70.6963 L103.839 101.321 L111.478 101.321 L111.478 105.256 L91.5706 105.256 L91.5706 101.321 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M120.922 99.3767 L125.807 99.3767 L125.807 105.256 L120.922 105.256 L120.922 99.3767 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M145.992 73.775 Q142.381 73.775 140.552 77.3398 Q138.746 80.8814 138.746 88.011 Q138.746 95.1174 140.552 98.6822 Q142.381 102.224 145.992 102.224 Q149.626 102.224 151.431 98.6822 Q153.26 95.1174 153.26 88.011 Q153.26 80.8814 151.431 77.3398 Q149.626 73.775 145.992 73.775 M145.992 70.0713 Q151.802 70.0713 154.857 74.6777 Q157.936 79.261 157.936 88.011 Q157.936 96.7378 154.857 101.344 Q151.802 105.928 145.992 105.928 Q140.181 105.928 137.103 101.344 Q134.047 96.7378 134.047 88.011 Q134.047 79.261 137.103 74.6777 Q140.181 70.0713 145.992 70.0713 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><polyline clip-path=\"url(#clip642)\" style=\"stroke:#009af9; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  1967.94,155.863 1609.52,1365.61 1684.79,387.059 1456.47,1143.18 1500.17,530.853 1354.65,1003.43 1379.75,620.259 1286.95,915.612 1301.19,675.83 1241.97,860.414 \n",
       "  1249.92,710.358 1212.1,825.712 1216.44,731.803 1192.28,803.89 1194.58,745.117 1179.14,790.164 1180.3,753.38 1170.42,781.528 1170.97,758.505 1164.65,776.093 \n",
       "  1164.87,761.683 1160.82,772.672 1160.89,763.652 1158.29,770.518 1158.28,764.871 1156.62,769.161 1156.58,765.626 1155.51,768.306 1155.46,766.093 1154.77,767.767 \n",
       "  1154.73,766.382 1154.29,767.427 1154.25,766.56 1153.97,767.213 1153.94,766.67 1153.76,767.078 1153.73,766.738 1153.62,766.992 1153.6,766.779 1153.53,766.939 \n",
       "  1153.51,766.805 1153.46,766.905 1153.46,766.821 1153.42,766.883 1153.42,766.831 1153.4,766.869 1153.39,766.837 1153.38,766.861 1153.38,766.84 1153.37,766.855 \n",
       "  1153.37,766.843 1153.36,766.852 1153.36,766.844 1153.36,766.85 1153.35,766.845 1153.35,766.848 1153.35,766.845 1153.35,766.848 1153.35,766.846 1153.35,766.847 \n",
       "  1153.35,766.846 \n",
       "  \"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1967.94\" cy=\"155.863\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1609.52\" cy=\"1365.61\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1684.79\" cy=\"387.059\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1456.47\" cy=\"1143.18\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1500.17\" cy=\"530.853\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1354.65\" cy=\"1003.43\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1379.75\" cy=\"620.259\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1286.95\" cy=\"915.612\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1301.19\" cy=\"675.83\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1241.97\" cy=\"860.414\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1249.92\" cy=\"710.358\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1212.1\" cy=\"825.712\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1216.44\" cy=\"731.803\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1192.28\" cy=\"803.89\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1194.58\" cy=\"745.117\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1179.14\" cy=\"790.164\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1180.3\" cy=\"753.38\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1170.42\" cy=\"781.528\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1170.97\" cy=\"758.505\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1164.65\" cy=\"776.093\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1164.87\" cy=\"761.683\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1160.82\" cy=\"772.672\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1160.89\" cy=\"763.652\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1158.29\" cy=\"770.518\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1158.28\" cy=\"764.871\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1156.62\" cy=\"769.161\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1156.58\" cy=\"765.626\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1155.51\" cy=\"768.306\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1155.46\" cy=\"766.093\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1154.77\" cy=\"767.767\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1154.73\" cy=\"766.382\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1154.29\" cy=\"767.427\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1154.25\" cy=\"766.56\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1153.97\" cy=\"767.213\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1153.94\" cy=\"766.67\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1153.76\" cy=\"767.078\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1153.73\" cy=\"766.738\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1153.62\" cy=\"766.992\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1153.6\" cy=\"766.779\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1153.53\" cy=\"766.939\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1153.51\" cy=\"766.805\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1153.46\" cy=\"766.905\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1153.46\" cy=\"766.821\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1153.42\" cy=\"766.883\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1153.42\" cy=\"766.831\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1153.4\" cy=\"766.869\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1153.39\" cy=\"766.837\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1153.38\" cy=\"766.861\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1153.38\" cy=\"766.84\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1153.37\" cy=\"766.855\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1153.37\" cy=\"766.843\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1153.36\" cy=\"766.852\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1153.36\" cy=\"766.844\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1153.36\" cy=\"766.85\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1153.35\" cy=\"766.845\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1153.35\" cy=\"766.848\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1153.35\" cy=\"766.845\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1153.35\" cy=\"766.848\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1153.35\" cy=\"766.846\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1153.35\" cy=\"766.847\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip642)\" cx=\"1153.35\" cy=\"766.846\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#f1e864; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  248.242,1418.99 310.663,1429.41 373.084,1439.62 411.288,1445.72 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#f98c09; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  248.242,1333.49 310.663,1344.65 353.195,1352.08 373.084,1355.34 435.505,1365.3 497.926,1375.03 560.347,1384.51 622.768,1393.75 658.696,1398.9 685.189,1402.47 \n",
       "  747.61,1410.6 810.031,1418.47 872.452,1426.07 934.873,1433.4 997.294,1440.45 1046,1445.72 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#fbaa0e; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  798.327,1445.72 747.61,1439.13 685.189,1430.77 622.768,1422.15 560.347,1413.29 497.926,1404.19 462.655,1398.9 435.505,1394.58 373.084,1384.37 310.663,1373.93 \n",
       "  248.242,1363.28 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#f8c931; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  248.242,1391.81 288.958,1398.9 310.663,1402.46 373.084,1412.46 435.505,1422.24 497.926,1431.79 560.347,1441.12 592.055,1445.72 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#ba3655; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  248.242,1197.96 310.663,1210.66 315.518,1211.62 373.084,1222.13 435.505,1233.24 497.926,1244.09 560.347,1254.65 583.555,1258.44 622.768,1264.38 685.189,1273.52 \n",
       "  747.61,1282.35 810.031,1290.86 872.452,1299.06 921.784,1305.26 934.873,1306.79 997.294,1313.7 1059.71,1320.27 1122.14,1326.49 1184.56,1332.35 1246.98,1337.83 \n",
       "  1309.4,1342.94 1371.82,1347.65 1434.24,1351.95 1436.32,1352.08 1496.66,1355.52 1559.08,1358.68 1621.5,1361.42 1683.92,1363.72 1746.34,1365.58 1808.77,1366.98 \n",
       "  1871.19,1367.9 1933.61,1368.32 1996.03,1368.25 2058.45,1367.64 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#a12b61; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  2058.45,1327.68 1996.03,1328.83 1933.61,1329.39 1871.19,1329.38 1808.77,1328.82 1746.34,1327.74 1683.92,1326.14 1621.5,1324.06 1559.08,1321.49 1496.66,1318.47 \n",
       "  1434.24,1315 1371.82,1311.1 1309.4,1306.78 1289.48,1305.26 1246.98,1301.76 1184.56,1296.18 1122.14,1290.2 1059.71,1283.83 997.294,1277.08 934.873,1269.97 \n",
       "  872.452,1262.51 840.109,1258.44 810.031,1254.35 747.61,1245.47 685.189,1236.25 622.768,1226.72 560.347,1216.87 528.236,1211.62 497.926,1206.25 435.505,1194.82 \n",
       "  373.084,1183.11 310.663,1171.12 278.672,1164.8 248.242,1158.26 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#88216a; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  248.242,1114.87 261.851,1117.99 310.663,1128.14 373.084,1140.82 435.505,1153.22 495.325,1164.8 497.926,1165.27 560.347,1175.9 622.768,1186.21 685.189,1196.2 \n",
       "  747.61,1205.84 786.623,1211.62 810.031,1214.81 872.452,1222.88 934.873,1230.58 997.294,1237.9 1059.71,1244.83 1122.14,1251.35 1184.56,1257.45 1195.64,1258.44 \n",
       "  1246.98,1262.67 1309.4,1267.37 1371.82,1271.63 1434.24,1275.44 1496.66,1278.76 1559.08,1281.6 1621.5,1283.92 1683.92,1285.72 1746.34,1286.96 1808.77,1287.63 \n",
       "  1871.19,1287.7 1933.61,1287.16 1996.03,1285.97 2058.45,1284.12 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#6e186e; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  2058.45,1235.64 1996.03,1238.44 1933.61,1240.47 1871.19,1241.76 1808.77,1242.34 1746.34,1242.23 1683.92,1241.48 1621.5,1240.1 1559.08,1238.12 1496.66,1235.56 \n",
       "  1434.24,1232.45 1371.82,1228.82 1309.4,1224.67 1246.98,1220.03 1184.56,1214.92 1147.8,1211.62 1122.14,1209.1 1059.71,1202.45 997.294,1195.34 934.873,1187.81 \n",
       "  872.452,1179.86 810.031,1171.51 762.273,1164.8 747.61,1162.54 685.189,1152.42 622.768,1141.94 560.347,1131.1 497.926,1119.93 487.487,1117.99 435.505,1107.3 \n",
       "  373.084,1094.13 310.663,1080.66 267.749,1071.17 248.242,1066.37 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#550f6d; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  248.242,1010.5 299.86,1024.35 310.663,1026.92 373.084,1041.28 435.505,1055.33 497.926,1069.07 507.857,1071.17 560.347,1081.08 622.768,1092.49 685.189,1103.52 \n",
       "  747.61,1114.15 771.307,1117.99 810.031,1123.63 872.452,1132.25 934.873,1140.44 997.294,1148.17 1059.71,1155.42 1122.14,1162.17 1148.76,1164.8 1184.56,1168 \n",
       "  1246.98,1173.02 1309.4,1177.52 1371.82,1181.46 1434.24,1184.83 1496.66,1187.6 1559.08,1189.73 1621.5,1191.21 1683.92,1191.99 1746.34,1192.05 1808.77,1191.35 \n",
       "  1871.19,1189.86 1933.61,1187.52 1996.03,1184.31 2058.45,1180.17 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#3b0964; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  2058.45,1113.65 2021.54,1117.99 1996.03,1120.45 1933.61,1125.4 1871.19,1129.27 1808.77,1132.12 1746.34,1134.01 1683.92,1134.99 1621.5,1135.1 1559.08,1134.4 \n",
       "  1496.66,1132.92 1434.24,1130.7 1371.82,1127.78 1309.4,1124.19 1246.98,1119.98 1221.47,1117.99 1184.56,1114.74 1122.14,1108.59 1059.71,1101.83 997.294,1094.5 \n",
       "  934.873,1086.63 872.452,1078.25 822.752,1071.17 810.031,1069.12 747.61,1058.42 685.189,1047.26 622.768,1035.66 563.979,1024.35 560.347,1023.55 497.926,1009.2 \n",
       "  435.505,994.49 373.084,979.453 365.393,977.53 310.663,961.741 248.242,943.454 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#1f0c47; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  248.242,851.561 310.663,876.651 329.037,883.892 373.084,897.922 435.505,917.44 478.823,930.711 497.926,935.599 560.347,950.947 622.768,965.897 673.017,977.53 \n",
       "  685.189,979.932 747.61,991.563 810.031,1002.68 872.452,1013.24 934.873,1023.2 942.675,1024.35 997.294,1031.24 1059.71,1038.48 1122.14,1045.04 1184.56,1050.9 \n",
       "  1246.98,1056 1309.4,1060.3 1371.82,1063.74 1434.24,1066.26 1496.66,1067.79 1559.08,1068.28 1621.5,1067.63 1683.92,1065.76 1746.34,1062.58 1808.77,1057.98 \n",
       "  1871.19,1051.85 1933.61,1044.05 1996.03,1034.44 2050.65,1024.35 2058.45,1022.4 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#1f0c47; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  2058.45,682.131 1996.03,657.04 1977.65,649.799 1933.61,635.77 1871.19,616.252 1827.87,602.981 1808.77,598.092 1746.34,582.745 1683.92,567.795 1633.68,556.162 \n",
       "  1621.5,553.76 1559.08,542.129 1496.66,531.017 1434.24,520.457 1371.82,510.487 1364.02,509.344 1309.4,502.448 1246.98,495.215 1184.56,488.649 1122.14,482.793 \n",
       "  1059.71,477.691 997.294,473.394 934.873,469.956 872.452,467.436 810.031,465.899 747.61,465.416 685.189,466.065 622.768,467.933 560.347,471.114 497.926,475.712 \n",
       "  435.505,481.846 373.084,489.644 310.663,499.251 256.045,509.344 248.242,511.294 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#3b0964; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  248.242,420.043 285.155,415.706 310.663,413.244 373.084,408.292 435.505,404.42 497.926,401.568 560.347,399.68 622.768,398.703 685.189,398.59 747.61,399.295 \n",
       "  810.031,400.776 872.452,402.994 934.873,405.912 997.294,409.497 1059.71,413.717 1085.22,415.706 1122.14,418.949 1184.56,425.106 1246.98,431.864 1309.4,439.191 \n",
       "  1371.82,447.058 1434.24,455.439 1483.94,462.525 1496.66,464.576 1559.08,475.277 1621.5,486.435 1683.92,498.027 1742.71,509.344 1746.34,510.142 1808.77,524.496 \n",
       "  1871.19,539.202 1933.61,554.239 1941.3,556.162 1996.03,571.951 2058.45,590.238 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#550f6d; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  2058.45,523.196 2006.83,509.344 1996.03,506.774 1933.61,492.415 1871.19,478.361 1808.77,464.626 1798.84,462.525 1746.34,452.607 1683.92,441.203 1621.5,430.176 \n",
       "  1559.08,419.546 1535.39,415.706 1496.66,410.065 1434.24,401.439 1371.82,393.251 1309.4,385.521 1246.98,378.269 1184.56,371.519 1157.94,368.888 1122.14,365.696 \n",
       "  1059.71,360.67 997.294,356.173 934.873,352.228 872.452,348.86 810.031,346.095 747.61,343.96 685.189,342.484 622.768,341.7 560.347,341.639 497.926,342.338 \n",
       "  435.505,343.834 373.084,346.167 310.663,349.38 248.242,353.519 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#6e186e; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  248.242,298.057 310.663,295.25 373.084,293.219 435.505,291.932 497.926,291.355 560.347,291.459 622.768,292.214 685.189,293.595 747.61,295.575 810.031,298.13 \n",
       "  872.452,301.237 934.873,304.876 997.294,309.024 1059.71,313.664 1122.14,318.775 1158.89,322.069 1184.56,324.592 1246.98,331.246 1309.4,338.35 1371.82,345.886 \n",
       "  1434.24,353.836 1496.66,362.186 1544.42,368.888 1559.08,371.15 1621.5,381.268 1683.92,391.752 1746.34,402.589 1808.77,413.762 1819.2,415.706 1871.19,426.392 \n",
       "  1933.61,439.564 1996.03,453.031 2038.94,462.525 2058.45,467.324 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#88216a; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  2058.45,418.819 2044.84,415.706 1996.03,405.55 1933.61,392.871 1871.19,380.476 1811.37,368.888 1808.77,368.427 1746.34,357.794 1683.92,347.478 1621.5,337.491 \n",
       "  1559.08,327.847 1520.07,322.069 1496.66,318.886 1434.24,310.815 1371.82,303.111 1309.4,295.787 1246.98,288.858 1184.56,282.339 1122.14,276.244 1111.05,275.251 \n",
       "  1059.71,271.022 997.294,266.318 934.873,262.057 872.452,258.254 810.031,254.927 747.61,252.093 685.189,249.769 622.768,247.977 560.347,246.735 497.926,246.065 \n",
       "  435.505,245.989 373.084,246.532 310.663,247.717 248.242,249.572 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#a12b61; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  248.242,206.01 310.663,204.863 373.084,204.304 435.505,204.313 497.926,204.869 560.347,205.953 622.768,207.548 685.189,209.635 747.61,212.199 810.031,215.224 \n",
       "  872.452,218.694 934.873,222.596 997.294,226.914 1017.21,228.432 1059.71,231.933 1122.14,237.512 1184.56,243.493 1246.98,249.863 1309.4,256.611 1371.82,263.722 \n",
       "  1434.24,271.186 1466.58,275.251 1496.66,279.34 1559.08,288.224 1621.5,297.439 1683.92,306.976 1746.34,316.822 1778.46,322.069 1808.77,327.443 1871.19,338.873 \n",
       "  1933.61,350.586 1996.03,362.574 2028.02,368.888 2058.45,375.43 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#ba3655; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  2058.45,335.736 1996.03,323.028 1991.17,322.069 1933.61,311.567 1871.19,300.451 1808.77,289.607 1746.34,279.043 1723.14,275.251 1683.92,269.307 1621.5,260.176 \n",
       "  1559.08,251.346 1496.66,242.828 1434.24,234.632 1384.91,228.432 1371.82,226.903 1309.4,219.995 1246.98,213.426 1184.56,207.206 1122.14,201.346 1059.71,195.857 \n",
       "  997.294,190.752 934.873,186.042 872.452,181.741 870.371,181.613 810.031,178.167 747.61,175.011 685.189,172.274 622.768,169.97 560.347,168.113 497.926,166.717 \n",
       "  435.505,165.796 373.084,165.368 310.663,165.447 248.242,166.051 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#d04544; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  248.242,128.807 310.663,128.631 373.084,128.928 435.505,129.685 497.926,130.889 560.347,132.525 622.768,134.583 628.088,134.795 685.189,137.236 747.61,140.332 \n",
       "  810.031,143.841 872.452,147.749 934.873,152.046 997.294,156.719 1059.71,161.758 1122.14,167.152 1184.56,172.891 1246.98,178.965 1272.67,181.613 1309.4,185.669 \n",
       "  1371.82,192.921 1434.24,200.495 1496.66,208.381 1559.08,216.57 1621.5,225.054 1645.41,228.432 1683.92,234.269 1746.34,244.053 1808.77,254.114 1871.19,264.443 \n",
       "  1933.61,275.032 1934.85,275.251 1996.03,286.783 2058.45,298.799 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#e35832; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  2058.45,263.974 1996.03,252.562 1933.61,241.389 1871.19,230.461 1859.22,228.432 1808.77,220.437 1746.34,210.82 1683.92,201.467 1621.5,192.385 1559.08,183.583 \n",
       "  1544.53,181.613 1496.66,175.547 1434.24,167.94 1371.82,160.627 1309.4,153.616 1246.98,146.916 1184.56,140.535 1125.31,134.795 1122.14,134.506 1059.71,129.207 \n",
       "  997.294,124.239 934.873,119.611 872.452,115.332 810.031,111.413 747.61,107.863 685.189,104.693 622.768,101.914 560.347,99.5382 497.926,97.5764 435.505,96.0414 \n",
       "  373.084,94.9461 310.663,94.3039 248.242,94.1287 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#f0701e; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  928.37,87.9763 934.873,88.4482 997.294,93.361 1059.71,98.6084 1122.14,104.182 1184.56,110.072 1246.98,116.271 1309.4,122.771 1371.82,129.563 1417.85,134.795 \n",
       "  1434.24,136.777 1496.66,144.669 1559.08,152.842 1621.5,161.288 1683.92,170 1746.34,178.971 1764.12,181.613 1808.77,188.688 1871.19,198.857 1933.61,209.27 \n",
       "  1996.03,219.921 2044.76,228.432 2058.45,230.987 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#f98c09; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  2058.45,200.203 1996.03,189.042 1953.5,181.613 1933.61,178.348 1871.19,168.389 1808.77,158.664 1746.34,149.181 1683.92,139.945 1648,134.795 1621.5,131.22 \n",
       "  1559.08,123.09 1496.66,115.221 1434.24,107.618 1371.82,100.289 1309.4,93.2408 1260.69,87.9763 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#fbaa0e; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  1508.37,87.9763 1559.08,94.5571 1621.5,102.925 1683.92,111.543 1746.34,120.405 1808.77,129.504 1844.04,134.795 1871.19,139.114 1933.61,149.325 1996.03,159.761 \n",
       "  2058.45,170.415 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#f8c931; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  2058.45,141.882 2017.73,134.795 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#f8c931; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  1996.03,131.228 1933.61,121.233 1871.19,111.457 1808.77,101.902 1746.34,92.5763 1714.64,87.9763 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#f1e864; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  1895.4,87.9763 1933.61,94.0754 1996.03,104.286 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#f1e864; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  2058.45,114.705 1996.03,104.286 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#d04544; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  248.242,1234.89 310.663,1246.91 371.839,1258.44 373.084,1258.66 435.505,1269.25 497.926,1279.58 560.347,1289.64 622.768,1299.42 661.281,1305.26 685.189,1308.64 \n",
       "  747.61,1317.12 810.031,1325.31 872.452,1333.2 934.873,1340.77 997.294,1348.02 1034.02,1352.08 1059.71,1354.73 1122.14,1360.8 1184.56,1366.54 1246.98,1371.93 \n",
       "  1309.4,1376.97 1371.82,1381.65 1434.24,1385.94 1496.66,1389.85 1559.08,1393.36 1621.5,1396.46 1678.6,1398.9 1683.92,1399.11 1746.34,1401.17 1808.77,1402.8 \n",
       "  1871.19,1404.01 1933.61,1404.76 1996.03,1405.06 2058.45,1404.88 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#e35832; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  2058.45,1439.56 1996.03,1439.39 1933.61,1438.75 1871.19,1437.65 1808.77,1436.12 1746.34,1434.15 1683.92,1431.78 1621.5,1429 1559.08,1425.83 1496.66,1422.28 \n",
       "  1434.24,1418.36 1371.82,1414.08 1309.4,1409.45 1246.98,1404.48 1184.56,1399.19 1181.38,1398.9 1122.14,1393.16 1059.71,1386.78 997.294,1380.08 934.873,1373.07 \n",
       "  872.452,1365.75 810.031,1358.14 762.161,1352.08 747.61,1350.11 685.189,1341.31 622.768,1332.23 560.347,1322.87 497.926,1313.26 447.469,1305.26 435.505,1303.23 \n",
       "  373.084,1292.3 310.663,1281.13 248.242,1269.72 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#f0701e; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  248.242,1302.7 261.935,1305.26 310.663,1313.77 373.084,1324.42 435.505,1334.83 497.926,1345 542.574,1352.08 560.347,1354.72 622.768,1363.69 685.189,1372.4 \n",
       "  747.61,1380.85 810.031,1389.02 872.452,1396.91 888.837,1398.9 934.873,1404.13 997.294,1410.92 1059.71,1417.42 1122.14,1423.62 1184.56,1429.51 1246.98,1435.08 \n",
       "  1309.4,1440.33 1371.82,1445.24 1378.32,1445.72 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip642)\" style=\"stroke:#090621; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  1559.08,977.835 1496.66,979.862 1434.24,980.456 1371.82,979.734 1309.4,977.803 1303.94,977.53 1246.98,974.028 1184.56,968.937 1122.14,962.719 1059.71,955.474 \n",
       "  997.294,947.293 934.873,938.253 887.277,930.711 872.452,927.785 810.031,914.394 747.61,900.346 685.189,885.704 677.944,883.892 622.768,866.156 560.347,845.738 \n",
       "  534.734,837.074 497.926,819.912 435.505,790.78 434.413,790.255 373.084,744.256 371.992,743.437 347.471,696.618 365.839,649.799 373.084,644.838 435.505,609.653 \n",
       "  450.33,602.981 497.926,590.528 560.347,577.556 622.768,567.68 685.189,560.522 742.148,556.162 747.61,555.857 810.031,553.83 872.452,553.236 934.873,553.958 \n",
       "  997.294,555.889 1002.76,556.162 1059.71,559.664 1122.14,564.755 1184.56,570.973 1246.98,578.218 1309.4,586.399 1371.82,595.439 1419.42,602.981 1434.24,605.907 \n",
       "  1496.66,619.298 1559.08,633.346 1621.5,647.988 1628.75,649.799 1683.92,667.536 1746.34,687.954 1771.96,696.618 1808.77,713.78 1871.19,742.911 1872.28,743.437 \n",
       "  1933.61,789.436 1934.7,790.255 1959.22,837.074 1940.85,883.892 1933.61,888.854 1871.19,924.039 1856.36,930.711 1808.77,943.164 1746.34,956.136 1683.92,966.012 \n",
       "  1621.5,973.17 1564.54,977.53 1559.08,977.835 \n",
       "  \"/>\n",
       "<defs>\n",
       "  <clipPath id=\"clip643\">\n",
       "    <rect x=\"2160\" y=\"47\" width=\"73\" height=\"1440\"/>\n",
       "  </clipPath>\n",
       "</defs>\n",
       "<polyline clip-path=\"url(#clip643)\" style=\"stroke:#0a0723; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  2160.76,1396.5 2232.76,1396.5 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip643)\" style=\"stroke:#200c4a; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  2160.76,1306.55 2232.76,1306.55 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip643)\" style=\"stroke:#3c0965; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  2160.76,1216.6 2232.76,1216.6 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip643)\" style=\"stroke:#570f6d; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  2160.76,1126.65 2232.76,1126.65 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip643)\" style=\"stroke:#70196e; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  2160.76,1036.7 2232.76,1036.7 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip643)\" style=\"stroke:#892269; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  2160.76,946.746 2232.76,946.746 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip643)\" style=\"stroke:#a32b61; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  2160.76,856.796 2232.76,856.796 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip643)\" style=\"stroke:#bb3754; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  2160.76,766.846 2232.76,766.846 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip643)\" style=\"stroke:#d04544; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  2160.76,676.896 2232.76,676.896 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip643)\" style=\"stroke:#e35832; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  2160.76,586.946 2232.76,586.946 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip643)\" style=\"stroke:#f0701e; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  2160.76,496.995 2232.76,496.995 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip643)\" style=\"stroke:#f98c09; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  2160.76,407.045 2232.76,407.045 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip643)\" style=\"stroke:#fbaa0e; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  2160.76,317.095 2232.76,317.095 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip643)\" style=\"stroke:#f8c931; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  2160.76,227.145 2232.76,227.145 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip643)\" style=\"stroke:#f1e864; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  2160.76,137.194 2232.76,137.194 \n",
       "  \"/>\n",
       "<path clip-path=\"url(#clip640)\" d=\"M2269.43 1235.38 L2277.07 1235.38 L2277.07 1209.02 L2268.76 1210.68 L2268.76 1206.42 L2277.02 1204.76 L2281.7 1204.76 L2281.7 1235.38 L2289.33 1235.38 L2289.33 1239.32 L2269.43 1239.32 L2269.43 1235.38 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M2274.38 973.511 L2290.7 973.511 L2290.7 977.446 L2268.76 977.446 L2268.76 973.511 Q2271.42 970.756 2276 966.126 Q2280.61 961.474 2281.79 960.131 Q2284.03 957.608 2284.91 955.872 Q2285.82 954.113 2285.82 952.423 Q2285.82 949.668 2283.87 947.932 Q2281.95 946.196 2278.85 946.196 Q2276.65 946.196 2274.2 946.96 Q2271.77 947.724 2268.99 949.275 L2268.99 944.552 Q2271.81 943.418 2274.27 942.839 Q2276.72 942.261 2278.76 942.261 Q2284.13 942.261 2287.32 944.946 Q2290.52 947.631 2290.52 952.122 Q2290.52 954.251 2289.7 956.173 Q2288.92 958.071 2286.81 960.663 Q2286.23 961.335 2283.13 964.552 Q2280.03 967.747 2274.38 973.511 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M2284.38 696.94 Q2287.74 697.658 2289.61 699.926 Q2291.51 702.195 2291.51 705.528 Q2291.51 710.644 2287.99 713.445 Q2284.47 716.246 2277.99 716.246 Q2275.82 716.246 2273.5 715.806 Q2271.21 715.389 2268.76 714.533 L2268.76 710.019 Q2270.7 711.153 2273.02 711.732 Q2275.33 712.31 2277.85 712.31 Q2282.25 712.31 2284.54 710.574 Q2286.86 708.838 2286.86 705.528 Q2286.86 702.472 2284.7 700.759 Q2282.58 699.023 2278.76 699.023 L2274.73 699.023 L2274.73 695.181 L2278.94 695.181 Q2282.39 695.181 2284.22 693.815 Q2286.05 692.426 2286.05 689.834 Q2286.05 687.172 2284.15 685.76 Q2282.27 684.324 2278.76 684.324 Q2276.83 684.324 2274.64 684.741 Q2272.44 685.158 2269.8 686.037 L2269.8 681.871 Q2272.46 681.13 2274.77 680.76 Q2277.11 680.389 2279.17 680.389 Q2284.5 680.389 2287.6 682.82 Q2290.7 685.227 2290.7 689.347 Q2290.7 692.218 2289.06 694.209 Q2287.41 696.176 2284.38 696.94 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M2284.36 423.217 L2272.55 441.666 L2284.36 441.666 L2284.36 423.217 M2283.13 419.143 L2289.01 419.143 L2289.01 441.666 L2293.94 441.666 L2293.94 445.555 L2289.01 445.555 L2289.01 453.703 L2284.36 453.703 L2284.36 445.555 L2268.76 445.555 L2268.76 441.041 L2283.13 419.143 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M2270.21 157.271 L2288.57 157.271 L2288.57 161.206 L2274.5 161.206 L2274.5 169.678 Q2275.52 169.331 2276.53 169.169 Q2277.55 168.984 2278.57 168.984 Q2284.36 168.984 2287.74 172.155 Q2291.12 175.327 2291.12 180.743 Q2291.12 186.322 2287.64 189.424 Q2284.17 192.502 2277.85 192.502 Q2275.68 192.502 2273.41 192.132 Q2271.16 191.762 2268.76 191.021 L2268.76 186.322 Q2270.84 187.456 2273.06 188.012 Q2275.28 188.567 2277.76 188.567 Q2281.77 188.567 2284.1 186.461 Q2286.44 184.354 2286.44 180.743 Q2286.44 177.132 2284.1 175.026 Q2281.77 172.919 2277.76 172.919 Q2275.89 172.919 2274.01 173.336 Q2272.16 173.752 2270.21 174.632 L2270.21 157.271 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><polyline clip-path=\"url(#clip640)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  2232.76,1486.45 2232.76,1225.67 2256.76,1225.67 2232.76,1225.67 2232.76,963.795 2256.76,963.795 2232.76,963.795 2232.76,701.923 2256.76,701.923 2232.76,701.923 \n",
       "  2232.76,440.051 2256.76,440.051 2232.76,440.051 2232.76,178.18 2256.76,178.18 2232.76,178.18 2232.76,47.2441 \n",
       "  \"/>\n",
       "<path clip-path=\"url(#clip640)\" d=\"\n",
       "M1756.95 250.738 L2048.8 250.738 L2048.8 95.2176 L1756.95 95.2176  Z\n",
       "  \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
       "<polyline clip-path=\"url(#clip640)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1756.95,250.738 2048.8,250.738 2048.8,95.2176 1756.95,95.2176 1756.95,250.738 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip640)\" style=\"stroke:#009af9; stroke-linecap:round; stroke-linejoin:round; stroke-width:6; stroke-opacity:1; fill:none\" points=\"\n",
       "  1778.27,172.978 1906.19,172.978 \n",
       "  \"/>\n",
       "<circle clip-path=\"url(#clip640)\" cx=\"1842.23\" cy=\"172.978\" r=\"11.8446\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"7.68\"/>\n",
       "<path clip-path=\"url(#clip640)\" d=\"M1948.27 202.509 Q1945.56 209.453 1943 211.571 Q1940.43 213.689 1936.12 213.689 L1931.02 213.689 L1931.02 208.342 L1934.77 208.342 Q1937.41 208.342 1938.86 207.092 Q1940.32 205.842 1942.09 201.189 L1943.24 198.273 L1927.51 160.009 L1934.28 160.009 L1946.43 190.425 L1958.59 160.009 L1965.36 160.009 L1948.27 202.509 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip640)\" d=\"M1976.29 192.995 L1987.75 192.995 L1987.75 153.446 L1975.29 155.946 L1975.29 149.558 L1987.68 147.058 L1994.7 147.058 L1994.7 192.995 L2006.15 192.995 L2006.15 198.898 L1976.29 198.898 L1976.29 192.995 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /></svg>\n"
      ]
     },
     "execution_count": 113,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "plot(chist[1, :], chist[2, :], marker=:circle)\n",
    "x = LinRange(-1, 1, 30)\n",
    "contour!(x, x, (x,y) -> loss([x, y]))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ddd68837",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# Chebyshev regression via optimization\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 121,
   "id": "5520e580",
   "metadata": {
    "cell_style": "split"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "8-element Vector{Float64}:\n",
       "  0.7805671076161028\n",
       "  0.07125885267568355\n",
       " -1.8025038787243435\n",
       "  0.03382484774772874\n",
       "  0.8464406682785461\n",
       " -0.17304293350946157\n",
       "  0.6962824216982956\n",
       "  0.0711130108623033"
      ]
     },
     "execution_count": 121,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = LinRange(-1, 1, 200)\n",
    "sigma = 0.5; n = 8\n",
    "y = runge_noisy(x, sigma)\n",
    "V = vander(x, n) # or vander_chebyshev\n",
    "function loss(c)\n",
    "    r = V * c - y\n",
    "    .5 * r' * r\n",
    "end\n",
    "function grad(c)\n",
    "    r = V * c - y\n",
    "    V' * r\n",
    "end\n",
    "c, _, lhist = grad_descent(loss, grad, ones(n),\n",
    "    gamma=0.008)\n",
    "c"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "id": "77957be4",
   "metadata": {
    "cell_style": "split"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cond(V) = 230.00549982014527\n",
      "cond(V' * V) = 52902.52994792632\n"
     ]
    },
    {
     "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=\"clip880\">\n",
       "    <rect x=\"0\" y=\"0\" width=\"2400\" height=\"1600\"/>\n",
       "  </clipPath>\n",
       "</defs>\n",
       "<path clip-path=\"url(#clip880)\" 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=\"clip881\">\n",
       "    <rect x=\"480\" y=\"0\" width=\"1681\" height=\"1600\"/>\n",
       "  </clipPath>\n",
       "</defs>\n",
       "<path clip-path=\"url(#clip880)\" d=\"\n",
       "M217.933 1486.45 L2352.76 1486.45 L2352.76 47.2441 L217.933 47.2441  Z\n",
       "  \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
       "<defs>\n",
       "  <clipPath id=\"clip882\">\n",
       "    <rect x=\"217\" y=\"47\" width=\"2136\" height=\"1440\"/>\n",
       "  </clipPath>\n",
       "</defs>\n",
       "<polyline clip-path=\"url(#clip882)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  274.325,1486.45 274.325,47.2441 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip882)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  677.122,1486.45 677.122,47.2441 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip882)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  1079.92,1486.45 1079.92,47.2441 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip882)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  1482.71,1486.45 1482.71,47.2441 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip882)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  1885.51,1486.45 1885.51,47.2441 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip882)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  2288.31,1486.45 2288.31,47.2441 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip880)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  217.933,1486.45 2352.76,1486.45 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip880)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  274.325,1486.45 274.325,1467.55 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip880)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  677.122,1486.45 677.122,1467.55 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip880)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1079.92,1486.45 1079.92,1467.55 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip880)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1482.71,1486.45 1482.71,1467.55 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip880)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1885.51,1486.45 1885.51,1467.55 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip880)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  2288.31,1486.45 2288.31,1467.55 \n",
       "  \"/>\n",
       "<path clip-path=\"url(#clip880)\" d=\"M274.325 1517.37 Q270.714 1517.37 268.885 1520.93 Q267.079 1524.47 267.079 1531.6 Q267.079 1538.71 268.885 1542.27 Q270.714 1545.82 274.325 1545.82 Q277.959 1545.82 279.765 1542.27 Q281.593 1538.71 281.593 1531.6 Q281.593 1524.47 279.765 1520.93 Q277.959 1517.37 274.325 1517.37 M274.325 1513.66 Q280.135 1513.66 283.19 1518.27 Q286.269 1522.85 286.269 1531.6 Q286.269 1540.33 283.19 1544.94 Q280.135 1549.52 274.325 1549.52 Q268.515 1549.52 265.436 1544.94 Q262.38 1540.33 262.38 1531.6 Q262.38 1522.85 265.436 1518.27 Q268.515 1513.66 274.325 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip880)\" d=\"M636.728 1544.91 L644.367 1544.91 L644.367 1518.55 L636.057 1520.21 L636.057 1515.95 L644.321 1514.29 L648.997 1514.29 L648.997 1544.91 L656.636 1544.91 L656.636 1548.85 L636.728 1548.85 L636.728 1544.91 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip880)\" d=\"M676.08 1517.37 Q672.469 1517.37 670.64 1520.93 Q668.835 1524.47 668.835 1531.6 Q668.835 1538.71 670.64 1542.27 Q672.469 1545.82 676.08 1545.82 Q679.714 1545.82 681.52 1542.27 Q683.348 1538.71 683.348 1531.6 Q683.348 1524.47 681.52 1520.93 Q679.714 1517.37 676.08 1517.37 M676.08 1513.66 Q681.89 1513.66 684.946 1518.27 Q688.024 1522.85 688.024 1531.6 Q688.024 1540.33 684.946 1544.94 Q681.89 1549.52 676.08 1549.52 Q670.27 1549.52 667.191 1544.94 Q664.135 1540.33 664.135 1531.6 Q664.135 1522.85 667.191 1518.27 Q670.27 1513.66 676.08 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip880)\" d=\"M706.242 1517.37 Q702.631 1517.37 700.802 1520.93 Q698.996 1524.47 698.996 1531.6 Q698.996 1538.71 700.802 1542.27 Q702.631 1545.82 706.242 1545.82 Q709.876 1545.82 711.682 1542.27 Q713.51 1538.71 713.51 1531.6 Q713.51 1524.47 711.682 1520.93 Q709.876 1517.37 706.242 1517.37 M706.242 1513.66 Q712.052 1513.66 715.107 1518.27 Q718.186 1522.85 718.186 1531.6 Q718.186 1540.33 715.107 1544.94 Q712.052 1549.52 706.242 1549.52 Q700.432 1549.52 697.353 1544.94 Q694.297 1540.33 694.297 1531.6 Q694.297 1522.85 697.353 1518.27 Q700.432 1513.66 706.242 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip880)\" d=\"M1043.61 1544.91 L1059.93 1544.91 L1059.93 1548.85 L1037.99 1548.85 L1037.99 1544.91 Q1040.65 1542.16 1045.23 1537.53 Q1049.84 1532.88 1051.02 1531.53 Q1053.26 1529.01 1054.14 1527.27 Q1055.05 1525.51 1055.05 1523.82 Q1055.05 1521.07 1053.1 1519.33 Q1051.18 1517.6 1048.08 1517.6 Q1045.88 1517.6 1043.43 1518.36 Q1040.99 1519.13 1038.22 1520.68 L1038.22 1515.95 Q1041.04 1514.82 1043.49 1514.24 Q1045.95 1513.66 1047.99 1513.66 Q1053.36 1513.66 1056.55 1516.35 Q1059.74 1519.03 1059.74 1523.52 Q1059.74 1525.65 1058.93 1527.57 Q1058.15 1529.47 1056.04 1532.07 Q1055.46 1532.74 1052.36 1535.95 Q1049.26 1539.15 1043.61 1544.91 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip880)\" d=\"M1079.74 1517.37 Q1076.13 1517.37 1074.3 1520.93 Q1072.5 1524.47 1072.5 1531.6 Q1072.5 1538.71 1074.3 1542.27 Q1076.13 1545.82 1079.74 1545.82 Q1083.38 1545.82 1085.18 1542.27 Q1087.01 1538.71 1087.01 1531.6 Q1087.01 1524.47 1085.18 1520.93 Q1083.38 1517.37 1079.74 1517.37 M1079.74 1513.66 Q1085.55 1513.66 1088.61 1518.27 Q1091.69 1522.85 1091.69 1531.6 Q1091.69 1540.33 1088.61 1544.94 Q1085.55 1549.52 1079.74 1549.52 Q1073.93 1549.52 1070.86 1544.94 Q1067.8 1540.33 1067.8 1531.6 Q1067.8 1522.85 1070.86 1518.27 Q1073.93 1513.66 1079.74 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip880)\" d=\"M1109.91 1517.37 Q1106.3 1517.37 1104.47 1520.93 Q1102.66 1524.47 1102.66 1531.6 Q1102.66 1538.71 1104.47 1542.27 Q1106.3 1545.82 1109.91 1545.82 Q1113.54 1545.82 1115.35 1542.27 Q1117.18 1538.71 1117.18 1531.6 Q1117.18 1524.47 1115.35 1520.93 Q1113.54 1517.37 1109.91 1517.37 M1109.91 1513.66 Q1115.72 1513.66 1118.77 1518.27 Q1121.85 1522.85 1121.85 1531.6 Q1121.85 1540.33 1118.77 1544.94 Q1115.72 1549.52 1109.91 1549.52 Q1104.1 1549.52 1101.02 1544.94 Q1097.96 1540.33 1097.96 1531.6 Q1097.96 1522.85 1101.02 1518.27 Q1104.1 1513.66 1109.91 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip880)\" d=\"M1456.48 1530.21 Q1459.83 1530.93 1461.71 1533.2 Q1463.61 1535.47 1463.61 1538.8 Q1463.61 1543.92 1460.09 1546.72 Q1456.57 1549.52 1450.09 1549.52 Q1447.91 1549.52 1445.6 1549.08 Q1443.31 1548.66 1440.85 1547.81 L1440.85 1543.29 Q1442.8 1544.43 1445.11 1545.01 Q1447.43 1545.58 1449.95 1545.58 Q1454.35 1545.58 1456.64 1543.85 Q1458.95 1542.11 1458.95 1538.8 Q1458.95 1535.75 1456.8 1534.03 Q1454.67 1532.3 1450.85 1532.3 L1446.82 1532.3 L1446.82 1528.45 L1451.04 1528.45 Q1454.49 1528.45 1456.31 1527.09 Q1458.14 1525.7 1458.14 1523.11 Q1458.14 1520.45 1456.25 1519.03 Q1454.37 1517.6 1450.85 1517.6 Q1448.93 1517.6 1446.73 1518.01 Q1444.53 1518.43 1441.89 1519.31 L1441.89 1515.14 Q1444.56 1514.4 1446.87 1514.03 Q1449.21 1513.66 1451.27 1513.66 Q1456.59 1513.66 1459.69 1516.09 Q1462.8 1518.5 1462.8 1522.62 Q1462.8 1525.49 1461.15 1527.48 Q1459.51 1529.45 1456.48 1530.21 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip880)\" d=\"M1482.47 1517.37 Q1478.86 1517.37 1477.03 1520.93 Q1475.23 1524.47 1475.23 1531.6 Q1475.23 1538.71 1477.03 1542.27 Q1478.86 1545.82 1482.47 1545.82 Q1486.11 1545.82 1487.91 1542.27 Q1489.74 1538.71 1489.74 1531.6 Q1489.74 1524.47 1487.91 1520.93 Q1486.11 1517.37 1482.47 1517.37 M1482.47 1513.66 Q1488.28 1513.66 1491.34 1518.27 Q1494.42 1522.85 1494.42 1531.6 Q1494.42 1540.33 1491.34 1544.94 Q1488.28 1549.52 1482.47 1549.52 Q1476.66 1549.52 1473.58 1544.94 Q1470.53 1540.33 1470.53 1531.6 Q1470.53 1522.85 1473.58 1518.27 Q1476.66 1513.66 1482.47 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip880)\" d=\"M1512.63 1517.37 Q1509.02 1517.37 1507.19 1520.93 Q1505.39 1524.47 1505.39 1531.6 Q1505.39 1538.71 1507.19 1542.27 Q1509.02 1545.82 1512.63 1545.82 Q1516.27 1545.82 1518.07 1542.27 Q1519.9 1538.71 1519.9 1531.6 Q1519.9 1524.47 1518.07 1520.93 Q1516.27 1517.37 1512.63 1517.37 M1512.63 1513.66 Q1518.44 1513.66 1521.5 1518.27 Q1524.58 1522.85 1524.58 1531.6 Q1524.58 1540.33 1521.5 1544.94 Q1518.44 1549.52 1512.63 1549.52 Q1506.82 1549.52 1503.74 1544.94 Q1500.69 1540.33 1500.69 1531.6 Q1500.69 1522.85 1503.74 1518.27 Q1506.82 1513.66 1512.63 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip880)\" d=\"M1858.6 1518.36 L1846.8 1536.81 L1858.6 1536.81 L1858.6 1518.36 M1857.38 1514.29 L1863.25 1514.29 L1863.25 1536.81 L1868.19 1536.81 L1868.19 1540.7 L1863.25 1540.7 L1863.25 1548.85 L1858.6 1548.85 L1858.6 1540.7 L1843 1540.7 L1843 1536.19 L1857.38 1514.29 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip880)\" d=\"M1885.92 1517.37 Q1882.31 1517.37 1880.48 1520.93 Q1878.67 1524.47 1878.67 1531.6 Q1878.67 1538.71 1880.48 1542.27 Q1882.31 1545.82 1885.92 1545.82 Q1889.55 1545.82 1891.36 1542.27 Q1893.19 1538.71 1893.19 1531.6 Q1893.19 1524.47 1891.36 1520.93 Q1889.55 1517.37 1885.92 1517.37 M1885.92 1513.66 Q1891.73 1513.66 1894.78 1518.27 Q1897.86 1522.85 1897.86 1531.6 Q1897.86 1540.33 1894.78 1544.94 Q1891.73 1549.52 1885.92 1549.52 Q1880.11 1549.52 1877.03 1544.94 Q1873.97 1540.33 1873.97 1531.6 Q1873.97 1522.85 1877.03 1518.27 Q1880.11 1513.66 1885.92 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip880)\" d=\"M1916.08 1517.37 Q1912.47 1517.37 1910.64 1520.93 Q1908.83 1524.47 1908.83 1531.6 Q1908.83 1538.71 1910.64 1542.27 Q1912.47 1545.82 1916.08 1545.82 Q1919.71 1545.82 1921.52 1542.27 Q1923.35 1538.71 1923.35 1531.6 Q1923.35 1524.47 1921.52 1520.93 Q1919.71 1517.37 1916.08 1517.37 M1916.08 1513.66 Q1921.89 1513.66 1924.94 1518.27 Q1928.02 1522.85 1928.02 1531.6 Q1928.02 1540.33 1924.94 1544.94 Q1921.89 1549.52 1916.08 1549.52 Q1910.27 1549.52 1907.19 1544.94 Q1904.13 1540.33 1904.13 1531.6 Q1904.13 1522.85 1907.19 1518.27 Q1910.27 1513.66 1916.08 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip880)\" d=\"M2247.93 1514.29 L2266.28 1514.29 L2266.28 1518.22 L2252.21 1518.22 L2252.21 1526.7 Q2253.23 1526.35 2254.25 1526.19 Q2255.26 1526 2256.28 1526 Q2262.07 1526 2265.45 1529.17 Q2268.83 1532.34 2268.83 1537.76 Q2268.83 1543.34 2265.36 1546.44 Q2261.88 1549.52 2255.57 1549.52 Q2253.39 1549.52 2251.12 1549.15 Q2248.88 1548.78 2246.47 1548.04 L2246.47 1543.34 Q2248.55 1544.47 2250.77 1545.03 Q2253 1545.58 2255.47 1545.58 Q2259.48 1545.58 2261.82 1543.48 Q2264.15 1541.37 2264.15 1537.76 Q2264.15 1534.15 2261.82 1532.04 Q2259.48 1529.94 2255.47 1529.94 Q2253.6 1529.94 2251.72 1530.35 Q2249.87 1530.77 2247.93 1531.65 L2247.93 1514.29 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip880)\" d=\"M2288.04 1517.37 Q2284.43 1517.37 2282.6 1520.93 Q2280.8 1524.47 2280.8 1531.6 Q2280.8 1538.71 2282.6 1542.27 Q2284.43 1545.82 2288.04 1545.82 Q2291.68 1545.82 2293.48 1542.27 Q2295.31 1538.71 2295.31 1531.6 Q2295.31 1524.47 2293.48 1520.93 Q2291.68 1517.37 2288.04 1517.37 M2288.04 1513.66 Q2293.85 1513.66 2296.91 1518.27 Q2299.99 1522.85 2299.99 1531.6 Q2299.99 1540.33 2296.91 1544.94 Q2293.85 1549.52 2288.04 1549.52 Q2282.23 1549.52 2279.15 1544.94 Q2276.1 1540.33 2276.1 1531.6 Q2276.1 1522.85 2279.15 1518.27 Q2282.23 1513.66 2288.04 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip880)\" d=\"M2318.2 1517.37 Q2314.59 1517.37 2312.76 1520.93 Q2310.96 1524.47 2310.96 1531.6 Q2310.96 1538.71 2312.76 1542.27 Q2314.59 1545.82 2318.2 1545.82 Q2321.84 1545.82 2323.64 1542.27 Q2325.47 1538.71 2325.47 1531.6 Q2325.47 1524.47 2323.64 1520.93 Q2321.84 1517.37 2318.2 1517.37 M2318.2 1513.66 Q2324.01 1513.66 2327.07 1518.27 Q2330.15 1522.85 2330.15 1531.6 Q2330.15 1540.33 2327.07 1544.94 Q2324.01 1549.52 2318.2 1549.52 Q2312.39 1549.52 2309.32 1544.94 Q2306.26 1540.33 2306.26 1531.6 Q2306.26 1522.85 2309.32 1518.27 Q2312.39 1513.66 2318.2 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><polyline clip-path=\"url(#clip882)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  217.933,1283.02 2352.76,1283.02 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip882)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  217.933,594.901 2352.76,594.901 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip880)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  217.933,1486.45 217.933,47.2441 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip880)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  217.933,1283.02 236.831,1283.02 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip880)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  217.933,594.901 236.831,594.901 \n",
       "  \"/>\n",
       "<path clip-path=\"url(#clip880)\" d=\"M52.4722 1302.81 L60.111 1302.81 L60.111 1276.44 L51.8009 1278.11 L51.8009 1273.85 L60.0647 1272.18 L64.7406 1272.18 L64.7406 1302.81 L72.3795 1302.81 L72.3795 1306.74 L52.4722 1306.74 L52.4722 1302.81 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip880)\" d=\"M91.8238 1275.26 Q88.2127 1275.26 86.384 1278.83 Q84.5785 1282.37 84.5785 1289.5 Q84.5785 1296.61 86.384 1300.17 Q88.2127 1303.71 91.8238 1303.71 Q95.458 1303.71 97.2636 1300.17 Q99.0923 1296.61 99.0923 1289.5 Q99.0923 1282.37 97.2636 1278.83 Q95.458 1275.26 91.8238 1275.26 M91.8238 1271.56 Q97.6339 1271.56 100.689 1276.17 Q103.768 1280.75 103.768 1289.5 Q103.768 1298.23 100.689 1302.83 Q97.6339 1307.42 91.8238 1307.42 Q86.0136 1307.42 82.935 1302.83 Q79.8794 1298.23 79.8794 1289.5 Q79.8794 1280.75 82.935 1276.17 Q86.0136 1271.56 91.8238 1271.56 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip880)\" d=\"M104.314 1276.14 L110.52 1276.14 L110.52 1254.71 L103.768 1256.07 L103.768 1252.61 L110.483 1251.25 L114.282 1251.25 L114.282 1276.14 L120.488 1276.14 L120.488 1279.33 L104.314 1279.33 L104.314 1276.14 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip880)\" d=\"M128.162 1274.56 L132.13 1274.56 L132.13 1279.33 L128.162 1279.33 L128.162 1274.56 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip880)\" d=\"M143.678 1276.14 L156.938 1276.14 L156.938 1279.33 L139.108 1279.33 L139.108 1276.14 Q141.271 1273.9 144.995 1270.14 Q148.738 1266.36 149.697 1265.27 Q151.521 1263.22 152.236 1261.81 Q152.969 1260.38 152.969 1259 Q152.969 1256.76 151.389 1255.35 Q149.828 1253.94 147.308 1253.94 Q145.521 1253.94 143.528 1254.56 Q141.553 1255.18 139.296 1256.45 L139.296 1252.61 Q141.591 1251.69 143.584 1251.22 Q145.578 1250.75 147.233 1250.75 Q151.596 1250.75 154.192 1252.93 Q156.787 1255.11 156.787 1258.76 Q156.787 1260.49 156.129 1262.05 Q155.49 1263.59 153.778 1265.7 Q153.308 1266.24 150.788 1268.86 Q148.267 1271.45 143.678 1276.14 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip880)\" d=\"M164.95 1251.25 L179.864 1251.25 L179.864 1254.45 L168.429 1254.45 L168.429 1261.34 Q169.257 1261.05 170.084 1260.92 Q170.912 1260.77 171.739 1260.77 Q176.441 1260.77 179.187 1263.35 Q181.933 1265.92 181.933 1270.33 Q181.933 1274.86 179.112 1277.38 Q176.291 1279.88 171.156 1279.88 Q169.388 1279.88 167.545 1279.58 Q165.721 1279.28 163.765 1278.68 L163.765 1274.86 Q165.458 1275.78 167.263 1276.23 Q169.069 1276.68 171.081 1276.68 Q174.335 1276.68 176.235 1274.97 Q178.134 1273.26 178.134 1270.33 Q178.134 1267.39 176.235 1265.68 Q174.335 1263.97 171.081 1263.97 Q169.558 1263.97 168.034 1264.31 Q166.53 1264.65 164.95 1265.36 L164.95 1251.25 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip880)\" d=\"M51.6634 614.694 L59.3023 614.694 L59.3023 588.328 L50.9921 589.995 L50.9921 585.736 L59.256 584.069 L63.9319 584.069 L63.9319 614.694 L71.5707 614.694 L71.5707 618.629 L51.6634 618.629 L51.6634 614.694 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip880)\" d=\"M91.0151 587.148 Q87.404 587.148 85.5753 590.713 Q83.7697 594.254 83.7697 601.384 Q83.7697 608.49 85.5753 612.055 Q87.404 615.597 91.0151 615.597 Q94.6493 615.597 96.4548 612.055 Q98.2835 608.49 98.2835 601.384 Q98.2835 594.254 96.4548 590.713 Q94.6493 587.148 91.0151 587.148 M91.0151 583.444 Q96.8252 583.444 99.8808 588.05 Q102.959 592.634 102.959 601.384 Q102.959 610.111 99.8808 614.717 Q96.8252 619.3 91.0151 619.3 Q85.2049 619.3 82.1262 614.717 Q79.0707 610.111 79.0707 601.384 Q79.0707 592.634 82.1262 588.05 Q85.2049 583.444 91.0151 583.444 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip880)\" d=\"M103.505 588.021 L109.711 588.021 L109.711 566.599 L102.959 567.953 L102.959 564.493 L109.674 563.139 L113.473 563.139 L113.473 588.021 L119.68 588.021 L119.68 591.219 L103.505 591.219 L103.505 588.021 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip880)\" d=\"M127.353 586.441 L131.322 586.441 L131.322 591.219 L127.353 591.219 L127.353 586.441 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip880)\" d=\"M139.635 563.139 L154.549 563.139 L154.549 566.336 L143.114 566.336 L143.114 573.22 Q143.942 572.937 144.769 572.806 Q145.597 572.655 146.424 572.655 Q151.126 572.655 153.872 575.232 Q156.618 577.809 156.618 582.21 Q156.618 586.742 153.797 589.263 Q150.976 591.764 145.841 591.764 Q144.073 591.764 142.23 591.463 Q140.406 591.162 138.45 590.56 L138.45 586.742 Q140.142 587.664 141.948 588.115 Q143.753 588.567 145.766 588.567 Q149.02 588.567 150.919 586.855 Q152.819 585.144 152.819 582.21 Q152.819 579.276 150.919 577.564 Q149.02 575.853 145.766 575.853 Q144.242 575.853 142.719 576.191 Q141.214 576.53 139.635 577.244 L139.635 563.139 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip880)\" d=\"M172.228 565.64 Q169.294 565.64 167.809 568.536 Q166.342 571.414 166.342 577.207 Q166.342 582.981 167.809 585.877 Q169.294 588.755 172.228 588.755 Q175.181 588.755 176.648 585.877 Q178.134 582.981 178.134 577.207 Q178.134 571.414 176.648 568.536 Q175.181 565.64 172.228 565.64 M172.228 562.631 Q176.949 562.631 179.432 566.374 Q181.933 570.098 181.933 577.207 Q181.933 584.297 179.432 588.04 Q176.949 591.764 172.228 591.764 Q167.508 591.764 165.006 588.04 Q162.524 584.297 162.524 577.207 Q162.524 570.098 165.006 566.374 Q167.508 562.631 172.228 562.631 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><polyline clip-path=\"url(#clip882)\" style=\"stroke:#009af9; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  278.353,-2653.8 282.381,-1743.31 286.409,-1555.58 290.437,-1395.78 294.465,-1252.62 298.493,-1120.36 302.521,-995.674 306.549,-876.686 310.577,-762.415 314.604,-652.389 \n",
       "  318.632,-546.421 322.66,-444.483 326.688,-346.625 330.716,-252.932 334.744,-163.498 338.772,-78.4067 342.8,2.27801 346.828,78.5169 350.856,150.3 354.884,217.65 \n",
       "  358.912,280.619 362.94,339.288 366.968,393.77 370.996,444.2 375.024,490.734 379.052,533.549 383.08,572.833 387.108,608.785 391.136,641.609 395.164,671.513 \n",
       "  399.192,698.702 403.22,723.381 407.248,745.745 411.276,765.985 415.304,784.281 419.332,800.804 423.36,815.715 427.388,829.163 431.416,841.287 435.443,852.214 \n",
       "  439.471,862.063 443.499,870.94 447.527,878.944 451.555,886.164 455.583,892.68 459.611,898.565 463.639,903.886 467.667,908.7 471.695,913.061 475.723,917.017 \n",
       "  479.751,920.611 483.779,923.88 487.807,926.86 491.835,929.58 495.863,932.068 499.891,934.347 503.919,936.441 507.947,938.368 511.975,940.144 516.003,941.787 \n",
       "  520.031,943.308 524.059,944.721 528.087,946.036 532.115,947.263 536.143,948.41 540.171,949.486 544.199,950.496 548.227,951.447 552.255,952.344 556.283,953.193 \n",
       "  560.31,953.997 564.338,954.761 568.366,955.487 572.394,956.179 576.422,956.84 580.45,957.471 584.478,958.076 588.506,958.657 592.534,959.214 596.562,959.75 \n",
       "  600.59,960.266 604.618,960.763 608.646,961.243 612.674,961.707 616.702,962.155 620.73,962.589 624.758,963.009 628.786,963.416 632.814,963.81 636.842,964.193 \n",
       "  640.87,964.565 644.898,964.926 648.926,965.277 652.954,965.618 656.982,965.95 661.01,966.273 665.038,966.588 669.066,966.894 673.094,967.192 677.122,967.483 \n",
       "  681.149,967.766 685.177,968.042 689.205,968.311 693.233,968.573 697.261,968.829 701.289,969.078 705.317,969.322 709.345,969.56 713.373,969.792 717.401,970.018 \n",
       "  721.429,970.239 725.457,970.455 729.485,970.666 733.513,970.871 737.541,971.072 741.569,971.269 745.597,971.46 749.625,971.648 753.653,971.831 757.681,972.01 \n",
       "  761.709,972.185 765.737,972.355 769.765,972.522 773.793,972.686 777.821,972.845 781.849,973.001 785.877,973.154 789.905,973.303 793.933,973.449 797.961,973.592 \n",
       "  801.989,973.731 806.016,973.868 810.044,974.001 814.072,974.132 818.1,974.26 822.128,974.385 826.156,974.507 830.184,974.627 834.212,974.744 838.24,974.859 \n",
       "  842.268,974.971 846.296,975.081 850.324,975.189 854.352,975.294 858.38,975.397 862.408,975.498 866.436,975.597 870.464,975.694 874.492,975.789 878.52,975.882 \n",
       "  882.548,975.974 886.576,976.063 890.604,976.151 894.632,976.237 898.66,976.321 902.688,976.403 906.716,976.484 910.744,976.564 914.772,976.641 918.8,976.718 \n",
       "  922.828,976.793 926.856,976.866 930.883,976.938 934.911,977.009 938.939,977.078 942.967,977.146 946.995,977.213 951.023,977.279 955.051,977.343 959.079,977.407 \n",
       "  963.107,977.469 967.135,977.53 971.163,977.59 975.191,977.649 979.219,977.707 983.247,977.764 987.275,977.82 991.303,977.875 995.331,977.929 999.359,977.982 \n",
       "  1003.39,978.035 1007.41,978.086 1011.44,978.137 1015.47,978.187 1019.5,978.236 1023.53,978.284 1027.55,978.332 1031.58,978.379 1035.61,978.425 1039.64,978.47 \n",
       "  1043.67,978.515 1047.69,978.559 1051.72,978.602 1055.75,978.645 1059.78,978.687 1063.81,978.729 1067.83,978.77 1071.86,978.81 1075.89,978.85 1079.92,978.889 \n",
       "  1083.95,978.928 1087.97,978.966 1092,979.004 1096.03,979.042 1100.06,979.078 1104.09,979.115 1108.11,979.151 1112.14,979.186 1116.17,979.221 1120.2,979.256 \n",
       "  1124.23,979.29 1128.25,979.324 1132.28,979.357 1136.31,979.39 1140.34,979.423 1144.37,979.455 1148.39,979.487 1152.42,979.518 1156.45,979.55 1160.48,979.58 \n",
       "  1164.51,979.611 1168.53,979.641 1172.56,979.671 1176.59,979.701 1180.62,979.73 1184.65,979.759 1188.67,979.788 1192.7,979.817 1196.73,979.845 1200.76,979.873 \n",
       "  1204.79,979.901 1208.81,979.928 1212.84,979.956 1216.87,979.983 1220.9,980.01 1224.93,980.036 1228.95,980.063 1232.98,980.089 1237.01,980.115 1241.04,980.141 \n",
       "  1245.06,980.166 1249.09,980.192 1253.12,980.217 1257.15,980.242 1261.18,980.267 1265.2,980.292 1269.23,980.316 1273.26,980.34 1277.29,980.365 1281.32,980.389 \n",
       "  1285.34,980.413 1289.37,980.436 1293.4,980.46 1297.43,980.483 1301.46,980.507 1305.48,980.53 1309.51,980.553 1313.54,980.576 1317.57,980.599 1321.6,980.621 \n",
       "  1325.62,980.644 1329.65,980.666 1333.68,980.689 1337.71,980.711 1341.74,980.733 1345.76,980.755 1349.79,980.777 1353.82,980.799 1357.85,980.82 1361.88,980.842 \n",
       "  1365.9,980.864 1369.93,980.885 1373.96,980.906 1377.99,980.928 1382.02,980.949 1386.04,980.97 1390.07,980.991 1394.1,981.012 1398.13,981.032 1402.16,981.053 \n",
       "  1406.18,981.074 1410.21,981.094 1414.24,981.115 1418.27,981.135 1422.3,981.156 1426.32,981.176 1430.35,981.196 1434.38,981.217 1438.41,981.237 1442.44,981.257 \n",
       "  1446.46,981.277 1450.49,981.297 1454.52,981.317 1458.55,981.337 1462.58,981.356 1466.6,981.376 1470.63,981.396 1474.66,981.415 1478.69,981.435 1482.71,981.455 \n",
       "  1486.74,981.474 1490.77,981.494 1494.8,981.513 1498.83,981.532 1502.85,981.552 1506.88,981.571 1510.91,981.59 1514.94,981.609 1518.97,981.628 1522.99,981.648 \n",
       "  1527.02,981.667 1531.05,981.686 1535.08,981.705 1539.11,981.724 1543.13,981.743 1547.16,981.761 1551.19,981.78 1555.22,981.799 1559.25,981.818 1563.27,981.837 \n",
       "  1567.3,981.855 1571.33,981.874 1575.36,981.893 1579.39,981.911 1583.41,981.93 1587.44,981.949 1591.47,981.967 1595.5,981.986 1599.53,982.004 1603.55,982.023 \n",
       "  1607.58,982.041 1611.61,982.059 1615.64,982.078 1619.67,982.096 1623.69,982.115 1627.72,982.133 1631.75,982.151 1635.78,982.169 1639.81,982.188 1643.83,982.206 \n",
       "  1647.86,982.224 1651.89,982.242 1655.92,982.261 1659.95,982.279 1663.97,982.297 1668,982.315 1672.03,982.333 1676.06,982.351 1680.09,982.369 1684.11,982.387 \n",
       "  1688.14,982.405 1692.17,982.423 1696.2,982.441 1700.23,982.459 1704.25,982.477 1708.28,982.495 1712.31,982.513 1716.34,982.531 1720.37,982.549 1724.39,982.567 \n",
       "  1728.42,982.584 1732.45,982.602 1736.48,982.62 1740.5,982.638 1744.53,982.656 1748.56,982.673 1752.59,982.691 1756.62,982.709 1760.64,982.727 1764.67,982.744 \n",
       "  1768.7,982.762 1772.73,982.78 1776.76,982.797 1780.78,982.815 1784.81,982.833 1788.84,982.85 1792.87,982.868 1796.9,982.886 1800.92,982.903 1804.95,982.921 \n",
       "  1808.98,982.938 1813.01,982.956 1817.04,982.974 1821.06,982.991 1825.09,983.009 1829.12,983.026 1833.15,983.044 1837.18,983.061 1841.2,983.079 1845.23,983.096 \n",
       "  1849.26,983.114 1853.29,983.131 1857.32,983.149 1861.34,983.166 1865.37,983.183 1869.4,983.201 1873.43,983.218 1877.46,983.236 1881.48,983.253 1885.51,983.27 \n",
       "  1889.54,983.288 1893.57,983.305 1897.6,983.322 1901.62,983.34 1905.65,983.357 1909.68,983.374 1913.71,983.392 1917.74,983.409 1921.76,983.426 1925.79,983.444 \n",
       "  1929.82,983.461 1933.85,983.478 1937.88,983.495 1941.9,983.513 1945.93,983.53 1949.96,983.547 1953.99,983.564 1958.02,983.582 1962.04,983.599 1966.07,983.616 \n",
       "  1970.1,983.633 1974.13,983.65 1978.15,983.667 1982.18,983.685 1986.21,983.702 1990.24,983.719 1994.27,983.736 1998.29,983.753 2002.32,983.77 2006.35,983.787 \n",
       "  2010.38,983.804 2014.41,983.822 2018.43,983.839 2022.46,983.856 2026.49,983.873 2030.52,983.89 2034.55,983.907 2038.57,983.924 2042.6,983.941 2046.63,983.958 \n",
       "  2050.66,983.975 2054.69,983.992 2058.71,984.009 2062.74,984.026 2066.77,984.043 2070.8,984.06 2074.83,984.077 2078.85,984.094 2082.88,984.111 2086.91,984.128 \n",
       "  2090.94,984.145 2094.97,984.162 2098.99,984.179 2103.02,984.196 2107.05,984.213 2111.08,984.23 2115.11,984.246 2119.13,984.263 2123.16,984.28 2127.19,984.297 \n",
       "  2131.22,984.314 2135.25,984.331 2139.27,984.348 2143.3,984.365 2147.33,984.381 2151.36,984.398 2155.39,984.415 2159.41,984.432 2163.44,984.449 2167.47,984.466 \n",
       "  2171.5,984.482 2175.53,984.499 2179.55,984.516 2183.58,984.533 2187.61,984.55 2191.64,984.566 2195.67,984.583 2199.69,984.6 2203.72,984.617 2207.75,984.633 \n",
       "  2211.78,984.65 2215.81,984.667 2219.83,984.684 2223.86,984.7 2227.89,984.717 2231.92,984.734 2235.94,984.75 2239.97,984.767 2244,984.784 2248.03,984.8 \n",
       "  2252.06,984.817 2256.08,984.834 2260.11,984.85 2264.14,984.867 2268.17,984.884 2272.2,984.9 2276.22,984.917 2280.25,984.934 2284.28,984.95 2288.31,984.967 \n",
       "  2292.34,984.983 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip882)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  278.353,1036.06 291.465,1036.06 412.706,1036.06 485.566,1036.06 547.169,1036.06 614.086,1036.06 675.779,1036.06 741.919,1036.06 818.55,1036.06 886.65,1036.06 \n",
       "  946.367,1036.06 1011.48,1036.06 1076.97,1036.06 1149.38,1036.06 1218.28,1036.06 1289.92,1036.06 1350.23,1036.06 1423.85,1036.06 1491.3,1036.06 1553.59,1036.06 \n",
       "  1616.69,1036.06 1687.41,1036.06 1751.49,1036.06 1824.86,1036.06 1892.79,1036.06 1959.76,1036.06 2024.79,1036.06 2091.45,1036.06 2164.48,1036.06 2270.57,1036.06 \n",
       "  2292.34,1036.06 \n",
       "  \"/>\n",
       "<path clip-path=\"url(#clip880)\" d=\"\n",
       "M1965.75 328.498 L2281.6 328.498 L2281.6 95.2176 L1965.75 95.2176  Z\n",
       "  \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
       "<polyline clip-path=\"url(#clip880)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1965.75,328.498 2281.6,328.498 2281.6,95.2176 1965.75,95.2176 1965.75,328.498 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip880)\" style=\"stroke:#009af9; stroke-linecap:round; stroke-linejoin:round; stroke-width:6; stroke-opacity:1; fill:none\" points=\"\n",
       "  1989.47,172.978 2131.79,172.978 \n",
       "  \"/>\n",
       "<path clip-path=\"url(#clip880)\" d=\"M2176.27 202.509 Q2173.56 209.453 2171 211.571 Q2168.43 213.689 2164.12 213.689 L2159.02 213.689 L2159.02 208.342 L2162.77 208.342 Q2165.41 208.342 2166.86 207.092 Q2168.32 205.842 2170.09 201.189 L2171.24 198.273 L2155.51 160.009 L2162.28 160.009 L2174.43 190.425 L2186.59 160.009 L2193.36 160.009 L2176.27 202.509 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip880)\" d=\"M2204.29 192.995 L2215.75 192.995 L2215.75 153.446 L2203.29 155.946 L2203.29 149.558 L2215.68 147.058 L2222.7 147.058 L2222.7 192.995 L2234.15 192.995 L2234.15 198.898 L2204.29 198.898 L2204.29 192.995 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><polyline clip-path=\"url(#clip880)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:6; stroke-opacity:1; fill:none\" points=\"\n",
       "  1989.47,250.738 2131.79,250.738 \n",
       "  \"/>\n",
       "<path clip-path=\"url(#clip880)\" d=\"M2176.27 280.269 Q2173.56 287.213 2171 289.331 Q2168.43 291.449 2164.12 291.449 L2159.02 291.449 L2159.02 286.102 L2162.77 286.102 Q2165.41 286.102 2166.86 284.852 Q2168.32 283.602 2170.09 278.949 L2171.24 276.033 L2155.51 237.769 L2162.28 237.769 L2174.43 268.185 L2186.59 237.769 L2193.36 237.769 L2176.27 280.269 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip880)\" d=\"M2209.12 270.755 L2233.6 270.755 L2233.6 276.658 L2200.68 276.658 L2200.68 270.755 Q2204.68 266.623 2211.55 259.678 Q2218.46 252.699 2220.23 250.685 Q2223.6 246.901 2224.92 244.297 Q2226.27 241.658 2226.27 239.123 Q2226.27 234.991 2223.36 232.387 Q2220.47 229.783 2215.82 229.783 Q2212.52 229.783 2208.84 230.929 Q2205.2 232.074 2201.03 234.401 L2201.03 227.318 Q2205.27 225.616 2208.95 224.748 Q2212.63 223.88 2215.68 223.88 Q2223.74 223.88 2228.53 227.908 Q2233.32 231.936 2233.32 238.672 Q2233.32 241.866 2232.11 244.748 Q2230.93 247.595 2227.77 251.484 Q2226.9 252.491 2222.24 257.317 Q2217.59 262.109 2209.12 270.755 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /></svg>\n"
      ]
     },
     "execution_count": 122,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "c0 = V \\ y\n",
    "l0 = 0.5 * norm(V * c0 - y)^2\n",
    "@show cond(V)\n",
    "@show cond(V' * V)\n",
    "plot(lhist, yscale=:log10, ylim=(15, 50))\n",
    "plot!(i -> l0, color=:black)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8c8e60c7",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# Why use QR vs gradient-based optimization?"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7a95e2e9",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# Nonlinear models\n",
    "\n",
    "Instead of the linear model\n",
    "$$ f(x,c) = V(x) c = c_0 + c_1 \\underbrace{x}_{T_1(x)} + c_2 T_2(x) + \\dotsb $$\n",
    "let's consider a rational model with only three parameters\n",
    "$$ f(x,c) = \\frac{1}{c_1 + c_2 x + c_3 x^2} = (c_1 + c_2 x + c_3 x^2)^{-1} . $$\n",
    "We'll use the same loss function\n",
    "$$ L(c; x,y) = \\frac 1 2 \\lVert f(x,c) - y \\rVert^2 . $$\n",
    "\n",
    "We will also need the gradient\n",
    "$$ \\nabla_c L(c; x,y) = \\big( f(x,c) - y \\big)^T \\nabla_c f(x,c) $$\n",
    "where\n",
    "\\begin{align}\n",
    "\\frac{\\partial f(x,c)}{\\partial c_1} &= -(c_1 + c_2 x + c_3 x^2)^{-2} = - f(x,c)^2 \\\\\n",
    "\\frac{\\partial f(x,c)}{\\partial c_2} &= -(c_1 + c_2 x + c_3 x^2)^{-2} x = - f(x,c)^2 x \\\\\n",
    "\\frac{\\partial f(x,c)}{\\partial c_3} &= -(c_1 + c_2 x + c_3 x^2)^{-2} x^2 = - f(x,c)^2 x^2 .\n",
    "\\end{align}"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "247e6403",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# Fitting a rational function"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 123,
   "id": "d6c610e7",
   "metadata": {
    "cell_style": "split"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "gradient (generic function with 1 method)"
      ]
     },
     "execution_count": 123,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "f(x, c) = 1 ./ (c[1] .+ c[2].*x + c[3].*x.^2)\n",
    "function gradf(x, c)\n",
    "    f2 = f(x, c).^2\n",
    "    [-f2 -f2.*x -f2.*x.^2]\n",
    "end\n",
    "function loss(c)\n",
    "    r = f(x, c) - y\n",
    "    0.5 * r' * r\n",
    "end\n",
    "function gradient(c)\n",
    "    r = f(x, c) - y\n",
    "    vec(r' * gradf(x, c))\n",
    "end"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 138,
   "id": "ffd37ce6",
   "metadata": {
    "cell_style": "split"
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "┌ Warning: scale linear is unsupported with Plots.GRBackend().  Choose from: [:identity, :log10]\n",
      "└ @ Plots /home/jed/.julia/packages/Plots/4UTBj/src/args.jl:1662\n"
     ]
    },
    {
     "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=\"clip480\">\n",
       "    <rect x=\"0\" y=\"0\" width=\"2400\" height=\"1600\"/>\n",
       "  </clipPath>\n",
       "</defs>\n",
       "<path clip-path=\"url(#clip480)\" 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=\"clip481\">\n",
       "    <rect x=\"480\" y=\"0\" width=\"1681\" height=\"1600\"/>\n",
       "  </clipPath>\n",
       "</defs>\n",
       "<path clip-path=\"url(#clip480)\" d=\"\n",
       "M141.853 1486.45 L2352.76 1486.45 L2352.76 123.472 L141.853 123.472  Z\n",
       "  \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
       "<defs>\n",
       "  <clipPath id=\"clip482\">\n",
       "    <rect x=\"141\" y=\"123\" width=\"2212\" height=\"1364\"/>\n",
       "  </clipPath>\n",
       "</defs>\n",
       "<polyline clip-path=\"url(#clip482)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  200.254,1486.45 200.254,123.472 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip482)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  617.406,1486.45 617.406,123.472 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip482)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  1034.56,1486.45 1034.56,123.472 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip482)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  1451.71,1486.45 1451.71,123.472 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip482)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  1868.86,1486.45 1868.86,123.472 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip482)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  2286.01,1486.45 2286.01,123.472 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip480)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  141.853,1486.45 2352.76,1486.45 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip480)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  200.254,1486.45 200.254,1467.55 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip480)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  617.406,1486.45 617.406,1467.55 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip480)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1034.56,1486.45 1034.56,1467.55 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip480)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1451.71,1486.45 1451.71,1467.55 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip480)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1868.86,1486.45 1868.86,1467.55 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip480)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  2286.01,1486.45 2286.01,1467.55 \n",
       "  \"/>\n",
       "<path clip-path=\"url(#clip480)\" d=\"M200.254 1517.37 Q196.643 1517.37 194.814 1520.93 Q193.009 1524.47 193.009 1531.6 Q193.009 1538.71 194.814 1542.27 Q196.643 1545.82 200.254 1545.82 Q203.888 1545.82 205.694 1542.27 Q207.523 1538.71 207.523 1531.6 Q207.523 1524.47 205.694 1520.93 Q203.888 1517.37 200.254 1517.37 M200.254 1513.66 Q206.064 1513.66 209.12 1518.27 Q212.199 1522.85 212.199 1531.6 Q212.199 1540.33 209.12 1544.94 Q206.064 1549.52 200.254 1549.52 Q194.444 1549.52 191.365 1544.94 Q188.31 1540.33 188.31 1531.6 Q188.31 1522.85 191.365 1518.27 Q194.444 1513.66 200.254 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M577.012 1544.91 L584.651 1544.91 L584.651 1518.55 L576.341 1520.21 L576.341 1515.95 L584.605 1514.29 L589.281 1514.29 L589.281 1544.91 L596.92 1544.91 L596.92 1548.85 L577.012 1548.85 L577.012 1544.91 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M616.364 1517.37 Q612.753 1517.37 610.924 1520.93 Q609.119 1524.47 609.119 1531.6 Q609.119 1538.71 610.924 1542.27 Q612.753 1545.82 616.364 1545.82 Q619.998 1545.82 621.804 1542.27 Q623.632 1538.71 623.632 1531.6 Q623.632 1524.47 621.804 1520.93 Q619.998 1517.37 616.364 1517.37 M616.364 1513.66 Q622.174 1513.66 625.23 1518.27 Q628.308 1522.85 628.308 1531.6 Q628.308 1540.33 625.23 1544.94 Q622.174 1549.52 616.364 1549.52 Q610.554 1549.52 607.475 1544.94 Q604.42 1540.33 604.42 1531.6 Q604.42 1522.85 607.475 1518.27 Q610.554 1513.66 616.364 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M646.526 1517.37 Q642.915 1517.37 641.086 1520.93 Q639.281 1524.47 639.281 1531.6 Q639.281 1538.71 641.086 1542.27 Q642.915 1545.82 646.526 1545.82 Q650.16 1545.82 651.966 1542.27 Q653.794 1538.71 653.794 1531.6 Q653.794 1524.47 651.966 1520.93 Q650.16 1517.37 646.526 1517.37 M646.526 1513.66 Q652.336 1513.66 655.392 1518.27 Q658.47 1522.85 658.47 1531.6 Q658.47 1540.33 655.392 1544.94 Q652.336 1549.52 646.526 1549.52 Q640.716 1549.52 637.637 1544.94 Q634.581 1540.33 634.581 1531.6 Q634.581 1522.85 637.637 1518.27 Q640.716 1513.66 646.526 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M998.249 1544.91 L1014.57 1544.91 L1014.57 1548.85 L992.625 1548.85 L992.625 1544.91 Q995.287 1542.16 999.87 1537.53 Q1004.48 1532.88 1005.66 1531.53 Q1007.9 1529.01 1008.78 1527.27 Q1009.68 1525.51 1009.68 1523.82 Q1009.68 1521.07 1007.74 1519.33 Q1005.82 1517.6 1002.72 1517.6 Q1000.52 1517.6 998.064 1518.36 Q995.634 1519.13 992.856 1520.68 L992.856 1515.95 Q995.68 1514.82 998.134 1514.24 Q1000.59 1513.66 1002.62 1513.66 Q1007.99 1513.66 1011.19 1516.35 Q1014.38 1519.03 1014.38 1523.52 Q1014.38 1525.65 1013.57 1527.57 Q1012.79 1529.47 1010.68 1532.07 Q1010.1 1532.74 1007 1535.95 Q1003.9 1539.15 998.249 1544.91 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M1034.38 1517.37 Q1030.77 1517.37 1028.94 1520.93 Q1027.14 1524.47 1027.14 1531.6 Q1027.14 1538.71 1028.94 1542.27 Q1030.77 1545.82 1034.38 1545.82 Q1038.02 1545.82 1039.82 1542.27 Q1041.65 1538.71 1041.65 1531.6 Q1041.65 1524.47 1039.82 1520.93 Q1038.02 1517.37 1034.38 1517.37 M1034.38 1513.66 Q1040.19 1513.66 1043.25 1518.27 Q1046.33 1522.85 1046.33 1531.6 Q1046.33 1540.33 1043.25 1544.94 Q1040.19 1549.52 1034.38 1549.52 Q1028.57 1549.52 1025.49 1544.94 Q1022.44 1540.33 1022.44 1531.6 Q1022.44 1522.85 1025.49 1518.27 Q1028.57 1513.66 1034.38 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M1064.55 1517.37 Q1060.93 1517.37 1059.11 1520.93 Q1057.3 1524.47 1057.3 1531.6 Q1057.3 1538.71 1059.11 1542.27 Q1060.93 1545.82 1064.55 1545.82 Q1068.18 1545.82 1069.99 1542.27 Q1071.81 1538.71 1071.81 1531.6 Q1071.81 1524.47 1069.99 1520.93 Q1068.18 1517.37 1064.55 1517.37 M1064.55 1513.66 Q1070.36 1513.66 1073.41 1518.27 Q1076.49 1522.85 1076.49 1531.6 Q1076.49 1540.33 1073.41 1544.94 Q1070.36 1549.52 1064.55 1549.52 Q1058.74 1549.52 1055.66 1544.94 Q1052.6 1540.33 1052.6 1531.6 Q1052.6 1522.85 1055.66 1518.27 Q1058.74 1513.66 1064.55 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M1425.47 1530.21 Q1428.83 1530.93 1430.7 1533.2 Q1432.6 1535.47 1432.6 1538.8 Q1432.6 1543.92 1429.08 1546.72 Q1425.56 1549.52 1419.08 1549.52 Q1416.91 1549.52 1414.59 1549.08 Q1412.3 1548.66 1409.85 1547.81 L1409.85 1543.29 Q1411.79 1544.43 1414.1 1545.01 Q1416.42 1545.58 1418.94 1545.58 Q1423.34 1545.58 1425.63 1543.85 Q1427.95 1542.11 1427.95 1538.8 Q1427.95 1535.75 1425.79 1534.03 Q1423.66 1532.3 1419.85 1532.3 L1415.82 1532.3 L1415.82 1528.45 L1420.03 1528.45 Q1423.48 1528.45 1425.31 1527.09 Q1427.14 1525.7 1427.14 1523.11 Q1427.14 1520.45 1425.24 1519.03 Q1423.36 1517.6 1419.85 1517.6 Q1417.92 1517.6 1415.73 1518.01 Q1413.53 1518.43 1410.89 1519.31 L1410.89 1515.14 Q1413.55 1514.4 1415.86 1514.03 Q1418.2 1513.66 1420.26 1513.66 Q1425.59 1513.66 1428.69 1516.09 Q1431.79 1518.5 1431.79 1522.62 Q1431.79 1525.49 1430.15 1527.48 Q1428.5 1529.45 1425.47 1530.21 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M1451.47 1517.37 Q1447.85 1517.37 1446.03 1520.93 Q1444.22 1524.47 1444.22 1531.6 Q1444.22 1538.71 1446.03 1542.27 Q1447.85 1545.82 1451.47 1545.82 Q1455.1 1545.82 1456.91 1542.27 Q1458.73 1538.71 1458.73 1531.6 Q1458.73 1524.47 1456.91 1520.93 Q1455.1 1517.37 1451.47 1517.37 M1451.47 1513.66 Q1457.28 1513.66 1460.33 1518.27 Q1463.41 1522.85 1463.41 1531.6 Q1463.41 1540.33 1460.33 1544.94 Q1457.28 1549.52 1451.47 1549.52 Q1445.66 1549.52 1442.58 1544.94 Q1439.52 1540.33 1439.52 1531.6 Q1439.52 1522.85 1442.58 1518.27 Q1445.66 1513.66 1451.47 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M1481.63 1517.37 Q1478.02 1517.37 1476.19 1520.93 Q1474.38 1524.47 1474.38 1531.6 Q1474.38 1538.71 1476.19 1542.27 Q1478.02 1545.82 1481.63 1545.82 Q1485.26 1545.82 1487.07 1542.27 Q1488.9 1538.71 1488.9 1531.6 Q1488.9 1524.47 1487.07 1520.93 Q1485.26 1517.37 1481.63 1517.37 M1481.63 1513.66 Q1487.44 1513.66 1490.49 1518.27 Q1493.57 1522.85 1493.57 1531.6 Q1493.57 1540.33 1490.49 1544.94 Q1487.44 1549.52 1481.63 1549.52 Q1475.82 1549.52 1472.74 1544.94 Q1469.68 1540.33 1469.68 1531.6 Q1469.68 1522.85 1472.74 1518.27 Q1475.82 1513.66 1481.63 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M1841.95 1518.36 L1830.15 1536.81 L1841.95 1536.81 L1841.95 1518.36 M1840.72 1514.29 L1846.6 1514.29 L1846.6 1536.81 L1851.53 1536.81 L1851.53 1540.7 L1846.6 1540.7 L1846.6 1548.85 L1841.95 1548.85 L1841.95 1540.7 L1826.35 1540.7 L1826.35 1536.19 L1840.72 1514.29 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M1869.27 1517.37 Q1865.65 1517.37 1863.83 1520.93 Q1862.02 1524.47 1862.02 1531.6 Q1862.02 1538.71 1863.83 1542.27 Q1865.65 1545.82 1869.27 1545.82 Q1872.9 1545.82 1874.71 1542.27 Q1876.53 1538.71 1876.53 1531.6 Q1876.53 1524.47 1874.71 1520.93 Q1872.9 1517.37 1869.27 1517.37 M1869.27 1513.66 Q1875.08 1513.66 1878.13 1518.27 Q1881.21 1522.85 1881.21 1531.6 Q1881.21 1540.33 1878.13 1544.94 Q1875.08 1549.52 1869.27 1549.52 Q1863.46 1549.52 1860.38 1544.94 Q1857.32 1540.33 1857.32 1531.6 Q1857.32 1522.85 1860.38 1518.27 Q1863.46 1513.66 1869.27 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M1899.43 1517.37 Q1895.82 1517.37 1893.99 1520.93 Q1892.18 1524.47 1892.18 1531.6 Q1892.18 1538.71 1893.99 1542.27 Q1895.82 1545.82 1899.43 1545.82 Q1903.06 1545.82 1904.87 1542.27 Q1906.7 1538.71 1906.7 1531.6 Q1906.7 1524.47 1904.87 1520.93 Q1903.06 1517.37 1899.43 1517.37 M1899.43 1513.66 Q1905.24 1513.66 1908.29 1518.27 Q1911.37 1522.85 1911.37 1531.6 Q1911.37 1540.33 1908.29 1544.94 Q1905.24 1549.52 1899.43 1549.52 Q1893.62 1549.52 1890.54 1544.94 Q1887.48 1540.33 1887.48 1531.6 Q1887.48 1522.85 1890.54 1518.27 Q1893.62 1513.66 1899.43 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M2245.63 1514.29 L2263.99 1514.29 L2263.99 1518.22 L2249.91 1518.22 L2249.91 1526.7 Q2250.93 1526.35 2251.95 1526.19 Q2252.97 1526 2253.99 1526 Q2259.77 1526 2263.15 1529.17 Q2266.53 1532.34 2266.53 1537.76 Q2266.53 1543.34 2263.06 1546.44 Q2259.59 1549.52 2253.27 1549.52 Q2251.09 1549.52 2248.82 1549.15 Q2246.58 1548.78 2244.17 1548.04 L2244.17 1543.34 Q2246.25 1544.47 2248.48 1545.03 Q2250.7 1545.58 2253.18 1545.58 Q2257.18 1545.58 2259.52 1543.48 Q2261.86 1541.37 2261.86 1537.76 Q2261.86 1534.15 2259.52 1532.04 Q2257.18 1529.94 2253.18 1529.94 Q2251.3 1529.94 2249.43 1530.35 Q2247.57 1530.77 2245.63 1531.65 L2245.63 1514.29 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M2285.75 1517.37 Q2282.13 1517.37 2280.31 1520.93 Q2278.5 1524.47 2278.5 1531.6 Q2278.5 1538.71 2280.31 1542.27 Q2282.13 1545.82 2285.75 1545.82 Q2289.38 1545.82 2291.19 1542.27 Q2293.01 1538.71 2293.01 1531.6 Q2293.01 1524.47 2291.19 1520.93 Q2289.38 1517.37 2285.75 1517.37 M2285.75 1513.66 Q2291.56 1513.66 2294.61 1518.27 Q2297.69 1522.85 2297.69 1531.6 Q2297.69 1540.33 2294.61 1544.94 Q2291.56 1549.52 2285.75 1549.52 Q2279.94 1549.52 2276.86 1544.94 Q2273.8 1540.33 2273.8 1531.6 Q2273.8 1522.85 2276.86 1518.27 Q2279.94 1513.66 2285.75 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M2315.91 1517.37 Q2312.3 1517.37 2310.47 1520.93 Q2308.66 1524.47 2308.66 1531.6 Q2308.66 1538.71 2310.47 1542.27 Q2312.3 1545.82 2315.91 1545.82 Q2319.54 1545.82 2321.35 1542.27 Q2323.18 1538.71 2323.18 1531.6 Q2323.18 1524.47 2321.35 1520.93 Q2319.54 1517.37 2315.91 1517.37 M2315.91 1513.66 Q2321.72 1513.66 2324.77 1518.27 Q2327.85 1522.85 2327.85 1531.6 Q2327.85 1540.33 2324.77 1544.94 Q2321.72 1549.52 2315.91 1549.52 Q2310.1 1549.52 2307.02 1544.94 Q2303.96 1540.33 2303.96 1531.6 Q2303.96 1522.85 2307.02 1518.27 Q2310.1 1513.66 2315.91 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><polyline clip-path=\"url(#clip482)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  141.853,1486.45 2352.76,1486.45 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip482)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  141.853,1145.7 2352.76,1145.7 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip482)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  141.853,804.96 2352.76,804.96 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip482)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  141.853,464.216 2352.76,464.216 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip482)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  141.853,123.472 2352.76,123.472 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip480)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  141.853,1486.45 141.853,123.472 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip480)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  141.853,1486.45 160.751,1486.45 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip480)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  141.853,1145.7 160.751,1145.7 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip480)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  141.853,804.96 160.751,804.96 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip480)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  141.853,464.216 160.751,464.216 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip480)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  141.853,123.472 160.751,123.472 \n",
       "  \"/>\n",
       "<path clip-path=\"url(#clip480)\" d=\"M57.7745 1499.79 L74.0939 1499.79 L74.0939 1503.73 L52.1495 1503.73 L52.1495 1499.79 Q54.8115 1497.04 59.3949 1492.41 Q64.0013 1487.76 65.1819 1486.41 Q67.4272 1483.89 68.3068 1482.15 Q69.2096 1480.39 69.2096 1478.7 Q69.2096 1475.95 67.2652 1474.21 Q65.3439 1472.48 62.2421 1472.48 Q60.043 1472.48 57.5893 1473.24 Q55.1588 1474.01 52.381 1475.56 L52.381 1470.83 Q55.2051 1469.7 57.6588 1469.12 Q60.1124 1468.54 62.1495 1468.54 Q67.5198 1468.54 70.7142 1471.23 Q73.9087 1473.91 73.9087 1478.4 Q73.9087 1480.53 73.0985 1482.45 Q72.3115 1484.35 70.205 1486.95 Q69.6263 1487.62 66.5245 1490.83 Q63.4226 1494.03 57.7745 1499.79 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M93.9086 1472.25 Q90.2975 1472.25 88.4688 1475.81 Q86.6632 1479.35 86.6632 1486.48 Q86.6632 1493.59 88.4688 1497.15 Q90.2975 1500.7 93.9086 1500.7 Q97.5428 1500.7 99.3483 1497.15 Q101.177 1493.59 101.177 1486.48 Q101.177 1479.35 99.3483 1475.81 Q97.5428 1472.25 93.9086 1472.25 M93.9086 1468.54 Q99.7187 1468.54 102.774 1473.15 Q105.853 1477.73 105.853 1486.48 Q105.853 1495.21 102.774 1499.82 Q99.7187 1504.4 93.9086 1504.4 Q88.0984 1504.4 85.0197 1499.82 Q81.9642 1495.21 81.9642 1486.48 Q81.9642 1477.73 85.0197 1473.15 Q88.0984 1468.54 93.9086 1468.54 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M67.9133 1144.35 Q71.2698 1145.07 73.1448 1147.34 Q75.0429 1149.6 75.0429 1152.94 Q75.0429 1158.05 71.5244 1160.85 Q68.0059 1163.66 61.5245 1163.66 Q59.3486 1163.66 57.0338 1163.22 Q54.7421 1162.8 52.2884 1161.94 L52.2884 1157.43 Q54.2328 1158.56 56.5477 1159.14 Q58.8625 1159.72 61.3856 1159.72 Q65.7837 1159.72 68.0754 1157.98 Q70.3902 1156.25 70.3902 1152.94 Q70.3902 1149.88 68.2374 1148.17 Q66.1078 1146.43 62.2884 1146.43 L58.2606 1146.43 L58.2606 1142.59 L62.4735 1142.59 Q65.9226 1142.59 67.7513 1141.22 Q69.58 1139.84 69.58 1137.24 Q69.58 1134.58 67.6819 1133.17 Q65.8069 1131.73 62.2884 1131.73 Q60.3671 1131.73 58.168 1132.15 Q55.969 1132.57 53.3301 1133.45 L53.3301 1129.28 Q55.9921 1128.54 58.3069 1128.17 Q60.6449 1127.8 62.705 1127.8 Q68.0291 1127.8 71.1309 1130.23 Q74.2327 1132.64 74.2327 1136.76 Q74.2327 1139.63 72.5892 1141.62 Q70.9457 1143.59 67.9133 1144.35 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M93.9086 1131.5 Q90.2975 1131.5 88.4688 1135.07 Q86.6632 1138.61 86.6632 1145.74 Q86.6632 1152.85 88.4688 1156.41 Q90.2975 1159.95 93.9086 1159.95 Q97.5428 1159.95 99.3483 1156.41 Q101.177 1152.85 101.177 1145.74 Q101.177 1138.61 99.3483 1135.07 Q97.5428 1131.5 93.9086 1131.5 M93.9086 1127.8 Q99.7187 1127.8 102.774 1132.41 Q105.853 1136.99 105.853 1145.74 Q105.853 1154.47 102.774 1159.07 Q99.7187 1163.66 93.9086 1163.66 Q88.0984 1163.66 85.0197 1159.07 Q81.9642 1154.47 81.9642 1145.74 Q81.9642 1136.99 85.0197 1132.41 Q88.0984 1127.8 93.9086 1127.8 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M66.5939 791.754 L54.7884 810.203 L66.5939 810.203 L66.5939 791.754 M65.367 787.68 L71.2466 787.68 L71.2466 810.203 L76.1772 810.203 L76.1772 814.092 L71.2466 814.092 L71.2466 822.24 L66.5939 822.24 L66.5939 814.092 L50.9921 814.092 L50.9921 809.578 L65.367 787.68 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M93.9086 790.759 Q90.2975 790.759 88.4688 794.323 Q86.6632 797.865 86.6632 804.995 Q86.6632 812.101 88.4688 815.666 Q90.2975 819.208 93.9086 819.208 Q97.5428 819.208 99.3483 815.666 Q101.177 812.101 101.177 804.995 Q101.177 797.865 99.3483 794.323 Q97.5428 790.759 93.9086 790.759 M93.9086 787.055 Q99.7187 787.055 102.774 791.661 Q105.853 796.245 105.853 804.995 Q105.853 813.722 102.774 818.328 Q99.7187 822.911 93.9086 822.911 Q88.0984 822.911 85.0197 818.328 Q81.9642 813.722 81.9642 804.995 Q81.9642 796.245 85.0197 791.661 Q88.0984 787.055 93.9086 787.055 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M53.793 446.936 L72.1494 446.936 L72.1494 450.871 L58.0754 450.871 L58.0754 459.343 Q59.0939 458.996 60.1124 458.834 Q61.131 458.649 62.1495 458.649 Q67.9365 458.649 71.3161 461.82 Q74.6957 464.992 74.6957 470.408 Q74.6957 475.987 71.2235 479.089 Q67.7513 482.167 61.4319 482.167 Q59.256 482.167 56.9875 481.797 Q54.7421 481.427 52.3347 480.686 L52.3347 475.987 Q54.418 477.121 56.6402 477.677 Q58.8625 478.232 61.3393 478.232 Q65.3439 478.232 67.6819 476.126 Q70.0198 474.019 70.0198 470.408 Q70.0198 466.797 67.6819 464.691 Q65.3439 462.584 61.3393 462.584 Q59.4643 462.584 57.5893 463.001 Q55.7375 463.417 53.793 464.297 L53.793 446.936 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M93.9086 450.015 Q90.2975 450.015 88.4688 453.58 Q86.6632 457.121 86.6632 464.251 Q86.6632 471.357 88.4688 474.922 Q90.2975 478.464 93.9086 478.464 Q97.5428 478.464 99.3483 474.922 Q101.177 471.357 101.177 464.251 Q101.177 457.121 99.3483 453.58 Q97.5428 450.015 93.9086 450.015 M93.9086 446.311 Q99.7187 446.311 102.774 450.918 Q105.853 455.501 105.853 464.251 Q105.853 472.978 102.774 477.584 Q99.7187 482.167 93.9086 482.167 Q88.0984 482.167 85.0197 477.584 Q81.9642 472.978 81.9642 464.251 Q81.9642 455.501 85.0197 450.918 Q88.0984 446.311 93.9086 446.311 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M64.3254 121.609 Q61.1773 121.609 59.3254 123.761 Q57.4967 125.914 57.4967 129.664 Q57.4967 133.391 59.3254 135.567 Q61.1773 137.72 64.3254 137.72 Q67.4735 137.72 69.3022 135.567 Q71.1541 133.391 71.1541 129.664 Q71.1541 125.914 69.3022 123.761 Q67.4735 121.609 64.3254 121.609 M73.6077 106.956 L73.6077 111.215 Q71.8485 110.382 70.0429 109.942 Q68.2606 109.502 66.5013 109.502 Q61.8717 109.502 59.418 112.627 Q56.9875 115.752 56.6402 122.072 Q58.006 120.058 60.0662 118.993 Q62.1263 117.905 64.6032 117.905 Q69.8115 117.905 72.8207 121.076 Q75.8531 124.224 75.8531 129.664 Q75.8531 134.988 72.705 138.206 Q69.5568 141.423 64.3254 141.423 Q58.33 141.423 55.1588 136.84 Q51.9875 132.234 51.9875 123.507 Q51.9875 115.312 55.8764 110.451 Q59.7652 105.567 66.3161 105.567 Q68.0754 105.567 69.8578 105.914 Q71.6633 106.262 73.6077 106.956 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M93.9086 109.271 Q90.2975 109.271 88.4688 112.836 Q86.6632 116.377 86.6632 123.507 Q86.6632 130.613 88.4688 134.178 Q90.2975 137.72 93.9086 137.72 Q97.5428 137.72 99.3483 134.178 Q101.177 130.613 101.177 123.507 Q101.177 116.377 99.3483 112.836 Q97.5428 109.271 93.9086 109.271 M93.9086 105.567 Q99.7187 105.567 102.774 110.174 Q105.853 114.757 105.853 123.507 Q105.853 132.234 102.774 136.84 Q99.7187 141.423 93.9086 141.423 Q88.0984 141.423 85.0197 136.84 Q81.9642 132.234 81.9642 123.507 Q81.9642 114.757 85.0197 110.174 Q88.0984 105.567 93.9086 105.567 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M687.692 12.096 L695.875 12.096 L695.875 65.6895 L725.325 65.6895 L725.325 72.576 L687.692 72.576 L687.692 12.096 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M749.712 32.4315 Q743.716 32.4315 740.232 37.1306 Q736.749 41.7891 736.749 49.9314 Q736.749 58.0738 740.192 62.7728 Q743.676 67.4314 749.712 67.4314 Q755.666 67.4314 759.15 62.7323 Q762.634 58.0333 762.634 49.9314 Q762.634 41.8701 759.15 37.1711 Q755.666 32.4315 749.712 32.4315 M749.712 26.1121 Q759.434 26.1121 764.984 32.4315 Q770.533 38.7509 770.533 49.9314 Q770.533 61.0714 764.984 67.4314 Q759.434 73.7508 749.712 73.7508 Q739.949 73.7508 734.399 67.4314 Q728.89 61.0714 728.89 49.9314 Q728.89 38.7509 734.399 32.4315 Q739.949 26.1121 749.712 26.1121 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M811.812 28.5427 L811.812 35.5912 Q808.652 33.9709 805.25 33.1607 Q801.847 32.3505 798.201 32.3505 Q792.651 32.3505 789.856 34.0519 Q787.101 35.7533 787.101 39.156 Q787.101 41.7486 789.086 43.2475 Q791.071 44.7058 797.067 46.0426 L799.619 46.6097 Q807.559 48.3111 810.88 51.4303 Q814.243 54.509 814.243 60.0587 Q814.243 66.3781 809.219 70.0644 Q804.237 73.7508 795.487 73.7508 Q791.841 73.7508 787.871 73.0216 Q783.942 72.3329 779.567 70.9151 L779.567 63.2184 Q783.699 65.3654 787.709 66.4591 Q791.719 67.5124 795.649 67.5124 Q800.915 67.5124 803.751 65.73 Q806.586 63.9071 806.586 60.6258 Q806.586 57.5877 804.52 55.9673 Q802.495 54.3469 795.568 52.8481 L792.975 52.2405 Q786.048 50.7821 782.97 47.7845 Q779.891 44.7463 779.891 39.4801 Q779.891 33.0797 784.428 29.5959 Q788.965 26.1121 797.31 26.1121 Q801.442 26.1121 805.087 26.7198 Q808.733 27.3274 811.812 28.5427 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M855.035 28.5427 L855.035 35.5912 Q851.875 33.9709 848.473 33.1607 Q845.07 32.3505 841.424 32.3505 Q835.874 32.3505 833.079 34.0519 Q830.325 35.7533 830.325 39.156 Q830.325 41.7486 832.31 43.2475 Q834.294 44.7058 840.29 46.0426 L842.842 46.6097 Q850.782 48.3111 854.103 51.4303 Q857.466 54.509 857.466 60.0587 Q857.466 66.3781 852.443 70.0644 Q847.46 73.7508 838.71 73.7508 Q835.064 73.7508 831.094 73.0216 Q827.165 72.3329 822.79 70.9151 L822.79 63.2184 Q826.922 65.3654 830.932 66.4591 Q834.943 67.5124 838.872 67.5124 Q844.138 67.5124 846.974 65.73 Q849.809 63.9071 849.809 60.6258 Q849.809 57.5877 847.743 55.9673 Q845.718 54.3469 838.791 52.8481 L836.198 52.2405 Q829.271 50.7821 826.193 47.7845 Q823.114 44.7463 823.114 39.4801 Q823.114 33.0797 827.651 29.5959 Q832.188 26.1121 840.533 26.1121 Q844.665 26.1121 848.311 26.7198 Q851.956 27.3274 855.035 28.5427 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M903.808 65.6895 L932.367 65.6895 L932.367 72.576 L893.964 72.576 L893.964 65.6895 Q898.623 60.8689 906.644 52.7671 Q914.705 44.6248 916.771 42.2752 Q920.7 37.8598 922.24 34.8216 Q923.819 31.7429 923.819 28.7857 Q923.819 23.9651 920.417 20.927 Q917.054 17.8888 911.626 17.8888 Q907.778 17.8888 903.484 19.2256 Q899.23 20.5624 894.369 23.2765 L894.369 15.0127 Q899.311 13.0277 903.605 12.015 Q907.899 11.0023 911.464 11.0023 Q920.862 11.0023 926.453 15.7013 Q932.043 20.4004 932.043 28.2591 Q932.043 31.9859 930.625 35.3482 Q929.248 38.6699 925.561 43.2069 Q924.549 44.3817 919.12 50.0125 Q913.692 55.6027 903.808 65.6895 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M956.591 65.6895 L985.15 65.6895 L985.15 72.576 L946.748 72.576 L946.748 65.6895 Q951.406 60.8689 959.427 52.7671 Q967.488 44.6248 969.554 42.2752 Q973.484 37.8598 975.023 34.8216 Q976.603 31.7429 976.603 28.7857 Q976.603 23.9651 973.2 20.927 Q969.838 17.8888 964.41 17.8888 Q960.561 17.8888 956.267 19.2256 Q952.014 20.5624 947.153 23.2765 L947.153 15.0127 Q952.095 13.0277 956.389 12.015 Q960.683 11.0023 964.247 11.0023 Q973.646 11.0023 979.236 15.7013 Q984.826 20.4004 984.826 28.2591 Q984.826 31.9859 983.408 35.3482 Q982.031 38.6699 978.345 43.2069 Q977.332 44.3817 971.904 50.0125 Q966.475 55.6027 956.591 65.6895 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M1002.33 62.2867 L1010.87 62.2867 L1010.87 72.576 L1002.33 72.576 L1002.33 62.2867 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M1028.78 12.096 L1060.9 12.096 L1060.9 18.9825 L1036.27 18.9825 L1036.27 33.8088 Q1038.05 33.2012 1039.84 32.9176 Q1041.62 32.5936 1043.4 32.5936 Q1053.53 32.5936 1059.44 38.1433 Q1065.36 43.6931 1065.36 53.1722 Q1065.36 62.9348 1059.28 68.3631 Q1053.21 73.7508 1042.15 73.7508 Q1038.34 73.7508 1034.37 73.1026 Q1030.44 72.4545 1026.23 71.1582 L1026.23 62.9348 Q1029.87 64.9198 1033.76 65.892 Q1037.65 66.8642 1041.98 66.8642 Q1048.99 66.8642 1053.08 63.1779 Q1057.18 59.4916 1057.18 53.1722 Q1057.18 46.8528 1053.08 43.1664 Q1048.99 39.4801 1041.98 39.4801 Q1038.7 39.4801 1035.42 40.2093 Q1032.18 40.9384 1028.78 42.4778 L1028.78 12.096 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M1098.98 17.4837 Q1092.66 17.4837 1089.46 23.7221 Q1086.3 29.92 1086.3 42.3968 Q1086.3 54.833 1089.46 61.0714 Q1092.66 67.2693 1098.98 67.2693 Q1105.34 67.2693 1108.5 61.0714 Q1111.7 54.833 1111.7 42.3968 Q1111.7 29.92 1108.5 23.7221 Q1105.34 17.4837 1098.98 17.4837 M1098.98 11.0023 Q1109.15 11.0023 1114.5 19.0636 Q1119.88 27.0843 1119.88 42.3968 Q1119.88 57.6687 1114.5 65.73 Q1109.15 73.7508 1098.98 73.7508 Q1088.81 73.7508 1083.43 65.73 Q1078.08 57.6687 1078.08 42.3968 Q1078.08 27.0843 1083.43 19.0636 Q1088.81 11.0023 1098.98 11.0023 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M1135.68 65.6895 L1149.05 65.6895 L1149.05 19.5497 L1134.51 22.4663 L1134.51 15.0127 L1148.97 12.096 L1157.15 12.096 L1157.15 65.6895 L1170.52 65.6895 L1170.52 72.576 L1135.68 72.576 L1135.68 65.6895 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M1187.13 12.096 L1219.25 12.096 L1219.25 18.9825 L1194.62 18.9825 L1194.62 33.8088 Q1196.4 33.2012 1198.19 32.9176 Q1199.97 32.5936 1201.75 32.5936 Q1211.88 32.5936 1217.79 38.1433 Q1223.71 43.6931 1223.71 53.1722 Q1223.71 62.9348 1217.63 68.3631 Q1211.56 73.7508 1200.5 73.7508 Q1196.69 73.7508 1192.72 73.1026 Q1188.79 72.4545 1184.58 71.1582 L1184.58 62.9348 Q1188.22 64.9198 1192.11 65.892 Q1196 66.8642 1200.33 66.8642 Q1207.34 66.8642 1211.43 63.1779 Q1215.53 59.4916 1215.53 53.1722 Q1215.53 46.8528 1211.43 43.1664 Q1207.34 39.4801 1200.33 39.4801 Q1197.05 39.4801 1193.77 40.2093 Q1190.53 40.9384 1187.13 42.4778 L1187.13 12.096 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M1241.25 65.6895 L1254.62 65.6895 L1254.62 19.5497 L1240.07 22.4663 L1240.07 15.0127 L1254.54 12.096 L1262.72 12.096 L1262.72 65.6895 L1276.09 65.6895 L1276.09 72.576 L1241.25 72.576 L1241.25 65.6895 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M1290.55 12.096 L1329.44 12.096 L1329.44 15.5798 L1307.48 72.576 L1298.93 72.576 L1319.59 18.9825 L1290.55 18.9825 L1290.55 12.096 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M1352.45 65.6895 L1381 65.6895 L1381 72.576 L1342.6 72.576 L1342.6 65.6895 Q1347.26 60.8689 1355.28 52.7671 Q1363.34 44.6248 1365.41 42.2752 Q1369.34 37.8598 1370.88 34.8216 Q1372.46 31.7429 1372.46 28.7857 Q1372.46 23.9651 1369.05 20.927 Q1365.69 17.8888 1360.26 17.8888 Q1356.42 17.8888 1352.12 19.2256 Q1347.87 20.5624 1343.01 23.2765 L1343.01 15.0127 Q1347.95 13.0277 1352.24 12.015 Q1356.54 11.0023 1360.1 11.0023 Q1369.5 11.0023 1375.09 15.7013 Q1380.68 20.4004 1380.68 28.2591 Q1380.68 31.9859 1379.26 35.3482 Q1377.89 38.6699 1374.2 43.2069 Q1373.19 44.3817 1367.76 50.0125 Q1362.33 55.6027 1352.45 65.6895 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M1416.69 39.075 Q1411.18 39.075 1407.94 42.8424 Q1404.74 46.6097 1404.74 53.1722 Q1404.74 59.6941 1407.94 63.502 Q1411.18 67.2693 1416.69 67.2693 Q1422.2 67.2693 1425.4 63.502 Q1428.64 59.6941 1428.64 53.1722 Q1428.64 46.6097 1425.4 42.8424 Q1422.2 39.075 1416.69 39.075 M1432.94 13.4328 L1432.94 20.8865 Q1429.86 19.4281 1426.7 18.6585 Q1423.58 17.8888 1420.5 17.8888 Q1412.4 17.8888 1408.11 23.3575 Q1403.85 28.8262 1403.24 39.8852 Q1405.63 36.3609 1409.24 34.4975 Q1412.84 32.5936 1417.18 32.5936 Q1426.29 32.5936 1431.56 38.1433 Q1436.87 43.6525 1436.87 53.1722 Q1436.87 62.4892 1431.36 68.12 Q1425.85 73.7508 1416.69 73.7508 Q1406.2 73.7508 1400.65 65.73 Q1395.1 57.6687 1395.1 42.3968 Q1395.1 28.0566 1401.91 19.5497 Q1408.71 11.0023 1420.18 11.0023 Q1423.26 11.0023 1426.37 11.6099 Q1429.53 12.2175 1432.94 13.4328 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M1468.46 43.8551 Q1462.63 43.8551 1459.27 46.9743 Q1455.95 50.0935 1455.95 55.5622 Q1455.95 61.0309 1459.27 64.1501 Q1462.63 67.2693 1468.46 67.2693 Q1474.3 67.2693 1477.66 64.1501 Q1481.02 60.9904 1481.02 55.5622 Q1481.02 50.0935 1477.66 46.9743 Q1474.34 43.8551 1468.46 43.8551 M1460.28 40.3713 Q1455.01 39.075 1452.06 35.4697 Q1449.14 31.8644 1449.14 26.6793 Q1449.14 19.4281 1454.29 15.2152 Q1459.47 11.0023 1468.46 11.0023 Q1477.5 11.0023 1482.64 15.2152 Q1487.79 19.4281 1487.79 26.6793 Q1487.79 31.8644 1484.83 35.4697 Q1481.91 39.075 1476.69 40.3713 Q1482.6 41.7486 1485.88 45.759 Q1489.2 49.7694 1489.2 55.5622 Q1489.2 64.3527 1483.82 69.0517 Q1478.47 73.7508 1468.46 73.7508 Q1458.46 73.7508 1453.07 69.0517 Q1447.72 64.3527 1447.72 55.5622 Q1447.72 49.7694 1451.04 45.759 Q1454.37 41.7486 1460.28 40.3713 M1457.28 27.4489 Q1457.28 32.148 1460.2 34.7811 Q1463.16 37.4142 1468.46 37.4142 Q1473.73 37.4142 1476.69 34.7811 Q1479.68 32.148 1479.68 27.4489 Q1479.68 22.7499 1476.69 20.1168 Q1473.73 17.4837 1468.46 17.4837 Q1463.16 17.4837 1460.2 20.1168 Q1457.28 22.7499 1457.28 27.4489 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M1528.54 39.9662 Q1534.41 41.222 1537.69 45.1919 Q1541.02 49.1618 1541.02 54.9951 Q1541.02 63.9476 1534.86 68.8492 Q1528.7 73.7508 1517.36 73.7508 Q1513.55 73.7508 1509.5 72.9811 Q1505.49 72.2519 1501.19 70.7531 L1501.19 62.8538 Q1504.6 64.8388 1508.65 65.8515 Q1512.7 66.8642 1517.11 66.8642 Q1524.81 66.8642 1528.82 63.826 Q1532.87 60.7879 1532.87 54.9951 Q1532.87 49.6479 1529.11 46.6502 Q1525.38 43.612 1518.69 43.612 L1511.65 43.612 L1511.65 36.8875 L1519.02 36.8875 Q1525.05 36.8875 1528.25 34.4975 Q1531.46 32.067 1531.46 27.5299 Q1531.46 22.8714 1528.13 20.4004 Q1524.85 17.8888 1518.69 17.8888 Q1515.33 17.8888 1511.48 18.618 Q1507.64 19.3471 1503.02 20.8865 L1503.02 13.5948 Q1507.68 12.2985 1511.73 11.6504 Q1515.82 11.0023 1519.42 11.0023 Q1528.74 11.0023 1534.17 15.2557 Q1539.6 19.4686 1539.6 26.6793 Q1539.6 31.7024 1536.72 35.1862 Q1533.85 38.6294 1528.54 39.9662 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M1557.95 65.6895 L1571.32 65.6895 L1571.32 19.5497 L1556.77 22.4663 L1556.77 15.0127 L1571.23 12.096 L1579.42 12.096 L1579.42 65.6895 L1592.79 65.6895 L1592.79 72.576 L1557.95 72.576 L1557.95 65.6895 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M1626.81 43.8551 Q1620.98 43.8551 1617.62 46.9743 Q1614.3 50.0935 1614.3 55.5622 Q1614.3 61.0309 1617.62 64.1501 Q1620.98 67.2693 1626.81 67.2693 Q1632.65 67.2693 1636.01 64.1501 Q1639.37 60.9904 1639.37 55.5622 Q1639.37 50.0935 1636.01 46.9743 Q1632.69 43.8551 1626.81 43.8551 M1618.63 40.3713 Q1613.36 39.075 1610.41 35.4697 Q1607.49 31.8644 1607.49 26.6793 Q1607.49 19.4281 1612.64 15.2152 Q1617.82 11.0023 1626.81 11.0023 Q1635.85 11.0023 1640.99 15.2152 Q1646.14 19.4281 1646.14 26.6793 Q1646.14 31.8644 1643.18 35.4697 Q1640.26 39.075 1635.04 40.3713 Q1640.95 41.7486 1644.23 45.759 Q1647.55 49.7694 1647.55 55.5622 Q1647.55 64.3527 1642.17 69.0517 Q1636.82 73.7508 1626.81 73.7508 Q1616.81 73.7508 1611.42 69.0517 Q1606.07 64.3527 1606.07 55.5622 Q1606.07 49.7694 1609.39 45.759 Q1612.72 41.7486 1618.63 40.3713 M1615.63 27.4489 Q1615.63 32.148 1618.55 34.7811 Q1621.51 37.4142 1626.81 37.4142 Q1632.08 37.4142 1635.04 34.7811 Q1638.03 32.148 1638.03 27.4489 Q1638.03 22.7499 1635.04 20.1168 Q1632.08 17.4837 1626.81 17.4837 Q1621.51 17.4837 1618.55 20.1168 Q1615.63 22.7499 1615.63 27.4489 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M1662.18 12.096 L1694.3 12.096 L1694.3 18.9825 L1669.67 18.9825 L1669.67 33.8088 Q1671.45 33.2012 1673.24 32.9176 Q1675.02 32.5936 1676.8 32.5936 Q1686.93 32.5936 1692.84 38.1433 Q1698.76 43.6931 1698.76 53.1722 Q1698.76 62.9348 1692.68 68.3631 Q1686.6 73.7508 1675.55 73.7508 Q1671.74 73.7508 1667.77 73.1026 Q1663.84 72.4545 1659.63 71.1582 L1659.63 62.9348 Q1663.27 64.9198 1667.16 65.892 Q1671.05 66.8642 1675.38 66.8642 Q1682.39 66.8642 1686.48 63.1779 Q1690.57 59.4916 1690.57 53.1722 Q1690.57 46.8528 1686.48 43.1664 Q1682.39 39.4801 1675.38 39.4801 Q1672.1 39.4801 1668.82 40.2093 Q1665.58 40.9384 1662.18 42.4778 L1662.18 12.096 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M1715.12 71.3202 L1715.12 63.8666 Q1718.2 65.3249 1721.36 66.0946 Q1724.52 66.8642 1727.56 66.8642 Q1735.66 66.8642 1739.91 61.436 Q1744.21 55.9673 1744.82 44.8678 Q1742.47 48.3516 1738.86 50.215 Q1735.26 52.0784 1730.88 52.0784 Q1721.81 52.0784 1716.5 46.6097 Q1711.23 41.1005 1711.23 31.5808 Q1711.23 22.2638 1716.74 16.633 Q1722.25 11.0023 1731.41 11.0023 Q1741.9 11.0023 1747.41 19.0636 Q1752.96 27.0843 1752.96 42.3968 Q1752.96 56.6965 1746.15 65.2439 Q1739.39 73.7508 1727.92 73.7508 Q1724.85 73.7508 1721.69 73.1431 Q1718.53 72.5355 1715.12 71.3202 M1731.41 45.678 Q1736.92 45.678 1740.12 41.9107 Q1743.36 38.1433 1743.36 31.5808 Q1743.36 25.0589 1740.12 21.2916 Q1736.92 17.4837 1731.41 17.4837 Q1725.9 17.4837 1722.66 21.2916 Q1719.46 25.0589 1719.46 31.5808 Q1719.46 38.1433 1722.66 41.9107 Q1725.9 45.678 1731.41 45.678 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M1790.15 19.2256 L1769.49 51.5113 L1790.15 51.5113 L1790.15 19.2256 M1788 12.096 L1798.29 12.096 L1798.29 51.5113 L1806.92 51.5113 L1806.92 58.3168 L1798.29 58.3168 L1798.29 72.576 L1790.15 72.576 L1790.15 58.3168 L1762.84 58.3168 L1762.84 50.4176 L1788 12.096 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><polyline clip-path=\"url(#clip482)\" style=\"stroke:#009af9; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  204.426,160.541 208.597,872.076 212.769,874.29 216.94,876.561 221.112,878.892 225.283,881.284 229.455,883.742 233.626,886.267 237.798,888.863 241.969,891.534 \n",
       "  246.141,894.283 250.312,897.114 254.484,900.032 258.655,903.04 262.827,906.145 266.998,909.35 271.17,912.662 275.341,916.087 279.513,919.631 283.684,923.302 \n",
       "  287.856,927.106 292.027,931.053 296.199,935.151 300.371,939.41 304.542,943.84 308.714,948.453 312.885,953.261 317.057,958.279 321.228,963.52 325.4,969.001 \n",
       "  329.571,974.74 333.743,980.755 337.914,987.067 342.086,993.699 346.257,1000.68 350.429,1008.02 354.6,1015.76 358.772,1023.93 362.943,1032.56 367.115,1041.66 \n",
       "  371.286,1051.28 375.458,1061.44 379.629,1072.14 383.801,1083.39 387.972,1095.18 392.144,1107.46 396.315,1120.15 400.487,1133.1 404.658,1146.14 408.83,1159.01 \n",
       "  413.001,1171.48 417.173,1183.31 421.344,1194.42 425.516,1204.84 429.687,1214.77 433.859,1224.42 438.031,1233.97 442.202,1243.51 446.374,1253.04 450.545,1262.56 \n",
       "  454.717,1271.99 458.888,1281.27 463.06,1290.34 467.231,1299.1 471.403,1307.49 475.574,1315.43 479.746,1322.86 483.917,1329.75 488.089,1336.04 492.26,1341.74 \n",
       "  496.432,1346.86 500.603,1351.39 504.775,1355.4 508.946,1358.9 513.118,1361.95 517.289,1364.6 521.461,1366.89 525.632,1368.88 529.804,1370.6 533.975,1372.1 \n",
       "  538.147,1373.4 542.318,1374.54 546.49,1375.54 550.661,1376.43 554.833,1377.22 559.004,1377.93 563.176,1378.57 567.347,1379.15 571.519,1379.68 575.691,1380.17 \n",
       "  579.862,1380.63 584.034,1381.06 588.205,1381.46 592.377,1381.84 596.548,1382.2 600.72,1382.54 604.891,1382.87 609.063,1383.18 613.234,1383.49 617.406,1383.78 \n",
       "  621.577,1384.06 625.749,1384.33 629.92,1384.6 634.092,1384.86 638.263,1385.11 642.435,1385.36 646.606,1385.6 650.778,1385.83 654.949,1386.06 659.121,1386.28 \n",
       "  663.292,1386.5 667.464,1386.71 671.635,1386.92 675.807,1387.13 679.978,1387.33 684.15,1387.52 688.321,1387.71 692.493,1387.9 696.664,1388.09 700.836,1388.27 \n",
       "  705.007,1388.45 709.179,1388.62 713.351,1388.8 717.522,1388.97 721.694,1389.13 725.865,1389.29 730.037,1389.45 734.208,1389.61 738.38,1389.77 742.551,1389.92 \n",
       "  746.723,1390.07 750.894,1390.21 755.066,1390.36 759.237,1390.5 763.409,1390.64 767.58,1390.77 771.752,1390.91 775.923,1391.04 780.095,1391.17 784.266,1391.3 \n",
       "  788.438,1391.43 792.609,1391.55 796.781,1391.67 800.952,1391.79 805.124,1391.91 809.295,1392.03 813.467,1392.14 817.638,1392.25 821.81,1392.36 825.981,1392.47 \n",
       "  830.153,1392.58 834.324,1392.69 838.496,1392.79 842.667,1392.89 846.839,1393 851.01,1393.09 855.182,1393.19 859.354,1393.29 863.525,1393.38 867.697,1393.48 \n",
       "  871.868,1393.57 876.04,1393.66 880.211,1393.75 884.383,1393.84 888.554,1393.93 892.726,1394.01 896.897,1394.1 901.069,1394.18 905.24,1394.26 909.412,1394.34 \n",
       "  913.583,1394.42 917.755,1394.5 921.926,1394.58 926.098,1394.66 930.269,1394.73 934.441,1394.81 938.612,1394.88 942.784,1394.95 946.955,1395.03 951.127,1395.1 \n",
       "  955.298,1395.17 959.47,1395.24 963.641,1395.3 967.813,1395.37 971.984,1395.44 976.156,1395.5 980.327,1395.57 984.499,1395.63 988.67,1395.69 992.842,1395.75 \n",
       "  997.014,1395.81 1001.19,1395.87 1005.36,1395.93 1009.53,1395.99 1013.7,1396.05 1017.87,1396.11 1022.04,1396.16 1026.21,1396.22 1030.39,1396.27 1034.56,1396.33 \n",
       "  1038.73,1396.38 1042.9,1396.44 1047.07,1396.49 1051.24,1396.54 1055.41,1396.59 1059.59,1396.64 1063.76,1396.69 1067.93,1396.74 1072.1,1396.79 1076.27,1396.84 \n",
       "  1080.44,1396.88 1084.62,1396.93 1088.79,1396.98 1092.96,1397.02 1097.13,1397.07 1101.3,1397.11 1105.47,1397.16 1109.64,1397.2 1113.82,1397.24 1117.99,1397.29 \n",
       "  1122.16,1397.33 1126.33,1397.37 1130.5,1397.41 1134.67,1397.45 1138.85,1397.49 1143.02,1397.53 1147.19,1397.57 1151.36,1397.61 1155.53,1397.65 1159.7,1397.68 \n",
       "  1163.87,1397.72 1168.05,1397.76 1172.22,1397.8 1176.39,1397.83 1180.56,1397.87 1184.73,1397.9 1188.9,1397.94 1193.07,1397.97 1197.25,1398.01 1201.42,1398.04 \n",
       "  1205.59,1398.07 1209.76,1398.11 1213.93,1398.14 1218.1,1398.17 1222.28,1398.2 1226.45,1398.23 1230.62,1398.27 1234.79,1398.3 1238.96,1398.33 1243.13,1398.36 \n",
       "  1247.3,1398.39 1251.48,1398.42 1255.65,1398.45 1259.82,1398.48 1263.99,1398.5 1268.16,1398.53 1272.33,1398.56 1276.51,1398.59 1280.68,1398.62 1284.85,1398.64 \n",
       "  1289.02,1398.67 1293.19,1398.7 1297.36,1398.72 1301.53,1398.75 1305.71,1398.77 1309.88,1398.8 1314.05,1398.83 1318.22,1398.85 1322.39,1398.88 1326.56,1398.9 \n",
       "  1330.73,1398.92 1334.91,1398.95 1339.08,1398.97 1343.25,1398.99 1347.42,1399.02 1351.59,1399.04 1355.76,1399.06 1359.94,1399.09 1364.11,1399.11 1368.28,1399.13 \n",
       "  1372.45,1399.15 1376.62,1399.17 1380.79,1399.2 1384.96,1399.22 1389.14,1399.24 1393.31,1399.26 1397.48,1399.28 1401.65,1399.3 1405.82,1399.32 1409.99,1399.34 \n",
       "  1414.17,1399.36 1418.34,1399.38 1422.51,1399.4 1426.68,1399.42 1430.85,1399.44 1435.02,1399.46 1439.19,1399.47 1443.37,1399.49 1447.54,1399.51 1451.71,1399.53 \n",
       "  1455.88,1399.55 1460.05,1399.56 1464.22,1399.58 1468.39,1399.6 1472.57,1399.62 1476.74,1399.63 1480.91,1399.65 1485.08,1399.67 1489.25,1399.68 1493.42,1399.7 \n",
       "  1497.6,1399.72 1501.77,1399.73 1505.94,1399.75 1510.11,1399.76 1514.28,1399.78 1518.45,1399.8 1522.62,1399.81 1526.8,1399.83 1530.97,1399.84 1535.14,1399.86 \n",
       "  1539.31,1399.87 1543.48,1399.89 1547.65,1399.9 1551.83,1399.91 1556,1399.93 1560.17,1399.94 1564.34,1399.96 1568.51,1399.97 1572.68,1399.98 1576.85,1400 \n",
       "  1581.03,1400.01 1585.2,1400.02 1589.37,1400.04 1593.54,1400.05 1597.71,1400.06 1601.88,1400.08 1606.05,1400.09 1610.23,1400.1 1614.4,1400.12 1618.57,1400.13 \n",
       "  1622.74,1400.14 1626.91,1400.15 1631.08,1400.16 1635.26,1400.18 1639.43,1400.19 1643.6,1400.2 1647.77,1400.21 1651.94,1400.22 1656.11,1400.23 1660.28,1400.25 \n",
       "  1664.46,1400.26 1668.63,1400.27 1672.8,1400.28 1676.97,1400.29 1681.14,1400.3 1685.31,1400.31 1689.49,1400.32 1693.66,1400.33 1697.83,1400.34 1702,1400.35 \n",
       "  1706.17,1400.36 1710.34,1400.37 1714.51,1400.38 1718.69,1400.39 1722.86,1400.4 1727.03,1400.41 1731.2,1400.42 1735.37,1400.43 1739.54,1400.44 1743.71,1400.45 \n",
       "  1747.89,1400.46 1752.06,1400.47 1756.23,1400.48 1760.4,1400.49 1764.57,1400.5 1768.74,1400.51 1772.92,1400.52 1777.09,1400.53 1781.26,1400.53 1785.43,1400.54 \n",
       "  1789.6,1400.55 1793.77,1400.56 1797.94,1400.57 1802.12,1400.58 1806.29,1400.59 1810.46,1400.59 1814.63,1400.6 1818.8,1400.61 1822.97,1400.62 1827.15,1400.63 \n",
       "  1831.32,1400.63 1835.49,1400.64 1839.66,1400.65 1843.83,1400.66 1848,1400.67 1852.17,1400.67 1856.35,1400.68 1860.52,1400.69 1864.69,1400.7 1868.86,1400.7 \n",
       "  1873.03,1400.71 1877.2,1400.72 1881.37,1400.72 1885.55,1400.73 1889.72,1400.74 1893.89,1400.75 1898.06,1400.75 1902.23,1400.76 1906.4,1400.77 1910.58,1400.77 \n",
       "  1914.75,1400.78 1918.92,1400.79 1923.09,1400.79 1927.26,1400.8 1931.43,1400.81 1935.6,1400.81 1939.78,1400.82 1943.95,1400.83 1948.12,1400.83 1952.29,1400.84 \n",
       "  1956.46,1400.84 1960.63,1400.85 1964.81,1400.86 1968.98,1400.86 1973.15,1400.87 1977.32,1400.87 1981.49,1400.88 1985.66,1400.89 1989.83,1400.89 1994.01,1400.9 \n",
       "  1998.18,1400.9 2002.35,1400.91 2006.52,1400.92 2010.69,1400.92 2014.86,1400.93 2019.03,1400.93 2023.21,1400.94 2027.38,1400.94 2031.55,1400.95 2035.72,1400.95 \n",
       "  2039.89,1400.96 2044.06,1400.96 2048.24,1400.97 2052.41,1400.97 2056.58,1400.98 2060.75,1400.98 2064.92,1400.99 2069.09,1400.99 2073.26,1401 2077.44,1401 \n",
       "  2081.61,1401.01 2085.78,1401.01 2089.95,1401.02 2094.12,1401.02 2098.29,1401.03 2102.47,1401.03 2106.64,1401.04 2110.81,1401.04 2114.98,1401.05 2119.15,1401.05 \n",
       "  2123.32,1401.06 2127.49,1401.06 2131.67,1401.06 2135.84,1401.07 2140.01,1401.07 2144.18,1401.08 2148.35,1401.08 2152.52,1401.09 2156.69,1401.09 2160.87,1401.09 \n",
       "  2165.04,1401.1 2169.21,1401.1 2173.38,1401.11 2177.55,1401.11 2181.72,1401.12 2185.9,1401.12 2190.07,1401.12 2194.24,1401.13 2198.41,1401.13 2202.58,1401.14 \n",
       "  2206.75,1401.14 2210.92,1401.14 2215.1,1401.15 2219.27,1401.15 2223.44,1401.15 2227.61,1401.16 2231.78,1401.16 2235.95,1401.17 2240.12,1401.17 2244.3,1401.17 \n",
       "  2248.47,1401.18 2252.64,1401.18 2256.81,1401.18 2260.98,1401.19 2265.15,1401.19 2269.33,1401.19 2273.5,1401.2 2277.67,1401.2 2281.84,1401.2 2286.01,1401.21 \n",
       "  2290.18,1401.21 \n",
       "  \"/>\n",
       "<path clip-path=\"url(#clip480)\" d=\"\n",
       "M1954.76 324.425 L2279.06 324.425 L2279.06 168.905 L1954.76 168.905  Z\n",
       "  \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
       "<polyline clip-path=\"url(#clip480)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1954.76,324.425 2279.06,324.425 2279.06,168.905 1954.76,168.905 1954.76,324.425 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip480)\" style=\"stroke:#009af9; stroke-linecap:round; stroke-linejoin:round; stroke-width:6; stroke-opacity:1; fill:none\" points=\"\n",
       "  1979.32,246.665 2126.72,246.665 \n",
       "  \"/>\n",
       "<path clip-path=\"url(#clip480)\" d=\"M2172.05 276.196 Q2169.34 283.14 2166.77 285.258 Q2164.2 287.376 2159.89 287.376 L2154.79 287.376 L2154.79 282.029 L2158.54 282.029 Q2161.18 282.029 2162.64 280.779 Q2164.09 279.529 2165.87 274.876 L2167.01 271.96 L2151.28 233.696 L2158.05 233.696 L2170.21 264.112 L2182.36 233.696 L2189.13 233.696 L2172.05 276.196 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip480)\" d=\"M2200.07 266.682 L2211.53 266.682 L2211.53 227.134 L2199.06 229.633 L2199.06 223.245 L2211.46 220.745 L2218.47 220.745 L2218.47 266.682 L2229.93 266.682 L2229.93 272.585 L2200.07 272.585 L2200.07 266.682 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /></svg>\n"
      ]
     },
     "execution_count": 138,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "c, _, lhist = grad_descent(loss, gradient, 1ones(3),\n",
    "  gamma=5e-2)\n",
    "plot(lhist, yscale=:linear, ylim=(20, 60), title=\"Loss $(lhist[end])\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7f4be7cd",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# Compare fits on noisy data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 141,
   "id": "11ab1f9e",
   "metadata": {
    "slideshow": {
     "slide_type": ""
    }
   },
   "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=\"clip600\">\n",
       "    <rect x=\"0\" y=\"0\" width=\"2400\" height=\"1600\"/>\n",
       "  </clipPath>\n",
       "</defs>\n",
       "<path clip-path=\"url(#clip600)\" 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=\"clip601\">\n",
       "    <rect x=\"480\" y=\"0\" width=\"1681\" height=\"1600\"/>\n",
       "  </clipPath>\n",
       "</defs>\n",
       "<path clip-path=\"url(#clip600)\" d=\"\n",
       "M192.941 1486.45 L2352.76 1486.45 L2352.76 47.2441 L192.941 47.2441  Z\n",
       "  \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
       "<defs>\n",
       "  <clipPath id=\"clip602\">\n",
       "    <rect x=\"192\" y=\"47\" width=\"2161\" height=\"1440\"/>\n",
       "  </clipPath>\n",
       "</defs>\n",
       "<polyline clip-path=\"url(#clip602)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  254.067,1486.45 254.067,47.2441 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip602)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  763.458,1486.45 763.458,47.2441 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip602)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  1272.85,1486.45 1272.85,47.2441 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip602)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  1782.24,1486.45 1782.24,47.2441 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip602)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  2291.63,1486.45 2291.63,47.2441 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip600)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  192.941,1486.45 2352.76,1486.45 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip600)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  254.067,1486.45 254.067,1467.55 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip600)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  763.458,1486.45 763.458,1467.55 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip600)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1272.85,1486.45 1272.85,1467.55 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip600)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1782.24,1486.45 1782.24,1467.55 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip600)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  2291.63,1486.45 2291.63,1467.55 \n",
       "  \"/>\n",
       "<path clip-path=\"url(#clip600)\" d=\"M200.596 1532.02 L230.271 1532.02 L230.271 1535.95 L200.596 1535.95 L200.596 1532.02 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M241.174 1544.91 L248.813 1544.91 L248.813 1518.55 L240.503 1520.21 L240.503 1515.95 L248.767 1514.29 L253.442 1514.29 L253.442 1544.91 L261.081 1544.91 L261.081 1548.85 L241.174 1548.85 L241.174 1544.91 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M270.526 1542.97 L275.41 1542.97 L275.41 1548.85 L270.526 1548.85 L270.526 1542.97 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M295.595 1517.37 Q291.984 1517.37 290.155 1520.93 Q288.35 1524.47 288.35 1531.6 Q288.35 1538.71 290.155 1542.27 Q291.984 1545.82 295.595 1545.82 Q299.229 1545.82 301.035 1542.27 Q302.864 1538.71 302.864 1531.6 Q302.864 1524.47 301.035 1520.93 Q299.229 1517.37 295.595 1517.37 M295.595 1513.66 Q301.405 1513.66 304.461 1518.27 Q307.539 1522.85 307.539 1531.6 Q307.539 1540.33 304.461 1544.94 Q301.405 1549.52 295.595 1549.52 Q289.785 1549.52 286.706 1544.94 Q283.651 1540.33 283.651 1531.6 Q283.651 1522.85 286.706 1518.27 Q289.785 1513.66 295.595 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M710.484 1532.02 L740.159 1532.02 L740.159 1535.95 L710.484 1535.95 L710.484 1532.02 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M760.252 1517.37 Q756.641 1517.37 754.812 1520.93 Q753.007 1524.47 753.007 1531.6 Q753.007 1538.71 754.812 1542.27 Q756.641 1545.82 760.252 1545.82 Q763.886 1545.82 765.692 1542.27 Q767.52 1538.71 767.52 1531.6 Q767.52 1524.47 765.692 1520.93 Q763.886 1517.37 760.252 1517.37 M760.252 1513.66 Q766.062 1513.66 769.118 1518.27 Q772.196 1522.85 772.196 1531.6 Q772.196 1540.33 769.118 1544.94 Q766.062 1549.52 760.252 1549.52 Q754.442 1549.52 751.363 1544.94 Q748.307 1540.33 748.307 1531.6 Q748.307 1522.85 751.363 1518.27 Q754.442 1513.66 760.252 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M780.414 1542.97 L785.298 1542.97 L785.298 1548.85 L780.414 1548.85 L780.414 1542.97 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M795.529 1514.29 L813.886 1514.29 L813.886 1518.22 L799.812 1518.22 L799.812 1526.7 Q800.83 1526.35 801.849 1526.19 Q802.867 1526 803.886 1526 Q809.673 1526 813.053 1529.17 Q816.432 1532.34 816.432 1537.76 Q816.432 1543.34 812.96 1546.44 Q809.488 1549.52 803.168 1549.52 Q800.992 1549.52 798.724 1549.15 Q796.479 1548.78 794.071 1548.04 L794.071 1543.34 Q796.154 1544.47 798.377 1545.03 Q800.599 1545.58 803.076 1545.58 Q807.08 1545.58 809.418 1543.48 Q811.756 1541.37 811.756 1537.76 Q811.756 1534.15 809.418 1532.04 Q807.08 1529.94 803.076 1529.94 Q801.201 1529.94 799.326 1530.35 Q797.474 1530.77 795.529 1531.65 L795.529 1514.29 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M1250.23 1517.37 Q1246.62 1517.37 1244.79 1520.93 Q1242.99 1524.47 1242.99 1531.6 Q1242.99 1538.71 1244.79 1542.27 Q1246.62 1545.82 1250.23 1545.82 Q1253.87 1545.82 1255.67 1542.27 Q1257.5 1538.71 1257.5 1531.6 Q1257.5 1524.47 1255.67 1520.93 Q1253.87 1517.37 1250.23 1517.37 M1250.23 1513.66 Q1256.04 1513.66 1259.1 1518.27 Q1262.18 1522.85 1262.18 1531.6 Q1262.18 1540.33 1259.1 1544.94 Q1256.04 1549.52 1250.23 1549.52 Q1244.42 1549.52 1241.34 1544.94 Q1238.29 1540.33 1238.29 1531.6 Q1238.29 1522.85 1241.34 1518.27 Q1244.42 1513.66 1250.23 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M1270.39 1542.97 L1275.28 1542.97 L1275.28 1548.85 L1270.39 1548.85 L1270.39 1542.97 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M1295.46 1517.37 Q1291.85 1517.37 1290.02 1520.93 Q1288.22 1524.47 1288.22 1531.6 Q1288.22 1538.71 1290.02 1542.27 Q1291.85 1545.82 1295.46 1545.82 Q1299.1 1545.82 1300.9 1542.27 Q1302.73 1538.71 1302.73 1531.6 Q1302.73 1524.47 1300.9 1520.93 Q1299.1 1517.37 1295.46 1517.37 M1295.46 1513.66 Q1301.27 1513.66 1304.33 1518.27 Q1307.41 1522.85 1307.41 1531.6 Q1307.41 1540.33 1304.33 1544.94 Q1301.27 1549.52 1295.46 1549.52 Q1289.65 1549.52 1286.58 1544.94 Q1283.52 1540.33 1283.52 1531.6 Q1283.52 1522.85 1286.58 1518.27 Q1289.65 1513.66 1295.46 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M1760.12 1517.37 Q1756.51 1517.37 1754.68 1520.93 Q1752.88 1524.47 1752.88 1531.6 Q1752.88 1538.71 1754.68 1542.27 Q1756.51 1545.82 1760.12 1545.82 Q1763.75 1545.82 1765.56 1542.27 Q1767.39 1538.71 1767.39 1531.6 Q1767.39 1524.47 1765.56 1520.93 Q1763.75 1517.37 1760.12 1517.37 M1760.12 1513.66 Q1765.93 1513.66 1768.99 1518.27 Q1772.07 1522.85 1772.07 1531.6 Q1772.07 1540.33 1768.99 1544.94 Q1765.93 1549.52 1760.12 1549.52 Q1754.31 1549.52 1751.23 1544.94 Q1748.18 1540.33 1748.18 1531.6 Q1748.18 1522.85 1751.23 1518.27 Q1754.31 1513.66 1760.12 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M1780.28 1542.97 L1785.17 1542.97 L1785.17 1548.85 L1780.28 1548.85 L1780.28 1542.97 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M1795.4 1514.29 L1813.75 1514.29 L1813.75 1518.22 L1799.68 1518.22 L1799.68 1526.7 Q1800.7 1526.35 1801.72 1526.19 Q1802.74 1526 1803.75 1526 Q1809.54 1526 1812.92 1529.17 Q1816.3 1532.34 1816.3 1537.76 Q1816.3 1543.34 1812.83 1546.44 Q1809.36 1549.52 1803.04 1549.52 Q1800.86 1549.52 1798.59 1549.15 Q1796.35 1548.78 1793.94 1548.04 L1793.94 1543.34 Q1796.02 1544.47 1798.25 1545.03 Q1800.47 1545.58 1802.94 1545.58 Q1806.95 1545.58 1809.29 1543.48 Q1811.63 1541.37 1811.63 1537.76 Q1811.63 1534.15 1809.29 1532.04 Q1806.95 1529.94 1802.94 1529.94 Q1801.07 1529.94 1799.19 1530.35 Q1797.34 1530.77 1795.4 1531.65 L1795.4 1514.29 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M2258.78 1544.91 L2266.42 1544.91 L2266.42 1518.55 L2258.11 1520.21 L2258.11 1515.95 L2266.37 1514.29 L2271.05 1514.29 L2271.05 1544.91 L2278.69 1544.91 L2278.69 1548.85 L2258.78 1548.85 L2258.78 1544.91 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M2288.13 1542.97 L2293.02 1542.97 L2293.02 1548.85 L2288.13 1548.85 L2288.13 1542.97 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M2313.2 1517.37 Q2309.59 1517.37 2307.76 1520.93 Q2305.96 1524.47 2305.96 1531.6 Q2305.96 1538.71 2307.76 1542.27 Q2309.59 1545.82 2313.2 1545.82 Q2316.84 1545.82 2318.64 1542.27 Q2320.47 1538.71 2320.47 1531.6 Q2320.47 1524.47 2318.64 1520.93 Q2316.84 1517.37 2313.2 1517.37 M2313.2 1513.66 Q2319.01 1513.66 2322.07 1518.27 Q2325.15 1522.85 2325.15 1531.6 Q2325.15 1540.33 2322.07 1544.94 Q2319.01 1549.52 2313.2 1549.52 Q2307.39 1549.52 2304.31 1544.94 Q2301.26 1540.33 2301.26 1531.6 Q2301.26 1522.85 2304.31 1518.27 Q2307.39 1513.66 2313.2 1513.66 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><polyline clip-path=\"url(#clip602)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  192.941,1335.95 2352.76,1335.95 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip602)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  192.941,1070.23 2352.76,1070.23 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip602)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  192.941,804.509 2352.76,804.509 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip602)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  192.941,538.787 2352.76,538.787 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip602)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
       "  192.941,273.065 2352.76,273.065 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip600)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  192.941,1486.45 192.941,47.2441 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip600)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  192.941,1335.95 211.838,1335.95 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip600)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  192.941,1070.23 211.838,1070.23 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip600)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  192.941,804.509 211.838,804.509 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip600)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  192.941,538.787 211.838,538.787 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip600)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  192.941,273.065 211.838,273.065 \n",
       "  \"/>\n",
       "<path clip-path=\"url(#clip600)\" d=\"M50.9921 1336.4 L80.6679 1336.4 L80.6679 1340.34 L50.9921 1340.34 L50.9921 1336.4 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M100.76 1321.75 Q97.1493 1321.75 95.3206 1325.32 Q93.515 1328.86 93.515 1335.99 Q93.515 1343.09 95.3206 1346.66 Q97.1493 1350.2 100.76 1350.2 Q104.395 1350.2 106.2 1346.66 Q108.029 1343.09 108.029 1335.99 Q108.029 1328.86 106.2 1325.32 Q104.395 1321.75 100.76 1321.75 M100.76 1318.05 Q106.571 1318.05 109.626 1322.65 Q112.705 1327.24 112.705 1335.99 Q112.705 1344.71 109.626 1349.32 Q106.571 1353.9 100.76 1353.9 Q94.9502 1353.9 91.8715 1349.32 Q88.816 1344.71 88.816 1335.99 Q88.816 1327.24 91.8715 1322.65 Q94.9502 1318.05 100.76 1318.05 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M120.922 1347.35 L125.807 1347.35 L125.807 1353.23 L120.922 1353.23 L120.922 1347.35 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M136.038 1318.67 L154.394 1318.67 L154.394 1322.61 L140.32 1322.61 L140.32 1331.08 Q141.339 1330.73 142.357 1330.57 Q143.376 1330.39 144.394 1330.39 Q150.181 1330.39 153.561 1333.56 Q156.941 1336.73 156.941 1342.14 Q156.941 1347.72 153.468 1350.83 Q149.996 1353.9 143.677 1353.9 Q141.501 1353.9 139.232 1353.53 Q136.987 1353.16 134.58 1352.42 L134.58 1347.72 Q136.663 1348.86 138.885 1349.41 Q141.107 1349.97 143.584 1349.97 Q147.589 1349.97 149.927 1347.86 Q152.265 1345.76 152.265 1342.14 Q152.265 1338.53 149.927 1336.43 Q147.589 1334.32 143.584 1334.32 Q141.709 1334.32 139.834 1334.74 Q137.982 1335.15 136.038 1336.03 L136.038 1318.67 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M99.765 1056.03 Q96.1539 1056.03 94.3252 1059.59 Q92.5197 1063.14 92.5197 1070.27 Q92.5197 1077.37 94.3252 1080.94 Q96.1539 1084.48 99.765 1084.48 Q103.399 1084.48 105.205 1080.94 Q107.033 1077.37 107.033 1070.27 Q107.033 1063.14 105.205 1059.59 Q103.399 1056.03 99.765 1056.03 M99.765 1052.33 Q105.575 1052.33 108.631 1056.93 Q111.709 1061.52 111.709 1070.27 Q111.709 1078.99 108.631 1083.6 Q105.575 1088.18 99.765 1088.18 Q93.9549 1088.18 90.8762 1083.6 Q87.8206 1078.99 87.8206 1070.27 Q87.8206 1061.52 90.8762 1056.93 Q93.9549 1052.33 99.765 1052.33 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M119.927 1081.63 L124.811 1081.63 L124.811 1087.51 L119.927 1087.51 L119.927 1081.63 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M144.996 1056.03 Q141.385 1056.03 139.556 1059.59 Q137.751 1063.14 137.751 1070.27 Q137.751 1077.37 139.556 1080.94 Q141.385 1084.48 144.996 1084.48 Q148.63 1084.48 150.436 1080.94 Q152.265 1077.37 152.265 1070.27 Q152.265 1063.14 150.436 1059.59 Q148.63 1056.03 144.996 1056.03 M144.996 1052.33 Q150.806 1052.33 153.862 1056.93 Q156.941 1061.52 156.941 1070.27 Q156.941 1078.99 153.862 1083.6 Q150.806 1088.18 144.996 1088.18 Q139.186 1088.18 136.107 1083.6 Q133.052 1078.99 133.052 1070.27 Q133.052 1061.52 136.107 1056.93 Q139.186 1052.33 144.996 1052.33 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M100.76 790.307 Q97.1493 790.307 95.3206 793.872 Q93.515 797.414 93.515 804.543 Q93.515 811.65 95.3206 815.215 Q97.1493 818.756 100.76 818.756 Q104.395 818.756 106.2 815.215 Q108.029 811.65 108.029 804.543 Q108.029 797.414 106.2 793.872 Q104.395 790.307 100.76 790.307 M100.76 786.604 Q106.571 786.604 109.626 791.21 Q112.705 795.793 112.705 804.543 Q112.705 813.27 109.626 817.877 Q106.571 822.46 100.76 822.46 Q94.9502 822.46 91.8715 817.877 Q88.816 813.27 88.816 804.543 Q88.816 795.793 91.8715 791.21 Q94.9502 786.604 100.76 786.604 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M120.922 815.909 L125.807 815.909 L125.807 821.789 L120.922 821.789 L120.922 815.909 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M136.038 787.229 L154.394 787.229 L154.394 791.164 L140.32 791.164 L140.32 799.636 Q141.339 799.289 142.357 799.127 Q143.376 798.942 144.394 798.942 Q150.181 798.942 153.561 802.113 Q156.941 805.284 156.941 810.701 Q156.941 816.279 153.468 819.381 Q149.996 822.46 143.677 822.46 Q141.501 822.46 139.232 822.09 Q136.987 821.719 134.58 820.979 L134.58 816.279 Q136.663 817.414 138.885 817.969 Q141.107 818.525 143.584 818.525 Q147.589 818.525 149.927 816.418 Q152.265 814.312 152.265 810.701 Q152.265 807.09 149.927 804.983 Q147.589 802.877 143.584 802.877 Q141.709 802.877 139.834 803.293 Q137.982 803.71 136.038 804.59 L136.038 787.229 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M90.5752 552.132 L98.2141 552.132 L98.2141 525.766 L89.904 527.433 L89.904 523.173 L98.1678 521.507 L102.844 521.507 L102.844 552.132 L110.483 552.132 L110.483 556.067 L90.5752 556.067 L90.5752 552.132 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M119.927 550.187 L124.811 550.187 L124.811 556.067 L119.927 556.067 L119.927 550.187 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M144.996 524.585 Q141.385 524.585 139.556 528.15 Q137.751 531.692 137.751 538.821 Q137.751 545.928 139.556 549.493 Q141.385 553.034 144.996 553.034 Q148.63 553.034 150.436 549.493 Q152.265 545.928 152.265 538.821 Q152.265 531.692 150.436 528.15 Q148.63 524.585 144.996 524.585 M144.996 520.882 Q150.806 520.882 153.862 525.488 Q156.941 530.072 156.941 538.821 Q156.941 547.548 153.862 552.155 Q150.806 556.738 144.996 556.738 Q139.186 556.738 136.107 552.155 Q133.052 547.548 133.052 538.821 Q133.052 530.072 136.107 525.488 Q139.186 520.882 144.996 520.882 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M91.5706 286.41 L99.2095 286.41 L99.2095 260.044 L90.8993 261.711 L90.8993 257.451 L99.1632 255.785 L103.839 255.785 L103.839 286.41 L111.478 286.41 L111.478 290.345 L91.5706 290.345 L91.5706 286.41 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M120.922 284.465 L125.807 284.465 L125.807 290.345 L120.922 290.345 L120.922 284.465 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M136.038 255.785 L154.394 255.785 L154.394 259.72 L140.32 259.72 L140.32 268.192 Q141.339 267.845 142.357 267.683 Q143.376 267.498 144.394 267.498 Q150.181 267.498 153.561 270.669 Q156.941 273.84 156.941 279.257 Q156.941 284.836 153.468 287.937 Q149.996 291.016 143.677 291.016 Q141.501 291.016 139.232 290.646 Q136.987 290.275 134.58 289.535 L134.58 284.836 Q136.663 285.97 138.885 286.525 Q141.107 287.081 143.584 287.081 Q147.589 287.081 149.927 284.974 Q152.265 282.868 152.265 279.257 Q152.265 275.646 149.927 273.539 Q147.589 271.433 143.584 271.433 Q141.709 271.433 139.834 271.85 Q137.982 272.266 136.038 273.146 L136.038 255.785 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><circle clip-path=\"url(#clip602)\" cx=\"254.067\" cy=\"1048.46\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"264.306\" cy=\"950.142\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"274.545\" cy=\"653.089\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"284.784\" cy=\"824.085\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"295.023\" cy=\"951.863\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"305.262\" cy=\"832.169\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"315.501\" cy=\"754.824\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"325.741\" cy=\"1120.88\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"335.98\" cy=\"907.716\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"346.219\" cy=\"1025.33\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"356.458\" cy=\"1093.51\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"366.697\" cy=\"1090.13\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"376.936\" cy=\"1294.16\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"387.175\" cy=\"667.899\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"397.414\" cy=\"1071.55\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"407.653\" cy=\"438.343\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"417.892\" cy=\"772.819\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"428.131\" cy=\"672.539\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"438.37\" cy=\"1033.62\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"448.609\" cy=\"726.513\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"458.848\" cy=\"1022.89\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"469.087\" cy=\"965.452\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"479.326\" cy=\"886.543\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"489.565\" cy=\"1254.51\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"499.804\" cy=\"824.719\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"510.043\" cy=\"757.687\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"520.282\" cy=\"661.863\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"530.521\" cy=\"1441.61\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"540.76\" cy=\"989.525\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"550.999\" cy=\"1194.61\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"561.238\" cy=\"873.708\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"571.477\" cy=\"1260.45\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"581.716\" cy=\"912.948\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"591.955\" cy=\"887.261\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"602.194\" cy=\"1172.54\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"612.433\" cy=\"933.893\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"622.672\" cy=\"1092.97\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"632.911\" cy=\"605.172\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"643.15\" cy=\"1011.62\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"653.389\" cy=\"713.917\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"663.628\" cy=\"1032.4\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"673.867\" cy=\"1128.18\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"684.106\" cy=\"954.61\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"694.345\" cy=\"866.302\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"704.584\" cy=\"1371.61\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"714.823\" cy=\"1361.96\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"725.062\" cy=\"979.486\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"735.301\" cy=\"1445.45\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"745.54\" cy=\"567.956\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"755.779\" cy=\"1305.98\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"766.018\" cy=\"950.274\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"776.257\" cy=\"462.877\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"786.496\" cy=\"767.521\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"796.735\" cy=\"403.375\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"806.974\" cy=\"988.777\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"817.213\" cy=\"672.928\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"827.452\" cy=\"858.924\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"837.691\" cy=\"661.401\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"847.93\" cy=\"1017.62\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"858.169\" cy=\"1049.74\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"868.408\" cy=\"1121.47\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"878.647\" cy=\"600.855\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"888.886\" cy=\"818.523\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"899.125\" cy=\"703.747\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"909.364\" cy=\"1418.99\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"919.603\" cy=\"663.441\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"929.842\" cy=\"813.434\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"940.081\" cy=\"606.528\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"950.32\" cy=\"1193.47\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"960.559\" cy=\"796.897\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"970.798\" cy=\"733.643\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"981.037\" cy=\"835.711\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"991.276\" cy=\"701.503\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1001.51\" cy=\"1041.72\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1011.75\" cy=\"416.811\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1021.99\" cy=\"469.013\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1032.23\" cy=\"294.198\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1042.47\" cy=\"878.627\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1052.71\" cy=\"529.803\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1062.95\" cy=\"600.752\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1073.19\" cy=\"509.127\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1083.43\" cy=\"879.607\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1093.67\" cy=\"1300.5\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1103.9\" cy=\"901.42\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1114.14\" cy=\"761.656\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1124.38\" cy=\"845.762\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1134.62\" cy=\"610.649\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1144.86\" cy=\"894.989\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1155.1\" cy=\"262.503\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1165.34\" cy=\"775.453\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1175.58\" cy=\"545.734\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1185.82\" cy=\"288.686\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1196.06\" cy=\"744.453\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1206.29\" cy=\"113.061\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1216.53\" cy=\"617.553\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1226.77\" cy=\"917.974\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1237.01\" cy=\"218.831\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1247.25\" cy=\"647.608\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1257.49\" cy=\"246.071\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1267.73\" cy=\"891.301\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1277.97\" cy=\"529.992\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1288.21\" cy=\"395.822\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1298.45\" cy=\"642.268\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1308.68\" cy=\"355.953\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1318.92\" cy=\"493.274\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1329.16\" cy=\"733.915\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1339.4\" cy=\"607.227\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1349.64\" cy=\"280.341\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1359.88\" cy=\"562.221\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1370.12\" cy=\"465.173\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1380.36\" cy=\"710.176\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1390.6\" cy=\"264.591\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1400.84\" cy=\"617.157\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1411.07\" cy=\"1124.95\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1421.31\" cy=\"811.117\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1431.55\" cy=\"340.633\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1441.79\" cy=\"608.162\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1452.03\" cy=\"525.941\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1462.27\" cy=\"670.388\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1472.51\" cy=\"1083.87\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1482.75\" cy=\"670.21\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1492.99\" cy=\"1074.7\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1503.23\" cy=\"850.199\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1513.46\" cy=\"903.701\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1523.7\" cy=\"430.337\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1533.94\" cy=\"695.541\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1544.18\" cy=\"442.905\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1554.42\" cy=\"964.387\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1564.66\" cy=\"1027.95\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1574.9\" cy=\"1055.23\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1585.14\" cy=\"87.9763\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1595.38\" cy=\"462.247\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1605.62\" cy=\"717.11\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1615.85\" cy=\"1035.72\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1626.09\" cy=\"539.806\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1636.33\" cy=\"1134.57\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1646.57\" cy=\"525.692\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1656.81\" cy=\"1056.51\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1667.05\" cy=\"825.625\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1677.29\" cy=\"779.659\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1687.53\" cy=\"1071.24\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1697.77\" cy=\"780.007\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1708.01\" cy=\"1106.07\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1718.24\" cy=\"716.576\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1728.48\" cy=\"1343.86\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1738.72\" cy=\"931.118\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1748.96\" cy=\"995.819\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1759.2\" cy=\"657.334\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1769.44\" cy=\"935.578\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1779.68\" cy=\"1218.53\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1789.92\" cy=\"1393.44\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1800.16\" cy=\"757.455\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1810.4\" cy=\"880.311\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1820.63\" cy=\"752.507\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1830.87\" cy=\"1022.73\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1841.11\" cy=\"850.787\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1851.35\" cy=\"630.543\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1861.59\" cy=\"854.537\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1871.83\" cy=\"1445.72\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1882.07\" cy=\"848.246\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1892.31\" cy=\"787.237\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1902.55\" cy=\"805.112\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1912.79\" cy=\"1096.78\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1923.02\" cy=\"619.059\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1933.26\" cy=\"871.242\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1943.5\" cy=\"832.545\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1953.74\" cy=\"516.246\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1963.98\" cy=\"812.754\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1974.22\" cy=\"1063.59\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1984.46\" cy=\"621.25\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"1994.7\" cy=\"1126.54\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"2004.94\" cy=\"771.279\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"2015.18\" cy=\"900.664\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"2025.41\" cy=\"755.879\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"2035.65\" cy=\"716.899\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"2045.89\" cy=\"718.105\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"2056.13\" cy=\"520.282\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"2066.37\" cy=\"848.169\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"2076.61\" cy=\"1288.66\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"2086.85\" cy=\"1301.35\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"2097.09\" cy=\"1090.89\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"2107.33\" cy=\"1083.16\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"2117.57\" cy=\"899.591\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"2127.81\" cy=\"905.158\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"2138.04\" cy=\"605.439\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"2148.28\" cy=\"1047.7\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"2158.52\" cy=\"1015.07\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"2168.76\" cy=\"1347.88\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"2179\" cy=\"1265.76\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"2189.24\" cy=\"700.884\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"2199.48\" cy=\"524.106\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"2209.72\" cy=\"885.914\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"2219.96\" cy=\"952.631\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"2230.2\" cy=\"885.646\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"2240.43\" cy=\"1126.11\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"2250.67\" cy=\"1056.71\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"2260.91\" cy=\"845.125\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"2271.15\" cy=\"1356.87\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"2281.39\" cy=\"697.096\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<circle clip-path=\"url(#clip602)\" cx=\"2291.63\" cy=\"319.031\" r=\"14.4\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
       "<polyline clip-path=\"url(#clip602)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  254.067,1021.92 260.7,1021.34 267.333,1020.75 328.663,1014.81 389.993,1007.78 426.85,1002.92 463.707,997.509 494.869,992.437 526.03,986.849 559.881,980.118 \n",
       "  593.732,972.602 624.939,964.88 656.146,956.292 689.604,945.988 723.061,934.389 742.443,927.005 761.825,919.083 781.207,910.581 800.589,901.455 817.813,892.783 \n",
       "  835.037,883.547 852.262,873.714 869.486,863.248 884.59,853.525 899.694,843.271 914.798,832.466 929.903,821.095 946.37,808.041 962.838,794.293 979.306,779.855 \n",
       "  995.773,764.744 1012.34,748.896 1028.9,732.452 1045.47,715.491 1062.04,698.12 1098.67,658.996 1135.3,620.728 1144.01,612.062 1152.72,603.655 1161.44,595.555 \n",
       "  1170.15,587.81 1178.86,580.469 1187.58,573.581 1196.29,567.194 1205,561.355 1214.06,555.912 1223.12,551.153 1232.18,547.122 1241.24,543.853 1250.3,541.377 \n",
       "  1259.36,539.717 1268.42,538.887 1277.48,538.897 1285.11,539.555 1292.73,540.804 1300.36,542.634 1307.99,545.034 1315.61,547.988 1323.24,551.478 1330.86,555.48 \n",
       "  1338.49,559.971 1347.8,566.076 1357.11,572.816 1366.42,580.134 1375.74,587.972 1385.05,596.271 1394.36,604.97 1403.67,614.011 1412.98,623.336 1447.1,659.066 \n",
       "  1481.21,695.527 1496.97,712.104 1512.72,728.332 1528.48,744.112 1544.24,759.373 1560.19,774.247 1576.15,788.498 1592.11,802.105 1608.07,815.061 1625.96,828.811 \n",
       "  1643.85,841.762 1661.73,853.938 1679.62,865.37 1695.83,875.115 1712.03,884.305 1728.24,892.969 1744.45,901.133 1763.01,909.905 1781.56,918.101 1800.12,925.761 \n",
       "  1818.68,932.922 1835.86,939.139 1853.04,944.986 1870.22,950.487 1887.4,955.666 1921.28,965.016 1955.16,973.348 1988.05,980.586 2020.95,987.09 2054.67,993.088 \n",
       "  2088.39,998.492 2125.33,1003.82 2162.27,1008.59 2215.94,1014.69 2269.61,1019.96 2280.62,1020.95 2291.63,1021.92 \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip602)\" style=\"stroke:#3da44d; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  254.067,1116.59 264.306,811.782 274.545,735.186 284.784,770.739 295.023,847.354 305.262,924.859 315.501,983.594 325.741,1016.87 335.98,1025.61 346.219,1014.69 \n",
       "  356.458,990.497 366.697,959.418 376.936,926.98 387.175,897.444 397.414,873.704 407.653,857.375 417.892,848.985 428.131,848.213 438.37,854.14 448.609,865.478 \n",
       "  458.848,880.769 469.087,898.543 479.326,917.439 489.565,936.279 499.804,954.119 510.043,970.262 520.282,984.251 530.521,995.851 540.76,1005.01 550.999,1011.84 \n",
       "  561.238,1016.53 571.477,1019.36 581.716,1020.63 591.955,1020.65 602.194,1019.7 612.433,1018.02 622.672,1015.81 632.911,1013.18 643.15,1010.22 653.389,1006.96 \n",
       "  663.628,1003.36 673.867,999.382 684.106,994.943 694.345,989.956 704.584,984.334 714.823,978.001 725.062,970.901 735.301,963.004 745.54,954.313 755.779,944.863 \n",
       "  766.018,934.723 776.257,923.995 786.496,912.808 796.735,901.315 806.974,889.684 817.213,878.094 827.452,866.725 837.691,855.749 847.93,845.328 858.169,835.602 \n",
       "  868.408,826.684 878.647,818.657 888.886,811.571 899.125,805.436 909.364,800.229 919.603,795.888 929.842,792.316 940.081,789.387 950.32,786.947 960.559,784.821 \n",
       "  970.798,782.82 981.037,780.744 991.276,778.393 1001.51,775.571 1011.75,772.096 1021.99,767.802 1032.23,762.547 1042.47,756.218 1052.71,748.737 1062.95,740.057 \n",
       "  1073.19,730.173 1083.43,719.118 1093.67,706.96 1103.9,693.808 1114.14,679.802 1124.38,665.115 1134.62,649.945 1144.86,634.513 1155.1,619.053 1165.34,603.811 \n",
       "  1175.58,589.037 1185.82,574.978 1196.06,561.87 1206.29,549.936 1216.53,539.378 1226.77,530.374 1237.01,523.072 1247.25,517.585 1257.49,513.993 1267.73,512.339 \n",
       "  1277.97,512.627 1288.21,514.825 1298.45,518.864 1308.68,524.642 1318.92,532.025 1329.16,540.854 1339.4,550.946 1349.64,562.101 1359.88,574.105 1370.12,586.74 \n",
       "  1380.36,599.785 1390.6,613.024 1400.84,626.251 1411.07,639.275 1421.31,651.926 1431.55,664.055 1441.79,675.543 1452.03,686.3 1462.27,696.267 1472.51,705.417 \n",
       "  1482.75,713.757 1492.99,721.324 1503.23,728.187 1513.46,734.439 1523.7,740.2 1533.94,745.606 1544.18,750.81 1554.42,755.974 1564.66,761.264 1574.9,766.843 \n",
       "  1585.14,772.868 1595.38,779.481 1605.62,786.803 1615.85,794.934 1626.09,803.941 1636.33,813.859 1646.57,824.687 1656.81,836.383 1667.05,848.865 1677.29,862.012 \n",
       "  1687.53,875.659 1697.77,889.608 1708.01,903.622 1718.24,917.438 1728.48,930.766 1738.72,943.3 1748.96,954.726 1759.2,964.728 1769.44,973.001 1779.68,979.258 \n",
       "  1789.92,983.245 1800.16,984.749 1810.4,983.606 1820.63,979.719 1830.87,973.06 1841.11,963.681 1851.35,951.719 1861.59,937.404 1871.83,921.058 1882.07,903.094 \n",
       "  1892.31,884.014 1902.55,864.398 1912.79,844.896 1923.02,826.209 1933.26,809.072 1943.5,794.227 1953.74,782.394 1963.98,774.245 1974.22,770.361 1984.46,771.201 \n",
       "  1994.7,777.066 2004.94,788.057 2015.18,804.05 2025.41,824.664 2035.65,849.246 2045.89,876.864 2056.13,906.316 2066.37,936.159 2076.61,964.76 2086.85,990.369 \n",
       "  2097.09,1011.23 2107.33,1025.69 2117.57,1032.41 2127.81,1030.46 2138.04,1019.61 2148.28,1000.45 2158.52,974.599 2168.76,944.803 2179,914.97 2189.24,890.012 \n",
       "  2199.48,875.475 2209.72,876.807 2219.96,898.149 2230.2,940.472 2240.43,998.841 2250.67,1058.52 2260.91,1089.6 2271.15,1039.68 2281.39,824.169 2291.63,313.49 \n",
       "  \n",
       "  \"/>\n",
       "<polyline clip-path=\"url(#clip602)\" style=\"stroke:#c271d2; stroke-linecap:round; stroke-linejoin:round; stroke-width:16; stroke-opacity:1; fill:none\" points=\"\n",
       "  254.067,1005.07 260.7,1004.34 267.333,1003.59 328.663,996.118 389.993,987.4 426.85,981.457 463.707,974.905 494.869,968.833 526.03,962.218 559.881,954.351 \n",
       "  593.732,945.693 624.939,936.931 656.146,927.342 689.604,916.047 723.061,903.591 742.443,895.8 761.825,887.559 781.207,878.844 800.589,869.634 817.813,861.017 \n",
       "  835.037,851.981 852.262,842.513 869.486,832.606 884.59,823.552 899.694,814.155 914.798,804.418 929.903,794.344 946.37,782.99 962.838,771.269 979.306,759.206 \n",
       "  995.773,746.839 1028.9,721.236 1062.04,695.127 1080.35,680.738 1098.67,666.57 1116.98,652.798 1135.3,639.611 1144.01,633.602 1152.72,627.795 1161.44,622.212 \n",
       "  1170.15,616.876 1178.86,611.81 1187.58,607.037 1196.29,602.579 1205,598.456 1214.06,594.547 1223.12,591.044 1232.18,587.966 1241.24,585.33 1250.3,583.153 \n",
       "  1259.36,581.446 1268.42,580.219 1277.48,579.481 1285.11,579.241 1292.73,579.351 1300.36,579.811 1307.99,580.618 1315.61,581.769 1323.24,583.26 1330.86,585.083 \n",
       "  1338.49,587.232 1347.8,590.284 1357.11,593.79 1366.42,597.729 1375.74,602.078 1385.05,606.813 1394.36,611.909 1403.67,617.338 1412.98,623.074 1430.04,634.284 \n",
       "  1447.1,646.255 1464.16,658.821 1481.21,671.82 1512.72,696.479 1544.24,721.309 1576.15,745.989 1608.07,769.724 1625.96,782.488 1643.85,794.82 1661.73,806.694 \n",
       "  1679.62,818.096 1695.83,828.013 1712.03,837.535 1728.24,846.666 1744.45,855.41 1763.01,864.957 1781.56,874.024 1800.12,882.626 1818.68,890.783 1835.86,897.956 \n",
       "  1853.04,904.78 1870.22,911.27 1887.4,917.442 1921.28,928.742 1955.16,938.981 1988.05,948.009 2020.95,956.226 2054.67,963.896 2088.39,970.879 2125.33,977.827 \n",
       "  2162.27,984.121 2215.94,992.244 2269.61,999.33 2280.62,1000.67 2291.63,1001.98 \n",
       "  \"/>\n",
       "<path clip-path=\"url(#clip600)\" d=\"\n",
       "M1557.56 484.018 L2280.76 484.018 L2280.76 95.2176 L1557.56 95.2176  Z\n",
       "  \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
       "<polyline clip-path=\"url(#clip600)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
       "  1557.56,484.018 2280.76,484.018 2280.76,95.2176 1557.56,95.2176 1557.56,484.018 \n",
       "  \"/>\n",
       "<circle clip-path=\"url(#clip600)\" cx=\"1653.55\" cy=\"172.978\" r=\"34.56\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"7.68\"/>\n",
       "<path clip-path=\"url(#clip600)\" d=\"M1770.3 202.509 Q1767.6 209.453 1765.03 211.571 Q1762.46 213.689 1758.15 213.689 L1753.05 213.689 L1753.05 208.342 L1756.8 208.342 Q1759.44 208.342 1760.89 207.092 Q1762.35 205.842 1764.12 201.189 L1765.27 198.273 L1749.54 160.009 L1756.31 160.009 L1768.46 190.425 L1780.62 160.009 L1787.39 160.009 L1770.3 202.509 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M1798.32 192.995 L1809.78 192.995 L1809.78 153.446 L1797.32 155.946 L1797.32 149.558 L1809.71 147.058 L1816.73 147.058 L1816.73 192.995 L1828.19 192.995 L1828.19 198.898 L1798.32 198.898 L1798.32 192.995 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><polyline clip-path=\"url(#clip600)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:6; stroke-opacity:1; fill:none\" points=\"\n",
       "  1581.55,250.738 1725.54,250.738 \n",
       "  \"/>\n",
       "<path clip-path=\"url(#clip600)\" d=\"M1774.12 252.352 Q1776.38 253.116 1778.5 255.616 Q1780.65 258.116 1782.8 262.491 L1789.92 276.658 L1782.39 276.658 L1775.75 263.359 Q1773.19 258.151 1770.75 256.449 Q1768.36 254.748 1764.19 254.748 L1756.55 254.748 L1756.55 276.658 L1749.54 276.658 L1749.54 224.818 L1765.37 224.818 Q1774.26 224.818 1778.64 228.533 Q1783.01 232.248 1783.01 239.748 Q1783.01 244.644 1780.72 247.873 Q1778.46 251.102 1774.12 252.352 M1756.55 230.581 L1756.55 248.984 L1765.37 248.984 Q1770.44 248.984 1773.01 246.658 Q1775.62 244.297 1775.62 239.748 Q1775.62 235.199 1773.01 232.908 Q1770.44 230.581 1765.37 230.581 L1756.55 230.581 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M1794.82 261.31 L1794.82 237.769 L1801.21 237.769 L1801.21 261.067 Q1801.21 266.588 1803.36 269.366 Q1805.51 272.109 1809.82 272.109 Q1814.99 272.109 1817.98 268.81 Q1821 265.512 1821 259.817 L1821 237.769 L1827.39 237.769 L1827.39 276.658 L1821 276.658 L1821 270.685 Q1818.67 274.227 1815.58 275.963 Q1812.53 277.664 1808.46 277.664 Q1801.76 277.664 1798.29 273.498 Q1794.82 269.331 1794.82 261.31 M1810.89 236.831 L1810.89 236.831 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M1872.87 253.185 L1872.87 276.658 L1866.48 276.658 L1866.48 253.394 Q1866.48 247.873 1864.33 245.13 Q1862.18 242.387 1857.87 242.387 Q1852.7 242.387 1849.71 245.685 Q1846.73 248.984 1846.73 254.679 L1846.73 276.658 L1840.3 276.658 L1840.3 237.769 L1846.73 237.769 L1846.73 243.811 Q1849.02 240.304 1852.11 238.567 Q1855.23 236.831 1859.3 236.831 Q1866 236.831 1869.43 240.998 Q1872.87 245.13 1872.87 253.185 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M1911.21 256.762 Q1911.21 249.817 1908.32 245.998 Q1905.48 242.179 1900.3 242.179 Q1895.16 242.179 1892.28 245.998 Q1889.43 249.817 1889.43 256.762 Q1889.43 263.672 1892.28 267.491 Q1895.16 271.31 1900.3 271.31 Q1905.48 271.31 1908.32 267.491 Q1911.21 263.672 1911.21 256.762 M1917.59 271.831 Q1917.59 281.762 1913.18 286.588 Q1908.77 291.449 1899.68 291.449 Q1896.31 291.449 1893.32 290.928 Q1890.34 290.442 1887.52 289.401 L1887.52 283.185 Q1890.34 284.713 1893.08 285.442 Q1895.82 286.171 1898.67 286.171 Q1904.96 286.171 1908.08 282.873 Q1911.21 279.609 1911.21 272.977 L1911.21 269.817 Q1909.23 273.255 1906.14 274.956 Q1903.05 276.658 1898.74 276.658 Q1891.59 276.658 1887.21 271.206 Q1882.84 265.755 1882.84 256.762 Q1882.84 247.734 1887.21 242.283 Q1891.59 236.831 1898.74 236.831 Q1903.05 236.831 1906.14 238.533 Q1909.23 240.234 1911.21 243.672 L1911.21 237.769 L1917.59 237.769 L1917.59 271.831 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M1964.02 255.616 L1964.02 258.741 L1934.64 258.741 Q1935.06 265.338 1938.6 268.81 Q1942.18 272.248 1948.53 272.248 Q1952.21 272.248 1955.65 271.345 Q1959.12 270.442 1962.52 268.637 L1962.52 274.678 Q1959.09 276.137 1955.48 276.901 Q1951.86 277.664 1948.15 277.664 Q1938.84 277.664 1933.39 272.248 Q1927.98 266.831 1927.98 257.595 Q1927.98 248.047 1933.11 242.456 Q1938.29 236.831 1947.04 236.831 Q1954.89 236.831 1959.43 241.901 Q1964.02 246.935 1964.02 255.616 M1957.63 253.741 Q1957.56 248.498 1954.68 245.373 Q1951.83 242.248 1947.11 242.248 Q1941.76 242.248 1938.53 245.269 Q1935.34 248.29 1934.85 253.776 L1957.63 253.741 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><polyline clip-path=\"url(#clip600)\" style=\"stroke:#3da44d; stroke-linecap:round; stroke-linejoin:round; stroke-width:6; stroke-opacity:1; fill:none\" points=\"\n",
       "  1581.55,328.498 1725.54,328.498 \n",
       "  \"/>\n",
       "<path clip-path=\"url(#clip600)\" d=\"M1791.34 306.571 L1791.34 313.966 Q1787.8 310.668 1783.78 309.036 Q1779.78 307.404 1775.27 307.404 Q1766.38 307.404 1761.66 312.855 Q1756.94 318.272 1756.94 328.55 Q1756.94 338.793 1761.66 344.244 Q1766.38 349.661 1775.27 349.661 Q1779.78 349.661 1783.78 348.029 Q1787.8 346.397 1791.34 343.098 L1791.34 350.425 Q1787.66 352.925 1783.53 354.174 Q1779.44 355.424 1774.85 355.424 Q1763.08 355.424 1756.31 348.237 Q1749.54 341.015 1749.54 328.55 Q1749.54 316.05 1756.31 308.862 Q1763.08 301.64 1774.85 301.64 Q1779.5 301.64 1783.6 302.89 Q1787.73 304.105 1791.34 306.571 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M1834.23 330.945 L1834.23 354.418 L1827.84 354.418 L1827.84 331.154 Q1827.84 325.633 1825.69 322.89 Q1823.53 320.147 1819.23 320.147 Q1814.05 320.147 1811.07 323.445 Q1808.08 326.744 1808.08 332.439 L1808.08 354.418 L1801.66 354.418 L1801.66 300.39 L1808.08 300.39 L1808.08 321.571 Q1810.37 318.064 1813.46 316.327 Q1816.59 314.591 1820.65 314.591 Q1827.35 314.591 1830.79 318.758 Q1834.23 322.89 1834.23 330.945 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M1880.23 333.376 L1880.23 336.501 L1850.86 336.501 Q1851.28 343.098 1854.82 346.57 Q1858.39 350.008 1864.75 350.008 Q1868.43 350.008 1871.87 349.105 Q1875.34 348.202 1878.74 346.397 L1878.74 352.438 Q1875.3 353.897 1871.69 354.661 Q1868.08 355.424 1864.37 355.424 Q1855.06 355.424 1849.61 350.008 Q1844.19 344.591 1844.19 335.355 Q1844.19 325.807 1849.33 320.216 Q1854.5 314.591 1863.25 314.591 Q1871.1 314.591 1875.65 319.661 Q1880.23 324.695 1880.23 333.376 M1873.84 331.501 Q1873.78 326.258 1870.89 323.133 Q1868.05 320.008 1863.32 320.008 Q1857.98 320.008 1854.75 323.029 Q1851.55 326.05 1851.07 331.536 L1873.84 331.501 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M1918.64 335.008 Q1918.64 327.959 1915.72 323.966 Q1912.84 319.939 1907.77 319.939 Q1902.7 319.939 1899.78 323.966 Q1896.9 327.959 1896.9 335.008 Q1896.9 342.057 1899.78 346.084 Q1902.7 350.077 1907.77 350.077 Q1912.84 350.077 1915.72 346.084 Q1918.64 342.057 1918.64 335.008 M1896.9 321.432 Q1898.91 317.959 1901.97 316.293 Q1905.06 314.591 1909.33 314.591 Q1916.41 314.591 1920.82 320.216 Q1925.27 325.841 1925.27 335.008 Q1925.27 344.175 1920.82 349.8 Q1916.41 355.424 1909.33 355.424 Q1905.06 355.424 1901.97 353.758 Q1898.91 352.056 1896.9 348.584 L1896.9 354.418 L1890.48 354.418 L1890.48 300.39 L1896.9 300.39 L1896.9 321.432 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M1952.04 358.029 Q1949.33 364.973 1946.76 367.091 Q1944.19 369.209 1939.89 369.209 L1934.78 369.209 L1934.78 363.862 L1938.53 363.862 Q1941.17 363.862 1942.63 362.612 Q1944.09 361.362 1945.86 356.709 L1947 353.793 L1931.27 315.529 L1938.05 315.529 L1950.2 345.945 L1962.35 315.529 L1969.12 315.529 L1952.04 358.029 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M2002.73 316.675 L2002.73 322.716 Q2000.02 321.327 1997.11 320.633 Q1994.19 319.939 1991.07 319.939 Q1986.31 319.939 1983.91 321.397 Q1981.55 322.855 1981.55 325.772 Q1981.55 327.994 1983.25 329.279 Q1984.95 330.529 1990.09 331.675 L1992.28 332.161 Q1999.09 333.619 2001.93 336.293 Q2004.82 338.932 2004.82 343.688 Q2004.82 349.105 2000.51 352.265 Q1996.24 355.424 1988.74 355.424 Q1985.61 355.424 1982.21 354.799 Q1978.84 354.209 1975.09 352.994 L1975.09 346.397 Q1978.64 348.237 1982.07 349.175 Q1985.51 350.077 1988.88 350.077 Q1993.39 350.077 1995.82 348.55 Q1998.25 346.987 1998.25 344.175 Q1998.25 341.57 1996.48 340.182 Q1994.75 338.793 1988.81 337.508 L1986.59 336.987 Q1980.65 335.737 1978.01 333.168 Q1975.37 330.564 1975.37 326.05 Q1975.37 320.564 1979.26 317.577 Q1983.15 314.591 1990.3 314.591 Q1993.84 314.591 1996.97 315.112 Q2000.09 315.633 2002.73 316.675 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M2047.32 330.945 L2047.32 354.418 L2040.93 354.418 L2040.93 331.154 Q2040.93 325.633 2038.77 322.89 Q2036.62 320.147 2032.32 320.147 Q2027.14 320.147 2024.16 323.445 Q2021.17 326.744 2021.17 332.439 L2021.17 354.418 L2014.75 354.418 L2014.75 300.39 L2021.17 300.39 L2021.17 321.571 Q2023.46 318.064 2026.55 316.327 Q2029.68 314.591 2033.74 314.591 Q2040.44 314.591 2043.88 318.758 Q2047.32 322.89 2047.32 330.945 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M2093.32 333.376 L2093.32 336.501 L2063.95 336.501 Q2064.36 343.098 2067.91 346.57 Q2071.48 350.008 2077.84 350.008 Q2081.52 350.008 2084.95 349.105 Q2088.43 348.202 2091.83 346.397 L2091.83 352.438 Q2088.39 353.897 2084.78 354.661 Q2081.17 355.424 2077.45 355.424 Q2068.15 355.424 2062.7 350.008 Q2057.28 344.591 2057.28 335.355 Q2057.28 325.807 2062.42 320.216 Q2067.59 314.591 2076.34 314.591 Q2084.19 314.591 2088.74 319.661 Q2093.32 324.695 2093.32 333.376 M2086.93 331.501 Q2086.86 326.258 2083.98 323.133 Q2081.14 320.008 2076.41 320.008 Q2071.07 320.008 2067.84 323.029 Q2064.64 326.05 2064.16 331.536 L2086.93 331.501 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M2099.23 315.529 L2106 315.529 L2118.15 348.168 L2130.3 315.529 L2137.07 315.529 L2122.49 354.418 L2113.81 354.418 L2099.23 315.529 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M2188.18 300.39 L2188.18 305.703 L2182.07 305.703 Q2178.63 305.703 2177.28 307.091 Q2175.96 308.48 2175.96 312.091 L2175.96 315.529 L2186.48 315.529 L2186.48 320.494 L2175.96 320.494 L2175.96 354.418 L2169.54 354.418 L2169.54 320.494 L2163.43 320.494 L2163.43 315.529 L2169.54 315.529 L2169.54 312.821 Q2169.54 306.328 2172.56 303.376 Q2175.58 300.39 2182.14 300.39 L2188.18 300.39 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M2193.53 315.529 L2199.92 315.529 L2199.92 354.418 L2193.53 354.418 L2193.53 315.529 M2193.53 300.39 L2199.92 300.39 L2199.92 308.48 L2193.53 308.48 L2193.53 300.39 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M2219.61 304.487 L2219.61 315.529 L2232.77 315.529 L2232.77 320.494 L2219.61 320.494 L2219.61 341.605 Q2219.61 346.362 2220.89 347.716 Q2222.21 349.07 2226.2 349.07 L2232.77 349.07 L2232.77 354.418 L2226.2 354.418 Q2218.81 354.418 2216 351.675 Q2213.18 348.897 2213.18 341.605 L2213.18 320.494 L2208.5 320.494 L2208.5 315.529 L2213.18 315.529 L2213.18 304.487 L2219.61 304.487 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><polyline clip-path=\"url(#clip600)\" style=\"stroke:#c271d2; stroke-linecap:round; stroke-linejoin:round; stroke-width:6; stroke-opacity:1; fill:none\" points=\"\n",
       "  1581.55,406.258 1725.54,406.258 \n",
       "  \"/>\n",
       "<path clip-path=\"url(#clip600)\" d=\"M1774.12 407.872 Q1776.38 408.636 1778.5 411.136 Q1780.65 413.636 1782.8 418.011 L1789.92 432.178 L1782.39 432.178 L1775.75 418.879 Q1773.19 413.671 1770.75 411.969 Q1768.36 410.268 1764.19 410.268 L1756.55 410.268 L1756.55 432.178 L1749.54 432.178 L1749.54 380.338 L1765.37 380.338 Q1774.26 380.338 1778.64 384.053 Q1783.01 387.768 1783.01 395.268 Q1783.01 400.164 1780.72 403.393 Q1778.46 406.622 1774.12 407.872 M1756.55 386.101 L1756.55 404.504 L1765.37 404.504 Q1770.44 404.504 1773.01 402.178 Q1775.62 399.817 1775.62 395.268 Q1775.62 390.719 1773.01 388.428 Q1770.44 386.101 1765.37 386.101 L1756.55 386.101 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M1814.78 412.629 Q1807.04 412.629 1804.05 414.4 Q1801.07 416.171 1801.07 420.442 Q1801.07 423.844 1803.29 425.858 Q1805.55 427.837 1809.4 427.837 Q1814.71 427.837 1817.91 424.087 Q1821.14 420.303 1821.14 414.053 L1821.14 412.629 L1814.78 412.629 M1827.53 409.99 L1827.53 432.178 L1821.14 432.178 L1821.14 426.275 Q1818.95 429.816 1815.69 431.518 Q1812.42 433.184 1807.7 433.184 Q1801.73 433.184 1798.19 429.851 Q1794.68 426.483 1794.68 420.858 Q1794.68 414.296 1799.05 410.962 Q1803.46 407.629 1812.18 407.629 L1821.14 407.629 L1821.14 407.004 Q1821.14 402.594 1818.22 400.199 Q1815.34 397.768 1810.09 397.768 Q1806.76 397.768 1803.6 398.567 Q1800.44 399.365 1797.53 400.962 L1797.53 395.06 Q1801.03 393.706 1804.33 393.046 Q1807.63 392.351 1810.75 392.351 Q1819.19 392.351 1823.36 396.726 Q1827.53 401.101 1827.53 409.99 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M1847 382.247 L1847 393.289 L1860.16 393.289 L1860.16 398.254 L1847 398.254 L1847 419.365 Q1847 424.122 1848.29 425.476 Q1849.61 426.83 1853.6 426.83 L1860.16 426.83 L1860.16 432.178 L1853.6 432.178 Q1846.21 432.178 1843.39 429.435 Q1840.58 426.657 1840.58 419.365 L1840.58 398.254 L1835.89 398.254 L1835.89 393.289 L1840.58 393.289 L1840.58 382.247 L1847 382.247 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M1868.57 393.289 L1874.96 393.289 L1874.96 432.178 L1868.57 432.178 L1868.57 393.289 M1868.57 378.15 L1874.96 378.15 L1874.96 386.24 L1868.57 386.24 L1868.57 378.15 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M1903.39 397.768 Q1898.25 397.768 1895.27 401.796 Q1892.28 405.789 1892.28 412.768 Q1892.28 419.747 1895.23 423.775 Q1898.22 427.768 1903.39 427.768 Q1908.5 427.768 1911.48 423.74 Q1914.47 419.712 1914.47 412.768 Q1914.47 405.858 1911.48 401.83 Q1908.5 397.768 1903.39 397.768 M1903.39 392.351 Q1911.73 392.351 1916.48 397.768 Q1921.24 403.185 1921.24 412.768 Q1921.24 422.316 1916.48 427.768 Q1911.73 433.184 1903.39 433.184 Q1895.02 433.184 1890.27 427.768 Q1885.55 422.316 1885.55 412.768 Q1885.55 403.185 1890.27 397.768 Q1895.02 392.351 1903.39 392.351 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M1964.16 408.705 L1964.16 432.178 L1957.77 432.178 L1957.77 408.914 Q1957.77 403.393 1955.61 400.65 Q1953.46 397.907 1949.16 397.907 Q1943.98 397.907 1941 401.205 Q1938.01 404.504 1938.01 410.199 L1938.01 432.178 L1931.59 432.178 L1931.59 393.289 L1938.01 393.289 L1938.01 399.331 Q1940.3 395.824 1943.39 394.087 Q1946.52 392.351 1950.58 392.351 Q1957.28 392.351 1960.72 396.518 Q1964.16 400.65 1964.16 408.705 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M1994.57 412.629 Q1986.83 412.629 1983.84 414.4 Q1980.86 416.171 1980.86 420.442 Q1980.86 423.844 1983.08 425.858 Q1985.34 427.837 1989.19 427.837 Q1994.5 427.837 1997.7 424.087 Q2000.93 420.303 2000.93 414.053 L2000.93 412.629 L1994.57 412.629 M2007.32 409.99 L2007.32 432.178 L2000.93 432.178 L2000.93 426.275 Q1998.74 429.816 1995.48 431.518 Q1992.21 433.184 1987.49 433.184 Q1981.52 433.184 1977.98 429.851 Q1974.47 426.483 1974.47 420.858 Q1974.47 414.296 1978.84 410.962 Q1983.25 407.629 1991.97 407.629 L2000.93 407.629 L2000.93 407.004 Q2000.93 402.594 1998.01 400.199 Q1995.13 397.768 1989.89 397.768 Q1986.55 397.768 1983.39 398.567 Q1980.23 399.365 1977.32 400.962 L1977.32 395.06 Q1980.82 393.706 1984.12 393.046 Q1987.42 392.351 1990.55 392.351 Q1998.98 392.351 2003.15 396.726 Q2007.32 401.101 2007.32 409.99 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M2020.48 378.15 L2026.86 378.15 L2026.86 432.178 L2020.48 432.178 L2020.48 378.15 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M2082.52 378.15 L2082.52 383.463 L2076.41 383.463 Q2072.98 383.463 2071.62 384.851 Q2070.3 386.24 2070.3 389.851 L2070.3 393.289 L2080.82 393.289 L2080.82 398.254 L2070.3 398.254 L2070.3 432.178 L2063.88 432.178 L2063.88 398.254 L2057.77 398.254 L2057.77 393.289 L2063.88 393.289 L2063.88 390.581 Q2063.88 384.088 2066.9 381.136 Q2069.92 378.15 2076.48 378.15 L2082.52 378.15 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M2087.87 393.289 L2094.26 393.289 L2094.26 432.178 L2087.87 432.178 L2087.87 393.289 M2087.87 378.15 L2094.26 378.15 L2094.26 386.24 L2087.87 386.24 L2087.87 378.15 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip600)\" d=\"M2113.95 382.247 L2113.95 393.289 L2127.11 393.289 L2127.11 398.254 L2113.95 398.254 L2113.95 419.365 Q2113.95 424.122 2115.23 425.476 Q2116.55 426.83 2120.54 426.83 L2127.11 426.83 L2127.11 432.178 L2120.54 432.178 Q2113.15 432.178 2110.34 429.435 Q2107.52 426.657 2107.52 419.365 L2107.52 398.254 L2102.84 398.254 L2102.84 393.289 L2107.52 393.289 L2107.52 382.247 L2113.95 382.247 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /></svg>\n"
      ]
     },
     "execution_count": 141,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "scatter(x, y)\n",
    "V = vander_chebyshev(x, 20)\n",
    "plot!(x -> runge(x), color=:black, label=\"Runge\")\n",
    "plot!(x, V * (V \\ y), label=\"Chebyshev fit\")\n",
    "plot!(x -> f(x, c), label=\"Rational fit\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "627277ab",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# How do we compute those derivatives as the model gets complicated?"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a8f69462",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "$$\\lim_{h\\to 0} \\frac{f(x+h) - f(x)}{h}$$"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "73b1b145",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "* How should we choose $h$?"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6a6d0812",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# Taylor series\n",
    "\n",
    "Classical accuracy analysis assumes that functions are sufficiently smooth, meaning that derivatives exist and Taylor expansions are valid within a neighborhood.  In particular,\n",
    "$$ f(x+h) = f(x) + f'(x) h + f''(x) \\frac{h^2}{2!} + \\underbrace{f'''(x) \\frac{h^3}{3!} + \\dotsb}_{O(h^3)} . $$\n",
    "\n",
    "The big-$O$ notation is meant in the limit $h\\to 0$.  Specifically, a function $g(h) \\in O(h^p)$ (sometimes written $g(h) = O(h^p)$) when\n",
    "there exists a constant $C$ such that\n",
    "$$ g(h) \\le C h^p $$\n",
    "for all sufficiently *small* $h$."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9c564912",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# Rounding error\n",
    "\n",
    "We have an additional source of error, *rounding error*, which comes from not being able to compute $f(x)$ or $f(x+h)$ exactly, nor subtract them exactly.  Suppose that we can, however, compute these functions with a relative error on the order of $\\epsilon_{\\text{machine}}$.  This leads to\n",
    "$$ \\begin{split}\n",
    "\\tilde f(x) &= f(x)(1 + \\epsilon_1) \\\\\n",
    "\\tilde f(x \\oplus h) &= \\tilde f((x+h)(1 + \\epsilon_2)) \\\\\n",
    "&= f((x + h)(1 + \\epsilon_2))(1 + \\epsilon_3) \\\\\n",
    "&= [f(x+h) + f'(x+h)(x+h)\\epsilon_2 + O(\\epsilon_2^2)](1 + \\epsilon_3) \\\\\n",
    "&= f(x+h)(1 + \\epsilon_3) + f'(x+h)x\\epsilon_2 + O(\\epsilon_{\\text{machine}}^2 + \\epsilon_{\\text{machine}} h)\n",
    "\\end{split}\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a3b39cf8",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# Tedious error propagation\n",
    "$$ \\begin{split}\n",
    "\\left\\lvert \\frac{\\tilde f(x+h) \\ominus \\tilde f(x)}{h} - \\frac{f(x+h) - f(x)}{h} \\right\\rvert &=\n",
    "  \\left\\lvert \\frac{f(x+h)(1 + \\epsilon_3) + f'(x+h)x\\epsilon_2 + O(\\epsilon_{\\text{machine}}^2 + \\epsilon_{\\text{machine}} h) - f(x)(1 + \\epsilon_1) - f(x+h) + f(x)}{h} \\right\\rvert \\\\\n",
    "  &\\le \\frac{|f(x+h)\\epsilon_3| + |f'(x+h)x\\epsilon_2| + |f(x)\\epsilon_1| + O(\\epsilon_{\\text{machine}}^2 + \\epsilon_{\\text{machine}}h)}{h} \\\\\n",
    "  &\\le \\frac{(2 \\max_{[x,x+h]} |f| + \\max_{[x,x+h]} |f' x| \\epsilon_{\\text{machine}} + O(\\epsilon_{\\text{machine}}^2 + \\epsilon_{\\text{machine}} h)}{h} \\\\\n",
    "  &= (2\\max|f| + \\max|f'x|) \\frac{\\epsilon_{\\text{machine}}}{h} + O(\\epsilon_{\\text{machine}}) \\\\\n",
    "\\end{split} $$\n",
    "where we have assumed that $h \\ge \\epsilon_{\\text{machine}}$.\n",
    "This error becomes large (relative to $f'$ -- we are concerned with relative error after all)\n",
    "* $f$ is large compared to $f'$\n",
    "* $x$ is large\n",
    "* $h$ is too small"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6d442032",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# Automatic step size selection\n",
    "\n",
    "* Walker and Pernice\n",
    "* Dennis and Schnabel"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 143,
   "id": "2508cef2",
   "metadata": {
    "cell_style": "center",
    "slideshow": {
     "slide_type": ""
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-4.139506408429305e-6"
      ]
     },
     "execution_count": 143,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "diff(f, x; h=1e-8) = (f(x+h) - f(x)) / h\n",
    "\n",
    "function diff_wp(f, x; h=1e-8)\n",
    "    \"\"\"Diff using Walker and Pernice (1998) choice of step\"\"\"\n",
    "    h *= (1 + abs(x))\n",
    "    (f(x+h) - f(x)) / h\n",
    "end\n",
    "\n",
    "x = 1000\n",
    "diff_wp(sin, x) - cos(x)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "13598631",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# Symbolic differentiation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 144,
   "id": "fa185815",
   "metadata": {
    "cell_style": "split"
   },
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$$ \\begin{equation}\n",
       "\\frac{\\mathrm{d} \\sin\\left( x \\right)}{\\mathrm{d}x}\n",
       "\\end{equation}\n",
       " $$"
      ],
      "text/plain": [
       "Differential(x)(sin(x))"
      ]
     },
     "execution_count": 144,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "using Symbolics\n",
    "\n",
    "@variables x\n",
    "Dx = Differential(x)\n",
    "\n",
    "y = sin(x)\n",
    "Dx(y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 145,
   "id": "537e4153",
   "metadata": {
    "cell_style": "split"
   },
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$$ \\begin{equation}\n",
       "\\cos\\left( x \\right)\n",
       "\\end{equation}\n",
       " $$"
      ],
      "text/plain": [
       "cos(x)"
      ]
     },
     "execution_count": 145,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expand_derivatives(Dx(y))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "55f8ae35",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# Awesome, what about products?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 149,
   "id": "0a4243eb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$$ \\begin{equation}\n",
       "\\frac{\\left( \\frac{\\cos\\left( x^{\\pi} \\right)}{x} - 3.141592653589793 x^{2.141592653589793} \\log\\left( x \\right) \\sin\\left( x^{\\pi} \\right) \\right) \\cos\\left( \\cos^{3.141592653589793}\\left( x^{\\pi} \\right) \\left( \\log\\left( x \\right) \\right)^{3.141592653589793} \\right)}{\\cos\\left( x^{\\pi} \\right) \\log\\left( x \\right)} - \\left( \\frac{3.141592653589793 \\cos^{3.141592653589793}\\left( x^{\\pi} \\right) \\left( \\log\\left( x \\right) \\right)^{2.141592653589793}}{x} - 9.869604401089358 \\cos^{2.141592653589793}\\left( x^{\\pi} \\right) \\left( \\log\\left( x \\right) \\right)^{3.141592653589793} x^{2.141592653589793} \\sin\\left( x^{\\pi} \\right) \\right) \\sin\\left( \\cos^{3.141592653589793}\\left( x^{\\pi} \\right) \\left( \\log\\left( x \\right) \\right)^{3.141592653589793} \\right) \\log\\left( \\log\\left( x \\right) \\cos\\left( x^{\\pi} \\right) \\right)\n",
       "\\end{equation}\n",
       " $$"
      ],
      "text/plain": [
       "((x^-1)*cos(x^π) - 3.141592653589793(x^2.141592653589793)*log(x)*sin(x^π))*(log(x)^-1)*(cos(x^π)^-1)*cos((log(x)^3.141592653589793)*(cos(x^π)^3.141592653589793)) - (3.141592653589793(x^-1)*(log(x)^2.141592653589793)*(cos(x^π)^3.141592653589793) - 9.869604401089358(x^2.141592653589793)*(log(x)^3.141592653589793)*(cos(x^π)^2.141592653589793)*sin(x^π))*sin((log(x)^3.141592653589793)*(cos(x^π)^3.141592653589793))*log(log(x)*cos(x^π))"
      ]
     },
     "execution_count": 149,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y = x\n",
    "for _ in 1:2\n",
    "    y = cos(y^pi) * log(y)\n",
    "end\n",
    "expand_derivatives(Dx(y))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "34b799be",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "* The size of these expressions can grow **exponentially**"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d0a680f1",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# Hand-coding derivatives\n",
    "\n",
    "$$ df = f'(x) dx $$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "id": "c24fb506",
   "metadata": {
    "cell_style": "split"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(-1.5346823414986814, -34.032439961925064)"
      ]
     },
     "execution_count": 91,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "function f(x)\n",
    "    y = x\n",
    "    for _ in 1:2\n",
    "        a = y^pi\n",
    "        b = cos(a)\n",
    "        c = log(y)\n",
    "        y = b * c\n",
    "    end\n",
    "    y\n",
    "end\n",
    "\n",
    "f(1.9), diff_wp(f, 1.9)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 153,
   "id": "d8dec50b",
   "metadata": {
    "cell_style": "split",
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(-1.5346823414986814, -34.032419599140475)"
      ]
     },
     "execution_count": 153,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "function df(x, dx)\n",
    "    y = x\n",
    "    dy = dx\n",
    "    for _ in 1:2\n",
    "        a = y ^ pi\n",
    "        da = pi * y^(pi - 1) * dy\n",
    "        b = cos(a)\n",
    "        db = -sin(a) * da\n",
    "        c = log(y)\n",
    "        dc = dy / y\n",
    "        y = b * c\n",
    "        dy = db * c + b * dc\n",
    "    end\n",
    "    y, dy\n",
    "end\n",
    "\n",
    "df(1.9, 1)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3fb72ae9",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# We can go the other way\n",
    "\n",
    "We can differentiate a composition $h(g(f(x)))$ as\n",
    "\n",
    "\\begin{align}\n",
    "  \\operatorname{d} h &= h' \\operatorname{d} g \\\\\n",
    "  \\operatorname{d} g &= g' \\operatorname{d} f \\\\\n",
    "  \\operatorname{d} f &= f' \\operatorname{d} x.\n",
    "\\end{align}\n",
    "\n",
    "What we've done above is called \"forward mode\", and amounts to placing the parentheses in the chain rule like\n",
    "\n",
    "$$ \\operatorname d h = \\frac{dh}{dg} \\left(\\frac{dg}{df} \\left(\\frac{df}{dx} \\operatorname d x \\right) \\right) .$$\n",
    "\n",
    "The expression means the same thing if we rearrange the parentheses,\n",
    "\n",
    "$$ \\operatorname d h = \\left( \\left( \\left( \\frac{dh}{dg} \\right) \\frac{dg}{df} \\right) \\frac{df}{dx} \\right) \\operatorname d x .$$"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "12e01ae1",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# Automatic differentiation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "7052e15a",
   "metadata": {
    "cell_style": "split"
   },
   "outputs": [],
   "source": [
    "import Zygote"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "2aabcb46",
   "metadata": {
    "cell_style": "split"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(-34.03241959914049,)"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Zygote.gradient(f, 1.9)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "9cee1ed6",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[90m;  @ /home/jed/.julia/packages/Zygote/dABKa/src/compiler/interface.jl:95 within `gradient`\u001b[39m\n",
      "\u001b[95mdefine\u001b[39m \u001b[33m[\u001b[39m\u001b[33m1\u001b[39m \u001b[0mx \u001b[36mdouble\u001b[39m\u001b[33m]\u001b[39m \u001b[93m@julia_gradient_12050\u001b[39m\u001b[33m(\u001b[39m\u001b[36mdouble\u001b[39m \u001b[0m%0\u001b[33m)\u001b[39m \u001b[0m#0 \u001b[33m{\u001b[39m\n",
      "\u001b[91mtop:\u001b[39m\n",
      "\u001b[90m;  @ /home/jed/.julia/packages/Zygote/dABKa/src/compiler/interface.jl:96 within `gradient`\u001b[39m\n",
      "\u001b[90m; ┌ @ /home/jed/.julia/packages/Zygote/dABKa/src/compiler/interface.jl:42 within `pullback` @ /home/jed/.julia/packages/Zygote/dABKa/src/compiler/interface.jl:44\u001b[39m\n",
      "\u001b[90m; │┌ @ In[21]:1 within `_pullback` @ /home/jed/.julia/packages/Zygote/dABKa/src/compiler/interface2.jl:9\u001b[39m\n",
      "\u001b[90m; ││┌ @ /home/jed/.julia/packages/Zygote/dABKa/src/compiler/interface2.jl within `macro expansion`\u001b[39m\n",
      "\u001b[90m; │││┌ @ /home/jed/.julia/packages/Zygote/dABKa/src/compiler/chainrules.jl:218 within `chain_rrule`\u001b[39m\n",
      "\u001b[90m; ││││┌ @ /home/jed/.julia/packages/ChainRulesCore/C73ay/src/rules.jl:134 within `rrule` @ /home/jed/.julia/packages/ChainRules/hVHC4/src/rulesets/Base/fastmath_able.jl:56\u001b[39m\n",
      "       \u001b[0m%1 \u001b[0m= \u001b[96m\u001b[1mcall\u001b[22m\u001b[39m \u001b[36mdouble\u001b[39m \u001b[93m@j_exp_12052\u001b[39m\u001b[33m(\u001b[39m\u001b[36mdouble\u001b[39m \u001b[0m%0\u001b[33m)\u001b[39m \u001b[0m#0\n",
      "\u001b[90m; └└└└└\u001b[39m\n",
      "\u001b[90m;  @ /home/jed/.julia/packages/Zygote/dABKa/src/compiler/interface.jl:97 within `gradient`\u001b[39m\n",
      "\u001b[90m; ┌ @ /home/jed/.julia/packages/Zygote/dABKa/src/compiler/interface.jl:45 within `#60`\u001b[39m\n",
      "\u001b[90m; │┌ @ In[21]:1 within `Pullback`\u001b[39m\n",
      "\u001b[90m; ││┌ @ /home/jed/.julia/packages/Zygote/dABKa/src/compiler/chainrules.jl:206 within `ZBack`\u001b[39m\n",
      "\u001b[90m; │││┌ @ /home/jed/.julia/packages/Zygote/dABKa/src/lib/number.jl:12 within `literal_pow_pullback`\u001b[39m\n",
      "\u001b[90m; ││││┌ @ promotion.jl:389 within `*` @ float.jl:385\u001b[39m\n",
      "       \u001b[0m%2 \u001b[0m= \u001b[96m\u001b[1mfmul\u001b[22m\u001b[39m \u001b[36mdouble\u001b[39m \u001b[0m%0\u001b[0m, \u001b[33m2.000000e+00\u001b[39m\n",
      "\u001b[90m; │└└└└\u001b[39m\n",
      "\u001b[90m; │┌ @ /home/jed/.julia/packages/Zygote/dABKa/src/lib/lib.jl:17 within `accum`\u001b[39m\n",
      "\u001b[90m; ││┌ @ float.jl:383 within `+`\u001b[39m\n",
      "     \u001b[0m%3 \u001b[0m= \u001b[96m\u001b[1mfadd\u001b[22m\u001b[39m \u001b[36mdouble\u001b[39m \u001b[0m%2\u001b[0m, \u001b[0m%1\n",
      "\u001b[90m; └└└\u001b[39m\n",
      "\u001b[90m;  @ /home/jed/.julia/packages/Zygote/dABKa/src/compiler/interface.jl:98 within `gradient`\u001b[39m\n",
      "  \u001b[0m%.fca.0.insert \u001b[0m= \u001b[96m\u001b[1minsertvalue\u001b[22m\u001b[39m \u001b[33m[\u001b[39m\u001b[33m1\u001b[39m \u001b[0mx \u001b[36mdouble\u001b[39m\u001b[33m]\u001b[39m \u001b[95mzeroinitializer\u001b[39m\u001b[0m, \u001b[36mdouble\u001b[39m \u001b[0m%3\u001b[0m, \u001b[33m0\u001b[39m\n",
      "  \u001b[96m\u001b[1mret\u001b[22m\u001b[39m \u001b[33m[\u001b[39m\u001b[33m1\u001b[39m \u001b[0mx \u001b[36mdouble\u001b[39m\u001b[33m]\u001b[39m \u001b[0m%.fca.0.insert\n",
      "\u001b[33m}\u001b[39m\n"
     ]
    }
   ],
   "source": [
    "g(x) = exp(x) + x^2\n",
    "@code_llvm Zygote.gradient(g, 1.9)"
   ]
  }
 ],
 "metadata": {
  "@webio": {
   "lastCommId": null,
   "lastKernelId": null
  },
  "celltoolbar": "Slideshow",
  "hide_code_all_hidden": false,
  "kernelspec": {
   "display_name": "Julia 1.7.2",
   "language": "julia",
   "name": "julia-1.7"
  },
  "language_info": {
   "file_extension": ".jl",
   "mimetype": "application/julia",
   "name": "julia",
   "version": "1.8.5"
  },
  "rise": {
   "enable_chalkboard": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}