{ "cells": [ { "cell_type": "markdown", "id": "serious-pressing", "metadata": {}, "source": [ "# CWE Data\n", "---" ] }, { "cell_type": "code", "execution_count": 1, "id": "91b44dc2", "metadata": { "execution": { "iopub.execute_input": "2024-05-06T00:25:15.480454Z", "iopub.status.busy": "2024-05-06T00:25:15.480280Z", "iopub.status.idle": "2024-05-06T00:25:16.085016Z", "shell.execute_reply": "2024-05-06T00:25:16.084476Z" }, "tags": [ "remove-cell" ] }, "outputs": [ { "data": { "text/html": [ "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from IPython.core.magic import register_cell_magic\n", "from IPython.display import Markdown\n", "import datetime\n", "from datetime import date\n", "import glob\n", "import json\n", "import logging\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import pandas as pd\n", "import plotly\n", "import warnings\n", "import calplot\n", "from itables import init_notebook_mode, show\n", "import itables.options as opt\n", "\n", "\n", "opt.dom = \"tpir\" \n", "opt.style = \"table-layout:auto;width:auto\"\n", "init_notebook_mode(all_interactive=True, connected=True)\n", "\n", "@register_cell_magic\n", "def markdown(line, cell):\n", " return Markdown(cell.format(**globals()))\n", "\n", "\n", "logging.getLogger('matplotlib.font_manager').disabled = True\n", "warnings.filterwarnings(\"ignore\")\n", "pd.set_option('display.width', 500)\n", "pd.set_option('display.max_rows', 50)\n", "pd.set_option('display.max_columns', 10)" ] }, { "cell_type": "code", "execution_count": 2, "id": "98bafc2f-2e20-4032-a091-ec2dc0ecb7a5", "metadata": { "execution": { "iopub.execute_input": "2024-05-06T00:25:16.087315Z", "iopub.status.busy": "2024-05-06T00:25:16.087100Z", "iopub.status.idle": "2024-05-06T00:25:36.033009Z", "shell.execute_reply": "2024-05-06T00:25:36.032345Z" }, "tags": [ "remove-cell" ] }, "outputs": [], "source": [ "row_accumulator = []\n", "for filename in glob.glob('nvd.jsonl'):\n", " with open(filename, 'r', encoding='utf-8') as f:\n", " nvd_data = json.load(f)\n", " for entry in nvd_data:\n", " cve = entry['cve']['id']\n", " try:\n", " assigner = entry['cve']['sourceIdentifier']\n", " except KeyError:\n", " assigner = 'Missing_Data'\n", " try:\n", " published_date = entry['cve']['published']\n", " except KeyError:\n", " published_date = 'Missing_Data'\n", " try:\n", " attack_vector = entry['cve']['metrics']['cvssMetricV31'][0]['cvssData']['attackVector']\n", " except KeyError:\n", " attack_vector = 'Missing_Data'\n", " try:\n", " attack_complexity = entry['cve']['metrics']['cvssMetricV31'][0]['cvssData']['attackComplexity']\n", " except KeyError:\n", " attack_complexity = 'Missing_Data'\n", " try:\n", " privileges_required = entry['cve']['metrics']['cvssMetricV31'][0]['cvssData']['privilegesRequired']\n", " except KeyError:\n", " privileges_required = 'Missing_Data'\n", " try:\n", " user_interaction = entry['cve']['metrics']['cvssMetricV31'][0]['cvssData']['userInteraction']\n", " except KeyError:\n", " user_interaction = 'Missing_Data'\n", " try:\n", " scope = entry['cve']['metrics']['cvssMetricV31'][0]['cvssData']['scope']\n", " except KeyError:\n", " scope = 'Missing_Data'\n", " try:\n", " confidentiality_impact = entry['cve']['metrics']['cvssMetricV31'][0]['cvssData']['confidentialityImpact']\n", " except KeyError:\n", " confidentiality_impact = 'Missing_Data'\n", " try:\n", " integrity_impact = entry['cve']['metrics']['cvssMetricV31'][0]['cvssData']['integrityImpact']\n", " except KeyError:\n", " integrity_impact = 'Missing_Data'\n", " try:\n", " availability_impact = entry['cve']['metrics']['cvssMetricV31'][0]['cvssData']['availabilityImpact']\n", " except KeyError:\n", " availability_impact = 'Missing_Data'\n", " try:\n", " base_score = entry['cve']['metrics']['cvssMetricV31'][0]['cvssData']['baseScore']\n", " except KeyError:\n", " base_score = '0.0'\n", " try:\n", " base_severity = entry['cve']['metrics']['cvssMetricV31'][0]['cvssData']['baseSeverity']\n", " except KeyError:\n", " base_severity = 'Missing_Data'\n", " try:\n", " exploitability_score = entry['cve']['metrics']['cvssMetricV31'][0]['exploitabilityScore']\n", " except KeyError:\n", " exploitability_score = 'Missing_Data'\n", " try:\n", " impact_score = entry['cve']['metrics']['cvssMetricV31'][0]['impactScore']\n", " except KeyError:\n", " impact_score = 'Missing_Data'\n", " try:\n", " cwe = entry['cve']['weaknesses'][0]['description'][0]['value']\n", " except KeyError:\n", " cwe = 'Missing_Data'\n", " try:\n", " description = entry['cve']['descriptions'][0]['value']\n", " except IndexError:\n", " description = ''\n", " new_row = {\n", " 'CVE': cve,\n", " 'Published': published_date,\n", " 'AttackVector': attack_vector,\n", " 'AttackComplexity': attack_complexity,\n", " 'PrivilegesRequired': privileges_required,\n", " 'UserInteraction': user_interaction,\n", " 'Scope': scope,\n", " 'ConfidentialityImpact': confidentiality_impact,\n", " 'IntegrityImpact': integrity_impact,\n", " 'AvailabilityImpact': availability_impact,\n", " 'BaseScore': base_score,\n", " 'BaseSeverity': base_severity,\n", " 'ExploitabilityScore': exploitability_score,\n", " 'ImpactScore': impact_score,\n", " 'CWE': cwe,\n", " 'Description': description,\n", " 'Assigner' : assigner\n", " }\n", " if not description.startswith('rejected reason'): \n", " row_accumulator.append(new_row)\n", " nvd = pd.DataFrame(row_accumulator)\n", " \n", "nvd['Published'] = pd.to_datetime(nvd['Published'])\n", "nvd = nvd.sort_values(by=['Published'])\n", "nvd = nvd.reset_index(drop=True)\n", "nvd['BaseScore'] = pd.to_numeric(nvd['BaseScore']);\n", "nvd['BaseScore'] = pd.to_numeric(nvd['BaseScore']);\n", "nvd['BaseScore'] = nvd['BaseScore'].replace(0, np.NaN);\n", "nvdcount = nvd['Published'].count()\n", "nvdunique = nvd['Published'].nunique()\n", "startdate = date(2000, 1, 1)\n", "enddate = date.today()\n", "numberofdays = enddate - startdate \n", "per_day = nvdcount/numberofdays.days" ] }, { "cell_type": "markdown", "id": "aa3ea191", "metadata": { "tags": [ "hide-input" ] }, "source": [ "\n", "\n", "## CWE Data" ] }, { "cell_type": "code", "execution_count": 3, "id": "6815f0a1", "metadata": { "execution": { "iopub.execute_input": "2024-05-06T00:25:36.035990Z", "iopub.status.busy": "2024-05-06T00:25:36.035524Z", "iopub.status.idle": "2024-05-06T00:25:36.354254Z", "shell.execute_reply": "2024-05-06T00:25:36.353699Z" }, "tags": [ "remove-input" ] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA78AAANXCAYAAAD99+h1AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAADKSElEQVR4nOzdeVyVdf7//+cxCgyEI4QLdGQVyd1wC8vDKdyjqTHLalq0xRnJytBJnZwhK9HMNkOc+thmmX6cNqcFUzyncUWN+GalphZhKtqILGJsev3+8Mf5dAUYKEKdHvfb7X27xft6v6/rdV3izO3p+1oshmEYAgAAAADAg7Vq6QIAAAAAADjXCL8AAAAAAI9H+AUAAAAAeDzCLwAAAADA4xF+AQAAAAAej/ALAAAAAPB4hF8AAAAAgMcj/AIAAAAAPB7hFwAAAADg8Qi/AADAYyQkJCghIaGly8AZslgsSk1NbekyAHgowi8AoMFeeeUVWSwWWSwWrV+/vtZ2wzBks9lksVh09dVXn5MaDhw4oNTUVOXm5jZq3t69ezVhwgRFRkbKx8dH/v7+GjRokJ599ln9+OOP56RWT9KQ69e1a1f16tWr1tx33nlHFotFdru91raXXnpJFotFH3/8sSTz71hdbfPmzef2ROvxS+efk5Mji8Wihx9+uN597N69WxaLRQ8++KAkKTU19bTnWlBQcNqawsPDTeN9fX3Vv39/vfbaa0167gDgKbxaugAAwG+Pj4+Pli5dqssvv9zU/8knn+j777+Xt7f3OTv2gQMH9Mgjjyg8PFy9e/du0JwPPvhAY8aMkbe3t2677TZ1795dlZWVWr9+vaZOnaovv/xSL7zwwjmr+beuodfv8ssv1+LFi1VcXKyAgAD3/A0bNsjLy0tbt25VVVWVzj//fNO28847T5dddpnpmLNmzVJEREStWqKjo09ba02IbkoNPf/Y2Fi9+eabeuyxx+rcz9KlSyVJf/rTn0z9GRkZ8vPzqzXearX+Ym29e/dWSkqKJOngwYP6n//5H91+++2qqKjQ3Xff3cgzBQDPRvgFADTayJEjtWLFCj333HPy8vq//ytZunSp4uLi9N///rcFqzP79ttvNXbsWIWFhWnt2rXq2LGje1tycrL27NmjDz74oAUr/HVrzPW7/PLL9eKLL2rjxo0aMWKEe9yGDRt0ww03aOnSpfr00081cOBA97b169erZ8+eatOmjem4I0aMUN++fRtd7wUXXNDoOafTmPO/5ZZbNHPmTG3evNl0jjXefPNNxcbG6tJLLzX1X3/99brooovOqL7Q0FBTmL7jjjsUGRmpp59++lcZfsvKyuTr69vSZQD4neK2ZwBAo9100006cuSIVq9e7e6rrKzUv/71L9188811zikrK1NKSopsNpu8vb3VpUsXPfnkkzIMwzRu9erVuvzyy2W1WuXn56cuXbpoxowZkiSXy6V+/fpJksaNG+e+3fOVV16pt9YnnnhCx44d0+LFi03BpUZ0dLTuv/9+98/V1dV69NFHFRUVJW9vb4WHh2vGjBmqqKgwzQsPD9fVV18tl8ulvn37qnXr1urRo4dcLpck6e2331aPHj3k4+OjuLg4ffbZZ6b5d9xxh/z8/JSfn6+rr75afn5+Cg0NVXp6uiRp+/btuvLKK+Xr66uwsDD3quFPffPNNxozZowCAwN14YUXauDAgbWCvMvlksVi0f/+7//q8ccf18UXXywfHx9dddVV2rNnT73X7UyuX82dABs2bHBvLy8vV05Ojv74xz8qMjLStO2HH37Q119/XesOgrPx82d+m/P8b7nlFkmq88/q008/1a5du9xjzpXg4GDFxsZq7969pv6TJ0/qmWeeUbdu3eTj46P27dtrwoQJOnr0aK19fPTRR7Lb7WrTpo38/f3Vr1+/Wue0YsUKxcXFqXXr1rrooov0pz/9Sfv37zeNqfkd37t3r0aOHKk2bdq4z7+iokKTJ09WcHCw2rRpo2uuuUbff/99rVpKS0v1wAMPKDw8XN7e3mrXrp2GDBminJycs71UAH6HCL8AgEYLDw/XZZddpjfffNPd99FHH6m4uFhjx46tNd4wDF1zzTV6+umnNXz4cD311FPq0qWLpk6d6n7+UZK+/PJLXX311aqoqNCsWbM0f/58XXPNNe7AdMkll2jWrFmSpHvuuUdLlizRkiVLNHjw4Hpr/fe//63IyEjFx8c36Nzuuusu/f3vf9ell16qp59+Wna7XWlpaXWe1549e3TzzTcrKSlJaWlpOnr0qJKSkvTGG29o8uTJ+tOf/qRHHnlEe/fu1Q033KCTJ0+a5p84cUIjRoyQzWbTE088ofDwcN1777165ZVXNHz4cPXt21dz585VmzZtdNttt+nbb791zz106JDi4+O1atUqTZw4UY8//rjKy8t1zTXX6J133qlV65w5c/TOO+9oypQpmj59ujZv3tygINaY6xcZGamQkBDT8+Bbt25VZWWl4uPjFR8fbwq/GzdulKQ6w29xcbH++9//mtqRI0d+sYb6NMf5R0REKD4+Xv/7v/+rEydOmLbVhMe6/nGosLCw1rkWFRU17MR+prq6Wt9//73atm1r6p8wYYKmTp3qfk553LhxeuONNzRs2DBVVVW5x73yyisaNWqUCgsLNX36dM2ZM0e9e/dWZmamacwNN9yg8847T2lpabr77rv19ttv6/LLL69Vd3V1tYYNG6Z27drpySef1OjRoyWd+nv2zDPPaOjQoZozZ47OP/98jRo1qtb5/PnPf1ZGRoZGjx6thQsXasqUKWrdurV27NhxRtcHwO+cAQBAA7388suGJGPr1q3G888/b7Rp08Y4fvy4YRiGMWbMGMPhcBiGYRhhYWHGqFGj3PPeffddQ5Lx2GOPmfZ3/fXXGxaLxdizZ49hGIbx9NNPG5KMH374od4atm7dakgyXn755V+st7i42JBk/OEPf2jQ+eXm5hqSjLvuusvUP2XKFEOSsXbtWndfWFiYIcnYuHGju2/VqlWGJKN169bGd9995+7/5z//aUgynE6nu+/22283JBmzZ8929x09etRo3bq1YbFYjGXLlrn7d+7caUgy/vGPf7j7HnjgAUOSsW7dOndfaWmpERERYYSHhxsnTpwwDMMwnE6nIcm45JJLjIqKCvfYZ5991pBkbN++vd7r0djrZxinfg9at25tVFZWGoZhGGlpaUZERIRhGIaxcOFCo127du6xNdd1//797r6a37G6mre39y8e3263G3a73f1zc59/enq6IclYtWqVu+/EiRNGaGiocdlll5nG/uMf/6j3XLt06fKLxwoLCzOGDh1q/PDDD8YPP/xgbN++3bj11lsNSUZycrJ73Lp16wxJxhtvvGGan5mZaeovKioy2rRpYwwYMMD48ccfTWNPnjxpGIZhVFZWGu3atTO6d+9uGvP+++8bkoy///3v7r6a3/Fp06aZ9lXz92zixImm/ptvvrnW73lAQIDpXADgbLDyCwA4IzfccIN+/PFHvf/++yotLdX7779f7y3PH374oc477zzdd999pv6UlBQZhqGPPvpI0v+94Oe9996rtUp6JkpKSiSp1vOk9fnwww8lybQaXVOnpFq3FHft2tX0oqYBAwZIkq688kp16tSpVv8333xT65h33XWX+7+tVqu6dOkiX19f3XDDDe7+Ll26yGq1muZ/+OGH6t+/v2nV1M/PT/fcc4/y8vL01VdfmY4zbtw40/OwV1xxRb011Wjs9ZNOreL++OOP+vTTTyWdugW6ZtV00KBBOnz4sHbv3u3eFhERoZCQkFr7SU9P1+rVq02t5vfkTDTX+d944406//zzTbcJf/LJJ9q/f3+9K81vvfVWrXN9+eWXG3S8jz/+WMHBwQoODlaPHj20ZMkSjRs3TvPmzXOPWbFihQICAjRkyBDT6nJcXJz8/PzkdDolnXrkoLS0VNOmTZOPj4/pOBaLRZK0bds2HT58WBMnTjSNGTVqlGJjY+t8fv4vf/mL6eeav2c//9+DBx54oNZcq9Wq7OxsHThwoEHXAwBOhxdeAQDOSHBwsBITE7V06VIdP35cJ06c0PXXX1/n2O+++04hISG1QsQll1zi3i6dCg7/8z//o7vuukvTpk3TVVddpT/+8Y+6/vrr1apV4/+91t/fX9Kp5wYb4rvvvlOrVq1qvVG4Q4cOslqt7jpr/DTgSnK/4dhms9XZ//PnK318fBQcHFxr7MUXX+wOGz/t/+n87777zh2qf+qn17R79+711lpzW2xdz3zWaOz1k8zP/Q4YMEAbN250v/24e/fu8vf314YNG2Sz2fTpp5/qxhtvrHM//fv3P6MXXtWnuc4/KChIw4YN0zvvvKNFixa534zu5eVl+geNnxo8ePAZv/BqwIABeuyxx3TixAl98cUXeuyxx3T06FFT0N+9e7eKi4vVrl27Ovdx+PBhSXI/J/zT35ufq/k70KVLl1rbYmNja30CzcvLSxdffHGtfbRq1UpRUVGm/rr2+cQTT+j222+XzWZTXFycRo4cqdtuu02RkZH11ggA9SH8AgDO2M0336y7775bBQUFGjFiRIM+zXI6rVu31n/+8x85nU598MEHyszM1PLly3XllVfq448/1nnnndeo/fn7+yskJERffPFFo+b9PHjWp7566us3fvZyr7Od3xhnss8zuX69evVSmzZttH79eo0cOVKFhYXuld9WrVppwIABWr9+vaKiolRZWdmkL7s6neY6f+nUp4zef/99vf/++7rmmmv01ltvaejQobX+oaMpXHTRRUpMTJQkDRs2TLGxsbr66qv17LPPuu9gOHnypNq1a6c33nijzn2ci7pqeHt7n9E/XNW44YYbdMUVV+idd97Rxx9/rHnz5mnu3Ll6++23TW8UB4CG4LZnAMAZu+6669SqVStt3ry53lueJSksLEwHDhyotYK2c+dO9/YarVq10lVXXaWnnnpKX331lR5//HGtXbvWfWtmQ4Npjauvvlp79+7Vpk2bfnFsWFiYTp486b4tt8ahQ4dUVFRkqrOlhYWFadeuXbX667qmZ6Mx1086FTIHDhyoDRs2aP369fL391ePHj3c22teelXz4qvmCr9nqrHnL0nXXHON2rRpo6VLl+qjjz7S0aNHz/lbnmuMGjVKdrtds2fPVllZmSQpKipKR44c0aBBg5SYmFir9erVyz1O0mnDfs3vVV2/e7t27WrQ713N37Ofv5G6rn1KUseOHTVx4kS9++67+vbbbxUUFKTHH3/8F48DAD9H+AUAnDE/Pz9lZGQoNTVVSUlJ9Y4bOXKkTpw4oeeff97U//TTT8tisbhXcAoLC2vN7d27tyS5PzVU843Qhr4N969//at8fX1111136dChQ7W27927V88++6y7Tkl65plnTGOeeuopSarzbbQtZeTIkdqyZYsplJWVlemFF15QeHi4unbt2iTHacz1q3H55Zfrhx9+0Msvv6wBAwaYVv7i4+O1a9cuvffeewoKCnLfpv1rdSbn37p1a1133XX68MMPlZGRIV9fX/3hD39orpL10EMP6ciRI3rxxRclnVo9PXHihB599NFaY6urq91/l4YOHao2bdooLS1N5eXlpnE1K+R9+/ZVu3bttGjRItPnvz766CPt2LGjQX9Hav6+P/fcc6b+n/+9O3HihIqLi0197dq1U0hISK1PjwFAQ3DbMwDgrNx+++2/OCYpKUkOh0N/+9vflJeXp169eunjjz/We++9pwceeMC94jRr1iz95z//0ahRoxQWFqbDhw9r4cKFuvjii90rhFFRUbJarVq0aJHatGkjX19fDRgwQBEREXUeOyoqSkuXLtWNN96oSy65RLfddpu6d++uyspKbdy4UStWrNAdd9wh6dQtu7fffrteeOEFFRUVyW63a8uWLXr11Vd17bXXyuFwNM1FawLTpk3Tm2++qREjRui+++5TYGCgXn31VX377bd66623zupW059qzPWrUfNntWnTJqWmppq2DRw4UBaLRZs3b1ZSUlK9K/kfffSRexX7p+Lj45v1ec8zOX/p1K3Pr732mlatWqVbbrnF/Y82dfnXv/4lPz+/Wv1DhgxR+/btG13ziBEj1L17dz311FNKTk6W3W7XhAkTlJaWptzcXA0dOlTnn3++du/erRUrVujZZ5/V9ddfL39/fz399NO666671K9fP918881q27at/t//+386fvy4Xn31VZ1//vmaO3euxo0bJ7vdrptuukmHDh3Ss88+q/DwcE2ePPkX6+vdu7duuukmLVy4UMXFxYqPj1dWVlat7y6Xlpbq4osv1vXXX69evXrJz89Pa9as0datWzV//vxGXxcA4FNHAIAG++mnjk7n5586MoxTn+GZPHmyERISYpx//vlG586djXnz5rk/oWIYhpGVlWX84Q9/MEJCQowLLrjACAkJMW666Sbj66+/Nu3rvffeM7p27Wp4eXk1+LNHX3/9tXH33Xcb4eHhxgUXXGC0adPGGDRokLFgwQKjvLzcPa6qqsp45JFHjIiICOP88883bDabMX36dNOY+s7RMIxan5kxDMP49ttvDUnGvHnz3H2333674evrW2u+3W43unXrVqu/ruPt3bvXuP766w2r1Wr4+PgY/fv3N95//33TmJpP/axYsaLOmhpy7Qyj4dfPMAyjrKzM/Wfz8ccf19pXz549DUnG3Llza2073aeOGlJvfZ86as7zNwzDqK6uNjp27GhIMj788MM693m6Tx3pZ5/Gqkt9v4OGYRivvPJKrfN74YUXjLi4OKN169ZGmzZtjB49ehh//etfjQMHDpjmrly50oiPjzdat25t+Pv7G/379zfefPNN05jly5cbffr0Mby9vY3AwEDjlltuMb7//nvTmPp+xw3DMH788UfjvvvuM4KCggxfX18jKSnJ2Ldvn+lTRxUVFcbUqVONXr16GW3atDF8fX2NXr16GQsXLjztdQGA+lgM4yzengEAAAAAwG8Az/wCAAAAADwe4RcAAAAA4PEIvwAAAAAAj0f4BQAAAAB4PMIvAAAAAMDjEX4BAAAAAB7Pq6ULwO/DyZMndeDAAbVp00YWi6WlywEAAADQQgzDUGlpqUJCQtSqVfOtxxJ+0SwOHDggm83W0mUAAAAA+JXYt2+fLr744mY7HuEXzaJNmzaSTv2C+/v7t3A1AAAAAFpKSUmJbDabOyM0F8IvmkXN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px3ncDjctzivW7dOMTExCg4O1uDBg939LpdLERERCgsLM82Nj4+Xn5+fqZ3OzTffrFmzZunyyy/X+eefr6ioKCUkJGjGjBnuMd98840yMjLUuXNnrVq1Sn/5y19033336dVXX61zn+Xl5XrooYd00003yd/fv84xaWlpCggIcDebzXbaOgEAAADgXCL8NiHDMBo0LiEhQRs2bFBVVZVcLpcSEhIkSXa73RR+61r1Xb58uXJzc01NkvLz802BePbs2e79zJ49WwsXLlROTo7efvttffDBB3r00Ufd+zx58qQuvfRSzZ49W3369NE999yju+++W4sWLap1/KqqKt1www0yDEMZGRn1nuP06dNVXFzsbvv27WvQtQEAAACAc4FnfptQ586dZbFYtHPnztOOczgcKisr09atW+V0OjV16lRJp8Lv+PHjVVhYqOzsbE2YMKHWXJvNpujo6Fr9ISEh7iAsSYGBgZKkmTNn6tZbb9Vdd90lSerRo4fKysp0zz336G9/+5tatWqljh07qmvXrqb9XXLJJXrrrbdMfTXB97vvvtPatWvrXfWVJG9vb3l7e5/2OgAAAABAc2HltwkFBgZq2LBhSk9PV1lZWa3tRUVFkqSoqCjZbDatXLlSubm5stvtkqTQ0FCFhoZq/vz5qqysbNTzvl5eXoqOjna3mvB7/PhxtWpl/mM+77zzJP3fSvWgQYO0a9cu05ivv/7adMt1TfDdvXu31qxZc9o3TAMAAADArw3ht4mlp6frxIkT6t+/v9566y3t3r1bO3bs0HPPPafLLrvMPc7hcGjhwoWKjo5W+/bt3f12u10LFixwvxjr544cOaKCggJT+/k3e38qKSlJGRkZWrZsmb799lutXr1aM2fOVFJSkjsET548WZs3b9bs2bO1Z88eLV26VC+88IKSk5MlnQq+119/vbZt26Y33nhDJ06ccB+7srKyqS4dAAAAAJwz3PbcxCIjI5WTk6PHH39cKSkpOnjwoIKDgxUXF2d6RtbhcOi1115zP+9bw2636+WXX3Z/mujnEhMTa/W9+eabGjt2bJ3jH374YVksFj388MPav3+/goODlZSUpMcff9w9pl+/fnrnnXc0ffp0zZo1SxEREXrmmWd0yy23SJL279+vlStXSpJ69+5t2r/T6ax1DgAAAADwa2MxGvqWJuAslJSUKCAgQAqdIbXy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CwAAAADweIRfAAAAAIDHI/wCAAAAADwe4RcAAAAA4PH41BGaVfFXDzXrQ+0AAAAAILHyCwAAAAD4HSD8AgAAAAA8XqPC75YtW3TixIl6t1dUVOh///d/z7ooAAAAAACaUqPC72WXXaYjR464f/b399c333zj/rmoqEg33XRT01UHAAAAAEATaNQLrwzDOO3P9fUBNQK6zpVa+bR0GfiVMPJntnQJAAAA+J1o8md+LRZLU+8SAAAAAICzwguvAAAAAAAer9Hf+f3qq69UUFAg6dQtzjt37tSxY8ckSf/973+btjoAAAAAAJpAo8PvVVddZXqu9+qrr5Z06nZnwzC47RkAAAAA8KvTqPD77bffnqs6AAAAAAA4ZxoVfsPCws5VHQAAAAAAnDONeuFVWFiYxo0bp9dee0379u07VzUBAAAAANCkGhV+x40bp2+//VYTJkxQeHi4oqOjdffdd+vNN990vwQLUkFBgSZNmqTIyEh5e3vLZrMpKSlJWVlZGjt2rIYPH24an5mZKYvFotTUVFN/amqqOnXqJEnKy8uTxWKps23evLneWl588UVdccUVatu2rdq2bavExERt2bKl1rgdO3bommuuUUBAgHx9fdWvXz/l5+fXGmcYhkaMGCGLxaJ333238RcHAAAAAFpAo257rglnFRUV2rBhgz755BO5XC4tWbJEVVVViomJ0ZVXXqn09PRzUetvQl5engYNGiSr1ap58+apR48eqqqq0qpVq5ScnKzJkydrypQpqq6ulpfXqcvvdDpls9nkcrlM+3I6nXI4HKa+NWvWqFu3bqa+oKCgeutxuVy66aabFB8fLx8fH82dO1dDhw7Vl19+qdDQUEnS3r17dfnll+vOO+/UI488In9/f3355Zfy8fGptb9nnnmGl5oBAAAA+M2xGD99dfMZOnr0qObPn68FCxbo2LFjOnHiRFPU9ps0cuRIff7559q1a5d8fX1N24qKinT48GF16dJFmzZt0sCBAyVJAwYM0O23366UlBQdPXpUPj4+Ki8vl9Vq1aJFi3THHXcoLy9PERER+uyzz9S7d+8zru/EiRNq27atnn/+ed12222SpLFjx+r888/XkiVLTjs3NzdXV199tbZt26aOHTvqnXfe0bXXXtug45aUlCggIEAKnSG1qh2q8ftk5M9s6RIAAADQzGqyQXFxsfz9/ZvtuI267blGZWWlPvnkEz3yyCNyOBwKDQ3V8uXLdf311+vll19u6hp/MwoLC5WZmank5ORawVeSrFarYmJiFBISIqfTKUkqLS1VTk6OxowZo/DwcG3atEmStHHjRlVUVNRa+T1bx48fV1VVlQIDAyVJJ0+e1AcffKCYmBgNGzZM7dq104ABA2rd0nz8+HHdfPPNSk9PV4cOHX7xOBUVFSopKTE1AAAAAGgpjQq/s2bN0pVXXqm2bdvqL3/5iw4ePKh77rlHe/bs0e7du7V48WL3auLv0Z49e2QYhmJjY087zuFwuG9xXrdunWJiYhQcHKzBgwe7+10ulyIiImq9YTs+Pl5+fn6m1hgPPfSQQkJClJiYKEk6fPiwjh07pjlz5mj48OH6+OOPdd111+mPf/yjPvnkE/e8yZMnKz4+Xn/4wx8adJy0tDQFBAS4m81ma1SdAAAAANCUGv3Mb6dOnTR//nyNGTPmtM+a/h419A7yhIQEPfDAA6qqqpLL5VJCQoIkyW6365///KekU+G3rlXf5cuX65JLLqnVn5+fr65du7p/njFjhmbMmGEaM2fOHC1btkwul8v9PO/JkyclSX/4wx80efJkSVLv3r21ceNGLVq0SHa7XStXrtTatWv12WefNej8JGn69Ol68MEH3T+XlJQQgAEAAAC0mEaF348++khOp1OvvPKK7r//fsXExCghIUF2u112u13BwcHnqs7fhM6dO8tisWjnzp2nHedwOFRWVqatW7fK6XRq6tSpkk6F3/Hjx6uwsFDZ2dmaMGFCrbk2m03R0dG1+kNCQpSbm+v+uea25hpPPvmk5syZozVr1qhnz57u/osuukheXl6m4CxJl1xyidavXy9JWrt2rfbu3Sur1WoaM3r0aF1xxRW1XtQlSd7e3vL29j7tdQAAAACA5tKo8Dts2DANGzZM0qlnVdetW6dPPvlETzzxhG655RZFR0fL4XDo+eefPyfF/toFBgZq2LBhSk9P13333VfnC6+sVquioqJks9m0cuVK5ebmym63S5JCQ0MVGhqq+fPnq7KyslHP+3p5edUZiiXpiSee0OOPP65Vq1apb9++pm0XXHCB+vXrp127dpn6v/76a/ct19OmTdNdd91l2t6jRw89/fTTSkpKanCNAAAAANBSGhV+f6pNmzYaOXKkhg0bpi1btmjlypVauHChMjIyfrfhV5LS09M1aNAg9e/fX7NmzVLPnj1VXV2t1atXKyMjQzt27JB0avV34cKFio6OVvv27d3z7Xa7FixY4H4x1s8dOXKk1jeVrVZrnZ8lkqS5c+fq73//u5YuXarw8HD33J8+Lzx16lTdeOONGjx4sBwOhzIzM/Xvf//bvaLboUOHOl9y1alTJ0VERDT+IgEAAABAM2v0255PnjypLVu2aO7cuRoxYoTatm2ryy+/XEuXLtV1112nl1566VzU+ZsRGRmpnJwcORwOpaSkqHv37hoyZIiysrKUkZHhHudwOFRaWup+3reG3W5XaWlpvau+iYmJ6tixo6n9/M3MP5WRkaHKykpdf/31pjlPPvmke8x1112nRYsW6YknnlCPHj30P//zP3rrrbd0+eWXn9W1AAAAAIBfi0Z953fEiBHauHGjSktLFRISIofDoYSEBDkcDkVGRp7LOvEbx3d+URe+8wsAAPD701Lf+W3Ubc9Wq1VPPvmkEhIS1Llz53NVEwAAAAAATapRtz3ffffdevrpp03PqNYoLi5Wt27dtG7duiYrDgAAAACAptCo8Pvss8/qnnvuqXNpOiAgQBMmTNBTTz3VZMUBAAAAANAUGhV+P/vsM/enjuoydOhQffrpp2ddFAAAAAAATalRz/wePnxY559/fv078/LSDz/8cNZFwXMVf/VQsz7UDgAAAABSI1d+Q0ND9cUXX9S7/fPPP1fHjh3PuigAAAAAAJpSo8LvyJEjNXPmTJWXl9fa9uOPP+of//iHrr766iYrDgAAAACAptCo7/weOnRIl156qc477zzde++96tKliyRp586dSk9P14kTJ5STk1Pn26Dx+9ZS3/ICAAAA8Ovym/jOb/v27bVx40b95S9/0fTp01WTmy0Wi4YNG6b09HSCLwAAAADgV6dR4VeSwsLC9OGHH+ro0aPas2ePDMNQ586d1bZt23NRHwAAAAAAZ63R4bdG27Zt1a9fv6asBb8DAV3nSq18WroM/EYZ+TNbugQAAAD8RjXqhVcAAAAAAPwWEX4BAAAAAB6P8AsAAAAA8HiEXwAAAACAxyP8AgAAAAA8HuEXAAAAAODxCL/nQEFBgSZNmqTIyEh5e3vLZrMpKSlJWVlZGjt2rIYPH24an5mZKYvFotTUVFN/amqqOnXqJEnKy8uTxWKps23evLneWt5++2317dtXVqtVvr6+6t27t5YsWWIac8cdd9Ta509rzMvL05133qmIiAi1bt1aUVFR+sc//qHKysqzvFIAAAAA0DzO+Du/qFteXp4GDRokq9WqefPmqUePHqqqqtKqVauUnJysyZMna8qUKaqurpaX16nL73Q6ZbPZ5HK5TPtyOp1yOBymvjVr1qhbt26mvqCgoHrrCQwM1N/+9jfFxsbqggsu0Pvvv69x48apXbt2GjZsmHvc8OHD9fLLL7t/9vb2dv/3zp07dfLkSf3zn/9UdHS0vvjiC919990qKyvTk08+2ehrBAAAAADNjfDbxCZOnCiLxaItW7bI19fX3d+tWzeNHz9ehw8f1rFjx7Rt2zYNHDhQkuRyuTRt2jSlpKSovLxcPj4+Ki8vV3Z2tsaNG2faf1BQkDp06NDgehISEkw/33///Xr11Ve1fv16U/j19vaud7/Dhw83rQRHRkZq165dysjIIPwCAAAA+E3gtucmVFhYqMzMTCUnJ5uCbw2r1aqYmBiFhITI6XRKkkpLS5WTk6MxY8YoPDxcmzZtkiRt3LhRFRUVtVZ+z4ZhGMrKytKuXbs0ePBg0zaXy6V27dqpS5cu+stf/qIjR46cdl/FxcUKDAysd3tFRYVKSkpMDQAAAABaCuG3Ce3Zs0eGYSg2Nva04xwOh/sW53Xr1ikmJkbBwcEaPHiwu9/lcikiIkJhYWGmufHx8fLz8zO1X1JcXCw/Pz9dcMEFGjVqlBYsWKAhQ4a4tw8fPlyvvfaasrKyNHfuXH3yyScaMWKETpw4Ue95LliwQBMmTKj3mGlpaQoICHA3m832i3UCAAAAwLnCbc9NyDCMBo1LSEjQAw88oKqqKrlcLvetyXa7Xf/85z8lnQq/da36Ll++XJdcckmt/vz8fHXt2tX984wZMzRjxgxJUps2bZSbm6tjx44pKytLDz74oCIjI93HHTt2rHtejx491LNnT0VFRcnlcumqq64yHWf//v0aPny4xowZo7vvvrvec5w+fboefPBB988lJSUEYAAAAAAthvDbhDp37iyLxaKdO3eedpzD4VBZWZm2bt0qp9OpqVOnSjoVfsePH6/CwkJlZ2fXubJqs9kUHR1dqz8kJES5ubnun396S3KrVq3cc3r37q0dO3YoLS2t1vPANSIjI3XRRRdpz549pvB74MABORwOxcfH64UXXjjtOXp7e5temgUAAAAALYnbnptQYGCghg0bpvT0dJWVldXaXlRUJEmKioqSzWbTypUrlZubK7vdLkkKDQ1VaGio5s+fr8rKykY97+vl5aXo6Gh3O93zuCdPnlRFRUW927///nsdOXJEHTt2dPft379fCQkJiouL08svv6xWrfjVAQAAAPDbwcpvE0tPT9egQYPUv39/zZo1Sz179lR1dbVWr16tjIwM7dixQ9Kp1d+FCxcqOjpa7du3d8+32+1asGCB+8VYP3fkyBEVFBSY+qxWq3x8fOqsJy0tTX379lVUVJQqKir04YcfasmSJcrIyJAkHTt2TI888ohGjx6tDh06aO/evfrrX/+q6Oho99uga4JvWFiYnnzySf3www/u/TfmzdMAAAAA0FIIv00sMjJSOTk5evzxx5WSkqKDBw8qODhYcXFx7sApnQq/r732Wq1bj+12u15++WXdfPPNde4/MTGxVt+bb75pem73p8rKyjRx4kR9//33at26tWJjY/X666/rxhtvlCSdd955+vzzz/Xqq6+qqKhIISEhGjp0qB599FH3bcurV6/Wnj17tGfPHl188cWm/Tf0OWcAAAAAaEkWg/SCZlBSUqKAgAApdIbUqu5VauCXGPkzW7oEAAAAnKWabFBcXCx/f/9mOy4PbgIAAAAAPB7hFwAAAADg8Qi/AAAAAACPR/gFAAAAAHg83vaMZlX81UPN+lA7AAAAAEis/AIAAAAAfgcIvwAAAAAAj0f4BQAAAAB4PMIvAAAAAMDjEX4BAAAAAB6Ptz2jWQV0nSu18mnpMuBBjPyZLV0CAAAAfgNY+QUAAAAAeDzCLwAAAADA4xF+AQAAAAAej/ALAAAAAPB4hF8AAAAAgMcj/AIAAAAAPB7ht4UUFBRo0qRJioyMlLe3t2w2m5KSkpSVlaWxY8dq+PDhpvGZmZmyWCxKTU019aempqpTp06SpLy8PFksljrb5s2b663lxRdf1BVXXKG2bduqbdu2SkxM1JYtW9zbq6qq9NBDD6lHjx7y9fVVSEiIbrvtNh04cKDpLggAAAAAnEOE3xaQl5enuLg4rV27VvPmzdP27duVmZkph8Oh5ORkORwObdiwQdXV1e45TqdTNptNLpfLtC+n0ymHw2HqW7NmjQ4ePGhqcXFx9dbjcrl00003yel0atOmTbLZbBo6dKj2798vSTp+/LhycnI0c+ZM5eTk6O2339auXbt0zTXXNN1FAQAAAIBzyGIYhtHSRfzejBw5Up9//rl27dolX19f07aioiIdPnxYXbp00aZNmzRw4EBJ0oABA3T77bcrJSVFR48elY+Pj8rLy2W1WrVo0SLdcccdysvLU0REhD777DP17t37jOs7ceKE2rZtq+eff1633XZbnWO2bt2q/v3767vvvnOvPJ9OSUmJAgICpNAZUiufM64N+Dkjf2ZLlwAAAIBGqMkGxcXF8vf3b7bjsvLbzAoLC5WZmank5ORawVeSrFarYmJiFBISIqfTKUkqLS1VTk6OxowZo/DwcG3atEmStHHjRlVUVNRa+T1bx48fV1VVlQIDA+sdU1xcLIvFIqvVWuf2iooKlZSUmBoAAAAAtBTCbzPbs2ePDMNQbGzsacc5HA73Lc7r1q1TTEyMgoODNXjwYHe/y+VSRESEwsLCTHPj4+Pl5+dnao3x0EMPKSQkRImJiXVuLy8v10MPPaSbbrqp3n+pSUtLU0BAgLvZbLZG1QAAAAAATYnw28waepd5QkKCNmzYoKqqKrlcLiUkJEiS7Ha7KfzWteq7fPly5ebmmpok5efnmwLx7Nmza82dM2eOli1bpnfeeUc+PrVvT66qqtINN9wgwzCUkZFRb/3Tp09XcXGxu+3bt69B5w0AAAAA54JXSxfwe9O5c2dZLBbt3LnztOMcDofKysq0detWOZ1OTZ06VdKp8Dt+/HgVFhYqOztbEyZMqDXXZrMpOjq6Vn9ISIg7CEuqdVvzk08+qTlz5mjNmjXq2bNnrfk1wfe7777T2rVrT3t/vre3t7y9vU97jgAAAADQXFj5bWaBgYEaNmyY0tPTVVZWVmt7UVGRJCkqKko2m00rV65Ubm6u7Ha7JCk0NFShoaGaP3++KisrG/W8r5eXl6Kjo93tp+H3iSee0KOPPqrMzEz17du31tya4Lt7926tWbNGQUFBjTxzAAAAAGg5hN8WkJ6erhMnTqh///566623tHv3bu3YsUPPPfecLrvsMvc4h8OhhQsXKjo6Wu3bt3f32+12LViwwP1irJ87cuSICgoKTK28vLzeeubOnauZM2fqpZdeUnh4uHvOsWPHJJ0Kvtdff722bdumN954QydOnHCPqaysbMIrAwAAAADnBuG3BURGRionJ0cOh0MpKSnq3r27hgwZoqysLNNztA6HQ6Wlpe7nfWvY7XaVlpbWu+qbmJiojh07mtq7775bbz0ZGRmqrKzU9ddfb5rz5JNPSpL279+vlStX6vvvv1fv3r1NYzZu3HjW1wMAAAAAzjW+84tmwXd+ca7wnV8AAIDfFr7zCwAAAADAOUL4BQAAAAB4PMIvAAAAAMDjEX4BAAAAAB7Pq6ULwO9L8VcPNetD7QAAAAAgsfILAAAAAPgdIPwCAAAAADwe4RcAAAAA4PEIvwAAAAAAj0f4BQAAAAB4PN72jGYV0HWu1MqnpcuABzHyZ7Z0CQAAAPgNYOUXAAAAAODxCL8AAAAAAI9H+AUAAAAAeDzCLwAAAADA4xF+AQAAAAAej/ALAAAAAPB4hF8AAAAAgMcj/J4DBQUFmjRpkiIjI+Xt7S2bzaakpCRlZWVp7NixGj58uGl8ZmamLBaLUlNTTf2pqanq1KmTJCkvL08Wi6XOtnnz5npr+fLLLzV69GiFh4fLYrHomWeeqTUmLS1N/fr1U5s2bdSuXTtde+212rVrl2lMQkJCreP++c9/PrMLBAAAAADNjPDbxPLy8hQXF6e1a9dq3rx52r59uzIzM+VwOJScnCyHw6ENGzaourraPcfpdMpms8nlcpn25XQ65XA4TH1r1qzRwYMHTS0uLq7eeo4fP67IyEjNmTNHHTp0qHPMJ598ouTkZG3evFmrV69WVVWVhg4dqrKyMtO4u+++23TcJ554opFXBwAAAABahldLF+BpJk6cKIvFoi1btsjX19fd361bN40fP16HDx/WsWPHtG3bNg0cOFCS5HK5NG3aNKWkpKi8vFw+Pj4qLy9Xdna2xo0bZ9p/UFBQvSG2Lv369VO/fv0kSdOmTatzTGZmpunnV155Re3atdOnn36qwYMHu/svvPDCBh+7oqJCFRUV7p9LSkoaXDMAAAAANDVWfptQYWGhMjMzlZycbAq+NaxWq2JiYhQSEiKn0ylJKi0tVU5OjsaMGaPw8HBt2rRJkrRx40ZVVFTUWvltDsXFxZKkwMBAU/8bb7yhiy66SN27d9f06dN1/PjxeveRlpamgIAAd7PZbOe0ZgAAAAA4HcJvE9qzZ48Mw1BsbOxpxzkcDvctzuvWrVNMTIyCg4M1ePBgd7/L5VJERITCwsJMc+Pj4+Xn52dqTenkyZN64IEHNGjQIHXv3t3df/PNN+v111+X0+nU9OnTtWTJEv3pT3+qdz/Tp09XcXGxu+3bt69J6wQAAACAxuC25yZkGEaDxiUkJOiBBx5QVVWVXC6XEhISJEl2u13//Oc/JZ0Kv3Wt+i5fvlyXXHJJrf78/Hx17drV/fOMGTM0Y8aMRp9DcnKyvvjiC61fv97Uf88997j/u0ePHurYsaOuuuoq7d27V1FRUbX24+3tLW9v70YfHwAAAADOBcJvE+rcubMsFot27tx52nEOh0NlZWXaunWrnE6npk6dKulU+B0/frwKCwuVnZ2tCRMm1Jprs9kUHR1dqz8kJES5ubnun39+y3JD3HvvvXr//ff1n//8RxdffPFpxw4YMEDSqdXuusIvAAAAAPyacNtzEwoMDNSwYcOUnp5e603JklRUVCRJioqKks1m08qVK5Wbmyu73S5JCg0NVWhoqObPn6/KyspGPe/r5eWl6Ohod2tM+DUMQ/fee6/eeecdrV27VhEREb84pyZod+zYscHHAf6/9u49rqoq8f//+4AKIgJiKBePCCKShmameAs4EwrW17IaS3NKw7JGszI0tbLMJi+ZfSpTakyzacpLeclPUzhKkEkImjJloonJYA7ofEUBUW66f3/4c387AYaKoMfX8/FYj4esvfbaa++zO4/zbu0LAAAA0FiY+a1nCxcuVP/+/dW7d2/NnDlT3bp1U1VVlTZu3KjExERlZ2dLOjv7u2jRIoWEhKht27bm+lFRUVqwYIH5YKzfOnr0qAoKCuzqvLy85OrqWuN4KioqtHv3bvPfhw4dUlZWltzd3c0Z5PHjx+vjjz/WZ599ppYtW5r9e3p6qnnz5tq/f78+/vhj3XbbbWrdurW+//57TZw4UZGRkerWrdulHzQAAAAAuMyY+a1nwcHB2rFjh2w2mxISEnTDDTdo4MCBSk5OVmJiotnOZrOppKTEvN/3nKioKJWUlNQ66xsTEyM/Pz+7sm7dulrH85///Ec9evRQjx49lJ+fr9dee009evTQww8/bLZJTExUUVGRoqOj7fpduXKlJKlZs2batGmTBg0apLCwMCUkJOiee+7R//7v/178gQIAAACABmQx6vqUJuASFBcXy9PTUwp4VnKqeZYauBhG3vTGHgIAAAAuwLlsUFRUJA8PjwbbLjO/AAAAAACHR/gFAAAAADg8wi8AAAAAwOERfgEAAAAADo9XHaFBFe2e0qA3tQMAAACAxMwvAAAAAOAaQPgFAAAAADg8wi8AAAAAwOERfgEAAAAADo8HXqFBeXaZKzm5NvYwgAtm5E1v7CEAAADgEjDzCwAAAABweIRfAAAAAIDDI/wCAAAAABwe4RcAAAAA4PAIvwAAAAAAh0f4BQAAAAA4PMIvAAAAAMDhEX4vg4KCAk2YMEHBwcFycXGR1WrVkCFDlJycrOHDhysuLs6ufVJSkiwWi2bMmGFXP2PGDLVv316SlJubK4vFUmPZunVrrWNZvHixbrnlFrVq1UqtWrVSTEyMMjMz7doYhqEXXnhBfn5+at68uWJiYrRv3z67NoWFhRo5cqQ8PDzk5eWlMWPG6MSJE5dwlAAAAACg4RB+61lubq569uypr776SvPmzdMPP/ygpKQk2Ww2jR8/XjabTWlpaaqqqjLXSUlJkdVqVWpqql1fKSkpstlsdnWbNm1Sfn6+XenZs2et40lNTdWIESOUkpKi9PR0Wa1WDRo0SIcOHTLbvPrqq3rrrbf0zjvvKCMjQy1atFBsbKzKysrMNiNHjtSPP/6ojRs36vPPP9fmzZs1duzYSzxaAAAAANAwLIZhGI09CEdy22236fvvv9fevXvVokULu2XHjx/XkSNH1LlzZ6Wnp6tPnz6SpIiICI0aNUoJCQk6duyYXF1dVVZWJi8vL73zzjsaPXq0cnNzFRQUpJ07d+rGG2+86PGdPn1arVq10ttvv60HH3xQhmHI399fCQkJmjRpkiSpqKhIbdu21bJlyzR8+HBlZ2erS5cu2rZtm26++WZJZ2erb7vtNv3yyy/y9/f/3e0WFxfL09NTCnhWcnK96PEDjcXIm97YQwAAAHAI57JBUVGRPDw8Gmy7zPzWo8LCQiUlJWn8+PHVgq8keXl5KTQ0VP7+/kpJSZEklZSUaMeOHRo2bJg6dOig9PR0SdK3336r8vLyajO/l+rkyZOqrKyUt7e3JOnAgQMqKChQTEyM2cbT01MRERHmWNLT0+Xl5WUGX0mKiYmRk5OTMjIyatxOeXm5iouL7QoAAAAANBbCbz3KycmRYRgKCws7bzubzWZe4vzNN98oNDRUPj4+ioyMNOtTU1MVFBSkwMBAu3X79esnd3d3u3IhpkyZIn9/fzPsFhQUSJLatm1r165t27bmsoKCArVp08ZueZMmTeTt7W22+a3Zs2fL09PTLFar9YLGCQAAAAD1ifBbj+p6BXl0dLTS0tJUWVmp1NRURUdHS5KioqLswm9Ns74rV65UVlaWXZGkvLw8u0A8a9asauvOmTNHK1as0Nq1a+XqenkvPZ42bZqKiorMcvDgwcu6PQAAAAA4nyaNPQBH0qlTJ1ksFu3Zs+e87Ww2m0pLS7Vt2zalpKRo8uTJks6G3/j4eBUWFiojI0OPPvpotXWtVqtCQkKq1fv7+5tBWJJ5WfM5r732mubMmaNNmzapW7duZr2vr68k6fDhw/Lz8zPrDx8+bN5b7OvrqyNHjtj1V1VVpcLCQnP933JxcZGLi8t5jgIAAAAANBxmfuuRt7e3YmNjtXDhQpWWllZbfvz4cUlSx44dZbVatX79emVlZSkqKkqSFBAQoICAAM2fP18VFRUXdL9vkyZNFBISYpZfh99XX31VL7/8spKSkuzu25WkoKAg+fr6Kjk52awrLi5WRkaG+vbtK0nq27evjh8/ru+++85s89VXX+nMmTOKiIio8xgBAAAAoLEQfuvZwoULdfr0afXu3VurV6/Wvn37lJ2drbfeessMk9LZ2d9FixYpJCTE7n7bqKgoLViwwHww1m8dPXpUBQUFduXXryT6rblz52r69OlaunSpOnToYK5z7h29FotFTz31lP7yl79o/fr1+uGHH/Tggw/K399fQ4cOlSRdf/31iouL0yOPPKLMzEylpaXp8ccf1/Dhw+v0pGcAAAAAaGyE33oWHBysHTt2yGazKSEhQTfccIMGDhyo5ORkJSYmmu1sNptKSkrM+33PiYqKUklJSa2zvjExMfLz87Mr69atq3U8iYmJqqio0B//+Ee7dV577TWzzTPPPKMJEyZo7Nix6tWrl06cOKGkpCS7+4I/+ugjhYWF6dZbb9Vtt92mAQMG6K9//evFHSQAAAAAaGC85xcNgvf84mrHe34BAADqB+/5BQAAAADgMiH8AgAAAAAcHuEXAAAAAODwCL8AAAAAAIfXpLEHgGtL0e4pDXpTOwAAAABIzPwCAAAAAK4BhF8AAAAAgMMj/AIAAAAAHB7hFwAAAADg8Ai/AAAAAACHx9Oe0aA8u8yVnFwbexgALoCRN72xhwAAAHDJmPkFAAAAADg8wi8AAAAAwOERfgEAAAAADo/wCwAAAABweIRfAAAAAIDDI/wCAAAAABwe4beRFBQUaMKECQoODpaLi4usVquGDBmi5ORkDR8+XHFxcXbtk5KSZLFYNGPGDLv6GTNmqH379pKk3NxcWSyWGsvWrVtrHcvixYt1yy23qFWrVmrVqpViYmKUmZlp18YwDL3wwgvy8/NT8+bNFRMTo3379tXPwQAAAACAy4zw2whyc3PVs2dPffXVV5o3b55++OEHJSUlyWazafz48bLZbEpLS1NVVZW5TkpKiqxWq1JTU+36SklJkc1ms6vbtGmT8vPz7UrPnj1rHU9qaqpGjBihlJQUpaeny2q1atCgQTp06JDZ5tVXX9Vbb72ld955RxkZGWrRooViY2NVVlZWPwcFAAAAAC4ji2EYRmMP4lpz22236fvvv9fevXvVokULu2XHjx/XkSNH1LlzZ6Wnp6tPnz6SpIiICI0aNUoJCQk6duyYXF1dVVZWJi8vL73zzjsaPXq0cnNzFRQUpJ07d+rGG2+86PGdPn1arVq10ttvv60HH3xQhmHI399fCQkJmjRpkiSpqKhIbdu21bJlyzR8+PDf7bO4uFienp5SwLOSk+tFjw1AwzPypjf2EAAAgAM5lw2Kiork4eHRYNtl5reBFRYWKikpSePHj68WfCXJy8tLoaGh8vf3V0pKiiSppKREO3bs0LBhw9ShQwelp6dLkr799luVl5dXm/m9VCdPnlRlZaW8vb0lSQcOHFBBQYFiYmLMNp6enoqIiDDH8lvl5eUqLi62KwAAAADQWAi/DSwnJ0eGYSgsLOy87Ww2m3mJ8zfffKPQ0FD5+PgoMjLSrE9NTVVQUJACAwPt1u3Xr5/c3d3tyoWYMmWK/P39zbBbUFAgSWrbtq1du7Zt25rLfmv27Nny9PQ0i9VqvaAxAAAAAEB9Ivw2sLpeZR4dHa20tDRVVlYqNTVV0dHRkqSoqCi78FvTrO/KlSuVlZVlVyQpLy/PLhDPmjWr2rpz5szRihUrtHbtWrm6XvzlydOmTVNRUZFZDh48eNF9AQAAAMClatLYA7jWdOrUSRaLRXv27DlvO5vNptLSUm3btk0pKSmaPHmypLPhNz4+XoWFhcrIyNCjjz5abV2r1aqQkJBq9f7+/mYQlmRe1nzOa6+9pjlz5mjTpk3q1q2bWe/r6ytJOnz4sPz8/Mz6w4cP13pvsYuLi1xcXM67jwAAAADQUJj5bWDe3t6KjY3VwoULVVpaWm358ePHJUkdO3aU1WrV+vXrlZWVpaioKElSQECAAgICNH/+fFVUVFzQ/b5NmjRRSEiIWX4dfl999VW9/PLLSkpK0s0332y3XlBQkHx9fZWcnGzWFRcXKyMjQ3379r2Q3QcAAACARkH4bQQLFy7U6dOn1bt3b61evVr79u1Tdna23nrrLbswabPZtGjRIoWEhNjdbxsVFaUFCxaYD8b6raNHj6qgoMCunO+VRHPnztX06dO1dOlSdejQwVznxIkTkiSLxaKnnnpKf/nLX7R+/Xr98MMPevDBB+Xv76+hQ4fW34EBAAAAgMuE8NsIgoODtWPHDtlsNiUkJOiGG27QwIEDlZycrMTERLOdzWZTSUmJeb/vOVFRUSopKal11jcmJkZ+fn52Zd26dbWOJzExURUVFfrjH/9ot85rr71mtnnmmWc0YcIEjR07Vr169dKJEyeUlJR0SfcFAwAAAEBD4T2/aBC85xe4evGeXwAAUJ94zy8AAAAAAJcJ4RcAAAAA4PAIvwAAAAAAh0f4BQAAAAA4vCaNPQBcW4p2T2nQm9oBAAAAQGLmFwAAAABwDSD8AgAAAAAcHuEXAAAAAODwCL8AAAAAAIdH+AUAAAAAODye9owG5dllruTk2tjDAHCRjLzpjT0EAACAi8LMLwAAAADA4RF+AQAAAAAOj/ALAAAAAHB4hF8AAAAAgMMj/AIAAAAAHB7hFwAAAADg8Ai/l0FBQYEmTJig4OBgubi4yGq1asiQIUpOTtbw4cMVFxdn1z4pKUkWi0UzZsywq58xY4bat28vScrNzZXFYqmxbN26tdaxREdH17jO7bffbrY5ceKEHn/8cbVr107NmzdXly5d9M4775jLz7ftTz75pB6OGAAAAABcXrznt57l5uaqf//+8vLy0rx58xQeHq7Kykpt2LBB48eP18SJEzVp0iRVVVWpSZOzhz8lJUVWq1Wpqal2faWkpMhms9nVbdq0SV27drWra926da3jWbNmjSoqKsy/jx49qu7du2vYsGFm3dNPP62vvvpKf//739WhQwf985//1Lhx4+Tv76877rhDVqtV+fn5dv3+9a9/1bx58zR48OALOj4AAAAA0BgIv/Vs3LhxslgsyszMVIsWLcz6rl27Kj4+XkeOHNGJEye0fft29enTR5KUmpqqqVOnKiEhQWVlZXJ1dVVZWZkyMjL00EMP2fXfunVr+fr61nk83t7edn+vWLFCbm5uduH322+/1ahRoxQdHS1JGjt2rN59911lZmbqjjvukLOzc7Vtrl27Vvfee6/c3d3rPBYAAAAAaCxc9lyPCgsLlZSUpPHjx9sF33O8vLwUGhoqf39/paSkSJJKSkq0Y8cODRs2TB06dFB6erqks4G0vLy82szvpVqyZImGDx9uN75+/fpp/fr1OnTokAzDUEpKin766ScNGjSoxj6+++47ZWVlacyYMbVup7y8XMXFxXYFAAAAABoL4bce5eTkyDAMhYWFnbedzWYzL3H+5ptvFBoaKh8fH0VGRpr1qampCgoKUmBgoN26/fr1k7u7u12pq8zMTO3atUsPP/ywXf2CBQvUpUsXtWvXTs2aNVNcXJwWLlyoyMjIGvtZsmSJrr/+evXr16/Wbc2ePVuenp5msVqtdR4nAAAAANQ3wm89MgyjTu2io6OVlpamyspKpaammpcbR0VF2YXfmmZ9V65cqaysLLsiSXl5eXaBeNasWdXWXbJkicLDw9W7d2+7+gULFmjr1q1av369vvvuO82fP1/jx4/Xpk2bqvVx6tQpffzxx+ed9ZWkadOmqaioyCwHDx6sw5EBAAAAgMuDe37rUadOnWSxWLRnz57ztrPZbCotLdW2bduUkpKiyZMnSzobfuPj41VYWKiMjAw9+uij1da1Wq0KCQmpVu/v728GYan6vb6lpaVasWKFZs6caVd/6tQpPfvss1q7dq35BOhu3bopKytLr732mmJiYuzaf/rppzp58qQefPDB8+6ji4uLXFxcztsGAAAAABoKM7/1yNvbW7GxsVq4cKFKS0urLT9+/LgkqWPHjrJarVq/fr2ysrIUFRUlSQoICFBAQIDmz5+vioqKC7rft0mTJgoJCTHLb8PvJ598ovLycv3pT3+yq6+srFRlZaWcnOxPBWdnZ505c6badpYsWaI77rhDPj4+dR4bAAAAADQ2Zn7r2cKFC9W/f3/17t1bM2fOVLdu3VRVVaWNGzcqMTFR2dnZks7O/i5atEghISFq27atuX5UVJQWLFhgPhjrt44ePaqCggK7Oi8vL7m6up53XEuWLNHQoUOrvRbJw8NDUVFRmjx5spo3b67AwEB9/fXX+tvf/qbXX3/drm1OTo42b96sL7744oKOCQAAAAA0NmZ+61lwcLB27Nghm82mhIQE3XDDDRo4cKCSk5OVmJhotrPZbCopKTHv9z0nKipKJSUltc76xsTEyM/Pz66sW7fuvGPau3evtmzZUut9uitWrFCvXr00cuRIdenSRXPmzNErr7yixx57zK7d0qVL1a5du1qfAg0AAAAAVyqLUdenNAGXoLi4WJ6enlLAs5LT+WepAVy5jLzpjT0EAABwlTuXDYqKiuTh4dFg22XmFwAAAADg8Ai/AAAAAACHR/gFAAAAADg8wi8AAAAAwOHxqiM0qKLdUxr0pnYAAAAAkJj5BQAAAABcAwi/AAAAAACHR/gFAAAAADg8wi8AAAAAwOERfgEAAAAADo+nPaNBeXaZKzm5NvYwAFzjjLzpjT0EAADQwJj5BQAAAAA4PMIvAAAAAMDhEX4BAAAAAA6P8AsAAAAAcHiEXwAAAACAwyP8AgAAAAAcHuG3ERQUFGjChAkKDg6Wi4uLrFarhgwZouTkZA0fPlxxcXF27ZOSkmSxWDRjxgy7+hkzZqh9+/aSpNzcXFkslhrL1q1bzzueN954Q507d1bz5s1ltVo1ceJElZWVmctLSkr01FNPKTAwUM2bN1e/fv20bdu2+jkYAAAAANAAeM9vA8vNzVX//v3l5eWlefPmKTw8XJWVldqwYYPGjx+viRMnatKkSaqqqlKTJmc/npSUFFmtVqWmptr1lZKSIpvNZle3adMmde3a1a6udevWtY7n448/1tSpU7V06VL169dPP/30k0aPHi2LxaLXX39dkvTwww9r165d+vDDD+Xv76+///3viomJ0e7duxUQEFAPRwUAAAAALi/CbwMbN26cLBaLMjMz1aJFC7O+a9euio+P15EjR3TixAlt375dffr0kSSlpqZq6tSpSkhIUFlZmVxdXVVWVqaMjAw99NBDdv23bt1avr6+dR7Pt99+q/79++v++++XJHXo0EEjRoxQRkaGJOnUqVNavXq1PvvsM0VGRko6O+P8v//7v0pMTNRf/vKXSzoeAAAAANAQuOy5ARUWFiopKUnjx4+3C77neHl5KTQ0VP7+/kpJSZF09pLjHTt2aNiwYerQoYPS09MlnQ2t5eXl1WZ+L1S/fv303XffKTMzU5L0888/64svvtBtt90mSaqqqtLp06fl6upqt17z5s21ZcuWWvstLy9XcXGxXQEAAACAxkL4bUA5OTkyDENhYWHnbWez2cxLnL/55huFhobKx8dHkZGRZn1qaqqCgoIUGBhot26/fv3k7u5uV87n/vvv18yZMzVgwAA1bdpUHTt2VHR0tJ599llJUsuWLdW3b1+9/PLL+s9//qPTp0/r73//u9LT05Wfn19rv7Nnz5anp6dZrFbr7xwdAAAAALh8CL8NyDCMOrWLjo5WWlqaKisrlZqaqujoaElSVFSUXfitadZ35cqVysrKsiuSlJeXZxeIZ82aZfYza9YsLVq0SDt27NCaNWv0j3/8Qy+//LLZ54cffijDMBQQECAXFxe99dZbGjFihJycaj99pk2bpqKiIrMcPHiwTvsOAAAAAJcD9/w2oE6dOslisWjPnj3nbWez2VRaWqpt27YpJSVFkydPlnQ2/MbHx6uwsFAZGRl69NFHq61rtVoVEhJSrd7f398MwpLk7e0tSZo+fboeeOABPfzww5Kk8PBwlZaWauzYsXruuefk5OSkjh076uuvv1ZpaamKi4vl5+en++67T8HBwbXug4uLi1xcXH73mAAAAABAQ2DmtwF5e3srNjZWCxcuVGlpabXlx48flyR17NhRVqtV69evV1ZWlqKioiRJAQEBCggI0Pz581VRUXFB9/s2adJEISEhZjkXfk+ePFltBtfZ2VlS9ZnqFi1ayM/PT8eOHdOGDRt055131nn7AAAAANCYmPltYAsXLlT//v3Vu3dvzZw5U926dVNVVZU2btyoxMREZWdnSzo7+7to0SKFhISobdu25vpRUVFasGCB+WCs3zp69KgKCgrs6ry8vKo9sOqcIUOG6PXXX1ePHj0UERGhnJwcTZ8+XUOGDDFD8IYNG2QYhjp37qycnBxNnjxZYWFh1Z40DQAAAABXKsJvAwsODtaOHTv0yiuvKCEhQfn5+fLx8VHPnj2VmJhotrPZbPrb3/5m3u97TlRUlN5//33z1US/FRMTU61u+fLlGj58eI3tn3/+eVksFj3//PM6dOiQfHx8NGTIEL3yyitmm6KiIk2bNk2//PKLvL29dc899+iVV15R06ZNL+IIAAAAAEDDsxh1fQoTcAmKi4vl6ekpBTwrOdU8Cw0ADcXIm97YQwAA4Jp1LhsUFRXJw8OjwbbLPb8AAAAAAIdH+AUAAAAAODzCLwAAAADA4RF+AQAAAAAOj/ALAAAAAHB4vOoIDapo95QGfaIbAAAAAEjM/AIAAAAArgGEXwAAAACAwyP8AgAAAAAcHuEXAAAAAODweOAVGpRnl7mSk2tjDwMAqjHypjf2EAAAwGXEzC8AAAAAwOERfgEAAAAADo/wCwAAAABweIRfAAAAAIDDI/wCAAAAABwe4RcAAAAA4PAIvwAAAAAAh0f4vQwKCgo0YcIEBQcHy8XFRVarVUOGDFFycrKGDx+uuLg4u/ZJSUmyWCyaMWOGXf2MGTPUvn17SVJubq4sFkuNZevWrbWO5ccff9Q999yjDh06yGKx6I033qjWZvPmzRoyZIj8/f1lsVi0bt26am0OHz6s0aNHy9/fX25uboqLi9O+ffsu+NgAAAAAQGMg/Naz3Nxc9ezZU1999ZXmzZunH374QUlJSbLZbBo/frxsNpvS0tJUVVVlrpOSkiKr1arU1FS7vlJSUmSz2ezqNm3apPz8fLvSs2fPWsdz8uRJBQcHa86cOfL19a2xTWlpqbp3766FCxfWuNwwDA0dOlQ///yzPvvsM+3cuVOBgYGKiYlRaWlpHY8MAAAAADSeJo09AEczbtw4WSwWZWZmqkWLFmZ9165dFR8fryNHjujEiRPavn27+vTpI0lKTU3V1KlTlZCQoLKyMrm6uqqsrEwZGRl66KGH7Ppv3bp1rSG2Jr169VKvXr0kSVOnTq2xzeDBgzV48OBa+9i3b5+2bt2qXbt2qWvXrpKkxMRE+fr6avny5Xr44YfrPB4AAAAAaAzM/NajwsJCJSUlafz48XbB9xwvLy+FhobK399fKSkpkqSSkhLt2LFDw4YNU4cOHZSeni5J+vbbb1VeXl5t5rcxlJeXS5JcXV3NOicnJ7m4uGjLli21rlNcXGxXAAAAAKCxEH7rUU5OjgzDUFhY2Hnb2Ww28xLnb775RqGhofLx8VFkZKRZn5qaqqCgIAUGBtqt269fP7m7u9uVyy0sLEzt27fXtGnTdOzYMVVUVGju3Ln65ZdflJ+fX+M6s2fPlqenp1msVutlHycAAAAA1IbwW48Mw6hTu+joaKWlpamyslKpqamKjo6WJEVFRdmF35pmfVeuXKmsrCy7Ikl5eXl2gXjWrFn1sUuSpKZNm2rNmjX66aef5O3tLTc3N6WkpGjw4MFycqr5FJo2bZqKiorMcvDgwXobDwAAAABcKO75rUedOnWSxWLRnj17ztvOZrOptLRU27ZtU0pKiiZPnizpbPiNj49XYWGhMjIy9Oijj1Zb12q1KiQkpFq9v7+/GYQlydvb+9J25jd69uyprKwsFRUVqaKiQj4+PoqIiNDNN99cY3sXFxe5uLjU6xgAAAAA4GIx81uPvL29FRsbq4ULF9b4FOTjx49Lkjp27Cir1ar169crKytLUVFRkqSAgAAFBARo/vz5qqiouKD7fZs0aaKQkBCz1Hf4PcfT01M+Pj7at2+ftm/frjvvvPOybAcAAAAA6hMzv/Vs4cKF6t+/v3r37q2ZM2eqW7duqqqq0saNG5WYmKjs7GxJZ2d/Fy1apJCQELVt29ZcPyoqSgsWLDAfjPVbR48eVUFBgV2dl5eX3cOofq2iokK7d+82/33o0CFlZWXJ3d3dnEE+ceKEcnJyzHUOHDigrKwseXt7m+8Z/uSTT+Tj46P27dvrhx9+0JNPPqmhQ4dq0KBBl3C0AAAAAKBhMPNbz4KDg7Vjxw7ZbDYlJCTohhtu0MCBA5WcnKzExESznc1mU0lJiXm/7zlRUVEqKSmpddY3JiZGfn5+dmXdunW1juc///mPevTooR49eig/P1+vvfaaevToYfd6ou3bt5ttJOnpp59Wjx499MILL5ht8vPz9cADDygsLExPPPGEHnjgAS1fvvwijhAAAAAANDyLUdenNAGXoLi4WJ6enlLAs5JTzbPUANCYjLzpjT0EAACuCeeyQVFRkTw8PBpsu8z8AgAAAAAcHuEXAAAAAODwCL8AAAAAAIdH+AUAAAAAODxedYQGVbR7SoPe1A4AAAAAEjO/AAAAAIBrAOEXAAAAAODwCL8AAAAAAIdH+AUAAAAAODweeIUG5dllruTk2tjDAAAADcjIm97YQwAAZn4BAAAAAI6P8AsAAAAAcHiEXwAAAACAwyP8AgAAAAAcHuEXAAAAAODwCL8AAAAAAIdH+P3/RUdH66mnnrrkfkaPHq2hQ4decj8AAAAAgPrj0OF39OjRslgseuyxx6otGz9+vCwWi0aPHi1JWrNmjV5++eVL3uabb76pZcuWXXI/F8JisZilRYsW6tSpk0aPHq3vvvvugvuqr/8JAAAAAABXEocOv5JktVq1YsUKnTp1yqwrKyvTxx9/rPbt25t13t7eatmy5SVvz9PTU15eXpfcz4V6//33lZ+frx9//FELFy7UiRMnFBERob/97W8NPhYAAAAAuNI4fPi96aabZLVatWbNGrNuzZo1at++vXr06GHW/XbGc9GiRerUqZNcXV3Vtm1b/fGPfzSXffrppwoPD1fz5s3VunVrxcTEqLS0VFL1y56jo6P1xBNP6JlnnpG3t7d8fX01Y8YMuzHu2bNHAwYMkKurq7p06aJNmzbJYrFo3bp1dd5PLy8v+fr6qkOHDho0aJA+/fRTjRw5Uo8//riOHTsmSTp69KhGjBihgIAAubm5KTw8XMuXLzf7GD16tL7++mu9+eab5kxybm6uTp8+rTFjxigoKEjNmzdX586d9eabb9Z5bAAAAADQ2Bw+/EpSfHy83n//ffPvpUuX6qGHHqq1/fbt2/XEE09o5syZ2rt3r5KSkhQZGSlJys/P14gRIxQfH6/s7Gylpqbq7rvvlmEYtfb3wQcfqEWLFsrIyNCrr76qmTNnauPGjZKk06dPa+jQoXJzc1NGRob++te/6rnnnquX/Z44caJKSkrMbZWVlalnz576xz/+oV27dmns2LF64IEHlJmZKensJdt9+/bVI488ovz8fOXn58tqterMmTNq166dPvnkE+3evVsvvPCCnn32Wa1atarWbZeXl6u4uNiuAAAAAEBjadLYA2gIf/rTnzRt2jT9+9//liSlpaVpxYoVSk1NrbF9Xl6eWrRoof/zf/6PWrZsqcDAQHOWOD8/X1VVVbr77rsVGBgoSQoPDz/v9rt166YXX3xRktSpUye9/fbbSk5O1sCBA7Vx40bt379fqamp8vX1lSS98sorGjhw4CXvd1hYmCQpNzdXkhQQEKBJkyaZyydMmKANGzZo1apV6t27tzw9PdWsWTO5ubmZY5EkZ2dnvfTSS+bfQUFBSk9P16pVq3TvvffWuO3Zs2fbrQMAAAAAjemaCL8+Pj66/fbbtWzZMhmGodtvv13XXXddre0HDhyowMBABQcHKy4uTnFxcbrrrrvk5uam7t2769Zbb1V4eLhiY2M1aNAg/fGPf1SrVq1q7a9bt252f/v5+enIkSOSpL1798pqtdqFzd69e1/iHp91bjbaYrFIOjvLPGvWLK1atUqHDh1SRUWFysvL5ebm9rt9LVy4UEuXLlVeXp5OnTqliooK3XjjjbW2nzZtmp5++mnz7+LiYlmt1kvbIQAAAAC4SNfEZc/S2Uufly1bpg8++EDx8fHnbduyZUvt2LFDy5cvl5+fn1544QV1795dx48fl7OzszZu3Kgvv/xSXbp00YIFC9S5c2cdOHCg1v6aNm1q97fFYtGZM2fqZb/OJzs7W9LZmVpJmjdvnt58801NmTJFKSkpysrKUmxsrCoqKs7bz4oVKzRp0iSNGTNG//znP5WVlaWHHnrovOu5uLjIw8PDrgAAAABAY7lmwm9cXJwqKipUWVmp2NjY323fpEkTxcTE6NVXX9X333+v3NxcffXVV5LOhtf+/fvrpZde0s6dO9WsWTOtXbv2osbVuXNnHTx4UIcPHzbrtm3bdlF9/dYbb7whDw8PxcTESDp7ufedd96pP/3pT+revbuCg4P1008/2a3TrFkznT592q4uLS1N/fr107hx49SjRw+FhIRo//799TJGAAAAAGgI18Rlz9LZ+1bPzYQ6Ozuft+3nn3+un3/+WZGRkWrVqpW++OILnTlzRp07d1ZGRoaSk5M1aNAgtWnTRhkZGfrvf/+r66+//qLGNXDgQHXs2FGjRo3Sq6++qpKSEj3//POS/t/lynVx/PhxFRQUqLy8XD/99JPeffddrVu3Tn/729/MVy916tRJn376qb799lu1atVKr7/+ug4fPqwuXbqY/XTo0EEZGRnKzc2Vu7u7vL291alTJ/3tb3/Thg0bFBQUpA8//FDbtm0zZ5QBAAAA4Ep3zcz8Sqrz5bdeXl5as2aN/vCHP+j666/XO++8o+XLl6tr167y8PDQ5s2bddtttyk0NFTPP/+85s+fr8GDB1/UmJydnbVu3TqdOHFCvXr10sMPP2w+7dnV1bXO/Tz00EPy8/NTWFiY/vznP8vd3V2ZmZm6//77zTbPP/+8brrpJsXGxio6Olq+vr52r2WSpEmTJsnZ2VldunSRj4+P8vLy9Oijj+ruu+/Wfffdp4iICB09elTjxo27qP0FAAAAgMZgMc73jh40irS0NA0YMEA5OTnq2LFjYw+nXhQXF8vT01MKeFZyqnuoBwAAVz8jb3pjDwHAFeRcNigqKmrQZwNdM5c9X8nWrl0rd3d3derUSTk5OXryySfVv39/hwm+AAAAANDYrqnLnq9UJSUlGj9+vMLCwjR69Gj16tVLn332mSRp1qxZcnd3r7Fc7KXWAAAAAHCt4bLnK1xhYaEKCwtrXNa8eXMFBAQ08IguDpc9AwBw7eKyZwC/xmXPqJG3t7e8vb0bexgAAAAAcFUj/KJBFe2e0qD/dwcAAAAAJO75BQAAAABcAwi/AAAAAACHR/gFAAAAADg8wi8AAAAAwOERfgEAAAAADo+nPaNBeXaZy3t+AQAAcEXindSOjZlfAAAAAIDDI/wCAAAAABwe4RcAAAAA4PAIvwAAAAAAh0f4BQAAAAA4PMIvAAAAAMDhEX4bSUFBgSZMmKDg4GC5uLjIarVqyJAhSk5O1vDhwxUXF2fXPikpSRaLRTNmzLCrnzFjhtq3by9Jys3NlcViqbFs3bq11rFER0fXuM7tt99utjl8+LBGjx4tf39/ubm5KS4uTvv27au/AwIAAAAAlxHv+W0Eubm56t+/v7y8vDRv3jyFh4ersrJSGzZs0Pjx4zVx4kRNmjRJVVVVatLk7EeUkpIiq9Wq1NRUu75SUlJks9ns6jZt2qSuXbva1bVu3brW8axZs0YVFRXm30ePHlX37t01bNgwSZJhGBo6dKiaNm2qzz77TB4eHnr99dcVExOj3bt3q0WLFpdyOAAAAADgsiP8NoJx48bJYrEoMzPTLjh27dpV8fHxOnLkiE6cOKHt27erT58+kqTU1FRNnTpVCQkJKisrk6urq8rKypSRkaGHHnrIrv/WrVvL19e3zuPx9va2+3vFihVyc3Mzw+++ffu0detW7dq1ywzViYmJ8vX11fLly/Xwww9f1HEAAAAAgIbCZc8NrLCwUElJSRo/fnyNM6ZeXl4KDQ2Vv7+/UlJSJEklJSXasWOHhg0bpg4dOig9PV2S9O2336q8vLzazO+lWrJkiYYPH26Or7y8XJLk6upqtnFycpKLi4u2bNlSYx/l5eUqLi62KwAAAADQWAi/DSwnJ0eGYSgsLOy87Ww2m3mJ8zfffKPQ0FD5+PgoMjLSrE9NTVVQUJACAwPt1u3Xr5/c3d3tSl1lZmZq165ddrO5YWFhat++vaZNm6Zjx46poqJCc+fO1S+//KL8/Pwa+5k9e7Y8PT3NYrVa6zwGAAAAAKhvhN8GZhhGndpFR0crLS1NlZWVSk1NVXR0tCQpKirKLvzWNOu7cuVKZWVl2RVJysvLswvEs2bNqrbukiVLFB4ert69e5t1TZs21Zo1a/TTTz/J29tbbm5uSklJ0eDBg+XkVPMpNG3aNBUVFZnl4MGDddpvAAAAALgcuOe3gXXq1EkWi0V79uw5bzubzabS0lJt27ZNKSkpmjx5sqSz4Tc+Pl6FhYXKyMjQo48+Wm1dq9WqkJCQavX+/v5mEJaq3+tbWlqqFStWaObMmdXW7dmzp7KyslRUVKSKigr5+PgoIiJCN998c43jd3FxkYuLy3n3EQAAAAAaCjO/Dczb21uxsbFauHChSktLqy0/fvy4JKljx46yWq1av369srKyFBUVJUkKCAhQQECA5s+fr4qKigu637dJkyYKCQkxy2/D7yeffKLy8nL96U9/qrUPT09P+fj4aN++fdq+fbvuvPPOOm8fAAAAABoL4bcRLFy4UKdPn1bv3r21evVq7du3T9nZ2XrrrbfUt29fs53NZtOiRYsUEhKitm3bmvVRUVFasGCB+WCs3zp69KgKCgrsSllZ2e+Oa8mSJRo6dGiNr0X65JNPlJqaqp9//lmfffaZBg4cqKFDh2rQoEEXeRQAAAAAoOEQfhtBcHCwduzYIZvNpoSEBN1www0aOHCgkpOTlZiYaLaz2WwqKSkx7/c9JyoqSiUlJbXO+sbExMjPz8+urFu37rxj2rt3r7Zs2aIxY8bUuDw/P18PPPCAwsLC9MQTT+iBBx7Q8uXLL2i/AQAAAKCxWIy6PoEJuATFxcXy9PSUAp6VnFx/fwUAAACggRl50xt7CNeEc9mgqKhIHh4eDbZdZn4BAAAAAA6P8AsAAAAAcHiEXwAAAACAwyP8AgAAAAAcXpPGHgCuLUW7pzToTe0AAAAAIDHzCwAAAAC4BhB+AQAAAAAOj/ALAAAAAHB4hF8AAAAAgMMj/AIAAAAAHB5Pe0aD8uwyV3JybexhAAAAAPXCyJve2ENAHTHzCwAAAABweIRfAAAAAIDDI/wCAAAAABwe4RcAAAAA4PAIvwAAAAAAh0f4dXAdOnTQG2+8cUHrpKWlKTw8XE2bNtXQoUMvy7gAAAAAoCE1avgdPXq0LBaL5syZY1e/bt06WSwWrV69Ws7Ozjp06FCN63fq1ElPP/20JCk6OloWi0UWi0UuLi4KCAjQkCFDtGbNmjqPZ/Xq1YqOjpanp6fc3d3VrVs3zZw5U4WFhdqzZ48sFou2bt1qt06fPn3k6uqqsrIys66srEyurq5asmSJ3X7+tsTFxdV5bBdr27ZtGjt27AWt8/TTT+vGG2/UgQMHtGzZssszMAAAAABoQI0+8+vq6qq5c+fq2LFj1Zbdcccdat26tT744INqyzZv3qycnByNGTPGrHvkkUeUn5+v/fv3a/Xq1erSpYuGDx9ep/D33HPP6b777lOvXr305ZdfateuXZo/f77+9a9/6cMPP1RYWJh8fX2VmppqrlNSUqIdO3bIx8fHLhSnp6ervLxcf/jDH8y6uLg45efn25Xly5fX9TBdNB8fH7m5uV3QOvv379cf/vAHtWvXTl5eXpdnYAAAAADQgBo9/MbExMjX11ezZ8+utqxp06Z64IEHapx9XLp0qSIiItS1a1ezzs3NTb6+vmrXrp369OmjuXPn6t1339XixYu1adOmWseQmZmpWbNmaf78+Zo3b5769eunDh06aODAgVq9erVGjRolSbLZbHbhd8uWLQoNDdWQIUPs6lNTUxUYGKigoCCzzsXFRb6+vnalVatWtY4pNzdXFotFa9askc1mk5ubm7p376709HS7dqtXr1bXrl3l4uKiDh06aP78+XbLf3vZs8Vi0Xvvvae77rpLbm5u6tSpk9avX2+3zaNHjyo+Pl4Wi8U89l9//bV69+4tFxcX+fn5aerUqaqqqqp1/AAAAABwJWn08Ovs7KxZs2ZpwYIF+uWXX6otHzNmjPbt26fNmzebdSdOnNCnn35qN+tbm1GjRqlVq1bnvfz5o48+kru7u8aNG1fj8nOznzabTVu2bDFDX0pKiqKjoxUVFaWUlBSzfUpKimw22++OrS6ee+45TZo0SVlZWQoNDdWIESPM7X/33Xe69957NXz4cP3www+aMWOGpk+f/ruXKr/00ku699579f333+u2227TyJEjVVhYKKvVqvz8fHl4eOiNN95Qfn6+7rvvPh06dEi33XabevXqpX/9619KTEzUkiVL9Je//KXWbZSXl6u4uNiuAAAAAEBjafTwK0l33XWXbrzxRr344ovVlnXp0kV9+vTR0qVLzbpVq1bJMAwNHz78d/t2cnJSaGiocnNza22zb98+BQcHq2nTpufty2azqbS0VNu2bZN0doY3KipKkZGRysjIUFlZmU6dOqXMzMxq4ffzzz+Xu7u7XZk1a9bvjn/SpEm6/fbbFRoaqpdeekn//ve/lZOTI0l6/fXXdeutt2r69OkKDQ3V6NGj9fjjj2vevHnn7XP06NEaMWKEQkJCNGvWLJ04cUKZmZlydnaWr6+vLBaLPD095evrq+bNm2vRokWyWq16++23FRYWpqFDh+qll17S/PnzdebMmRq3MXv2bHl6eprFarX+7r4CAAAAwOVyRYRfSZo7d64++OADZWdnV1sWHx+vTz/9VCUl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o08++UQnTpyQJJWUlOjTTz9VfHy8XbuioiK5u7vblcGDB0s6G36rqqp09913q0OHDgoPD9e4cePk7u5+eXYOAODQCL8AAKDO6jrrOmLECJ0+fVqrVq2SJK1cuVJOTk6677777Nq1bNlSWVlZduW9996TJHXv3l233nqrwsPDNWzYMC1evFjHjh2r3x0CAFwzCL8AAKDOOnXqJIvFoj179py3nYeHh/74xz/q/fffl3T2kud777232qytk5OTQkJC7EpAQIAkydnZWRs3btSXX36pLl26aMGCBercubMOHDhweXYOAODQCL8AAKDOvL29FRsbq4ULF6q0tLTa8uPHj5v/HjNmjLZs2aLPP/9c3377rd2DrurKYrGof//+eumll7Rz5041a9ZMa9euvZRdAABco3jaMwAAuCALFy5U//791bt3b82cOVPdunVTVVWVNm7cqMTERGVnZ0uSIiMjFRISogcffFBhYWHq169ftb4Mw1BBQUG1+jZt2mjbtm1KTk7WoEGD1KZNG2VkZOi///2vrr/++su+jwAAx0P4BQAAFyQ4OFg7duzQK6+8ooSEBOXn58vHx0c9e/ZUYmKi2c5isSg+Pl7PPvuspk2bVmNfxcXF8vPzq1afn58vDw8Pbd68WW+88YaKi4sVGBio+fPnmw/EAgDgQlgM3hcAAAAAAHBw3PMLAAAAAHB4hF8AAAAAgMMj/AIAAAAAHB7hFwAAAADg8Ai/AAAAAACHR/gFAAAAADg8wi8AAAAAwOERfgEAAAAADo/wCwAAAABweIRfAAAAAIDDI/wCAAAAABze/wfNkkH4mwrnKgAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "nvd_cwe = nvd['CWE'].value_counts()\n", "nvd_cwe = nvd_cwe.reset_index()\n", "nvd_cwe.columns = ['CWE', 'CVEs']\n", "nvd_cwe_graph = nvd_cwe[nvd_cwe.CVEs > 100].head(25)\n", "plt.figure(figsize=(10,10));\n", "plt.barh(\"CWE\", \"CVEs\", data = nvd_cwe_graph, color=\"#001d82\");\n", "plt.xlabel(\"CVEs\"); \n", "plt.ylabel(\"CWE\") ;\n", "plt.title(\"Most Common CWE in CVE Records\");\n" ] }, { "cell_type": "code", "execution_count": 4, "id": "04a26e54", "metadata": { "execution": { "iopub.execute_input": "2024-05-06T00:25:36.356541Z", "iopub.status.busy": "2024-05-06T00:25:36.356356Z", "iopub.status.idle": "2024-05-06T00:25:36.364188Z", "shell.execute_reply": "2024-05-06T00:25:36.363740Z" }, "tags": [ "remove-input" ] }, "outputs": [ { "data": { "text/html": [ "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "
CWECVEs
\n", "\n", "
\n", "Loading ITables v2.0.1 from the internet...\n", "(need help?)
\n", "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "show(nvd_cwe, scrollY=\"400px\", scrollCollapse=True, paging=False)" ] }, { "cell_type": "code", "execution_count": 5, "id": "20ee3a71", "metadata": { "execution": { "iopub.execute_input": "2024-05-06T00:25:36.366282Z", "iopub.status.busy": "2024-05-06T00:25:36.366011Z", "iopub.status.idle": "2024-05-06T00:25:36.369937Z", "shell.execute_reply": "2024-05-06T00:25:36.369510Z" }, "tags": [ "remove-input" ] }, "outputs": [ { "data": { "text/markdown": [ "This report is updated automatically every day, last generated on: **2024-05-06 00:25:36.366905**" ], "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Markdown(f\"This report is updated automatically every day, last generated on: **{datetime.datetime.now()}**\")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.9" }, "vscode": { "interpreter": { "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" } } }, "nbformat": 4, "nbformat_minor": 5 }