From 4863f27fab81fa0301554a5df623feb8c72fd404 Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Sun, 24 Apr 2022 20:59:47 +0200 Subject: sphinx quickstart --- .github/workflows/docs.yml | 12 +++++++++ docs/Makefile | 20 ++++++++++++++ docs/conf.py | 55 +++++++++++++++++++++++++++++++++++++++ docs/index.rst | 20 ++++++++++++++ docs/make.bat | 35 +++++++++++++++++++++++++ requirements/dev_requirements.in | 3 ++- requirements/dev_requirements.txt | 22 ++++++++++++++-- 7 files changed, 164 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/docs.yml create mode 100644 docs/Makefile create mode 100644 docs/conf.py create mode 100644 docs/index.rst create mode 100644 docs/make.bat diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 00000000..1867bfc1 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,12 @@ +name: "Build docs" +on: + push: + workflow_dispatch: +jobs: + docs: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - uses: ammaraskar/sphinx-action@master + with: + docs-folder: "docs/" diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 00000000..d4bb2cbb --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 00000000..3617f9fc --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,55 @@ +# Configuration file for the Sphinx documentation builder. +# +# This file only contains a selection of the most common options. For a full +# list see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +# import os +# import sys +# sys.path.insert(0, os.path.abspath('.')) + +from typing import List + +# -- Project information ----------------------------------------------------- + +project = "sec-certs" +copyright = "2022, Adam Janovsky, Petr Svenda, Jan Jancar, Jiri Michalik, Stanislav Bobon" +author = "Adam Janovsky, Petr Svenda, Jan Jancar, Jiri Michalik, Stanislav Bobon" + +# The full version, including alpha/beta/rc tags +release = "0.0.4" + + +# -- General configuration --------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions: List[str] = [] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ["_templates"] + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] + + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = "alabaster" + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ["_static"] diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 00000000..9e16d741 --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,20 @@ +.. sec-certs documentation master file, created by + sphinx-quickstart on Sun Apr 24 20:56:46 2022. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to sec-certs's documentation! +===================================== + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/docs/make.bat b/docs/make.bat new file mode 100644 index 00000000..32bb2452 --- /dev/null +++ b/docs/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=. +set BUILDDIR=_build + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.https://www.sphinx-doc.org/ + exit /b 1 +) + +if "%1" == "" goto help + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/requirements/dev_requirements.in b/requirements/dev_requirements.in index 54bba20d..78f2c088 100644 --- a/requirements/dev_requirements.in +++ b/requirements/dev_requirements.in @@ -10,4 +10,5 @@ black isort flake8 pre-commit -pip-tools \ No newline at end of file +pip-tools +sphinx \ No newline at end of file diff --git a/requirements/dev_requirements.txt b/requirements/dev_requirements.txt index d11d2459..2132f9c8 100644 --- a/requirements/dev_requirements.txt +++ b/requirements/dev_requirements.txt @@ -1,4 +1,6 @@ +alabaster==0.7.12 # via sphinx attrs==21.4.0 # via pytest +babel==2.10.1 # via sphinx black==22.3.0 # via -r dev_requirements.in certifi==2021.10.8 # via requests cfgv==3.3.1 # via pre-commit @@ -6,19 +8,24 @@ charset-normalizer==2.0.12 # via requests click==8.1.2 # via black, pip-tools coverage[toml]==6.3.2 # via pytest-cov distlib==0.3.4 # via virtualenv +docutils==0.17.1 # via sphinx filelock==3.6.0 # via virtualenv flake8==4.0.1 # via -r dev_requirements.in gprof2dot==2021.2.21 # via pytest-profiling identify==2.4.12 # via pre-commit idna==3.3 # via requests +imagesize==1.3.0 # via sphinx +importlib-metadata==4.11.3 # via sphinx iniconfig==1.1.1 # via pytest isort==5.10.1 # via -r dev_requirements.in +jinja2==3.1.1 # via sphinx +markupsafe==2.1.1 # via jinja2 mccabe==0.6.1 # via flake8 memory-profiler==0.60.0 # via pytest-monitor mypy==0.942 # via -r dev_requirements.in mypy-extensions==0.4.3 # via black, mypy nodeenv==1.6.0 # via pre-commit -packaging==21.3 # via pytest +packaging==21.3 # via pytest, sphinx pathspec==0.9.0 # via black pep517==0.12.0 # via pip-tools pip-tools==6.5.1 # via -r dev_requirements.in @@ -29,14 +36,24 @@ psutil==5.9.0 # via memory-profiler, pytest-monitor py==1.11.0 # via pytest pycodestyle==2.8.0 # via flake8 pyflakes==2.4.0 # via flake8 +pygments==2.12.0 # via sphinx pyparsing==3.0.7 # via packaging pytest==7.1.1 # via -r dev_requirements.in, pytest-cov, pytest-monitor, pytest-profiling pytest-cov==3.0.0 # via -r dev_requirements.in pytest-monitor==1.6.3 # via -r dev_requirements.in pytest-profiling==1.7.0 # via -r dev_requirements.in +pytz==2022.1 # via babel pyyaml==6.0 # via pre-commit -requests==2.27.1 # via pytest-monitor +requests==2.27.1 # via pytest-monitor, sphinx six==1.16.0 # via pytest-profiling, virtualenv +snowballstemmer==2.2.0 # via sphinx +sphinx==4.5.0 # via -r dev_requirements.in +sphinxcontrib-applehelp==1.0.2 # via sphinx +sphinxcontrib-devhelp==1.0.2 # via sphinx +sphinxcontrib-htmlhelp==2.0.0 # via sphinx +sphinxcontrib-jsmath==1.0.1 # via sphinx +sphinxcontrib-qthelp==1.0.3 # via sphinx +sphinxcontrib-serializinghtml==1.1.5 # via sphinx toml==0.10.2 # via pre-commit tomli==2.0.1 # via black, coverage, mypy, pep517, pytest types-python-dateutil==2.8.10 # via -r dev_requirements.in @@ -47,6 +64,7 @@ typing-extensions==4.1.1 # via black, mypy urllib3==1.26.9 # via requests virtualenv==20.14.0 # via pre-commit wheel==0.37.1 # via pip-tools, pytest-monitor +zipp==3.8.0 # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: # pip -- cgit v1.3.1 From 2ac699107479e29ca4b3f1848dfa8a2bae7e4191 Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Mon, 25 Apr 2022 16:48:04 +0200 Subject: link external docs sources, introduce myst --- CONTRIBUTING.md | 18 +++++++++--------- LICENSE | 2 +- README.md | 4 +++- docs/code_of_conduct.md | 4 ++++ docs/conf.py | 4 ++-- docs/contributing.md | 4 ++++ docs/index.md | 10 ++++++++++ docs/index.rst | 20 -------------------- docs/license.md | 6 ++++++ docs/readme.md | 4 ++++ requirements/dev_requirements.in | 4 +++- requirements/dev_requirements.txt | 38 +++++++++++++++++++++++++++++++++++--- 12 files changed, 81 insertions(+), 37 deletions(-) create mode 100644 docs/code_of_conduct.md create mode 100644 docs/contributing.md create mode 100644 docs/index.md delete mode 100644 docs/index.rst create mode 100644 docs/license.md create mode 100644 docs/readme.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d539f656..afefc20b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,4 +1,4 @@ -## Contributing +# Contributing You contribution is warmly welcomed. You can help by: @@ -20,9 +20,9 @@ Our [Dockerfile](https://github.com/crocs-muni/sec-certs/blob/main/docker/Docker ### Requirements Requirements are maintained with [pip-tools](https://github.com/jazzband/pip-tools). The main ideas are: -- List actual dependencies in `.in` files inside [requirements](requirements) folder without pinning them. -- Those dependencies are loaded into [setup.py](setup.py) file. -- Additionally, [compile.sh](requirements/compile.sh) script is used to compile pinned versions of requirements that reside in `.txt` files in the same folder. +- List actual dependencies in `.in` files inside [requirements](https://github.com/crocs-muni/sec-certs/blob/main/requirements) folder without pinning them. +- Those dependencies are loaded into [setup.py](https://github.com/crocs-muni/sec-certs/blob/main/setup.py) file. +- Additionally, [compile.sh](https://github.com/crocs-muni/sec-certs/blob/main/requirements/compile.sh) script is used to compile pinned versions of requirements that reside in `.txt` files in the same folder. - Tests, linting and Docker all run against this reproducible environment of pinned requirements. ## Branches and releases @@ -35,12 +35,12 @@ Requirements are maintained with [pip-tools](https://github.com/jazzband/pip-too All commits shall pass the lint pipeline of the following tools: -- Mypy (see [pyproject.toml](https://github.com/crocs-muni/sec-certs/blob/dev/pyproject.toml) for settings) -- Black (see [pyproject.toml](https://github.com/crocs-muni/sec-certs/blob/dev/pyproject.toml) for settings) -- isort (see [pyproject.toml](https://github.com/crocs-muni/sec-certs/blob/dev/pyproject.toml) for settings) -- Flake8 (see [.flake8](https://github.com/crocs-muni/sec-certs/blob/dev/.flake8) for settings) +- Mypy (see [pyproject.toml](https://github.com/crocs-muni/sec-certs/blob/main/pyproject.toml) for settings) +- Black (see [pyproject.toml](https://github.com/crocs-muni/sec-certs/blob/main/pyproject.toml) for settings) +- isort (see [pyproject.toml](https://github.com/crocs-muni/sec-certs/blob/main/pyproject.toml) for settings) +- Flake8 (see [.flake8](https://github.com/crocs-muni/sec-certs/blob/main/.flake8) for settings) -These tools can be installed via [dev_requirements.txt](https://github.com/crocs-muni/sec-certs/blob/dev/dev_requirements.txt) You can use [pre-commit](https://pre-commit.com/) tool register git hook that will evalute these checks prior to any commit and abort the commit for you. Note that the pre-commit is not meant to automatically fix the issues, just warn you. +These tools can be installed via [dev_requirements.txt](https://github.com/crocs-muni/sec-certs/blob/main/dev_requirements.txt) You can use [pre-commit](https://pre-commit.com/) tool register git hook that will evalute these checks prior to any commit and abort the commit for you. Note that the pre-commit is not meant to automatically fix the issues, just warn you. It should thus suffice to: diff --git a/LICENSE b/LICENSE index 5359145a..55e4ec93 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2019 Petr Svenda +Copyright (c) 2019-2022 Petr Svenda, Adam Janovsky, Jan Jancar, Jiri Michalik, Stanislav Bobon Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 29da0021..69a036d3 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ -# ![](docs/_static/logo.svg) +# Sec-certs + +![](docs/_static/logo.svg) Tool for analysis of security certificates and their security targets (Common Criteria, NIST FIPS140-2...). diff --git a/docs/code_of_conduct.md b/docs/code_of_conduct.md new file mode 100644 index 00000000..74e5474b --- /dev/null +++ b/docs/code_of_conduct.md @@ -0,0 +1,4 @@ +```{include} ../CODE_OF_CONDUCT.md +:relative-docs: docs/ +:relative-images: +``` diff --git a/docs/conf.py b/docs/conf.py index 3617f9fc..23392e9c 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -31,7 +31,7 @@ release = "0.0.4" # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. -extensions: List[str] = [] +extensions: List[str] = ["myst_parser"] # Add any paths that contain templates here, relative to this directory. templates_path = ["_templates"] @@ -47,7 +47,7 @@ exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # -html_theme = "alabaster" +html_theme = "sphinx_book_theme" # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, diff --git a/docs/contributing.md b/docs/contributing.md new file mode 100644 index 00000000..fc1b2138 --- /dev/null +++ b/docs/contributing.md @@ -0,0 +1,4 @@ +```{include} ../CONTRIBUTING.md +:relative-docs: docs/ +:relative-images: +``` diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 00000000..4554a3b2 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,10 @@ +# Sec-certs documentation + +```{toctree} +:maxdepth: 2 +readme.md +contributing.md +code_of_conduct.md +license.md +``` + diff --git a/docs/index.rst b/docs/index.rst deleted file mode 100644 index 9e16d741..00000000 --- a/docs/index.rst +++ /dev/null @@ -1,20 +0,0 @@ -.. sec-certs documentation master file, created by - sphinx-quickstart on Sun Apr 24 20:56:46 2022. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Welcome to sec-certs's documentation! -===================================== - -.. toctree:: - :maxdepth: 2 - :caption: Contents: - - - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` diff --git a/docs/license.md b/docs/license.md new file mode 100644 index 00000000..4f6e8060 --- /dev/null +++ b/docs/license.md @@ -0,0 +1,6 @@ +# License + +```{include} ../LICENSE +:relative-docs: docs/ +:relative-images: +``` diff --git a/docs/readme.md b/docs/readme.md new file mode 100644 index 00000000..2cb706b3 --- /dev/null +++ b/docs/readme.md @@ -0,0 +1,4 @@ +```{include} ../README.md +:relative-docs: docs/ +:relative-images: +``` diff --git a/requirements/dev_requirements.in b/requirements/dev_requirements.in index 78f2c088..824a102f 100644 --- a/requirements/dev_requirements.in +++ b/requirements/dev_requirements.in @@ -11,4 +11,6 @@ isort flake8 pre-commit pip-tools -sphinx \ No newline at end of file +sphinx +myst-parser +sphinx-book-theme \ No newline at end of file diff --git a/requirements/dev_requirements.txt b/requirements/dev_requirements.txt index 2b91f06b..97debe7f 100644 --- a/requirements/dev_requirements.txt +++ b/requirements/dev_requirements.txt @@ -4,6 +4,8 @@ attrs==21.4.0 # via pytest babel==2.10.1 # via sphinx +beautifulsoup4==4.11.1 + # via pydata-sphinx-theme black==22.3.0 # via -r dev_requirements.in certifi==2021.10.8 @@ -21,7 +23,10 @@ coverage[toml]==6.3.2 distlib==0.3.4 # via virtualenv docutils==0.17.1 - # via sphinx + # via + # myst-parser + # pydata-sphinx-theme + # sphinx filelock==3.6.0 # via virtualenv flake8==4.0.1 @@ -41,11 +46,21 @@ iniconfig==1.1.1 isort==5.10.1 # via -r dev_requirements.in jinja2==3.1.1 - # via sphinx + # via + # myst-parser + # sphinx +markdown-it-py==2.1.0 + # via + # mdit-py-plugins + # myst-parser markupsafe==2.1.1 # via jinja2 mccabe==0.6.1 # via flake8 +mdit-py-plugins==0.3.0 + # via myst-parser +mdurl==0.1.1 + # via markdown-it-py memory-profiler==0.60.0 # via pytest-monitor mypy==0.942 @@ -54,10 +69,13 @@ mypy-extensions==0.4.3 # via # black # mypy +myst-parser==0.17.2 + # via -r dev_requirements.in nodeenv==1.6.0 # via pre-commit packaging==21.3 # via + # pydata-sphinx-theme # pytest # sphinx pathspec==0.9.0 @@ -82,6 +100,8 @@ py==1.11.0 # via pytest pycodestyle==2.8.0 # via flake8 +pydata-sphinx-theme==0.8.1 + # via sphinx-book-theme pyflakes==2.4.0 # via flake8 pygments==2.12.0 @@ -103,7 +123,10 @@ pytest-profiling==1.7.0 pytz==2022.1 # via babel pyyaml==6.0 - # via pre-commit + # via + # myst-parser + # pre-commit + # sphinx-book-theme requests==2.27.1 # via # pytest-monitor @@ -114,7 +137,15 @@ six==1.16.0 # virtualenv snowballstemmer==2.2.0 # via sphinx +soupsieve==2.3.2.post1 + # via beautifulsoup4 sphinx==4.5.0 + # via + # -r dev_requirements.in + # myst-parser + # pydata-sphinx-theme + # sphinx-book-theme +sphinx-book-theme==0.3.2 # via -r dev_requirements.in sphinxcontrib-applehelp==1.0.2 # via sphinx @@ -149,6 +180,7 @@ typing-extensions==4.1.1 # via # black # mypy + # myst-parser urllib3==1.26.9 # via requests virtualenv==20.14.0 -- cgit v1.3.1 From 560a36c9884494404205c028fd867896bb0ae03a Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Mon, 25 Apr 2022 16:51:02 +0200 Subject: install dev-requirements prior to building docs --- .github/workflows/docs.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 1867bfc1..3a85fdc3 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -7,6 +7,9 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 + - name: Install python dependencies + run: | + pip install -r requirements/dev_requirements.txt - uses: ammaraskar/sphinx-action@master with: docs-folder: "docs/" -- cgit v1.3.1 From d08be28f3c2f91df3e690a4cfb730062b289c549 Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Mon, 25 Apr 2022 16:55:52 +0200 Subject: fix dev_requirements install docs --- .github/workflows/docs.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 3a85fdc3..4971a49d 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -7,9 +7,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - - name: Install python dependencies - run: | - pip install -r requirements/dev_requirements.txt - uses: ammaraskar/sphinx-action@master with: + pre-build-command: python -m pip install -r requirements/dev_requirements.txt docs-folder: "docs/" -- cgit v1.3.1 From 5ede8f4dc9b3322b04480b3f9caa99c382fa1042 Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Mon, 25 Apr 2022 18:11:07 +0200 Subject: add notebooks to docs --- docs/conf.py | 3 +- docs/index.md | 13 +- docs/notebooks | 1 + notebooks/examples/dataset.ipynb | 65 +++++++++ requirements/dev_requirements.in | 2 +- requirements/dev_requirements.txt | 274 ++++++++++++++++++++++++++++++++++++-- 6 files changed, 340 insertions(+), 18 deletions(-) create mode 120000 docs/notebooks create mode 100644 notebooks/examples/dataset.ipynb diff --git a/docs/conf.py b/docs/conf.py index 23392e9c..092fe3c4 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -14,7 +14,6 @@ # import sys # sys.path.insert(0, os.path.abspath('.')) -from typing import List # -- Project information ----------------------------------------------------- @@ -31,7 +30,7 @@ release = "0.0.4" # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. -extensions: List[str] = ["myst_parser"] +extensions = ["myst_nb"] # Add any paths that contain templates here, relative to this directory. templates_path = ["_templates"] diff --git a/docs/index.md b/docs/index.md index 4554a3b2..d8f04edf 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,10 +1,19 @@ # Sec-certs documentation +## Notebooks + +```{toctree} +:caption: Notebook examples +notebooks/dataset.ipynb +``` + +## GitHub artifacts + ```{toctree} :maxdepth: 2 +:caption: GitHub artifacts readme.md contributing.md code_of_conduct.md license.md -``` - +``` \ No newline at end of file diff --git a/docs/notebooks b/docs/notebooks new file mode 120000 index 00000000..b50be0f4 --- /dev/null +++ b/docs/notebooks @@ -0,0 +1 @@ +./../notebooks/examples \ No newline at end of file diff --git a/notebooks/examples/dataset.ipynb b/notebooks/examples/dataset.ipynb new file mode 100644 index 00000000..7f9287aa --- /dev/null +++ b/notebooks/examples/dataset.ipynb @@ -0,0 +1,65 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Dataset class examples\n", + "\n", + "This notebook illustrates basic functionality with the `CCDataset` class that holds Common Criteria dataset" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from sec_certs.dataset.common_criteria import CCDataset" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4985\n" + ] + } + ], + "source": [ + "dset = CCDataset.from_web_latest()\n", + "print(len(dset))" + ] + } + ], + "metadata": { + "interpreter": { + "hash": "6386d1612879d92d026c363e7667e428bc38d86c5a080d58c3d70e7cd43df67d" + }, + "kernelspec": { + "display_name": "Python 3.8.1 ('certsvenv': venv)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.1" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/requirements/dev_requirements.in b/requirements/dev_requirements.in index 824a102f..baed56a5 100644 --- a/requirements/dev_requirements.in +++ b/requirements/dev_requirements.in @@ -12,5 +12,5 @@ flake8 pre-commit pip-tools sphinx -myst-parser +myst-nb sphinx-book-theme \ No newline at end of file diff --git a/requirements/dev_requirements.txt b/requirements/dev_requirements.txt index 97debe7f..9c652d29 100644 --- a/requirements/dev_requirements.txt +++ b/requirements/dev_requirements.txt @@ -1,15 +1,41 @@ alabaster==0.7.12 # via sphinx +anyio==3.5.0 + # via jupyter-server +appnope==0.1.3 + # via + # ipykernel + # ipython +argon2-cffi==21.3.0 + # via + # jupyter-server + # notebook +argon2-cffi-bindings==21.2.0 + # via argon2-cffi +asttokens==2.0.5 + # via stack-data attrs==21.4.0 - # via pytest + # via + # jsonschema + # jupyter-cache + # markdown-it-py + # pytest babel==2.10.1 # via sphinx +backcall==0.2.0 + # via ipython beautifulsoup4==4.11.1 - # via pydata-sphinx-theme + # via + # nbconvert + # pydata-sphinx-theme black==22.3.0 # via -r dev_requirements.in +bleach==5.0.0 + # via nbconvert certifi==2021.10.8 # via requests +cffi==1.15.0 + # via argon2-cffi-bindings cfgv==3.3.1 # via pre-commit charset-normalizer==2.0.12 @@ -18,70 +44,203 @@ click==8.1.2 # via # black # pip-tools +colorama==0.4.4 + # via nbdime coverage[toml]==6.3.2 # via pytest-cov +debugpy==1.6.0 + # via ipykernel +decorator==5.1.1 + # via ipython +defusedxml==0.7.1 + # via nbconvert distlib==0.3.4 # via virtualenv docutils==0.17.1 # via + # myst-nb # myst-parser # pydata-sphinx-theme # sphinx + # sphinx-togglebutton +entrypoints==0.4 + # via + # jupyter-client + # nbconvert +executing==0.8.3 + # via stack-data +fastjsonschema==2.15.3 + # via nbformat filelock==3.6.0 # via virtualenv flake8==4.0.1 # via -r dev_requirements.in +gitdb==4.0.9 + # via gitpython +gitpython==3.1.27 + # via nbdime gprof2dot==2021.2.21 # via pytest-profiling +greenlet==1.1.2 + # via sqlalchemy identify==2.4.12 # via pre-commit idna==3.3 - # via requests + # via + # anyio + # requests imagesize==1.3.0 # via sphinx importlib-metadata==4.11.3 - # via sphinx + # via + # myst-nb + # sphinx +importlib-resources==5.7.1 + # via jsonschema iniconfig==1.1.1 # via pytest +ipykernel==6.13.0 + # via + # ipywidgets + # notebook +ipython==8.2.0 + # via + # ipykernel + # ipywidgets + # jupyter-sphinx + # myst-nb +ipython-genutils==0.2.0 + # via + # ipywidgets + # notebook +ipywidgets==7.7.0 + # via + # jupyter-sphinx + # myst-nb isort==5.10.1 # via -r dev_requirements.in +jedi==0.18.1 + # via ipython jinja2==3.1.1 # via + # jupyter-server # myst-parser + # nbconvert + # nbdime + # notebook # sphinx -markdown-it-py==2.1.0 +jsonschema==4.4.0 + # via nbformat +jupyter-cache==0.4.3 + # via myst-nb +jupyter-client==7.2.2 + # via + # ipykernel + # jupyter-server + # nbclient + # notebook +jupyter-core==4.10.0 + # via + # jupyter-client + # jupyter-server + # nbconvert + # nbformat + # notebook +jupyter-server==1.16.0 + # via + # jupyter-server-mathjax + # nbdime +jupyter-server-mathjax==0.2.5 + # via nbdime +jupyter-sphinx==0.3.2 + # via myst-nb +jupyterlab-pygments==0.2.2 + # via nbconvert +jupyterlab-widgets==1.1.0 + # via ipywidgets +markdown-it-py==1.1.0 # via # mdit-py-plugins # myst-parser markupsafe==2.1.1 - # via jinja2 + # via + # jinja2 + # nbconvert +matplotlib-inline==0.1.3 + # via + # ipykernel + # ipython mccabe==0.6.1 # via flake8 -mdit-py-plugins==0.3.0 +mdit-py-plugins==0.2.8 # via myst-parser -mdurl==0.1.1 - # via markdown-it-py memory-profiler==0.60.0 # via pytest-monitor +mistune==0.8.4 + # via nbconvert mypy==0.942 # via -r dev_requirements.in mypy-extensions==0.4.3 # via # black # mypy -myst-parser==0.17.2 +myst-nb==0.13.2 # via -r dev_requirements.in +myst-parser==0.15.2 + # via myst-nb +nbclient==0.5.13 + # via + # jupyter-cache + # nbconvert +nbconvert==6.5.0 + # via + # jupyter-server + # jupyter-sphinx + # myst-nb + # notebook +nbdime==3.1.1 + # via jupyter-cache +nbformat==5.3.0 + # via + # ipywidgets + # jupyter-cache + # jupyter-server + # jupyter-sphinx + # myst-nb + # nbclient + # nbconvert + # nbdime + # notebook +nest-asyncio==1.5.5 + # via + # ipykernel + # jupyter-client + # nbclient + # notebook nodeenv==1.6.0 # via pre-commit +notebook==6.4.11 + # via widgetsnbextension packaging==21.3 # via + # ipykernel + # jupyter-server + # nbconvert # pydata-sphinx-theme # pytest # sphinx +pandocfilters==1.5.0 + # via nbconvert +parso==0.8.3 + # via jedi pathspec==0.9.0 # via black pep517==0.12.0 # via pip-tools +pexpect==4.8.0 + # via ipython +pickleshare==0.7.5 + # via ipython pip-tools==6.5.1 # via -r dev_requirements.in platformdirs==2.5.1 @@ -92,22 +251,43 @@ pluggy==1.0.0 # via pytest pre-commit==2.18.1 # via -r dev_requirements.in +prometheus-client==0.14.1 + # via + # jupyter-server + # notebook +prompt-toolkit==3.0.29 + # via ipython psutil==5.9.0 # via + # ipykernel # memory-profiler # pytest-monitor +ptyprocess==0.7.0 + # via + # pexpect + # terminado +pure-eval==0.2.2 + # via stack-data py==1.11.0 # via pytest pycodestyle==2.8.0 # via flake8 +pycparser==2.21 + # via cffi pydata-sphinx-theme==0.8.1 # via sphinx-book-theme pyflakes==2.4.0 # via flake8 pygments==2.12.0 - # via sphinx + # via + # ipython + # nbconvert + # nbdime + # sphinx pyparsing==3.0.7 # via packaging +pyrsistent==0.18.1 + # via jsonschema pytest==7.1.1 # via # -r dev_requirements.in @@ -120,21 +300,41 @@ pytest-monitor==1.6.3 # via -r dev_requirements.in pytest-profiling==1.7.0 # via -r dev_requirements.in +python-dateutil==2.8.2 + # via jupyter-client pytz==2022.1 # via babel pyyaml==6.0 # via + # myst-nb # myst-parser # pre-commit # sphinx-book-theme +pyzmq==22.3.0 + # via + # jupyter-client + # jupyter-server + # notebook requests==2.27.1 # via + # nbdime # pytest-monitor # sphinx +send2trash==1.8.0 + # via + # jupyter-server + # notebook six==1.16.0 # via + # asttokens + # bleach # pytest-profiling + # python-dateutil # virtualenv +smmap==5.0.0 + # via gitdb +sniffio==1.2.0 + # via anyio snowballstemmer==2.2.0 # via sphinx soupsieve==2.3.2.post1 @@ -142,11 +342,16 @@ soupsieve==2.3.2.post1 sphinx==4.5.0 # via # -r dev_requirements.in + # jupyter-sphinx + # myst-nb # myst-parser # pydata-sphinx-theme # sphinx-book-theme + # sphinx-togglebutton sphinx-book-theme==0.3.2 # via -r dev_requirements.in +sphinx-togglebutton==0.3.1 + # via myst-nb sphinxcontrib-applehelp==1.0.2 # via sphinx sphinxcontrib-devhelp==1.0.2 @@ -159,6 +364,16 @@ sphinxcontrib-qthelp==1.0.3 # via sphinx sphinxcontrib-serializinghtml==1.1.5 # via sphinx +sqlalchemy==1.4.35 + # via jupyter-cache +stack-data==0.2.0 + # via ipython +terminado==0.13.3 + # via + # jupyter-server + # notebook +tinycss2==1.1.1 + # via nbconvert toml==0.10.2 # via pre-commit tomli==2.0.1 @@ -168,6 +383,27 @@ tomli==2.0.1 # mypy # pep517 # pytest +tornado==6.1 + # via + # ipykernel + # jupyter-client + # jupyter-server + # nbdime + # notebook + # terminado +traitlets==5.1.1 + # via + # ipykernel + # ipython + # ipywidgets + # jupyter-client + # jupyter-core + # jupyter-server + # matplotlib-inline + # nbclient + # nbconvert + # nbformat + # notebook types-python-dateutil==2.8.10 # via -r dev_requirements.in types-pyyaml==6.0.5 @@ -180,17 +416,29 @@ typing-extensions==4.1.1 # via # black # mypy - # myst-parser urllib3==1.26.9 # via requests virtualenv==20.14.0 # via pre-commit +wcwidth==0.2.5 + # via prompt-toolkit +webencodings==0.5.1 + # via + # bleach + # tinycss2 +websocket-client==1.3.2 + # via jupyter-server wheel==0.37.1 # via # pip-tools # pytest-monitor + # sphinx-togglebutton +widgetsnbextension==3.6.0 + # via ipywidgets zipp==3.8.0 - # via importlib-metadata + # via + # importlib-metadata + # importlib-resources # The following packages are considered to be unsafe in a requirements file: # pip -- cgit v1.3.1 From 9f824d310cc3c25b9465e2a0c83ebc4b8e7ebcee Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Mon, 25 Apr 2022 21:42:33 +0200 Subject: prepare draft release on commit (just testing) --- .github/workflows/draft_release.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 .github/workflows/draft_release.yml diff --git a/.github/workflows/draft_release.yml b/.github/workflows/draft_release.yml new file mode 100644 index 00000000..32d058f0 --- /dev/null +++ b/.github/workflows/draft_release.yml @@ -0,0 +1,21 @@ +name: Main + +on: + push: + # branches: + # - "main" + # tags: + # - "*.*.*" + # Uncomment after testing + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Release + uses: softprops/action-gh-release@v1 + with: + draft: true + generate_release_notes: true -- cgit v1.3.1 From 66cadc5e78556de4f9c6ba684e74f1e776449b05 Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Mon, 25 Apr 2022 21:59:46 +0200 Subject: limit release draft on main and tagged commits --- .github/workflows/draft_release.yml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/draft_release.yml b/.github/workflows/draft_release.yml index 32d058f0..99638f49 100644 --- a/.github/workflows/draft_release.yml +++ b/.github/workflows/draft_release.yml @@ -1,12 +1,11 @@ -name: Main +name: Create release draft on: push: - # branches: - # - "main" - # tags: - # - "*.*.*" - # Uncomment after testing + branches: + - "main" + tags: + - "*.*.*" jobs: build: -- cgit v1.3.1 From 09d65719c133a2c5b378f0ca95e6d4c2cffe60e8 Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Mon, 25 Apr 2022 22:54:32 +0200 Subject: alpha version file --- .github/workflows/draft_release.yml | 24 +++++++++++++++++++----- VERSION | 1 + 2 files changed, 20 insertions(+), 5 deletions(-) create mode 100644 VERSION diff --git a/.github/workflows/draft_release.yml b/.github/workflows/draft_release.yml index 99638f49..1d18367f 100644 --- a/.github/workflows/draft_release.yml +++ b/.github/workflows/draft_release.yml @@ -2,13 +2,27 @@ name: Create release draft on: push: - branches: - - "main" - tags: - - "*.*.*" + # branches: + # - "main" + # tags: + # - "*.*.*" jobs: - build: + check-version: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Read VERSION file + run: echo "ACTUAL_VERSION=$(cat VERSION)" >> $GITHUB_ENV + - name: Check versions + run: | + if (!(${{env.PACKAGE_NUMBER}} = ${{github.ref_name}})) ; then + echo "Tag does not match version number in VERSION file" + exit 1 + fi + + draft-release: runs-on: ubuntu-latest steps: - name: Checkout diff --git a/VERSION b/VERSION new file mode 100644 index 00000000..1750564f --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +0.0.6 -- cgit v1.3.1 From 5299ce3fb27a7c20601bf0cb62355fa9fdb5058f Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Mon, 25 Apr 2022 22:56:02 +0200 Subject: fix version check --- .github/workflows/draft_release.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/draft_release.yml b/.github/workflows/draft_release.yml index 1d18367f..8cc05eba 100644 --- a/.github/workflows/draft_release.yml +++ b/.github/workflows/draft_release.yml @@ -17,11 +17,10 @@ jobs: run: echo "ACTUAL_VERSION=$(cat VERSION)" >> $GITHUB_ENV - name: Check versions run: | - if (!(${{env.PACKAGE_NUMBER}} = ${{github.ref_name}})) ; then + if (!(${{env.PACKAGE_NUMBER}} == ${{github.ref_name}})) ; then echo "Tag does not match version number in VERSION file" exit 1 fi - draft-release: runs-on: ubuntu-latest steps: -- cgit v1.3.1 From 51f3120a9b33a8e4d303c76a6e39bed13f679f71 Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Mon, 25 Apr 2022 23:07:03 +0200 Subject: . --- .github/workflows/draft_release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/draft_release.yml b/.github/workflows/draft_release.yml index 8cc05eba..4490c0d0 100644 --- a/.github/workflows/draft_release.yml +++ b/.github/workflows/draft_release.yml @@ -17,7 +17,7 @@ jobs: run: echo "ACTUAL_VERSION=$(cat VERSION)" >> $GITHUB_ENV - name: Check versions run: | - if (!(${{env.PACKAGE_NUMBER}} == ${{github.ref_name}})) ; then + if ((${{env.PACKAGE_NUMBER}} != ${{github.ref_name}})) ; then echo "Tag does not match version number in VERSION file" exit 1 fi -- cgit v1.3.1 From 2ada5810445ff7122c585752c8d01e712a395394 Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Tue, 26 Apr 2022 08:21:14 +0200 Subject: . --- .github/workflows/docs.yml | 16 ++++++++++++---- .github/workflows/draft_release.yml | 21 ++++----------------- .gitignore | 2 ++ CONTRIBUTING.md | 23 +++++++++++++++++++---- VERSION | 1 - docs/conf.py | 8 ++++---- pyproject.toml | 26 +++++++++++++++----------- requirements/requirements.in | 1 + requirements/requirements.txt | 8 ++++++++ setup.py | 2 -- 10 files changed, 65 insertions(+), 43 deletions(-) delete mode 100644 VERSION diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 4971a49d..056153c8 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -6,8 +6,16 @@ jobs: docs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 - - uses: ammaraskar/sphinx-action@master + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 with: - pre-build-command: python -m pip install -r requirements/dev_requirements.txt - docs-folder: "docs/" + python-version: 3.8 + - name: Install sec-certs and deps + run: | + pip install -r requirements/requirements.txt + pip install -r requirements/dev_requirements.txt + pip install -e . + - name: Build docs + run: | + cd docs + make html diff --git a/.github/workflows/draft_release.yml b/.github/workflows/draft_release.yml index 4490c0d0..95e2cadc 100644 --- a/.github/workflows/draft_release.yml +++ b/.github/workflows/draft_release.yml @@ -2,25 +2,12 @@ name: Create release draft on: push: - # branches: - # - "main" - # tags: - # - "*.*.*" + branches: + - "main" + tags: + - "*.*.*" jobs: - check-version: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v2 - - name: Read VERSION file - run: echo "ACTUAL_VERSION=$(cat VERSION)" >> $GITHUB_ENV - - name: Check versions - run: | - if ((${{env.PACKAGE_NUMBER}} != ${{github.ref_name}})) ; then - echo "Tag does not match version number in VERSION file" - exit 1 - fi draft-release: runs-on: ubuntu-latest steps: diff --git a/.gitignore b/.gitignore index 3176de71..1d2da538 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,8 @@ # results folder results*/ +# version file by setuptools-scm +sec_certs/_version.py # Byte-compiled / optimized / DLL files __pycache__/ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index afefc20b..80585c2d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -25,11 +25,26 @@ Requirements are maintained with [pip-tools](https://github.com/jazzband/pip-too - Additionally, [compile.sh](https://github.com/crocs-muni/sec-certs/blob/main/requirements/compile.sh) script is used to compile pinned versions of requirements that reside in `.txt` files in the same folder. - Tests, linting and Docker all run against this reproducible environment of pinned requirements. -## Branches and releases +## Branches + +`main` is the default branch against which all pull requests are to be made. This branch is not neccessarily stable, only the releases are. + +## Releases and version strings + +- On each revision pushed onto `main` that has `*.*.*` tag, a draft release is created with prepared changelog (this step can be skipped and the Release created right from the GitHub GUI). +- This draft release is to be published manually by the maintainer. +- Version string is not indexed in `git` but can be retreived maintained by `setuptools-scm` from git tags instead. +- `setuptools-scm` will automatically, upon editable/real install of a package, infer its version and write it to `sec_certs/_version.py`. This file is not indexed as well. See more at [setuptools-scm GitHub](https://github.com/pypa/setuptools_scm) +- On publishing a release, the tool is automatically published to [PyPi](https://pypi.org/project/sec-certs/) and [DockerHub](https://hub.docker.com/repository/docker/seccerts/sec-certs). + +Note on single-sourcing the package version: More can be read [here](https://packaging.python.org/en/latest/guides/single-sourcing-package-version/). The downside of our approach is that `.git` folder and editable/real install is needed to infer the version of the package. Releases can be infered without installing the project. + +### Currently, the release process is as follows + +1. (skip this optionally) Tag a revision with `*.*.*` tag -- this will create a draft release in GitHub. +2. Modify changelog and publish the release (or create it from scratch with new tag). +3. This will automatically update PyPi and DockerHub packages. -- `main` is the default branch against which all pull requests are to be made. This branch is not neccessarily stable, only the releases are. -- [Releases](https://github.com/crocs-muni/sec-certs/releases) are prepared manually by tagging revisions of `main` branch with `x.y.z` according to [semantic versioning](https://semver.org). -- Upon each release, the tool is automatically published to [PyPi](https://pypi.org/project/sec-certs/) and [DockerHub](https://hub.docker.com/repository/docker/seccerts/sec-certs). ## Quality assurance diff --git a/VERSION b/VERSION deleted file mode 100644 index 1750564f..00000000 --- a/VERSION +++ /dev/null @@ -1 +0,0 @@ -0.0.6 diff --git a/docs/conf.py b/docs/conf.py index 092fe3c4..6eb14738 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -12,8 +12,8 @@ # # import os # import sys -# sys.path.insert(0, os.path.abspath('.')) - +# sys.path.insert(0, os.path.abspath(".")) +from importlib.metadata import version # -- Project information ----------------------------------------------------- @@ -22,8 +22,8 @@ copyright = "2022, Adam Janovsky, Petr Svenda, Jan Jancar, Jiri Michalik, Stanis author = "Adam Janovsky, Petr Svenda, Jan Jancar, Jiri Michalik, Stanislav Bobon" # The full version, including alpha/beta/rc tags -release = "0.0.4" - +# Note thas this inference won't work from Docker: https://github.com/pypa/setuptools_scm/#usage-from-docker +release = version("sec-certs") # -- General configuration --------------------------------------------------- diff --git a/pyproject.toml b/pyproject.toml index 7ac509d6..6bae9df8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,3 +1,9 @@ +[build-system] +requires = ["setuptools>=45", "setuptools_scm[toml]>=6.2"] + +[tool.setuptools_scm] +write_to = "sec_certs/_version.py" + [tool.black] line-length = 120 exclude = ''' @@ -16,21 +22,19 @@ exclude = ''' ''' [tool.isort] -multi_line_output=3 -include_trailing_comma=true -force_grid_wrap=0 -use_parentheses=true -ensure_newline_before_comments=true -line_length=120 -skip=["certsvenv", "build"] +multi_line_output = 3 +include_trailing_comma = true +force_grid_wrap = 0 +use_parentheses = true +ensure_newline_before_comments = true +line_length = 120 +skip = ["certsvenv", "build"] [tool.mypy] plugins = ["numpy.typing.mypy_plugin"] ignore_missing_imports = true -exclude="build/" +exclude = "build/" [tool.pytest.ini_options] -markers = [ - "slow: marks tests as slow (deselect with '-m \"not slow\"')" -] +markers = ["slow: marks tests as slow (deselect with '-m \"not slow\"')"] addopts = "--cov sec_certs" diff --git a/requirements/requirements.in b/requirements/requirements.in index f7fc03a3..4b67a179 100644 --- a/requirements/requirements.in +++ b/requirements/requirements.in @@ -19,3 +19,4 @@ requests scikit-learn tabula-py tqdm +setuptools-scm diff --git a/requirements/requirements.txt b/requirements/requirements.txt index f72cd3f3..a66833ac 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -50,6 +50,7 @@ packaging==21.3 # via # matplotlib # pikepdf + # setuptools-scm pandas==1.4.2 # via # -r requirements.in @@ -88,6 +89,8 @@ scikit-learn==1.0.2 # via -r requirements.in scipy==1.8.0 # via scikit-learn +setuptools-scm==6.4.2 + # via -r requirements.in six==1.16.0 # via # html5lib @@ -98,6 +101,8 @@ tabula-py==2.3.0 # via -r requirements.in threadpoolctl==3.1.0 # via scikit-learn +tomli==2.0.1 + # via setuptools-scm tqdm==4.64.0 # via -r requirements.in urllib3==1.26.9 @@ -106,3 +111,6 @@ webencodings==0.5.1 # via html5lib zipp==3.8.0 # via importlib-resources + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/setup.py b/setup.py index 802dc9c9..79c76d9b 100644 --- a/setup.py +++ b/setup.py @@ -5,8 +5,6 @@ setup( name="sec-certs", author="Petr Svenda, Stanislav Bobon, Jan Jancar, Adam Janovsky, Jiri Michalik", author_email="svenda@fi.muni.cz", - version_config=True, - setup_requires=["setuptools-git-versioning"], packages=find_packages(), license="MIT", description="Tool for analysis of security certificates", -- cgit v1.3.1 From c1fc65a26861d30cba7cccf3f1900a5b31ca237e Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Tue, 26 Apr 2022 08:22:56 +0200 Subject: install poppler before docs --- .github/workflows/docs.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 056153c8..7a0c01c9 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -10,6 +10,8 @@ jobs: - uses: actions/setup-python@v2 with: python-version: 3.8 + - name: Install external dependencies + run: sudo apt-get install build-essential libpoppler-cpp-dev pkg-config python3-dev -y - name: Install sec-certs and deps run: | pip install -r requirements/requirements.txt -- cgit v1.3.1 From d04b507ab033bc0d53dc118bc1ac7772967d0b83 Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Tue, 26 Apr 2022 08:30:49 +0200 Subject: non-conflicting version variable name --- docs/conf.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 6eb14738..b821cd0a 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -13,7 +13,7 @@ # import os # import sys # sys.path.insert(0, os.path.abspath(".")) -from importlib.metadata import version +from importlib.metadata import version as get_version # -- Project information ----------------------------------------------------- @@ -23,7 +23,7 @@ author = "Adam Janovsky, Petr Svenda, Jan Jancar, Jiri Michalik, Stanislav Bobon # The full version, including alpha/beta/rc tags # Note thas this inference won't work from Docker: https://github.com/pypa/setuptools_scm/#usage-from-docker -release = version("sec-certs") +release = get_version("sec-certs") # -- General configuration --------------------------------------------------- -- cgit v1.3.1 From a69f58f4b9caa3b541e93405e0d9df498946c6b0 Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Tue, 26 Apr 2022 08:38:14 +0200 Subject: checkout history and tags --- .github/workflows/docs.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 7a0c01c9..da1f7d10 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -6,7 +6,9 @@ jobs: docs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 + with: + fetch-depth: 0 - uses: actions/setup-python@v2 with: python-version: 3.8 -- cgit v1.3.1 From ac4dc0e7b5fa977103e63f955a92c99010e2a8b5 Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Tue, 26 Apr 2022 08:53:54 +0200 Subject: . --- docs/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/index.md b/docs/index.md index d8f04edf..b88dd91c 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,5 +1,7 @@ # Sec-certs documentation +The documentation currently does not have all modules documented with `autodoc`. Most of the API showcases are documented in the *notebooks* examples below. If you want, you can run the notebooks. They are stored in the [project repository](https://github.com/crocs-muni/sec-certs/tree/main/notebooks). + ## Notebooks ```{toctree} -- cgit v1.3.1 From 8e7a3d8a172f62e13833f4d033b52e0cd38d66f6 Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Tue, 26 Apr 2022 11:41:58 +0200 Subject: populate docs structure --- docs/index.md | 14 ++++++++++---- docs/installation.md | 3 +++ docs/quickstart.md | 3 +++ docs/tutorial.md | 3 +++ docs/web_dashboard.md | 3 +++ 5 files changed, 22 insertions(+), 4 deletions(-) create mode 100644 docs/installation.md create mode 100644 docs/quickstart.md create mode 100644 docs/tutorial.md create mode 100644 docs/web_dashboard.md diff --git a/docs/index.md b/docs/index.md index b88dd91c..8c43766c 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,16 +1,22 @@ # Sec-certs documentation -The documentation currently does not have all modules documented with `autodoc`. Most of the API showcases are documented in the *notebooks* examples below. If you want, you can run the notebooks. They are stored in the [project repository](https://github.com/crocs-muni/sec-certs/tree/main/notebooks). +![](_static/logo.svg) -## Notebooks +There are three main parts of this documentation. *User's guide* describes high-level use of our tool. Driven by this knowledge, you can progress to *Notebook examples* that showcase most of the API that we use in the form of Jupyter notebooks. The documentation currently does not have all modules documented with `autodoc`, so for the API reference, you must directly inspect the [sec_certs](https://github.com/crocs-muni/sec-certs/tree/main/sec_certs) module. If you want, you can run the notebooks as they are stored in the [project repository](https://github.com/crocs-muni/sec-certs/tree/main/notebooks). If you are interested in contributing to our project or in other aspects of our development, you can consult the relevant *GitHub artifacts* + +```{toctree} +:caption: User's guide +installation.md +quickstart.md +tutorial.md +web_dashboard.md +``` ```{toctree} :caption: Notebook examples notebooks/dataset.ipynb ``` -## GitHub artifacts - ```{toctree} :maxdepth: 2 :caption: GitHub artifacts diff --git a/docs/installation.md b/docs/installation.md new file mode 100644 index 00000000..0e6c025a --- /dev/null +++ b/docs/installation.md @@ -0,0 +1,3 @@ +# Installation + +TBA \ No newline at end of file diff --git a/docs/quickstart.md b/docs/quickstart.md new file mode 100644 index 00000000..b40bab01 --- /dev/null +++ b/docs/quickstart.md @@ -0,0 +1,3 @@ +# Quickstart + +TBA \ No newline at end of file diff --git a/docs/tutorial.md b/docs/tutorial.md new file mode 100644 index 00000000..47e78870 --- /dev/null +++ b/docs/tutorial.md @@ -0,0 +1,3 @@ +# Tutorial + +TBA \ No newline at end of file diff --git a/docs/web_dashboard.md b/docs/web_dashboard.md new file mode 100644 index 00000000..a5909db3 --- /dev/null +++ b/docs/web_dashboard.md @@ -0,0 +1,3 @@ +# Web dashboard + +TBA \ No newline at end of file -- cgit v1.3.1 From e6a433e86be235cb4bfc0b80bcef719df42812d7 Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Tue, 26 Apr 2022 16:10:36 +0200 Subject: add simple installation instr. and quickstart --- CONTRIBUTING.md | 7 +------ README.md | 22 +--------------------- docs/installation.md | 31 ++++++++++++++++++++++++++++++- docs/quickstart.md | 3 ++- 4 files changed, 34 insertions(+), 29 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 80585c2d..542a39da 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,12 +10,7 @@ You contribution is warmly welcomed. You can help by: ## Dependencies -Our [Dockerfile](https://github.com/crocs-muni/sec-certs/blob/main/docker/Dockerfile) presents all the required dependencies, elaborated below. - -- [Java](https://www.java.com/en) is needed to parse tables in FIPS pdf documents, must be available from `PATH`. -- Some imported libraries have non-trivial dependencies to resolve: - - [pdftotext](https://github.com/jalan/pdftotext) requires [Poppler](https://poppler.freedesktop.org/) to be installed. We've experienced issues with older versions of Poppler (`0.x`), make sure to install `20.x` version of these libraries. - - [graphviz](https://pypi.org/project/graphviz/) requires `graphviz` to be on the path +For complete list of system dependencies, see [docs/installation](seccerts.org/docs/installation). ### Requirements diff --git a/README.md b/README.md index 69a036d3..6464900a 100644 --- a/README.md +++ b/README.md @@ -15,27 +15,7 @@ This project is developed by the [Centre for Research On Cryptography and Securi ## Installation -The tool can be pulled as a docker image with - -```bash -docker pull seccerts/sec-certs -``` - -Alternatively, it can be installed from PyPi with - -```bash -pip install -U sec-certs -``` - -Note, however, that `Python>=3.8` is required and there are some [additional dependencies](https://github.com/crocs-muni/sec-certs/blob/main/CONTRIBUTING.md#dependencies). - -The stable release is also published on [GitHub](https://github.com/crocs-muni/sec-certs/releases) from where it can be setup for development with - -```bash -python3 -m venv venv -source venv/bin/activate -pip install -e . -``` +Use Docker with `docker pull seccerts/sec-certs` or just `pip install -U sec-certs`. For more elaborate description, see [docs](seccerts.org/docs/installation) ## Usage (CC) diff --git a/docs/installation.md b/docs/installation.md index 0e6c025a..236a9dc9 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -1,3 +1,32 @@ # Installation -TBA \ No newline at end of file +The tool can be pulled as a docker image with + +```bash +docker pull seccerts/sec-certs +``` + +Alternatively, it can be installed from PyPi with + +```bash +pip install -U sec-certs +``` + +Note, however, that `Python>=3.8` is required and there are some additional dependencies (see below) that are not shipped with the binary distribution. + +The stable release is also published on [GitHub](https://github.com/crocs-muni/sec-certs/releases) from where it can be setup for development with + +```bash +python3 -m venv venv +source venv/bin/activate +pip install -e . +``` + +Alternatively, our Our [Dockerfile](https://github.com/crocs-muni/sec-certs/blob/main/docker/Dockerfile) represents a reproducible way of setting up the environment. + +## Dependencies + +- [Java](https://www.java.com/en) is needed to parse tables in FIPS pdf documents, must be available from `PATH`. +- Some imported libraries have non-trivial dependencies to resolve: + - [pdftotext](https://github.com/jalan/pdftotext) requires [Poppler](https://poppler.freedesktop.org/) to be installed. We've experienced issues with older versions of Poppler (`0.x`), make sure to install `20.x` version of these libraries. + - [graphviz](https://pypi.org/project/graphviz/) requires `graphviz` to be on the path \ No newline at end of file diff --git a/docs/quickstart.md b/docs/quickstart.md index b40bab01..74285025 100644 --- a/docs/quickstart.md +++ b/docs/quickstart.md @@ -1,3 +1,4 @@ # Quickstart -TBA \ No newline at end of file +1. Install the latest version with `pip install -U sec-certs` (see [installation](installation.md)). +2. Use either `cc_cli.py` or `fips_cli.py` for full-fledged processing of the certificate pipeline, or explore the [dataset notebook](notebooks/dataset.ipynb). -- cgit v1.3.1 From 3049a55dd37a0fabf4f3116b512fdeb1e7218e62 Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Tue, 26 Apr 2022 16:45:17 +0200 Subject: drop web_dashboard docs --- docs/index.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index 8c43766c..5b390b63 100644 --- a/docs/index.md +++ b/docs/index.md @@ -9,7 +9,6 @@ There are three main parts of this documentation. *User's guide* describes high- installation.md quickstart.md tutorial.md -web_dashboard.md ``` ```{toctree} -- cgit v1.3.1 From 102baeff083b664381f260c45d89e08db0544b51 Mon Sep 17 00:00:00 2001 From: J08nY Date: Wed, 27 Apr 2022 12:48:19 +0200 Subject: Add docs upload to workflow. --- .github/workflows/docs.yml | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index da1f7d10..d98305e8 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -3,7 +3,7 @@ on: push: workflow_dispatch: jobs: - docs: + build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 @@ -23,3 +23,25 @@ jobs: run: | cd docs make html + - name: Archive docs + run: | + cd _build/html + zip -r docs.zip * + cd ../.. + - name: Save docs artifact + uses: actions/upload-artifact@v3 + with: + name: docs + path: _build/html/docs.zip + upload: + runs-on: ubuntu-latest + needs: build + if: github.ref == "refs/heads/main" && github.repository == "crocs-muni/sec-certs" # Potentially change this into a check on release. + steps: + - name: Get docs artifact + uses: actions/download-artifact@v3 + with: + name: docs + - name: Push docs to website + run: | + curl -F data=@docs.zip https://seccerts.org/docs/upload?token=${{ secrets.DOCS_AUTH_TOKEN }} -- cgit v1.3.1 From dcb27b68377822d280dd7ba8c1ae8582a726d1fe Mon Sep 17 00:00:00 2001 From: J08nY Date: Wed, 27 Apr 2022 12:49:40 +0200 Subject: Fixup workflow run. --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index d98305e8..45f80e68 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -36,7 +36,7 @@ jobs: upload: runs-on: ubuntu-latest needs: build - if: github.ref == "refs/heads/main" && github.repository == "crocs-muni/sec-certs" # Potentially change this into a check on release. + if: github.ref == 'refs/heads/main' && github.repository == 'crocs-muni/sec-certs' # Potentially change this into a check on release. steps: - name: Get docs artifact uses: actions/download-artifact@v3 -- cgit v1.3.1 From 8031a46c38f20f624a384e2a69da2ff775c86470 Mon Sep 17 00:00:00 2001 From: J08nY Date: Wed, 27 Apr 2022 13:42:09 +0200 Subject: Fix docs build. --- .github/workflows/docs.yml | 15 ++++++++------- docs/web_dashboard.md | 3 --- 2 files changed, 8 insertions(+), 10 deletions(-) delete mode 100644 docs/web_dashboard.md diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 45f80e68..f5df9712 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -23,16 +23,12 @@ jobs: run: | cd docs make html - - name: Archive docs - run: | - cd _build/html - zip -r docs.zip * - cd ../.. - name: Save docs artifact uses: actions/upload-artifact@v3 with: name: docs - path: _build/html/docs.zip + path: docs/_build/html/ + retention-days: 7 upload: runs-on: ubuntu-latest needs: build @@ -42,6 +38,11 @@ jobs: uses: actions/download-artifact@v3 with: name: docs + path: docs + - name: Archive docs + run: | + cd docs + zip -r docs.zip * - name: Push docs to website run: | - curl -F data=@docs.zip https://seccerts.org/docs/upload?token=${{ secrets.DOCS_AUTH_TOKEN }} + curl -F data=@docs/docs.zip https://seccerts.org/docs/upload?token=${{ secrets.DOCS_AUTH_TOKEN }} diff --git a/docs/web_dashboard.md b/docs/web_dashboard.md deleted file mode 100644 index a5909db3..00000000 --- a/docs/web_dashboard.md +++ /dev/null @@ -1,3 +0,0 @@ -# Web dashboard - -TBA \ No newline at end of file -- cgit v1.3.1 From e05e66bc8c9230e704e8aa4332a92727a18c68dc Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Sun, 1 May 2022 17:06:37 +0200 Subject: docs: add favicon and logo --- docs/conf.py | 3 +++ docs/index.md | 2 -- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index b821cd0a..701f4924 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -52,3 +52,6 @@ html_theme = "sphinx_book_theme" # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ["_static"] + +html_logo = "_static/logo.svg" +html_favicon = "_static/logo_badge.svg" diff --git a/docs/index.md b/docs/index.md index 5b390b63..dd7c9e53 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,7 +1,5 @@ # Sec-certs documentation -![](_static/logo.svg) - There are three main parts of this documentation. *User's guide* describes high-level use of our tool. Driven by this knowledge, you can progress to *Notebook examples* that showcase most of the API that we use in the form of Jupyter notebooks. The documentation currently does not have all modules documented with `autodoc`, so for the API reference, you must directly inspect the [sec_certs](https://github.com/crocs-muni/sec-certs/tree/main/sec_certs) module. If you want, you can run the notebooks as they are stored in the [project repository](https://github.com/crocs-muni/sec-certs/tree/main/notebooks). If you are interested in contributing to our project or in other aspects of our development, you can consult the relevant *GitHub artifacts* ```{toctree} -- cgit v1.3.1 From d4760ca46ace74c48e27a383058cc8219c4ab2a5 Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Sun, 1 May 2022 17:30:21 +0200 Subject: docs: don't show whole version, add navigation --- docs/conf.py | 3 +-- docs/index.md | 8 ++++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 701f4924..c7f4c6ff 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -21,9 +21,8 @@ project = "sec-certs" copyright = "2022, Adam Janovsky, Petr Svenda, Jan Jancar, Jiri Michalik, Stanislav Bobon" author = "Adam Janovsky, Petr Svenda, Jan Jancar, Jiri Michalik, Stanislav Bobon" -# The full version, including alpha/beta/rc tags # Note thas this inference won't work from Docker: https://github.com/pypa/setuptools_scm/#usage-from-docker -release = get_version("sec-certs") +release = ".".join(get_version("sec-certs").split(".")[:3]) # -- General configuration --------------------------------------------------- diff --git a/docs/index.md b/docs/index.md index dd7c9e53..084f7d08 100644 --- a/docs/index.md +++ b/docs/index.md @@ -2,6 +2,14 @@ There are three main parts of this documentation. *User's guide* describes high-level use of our tool. Driven by this knowledge, you can progress to *Notebook examples* that showcase most of the API that we use in the form of Jupyter notebooks. The documentation currently does not have all modules documented with `autodoc`, so for the API reference, you must directly inspect the [sec_certs](https://github.com/crocs-muni/sec-certs/tree/main/sec_certs) module. If you want, you can run the notebooks as they are stored in the [project repository](https://github.com/crocs-muni/sec-certs/tree/main/notebooks). If you are interested in contributing to our project or in other aspects of our development, you can consult the relevant *GitHub artifacts* +```{toctree} +:hidden: +:caption: Navigation +Seccerts homepage +Seccerts docs +GitHub repo +``` + ```{toctree} :caption: User's guide installation.md -- cgit v1.3.1 From 7cb9ca5d0fb425f4c3ada731cd917846f64a2d59 Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Sun, 1 May 2022 19:27:37 +0200 Subject: Binder now requires Jupyterlab as well --- docker/Dockerfile | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 2c138d46..02922496 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -19,8 +19,8 @@ RUN apt-get install default-jdk -y RUN apt-get install graphviz -y RUN adduser --disabled-password \ - --gecos "Default user" \ - ${USER} + --gecos "Default user" \ + ${USER} USER ${USER} WORKDIR ${HOME} @@ -40,10 +40,10 @@ ENV PATH="${VENV_PATH}/bin:$PATH" # Install dependencies, notebook is because of mybinder.org RUN \ - pip3 install -U pip && \ - pip3 install wheel && \ - pip3 install -r requirements/requirements.txt && \ - pip3 install --no-cache notebook + pip3 install -U pip && \ + pip3 install wheel && \ + pip3 install -r requirements/requirements.txt && \ + pip3 install --no-cache notebook jupyterlab # #just to be sure that pdftotext is in $PATH ENV PATH /usr/bin/pdftotext:${PATH} -- cgit v1.3.1 From 8b741dfb768e3a7752c5a4986a42a2eaf92da3b6 Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Sun, 1 May 2022 19:49:28 +0200 Subject: Update dockerfile to adhere with mybinder reqs - Requirements listed here: https://mybinder.readthedocs.io/en/latest/tutorials/dockerfile.html --- docker/Dockerfile | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 02922496..eaf2d326 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,6 +1,7 @@ -FROM ubuntu:jammy +FROM ubuntu:jammy-20220428 ENV USER="user" +ENV NB_UID=1000 ENV HOME /home/${USER} #installing dependencies @@ -20,7 +21,10 @@ RUN apt-get install graphviz -y RUN adduser --disabled-password \ --gecos "Default user" \ + --uid ${NB_UID} \ ${USER} + +RUN chown -R ${NB_UID} ${HOME} USER ${USER} WORKDIR ${HOME} @@ -43,7 +47,8 @@ RUN \ pip3 install -U pip && \ pip3 install wheel && \ pip3 install -r requirements/requirements.txt && \ - pip3 install --no-cache notebook jupyterlab + pip3 install --no-cache notebook jupyterlab && \ + pip3 install -e . # #just to be sure that pdftotext is in $PATH ENV PATH /usr/bin/pdftotext:${PATH} -- cgit v1.3.1 From ca35699154156d1ff3c65a6c44b36f157a563ade Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Sun, 1 May 2022 20:06:05 +0200 Subject: move dockerfile so that binder can find it --- Dockerfile | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..eaf2d326 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,57 @@ +FROM ubuntu:jammy-20220428 + +ENV USER="user" +ENV NB_UID=1000 +ENV HOME /home/${USER} + +#installing dependencies +RUN apt-get update +RUN apt-get install python3 -y +RUN apt-get install python3-pip -y +RUN apt-get install python3-venv -y +RUN apt-get install git -y +RUN apt-get install curl -y + +# Install dependencies fo PyPDF2 and pdftotext +RUN DEBIAN_FRONTEND="noninteractive" apt-get -y install tzdata +RUN apt-get install build-essential libpoppler-cpp-dev pkg-config python3-dev -y +RUN apt-get install libqpdf-dev -y +RUN apt-get install default-jdk -y +RUN apt-get install graphviz -y + +RUN adduser --disabled-password \ + --gecos "Default user" \ + --uid ${NB_UID} \ + ${USER} + +RUN chown -R ${NB_UID} ${HOME} +USER ${USER} +WORKDIR ${HOME} + +# Download only snapshot of repository +RUN \ + curl -L https://api.github.com/repos/crocs-muni/sec-certs/tarball/main > sec-certs.tar.gz && \ + mkdir sec-certs && \ + tar zxf sec-certs.tar.gz --strip-components=1 --directory sec-certs && \ + rm sec-certs.tar.gz + +WORKDIR ${HOME}/sec-certs + +# Create virtual environment +ENV VENV_PATH=${HOME}/venv +RUN python3 -m venv ${VENV_PATH} +ENV PATH="${VENV_PATH}/bin:$PATH" + +# Install dependencies, notebook is because of mybinder.org +RUN \ + pip3 install -U pip && \ + pip3 install wheel && \ + pip3 install -r requirements/requirements.txt && \ + pip3 install --no-cache notebook jupyterlab && \ + pip3 install -e . + +# #just to be sure that pdftotext is in $PATH +ENV PATH /usr/bin/pdftotext:${PATH} + +# # Run the application: +# CMD ["python3", "./cc_cli.py"] -- cgit v1.3.1 From 84c87543cd63bf4e04be7645c08ee8d6a80509a1 Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Sun, 1 May 2022 20:11:03 +0200 Subject: fix consq. of moving dockerfile --- .github/workflows/release.yml | 6 ++--- docker/Dockerfile | 57 ------------------------------------------- docs/installation.md | 2 +- 3 files changed, 4 insertions(+), 61 deletions(-) delete mode 100644 docker/Dockerfile diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9063beaa..3a061417 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,5 +1,5 @@ name: Release (PyPi, DockerHub) -on: +on: release: types: [published] @@ -27,7 +27,7 @@ jobs: docker_release: name: Release on DockerHub runs-on: ubuntu-latest - if: github.repository == 'crocs-muni/sec-certs' + if: github.repository == 'crocs-muni/sec-certs' steps: - name: Set up QEMU uses: docker/setup-qemu-action@v1 @@ -47,6 +47,6 @@ jobs: id: docker_build uses: docker/build-push-action@v2 with: - file: docker/Dockerfile + file: Dockerfile push: true tags: ${{ steps.meta.outputs.tags }} diff --git a/docker/Dockerfile b/docker/Dockerfile deleted file mode 100644 index eaf2d326..00000000 --- a/docker/Dockerfile +++ /dev/null @@ -1,57 +0,0 @@ -FROM ubuntu:jammy-20220428 - -ENV USER="user" -ENV NB_UID=1000 -ENV HOME /home/${USER} - -#installing dependencies -RUN apt-get update -RUN apt-get install python3 -y -RUN apt-get install python3-pip -y -RUN apt-get install python3-venv -y -RUN apt-get install git -y -RUN apt-get install curl -y - -# Install dependencies fo PyPDF2 and pdftotext -RUN DEBIAN_FRONTEND="noninteractive" apt-get -y install tzdata -RUN apt-get install build-essential libpoppler-cpp-dev pkg-config python3-dev -y -RUN apt-get install libqpdf-dev -y -RUN apt-get install default-jdk -y -RUN apt-get install graphviz -y - -RUN adduser --disabled-password \ - --gecos "Default user" \ - --uid ${NB_UID} \ - ${USER} - -RUN chown -R ${NB_UID} ${HOME} -USER ${USER} -WORKDIR ${HOME} - -# Download only snapshot of repository -RUN \ - curl -L https://api.github.com/repos/crocs-muni/sec-certs/tarball/main > sec-certs.tar.gz && \ - mkdir sec-certs && \ - tar zxf sec-certs.tar.gz --strip-components=1 --directory sec-certs && \ - rm sec-certs.tar.gz - -WORKDIR ${HOME}/sec-certs - -# Create virtual environment -ENV VENV_PATH=${HOME}/venv -RUN python3 -m venv ${VENV_PATH} -ENV PATH="${VENV_PATH}/bin:$PATH" - -# Install dependencies, notebook is because of mybinder.org -RUN \ - pip3 install -U pip && \ - pip3 install wheel && \ - pip3 install -r requirements/requirements.txt && \ - pip3 install --no-cache notebook jupyterlab && \ - pip3 install -e . - -# #just to be sure that pdftotext is in $PATH -ENV PATH /usr/bin/pdftotext:${PATH} - -# # Run the application: -# CMD ["python3", "./cc_cli.py"] diff --git a/docs/installation.md b/docs/installation.md index 236a9dc9..8d71a170 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -22,7 +22,7 @@ source venv/bin/activate pip install -e . ``` -Alternatively, our Our [Dockerfile](https://github.com/crocs-muni/sec-certs/blob/main/docker/Dockerfile) represents a reproducible way of setting up the environment. +Alternatively, our Our [Dockerfile](https://github.com/crocs-muni/sec-certs/blob/main/Dockerfile) represents a reproducible way of setting up the environment. ## Dependencies -- cgit v1.3.1 From b4e575208791327b4eaf61040c39e8c31a01effb Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Sun, 1 May 2022 20:15:32 +0200 Subject: fix symbolic link path --- docs/index.md | 2 +- docs/notebooks | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/index.md b/docs/index.md index 084f7d08..a362a10e 100644 --- a/docs/index.md +++ b/docs/index.md @@ -19,7 +19,7 @@ tutorial.md ```{toctree} :caption: Notebook examples -notebooks/dataset.ipynb +notebooks/examples/dataset.ipynb ``` ```{toctree} diff --git a/docs/notebooks b/docs/notebooks index b50be0f4..7e2fa2a0 120000 --- a/docs/notebooks +++ b/docs/notebooks @@ -1 +1 @@ -./../notebooks/examples \ No newline at end of file +./../notebooks \ No newline at end of file -- cgit v1.3.1 From 7ff47777d6865b826cf0613e531f6ebece635bd5 Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Sun, 1 May 2022 20:25:53 +0200 Subject: add mybinder launch buttons for docs --- docs/conf.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/conf.py b/docs/conf.py index c7f4c6ff..e6b76999 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -54,3 +54,12 @@ html_static_path = ["_static"] html_logo = "_static/logo.svg" html_favicon = "_static/logo_badge.svg" + +html_theme_options = { + "repository_url": "https://github.com/crocs-muni/sec-certs", + "repository_branch": "issue/195-Docs", + "launch_buttons": {"binderhub_url": "https://mybinder.org"}, +} + +# Don't exeute notbooks +nb_execution_mode = "off" -- cgit v1.3.1 From 586269eae0779a83bf269e881fbda1e1aadf7d97 Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Sun, 1 May 2022 21:17:55 +0200 Subject: update myst-nb --- docs/index.md | 4 + requirements/dev_requirements.in | 2 +- requirements/dev_requirements.txt | 161 +++++--------------------------------- 3 files changed, 23 insertions(+), 144 deletions(-) diff --git a/docs/index.md b/docs/index.md index a362a10e..371b917c 100644 --- a/docs/index.md +++ b/docs/index.md @@ -22,6 +22,10 @@ tutorial.md notebooks/examples/dataset.ipynb ``` +```{admonition} Launch notebooks in MyBinder +Each of the notebooks can be launched interactively in MyBinder by clicking on 🚀 icon (top-right corner). +``` + ```{toctree} :maxdepth: 2 :caption: GitHub artifacts diff --git a/requirements/dev_requirements.in b/requirements/dev_requirements.in index baed56a5..635c62d1 100644 --- a/requirements/dev_requirements.in +++ b/requirements/dev_requirements.in @@ -12,5 +12,5 @@ flake8 pre-commit pip-tools sphinx -myst-nb +myst-nb>=0.14 sphinx-book-theme \ No newline at end of file diff --git a/requirements/dev_requirements.txt b/requirements/dev_requirements.txt index 9c652d29..125c77e5 100644 --- a/requirements/dev_requirements.txt +++ b/requirements/dev_requirements.txt @@ -1,17 +1,9 @@ alabaster==0.7.12 # via sphinx -anyio==3.5.0 - # via jupyter-server appnope==0.1.3 # via # ipykernel # ipython -argon2-cffi==21.3.0 - # via - # jupyter-server - # notebook -argon2-cffi-bindings==21.2.0 - # via argon2-cffi asttokens==2.0.5 # via stack-data attrs==21.4.0 @@ -25,17 +17,11 @@ babel==2.10.1 backcall==0.2.0 # via ipython beautifulsoup4==4.11.1 - # via - # nbconvert - # pydata-sphinx-theme + # via pydata-sphinx-theme black==22.3.0 # via -r dev_requirements.in -bleach==5.0.0 - # via nbconvert certifi==2021.10.8 # via requests -cffi==1.15.0 - # via argon2-cffi-bindings cfgv==3.3.1 # via pre-commit charset-normalizer==2.0.12 @@ -43,17 +29,14 @@ charset-normalizer==2.0.12 click==8.1.2 # via # black + # jupyter-cache # pip-tools -colorama==0.4.4 - # via nbdime coverage[toml]==6.3.2 # via pytest-cov debugpy==1.6.0 # via ipykernel decorator==5.1.1 # via ipython -defusedxml==0.7.1 - # via nbconvert distlib==0.3.4 # via virtualenv docutils==0.17.1 @@ -64,9 +47,7 @@ docutils==0.17.1 # sphinx # sphinx-togglebutton entrypoints==0.4 - # via - # jupyter-client - # nbconvert + # via jupyter-client executing==0.8.3 # via stack-data fastjsonschema==2.15.3 @@ -75,10 +56,6 @@ filelock==3.6.0 # via virtualenv flake8==4.0.1 # via -r dev_requirements.in -gitdb==4.0.9 - # via gitpython -gitpython==3.1.27 - # via nbdime gprof2dot==2021.2.21 # via pytest-profiling greenlet==1.1.2 @@ -86,13 +63,12 @@ greenlet==1.1.2 identify==2.4.12 # via pre-commit idna==3.3 - # via - # anyio - # requests + # via requests imagesize==1.3.0 # via sphinx importlib-metadata==4.11.3 # via + # jupyter-cache # myst-nb # sphinx importlib-resources==5.7.1 @@ -100,22 +76,10 @@ importlib-resources==5.7.1 iniconfig==1.1.1 # via pytest ipykernel==6.13.0 - # via - # ipywidgets - # notebook + # via myst-nb ipython==8.2.0 # via # ipykernel - # ipywidgets - # jupyter-sphinx - # myst-nb -ipython-genutils==0.2.0 - # via - # ipywidgets - # notebook -ipywidgets==7.7.0 - # via - # jupyter-sphinx # myst-nb isort==5.10.1 # via -r dev_requirements.in @@ -123,114 +87,66 @@ jedi==0.18.1 # via ipython jinja2==3.1.1 # via - # jupyter-server # myst-parser - # nbconvert - # nbdime - # notebook # sphinx jsonschema==4.4.0 # via nbformat -jupyter-cache==0.4.3 +jupyter-cache==0.5.0 # via myst-nb jupyter-client==7.2.2 # via # ipykernel - # jupyter-server # nbclient - # notebook jupyter-core==4.10.0 # via # jupyter-client - # jupyter-server - # nbconvert # nbformat - # notebook -jupyter-server==1.16.0 - # via - # jupyter-server-mathjax - # nbdime -jupyter-server-mathjax==0.2.5 - # via nbdime -jupyter-sphinx==0.3.2 - # via myst-nb -jupyterlab-pygments==0.2.2 - # via nbconvert -jupyterlab-widgets==1.1.0 - # via ipywidgets markdown-it-py==1.1.0 # via # mdit-py-plugins # myst-parser markupsafe==2.1.1 - # via - # jinja2 - # nbconvert + # via jinja2 matplotlib-inline==0.1.3 # via # ipykernel # ipython mccabe==0.6.1 # via flake8 -mdit-py-plugins==0.2.8 +mdit-py-plugins==0.3.0 # via myst-parser memory-profiler==0.60.0 # via pytest-monitor -mistune==0.8.4 - # via nbconvert mypy==0.942 # via -r dev_requirements.in mypy-extensions==0.4.3 # via # black # mypy -myst-nb==0.13.2 +myst-nb==0.14.0 # via -r dev_requirements.in -myst-parser==0.15.2 +myst-parser==0.17.2 # via myst-nb nbclient==0.5.13 - # via - # jupyter-cache - # nbconvert -nbconvert==6.5.0 - # via - # jupyter-server - # jupyter-sphinx - # myst-nb - # notebook -nbdime==3.1.1 # via jupyter-cache nbformat==5.3.0 # via - # ipywidgets # jupyter-cache - # jupyter-server - # jupyter-sphinx # myst-nb # nbclient - # nbconvert - # nbdime - # notebook nest-asyncio==1.5.5 # via # ipykernel # jupyter-client # nbclient - # notebook nodeenv==1.6.0 # via pre-commit -notebook==6.4.11 - # via widgetsnbextension packaging==21.3 # via # ipykernel - # jupyter-server - # nbconvert # pydata-sphinx-theme # pytest # sphinx -pandocfilters==1.5.0 - # via nbconvert parso==0.8.3 # via jedi pathspec==0.9.0 @@ -251,10 +167,6 @@ pluggy==1.0.0 # via pytest pre-commit==2.18.1 # via -r dev_requirements.in -prometheus-client==0.14.1 - # via - # jupyter-server - # notebook prompt-toolkit==3.0.29 # via ipython psutil==5.9.0 @@ -263,17 +175,13 @@ psutil==5.9.0 # memory-profiler # pytest-monitor ptyprocess==0.7.0 - # via - # pexpect - # terminado + # via pexpect pure-eval==0.2.2 # via stack-data py==1.11.0 # via pytest pycodestyle==2.8.0 # via flake8 -pycparser==2.21 - # via cffi pydata-sphinx-theme==0.8.1 # via sphinx-book-theme pyflakes==2.4.0 @@ -281,8 +189,6 @@ pyflakes==2.4.0 pygments==2.12.0 # via # ipython - # nbconvert - # nbdime # sphinx pyparsing==3.0.7 # via packaging @@ -306,35 +212,23 @@ pytz==2022.1 # via babel pyyaml==6.0 # via + # jupyter-cache # myst-nb # myst-parser # pre-commit # sphinx-book-theme pyzmq==22.3.0 - # via - # jupyter-client - # jupyter-server - # notebook + # via jupyter-client requests==2.27.1 # via - # nbdime # pytest-monitor # sphinx -send2trash==1.8.0 - # via - # jupyter-server - # notebook six==1.16.0 # via # asttokens - # bleach # pytest-profiling # python-dateutil # virtualenv -smmap==5.0.0 - # via gitdb -sniffio==1.2.0 - # via anyio snowballstemmer==2.2.0 # via sphinx soupsieve==2.3.2.post1 @@ -342,7 +236,6 @@ soupsieve==2.3.2.post1 sphinx==4.5.0 # via # -r dev_requirements.in - # jupyter-sphinx # myst-nb # myst-parser # pydata-sphinx-theme @@ -368,12 +261,8 @@ sqlalchemy==1.4.35 # via jupyter-cache stack-data==0.2.0 # via ipython -terminado==0.13.3 - # via - # jupyter-server - # notebook -tinycss2==1.1.1 - # via nbconvert +tabulate==0.8.9 + # via jupyter-cache toml==0.10.2 # via pre-commit tomli==2.0.1 @@ -387,23 +276,15 @@ tornado==6.1 # via # ipykernel # jupyter-client - # jupyter-server - # nbdime - # notebook - # terminado traitlets==5.1.1 # via # ipykernel # ipython - # ipywidgets # jupyter-client # jupyter-core - # jupyter-server # matplotlib-inline # nbclient - # nbconvert # nbformat - # notebook types-python-dateutil==2.8.10 # via -r dev_requirements.in types-pyyaml==6.0.5 @@ -416,25 +297,19 @@ typing-extensions==4.1.1 # via # black # mypy + # myst-nb + # myst-parser urllib3==1.26.9 # via requests virtualenv==20.14.0 # via pre-commit wcwidth==0.2.5 # via prompt-toolkit -webencodings==0.5.1 - # via - # bleach - # tinycss2 -websocket-client==1.3.2 - # via jupyter-server wheel==0.37.1 # via # pip-tools # pytest-monitor # sphinx-togglebutton -widgetsnbextension==3.6.0 - # via ipywidgets zipp==3.8.0 # via # importlib-metadata -- cgit v1.3.1 From 766164f7534e4d41a1668cc553c51c0ad3c0630f Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Sun, 1 May 2022 21:57:52 +0200 Subject: update notes --- CONTRIBUTING.md | 2 +- README.md | 2 +- cc_cli.py | 4 +- docs/conf.py | 12 +++--- docs/index.md | 3 +- docs/quickstart.md | 31 ++++++++++++++- fips_cli.py | 4 +- notebooks/examples/common_criteria.ipynb | 65 ++++++++++++++++++++++++++++++++ notebooks/examples/dataset.ipynb | 65 -------------------------------- notebooks/examples/fips.ipynb | 65 ++++++++++++++++++++++++++++++++ 10 files changed, 177 insertions(+), 76 deletions(-) create mode 100644 notebooks/examples/common_criteria.ipynb delete mode 100644 notebooks/examples/dataset.ipynb create mode 100644 notebooks/examples/fips.ipynb diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 542a39da..803cb340 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,7 +10,7 @@ You contribution is warmly welcomed. You can help by: ## Dependencies -For complete list of system dependencies, see [docs/installation](seccerts.org/docs/installation). +For complete list of system dependencies, see [docs/installation](https://seccerts.org/docs/installation.html). ### Requirements diff --git a/README.md b/README.md index 6464900a..c4b19802 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ This project is developed by the [Centre for Research On Cryptography and Securi ## Installation -Use Docker with `docker pull seccerts/sec-certs` or just `pip install -U sec-certs`. For more elaborate description, see [docs](seccerts.org/docs/installation) +Use Docker with `docker pull seccerts/sec-certs` or just `pip install -U sec-certs`. For more elaborate description, see [docs](https://seccerts.org/docs/installation.html) ## Usage (CC) diff --git a/cc_cli.py b/cc_cli.py index 11e1a40e..a9c20fc1 100755 --- a/cc_cli.py +++ b/cc_cli.py @@ -23,8 +23,10 @@ logger = logging.getLogger(__name__) @click.option( "-o", "--output", - type=click.Path(file_okay=False, dir_okay=True, writable=True, readable=True), + type=click.Path(file_okay=False, dir_okay=True, writable=True, readable=True, resolve_path=True), help="Path where the output of the experiment will be stored. May overwrite existing content.", + default=Path("./cc_dset/"), + show_default=True, ) @click.option( "-c", diff --git a/docs/conf.py b/docs/conf.py index e6b76999..384e6569 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -18,8 +18,8 @@ from importlib.metadata import version as get_version # -- Project information ----------------------------------------------------- project = "sec-certs" -copyright = "2022, Adam Janovsky, Petr Svenda, Jan Jancar, Jiri Michalik, Stanislav Bobon" -author = "Adam Janovsky, Petr Svenda, Jan Jancar, Jiri Michalik, Stanislav Bobon" +copyright = "2020-2022, Adam Janovsky, Petr Svenda, Jan Jancar, Jiri Michalik, Stanislav Bobon." +# author = "Adam Janovsky, Petr Svenda, Jan Jancar, Jiri Michalik, Stanislav Bobon" # Note thas this inference won't work from Docker: https://github.com/pypa/setuptools_scm/#usage-from-docker release = ".".join(get_version("sec-certs").split(".")[:3]) @@ -31,6 +31,9 @@ release = ".".join(get_version("sec-certs").split(".")[:3]) # ones. extensions = ["myst_nb"] +# Don't exeute notbooks +nb_execution_mode = "off" + # Add any paths that contain templates here, relative to this directory. templates_path = ["_templates"] @@ -39,7 +42,6 @@ templates_path = ["_templates"] # This pattern also affects html_static_path and html_extra_path. exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] - # -- Options for HTML output ------------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for @@ -59,7 +61,7 @@ html_theme_options = { "repository_url": "https://github.com/crocs-muni/sec-certs", "repository_branch": "issue/195-Docs", "launch_buttons": {"binderhub_url": "https://mybinder.org"}, + "use_fullscreen_button": False, } -# Don't exeute notbooks -nb_execution_mode = "off" +myst_heading_anchors = 3 diff --git a/docs/index.md b/docs/index.md index 371b917c..8cd9c8ef 100644 --- a/docs/index.md +++ b/docs/index.md @@ -19,7 +19,8 @@ tutorial.md ```{toctree} :caption: Notebook examples -notebooks/examples/dataset.ipynb +notebooks/examples/common_criteria.ipynb +notebooks/examples/fips.ipynb ``` ```{admonition} Launch notebooks in MyBinder diff --git a/docs/quickstart.md b/docs/quickstart.md index 74285025..48f7f1ce 100644 --- a/docs/quickstart.md +++ b/docs/quickstart.md @@ -1,4 +1,33 @@ # Quickstart 1. Install the latest version with `pip install -U sec-certs` (see [installation](installation.md)). -2. Use either `cc_cli.py` or `fips_cli.py` for full-fledged processing of the certificate pipeline, or explore the [dataset notebook](notebooks/dataset.ipynb). +2. Use +```python +dset = CCDataset.from_web_latest() +``` + +(Common Criteria) or + +```python +dset = FIPSDataset.from_web_latest() +``` + +(FIPS 140) to obtain freshly processed datasets from [seccerts.org](https://seccerts.org). + +```{hint} +You can work with those with the help of the [common criteria notebook](notebooks/examples/common_criteria.ipynb) or [fips notebook](notebooks/examples/fips.ipynb) and even launch them in MyBinder without installing anything. Just use the 🚀 icon (top-right corner). +``` + +If you insist on processing the whole certificates pipeline, make sure that you installed all [dependencies](installation.md#dependencies). Then, run + +```bash +cc-certs all +``` + +for Common Criteria processing, or + +```bash +fips-certs all +``` + +for FIPS 140 processing. This script takes a long time to run (few hours) and will create `./cc_dset` or `./fips_dset` directory. To see all options, call the entrypoint with `--help`. \ No newline at end of file diff --git a/fips_cli.py b/fips_cli.py index 149d2f81..9ebbf6f1 100755 --- a/fips_cli.py +++ b/fips_cli.py @@ -26,8 +26,10 @@ logger = logging.getLogger(__name__) @click.option( "-o", "--output", - type=click.Path(file_okay=False, dir_okay=True, writable=True, readable=True), + type=click.Path(file_okay=False, dir_okay=True, writable=True, readable=True, resolve_path=True), help="Path to the directory where the output of the 'build' or 'new-run' actions will be stored.", + default=Path("./fips_dset/"), + show_default=True, ) @click.option( "-c", diff --git a/notebooks/examples/common_criteria.ipynb b/notebooks/examples/common_criteria.ipynb new file mode 100644 index 00000000..4aab6c61 --- /dev/null +++ b/notebooks/examples/common_criteria.ipynb @@ -0,0 +1,65 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Common Criteria dataset class\n", + "\n", + "This notebook illustrates basic functionality with the `CCDataset` class that holds Common Criteria dataset" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from sec_certs.dataset.common_criteria import CCDataset" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4985\n" + ] + } + ], + "source": [ + "dset = CCDataset.from_web_latest()\n", + "print(len(dset))" + ] + } + ], + "metadata": { + "interpreter": { + "hash": "6386d1612879d92d026c363e7667e428bc38d86c5a080d58c3d70e7cd43df67d" + }, + "kernelspec": { + "display_name": "Python 3.8.1 ('certsvenv': venv)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.1" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/notebooks/examples/dataset.ipynb b/notebooks/examples/dataset.ipynb deleted file mode 100644 index 7f9287aa..00000000 --- a/notebooks/examples/dataset.ipynb +++ /dev/null @@ -1,65 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Dataset class examples\n", - "\n", - "This notebook illustrates basic functionality with the `CCDataset` class that holds Common Criteria dataset" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "from sec_certs.dataset.common_criteria import CCDataset" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "4985\n" - ] - } - ], - "source": [ - "dset = CCDataset.from_web_latest()\n", - "print(len(dset))" - ] - } - ], - "metadata": { - "interpreter": { - "hash": "6386d1612879d92d026c363e7667e428bc38d86c5a080d58c3d70e7cd43df67d" - }, - "kernelspec": { - "display_name": "Python 3.8.1 ('certsvenv': venv)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.1" - }, - "orig_nbformat": 4 - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/notebooks/examples/fips.ipynb b/notebooks/examples/fips.ipynb new file mode 100644 index 00000000..ab20ee93 --- /dev/null +++ b/notebooks/examples/fips.ipynb @@ -0,0 +1,65 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# FIPS Dataset class\n", + "\n", + "This notebook illustrates basic functionality with the `FIPSDataset` class that holds FIPS 140 dataset" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from sec_certs.dataset.fips import FIPSDataset" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4985\n" + ] + } + ], + "source": [ + "dset = FIPSDataset.from_web_latest()\n", + "print(len(dset))" + ] + } + ], + "metadata": { + "interpreter": { + "hash": "6386d1612879d92d026c363e7667e428bc38d86c5a080d58c3d70e7cd43df67d" + }, + "kernelspec": { + "display_name": "Python 3.8.1 ('certsvenv': venv)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.1" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} -- cgit v1.3.1 From 8ec5e35af3d504fa93195cbabff1240e867fb1e6 Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Mon, 2 May 2022 07:59:08 +0200 Subject: declare scope of docs --- docs/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/index.md b/docs/index.md index 8cd9c8ef..cb819301 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,5 +1,7 @@ # Sec-certs documentation +Welcome to the technical documentation of *sec-certs* tool for the data analysis of products certified with Common Criteria or FIPS 140 frameworks. If you're looking for general description of the tool, its use cases and capabilites, we refer you to [sec-certs homepage](https://seccerts.org/). If you are looking for more advanced knowledge, e.g. how to mine your own data, how to extend the tool, and so forth, this is the right place. + There are three main parts of this documentation. *User's guide* describes high-level use of our tool. Driven by this knowledge, you can progress to *Notebook examples* that showcase most of the API that we use in the form of Jupyter notebooks. The documentation currently does not have all modules documented with `autodoc`, so for the API reference, you must directly inspect the [sec_certs](https://github.com/crocs-muni/sec-certs/tree/main/sec_certs) module. If you want, you can run the notebooks as they are stored in the [project repository](https://github.com/crocs-muni/sec-certs/tree/main/notebooks). If you are interested in contributing to our project or in other aspects of our development, you can consult the relevant *GitHub artifacts* ```{toctree} -- cgit v1.3.1 From f2a88ef5f63ea3a7493385eb0be944d47099f41f Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Tue, 3 May 2022 17:13:58 +0200 Subject: add project urls --- setup.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/setup.py b/setup.py index 79c76d9b..298de435 100644 --- a/setup.py +++ b/setup.py @@ -30,4 +30,9 @@ setup( include_package_data=True, package_data={"sec_certs": ["settings.yaml", "settings-schema.json"]}, entry_points={"console_scripts": ["cc-certs=cc_cli:main", "fips-certs=fips_cli:main"]}, + project_urls={ + "Project homepage": "https://seccerts.org", + "GitHub repository": "https://github.com/crocs-muni/sec-certs/", + "Documentation": "https://seccerts.org/docs", + }, ) -- cgit v1.3.1 From 43b9202d40b8aaa24bc697c583ec5135feffcf92 Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Tue, 3 May 2022 17:14:44 +0200 Subject: add link to pypi docs --- docs/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/index.md b/docs/index.md index cb819301..d7ee1808 100644 --- a/docs/index.md +++ b/docs/index.md @@ -10,6 +10,7 @@ There are three main parts of this documentation. *User's guide* describes high- Seccerts homepage Seccerts docs GitHub repo +Seccerts PyPi ``` ```{toctree} -- cgit v1.3.1 From 10b3b57c8df3e467df2f8fbc617c25a6c0d578d5 Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Fri, 20 May 2022 10:37:09 +0200 Subject: simplify FIPS,CC examples --- examples/cc_oop_demo.py | 37 +++++++----------------- examples/fips_oop_demo.py | 73 +++++++++++++---------------------------------- 2 files changed, 31 insertions(+), 79 deletions(-) diff --git a/examples/cc_oop_demo.py b/examples/cc_oop_demo.py index 46f4d882..bf4ed31c 100644 --- a/examples/cc_oop_demo.py +++ b/examples/cc_oop_demo.py @@ -1,6 +1,5 @@ import logging from datetime import datetime -from pathlib import Path from sec_certs.config.configuration import config from sec_certs.dataset.common_criteria import CCDataset @@ -17,40 +16,26 @@ def main(): logging.basicConfig(level=logging.INFO, handlers=[file_handler, stream_handler]) start = datetime.now() - # Create empty dataset - dset = CCDataset({}, Path("./debug_dataset"), "cc_full_dataset", "sample dataset description") + # Full processing pipeline of Common Criteria dataset + dset = CCDataset() + dset.get_certs_from_web() + dset.process_protection_profiles() + dset.download_all_pdfs() + dset.convert_all_pdfs() + dset.analyze_certificates() # calls dset._extract_data() and dset._compute_heuristics() - # Load metadata for certificates from CSV and HTML sources - dset.get_certs_from_web(to_download=True) + # Other useful API below # explicitly dump to json - dset.to_json(dset.json_path) - - # Retrieve protection profile IDs - dset.process_protection_profiles() + # dset.to_json(dset.json_path) # Load dataset from JSON - new_dset = CCDataset.from_json("./debug_dataset/cc_full_dataset.json") - assert dset == new_dset - - # Download pdfs and update json - dset.download_all_pdfs() - - # Convert pdfs to text and update json - dset.convert_all_pdfs() - - # Extract data from txt files and update json - dset._extract_data() + # new_dset = CCDataset.from_json("./debug_dataset/cc_full_dataset.json") + # assert dset == new_dset # transform to pandas DataFrame # df = dset.to_pandas() - # Compute heuristics on the dataset - dset._compute_heuristics() - - # Compute related cves - # dset.compute_related_cves() - end = datetime.now() logger.info(f"The computation took {(end-start)} seconds.") diff --git a/examples/fips_oop_demo.py b/examples/fips_oop_demo.py index a84b1ac9..d31db4b2 100644 --- a/examples/fips_oop_demo.py +++ b/examples/fips_oop_demo.py @@ -1,71 +1,38 @@ import logging from datetime import datetime -from pathlib import Path - -import click from sec_certs.config.configuration import config from sec_certs.dataset.fips import FIPSDataset -from sec_certs.dataset.fips_algorithm import FIPSAlgorithmDataset logger = logging.getLogger(__name__) -@click.command() -@click.option("--config-file", help="Path to config file") -@click.option("--json-file", help="Path to dataset json file") -@click.option("--no-download-algs", help="Redo scan of html files", is_flag=True) -@click.option("--redo-web-scan", help="Redo scan of PDF files", is_flag=True) -@click.option("--redo-keyword-scan", help="Don't download algs", is_flag=True) -@click.option( - "--higher-precision-results", - help="Redo table search for certificates with high error rate. Behaviour undefined if used on a newly instantiated dataset.", - is_flag=True, -) -def main(config_file, json_file, no_download_algs, redo_web_scan, redo_keyword_scan, higher_precision_results): - logging.basicConfig(level=logging.INFO) +def main(): + file_handler = logging.FileHandler(config.log_filepath) + stream_handler = logging.StreamHandler() + formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s") + file_handler.setFormatter(formatter) + stream_handler.setFormatter(formatter) + logging.basicConfig(level=logging.INFO, handlers=[file_handler, stream_handler]) start = datetime.now() - # Load config - config.load(config_file if config_file else "../sec_certs/settings.yaml") - - # Create empty dataset - dset = FIPSDataset({}, Path("../fips_dataset"), "sample_dataset", "sample dataset description") - - # this is for creating test dataset, usually with small number of pdfs - # dset = FIPSDataset({}, Path('./fips_test_dataset'), 'small dataset', 'small dataset for keyword testing') - - # Load metadata for certificates from CSV and HTML sources - dset.get_certs_from_web(redo=redo_web_scan) - - logger.info(f"Finished parsing. Have dataset with {len(dset)} certificates.") - logger.info(f"Dataset saved to {dset.root_dir}/fips_full_dataset.json") - - logger.info("Converting pdfs") + # Full processing of FIPS dataset, fresh run + dset = FIPSDataset() + dset.get_certs_from_web() dset.convert_all_pdfs() + dset.pdf_scan() + dset.extract_certs_from_tables() + dset.finalize_results() - logger.info("Extracting keywords now.") - dset.pdf_scan(redo=redo_keyword_scan) - - logger.info(f"Finished extracting certificates for {len(dset.certs)} items.") - - logger.info("Searching for tables in pdfs") - - not_decoded_files = dset.extract_certs_from_tables(higher_precision_results) - - logger.info(f"Done. Files not decoded: {not_decoded_files}") - logger.info("Parsing algorithms") - if not no_download_algs: - aset = FIPSAlgorithmDataset({}, Path(dset.root_dir / "web/algorithms"), "algorithms", "sample algs") - aset.get_certs_from_web() - logger.info(f"Finished parsing. Have algorithm dataset with {len(aset)} algorithm numbers.") - - dset.algorithms = aset + # TODO: Resolve https://github.com/crocs-muni/sec-certs/issues/210 and refactor this + # if not no_download_algs: + # aset.get_certs_from_web() + # logger.info(f"Finished parsing. Have algorithm dataset with {len(aset)} algorithm numbers.") + # dset.algorithms = aset - logger.info("finalizing results.") - dset.finalize_results() + # TODO: Resolve https://github.com/crocs-muni/sec-certs/issues/211 and uncomment + # dset.plot_graphs(show=False) - dset.plot_graphs(show=False) end = datetime.now() logger.info(f"The computation took {(end - start)} seconds.") -- cgit v1.3.1 From 4f70d6d81aa51667a218899dbcc2a5d578a762cd Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Fri, 20 May 2022 11:33:10 +0200 Subject: CPE model make some method private, docs --- sec_certs/model/cpe_matching.py | 95 +++++++++++++++++++++++------------------ 1 file changed, 53 insertions(+), 42 deletions(-) diff --git a/sec_certs/model/cpe_matching.py b/sec_certs/model/cpe_matching.py index 1dcf8801..7b25b2a2 100644 --- a/sec_certs/model/cpe_matching.py +++ b/sec_certs/model/cpe_matching.py @@ -34,30 +34,34 @@ class CPEClassifier(BaseEstimator): def fit(self, X: List[CPE], y: Optional[List[str]] = None) -> "CPEClassifier": """ Just creates look-up structures from provided list of CPEs - @param X: List of CPEs that can be matched with predict() - @param y: will be ignored, specified to adhere to sklearn BaseEstimator interface + + :param List[CPE] X: List of CPEs that can be matched with predict() + :param Optional[List[str]] y: will be ignored, specified to adhere to sklearn BaseEstimator interface, defaults to None + :return CPEClassifier: return self to allow method chaining """ - self.build_lookup_structures(X) + self._build_lookup_structures(X) return self @staticmethod - def filter_short_cpes(cpes: List[CPE]) -> List[CPE]: + def _filter_short_cpes(cpes: List[CPE]) -> List[CPE]: """ Short CPE items are super easy to match with 100% rank, but they are hardly informative. This method discards them. - @param cpes: List of CPEs to filtered - @return All CPEs in cpes variable which item name has at least 4 characters. + + :param List[CPE] cpes: List of CPEs to filtered + :return List[CPE]: All CPEs in cpes variable which item name has at least 4 characters. """ return list(filter(lambda x: x.item_name is not None and len(x.item_name) > 3, cpes)) - def build_lookup_structures(self, X: List[CPE]) -> None: + def _build_lookup_structures(self, X: List[CPE]) -> None: """ Builds several look-up dictionaries for fast matching. - vendor_to_version_: each vendor is mapped to set of versions that appear in combination with vendor in CPE dataset - vendor_version_to_cpe_: Each (vendor, version) tuple is mapped to a set of CPE items that appear in combination with this tuple in CPE dataset - vendors_: Just aggregates set of vendors, used for prunning later on. - @param X: List of CPEs that will be used to build the dictionaries + + :param List[CPE] X: List of CPEs that will be used to build the dictionaries """ - sufficiently_long_cpes = self.filter_short_cpes(X) + sufficiently_long_cpes = self._filter_short_cpes(X) self.vendor_to_versions_ = {x.vendor: set() for x in sufficiently_long_cpes} self.vendors_ = set(self.vendor_to_versions_.keys()) self.vendor_version_to_cpe_ = dict() @@ -72,8 +76,9 @@ class CPEClassifier(BaseEstimator): def predict(self, X: List[Tuple[str, str, str]]) -> List[Optional[Set[str]]]: """ Will predict CPE uris for List of Tuples (vendor, product name, identified versions in product name) - @param X: tuples (vendor, product name, identified versions in product name) - @return: List of CPE uris that correspond to given input, None if nothing was found. + + :param List[Tuple[str, str, str]] X: tuples (vendor, product name, identified versions in product name) + :return List[Optional[Set[str]]]: List of CPE uris that correspond to given input, None if nothing was found. """ return [self.predict_single_cert(x[0], x[1], x[2]) for x in helpers.tqdm(X, desc="Predicting")] @@ -93,23 +98,23 @@ class CPEClassifier(BaseEstimator): 4. Compute string similarity of the candidate CPE matches and certificate name 5. Evaluate best string similarity, if above threshold, declare it a match. 6. If no CPE item is matched, try again but relax version and check CPEs that don't have their version specified. - Also, search for 100% CPE matches on item name instead of title. - @param vendor: manufacturer of the certificate - @param product_name: name of the certificate - @param versions: List of versions that appear in the certificate name - @param relax_version: bool, see step 6 above. - @param relax_title: bool - @return: + 7. (Also, search for 100% CPE matches on item name instead of title.) + + :param Optional[str] vendor: manufacturer of the certificate + :param str product_name: name of the certificate + :param Set[str] versions: List of versions that appear in the certificate name + :param bool relax_version: See step 6 above., defaults to False + :param bool relax_title: See step 7 above, defaults to False + :return Optional[Set[str]]: Set of matching CPE uris, None if no matches found """ - lemmatized_product_name = self._lemmatize_product_name(product_name) - candidate_vendors = self.get_candidate_list_of_vendors( + candidate_vendors = self._get_candidate_list_of_vendors( CPEClassifier._discard_trademark_symbols(vendor).lower() if vendor else vendor ) - candidates = self.get_candidate_cpe_matches(candidate_vendors, versions) + candidates = self._get_candidate_cpe_matches(candidate_vendors, versions) ratings = [ - self.compute_best_match(cpe, lemmatized_product_name, candidate_vendors, versions, relax_title=relax_title) + self._compute_best_match(cpe, lemmatized_product_name, candidate_vendors, versions, relax_title=relax_title) for cpe in candidates ] threshold = self.match_threshold if not relax_version else 100 @@ -131,7 +136,7 @@ class CPEClassifier(BaseEstimator): return final_matches if final_matches else None - def compute_best_match( + def _compute_best_match( self, cpe: CPE, product_name: str, @@ -143,11 +148,13 @@ class CPEClassifier(BaseEstimator): Tries several different settings in which string similarity between CPE and certificate name is tested. For definition of string similarity, see rapidfuzz package on GitHub. Both token set ratio and partial ratio are tested, always both on CPE title and CPE item name. - @param cpe: CPE to test - @param product_name: name of the certificate - @param candidate_vendors: vendors that appear in the certificate - @param versions: versions that appear in the certificate - @return: Maximal value of the four string similarities discussed above. + + :param CPE cpe: CPE to test + :param str product_name: name of the certificate + :param Optional[Set[str]] candidate_vendors: vendors that appear in the certificate + :param Set[str] versions: versions that appear in the certificate + :param bool relax_title: if to relax title or not, defaults to False + :return float: Maximal value of the four string similarities discussed above. """ if relax_title: sanitized_title = ( @@ -225,16 +232,17 @@ class CPEClassifier(BaseEstimator): if "athena" in tokenized and "smartcard" in tokenized: result.add("athena-scs") if tokenized[0] == "the" and not result: - candidate_result = self.get_candidate_list_of_vendors(" ".join(tokenized[1:])) + candidate_result = self._get_candidate_list_of_vendors(" ".join(tokenized[1:])) return set(candidate_result) if candidate_result else set() return set(result) if result else set() - def get_candidate_list_of_vendors(self, manufacturer: Optional[str]) -> Set[str]: + def _get_candidate_list_of_vendors(self, manufacturer: Optional[str]) -> Set[str]: """ Given manufacturer name, this method will find list of plausible vendors from CPE dataset that are likely related. - @param manufacturer: manufacturer - @return: List of related manufacturers, None if nothing relevant is found. + + :param Optional[str] manufacturer: manufacturer + :return Set[str]: List of related manufacturers, None if nothing relevant is found. """ result: Set[str] = set() if not manufacturer: @@ -246,7 +254,7 @@ class CPEClassifier(BaseEstimator): vendor_tokens = set( itertools.chain.from_iterable([[x.strip() for x in manufacturer.split(s)] for s in splits]) ) - result_aux = [self.get_candidate_list_of_vendors(x) for x in vendor_tokens] + result_aux = [self._get_candidate_list_of_vendors(x) for x in vendor_tokens] result_used = set(set(itertools.chain.from_iterable([x for x in result_aux if x]))) return result_used if result_used else set() @@ -255,14 +263,16 @@ class CPEClassifier(BaseEstimator): return self._process_manufacturer(manufacturer, result) - def get_candidate_vendor_version_pairs( + def _get_candidate_vendor_version_pairs( self, cert_candidate_cpe_vendors: Set[str], cert_candidate_versions: Set[str] ) -> Optional[List[Tuple[str, str]]]: """ Given parameters, will return Pairs (cpe_vendor, cpe_version) that are relevant to a given sample - @param cert_candidate_cpe_vendors: list of CPE vendors relevant to a sample - @param cert_candidate_versions: List of versions heuristically extracted from the sample name - @return: List of tuples (cpe_vendor, cpe_version) that can be used in the lookup table to search the CPE dataset. + + + :param Set[str] cert_candidate_cpe_vendors: list of CPE vendors relevant to a sample + :param Set[str] cert_candidate_versions: List of versions heuristically extracted from the sample name + :return Optional[List[Tuple[str, str]]]: List of tuples (cpe_vendor, cpe_version) that can be used in the lookup table to search the CPE dataset. """ def is_cpe_version_among_cert_versions(cpe_version: Optional[str], cert_versions: Set[str]) -> bool: @@ -296,14 +306,15 @@ class CPEClassifier(BaseEstimator): candidate_vendor_version_pairs.extend([(vendor, x) for x in matched_cpe_versions]) return candidate_vendor_version_pairs - def get_candidate_cpe_matches(self, candidate_vendors: Set[str], candidate_versions: Set[str]) -> List[CPE]: + def _get_candidate_cpe_matches(self, candidate_vendors: Set[str], candidate_versions: Set[str]) -> List[CPE]: """ Given List of candidate vendors and candidate versions found in certificate, candidate CPE matches are found - @param candidate_vendors: List of version strings that were found in the certificate - @param candidate_versions: List of vendor strings that were found in the certificate - @return: + + :param Set[str] candidate_vendors: List of version strings that were found in the certificate + :param Set[str] candidate_versions: List of vendor strings that were found in the certificate + :return List[CPE]: List of CPE records that could match, to be refined later """ - candidate_vendor_version_pairs = self.get_candidate_vendor_version_pairs(candidate_vendors, candidate_versions) + candidate_vendor_version_pairs = self._get_candidate_vendor_version_pairs(candidate_vendors, candidate_versions) return ( list( itertools.chain.from_iterable([self.vendor_version_to_cpe_[x] for x in candidate_vendor_version_pairs]) -- cgit v1.3.1 From 67c268b727a138efdcc51b1c1ecbaf30ab11b182 Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Fri, 20 May 2022 12:18:52 +0200 Subject: Docs: autodoc, model package docs --- CONTRIBUTING.md | 9 ++++++++- docs/api/model.md | 20 +++++++++++++++++++ docs/conf.py | 2 +- docs/index.md | 5 +++++ sec_certs/model/sar_transformer.py | 39 +++++++++++++++++++++++++++++--------- 5 files changed, 64 insertions(+), 11 deletions(-) create mode 100644 docs/api/model.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 803cb340..11cd09f0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -64,4 +64,11 @@ To ivoke the tools manually, you can, in the repository root, use: - Mypy: `mypy .` - Black: `black --check .` (without the flag to reformat) - isort: `isort --check-only .` (without the flag to actually fix the issue) -- Flake8: `flake8 .` \ No newline at end of file +- Flake8: `flake8 .` + +## Documentation + +Every public method of a module that can be leveraged as an API by user should be documented. The docstrng style should +be `sphinx-oneline`. + +The documentation is built using `sphinx` with `mnyst` extension that allows for markdown files. Folder `notebooks/examples` is symbolically linked to `/docs` and its contents will be automatically parsed. These notebooks are supposed to be runnable from Binder. \ No newline at end of file diff --git a/docs/api/model.md b/docs/api/model.md new file mode 100644 index 00000000..372815c7 --- /dev/null +++ b/docs/api/model.md @@ -0,0 +1,20 @@ +# Model package + +## CPEClassifier + +```{eval-rst} +.. currentmodule:: sec_certs.model +.. autoclass:: CPEClassifier + :members: +``` + +## SARTranformer + +```{eval-rst} +.. currentmodule:: sec_certs.model +.. autoclass:: SARTransformer + :members: +``` + +## DependencyFinder + diff --git a/docs/conf.py b/docs/conf.py index 384e6569..001c209a 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -29,7 +29,7 @@ release = ".".join(get_version("sec-certs").split(".")[:3]) # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. -extensions = ["myst_nb"] +extensions = ["myst_nb", "sphinx.ext.autodoc"] # Don't exeute notbooks nb_execution_mode = "off" diff --git a/docs/index.md b/docs/index.md index d7ee1808..8e0883dc 100644 --- a/docs/index.md +++ b/docs/index.md @@ -26,6 +26,11 @@ notebooks/examples/common_criteria.ipynb notebooks/examples/fips.ipynb ``` +```{toctree} +:caption: API +api/model.md +``` + ```{admonition} Launch notebooks in MyBinder Each of the notebooks can be launched interactively in MyBinder by clicking on 🚀 icon (top-right corner). ``` diff --git a/sec_certs/model/sar_transformer.py b/sec_certs/model/sar_transformer.py index ee99b279..58f96c0b 100644 --- a/sec_certs/model/sar_transformer.py +++ b/sec_certs/model/sar_transformer.py @@ -19,17 +19,38 @@ class SARTransformer(BaseEstimator, TransformerMixin): """ def fit(self, certificates: Iterable[CommonCriteriaCert]) -> SARTransformer: + """ + Just returns self, no fitting needed + + :param Iterable[CommonCriteriaCert] certificates: Unused parameter + :return SARTransformer: return self + """ return self def transform(self, certificates: Iterable[CommonCriteriaCert]) -> List[Optional[Set[SAR]]]: + """ + Just a wrapper around transform_single_cert() called on an iterable of CommonCriteriaCert. + + :param Iterable[CommonCriteriaCert] certificates: Iterable of CommonCriteriaCert objects to perform the extraction on. + :return List[Optional[Set[SAR]]]: Returns List of results from transform_single_cert(). + """ return [self.transform_single_cert(cert) for cert in certificates] def transform_single_cert(self, cert: CommonCriteriaCert) -> Optional[Set[SAR]]: - sec_level_candidates, st_candidates, report_candidates = self.collect_sar_candidates_from_all_sources(cert) - return self.resolve_candidate_conflicts(sec_level_candidates, st_candidates, report_candidates, cert.dgst) + """ + Given CommonCriteriaCert, will transform SAR keywords extracted from txt files + into a set of SAR objects. Also handles extractin of correct SAR levels, duplicities and filtering. + Uses three sources: CSV scan, security target, and certification report. + The caller should assure that the certificates have the keywords extracted. + + :param CommonCriteriaCert cert: Certificate to extract SARs from + :return Optional[Set[SAR]]: Set of SARs, None if none were identified. + """ + sec_level_candidates, st_candidates, report_candidates = self._collect_sar_candidates_from_all_sources(cert) + return self._resolve_candidate_conflicts(sec_level_candidates, st_candidates, report_candidates, cert.dgst) @staticmethod - def collect_sar_candidates_from_all_sources(cert: CommonCriteriaCert) -> Tuple[Set[SAR], Set[SAR], Set[SAR]]: + def _collect_sar_candidates_from_all_sources(cert: CommonCriteriaCert) -> Tuple[Set[SAR], Set[SAR], Set[SAR]]: """ Parses SARs from three distinct sources and returns the results as a three tuple: - Security level from CSV scan @@ -43,24 +64,24 @@ class SARTransformer(BaseEstimator, TransformerMixin): def report_keywords_may_have_sars(sample: CommonCriteriaCert): return sample.pdf_data.report_keywords and SAR_DICT_KEY in sample.pdf_data.report_keywords - sec_level_sars = SARTransformer.parse_sars_from_security_level_list(cert.security_level) + sec_level_sars = SARTransformer._parse_sars_from_security_level_list(cert.security_level) if st_keywords_may_have_sars(cert): st_dict: Dict = cast(Dict, cert.pdf_data.st_keywords) - st_sars = SARTransformer.parse_sar_dict(st_dict[SAR_DICT_KEY], cert.dgst) + st_sars = SARTransformer._parse_sar_dict(st_dict[SAR_DICT_KEY], cert.dgst) else: st_sars = set() if report_keywords_may_have_sars(cert): report_dict: Dict = cast(Dict, cert.pdf_data.report_keywords) - report_sars = SARTransformer.parse_sar_dict(report_dict[SAR_DICT_KEY], cert.dgst) + report_sars = SARTransformer._parse_sar_dict(report_dict[SAR_DICT_KEY], cert.dgst) else: report_sars = set() return sec_level_sars, st_sars, report_sars @staticmethod - def resolve_candidate_conflicts( + def _resolve_candidate_conflicts( sec_level_candidates: Set[SAR], st_candidates: Set[SAR], report_candidates: Set[SAR], cert_dgst: str ) -> Optional[Set[SAR]]: final_candidates: Dict[str, SAR] = {x.family: x for x in sec_level_candidates} @@ -94,7 +115,7 @@ class SARTransformer(BaseEstimator, TransformerMixin): return set(final_candidates.values()) if final_candidates else None @staticmethod - def parse_sar_dict(dct: Dict[str, int], dgst: str) -> Set[SAR]: + def _parse_sar_dict(dct: Dict[str, int], dgst: str) -> Set[SAR]: """ Accepts st_keywords or report_keywords dictionary. Will reconstruct SAR objects from it. Each SAR family can appear multiple times in the dictionary (due to conflicts) with different levels. Iterated item will replace @@ -126,7 +147,7 @@ class SARTransformer(BaseEstimator, TransformerMixin): return {x[0] for x in sars.values()} if sars else set() @staticmethod - def parse_sars_from_security_level_list(lst: Iterable[str]) -> Set[SAR]: + def _parse_sars_from_security_level_list(lst: Iterable[str]) -> Set[SAR]: sars = set() for element in lst: try: -- cgit v1.3.1 From dab67350a43c67d16d808286eb709b4354692539 Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Fri, 20 May 2022 12:23:11 +0200 Subject: add pkgconfig --- requirements/requirements.in | 1 + requirements/requirements.txt | 2 ++ 2 files changed, 3 insertions(+) diff --git a/requirements/requirements.in b/requirements/requirements.in index df488cff..48117721 100644 --- a/requirements/requirements.in +++ b/requirements/requirements.in @@ -23,3 +23,4 @@ setuptools-scm ipykernel ipywidgets spacy +pkgconfig diff --git a/requirements/requirements.txt b/requirements/requirements.txt index a40891e6..718c2e06 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -202,6 +202,8 @@ pillow==9.1.0 # -r requirements.in # matplotlib # pikepdf +pkgconfig==1.5.5 + # via -r requirements.in preshed==3.0.6 # via # spacy -- cgit v1.3.1 From 99768447af7031d4ceb982ba58f49fcf8d4c4591 Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Fri, 20 May 2022 15:25:28 +0200 Subject: update docs --- docs/api/model.md | 22 ++++++++++++++++++++++ docs/index.md | 9 +++++---- docs/installation.md | 25 ++++++++++++++++++++----- docs/quickstart.md | 29 ++++++++++++++++++++++------- 4 files changed, 69 insertions(+), 16 deletions(-) diff --git a/docs/api/model.md b/docs/api/model.md index 372815c7..406d24be 100644 --- a/docs/api/model.md +++ b/docs/api/model.md @@ -1,5 +1,14 @@ # Model package +```{eval-rst} +.. automodule:: sec_certs.model + :no-members: +``` + +```{tip} +The examples related to this package can be found at [model notebook](./../notebooks/examples/model.ipynb). +``` + ## CPEClassifier ```{eval-rst} @@ -18,3 +27,16 @@ ## DependencyFinder +```{eval-rst} +.. currentmodule:: sec_certs.model +.. autoclass:: DependencyFinder + :members: +``` + +## DependencyVulnerabilityFinder + +```{eval-rst} +.. currentmodule:: sec_certs.model +.. autoclass:: DependencyVulnerabilityFinder + :members: +``` \ No newline at end of file diff --git a/docs/index.md b/docs/index.md index 8e0883dc..3f44633b 100644 --- a/docs/index.md +++ b/docs/index.md @@ -4,6 +4,10 @@ Welcome to the technical documentation of *sec-certs* tool for the data analysis There are three main parts of this documentation. *User's guide* describes high-level use of our tool. Driven by this knowledge, you can progress to *Notebook examples* that showcase most of the API that we use in the form of Jupyter notebooks. The documentation currently does not have all modules documented with `autodoc`, so for the API reference, you must directly inspect the [sec_certs](https://github.com/crocs-muni/sec-certs/tree/main/sec_certs) module. If you want, you can run the notebooks as they are stored in the [project repository](https://github.com/crocs-muni/sec-certs/tree/main/notebooks). If you are interested in contributing to our project or in other aspects of our development, you can consult the relevant *GitHub artifacts* +```{admonition} Launch notebooks in MyBinder +Each of the notebooks can be launched interactively in MyBinder by clicking on 🚀 icon (top-right corner). +``` + ```{toctree} :hidden: :caption: Navigation @@ -24,6 +28,7 @@ tutorial.md :caption: Notebook examples notebooks/examples/common_criteria.ipynb notebooks/examples/fips.ipynb +notebooks/examples/model.ipynb ``` ```{toctree} @@ -31,10 +36,6 @@ notebooks/examples/fips.ipynb api/model.md ``` -```{admonition} Launch notebooks in MyBinder -Each of the notebooks can be launched interactively in MyBinder by clicking on 🚀 icon (top-right corner). -``` - ```{toctree} :maxdepth: 2 :caption: GitHub artifacts diff --git a/docs/installation.md b/docs/installation.md index 8d71a170..71e685db 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -1,18 +1,28 @@ # Installation -The tool can be pulled as a docker image with +::::{tab-set} +:::{tab-item} PyPi (pip) + +The tool can be installed from PyPi with ```bash -docker pull seccerts/sec-certs +pip install -U sec-certs ``` -Alternatively, it can be installed from PyPi with +Note, that `Python>=3.8` is required. + +::: + +:::{tab-item} Docker + +The tool can be pulled as a docker image with ```bash -pip install -U sec-certs +docker pull seccerts/sec-certs ``` -Note, however, that `Python>=3.8` is required and there are some additional dependencies (see below) that are not shipped with the binary distribution. +::: +:::{tab-item} Build from sources The stable release is also published on [GitHub](https://github.com/crocs-muni/sec-certs/releases) from where it can be setup for development with @@ -24,6 +34,11 @@ pip install -e . Alternatively, our Our [Dockerfile](https://github.com/crocs-muni/sec-certs/blob/main/Dockerfile) represents a reproducible way of setting up the environment. +::: +:::: + +If you're not using Docker, you must install the dependencies as described below. + ## Dependencies - [Java](https://www.java.com/en) is needed to parse tables in FIPS pdf documents, must be available from `PATH`. diff --git a/docs/quickstart.md b/docs/quickstart.md index 48f7f1ce..14121212 100644 --- a/docs/quickstart.md +++ b/docs/quickstart.md @@ -1,18 +1,29 @@ # Quickstart +::::{tab-set} + +:::{tab-item} Common Criteria 1. Install the latest version with `pip install -U sec-certs` (see [installation](installation.md)). 2. Use ```python dset = CCDataset.from_web_latest() ``` +to obtain to obtain freshly processed dataset from [seccerts.org](https://seccerts.org). -(Common Criteria) or +3. Play with the dataset. See [example notebook](./notebooks/examples/common_criteria.ipynb). +::: +:::{tab-item} FIPS 140 +1. Install the latest version with `pip install -U sec-certs` (see [installation](installation.md)). +2. Use ```python dset = FIPSDataset.from_web_latest() ``` +to obtain to obtain freshly processed dataset from [seccerts.org](https://seccerts.org). -(FIPS 140) to obtain freshly processed datasets from [seccerts.org](https://seccerts.org). +3. Play with the dataset. See [example notebook](./notebooks/examples/fips.ipynb). +::: +:::: ```{hint} You can work with those with the help of the [common criteria notebook](notebooks/examples/common_criteria.ipynb) or [fips notebook](notebooks/examples/fips.ipynb) and even launch them in MyBinder without installing anything. Just use the 🚀 icon (top-right corner). @@ -20,14 +31,18 @@ You can work with those with the help of the [common criteria notebook](notebook If you insist on processing the whole certificates pipeline, make sure that you installed all [dependencies](installation.md#dependencies). Then, run +::::{tab-set} +:::{tab-item} Common Criteria ```bash -cc-certs all +$ cc-certs all ``` +::: -for Common Criteria processing, or - +:::{tab-item} FIPS 140 ```bash -fips-certs all +$ fips-certs new-run ``` +::: +:::: -for FIPS 140 processing. This script takes a long time to run (few hours) and will create `./cc_dset` or `./fips_dset` directory. To see all options, call the entrypoint with `--help`. \ No newline at end of file +This script takes a long time to run (few hours) and will create `./cc_dset` or `./fips_dset` directory. To see all options, call the entrypoint with `--help`. \ No newline at end of file -- cgit v1.3.1 From 4d7078d81f38d5ab4e31525ff8094be449e3b3b8 Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Fri, 20 May 2022 15:32:11 +0200 Subject: docs tabs and copybuttons --- docs/conf.py | 8 +++++++- requirements/dev_requirements.in | 4 +++- requirements/dev_requirements.txt | 6 ++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 001c209a..fb66db5e 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -29,7 +29,7 @@ release = ".".join(get_version("sec-certs").split(".")[:3]) # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. -extensions = ["myst_nb", "sphinx.ext.autodoc"] +extensions = ["myst_nb", "sphinx.ext.autodoc", "sphinx_design", "sphinx_copybutton"] # Don't exeute notbooks nb_execution_mode = "off" @@ -37,6 +37,12 @@ nb_execution_mode = "off" # Add any paths that contain templates here, relative to this directory. templates_path = ["_templates"] +# Don't show typehints in autodoc files +autodoc_typehints = "none" + +# This is recommended by sphinx_design extension +myst_enable_extensions = ["colon_fence"] + # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. # This pattern also affects html_static_path and html_extra_path. diff --git a/requirements/dev_requirements.in b/requirements/dev_requirements.in index 635c62d1..7f6d9712 100644 --- a/requirements/dev_requirements.in +++ b/requirements/dev_requirements.in @@ -13,4 +13,6 @@ pre-commit pip-tools sphinx myst-nb>=0.14 -sphinx-book-theme \ No newline at end of file +sphinx-book-theme +sphinx-design +sphinx-copybutton \ No newline at end of file diff --git a/requirements/dev_requirements.txt b/requirements/dev_requirements.txt index 125c77e5..3ea4c3af 100644 --- a/requirements/dev_requirements.txt +++ b/requirements/dev_requirements.txt @@ -240,9 +240,15 @@ sphinx==4.5.0 # myst-parser # pydata-sphinx-theme # sphinx-book-theme + # sphinx-copybutton + # sphinx-design # sphinx-togglebutton sphinx-book-theme==0.3.2 # via -r dev_requirements.in +sphinx-copybutton==0.5.0 + # via -r dev_requirements.in +sphinx-design==0.1.0 + # via -r dev_requirements.in sphinx-togglebutton==0.3.1 # via myst-nb sphinxcontrib-applehelp==1.0.2 -- cgit v1.3.1 From 9db545dbb2b644a01b8e49b4b2506ea03ec36b00 Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Fri, 20 May 2022 17:20:48 +0200 Subject: Docs: add some examples --- docs/api/dataset.md | 18 +++ docs/api/sample.md | 18 +++ docs/index.md | 19 ++- docs/quickstart.md | 10 +- examples/cc_oop_demo.py | 44 ------- notebooks/examples/common_criteria.ipynb | 198 ++++++++++++++++++++++++++++--- notebooks/examples/fips.ipynb | 139 ++++++++++++++++++++-- notebooks/examples/model.ipynb | 76 ++++++++++++ sec_certs/dataset/fips.py | 5 +- 9 files changed, 450 insertions(+), 77 deletions(-) create mode 100644 docs/api/dataset.md create mode 100644 docs/api/sample.md delete mode 100644 examples/cc_oop_demo.py create mode 100644 notebooks/examples/model.ipynb diff --git a/docs/api/dataset.md b/docs/api/dataset.md new file mode 100644 index 00000000..ed92b31e --- /dev/null +++ b/docs/api/dataset.md @@ -0,0 +1,18 @@ +# Dataset package + +```{eval-rst} +.. automodule:: sec_certs.dataset + :no-members: +``` + +```{tip} +The examples related to this package can be found at [common criteria notebook](./../notebooks/examples/common_criteria.ipynb) and [fips notebook](./../notebooks/examples/fips.ipynb). +``` + +## CCDataset + +```{eval-rst} +.. currentmodule:: sec_certs.dataset +.. autoclass:: CCDataset + :members: +``` \ No newline at end of file diff --git a/docs/api/sample.md b/docs/api/sample.md new file mode 100644 index 00000000..29266f90 --- /dev/null +++ b/docs/api/sample.md @@ -0,0 +1,18 @@ +# Sample package + +```{eval-rst} +.. automodule:: sec_certs.sample + :no-members: +``` + +```{tip} +The examples related to this package can be found at [common criteria notebook](./../notebooks/examples/common_criteria.ipynb) and [fips notebook](./../notebooks/examples/fips.ipynb). +``` + +## CommonCriteriaCert + +```{eval-rst} +.. currentmodule:: sec_certs.sample +.. autoclass:: CommonCriteriaCert + :members: +``` \ No newline at end of file diff --git a/docs/index.md b/docs/index.md index 3f44633b..8949debe 100644 --- a/docs/index.md +++ b/docs/index.md @@ -4,6 +4,13 @@ Welcome to the technical documentation of *sec-certs* tool for the data analysis There are three main parts of this documentation. *User's guide* describes high-level use of our tool. Driven by this knowledge, you can progress to *Notebook examples* that showcase most of the API that we use in the form of Jupyter notebooks. The documentation currently does not have all modules documented with `autodoc`, so for the API reference, you must directly inspect the [sec_certs](https://github.com/crocs-muni/sec-certs/tree/main/sec_certs) module. If you want, you can run the notebooks as they are stored in the [project repository](https://github.com/crocs-muni/sec-certs/tree/main/notebooks). If you are interested in contributing to our project or in other aspects of our development, you can consult the relevant *GitHub artifacts* +```{button-ref} quickstart +:align: center +:color: primary +:ref-type: myst +Show me Quickstart! +``` + ```{admonition} Launch notebooks in MyBinder Each of the notebooks can be launched interactively in MyBinder by clicking on 🚀 icon (top-right corner). ``` @@ -11,6 +18,7 @@ Each of the notebooks can be launched interactively in MyBinder by clicking on ```{toctree} :hidden: :caption: Navigation +:maxdepth: 1 Seccerts homepage Seccerts docs GitHub repo @@ -18,7 +26,9 @@ Seccerts PyPi ``` ```{toctree} +:hidden: True :caption: User's guide +:maxdepth: 1 installation.md quickstart.md tutorial.md @@ -26,6 +36,8 @@ tutorial.md ```{toctree} :caption: Notebook examples +:hidden: True +:maxdepth: 1 notebooks/examples/common_criteria.ipynb notebooks/examples/fips.ipynb notebooks/examples/model.ipynb @@ -33,11 +45,16 @@ notebooks/examples/model.ipynb ```{toctree} :caption: API +:hidden: True +:maxdepth: 1 +api/sample.md +api/dataset.md api/model.md ``` ```{toctree} -:maxdepth: 2 +:maxdepth: 1 +:hidden: True :caption: GitHub artifacts readme.md contributing.md diff --git a/docs/quickstart.md b/docs/quickstart.md index 14121212..721e1341 100644 --- a/docs/quickstart.md +++ b/docs/quickstart.md @@ -6,6 +6,8 @@ 1. Install the latest version with `pip install -U sec-certs` (see [installation](installation.md)). 2. Use ```python +from sec-certs.dataset import CCDataset + dset = CCDataset.from_web_latest() ``` to obtain to obtain freshly processed dataset from [seccerts.org](https://seccerts.org). @@ -17,6 +19,8 @@ to obtain to obtain freshly processed dataset from [seccerts.org](https://seccer 1. Install the latest version with `pip install -U sec-certs` (see [installation](installation.md)). 2. Use ```python +from sec-certs.dataset import FIPSDataset + dset = FIPSDataset.from_web_latest() ``` to obtain to obtain freshly processed dataset from [seccerts.org](https://seccerts.org). @@ -45,4 +49,8 @@ $ fips-certs new-run ::: :::: -This script takes a long time to run (few hours) and will create `./cc_dset` or `./fips_dset` directory. To see all options, call the entrypoint with `--help`. \ No newline at end of file +This script takes a long time to run (few hours) and will create `./cc_dset` or `./fips_dset` directory. To see all options, call the entrypoint with `--help`. + +:::{hint} +If you installed the docker image, use `docker run -it sec-certs bash` to run the container interactively. +::: diff --git a/examples/cc_oop_demo.py b/examples/cc_oop_demo.py deleted file mode 100644 index 7876c71f..00000000 --- a/examples/cc_oop_demo.py +++ /dev/null @@ -1,44 +0,0 @@ -import logging -from datetime import datetime - -from sec_certs.config.configuration import config -from sec_certs.dataset import CCDataset - -logger = logging.getLogger(__name__) - - -def main(): - file_handler = logging.FileHandler(config.log_filepath) - stream_handler = logging.StreamHandler() - formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s") - file_handler.setFormatter(formatter) - stream_handler.setFormatter(formatter) - logging.basicConfig(level=logging.INFO, handlers=[file_handler, stream_handler]) - start = datetime.now() - - # Full processing pipeline of Common Criteria dataset - dset = CCDataset() - dset.get_certs_from_web() - dset.process_protection_profiles() - dset.download_all_pdfs() - dset.convert_all_pdfs() - dset.analyze_certificates() # calls dset._extract_data() and dset._compute_heuristics() - - # Other useful API below - - # explicitly dump to json - # dset.to_json(dset.json_path) - - # Load dataset from JSON - # new_dset = CCDataset.from_json("./debug_dataset/cc_full_dataset.json") - # assert dset == new_dset - - # transform to pandas DataFrame - # df = dset.to_pandas() - - end = datetime.now() - logger.info(f"The computation took {(end-start)} seconds.") - - -if __name__ == "__main__": - main() diff --git a/notebooks/examples/common_criteria.ipynb b/notebooks/examples/common_criteria.ipynb index 4aab6c61..83a56379 100644 --- a/notebooks/examples/common_criteria.ipynb +++ b/notebooks/examples/common_criteria.ipynb @@ -4,36 +4,202 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Common Criteria dataset class\n", + "# Common Criteria example\n", "\n", - "This notebook illustrates basic functionality with the `CCDataset` class that holds Common Criteria dataset" + "This notebook illustrates basic functionality with the `CCDataset` class that holds Common Criteria dataset and of its sample `CommonCriteriaCert`" ] }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ - "from sec_certs.dataset.common_criteria import CCDataset" + "from sec_certs.dataset.common_criteria import CCDataset\n", + "from sec_certs.dataset.common_criteria import CommonCriteriaCert\n", + "import pandas as pd" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Get fresh dataset snapshot from mirror" ] }, { "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "4985\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "dset = CCDataset.from_web_latest()\n", - "print(len(dset))" + "print(len(dset)) # Print number of certificates in the dataset" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Do some basic dataset serialization" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Dump dataset into json and load it back\n", + "dset.to_json(\"./cc_dset.json\")\n", + "new_dset: CCDataset = CCDataset.from_json(\"./cc_dset.json\")\n", + "assert dset == new_dset" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "# Turn dataset into Pandas DataFrame\n", + "df = dset.to_pandas()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Simple dataset manipulation" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [], + "source": [ + "# Iterate over certificates in dataset\n", + "for cert in dset:\n", + " pass\n", + "\n", + "# Get certificates produced by Infineon manufacturer\n", + "infineon_certs = [x for x in dset if \"Infineon\" in x.manufacturer]\n", + "df_infineon = df.loc[df.manufacturer.str.contains(\"Infineon\", case=False)]\n", + "\n", + "# Get certificates with some CVE\n", + "vulnerable_certs = [x for x in dset if x.heuristics.related_cves]\n", + "df_vulnerable = df.loc[~df.related_cves.isna()]\n", + "\n", + "# Show CVE ids of some vulnerable certificate\n", + "print(f\"{vulnerable_certs[0].heuristics.related_cves=}\")\n", + "\n", + "# Get certificates from 2015 and newer\n", + "df_2015_and_newer = df.loc[df.year_from > 2014]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Plot distribution of years of certification\n", + "df.year_from.value_counts().sort_index().plot.line()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Dissect single certificate" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Select a certificate and print some attributes\n", + "cert: CommonCriteriaCert = dset[\"bad93fb821395db2\"]\n", + "print(f\"{cert.name=}\")\n", + "print(f\"{cert.heuristics.cpe_matches=}\")\n", + "print(f\"{cert.heuristics.report_references.directly_referencing=}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "vulnerable_certs = [x for x in dset if x.heuristics.related_cves]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Serialize single certificate" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "cert.to_json(\"./cert.json\")\n", + "new_cert = cert.from_json(\"./cert.json\")\n", + "assert cert == new_cert\n", + "\n", + "# Serialize as Pandas series\n", + "ser = pd.Series(cert.pandas_tuple, index=cert.pandas_columns)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Assign dataset with CPE records and compute vulnerabilities\n", + "\n", + "*Note*: The data is already computed on dataset obtained with `from_web_latest()`, this is just for illustration. \n", + "*Note*: This may likely not run in Binder, as the corresponding `CVEDataset` and `CPEDataset` instances take a lot of memory." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Automatically match CPEs and CVEs\n", + "_, cpe_dset, _ = dset.compute_cpe_heuristics()\n", + "dset.compute_related_cves()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create new dataset and fully process it\n", + "\n", + "*Warning*: It's not good idea to run this from notebook. It may take several hours to finnish. We recommend using `from_web_latest()` or turning this into a Python script." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "dset = CCDataset()\n", + "dset.get_certs_from_web()\n", + "dset.process_protection_profiles()\n", + "dset.download_all_pdfs()\n", + "dset.convert_all_pdfs()\n", + "dset.analyze_certificates()" ] } ], diff --git a/notebooks/examples/fips.ipynb b/notebooks/examples/fips.ipynb index ab20ee93..28eb2b1a 100644 --- a/notebooks/examples/fips.ipynb +++ b/notebooks/examples/fips.ipynb @@ -11,30 +11,143 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ - "from sec_certs.dataset.fips import FIPSDataset" + "from sec_certs.dataset.fips import FIPSDataset\n", + "from sec_certs.sample import FIPSCertificate" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Get fresh dataset snapshot from mirror" ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "4985\n" - ] - } - ], + "outputs": [], "source": [ - "dset = FIPSDataset.from_web_latest()\n", + "dset: FIPSDataset = FIPSDataset.from_web_latest()\n", "print(len(dset))" ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Do some basic dataset serialization" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Dump dataset into json and load it back\n", + "dset.to_json(\"./fips_dataset.json\")\n", + "new_dset = FIPSDataset.from_json(\"./fips_dataset.json\")\n", + "assert dset == new_dset" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Simple dataset manipulation" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "# Get certificates from a single manufacturer\n", + "cisco_certs = [cert for cert in dset if \"Cisco\" in cert.web_scan.vendor]\n", + "\n", + "# Get certificates with some CVE\n", + "vulnerable_certs = [cert for cert in dset if cert.heuristics.related_cves]\n", + "\n", + "# Show CVE ids of some vulnerable certificate\n", + "print(f\"{vulnerable_certs[0].heuristics.related_cves=}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Dissect single certificate" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Select a certificate and print some attributes\n", + "cert: FIPSCertificate = dset[\"542cacae1d41132a\"]\n", + "\n", + "print(f\"{cert.web_scan.module_name=}\")\n", + "print(f\"{cert.heuristics.cpe_matches=}\")\n", + "print(f\"{cert.web_scan.level=}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Serialize single certificate" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "cert.to_json(\"./cert.json\")\n", + "new_cert: FIPSCertificate = FIPSCertificate.from_json(\"./cert.json\")\n", + "assert new_cert == cert" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create new dataset and fully process it\n", + "\n", + "*Warning*: It's not good idea to run this from notebook. It may take several hours to finnish. We recommend using `from_web_latest()` or turning this into a Python script." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "dset = FIPSDataset()\n", + "dset.get_certs_from_web()\n", + "dset.convert_all_pdfs()\n", + "dset.pdf_scan()\n", + "dset.extract_certs_from_tables()\n", + "dset.finalize_results()\n", + "\n", + "# TODO: Resolve https://github.com/crocs-muni/sec-certs/issues/210 and refactor this\n", + "# if not no_download_algs:\n", + "# aset.get_certs_from_web()\n", + "# logger.info(f\"Finished parsing. Have algorithm dataset with {len(aset)} algorithm numbers.\")\n", + "# dset.algorithms = aset\n", + "\n", + "# TODO: Resolve https://github.com/crocs-muni/sec-certs/issues/211 and uncomment\n", + "# dset.plot_graphs(show=False)" + ] } ], "metadata": { diff --git a/notebooks/examples/model.ipynb b/notebooks/examples/model.ipynb new file mode 100644 index 00000000..370b13cd --- /dev/null +++ b/notebooks/examples/model.ipynb @@ -0,0 +1,76 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Model\n", + "\n", + "This notebook illustrates basic functionality with the `model` package that apply complex transformations on certificates.\n", + "\n", + "*Note*: You probably don't need to use this. Instead, you should use `CCDataset` or `FIPSDataset` classes to handle the transformations for yourself." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from sec_certs.dataset.common_criteria import CCDataset\n", + "from sec_certs.model import SARTransformer" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "dset: CCDataset = CCDataset.from_web_latest()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## SARTransformer" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "transformer = SARTransformer().fit(dset.certs.values())\n", + "extracted_sars = {x.dgst: transformer.transform_single_cert(x) for x in dset}" + ] + } + ], + "metadata": { + "interpreter": { + "hash": "6386d1612879d92d026c363e7667e428bc38d86c5a080d58c3d70e7cd43df67d" + }, + "kernelspec": { + "display_name": "Python 3.8.1 ('certsvenv': venv)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.1" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/sec_certs/dataset/fips.py b/sec_certs/dataset/fips.py index 2defd9f1..8cef1520 100644 --- a/sec_certs/dataset/fips.py +++ b/sec_certs/dataset/fips.py @@ -254,8 +254,9 @@ class FIPSDataset(Dataset[FIPSCertificate], ComplexSerializableType): len(dset), len(dset.algorithms) if dset.algorithms is not None else 0, ) - logger.info("The dataset does not contain the results of the dependency analysis - calculating them now...") - dset.finalize_results() + # TODO: Fixme, this is really costly + # logger.info("The dataset does not contain the results of the dependency analysis - calculating them now...") + # dset.finalize_results() return dset def set_local_paths(self) -> None: -- cgit v1.3.1 From 4fe5372ec385c3662a7a05d75ec40922d40c414e Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Fri, 20 May 2022 18:24:01 +0200 Subject: Docs: automatically generate configuration page --- .gitignore | 3 +++ docs/Makefile | 7 +++++++ docs/generate_config_page.py | 20 ++++++++++++++++++++ docs/index.md | 3 ++- sec_certs/config/configuration.py | 8 +++++++- 5 files changed, 39 insertions(+), 2 deletions(-) create mode 100755 docs/generate_config_page.py diff --git a/.gitignore b/.gitignore index 1d2da538..8faf062e 100644 --- a/.gitignore +++ b/.gitignore @@ -78,6 +78,9 @@ instance/ # Sphinx documentation docs/_build/ +# Dynamically built configuration page +docs/configuration.md + # PyBuilder target/ diff --git a/docs/Makefile b/docs/Makefile index d4bb2cbb..0405fafe 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -17,4 +17,11 @@ help: # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). %: Makefile + @if [ "$@" = "html" ]; then \ + chmod +x ./generate_config_page.py ;\ + python3 ./generate_config_page.py ;\ + fi @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + @if [ "$@" = "html" ]; then \ + rm ./configuration.md ;\ + fi \ No newline at end of file diff --git a/docs/generate_config_page.py b/docs/generate_config_page.py new file mode 100755 index 00000000..d928c178 --- /dev/null +++ b/docs/generate_config_page.py @@ -0,0 +1,20 @@ +# This will generate configuration.md page from `settings.yaml` in sec_certs.configuration file + +from sec_certs.config import configuration + + +def main(): + cfg = configuration.config + + with open("./configuration.md", "w") as handle: + handle.write("# Configuration\n\n") + handle.write( + "The configuration is stored in yaml file `settings.yaml` at `sec_certs.config`. These are the supported options, descriptions and default values.\n\n" + ) + for key in cfg.__dict__: + handle.write(f"`{key}`\n\n- Description: {cfg.get_desription(key)}\n") + handle.write(f"- Default value: `{cfg.__getattribute__(key)}`\n\n") + + +if __name__ == "__main__": + main() diff --git a/docs/index.md b/docs/index.md index 8949debe..61c39ec5 100644 --- a/docs/index.md +++ b/docs/index.md @@ -32,6 +32,7 @@ Seccerts PyPi installation.md quickstart.md tutorial.md +configuration.md ``` ```{toctree} @@ -44,7 +45,7 @@ notebooks/examples/model.ipynb ``` ```{toctree} -:caption: API +:caption: API reference :hidden: True :maxdepth: 1 api/sample.md diff --git a/sec_certs/config/configuration.py b/sec_certs/config/configuration.py index 8560529c..6a9a5880 100644 --- a/sec_certs/config/configuration.py +++ b/sec_certs/config/configuration.py @@ -1,6 +1,6 @@ import json from pathlib import Path -from typing import Any, Union +from typing import Any, Optional, Union import jsonschema import yaml @@ -30,6 +30,12 @@ class Configuration(object): return res["value"] return object.__getattribute__(self, key) + def get_desription(self, key: str) -> Optional[str]: + res = object.__getattribute__(self, key) + if isinstance(res, dict) and "description" in res: + return res["description"] + return None + DEFAULT_CONFIG_PATH = Path(__file__).parent / "settings.yaml" config = Configuration() -- cgit v1.3.1 From b01f20c1b219199ab4e1369c8cfa47c1409ba443 Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Sat, 21 May 2022 09:41:28 +0200 Subject: Docs: configuratiom.md without editing makefile --- .gitignore | 3 --- docs/Makefile | 7 ------- docs/configuration.md | 26 ++++++++++++++++++++++++++ docs/generate_config_page.py | 20 -------------------- 4 files changed, 26 insertions(+), 30 deletions(-) create mode 100644 docs/configuration.md delete mode 100755 docs/generate_config_page.py diff --git a/.gitignore b/.gitignore index 8faf062e..1d2da538 100644 --- a/.gitignore +++ b/.gitignore @@ -78,9 +78,6 @@ instance/ # Sphinx documentation docs/_build/ -# Dynamically built configuration page -docs/configuration.md - # PyBuilder target/ diff --git a/docs/Makefile b/docs/Makefile index 0405fafe..d4bb2cbb 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -17,11 +17,4 @@ help: # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). %: Makefile - @if [ "$@" = "html" ]; then \ - chmod +x ./generate_config_page.py ;\ - python3 ./generate_config_page.py ;\ - fi @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) - @if [ "$@" = "html" ]; then \ - rm ./configuration.md ;\ - fi \ No newline at end of file diff --git a/docs/configuration.md b/docs/configuration.md new file mode 100644 index 00000000..27d07760 --- /dev/null +++ b/docs/configuration.md @@ -0,0 +1,26 @@ +--- +file_format: mystnb +mystnb: + remove_code_source: true + execution_mode: 'force' +--- +# Configuration + +The configuration is stored in yaml file `settings.yaml` at `sec_certs.config`. These are the supported options, descriptions and default values. + + +```{code-cell} python +from sec_certs.config import configuration +from myst_nb import glue +from IPython.display import Markdown + +cfg = configuration.config +text = "" +for key in cfg.__dict__: + text += f"`{key}`\n\n- Description: {cfg.get_desription(key)}\n" + text += f"- Default value: `{cfg.__getattribute__(key)}`\n\n" +glue("text", Markdown(text)) +``` +```{glue:md} text +:format: myst +``` diff --git a/docs/generate_config_page.py b/docs/generate_config_page.py deleted file mode 100755 index d928c178..00000000 --- a/docs/generate_config_page.py +++ /dev/null @@ -1,20 +0,0 @@ -# This will generate configuration.md page from `settings.yaml` in sec_certs.configuration file - -from sec_certs.config import configuration - - -def main(): - cfg = configuration.config - - with open("./configuration.md", "w") as handle: - handle.write("# Configuration\n\n") - handle.write( - "The configuration is stored in yaml file `settings.yaml` at `sec_certs.config`. These are the supported options, descriptions and default values.\n\n" - ) - for key in cfg.__dict__: - handle.write(f"`{key}`\n\n- Description: {cfg.get_desription(key)}\n") - handle.write(f"- Default value: `{cfg.__getattribute__(key)}`\n\n") - - -if __name__ == "__main__": - main() -- cgit v1.3.1 From 5fcb216c86dd9b1c3e9cc82822276233ed1024a8 Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Sat, 21 May 2022 09:44:26 +0200 Subject: docs: fix typo --- docs/configuration.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/configuration.md b/docs/configuration.md index 27d07760..d5f6abda 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -6,7 +6,7 @@ mystnb: --- # Configuration -The configuration is stored in yaml file `settings.yaml` at `sec_certs.config`. These are the supported options, descriptions and default values. +The configuration is stored in yaml file `settings.yaml` at `sec_certs.config` package. These are the supported options, descriptions and default values. ```{code-cell} python -- cgit v1.3.1 From 5d1e1e8346489911eda02892e67823738dfb9e47 Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Sun, 22 May 2022 13:43:36 +0200 Subject: add fipsdataset docs --- docs/api/dataset.md | 12 ++- sec_certs/dataset/common_criteria.py | 8 +- sec_certs/dataset/cpe.py | 47 ++++++++-- sec_certs/dataset/dataset.py | 4 +- sec_certs/dataset/fips.py | 168 ++++++++++++++++++----------------- 5 files changed, 147 insertions(+), 92 deletions(-) diff --git a/docs/api/dataset.md b/docs/api/dataset.md index ed92b31e..168fa12a 100644 --- a/docs/api/dataset.md +++ b/docs/api/dataset.md @@ -5,6 +5,8 @@ :no-members: ``` +This documentation doesn't provide full API reference for all members of `dataset` package. Instead, it concentrattes on the Dataset that are immediately exposed to the users. Namely, we focus on `CCDataset` and `FIPSDataset`. + ```{tip} The examples related to this package can be found at [common criteria notebook](./../notebooks/examples/common_criteria.ipynb) and [fips notebook](./../notebooks/examples/fips.ipynb). ``` @@ -15,4 +17,12 @@ The examples related to this package can be found at [common criteria notebook]( .. currentmodule:: sec_certs.dataset .. autoclass:: CCDataset :members: -``` \ No newline at end of file +``` + +## FIPSDataset + +```{eval-rst} +.. currentmodule:: sec_certs.dataset +.. autoclass:: FIPSDataset + :members: +``` diff --git a/sec_certs/dataset/common_criteria.py b/sec_certs/dataset/common_criteria.py index 7bdb5ae1..76bd9f94 100644 --- a/sec_certs/dataset/common_criteria.py +++ b/sec_certs/dataset/common_criteria.py @@ -89,7 +89,7 @@ class CCDataset(Dataset[CommonCriteriaCert], ComplexSerializableType): def root_dir(self, new_dir: Union[str, Path]) -> None: old_dset = copy.deepcopy(self) Dataset.root_dir.fset(self, new_dir) # type: ignore - self.set_local_paths() + self._set_local_paths() if self.state and old_dset.root_dir != Path(".."): logger.info(f"Changing root dir of partially processed dataset. All contents will get copied to {new_dir}") @@ -220,7 +220,7 @@ class CCDataset(Dataset[CommonCriteriaCert], ComplexSerializableType): return all_cert_ids - def set_local_paths(self): + def _set_local_paths(self): for cert in self: cert.set_local_paths(self.reports_pdf_dir, self.targets_pdf_dir, self.reports_txt_dir, self.targets_txt_dir) @@ -299,7 +299,7 @@ class CCDataset(Dataset[CommonCriteriaCert], ComplexSerializableType): if not keep_metadata: shutil.rmtree(self.web_dir) - self.set_local_paths() + self._set_local_paths() self.state.meta_sources_parsed = True def _get_all_certs_from_csv(self, get_active: bool, get_archived: bool) -> Dict[str, "CommonCriteriaCert"]: @@ -791,7 +791,6 @@ class CCDataset(Dataset[CommonCriteriaCert], ComplexSerializableType): update_dset: CCDatasetMaintenanceUpdates = CCDatasetMaintenanceUpdates( {x.dgst: x for x in updates}, root_dir=self.mu_dataset_path, name="Maintenance updates" ) - update_dset.set_local_paths() update_dset.download_all_pdfs() update_dset.convert_all_pdfs() update_dset._extract_data() @@ -822,6 +821,7 @@ class CCDatasetMaintenanceUpdates(CCDataset, ComplexSerializableType): ): super().__init__(certs, root_dir, name, description, state) # type: ignore self.state.meta_sources_parsed = True + self._set_local_paths() @property def certs_dir(self) -> Path: diff --git a/sec_certs/dataset/cpe.py b/sec_certs/dataset/cpe.py index 43ae3365..0ae35081 100644 --- a/sec_certs/dataset/cpe.py +++ b/sec_certs/dataset/cpe.py @@ -20,6 +20,10 @@ logger = logging.getLogger(__name__) @dataclass class CPEDataset(ComplexSerializableType): + """ + Dataset of CPE records. Includes look-up dictionaries for fast search. + """ + was_enhanced_with_vuln_cpes: bool json_path: Path cpes: Dict[str, CPE] @@ -68,7 +72,7 @@ class CPEDataset(ComplexSerializableType): def build_lookup_dicts(self) -> None: """ - Will build look-up dictionaries that are used for fast matching + Will build look-up dictionaries that are used for fast matching. """ logger.info("CPE dataset: building lookup dictionaries.") self.vendor_to_versions = {x.vendor: set() for x in self} @@ -90,6 +94,13 @@ class CPEDataset(ComplexSerializableType): @classmethod def from_web(cls, json_path: Union[str, Path], init_lookup_dicts: bool = True) -> "CPEDataset": + """ + Creates CPEDataset from NIST resources published on-line + + :param Union[str, Path] json_path: Path to store the dataset to + :param bool init_lookup_dicts: If dictionaries for fast matching should be computed, defaults to True + :return CPEDataset: The resulting dataset + """ with tempfile.TemporaryDirectory() as tmp_dir: xml_path = Path(tmp_dir) / cls.cpe_xml_basename zip_path = Path(tmp_dir) / (cls.cpe_xml_basename + ".zip") @@ -98,10 +109,10 @@ class CPEDataset(ComplexSerializableType): with zipfile.ZipFile(zip_path, "r") as zip_ref: zip_ref.extractall(tmp_dir) - return cls.from_xml(xml_path, json_path, init_lookup_dicts) + return cls._from_xml(xml_path, json_path, init_lookup_dicts) @classmethod - def from_xml( + def _from_xml( cls, xml_path: Union[str, Path], json_path: Union[str, Path], init_lookup_dicts: bool = True ) -> "CPEDataset": logger.info("Loading CPE dataset from XML.") @@ -128,22 +139,48 @@ class CPEDataset(ComplexSerializableType): @classmethod def from_json(cls, input_path: Union[str, Path]) -> "CPEDataset": + """ + Loads dataset from json + + :param Union[str, Path] input_path: Path to the serialized json dataset + :return CPEDataset: the resulting dataset. + """ dset = cast("CPEDataset", ComplexSerializableType.from_json(input_path)) dset.json_path = Path(input_path) return dset @classmethod def from_dict(cls, dct: Dict[str, Any], init_lookup_dicts: bool = True) -> "CPEDataset": + """ + Loads dataset from dictionary. + + :param Dict[str, Any] dct: Dictionary that holds the dataset + :param bool init_lookup_dicts: Whether look-up dicts should be computed as a part of initialization, defaults to True + :return CPEDataset: the resulting dataset. + """ return cls(dct["was_enhanced_with_vuln_cpes"], Path("../"), dct["cpes"], init_lookup_dicts) def to_pandas(self) -> pd.DataFrame: + """ + Turns the dataset into pandas DataFrame. Each CPE record forms a row. + + :return pd.DataFrame: the resulting DataFrame + """ df = pd.DataFrame([x.pandas_tuple for x in self], columns=CPE.pandas_columns) df = df.set_index("uri") return df @serialize def enhance_with_cpes_from_cve_dataset(self, cve_dset: Union[CVEDataset, str, Path]) -> None: - def adding_condition( + """ + Some CPEs are present only in the CVEDataset and are missing from the CPE Dataset. + This method goes through the provided CVEDataset and enriches self with CPEs from + the CVEDataset. + + :param Union[CVEDataset, str, Path] cve_dset: CVEDataset of a path to it. + """ + + def _adding_condition( considered_cpe: CPE, vndr_item_lookup: Set[Tuple[str, str]], vndr_item_version_lookup: Set[Tuple[str, str, str]], @@ -174,7 +211,7 @@ class CPEDataset(ComplexSerializableType): vendor_item_lookup = {(cpe.vendor, cpe.item_name) for cpe in self} vendor_item_version_lookup = {(cpe.vendor, cpe.item_name, cpe.version) for cpe in self} for cpe in helpers.tqdm(all_cpes_in_cve_dset, desc="Enriching CPE dataset with new CPEs"): - if adding_condition(cpe, vendor_item_lookup, vendor_item_version_lookup): + if _adding_condition(cpe, vendor_item_lookup, vendor_item_version_lookup): new_cpe = copy.deepcopy(cpe) new_cpe.start_version = None new_cpe.end_version = None diff --git a/sec_certs/dataset/dataset.py b/sec_certs/dataset/dataset.py index e63aea9f..34dc9003 100644 --- a/sec_certs/dataset/dataset.py +++ b/sec_certs/dataset/dataset.py @@ -128,10 +128,10 @@ class Dataset(Generic[CertSubType], ABC): def from_json(cls: Type[DatasetSubType], input_path: Union[str, Path]) -> DatasetSubType: dset = cast("DatasetSubType", ComplexSerializableType.from_json(input_path)) dset.root_dir = Path(input_path).parent.absolute() - dset.set_local_paths() + dset._set_local_paths() return dset - def set_local_paths(self) -> None: + def _set_local_paths(self) -> None: raise NotImplementedError("Not meant to be implemented by the base class.") @abstractmethod diff --git a/sec_certs/dataset/fips.py b/sec_certs/dataset/fips.py index 8cef1520..44c6ebdf 100644 --- a/sec_certs/dataset/fips.py +++ b/sec_certs/dataset/fips.py @@ -1,14 +1,11 @@ import logging -import os import tempfile -from itertools import groupby from pathlib import Path -from typing import Any, Dict, List, Optional, Set, Tuple +from typing import Any, Dict, List, Optional, Set from bs4 import BeautifulSoup, NavigableString from graphviz import Digraph -from sec_certs import constants as constants from sec_certs import helpers as helpers from sec_certs import parallel_processing as cert_processing from sec_certs.config.configuration import config @@ -23,6 +20,10 @@ logger = logging.getLogger(__name__) class FIPSDataset(Dataset[FIPSCertificate], ComplexSerializableType): + """ + Class for processing of FIPSCertificate samples. Inherits from `ComplexSerializableType` and base abstract `Dataset` class. + """ + def __init__( self, certs: Dict[str, FIPSCertificate] = dict(), @@ -36,48 +37,36 @@ class FIPSDataset(Dataset[FIPSCertificate], ComplexSerializableType): self.new_files = 0 @property - def results_dir(self) -> Path: - return self.root_dir / "results" - - @property - def policies_dir(self) -> Path: + def _policies_dir(self) -> Path: return self.root_dir / "security_policies" @property - def fragments_dir(self) -> Path: + def _fragments_dir(self) -> Path: return self.root_dir / "fragments" @property - def algs_dir(self) -> Path: + def _algs_dir(self) -> Path: return self.web_dir / "algorithms" - # After web scan, there should be a FIPSCertificate object created for every entry - @property - def successful_web_scan(self) -> bool: - return all(self.certs) and all(cert.web_scan for cert in self.certs.values() if cert is not None) - - @property - def successful_pdf_scan(self) -> bool: - return all(cert.pdf_scan for cert in self.certs.values() if cert is not None) - def get_certs_from_name(self, module_name: str) -> List[FIPSCertificate]: - return [crt for crt in self if crt.web_scan.module_name == module_name] + """ + Returns list of certificates that match given name. - def find_empty_pdfs(self) -> Tuple[List, List]: - missing = [] - not_available = [] - for i in self.certs: - if not (self.policies_dir / f"{i}.pdf").exists(): - missing.append(i) - elif os.path.getsize(self.policies_dir / f"{i}.pdf") < constants.FIPS_NOT_AVAILABLE_CERT_SIZE: - not_available.append(i) - return missing, not_available + :param str module_name: name to search for + :return List[FIPSCertificate]: List of certificates with web_scan.module_name == module_name + """ + return [crt for crt in self if crt.web_scan.module_name == module_name] @serialize def pdf_scan(self, redo: bool = False) -> None: + """ + Extracts data from pdf files + + :param bool redo: Whether to try again with failed files, defaults to False + """ logger.info("Entering PDF scan.") - self.fragments_dir.mkdir(parents=True, exist_ok=True) + self._fragments_dir.mkdir(parents=True, exist_ok=True) keywords = cert_processing.process_parallel( FIPSCertificate.find_keywords, @@ -89,7 +78,7 @@ class FIPSDataset(Dataset[FIPSCertificate], ComplexSerializableType): for keyword, cert in keywords: self.certs[cert.dgst].pdf_scan.keywords = keyword - def match_algs(self) -> Dict[str, int]: + def _match_algs(self) -> Dict[str, int]: output = {} for cert in self.certs.values(): # if the pdf has not been processed, no matching can be done @@ -103,18 +92,24 @@ class FIPSDataset(Dataset[FIPSCertificate], ComplexSerializableType): return output def download_all_pdfs(self, cert_ids: Optional[Set[str]] = None) -> None: + """ + Downloads all pdf files related to the certificates specified with cert_ids. + + :param Optional[Set[str]] cert_ids: cert_ids to download the pdfs foor, defaults to None + :raises RuntimeError: If no cert_ids are specified, raises. + """ sp_paths, sp_urls = [], [] - self.policies_dir.mkdir(exist_ok=True) + self._policies_dir.mkdir(exist_ok=True) if cert_ids is None: raise RuntimeError("You need to provide cert ids to FIPS download PDFs functionality.") for cert_id in cert_ids: - if not (self.policies_dir / f"{cert_id}.pdf").exists() or ( + if not (self._policies_dir / f"{cert_id}.pdf").exists() or ( fips_dgst(cert_id) in self.certs and not self.certs[fips_dgst(cert_id)].state.txt_state ): sp_urls.append( f"https://csrc.nist.gov/CSRC/media/projects/cryptographic-module-validation-program/documents/security-policies/140sp{cert_id}.pdf" ) - sp_paths.append(self.policies_dir / f"{cert_id}.pdf") + sp_paths.append(self._policies_dir / f"{cert_id}.pdf") logger.info(f"downloading {len(sp_urls)} module pdf files") cert_processing.process_parallel( FIPSCertificate.download_security_policy, @@ -124,7 +119,7 @@ class FIPSDataset(Dataset[FIPSCertificate], ComplexSerializableType): ) self.new_files += len(sp_urls) - def download_all_htmls(self, cert_ids: Set[str]) -> List[str]: + def _download_all_htmls(self, cert_ids: Set[str]) -> List[str]: html_paths, html_urls = [], [] new_files = [] self.web_dir.mkdir(exist_ok=True) @@ -158,17 +153,20 @@ class FIPSDataset(Dataset[FIPSCertificate], ComplexSerializableType): @serialize def convert_all_pdfs(self) -> None: + """ + Converts all pdfs to text files + """ logger.info("Converting FIPS sample reports to .txt") tuples = [ - (cert, self.policies_dir / f"{cert.cert_id}.pdf", self.policies_dir / f"{cert.cert_id}.pdf.txt") + (cert, self._policies_dir / f"{cert.cert_id}.pdf", self._policies_dir / f"{cert.cert_id}.pdf.txt") for cert in self.certs.values() - if not cert.state.txt_state and (self.policies_dir / f"{cert.cert_id}.pdf").exists() + if not cert.state.txt_state and (self._policies_dir / f"{cert.cert_id}.pdf").exists() ] cert_processing.process_parallel( FIPSCertificate.convert_pdf_file, tuples, config.n_threads, progress_bar_desc="Converting to txt" ) - def prepare_dataset(self, test: Optional[Path] = None, update: bool = False) -> Set[str]: + def _prepare_dataset(self, test: Optional[Path] = None, update: bool = False) -> Set[str]: if test: html_files = [test] else: @@ -197,8 +195,8 @@ class FIPSDataset(Dataset[FIPSCertificate], ComplexSerializableType): return cert_ids - def download_neccessary_files(self, cert_ids: Set[str]) -> None: - self.download_all_htmls(cert_ids) + def _download_neccessary_files(self, cert_ids: Set[str]) -> None: + self._download_all_htmls(cert_ids) self.download_all_pdfs(cert_ids) def _get_certificates_from_html(self, html_file: Path, update: bool = False) -> Set[str]: @@ -220,15 +218,21 @@ class FIPSDataset(Dataset[FIPSCertificate], ComplexSerializableType): @serialize def web_scan(self, cert_ids: Set[int], redo: bool = False) -> None: + """ + Creates FIPSCertificate object from the relevant html file that must be downlaoded. + + :param Set[int] cert_ids: Cert ids to create FIPSCertificate objects for. + :param bool redo: whether to re-attempt with failed certificates, defaults to False + """ logger.info("Entering web scan.") for cert_id in cert_ids: dgst = fips_dgst(cert_id) self.certs[dgst] = FIPSCertificate.html_from_file( self.web_dir / f"{cert_id}.html", FIPSCertificate.State( - (self.policies_dir / str(cert_id)).with_suffix(".pdf"), + (self._policies_dir / str(cert_id)).with_suffix(".pdf"), (self.web_dir / str(cert_id)).with_suffix(".html"), - (self.fragments_dir / str(cert_id)).with_suffix(".txt"), + (self._fragments_dir / str(cert_id)).with_suffix(".txt"), False, None, False, @@ -239,6 +243,9 @@ class FIPSDataset(Dataset[FIPSCertificate], ComplexSerializableType): @classmethod def from_web_latest(cls) -> "FIPSDataset": + """ + Fetches the fresh snapshot of FIPSDataset from mirror. + """ with tempfile.TemporaryDirectory() as tmp_dir: dset_path = Path(tmp_dir) / "fips_latest_dataset.json" logger.info("Downloading the latest FIPS dataset.") @@ -259,10 +266,10 @@ class FIPSDataset(Dataset[FIPSCertificate], ComplexSerializableType): # dset.finalize_results() return dset - def set_local_paths(self) -> None: + def _set_local_paths(self) -> None: cert: FIPSCertificate for cert in self.certs.values(): - cert.set_local_paths(self.policies_dir, self.web_dir, self.fragments_dir) + cert.set_local_paths(self._policies_dir, self.web_dir, self._fragments_dir) @serialize def get_certs_from_web( @@ -285,11 +292,11 @@ class FIPSDataset(Dataset[FIPSCertificate], ComplexSerializableType): logger.info("Downloading required html files") self.web_dir.mkdir(parents=True, exist_ok=True) - self.policies_dir.mkdir(exist_ok=True) - self.algs_dir.mkdir(exist_ok=True) + self._policies_dir.mkdir(exist_ok=True) + self._algs_dir.mkdir(exist_ok=True) # Download files containing all available module certs (always) - cert_ids = self.prepare_dataset(test, update) + cert_ids = self._prepare_dataset(test, update) if not no_download_algorithms: aset = FIPSAlgorithmDataset({}, Path(self.root_dir / "web" / "algorithms"), "algorithms", "sample algs") @@ -299,22 +306,10 @@ class FIPSDataset(Dataset[FIPSCertificate], ComplexSerializableType): self.algorithms = aset logger.info("Downloading certificate html and security policies") - self.download_neccessary_files(cert_ids) + self._download_neccessary_files(cert_ids) self.web_scan(cert_ids, redo=redo_web_scan) - @serialize - def deprocess(self) -> None: - # TODO think of a better way to make resulting json smaller and easier to share - logger.info( - "Removing 'heuristics' field. This dataset can be used to be uploaded and later downloaded using latest_snapshot() or something" - ) - cert: FIPSCertificate - for cert in self.certs.values(): - cert.heuristics = FIPSCertificate.FIPSHeuristics(dict(), [], 0) - - self.match_algs() - @serialize def extract_certs_from_tables(self, high_precision: bool) -> List[Path]: """ @@ -342,11 +337,11 @@ class FIPSDataset(Dataset[FIPSCertificate], ComplexSerializableType): certificate.pdf_scan.algorithms += algorithms return not_decoded - def remove_algorithms_from_extracted_data(self) -> None: + def _remove_algorithms_from_extracted_data(self) -> None: for cert in self.certs.values(): cert.remove_algorithms() - def unify_algorithms(self) -> None: + def _unify_algorithms(self) -> None: for certificate in self.certs.values(): new_algorithms: List[Dict] = [] united_algorithms = [ @@ -440,7 +435,7 @@ class FIPSDataset(Dataset[FIPSCertificate], ComplexSerializableType): return False return True - def validate_results(self) -> None: + def _validate_results(self) -> None: """ Function that validates results and finds the final connection output """ @@ -482,10 +477,16 @@ class FIPSDataset(Dataset[FIPSCertificate], ComplexSerializableType): @serialize def finalize_results(self, use_nist_cpe_matching_dict: bool = True, perform_cpe_heuristics: bool = True): + """ + Performs processing of extracted data. Computes all heuristics. + + :param bool use_nist_cpe_matching_dict: If NIST CPE matching dictionary shall be used to drive computing related CVEs, defaults to True + :param bool perform_cpe_heuristics: If CPE heuristics shall be computed, defaults to True + """ logger.info("Entering 'analysis' and building connections between certificates.") - self.unify_algorithms() - self.remove_algorithms_from_extracted_data() - self.validate_results() + self._unify_algorithms() + self._remove_algorithms_from_extracted_data() + self._validate_results() if perform_cpe_heuristics: _, _, cve_dset = self.compute_cpe_heuristics() self.compute_related_cves(use_nist_cpe_matching_dict=use_nist_cpe_matching_dict, cve_dset=cve_dset) @@ -521,7 +522,7 @@ class FIPSDataset(Dataset[FIPSCertificate], ComplexSerializableType): attr = {"pdf": "pdf_scan", "web": "web_scan", "heuristics": "heuristics"}[connection_list] return getattr(self.certs[dgst], attr).connections - def create_dot_graph( + def _create_dot_graph( self, output_file_name: str, connection_list: str = "heuristics", @@ -586,6 +587,11 @@ class FIPSDataset(Dataset[FIPSCertificate], ComplexSerializableType): single_dot.render(self.root_dir / (str(output_file_name) + "_single"), view=show) def to_dict(self) -> Dict[str, Any]: + """ + Serializes dataset into a dictionary + + :return Dict[str, Any]: Dictionary that holds the whole dataset. + """ return { "timestamp": self.timestamp, "sha256_digest": self.sha256_digest, @@ -598,6 +604,12 @@ class FIPSDataset(Dataset[FIPSCertificate], ComplexSerializableType): @classmethod def from_dict(cls, dct: Dict[str, Any]) -> "FIPSDataset": + """ + Reconstructs the original dataset from a dictionary + + :param Dict[str, Any] dct: Dictionary that holds the serialized dataset + :return FIPSDataset: Deserialized FIPSDataset that corresponds to `dct` contents + """ certs = dct["certs"] dset = cls(certs, Path("./"), dct["name"], dct["description"]) dset.algorithms = dct["algs"] @@ -607,16 +619,12 @@ class FIPSDataset(Dataset[FIPSCertificate], ComplexSerializableType): ) return dset - def group_vendors(self) -> Dict[str, List[str]]: - vendors: Dict[str, List[str]] = {} - v = {x.web_scan.vendor.lower() for x in self.certs.values() if x is not None and x.web_scan.vendor is not None} - v_sorted = sorted(v, key=FIPSCertificate.get_compare) - for prefix, a in groupby(v_sorted, key=FIPSCertificate.get_compare): - vendors[prefix] = list(a) - - return vendors - def plot_graphs(self, show: bool = False) -> None: - self.create_dot_graph("full_graph", show=show) - self.create_dot_graph("web_only_graph", "web", show=show) - self.create_dot_graph("pdf_only_graph", "pdf", show=show) + """ + Plots FIPS graphs. + # TODO: Currently broken, see https://github.com/crocs-muni/sec-certs/issues/211 + :param bool show: If plots should be showed with .show() method, defaults to False + """ + self._create_dot_graph("full_graph", show=show) + self._create_dot_graph("web_only_graph", "web", show=show) + self._create_dot_graph("pdf_only_graph", "pdf", show=show) -- cgit v1.3.1 From 038378c7f6e0c1798bbb698cc77204644eba9a78 Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Mon, 23 May 2022 14:19:03 +0200 Subject: add docs for CCDataset --- sec_certs/dataset/common_criteria.py | 146 +++++++++++++++++++++++++++++------ sec_certs/dataset/dataset.py | 4 +- sec_certs/dataset/fips.py | 3 +- sec_certs/serialization/json.py | 2 + tests/test_cc_oop.py | 2 +- 5 files changed, 130 insertions(+), 27 deletions(-) diff --git a/sec_certs/dataset/common_criteria.py b/sec_certs/dataset/common_criteria.py index 76bd9f94..37a5d6cc 100644 --- a/sec_certs/dataset/common_criteria.py +++ b/sec_certs/dataset/common_criteria.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import copy import itertools import json @@ -28,6 +30,11 @@ from sec_certs.serialization.json import ComplexSerializableType, CustomJSONDeco class CCDataset(Dataset[CommonCriteriaCert], ComplexSerializableType): + """ + Class that holds CommonCriteriaCert. Serializable into json, pandas, dictionary. Conveys basic certificate manipulations + and dataset transformations. Many private methods that perform internal operations, feel free to exploit them. + """ + @dataclass class DatasetInternalState(ComplexSerializableType): meta_sources_parsed: bool = False @@ -56,9 +63,15 @@ class CCDataset(Dataset[CommonCriteriaCert], ComplexSerializableType): return copy.deepcopy(self) def to_dict(self) -> Dict[str, Any]: + """ + Returns self serialized into dictionary + """ return {**{"state": self.state}, **super().to_dict()} def to_pandas(self) -> pd.DataFrame: + """ + Return self serialized into pandas DataFrame + """ df = pd.DataFrame([x.pandas_tuple for x in self.certs.values()], columns=CommonCriteriaCert.pandas_columns) df = df.set_index("dgst") @@ -79,7 +92,10 @@ class CCDataset(Dataset[CommonCriteriaCert], ComplexSerializableType): return df @classmethod - def from_dict(cls: Type["CCDataset"], dct: Dict[str, Any]) -> "CCDataset": + def from_dict(cls: Type[CCDataset], dct: Dict[str, Any]) -> "CCDataset": + """ + Reconstructs the CCDataset object from a dictionary + """ dset = super().from_dict(dct) dset.state = copy.deepcopy(dct["state"]) return dset @@ -93,10 +109,10 @@ class CCDataset(Dataset[CommonCriteriaCert], ComplexSerializableType): if self.state and old_dset.root_dir != Path(".."): logger.info(f"Changing root dir of partially processed dataset. All contents will get copied to {new_dir}") - self.copy_dataset_contents(old_dset) + self._copy_dataset_contents(old_dset) self.to_json() - def copy_dataset_contents(self, old_dset: "CCDataset") -> None: + def _copy_dataset_contents(self, old_dset: "CCDataset") -> None: if old_dset.state.meta_sources_parsed: try: shutil.copytree(old_dset.web_dir, self.web_dir) @@ -115,42 +131,72 @@ class CCDataset(Dataset[CommonCriteriaCert], ComplexSerializableType): @property def certs_dir(self) -> Path: + """ + Returns directory that holds files associated with certificates + """ return self.root_dir / "certs" @property def reports_dir(self) -> Path: + """ + Returns directory that holds files associated with certification reports + """ return self.certs_dir / "reports" @property def reports_pdf_dir(self) -> Path: + """ + Returns directory that holds PDFs associated with certification reports + """ return self.reports_dir / "pdf" @property def reports_txt_dir(self) -> Path: + """ + Returns directory that holds TXTs associated with certification reports + """ return self.reports_dir / "txt" @property def targets_dir(self) -> Path: + """ + Returns directory that holds files associated with security targets + """ return self.certs_dir / "targets" @property def targets_pdf_dir(self) -> Path: + """ + Returns directory that holds PDFs associated with security targets + """ return self.targets_dir / "pdf" @property def targets_txt_dir(self) -> Path: + """ + Returns directory that holds TXTs associated with security targets + """ return self.targets_dir / "txt" @property def pp_dataset_path(self) -> Path: + """ + Returns directory that holds files associated with Protection profiles + """ return self.auxillary_datasets_dir / "pp_dataset.json" @property def mu_dataset_path(self) -> Path: + """ + Returns directory that holds dataset of maintenance updates + """ return self.certs_dir / "maintenances" @property def mu_dataset(self) -> "CCDatasetMaintenanceUpdates": + """ + Returns object of dataset of maintenance updates if it exists, raises otherwise + """ if not self.mu_dataset_path.exists(): raise ValueError("The dataset with maintenance updates does not exist") @@ -176,22 +222,42 @@ class CCDataset(Dataset[CommonCriteriaCert], ComplexSerializableType): @property def active_html_tuples(self) -> List[Tuple[str, Path]]: + """ + Returns List Tuple[str, Path] where first element is name of html file and second element is its Path. + The files correspond to html files parsed from CC website that list all *active* certificates. + """ return [(x, self.web_dir / y) for y, x in self.HTML_PRODUCTS_URL.items() if "active" in y] @property def archived_html_tuples(self) -> List[Tuple[str, Path]]: + """ + Returns List Tuple[str, Path] where first element is name of html file and second element is its Path. + The files correspond to html files parsed from CC website that list all *archived* certificates. + """ return [(x, self.web_dir / y) for y, x in self.HTML_PRODUCTS_URL.items() if "archived" in y] @property def active_csv_tuples(self) -> List[Tuple[str, Path]]: + """ + Returns List Tuple[str, Path] where first element is name of csv file and second element is its Path. + The files correspond to csv files downloaded from CC website that list all *active* certificates. + """ return [(x, self.web_dir / y) for y, x in self.CSV_PRODUCTS_URL.items() if "active" in y] @property def archived_csv_tuples(self) -> List[Tuple[str, Path]]: + """ + Returns List Tuple[str, Path] where first element is name of csv file and second element is its Path. + The files correspond to csv files downloaded from CC website that list all *archived* certificates. + """ return [(x, self.web_dir / y) for y, x in self.CSV_PRODUCTS_URL.items() if "archived" in y] @classmethod def from_web_latest(cls) -> "CCDataset": + """ + Fetches the fresh snapshot of CCDataset from seccerts.org + :return CCDataset: returns the CCDataset object downloaded from seccerts.org + """ with tempfile.TemporaryDirectory() as tmp_dir: dset_path = Path(tmp_dir) / "cc_latest_dataset.json" helpers.download_file( @@ -200,7 +266,7 @@ class CCDataset(Dataset[CommonCriteriaCert], ComplexSerializableType): return cls.from_json(dset_path) @property - def all_cert_ids(self): + def _all_cert_ids(self): all_cert_ids = set() for cert_obj in self: @@ -237,7 +303,7 @@ class CCDataset(Dataset[CommonCriteriaCert], ComplexSerializableType): logger.info(f"Added {len(new_certs)} new and merged further {len(certs_to_merge)} certificates to the dataset.") - def download_csv_html_resources(self, get_active: bool = True, get_archived: bool = True) -> None: + def _download_csv_html_resources(self, get_active: bool = True, get_archived: bool = True) -> None: self.web_dir.mkdir(parents=True, exist_ok=True) html_items = [] @@ -258,6 +324,14 @@ class CCDataset(Dataset[CommonCriteriaCert], ComplexSerializableType): @serialize def process_protection_profiles(self, to_download: bool = True, keep_metadata: bool = True) -> None: + """ + Downloads new snapshot of dataset with processed protection profiles (if it doesn't exist) and links PPs + with certificates within self. Assigns PPs to all certificates + + :param bool to_download: If dataset should be downloaded or fetched from json, defaults to True + :param bool keep_metadata: If json related to the PP dataset should be kept on drive, defaults to True + :raises RuntimeError: When building of PPDataset fails + """ logger.info("Processing protection profiles.") constructor: Dict[bool, Callable[..., ProtectionProfileDataset]] = { True: ProtectionProfileDataset.from_web, @@ -280,10 +354,16 @@ class CCDataset(Dataset[CommonCriteriaCert], ComplexSerializableType): self, to_download: bool = True, keep_metadata: bool = True, get_active: bool = True, get_archived: bool = True ) -> None: """ - Parses all metadata about certificates + Downloads CSV and HTML files that hold lists of certificates from common criteria website. Parses these files + and constructs CommonCriteriaCert objects, fills the dataset with those. + + :param bool to_download: If CSV and HTML files shall be downloaded (or existing files utilized), defaults to True + :param bool keep_metadata: If CSV and HTML files shall be kept on disk after download, defaults to True + :param bool get_active: If active certificates shall be parsed, defaults to True + :param bool get_archived: If archived certificates shall be parsed, defaults to True """ if to_download is True: - self.download_csv_html_resources(get_active, get_archived) + self._download_csv_html_resources(get_active, get_archived) logger.info("Adding CSV certificates to CommonCriteria dataset.") csv_certs = self._get_all_certs_from_csv(get_active, get_archived) @@ -546,6 +626,11 @@ class CCDataset(Dataset[CommonCriteriaCert], ComplexSerializableType): @serialize def download_all_pdfs(self, fresh: bool = True) -> None: + """ + Downloads all pdf files associated with certificates of the datset. + + :param bool fresh: whether all (true) or only failed (false) pdfs shall be downloaded, defaults to True + """ if self.state.meta_sources_parsed is False: logger.error("Attempting to download pdfs while not having csv/html meta-sources parsed. Returning.") return @@ -587,6 +672,11 @@ class CCDataset(Dataset[CommonCriteriaCert], ComplexSerializableType): @serialize def convert_all_pdfs(self, fresh: bool = True) -> None: + """ + Converts all pdfs associated to certificates of the dataset into txt files. + + :param bool fresh: whether all (true) or only failed (false) pdfs shall be converted, defaults to True + """ if self.state.pdfs_downloaded is False: logger.info("Attempting to convert pdf while not having them downloaded. Returning.") return @@ -607,6 +697,11 @@ class CCDataset(Dataset[CommonCriteriaCert], ComplexSerializableType): self.state.pdfs_converted = True def update_with_certs(self, certs: List[CommonCriteriaCert]) -> None: + """ + Enriches the dataset with `certs` + + :param List[CommonCriteriaCert] certs: new certs to include into the dataset. + """ if any([x not in self for x in certs]): logger.warning("Updating dataset with certificates outside of the dataset!") self.certs.update({x.dgst: x for x in certs}) @@ -633,7 +728,7 @@ class CCDataset(Dataset[CommonCriteriaCert], ComplexSerializableType): ) self.update_with_certs(processed_certs) - def extract_pdf_metadata(self, fresh: bool = True) -> None: + def _extract_pdf_metadata(self, fresh: bool = True) -> None: logger.info("Extracting pdf metadata from CC dataset") self._extract_report_metadata(fresh) self._extract_targets_metadata(fresh) @@ -660,7 +755,7 @@ class CCDataset(Dataset[CommonCriteriaCert], ComplexSerializableType): ) self.update_with_certs(processed_certs) - def extract_pdf_frontpage(self, fresh: bool = True) -> None: + def _extract_pdf_frontpage(self, fresh: bool = True) -> None: logger.info("Extracting pdf frontpages from CC dataset.") self._extract_report_frontpage(fresh) self._extract_targets_frontpage(fresh) @@ -687,16 +782,16 @@ class CCDataset(Dataset[CommonCriteriaCert], ComplexSerializableType): ) self.update_with_certs(processed_certs) - def extract_pdf_keywords(self, fresh: bool = True) -> None: + def _extract_pdf_keywords(self, fresh: bool = True) -> None: logger.info("Extracting pdf keywords from CC dataset.") self._extract_report_keywords(fresh) self._extract_targets_keywords(fresh) def _extract_data(self, fresh: bool = True) -> None: logger.info("Extracting various stuff from converted txt filed from CC dataset.") - self.extract_pdf_metadata(fresh) - self.extract_pdf_frontpage(fresh) - self.extract_pdf_keywords(fresh) + self._extract_pdf_metadata(fresh) + self._extract_pdf_frontpage(fresh) + self._extract_pdf_keywords(fresh) if fresh is True: logger.info("Attempting to re-extract failed data from report txts") @@ -718,7 +813,7 @@ class CCDataset(Dataset[CommonCriteriaCert], ComplexSerializableType): def _compute_normalized_cert_ids(self): logger.info("Deriving information about sample ids from pdf scan.") for cert in self: - cert.compute_heuristics_cert_id(self.all_cert_ids) + cert.compute_heuristics_cert_id(self._all_cert_ids) def _compute_dependency_vulnerabilities(self): cve_dependency_finder = DependencyVulnerabilityFinder() @@ -767,6 +862,11 @@ class CCDataset(Dataset[CommonCriteriaCert], ComplexSerializableType): @serialize def analyze_certificates(self, fresh: bool = True) -> None: + """ + Searches for all RE in the txt files of the dataset. These are further processed during heuristics computation. + + :param bool fresh: Whether to run this phase on all certificates (true) or only on those that failed (false), defaults to True + """ if self.state.pdfs_converted is False: logger.info( "Attempting run analysis of txt files while not having the pdf->txt conversion done. Returning." @@ -778,10 +878,16 @@ class CCDataset(Dataset[CommonCriteriaCert], ComplexSerializableType): self.state.certs_analyzed = True - def get_certs_from_name(self, cert_name: str) -> List[CommonCriteriaCert]: + def _get_certs_from_name(self, cert_name: str) -> List[CommonCriteriaCert]: return [crt for crt in self if crt.name == cert_name] - def process_maintenance_updates(self) -> "CCDatasetMaintenanceUpdates": + def process_maintenance_updates(self) -> CCDatasetMaintenanceUpdates: + """ + Creates and fully processes (download, convert, analyze) a dataset of maintenance updates that are related + to certificates of self. + + :return CCDatasetMaintenanceUpdates: the resulting dataset of maintenance updates + """ maintained_certs: List[CommonCriteriaCert] = [x for x in self if x.maintenance_updates] updates = list( itertools.chain.from_iterable( @@ -797,16 +903,10 @@ class CCDataset(Dataset[CommonCriteriaCert], ComplexSerializableType): return update_dset - def generate_cert_name_keywords(self) -> Set[str]: - df = self.to_pandas() - certificate_names = set(df["name"]) - keywords = set(itertools.chain.from_iterable([x.lower().split(" ") for x in certificate_names])) - keywords.add("1.02.013") - return {x for x in keywords if len(x) > config.minimal_token_length} - class CCDatasetMaintenanceUpdates(CCDataset, ComplexSerializableType): """ + Dataset of maintenance updates related to certificates of CCDataset dataset. Should be used merely for actions related to Maintenance updates: download pdfs, convert pdfs, extract data from pdfs """ diff --git a/sec_certs/dataset/dataset.py b/sec_certs/dataset/dataset.py index 34dc9003..191c6759 100644 --- a/sec_certs/dataset/dataset.py +++ b/sec_certs/dataset/dataset.py @@ -289,12 +289,12 @@ class Dataset(Generic[CertSubType], ABC): else: cert_name = annotation["text"] - certs = self.get_certs_from_name(cert_name) + certs = self._get_certs_from_name(cert_name) for c in certs: c.heuristics.verified_cpe_matches = {x.uri for x in cpes if x is not None} if cpes else None - def get_certs_from_name(self, name: str) -> List[CertSubType]: + def _get_certs_from_name(self, name: str) -> List[CertSubType]: raise NotImplementedError("Not meant to be implemented by the base class.") def enrich_automated_cpes_with_manual_labels(self) -> None: diff --git a/sec_certs/dataset/fips.py b/sec_certs/dataset/fips.py index 44c6ebdf..7a11a9cb 100644 --- a/sec_certs/dataset/fips.py +++ b/sec_certs/dataset/fips.py @@ -48,7 +48,7 @@ class FIPSDataset(Dataset[FIPSCertificate], ComplexSerializableType): def _algs_dir(self) -> Path: return self.web_dir / "algorithms" - def get_certs_from_name(self, module_name: str) -> List[FIPSCertificate]: + def _get_certs_from_name(self, module_name: str) -> List[FIPSCertificate]: """ Returns list of certificates that match given name. @@ -60,6 +60,7 @@ class FIPSDataset(Dataset[FIPSCertificate], ComplexSerializableType): @serialize def pdf_scan(self, redo: bool = False) -> None: """ + pdf_scan() Extracts data from pdf files :param bool redo: Whether to try again with failed files, defaults to False diff --git a/sec_certs/serialization/json.py b/sec_certs/serialization/json.py index 4799e259..1664f799 100644 --- a/sec_certs/serialization/json.py +++ b/sec_certs/serialization/json.py @@ -1,6 +1,7 @@ import copy import json from datetime import date +from functools import wraps from pathlib import Path from typing import Any, Callable, Dict, List, Optional, Type, TypeVar, Union @@ -55,6 +56,7 @@ class ComplexSerializableType: # Decorator for serialization def serialize(func: Callable): + @wraps(func) def inner_func(*args, **kwargs): if not args or not issubclass(type(args[0]), ComplexSerializableType): raise ValueError( diff --git a/tests/test_cc_oop.py b/tests/test_cc_oop.py index 213d41bd..479d3b05 100644 --- a/tests/test_cc_oop.py +++ b/tests/test_cc_oop.py @@ -222,7 +222,7 @@ class TestCommonCriteriaOOP(TestCase): with TemporaryDirectory() as tmp_dir: dataset_path = Path(tmp_dir) dset = CCDataset({}, dataset_path, "sample_dataset", "sample dataset description") - dset.download_csv_html_resources(get_active=True, get_archived=False) + dset._download_csv_html_resources(get_active=True, get_archived=False) for x in dset.active_html_tuples: self.assertTrue(x[1].exists()) -- cgit v1.3.1 From f951d8b2d4aa31b9758fe145a5553a56b486f64b Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Mon, 23 May 2022 14:23:38 +0200 Subject: fix typo in quickstart docs --- docs/quickstart.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/quickstart.md b/docs/quickstart.md index 721e1341..e16a570d 100644 --- a/docs/quickstart.md +++ b/docs/quickstart.md @@ -6,7 +6,7 @@ 1. Install the latest version with `pip install -U sec-certs` (see [installation](installation.md)). 2. Use ```python -from sec-certs.dataset import CCDataset +from sec_certs.dataset import CCDataset dset = CCDataset.from_web_latest() ``` @@ -19,7 +19,7 @@ to obtain to obtain freshly processed dataset from [seccerts.org](https://seccer 1. Install the latest version with `pip install -U sec-certs` (see [installation](installation.md)). 2. Use ```python -from sec-certs.dataset import FIPSDataset +from sec_certs.dataset import FIPSDataset dset = FIPSDataset.from_web_latest() ``` -- cgit v1.3.1 From ef07fafe877366061d99a5e86b69f0c8197b29f3 Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Mon, 23 May 2022 18:28:53 +0200 Subject: add docs CommonCriteriaCert --- sec_certs/dataset/common_criteria.py | 4 +- sec_certs/sample/common_criteria.py | 186 +++++++++++++++++++++++++++++++---- 2 files changed, 167 insertions(+), 23 deletions(-) diff --git a/sec_certs/dataset/common_criteria.py b/sec_certs/dataset/common_criteria.py index 37a5d6cc..8ea091db 100644 --- a/sec_certs/dataset/common_criteria.py +++ b/sec_certs/dataset/common_criteria.py @@ -618,7 +618,7 @@ class CCDataset(Dataset[CommonCriteriaCert], ComplexSerializableType): self.targets_pdf_dir.mkdir(parents=True, exist_ok=True) certs_to_process = [x for x in self if x.state.report_is_ok_to_download(fresh)] cert_processing.process_parallel( - CommonCriteriaCert.download_pdf_target, + CommonCriteriaCert.download_pdf_st, certs_to_process, config.n_threads, progress_bar_desc="Downloading targets", @@ -664,7 +664,7 @@ class CCDataset(Dataset[CommonCriteriaCert], ComplexSerializableType): self.targets_txt_dir.mkdir(parents=True, exist_ok=True) certs_to_process = [x for x in self if x.state.st_is_ok_to_convert(fresh)] cert_processing.process_parallel( - CommonCriteriaCert.convert_target_pdf, + CommonCriteriaCert.convert_st_pdf, certs_to_process, config.n_threads, progress_bar_desc="Converting targets to txt", diff --git a/sec_certs/sample/common_criteria.py b/sec_certs/sample/common_criteria.py index 47ea3190..a9721672 100644 --- a/sec_certs/sample/common_criteria.py +++ b/sec_certs/sample/common_criteria.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import copy import operator import re @@ -39,6 +41,13 @@ class CommonCriteriaCert( PandasSerializableType, ComplexSerializableType, ): + """ + Data structure for common criteria certificate. Contains several inner classes that layer the data logic. + Can be serialized into/from json (`ComplexSerializableType`) or pandas (`PandasSerializableType)`. + Is basic element of `CCDataset`. The functionality is mostly related to holding data and transformations that + the certificate can handle itself. `CCDataset` class then instrument this functionality. + """ + cc_url = "http://www.commoncriteriaportal.org" empty_st_url = "http://www.commoncriteriaportal.org/files/epfiles/" @@ -60,7 +69,7 @@ class CommonCriteriaCert( super().__setattr__("maintenance_date", helpers.sanitize_date(self.maintenance_date)) @classmethod - def from_dict(cls, dct: Dict) -> "CommonCriteriaCert.MaintenanceReport": + def from_dict(cls, dct: Dict) -> CommonCriteriaCert.MaintenanceReport: new_dct = dct.copy() new_dct["maintenance_date"] = ( date.fromisoformat(dct["maintenance_date"]) @@ -74,6 +83,11 @@ class CommonCriteriaCert( @dataclass(init=False) class InternalState(ComplexSerializableType): + """ + Holds internal state of the dataset, whether downloads and converts of individual components succeeded. Also + holds information about errors and paths to the files. + """ + st_download_ok: bool report_download_ok: bool st_convert_ok: bool @@ -143,6 +157,10 @@ class CommonCriteriaCert( @dataclass class PdfData(ComplexSerializableType): + """ + Class that holds data extracted from pdf files. + """ + report_metadata: Optional[Dict[str, Any]] = field(default=None) st_metadata: Optional[Dict[str, Any]] = field(default=None) report_frontpage: Optional[Dict[str, Dict[str, Any]]] = field(default=None) @@ -155,26 +173,44 @@ class CommonCriteriaCert( @property def bsi_data(self) -> Optional[Dict[str, Any]]: + """ + Returns frontpage data related to BSI-provided information + """ return self.report_frontpage.get("bsi", None) if self.report_frontpage else None @property def niap_data(self) -> Optional[Dict[str, Any]]: + """ + Returns frontpage data related to niap-provided information + """ return self.report_frontpage.get("niap", None) if self.report_frontpage else None @property def nscib_data(self) -> Optional[Dict[str, Any]]: + """ + Returns frontpage data related to nscib-provided information + """ return self.report_frontpage.get("nscib", None) if self.report_frontpage else None @property def canada_data(self) -> Optional[Dict[str, Any]]: + """ + Returns frontpage data related to canada-provided information + """ return self.report_frontpage.get("canada", None) if self.report_frontpage else None @property def anssi_data(self) -> Optional[Dict[str, Any]]: + """ + Returns frontpage data related to ANSSI-provided information + """ return self.report_frontpage.get("anssi", None) if self.report_frontpage else None @property def cert_lab(self) -> Optional[List[str]]: + """ + Returns labs for which certificate data was parsed. + """ labs = [ data["cert_lab"].split(" ")[0].upper() for data in [self.bsi_data, self.anssi_data, self.niap_data, self.nscib_data, self.canada_data] @@ -204,6 +240,9 @@ class CommonCriteriaCert( @property def processed_cert_id(self) -> Optional[str]: + """ + Returns processed cert id extracted from the pdf data. + """ cert_ids = set( filter( lambda x: x, @@ -225,7 +264,8 @@ class CommonCriteriaCert( @property def keywords_cert_id(self) -> Optional[str]: """ - :return: the most occurring among cert ids captured in keywords scan + Returns the most frequently appearing cert id. If you don't know why to use this, you should probably use + `cert_id` property. """ if not self.keywords_rules_cert_id: return None @@ -236,10 +276,17 @@ class CommonCriteriaCert( @property def cert_id(self) -> Optional[str]: - return processed if (processed := self.processed_cert_id) else self.keywords_cert_id + """ + Returns `processed_cert_id` if it exists, else return `keyword_cert_id` + """ + return self.processed_cert_id if self.processed_cert_id else self.keywords_cert_id @dataclass class CCHeuristics(Heuristics, ComplexSerializableType): + """ + Class for various heuristics related to CommonCriteriaCert + """ + extracted_versions: Optional[Set[str]] = field(default=None) cpe_matches: Optional[Set[str]] = field(default=None) verified_cpe_matches: Optional[Set[str]] = field(default=None) @@ -324,7 +371,7 @@ class CommonCriteriaCert( self.maintenance_updates = maintenance_updates self.state = self.InternalState() if not state else state self.pdf_data = self.PdfData() if not pdf_data else pdf_data - self.heuristics: "CommonCriteriaCert.CCHeuristics" = self.CCHeuristics() if not heuristics else heuristics + self.heuristics: CommonCriteriaCert.CCHeuristics = self.CCHeuristics() if not heuristics else heuristics @property def dgst(self) -> str: @@ -337,6 +384,9 @@ class CommonCriteriaCert( @property def eal(self) -> Optional[str]: + """ + Returns EAL of certificate if it was extracted, None otherwise. + """ res = [x for x in self.security_level if re.match(security_level_csv_scan, x)] if not res: return None @@ -368,6 +418,9 @@ class CommonCriteriaCert( @property def pandas_tuple(self) -> Tuple: + """ + Returns tuple of attributes meant for pandas serialization + """ return ( self.dgst, self.heuristics.cert_id, @@ -398,7 +451,7 @@ class CommonCriteriaCert( printed_manufacturer = self.manufacturer if self.manufacturer else "Unknown manufacturer" return str(printed_manufacturer) + " " + str(self.name) + " dgst: " + self.dgst - def merge(self, other: "CommonCriteriaCert", other_source: Optional[str] = None) -> None: + def merge(self, other: CommonCriteriaCert, other_source: Optional[str] = None) -> None: """ Merges with other CC sample. Assuming they come from different sources, e.g., csv and html. Assuming that html source has better protection profiles, they overwrite CSV info @@ -425,7 +478,10 @@ class CommonCriteriaCert( ) @classmethod - def from_dict(cls, dct: Dict) -> "CommonCriteriaCert": + def from_dict(cls, dct: Dict) -> CommonCriteriaCert: + """ + Deserializes dictionary into `CommonCriteriaCert` + """ new_dct = dct.copy() new_dct["maintenance_updates"] = set(dct["maintenance_updates"]) new_dct["protection_profiles"] = set(dct["protection_profiles"]) @@ -508,7 +564,7 @@ class CommonCriteriaCert( return None @staticmethod - def _html_row_get_maintenance_updates(main_div: Tag) -> Set["CommonCriteriaCert.MaintenanceReport"]: + def _html_row_get_maintenance_updates(main_div: Tag) -> Set[CommonCriteriaCert.MaintenanceReport]: possible_updates = list(main_div.find_all("li")) maintenance_updates = set() for u in possible_updates: @@ -531,9 +587,9 @@ class CommonCriteriaCert( return maintenance_updates @classmethod - def from_html_row(cls, row: Tag, status: str, category: str) -> "CommonCriteriaCert": + def from_html_row(cls, row: Tag, status: str, category: str) -> CommonCriteriaCert: """ - Creates a CC sample from html row + Creates a CC sample from html row of commoncriteria.org webpage. """ cells = list(row.find_all("td")) @@ -582,6 +638,14 @@ class CommonCriteriaCert( report_txt_dir: Optional[Union[str, Path]], st_txt_dir: Optional[Union[str, Path]], ) -> None: + """ + Sets paths to files given the requested directories + + :param Optional[Union[str, Path]] report_pdf_dir: Directory where pdf reports shall be stored + :param Optional[Union[str, Path]] st_pdf_dir: Directory where pdf security targets shall be stored + :param Optional[Union[str, Path]] report_txt_dir: Directory where txt reports shall be stored + :param Optional[Union[str, Path]] st_txt_dir: Directory where txt security targets shall be stored + """ if report_pdf_dir is not None: self.state.report_pdf_path = Path(report_pdf_dir) / (self.dgst + ".pdf") if st_pdf_dir is not None: @@ -592,7 +656,13 @@ class CommonCriteriaCert( self.state.st_txt_path = Path(st_txt_dir) / (self.dgst + ".txt") @staticmethod - def download_pdf_report(cert: "CommonCriteriaCert") -> "CommonCriteriaCert": + def download_pdf_report(cert: CommonCriteriaCert) -> CommonCriteriaCert: + """ + Downloads pdf of certification report given the certificate. Staticmethod to allow for parallelization. + + :param CommonCriteriaCert cert: cert to download the pdf report for + :return CommonCriteriaCert: returns the modified certificate with updated state + """ exit_code: Union[str, int] if not cert.report_link: exit_code = "No link" @@ -606,7 +676,13 @@ class CommonCriteriaCert( return cert @staticmethod - def download_pdf_target(cert: "CommonCriteriaCert") -> "CommonCriteriaCert": + def download_pdf_st(cert: CommonCriteriaCert) -> CommonCriteriaCert: + """ + Downloads pdf of security target given the certificate. Staticmethod to allow for parallelization. + + :param CommonCriteriaCert cert: cert to download the pdf security target for + :return CommonCriteriaCert: returns the modified certificate with updated state + """ exit_code: Union[str, int] if not cert.st_link: exit_code = "No link" @@ -620,7 +696,13 @@ class CommonCriteriaCert( return cert @staticmethod - def convert_report_pdf(cert: "CommonCriteriaCert") -> "CommonCriteriaCert": + def convert_report_pdf(cert: CommonCriteriaCert) -> CommonCriteriaCert: + """ + Converts the pdf certification report to txt, given the certificate. Staticmethod to allow for parallelization. + + :param CommonCriteriaCert cert: cert to download the pdf report for + :return CommonCriteriaCert: the modified certificate with updated state + """ exit_code = helpers.convert_pdf_file(cert.state.report_pdf_path, cert.state.report_txt_path) if exit_code != constants.RETURNCODE_OK: error_msg = "failed to convert report pdf->txt" @@ -630,7 +712,13 @@ class CommonCriteriaCert( return cert @staticmethod - def convert_target_pdf(cert: "CommonCriteriaCert") -> "CommonCriteriaCert": + def convert_st_pdf(cert: CommonCriteriaCert) -> CommonCriteriaCert: + """ + Converts the pdf security target to txt, given the certificate. Staticmethod to allow for parallelization. + + :param CommonCriteriaCert cert: cert to download the pdf security target for + :return CommonCriteriaCert: the modified certificate with updated state + """ exit_code = helpers.convert_pdf_file(cert.state.st_pdf_path, cert.state.st_txt_path) if exit_code != constants.RETURNCODE_OK: error_msg = "failed to convert security target pdf->txt" @@ -640,7 +728,13 @@ class CommonCriteriaCert( return cert @staticmethod - def extract_st_pdf_metadata(cert: "CommonCriteriaCert") -> "CommonCriteriaCert": + def extract_st_pdf_metadata(cert: CommonCriteriaCert) -> CommonCriteriaCert: + """ + Extracts metadata from security target pdf given the certificate. Staticmethod to allow for parallelization. + + :param CommonCriteriaCert cert: cert to extract the metadata for. + :return CommonCriteriaCert: the modified certificate with updated state + """ response, cert.pdf_data.st_metadata = helpers.extract_pdf_metadata(cert.state.st_pdf_path) if response != constants.RETURNCODE_OK: cert.state.st_extract_ok = False @@ -648,7 +742,13 @@ class CommonCriteriaCert( return cert @staticmethod - def extract_report_pdf_metadata(cert: "CommonCriteriaCert") -> "CommonCriteriaCert": + def extract_report_pdf_metadata(cert: CommonCriteriaCert) -> CommonCriteriaCert: + """ + Extracts metadata from certification report pdf given the certificate. Staticmethod to allow for parallelization. + + :param CommonCriteriaCert cert: cert to extract the metadata for. + :return CommonCriteriaCert: the modified certificate with updated state + """ response, cert.pdf_data.report_metadata = helpers.extract_pdf_metadata(cert.state.report_pdf_path) if response != constants.RETURNCODE_OK: cert.state.report_extract_ok = False @@ -656,7 +756,13 @@ class CommonCriteriaCert( return cert @staticmethod - def extract_st_pdf_frontpage(cert: "CommonCriteriaCert") -> "CommonCriteriaCert": + def extract_st_pdf_frontpage(cert: CommonCriteriaCert) -> CommonCriteriaCert: + """ + Extracts data from security target pdf frontpage given the certificate. Staticmethod to allow for parallelization. + + :param CommonCriteriaCert cert: cert to extract the frontpage data for. + :return CommonCriteriaCert: the modified certificate with updated state + """ cert.pdf_data.st_frontpage = {} for header_type, associated_header_func in HEADERS.items(): @@ -671,7 +777,13 @@ class CommonCriteriaCert( return cert @staticmethod - def extract_report_pdf_frontpage(cert: "CommonCriteriaCert") -> "CommonCriteriaCert": + def extract_report_pdf_frontpage(cert: CommonCriteriaCert) -> CommonCriteriaCert: + """ + Extracts data from certification report pdf frontpage given the certificate. Staticmethod to allow for parallelization. + + :param CommonCriteriaCert cert: cert to extract the frontpage data for. + :return CommonCriteriaCert: the modified certificate with updated state + """ cert.pdf_data.report_frontpage = {} for header_type, associated_header_func in HEADERS.items(): @@ -686,14 +798,28 @@ class CommonCriteriaCert( return cert @staticmethod - def extract_report_pdf_keywords(cert: "CommonCriteriaCert") -> "CommonCriteriaCert": + def extract_report_pdf_keywords(cert: CommonCriteriaCert) -> CommonCriteriaCert: + """ + Matches regular expresions in txt obtained from certification report and extracts the matches into attribute. + Static method to allow for parallelization + + :param CommonCriteriaCert cert: certificate to extract the keywords for. + :return CommonCriteriaCert: the modified certificate with extracted keywords. + """ response, cert.pdf_data.report_keywords = helpers.extract_keywords(cert.state.report_txt_path) if response != constants.RETURNCODE_OK: cert.state.report_extract_ok = False return cert @staticmethod - def extract_st_pdf_keywords(cert: "CommonCriteriaCert") -> "CommonCriteriaCert": + def extract_st_pdf_keywords(cert: CommonCriteriaCert) -> CommonCriteriaCert: + """ + Matches regular expresions in txt obtained from security target and extracts the matches into attribute. + Static method to allow for parallelization + + :param CommonCriteriaCert cert: certificate to extract the keywords for. + :return CommonCriteriaCert: the modified certificate with extracted keywords. + """ response, cert.pdf_data.st_keywords = helpers.extract_keywords(cert.state.st_txt_path) if response != constants.RETURNCODE_OK: cert.state.st_extract_ok = False @@ -701,15 +827,26 @@ class CommonCriteriaCert( return cert def compute_heuristics_version(self) -> None: + """ + Fills in the heuristically obtained version of certified product into attribute in heuristics class. + """ self.heuristics.extracted_versions = helpers.compute_heuristics_version(self.name) if self.name else set() def compute_heuristics_cert_lab(self) -> None: + """ + Fills in the heuristically obtained evaluation laboratory into attribute in heuristics class. + """ if not self.pdf_data: logger.error("Cannot compute sample lab when pdf files were not processed.") return self.heuristics.cert_lab = self.pdf_data.cert_lab def compute_heuristics_cert_id(self, all_cert_ids: Set[str]): + """ + Given list of cert ids from the whole dataset, will normalize own cert id into canonical form + + :param Set[str] all_cert_ids: cert ids from the whole dataset. + """ if not self.pdf_data: logger.warning("Cannot compute sample id when pdf files were not processed.") return @@ -729,6 +866,7 @@ class CommonCriteriaCert( # Bug - getting out of index - ANSSI-2009/30 # TMP solution + # TODO: Fix me, @georgefi if len(new_cert_id) >= len("ANSSI-CC-0000") + 1: if ( new_cert_id[len("ANSSI-CC-0000")] == "_" @@ -821,7 +959,7 @@ class CommonCriteriaCert( return new_cert_id - def get_cert_laboratory(self) -> str: + def _get_cert_laboratory(self) -> str: if not self.heuristics.cert_id: raise ValueError("Cert ID was None but cert laboratory was to be computed based on its value.") cert_id = self.heuristics.cert_id.strip() @@ -841,6 +979,12 @@ class CommonCriteriaCert( return "unknown" def normalize_cert_id(self, all_cert_ids: Set[str]) -> None: + """ + Attempts to find certification laboratory and transform certificate id into canonical form. This is achieved + also by comparisons to all other cert ids in the dataset. + + :param Set[str] all_cert_ids: set of all cert ids in the dataset. + """ fix_methods: Dict[str, Callable] = { "anssi": CommonCriteriaCert._fix_anssi_cert_id, "bsi": partial(CommonCriteriaCert._fix_bsi_cert_id, all_cert_ids=all_cert_ids), @@ -849,7 +993,7 @@ class CommonCriteriaCert( } try: - cert_lab = self.get_cert_laboratory() + cert_lab = self._get_cert_laboratory() except ValueError: return None -- cgit v1.3.1 From 67d7a2aa80fa99cbae1d98a7f984620ac13943df Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Mon, 23 May 2022 20:40:54 +0200 Subject: adds FIPSCertificate docs --- docs/api/sample.md | 8 +++ sec_certs/dataset/fips.py | 2 +- sec_certs/sample/fips.py | 152 ++++++++++++++++++++++++++++++++++++---------- 3 files changed, 128 insertions(+), 34 deletions(-) diff --git a/docs/api/sample.md b/docs/api/sample.md index 29266f90..4ff17be1 100644 --- a/docs/api/sample.md +++ b/docs/api/sample.md @@ -15,4 +15,12 @@ The examples related to this package can be found at [common criteria notebook]( .. currentmodule:: sec_certs.sample .. autoclass:: CommonCriteriaCert :members: +``` + +## FIPSCertificate + +```{eval-rst} +.. currentmodule:: sec_certs.sample +.. autoclass:: FIPSCertificate + :members: ``` \ No newline at end of file diff --git a/sec_certs/dataset/fips.py b/sec_certs/dataset/fips.py index 7a11a9cb..d70cf57f 100644 --- a/sec_certs/dataset/fips.py +++ b/sec_certs/dataset/fips.py @@ -228,7 +228,7 @@ class FIPSDataset(Dataset[FIPSCertificate], ComplexSerializableType): logger.info("Entering web scan.") for cert_id in cert_ids: dgst = fips_dgst(cert_id) - self.certs[dgst] = FIPSCertificate.html_from_file( + self.certs[dgst] = FIPSCertificate.from_html_file( self.web_dir / f"{cert_id}.html", FIPSCertificate.State( (self._policies_dir / str(cert_id)).with_suffix(".pdf"), diff --git a/sec_certs/sample/fips.py b/sec_certs/sample/fips.py index 0b769dec..e5ea543e 100644 --- a/sec_certs/sample/fips.py +++ b/sec_certs/sample/fips.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import copy import re from dataclasses import dataclass, field @@ -22,6 +24,13 @@ from sec_certs.serialization.json import ComplexSerializableType class FIPSCertificate(Certificate["FIPSCertificate", "FIPSCertificate.FIPSHeuristics"], ComplexSerializableType): + """ + Data structure for common FIPS 140 certificate. Contains several inner classes that layer the data logic. + Can be serialized into/from json (`ComplexSerializableType`). + Is basic element of `FIPSDataset`. The functionality is mostly related to holding data and transformations that + the certificate can handle itself. `FIPSDataset` class then instrument this functionality. + """ + FIPS_BASE_URL: ClassVar[str] = "https://csrc.nist.gov" FIPS_MODULE_URL: ClassVar[ str @@ -29,6 +38,10 @@ class FIPSCertificate(Certificate["FIPSCertificate", "FIPSCertificate.FIPSHeuris @dataclass(eq=True) class State(ComplexSerializableType): + """ + Holds state of the `FIPSCertificate` + """ + sp_path: Path html_path: Path fragment_path: Path @@ -67,6 +80,10 @@ class FIPSCertificate(Certificate["FIPSCertificate", "FIPSCertificate.FIPSHeuris @dataclass(eq=True) class Algorithm(ComplexSerializableType): + """ + Data structure for algorithm of `FIPSCertificate` + """ + cert_id: str vendor: str implementation: str @@ -87,6 +104,10 @@ class FIPSCertificate(Certificate["FIPSCertificate", "FIPSCertificate.FIPSHeuris @dataclass(eq=True) class WebScan(ComplexSerializableType): + """ + Data structure for data obtained from scanning certificate webpage at NIST.gov + """ + module_name: Optional[str] standard: Optional[str] status: Optional[str] @@ -147,6 +168,10 @@ class FIPSCertificate(Certificate["FIPSCertificate", "FIPSCertificate.FIPSHeuris @dataclass(eq=True) class PdfScan(ComplexSerializableType): + """ + Data structure that holds data obtained from scanning pdf files (or their converted txt documents). + """ + cert_id: int keywords: Dict algorithms: List @@ -165,6 +190,10 @@ class FIPSCertificate(Certificate["FIPSCertificate", "FIPSCertificate.FIPSHeuris @dataclass(eq=True) class FIPSHeuristics(Heuristics, ComplexSerializableType): + """ + Data structure that holds data obtained by processing the certificate and applying various heuristics. + """ + keywords: Dict[str, Dict] algorithms: List[Dict[str, Dict]] unmatched_algs: int @@ -192,6 +221,9 @@ class FIPSCertificate(Certificate["FIPSCertificate", "FIPSCertificate.FIPSHeuris @property def dgst(self) -> str: + """ + Returns primary key of the certificate, its id. + """ return fips_dgst(self.cert_id) # TODO: Fix type errors, they exist because FIPS uses this as property to change variable names, while CC and abstract class have variables @@ -221,6 +253,9 @@ class FIPSCertificate(Certificate["FIPSCertificate", "FIPSCertificate.FIPSHeuris @staticmethod def download_security_policy(cert: Tuple[str, Path]) -> None: + """ + Downloads security policy file from web. Staticmethod to allow for parametrization. + """ exit_code = helpers.download_file(*cert, delay=1) if exit_code != requests.codes.ok: logger.error(f"Failed to download security policy from {cert[0]}, code: {exit_code}") @@ -228,20 +263,26 @@ class FIPSCertificate(Certificate["FIPSCertificate", "FIPSCertificate.FIPSHeuris def __init__( self, cert_id: int, - web_scan: "FIPSCertificate.WebScan", - pdf_scan: "FIPSCertificate.PdfScan", - heuristics: "FIPSCertificate.FIPSHeuristics", + web_scan: FIPSCertificate.WebScan, + pdf_scan: FIPSCertificate.PdfScan, + heuristics: FIPSCertificate.FIPSHeuristics, state: State, ): super().__init__() self.cert_id = cert_id self.web_scan = web_scan self.pdf_scan = pdf_scan - self.heuristics: "FIPSCertificate.FIPSHeuristics" = heuristics + self.heuristics: FIPSCertificate.FIPSHeuristics = heuristics self.state = state @classmethod - def from_dict(cls, dct: Dict) -> "FIPSCertificate": + def from_dict(cls, dct: Dict) -> FIPSCertificate: + """ + Deserializes dictionary into FIPSCertificate + + :param Dict dct: dictionary that holds the FIPSCertificate data + :return FIPSCertificate: object reconstructed from dct + """ new_dct = dct.copy() if new_dct["web_scan"].date_validation: @@ -253,6 +294,12 @@ class FIPSCertificate(Certificate["FIPSCertificate", "FIPSCertificate.FIPSHeuris @staticmethod def download_html_page(cert: Tuple[str, Path]) -> Optional[Tuple[str, Path]]: + """ + Wrapper for downloading a file. `delay=1` introduced to avoid problems with requests at NIST.gov + + :param Tuple[str, Path] cert: tuple url, output_path + :return Optional[Tuple[str, Path]]: None on success, `cert` on failure. + """ exit_code = helpers.download_file(*cert, delay=1) if exit_code != requests.codes.ok: logger.error(f"Failed to download html page from {cert[0]}, code: {exit_code}") @@ -260,7 +307,7 @@ class FIPSCertificate(Certificate["FIPSCertificate", "FIPSCertificate.FIPSHeuris return None @staticmethod - def initialize_dictionary() -> Dict[str, Any]: + def _initialize_dictionary() -> Dict[str, Any]: return { "module_name": None, "standard": None, @@ -296,8 +343,9 @@ class FIPSCertificate(Certificate["FIPSCertificate", "FIPSCertificate.FIPSHeuris def parse_caveat(current_text: str) -> Dict[str, Dict[str, int]]: """ Parses content of "Caveat" of FIPS CMVP .html file + :param current_text: text of "Caveat" - :return: dictionary of all found algorithm IDs + :return dictionary of all found algorithm IDs """ ids_found: Dict[str, Dict[str, int]] = {} r_key = r"(?P\w+)?\s?(?:#\s?|Cert\.?(?!.\s)\s?|Certificate\s?)+(?P\d+)" @@ -315,9 +363,10 @@ class FIPSCertificate(Certificate["FIPSCertificate", "FIPSCertificate.FIPSHeuris def extract_algorithm_certificates(current_text: str, in_pdf: bool = False) -> List[Optional[Dict[str, List[str]]]]: """ Parses table of FIPS (non) allowed algorithms + :param current_text: Contents of the table :param in_pdf: Specifies whether the table was found in a PDF security policies file - :return: List containing one element - dictionary with all parsed algorithm cert ids + :return List containing one element - dictionary with all parsed algorithm cert ids """ set_items = set() if in_pdf: @@ -333,8 +382,9 @@ class FIPSCertificate(Certificate["FIPSCertificate", "FIPSCertificate.FIPSHeuris def parse_table(element: Union[Tag, NavigableString]) -> List[Dict[str, Any]]: """ Parses content of tags in FIPS .html CMVP page + :param element: text in
tags - :return: list of all found algorithm IDs + :return list of all found algorithm IDs """ found_items = [] trs = element.find_all("tr") @@ -355,7 +405,7 @@ class FIPSCertificate(Certificate["FIPSCertificate", "FIPSCertificate.FIPSHeuris return found_items @staticmethod - def parse_html_main(current_div: Tag, html_items_found: Dict, pairs: Dict[str, str]) -> None: + def _parse_html_main(current_div: Tag, html_items_found: Dict, pairs: Dict[str, str]) -> None: title = current_div.find("div", class_="col-md-3").text.strip() content = ( current_div.find("div", class_="col-md-9") @@ -391,7 +441,7 @@ class FIPSCertificate(Certificate["FIPSCertificate", "FIPSCertificate.FIPSHeuris html_items_found[pairs[title]] = content @staticmethod - def parse_vendor(current_div: Tag, html_items_found: Dict, current_file: Path) -> None: + def _parse_vendor(current_div: Tag, html_items_found: Dict, current_file: Path) -> None: vendor_string = current_div.find("div", "panel-body").find("a") if not vendor_string: @@ -406,7 +456,7 @@ class FIPSCertificate(Certificate["FIPSCertificate", "FIPSCertificate.FIPSHeuris logger.warning(f"NO VENDOR FOUND {current_file}") @staticmethod - def parse_lab(current_div: Tag, html_items_found: Dict, current_file: Path) -> None: + def _parse_lab(current_div: Tag, html_items_found: Dict, current_file: Path) -> None: html_items_found["lab"] = list(current_div.find("div", "panel-body").children)[0].strip() html_items_found["nvlap_code"] = ( list(current_div.find("div", "panel-body").children)[2].strip().split("\n")[1].strip() @@ -427,20 +477,29 @@ class FIPSCertificate(Certificate["FIPSCertificate", "FIPSCertificate.FIPSHeuris html_items_found["certificate_www"] = constants.FIPS_BASE_URL + links[1].get("href") @staticmethod - def normalize(items: Dict) -> None: + def _normalize(items: Dict) -> None: items["module_type"] = items["module_type"].lower().replace("-", " ").title() items["embodiment"] = items["embodiment"].lower().replace("-", " ").replace("stand alone", "standalone").title() @staticmethod - def parse_validation_dates(current_div: Tag, html_items_found: Dict) -> None: + def _parse_validation_dates(current_div: Tag, html_items_found: Dict) -> None: table = current_div.find("table") rows = table.find("tbody").findAll("tr") html_items_found["date_validation"] = [parser.parse(td.text).date() for td in [row.find("td") for row in rows]] @classmethod - def html_from_file( - cls, file: Path, state: State, initialized: "FIPSCertificate" = None, redo: bool = False - ) -> "FIPSCertificate": + def from_html_file( + cls, file: Path, state: State, initialized: FIPSCertificate = None, redo: bool = False + ) -> FIPSCertificate: + """ + Constructs FIPSCertificate object from html file. + + :param Path file: path to the html file to use for initialization + :param State state: state of the certificate + :param FIPSCertificate initialized: possibly partially initialized FIPSCertificate, defaults to None + :param bool redo: if the method should be reattempted in case of failure, defaults to False + :return FIPSCertificate: resulting `FIPSCertificate` object. + """ pairs = { "Module Name": "module_name", "Standard": "standard", @@ -466,7 +525,7 @@ class FIPSCertificate(Certificate["FIPSCertificate", "FIPSCertificate.FIPSHeuris "Product URL": "product_url", } if not initialized: - items_found = FIPSCertificate.initialize_dictionary() + items_found = FIPSCertificate._initialize_dictionary() items_found["cert_id"] = int(file.stem) else: items_found = initialized.web_scan.__dict__ @@ -479,28 +538,28 @@ class FIPSCertificate(Certificate["FIPSCertificate", "FIPSCertificate.FIPSHeuris state.txt_state = initialized.state.txt_state if redo: - items_found = FIPSCertificate.initialize_dictionary() + items_found = FIPSCertificate._initialize_dictionary() items_found["cert_id"] = int(file.stem) text = helpers.load_cert_html_file(str(file)) soup = BeautifulSoup(text, "html.parser") for div in soup.find_all("div", class_="row padrow"): - FIPSCertificate.parse_html_main(div, items_found, pairs) + FIPSCertificate._parse_html_main(div, items_found, pairs) for div in soup.find_all("div", class_="panel panel-default")[1:]: if div.find("h4", class_="panel-title").text == "Vendor": - FIPSCertificate.parse_vendor(div, items_found, file) + FIPSCertificate._parse_vendor(div, items_found, file) if div.find("h4", class_="panel-title").text == "Lab": - FIPSCertificate.parse_lab(div, items_found, file) + FIPSCertificate._parse_lab(div, items_found, file) if div.find("h4", class_="panel-title").text == "Related Files": FIPSCertificate.parse_related_files(div, items_found) if div.find("h4", class_="panel-title").text == "Validation History": - FIPSCertificate.parse_validation_dates(div, items_found) + FIPSCertificate._parse_validation_dates(div, items_found) - FIPSCertificate.normalize(items_found) + FIPSCertificate._normalize(items_found) return FIPSCertificate( items_found["cert_id"], @@ -543,7 +602,13 @@ class FIPSCertificate(Certificate["FIPSCertificate", "FIPSCertificate.FIPSHeuris ) @staticmethod - def convert_pdf_file(tup: Tuple["FIPSCertificate", Path, Path]) -> "FIPSCertificate": + def convert_pdf_file(tup: Tuple[FIPSCertificate, Path, Path]) -> FIPSCertificate: + """ + Converts pdf file of FIPSCertificate. Staticmethod to allow for paralelization. + + :param Tuple[FIPSCertificate, Path, Path] tup: object which file will be converted, path to pdf, path to txt. + :return FIPSCertificate: the modified FIPSCertificate. + """ cert, pdf_path, txt_path = tup if not cert.state.txt_state: exit_code = helpers.convert_pdf_file(pdf_path, txt_path) @@ -565,7 +630,7 @@ class FIPSCertificate(Certificate["FIPSCertificate", "FIPSCertificate.FIPSHeuris return len(text) * 0.5 <= len("".join(filter(str.isalpha, text))) @staticmethod - def find_keywords(cert: "FIPSCertificate") -> Tuple[Optional[Dict], "FIPSCertificate"]: + def find_keywords(cert: FIPSCertificate) -> Tuple[Optional[Dict], FIPSCertificate]: if not cert.state.txt_state: return None, cert @@ -580,11 +645,11 @@ class FIPSCertificate(Certificate["FIPSCertificate", "FIPSCertificate.FIPSHeuris if config.ignore_first_page: text_to_parse = text_to_parse[text_to_parse.index(" ") :] - items_found, fips_text = FIPSCertificate.parse_cert_file(FIPSCertificate.remove_platforms(text_to_parse)) + items_found, fips_text = FIPSCertificate._parse_cert_file(FIPSCertificate._remove_platforms(text_to_parse)) save_modified_cert_file(cert.state.fragment_path.with_suffix(".fips.txt"), fips_text, unicode_error) - common_items_found, common_text = FIPSCertificate.parse_cert_file_common( + common_items_found, common_text = FIPSCertificate._parse_cert_file_common( text_to_parse, text_with_newlines, fips_common_rules ) @@ -594,7 +659,13 @@ class FIPSCertificate(Certificate["FIPSCertificate", "FIPSCertificate.FIPSHeuris return items_found, cert @staticmethod - def match_web_algs_to_pdf(cert: "FIPSCertificate") -> int: + def match_web_algs_to_pdf(cert: FIPSCertificate) -> int: + """ + Finds algorithms in FIPSCertificate. Staticmethod to allow for parallelization. + + :param FIPSCertificate cert: cert to search for algorithms. + :return int: number of identified algorithms. + """ algs_vals = list(cert.pdf_scan.keywords["rules_fips_algorithms"].values()) table_vals = [x["Certificate"] for x in cert.pdf_scan.algorithms] tables = [x.strip() for y in table_vals for x in y] @@ -619,7 +690,7 @@ class FIPSCertificate(Certificate["FIPSCertificate", "FIPSCertificate.FIPSHeuris return len(not_found) @staticmethod - def remove_platforms(text_to_parse: str) -> str: + def _remove_platforms(text_to_parse: str) -> str: pat = re.compile(r"(?:(?:modification|revision|change) history|version control)\n[\s\S]*? ", re.IGNORECASE) for match in pat.finditer(text_to_parse): text_to_parse = text_to_parse.replace(match.group(), "x" * len(match.group())) @@ -669,7 +740,7 @@ class FIPSCertificate(Certificate["FIPSCertificate", "FIPSCertificate.FIPSHeuris items_found[rule_str][match][constants.TAG_MATCH_MATCHES].append([match_span[0], match_span[1]]) @staticmethod - def parse_cert_file_common( + def _parse_cert_file_common( text_to_parse: str, whole_text_with_newlines: str, search_rules: Dict ) -> Tuple[Dict[Pattern, Dict], str]: # apply all rules @@ -699,7 +770,7 @@ class FIPSCertificate(Certificate["FIPSCertificate", "FIPSCertificate.FIPSHeuris return items_found_all, whole_text_with_newlines @staticmethod - def parse_cert_file(text_to_parse: str) -> Tuple[Dict[Pattern, Dict], str]: + def _parse_cert_file(text_to_parse: str) -> Tuple[Dict[Pattern, Dict], str]: # apply all rules items_found_all: Dict = {} @@ -733,7 +804,13 @@ class FIPSCertificate(Certificate["FIPSCertificate", "FIPSCertificate.FIPSHeuris return items_found_all, text_to_parse @staticmethod - def analyze_tables(tup: Tuple["FIPSCertificate", bool]) -> Tuple[bool, "FIPSCertificate", List]: + def analyze_tables(tup: Tuple[FIPSCertificate, bool]) -> Tuple[bool, FIPSCertificate, List]: + """ + Searches for tables in pdf documents of the instance. + + :param Tuple[FIPSCertificate, bool] tup: certificate object, whether to use high precision results or approx. results + :return Tuple[bool, FIPSCertificate, List]: True on success / False otherwise, modified cert object, List of processed tables. + """ cert, precision = tup if (not precision and cert.state.tables_done) or ( precision and cert.heuristics.unmatched_algs < config.cert_threshold @@ -801,6 +878,9 @@ class FIPSCertificate(Certificate["FIPSCertificate", "FIPSCertificate.FIPSHeuris to_pop.add(cert) def remove_algorithms(self) -> None: + """ + Removes algorithms from the certificate. + """ self.state.file_status = True if not self.pdf_scan.keywords: return @@ -829,12 +909,18 @@ class FIPSCertificate(Certificate["FIPSCertificate", "FIPSCertificate.FIPSHeuris @staticmethod def get_compare(vendor: str) -> str: + """ + Tokenizes vendor name of the certificate. + """ vendor_split = ( vendor.replace(",", "").replace("-", " ").replace("+", " ").replace("®", "").replace("(R)", "").split() ) return vendor_split[0][:4] if len(vendor_split) > 0 else vendor def compute_heuristics_version(self) -> None: + """ + Heuristically computes the version of the product. + """ versions_for_extraction = "" if self.web_scan.module_name: versions_for_extraction += f" {self.web_scan.module_name}" -- cgit v1.3.1 From 43239b26154dc0e9afee4552b15dcd36b72965e3 Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Mon, 23 May 2022 20:54:15 +0200 Subject: random docs fixes --- docs/configuration.md | 2 +- sec_certs/sample/fips.py | 15 ++++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/docs/configuration.md b/docs/configuration.md index d5f6abda..93c926ba 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -6,7 +6,7 @@ mystnb: --- # Configuration -The configuration is stored in yaml file `settings.yaml` at `sec_certs.config` package. These are the supported options, descriptions and default values. +The configuration is stored in yaml file `settings.yaml` at `sec_certs.config` package. Below are the supported options, descriptions and default values. ```{code-cell} python diff --git a/sec_certs/sample/fips.py b/sec_certs/sample/fips.py index e5ea543e..b2680f0c 100644 --- a/sec_certs/sample/fips.py +++ b/sec_certs/sample/fips.py @@ -344,8 +344,8 @@ class FIPSCertificate(Certificate["FIPSCertificate", "FIPSCertificate.FIPSHeuris """ Parses content of "Caveat" of FIPS CMVP .html file - :param current_text: text of "Caveat" - :return dictionary of all found algorithm IDs + :param str current_text: text of "Caveat" + :return Dict[str, Dict[str, int]]: dictionary of all found algorithm IDs """ ids_found: Dict[str, Dict[str, int]] = {} r_key = r"(?P\w+)?\s?(?:#\s?|Cert\.?(?!.\s)\s?|Certificate\s?)+(?P\d+)" @@ -364,9 +364,9 @@ class FIPSCertificate(Certificate["FIPSCertificate", "FIPSCertificate.FIPSHeuris """ Parses table of FIPS (non) allowed algorithms - :param current_text: Contents of the table - :param in_pdf: Specifies whether the table was found in a PDF security policies file - :return List containing one element - dictionary with all parsed algorithm cert ids + :param str current_text: Contents of the table + :param bool in_pdf: Specifies whether the table was found in a PDF security policies file, defaults to False + :return List[Optional[Dict[str, List[str]]]]: List containing one element - dictionary with all parsed algorithm cert ids """ set_items = set() if in_pdf: @@ -383,9 +383,10 @@ class FIPSCertificate(Certificate["FIPSCertificate", "FIPSCertificate.FIPSHeuris """ Parses content of
tags in FIPS .html CMVP page - :param element: text in
tags - :return list of all found algorithm IDs + :param Union[Tag, NavigableString] element: text in
tags + :return List[Dict[str, Any]]: list of all found algorithm IDs """ + found_items = [] trs = element.find_all("tr") for tr in trs: -- cgit v1.3.1 From 76921dad730aa6eae592b4f4e9471c6fbde46b7c Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Thu, 26 May 2022 13:12:07 +0200 Subject: add seaborn --- requirements/requirements.in | 1 + requirements/requirements.txt | 12 ++++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/requirements/requirements.in b/requirements/requirements.in index 48117721..e677f203 100644 --- a/requirements/requirements.in +++ b/requirements/requirements.in @@ -24,3 +24,4 @@ ipykernel ipywidgets spacy pkgconfig +seaborn diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 718c2e06..18f67fb3 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -130,7 +130,9 @@ markupsafe==2.1.1 # jinja2 # nbconvert matplotlib==3.5.1 - # via -r requirements.in + # via + # -r requirements.in + # seaborn matplotlib-inline==0.1.3 # via # ipykernel @@ -168,6 +170,7 @@ numpy==1.22.3 # pandas # scikit-learn # scipy + # seaborn # spacy # tabula-py # thinc @@ -182,6 +185,7 @@ packaging==21.3 pandas==1.4.2 # via # -r requirements.in + # seaborn # tabula-py pandocfilters==1.5.0 # via nbconvert @@ -261,7 +265,11 @@ requests==2.27.1 scikit-learn==1.0.2 # via -r requirements.in scipy==1.8.0 - # via scikit-learn + # via + # scikit-learn + # seaborn +seaborn==0.11.2 + # via -r requirements.in send2trash==1.8.0 # via notebook setuptools-scm==6.4.2 -- cgit v1.3.1 From a3d9e94623d55de7da86b10694ad2f7febec64b8 Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Thu, 26 May 2022 13:12:30 +0200 Subject: improve CVE notebook --- .gitignore | 3 + notebooks/cc/vulnerabilities.ipynb | 900 ++++++++++++++++++++++++++++--------- sec_certs/pandas_helpers.py | 46 +- 3 files changed, 729 insertions(+), 220 deletions(-) diff --git a/.gitignore b/.gitignore index 1d2da538..d9519043 100644 --- a/.gitignore +++ b/.gitignore @@ -130,3 +130,6 @@ cert_processing_log.txt # Example script may dump classification report into the folder examples/classification_report.json + +# Experiment results produced by notebooks +notebooks/cc/results/ \ No newline at end of file diff --git a/notebooks/cc/vulnerabilities.ipynb b/notebooks/cc/vulnerabilities.ipynb index dc76d2c5..e7d4b166 100644 --- a/notebooks/cc/vulnerabilities.ipynb +++ b/notebooks/cc/vulnerabilities.ipynb @@ -19,27 +19,32 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 62, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", "from typing import Optional\n", "from tqdm.notebook import tqdm\n", "\n", "from typing import Set\n", "from sec_certs.sample.sar import SAR\n", - "plt.style.use(\"ggplot\")\n", + "plt.style.use(\"seaborn-whitegrid\")\n", "\n", "from sec_certs.dataset import CCDataset, CVEDataset, CCDatasetMaintenanceUpdates\n", "from sec_certs.sample import CommonCriteriaCert\n", "import datetime\n", "\n", + "from pathlib import Path\n", "import itertools\n", "\n", - "from sec_certs.pandas_helpers import compute_cve_correlations, find_earliest_maintenance_after_cve, expand_cc_df_with_cve_cols, compute_maintenances_that_should_fix_vulns, move_fixing_mu_to_directory" + "from sec_certs.pandas_helpers import compute_cve_correlations, find_earliest_maintenance_after_cve, expand_cc_df_with_cve_cols, compute_maintenances_that_should_fix_vulns, move_fixing_mu_to_directory\n", + "\n", + "RESULTS_DIR = Path(\"./results\")\n", + "RESULTS_DIR.mkdir(exist_ok=True)" ] }, { @@ -58,18 +63,19 @@ "name": "stderr", "output_type": "stream", "text": [ - "parsing cpe matching (by NIST) dictionary: 100%|██████████| 377628/377628 [00:34<00:00, 10810.92it/s]\n", - "Building-up lookup dictionaries for fast CVE matching: 100%|██████████| 183838/183838 [00:14<00:00, 12615.84it/s]\n" + "parsing cpe matching (by NIST) dictionary: 100%|██████████| 383657/383657 [00:36<00:00, 10594.85it/s]\n", + "Building-up lookup dictionaries for fast CVE matching: 100%|██████████| 187352/187352 [00:17<00:00, 11012.64it/s]\n" ] } ], "source": [ "# Download and save fresh snapshot\n", "# dset: CCDataset = CCDataset.from_web_latest()\n", - "# dset.to_json(\"/Users/adam/phd/projects/certificates/datasets/from_web_latest/latest.json\")\n", + "# dset.to_json(RESULTS_DIR / \"cc_dset.json\")\n", "\n", "# Local instantiation\n", - "dset: CCDataset = CCDataset.from_json('/Users/adam/phd/projects/certificates/sec-certs/datasets/from_web_latest/dataset.json')\n", + "dset: CCDataset = CCDataset.from_json(RESULTS_DIR / \"cc_dset.json\")\n", + "# dset.process_maintenance_updates() # Run this only once, can take ~10 minutes to finnish, fully processes maintenance updates\n", "main_dset = dset.mu_dataset\n", "cve_dset: CVEDataset = dset._prepare_cve_dataset()\n", "\n", @@ -102,6 +108,7 @@ "outputs": [], "source": [ "df = dset.to_pandas()\n", + "df = df.loc[df.year_from < 2022] # Cut current year that biases the analysis\n", "\n", "if 'n_maintenances' not in df.columns:\n", " n_maintenances = main_dset.get_n_maintenances_df()\n", @@ -111,11 +118,10 @@ " main_dates = main_dset.get_maintenance_dates_df()\n", " df = pd.concat([df, main_dates], axis='columns')\n", "\n", - "# Limit CVE DataFrame to relevant CVEs\n", + "# Expand DataFrame with CVEs that affect some certificate\n", "cves = list(itertools.chain.from_iterable([x.heuristics.related_cves for x in dset if x.heuristics.related_cves]))\n", "cve_dict = {x: cve_dset[x] for x in cves}\n", - "cve_dset.cves = cve_dict\n", - "\n", + "cve_dset.cves = cve_dict # Limit cve_dset to CVEs relevant to some certificate\n", "df = expand_cc_df_with_cve_cols(df, cve_dset)" ] }, @@ -148,44 +154,50 @@ " \n", " \n", " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -193,20 +205,23 @@ " \n", " \n", " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -214,6 +229,7 @@ " \n", " \n", " \n", + " \n", " \n", " \n", " \n", @@ -221,60 +237,62 @@ " \n", " \n", " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", + " \n", " \n", " \n", "
related_cvescve_published_datesearliest_cveworst_cveworst_cve_scoreavg_cve_score
c4bd865f2ae51533{CVE-2019-5408}[2019-08-09]2019-08-096.5
ebd276cca70fd723{CVE-2019-4513, CVE-2017-1732}[2019-08-26, 2018-08-17]2018-08-178.2{CVE-2015-0235, CVE-2013-5421, CVE-2017-1732, ...[2015-01-28, 2013-12-22, 2018-08-17, 2013-12-2...2013-12-2210.05.800000
7a53ce3f91bf73c7{CVE-2017-14800, CVE-2017-9276, CVE-2017-14799...[2018-03-01, 2018-03-02, 2018-03-01, 2018-03-0...{CVE-2017-9276, CVE-2017-14802, CVE-2017-14799...[2018-03-02, 2018-03-02, 2018-03-01, 2018-03-0...2018-03-016.16.100000
b2aea954a265af60{CVE-2021-44168, CVE-2021-42757, CVE-2021-2610...[2022-01-04, 2021-12-08, 2021-12-08, 2021-08-0...28819ed8f96586bc{CVE-2021-26109, CVE-2021-26108, CVE-2021-4308...[2021-12-08, 2021-12-08, 2022-05-11, 2022-05-0...2020-09-249.86.866667
28819ed8f96586bc{CVE-2021-44168, CVE-2021-42757, CVE-2021-2610...[2022-01-04, 2021-12-08, 2021-12-08, 2021-08-0...2020-09-24ac5e56e41a0b950e{CVE-2021-26109, CVE-2021-26092, CVE-2020-6648...[2021-12-08, 2022-02-24, 2020-10-21, 2021-03-0...2019-08-239.87.019048
1f061d2b3f2e51d1{CVE-2018-13371, CVE-2017-17544, CVE-2018-1338...[2020-04-02, 2019-04-09, 2019-05-29, 2019-06-0...2017-08-109.86.778000
...............
5f1df5ad8e51ba75{CVE-2007-0411, CVE-2005-4704, CVE-2006-0427, ...[2007-01-23, 2005-12-31, 2006-01-25, 2007-01-2...{CVE-2004-0713, CVE-2007-0412, CVE-2004-2321, ...[2004-07-27, 2007-01-23, 2004-12-31, 2004-04-1...2003-08-2710.05.534653
ffeef32299d913d6{CVE-2008-1592, CVE-2009-0439, CVE-2008-1130}[2008-03-31, 2009-02-24, 2008-03-04]{CVE-2009-0439, CVE-2008-1130, CVE-2008-1592}[2009-02-24, 2008-03-04, 2008-03-31]2008-03-047.26.133333
a092aebf5a286ded[2004-12-31]2004-12-317.57.500000
ace069b9b7c10f19[2000-10-20]2000-10-207.57.500000
5da939327a14e438{CVE-2009-2500, CVE-2007-0030, CVE-2015-2520, ...[2009-10-14, 2007-01-09, 2015-09-09, 2009-02-2...2006-06-17{CVE-1999-0794, CVE-2007-0030, CVE-2006-3431, ...[1999-10-01, 2007-01-09, 2006-07-07, 2007-01-0...1999-05-079.37.653333
\n", - "

589 rows × 4 columns

\n", + "

616 rows × 5 columns

\n", "" ], "text/plain": [ " related_cves \\\n", - "c4bd865f2ae51533 {CVE-2019-5408} \n", - "ebd276cca70fd723 {CVE-2019-4513, CVE-2017-1732} \n", - "7a53ce3f91bf73c7 {CVE-2017-14800, CVE-2017-9276, CVE-2017-14799... \n", - "b2aea954a265af60 {CVE-2021-44168, CVE-2021-42757, CVE-2021-2610... \n", - "28819ed8f96586bc {CVE-2021-44168, CVE-2021-42757, CVE-2021-2610... \n", + "ebd276cca70fd723 {CVE-2015-0235, CVE-2013-5421, CVE-2017-1732, ... \n", + "7a53ce3f91bf73c7 {CVE-2017-9276, CVE-2017-14802, CVE-2017-14799... \n", + "28819ed8f96586bc {CVE-2021-26109, CVE-2021-26108, CVE-2021-4308... \n", + "ac5e56e41a0b950e {CVE-2021-26109, CVE-2021-26092, CVE-2020-6648... \n", + "1f061d2b3f2e51d1 {CVE-2018-13371, CVE-2017-17544, CVE-2018-1338... \n", "... ... \n", - "5f1df5ad8e51ba75 {CVE-2007-0411, CVE-2005-4704, CVE-2006-0427, ... \n", - "ffeef32299d913d6 {CVE-2008-1592, CVE-2009-0439, CVE-2008-1130} \n", + "5f1df5ad8e51ba75 {CVE-2004-0713, CVE-2007-0412, CVE-2004-2321, ... \n", + "ffeef32299d913d6 {CVE-2009-0439, CVE-2008-1130, CVE-2008-1592} \n", "a092aebf5a286ded {CVE-2004-2558} \n", "ace069b9b7c10f19 {CVE-2000-0772} \n", - "5da939327a14e438 {CVE-2009-2500, CVE-2007-0030, CVE-2015-2520, ... \n", + "5da939327a14e438 {CVE-1999-0794, CVE-2007-0030, CVE-2006-3431, ... \n", "\n", " cve_published_dates \\\n", - "c4bd865f2ae51533 [2019-08-09] \n", - "ebd276cca70fd723 [2019-08-26, 2018-08-17] \n", - "7a53ce3f91bf73c7 [2018-03-01, 2018-03-02, 2018-03-01, 2018-03-0... \n", - "b2aea954a265af60 [2022-01-04, 2021-12-08, 2021-12-08, 2021-08-0... \n", - "28819ed8f96586bc [2022-01-04, 2021-12-08, 2021-12-08, 2021-08-0... \n", + "ebd276cca70fd723 [2015-01-28, 2013-12-22, 2018-08-17, 2013-12-2... \n", + "7a53ce3f91bf73c7 [2018-03-02, 2018-03-02, 2018-03-01, 2018-03-0... \n", + "28819ed8f96586bc [2021-12-08, 2021-12-08, 2022-05-11, 2022-05-0... \n", + "ac5e56e41a0b950e [2021-12-08, 2022-02-24, 2020-10-21, 2021-03-0... \n", + "1f061d2b3f2e51d1 [2020-04-02, 2019-04-09, 2019-05-29, 2019-06-0... \n", "... ... \n", - "5f1df5ad8e51ba75 [2007-01-23, 2005-12-31, 2006-01-25, 2007-01-2... \n", - "ffeef32299d913d6 [2008-03-31, 2009-02-24, 2008-03-04] \n", + "5f1df5ad8e51ba75 [2004-07-27, 2007-01-23, 2004-12-31, 2004-04-1... \n", + "ffeef32299d913d6 [2009-02-24, 2008-03-04, 2008-03-31] \n", "a092aebf5a286ded [2004-12-31] \n", "ace069b9b7c10f19 [2000-10-20] \n", - "5da939327a14e438 [2009-10-14, 2007-01-09, 2015-09-09, 2009-02-2... \n", + "5da939327a14e438 [1999-10-01, 2007-01-09, 2006-07-07, 2007-01-0... \n", "\n", - " earliest_cve worst_cve \n", - "c4bd865f2ae51533 2019-08-09 6.5 \n", - "ebd276cca70fd723 2018-08-17 8.2 \n", - "7a53ce3f91bf73c7 2018-03-01 6.1 \n", - "b2aea954a265af60 2020-09-24 9.8 \n", - "28819ed8f96586bc 2020-09-24 9.8 \n", - "... ... ... \n", - "5f1df5ad8e51ba75 2003-08-27 10.0 \n", - "ffeef32299d913d6 2008-03-04 7.2 \n", - "a092aebf5a286ded 2004-12-31 7.5 \n", - "ace069b9b7c10f19 2000-10-20 7.5 \n", - "5da939327a14e438 2006-06-17 9.3 \n", + " earliest_cve worst_cve_score avg_cve_score \n", + "ebd276cca70fd723 2013-12-22 10.0 5.800000 \n", + "7a53ce3f91bf73c7 2018-03-01 6.1 6.100000 \n", + "28819ed8f96586bc 2020-09-24 9.8 6.866667 \n", + "ac5e56e41a0b950e 2019-08-23 9.8 7.019048 \n", + "1f061d2b3f2e51d1 2017-08-10 9.8 6.778000 \n", + "... ... ... ... \n", + "5f1df5ad8e51ba75 2003-08-27 10.0 5.534653 \n", + "ffeef32299d913d6 2008-03-04 7.2 6.133333 \n", + "a092aebf5a286ded 2004-12-31 7.5 7.500000 \n", + "ace069b9b7c10f19 2000-10-20 7.5 7.500000 \n", + "5da939327a14e438 1999-05-07 9.3 7.653333 \n", "\n", - "[589 rows x 4 columns]" + "[616 rows x 5 columns]" ] }, "execution_count": 4, @@ -284,7 +302,7 @@ ], "source": [ "# Take a look at columns related to CVEs\n", - "df.loc[~df.related_cves.isna(), ['related_cves', 'cve_published_dates', 'earliest_cve', 'worst_cve']]" + "df.loc[~df.related_cves.isna(), ['related_cves', 'cve_published_dates', 'earliest_cve', 'worst_cve_score', 'avg_cve_score']]" ] }, { @@ -296,23 +314,13 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": {}, "outputs": [ { "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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ZCRmz54Nd3d37Nq1Cxs3bsSYMWMAVBZBnzdvnrOGT0RERC6Ci5DIIRcuXECDBg0QHh4OvV6P2NhYHDlyxO417dq1k7oItWjRolrxciIiIiLOjJJD8vLyEBwcLD0ODg7G+fPna3397t270bFjR+mxxWLBpEmToNPpMHjwYNx///3VviYxMRGJiYkAgNmzZyMkJOSWx6fX62/r9YzrOrGViJt5w+OQkJC79lzcybj2sQukY0q8V90+F3UjLpGzMBkl1e3fvx+XLl3C9OnTpWPLli1DUFAQMjMz8f777yMiIgINGjSw+7r+/fujf//+0uPbWTtX19bw1bW4asZWI25OTg7PxR2IW1tsJd6rvpyLOx2XHZioLuBtenJIUFCQXWef3NxcqV94VSdPnsTWrVsxceJEqZuQ7esBIDw8HG3atEFqaqrqYyYiIiLXw2SUHNKsWTNkZGQgKysLVqsVycnJiImJsXvN5cuX8emnn2LixInw9/eXjpeUlEitLYuKinDu3Dm7jU9ERER09+BtenKITqfD8OHDMXPmTAiCgLi4ODRp0gSbNm1Cs2bNEBMTg40bN8JkMiEhIQHA/0o4Xbt2DStXroRWq4UgCHjssceYjBIREd2lmIySw6KjoxEdHW137Omnn5b+Pm3atBq/rlWrVliwYIGqYyMiIqK6gbfpiYiIiMhpmIwSERERkdMwGSUiIiIip2EySkREREROw2SUiIiIiJyGySgREREROQ2TUSIiIiJyGiajREREROQ0TEaJiIiIyGmYjBIRERGR0zAZJSIiIiKnYTJKRERERE7DZJSIiIiInIbJKBERERE5DZNRIiIiInIaJqNERERE5DRMRomIiIjIaZiMEhEREZHTMBklIiIiIqdhMkpERERETsNklIiIiIichskoERERETkNk1EiIiIichq9swdAddeJEyewZs0aCIKAfv364bHHHrN7ftu2bfjxxx+h0+ng5+eHV199FaGhoQCAvXv34ttvvwUAPP744+jTp88dHj0RERG5As6MkkMEQcDq1asxefJkLFy4EAcPHkRaWprdayIjIzF79mzMnz8f3bp1w8aNGwEAJSUl2LJlCz788EN8+OGH2LJlC0pKSpzxbRAREZGTMRklh1y4cAENGjRAeHg49Ho9YmNjceTIEbvXtGvXDu7u7gCAFi1aIC8vD0DljGr79u3h4+MDHx8ftG/fHidOnLjT3wIRERG5AN6mJ4fk5eUhODhYehwcHIzz58/X+vrdu3ejY8eONX5tUFCQlKhWlZiYiMTERADA7NmzERIScsvj0+v1t/V6xnWd2ErEzbzhcUhIyF17Lu5kXPvYBdIxJd6rbp+LuhGXyFmYjJLq9u/fj0uXLmH69Om39XX9+/dH//79pcc5OTm3/LUhISG39XrGdZ3YasTNycnhubgDcWuLrcR71ZdzcafjNmzYUPH3J1Iab9OTQ4KCgpCbmys9zs3NRVBQULXXnTx5Elu3bsXEiRPh5uZW49fm5eXV+LVERERU/zEZJYc0a9YMGRkZyMrKgtVqRXJyMmJiYuxec/nyZXz66aeYOHEi/P39peMdO3bEr7/+ipKSEpSUlODXX3+VbuETERHR3YW36ckhOp0Ow4cPx8yZMyEIAuLi4tCkSRNs2rQJzZo1Q0xMDDZu3AiTyYSEhAQAlbeW4uPj4ePjgyeeeAJvv/02AGDIkCHw8fFx5rdDRERETsJklBwWHR2N6Ohou2NPP/209Pdp06bV+rV9+/ZF3759VRsbERER1Q28TU9ERERETsNklIiIiIichskoERERETkNk1EiIiIichomo0RERETkNExGiYiIiMhpWNqJiIjqjO82Fdg9fuTpAKeMg4iUw5lRIiIiInIaJqNERERE5DRMRomIiIjIaZiMEhEREZHTMBklIiIiIqfhbnoiIrorVIx41O6x7tP/OGkkRFQVZ0aJiIiIyGmYjBIRERGR0zAZJSIiIiKnYTJKRERERE7DZJSIiIiInIbJKBERERE5DZNRIiIiInIaJqNERERE5DRMRomIiIjIadiBiYiI7nrfbSqwe/zI0wFOGQfR3YjJKDnsxIkTWLNmDQRBQL9+/fDYY4/ZPX/mzBmsW7cOV65cwejRo9GtWzfpuaeffhoREREAgJCQEMTHx9/JoRMREZGLYDJKDhEEAatXr8bUqVMRHByMt99+GzExMWjcuLH0mpCQEIwaNQrfffddta83GAyYN2/enRwyERERuSAmo+SQCxcuoEGDBggPDwcAxMbG4siRI3bJaFhYGABAo9E4ZYxERETk+piMkkPy8vIQHBwsPQ4ODsb58+dv+estFgsmTZoEnU6HwYMH4/7776/2msTERCQmJgIAZs+ejZCQkFuOr9frb+v1jOs6sZWIm3nD45CQkLv2XNzJuPaxC6RjSrxXTXFvN/bNrwvH49amLn5+RM7AZJScYtmyZQgKCkJmZibef/99REREoEGDBnav6d+/P/r37y89zsnJueX4ISEht/V6xnWd2GrEzcnJ4bm4A3Fri63Ee9U2Zjmxb3ZdqDnmOxm3YcOGir8/kdJY2okcEhQUhNzcXOlxbm4ugoKCbuvrASA8PBxt2rRBamqq0kMkIiKiOoDJKDmkWbNmyMjIQFZWFqxWK5KTkxETE3NLX1tSUgKLxQIAKCoqwrlz5+zWmhIREdHdg7fpySE6nQ7Dhw/HzJkzIQgC4uLi0KRJE2zatAnNmjVDTEwMLly4gPnz56O0tBS//PILvv76ayQkJODatWtYuXIltFotBEHAY489xmSUiIjoLsVklBwWHR2N6Ohou2NPP/209PfmzZvjk08+qfZ1rVq1woIFC1QfHxEREbk+3qYnIiIiIqdhMkpERERETsPb9EREdNsqRjxq91j36X+cNBIiqus4M0pERERETsNklIiIiIichskoERERETkNk1EiIiIichomo0RERETkNExGiYiIiMhpmIwSERERkdMwGSUiIiIip2EySkREREROw2SUiIiIiJyGySgREREROQ2TUSIiIiJyGiajREREROQ0TEaJiIiIyGmYjBIRERGR0zAZJSIiIiKnYTJKRERERE7DZJSIiIiInIbJKBERERE5jd7ZAyAiIvVUjHjU7rHu0/84aSRERDVjMkoOO3HiBNasWQNBENCvXz889thjds+fOXMG69atw5UrVzB69Gh069ZNem7v3r349ttvAQCPP/44+vTpcwdHTkRERK6Ct+nJIYIgYPXq1Zg8eTIWLlyIgwcPIi0tze41ISEhGDVqFHr27Gl3vKSkBFu2bMGHH36IDz/8EFu2bEFJScmdHD4RERG5CCaj5JALFy6gQYMGCA8Ph16vR2xsLI4cOWL3mrCwMDRt2hQajcbu+IkTJ9C+fXv4+PjAx8cH7du3x4kTJ+7g6ImIiMhV8DY9OSQvLw/BwcHS4+DgYJw/f96hrw0KCkJeXl611yUmJiIxMREAMHv2bISEhNzy+PR6/W293lXirll6we74sNeaKxJXDa58jjNveBwSEsJz8f8pdS5qigtUHXNBtefkqCnu7ca++blwPG5tXPm6IHIlTEbJZfXv3x/9+/eXHufk5Nzy14aEhNzW6101rtz3Umu8asZWI25OTg7Pxf+n1rmwxaspthLvpca/kZudCzXHfCfjNmzYUPH3J1Iab9OTQ4KCgpCbmys9zs3NRVBQkENfm5eXd8tfS0RERPULk1FySLNmzZCRkYGsrCxYrVYkJycjJibmlr62Y8eO+PXXX1FSUoKSkhL8+uuv6Nixo7oDJiIiIpfE2/TkEJ1Oh+HDh2PmzJkQBAFxcXFo0qQJNm3ahGbNmiEmJgYXLlzA/PnzUVpail9++QVff/01EhIS4OPjgyeeeAJvv/02AGDIkCHw8fFx8ndEREREzsBklBwWHR2N6Ohou2NPP/209PfmzZvjk08+qfFr+/bti759+6o6PiIiInJ9vE1PRERERE7DZJSIiIiInIbJKBERERE5DZNRIiIiInIaJqNERERE5DRMRomIiIjIaZiMEhEREZHTMBklIiIiIqdhMkpERERETsNklIiIiIichskoERERETkNk1EiIiIichomo0RERETkNExGiYiIiMhpmIwSERERkdMwGSUiIiIip9E7ewBEROQc320qsHv8yNMBThkHEd3dODNKRERERE7DZJSIiIiInIbJKBERERE5DdeMEt0F1FwbWDU21xwSEdHt4swoERERETkNk1EiIiIichrepieHnThxAmvWrIEgCOjXrx8ee+wxu+ctFguWLFmCS5cuwdfXF6NHj0ZYWBiysrIwZswYNGzYEADQokUL/POf/3TCd0BERETOxmSUHCIIAlavXo2pU6ciODgYb7/9NmJiYtC4cWPpNbt374a3tzcWL16MgwcP4vPPP8eYMWMAAA0aNMC8efOcNXwiIiJyEbxNTw65cOECGjRogPDwcOj1esTGxuLIkSN2rzl69Cj69OkDAOjWrRtOnz4NURSdMFoiIiJyVZwZJYfk5eUhODhYehwcHIzz58/X+hqdTgcvLy8UFxcDALKysjBx4kR4enri73//O+69995q75GYmIjExEQAwOzZsxESEnLL49Pr9bf1eteJW2B3XO57qRW3ttjKxnVc5g2PQ0JCVPvsANe+3m5+LgqqPScnLnAnrosCu+Nyx3xn/o0oS81rmcgZmIzSHRcYGIhly5bB19cXly5dwrx587BgwQJ4eXnZva5///7o37+/9DgnJ+eW3yMkJOS2Xu+qceW+l1pxa4utVly5cnJyVPvsgLp1vd3sXMh5L9vX3unrQu6Y7/S/ESXcTlzb2nwiV8ZklBwSFBSE3Nxc6XFubi6CgoJqfE1wcDAqKipgNBrh6+sLjUYDNzc3AEBUVBTCw8ORkZGBZs2a3dHvwVkqRjwq/V336X+cOBIiIiLn45pRckizZs2QkZGBrKwsWK1WJCcnIyYmxu41nTt3xt69ewEAhw4dQtu2baHRaFBUVARBEAAAmZmZyMjIQHh4+J3+FoiIiMgFcGaUHKLT6TB8+HDMnDkTgiAgLi4OTZo0waZNm9CsWTPExMSgb9++WLJkCd544w34+Phg9OjRAIAzZ87g66+/hk6ng1arxYgRI+Dj4+Pcb4iIiIicgskoOSw6OhrR0dF2x55++mnp7waDAWPHjq32dd26dUO3bt1UHx8R1T1Vl7EAXMpCdDdgMkpUT/CHOBER1UVcM0pERERETsOZUaq3vttUYPf4kacDnDIOIiIiqh1nRomIiIjIaZiMEhEREZHTMBklIiIiIqdhMkpERERETsNklIiIiIichrvpqU5jbU0icjb+f4hIHs6MEhEREZHTcGaUiFwS68T+D88FEdVnnBklIiIiIqdhMkpERERETsNklIiIiIichskoERERETkNNzAR0U2xbA0REamJySgRkQuomvQz4SeiuwmTUSJyGiZgRETENaNERERE5DScGSUiInJBXK9Ndwsmo0REt+jPkoOqnZLYJYmI6NbwNj0REREROQ1nRonorsI+70REroUzo0RERETkNJwZJYedOHECa9asgSAI6NevHx577DG75y0WC5YsWYJLly7B19cXo0ePRlhYGABg69at2L17N7RaLYYNG4aOHTve+W+AiOgO4FpiopvjzCg5RBAErF69GpMnT8bChQtx8OBBpKWl2b1m9+7d8Pb2xuLFi/HXv/4Vn3/+OQAgLS0NycnJSEhIwJQpU7B69WoIguCMb4OIiIicjMkoOeTChQto0KABwsPDodfrERsbiyNHjti95ujRo+jTpw8AoFu3bjh9+jREUcSRI0cQGxsLNzc3hIWFoUGDBrhw4YITvovaVYx41O4PERERqUMjiqLo7EFQ3XPo0CGcOHECI0eOBADs378f58+fx0svvSS9Zty4cZg8eTKCg4MBAG+88QZmzpyJzZs3o0WLFnjggQcAAMuXL0enTp3QrVs3u/dITExEYmIiAGD27Nl34tsiIiKiO4wzo+Sy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WEaJSErt27eHyWTCs88+i+joaGg0GkRGRoqOJY3rnSlaXFyMH3/8EZcvX2YZJaLbxjWjRCQ9u90Ou93OW5juEYvFgvj4ePz444944okn8Oyzz6JevXqiYxGRSrCMEpFUDh48CADo2rXrNeOKoqBz584iYknJaDRi+/bt+Omnn9CtWzf069cPnp6eomMRkcrwMDgiksrOnTuh1+uvGdfr9di2bZuARHJau3YtJk+eDJ1OhwULFmDw4MEsokRUKVwzSkRSKS0thU6nu2Zcp9OhtLRUQCI5bd++HbVq1cLmzZuxZcsW17jT6YRGo8Hq1asFpiMiNWEZJSKp2Gw2WK3WawqpxWJBSUmJoFTyWb9+vegIRCQJPqYnIql0794dH330EfLz811jeXl5WLRoEXfTExFVQ9zARETS2b17N/7zn//AarUCuPKIfsCAAejdu7fgZEREVBHLKBFJy2KxAABq164tOAkREd0IyygRERERCcM1o0REREQkDMsoEUnJbrff1hgREYnFMkpEUpo6deptjRERkVg8Z5SIpHLx4kWcP38eNpsNmZmZKFsWb7FYUFxcLDgdERFVxDJKRFL5448/cODAARQWFmLNmjWu8dq1a2Po0KECkxER0fVwNz0RScfhcCAxMRFdunQRHYWIiG6Ba0aJSDqKomDHjh2iYxAR0W1gGSUiKbVu3Rpbt25FQUEBjEaj64uIiKoXPqYnIim9+eab14xpNBrExcUJSENERDfCMkpEREREwnA3PRFJKysrCwaDodxh9926dROYiIiIKmIZJSIpbdy4ESkpKTAYDAgPD0dycjJCQkJYRomIqhluYCIiKSUlJWHatGnw8fFBVFQU5s2bB7PZLDoWERFVwDJKRFLSarVQFAWKosBsNqNevXooLCwUHYuIiCrgY3oiklKLFi1gMpnQo0cPxMTEQKfTITg4WHQsIiKqgLvpiUh6eXl5sFgsaNasmegoRERUAcsoEUnrzJkzyM/PR2lpqWusY8eOAhMREVFFfExPRFJaunQpsrKy0KRJEyjK/5bHs4wSEVUvLKNEJKXjx49j4cKFomMQEdEtcDc9EUkpODgYBoNBdAwiIroFrhklIimlpKRgzpw58PHxgbu7O5xOJzQaDebPny86GhERXYWP6YlISsuWLcPYsWMRGBgIjUYjOg4REd0AyygRScnb2xsdOnQQHYOIiG6Bj+mJSEorVqyAyWRCREQE3N3dXePcTU9EVL1wZpSIpGSz2eDu7o4///yz3DjLKBFR9cKZUSIiIiIShkc7EZFU9u7di5ycHACA0+nE0qVLMWLECEyYMAGZmZmC0xERUUUso0QklR9++AENGzYEACQmJuLMmTOIi4vD8OHDsWrVKsHpiIioIpZRIpKKoiioVevKcvjff/8d3bp1g5eXF9q0aYPi4mLB6YiIqCKWUSKSiqIouHDhAmw2G44ePYrWrVu73rPZbAKTERHR9XA3PRFJZfDgwYiJiYHD4UBERASaNm0K4MqNTP7+/oLTERFRRdxNT0TSKS0thcVigaenp2vMarUCAHQ6nahYRER0HSyjRERERCQM14wSERERkTAso0REREQkDMsoEdUIFy5cgN1uFx2DiIgq4G56IqoR4uLikJubi44dO2L48OGi4xAR0f/jBiYiqjGcTicMBoPruCciIhKPj+mJSEq5ubmux/LHjh1DfHw8zGYziygRUTXDMkpEUlqwYAEURUFubi6WL1+OwsJCLF68WHQsIiKqgGWUiKSkKArc3Nzw66+/ok+fPnjllVdw4cIF0bGIiKgCllEikpKbmxsSEhJw4MABREREALhyMxMREVUvLKNEJKWoqChkZGTg+eefh7+/P/Ly8tClSxfRsYiIqALupiciqRQVFaGoqAhNmjQpN24wGODt7Q1vb29ByYiI6Ho4M0pEUlm5ciWKioquGb98+TJWrVolIBEREd0MyygRSSU3NxdhYWHXjIeGhiIrK0tAIiIiuhmWUSKSisViueF7JSUl9zEJERHdDpZRIpJKo0aNcOTIkWvGk5OTERAQICARERHdDDcwEZFUcnJyMHv2bAQHByMoKAgAcPLkSRw/fhzR0dF48MEHBSckIqKrsYwSkXTsdjsSEhLw999/AwCaNGmCzp07Q6vVCk5GREQVsYwSERERkTC1RAcgIqpKw4cPh0ajuWbc6XRCo9Fg9erVAlIREdGNcGaUiIiIiIThbnoiIiIiEoZllIiIiIiEYRklIiIiImFYRomIiIhIGJZRIiIiIhLm/wBBakrIT8zEmgAAAABJRU5ErkJggg==", - "image/svg+xml": "\n\n\n \n \n \n \n 2022-04-18T20:34:24.043948\n image/svg+xml\n \n \n Matplotlib v3.5.1, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfcAAAIZCAYAAAC703ZIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAC2dElEQVR4nOzddVhU6fs/8PeQIqEithigCAYGuiYqdmBLGOiu3YGrCCoiknYHBiq6Ciq6LqCoGGArFvhBQewgFBCHhjm/P/jN+TIC1jxDDPfruvZap+555nDOuc95UsBxHAdCCCGEyA2F0i4AIYQQQtii5E4IIYTIGUruhBBCiJyh5E4IIYTIGUruhBBCiJyh5E4IIYTImR8m97y8PHh7e2PkyJEYNmwYBg0ahLVr1yI7O/uHwbdt24aLFy8yKeiPbN68GadPn2YWLyoqCvb29j/13oiICMybNw8A8PjxYzg6OgIAbt++DXNzc2ZlAoBJkyYhKSmJacxfdfz4cRw5ckRm8du2bYt3794V+3paWhqmTJmCzMxMmZVBloYNG4bU1FSZfoeNjQ3OnTv3S5/5+vUrJkyYIKMS/Z779+9j8uTJGDZsGMzNzTFt2jRER0cDAN69ewcjIyMMGzaM/2/o0KE4ceJEsa+L//uZ81dISAhcXFy++57f2c7A98+rb9++RcuWLREfH1/oc0OGDMH58+fh7+8PExOTQr9ryZIlP/X9P3O+bNasWYmda8zNzXH79u2ffv+7d+/Qtm1bAMDWrVvh7Owsk3JduXIFmzdvBiC5P0RFRaFPnz4YMWIEDh069MP95HuWL1+OyMhIJuUtSOlHb3BycsKXL19w8OBBaGpqIj09HX///TeWLVuGtWvXfvezt2/fRpMmTZgV9nvmz5/PLJZIJMKyZcuwc+fOn3p/q1atsGXLFgDA8+fPizwoWbl+/brMYv+s8PBwNG3atNS+X11dHebm5ti8eTPs7OxKrRy/699//y3tIhTpy5cviIiIKO1i8O7evYvFixdj27ZtaNmyJQDgzJkzsLGxwdmzZwEAlSpVktie8fHxMDc3R8uWLaGhoVHo9V/Ru3dv9O7dW/ofUoQfnVe7du0Kf39/zJw5k//MgwcP8PXrV/Tu3Rv//vsv2rdvj927d//W97M8X8qziIgIfPnyBYDk/hASEoKOHTvC1dVV6u+4ceMGrKyspI7zre8m97dv3+K///7DtWvXoKGhAQCoXLkyVq1ahQcPHgAAXr58CWdnZ6SnpyMhIQGGhobYtGkTTpw4gcjISKxZswaKioro0aMH1q1bh7t37yIvLw/NmzfH8uXLoaGhgcePH8PJyQk5OTlo0KABPnz4gKVLl6Jjx47w9fWFj48PFBQUoKOjgxUrVqBx48ZYunQpUlJS8PbtW/Ts2ROfP39G06ZNMXnyZMTGxsLV1RUpKSnIy8uDjY0NRo8ejbS0NNjb2+P169dQUFBAixYt4OzsDAUFyQqMs2fPon79+qhVqxYOHjyIiIgIrFu3Djk5OejYsSMcHBwwevRohIeHw93dHYsXL8bq1auxZ88ebNmyBV+/foW9vT2GDx+O9PR0LFy4EC9evEBWVhZcXFzQvn17fP36FatWrcLTp08hEAhgamoKW1tbKCkpoVmzZrh58ya0tbUBgH8svpiaOHEivLy8UKdOHb7MsbGxWLZsGbKzs8FxHEaPHo1x48Zh69atePPmDd6+fYuEhAQYGxuja9euOH36NN69e4fFixfD3Nwcnz59gqOjIz5//ozExETUq1cPmzZtQvXq1dGrVy8YGxvj2bNnsLW1xaVLl3D9+nVUqlQJVlZWWLt2La5cuQJFRUW0bdsWK1euRGpq6k/Hq1atGlavXg2BQIBWrVpBJBIBwHf/XgMHDsS6deswefJk6OjoSPz9Xr58CUdHRyQlJUFBQQEzZ87EoEGDEBMTA2dnZ6SkpEAgEGDSpEkYPnw4bt++jQ0bNqBmzZqIiYmBmpoa5s6dCx8fH7x8+RL9+vWDg4MDbt++jTVr1qBWrVp4+/YtKlWqBA8PD+jr6xd7HKiqqqJly5bo3bs3nj59inXr1mH06NG4efMm8vLyYGdnh+TkZABAjx49sGDBAgDA9u3bERgYCEVFRTRu3BgrVqxAjRo1YGNjgzZt2uD+/fv4+PEjTExM4OnpWWgfBoALFy7Ay8sLmZmZGDJkCJ8o7t+/j3Xr1iEjIwMCgQBz586FmZkZ7O3tkZmZiWHDhqFjx45QU1PDwoULkZiYCFNTU3h7e6Nz5844c+YMQkJCsHnzZhw/fhxHjx6FSCRC1apVsWLFCujr6yM7O7vY471Xr14YMWIEbt68iY8fP2LgwIFF3nFu2bIFs2bN4hM7AAwdOhSqqqrIy8sr8pxVq1YtNGzYEK9evZL43M/w9/fHiRMnkJGRAQ0NDYwYMQLBwcHYvXs3EhMTsXLlSrx48QIKCgqwtrbmazlCQkKwd+9efP78GZ07d4aLi0uRfw+xnzmvjh07Fi4uLpgxYwYEAgEAwM/PD1ZWVlBUVPyl3wXgu+fLR48ewcXFBRkZGVBWVsaSJUvQuXNnAPl3xY8ePUJKSgomT56McePGFYp94sQJ+Pr6IicnB1++fMHUqVMxduxY+Pv748KFC1BQUMDr16+hrKwMT09PGBgY4Pnz53BwcEBGRgb09PSQnp5eZLkfPnzI12gkJiaiS5cucHNz+6nfnJubW+S5SUVFBTt37sT58+chEolQr149rFy5ErVq1YKNjQ2qVKmCFy9eYNCgQTh27Bjy8vKgqamJhg0bIjg4GIMHD8bRo0eRl5eHzMxMdO3a9Yf7SXG/Y+PGjUhISMDff/+NNWvWQE9PD66uroiOjkZOTg46d+6MJUuWQElJCVu2bMGFCxegrKyMatWqwd3dHTVr1ix+A3Dfce7cOW7UqFHfewvn4eHBnT59muM4jsvOzubMzc25c+fOcRzHcePHj+fOnj3LcRzHbd26lfPw8OBEIhHHcRy3fv16buXKlVxOTg7XvXt37sqVKxzHcdzNmze5Zs2acbdu3eJu3LjB9enTh/v8+TPHcRx38uRJbuDAgZxIJOLs7Oy4iRMn8uWws7Pj9u7dy+Xk5HCDBg3iIiMjOY7juNTUVG7gwIHcgwcPuFOnTnGTJk3iOI7jcnNzuWXLlnGvXr0q9Jvmzp3LnTx5kuM4jnv37h3XuXNnTiQScbdu3eK6du3K2drachzHcZ6enpyXlxd369YtbvDgwXwZp02bxnEcx926dYszMjLiHj58yHEcx3l7e3MTJkzgOI7jlixZwq1evZoTiURcVlYWN2nSJG737t0cx3GcgYEB/5u/ffzta2L29vb85xMSErgFCxZweXl53JYtWzgzMzMuNTWVy8jI4Dp06MC5u7tzHMdxFy5c4Pr168dxHMcdOHCA/7xIJOKmTJnC7du3j+M4jjMzM+O2bdtWaFtzHMcdPHiQGzduHJeRkcHl5eVx8+fP506dOvXT8bKysrguXbpwN27c4DiO4/777z/OwMCAe/v27Q//XnPnzuVOnDhRaFsMHz6cO3z4MMdxHPfhwweud+/e3NevX7nevXtzwcHBHMdxXFxcHGdqasrdv3+f/zs9efKE4ziOmzx5MmdlZcVlZWVxnz9/5lq0aMHFxcVxt27d4gwNDbm7d+9yHMdx//zzDzdixAiO475/HBgYGHCnTp0q9Pfctm0bt2LFCo7jOC4tLY1bsGABl5qayp04cYKzsrLi0tLSOI7juC1btvDbYfz48dy8efO4vLw87uvXr1y3bt24mzdvFtoG48eP56ZPn87l5ORwX79+5QYMGMBduXKFS0lJ4fr168e9ffuW3w7du3fn3r9/z719+5Zr06YNx3Ecd+fOHf63nTx5kuvatSu3fv16juM4bt68eVxgYCB3+/ZtbuzYsVx6ejrHcRwXFhbGDRw4kOO44o938d/fw8OD//5WrVpxb968KfQb2rRpw8XExBR6XqxgecXu37/PdejQgfvw4QP39u1bztDQkBs6dKjEf05OTkXGO3nyJNehQwfu69ev/GPxsTx79mzO09OT47j8c8rgwYO5V69ecePHj+dmzpzJ5ebmcunp6VzXrl35/aM4P3NezcvL43r37s3dunWL/84OHTpwnz594svWrl27Qr+tqOOB47hiz5fZ2dlc165ducuXL3Mcx3ERERGcubk5l5eXxxkYGPDH7JMnT7iWLVty2dnZEnGFQiFnaWnJJSUlcRzHcQ8ePOD/JidPnuRMTEy4jx8/chzHcc7OztySJUs4juO4YcOGcX5+fhzHcdy9e/f4c/63Fi5cyD8vFAq5jh07chERERJ/+y1btnCrVq0q9Nnizk2nTp3iFixYwOXk5HAcx3HHjh3jpkyZwnFc/nFjb2/PxygYu+D+UNzzxe0nxf0Ojss/Hh4/fsxxHMctXbqUO3ToEMdx+ee8v//+m/Py8uI+fPjAtWvXjsvKyuI4juP27dvHXbhwodBvLui7d+4KCgr8XVRxFi9ejOvXr2PPnj149eoVEhISirwKu3LlCr5+/YobN24AAHJyclC9enW+/axHjx4AgE6dOvFVvmFhYRg0aBB/Bzty5Ei4urry7bEmJiaFvufVq1d48+YNHBwc+OcyMzPxv//9D6ampti4cSNsbGzQpUsXTJw4EQ0bNiwU48WLF/xVeb169VC7dm1EREQgLCwM06ZNg5eXFziOQ0hICPbs2YOPHz8Wu310dXXRunVrAIChoSFOnjwJAAgNDcXRo0chEAigoqICa2trHDx4ENOmTfve5i5W3759YWdnh8ePH6Nz585Yvnw5f/fQpUsXaGpqAgBq1qwJU1NTAECDBg2QkpICIL824N69e/D29sarV68QExPDlxsA2rdvX+T33rhxA8OGDUOlSpUAAJs2beJf+5l40dHRUFJS4u8UzM3N+T4LJiYm3/17NWjQAC9fvpQoT0pKCp4+fQoLCwsAQJ06dXDx4kU8f/4cWVlZ6NevH4D8O7x+/fohLCwMHTt2RP369dG8eXM+rqamJlRUVKCtrQ11dXW+as7Q0JAv+6hRo+Ds7Izk5OQfHgdFbT9TU1NMmzYNHz9+RJcuXbBo0SJoamoiNDQUI0eOROXKlQEAEyZMwK5du/h2YjMzMygoKEBDQwMNGzbky/at0aNHQ0lJCRoaGujfvz9/7CUmJmL27Nn8+wQCAZ49eybR1GJiYoL4+Hh8/vwZYWFhmDlzJvz9/TFnzhzcvXsXbm5u2L59O16/fg1ra2v+c1++fEFKSkqxx7uYuHqzVq1aqF69Or58+QJdXV2J8v/M+Udc0wDkt2NXq1YNa9euRZ06dfDu3btfrpZv1qwZfzdd0I0bN7B48WIAgKamJgICAvjXBg0aBEVFRaipqaFRo0b4/Pnzd7/jZ36X+K7v5MmT6NixI86cOYPu3btLbMNfrZYv6nwZHR0NBQUF9OzZEwDQsmVL/Pfff/zr4j5DRkZGyM7OhlAoRLVq1fjX1dXVsWvXLly9ehWvXr3C06dPJfb7Fi1aoHbt2gCA5s2b48KFC0hOTsazZ88wfPhwvlzFNfN5eHggNDQUu3btwosXL5CZmYn09HRUrVr1h7+3uHPT/PnzERERgVGjRgHIb4bNyMjgP1fcue5nFLefFPc7vnXlyhVERETw/UbE/Ypq1aoFQ0NDjBgxAt27d0f37t35c2ZxvpvcjY2N8eLFCwiFQokdPj4+HitWrMCWLVuwdOlS5OXlYeDAgejZsyc+fvwIrojp6kUiERwcHPgknpaWhqysLCQmJhZ6v7jaqag4HMchNzcXAPiTX0F5eXnQ0tKSOKA/ffoETU1NqKqq4sKFC7h9+zZu3bqFv/76C8uXL8eAAQMkYggEAomDr2/fvggNDcX169exe/duBAQEICgoCJUqVUKDBg2+m9yVlZUl4op/07cHt0gk4n9XQT/T8QfIP+EHBwfjxo0buHnzJrZv345jx44BAFRUVCTeq6RU+M++du1aPH78GKNGjULHjh2Rm5srsf2L2tZFxfr06RNEIhEOHjz4U/EKbpNvY+rq6n7375WXl1fsbxNXZQL5F2tFVeMW3Jd+ZhsBKFQlynEcFBUVYWtr+93joKjtZ2xsjJCQENy8eRO3bt2ChYUFtm/fXmh7fLtviE9W4t9Z1HHybVk5joOSkhLy8vKgr6+P48eP86/Fx8dDW1tboq+IgoICzMzMcOXKFTx69Aienp7YvXs3zp07hzZt2kBdXR0ikQjDhg3jT2YikQgJCQmoUqVKsce7mKqq6g9/Q5s2bfDo0SMYGBhIPL9q1Sr07dsXDRo0kKpNfdmyZXxHJmtra6iqqn53Py+4T719+5ZPcgX3le/9PcR+5rxaqVIljBo1CgMGDIBQKISfnx9WrVr1079NfMEDgO/sVdRvU1RUlPhdQH7C19PTk/ht4vd8+9vi4uJgZWUFS0tLmJiYYMCAAbh8+TL/elH7alGxijvexo0bB0NDQ5iammLgwIF49OjRD7dvcTHF5yaRSIQpU6Zg7NixAPLPsQUvkIvbB372O4vaT/7666+f+h0ikQibN2+Gvr4+ACA1NRUCgQAKCgo4fPgwIiIicPPmTbi5uaFjx45Yvnx5sWX5bm/5WrVqYciQIXBwcIBQKAQACIVCODk5oWrVqqhUqRKuXbuG2bNnY9CgQRAIBHj06BF/IlVUVORPSt26dcORI0eQnZ0NkUiEFStWYMOGDdDX14eKigpCQ0MB5Pc2j46OhkAgQLdu3RAUFMT32Dx58iSqVq1a5N22WOPGjaGqqsof8B8/foS5uTkiIyPxzz//wN7eHt26dcPixYvRrVs3xMTEFBnj7du3/OO+ffviv//+Q15eHmrWrImuXbti7dq16N+/f6HPFvzN3yPeHhzHITs7G35+fujSpQsAQFtbm+/YdOHChZ+Kv2jRIgQFBWHw4MFYuXIlNDQ0vnvR8a1r165h4sSJGD58OKpXr44bN24U265ZsAydO3dGQEAA/3d1cnJCYGDgT8czMDAAx3G4evUqgPz2S/GB9qO/17t379C4cWOJeBoaGmjRogXfE/jjx48YM2YMtLS0oKysjPPnzwPIP5EGBwfz2/xnPX36FE+fPgUA+Pr6ol27dtDS0vrucVCcdevWYceOHejTpw+WLVuGJk2a4NWrV+jWrRv8/f35K3sfHx906NCh0AXIj5w+fRocx+HLly84e/YsunfvjjZt2uD169e4e/cugPxev/3790dCQgKf/MUnnb59+2Lv3r0wMDCAiooKOnXqhA0bNvD7fdeuXREYGIiEhAQAwNGjRzFx4kQAxR/vv2LmzJnYtm2bRE9if39/BAcHF0r4v8PV1RX//vsv/v33X4wZM+a77+3cuTNf6/b161dMnDgRr169+q3v/ZnzKgBUq1YNZmZm2LJlCxQVFdGmTZuf/g7x7/r333/RqlWrYt+np6cHgUDAd9R98uQJJk6c+MOaBbHIyEhoa2tj1qxZMDU15RP79/b9qlWrokWLFvwF5pMnT/ga3IK+fPmCyMhI/P333+jXrx/i4+Px5s2bny5bceembt264cSJE/y237x5c7GjDH72fF7wO4vaT773O77NkwcOHODzwsyZM3H48GE8ffoU5ubm0NfXx/Tp0/Hnn3/i2bNn3y3LD3vLr1y5Ejt27IC1tTUUFRWRnZ2NPn36YO7cuQCAhQsXYvbs2ahSpQrU1NTQoUMHvHnzBkD+3aSnpydycnIwa9YseHp6YsSIEcjLy4ORkRGWLl0KJSUlbN26FStXrsSGDRvQqFEj6OjooFKlSvjjjz/w559/8jubtrY2du/e/d3OKioqKtixYwdcXV2xd+9e5ObmYv78+TAxMYGRkRHu3LmDQYMGQU1NDXXr1i1y6E///v1x4cIFvtpG3ONfXA3SrVs37Nixo8jk3rZtW2zatAmzZ8/+7rCi5cuXw8XFBUOGDEFOTg5MTU0xY8YM/jVnZ2doaWmhS5cuqFGjBv+5vn37YuzYsdixY4fECW7WrFlYtmwZfH19oaioiD59+uCPP/7AnTt3ii1DQbNnz8aaNWuwY8cOKCoqol27dvzf8Vvdu3fH6tWrAQBTpkzB+/fvMXLkSHAchz/++AM2NjaoV6/eT8VTVlbG9u3b4eTkhA0bNsDIyIivehw+fHixf6/s7Gw8ePCgyN6q69evx6pVq+Dj4wOBQABXV1fUqVMHO3bsgIuLC7Zu3Yq8vDzMnj0bnTp1+qUhODo6Oti0aRPev38PbW1trFmzBsD3j4PiTJw4EUuXLoW5uTlUVFTQrFkzmJubQ0lJCR8/foSFhQVEIhEaNmyIdevW/XQZxTQ1NTFy5EhkZmZi/Pjx6NixI4D8jmpr1qxBVlYWOI7DmjVrUK9ePb7j28CBA3H06FF07twZ8fHxfOITX2z36tULQH6zwtSpUzFp0iQIBAJoaGhg27ZtEAgExR7vv6J9+/ZwcXGBq6sr0tPT+Q63hw4dgo6OzneHS4oVrLYvyMPDA0ZGRj9dFkdHRzg5OWHIkCHgOA7Tp0//YYe9ZcuWoWXLlkVeOPzovCo2duxYWFpaFrmf37t3r9BvU1RUhL+//0//LhUVFWzduhVubm5Ys2YNlJWVsXXr1p++kOzatStOnDiBAQMGQE1NDcbGxtDW1sbr16+/+7kNGzbA3t4ex44dQ4MGDfiagoKqVKmCadOmYcSIEahatSqqVauGdu3a4fXr14WacIpibW1d5LlJQUEB8fHxsLS0hEAgQJ06deDh4VFkjM6dO2Pu3LlQVlZGixYtfvidxe0nxf2Ozp07o0+fPli4cCFcXFywbNkyuLq68nmhS5cumDJlCpSVlTFw4ECMGjUKlStXRqVKlb571w4AAu5n6zhkyNPTk+/1/PHjRwwbNgwXL16ElpZWqZQnLy8PI0eOhJeXF2rVqlUqZSDf5+/vj5iYmBIdCnf79m2sXr1aor2VkOJcv34dMTEx+PPPP0u7KKQC+uGde0moV68e/vzzTygpKYHjOLi4uJRaYgfyr35Xr16NDRs2wNPTs9TKQYomFAoREBCAbdu2lXZRCClWSkoKRo8eXdrFIBVUmbhzJ4QQQgg7NLc8IYQQImcouRNCCCFyhpI7IYQQImfKRIc6eRIeHl7aRSCEkHKpqFn0yO+h5C4Dv7KDRkVF/dJ4W3mNK8vY5S2uLGNTXNnHLm9xZRn7V+LSjRFbVC1PCCGEyBlK7oQQQoicoeROCCGEyBlK7oQQQoicoeROCCGEyBlK7oQQQoicoeROCCGEyBka506InNoQeavI588W8/yP2Lbs9MP3xMTEYO3atcjIyEB6ejp69OiBuXPnQiAQFPn+Dx8+4OnTp/wa8aVl3bp10NPTg5GREUJCQjBnzpwi33f37l1oamrC0NBQ4nkvLy906tQJz58/x927d+Hu7v5T33v48GGMHz8eoaGh+PjxI6ysrKT+LQVt3boVOjo60NPTw7Fjx7Bx40am8UnZRcmdkFL0bQL+mQRaVqWmpsLW1hZbt25Fo0aNkJeXh/nz5+PYsWMYM2ZMkZ+5desWXrx4UerJXczIyOi7k66cPHkSgwYNKpTcp02bBgB4/vz5L33fzp07MX78eHTv3v3XC0vId1ByJ4QwERISgo4dO6JRo0YAAEVFRXh6ekJZWRl5eXlwdHREXFwcEhIS0KtXL8ybNw9eXl7IzMxE27ZtUb9+fbi4uAAAqlatCjc3N3AcBycnJ0RGRkJHRwfv37/Hzp07AQAODg7Iy8uDQCDA8uXLYWhoCDMzM+jp6UFfXx+XL1/G8ePHUbVqVfzzzz9IS0vD1KlT+fLeuHED9vb20NbWRk5ODvT09HD79m3+Dtfe3h6vX79GZmYmJkyYgCZNmiAsLAxPnjxBkyZNMG7cOP67UlNTMWjQIADAs2fPMHHiRAiFQsydOxc9e/ZEr169cPbsWaiqqvK1BPHx8fjy5QucnJxgbGyMFy9e4O+//8b+/fsRGBgIJSUltG/fHosXL8bWrVvx5MkT5Obm4sOHD7C3t4epqanE9l+/fj0iIyORkpICQ0PDn649IPKJkjshhImEhATo6upKPKeurg4AePfuHdq0aQMLCwtkZWWhe/fuWLhwIaZNm4YXL16gd+/esLS0hJubG5o0aYLjx49j7969qFatGlJSUnDixAkkJSWhX79+AIA1a9ZgwoQJ6NOnD6KiouDg4AB/f398/PgR/v7+qFatGjQ0NBAYGIhx48bhzJkz2LZtG1+unJwceHt747///kPVqlX5O28xoVCIu3fvws/PDwBw/fp1tGzZEqamphg0aBDq1q0r8V1Lly7lP6uqqooDBw4gKSkJFhYWxd6Vz5w5E4cPH4aTkxP8/f0B5F8YnD17FseOHYOSkhLmzp2Ly5cvAwCUlJSwa9cuXL9+Hfv375dI7kKhEFpaWvD29oZIJMLgwYMRHx//W39HIh8ouRNCmKhbty7+97//STz39u1bxMXFwcjICBEREbh16xY0NDSQnZ1d6POxsbFYtWoVgPzk26hRI6SlpaFNmzYAAG1tbejp6fHv7dChA4D8qvS4uDgAQLVq1VCtWjUAwKhRo2Bra4sOHTpAR0cHOjo6/HclJSVBQ0ODf2/btm0lyqKhoQEHBwesWLECQqEQQ4cOLVTegt9VkJGREQQCAapXrw5NTU2kpKRIvM5xXNEbEMCLFy/QunVrKCsrAwDat2+PmJgYAOB/e+3atQttP1VVVSQlJcHW1haVK1dGeno6cnJyiv0eIv+otzwhhAkzMzOEhYXhzZs3APITtIeHB6Kjo+Hv7w9NTU2sX78ekyZNQmZmJjiOg4KCAkQiEQCgcePG8PT0hI+PDxYvXoyePXuiQYMGePjwIQDgy5cvePXqFQBAX18f9+7dA5C/OIk4cSso/N8prV69etDU1MSuXbswevRoibJWr14daWlpSEpKAgBERERIvJ6QkIAnT55g+/bt8PLywtq1a5GbmwuBQMAn54LfVZC43T0xMRHp6emoVq0aVFRUkJCQAI7j8PTpU/693yZ6PT09PH78GLm5ueA4Dnfv3kXjxo0BoNhOiQD4DnkbNmyAra0tv31JxUV37oQQJjQ0NODh4YHly5eD4zikpaXBzMwMY8eOxfPnz7Fo0SI8fPgQKioqaNiwIRISEmBgYICdO3eiRYsWcHJygp2dHZ9EXV1d0aBBA7x8+RLW1tbQ0dFBpUqVoKysjCVLlmDFihXYv38/cnNz4erqWmSZLC0t4eLigrVr10o8r6SkhGnTpmHy5MmoUqUKlJQkT4U1atRAYmIirK2toaCggEmTJkFJSQmtW7fGunXrUL9+/WK3Q3Z2NiZMmID09HQ4OztDIBBgypQpmDZtGurVqwctLS3+vfr6+vj777/RpUsXAECzZs0wcOBAjBkzBiKRCCYmJujTp4/EBUFRjI2NsWPHDowbNw4CgQC6urpISEj47meIfBNwdHnHVHh4OC35WsZil+W4xfWWL8tlLsm4Fy5cQHZ2NgYPHozk5GSYm5vj8uXLUFFR+anPnz17FtHR0Zg/f36h18rbtpD3Y+9Xz53k++jOnRBSZuno6MDLywsHDx5EXl4e/v77759O7Bs2bMDt27exa9cuGZeSkLKHkjshpMyqVKkSP/TtV9na2jIuDSHlB3WoI4QQQuQMJXdCCCFEzlByJ4QQQuRMhW1zF4lEcHJywrNnz6CiogIXFxc0bNiQf/3IkSPw9/eHQCDApEmTMGjQIGRmZmLx4sX4/Pkz1NXV4enpCW1t7VL8FYQQQkhhFTa5X7x4EdnZ2fD19cXDhw/h4eHBd9xJSkrC0aNHcerUKWRlZWHw4MEYOHAgjh49CgMDA8ydOxeBgYHYsWMHli9fXsq/hJCicQgo9JyhEcAh9rfiCWD+w/fQqnCltyrcly9f4OnpiTdv3iA3Nxd16tSBs7MzNDU10atXL9SpUwcKCgrgOA5Vq1aFh4cHnjx5ggULFqBOnTr8VMHVqlXDli1bvvtdc+bMkZjOtyAbGxs4OTlBX1//t38LkV6FTe7h4eH83Mxt2rRBZGQk/5q2tjZOnz4NJSUlvH//HqqqqhAIBAgPD8eUKVMAAN27d8eOHTtKpeyElEW0Klzprgpna2sLa2tr9O3bFwBw4MABODo68su87t+/H6qqqgCAtWvXwt/fH82aNUOnTp0wbdq0XxrnXlxiJ2VHhU3uQqEQGhoa/GNFRUXk5ubyM1UpKSnh8OHD2Lp1K2xsbPjPaGpqAshfEOPr169Fxo6KivrpcmRmZv7S++U1rixjl6e44ngsYhsynpPke+XJzMyEj48PDAwMkJGRwb9XPLNbZGQkdu7ciU+fPiE5ORl//PEHrK2tsW3bNmRlZaFGjRqoWbMm9u7dC47joKmpiblz50JBQQHz589HbGwsqlativj4eCxbtgxAfoIRrwo3ZcoUNG7cGFOnTkW9evWgq6uLu3fvYu3atdDU1MTZs2eRkZGBkSNH8mW+evUqFi5cCC0tLeTm5qJSpUrw8/NDcHAw/v77b2zZsgUfP35EdnY2zM3Noauri8uXL+P+/ftYvnw5HBwc+O8SCoUwNTVFcnIyoqKiMHr0aGRkZMDa2hrt27fH1KlTsX37dqioqODQoUOoV68ekpKSkJKSgvnz56Np06Z4//49JkyYgNOnT+PatWtQVFRE8+bNMXHiRBw9ehQfP36EUChEQkICJk+eLDEffkJCAt69e4f69evz2759+/Zo2bIloqKikJ2djadPn0JFRQUcx+HNmzeoVKkSXr9+jdTU1B/ubyEhIQgJCQHHcbC2tsbGjRtx4MABREdHY9++fRCJRKhevToWLlyItLQ0uLu7IyUlBenp6Vi8eDFq164t1b5Hfl2FTe4aGhpIS0vjH4tEokJTUI4fPx6WlpaYOnUqv+CF+DNpaWkS00gW9CtXwGVhZqiyEFeWscty3LPfzFAnjsci9u9Wvxfne+WJioqCkpISjI2Ni3zfu3fv0LNnT4lV4VxcXDBnzhy8ePECEydOhKWlJTw9PflV4cLCwlCtWjUIBAIEBATwq8I1adIEa9aswYwZM/hV4ZYtWwZ/f398+vQJ//33H1+1HBMTg3HjxmHVqlXYtm0bPwd9Tk4Opk6dKrEqXN26dfnpYXV1dRETEyOxKtyQIUNw/fp1DBo0CN27d5f4rqVLl0JXVxdqampQU1PDP//8w68KN27cOKioqMDQ0BCqqqqoXr066tatizlz5iA4OBibN2+Gv78/MjMzoaCggPv37/M1h3PnzkVcXBxq1KiBpKQk7Nmzh18VbuzYsfz2zczMRJMmTYr9G6moqGDNmjVQUFCAQCCAsbExZs6cifDwcPzvf//D6tWr+Wr5Hj168DWUBf++tWvX5psut27dCiMjIyxduhQbN26Evr4+jh8/DmVlZairq2PIkCEYNmwYHB0d8fz5c5iZmf1w/woPD//he8jPq7DJvV27drh8+TIGDRqEhw8fwsDAgH/txYsX2LBhA7Zu3QplZWWoqKhAQUEB7dq1w9WrV2FsbIzQ0FCaKpGQAmhVOPDlKelV4erWrctvA7GcnBycPXuWL3vBavmCiqqWT0tLw4wZMwAAXbp0Qa1atfgFbAr69OkT37ZuYWHBP9+yZUsA+dsoMzOz2N9LZKfCDoXr27cvVFRUYG1tDXd3d9jb28Pb2xshISHQ09ODoaEhrKysYG1tjdatW+OPP/7AmDFjEBMTgzFjxsDX17fYTjeEVES0Kly+0lgVrlatWqhWrRouXrzIP3fo0CGEhIQU+5nvUVdXh4+PD3x8fDBz5sxif2/NmjX5v4mXlxcuXLjwW99H2Kuwd+4KCgpwdnaWeK5g7845c+YUSt5qamo/7EVKSEVFq8LlK41V4QBgzZo1cHZ2xv79+5GTk4MGDRrAxcXlh5+7desWXr9+zVfLA8CePXtQqVKlH3521apVcHBwgIKCAmrUqIE///wThw4d+uHniOzRqnCM0apwZS92WY5Lq8J9H60KJ/u4soxNq8KVngp7504IKftoVThCfg8ld0JImUWrwhHyeypshzpCCCFEXlFyJ4QQQuQMJXdCCCFEzlByJ4QQQuQMdagjRE5duRhdxLOKiH9f1PM/1rOPwQ/fQ6vClb1V4c6fP4/bt29jzZo1/HvFU84uWLCAVoWTU5TcCSFM0KpwZXNVOFdXV2zatAnp6emoXLky/zvEFxK0Kpx8ouROCGEiJCQEHTt2RKNGjQDkr7To6ekJZWVl5OXlwdHREXFxcUhISECvXr0wb948eHl5ITMzE23btkX9+vX5GdWqVq0KNzc3cBwHJycnREZGQkdHB+/fv+eHxjk4OPCrwi1fvhyGhoYwMzODnp4e9PX1cfnyZRw/fhxVq1bFP//8g7S0NEydOpUv740bN2Bvbw9tbW3k5ORAT08Pt2/fxrFjx7Bx40bY29vj9evXyMzMxIQJE9CkSROEhYXhyZMnaNKkCcaNG8d/V2pqKgYNGgQAePbsGSZOnAihUIi5c+eiZ8+e6NWrF86ePQtVVVW+liA+Ph5fvnyBk5MTjI2N8eLFC/z999/Yv38/AgMDoaSkhPbt22Px4sXYunUrnjx5gtzcXHz48AH29vb8ktUA8P79e3z69IlP7ED+HfSoUaNQuXJl9OrVC+fPn8fw4cORnZ2N0NBQLF68GI8ePfqpv62/vz9OnjwJkUiEefPm4e+//8b169fx6NEjuLm5QSQSoVatWli3bh0AYPv27fj06ROSkpKwc+dO6Orq/v6ORX4LJXdCCBMJCQmFTuLiqt53796hTZs2EqvCLVy4ENOmTcOLFy/Qu3dvWFpaws3NjV8Vbu/evahWrRpSUlJw4sQJflU4IH+q1QkTJvCrwjk4OMDf3x8fP36Ev78/qlWrBg0NDQQGBmLcuHE4c+aMxN1mTk4OvL29JVaFK0goFOLu3bsSq8K1bNkSpqamGDRoEOrWrSvxXUuXLuU/q6qqigMHDvCrwhV3Vz5z5kwcPnwYTk5O8Pf3B5B/YXD27FkcO3aMXxXu8uXLAPKnzN21axe/KlzB5J6QkFBoSlxFRUV+iWpLS0usW7cOw4cPx8WLF9GjRw9+etlvp58talU4ANDS0io054CjoyM2bNjArwoXGxvLxxCvCnfu3DmJiypSMii5E0KYoFXhwJenrK0K16JFC3z9+hXx8fHw9/eHnZ0d/z5aFU4+UW95QggTtCpcvrK6KtyoUaPg4+ODzMxMNG3atNhYAK0KJw/ozp0QwgStCpevrK4KN2TIEPTs2RPLli2T+BytCiefaFU4xmhVuLIXuyzHpVXhvo9WhZN9XFnGplXhSg/duRNCyixaFY6Q30PJnRBSZtGqcIT8HupQRwghhMgZSu6EEEKInKHkTgghhMgZSu6EEEKInKHkTgghhMgZ6i1PCKnQCi6N+zPL2hJSHtCdOyGEECJnKuydu0gkgpOTE549ewYVFRW4uLigYcOG/OsHDhxAYGAggPwVjubMmQOO49C9e3d+Scs2bdpg0aJFpVF8QgghpFgVNrlfvHgR2dnZ8PX1xcOHD+Hh4cFPlvH27VucOXMGx48fh4KCAsaMGYM+ffpATU0NLVq0oBmvCCGElGkVtlo+PDycXw+5TZs2iIyM5F+rXbs29u7dC0VFRQgEAuTm5kJVVRVPnjxBfHw8bGxsMHXqVLx48aK0ik8IIYQUq8IuHLNs2TL069cPPXr0AAD07NkTFy9elFgdiuM4rFmzBmlpaXB2dsbdu3fx6dMnDBw4EPfu3YO7uztOnjwpETc8PByVK1f+6XJkZmb+1OpLv6q8xZVl7LIc92zeF4nHAxWrMItdFIpbOHb8e0X+uVr18pjFZU3ej7309HRaOIahClstr6GhgbS0NP6xSCSSSOxZWVlwcHCAuro6Vq5cCQBo2bIlFBXzTwTt27fn12f+dp3lX1ldqSysxlQW4soydlmOe/abVeHE8cpymeUhbsHY8e//r7c8i+8qz9uiNOOGh4cz//6KrMJWy7dr1w6hoaEAgIcPH8LA4P+GwHAch1mzZqFZs2ZwdnbmE/q2bdtw8OBBAMDTp09Rp06dQomdEEIIKW0V9s69b9++uH79OqytrcFxHNzc3ODt7Y0GDRpAJBLhzp07yM7ORlhYGID8FaamTZuGxYsX4+rVq1BUVIS7u3sp/wpCCCGksAqb3BUUFODs7CzxnL6+Pv/viIiIIj/n5eUl03IRQggh0qqw1fKEEEKIvKqwd+6EkIqJQwAAwNAI4BALgKacJfKH7twJIYQQOUPJnRBCCJEzlNwJIYQQOUPJnRBCCJEzlNwJIYQQOUPJnRBCCJEzlNwJIYQQOUPJnRBCCJEzlNwJIYQQOUPJnRBCCJEzlNwJIYQQOUPJnRBCCJEzlNwJIYQQOUPJnRBCCJEzlNwJIYQQOUPJnRBCCJEzlNwJIYQQOUPJnRBCCJEzlNwJIYQQOUPJnRBCCJEzlNwJIYQQOUPJnRBCCJEzSqVdgNIiEong5OSEZ8+eQUVFBS4uLmjYsCH/+oEDBxAYGAgA6NGjB+bMmYPMzEwsXrwYnz9/hrq6Ojw9PaGtrV1aP4EQQggpUoW9c7948SKys7Ph6+uLRYsWwcPDg3/t7du3OHPmDI4dOwY/Pz9cu3YNT58+xdGjR2FgYIB//vkHw4cPx44dO0rxFxBCCCFFq7DJPTw8HKampgCANm3aIDIykn+tdu3a2Lt3LxQVFSEQCJCbmwtVVVWJz3Tv3h03b94slbITQggh31Nhq+WFQiE0NDT4x4qKisjNzYWSkhKUlZWhra0NjuOwZs0aNG/eHI0bN4ZQKISmpiYAQF1dHV+/fi0ydlRU1E+XIzMz85feL69xZRm7PMUVxytPZS5vcQ2Nin+NxXeVp20h69iyLDP5vgqb3DU0NJCWlsY/FolEUFL6v82RlZUFBwcHqKurY+XKlYU+k5aWBi0trSJjGxl95+zxjaioqF96v7zGlWXsshz3bOQticfieGW5zOU9LofYYl9j8V3laVvIOvavxA0PD2f+/RVZha2Wb9euHUJDQwEADx8+hIGBAf8ax3GYNWsWmjVrBmdnZygqKvKfuXr1KgAgNDQUJiYmJV9wQggh5Acq7J173759cf36dVhbW4PjOLi5ucHb2xsNGjSASCTCnTt3kJ2djbCwMACAra0txowZAzs7O4wZMwbKyspYv359Kf8KQgghpLAKm9wVFBTg7Ows8Zy+vj7/74iIiCI/t2XLFpmWixBCCJFWha2WJ4QQQuQVJXdCCCFEzlByJ4SUSRwCYGgUCw4BpV0UQsodSu6EEEKInKHkTgghhMgZSu6EEEKInKHkTgghhMgZSu6EEEKInKHkTgghhMgZSu6EEEKInKHkTgghhMiZCju3PCGEyNKVi9ESj3v2MSjmnYSwR3fuhBBCiJyh5E4IIYTIGaqWJ4SQMmZD5C2Jx7YtO5VSSUh5RXfuhBBCiJyh5E4IIYTIGUruhBBCiJyh5E4IIYTIGepQRwgh5QiNnyc/g+7cCSGEEDlDyZ0QQgiRM5TcCSGEEDlDyZ0QQgiRMxW2Q51IJIKTkxOePXsGFRUVuLi4oGHDhhLvSUpKwpgxY3DmzBmoqqqC4zh0794djRo1AgC0adMGixYtKoXSE0IIIcWrsMn94sWLyM7Ohq+vLx4+fAgPDw/s3LmTfz0sLAzr169HYmIi/9ybN2/QokUL7Nq1qzSKTAghhPyUClstHx4eDlNTUwD5d+CRkZESrysoKMDb2xtVq1bln3vy5Ani4+NhY2ODqVOn4sWLFyVZZEIIIeSnVNg7d6FQCA0NDf6xoqIicnNzoaSUv0m6du1a6DM1atTAtGnTMHDgQNy7dw+LFy/GyZMnC70vKirqp8uRmZn5S++X17iyjF2e4orjlacyyyquodH//Ztl7IJxv8Xie/5vWygyix0VFSWTuGLlab8gP6fCJncNDQ2kpaXxj0UiEZ/Yi9OyZUsoKuYfWO3bt0dCQgI4joNAIJB4n5HRd84e34iKivql98trXFnGLstxz36z+pc4Xlkuc0nF5RDL/5tl7IJxv8Xie8TbIv695GQzvxK7qP2CRdzilIX9Ijw8nPn3V2QVtlq+Xbt2CA0NBQA8fPgQBgY/nuVp27ZtOHjwIADg6dOnqFOnTqHETgghhJS2Cnvn3rdvX1y/fh3W1tbgOA5ubm7w9vZGgwYN0Lt37yI/M23aNCxevBhXr16FoqIi3N3dS7jUhJCKiEMADI3EtQ403Sz5sQqb3BUUFODs7CzxnL6+fqH3Xbp0if93lSpV4OXlJfOyEUIIIdKosNXyhBBCiLyi5E4IIYTIGUruhBBCiJyh5E4IIYTImQrboY4QUjFs+GbM+MKWpVQQQkoQ3bkTQgghcobu3AkhhAEOAQBA49FJmUB37oQQQoicoeROCCGEyBlK7oQQQoicoeROCCGEyBlK7oQQQoicoeROCCGEyBlK7oQQQoicoeROCCGEyBlK7oQQQoicoeROCCGEyBlK7oQQQoicoeROCCGEyBlK7oQQQoicoeROCCGEyBlK7oQQQoicoeROCCGEyBml0i4AIYQAwIbIWxKPF7YspYIQIgcq7J27SCSCo6MjrKysYGNjg9evXxd6T1JSEvr374+srCwAQGZmJubOnYuxY8di6tSpSEpKKuliE0IIIT9UYZP7xYsXkZ2dDV9fXyxatAgeHh4Sr4eFhWHSpElITEzknzt69CgMDAzwzz//YPjw4dixY0dJF5sQQgj5oQqb3MPDw2FqagoAaNOmDSIjIyVeV1BQgLe3N6pWrVrkZ7p3746bN2+WWHkJIYSQn1Vh29yFQiE0NDT4x4qKisjNzYWSUv4m6dq1a5Gf0dTUBACoq6vj69evRcaOior66XJkZmb+0vvlNa4sY5enuOJ45anMsowrJsvYrL7H0Eh2sWUdt7zuF6R4FTa5a2hoIC0tjX8sEon4xP4zn0lLS4OWllaR7zMy+sFRXkBUVNQvvV9e48oydlmOe/abTmTieGW5zLKK++22KEia2N+Ly/J7OMQyi11SZRYrC/tFeHg48++vyCpstXy7du0QGhoKAHj48CEMDAx+6jNXr14FAISGhsLExESmZSSEEEJ+R4W9c+/bty+uX78Oa2trcBwHNzc3eHt7o0GDBujdu3eRnxkzZgzs7OwwZswYKCsrY/369SVcakIIIeTHKmxyV1BQgLOzs8Rz+vr6hd536dIl/t9qamrYsmWLzMtGCCGESKPCVssTQggh8qrC3rkT6Vy5GC3xuGefH/dZIIQQUjLozp0QQgiRM5TcCSGEEDlDyZ0QQgiRM5TcCSGEEDlDyZ0QQgiRM5TcCSGEEDlDyZ0QQgiRM5TcCSGEEDlDyZ0QQgiRMzRDHfkpHAIA5K9Znb+0Jc1IRwghZRXduRNCCCFyhu7cCSFlHq1lQMivoTt3QgghRM5QcieEEELkDCV3QgghRM5QcieEEELkDCV3QgghRM5QcieEEELkDCV3QgghRM5QcieEEELkDE1iQ8oUmqyEEEKkR3fuhBBCiJypsHfuIpEITk5OePbsGVRUVODi4oKGDRvyr/v5+eHYsWNQUlLCzJkzYWZmhpSUFPTv3x8GBvl3k3369MHEiRNL6ycQQgghRaqwyf3ixYvIzs6Gr68vHj58CA8PD+zcuRMAkJiYCB8fH5w8eRJZWVkYO3Ysunbtiv/9738wNzfHihUrSrn05HcUrPKn6n5CiDyrsNXy4eHhMDU1BQC0adMGkZGR/GuPHz9G27ZtoaKiAk1NTTRo0ABPnz5FZGQknjx5gvHjx2PevHlISEgoreITQgghxaqwd+5CoRAaGhr8Y0VFReTm5kJJSQlCoRCampr8a+rq6hAKhdDT00PLli3RpUsXnDlzBi4uLtiyZUuh2FFRUT9djszMzF96f2nFNTT6/ussviszMxOAukzi5sdRlFFcdsTxyst+Ieu4xZHVd0kTtySOEVnFlZf9gvyfCpvcNTQ0kJaWxj8WiURQUlIq8rW0tDRoamrC2NgYampqAIC+ffsWmdgBwMjoB0d5AVFRUb/0/tKKyyH2u6+z+K6oqCh8kVFcIyMjxL//v2p5lnGlcTbylsRjcbzysl+wjPvttvieX/kuWcX9FstjpKTKLFYW9ovw8HDm31+RVdhq+Xbt2iE0NBQA8PDhQ76THAAYGxsjPDwcWVlZ+Pr1K2JjY2FgYIDly5cjODgYAHDz5k20aNGiVMpeUjZE3uL/I4QQUn5U2Dv3vn374vr167C2tgbHcXBzc4O3tzcaNGiA3r17w8bGBmPHjgXHcVi4cCFUVVWxaNEiODg44OjRo1BTU4OLi0tp/wy5wCEAQH61Zvx76uhGCCHSqrDJXUFBAc7OzhLP6evr8/+2tLSEpaWlxOu6urrw8fEpkfIRQgghv6vCJndSer6t5l/YUjbfU7BGIL89lGoFCFsF92VZ7ceE/I4K2+ZOCCGEyCtK7oQQQoicoWr5MoAWSyGEEMIS3bkTQgghcobu3EsJDf8ihBAiK3TnTgghhMgZunMnpAwpWKNz5aKixGvUF4MQ8rPozp0QQgiRM3TnXkJKauIWQggpzrfnIduWnUqpJETW6M6dEEIIkTN0506IlGieAkJIWUPJnRDy276dv18A81IuESEEoGp5QgghRO5QcieEEELkDFXLE/KLaClZQkhZR8mdyA0ablj6qHMhIWUDVcsTQgghcobu3An5CQVrBSp6jQBtC0LKPrpzJ4QQQuQM3bkTQgiRCk1rW/ZQcidEDv3oZFuw4xt1eiNE/lC1PCGEECJn6M6dkAqAxuYTUrFU2OQuEong5OSEZ8+eQUVFBS4uLmjYsCH/up+fH44dOwYlJSXMnDkTZmZmSEpKwt9//43MzEzUrFkT7u7uUFNTK8VfQQghhBRWYavlL168iOzsbPj6+mLRokXw8PDgX0tMTISPjw+OHTuGffv2YcOGDcjOzsaOHTtgbm6Of/75B82bN4evr28p/gJCCJEOhwBwCIChUSw4BODKxWj+P1K+VdjkHh4eDlNTUwBAmzZtEBkZyb/2+PFjtG3bFioqKtDU1ESDBg3w9OlTic90794dN27cKJWyE0IIId9TYavlhUIhNDQ0+MeKiorIzc2FkpIShEIhNDU1+dfU1dUhFAolnldXV8fXr19LvNzfoiEohJCyhpYCLn0CjuO40i5EaXB3d0fr1q0xaNAgAPl34qGhoQCAkJAQhIWFwcnJCQAwe/ZszJgxA46Ojti7dy+qV6+Op0+fYuPGjdi9e7dE3PDw8BL9HYQQIi9MTExKuwhyo8Leubdr1w6XL1/GoEGD8PDhQxgY/F/vYWNjY2zatAlZWVnIzs5GbGwsDAwM0K5dO1y9ehUjR45EaGhokTsi7ZyEEEJKW4W9cxf3lo+OjgbHcXBzc0NoaCgaNGiA3r17w8/PD76+vuA4DtOnT0f//v3x6dMn2NnZIS0tDdWqVcP69etRuXLl0v4phBBCiIQKm9wJIYQQeVVhq+VLk1AohEAgwIULF2BmZoYqVapIHTM+Ph5fv36FoqIi9uzZAxsbGxgZGTEorSSRSAQFhQo7yELCx48fUadOHWbxRCIROI7DgwcPYGxsDBUVFaljpqenIzU1FUpKSvD19cXw4cNRr149BqWVLVlsi6dPnyIjIwMKCgrYsGEDZsyYgc6dOzMorSSWx4isyizLbWFvby/xWFlZGbVr18a4ceOYnOvIz6GzdAlbuHAhQkJCsHbtWty/fx8ODg5M4i5atAifPn3Cxo0b0bVrV7i5uTGJCwBnzpxBYGAgTp06ha5du2Lfvn1M4kZFRcHJyQn29vb8f6zEx8fj+fPnePnyJRwcHBAVFcUk7t69e+Hn54e9e/di8uTJcHd3ZxLX1dUVfn5+2Lx5M3bu3IkVK1YwiTtv3jxERkZizZo1UFZWhqOjI5O4ADBy5EgcOHAAKSkpzGICstsWTk5OUFFRwc6dO7Fw4UJs27aNSVxAdseIrMosy22RlZWFmjVrYtCgQahXrx7i4+ORnZ0NOzs7Zt9BfoySewlLSEjAsGHDEBsbC2dnZ6SlpTGJKxAI0KFDB6SmpmLw4MFM764PHTqELl264MyZM7h69SouX77MJO7SpUvRokULDBo0iP+PFVld7Jw/fx7Dhw9HaGgogoKCmF00REREwNraGg8ePMC+ffsQFxfHJG5mZiZ69+6NuLg4TJs2DXl5eUziAsCBAwegrKyMGTNmYOHChczmfZDVtlBRUUHTpk2Rk5ODNm3alItjRFZlluW2SEpKwsKFC2Fqaoo5c+YgJycHCxYsKBNDhysSSu4lLCcnB+fPn0eTJk2QlJTELLnn5uZi7dq1aN++PW7duoWcnBwmcQGgUqVKAPLH9quoqCA3N5dJXB0dHVhYWMDU1JT/jxVZXewoKCjg06dP0NHRAZCfPFkQiUSIjIxE/fr1kZ2dzWy/yMnJwcGDB9GiRQs8f/4cGRkZTOICgJaWFsaNGwdXV1coKChg0aJFsLCwwIULF6SKK6ttIRAIsGTJEnTv3h1BQUFQVlZmEheQ3TEiqzLLclsIhULExsYCAGJjY5GWlobk5GSkp6cz+w7yY9ShroSdP38egYGBsLe3h6+vL4yNjWFmZiZ13FevXuH69euwsLDAxYsX0apVK+jq6jIocX4bWnh4OOzt7fHkyRMkJiZi1apVUsd1dHRE/fr1YWRkBIFAAADo1q2b1HEBYMyYMWjdujU0NDTQvn17bNmyBf/884/UcTdu3IiAgACsXbsW586dQ5UqVTB79myp4x45cgSnT5+Gm5sb/Pz8YGBgAAsLC6njhoeHIyQkBDNmzMCZM2dgbGwMY2NjqeMC+WX+999/oaGhAQsLC/Tp0we5ubmwtLTEf//9J1VcWWyLpKQkREREoEePHrh16xaMjIyYtQHL6hiRVZm/jWtoaIiqVatKHRfIn+HTyckJCQkJqFOnDhwdHfH48WPo6Oigf//+TL6D/Bgl91IgFAqRlZXFP65evbrUMfPy8uDv748PHz6gU6dOaNq0KbS1taWOK5aWlgZ1dXWJu1ZpFdXGzqoNW5YXO2I5OTlM73hkIS8vDzExMcjOzuafY5XcN27ciNGjRxfarg8ePEDbtm2liv3161e8f/8eDRo0YDbc9O3bt7h8+bLEsTd16lQmsQHZHCOyKrNQKMSePXuQkJAAMzMzNGvWTGLhLFL+UW/5EmZnZ4fw8HBoamqC4zgIBAKcOnVK6riOjo6oWbMmbty4gVatWsHOzg579uxhUGLg0qVL8Pf3lzjBsIjt7u6O6OhoPH/+HI0bN2bau19XV5fvMNSpUyeoq6sziXvs2DH4+vpKbIugoCCp427cuBEnT56UeO7atWtSx502bRqys7OhpaUFIL86VtrOU3l5ecjLy0NsbCxq166N7OxscByHqVOn4tChQ1In9uDgYOzcuRN5eXkYMGAABAIBZs2aJVVMAJg1axb69evHbwuWZHWMyKrMDg4O6N69O+7evQsdHR0sW7YMhw8fZhL79OnT8PLyktgWISEhTGKTn0fJvYS9ePECFy9eZB73zZs3cHV1RXh4OHr16gUvLy9msT09PeHs7Mx8GIuPjw8CAgJgbGyM/fv3Y+DAgZg8eTKT2LK62Dl06BC8vLyYb4srV67g0qVLTIZ8FZSVlcXspC128uRJ7Nq1C58+fcKAAQPAcRwUFBTQvn17JvG9vb3h5+eHyZMnY9asWRg1ahST5F6nTh3MnTuXQQkLk9UxIqsyp6SkYPTo0Thz5gzatWsHkUjELPaePXuwc+dOpsNEya+j5F7CjI2N8eLFC+jp6TGNm5eXh6SkJAD5VW4se782bdoUHTt2ZBZPLCAgAEeOHIGSkhJycnJgbW3NLLnL6mKnWbNmqFOnDhQVFZnEE2vevDmysrKYJ/f27dsjLCwM+vr6/HN169aVKqalpSUsLS1x4sQJjB49WtoiFqKoqAgVFRUIBAIIBAKoqakxiWtmZoZ169ahSZMm/HPDhw9nEltWx4gsyyzu9BYXF8d0f9bV1aUq/jKAknsJ09DQwOjRoyXaEVlUvy5YsABjxoxBYmIirKysmI2fB4DevXvDyspK4oKERds4x3FQUsrfBZWVlZm2X8vqYqdTp07o06cPdHV1+WaVQ4cOSR23adOm6NatG3R0dPi4LKoyP3/+DDc3N4lq+WPHjkkV8/jx47CwsMDr16+xYcMGiddsbW2lig3kr89ga2uL+Ph4ODo6olWrVlLHBPKbT/T09PikJu7EyYKsjhFZlXn58uVwcHBAbGws5s2bh5UrVzKJC+SPHJgyZYpER1kW+wX5NZTcS9jt27dx584dPqmx8scff8Db2xuVKlXCu3fvmHWaAvKrz6dMmSKxDC4LJiYmmDdvHkxMTBAeHi51W21BsrrY8fX1xaZNm5hvi6CgIISEhDBvW33x4gXOnj3LNGbt2rUBgHntk5itrS1CQ0PRvHlz6OvrMxlNAuSP7WbRg70osjpGZFXmsLAw+Pr6Mo8LAD169JBJXPJrKLmXsEaNGuHz58+oVasW07iOjo5o2LAhJk+ejB07duDMmTNYvnw5k9g6OjpMJ5gRs7Ozw5UrVxAbG4tRo0YxPSn88ccfCA4ORlJSErS0tJhdTNWqVQutWrViPgVv3bp1oaamxrxavlmzZnj48CGaN2/OPyftdwgEAly7dg01atSQtnhFunTpEiIjIzFv3jxMnjwZysrKTIZI1q1bF7t370bz5s2ZD72U1TEiqzJfvXoVf/75J9Pq+IiICLRq1Upm+wX5NZTcS9j9+/fRq1cvVK1alT9YWVTL/+9//4OzszOA/Cq3cePGSR1TrFKlSpg8ebLECUaaarbLly/DzMyMv3PQ0NBAXFwcfH19YWVlxaTMZ86cgaKiIrKzs7F27VpMnjyZSXt+dnY2hg0bhqZNm/LbYv369VLHjYuLQ9++fflhZSyqzwHg7t27uHLlCv+YRXV/YGBgsa+xSDxbt27lmzo2bdqEqVOnMombm5uLV69e4dWrV/xzrJI762NETFZlTk5OhqmpKerXr8/3bZB2f7t58yZatWpV5P7BajuTn0fJvYSdP39eZrGTk5NRrVo1pKamMp1mlFW1qJh4LvLExESmcQs6dOgQ9uzZA1tbW1y5cgWTJk1iktynT5/OoHSFbdy4USZxxZPJJCcnS1xQSmP16tVQUlKSGDvPkpKSEl+9rampyayWxN3dHS9fvsSbN2/QrFkz1KxZk0lcgP0xIiarMu/atYtJnIKmTZsGAGjXrp3EpEMs+qSQX0fJvYTFxMRg5cqVSE1NxdChQ9G0aVMmJ4bZs2dj1KhRqFKlCr5+/cp0gZAhQ4bg1KlTEhPkSGPEiBEA8qdyLTjEicUdsJispgNt3rx5ock/WFBSUsLatWuRlJSEAQMGoFmzZkxWb7t79y5WrVrFjxmvW7eu1LO92dnZYf369fwYdABMOwEaGxtj0aJFaNOmDR4/fizRpCCNw4cP48KFC/jy5QtGjBiB169fMztOWB8jYrIqc1Fza8yZM0eqmAEBAbh06RJu376NW7duAcifSjg6OhoTJkyQKjb5DRwpURMmTOBevXrFjR8/nvv8+TM3YsQIZrFzc3O5xMRETiQSMYvJcRzn4ODAbdq0ibO0tORCQkK4KVOmSBXPz8+Ps7S05ExMTDgrKyvOysqKGz16NDd8+HBGJea4pUuXcn379uUuXbrEbd26lXN0dGQSd+7cudzx48e5MWPGcOHh4dy4ceOYxJ06dSp348YNbvz48VxsbCxnYWHBJO7YsWO55ORkbvz48VxmZibT/Y3jOE4kEnGfP39mGpPjOO7ChQvc7t27uZCQEGYxra2tuby8PG78+PEcx3HcyJEjmcVmfYyIyarMR48e5Y4ePcr9888/3PLlyzkHBwepY6akpHC3bt3i/vrrL+727dvc7du3ubt373JxcXEMSkx+Fd25l4KGDRtCIBBAW1tb6pnTnJ2d4ejoCCsrq0JVrizabIH/GzN+7949JmPGhw0bhs6dO2P37t2YOXMmPwkKi2l4xdzd3fnpQFu2bMmsk4+sJv/IzMxE586dsXPnTujp6UFVVZVJXAUFBb46XlVVldlMfUB+p6zVq1dDU1MT6enpcHZ2lmqs97d9MapUqYLExERmfTG4/1+7ID5OWHZeZH2MiMmqzNbW1hKPp0yZInXMKlWqoGPHjoWmI2bZREh+HiX3ElalShUcO3YMGRkZCAwMlHrok7ha29PTU2bznIvHjAsEAiZjxlVUVFC/fn2MGjUKFy9exIQJE7Bo0SK+QxILDx8+hL+/P786XkJCArM1tmUx+YeqqirCwsIgEonw8OFDZifxBg0aYP369UhJSYGXl5fUE9gUtG3bNvj5+UFbWxuJiYmYPXs2/Pz8fjuerPtiDB48GOPGjcOHDx8wdepU9OnTh1ls1seImKzK/PLlS/7fiYmJ+PDhA5O4ALBw4UIIBAKIRCK8e/cODRs2xNGjR5nFJz+HFo4pYUKhELt27UJ0dDT09fUxY8YMJlNWDhw4EGZmZrCwsEDjxo0ZlPT/3L17F8uXL0diYiLq1KmDZcuWoUuXLlLHHTVqFDZu3IgGDRrg7du3WLp0KY4cOcKgxPmzeE2ZMgXBwcEwMDDAq1evmLTpR0dHY8WKFYiNjYWenh6cnJyYXJDExcXB09OT3y+WLFmC+vXrSx03NzcXx48fR3R0NPT09GBtbc3sIvDPP//EgQMH+McTJ07EwYMHpY7r6uoKKysriVnZWMjNzcXr168RHR2Nxo0bo27duszmFZDVMSKrMtvY2PD/VlVVxYQJE9C9e3ep434rNTUVK1aswObNm5nHJj9Qqo0CFdD27dslHq9bt45J3KysLO7s2bPctGnTuIkTJ3L//vsvk7gcx3GPHz/mOI7jPn/+zIlEIu727dtM4lpZWUk8FrcrsvDnn39yHJff9s5xHLO28UuXLkk8DgwMZBLXz89P4vHBgweZxF21apXE48WLF0sdc/369dz69eu58ePHc9OmTeN2797NzZ49m1k787lz57hp06Zx48aN406ePMllZGRIFS8hIYF78eIFZ2Fhwb18+ZJ78eIF9/z5c27UqFFMystx7I8RWZf5274MrPbjb4lEIub9PMjPoWr5EnL8+HGcOHECsbGxCA0NBZBflZebm4tFixZJHV9FRQUDBgyAjo4ODh06hJ07d2Lo0KFSxbx37x6eP3+OAwcO4K+//gKQ3/v1yJEjCAgIkLrMdevWxYYNG/he0SyHJikoKCAmJgYZGRl48eIFvnz5IlW8y5cv4/79+wgMDMSDBw8A5G+LkJAQqSYvkVUP4yNHjmDnzp1ISUnhh19yHMfkblhcMyT+v0AgQO/evaWOK9a/f3/0798fCQkJcHd3h5ubG+7du/fb8R49eoSDBw/i5cuXcHR05Pt4sBh7LatjRFZlLrgfP3z4kC+vtPtxQeL+PxzHISkpiUkNBvl1VC1fQrKzs5GQkIDdu3djxowZAMB3ImPRvrpt2zacO3cOzZs3h4WFBTp06CB1zOjoaJw/fx7+/v4YOXIkgPwTecuWLZnMJpeVlYWjR4/i1atX0NfXh5WVFbO25piYGMTExKBWrVpwdXXF0KFD8eeff/52vI8fP+LWrVvw8vLix/MKBAI0a9ZMqqVqv3z5gqdPnxbaL3R1dZnMYrhr1y4+Lmu5ubnw9fXF8+fP0ahRI4wZM4bJ3+/Dhw84deoUzp8/j+bNm8PS0pLJ1MRXr15lPjWqrI8R1mWW1X5c0Pv37/l/q6qqMlvbnvwaSu4lLD09HampqVBSUoKvry+GDx/OZDyzj48Phg8fznxuawCIj4/nE83Hjx+ZLeWYl5cHf39/ibHB2traTGIDwLNnz/Dq1Ss0adJEYlU0aYh7x4s7vhkbGzNJaBzHIS0tDQKBABcuXICZmRmTvhjx8fH4+vUrFBUVsWfPHkyYMAGGhoZSxwXy1wTX0tJC+/btcefOHaSkpGDNmjVSxx01ahQsLCxgbm4ODQ0NBiXNd+PGDeTm5oLjOKxevRrz58/HkCFDmMSW1TEiqzKLRCKJTn8JCQnMas5evnyJNWvW4NWrV2jatCns7OyYnOPIr6HkXsKmTJkCa2trnD9/Hk2aNMHt27eZ9OKOi4vDunXrJCZBad26NYMSA3v37oWWlhZSU1Ph7+8PU1NT2NvbSx132bJl/Jrr06dPx9GjR5msuQ4AO3bsQFhYGFq1aoXHjx9jwIABUt25i7m6ukJfXx8fPnzAkydPoKOjA09PT6njLly4ED179sSDBw8gEonw+fNnbN++Xeq448ePx5w5c/DPP/+gf//+OHbsGHx8fKSOCwDjxo2T6ABpbW3NbPjljRs38PbtW7Ru3RqNGzdmMjTQwsIC69evx6pVq+Dh4YEFCxYw68Apq2NEVmXevHkzjh49ipycHGRmZqJRo0bfnVb4V1haWmL27Nlo164dwsPDsW/fPmb7HPl5bFe/ID+UmZmJ3r17Iy4uDtOmTWM2BtTR0RGjRo1CTk4O2rdvD1dXVyZxgfwpc4cPH47Q0FAEBQUhKiqKSdw3b95g/vz5UFFRQa9evfD161cmcYH86swjR47AwcEBhw8fRlBQEJO4ERERsLa2xoMHD7Bv3z7ExcUxiZuQkIBhw4YhNjYWzs7OSEtLYxJXIBCgQ4cOSE1NxeDBg5kueJOVlYWMjAwAQEZGBrN9ecOGDTh9+jT8/PwQFRXFJEkC+bMWVq9eHUpKSqhRowbTJV9ldYzIqsyXLl1CaGgohgwZgqCgIKYLWampqaFHjx7Q1NREz549mS+yRH4ObfUSlpOTg4MHD6JFixZ4/vw5f3KUlngSFIFAwHQSFCC/DfjTp09821lmZiaTuLIaGwwA1atX57dtTk4Os+p+kUiEyMhI1K9fH9nZ2cyScE5ODl+bk5SUxCxubm4u1q5di/bt2+PWrVv8uH8WJk6ciOHDh2P27NkYPnw4k5oRAAgPD8eaNWtQuXJljBgxAu/evWMSV11dHVOmTMHAgQNx5MgRpk1AsjpGZFXmGjVqQEVFBWlpaWjYsCHT/aJOnTrYsWMH7t+/Dx8fH6ioqODatWtMFsgiP496y5cwOzs7XLx4ETNnzsSZM2ewbNkyJnFlNQkKAHTs2BE2NjZYu3Yt3NzcmHXwWbhwocSa6yy2hbin7ufPn9G/f380a9YMsbGxqFq1qvQFRv74+VWrVsHNzQ1r165ltord1KlTERAQAHt7e/j4+EjMuS8Nd3d3XL9+HRYWFrh48SKTJoSCd9KNGzdGbm4uGjdujGvXrmHw4MFSx8/Ly0NWVhYEAgHy8vKYXfRt2bIFb968QZMmTRAdHS31HPsFyeoYkVWZa9eujRMnTkBNTQ3r169Hamoqk7hAfm3R27dv8fbtWwD5y+GKq/xpdbiSQ23uJczZ2RkWFhbMeqaKfTsJyuLFiwtNA/m7xOs0A/m9/lldOIjjJiUloVq1arh79y7++OMPqWIW7Kn7LRades6dO4c+ffowWx9ebN++fRgxYgTTu0kgfxU7CwsLmJmZMZtNb8iQIcjMzMTQoUPRtm1bFDyFmJqaSh3/7Nmz2LZtG5KSklCnTh389ddfTDqRDRkyBJ06dYKFhQUMDAykjleQrI4RWZVZJBLh48ePqFKlCk6dOoXOnTsznTRIKBQiKyuLf8xyamnycyi5l7DQ0FCcPHkS8fHxGDp0KIYOHcqkR/Dbt2+RnJyMWrVqMW0/A/LvsN+/f8+XV9oZsmQ9fh4AXr9+jXPnzklMPyte714a69atQ1hYGLp06YLRo0cz64V/9OhRnDlzBjVq1MCoUaPQvXt3Ju2rsbGxOHnyJK5fv45u3brBwsICjRo1kjpudHQ0zpw5g8ePH6NDhw4YOnQoGjZsKHVcsS9fvuD169eoX78+0yaVsLAwnDx5EsnJyRg6dCgGDRrEZL591seImKzKLBQKERoaKrFs7/Dhw6UsbT47OzuEh4dDU1OTnxu/qFXoiGxRci8lSUlJcHV1xaVLl9C/f3/MmjULDRo0+OU47969w4IFC6CsrIzq1avjw4cPUFNTw8aNG5lOCvPlyxcEBATg4sWL0NbWhqWl5W8vEiLrscEAMHr0aPTt2xe3b99GzZo1kZ6eji1btjCJLRKJ+Iu0xMREWFpaYsiQIUymdY2JicGuXbsQHh6OUaNGYcKECUyGxIn3t+DgYHTo0AHz5s1jMnYcyJ961cfHB3FxcVLNLQ+A7/yYkpKC2rVrY/DgwRg1ahSTcgL5Qw5DQ0Nx4sQJvH79GpUrV4a5uTnGjx8vdWyWx4isyzxhwgTUrFmTH7InEAhga2srdVmB/B7+x48fZxKL/D5qcy9hsbGx8Pf3x+XLl/HHH3/gyJEjyM3NxYIFC+Dv7//L8Tw8PLB06VK0b9+ef+769etwdnbGtm3bmJX706dP+PDhA5KTk6Gvr4/g4GAcP34c69at++VYBgYGMDAwgIWFBVRVVfHmzRumd2gAULlyZUyfPh2vXr2Cu7s7xo4dyyQux3G4du0aTp8+zd+pJScnY8aMGVINaUxNTUVgYCD+/fdfaGpqYtmyZcjLy8P06dOlGl529epVnDp1CrGxsRg2bBgcHByQm5uLqVOn4syZM78dF8i/+7tw4QICAgKQkZEh9YyIW7duRWJiItzc3KCjo4P3799j//79iI+PZ9IHYc2aNQgJCcEff/yBqVOnwtjYGCKRCCNHjmSS3FkeI7IuM8dxUpXre4yNjfHixQvo6enJJD75OZTcS9jy5cthaWmJOXPmQE1NjX/+d+9OkpKSJBI7AHTt2pXZeHEg/0q8UqVKsLCw4IeuAcDkyZOlihseHo7NmzdDX18fMTExmDNnDoYNG8aiyBAIBEhMTERaWhrS09ORnp7OJG6/fv3Qvn172NjYwMTEhH/++fPnUsUdPXo0hg4dig0bNkis3CbtkKozZ85gzJgxhe4g586d+9sxg4KCEBQUhA8fPqBfv35YtWoVk0Vurl27xi/3CgDNmjWDu7s7JkyYwCS5N2rUCP7+/hJV2goKCkwugmV1jMiqzM2aNcOjR48k+v6w6iegoaGB0aNHo3Llyvxz1FO+5FG1fAlKSkri706vXLkCFRUVqeddnjBhAg4dOvTTz/+OV69eMWmn/ZaVlRX2798PdXV1CIVCTJw4ESdPnmQS++7du/z0sytWrMCwYcNgZ2cndVyhUAgNDQ2kpqZCQUGB2Qxq4rbJmJgYKCsrM9neT58+haGhIbKzs3H8+HGoqKhg1KhRUvc+NzQ0hJ6eHj/TXcG+AdKsvGdjY1PkZCfSrjaXlZWFY8eOYcKECUhISICrqytUVFRgZ2eHGjVq/HbcglgfI7Iu89ChQyEUCvnHAoEAISEhUscF8iczOnz4MPNOp+TX0NYvIf/99x+2bNmCoKAg7N69G2FhYdDR0cHDhw+luitJSUkpdFXMcZzUC6UA+Z30PDw8sHnzZty9excLFixA5cqVsWbNGibttQKBgL8j0dDQYDo2XygU8lXxvXv3lnoSmydPnmDZsmU4fvw4zp8/j5UrV0JLSwtLliyRatGU69evY9myZbhw4QJOnjyJvXv3QltbGxYWFlINe/L29kZQUBCOHj2KNWvW4MOHD6hbty7c3NywfPny344LgNlF47eK60Ao7f2Hi4sLKleuDJFIBCcnJ7Rq1QpNmzaFk5OT1LMAyuoYkWWZAUjdJPM9jRo1wufPn5l37CW/hpJ7CTly5Aj+/fdfKCsr49ixY/D394eOjg6sra2lSu4tWrQoctpIFmuMr169GlZWVlBSUoKHhwfWrFmDJk2a4O+//2YynaSuri48PDzQvn173Lt377c6FH5LVqu3rVmzBh4eHlBWVsamTZuwd+9eNGzYEFOmTJEquW/fvh3Hjx+HsrIyvLy84O3tjTp16sDGxkaq5H7u3DkcO3YMAoEAAQEBOH/+PLS0tGBtbf3bMcWkHa5YnPv37xc5DlraC9WYmBgcO3YMWVlZCA8Px5YtW6CsrIz9+/dLFReQ3TEiyzID+c1LBWcUVFJSQp06dbB48WK0aNFCqtj3799Hr169ULVqVf6CjarlSx4l9xKiqqqKypUr4/nz59DW1uZ7sktbReru7s6ieEVKT09H7969kZycjLi4OHTt2hXA/y2eIi1XV1ccP34cN27cgL6+PpOlbw0NDZGSkgJVVVWJJUmlnVxFJBLB0NAQ8fHxyMjI4E+A0v79xNOKvn37FsrKyvxwMmnjqqurQ1FREU+ePIGuri4/NKsst8JFRkbKJK64duj+/fto1aoVP6qh4Djs3yWrY0SWZQaATp06YcCAAWjfvj0ePHiA48ePY9SoUXBxccHRo0elii1eYpiULkruJUQ8xWpwcDC6d+8OAPj8+TNyc3NLuWTFE1eT37x5E506dQKQnxxYzQE/Y8YMZnciYnXq1MGIESMwbNiwQqteSUPcfhgWFobOnTsDyJ8yVtppYgUCAXJzc3HlyhX+rjUtLU3q6UsFAgFevnyJU6dOoVevXgDy24VZTWRTnqirq8PX1xfBwcEwNzeHSCTCmTNnmKzcJqtjRJZlBvJXbhP39+nYsSN27NiBzp07M+lc+OzZMzg4OCA+Ph46Ojpwc3NjUpNIfg0l9xIinmVLS0sL+/fvx+PHj7FgwQKsWLGitItWrKZNm2LRokWIjIzE6tWrkZCQgC1btvAnMWlpaWkhJCQEjRo14hOx+G5bWlu3bmW66lXnzp1hbW2NuLg47Ny5E2/evIGzs7NUVf0AMGLECAwaNAi5ubk4ePAgoqOjsXjxYtjY2EgVd/78+ViyZAl0dHSwcOFC3LlzB4sXL8bmzZulilseOTk5Yd++fTA1NcWIESNw69YtBAcHM5nUSFbHiCzLDOT3jD969Cjatm2LBw8eQEVFBZGRkUwW/3FxcYGrqysMDQ0RFRWFVatWMVstkPw86i1fSlJTU5Gdnc0vNPG7Pnz4UOxrBYdU/Q7x5Bna2tpo1aoVnj17hps3b8LGxobJHeC3CUwgEDDrrDVs2DAcP34cbm5u+Ouvv7Bq1SqpawliY2OhoaGBWrVq4c2bN3j27Bn69u0rdVmFQiFUVFSgoqKChIQEfPr0ifmdTnZ2NgQCAZOJdsj/kfUxIivJycnYtWsXYmNjYWBggKlTp+Lx48eoX7++1LMufjvqYfz48Th8+LC0RSa/iO7cSwmr6SkXLlwIIL/XfFpaGpo2bYrnz59DR0dH6ikfBQKBxIxxzZo1Q7NmzaSKKSYUCuHl5SUx1p8lHR0d5qteFTzpNWjQgEkHQAASw+lq1qzJdGZBMZYLCcna9evX4e3tLTE1qqx66EtLlseILMTFxaF27dpISUmR6FyZkpLCbHZIBQUFXL58Ge3bt8fdu3fL1b4nT+jOXU7Mnj0bnp6e0NDQQHp6OmxtbbFr167SLlaRDh8+jP3790NJSQkrVqxgstjIt5YvX442bdrg8ePH0NLSQlhYGP7991/m30PYMzc3h4ODA2rXrs0/R7OdseHu7g57e3vY2NhAIBDwHSxZ1pq9f/8enp6eePHiBfT19bFkyRImizaRX0N37nIiLi6OvwOsXLkyEhMTS7lExQsICMC5c+cgFAqxZMkS5sn96dOn0NbWxrlz59CuXTtoampKNblKeXb58mWYmZnxj4OCgqTuJyBrderUkXpyp4Jk2XQlK7Iqs3i5XnG1OevJmFJSUlCvXj1s2bIFiYmJUFRUZL7SIfk5lNxLiPhKuSgsrpi7deuG8ePHo2XLlnj8+DH69OkjdczTp08X+5o0K0iJ25e1tbWZVJcXdPbsWezZswdjxoxB69at8eHDB/j5+aFOnTpSLWn5vV7Ec+bM+e24BddG/5Y0wxyLGu+fl5eHS5culfnkXr16dTg6OqJ58+b8MWNlZfXb8WTZdCX27f6hrKyM2rVrY9CgQb/Vz0FWZS44GdOVK1fg6OgILS0t2NnZ8aMqftedO3dgZ2eH06dPo0qVKnj27BlWrFiBtWvXFpoim8geJfcSsmrVKgD5k5b07t0bJiYmePz4MS5fvswk/sKFCxEZGYlXr15h+PDh/NSg0oiNjQUAPHz4EGpqamjbti0iIiKQm5vLbHlI1q1Chw4dwuHDhyXmtR4xYgRmzpwp1QWPuOPjxYsXUb9+fbRr1w4RERH4+PGjVOUVJ1pxz2Vx3IiICKniFjfe39zcXKq4JUE8T/2nT5+YxBPPV19U0xUrz549g6qqKtq3b49Hjx7h48ePqFGjBq5du4a1a9eWmTIXnIxp48aN2LNnDxo1aoQpU6ZIndw3bdoEHx8ffhXDbt26Yf/+/Vi2bBn++ecfqWKTX0fJvYSI2ww/ffrEn9D79u3LZKY3APj48SNu3ryJrKwsvHr1ChcvXpTqjhIAP6nM5MmT4eXlxT8/adIkqeI+f/4cixYtAsdx/L/FpK0+V1JSkkjsQH6HNWl7Los7H50/fx5OTk4A8ufnFq9H/7vETRLe3t6YOnUqAMDExETquMWN9y8P5syZgytXriAmJgaNGzdmUgsFyLbpKjU1lZ//3traGpMmTcLatWsxZswYqeKyLvO3kzG1bNkSgPSTJgGAoqJioQWEGjduXO72P3lByb0UHD9+HMbGxnjw4AGzoUnz589H586dmU1yUVBSUhJSU1OhpaWF5ORkpKSkSBVv06ZN/L9ZTIdaUHFNH6xm1UtJScGbN2/QoEEDvHjxgtmEPunp6bh58yZatWqFBw8eMJuJbM+ePdizZw8qVarEP1fWpwJdv349Xr9+jXbt2uH06dMIDw9nsuiPLJquxL5+/covDJWcnIyvX7/ycyxIg3WZZTUZE5BfCycSiSSSeV5eHvOmN/JzqLd8CUtMTMSuXbvw6tUrNGnSBDNmzEC1atWkjvvXX3/B29ubQQkLCw4OhqenJ6pUqYKvX79ixYoVzIbNsNalSxf+pCXGcRxu376N69evSx3/3r17WLVqFT5//ozatWvDyckJxsbGUseNjY3F2rVr8fLlSzRt2hR2dnbQ1dWVOu7QoUPh6+srsyGHsmBtbc1PesJxHCwtLXH8+HEmscVNV02aNGHSdCV2+fJluLq68tXny5cvx9OnT6Guro5x48ZJFZtlmb28vHDp0iV+MiZ1dXU4OzujQ4cOmD59ulSx/fz8cOPGDcyYMQP169dHXFwcduzYAWNjY/z5559SxSa/jpJ7Kfj8+bPEnRmLHrtubm5o3bo1jIyM+LtXVrO9AUBubi6SkpJQvXr1Mj05x507d4p9TVYLnpRls2bNwvbt24ut0SiLRo8eDT8/PygoKEAkEsHa2hp+fn5Sx/348SMCAgIkjj1pm64KEolE/DHCanvLosyymowJyB+NcezYMSQkJKBevXoYNWpUme/AKa8ouZcwJycnhIaGombNmvwa3iymZpTlbG/Xr1/HgQMHJE4wZXVSEVk7ffo0vLy8JLYFi3Wwd+3ahb179zKvPp86dSo+fvwIAwMDPuGU9WGB+/fvR3BwMFq3bo3Hjx9jwIABTO78LC0tCzVdsWoWktUxIssyE/lGyb2EjRw5EidOnJB5J5Ps7GxmM0PJalKR169f49y5c3ybXEJCArO5s2Vl8ODB2LFjh8TJlsV2llX1eVE1GeWhBiM6OhovXryAnp4eDAwMmMSUZdOVrI4RWZaZyDfqUFfCGjZsiKysLOYn8WPHjsHb2xu5ubngOA7KysoIDg5mEpv1pCJiixYtQt++fXH//n3UrFkT6enpzL+DNV1dXX5ZVpbq168vcdfOSvPmzbFnzx4kJCTAzMysTE+Nevz4cVhYWGD9+vV8LcP//vc/AGAybK1p06YIDAyUSdOVrI4RWZaZyDdK7iXs48ePMDMz4xMEq2r5I0eOwMfHBzt37sSAAQP4YTkssJ5URKxy5cqYPn06Xr16BXd3d4wdO1bqmLJWqVIlTJkyReJkyyLx5OTkYMiQIfxdqkAgYFJ97uDggO7du+Pu3bvQ0dHBsmXLyuwiHuK73m/veFm1X0dFRSEqKkoiLqvmJVkdI6zLXPDC6VvS7sflcSZAeUbJvYTJqr1TvOBIWloaOnbsyGRdZjHWk4qICQQCJCYmIi0tDenp6eXizl1WowTEY9xZS0lJwejRo3HmzBm0a9eO2ZBAWRCP+Y+IiICjoyP//JIlS5hMmvTtnBIFF6aRlqyOEdZlluUc/SUxEyD5eZTcS1hubq5M2pk1NTVx8eJFviZA2rHoBc2ZMwcJCQl8lX9CQgKzuBcuXMCwYcPQp08fDBs2jElcWRoyZAg/Sx/LbWFgYIBr165JxGXVNi6eaTAuLq5Mj3Q4cuQIdu7ciZSUFJw/fx5A/lA4aaYNLkgWTVfiVdYGDx7MpIzfYl3mESNGAMg/D7Hej0tiJkDy8yi5lzBZtTO7uLjgzZs3sLW1hbe3N5YvX84kLpBftfvw4UNkZGQgMzMTurq6TIYmCYVCviq+d+/eCAoKkjqmrM2ZMwc5OTlISEhAXl4eatasyWRK1zlz5kBPTw/R0dFQVVVl1idj+fLlcHBwQGxsLObNm4eVK1cyiSsL48aNw7hx47Br1y7MmDGDeXxZNF15e3vD3t4ejo6OMlllTVbNbbLaj4HytYiVPKN5AUuYuJ25Vq1a8PDwYFaNp6GhgebNm6NWrVpYunQpOnbsyCQukL/KWmBgILp164bAwECoqqpKFe/y5ctYv349Vq9ejQ0bNmDDhg1Yt24dtm7dyqjEspOcnIx9+/bB2NgY/v7+zGaS4zgOzs7OaNy4Mby9vZnVvBgYGMDX1xf37t2Dn58fWrRowSSuLDVt2hRbtmwBkD/1MasZ9b5tumIxu6B44Z+//voLhw4dgo+PD3x8fJgNV5NFmQHZ7cfA/82q5+HhgbFjxzKdCZD8PLpzL2HlsZ25WrVqEAgESE9PZ7J8Y3GLmsiqapMlcY/2jIwMVKpUiVlnL0VFRWRlZSEjIwMCgQB5eXlM4m7cuBEnT56UeK6sTz+7bds2/q5306ZNmDp1Krp16yZ1XFk0XRVcfe/hw4cA8iezCQkJYTJ5i6ya22S1HwP/t4jV69evmS1iRX4dJfcSNmfOHFy8eLFctTO3aNEC+/btQ82aNbFw4UKp58sublETVu3XstSvXz9s374dhoaGsLS0LLRIze8aN24cDh48iK5du6JHjx4wMTFhEvfKlSu4dOkSszkPSoKSkhI0NTUB5Cc3VnNCyKLpStYXqrJqbpPVfgwA8fHxOHDgAJKSkjBgwABkZWWhdevWzOKTn0OT2MiJp0+fIiMjAwoKCtiwYQNmzJhRaI51aQiFQlSqVAmhoaEwNjbml0CVxubNm3H06FF+gY1GjRohMDCQQWllSzyz4LNnz9CwYUPm49OFQiHfZikte3t7ODg48MmyPFi9ejVSUlLQpk0bPH78GFWqVGHah0QWvl0wJSEhATVr1izFEn1fXFwcatWqxe/HSkpK0NfXZxJ72rRp+Ouvv7Bjxw6sWrUKS5cuZdJHh/waanOXE05OTlBRUcHOnTuxcOFCpkPhgPw2fSUlJfTq1YtJYgeAS5cuITQ0FEOGDEFQUBBq1arFJK6siaswmzVrJpOJZ1gldiC//bpbt27o3bs3evXqhd69ezOLLSsrVqzAwIEDkZGRgYEDB5b5xA4AW7duRadOnWBiYoIWLVpIvWSvrERHRyMsLAzTp0/H9evXce3aNcTFxTHt0Z6ZmYnOnTtDIBBAT09P6j465PdQtbycUFFRQdOmTZGTk4M2bdqUizWUa9SoARUVFaSlpaFhw4a0NKQMBAUFISQkBFpaWqVdlJ8mFAqRnZ2NmjVrIjU1FadPn2Yyzl2WxBeqbm5u+Ouvv7Bq1arSLlKRUlNTERQUhM+fP/O1ZAKBgOkEUqqqqggLC4NIJMLDhw/LVZOQPKHkXgqEQiEEAgEuXLgAMzMzVKlSReqYAoEAS5YsQffu3REUFMRsnfhvfVv9KI3atWvjxIkTUFNTw/r165Gamsokbkn5+PGjxBzz0hKJROA4Dg8ePICxsTGTk2LdunWhpqZWrk6ws2bNQs2aNflty6qzlyybrmR1ocq6zO3bt0f79u3x5MkTmY2cWL16NTw9PZGcnIz9+/eX2QsdeUdt7iVs4cKF6NmzJx48eACRSITPnz9j+/btUsdNSkpCREQEevTogVu3bsHIyIjJRQMAnDlzBoqKisjOzsaaNWswZcoUTJ48Weq4IpEIcXFx0NLSwqlTp9C5c2dmE5bIyt69e6GlpYXU1FT4+/vD1NSUHw4lDVdXV+jr6+PDhw948uQJdHR04OnpKXVcS0tLvHv3jl8bntV0x7JkY2NTaGY2FqytrbFixQps3boVM2bMwNq1a3HkyBEmsZcvXy7RRyA0NBT//vuv1HFZl9nZ2RmOjo6wsrIqdNHEar8QrxEgdujQIUyYMIFJbPLz6M69hCUkJGDYsGE4ceIEfHx8mCxlCQBpaWl4/fo19uzZAyB/Ck9WU5oeOnQIe/bsga2tLa5evYpJkyZJndyfPn2K4OBgJCcno3bt2hgwYAAaNWrEpLyydP78eRw+fBhTpkxBUFAQs5NWREQEli1bxie2iRMnMom7ceNGJnFKUrNmzfDo0SMYGRnxz7GoeZBl09XixYshFAoxYMAAnDp1itk006zLPGvWLADAhg0bWBRPQkBAAC5duoTbt2/j1q1bAPIv4KOjoym5lwJK7iUsJycH58+fR5MmTZCUlIS0tDQmcWfNmoV+/frJpG1V3GlMXV0dKioqyM3NlSre2bNnsWfPHlhbW6Nly5b48OED5s2bh3nz5pX5CS8UFBTw6dMnvlOhtMMCxUQiESIjI1G/fn1kZ2cz2y+UlJSwdu1aflhSs2bNUK9ePSaxZeXOnTu4dOkS/1ggECAkJETquLJsupoxYwaOHj0KIL/mgRXWZRbvt992uFVWVkbt2rUxbty4367xMzU1RY0aNZCSksIvmqOgoMDXGpGSRdXyJez8+fMICgrC0qVL4evrC2NjY5iZmUkdd9q0afDy8mJQwsLs7e0RHh4Oe3t7PHnyBImJiVK1o40ZMwb79u2TGFsrFAoxc+ZMmVTHsrRx40YEBARg7dq1OHfuHKpUqYLZs2dLHffIkSM4ffo03Nzc4OfnBwMDA4mqzd9Fw5L+z7dNV4aGhqhatSqT2OK28MaNG/N31ywm3pFVmW1tbaGrq4v27dvj0aNHiIiIgJGREZ4+fYpdu3ZJFZvjOKSlpTHvV0R+DSX3UvDy5Uu8efMGzZo148eaSuvo0aN4//69RJs1yx7GaWlpUFdXR2JiImrUqCFVrOLaVP/8808cOHBAqtglJSUlBZUrV2baUe3r1694//49GjRowGxSkQkTJvBtnocOHZJZezZLNjY2hY4JFvO0C4XCQmvbi5dellZR/S7c3d2ljiurMn97rE2aNAn79+/HuHHjpO6HIKt+ReTXULV8CTt8+DAuXLiAL1++YMSIEXj9+rXE8pa/KygoCHp6evwKYCynk4yJicHKlSuRmpqKoUOHomnTplLVNhRXtrK8HKnY3bt3sWrVKuTl5WHAgAGoW7cukzvs4OBg7Ny5k48rEAj49lFplMdhSeJaIY7j8OTJE4n1zKUhy7Xt3d3dJS7aWU1gI6syC4VCxMbGQl9fH7GxsUhLS0NycjKT6bBl1a+I/BpK7iUsMDAQR44cwcSJEzFx4kSMGjWKSVwVFRWZDTlxcXGBu7s7li9fjtGjR2PKlClSJffnz59j0aJFEs9xHMdfmJRlmzZtwuHDhzF37lzMmDEDY8aMYZLcvb294efnh8mTJ2PWrFkYNWoUk+T+7bAkJycnqWPKWsE1x/X19XHixAkmcWW5tr2sLtplVWZHR0csXrwYCQkJqFOnDhwdHREUFMRkNT5Z9Ssiv4aSewkTT10qvntldSdVt25d7N69G82bN+djs2jzE2vYsCEEAgG0tbWhrq4uVaxNmzYV+TyrlbRkSUFBAVWrVoVAIICqqqrU20JMUVERKioq/L7BaslXkUiExYsX84+VlJSQk5Mjs3kQWBCvCw4AiYmJTBdXktXa9rK6aAdkU2bxanAFtWrViknsKVOmIDAwEPb29vDx8WFykUp+HSX3EmZubo5x48bhw4cPmDp1KrPe4bm5uXj16hVevXrFP8cquVepUgXHjh1DRkYGAgMDpe6R/8cffzApV2lo0KAB1q9fj5SUFHh5eaFu3bpM4pqYmMDW1hbx8fFwdHRkdqKdPn064uPjoaenh5cvX0JNTQ25ublYvHhxmV20qOD63yoqKsVeDP4qWa5tL6uLdtZlnjdvHrZs2VLkuYHVaoH9+vVDv379AADz589nEpP8OupQVwqeP3+OmJgY6OnpoVmzZsziftvmx2ocr1AoxK5duxAdHQ19fX1Mnz6dWS/j8iY3NxfHjx/nt4WlpSWzE3loaCgfl8UICgCYOXMmXF1doa2tjS9fvmD58uVYvXo1pk6diuPHjzP5DlYuX77M7HcXJTs7G8+fP0fz5s1x8eJF9OjRg1kNxuHDhxEUFIQPHz6gadOm6NSpE5OJnmRZZlkRXzhwHIcvX75AV1cXZ8+eLeVSVTxlfwJyOePn54eTJ09i4MCB8PT0xOnTp5nEPXz4MJycnLBx40YEBwfDxcWFSVwgfziOoaEhvLy8oKioCKFQyCx2efPkyRPk5ORg5cqVePDgAZ4/f84k7qVLl/Dw4UNMmTIFhw8fZnYX9fnzZ2hrawPIr4H59OkTqlatWibXHvD29ub/vWDBAubx//77b75z3suXL7F06VJmscePH4/Vq1dj6dKl+Pvvv5kkdkA2ZT58+DDGjRuHQYMGYdKkSTh58qTUMQu6du0arl27huvXryM4OBht2rRhGp/8nLJ3hMu5o0eP8p3Jdu/ezU98Ia3AwEB4e3tDU1MTEydOxKNHj5jEBYAlS5agfv36AIAePXpg2bJlzGKXN87OzujZsyeA/ATk6urKJO7WrVv5lcQ2bdrEbFW/Fi1awNbWFocOHYKtrS2MjIwQFBSE6tWrM4nPUsFKxM+fPzOPHx8fz7eFT506FQkJCcxiv3z5EuvWrcOmTZuwfft2vH//nklc1mXeunUroqOj4erqCj8/PyxZsgR37tzBjh07WBS3kHr16uHFixcyiU2+j9rcS5iCggKUlPI3u7KyMrMha7Jq8xMTX3136NChXAxZkxVlZWU0aNAAAKCrq8vsDlhJSYlfc11TU5NZ3JUrVyIkJASxsbEYOnQoevbsiRcvXsi0+vt3FTwWWA7lLBjz5cuXaNy4Md68ecN0P7azs8Ps2bPRrl07hIeHY+nSpUzmE2Bd5mvXrkl0WDQ0NIS7uzsmTJjArOObra0t//dLSEgokxeSFQEl9xLWu3dvjB07FsbGxnjy5Al69erFJO7gwYNl0lEPALS0tODr68svjMGqh3h5VLduXWzYsIHfFqzGMxsbG2PRokV83ObNmzOJm5KSgoyMDNSsWRPJycnYvXs3pk+fziQ2a2/fvsWGDRvAcRz/bzEW643b29tj4cKF+PTpE2rWrMl06Kiamhp69OgBAOjZs6dEE4M0WJe5qIt+BQUFpiMHBg0axHe6VVVVRcuWLZnFJj+POtSVgqioKLx8+RJ6enowNDRkEjM3NxevX79GdHQ0GjdujLp16zKbZz4pKQk7d+7Ey5cv0aRJE0ybNo1vx61osrKycPToUX5bWFlZMasluXjxIl68eIEmTZowu+gbP3489PT0EB0dDVVVVaipqUk9vaisnDp1qtjXRowYUYIl+XVLly5FgwYN0KlTJzx58gShoaH84j8sh6RKSzxT4c8+/zvGjBnDrLmR/D5K7iVEvAzi+vXrC1U5SnNXkpiYCKFQCDs7O6xZswYcx0EkEsHOzk7qyT/i4uJQu3ZtvHz5stBrjRs3lip2eRMREYFWrVoV2dFNmpO3uId4wapSMfHiG9IQTydqb28PV1dXjB07tswv+Sp29epV/m5YGiUx/Ot7y/7+zjS0sipzy5Ytixzp8uXLF0RERPx23IJkNc8++TVULV9CateuDUBy9i0WHj16hIMHD+Lly5dwdHQEx3FQUFBgcjB5e3vD3t4ejo6OEAgEfIcngUDA7Cq/vLh58yZatWqFwMDAQq9Js61TUlIASI7tZklRURFZWVnIyMiAQCBAXl6eTL5HFvbt28ckuW/ZsgUAcObMGZnVOM2ZMwcfPnxAnTp1+M6n0pBVmSMjI5nFKk61atXw9OlTPH36lH+OknvJozv3EjZr1ixYWVmhe/fuTDsNsbrLKcrFixfRq1evMjl8qqQdOHAAI0aMYL7KlaurK6ysrCQW/mEhODgYr169gra2NrZu3QoTE5Nys8Y760VuRo4cCV1dXVhaWqJr165MYqalpWHRokVISUlBvXr18Pr1a2hra2PDhg3Q0NCQOr4syiwrCxYsYDbhEJEeJfcSFhkZCX9/f4SHh6NPnz4YPXo06tSpI3XcGzduIDc3FxzHYfXq1Zg/fz6GDBnCoMT585PfuXMHvXr1wujRoyv0+sz79+9HQEAAGjduDEtLS3Ts2JFJ3ODgYPj7+yMtLQ0jR47EoEGDUKlSJSaxxYRCIZOEU1LCw8NhYmLCNGZERAT8/f3x+PFj9OnTBzNnzpQqnrOzM4yNjSVWYDx+/DgiIiLg7OwsZWnzsS6zrLBstyfSo+ReSr58+QInJydcuHCBSVWZuD1/1apV8PDwwIIFC6ReurGg7OxshISEwN/fHzk5OeVmaVZZefz4Mfbt24enT58iODiYWdyEhAS4u7sjLCwM9+7dkzre9evXceDAAWRlZfHPldUT8I4dOzBr1iyJoVRi69evZ/IdmZmZCA4OxpkzZwDkV/1LY+zYsfjnn38KPW9lZVVkP4rfwbrMQH51/9ChQ6WOU5CZmVmxNxQsRjuQX0Nt7iXs3r178Pf3R0REBAYMGAA7OzsmcStVqoTq1atDSUkJNWrUYD5O+PHjx7h27Ro+f/6M/v37M41dnohPtKdPnwbHcZg7dy6TuB8+fMCpU6dw/vx5NG/eHHv27GES193dHQ4ODnyfj7JMPEJAVgsI2dvb49GjR+jfvz9WrVrFpG1cPGfFt1gNLZNFmYH8mTJZJ/dKlSpVuI62ZRkl9xJ28OBBWFpawtXVlWkCVldXx5QpU2BlZYUjR44w7YQzaNAgGBoawsLCgtmMbOXV0KFD0b9/fzg5OaFhw4bM4s6dOxcWFhY4cuQI06rzOnXqoEuXLsziyVLTpk2RnZ2NQ4cOYePGjfzIj2nTpjGpbejbty/c3NyYHndVq1blR1KIRUREMOuTIYsyA/k1ccOHD5fo0S5t7YiOjk6ZH7JYkVC1fAnLzc3FqVOn8OHDB3Tq1AlNmzZlkoizs7Px5s0bNGnSBNHR0WjUqBGz8dfJyclQVlbGu3fv0KBBA1SuXJlJ3PIoNzcXb9++5RfoqVWrFrMT740bN/D27Vu0bt0ajRs3hqqqqtQxly5dChUVFYmlgFkMsZMFPz8/7Nq1C58+fUKNGjXAcRwUFRVhYmICDw8PqeNHR0fDyckJqampGDp0KJo2bSr1TH3v3r3DzJkz0bFjR+jq6uLdu3e4efMmdu7cyaRviizKDAB37twp9Jy0qzV6enoyq4kk0qPkXsKWLVuGmjVr4saNG5g+fTqOHj3KpAp2yJAh6NSpEywsLGBgYMCgpP8nODgYO3fuRF5eHgYMGACBQFBh12g+fPgwLly4gC9fvmD48OF48+YNHB0dpY67YcMGxMXFITY2FuPHj0dYWJjEDG2/q6g56ufMmSN1XFk6ceIERo8ezTzuxIkT4ezsjOXLl2Pz5s2YMmVKoTXNf0dWVhauXLmCt2/folatWujduzezC2BZlVkoFGL79u2IjY1Fo0aNMGvWrAq70qO8omr5EvbmzRu4uroiPDwcvXr1gpeXF5O4//77L8LCwrBt2zYkJydj6NChGDRoEJOpYr29veHn54fJkydj1qxZGDVqVIVN7oGBgThy5AgmTpyIP//8k1/UQ1rh4eE4cuQIbGxsMGLECGYzfM2ZMwcJCQn8SAqWi6WwVvBi5tsLG1Ydsho2bAiBQABtbW1m0yirqqrKtB+KLMrs4OCADh06YOjQobhz5w6WLl1aZmcuJL+HknsJy8vLQ1JSEoD8q2dWY8cVFBTQvXt3APl3Pj4+Pjh58iTMzc0xfvx4qWIrKipCRUWFX5hGTU2NRZHLJVkt0JOXl4esrCx+ohlW+4WDgwMePnyIjIwMZGZmQldXF35+fkxisybrzlhVqlTBsWPHkJGRgcDAQGbTM8uSrMqcnJwMGxsbAICRkRHTER+kbKBZSUrYggULMGbMGERGRsLKyopZFemaNWswYMAAXLx4EVOnTsWZM2fwzz//SD0FLQCYmJjA1tYW8fHxcHR0lOg8VNGIF+h58+YN0wV6Jk6ciJEjRyImJgYWFhYYN24ck7hPnz5FYGAgunXrhsDAQCbt+LIyYsQIjBgxAvXr1y/0Hwtubm549+4dqlWrhsjIyHLROVRWZc7KyuJnRfz06VOFXulRXtGdewn7448/EBwcjKSkJFSrVo1ZZ6xGjRrB399fotpOQUGBybrgtra2CA0NRfPmzaGnp8dsUZPyyMbGBl26dOEX6GG18M/AgQPRpUsXvH79GvXr12c22kG8j6Wnp5ebxX7ETRIcx+H58+eoV68eOnToIFXM7OxsREREoHnz5ujVqxfatGlT5mdclGWZFyxYAGtra2hqakIoFGL16tVM4pKyg5J7CcnOzsbGjRsRHByM7OxsqKurY/DgwZg1a1axY2V/RlZWFo4dO4YJEyYgISEB9vb2UFFRgZ2dHWrUqCH1XY94kpbk5GTUrl2b+dz45cmVK1cQFBTEbwtWHZAOHz6MoKAgpKSkoHbt2hg8eDCztvwWLVpg3759qFmzJhYuXIiMjAwmcWWpYHt7dnY2FixYIFW8qKgo2NraokWLFqhevTrOnj2L2NhYbNmyhfl0v6zIqswbN27EwoULkZ6ejpCQECQlJZWbiz7yayi5lxBPT0/UqFEDZ8+ehaqqKoRCIfbu3QtPT08sW7bst+O6uLigcuXKEIlEcHJyQqtWrdC0aVM4OTlh+/btUpX57Nmz2LNnD6ytrdGyZUt8+PAB8+bNw7x585iuF18eHDlyBKGhoZgwYQKqV6+ODx8+YPfu3Xjz5o1UQ8u2bt2KxMREuLm5QUdHB+/fv8f+/fsRHx/PpNOira0thEIhKlWqhNDQULRu3VrqmCUpLy8Pb9++lSrGunXrsH37dokL05iYGHh6ejKbLIg1WZX57NmzqFmzJnx8fPD582eJ18rqEEnyeyi5l5AnT55ILLWpoaGBBQsW8J1afldMTAyOHTuGrKwshIeHY8uWLVBWVsb+/fulLTIOHTqEw4cPSwzrGTFiBGbOnFnhkvt///2HI0eO8DOPGRoaolu3bpg0aZJUJ8Vr165JTFParFkzuLu7Y8KECVIl9+KaY/73v/+V+aFwBVcQy83NxYQJE6SKl5mZWajGqWnTpsjJyZEqrizJqszr1q1DWFgYsrOzZbYSISkbKLmXEGVl5SKfl7bNXdzGfv/+fbRq1Yr/noJzif8uJSWlQuN1NTQ0mE2tWZ4oKysX+t0qKipSb4uietsrKChIHffw4cPQ0tLC4MGDUbt2bZSn6SxYrbEuVty2LMudyGRVZmNjYxgbG8PU1BTGxsZSxSJlGyX3EpSTk1PoJCvtSVddXR2+vr4IDg6Gubk5RCIRzpw5w2SlueIuPMrySVFWitsW0v79ZBX32rVrCAsLQ0BAAKKiotCvXz/079+f2ThpWbC3ty/2NXd399+OGx8fX2gRl7I+5l/WZabELv9ohroS0qtXr0IncvGY6ZCQkN+Om5SUhH379kFHRwd//vknbt26hUOHDsHZ2Rk1atSQqsxdunRB586dC5X59u3buH79ulSxyxsTExM0bdpU4jmO4xAbGyvV6m0tW7YssmPely9fEBER8dtxC0pLS8OFCxdw7tw5qKmpldn13IcMGYLMzEwMHToUbdu2lbjAMTU1/e243xsxUlabKMpjmUnZQsmdFKuo+afFpJ2Hurx5//59sa/Vq1evBEvy6+7cuYOAgAA8fPgQXbt2LdPzf0dHR+PMmTN4/PgxP4MaywV6yP8RCoUQCAS4cOECzMzMmC12Q8oGSu6EyKHHjx8jMDAQN27cQJs2bWBubo4//viD+episnT37l34+PggLi6uzM6qV14tXLgQPXv2xIMHDyASifD582epR9eQsoXa3AmRQ5aWltDX14epqSmUlZVx/fp1vimF1TztsiIUCnHhwgUEBAQgIyOD+brj5Ym46Y61hIQEDBs2jJ+q+s8//2T+HaR0UXKXE2/evMHjx49hbm6O9evXw8rKitm0naT8kaYDWmkJCgpCUFAQPnz4gH79+mHVqlVM9uG7d+8W+5q0M9/J2uTJk5kMa/1WTk4Ozp8/jyZNmiApKQlpaWnMv4OULqqWLyEFx+5+i8XQH2trayxduhRt2rTB3bt3sW3bNhw8eFDquADw8eNHBAQESAyvq6ideqKiouDr6yuxLaRJpDY2NsXemR06dOi345ZHhoaG0NPT46f0Lbhd1q9f/9txxTUVb968QU5ODlq1aoX//e9/UFdXh4+Pj3SFlrEFCxbA3NwcjRs35qeeZbHAjrhmxN7eHr6+vmjdujV69uwpdVxSdtCdewlhPXa3KG3atAGQfzfCcrja/Pnz0blzZybD68q7pUuXYvz48ahduzaTeKtWrQIAbN++Hb1794aJiQkeP36My5cvM4lfnsjqYkY8ne20adOwY8cOKCkpIS8vD9OmTZPJ97H0+fNniYt0gUDAZDulpKRg8+bNAPKP74p2IVkRUHIvYc+ePYODgwPi4+Oho6MDNzc3NG/eXOq4Wlpa8PX1RZs2bfD48WOm45nV1dWxcOFCZvHKMx0dHVhYWDCLJ56F7NOnTxg0aBAAoG/fvmX+jlIWZD0Co+CMbAWXXi7LfHx88PXrV7x//x66urpSH9cBAQG4dOkSbt++jVu3bgHI3xYxMTFSzwRIyhZK7iXMxcUFrq6uMDQ0RFRUFFatWiUxLe3v8vDwwM6dO3HhwgU0adIEbm5uDEqbr2nTpggMDISRkRFfVSrrtbfLqnr16sHLy0tiW3yvyeVXHD9+HMbGxnjw4EGxMxr+qpEjR2Lo0KEYPnw4s4VuyqvRo0dj8ODBMDAwQExMDKZOnVraRfqh4OBg7Ny5E3l5eRgwYAAEAoFU0xKbmpqiRo0aSElJgbW1NTiOg4KCAnR1dRmWmpQF1OZewmxsbCTuysaPH4/Dhw//dry4uDjUrl0bL1++LPQaqwT87fz3rKoGy6OiZlFj0XktMTERu3btwqtXr9CkSRPMmDED1apVkzpuamoq/vvvP/z333+oU6cOLCws0KVLF6njllefP3/Gmzdv0LBhw3KxGpq1tTUOHTqEyZMn49ChQxg1ahT8/f2ljvv69WtERETA3Nwc69atg7W1NXXAlTN0517CFBQUcPnyZbRv3x53794tcm7xX+Ht7Q17e3s4Ojryd5Li4TOsErCPjw+Sk5Px9u1bpmuNl0fu7u6Ijo7G8+fP0bhxYxgZGTGJW6NGDfTu3Rtv375F69atC83p/7u0tLQwbtw4dOrUCTt27MCiRYtQv359TJs2DX379mXyHeVFTEwMVq5cidTUVAwdOhRNmzaFmZlZaRfruxQVFaGiogKBQACBQAA1NTUmce3s7LB06VIAQI8ePbBs2TJmHXBJ2UDJvYS5ubnB09MT69evh76+PlavXi1VPPGdZI8ePTBlyhQWRSzk7Nmz2LRpE/T19RETE4M5c+Zg2LBhMvmuss7HxwcBAQEwNjbG/v37MXDgQEyePFnquBs2bEBcXBxiY2OhoqICLy8viXXNf9eRI0fw77//QkNDA6NHj4aHhwdyc3NhaWlZ4ZK7i4sL3N3dsXz5cowePRpTpkwp88ndxMQEtra2iI+Ph6OjI1q1asUstqw64JKygZJ7CfPx8cGWLVuYxw0NDcVff/0lkxXbDhw4AH9/f6irq0MoFGLixIkVNrkHBATgyJEjUFJSQk5ODqytrZkk9/DwcBw5cgQ2NjYYMWIEjh49yqC0+ZOVbNiwQaLKVVlZGc7OzkzilzcNGzaEQCCAtrZ2mV5ER8zW1hahoaFo3rw59PX1mV2MyLIDLikbKLmXsOfPnyM1NRVaWlpM4yYnJ8PU1BT169fnq/BYdNQD8tvYxQe/hoYGVFVVmcQtjziOg5JS/mGjrKzMrONbXl4esrKyIBAIkJeXx49pltbUqVOxZ88eJCQkwMzMDM2aNUPDhg3Rtm1bJvHLkypVquDYsWPIyMhAYGAg82NQFt69e4eYmBhkZmbiyZMnePLkCZM5JmTZAZeUDZTcS1hsbCw6deqEatWq8W3kLMbAb926VSLRfPnyReqYYrq6uvDw8ED79u1x7949NGjQgFns8sbExATz5s2DiYkJwsPDmSXJiRMnYuTIkUhKSoKFhQX++usvJnEdHBzQvXt33L17Fzo6Oli2bJlUHTjLMzc3N+zatQvVqlVDZGRkuUhoixYtgqmpKXR0dJjGzczMlNjHMjMzmcYnpY96y5ewjx8/SkwGExsbC319/d+Ol5iYCKFQCDu7/9fevUdFXed9AH8Pl+GmoKBcTBZQUrKVfTTJSBMvaK6BN1LUHvXxligsiXgJUEI9aqtBWmabPauiIqCkloB5N2+ZVpq6LV64iOKFy0gIkczAPH9wmJXM9dnmN/Od+fF+nbNnh+Gcr++D5Gd+39/39/ksxKpVq6DVatHQ0ICFCxciKytLisjQaDTIzMzUZR07dqxkV6zm6NixY8jPz4evry+CgoIkWfPu3buws7PDjRs30LFjR1RWVuqegdfHpEmTsGXLFt3/T5gwAdu3b5cgsflZv359s8fIkpOTERsbKzDR002ePNkgB93Cw8OhUCjQ0NCAW7duwcvLS7JbQWQaeOVuJFevXsW9e/fw3nvvYcGCBboinJycjM8///x3r/vDDz8gNTUVhYWFWLx4MYDGE/lSPHt96dIldO/eHWfOnIGXl5du9OY333wj2bPd5uLo0aMYMGAAMjMzATTenrh79y4yMzMRHh7+u9d99Pdi/vz5AIDLly/r/XvxqPz8fACNHyAMcSbD1O3cuRNZWVnIz8/H8ePHAQANDQ1Qq9UmW9ybHm1t164dsrOz0a1bN0l7TDT9HgONj0s2/dtB8sHibiRVVVXIzc1FRUUFsrOzATTey54wYYJe6wYHByM4OBhfffWVZFeRTb7++mt0794dOTk5j32vpRX3yspKAM27nEnh0d+Lpp+zFL8XTRYtWoT4+Hjk5+cjOjoaSUlJkqxrTkaMGIHAwEB88skniIiIAND4AdjFxUVwsidLTEzUvX60EBuix0Tr1q1x8+ZNSdck8bgtb2T/+Mc/8Pzzz0u+7tWrV5GUlGSQZ3h37tzZrOVq0zZvS2SorV2pfy+amhv92tmzZw3e5tVUqdVqXL58GRqNBlqtFqWlpQgJCREd699q2jFqkpubq2tTrI+mbXmtVguVSoXAwMAW+wSFXLG4G9mpU6ewefPmZlPFpPgkPnnyZCxduhSLFi3C2rVrMX36dL07WT3ah/qll14C8K8+1L91NS9nj27t+vr6Amj8WWg0GuzevVvv9Q8fPozt27dDrVZDq9WisrISe/fu/d3rhYaGIjU1tVnDofXr12PHjh04duyY3nnNUUREBNRqNUpLS1FfXw9XV1ds3rxZdKzfdPToUZw/fx7Z2dm6DyANDQ04fPgw9u3bp/f6JSUlutc2NjaSH9gj8bgtb2QrV65EfHy8ZFPFHiX1M7zsQ/0vj27tzpo1S/ezkGprd82aNVi6dCkyMjLQu3dvnD59Wq/1IiMjMWPGDKSmpkKtVmPevHlQKpWStC41V/fv30dmZiYSEhKwePFiyZ5IMAQ/Pz/cv38fNjY26NSpk67r5GuvvabXuuvWrXvi91rqGGe5YnE3Mg8PD4P09jbEM7xOTk7o3bs33N3dH+tD3dIolUp07NgRYWFhOHToECZNmoTY2FhMmzZNkql+rq6u6NGjBzIyMjB69Gi9dwOGDh0KjUaDKVOmoKqqCpMmTcIbb7yhd05zZmtrCwCora2Fra1ts3nxpsbDwwOjR49GQEAA7t69Cw8PD0l6vzddoR86dAgdO3ZEz549cenSJdy5c0fvtcm0sLgbmYuLCxITE5udftXntHWTXz/Du3z5cr3XbMI+1P+ybNkyvP/++wCAOXPm4O2330ZaWpre61pbW+PcuXPQaDQ4ceIE7t+/r/eaISEhqK+vf+zMREs1ZMgQrFu3Dn5+fhg7dqxk/fsNoaamBrGxsaisrMQzzzyDGzduwNnZGSkpKWjVqtXvXrfpg/mBAwd0hyuHDx9u0rsY9PuwuBtZ06fv8vJySde1s7NDSEgI6urqAADFxcWSjvhkH+pG1tbWuiY+np6eknWSW7JkCQoKCjBr1iysXbsWs2bN0mu9uXPn6g5MFRcXY8KECbpHGZOTk6WIbHYe3bkICgqCt7e3uDBPkZycjKFDh2LkyJG693bu3IlVq1ZJcvCtsrISxcXF+MMf/oCCggI8ePBA7zXJtLC4G1lUVBSOHTuGa9euwcfHB8HBwZKs++abb6Kurg5OTk66+3P/7v7af4J9qP+lQ4cOSElJ0f0sXF1d9Vrv0VG9Tecw5s6dq9eaAJrdOmmJt1Ee1fRB57eY6gedvLy8Zo/DAcCYMWMka0wVHx+PyMhIqFQquLm5tchHJOWOp+WNLDk5GTdu3EDPnj3x7bffwtPTEwsXLtR7XX3nwv87KpUKH3/8MYqKitC5c2e8+eabLXbs68OHD5Genq77WYSHh+s1tnfixIm/+b4hnmduqc6ePfvE75nqY4FNHQV/TcoOgxzjLG+8cjeyc+fO6Qa6TJ48GWPHjpVk3V69euHEiRPNWtl26NBBkrWdnZ0xYMAA3azxlnzlbmVlBQcHB7Rt2xZdunRBdXW1Xv8wbt26Vff6wYMHKCkpgaenZ4v+GUutqYBXV1c/NkTHVLVp00bXIbLJpUuX4OTkJMn6ubm5WLt2LXx9fXH16tUWPcZZrljcjUyj0aChoQEWFha67XMpVFRUYMWKFbpT8lJOhTPUrHFzlJiYCFdXV5w+fRrdu3fHwoUL8emnn+q97v79+/Hxxx+jvr4eQ4cOhUKhaNYsh/RnTkN0FixYgFmzZqF3797w9PTErVu38PXXX+Pjjz+WZP3U1FSOcZY5aU4D0f/bsGHDMH78eKxYsQITJkyQpNsUABQUFGDfvn3IzMxEZmamZIUdaJw1vmrVKtjb22PUqFG4deuWZGubm+LiYrz11ltQKpUYOHCgZAeRNm3ahB07dqBNmzaYPXs2Dh06JMm69C+VlZV4/fXXYWVlhZ49e5r0wdCOHTsiKysLAQEBUKvV8Pf3x44dOyTrMcExzvLHK3cjmzp1Kvr27YuCggK8/vrr6NKliyTrdu3aFRcuXGj2zLU+94IfZahZ4+aovr4eKpUKCoUC1dXVkv0sLC0toVQqoVAooFAoYGdnJ8m61Jw5DdGxsbHBq6++apC1OcZZ/nigzkjUajU+/PBDREZGwsbGBkePHsV3332HOXPmwMpK/89YoaGhqKmp0X2tUChw+PBhvdcFgH379mHdunVQqVTw8PDAlClTEBoaKsna5ubcuXNYtGgRysrK4OHhgYSEBEmaEqWkpKCkpASXL19G7969YW9vr+stQNK4cuUKEhMTkZ+fj06dOiEpKUmSBkTmqK6uDjt37uQYZxljcTeSpUuXwsrKStcGtLKyUveo2qJFiyT7cyoqKtCmTRtJr0oMNWvcHDUdclKpVGjbti3OnTsn2Ynr48eP4+rVq+jUqRMGDhwoyZr0ZFeuXDHpQ3WGNHXqVGzcuFF0DDKglru/amT/+Mc/EB8fr9sqb9OmDRISEnDhwgVJ1v/mm28waNAgTJs2DYMHD8apU6f0XvPq1as4ceIEZs6ciUuXLqGqqgqXL19GTEyMBInNy7fffouMjAzMnz8fmZmZOHjwIDIyMvRuKKLRaHDgwAGcOXMG/fr1w/Tp09G9e3fMmTNHmuCEEydOIDQ0FP/93/+NmzdvQqPRYNWqVZg5c6boaMI4Ojri8OHDyM/PR2FhYbN+CyQPvOduJL91YEXKe6tr1qzB9u3b4ebmhnv37iEqKgp9+vTRa01Dzxo3J46OjigvL0ddXZ1uprtCocD8+fP1WnfevHmwtLREWVkZrl+/jo4dOyIhIaHFjtQ1hNWrV+ODDz5ASUkJkpOTUVFRAQ8PD3z++eeiowlTUVHRbCIe+yrID4u7kTg7O//mc6tSFXdLS0u4ubkBANzc3CQ5/dqrVy/06tVLN2tcpVKhTZs2LfJAXZcuXdClSxeMGTMGDg4OuHXrFv7whz/o3Z+8uLgYu3btQl1dHcLCwmBtbY0tW7Y061dA+nF0dISPjw98fHyQkJCAyMhIyfpLmKPq6mps2LCBhzZljsXdSN5++23Mnj0bHh4e8PT0xO3bt1FSUoK1a9dKsn6rVq2wdetWBAQE4Ny5c5I1uwAam6sMGjQIrVu3RlVVFZYtW6b3roC5unDhgqTPozcNAVEqlWhoaMDGjRslnQlAaPZh1MPDo0UX9m3btmHjxo2wsrLC4sWL8corr4iORAbS8i7BBHF3d0dWVhb+53/+B927d8eUKVOQlZUlyRhHoHHr8fbt23j//fdx584drFixQpJ1AWDt2rXYvn079uzZg/T0dKxZs0aytc2NIZ9Hd3FxYWE3gNraWhQVFaGgoAANDQ0oKipqsfeZs7Oz8eWXXyIjI6PFTnZsKXjlbkQWFhYICAiQdM27d+/C3d0d5eXlza5IVCqVZFfvhtjyN1dSP49+/fp1xMbGQqvV6l43MdWhJubG1tYWixcvBtB49qXpdUu8z6xUKqFUKuHs7Ay1Wi06DhkQi7uZ27RpE+Li4pCYmKgb8QlI+w+XIbf8zc0LL7yAuXPn4t69e0hMTGx2huL3eHQXpKVPbzOUR/v3A8C9e/d0H1ZbMj4FLW98zl1mmua5S9WdDmi8575+/XoUFBSgc+fOmDlzZosu8IZ8Hv2TTz5p0Y9oGcOTJq61BC+//DICAwOh1Wpx5swZBAYG6r7HnSJ54ZW7kZ0+fRoajQZarRbLli3DW2+9pVe3t7y8PKxZswYuLi547bXXdM+gx8XFYeTIkZJkTkpK4n/4aPxZ79+/H/fv34e7u7tBGvmcOnWKxd3AWvL1DHeKWg4eqDOy999/H97e3tiyZQvS09P1HvCSlJSEiRMnok+fPoiMjNQ1WJFq5jPQuBuQl5eHhw8foq6uTrc70JLs27cP8fHx8PDwwCuvvAIHBwdER0dLPuClJRceYxk6dKjoCMK8+OKLT/wfyQuv3I3M1tYWLi4usLKyQvv27fUe+Wptba17LG3Lli3w9vYGAL2fv35UYWEhZs+erbunL2XfenOxZcsWbNu2rdnPddSoUZg1axaCg4Ml+3M2bNgg2VrUXHZ2NkJCQvDGG2+grKwMcXFx+N///V/RsYgMgsXdyFq1aoXp06cjPDwcaWlpcHZ21mu9Rz8cPHqfXcpxltnZ2ZKtZa6srKwe+8DUqlUrvXv4Dxw4sNnfoZWVFTQaDZRKJfbt26fX2tTc559/DgcHB9TV1SElJQXR0dGiIxEZDIu7ka1duxbFxcXw9fXFtWvXMGbMGL3W+61HqbRarW60pT727duHd999F7a2tli9ejX8/f31XtNcPWmHRd8PUV9++SW0Wi2WLFmCcePGwd/fHz/++KOkt1Wo0YcffoiIiAg8fPgQ6enpen+wJjJlLO5GVlBQgNraWvzwww9ISUlBREREsxOr/6knHZCR4rBMamoqvvjiC1RVVWH58uX429/+pvea5urXz6ADkORDVNNuy82bN3Ufnrp169YiG6wYyty5c3UfzmxtbXHx4kUsX74cAE+Ik3yxuBtZUlISFi9ejA8//BAxMTFYvXq1XsXdkAdhlEolnJyc4OTkhNraWoP9OebgSV35pDpx3Lp1a6xZswb+/v44f/482rdvL8m69K+/o6qqKjg6OmLq1KmCExEZHou7kSmVSjz77LNQq9X4r//6L7MZwtLST3Eb+jTxqlWrsGPHDhw7dgydO3fGX/7yF4P+eS1J09/d+PHjkZ6eLjgNkXGwuBuZQqHAggUL0K9fP+Tm5sLa2lp0pCe6efMmUlJSoNVqda+bzJ07V2Ay+YmOjsbGjRtFx5A1JycnpKamwsfHR/ehum/fvoJTERkGO9QZmUqlwqVLlxAUFIQzZ87Az8/PZIeF7N69+4nfGzVqlBGTyN+cOXMQGhoKb29vXeHx8fERnEpe4uLiHntv5cqVApIQGR6Lu5FVV1fj008/RWlpKQYMGICuXbvCy8tLdCwSbOLEic2+bolDTYzh6tWruH79Onx8fPDcc8+JjkNkMCzuRhYdHY1+/fph165dmDdvHlJSUrBt2zbRscjE1NXVSTofgBoHyGRnZ+sOLf75z3/GtGnTRMciMgjeczeyyspKvP766/jiiy/Qs2dPSZvNkPnKyMjApk2bdHMHrK2tsX//ftGxZCU7OxtpaWmwsrKCWq3GuHHjWNxJtszjqLbMND0bfffuXb07nBnD6NGjsXnzZlRWVoqOIltpaWnYunUr+vXrh5UrV6Jz586iI8mOVquFlVXj9Yy1tbVJH2Yl0heLu5EtWrQI8fHx+PHHHxEdHY23335bdKSn2rx5M6ytrREREYGYmBicPn1adCTZcXV1haurK2pqatC7d288ePBAdCTZ6dmzJ6Kjo5Gamoro6Gj06NFDdCQig+E9dyOrq6vD9evX0a1bNxw6dAhBQUFmcwWRn5+P9evX4/Tp0+jYsSPefPNNDB48WHQsWZgzZw5CQkJw8OBB9OjRA2lpadi7d6/oWLJz7Ngx5Ofno3Pnzujfv7/oOEQGw+JuZNHR0QgKCkJYWBg+/fRT5OXlmXwLzLS0NHz++edo1aoVxowZg+DgYGg0GowdO5YFSCLV1dUoLi6Gi4sLNm3ahAEDBqB3796iY8nK6NGj0bdvXwwZMgR//OMfRcchMigWdyMLDw9HZmam7uuJEydi69atAhM93ZIlSzB16lR4eno2e//8+fPc2pTAyZMn0adPHygUCvzzn/9EWVkZ+vXrJzqW7NTV1eHrr7/G0aNHkZeXB39/f8THx4uORWQQvOduZAqFQjcUpLi42CxOy+fl5T1W2AGwsEtg+/btWLduHWpqagA0/n589NFHzT4AkjRqa2tRW1uL+vp61NXVoaKiQnQkIoPhlbuR/fDDD3jnnXdQXl4OV1dXLFmyBN27dxcd699qmlzHtp3SGzNmDLZt2wYbGxvdezU1NZg0aRI+++wzgcnkp1u3bujSpQtiYmIQFBQkOg6RQfE5dyN77rnnsGLFCt2BOj8/P9GRnqpt27bIy8tDXl6e7j0Wd2nY2to2K+wA4ODgAAcHB0GJ5OvYsWM4efIkvvjiC6SmpuL5559/bIwvkVywuBvZvHnzEBQUpJvZvW/fPpM/UPfr/tulpaWCksiPtbU1VCoVnJ2dde+pVCrU19cLTCVP7dq1g5eXF4qKilBSUoKSkhLRkYgMhsXdyO7du4ewsDAAwIwZMx7rKW6K1q5di/T0dKjVavzyyy/w9vZGTk6O6FiyMHv2bEybNg0jR46Ep6cn7ty5g6ysLMyfP190NNkZOnQoAgICMHjwYERFRbG9L8kaD9QZ2aMH6m7cuGEWB+qOHDmC48ePIzQ0FLm5uXBzcxMdSTZ69eqFDz74AA8ePMCxY8dQXV2NdevW4eWXXxYdTXaGDx+O5cuXo3///lAqlSa/Y0akD165G1lcXBxiYmJQXl4OW1tbsxid2r59eyiVStTU1MDLywtqtVp0JFnx9PREVFSU6BiytXPnTmRlZSE/Px8nT54EANTX10Oj0fCeO8kWi7uR/elPf8LSpUuxbds2nDp1yiwex3F3d0dWVhbs7OyQnJyMqqoq0ZGI/t9GjBiBwMBAfPLJJ4iIiAAAWFhYwMXFRXAyIsPho3BGUldXh5ycHKSlpUGpVKK6uho7duyAra2t6GhP1dDQgDt37sDJyQm7d+9GYGAgfH19Rcci+o9oNBrs3r0bt2/fxksvvYRnn3222UFGIjnhPXcjGThwIK5cuYL33nsP27dvh6urq8kX9j179mDPnj344osvcO7cORw6dAitW7fG5cuXRUeTjaaGKlFRUVCr1airq8PDhw8xadIk0dFk55133sHt27dx+vRp1NTUYOHChaIjERkMt+WNZPLkydi7dy9KSkrw+uuvwxw2TJpG0164cAF2dnbo0aMHLl26BI1Gg5EjR4oNJxOfffYZ/va3v6G8vBxDhw6FVquFpaUlXnjhBdHRZKe4uBjLly/Hd999h4EDB2LDhg2iIxEZDIu7kcyYMQMzZszA2bNnsXPnTly+fBmrV6/GiBEj0KVLF9HxflPTYaNp06Y1+4dw6tSpoiLJztixYzF27FikpaXhjTfeEB1H1urr66FSqQA0Dupp6rZIJEf87TayF198EatXr8bBgwfh7u6OBQsWiI70VCqVSneI7v79+6isrBQbSIays7NFR5C9OXPmYPz48bh8+TLCw8MRGRkpOhKRwfBAHT3V/v378de//hVOTk548OABFi9ezN7cEps2bRo6d+7crH9/eHi44FTypFKp0LZtWygUCtFRiAyG2/L0VK+++ioGDRoElUoFFxcXWFpaio4kO00T9szh0UhzExcX98Tv/bq1MpFcsLjTU506dQqbN2/Gw4cPde9t2bJFYCL5iYqKQmlpKTQaDbRaLfv3S2jYsGHNvi4tLUVycjIPLZKscVueniokJATx8fFwd3fXvdepUyeBieQnPj4eFy5cQG1tLX755Rd4enpix44domPJTnZ2NtasWYOoqCg+8UGyxit3eioPDw/2OjewvLw85OTkIDExETExMXjrrbdER5KVyspKvPPOO6iurkZaWhrnI5DssbjTU7m4uCAxMRHdunXTHULiYS9pNR3w+vnnn9k1TWJHjhzBu+++iylTpmD8+PGi4xAZBbfl6anWrVv32HscdCKtlJQUODk5oby8HHfv3sXNmzeRlZUlOpYs+Pn5wc7ODg4ODo99r2mQDJHcsLjTU92+ffux9zp06CAgibzV1NTAxsYGx48fx5/+9CcONiGi343FnZ4qPDwcCoUCDQ0NuHXrFry8vJCeni46lqxcvHgROTk5zZ5ISEpKEheIiMwa77nTU2VmZupeV1VVYfHixQLTyNPChQsxY8YMODo6io5CRDLA4k7/kdatW+PmzZuiY8iOl5cXRo8eLToGEckEizs9VdO2vFarhUql4mNxBvDqq68iJiYGnTt31r3HQ4vSmDhx4hNbzbIZE8kVizs9VUpKiu61jY0N2rVrJzCNPKWlpWHIkCHcljeAJUuWAAA++ugjDBo0CC+88AIuXryIo0ePCk5GZDgs7vRUlpaWWLFiBfLz8+Ht7Y24uDh07NhRdCxZadOmDd58803RMWSpqZtieXm5rhXt4MGDsXXrVpGxiAyKxZ2eatGiRRg/fjwCAgJw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", + "image/svg+xml": "\n\n\n \n \n \n \n 2022-05-26T10:48:30.233445\n image/svg+xml\n \n \n Matplotlib v3.5.1, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", "text/plain": [ "
" ] @@ -322,7 +330,7 @@ } ], "source": [ - "df_cpe_rich = df.loc[~df.verified_cpe_matches.isnull()].copy()\n", + "df_cpe_rich = df.loc[~df.cpe_matches.isnull()].copy()\n", "df_cve_rich = df.loc[df.n_cves > 0].copy()\n", "\n", "categories_cpe = df_cpe_rich.category.value_counts().sort_index().rename('Category distribution CPE-rich')\n", @@ -331,7 +339,9 @@ "\n", "categories_merged = pd.concat([categories_all, categories_cpe, categories_cve], axis=1)\n", "categories_merged = categories_merged.div(categories_merged.sum(axis=0), axis=1)\n", - "categories_merged.plot.bar(title='Categories (without smartcards) comparison between CPE-rich, CVE-rich and all certificates')" + "\n", + "categories_merged.plot.bar(title='Categories (without smartcards) comparison between CPE-rich, CVE-rich and all certificates')\n", + "plt.savefig(RESULTS_DIR / \"categories.pdf\", bbox_inches='tight')" ] }, { @@ -343,23 +353,13 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": {}, "outputs": [ { "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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sQOAnTt3cuGFF6KU4vTTTycWi3Hs2DF27drFueeei9/vx+/3c+6557Jr165ydWtcpepztZhsf2tqali5ciU2m23E8+zdu5fm5maampqw2+2sX7++8JhKU6o+V5PJ9nnVqlX4/X4ATjvtNPr6+oDq+j0LmbKes7q7uzlw4AArV65kcHCQuro6AGpraxkcHASgv7+f+vr6wmPC4TD9/f309/cTDocLt4dCIfr7+2e3A1MwnT7X1dVhmiY33XQTNpuNyy+/nNe+9rVl6UexiunvWE7+HYfDYfbs2TOj7S2F6fQ577bbbgPgLW95S1VsF5psn7du3coFF1wAVO/veb6SgDwHJZNJ7rrrLj760Y/i9XpH3KeUQilVppbNnFL0+Zvf/CahUIiuri5uvfVWlixZQnNz80w1eVrkdzy1Pn/lK18hFAoxODjI3//937NgwQLOOuusmWrytE22zy+88AK/+93vuPXWW2ezmaJEZMp6jslkMtx111286U1v4nWvex2Qm8LLT8seO3aMYDAI5Ea+vb29hcf29fURCoUIhUKFKS/IfcsOhUKz2IvJKUWf8/cBNDU1cdZZZ/Hqq6/OYi+KN5n+juXk3/Hw16ESlaLPcOJ3XFNTw2te8xr27t07c42epsn2+eDBg3z729/m85//PIFAAKi+3/N8JwF5DtFa861vfYuFCxfyjne8o3B7W1sbjz76KACPPvoor3nNawq3P/bYY2iteeWVV/B6vdTV1XH++efz7LPPEo1GiUajPPvss5x//vnl6NKEStXnaDSKaZoADA0N8fLLL7No0aLZ79AEJtvfsbS2ttLR0UF3dzeZTIZt27bR1tY2o22fqlL1OZlMkkgkCv//3HPPFVbVV5rJ9rm3t5c777yTz3zmMyxYsKBwfDX9noVk6ppTdu/ezZe//GWWLFlSmMp6//vfz2mnncbXvvY1ent7T9kCdM899/Dss8/idDq59tpraW1tBXLXoR566CEgt+1pw4YNZevXeErV55dffpnvfOc7GIaBZVlcdtllXHzxxWXu3akm29+BgQFuuukmEokESincbjdf/epX8Xq9PP3003z/+9/Hsiw2bNjAlVdeWebeja5UfY5EItx5550AZLNZ3vjGN86ZPn/rW9/iySefLKyPGL6lq1p+z0ICshBCCFERZMpaCCGEqAASkIUQQogKIAFZCCGEqAASkIUQQogKIAFZCCGEqAASkIUQQogKIAFZCCGEqAD/P4uD/SFP8JZ1AAAAAElFTkSuQmCC", - "image/svg+xml": "\n\n\n \n \n \n \n 2022-04-18T20:34:27.489480\n image/svg+xml\n \n \n Matplotlib v3.5.1, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAECCAYAAAD9z2x7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAABtxUlEQVR4nO2dd5xU1fmHnzt9Zme2d2CBBZa+ApbYI4K9ohGFiPpTEyVFxajYg4IFYw3GlhiTYAFsMSYxGiwxwY4idUHp2+v0Pvf8/rg7wy7bC+wuex4+fHZ37r3nnvfOzPee+573vK8ihBBIJBKJ5JBH19cdkEgkEsnBQQq+RCKRDBKk4EskEskgQQq+RCKRDBKk4EskEskgQQq+RCKRDBIOiODfe++9zJ49m1gslngtFotxySWX8Nhjjx2IUw5I7rjjDj755JM2t1dVVXHJJZf02vlOPvlkNmzY0KVj9u7dyy9/+cte60Nv8OGHHzJv3jzOP/98zjrrLG644QYqKioA+PzzzykuLua8887j/PPP57zzzuOCCy7ggw8+aLG96f8rrriiU+d+5ZVXeO6559rdpzvXGSAUCvH4448n+n3OOefw3HPPIYTgiy++4MgjjyQUCjU7JhwOc/TRR7Np0yaWLVvG0Ucf3cK2hx9+uFPn7+jzWFpaytSpU7tsV3eZOnUqpaWlnd7/888/5+yzzwbg1ltv5fnnnz8g/Xr11Vd56aWXgOafh//9739Mnz6dCy+8kJdffrnDz0l7XHnlldTX1/dKf5ti6PUWgYULF3LhhRfy7LPP8rOf/QyAZ599Fr1ez3XXXXcgTjkgue+++9rdnpOTw4oVKw5Sb1qnvLycnTt39mkfmvL222/z9NNP8/TTTzN8+HCEEDz33HNcdtll/OMf/wCgoKCAt956K3FMSUkJc+bM4f333291e1eYM2dOz41oBSEEP/vZzxg5ciQrV67EbDbT0NDANddcg9/v54YbbiAnJ4d3332Xc889N3Hce++9x4gRI5g4cSIffPABZ555JnfffXe3+tDR51GisXbtWsaMGQM0/zz84x//4KKLLkpoXk9Ys2ZNj9tojQMi+GazmUceeYQ5c+Ywffp0hBC8/PLLvP766+j1el599VVeeeUVVFUlNTWVu+66i1GjRrFz507uvfde/H4/1dXVjBs3jscffxyz2cykSZOYMWMGJSUlPPzww3z44Yf8+9//xmg0kpaWxgMPPEB2dnazfvh8PpYsWcLXX3+NXq9n5syZLFiwAK/Xyz333ENJSQmKonDCCSdw4403YjAYmDx5MldccQUfffQRXq+Xm2++mX/9619s27aN7OxsnnnmGWw2GxMmTODyyy/n888/x+/3c+ONN3Lqqafi9/tZtGgRu3btwuVykZSUxMMPP0xhYSHz5s0jJSWFHTt2MGfOHN577z1+/OMfM3PmTBYvXszXX3+N0Whk6NChPPDAAzQ0NHDOOefwzTffEIlEePDBB/n000/R6/UUFxdz2223YbfbOfnkk5k1axaffvopFRUVnHHGGdxyyy2tvjcvv/wyJSUlhMNh/u///o8f/ehHAHzwwQc8/fTTRCIRLBYLCxcupLi4mDvvvJOqqiquuuoqLBYLJ510EhdddBHr1q3j4osvZvXq1QwbNoynn34aj8fDLbfcwtNPP817772HqqoMGTKEX//61+Tk5ODxeLjvvvvYtm0bkUiEY445hltuuSVx3X/605+yZs0aqqurueyyy1oddT/22GMsXryY4cOHA6AoCj/96U/Jz88nHA63avO4ceOwWCyUlZV1+bO8bNky1q1bR3V1NWPHjmX48OE0NDRw9913s3PnTu6++27q6+vR6XTMnz+fM888E4CVK1fy61//mvr6es477zwWLFjQ7nm+/PJLduzYwXPPPYderwcgLS2Nhx56KNHvOXPm8PrrrzcT/JUrVzJ37twu2wW0+Xk8/fTT+fDDD3n88cdRVRWbzcY999yD3W4nFotx9913s2HDBtxuN7fccgunnXZai7afeeYZVq9eTSgUIhAIsHDhQk455RSWLVtGWVkZNTU1lJWVkZ6ezmOPPUZOTg5fffUVixcvRlEUJk+ejKqqrfb7ww8/5NlnnyUcDlNfX8/555/PDTfc0Cmb29KESCTCww8/zJdffkksFmPChAnceeedie9XcXExW7du5cYbb+SDDz5gzZo1WCwW6uvraWhoID8/n/fffx+z2YzH48Fms3X4OWnLjttuuw2Ayy+/nOeeew6dTse9995LRUUFkUiEs846i2uvvZZoNNqqbiQlJbV9AcQB5C9/+YuYNWuWOO+888RHH30khBDi888/F3PnzhV+v18IIcR///tfccYZZwghhHjwwQfFX//6VyGEEOFwWJx99tniX//6lxBCiKKiIvHmm28KIYQoLy8X06ZNE6FQSAghxPPPPy/+/e9/tzj//fffLxYsWCCi0agIhULixz/+sfjss8/ELbfcIhYvXixUVRWhUEhceeWV4tlnn02c589//rMQQohnn31WTJ06VVRWVopYLCZmzZol/va3vyX2e/rpp4UQQmzZskUcfvjhoq6uTrzzzjti8eLFiT7cdddd4t577xVCCHHppZeK2267LbHt0ksvFe+884748ssvxemnny5UVRVCCPHQQw+JtWvXir1794opU6YIIYR44oknxC9+8QsRDodFLBYTt956q7jrrruEEEJMnz5dPPjgg0IIISorK8XkyZPFnj17WlyP6dOni1//+teJ/Y4++mixbds2sXPnTnH22WeL+vp6IYQQ27ZtE8cdd5zw+Xzis88+E2eddZYQQog333xT/PKXvxRCCPHb3/5WHHfccWLFihVCCCEuvPBC8e2334o333xT3HDDDSISiQghhFixYoW4+uqrhRBC3HrrreIvf/mLEEKIaDQqbrrpJvHcc88lrufy5cuFEEJs2LBBTJo0SQSDwWb9r6+vF0VFRYnPTms07W+cd999Vxx77LHC7/eLzz77TEyePFmce+65zf4/9dRTrbb329/+Vpx22mkJe37729+Ke+65RwghxPnnny9efPFFIYT2mZwxY4bweDxi+vTpife8urpaTJo0SZSXl7fZZyG0z/B1113X7j4ej0ccfvjhifd2586d4thjj018D37729+KH/zgBy1s+/jjj1ttr63PY01NjTj88MPF5s2bE9fvqquuEnv37hVFRUWJ7+R7770nZsyY0aLd0tJSMW/ePBEIBIQQQvz9738XZ599dqKP8eskhBDXXHONeOKJJ0QoFBLHHnus+OSTT4QQQrz99tuiqKhI7N27t1nbqqqKSy+9VOzcuVMIoX2Ox48fL+rq6pq99wsXLhR/+MMfWvStLU1YtmyZePDBBxPfwUceeSTxXZk+fbp48sknE200bbvp56Gt11v7nLjd7jbtEEL7PsR/nzdvnnj//feFEEIEg0Exb9488Y9//KNN3WiPAzLCjzNv3jzeffddRo0axQ9/+EMAPvroI3bv3t3MN+1yuXA6ndx8882sWbOG3//+9+zatYvq6mr8fn9ivyOOOALQXB3jxo1j1qxZnHjiiZx44okcc8wxLc7/ySefcNttt6HX69Hr9bz44osA3HDDDbzyyisoioLJZOKSSy7hz3/+Mz/96U8BEiOWgoICioqKyMnJAWDo0KG4XK5E+5deeimgjSCLior48ssvOf300xk2bBjLly9n9+7dfPHFF838nnEbmlJUVIRer+eiiy7i+OOP57TTTqO4uLiZ//Ljjz9mwYIFGI3GxLX9+c9/ntg+Y8aMxLXJyMjA5XIxbNiwFueKX/ecnByOP/74xBNDdXV1sxG1oijs2bOn2bHTp0/ngQceIBqN8r///Y/58+ezZs0aTjrpJOrq6pg8eTLPP/88GzZs4MILLwRAVVUCgQCgvfcbNmzgtddeAyAYDDZrP27DxIkTCYfD+P1+zGZzYrtOp0u02R579uzhvPPOAyAajZKbm8tTTz2F1WoFuu7SmTJlCgZD86+K0+mkpKSEiy66CIC8vDxWr16d2B73JWdlZZGZmUldXR15eXltnkOn0yE6yHJit9s555xzeOONN7j++utZuXIlP/rRjzCZTIl9uurSae3z+PXXXzNmzBjGjx8PwKmnnsqpp55KaWkpRqMx8f0YN24cdXV1LY4fMmQIS5cu5e2332b37t18++23+Hy+xPajjjoKu90OwIQJE3C5XGzbtg2DwZD4Hp999tmt2qEoCs888wwfffQRf//739m+fTtCiMRnrCPa0oTf/OY3eDyexBxGJBIhIyOj3evUGdr7nHTGDr/fz5dffonL5eKJJ55IvFZSUsLxxx/fqm60xwEVfNBEsqCgIPG3qqqcd9553HzzzYm/q6urSUlJYcGCBcRiMc444wxOOukkKioqmn0JbDYboH05XnzxRTZs2MCnn37K/fffzw9+8APuvPPO5sYZDCiKkvi7oqICi8XSQjBUVSUajSb+jovq/r/vT/zRO96GXq/n5ZdfZtWqVfz4xz/mnHPOITU1tZlwx21oSnJyMm+99RZff/01n332GTfccAOXXXYZM2fObNb+/n2ORCKJv5sKo6IobYpHXDRB8xsbDAZisRjHHHMMjz/+eGJbRUUF2dnZfPXVV4nXUlJSmDBhAh9++CEej4fzzjuP3/3ud6xevZqZM2eiKAqqqnL11Vcn3AzhcDhxk1RVlSeeeIJRo0YB4Ha7m70/cRvir+1vQ0pKCiNGjODbb7/l2GOPbbbt+uuvZ/78+UDPfPQ/+clPqK6uBkjMN7X2nsVvAE37v2PHDvLz85ttj+/TkZgfdthh/PnPfyYWizX7XK1fv57ly5fzm9/8BoC5c+fyk5/8hGuvvZa33347cfPsiKqqqsSABkhMKLZmm16vb2aXEIKtW7dit9ubfR+a7tOUTZs28bOf/YwrrriC4447jiOPPJJ77rknsd1isTRrQwjR6jXa/yYLmtjNmjWLmTNncsQRR3DhhReyevXqDq9v0zbb0oTbb789MTD1+XzNJshbu06dPR+0/Jzk5uZ2yg5VVRFCsGLFisSApb6+HrPZTFJSUqu60V4AwkEPyzzuuOP4xz/+kfhSvfLKK1x++eWANsv985//nDPPPBNFUfj222+bRfrEKSkp4eyzz2bUqFFcc801XHHFFWzdurXFfscccwxvvvkmqqoSDoe57rrr+PLLLzn++ON56aWXEEIQDodZtWpVCwHpDH/9618B7QO+c+dOjjzySP73v/8xa9YsLrroIkaOHMkHH3zQqg1N+fDDD7niiiuYOnUqv/zlLzn//PMpKSlpts8JJ5zAihUriEQiqKrKSy+9xHHHHdflPr/55puANhn7ySefcMwxx3D00UezZs0atm/fDsB//vMfzj33XEKhEHq9vtmNZebMmTz66KMcc8wx2O12Ro4cye9///vEqO/444/ntddew+v1AvDEE08k5hOOP/54/vSnPyWu+/z58xMjrM7yi1/8gvvuu4/du3cDWvTXU089RUlJCYWFhV2+Hvvz+9//nrfeeou33nor8cTRGna7nYkTJyY+AxUVFcyZMwePx9Ot806dOpXCwkIeeOCBhNDU1tayZMkShg4dmthvzJgxDBs2jEceeYSpU6eSm5vbqfZzcnISdr311luJp9bWOOyww9i+fTvfffcdAO+//35igNYZvvzySyZNmsT//d//cdRRR/H+++93+B0oKipCCMF//vOfxDmbPk3H2b17N16vlxtuuIGTTz6ZL774gnA43OFTX5yONCHe1l133cWjjz7aaht6vb7ZALE92vqcbNu2rV074uew2+1MmTKFF154AdAGSfEAhM7oxv4c8BH+/pxwwgn85Cc/4corr0RRFOx2O08++SSKorBgwQJ+/vOfk5KSgtVq5cgjj2zhVgDtUfKMM87gwgsvxGazYbFYWozuYZ84nHfeecRiMc4880xOPfVUjjzySJYsWcI555xDJBLhhBNO4Nprr+2yLV9//TWrVq1CVVUee+wxUlJSuPLKK7n77rt544030Ov1TJw4kW3btrXbzoknnsjHH3/M2Wefjc1mIyUlhcWLFzfbZ/78+SxdupTzzz+faDRKcXExd911V5f7HAqFmDVrFpFIhDvvvJORI0cCWijtjTfemBj1P/3009hsNsaMGYNer+dHP/oRr776amKC+aabbgJIfFGmTZsGwEUXXURVVRWzZ89GURTy8vJ48MEHAS3s77777ktc92OPPZarr766S/0/55xzEEJw4403Eo1GCYVCTJw4kT//+c/NXBvt0dTl05Q//vGPzR7jO+KRRx7hnnvuYfny5SiKwn333UdWVla7x/zkJz/hkksuafVm8tvf/pbHHnuMCy64AL1ej6qqnH/++Vx11VXN9ps7dy4LFizgT3/6U4s2/vnPf7J27dpmr+Xl5fHMM8902q7MzEwefvhhFi5cSCwWw263dymc+uyzz+a9997jzDPPxGg0cswxx+ByuRKDgNYwGo387ne/Y9GiRTz66KOMHz++1fdi7NixnHTSSZxxxhkkJydTUFDA6NGj2b17d6fe/7Y04cQTT2Tp0qXMmjWLWCzG+PHjufXWW1tt48QTT2zx/WyP1j4nxcXFbdpRUFDAKaecwty5c3nqqad4+OGHWbx4Meeccw7hcJizzz6bc889l1gs1qFu7I8iOvssJGnG2LFj+fTTT0lPT+/rrkgGEKtWrSItLY1TTjmlr7siGYTIlbYSyUFEr9dz0kkn9XU3JIMUOcKXSCSSQYIc4UskEskgQQq+RCKRDBKk4EskEskg4aCHZcbZP3RMIpFIJJ3j8MMP79ZxfSb40P1O91e2bNmSWI4+GBnM9g9m22Fw23+wbe/JYFm6dCQSiWSQIAVfIpFIBglS8CUSiWSQIAVfIpFIBglS8CUSiWSQIAVfIpFIBglS8CUSiWSQIAV/P6677jqeffbZxN9er5fTTjutw8ICXSEUCnHyyScDcN9991FeXt7mfq+++mqL12tqali0aBEAJ598crPKPO2xdetWvvzySwAWLFjQZtHvnhAvyjJv3rxEQZWe8uWXXyau/y9+8QsAvv32W0455RQeeeSRbtny73//m6qqql7pn+TQQFCO4CME7RdrGchIwd+PRYsWsWLFCr7//nsAHnroIS6++GLGjRt3QM53xx13JMri7U9NTU2rgp+VlZUQ/K7w3nvvJex67LHHOl0wpK95/fXXExXSnnzySQD++9//ctlll/GrX/2qW7b85S9/abcgh2TwEY1W4XZFAXdfd+WA0acrbdtjc0MNGxuqe7XNSWnZTEhrvyJReno6d911F3feeScLFiygtLSU+fPnc/XVVxMKhTCbzSxevJi8vDweeeQRNm7ciNPpZNy4cVx22WUsW7aMb775Br/fz3333Zeo3+rz+bjppptwu93NavzOmzePRYsW4XQ6Wbp0KQaDAavVyhNPPMEzzzzD999/z5NPPokQolm7t912G6tWrQLg7rvvpqysjIyMDJYuXco///lPduzYwU033UQoFOKMM87glVde4c0338RoNDJx4kRuuOEG3nnnHWpqarj99tuJxWIoisKdd97JuHHjOPXUU5k2bRo7d+4kIyODZcuWNau1um3bNh588EFisRgNDQ0sWrQoUXOzLb799lvuv/9+VFUlJyeHhx9+mN27d7NkyRIAUlNTuf/++9m8eTMPP/wwRqORY489lv/+979s2rSJ0aNHc9FFF/H000/zxhtvYDQayc3N5YEHHuCdd96hoqKCO++8k0gkgsVi4bHHHqO2trZFP91uN1u2bGHhwoW8/PLLrFy5kr///e8oisKZZ57JZZddxnvvvcfvf/97DAYD2dnZPPbYY83qAUsOPcpLo+z8fhjHnFiP2ZTW1905IPRbwe9LTj75ZP79739z22238corr/DAAw8wb948fvjDH/Lpp5/y8MMPc88995CcnMwLL7yAqqqcddZZnHXWWQAUFha2KLm4YsUKioqKWLBgAd9++y2ff/55s+2rV6/mjDPO4PLLL+eDDz7A7XZz7bXXsm3bNn7xi1+wbNmyRLtNi6IDzJkzhylTpvDQQw+xatUq7HZ7C5tycnKYNWsWmZmZzSrbP/TQQ4mC6Vu2bOH222/njTfeYO/evfz5z38mLy+PSy65hA0bNjBlypTEcd9//z0LFy5k7NixvP3227zxxhv8+Mc/bve63n333Tz66KOMGjWKV199le3bt3PPPfdw//33M3r0aF599VX+8Ic/cOyxxzZzZ5WWlnLmmWcmnoSKi4sTtpxyyik88MADACxdupSf/vSnnHjiibz//vts3rwZt9vdop9Llixh/PjxLFq0iD179vDPf/6Tl19+GYD/+7//4/jjj+fvf/87V111Faeffjp//etf8Xq9JCcnt2ufZOAiCOPzKoCC1+PF3PlKlwOKfiv4E9KyOhyNH0jOP/98gsEgOTk5bNu2jWeffZY//OEPiZqvZrOZ+vp6brzxRmw2G36/P1HYOF4ntim7du3ihz/8IaAViY5Xs49z7bXX8swzz3D55ZeTk5NDcXFxC790a+0ajcaEEE+bNo01a9YwefLkxPaO6tts376dI488EoDx48dTWVkJQFpaGnl5eYBWE3X/eYLs7GyeeuopLBYLPp+v1ZvM/tTW1iaeeC666KLE+e+55x4AIpEII0aMaNPWjti5cydTp04FSNSM/eqrr9rt57Zt2ygvL+eKK64AwOVysXv3bm677TaeffZZXnzxRQoLC5k5c2aX+yMZSDQQ8BsB8HpCdKG08YBCPqN2gsLCQm666SaWL1/OPffcw+mnn87HH39MRUUFjz76KDfeeCPBYDCxf2uP/qNGjWLdunUAbN68uUXV+7/97W/MmjWL5cuXM2bMGFatWoVOp0tUsW+r3UgkwpYtWwBN3MaMGYPZbKampgaATZs2JfZVFKVZe/F+ffXVV4CWBCozMzOxb3vcd999XHfddSxdupSioqIObyyg3SR27doFwHPPPce///1vRo4cydKlS1m+fDk333xzovxfU1sVRelU+6NGjWLDhg2Adj2XL1/eZj/jbRYWFjJ69Gj+8pe/sHz5ci644ALGjh3LypUr+eUvf8mLL74IaJO8kkMXIZwE/No8kNejQ9C5QIiBRr8d4fcnFi5cyKJFiwiFQgSDQe644w6GDh3KU089xY9//GMURWHYsGHU19e32cacOXO45ZZbmDNnDoWFhRiNxmbbi4uLufPOO7Fareh0Ou69914yMjKIRCL85je/wWKxtNqu0Whk+fLl7N69m/z8fH71q18RCAR45ZVXmDNnDhMnTiQpKQmASZMm8dBDDyVG2QC33HILd911F3/84x+JRqPcd999nbom5557Ltdffz3Jycnk5ubS0NDQ4TH33HMPt99+OzqdjqysLK644gry8vJYuHAh0WgURVG47777EhO0cQ477DAefvhhhg4d2m77t9xyC3fffTdPP/00FouF3/zmN0Sj0Vb7OXXqVG655Rb++Mc/cswxxzBnzhzC4TDFxcWJJ6xrrrmGpKQkbDabrEN7iBOJuIhGUwHwecyAE8jpwx4dGPqspu3atWtleuRDjMFs/2C2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", + "image/svg+xml": "\n\n\n \n \n \n \n 2022-05-26T10:48:31.522131\n image/svg+xml\n \n \n Matplotlib v3.5.1, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", "text/plain": [ "
" ] @@ -375,7 +375,8 @@ "\n", "years_merged = pd.concat([years_all, years_cpe, years_cve], axis=1)\n", "years_merged = years_merged.div(years_merged.sum(axis=0), axis=1)\n", - "years_merged.plot.line(title='Years comparision between CPE-rich, CVE-rich and all certificates')" + "years_merged.plot.line(title='Years comparision between CPE-rich, CVE-rich and all certificates')\n", + "plt.savefig(RESULTS_DIR / \"cve_cpe_certs_time_evolution.pdf\", bbox_inches='tight')" ] }, { @@ -387,23 +388,13 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "metadata": {}, "outputs": [ { "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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REREBmKyRURERGQgJltEREREBmKyRURERGQgJltEREREBmKyRURERGQgJltEREREBmKyRURERGQgJltEREREBuII8kREFlH++tVTPpOfeXUeakJEldiyRURERGQgJltEREREBmKyRURERGQgJltEREREBmKyRURERGQgJltEREREBmKyRURERGQgJltEREREBmKyRURERGQgJltEREREBuJ0PUQmmDyNCqdQISJaPNiyRURERGQgJltEREREBuJjxAZy6NAh7N69G4qiYP369diwYYPu+w8//BDPPfcc/vCHP2Dz5s1Ys2aN+G7jxo1Yvnw5ACAWi+HOO+80s+pERESLFpOtBqEoCnp6enDvvfciGo1i+/bt6OzsxNKlS8U6sVgMt912G372s59N2d7pdOLhhx82s8pEREQEJlsNo7+/H21tbWhtbQUAdHV14cCBA7pkq6WlBQAgSdK81JGIiIimYrLVIOLxOKLRqFiORqM4fPhwzdsXi0XcddddkGUZ11xzDS6++OIp6/T29qK3txcAsHPnTsRisVnV0W63z3qbuWjEck5MWtb2qy8jUXWdemjEY2ZWOVY6N5NjAaaLxzhmlGOlWGhxYLK1SDzxxBOIRCI4ceIE7r//fixfvhxtbW26dbq7u9Hd3S2Wh4eHZ1VGLBab9TZzYYVytP3OVEY9y7bCMTOrHKudm1riqSczylnIsSxZssSg2lAj49uIDSISiWBkZEQsj4yMIBKJzGp7AGhtbcXZZ5+Njz/+uN5VJCIioiqYbDWI9vZ2DAwMYHBwEKVSCX19fejs7Kxp21QqhWKxCAAYGxvDb3/7W11fLyIiIjIOHyM2CFmWsWnTJuzYsQOKomDt2rVYtmwZ9uzZg/b2dnR2dqK/vx+PPPII0uk03nvvPbz44ovYtWsXPv30Uzz99NOw2WxQFAUbNmxgskVERGQSJlsNpKOjAx0dHbrPNm7cKH5euXIlfvjDH07Z7vOf/zweffRRw+tHREREU/ExIhEREZGBmGwRERERGYjJFhEREZGBmGwRERERGYjJFhEREZGBmGwRERERGYjJFhEREZGBmGwRERERGYjJFhEREZGBmGwRERERGYjJFhEREZGBmGwRERERGYjJFhEREZGBmGwRERERGYjJFhEREZGBmGwRERERGYjJFhEREZGBmGwRERERGYjJFhEREZGBmGwRERERGcg+3xUgWuh+tiehW75qY2he6kFERI2JyRYR1R0TVCKiz/AxIhEREZGB2LLVQA4dOoTdu3dDURSsX78eGzZs0H3/4Ycf4rnnnsMf/vAHbN68GWvWrBHfvfnmm/jJT34CALj22mtx+eWXm1hzIiKixYstWw1CURT09PTg7rvvxmOPPYb9+/fj6NGjunVisRhuu+02XHbZZbrPU6kU9u7di4ceeggPPfQQ9u7di1QqZWb1iYiIFi0mWw2iv78fbW1taG1thd1uR1dXFw4cOKBbp6WlBaeffjokSdJ9fujQIZx33nnw+Xzw+Xw477zzcOjQIRNrT0REtHjxMWKDiMfjiEajYjkajeLw4cNz2jYSiSAej09Zr7e3F729vQCAnTt3IhaLzaqOdrt91tvMhfnlJHSfz6XsE5OWtX3oYzn1cqbTiMestnJOnZXOzeRYgOniMY4Z5VgpFlocmGyR0N3dje7ubrE8PDw8q+1jsdist5mL+S6nHmVr+5gplnrGaIVjVks59WC1c1NLPPVkRjkLOZYlS5YYVBtqZEy2GkQkEsHIyIhYHhkZQSQSqXnbDz/8UCzH43GcffbZda9jIyp//WrdsvzMq/NUEyIisir22WoQ7e3tGBgYwODgIEqlEvr6+tDZ2VnTtqtXr8b777+PVCqFVCqF999/H6tXrza2wkRERASALVsNQ5ZlbNq0CTt27ICiKFi7di2WLVuGPXv2oL29HZ2dnejv78cjjzyCdDqN9957Dy+++CJ27doFn8+H6667Dtu3bwcAXH/99fD5fPMcERER0eLAZKuBdHR0oKOjQ/fZxo0bxc8rV67ED3/4w6rbrlu3DuvWrTO0fkRERDQVHyMSERERGYgtW0Q0K5NfKgD4YgER0UzYskVERERkICZbRERERAZiskVERERkICZbRERERAZiskVERERkICZbRERERAZiskVERERkICZbRERERAZiskVERERkII4gT2Qhk0d358juRETzjy1bRERERAZiskVERERkICZbRERERAZiskVERERkICZbRERERAZiskVERERkICZbRERERAZiskVERERkICZbRERERAZiskVERERkICZbRERERAbi3IgN5NChQ9i9ezcURcH69euxYcMG3ffFYhGPP/44jhw5Ar/fj82bN6OlpQWDg4PYsmULlixZAgBYtWoV/vqv/3oe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", - "image/svg+xml": "\n\n\n \n \n \n \n 2022-04-18T20:34:30.678718\n image/svg+xml\n \n \n Matplotlib v3.5.1, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "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", + "image/svg+xml": "\n\n\n \n \n \n \n 2022-05-26T10:48:32.276178\n image/svg+xml\n \n \n Matplotlib v3.5.1, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", "text/plain": [ "
" ] @@ -413,13 +404,14 @@ } ], "source": [ - "levels_cpe = df_cpe_rich.highest_security_level.value_counts().sort_index().rename('Highest security level distribution CPE-rich')\n", - "levels_cve = df_cve_rich.highest_security_level.value_counts().sort_index().rename('Highest security level distribution CVE-rich')\n", - "levels_all = df.highest_security_level.value_counts().sort_index().rename('Highest security level distribution all certificates')\n", + "levels_cpe = df_cpe_rich.eal.value_counts().sort_index().rename('EAL distribution CPE-rich')\n", + "levels_cve = df_cve_rich.eal.value_counts().sort_index().rename('EAL distribution CVE-rich')\n", + "levels_all = df.eal.value_counts().sort_index().rename('EAL distribution all certificates')\n", "\n", "levels_merged = pd.concat([levels_all, levels_cpe, levels_cve], axis=1)\n", "levels_merged = levels_merged.div(levels_merged.sum(axis=0), axis=1)\n", - "levels_merged.plot.bar(title='Highest security level comparision between CPE-rich, CVE-rich and all certificates')" + "levels_merged.plot.bar(title='EAL comparision between CPE-rich, CVE-rich and all certificates')\n", + "plt.savefig(RESULTS_DIR / \"eal_distr_all_cpes_cves.pdf\", bbox_inches='tight')" ] }, { @@ -431,23 +423,13 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "metadata": {}, "outputs": [ { "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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", - "image/svg+xml": "\n\n\n \n \n \n \n 2022-04-18T20:34:34.207203\n image/svg+xml\n \n \n Matplotlib v3.5.1, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "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", + "image/svg+xml": "\n\n\n \n \n \n \n 2022-05-26T10:48:33.337771\n image/svg+xml\n \n \n Matplotlib v3.5.1, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", "text/plain": [ "
" ] @@ -464,7 +446,8 @@ "\n", "vendors_merged = pd.concat([vendors_all, vendors_cpe, vendors_cve], axis=1)\n", "vendors_merged = vendors_merged.div(vendors_merged.sum(axis=0), axis=1)\n", - "vendors_merged.plot.bar(title='Common vendors comparison between CPE-rich, CVE-rich and all certificates')" + "vendors_merged.plot.bar(title='Common vendors comparison between CPE-rich, CVE-rich and all certificates')\n", + "plt.savefig(RESULTS_DIR / \"top_vendors_vulns.pdf\", bbox_inches='tight')" ] }, { @@ -476,18 +459,18 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "2b73343955af4ffa9dd01000907d9864", + "model_id": "484cd61a8f0f4a9b87d8483aa46a6c2b", "version_major": 2, "version_minor": 0 }, "text/plain": [ - " 0%| | 0/135 [00:00\n", " \n", " n_cves_corr\n", - " worst_cve_corr\n", + " worst_cve_score_corr\n", + " avg_cve_score_corr\n", " support\n", " \n", " \n", " \n", " \n", - " EAL\n", - " -0.090801\n", - " -0.122635\n", - " 4965\n", + " eal\n", + " -0.088312\n", + " -0.200293\n", + " -0.149932\n", + " 4892\n", " \n", " \n", - " ADV_IMP\n", - " -0.067373\n", - " -0.011090\n", - " 2075\n", + " ADV_FSP\n", + " -0.062971\n", + " -0.189728\n", + " -0.088043\n", + " 4508\n", " \n", " \n", - " ALC_TAT\n", - " -0.095240\n", - " -0.282163\n", - " 1903\n", + " ATE_IND\n", + " -0.083833\n", + " -0.177343\n", + " -0.141519\n", + " 4318\n", " \n", " \n", - " ALC_DVS\n", - " -0.064516\n", - " -0.320521\n", - " 2803\n", + " ATE_FUN\n", + " 0.026353\n", + " -0.112258\n", + " -0.080423\n", + " 3602\n", " \n", " \n", - " ACM_SCP\n", - " -0.043073\n", - " 0.058181\n", - " 773\n", + " ATE_COV\n", + " 0.026174\n", + " -0.046710\n", + " -0.068880\n", + " 3573\n", " \n", " \n", "\n", "" ], "text/plain": [ - " n_cves_corr worst_cve_corr support\n", - "EAL -0.090801 -0.122635 4965\n", - "ADV_IMP -0.067373 -0.011090 2075\n", - "ALC_TAT -0.095240 -0.282163 1903\n", - "ALC_DVS -0.064516 -0.320521 2803\n", - "ACM_SCP -0.043073 0.058181 773" + " n_cves_corr worst_cve_score_corr avg_cve_score_corr support\n", + "eal -0.088312 -0.200293 -0.149932 4892\n", + "ADV_FSP -0.062971 -0.189728 -0.088043 4508\n", + "ATE_IND -0.083833 -0.177343 -0.141519 4318\n", + "ATE_FUN 0.026353 -0.112258 -0.080423 3602\n", + "ATE_COV 0.026174 -0.046710 -0.068880 3573" ] }, - "execution_count": 11, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -610,7 +599,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -635,55 +624,61 @@ " \n", " \n", " n_cves_corr\n", - " worst_cve_corr\n", + " worst_cve_score_corr\n", + " avg_cve_score_corr\n", " support\n", " \n", " \n", " \n", " \n", - " EAL\n", - " -0.126538\n", - " -0.122635\n", - " 589\n", + " eal\n", + " -0.123749\n", + " -0.200293\n", + " -0.149932\n", + " 616\n", " \n", " \n", - " ADV_IMP\n", - " -0.023401\n", - " -0.011090\n", - " 151\n", + " ADV_FSP\n", + " -0.061666\n", + " -0.189728\n", + " -0.088043\n", + " 593\n", " \n", " \n", - " ALC_TAT\n", - " -0.110212\n", - " -0.282163\n", - " 147\n", + " ATE_IND\n", + " -0.126763\n", + " -0.177343\n", + " -0.141519\n", + " 589\n", " \n", " \n", - " ALC_DVS\n", - " -0.033864\n", - " -0.320521\n", - " 205\n", + " ALC_CMS\n", + " -0.101118\n", + " -0.268558\n", + " -0.150241\n", + " 435\n", " \n", " \n", - " ACM_SCP\n", - " -0.098861\n", - " 0.058181\n", - " 103\n", + " AVA_VAN\n", + " -0.092757\n", + " -0.336588\n", + " -0.178806\n", + " 434\n", " \n", " \n", "\n", "" ], "text/plain": [ - " n_cves_corr worst_cve_corr support\n", - "EAL -0.126538 -0.122635 589\n", - "ADV_IMP -0.023401 -0.011090 151\n", - "ALC_TAT -0.110212 -0.282163 147\n", - "ALC_DVS -0.033864 -0.320521 205\n", - "ACM_SCP -0.098861 0.058181 103" + " n_cves_corr worst_cve_score_corr avg_cve_score_corr support\n", + "eal -0.123749 -0.200293 -0.149932 616\n", + "ADV_FSP -0.061666 -0.189728 -0.088043 593\n", + "ATE_IND -0.126763 -0.177343 -0.141519 589\n", + "ALC_CMS -0.101118 -0.268558 -0.150241 435\n", + "AVA_VAN -0.092757 -0.336588 -0.178806 434" ] }, - "execution_count": 12, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -709,7 +704,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -717,14 +712,14 @@ "output_type": "stream", "text": [ "Number of certificates with >0 CVEs but 0 maintenance reports: 0\n", - "Number of certificates with >0 CVEs and >0 maintenance reports: 27\n", - "count 23\n", - "mean 857 days 22:57:23.478260864\n", - "std 860 days 23:37:09.219855856\n", - "min 34 days 00:00:00\n", - "25% 272 days 00:00:00\n", - "50% 541 days 00:00:00\n", - "75% 962 days 12:00:00\n", + "Number of certificates with >0 CVEs and >0 maintenance reports: 35\n", + "count 28\n", + "mean 919 days 22:17:08.571428576\n", + "std 794 days 10:10:48.864775512\n", + "min 1 days 00:00:00\n", + "25% 438 days 06:00:00\n", + "50% 622 days 00:00:00\n", + "75% 1149 days 06:00:00\n", "max 3752 days 00:00:00\n", "Name: time_to_fix_cve, dtype: object\n" ] @@ -738,7 +733,504 @@ "\n", "df_fixed = compute_maintenances_that_should_fix_vulns(df)\n", "print(df_fixed.loc[~df_fixed.time_to_fix_cve.isnull()]['time_to_fix_cve'].describe())\n", - "mu_filenames = move_fixing_mu_to_directory(df_fixed, main_dset.to_pandas(), \"/Users/adam/Downloads/mu\", \"/Users/adam/phd/projects/certificates/sec-certs/datasets/from_web_latest/certs/maintenances/reports/pdf\")" + "updates_that_should_fix_vulns_path = RESULTS_DIR / \"updates_that_should_fix_vulns\"\n", + "updates_that_should_fix_vulns_path.mkdir(exist_ok=True)\n", + "mu_filenames = move_fixing_mu_to_directory(df_fixed, main_dset.to_pandas(), updates_that_should_fix_vulns_path, RESULTS_DIR / \"certs/maintenances/reports/pdf\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Histogram timeline of new vulnerabilities\n", + "\n", + "Shows when vulnerabilities are announced in relation to the date of certification & date of certificate expiration.\n", + "\n", + "*Note*: Some certificates (especially the new ones) don't have their expiration date set yet. These are discarded from the analysis." + ] + }, + { + "cell_type": "code", + "execution_count": 101, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1gAAAEYCAYAAABBWFftAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAACZbElEQVR4nOzdeXxU1fn48c+dfTIz2RMgQFgEBFRUwK0idWtd6l4FRPnaVrtYSyvWCnUBrVKlKq2Vr+vXXxfQKhbb2mqtSlVUFDEqKAaQHbLvmZnMeu/5/REyJJCQkEwyM8nzfr14kblzl2fu3Jkz555znqMppRRCCCGEEEIIIXrMlOgAhBBCCCGEEKK/kAqWEEIIIYQQQsSJVLCEEEIIIYQQIk6kgiWEEEIIIYQQcSIVLCGEEEIIIYSIE6lgCSGEEEIIIUScSAVrgNF1nT/84Q9cccUVXHrppVx44YU8+OCDhMNh9u7dy7HHHktFRcUh21188cW8/vrrvPTSS0yZMoVLL720zb/bbrstAa8mvi699FIaGxsTGsNFF13EunXrEnJsn8/HrFmz+Na3vsV//vMf7rzzTr744ouExNLaiy++yLPPPgvAX/7yF5566ikA3nvvPc466yy+/e1v89xzz8WWd8f3vvc9amtrAfj+97/Ptm3beh64EClMyoqOSVkhZUWirF69mvvuuy9u+3vmmWdYsGBBp+sly3ucSiyJDkD0rbvvvpuGhgb+9Kc/4fF4aGpq4tZbb+WOO+7gwQcf5PTTT+ell17ixhtvjG3z6aef4vV6Oeecc/jHP/7B1KlTefLJJxP4KnrHP/7xj0SHkFDFxcXU1NTwxhtvALBkyRJmzpyZ4KigqKiIsWPHAnD11VfHlr/yyitcddVV/PjHP+7xMd5///3Y308//XSP9ydEqpOyomNSVkhZkSjnnHMO55xzTp8fd+3atUnxHqcSqWANIHv37uWf//wn7733Hm63G4C0tDTuuecePv30UwBmz57Nfffdx49+9CM0TQNg5cqVzJw5E7PZ3OkxPv74Yx544AEMwwDghz/8Ieedd16bdQzD4Ne//jUbNmzA7/ejlOK+++5jypQpLFiwAE3T2L59O7W1tZx++unceeedWK1WJk6cyHXXXce6detoamrilltu4Zvf/CbQfOfqL3/5C4ZhkJmZyV133cVRRx3Fzp07+dWvfkVTUxOVlZWMHz+e3/3ud9jtdo499ljOOeccNm/ezEMPPcSVV17JBx98wNtvv80bb7yByWRi9+7dWK1WlixZwrhx49i9eze33347DQ0N5OXloZTikksu4YorrmjzGufMmcMJJ5zAJ598QllZGVOmTGHJkiWYTG0bjbdt28btt99OIBBg9OjRNDU1xZ574oknePPNNwmFQgQCAebPn8+5557L+eefz1133cW0adOA5jtLY8eOZdq0adxxxx2Ew2GUUlx55ZVcc801h7xH7e33qKOO4vbbb6eiooJLL72U0047jcrKSm699VZ+85vfMHr0aBYvXszWrVuJRCKcdtpp3HbbbVgslkPO43HHHRc7lt/v57777uOTTz7BbDZz7rnnMm/ePCKRCA899BDr169H13UmTpzInXfeidvt5uyzz2bSpEls2bKFW265hf/+97+8//77OBwOamtrqauro6CggNWrV2O32/F6vaSlpVFXV8fChQvZuXMnCxcupLa2FpPJxI033siFF17IW2+9xZNPPkk4HKa2tpbLLruMm2++mV/+8pcAXHfddTz11FNcc801PPLIIxx33HG88MILLF++HJPJRG5uLnfddRejRo1iwYIFuN1utmzZQnl5OaNHj2bp0qW4XK5OPyNCJDspK6Ss6Gi/UlYcKCtMJhO/+tWvKCsrIxKJ8K1vfYsf/ehHh5xHr9fb7jnZvXs3M2fOZMWKFYwfP57bbrsNs9nM/fff3+E1/NJLL/Gf//yHJ598kjlz5pCRkcGOHTu48MILeeaZZ1izZg0ejwelFOeffz6PPPII48ePj8USiUS47777WLt2LTk5OeTk5ODxeAD47LPPYq3UVVVVfO1rX+PXv/41v/3tb7v8HotWlBgwXnvtNfXtb3/7sOvouq7OOecc9eGHHyqllGpsbFQnnXSSqq6uVkoptWrVKjV58mR1ySWXtPn317/+VSml1P/8z/+of/3rX0oppYqLi9Xdd999yDE++eQTNXfuXKXrulJKqSeffFL98Ic/VEopNX/+fHXZZZcpn8+nQqGQuuaaa9Ty5cuVUkqNGzdOPf7447F9T5kyRdXU1Kh169ap2bNnq6amJqWUUu+++6664IILlFJKPfDAA+rvf/+7UkqpcDisLrroIvXaa6/F9ve3v/0tFte4ceNUTU2NWrVqlZoyZYoqKytTSin1q1/9St12221KKaVmzJihnn32WaWUUtu2bVPHH3+8WrVq1SGv8dprr1U//elPla7ryuv1qmnTpqkPPvjgkPUuvfRStXLlSqWUUh9//LE6+uij1Ycffqj27dun5syZowKBgFJKqX/961/qoosuUkop9Yc//EH99Kc/VUop5fV61amnnqoaGhrUL3/5S/Xkk08qpZSqrKxUN998c+wctzjcfj/88EP1rW99K7buWWedpTZu3KiUUmrBggXqz3/+s1JKqWg0qm699Vb11FNPtXseW/v1r3+t5s2bp6LRaOz9/PDDD9Wjjz6qHnjgAWUYhlJKqYcfflgtWrQodtxly5bF9jF//nz1f//3f0oppX7/+9+re+6557DLL7vsMrVixQqllFKlpaXqnHPOUY2Njeraa69VO3fuVEopVV5eriZMmKBqampir6Hl75bXvXbtWnXuuefGlq9atUpdcMEFyjAMNX/+fDVz5kwVCoVUOBxWl112WewzIESqk7JCygopK3YqpQ5fVsyZM0etXr1aKaVUMBhUc+bMUa+88sohr+1w5+SFF15QF198sVq5cqW6+OKLY+e7o2t41apV6gc/+IFSqvna+eUvfxk7zo033hh7PWvXrlUzZsw4JJY//vGP6n/+539UKBRSfr9fXX755Wr+/PlKKaXmzZsX+zz7fD51yimnqM8//zx2rrvyHosDpLo5gJhMptjdwsOtM2vWLFatWsUpp5zCyy+/zPTp08nJyYmtc7huHxdccAG/+tWv+O9//8vXvvY1brnllkPWOfHEE8nIyOD5559n7969rFu3rs2d/8svvzz2+NJLL2X16tVce+21ALH/x48fz7hx41i/fj0bNmxg9+7dzJo1K7aPhoYG6uvr+cUvfsH777/P008/za5du6isrGxz52/q1Kntvo5jjjmGwYMHAzBx4kTeeOMNGhoa2LhxIytWrADgqKOO4tRTT+3wXJ511lmYTCbcbjcjRoygoaGhzfN1dXVs2bKFyy67DIApU6bEujcMHTqUJUuW8M9//pPdu3fH7uACXHHFFfzv//4vtbW1vPbaa5x55pmkp6fzjW98g/nz57Nx40ZOO+007rzzzkPugh5uv4fz9ttv8/nnn/PXv/4VgGAw2Ob5js7j2rVr+eUvf4nZbMZsNsfO3YMPPojX62Xt2rVA8121g6+x7qivr2fz5s1cddVVAAwZMoQ333wTaL4b+/bbb/Ovf/2L7du3o5QiEAh0uK93332XCy+8kOzsbKD5vC9evJh9+/YBcMYZZ2Cz2QAYN27cIe+vEKlKygopK6SsOHxZ0dTUxPr162loaOCRRx6JLdu8eTMXXnhhl8/JjBkzePfdd7nvvvv4xz/+gcPhiD3X3jV8sNav/5prruHBBx/kmmuu4YUXXmjTTbLFBx98wEUXXYTNZsNms3HxxRezZcsWAB544AHWrFnDE088wY4dOwgGg20+A115PeIAqWANIJMmTWLHjh34fL5Ytw+AiooK7rrrLn7/+9/jcDj49re/zfnnn4/P52PlypXcc889XT7GrFmzOOuss3j//fd59913WbZsGS+//HKsCRqaP5yLFy/mu9/9Lueccw6jR4/m5Zdfjj3funuJUqrNF3/r5wzDwGw2YxgGl156Kb/4xS9iyysrK8nIyGDevHnous4FF1zAmWeeSVlZGUqp2D7S0tLafR2tv+Q0TUMpFTt26+0P1xWmvX201tKtpvXylib2TZs28eMf/5jvfOc7nH766Zx00kmx9yE9PZ3zzz+fl19+mX/+858sWrQIaC6k//Of/7B27Vo++OAD/vd//5fnn3+ewsLC2P4Pt9/DMQyDRx55hKOOOgqAxsbGWPzQ8Xm0WCxt1isrK8PhcGAYBrfffjtf//rXgebuIaFQqNP9dabl/LU+5o4dOxg8eDCXX3455557LlOnTuXb3/42b7755iHvSWvtPaeUIhqNAp2/v0KkKikrpKyQsuLwZYVhGCileP7553E6nQDU1tZit9sPOdbhzkk4HGbPnj14PB42b97MyJEjY9u1dw0frPXr/9rXvkYgEOCDDz7g448/ZsmSJZ2eh9b7vOaaaxg/fjxnnHEGF1xwARs2bGi3XOvsPRbNJIvgADJo0CAuvvhibr/9dnw+H9CcDejuu+8mMzMz9iWflZXFWWedxe9//3vMZjMnnHBCl48xa9YsiouLueKKK7j33ntpbGw85G7c+++/z1lnncXs2bM57rjjePPNN9F1Pfb8v//9b8LhMKFQiL/97W+cddZZsef+/ve/A81f/jt37uSkk07i9NNP55VXXqGyshJozh503XXXAc3Zg2666SYuvPBCNE1jw4YNbY51JNxuN5MnT+all14CmscpfPDBB93+YsnMzOSYY47hxRdfjL2mrVu3ArB+/XqO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VlYW8+fPx+v1opRiyZIlOBwO7r77bkKhEFVVVdx8880EAgHeffddNm3axJgxY7jqqqt4//33+fLLL7n33nsxm82xWAzD4Oc//zmDBw9m7969HHfccdxzzz2JeLtEB+J1Hf/ud7/Dbrd3eh2XlZUdcs3W1dXxi1/8ghdffJF///vfrFmzhl/84hfceuutDB8+nIqKCqZPn868efNYsGABF154IdXV1axatQrDMPjpT3/K9u3bef311wkEAmRlZbFs2TKeeOIJtm3bxrJly1BKkZuby9VXX80DDzxAUVERABdddBHXXXcdCxYswGazUVJSQmVlJQ888ADHHHNMn78f4oCwrhMy9M5XFCJFSAVLCJH8jj0WNm1q96lu3Yc/5hj44osj2iQnJ4dNmzZRVlbGCSecwFVXXUUoFIr9GLz44ot55ZVXuOaaa3j55ZfbtPYopbjrrrv41a9+xbRp0/jTn/7E448/zt13380bb7zR5kcpwJIlS/jBD37A9OnTWb16NV9++SV//etfmTNnDl//+tf54IMPeOihh5g3bx5VVVWsWrUKm80W+2E5adKkWMw/+MEP2LFjB7Nnz+bf//43AI899hhnn302V199NZ988gkbN24kNzeX7373u5xyyil88sknPProo9x2222cccYZXHjhhRQUFMTiu/POO1m8eDETJkzgzTff5IEHHuC2225j165dPPPMMzidTs4991yqqqrIy8vrzjvUPx3mOu6WBF3Hf/nLXxg0aFCXruODr9mHH36Yq666igULFrBv3z7+/Oc/U19fT2VlJc8++ywej4fZs2ez6aDzlJ6ezuOPP45hGBQVFfHHP/4Rk8nE9ddfz+eff86PfvQjtm7dyk9+8hMeffRRAN566y327dvHypUriUajzJ49m1NPPRWAgoICfvWrX7Fy5UpeeOEFfvWrX3XnHRC0bX2SlichmkkFSwiR/A7zI7K4uDju3Z3aU1payuDBg8nMzOTzzz/nww8/xO12Ew6HAfj2t7/NLbfcwkknnURubi65ubmxbevq6nC73eTk5ABw0kknsXTp0g6PtXPnTk488UQAzjnnHAB+/etf8+STT/J///d/KKWwWJq/vocNG4bNZjui17Jz506uvPJKACZPnszkyZP56quvePzxx/nrX/+KpmlEo9EOt6+srIyd85NOOomHH34YgMLCQtxuNwB5eXmEQqEjiqvfO8LKUG+Ix3U8aFDzD+jOruOtW7e2e83OmjWL//3f/+XHP/4xbreb+vp6Ro4cSWZmJgCTJk1i586dbfY1atQoAEwmE1arlVtuuYW0tDTKy8s7vFa3b9/O1KlT0TQNq9XK8ccfHxsj1nL9Dh48mE8++eRIT2NSSlRFR1qfhDiUdFISIk4+qy5nfVUJ66tK+Ky6PNHhiDjy+Xy8+OKLnH/++bz00kt4PB4efvhhvve97xEMBlFKMXToUDweD0888USs8tIiKysLn89HbW0tAB999BEjR47s8HhHHXUUn3/+OQAvv/wyy5cvZ/To0dx6660sX76ce+65h/PPPx9o/sHZQtM0jNbdULuw//Xr1/Pggw/yyCOPcOmll/Lggw9yyimnoJSK7bPl7xb5+fmxxBfr16+PvRZN0zo9dqJs2LCBOXPmAM2V8tmzZzNnzhyuv/56qqurAVi5ciVXXHEFM2bM4K233gKgtraW733ve8yePTvWbTJVxes6rqysBDq/jju6Zn/zm99w/fXX89JLL7F3714A9u3bRyAQQNd1Nm7cyJgxY9rsq+U637x5M2+++Sa/+93vuOuuuzAMA6UUJpPpkGv/qKOOinUPjEQifPrpp4wYMQJI7mu1u1oqOiFDbzOeKRl8XltBUVUpRVWlfF5bkehwhOh10oIlRJxElH5gjJXcukh5H374IXPmzMFkMqHrOnPnzmX06NHous7Pf/5zPvvsM2w2GyNGjKCyspJBgwYxY8YM7rvvPh588ME2+9I0jfvuu48HHniAtLQ0MjIyuP/++zs89m233cbChQt5/PHHcTgcPPjgg5x55pmxMVLBYJA77rjjkO2OPfZYfvOb33DUUUcd9rX96Ec/4vbbb+fll18GmlvHNmzYwG9+8xueeuopBg8eTF1dHQDHH388Dz30EMOGDYttf99993HvvfeilMJsNvPrX/+6y+c1EZ5++mlefvllnE4nAIsXL+auu+5iwoQJPP/88zz99NPccMMNLF++nFWrVhEKhZg9ezann346jz32GBdddBFXXHEFTz31FC+88ALf+c53EvuCjkBvXMdz585F07ROr+P58+cfcs2++eab7Nq1i7vuuosTTjiBW2+9lSVLlmCxWPjZz35GdXU1559/PuPHj293nyNGjMDpdDJr1iyguaW0srKSE088kUgkwoMPPojD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", + "image/svg+xml": "\n\n\n \n \n \n \n 2022-05-26T12:49:58.437764\n image/svg+xml\n \n \n Matplotlib v3.5.1, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "exploded_cves = df_cve_rich.explode(\"related_cves\").loc[:, [\"related_cves\", \"not_valid_before\", \"not_valid_after\"]].rename(columns={\"related_cves\": \"cve\"})\n", + "exploded_cves = exploded_cves.dropna() # <-- Investigate why we have 1056 empty not_valid_after records\n", + "exploded_cves[\"cve_published_date\"] = exploded_cves.cve.map(lambda x: cve_dset[x].published_date)\n", + "\n", + "exploded_cves.not_valid_before = exploded_cves.not_valid_before.dt.normalize()\n", + "exploded_cves.not_valid_after = exploded_cves.not_valid_after.dt.normalize()\n", + "exploded_cves.cve_published_date = exploded_cves.cve_published_date.dt.tz_localize(None).dt.normalize()\n", + "\n", + "exploded_cves[\"n_days_after_certification\"] = (exploded_cves.cve_published_date - exploded_cves.not_valid_before).dt.days\n", + "exploded_cves[\"n_days_after_expiry\"] = (exploded_cves.cve_published_date - exploded_cves.not_valid_after).dt.days\n", + "\n", + "plt.rcParams[\"figure.figsize\"] = [12, 4]\n", + "plt.rcParams[\"figure.autolayout\"] = True\n", + "figure, axes = plt.subplots(1, 2)\n", + "\n", + "hist = sns.histplot(exploded_cves.n_days_after_certification, kde=True, ax=axes[0])\n", + "hist.set(xlim=(-4000,4600), title=\"CVEs appearing n days after certification\", xlabel=\"Number of days after date of certification\", ylabel=\"Frequency of CVEs\")\n", + "hist.axvline(0, color=\"red\", linewidth=\"1\", label=\"Day of certification\")\n", + "hist.legend(loc=\"upper right\")\n", + "# plt.savefig(RESULTS_DIR / \"cves_n_days_after_certification.pdf\", bbox_inches='tight')\n", + "# plt.show()\n", + "\n", + "hist = sns.histplot(exploded_cves.n_days_after_expiry, kde=True, ax=axes[1])\n", + "hist.set(xlim=(-6200, 4000), title=\"CVEs appearing n days after certificate expiry date\", xlabel=\"Number of days after certificate expiration\", ylabel=\"Frequency of CVEs\")\n", + "hist.axvline(0, color=\"red\", linewidth=\"1\", label=\"Day of expiration\")\n", + "hist.legend(loc=\"upper left\")\n", + "plt.savefig(RESULTS_DIR / \"cves_vs_certificate_lifetime.pdf\", bbox_inches='tight')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## How many CVE-rich certificates were revoked within <365 days after certification" + ] + }, + { + "cell_type": "code", + "execution_count": 156, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "How many CVE-rich certificates were revoked in <365 days after certification: 3\n", + "How many certificates were revoked in <365 days after certification: 39\n" + ] + } + ], + "source": [ + "maybe_revoked = df_cve_rich.loc[~df_cve_rich.not_valid_after.isna(), [\"not_valid_before\", \"not_valid_after\", \"n_cves\", \"worst_cve_score\", \"avg_cve_score\", \"related_cves\"]]\n", + "maybe_revoked[\"validity_n_days\"] = (maybe_revoked.not_valid_after - maybe_revoked.not_valid_before).dt.days\n", + "maybe_revoked = maybe_revoked.loc[maybe_revoked.validity_n_days < 365]\n", + "print(f'How many CVE-rich certificates were revoked in <365 days after certification: {maybe_revoked.shape[0]}')\n", + "\n", + "df_w_validity_dates = df.loc[~df.not_valid_after.isna()].copy()\n", + "df_w_validity_dates.loc[:, \"validity_n_days\"] = (df_w_validity_dates.not_valid_after - df_w_validity_dates.not_valid_before).dt.days\n", + "df_w_validity_dates = df_w_validity_dates.loc[df_w_validity_dates.validity_n_days < 365]\n", + "print(f'How many certificates were revoked in <365 days after certification: {df_w_validity_dates.shape[0]}')" + ] + }, + { + "cell_type": "code", + "execution_count": 158, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
namenot_valid_beforenot_valid_aftervalidity_n_days
d4647f5217d84ba3CELES-c002 Machine Readable Electronic Documen...2020-11-022020-11-020
a7120da6bf4874faDigiSAFE Data Diode model 3282 version 2.2, mo...2019-06-172020-06-10359
3c24bbe7724dbfddMcAfee® Email Gateway (MEG) software v7.0.1, r...2012-10-162013-08-21309
e2f3a1cdd592ab05Cisco 800, 1900, 2900, 3900 Series Integrated ...2011-07-312012-07-20355
f34df0dd7011366eJSAFE3_EPASS BAC (Rev. M)2019-04-092019-04-090
2731d8ddba404fadJSAFE3_EPASS EAC (Rev. I)2019-04-092019-04-090
16bdbde359584f99Xaica-α PLUS ePassport on MTCOS Pro 2.5 with S...2019-01-252019-12-03312
0c7ef6c32cbdee47Xaica-α PLUS ePassport on MTCOS Pro 2.5 with S...2019-01-252019-12-03312
58ece75f7f2b5099J-SIGN version 1.8.92019-01-112019-01-110
10b17081dd7cad8fST33TPHF2E mode TPM 2.0 TPM Firmware versions ...2018-09-242018-09-240
e27937cf16c20f8fST33JM2M0 B02 including optional cryptographic...2017-09-052017-09-050
17b5257b3755a07cPlate-forme STSAFE-J, en configuration fermée,...2017-03-232017-03-230
23a85a7f9c07412fMicrocontrôleurs sécurisés ST33G1M2A et ST33G1...2017-02-162017-02-160
2748f920f4df8eafIDeal Pass v2 - SAC/EAC JC ePassport 4.0.02013-12-202014-09-09263
fd31c2a2bbfcc4a9Pro 8100/8110/8120 (Ricoh/Savin/Lanier/nashuat...2016-08-102017-02-13187
9e0ec9db58b5c8ecRICOH MP C306Z J-1.012016-04-252017-02-13294
25fcafd838cecd84bizhub C360 / bizhub C280 / bizhub C220 / bizh...2010-06-292011-04-15290
5068c3b7fefae589bizhub C652 / bizhub C652DS / bizhub C552 / bi...2010-06-292011-04-15290
a0176ceabc4bfc0aCisco Expressway X12.52019-08-192020-02-26191
13e306eb69c8bf95ALE Omniswitch 6250, 6350, and 6450 with the A...2017-10-172018-06-27253
f410930a2a47d3d0Avaya VSP 4000, VSP 7000 and VSP 80002017-03-102018-02-26353
5a22fab9376989efCisco Email Security Appliance v9.12015-09-182016-03-21185
602f65f51a07adafBrocade Communications Systems, Inc. Brocade D...2015-03-252016-03-21362
7f1129858dd504a3FortiSwitch blade appliances with FortiTRNG ru...2014-11-072014-12-2245
e2f5592cc95676e7Huawei FusionDirector 1.5.1.SPC12020-10-232020-10-230
a606e94c8e0e3028Samsung Galaxy Note 7 VPNCPP2016-10-172016-11-1428
124272e23ec6ac09Samsung Galaxy Note 7 MDFPP2016-10-142016-11-1431
a334142059d865a2NPCT7xx TPM1.2 rev 116; Hardware version LAG01...2019-08-142019-08-140
dc7ac9298e12f7eeNPCT7xx TPM2.0 rev1.38 Hardware version LAG019...2019-01-182019-01-180
66838f2e4bb6ecccST33TPHF20 TPM Firmware versions 74.08 (0x4A 0...2018-09-242018-09-240
eff64d1800f26807NPCT7xx TPM 2.0 Hardware version LAG019, Firmw...2018-01-192018-01-190
3746512864b941d4NPCT6xx TPM 2.0 Hardware version FB5C85D and F...2017-09-252017-09-250
22ede463dbf1a105ST33TPHF20I2CTPM Firmware version 74.052017-07-192017-07-190
4f953ae00a24eb85ST33TPHF2EI2C mode TPM 2.0TPM Firmware version...2017-07-192017-07-190
0bf7a19b22163465ST33TPHF20SPI TPM Firmware version 74.002016-12-132016-12-130
a5898123ec124b34ST33TPHF2ESPI mode TPM 2.0 TPM Firmware versio...2016-12-132016-12-130
4e7b5a210809acf9TPM 2.0 Hardware version FB5C85D, Firmware ver...2016-07-222016-07-220
158950ed4bc35274ST33TPHF2ESPI mode TPM 2.0 TPM Firmware versio...2016-07-042016-07-040
bad93fb821395db2ST33TPHF20SPI2016-05-302016-05-300
\n", + "
" + ], + "text/plain": [ + " name \\\n", + "d4647f5217d84ba3 CELES-c002 Machine Readable Electronic Documen... \n", + "a7120da6bf4874fa DigiSAFE Data Diode model 3282 version 2.2, mo... \n", + "3c24bbe7724dbfdd McAfee® Email Gateway (MEG) software v7.0.1, r... \n", + "e2f3a1cdd592ab05 Cisco 800, 1900, 2900, 3900 Series Integrated ... \n", + "f34df0dd7011366e JSAFE3_EPASS BAC (Rev. M) \n", + "2731d8ddba404fad JSAFE3_EPASS EAC (Rev. I) \n", + "16bdbde359584f99 Xaica-α PLUS ePassport on MTCOS Pro 2.5 with S... \n", + "0c7ef6c32cbdee47 Xaica-α PLUS ePassport on MTCOS Pro 2.5 with S... \n", + "58ece75f7f2b5099 J-SIGN version 1.8.9 \n", + "10b17081dd7cad8f ST33TPHF2E mode TPM 2.0 TPM Firmware versions ... \n", + "e27937cf16c20f8f ST33JM2M0 B02 including optional cryptographic... \n", + "17b5257b3755a07c Plate-forme STSAFE-J, en configuration fermée,... \n", + "23a85a7f9c07412f Microcontrôleurs sécurisés ST33G1M2A et ST33G1... \n", + "2748f920f4df8eaf IDeal Pass v2 - SAC/EAC JC ePassport 4.0.0 \n", + "fd31c2a2bbfcc4a9 Pro 8100/8110/8120 (Ricoh/Savin/Lanier/nashuat... \n", + "9e0ec9db58b5c8ec RICOH MP C306Z J-1.01 \n", + "25fcafd838cecd84 bizhub C360 / bizhub C280 / bizhub C220 / bizh... \n", + "5068c3b7fefae589 bizhub C652 / bizhub C652DS / bizhub C552 / bi... \n", + "a0176ceabc4bfc0a Cisco Expressway X12.5 \n", + "13e306eb69c8bf95 ALE Omniswitch 6250, 6350, and 6450 with the A... \n", + "f410930a2a47d3d0 Avaya VSP 4000, VSP 7000 and VSP 8000 \n", + "5a22fab9376989ef Cisco Email Security Appliance v9.1 \n", + "602f65f51a07adaf Brocade Communications Systems, Inc. Brocade D... \n", + "7f1129858dd504a3 FortiSwitch blade appliances with FortiTRNG ru... \n", + "e2f5592cc95676e7 Huawei FusionDirector 1.5.1.SPC1 \n", + "a606e94c8e0e3028 Samsung Galaxy Note 7 VPNCPP \n", + "124272e23ec6ac09 Samsung Galaxy Note 7 MDFPP \n", + "a334142059d865a2 NPCT7xx TPM1.2 rev 116; Hardware version LAG01... \n", + "dc7ac9298e12f7ee NPCT7xx TPM2.0 rev1.38 Hardware version LAG019... \n", + "66838f2e4bb6eccc ST33TPHF20 TPM Firmware versions 74.08 (0x4A 0... \n", + "eff64d1800f26807 NPCT7xx TPM 2.0 Hardware version LAG019, Firmw... \n", + "3746512864b941d4 NPCT6xx TPM 2.0 Hardware version FB5C85D and F... \n", + "22ede463dbf1a105 ST33TPHF20I2CTPM Firmware version 74.05 \n", + "4f953ae00a24eb85 ST33TPHF2EI2C mode TPM 2.0TPM Firmware version... \n", + "0bf7a19b22163465 ST33TPHF20SPI TPM Firmware version 74.00 \n", + "a5898123ec124b34 ST33TPHF2ESPI mode TPM 2.0 TPM Firmware versio... \n", + "4e7b5a210809acf9 TPM 2.0 Hardware version FB5C85D, Firmware ver... \n", + "158950ed4bc35274 ST33TPHF2ESPI mode TPM 2.0 TPM Firmware versio... \n", + "bad93fb821395db2 ST33TPHF20SPI \n", + "\n", + " not_valid_before not_valid_after validity_n_days \n", + "d4647f5217d84ba3 2020-11-02 2020-11-02 0 \n", + "a7120da6bf4874fa 2019-06-17 2020-06-10 359 \n", + "3c24bbe7724dbfdd 2012-10-16 2013-08-21 309 \n", + "e2f3a1cdd592ab05 2011-07-31 2012-07-20 355 \n", + "f34df0dd7011366e 2019-04-09 2019-04-09 0 \n", + "2731d8ddba404fad 2019-04-09 2019-04-09 0 \n", + "16bdbde359584f99 2019-01-25 2019-12-03 312 \n", + "0c7ef6c32cbdee47 2019-01-25 2019-12-03 312 \n", + "58ece75f7f2b5099 2019-01-11 2019-01-11 0 \n", + "10b17081dd7cad8f 2018-09-24 2018-09-24 0 \n", + "e27937cf16c20f8f 2017-09-05 2017-09-05 0 \n", + "17b5257b3755a07c 2017-03-23 2017-03-23 0 \n", + "23a85a7f9c07412f 2017-02-16 2017-02-16 0 \n", + "2748f920f4df8eaf 2013-12-20 2014-09-09 263 \n", + "fd31c2a2bbfcc4a9 2016-08-10 2017-02-13 187 \n", + "9e0ec9db58b5c8ec 2016-04-25 2017-02-13 294 \n", + "25fcafd838cecd84 2010-06-29 2011-04-15 290 \n", + "5068c3b7fefae589 2010-06-29 2011-04-15 290 \n", + "a0176ceabc4bfc0a 2019-08-19 2020-02-26 191 \n", + "13e306eb69c8bf95 2017-10-17 2018-06-27 253 \n", + "f410930a2a47d3d0 2017-03-10 2018-02-26 353 \n", + "5a22fab9376989ef 2015-09-18 2016-03-21 185 \n", + "602f65f51a07adaf 2015-03-25 2016-03-21 362 \n", + "7f1129858dd504a3 2014-11-07 2014-12-22 45 \n", + "e2f5592cc95676e7 2020-10-23 2020-10-23 0 \n", + "a606e94c8e0e3028 2016-10-17 2016-11-14 28 \n", + "124272e23ec6ac09 2016-10-14 2016-11-14 31 \n", + "a334142059d865a2 2019-08-14 2019-08-14 0 \n", + "dc7ac9298e12f7ee 2019-01-18 2019-01-18 0 \n", + "66838f2e4bb6eccc 2018-09-24 2018-09-24 0 \n", + "eff64d1800f26807 2018-01-19 2018-01-19 0 \n", + "3746512864b941d4 2017-09-25 2017-09-25 0 \n", + "22ede463dbf1a105 2017-07-19 2017-07-19 0 \n", + "4f953ae00a24eb85 2017-07-19 2017-07-19 0 \n", + "0bf7a19b22163465 2016-12-13 2016-12-13 0 \n", + "a5898123ec124b34 2016-12-13 2016-12-13 0 \n", + "4e7b5a210809acf9 2016-07-22 2016-07-22 0 \n", + "158950ed4bc35274 2016-07-04 2016-07-04 0 \n", + "bad93fb821395db2 2016-05-30 2016-05-30 0 " + ] + }, + "execution_count": 158, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_w_validity_dates.loc[:, [\"name\", \"not_valid_before\", \"not_valid_after\", \"validity_n_days\"]]" ] } ], diff --git a/sec_certs/pandas_helpers.py b/sec_certs/pandas_helpers.py index 2847a167..dca1feb4 100644 --- a/sec_certs/pandas_helpers.py +++ b/sec_certs/pandas_helpers.py @@ -38,38 +38,42 @@ def compute_cve_correlations( filter_nans: bool = True, ) -> pd.DataFrame: """ - Computes correlations of EAL and different SARs and two columns: (n_cves, worst_cve). Few assumptions about the passed dataframe: + Computes correlations of EAL and different SARs and two columns: (n_cves, worst_cve_score, avg_cve_score). Few assumptions about the passed dataframe: - EAL column must be categorical data type - SAR column must be a set of SARs - - `n_cves` and `worst_cve` columns must be present in the dataframe + - `n_cves` and `worst_cve_score`, `avg_cve_score` columns must be present in the dataframe Possibly, it can filter columns will both values NaN (due to division by zero or super low supports.) """ - df_sar = df.loc[:, ["highest_security_level", "sars", "worst_cve", "n_cves"]] - df_sar = df_sar.rename(columns={"highest_security_level": "EAL"}) - families = discover_sar_families(df_sar.sars) - df_sar.EAL = df_sar.EAL.cat.codes + df_sar = df.loc[:, ["eal", "extracted_sars", "worst_cve_score", "avg_cve_score", "n_cves"]] + families = discover_sar_families(df_sar.extracted_sars) + df_sar.eal = df_sar.eal.cat.codes if exclude_vuln_free_certs: df_sar = df_sar.loc[df_sar.n_cves > 0] - n_cves_corrs = [df_sar["EAL"].corr(df_sar.n_cves)] - worst_cve_corrs = [df_sar["EAL"].corr(df_sar.worst_cve)] - supports = [df_sar.loc[~df_sar["EAL"].isnull()].shape[0]] + n_cves_corrs = [df_sar["eal"].corr(df_sar.n_cves)] + worst_cve_corrs = [df_sar["eal"].corr(df_sar.worst_cve_score)] + avg_cve_corrs = [df_sar["eal"].corr(df_sar.avg_cve_score)] + supports = [df_sar.loc[~df_sar["eal"].isnull()].shape[0]] for family in tqdm(families): - df_sar[family] = df_sar.sars.map(lambda x: get_sar_level_from_set(x, family)) + df_sar[family] = df_sar.extracted_sars.map(lambda x: get_sar_level_from_set(x, family)) n_cves_corrs.append(df_sar[family].corr(df_sar.n_cves)) - worst_cve_corrs.append(df_sar[family].corr(df_sar.worst_cve)) + worst_cve_corrs.append(df_sar[family].corr(df_sar.worst_cve_score)) + avg_cve_corrs.append(df_sar[family].corr(df_sar.avg_cve_score)) supports.append(df_sar.loc[~df_sar[family].isnull()].shape[0]) df_sar = df_sar.copy() - tuples = list(zip(n_cves_corrs, worst_cve_corrs, supports)) - dct = {family: correlations for family, correlations in zip(["EAL"] + families, tuples)} - df_corr = pd.DataFrame.from_dict(dct, orient="index", columns=["n_cves_corr", "worst_cve_corr", "support"]) + tuples = list(zip(n_cves_corrs, worst_cve_corrs, avg_cve_corrs, supports)) + dct = {family: correlations for family, correlations in zip(["eal"] + families, tuples)} + df_corr = pd.DataFrame.from_dict( + dct, orient="index", columns=["n_cves_corr", "worst_cve_score_corr", "avg_cve_score_corr", "support"] + ) df_corr.style.set_caption("Correlations between EAL, SARs and CVEs") + df_corr = df_corr.sort_values(by="support", ascending=False) if filter_nans: - df_corr = df_corr.dropna(how="all", subset=["n_cves_corr", "worst_cve_corr"]) + df_corr = df_corr.dropna(how="all", subset=["n_cves_corr", "worst_cve_score_corr", "avg_cve_score_corr"]) if output_path: df_corr.to_csv(output_path) @@ -92,9 +96,19 @@ def expand_cc_df_with_cve_cols(cc_df: pd.DataFrame, cve_dset: CVEDataset) -> pd. lambda x: [cve_dset[y].published_date.date() for y in x] if x is not np.nan else np.nan # type: ignore ) df["earliest_cve"] = df.cve_published_dates.map(lambda x: min(x) if isinstance(x, list) else np.nan) - df["worst_cve"] = df.related_cves.map( + df["worst_cve_score"] = df.related_cves.map( lambda x: max([cve_dset[cve].impact.base_score for cve in x]) if x is not np.nan else np.nan ) + + """ + Note: Technically, CVE can have 0 base score. This happens when the CVE is discarded from the database. + This could skew the results. During May 2022 analysis, we encountered a single CVE with such score. + Therefore, we do not treat this case. + To properly treat this, the average should be taken across CVEs with >0 base_socre. + """ + df["avg_cve_score"] = df.related_cves.map( + lambda x: np.mean([cve_dset[cve].impact.base_score for cve in x]) if x is not np.nan else np.nan + ) return df -- cgit v1.3.1 From 2d177c89e8db6d5f0052beba4e93bb92fac069ab Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Thu, 26 May 2022 17:56:49 +0200 Subject: improve vuln notebook --- notebooks/cc/vulnerabilities.ipynb | 571 +++++++++++++++++++++---------------- 1 file changed, 333 insertions(+), 238 deletions(-) diff --git a/notebooks/cc/vulnerabilities.ipynb b/notebooks/cc/vulnerabilities.ipynb index e7d4b166..05392897 100644 --- a/notebooks/cc/vulnerabilities.ipynb +++ b/notebooks/cc/vulnerabilities.ipynb @@ -19,7 +19,7 @@ }, { "cell_type": "code", - "execution_count": 62, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -63,8 +63,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "parsing cpe matching (by NIST) dictionary: 100%|██████████| 383657/383657 [00:36<00:00, 10594.85it/s]\n", - "Building-up lookup dictionaries for fast CVE matching: 100%|██████████| 187352/187352 [00:17<00:00, 11012.64it/s]\n" + "parsing cpe matching (by NIST) dictionary: 100%|██████████| 383657/383657 [00:36<00:00, 10495.53it/s]\n", + "Building-up lookup dictionaries for fast CVE matching: 100%|██████████| 187352/187352 [00:14<00:00, 13011.72it/s]\n" ] } ], @@ -161,40 +161,40 @@ " \n", " \n", " ebd276cca70fd723\n", - " {CVE-2015-0235, CVE-2013-5421, CVE-2017-1732, ...\n", - " [2015-01-28, 2013-12-22, 2018-08-17, 2013-12-2...\n", + " {CVE-2013-5421, CVE-2017-1732, CVE-2013-5420, ...\n", + " [2013-12-22, 2018-08-17, 2013-12-23, 2013-12-2...\n", " 2013-12-22\n", " 10.0\n", " 5.800000\n", " \n", " \n", " 7a53ce3f91bf73c7\n", - " {CVE-2017-9276, CVE-2017-14802, CVE-2017-14799...\n", - " [2018-03-02, 2018-03-02, 2018-03-01, 2018-03-0...\n", + " {CVE-2017-14800, CVE-2017-14802, CVE-2017-1480...\n", + " [2018-03-01, 2018-03-02, 2018-03-02, 2018-03-0...\n", " 2018-03-01\n", " 6.1\n", " 6.100000\n", " \n", " \n", " 28819ed8f96586bc\n", - " {CVE-2021-26109, CVE-2021-26108, CVE-2021-4308...\n", - " [2021-12-08, 2021-12-08, 2022-05-11, 2022-05-0...\n", + " {CVE-2021-41032, CVE-2021-43206, CVE-2021-2610...\n", + " [2022-05-04, 2022-05-04, 2021-12-08, 2021-12-0...\n", " 2020-09-24\n", " 9.8\n", " 6.866667\n", " \n", " \n", " ac5e56e41a0b950e\n", - " {CVE-2021-26109, CVE-2021-26092, CVE-2020-6648...\n", - " [2021-12-08, 2022-02-24, 2020-10-21, 2021-03-0...\n", + " {CVE-2019-17655, CVE-2021-43081, CVE-2019-1765...\n", + " [2020-06-16, 2022-05-11, 2021-04-12, 2022-03-0...\n", " 2019-08-23\n", " 9.8\n", " 7.019048\n", " \n", " \n", " 1f061d2b3f2e51d1\n", - " {CVE-2018-13371, CVE-2017-17544, CVE-2018-1338...\n", - " [2020-04-02, 2019-04-09, 2019-05-29, 2019-06-0...\n", + " {CVE-2018-13374, CVE-2018-13376, CVE-2017-1418...\n", + " [2019-01-22, 2018-11-27, 2018-05-25, 2017-08-1...\n", " 2017-08-10\n", " 9.8\n", " 6.778000\n", @@ -209,16 +209,16 @@ " \n", " \n", " 5f1df5ad8e51ba75\n", - " {CVE-2004-0713, CVE-2007-0412, CVE-2004-2321, ...\n", - " [2004-07-27, 2007-01-23, 2004-12-31, 2004-04-1...\n", + " {CVE-2003-1221, CVE-2006-2469, CVE-2006-0430, ...\n", + " [2003-12-31, 2006-05-19, 2006-01-25, 2004-04-1...\n", " 2003-08-27\n", " 10.0\n", " 5.534653\n", " \n", " \n", " ffeef32299d913d6\n", - " {CVE-2009-0439, CVE-2008-1130, CVE-2008-1592}\n", - " [2009-02-24, 2008-03-04, 2008-03-31]\n", + " {CVE-2009-0439, CVE-2008-1592, CVE-2008-1130}\n", + " [2009-02-24, 2008-03-31, 2008-03-04]\n", " 2008-03-04\n", " 7.2\n", " 6.133333\n", @@ -241,8 +241,8 @@ " \n", " \n", " 5da939327a14e438\n", - " {CVE-1999-0794, CVE-2007-0030, CVE-2006-3431, ...\n", - " [1999-10-01, 2007-01-09, 2006-07-07, 2007-01-0...\n", + " {CVE-2006-0028, CVE-2006-0030, CVE-2006-1301, ...\n", + " [2006-03-14, 2006-03-14, 2006-07-13, 2007-01-0...\n", " 1999-05-07\n", " 9.3\n", " 7.653333\n", @@ -254,30 +254,30 @@ ], "text/plain": [ " related_cves \\\n", - "ebd276cca70fd723 {CVE-2015-0235, CVE-2013-5421, CVE-2017-1732, ... \n", - "7a53ce3f91bf73c7 {CVE-2017-9276, CVE-2017-14802, CVE-2017-14799... \n", - "28819ed8f96586bc {CVE-2021-26109, CVE-2021-26108, CVE-2021-4308... \n", - "ac5e56e41a0b950e {CVE-2021-26109, CVE-2021-26092, CVE-2020-6648... \n", - "1f061d2b3f2e51d1 {CVE-2018-13371, CVE-2017-17544, CVE-2018-1338... \n", + "ebd276cca70fd723 {CVE-2013-5421, CVE-2017-1732, CVE-2013-5420, ... \n", + "7a53ce3f91bf73c7 {CVE-2017-14800, CVE-2017-14802, CVE-2017-1480... \n", + "28819ed8f96586bc {CVE-2021-41032, CVE-2021-43206, CVE-2021-2610... \n", + "ac5e56e41a0b950e {CVE-2019-17655, CVE-2021-43081, CVE-2019-1765... \n", + "1f061d2b3f2e51d1 {CVE-2018-13374, CVE-2018-13376, CVE-2017-1418... \n", "... ... \n", - "5f1df5ad8e51ba75 {CVE-2004-0713, CVE-2007-0412, CVE-2004-2321, ... \n", - "ffeef32299d913d6 {CVE-2009-0439, CVE-2008-1130, CVE-2008-1592} \n", + "5f1df5ad8e51ba75 {CVE-2003-1221, CVE-2006-2469, CVE-2006-0430, ... \n", + "ffeef32299d913d6 {CVE-2009-0439, CVE-2008-1592, CVE-2008-1130} \n", "a092aebf5a286ded {CVE-2004-2558} \n", "ace069b9b7c10f19 {CVE-2000-0772} \n", - "5da939327a14e438 {CVE-1999-0794, CVE-2007-0030, CVE-2006-3431, ... \n", + "5da939327a14e438 {CVE-2006-0028, CVE-2006-0030, CVE-2006-1301, ... \n", "\n", " cve_published_dates \\\n", - "ebd276cca70fd723 [2015-01-28, 2013-12-22, 2018-08-17, 2013-12-2... \n", - "7a53ce3f91bf73c7 [2018-03-02, 2018-03-02, 2018-03-01, 2018-03-0... \n", - "28819ed8f96586bc [2021-12-08, 2021-12-08, 2022-05-11, 2022-05-0... \n", - "ac5e56e41a0b950e [2021-12-08, 2022-02-24, 2020-10-21, 2021-03-0... \n", - "1f061d2b3f2e51d1 [2020-04-02, 2019-04-09, 2019-05-29, 2019-06-0... \n", + "ebd276cca70fd723 [2013-12-22, 2018-08-17, 2013-12-23, 2013-12-2... \n", + "7a53ce3f91bf73c7 [2018-03-01, 2018-03-02, 2018-03-02, 2018-03-0... \n", + "28819ed8f96586bc [2022-05-04, 2022-05-04, 2021-12-08, 2021-12-0... \n", + "ac5e56e41a0b950e [2020-06-16, 2022-05-11, 2021-04-12, 2022-03-0... \n", + "1f061d2b3f2e51d1 [2019-01-22, 2018-11-27, 2018-05-25, 2017-08-1... \n", "... ... \n", - "5f1df5ad8e51ba75 [2004-07-27, 2007-01-23, 2004-12-31, 2004-04-1... \n", - "ffeef32299d913d6 [2009-02-24, 2008-03-04, 2008-03-31] \n", + "5f1df5ad8e51ba75 [2003-12-31, 2006-05-19, 2006-01-25, 2004-04-1... \n", + "ffeef32299d913d6 [2009-02-24, 2008-03-31, 2008-03-04] \n", "a092aebf5a286ded [2004-12-31] \n", "ace069b9b7c10f19 [2000-10-20] \n", - "5da939327a14e438 [1999-10-01, 2007-01-09, 2006-07-07, 2007-01-0... \n", + "5da939327a14e438 [2006-03-14, 2006-03-14, 2006-07-13, 2007-01-0... \n", "\n", " earliest_cve worst_cve_score avg_cve_score \n", "ebd276cca70fd723 2013-12-22 10.0 5.800000 \n", @@ -319,8 +319,8 @@ "outputs": [ { "data": { - "image/png": "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XnjhBdHRZKe4uBjLly/Hd999h4EDB2LDhg2iIxEZDIu7kcyYMQMzZszA2bNnsXPnTly+fBmrV6/GiBEj0KVLF9HxflPTYaNp06Y1+4dw6tSpoiLJztixYzF27FikpaXhjTfeEB1H1urr66FSqQA0Dupp6rZIJEf87TayF198EatXr8bBgwfh7u6OBQsWiI70VCqVSneI7v79+6isrBQbSIays7NFR5C9OXPmYPz48bh8+TLCw8MRGRkpOhKRwfBAHT3V/v378de//hVOTk548OABFi9ezN7cEps2bRo6d+7crH9/eHi44FTypFKp0LZtWygUCtFRiAyG2/L0VK+++ioGDRoElUoFFxcXWFpaio4kO00T9szh0UhzExcX98Tv/bq1MpFcsLjTU506dQqbN2/Gw4cPde9t2bJFYCL5iYqKQmlpKTQaDbRaLfv3S2jYsGHNvi4tLUVycjIPLZKscVueniokJATx8fFwd3fXvdepUyeBieQnPj4eFy5cQG1tLX755Rd4enpix44domPJTnZ2NtasWYOoqCg+8UGyxit3eioPDw/2OjewvLw85OTkIDExETExMXjrrbdER5KVyspKvPPOO6iurkZaWhrnI5DssbjTU7m4uCAxMRHdunXTHULiYS9pNR3w+vnnn9k1TWJHjhzBu+++iylTpmD8+PGi4xAZBbfl6anWrVv32HscdCKtlJQUODk5oby8HHfv3sXNmzeRlZUlOpYs+Pn5wc7ODg4ODo99r2mQDJHcsLjTU92+ffux9zp06CAgibzV1NTAxsYGx48fx5/+9CcONiGi343FnZ4qPDwcCoUCDQ0NuHXrFry8vJCeni46lqxcvHgROTk5zZ5ISEpKEheIiMwa77nTU2VmZupeV1VVYfHixQLTyNPChQsxY8YMODo6io5CRDLA4k7/kdatW+PmzZuiY8iOl5cXRo8eLToGEckEizs9VdO2vFarhUql4mNxBvDqq68iJiYGnTt31r3HQ4vSmDhx4hNbzbIZE8kVizs9VUpKiu61jY0N2rVrJzCNPKWlpWHIkCHcljeAJUuWAAA++ugjDBo0CC+88AIuXryIo0ePCk5GZDgs7vRUlpaWWLFiBfLz8+Ht7Y24uDh07NhRdCxZadOmDd58803RMWSpqZtieXm5rhXt4MGDsXXrVpGxiAyKxZ2eatGiRRg/fjwCAgJw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", - "image/svg+xml": "\n\n\n \n \n \n \n 2022-05-26T10:48:30.233445\n image/svg+xml\n \n \n Matplotlib v3.5.1, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfcAAAIZCAYAAAC703ZIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAC2FElEQVR4nOzdd1yN/f8H8NdpSgPJViiyM+I2Q7bsUTLCbWSv3KSQpGnvkRHiphC3WxEyyiar3FFKdoNKTtrn+v3R71zfjso6n9M4vZ+Px/24nfU+n3N1Xdf7uj5TwHEcB0IIIYTIDYWSLgAhhBBC2KLkTgghhMgZSu6EEEKInKHkTgghhMgZSu6EEEKInKHkTgghhMiZHyb33NxceHl5YcSIERg6dCjMzMywdu1aZGVl/TD4tm3bcOnSJSYF/ZHNmzfj9OnTzOJFRETAzs7up94bFhaGefPmAQCePHkCBwcHAMCdO3cwaNAgZmUCgMmTJyMpKYlpzF91/PhxHDlyRGbx27Rpg7dv3xb5elpaGqZOnYqMjAyZlUGWhg4ditTUVJl+h5WVFc6fP/9Ln/ny5QsmTJggoxL9ngcPHmDKlCkYOnQoBg0aBGtra0RGRgIA3r59i6ZNm2Lo0KH8f0OGDMGJEyeKfF3838+cv4KCguDs7Pzd9/zOdga+f1598+YNWrRogfj4+AKfGzx4MC5cuAA/Pz8YGxsX+F1Lliz5qe//mfNl48aNi+1cM2jQINy5c+en3//27Vu0adMGALB161Y4OTnJpFxXr17F5s2bAUjuDxEREejduzeGDx+OQ4cO/XA/+Z7ly5cjPDycSXnzU/rRGxwdHfH582ccPHgQmpqa+Pr1K/766y8sW7YMa9eu/e5n79y5g4YNGzIr7PfMnz+fWSyRSIRly5Zh586dP/X+li1bYsuWLQCAFy9eFHpQsnLjxg2Zxf5ZoaGhaNSoUYl9v7q6OgYNGoTNmzfD1ta2xMrxu/7555+SLkKhPn/+jLCwsJIuBu/evXtYvHgxtm3bhhYtWgAAzpw5AysrK5w7dw4AUKFCBYntGR8fj0GDBqFFixbQ0NAo8Pqv6NWrF3r16iX9DynEj86rXbp0gZ+fH2bOnMl/5uHDh/jy5Qt69eqFf/75B+3atcPu3bt/6/tZni/lWVhYGD5//gxAcn8ICgpChw4d4OLiIvV33Lx5E6NHj5Y6zre+m9zfvHmDf//9F9evX4eGhgYAoGLFili1ahUePnwIAHj58iWcnJzw9etXJCQkoEmTJti0aRNOnDiB8PBwrFmzBoqKiujevTvWrVuHe/fuITc3F82aNcPy5cuhoaGBJ0+ewNHREdnZ2dDT08P79++xdOlSdOjQAT4+PvD29oaCggJ0dHSwYsUKNGjQAEuXLkVKSgrevHmDHj164NOnT2jUqBGmTJmC6OhouLi4ICUlBbm5ubCyssKoUaOQlpYGOzs7vHr1CgoKCmjevDmcnJygoCBZgXHu3DnUrVsXNWrUwMGDBxEWFoZ169YhOzsbHTp0gL29PUaNGoXQ0FC4ublh8eLFWL16Nfbs2YMtW7bgy5cvsLOzw7Bhw/D161csXLgQMTExyMzMhLOzM9q1a4cvX75g1apVePbsGQQCAUxMTGBjYwMlJSU0btwYt27dgra2NgDwj8UXUxMnToSnpydq1arFlzk6OhrLli1DVlYWOI7DqFGjMG7cOGzduhWvX7/GmzdvkJCQACMjI3Tp0gWnT5/G27dvsXjxYgwaNAgfP36Eg4MDPn36hMTERNSpUwebNm1C1apV0bNnTxgZGeH58+ewsbHB5cuXcePGDVSoUAGjR4/G2rVrcfXqVSgqKqJNmzZYuXIlUlNTfzpelSpVsHr1aggEArRs2RIikQgAvvv3GjBgANatW4cpU6ZAR0dH4u/38uVLODg4ICkpCQoKCpg5cybMzMwQFRUFJycnpKSkQCAQYPLkyRg2bBju3LmDDRs2oHr16oiKioKamhrmzp0Lb29vvHz5En379oW9vT3u3LmDNWvWoEaNGnjz5g0qVKgAd3d3GBgYFHkcqKqqokWLFujVqxeePXuGdevWYdSoUbh16xZyc3Nha2uL5ORkAED37t2xYMECAMD27dvh7+8PRUVFNGjQACtWrEC1atVgZWWF1q1b48GDB/jw4QOMjY3h4eFRYB8GgIsXL8LT0xMZGRkYPHgwnygePHiAdevWIT09HQKBAHPnzoWpqSns7OyQkZGBoUOHokOHDlBTU8PChQuRmJgIExMTeHl5oVOnTjhz5gyCgoKwefNmHD9+HEePHoVIJELlypWxYsUKGBgYICsrq8jjvWfPnhg+fDhu3bqFDx8+YMCAAYXecW7ZsgWzZs3iEzsADBkyBKqqqsjNzS30nFWjRg3Uq1cPsbGxEp/7GX5+fjhx4gTS09OhoaGB4cOHIzAwELt370ZiYiJWrlyJmJgYKCgowNLSkq/lCAoKwt69e/Hp0yd06tQJzs7Ohf49xH7mvDp27Fg4OztjxowZEAgEAABfX1+MHj0aioqKv/S7AHz3fPn48WM4OzsjPT0dysrKWLJkCTp16gQg76748ePHSElJwZQpUzBu3LgCsU+cOAEfHx9kZ2fj8+fPmDZtGsaOHQs/Pz9cvHgRCgoKePXqFZSVleHh4QFDQ0O8ePEC9vb2SE9Ph76+Pr5+/VpouR89esTXaCQmJqJz585wdXX9qd+ck5NT6LlJRUUFO3fuxIULFyASiVCnTh2sXLkSNWrUgJWVFSpVqoSYmBiYmZnh2LFjyM3NhaamJurVq4fAwEAMHDgQR48eRW5uLjIyMtClS5cf7idF/Y6NGzciISEBf/31F9asWQN9fX24uLggMjIS2dnZ6NSpE5YsWQIlJSVs2bIFFy9ehLKyMqpUqQI3NzdUr1696A3Afcf58+e5kSNHfu8tnLu7O3f69GmO4zguKyuLGzRoEHf+/HmO4zhu/Pjx3Llz5ziO47itW7dy7u7unEgk4jiO49avX8+tXLmSy87O5rp168ZdvXqV4ziOu3XrFte4cWPu9u3b3M2bN7nevXtznz594jiO406ePMkNGDCAE4lEnK2tLTdx4kS+HLa2ttzevXu57OxszszMjAsPD+c4juNSU1O5AQMGcA8fPuROnTrFTZ48meM4jsvJyeGWLVvGxcbGFvhNc+fO5U6ePMlxHMe9ffuW69SpEycSibjbt29zXbp04WxsbDiO4zgPDw/O09OTu337Njdw4EC+jNbW1hzHcdzt27e5pk2bco8ePeI4juO8vLy4CRMmcBzHcUuWLOFWr17NiUQiLjMzk5s8eTK3e/dujuM4ztDQkP/N3z7+9jUxOzs7/vMJCQncggULuNzcXG7Lli2cqakpl5qayqWnp3Pt27fn3NzcOI7juIsXL3J9+/blOI7jDhw4wH9eJBJxU6dO5fbt28dxHMeZmppy27ZtK7CtOY7jDh48yI0bN45LT0/ncnNzufnz53OnTp366XiZmZlc586duZs3b3Icx3H//vsvZ2hoyL158+aHf6+5c+dyJ06cKLAthg0bxh0+fJjjOI57//4916tXL+7Lly9cr169uMDAQI7jOC4uLo4zMTHhHjx4wP+dnj59ynEcx02ZMoUbPXo0l5mZyX369Ilr3rw5FxcXx92+fZtr0qQJd+/ePY7jOO7vv//mhg8fznHc948DQ0ND7tSpUwX+ntu2beNWrFjBcRzHpaWlcQsWLOBSU1O5EydOcKNHj+bS0tI4juO4LVu28Nth/Pjx3Lx587jc3Fzuy5cvXNeuXblbt24V2Abjx4/npk+fzmVnZ3Nfvnzh+vfvz129epVLSUnh+vbty71584bfDt26dePevXvHvXnzhmvdujXHcRx39+5d/redPHmS69KlC7d+/XqO4zhu3rx5nL+/P3fnzh1u7Nix3NevXzmO47iQkBBuwIABHMcVfbyL//7u7u7897ds2ZJ7/fp1gd/QunVrLioqqsDzYvnLK/bgwQOuffv23Pv377k3b95wTZo04YYMGSLxn6OjY6HxTp48ybVv35778uUL/1h8LM+ePZvz8PDgOC7vnDJw4EAuNjaWGz9+PDdz5kwuJyeH+/r1K9elSxd+/yjKz5xXc3NzuV69enG3b9/mv7N9+/bcx48f+bK1bdu2wG8r7HjgOK7I82VWVhbXpUsX7sqVKxzHcVxYWBg3aNAgLjc3lzM0NOSP2adPn3ItWrTgsrKyJOIKhULOwsKCS0pK4jiO4x4+fMj/TU6ePMkZGxtzHz584DiO45ycnLglS5ZwHMdxQ4cO5Xx9fTmO47j79+/z5/xvLVy4kH9eKBRyHTp04MLCwiT+9lu2bOFWrVpV4LNFnZtOnTrFLViwgMvOzuY4juOOHTvGTZ06leO4vOPGzs6Oj5E/dv79oajni9pPivodHJd3PDx58oTjOI5bunQpd+jQIY7j8s55f/31F+fp6cm9f/+ea9u2LZeZmclxHMft27ePu3jxYoHfnN9379wVFBT4u6iiLF68GDdu3MCePXsQGxuLhISEQq/Crl69ii9fvuDmzZsAgOzsbFStWpVvP+vevTsAoGPHjnyVb0hICMzMzPg72BEjRsDFxYVvjzU2Ni7wPbGxsXj9+jXs7e355zIyMvDff//BxMQEGzduhJWVFTp37oyJEyeiXr16BWLExMTwV+V16tRBzZo1ERYWhpCQEFhbW8PT0xMcxyEoKAh79uzBhw8fitw+urq6aNWqFQCgSZMmOHnyJAAgODgYR48ehUAggIqKCiwtLXHw4EFYW1t/b3MXqU+fPrC1tcWTJ0/QqVMnLF++nL976Ny5MzQ1NQEA1atXh4mJCQBAT08PKSkpAPJqA+7fvw8vLy/ExsYiKiqKLzcAtGvXrtDvvXnzJoYOHYoKFSoAADZt2sS/9jPxIiMjoaSkxN8pDBo0iO+zYGxs/N2/l56eHl6+fClRnpSUFDx79gzm5uYAgFq1auHSpUt48eIFMjMz0bdvXwB5d3h9+/ZFSEgIOnTogLp166JZs2Z8XE1NTaioqEBbWxvq6up81VyTJk34so8cORJOTk5ITk7+4XFQ2PYzMTGBtbU1Pnz4gM6dO2PRokXQ1NREcHAwRowYgYoVKwIAJkyYgF27dvHtxKamplBQUICGhgbq1avHl+1bo0aNgpKSEjQ0NNCvXz/+2EtMTMTs2bP59wkEAjx//lyiqcXY2Bjx8fH49OkTQkJCMHPmTPj5+WHOnDm4d+8eXF1dsX37drx69QqWlpb85z5//oyUlJQij3cxcfVmjRo1ULVqVXz+/Bm6uroS5f+Z84+4pgHIa8euUqUK1q5di1q1auHt27e/XC3fuHFj/m46v5s3b2Lx4sUAAE1NTZw9e5Z/zczMDIqKilBTU0P9+vXx6dOn737Hz/wu8V3fyZMn0aFDB5w5cwbdunWT2Ia/Wi1f2PkyMjISCgoK6NGjBwCgRYsW+Pfff/nXxX2GmjZtiqysLAiFQlSpUoV/XV1dHbt27cK1a9cQGxuLZ8+eSez3zZs3R82aNQEAzZo1w8WLF5GcnIznz59j2LBhfLmKauZzd3dHcHAwdu3ahZiYGGRkZODr16+oXLnyD39vUeem+fPnIywsDCNHjgSQ1wybnp7Of66oc93PKGo/Kep3fOvq1asICwvj+42I+xXVqFEDTZo0wfDhw9GtWzd069aNP2cW5bvJ3cjICDExMRAKhRI7fHx8PFasWIEtW7Zg6dKlyM3NxYABA9CjRw98+PABXCHT1YtEItjb2/NJPC0tDZmZmUhMTCzwfnG1U2FxOI5DTk4OAPAnv/xyc3OhpaUlcUB//PgRmpqaUFVVxcWLF3Hnzh3cvn0bf/75J5YvX47+/ftLxBAIBBIHX58+fRAcHIwbN25g9+7dOHv2LAICAlChQgXo6el9N7krKytLxBX/pm8PbpFIxP+u/H6m4w+Qd8IPDAzEzZs3cevWLWzfvh3Hjh0DAKioqEi8V0mp4J997dq1ePLkCUaOHIkOHTogJydHYvsXtq0Li/Xx40eIRCIcPHjwp+Ll3ybfxtTV1f3u3ys3N7fI3yauygTyLtYKq8bNvy/9zDYCUKBKlOM4KCoqwsbG5rvHQWHbz8jICEFBQbh16xZu374Nc3NzbN++vcD2+HbfEJ+sxL+zsOPk27JyHAclJSXk5ubCwMAAx48f51+Lj4+Htra2RF8RBQUFmJqa4urVq3j8+DE8PDywe/dunD9/Hq1bt4a6ujpEIhGGDh3Kn8xEIhESEhJQqVKlIo93MVVV1R/+htatW+Px48cwNDSUeH7VqlXo06cP9PT0pGpTX7ZsGd+RydLSEqqqqt/dz/PvU2/evOGTXP595Xt/D7GfOa9WqFABI0eORP/+/SEUCuHr64tVq1b99G8TX/AA4Dt7FfbbFBUVJX4XkJfw9fX1JX6b+D3f/ra4uDiMHj0aFhYWMDY2Rv/+/XHlyhX+9cL21cJiFXW8jRs3Dk2aNIGJiQkGDBiAx48f/3D7FhVTfG4SiUSYOnUqxo4dCyDvHJv/ArmofeBnv7Ow/eTPP//8qd8hEomwefNmGBgYAABSU1MhEAigoKCAw4cPIywsDLdu3YKrqys6dOiA5cuXF1mW7/aWr1GjBgYPHgx7e3sIhUIAgFAohKOjIypXrowKFSrg+vXrmD17NszMzCAQCPD48WP+RKqoqMiflLp27YojR44gKysLIpEIK1aswIYNG2BgYAAVFRUEBwcDyOttHhkZCYFAgK5duyIgIIDvsXny5ElUrly50LttsQYNGkBVVZU/4D98+IBBgwYhPDwcf//9N+zs7NC1a1csXrwYXbt2RVRUVKEx3rx5wz/u06cP/v33X+Tm5qJ69ero0qUL1q5di379+hX4bP7f/D3i7cFxHLKysuDr64vOnTsDALS1tfmOTRcvXvyp+IsWLUJAQAAGDhyIlStXQkND47sXHd+6fv06Jk6ciGHDhqFq1aq4efNmke2a+cvQqVMnnD17lv+7Ojo6wt/f/6fjGRoaguM4XLt2DUBe+6X4QPvR3+vt27do0KCBRDwNDQ00b96c7wn84cMHjBkzBlpaWlBWVsaFCxcA5J1IAwMD+W3+s549e4Znz54BAHx8fNC2bVtoaWl99zgoyrp167Bjxw707t0by5YtQ8OGDREbG4uuXbvCz8+Pv7L39vZG+/btC1yA/Mjp06fBcRw+f/6Mc+fOoVu3bmjdujVevXqFe/fuAcjr9duvXz8kJCTwyV980unTpw/27t0LQ0NDqKiooGPHjtiwYQO/33fp0gX+/v5ISEgAABw9ehQTJ04EUPTx/itmzpyJbdu2SfQk9vPzQ2BgYIGE/ztcXFzwzz//4J9//sGYMWO++95OnTrxtW5fvnzBxIkTERsb+1vf+zPnVQCoUqUKTE1NsWXLFigqKqJ169Y//R3i3/XPP/+gZcuWRb5PX18fAoGA76j79OlTTJw48Yc1C2Lh4eHQ1tbGrFmzYGJiwif27+37lStXRvPmzfkLzKdPn/I1uPl9/vwZ4eHh+Ouvv9C3b1/Ex8fj9evXP122os5NXbt2xYkTJ/htv3nz5iJHGfzs+Tz/dxa2n3zvd3ybJw8cOMDnhZkzZ+Lw4cN49uwZBg0aBAMDA0yfPh2TJk3C8+fPv1uWH/aWX7lyJXbs2AFLS0soKioiKysLvXv3xty5cwEACxcuxOzZs1GpUiWoqamhffv2eP36NYC8u0kPDw9kZ2dj1qxZ8PDwwPDhw5Gbm4umTZti6dKlUFJSwtatW7Fy5Ups2LAB9evXh46ODipUqIA//vgDkyZN4nc2bW1t7N69+7udVVRUVLBjxw64uLhg7969yMnJwfz582FsbIymTZvi7t27MDMzg5qaGmrXrl3o0J9+/frh4sWLfLWNuMe/uBqka9eu2LFjR6HJvU2bNti0aRNmz5793WFFy5cvh7OzMwYPHozs7GyYmJhgxowZ/GtOTk7Q0tJC586dUa1aNf5zffr0wdixY7Fjxw6JE9ysWbOwbNky+Pj4QFFREb1798Yff/yBu3fvFlmG/GbPno01a9Zgx44dUFRURNu2bfm/47e6deuG1atXAwCmTp2Kd+/eYcSIEeA4Dn/88QesrKxQp06dn4qnrKyM7du3w9HRERs2bEDTpk35qsdhw4YV+ffKysrCw4cPC+2tun79eqxatQre3t4QCARwcXFBrVq1sGPHDjg7O2Pr1q3Izc3F7Nmz0bFjx18agqOjo4NNmzbh3bt30NbWxpo1awB8/zgoysSJE7F06VIMGjQIKioqaNy4MQYNGgQlJSV8+PAB5ubmEIlEqFevHtatW/fTZRTT1NTEiBEjkJGRgfHjx6NDhw4A8jqqrVmzBpmZmeA4DmvWrEGdOnX4jm8DBgzA0aNH0alTJ8THx/OJT3yx3bNnTwB5zQrTpk3D5MmTIRAIoKGhgW3btkEgEBR5vP+Kdu3awdnZGS4uLvj69Svf4fbQoUPQ0dH57nBJsfzV9vm5u7ujadOmP10WBwcHODo6YvDgweA4DtOnT/9hh71ly5ahRYsWhV44/Oi8KjZ27FhYWFgUup/fv3+/wG9TVFSEn5/fT/8uFRUVbN26Fa6urlizZg2UlZWxdevWn76Q7NKlC06cOIH+/ftDTU0NRkZG0NbWxqtXr777uQ0bNsDOzg7Hjh2Dnp4eX1OQX6VKlWBtbY3hw4ejcuXKqFKlCtq2bYtXr14VaMIpjKWlZaHnJgUFBcTHx8PCwgICgQC1atWCu7t7oTE6deqEuXPnQllZGc2bN//hdxa1nxT1Ozp16oTevXtj4cKFcHZ2xrJly+Di4sLnhc6dO2Pq1KlQVlbGgAEDMHLkSFSsWBEVKlT47l07AAi4n63jkCEPDw++1/OHDx8wdOhQXLp0CVpaWiVSntzcXIwYMQKenp6oUaNGiZSBfJ+fnx+ioqKKdSjcnTt3sHr1aon2VkKKcuPGDURFRWHSpEklXRRSDv3wzr041KlTB5MmTYKSkhI4joOzs3OJJXYg7+p39erV2LBhAzw8PEqsHKRwQqEQZ8+exbZt20q6KIQUKSUlBaNGjSrpYpByqlTcuRNCCCGEHZpbnhBCCJEzlNwJIYQQOUPJnRBCCJEzpaJDnTwJDQ0t6SIQQkiZVNgseuT3UHKXgV/ZQSMiIn5pvK28xpVl7LIWV5axKa7sY5e1uLKM/Stx6caILaqWJ4QQQuQMJXdCCCFEzlByJ4QQQuQMJXdCCCFEzlByJ4QQQuQMJXdCCCFEzlByJ4QQQuQMjXMnRE7VX+pfxCsxvxUv1n3gD98TFRWFtWvXIj09HV+/fkX37t0xd+5cCASCQt///v17PHv2jF8jvqSsW7cO+vr6aNq0KYKCgjBnzpxC33fv3j1oamqiSZMmEs97enqiY8eOePHiBe7duwc3N7ef+t7Dhw9j/PjxCA4OxocPHzB69Gipf0t+W7duhY6ODvT19XHs2DFs3LiRaXxSelFyJ6QEfZuAfyaBllapqamwsbHB1q1bUb9+feTm5mL+/Pk4duwYxowZU+hnbt++jZiYmBJP7mJNmzb97qQrJ0+ehJmZWYHkbm1tDQB48eLFL33fzp07MX78eHTr1u3XC0vId1ByJ4QwERQUhA4dOqB+/foAAEVFRXh4eEBZWRm5ublwcHBAXFwcEhIS0LNnT8ybNw+enp7IyMhAmzZtULduXTg7OwMAKleuDFdXV3AcB0dHR4SHh0NHRwfv3r3Dzp07AQD29vbIzc2FQCDA8uXL0aRJE5iamkJfXx8GBga4cuUKjh8/jsqVK+Pvv/9GWloapk2bxpf35s2bsLOzg7a2NrKzs6Gvr487d+7wd7h2dnZ49eoVMjIyMGHCBDRs2BAhISF4+vQpGjZsiHHjxvHflZqaCjMzMwDA8+fPMXHiRAiFQsydOxc9evRAz549ce7cOaiqqvK1BPHx8fj8+TMcHR1hZGSEmJgY/PXXX9i/fz/8/f2hpKSEdu3aYfHixdi6dSuePn2KnJwcvH//HnZ2djAxMZHY/uvXr0d4eDhSUlLQpEmTn649IPKJkjshhImEhATo6upKPKeurg4AePv2LVq3bg1zc3NkZmaiW7duWLhwIaytrRETE4NevXrBwsICrq6uaNiwIY4fP469e/eiSpUqSElJwYkTJ5CUlIS+ffsCANasWYMJEyagd+/eiIiIgL29Pfz8/PDhwwf4+fmhSpUq0NDQgL+/P8aNG4czZ85g27ZtfLmys7Ph5eWFf//9F5UrV+bvvMWEQiHu3bsHX19fAMCNGzfQokULmJiYwMzMDLVr15b4rqVLl/KfVVVVxYEDB5CUlARzc/Mi78pnzpyJw4cPw9HREX5+fgDyLgzOnTuHY8eOQUlJCXPnzsWVK1cAAEpKSti1axdu3LiB/fv3SyR3oVAILS0teHl5QSQSYeDAgYiPj/+tvyORD5TcCSFM1K5dG//995/Ec2/evEFcXByaNm2KsLAw3L59GxoaGsjKyirw+ejoaKxatQpAXvKtX78+0tLS0Lp1awCAtrY29PX1+fe2b98eQF5VelxcHACgSpUqqFKlCgBg5MiRsLGxQfv27aGjowMdHR3+u5KSkqChocG/t02bNhJl0dDQgL29PVasWAGhUIghQ4YUKG/+78qvadOmEAgEqFq1KjQ1NZGSkiLxOsdxhW9AADExMWjVqhWUlZUBAO3atUNUVBQA8L+9Zs2aBbafqqoqkpKSYGNjg4oVK+Lr16/Izs4u8nuI/KPe8oQQJkxNTRESEoLXr18DyEvQ7u7uiIyMhJ+fHzQ1NbF+/XpMnjwZGRkZ4DgOCgoKEIlEAIAGDRrAw8MD3t7eWLx4MXr06AE9PT08evQIAPD582fExsYCAAwMDHD//n0AeYuTiBO3gsL/Tml16tSBpqYmdu3ahVGjRkmUtWrVqkhLS0NSUhIAICwsTOL1hIQEPH36FNu3b4enpyfWrl2LnJwcCAQCPjnn/678xO3uiYmJ+Pr1K6pUqQIVFRUkJCSA4zg8e/aMf++3iV5fXx9PnjxBTk4OOI7DvXv30KBBAwAoslMiAL5D3oYNG2BjY8NvX1J+0Z07IYQJDQ0NuLu7Y/ny5eA4DmlpaTA1NcXYsWPx4sULLFq0CI8ePYKKigrq1auHhIQEGBoaYufOnWjevDkcHR1ha2vLJ1EXFxfo6enh5cuXsLS0hI6ODipUqABlZWUsWbIEK1aswP79+5GTkwMXF5dCy2RhYQFnZ2esXbtW4nklJSVYW1tjypQpqFSpEpSUJE+F1apVQ2JiIiwtLaGgoIDJkydDSUkJrVq1wrp161C3bt0it0NWVhYmTJiAr1+/wsnJCQKBAFOnToW1tTXq1KkDLS0t/r0GBgb466+/0LlzZwBA48aNMWDAAIwZMwYikQjGxsbo3bu3xAVBYYyMjLBjxw6MGzcOAoEAurq6SEhI+O5niHwTcHR5x1RoaCgt+VrKYpfmuEX1li/NZS7OuBcvXkRWVhYGDhyI5ORkDBo0CFeuXIGKispPff7cuXOIjIzE/PnzC7xW1raFvB97v3ruJN9Hd+6EkFJLR0cHnp6eOHjwIHJzc/HXX3/9dGLfsGED7ty5g127dsm4lISUPpTcCSGlVoUKFfihb7/KxsaGcWkIKTuoQx0hhBAiZyi5E0IIIXKGkjshhBAiZ8ptm7tIJIKjoyOeP38OFRUVODs7o169evzrR44cgZ+fHwQCASZPngwzMzNkZGRg8eLF+PTpE9TV1eHh4QFtbe0S/BWEEEJIQeU2uV+6dAlZWVnw8fHBo0eP4O7uznfcSUpKwtGjR3Hq1ClkZmZi4MCBGDBgAI4ePQpDQ0PMnTsX/v7+2LFjB5YvX17Cv4SQIjhWKvCUVIOdHD//8C20KlzJrQr3+fNneHh44PXr18jJyUGtWrXg5OQETU1N9OzZE7Vq1YKCggI4jkPlypXh7u6Op0+fYsGCBahVqxY/VXCVKlWwZcuW737XnDlzJKbzzc/KygqOjo4wMDD47d9CpFduk3toaCg/N3Pr1q0RHh7Ov6atrY3Tp09DSUkJ7969g6qqKgQCAUJDQzF16lQAQLdu3bBjx44SKTshpRGtCleyq8LZ2NjA0tISffr0AQAcOHAADg4O/DKv+/fvh6qqKgBg7dq18PPzQ+PGjdGxY0dYW1v/0jj3ohI7KT3KbXIXCoXQ0NDgHysqKiInJ4efqUpJSQmHDx/G1q1bYWVlxX9GU1MTQN6CGF++fCk0dkRExE+XIyMj45feL69xZRm7LMUVx2MRm/WUJN8rT0ZGBry9vWFoaIj09HT+veKZ3cLDw7Fz5058/PgRycnJ+OOPP2BpaYlt27YhMzMT1apVQ/Xq1bF3715wHAdNTU3MnTsXCgoKmD9/PqKjo1G5cmXEx8dj2bJlAPISjHhVuKlTp6JBgwaYNm0a6tSpA11dXdy7dw9r166FpqYmzp07h/T0dIwYMYIv87Vr17Bw4UJoaWkhJycHFSpUgK+vLwIDA/HXX39hy5Yt+PDhA7KysjBo0CDo6uriypUrePDgAZYvXw57e3v+u4RCIUxMTJCcnIyIiAiMGjUK6enpsLS0RLt27TBt2jRs374dKioqOHToEOrUqYOkpCSkpKRg/vz5aNSoEd69e4cJEybg9OnTuH79OhQVFdGsWTNMnDgRR48exYcPHyAUCpGQkIApU6ZIzIefkJCAt2/fom7duvy2b9euHVq0aIGIiAhkZWXh2bNnUFFRAcdxeP36NSpUqIBXr14hNTX1h/tbUFAQgoKCwHEcLC0tsXHjRhw4cACRkZHYt28fRCIRqlatioULFyItLQ1ubm5ISUnB169fsXjxYtSsWVOqfY/8unKb3DU0NJCWlsY/FolEBaagHD9+PCwsLDBt2jR+wQvxZ9LS0iSmkczvV66AS8PMUKUhrixjl+64MRKPxPFkuZ1/1/fKExERASUlJRgZGRX6vrdv36JHjx4Sq8I5Oztjzpw5iImJwcSJE2FhYQEPDw9+VbiQkBBUqVIFAoEAZ8+e5VeFa9iwIdasWYMZM2bwq8ItW7YMfn5++PjxI/7991++ajkqKgrjxo3DqlWrsG3bNn4O+uzsbEybNk1iVbjatWvz08Pq6uoiKipKYlW4wYMH48aNGzAzM0O3bt0kvmvp0qXQ1dWFmpoa1NTU8Pfff/Orwo0bNw4qKipo0qQJVFVVUbVqVdSuXRtz5sxBYGAgNm/eDD8/P2RkZEBBQQEPHjzgaw7nzp2LuLg4VKtWDUlJSdizZw+/KtzYsWP57ZuRkYGGDRsW+TdSUVHBmjVroKCgAIFAACMjI8ycOROhoaH477//sHr1ar5avnv37nwNZf6/b82aNfmmy61bt6Jp06ZYunQpNm7cCAMDAxw/fhzKyspQV1fH4MGDMXToUDg4OODFixcwNTX94f4VGhr6w/eQn1duk3vbtm1x5coVmJmZ4dGjRzA0NORfi4mJwYYNG7B161YoKytDRUUFCgoKaNu2La5duwYjIyMEBwfTVImE5EOrwoEvT3GvCle7dm1+G4hlZ2fj3LlzfNnzV8vnV1i1fFpaGmbMmAEA6Ny5M2rUqMEvYJPfx48f+bZ1c3Nz/vkWLVoAyNtGGRkZRf5eIjvldihcnz59oKKiAktLS7i5ucHOzg5eXl4ICgqCvr4+mjRpgtGjR8PS0hKtWrXCH3/8gTFjxiAqKgpjxoyBj49PkZ1uCCmPaFW4PCWxKlyNGjVQpUoVXLp0iX/u0KFDCAoKKvIz36Ourg5vb294e3tj5syZRf7e6tWr838TT09PXLx48be+j7BXbu/cFRQU4OTkJPFc/t6dc+bMKZC81dTUftiLlJDyilaFy1MSq8IBwJo1a+Dk5IT9+/cjOzsbenp6cHZ2/uHnbt++jVevXvHV8gCwZ88eVKhQ4YefXbVqFezt7aGgoIBq1aph0qRJOHTo0A8/R2SPVoVjjFaFK32xS3NcWhXu+2hVONnHlWVsWhWu5JTbO3dCSOlHq8IR8nsouRNCSi1aFY6Q31NuO9QRQggh8oqSOyGEECJnKLkTQgghcoaSOyGEECJnqEMdIXKq5cGWhb9w9/fihU0M++F7aFW40rcq3IULF3Dnzh2sWbOGf694ytkFCxbQqnByipI7IYQJWhWudK4K5+Ligk2bNuHr16+oWLEi/zvEFxK0Kpx8ouROCGEiKCgIHTp0QP369QHkrbTo4eEBZWVl5ObmwsHBAXFxcUhISEDPnj0xb948eHp6IiMjA23atEHdunX5GdUqV64MV1dXcBwHR0dHhIeHQ0dHB+/eveOHxtnb2/Orwi1fvhxNmjSBqakp9PX1YWBggCtXruD48eOoXLky/v77b6SlpWHatGl8eW/evAk7Oztoa2sjOzsb+vr6uHPnDo4dO4aNGzfCzs4Or169QkZGBiZMmICGDRsiJCQET58+RcOGDTFu3Dj+u1JTU2FmZgYAeP78OSZOnAihUIi5c+eiR48e6NmzJ86dOwdVVVW+liA+Ph6fP3+Go6MjjIyMEBMTg7/++gv79++Hv78/lJSU0K5dOyxevBhbt27F06dPkZOTg/fv38POzo5fshoA3r17h48fP/KJHci7gx45ciQqVqyInj174sKFCxg2bBiysrIQHByMxYsX4/Hjxz/1t/Xz88PJkychEokwb948/PXXX7hx4wYeP34MV1dXiEQi1KhRA+vWrQMAbN++HR8/fkRSUhJ27twJXV3d39+xyG+h5E4IYSIhIaHASVxc1fv27Vu0bt1aYlW4hQsXwtraGjExMejVqxcsLCzg6urKrwq3d+9eVKlSBSkpKThx4gS/KhyQN9XqhAkT+FXh7O3t4efnhw8fPsDPzw9VqlSBhoYG/P39MW7cOJw5c0bibjM7OxteXl4Sq8LlJxQKce/ePYlV4Vq0aAETExOYmZmhdu3aEt+1dOlS/rOqqqo4cOAAvypcUXflM2fOxOHDh+Ho6Ag/Pz8AeRcG586dw7Fjx/hV4a5cuQIgb8rcXbt28avC5U/uCQkJBabEVVRU5JeotrCwwLp16zBs2DBcunQJ3bt356eX/Xb62cJWhQMALS2tAnMOODg4YMOGDfyqcNHR0XwM8apw58+fl7ioIsWDkjshhAlaFQ58eUrbqnDNmzfHly9fEB8fDz8/P9ja2vLvo1Xh5BP1lieEMEGrwuUpravCjRw5Et7e3sjIyECjRo2KjAXQqnDygO7cCSFM0KpweUrrqnCDBw9Gjx49sGzZMonP0apw8olWhWOMVoUrfbFLc1xaFe77aFU42ceVZWxaFa7k0J07IaTUolXhCPk9lNwJIaUWrQpHyO+hDnWEEEKInKHkTgghhMgZSu6EEEKInKHkTgghhMgZSu6EEEKInKHe8oSQci3/0rg/s6wtIWUB3bkTQgghcqbc3rmLRCI4Ojri+fPnUFFRgbOzM+rVq8e/fuDAAfj7580e1r17d8yZMwccx6Fbt278kpatW7fGokWLSqL4hBBCSJHKbXK/dOkSsrKy4OPjg0ePHsHd3Z2fLOPNmzc4c+YMjh8/DgUFBYwZMwa9e/eGmpoamjdvTjNeEUIIKdXKbbV8aGgovx5y69atER4ezr9Ws2ZN7N27F4qKihAIBMjJyYGqqiqePn2K+Ph4WFlZYdq0aYiJiSmp4hNCCCFFKrd37kKhEBoaGvxjRUVF5OTkQElJCcrKytDW1gbHcVizZg2aNWuGBg0a4OPHj7C2tsaAAQNw//59LF68GCdPniwQOyIi4qfLkZGR8Uvvl9e4soxdluKK45WlMpfFuEXFZvFd8rItSnNc8mPlNrlraGggLS2NfywSiSSWfczMzIS9vT3U1dWxcuVKAECLFi2gqKgIAGjXrh2/PvO36yz/yupKpWE1ptIQV5axS3dcydofcbzSXeayH1ci9t3/Pcfiu8r0tijBuKGhocy/vzwrt9Xybdu2RXBwMADg0aNHMDQ05F/jOA6zZs1C48aN4eTkxCf0bdu24eDBgwCAZ8+eoVatWgUSOyGEEFLSyu2de58+fXDjxg1YWlqC4zi4urrCy8sLenp6EIlEuHv3LrKyshASEgIgb4Upa2trLF68GNeuXYOioiLc3NxK+FcQQgghBZXb5K6goAAnJyeJ5wwMDPh/h4UVPpmFp6enTMtFCCGESKvcVssTQggh8qrc3rkTQsopx0oAAL6bVwO9EisKIbJCd+6EEEKInKHkTgghhMgZSu6EEEKInKHkTgghhMgZSu6EEEKInKHkTgghhMgZSu6EEEKInKHkTgghhMgZSu6EEEKInKHkTgghhMgZSu6EEEKInKHkTgghhMgZSu6EEEKInKHkTgghhMgZSu6EEEKInKHkTgghhMgZSu6EEEKInKHkTgghhMgZSu6EEEKInKHkTgghhMgZSu6EEEKInKHkTgghhMgZpZIuQEkRiURwdHTE8+fPoaKiAmdnZ9SrV49//cCBA/D39wcAdO/eHXPmzEFGRgYWL16MT58+QV1dHR4eHtDW1i6pn0AIIYQUqtzeuV+6dAlZWVnw8fHBokWL4O7uzr/25s0bnDlzBseOHYOvry+uX7+OZ8+e4ejRozA0NMTff/+NYcOGYceOHSX4CwghhJDCldvkHhoaChMTEwBA69atER4ezr9Ws2ZN7N27F4qKihAIBMjJyYGqqqrEZ7p164Zbt26VSNkJIYSQ7ym31fJCoRAaGhr8Y0VFReTk5EBJSQnKysrQ1tYGx3FYs2YNmjVrhgYNGkAoFEJTUxMAoK6uji9fvhQaOyIi4qfLkZGR8Uvvl9e4soxdluKK45WlMpe1uE2/8xqL7ypL20LWsWVZZvJ95Ta5a2hoIC0tjX8sEomgpPS/zZGZmQl7e3uoq6tj5cqVBT6TlpYGLS2tQmM3bfq904ekiIiIX3q/vMaVZezSHTdG4pE4Xukuc9mPWxQW31UWt0VpKHNoaCjz7y/Pym21fNu2bREcHAwAePToEQwNDfnXOI7DrFmz0LhxYzg5OUFRUZH/zLVr1wAAwcHBMDY2Lv6CE0IIIT9Qbu/c+/Tpgxs3bsDS0hIcx8HV1RVeXl7Q09ODSCTC3bt3kZWVhZCQEACAjY0NxowZA1tbW4wZMwbKyspYv359Cf8KQgghpKBym9wVFBTg5OQk8ZyBgQH/77CwsEI/t2XLFpmWixBCCJFWua2WJ4QQQuQVJXdCCCFEzpTbanlCSCnnWOl/w9YcP5dkSQgpc+jOnRBCCJEzlNwJIYQQOUPJnRBCCJEzlNwJIYQQOUPJnRBCCJEzlNwJIYQQOUPJnRBCCJEzlNwJIYQQOUOT2BBCiAy0PNhS4nHYxMLXqyBEFujOnRBCCJEzlNwJIYQQOUPV8oQQUsrUX+ov8TjWfWAJlYSUVXTnTgghhMgZSu6EEEKInKHkTgghhMgZSu6EEEKInKEOdYQQUobQ+HnyM+jOnRBCCJEzlNwJIYQQOUPJnRBCCJEzlNwJIYQQOVNuO9SJRCI4Ojri+fPnUFFRgbOzM+rVqyfxnqSkJIwZMwZnzpyBqqoqOI5Dt27dUL9+fQBA69atsWjRohIoPSGEEFK0cpvcL126hKysLPj4+ODRo0dwd3fHzp07+ddDQkKwfv16JCYm8s+9fv0azZs3x65du0qiyIQQQshPKbfV8qGhoTAxMQGQdwceHh4u8bqCggK8vLxQuXJl/rmnT58iPj4eVlZWmDZtGmJiYoqzyIQQQshPKbd37kKhEBoaGvxjRUVF5OTkQEkpb5N06dKlwGeqVasGa2trDBgwAPfv38fixYtx8uTJAu+LiIj46XJkZGT80vvlNa4sY5eluOJ4ZanMsorbNN+/WcZu+p3XWHxPUdtCmtgREREyiStWlvYL8nPKbXLX0NBAWloa/1gkEvGJvSgtWrSAoqIiAKBdu3ZISEgAx3EQCAQS72va9HunD0kRERG/9H55jSvL2KU7rmTtjzhe6S5z8cUVk2Vs1t/Db4u70sQuuF+wiVu40rBfhIaGMv/+8qzcVsu3bdsWwcHBAIBHjx7B0NDwh5/Ztm0bDh48CAB49uwZatWqVSCxE0IIISWt3N659+nTBzdu3IClpSU4joOrqyu8vLygp6eHXr16FfoZa2trLF68GNeuXYOioiLc3NyKudSEkHLJsdL/mhMa6JVkSUgZUW6Tu4KCApycnCSeMzAwKPC+y5cv8/+uVKkSPD09ZV42QgghRBrltlqeEEIIkVeU3AkhhBA5Q8mdEEIIkTOU3AkhhBA5U2471BFCyof6S/0lHsdWKKGCEFKM6M6dEEIIkTN0504IISw4VgIAGo9OSgW6cyeEEELkDCV3QgghRM5QcieEEELkDCV3QgghRM5QcieEEELkDCV3QgghRM5QcieEEELkDCV3QgghRM5QcieEEELkDCV3QgghRM5QcieEEELkDCV3QgghRM5QcieEEELkDCV3QgghRM5QcieEEELkDCV3QgghRM4olXQBCCEEAOov9Zd4HFuhhApCiBwot3fuIpEIDg4OGD16NKysrPDq1asC70lKSkK/fv2QmZkJAMjIyMDcuXMxduxYTJs2DUlJScVdbEIIIeSHym1yv3TpErKysuDj44NFixbB3d1d4vWQkBBMnjwZiYmJ/HNHjx6FoaEh/v77bwwbNgw7duwo7mITQgghP1Ruk3toaChMTEwAAK1bt0Z4eLjE6woKCvDy8kLlypUL/Uy3bt1w69atYisvIYQQ8rPKbZu7UCiEhoYG/1hRURE5OTlQUsrbJF26dCn0M5qamgAAdXV1fPnypdDYERERP12OjIyMX3q/vMaVZeyyFFccryyVWZZxxWQZm9X3NJVhbFnHLav7BSlauU3uGhoaSEtL4x+LRCI+sf/MZ9LS0qClpVXo+5o2/dFh/j8RERG/9H55jSvL2KU7bozEI3G80l1mWcWNKfIV6WIXHZft97CMXbxlLg37RWhoKPPvL8/KbbV827ZtERwcDAB49OgRDA0Nf+oz165dAwAEBwfD2NhYpmUkhBBCfke5vXPv06cPbty4AUtLS3AcB1dXV3h5eUFPTw+9evUq9DNjxoyBra0txowZA2VlZaxfv76YS00IIYT8WLlN7goKCnBycpJ4zsDAoMD7Ll++zP9bTU0NW7ZskXnZCCGEEGmU22p5QgghRF6V2zt3Ip2WB1tKPA6bGFZCJSGEEPItunMnhBBC5Awld0IIIUTOUHInhBBC5Awld0IIIUTOUHInhBBC5Awld0IIIUTOUHInhBBC5Awld0IIIUTOUHInhBBC5AzNUEd+jmMlAPnWrG6gV2JFIYQQ8n10504IIYTIGbpzJ4SUerSWASG/hu7cCSGEEDlDyZ0QQgiRM5TcCSGEEDlDyZ0QQgiRM5TcCSGEEDlDyZ0QQgiRM5TcCSGEEDlDyZ0QQgiRMzSJDSlVaLISQgiRHt25E0IIIXKm3N65i0QiODo64vnz51BRUYGzszPq1avHv+7r64tjx45BSUkJM2fOhKmpKVJSUtCvXz8YGhoCAHr37o2JEyeW1E8ghBBCClVuk/ulS5eQlZUFHx8fPHr0CO7u7ti5cycAIDExEd7e3jh58iQyMzMxduxYdOnSBf/99x8GDRqEFStWlHDpye/IX+VP1f2EEHlWbqvlQ0NDYWJiAgBo3bo1wsPD+deePHmCNm3aQEVFBZqamtDT08OzZ88QHh6Op0+fYvz48Zg3bx4SEhJKqviEEEJIkcrtnbtQKISGhgb/WFFRETk5OVBSUoJQKISmpib/mrq6OoRCIfT19dGiRQt07twZZ86cgbOzM7Zs2VIgdkRExE+XIyMj45feX1Jxm/7gdRbflZGRIbO438aRVVxpieOVlf1C1nGLIqvvkiZucRwjsoorL/sF+Z9ym9w1NDSQlpbGPxaJRFBSUir0tbS0NGhqasLIyAhqamoAgD59+hSa2AGgadMfHeb/ExER8UvvL+m4RWHxXYWdBFjFbdq0KXBXRnGlEiPxSByvrO0XstgW3/Nr3yWruL+mNJe5NOwXoaGhzL+/PCu31fJt27ZFcHAwAODRo0d8JzkAMDIyQmhoKDIzM/HlyxdER0fD0NAQy5cvR2BgIADg1q1baN68eYmUvbjUX+rP/0cIIaTsKLd37n369MGNGzdgaWkJjuPg6uoKLy8v6OnpoVevXrCyssLYsWPBcRwWLlwIVVVVLFq0CPb29jh69CjU1NTg7Oxc0j9DPjhWAvD/1ZoN9Eq0KIQQIg/KbXJXUFCAk5OTxHMGBgb8vy0sLGBhYSHxuq6uLry9vYulfIQQQsjvKrfJnZScb6v5YyvI6Ivy1wgAVCtAmMu/L8tsPybkN5TbNndCCCFEXlFyJ4QQQuQMVcuXArRYCiGEEJbozp0QQgiRM3TnXlJo+BchhBAZoTt3QgghRM7QnTshpUm+Gp2W39ToUF8MQsjPojt3QgghRM7QnXsxKbaJWwghpAgFzkPuA0uoJETW6M6dEEIIkTN0506IlGieAkJIaUPJnRDy+76dv9/xc4kVhRDyP1QtTwghhMgZSu6EEEKInKFqeUJ+FS0lSwgp5Si5E7lBww1LHnUuJKR0oGp5QgghRM7QnTshPyF/rUB5rxGgbUFI6Ud37oQQQoicoTt3QgghUqFpbUsfSu6EyKEfnWzzd3yjTm+EyB+qlieEEELkDN25E1Ie0Nh8QsqVcpvcRSIRHB0d8fz5c6ioqMDZ2Rn16tXjX/f19cWxY8egpKSEmTNnwtTUFElJSfjrr7+QkZGB6tWrw83NDWpqaiX4KwghhJCCym1yv3TpErKysuDj44NHjx7B3d0dO3fuBAAkJibC29sbJ0+eRGZmJsaOHYsuXbpgx44dGDRoEEaMGAFPT0/4+Phg0qRJJftDCCHkd31To9MyX40O9cUo28ptm3toaChMTEwAAK1bt0Z4eDj/2pMnT9CmTRuoqKhAU1MTenp6ePbsmcRnunXrhps3b5ZI2QkhhJDvKbd37kKhEBoaGvxjRUVF5OTkQElJCUKhEJqamvxr6urqEAqFEs+rq6vjy5cvxV7ub9EQFEJIqUNLAZc4AcdxXEkXoiS4ubmhVatWMDMzA5B3Jx4cHAwACAoKQkhICBwdHQEAs2fPxowZM+Dg4IC9e/eiatWqePbsGTZu3Ijdu3dLxA0NDS3W30EIIfLC2Ni4pIsgN8rtnXvbtm1x5coVmJmZ4dGjRzA0NORfMzIywqZNm5CZmYmsrCxER0fD0NAQbdu2xbVr1zBixAgEBwcXuiPSzkkIIaSklds7d3Fv+cjISHAcB1dXVwQHB0NPTw+9evWCr68vfHx8wHEcpk+fjn79+uHjx4+wtbVFWloaqlSpgvXr16NixYol/VMIIYQQCeU2uRNCCCHyqtxWy5ckoVAIgUCAixcvwtTUFJUqVZI6Znx8PL58+QJFRUXs2bMHVlZWaNq06Y8/+ItEIhEUFMrtIAsJHz58QK1atZjFE4lE4DgODx8+hJGREVRUVKSO+fXrV6SmpkJJSQk+Pj4YNmwY6tSpw6C0siWLbfHs2TOkp6dDQUEBGzZswIwZM9CpUycGpZXE8hiRVZlluS3s7OwkHisrK6NmzZoYN24ck3Md+Tl0li5mCxcuRFBQENauXYsHDx7A3t6eSdxFixbh48eP2LhxI7p06QJXV1cmcQHgzJkz8Pf3x6lTp9ClSxfs27ePSdyIiAg4OjrCzs6O/4+V+Ph4vHjxAi9fvoS9vT0iIiKYxN27dy98fX2xd+9eTJkyBW5ubkziuri4wNfXF5s3b8bOnTuxYsUKJnHnzZuH8PBwrFmzBsrKynBwcGASFwBGjBiBAwcOICUlhVlMQHbbwtHRESoqKti5cycWLlyIbdu2MYkLyO4YkVWZZbktMjMzUb16dZiZmaFOnTqIj49HVlYWbG1tmX0H+TFK7sUsISEBQ4cORXR0NJycnJCWlsYkrkAgQPv27ZGamoqBAwcyvbs+dOgQOnfujDNnzuDatWu4cuUKk7hLly5F8+bNYWZmxv/Hiqwudi5cuIBhw4YhODgYAQEBzC4awsLCYGlpiYcPH2Lfvn2Ii4tjEjcjIwO9evVCXFwcrK2tkZubyyQuABw4cADKysqYMWMGFi5cyGzeB1ltCxUVFTRq1AjZ2dlo3bp1mThGZFVmWW6LpKQkLFy4ECYmJpgzZw6ys7OxYMGCUjF0uDyh5F7MsrOzceHCBTRs2BBJSUnMkntOTg7Wrl2Ldu3a4fbt28jOzmYSFwAqVKgAIG9sv4qKCnJycpjE1dHRgbm5OUxMTPj/WJHVxY6CggI+fvwIHR0dAHnJkwWRSITw8HDUrVsXWVlZzPaL7OxsHDx4EM2bN8eLFy+Qnp7OJC4AaGlpYdy4cXBxcYGCggIWLVoEc3NzXLx4Uaq4stoWAoEAS5YsQbdu3RAQEABlZWUmcQHZHSOyKrMst4VQKER0dDQAIDo6GmlpaUhOTsbXr1+ZfQf5MepQV8wuXLgAf39/2NnZwcfHB0ZGRjA1NZU6bmxsLG7cuAFzc3NcunQJLVu2hK6uLoMS57WhhYaGws7ODk+fPkViYiJWrVoldVwHBwfUrVsXTZs2hUAgAAB07dpV6rgAMGbMGLRq1QoaGhpo164dtmzZgr///lvquBs3bsTZs2exdu1anD9/HpUqVcLs2bOljnvkyBGcPn0arq6u8PX1haGhIczNzaWOGxoaiqCgIMyYMQNnzpyBkZERjIyMpI4L5JX5n3/+gYaGBszNzdG7d2/k5OTAwsIC//77r1RxZbEtkpKSEBYWhu7du+P27dto2rQpszZgWR0jsirzt3GbNGmCypUrSx0XyJvh09HREQkJCahVqxYcHBzw5MkT6OjooF+/fky+g/wYJfcSIBQKkZmZyT+uWrWq1DFzc3Ph5+eH9+/fo2PHjmjUqBG0tbWljiuWlpYGdXV1ibtWaRXWxs6qDVuWFzti2dnZTO94ZCE3NxdRUVHIysrin2OV3Ddu3IhRo0YV2K4PHz5EmzZtpIr95csXvHv3Dnp6esyGm7558wZXrlyROPamTZvGJDYgm2NEVmUWCoXYs2cPEhISYGpqisaNG0ssnEXKPuotX8xsbW0RGhoKTU1NcBwHgUCAU6dOSR3XwcEB1atXx82bN9GyZUvY2tpiz549DEoMXL58GX5+fhInGBax3dzcEBkZiRcvXqBBgwZMe/fr6uryHYY6duwIdXV1JnGPHTsGHx8fiW0REBAgddyNGzfi5MmTEs9dv35d6rjW1tbIysqClpYWgLzqWGk7T+Xm5iI3NxfR0dGoWbMmsrKywHEcpk2bhkOHDkmd2AMDA7Fz507k5uaif//+EAgEmDVrllQxAWDWrFno27cvvy1YktUxIqsy29vbo1u3brh37x50dHSwbNkyHD58mEns06dPw9PTU2JbBAUFMYlNfh4l92IWExODS5cuMY/7+vVruLi4IDQ0FD179oSnpyez2B4eHnBycmI+jMXb2xtnz56FkZER9u/fjwEDBmDKlClMYsvqYufQoUPw9PRkvi2uXr2Ky5cvMxnylV9mZiazk7bYyZMnsWvXLnz8+BH9+/cHx3FQUFBAu3btmMT38vKCr68vpkyZglmzZmHkyJFMknutWrUwd+5cBiUsSFbHiKzKnJKSglGjRuHMmTNo27YtRCIRs9h79uzBzp07mQ4TJb+OknsxMzIyQkxMDPT19ZnGzc3NRVJSEoC8KjeWvV8bNWqEDh06MIsndvbsWRw5cgRKSkrIzs6GpaUls+Quq4udxo0bo1atWlBUVGQST6xZs2bIzMxkntzbtWuHkJAQGBgY8M/Vrl1bqpgWFhawsLDAiRMnMGrUKGmLWICioiJUVFQgEAggEAigpqbGJK6pqSnWrVuHhg0b8s8NGzaMSWxZHSOyLLO401tcXBzT/VlXV5eq+EsBSu7FTENDA6NGjZJoR2RR/bpgwQKMGTMGiYmJGD16NLPx8wDQq1cvjB49WuKChEXbOMdxUFLK2wWVlZWZtl/L6mKnY8eO6N27N3R1dflmlUOHDkkdt1GjRujatSt0dHT4uCyqMj99+gRXV1eJavljx45JFfP48eMwNzfHq1evsGHDBonXbGxspIoN5K3PYGNjg/j4eDg4OKBly5ZSxwTymk/09fX5pCbuxMmCrI4RWZV5+fLlsLe3R3R0NObNm4eVK1cyiQvkjRyYOnWqREdZFvsF+TWU3IvZnTt3cPfuXT6psfLHH3/Ay8sLFSpUwNu3b5l1mgLyqs+nTp0qsQwuC8bGxpg3bx6MjY0RGhoqdVttfrK62PHx8cGmTZuYb4uAgAAEBQUxb1uNiYnBuXPnmMasWbMmADCvfRKzsbFBcHAwmjVrBgMDAyajSYC8sd0serAXRlbHiKzKHBISAh8fH+ZxAaB79+4yiUt+DSX3Yla/fn18+vQJNWrUYBrXwcEB9erVw5QpU7Bjxw6cOXMGy5cvZxJbR0eH6QQzYra2trh69Sqio6MxcuRIpieFP/74A4GBgUhKSoKWlhazi6kaNWqgZcuWzKfgrV27NtTU1JhXyzdu3BiPHj1Cs2bN+Oek/Q6BQIDr16+jWrVq0havUJcvX0Z4eDjmzZuHKVOmQFlZmckQydq1a2P37t1o1qwZ86GXsjpGZFXma9euYdKkSUyr48PCwtCyZUuZ7Rfk11ByL2YPHjxAz549UblyZf5gZVEt/99//8HJyQlAXpXbuHHjpI4pVqFCBUyZMkXiBCNNNduVK1dgamrK3zloaGggLi4OPj4+GD16NJMynzlzBoqKisjKysLatWsxZcoUJu35WVlZGDp0KBo1asRvi/Xr10sdNy4uDn369OGHlbGoPgeAe/fu4erVq/xjFtX9/v7+Rb7GIvFs3bqVb+rYtGkTpk2bxiRuTk4OYmNjERsbyz/HKrmzPkbEZFXm5ORkmJiYoG7dunzfBmn3t1u3bqFly5aF7h+stjP5eZTci9mFCxdkFjs5ORlVqlRBamoq02lGWVWLionnIk9MTGQaN79Dhw5hz549sLGxwdWrVzF58mQmyX369OkMSlfQxo0bZRJXPJlMcnKyxAWlNFavXg0lJSWJsfMsKSkp8dXbmpqazGpJ3Nzc8PLlS7x+/RqNGzdG9erVmcQF2B8jYrIq865du5jEyc/a2hoA0LZtW4lJh1j0SSG/jpJ7MYuKisLKlSuRmpqKIUOGoFGjRkxODLNnz8bIkSNRqVIlfPnyhekCIYMHD8apU6ckJsiRxvDhwwHkTeWaf4gTiztgMVlNB9qsWbMCk3+woKSkhLVr1yIpKQn9+/dH48aNmazedu/ePaxatYofM167dm2pZ3uztbXF+vXr+THoAJh2AjQyMsKiRYvQunVrPHnyRKJJQRqHDx/GxYsX8fnzZwwfPhyvXr1idpywPkbEZFXmwubWmDNnjlQxz549i8uXL+POnTu4ffs2gLyphCMjIzFhwgSpYpPfwJFiNWHCBC42NpYbP3489+nTJ2748OHMYufk5HCJiYmcSCRiFpPjOM7e3p7btGkTZ2FhwQUFBXFTp06VKp6vry9nYWHBGRsbc6NHj+ZGjx7NjRo1ihs2bBijEnPc0qVLuT59+nCXL1/mtm7dyjk4ODCJO3fuXO748ePcmDFjuNDQUG7cuHFM4k6bNo27efMmN378eC46OpozNzdnEnfs2LFccnIyN378eC4jI4Pp/sZxHCcSibhPnz4xjclxHHfx4kVu9+7dXFBQELOYlpaWXG5uLjd+/HiO4zhuxIgRzGKzPkbEZFXmo0ePckePHuX+/vtvbvny5Zy9vb3UMVNSUrjbt29zf/75J3fnzh3uzp073L1797i4uDgGJSa/iu7cS0C9evUgEAigra0t9cxpTk5OcHBwwOjRowtUubJoswX+N2b8/v37TMaMDx06FJ06dcLu3bsxc+ZMfhIUFtPwirm5ufHTgbZo0YJZJx9ZTf6RkZGBTp06YefOndDX14eqqiqTuAoKCnx1vKqqKrOZ+oC8TlmrV6+GpqYmvn79CicnJ6nGen/bF6NSpUpITExk1heD+//aBfFxwrLzIutjRExWZba0tJR4PHXqVKljVqpUCR06dCgwHTHLJkLy8yi5F7NKlSrh2LFjSE9Ph7+/v9RDn8TV2h4eHjKb51w8ZlwgEDAZM66iooK6deti5MiRuHTpEiZMmIBFixbxHZJYePToEfz8/PjV8RISEpitsS2LyT9UVVUREhICkUiER48eMTuJ6+npYf369UhJSYGnp6fUE9jkt23bNvj6+kJbWxuJiYmYPXs2fH19fzuerPtiDBw4EOPGjcP79+8xbdo09O7dm1ls1seImKzK/PLlS/7fiYmJeP/+PZO4ALBw4UIIBAKIRCK8ffsW9erVw9GjR5nFJz+HFo4pZkKhELt27UJkZCQMDAwwY8YMJlNWDhgwAKampjA3N0eDBg0YlPR/7t27h+XLlyMxMRG1atXCsmXL0LlzZ6njjhw5Ehs3boSenh7evHmDpUuX4siRIwxKnDeL19SpUxEYGAhDQ0PExsYyadOPjIzEihUrEB0dDX19fTg6OjK5IImLi4OHhwe/XyxZsgR169aVOm5OTg6OHz+OyMhI6Ovrw9LSktlF4KRJk3DgwAH+8cSJE3Hw4EGp47q4uGD06NESs7KxkJOTg1evXiEyMhINGjRA7dq1mc0rIKtjRFZltrKy4v+tqqqKCRMmoFu3blLH/VZqaipWrFiBzZs3M49NfqBEGwXKoe3bt0s8XrduHZO4mZmZ3Llz5zhra2tu4sSJ3D///MMkLsdx3JMnTziO47hPnz5xIpGIu3PnDpO4o0ePlngsbldkYdKkSRzH5bW9cxzHrG388uXLEo/9/f2ZxPX19ZV4fPDgQSZxV61aJfF48eLFUsdcv349t379em78+PGctbU1t3v3bm727NnM2pnPnz/PWVtbc+PGjeNOnjzJpaenSxUvISGBi4mJ4czNzbmXL19yMTEx3IsXL7iRI0cyKS/HsT9GZF3mb/sysNqPvyUSiZj38yA/h6rli8nx48dx4sQJREdHIzg4GEBeVV5OTg4WLVokdXwVFRX0798fOjo6OHToEHbu3IkhQ4ZIFfP+/ft48eIFDhw4gD///BNAXu/XI0eO4OzZs1KXuXbt2tiwYQPfK5rl0CQFBQVERUUhPT0dMTEx+Pz5s1Txrly5ggcPHsDf3x8PHz4EkLctgoKCpJq8RFY9jI8cOYKdO3ciJSWFH37JcRyTu2FxzZD4/wKBAL169ZI6rli/fv3Qr18/JCQkwM3NDa6urrh///5vx3v8+DEOHjyIly9fwsHBge/jwWLstayOEVmVOf9+/OjRI7680u7H+Yn7/3Ach6SkJCY1GOTXUbV8McnKykJCQgJ2796NGTNmAADfiYxF++q2bdtw/vx5NGvWDObm5mjfvr3UMSMjI3HhwgX4+flhxIgRAPJO5C1atGAym1xmZiaOHj2K2NhYGBgYYPTo0czamqOiohAVFYUaNWrAxcUFQ4YMwaRJk3473ocPH3D79m14enry43kFAgEaN24s1VK1nz9/xrNnzwrsF7q6ukxmMdy1axcfl7WcnBz4+PjgxYsXqF+/PsaMGcPk7/f+/XucOnUKFy5cQLNmzWBhYcFkauJr164xnxpV1scI6zLLaj/O7927d/y/VVVVma1tT34NJfdi9vXrV6SmpkJJSQk+Pj4YNmwYk/HM3t7eGDZsGPO5rQEgPj6eTzQfPnxgtpRjbm4u/Pz8JMYGa2trM4kNAM+fP0dsbCwaNmwosSqaNMS948Ud34yMjJgkNI7jkJaWBoFAgIsXL8LU1JRJX4z4+Hh8+fIFioqK2LNnDyZMmIAmTZpIHRfIWxNcS0sL7dq1w927d5GSkoI1a9ZIHXfkyJEwNzfHoEGDoKGhwaCkeW7evImcnBxwHIfVq1dj/vz5GDx4MJPYsjpGZFVmkUgk0ekvISGBWc3Zy5cvsWbNGsTGxqJRo0awtbVlco4jv4aSezGbOnUqLC0tceHCBTRs2BB37txh0os7Li4O69atk5gEpVWrVgxKDOzduxdaWlpITU2Fn58fTExMYGdnJ3XcZcuW8WuuT58+HUePHmWy5joA7NixAyEhIWjZsiWePHmC/v37S3XnLubi4gIDAwO8f/8eT58+hY6ODjw8PKSOu3DhQvTo0QMPHz6ESCTCp0+fsH37dqnjjh8/HnPmzMHff/+Nfv364dixY/D29pY6LgCMGzdOogOkpaUls+GXN2/exJs3b9CqVSs0aNCAydBAc3NzrF+/HqtWrYK7uzsWLFjArAOnrI4RWZV58+bNOHr0KLKzs5GRkYH69et/d1rhX2FhYYHZs2ejbdu2CA0Nxb59+5jtc+TnsV39gvxQRkYGevXqhbi4OFhbWzMbA+rg4ICRI0ciOzsb7dq1g4uLC5O4QN6UucOGDUNwcDACAgIQERHBJO7r168xf/58qKiooGfPnvjy5QuTuEBedeaRI0dgb2+Pw4cPIyAggEncsLAwWFpa4uHDh9i3bx/i4uKYxE1ISMDQoUMRHR0NJycnpKWlMYkrEAjQvn17pKamYuDAgUwXvMnMzER6ejoAID09ndm+vGHDBpw+fRq+vr6IiIhgkiSBvFkLq1atCiUlJVSrVo3pkq+yOkZkVebLly8jODgYgwcPRkBAANOFrNTU1NC9e3doamqiR48ezBdZIj+Htnoxy87OxsGDB9G8eXO8ePGCPzlKSzwJikAgYDoJCpDXBvzx40e+7SwjI4NJXFmNDQaAqlWr8ts2OzubWXW/SCRCeHg46tati6ysLGZJODs7m6/NSUpKYhY3JycHa9euRbt27XD79m1+3D8LEydOxLBhwzB79mwMGzaMSc0IAISGhmLNmjWoWLEihg8fjrdv3zKJq66ujqlTp2LAgAE4cuQI0yYgWR0jsipztWrVoKKigrS0NNSrV4/pflGrVi3s2LEDDx48gLe3N1RUVHD9+nUmC2SRn0e95YuZra0tLl26hJkzZ+LMmTNYtmwZk7iymgQFADp06AArKyusXbsWrq6uzDr4LFy4UGLNdRbbQtxT99OnT+jXrx8aN26M6OhoVK5cWfoCI2/8/KpVq+Dq6oq1a9cyW8Vu2rRpOHv2LOzs7ODt7S0x57403NzccOPGDZibm+PSpUtMmhDy30k3aNAAOTk5aNCgAa5fv46BAwdKHT83NxeZmZkQCATIzc1ldtG3ZcsWvH79Gg0bNkRkZKTUc+znJ6tjRFZlrlmzJk6cOAE1NTWsX78eqampTOICebVFb968wZs3bwDkLYcrrvKn1eGKD7W5FzMnJyeYm5sz65kq9u0kKIsXLy4wDeTvEq/TDOT1+md14SCOm5SUhCpVquDevXv4448/pIqZv6fut1h06jl//jx69+7NbH14sX379mH48OFM7yaBvFXszM3NYWpqymw2vcGDByMjIwNDhgxBmzZtkP8UYmJiInX8c+fOYdu2bUhKSkKtWrXw559/MulENnjwYHTs2BHm5uYwNDSUOl5+sjpGZFVmkUiEDx8+oFKlSjh16hQ6derEdNIgoVCIzMxM/jHLqaXJz6HkXsyCg4Nx8uRJxMfHY8iQIRgyZAiTHsFv3rxBcnIyatSowbT9DMi7w3737h1fXmlnyJL1+HkAePXqFc6fPy8x/ax4vXtprFu3DiEhIejcuTNGjRrFrBf+0aNHcebMGVSrVg0jR45Et27dmLSvRkdH4+TJk7hx4wa6du0Kc3Nz1K9fX+q4kZGROHPmDJ48eYL27dtjyJAhqFevntRxxT5//oxXr16hbt26TJtUQkJCcPLkSSQnJ2PIkCEwMzNjMt8+62NETFZlFgqFCA4Olli2d9iwYVKWNo+trS1CQ0OhqanJz41f2Cp0RLYouZeQpKQkuLi44PLly+jXrx9mzZoFPT29X47z9u1bLFiwAMrKyqhatSrev38PNTU1bNy4kemkMJ8/f8bZs2dx6dIlaGtrw8LC4rcXCZH12GAAGDVqFPr06YM7d+6gevXq+Pr1K7Zs2cIktkgk4i/SEhMTYWFhgcGDBzOZ1jUqKgq7du1CaGgoRo4ciQkTJjAZEife3wIDA9G+fXvMmzePydhxIG/qVW9vb8TFxUk1tzwAvvNjSkoKatasiYEDB2LkyJFMygnkDTkMDg7GiRMn8OrVK1SsWBGDBg3C+PHjpY7N8hiRdZknTJiA6tWr80P2BAIBbGxspC4rkNfD//jx40xikd9Hbe7FLDo6Gn5+frhy5Qr++OMPHDlyBDk5OViwYAH8/Px+OZ67uzuWLl2Kdu3a8c/duHEDTk5O2LZtG7Nyf/z4Ee/fv0dycjIMDAwQGBiI48ePY926db8cy9DQEIaGhjA3N4eqqipev37N9A4NACpWrIjp06cjNjYWbm5uGDt2LJO4HMfh+vXrOH36NH+nlpycjBkzZkg1pDE1NRX+/v74559/oKmpiWXLliE3NxfTp0+XanjZtWvXcOrUKURHR2Po0KGwt7dHTk4Opk2bhjNnzvx2XCDv7u/ixYs4e/Ys0tPTpZ4RcevWrUhMTISrqyt0dHTw7t077N+/H/Hx8Uz6IKxZswZBQUH4448/MG3aNBgZGUEkEmHEiBFMkjvLY0TWZeY4TqpyfY+RkRFiYmKgr68vk/jk51ByL2bLly+HhYUF5syZAzU1Nf753707SUpKkkjsANClSxdm48WBvCvxChUqwNzcnB+6BgBTpkyRKm5oaCg2b94MAwMDREVFYc6cORg6dCiLIkMgECAxMRFpaWn4+vUrvn79yiRu37590a5dO1hZWcHY2Jh//sWLF1LFHTVqFIYMGYINGzZIrNwm7ZCqM2fOYMyYMQXuIOfOnfvbMQMCAhAQEID379+jb9++WLVqFZNFbq5fv84v9woAjRs3hpubGyZMmMAkudevXx9+fn4SVdoKCgpMLoJldYzIqsyNGzfG48ePJfr+sOonoKGhgVGjRqFixYr8c9RTvvhRtXwxSkpK4u9Or169ChUVFannXZ4wYQIOHTr008//jtjYWCbttN8aPXo09u/fD3V1dQiFQkycOBEnT55kEvvevXv89LMrVqzA0KFDYWtrK3VcoVAIDQ0NpKamQkFBgdkMauK2yaioKCgrKzPZ3s+ePUOTJk2QlZWF48ePQ0VFBSNHjpS693mTJk2gr6/Pz3SXv2+ANCvvWVlZFTrZibSrzWVmZuLYsWOYMGECEhIS4OLiAhUVFdja2qJatWq/HTc/1seIrMs8ZMgQCIVC/rFAIEBQUJDUcYG8yYwOHz7MvNMp+TW09YvJv//+iy1btiAgIAC7d+9GSEgIdHR08OjRI6nuSlJSUgpcFXMcJ/VCKUBeJz13d3ds3rwZ9+7dw4IFC1CxYkWsWbOGSXutQCDg70g0NDSYjs0XCoV8VXyvXr2knsTm6dOnWLZsGY4fP44LFy5g5cqV0NLSwpIlS6RaNOXGjRtYtmwZLl68iJMnT2Lv3r3Q1taGubm5VMOevLy8EBAQgKNHj2LNmjV4//49ateuDVdXVyxfvvy34wJgdtH4raI6EEp7/+Hs7IyKFStCJBLB0dERLVu2RKNGjeDo6Cj1LICyOkZkWWYAUjfJfE/9+vXx6dMn5h17ya+h5F5Mjhw5gn/++QfKyso4duwY/Pz8oKOjA0tLS6mSe/PmzQudNpLFGuOrV6/G6NGjoaSkBHd3d6xZswYNGzbEX3/9xWQ6SV1dXbi7u6Ndu3a4f//+b3Uo/JasVm9bs2YN3N3doaysjE2bNmHv3r2oV68epk6dKlVy3759O44fPw5lZWV4enrCy8sLtWrVgpWVlVTJ/fz58zh27BgEAgHOnj2LCxcuQEtLC5aWlr8dU0za4YpFefDgQaHjoKW9UI2KisKxY8eQmZmJ0NBQbNmyBcrKyti/f79UcQHZHSOyLDOQ17yUf0ZBJSUl1KpVC4sXL0bz5s2liv3gwQP07NkTlStX5i/YqFq++FFyLyaqqqqoWLEiXrx4AW1tbb4nu7RVpG5ubiyKV6ivX7+iV69eSE5ORlxcHLp06QLgf4unSMvFxQXHjx/HzZs3YWBgwGTp2yZNmiAlJQWqqqoSS5JKO7mKSCRCkyZNEB8fj/T0dP4EKO3fTzyt6Js3b6CsrMwPJ5M2rrq6OhQVFfH06VPo6uryQ7NKcytceHi4TOKKa4cePHiAli1b8qMa8o/D/l2yOkZkWWYA6NixI/r374927drh4cOHOH78OEaOHAlnZ2ccPXpUqtjiJYZJyaLkXkzEU6wGBgaiW7duAIBPnz4hJyenhEtWNHE1+a1bt9CxY0cAecmB1RzwM2bMYHYnIlarVi0MHz4cQ4cOLbDqlTTE7YchISHo1KkTgLwpY6WdJlYgECAnJwdXr17l71rT0tKknr5UIBDg5cuXOHXqFHr27Akgr12Y1UQ2ZYm6ujp8fHwQGBiIQYMGQSQS4cyZM0xWbpPVMSLLMgN5K7eJ+/t06NABO3bsQKdOnZh0Lnz+/Dns7e0RHx8PHR0duLq6MqlJJL+GknsxEc+ypaWlhf379+PJkydYsGABVqxYUdJFK1KjRo2waNEihIeHY/Xq1UhISMCWLVv4k5i0tLS0EBQUhPr16/OJWHy3La2tW7cyXfWqU6dOsLS0RFxcHHbu3InXr1/DyclJqqp+ABg+fDjMzMyQk5ODgwcPIjIyEosXL4aVlZVUcefPn48lS5ZAR0cHCxcuxN27d7F48WJs3rxZqrhlkaOjI/bt2wcTExMMHz4ct2/fRmBgIJNJjWR1jMiyzEBez/ijR4+iTZs2ePjwIVRUVBAeHs5k8R9nZ2e4uLigSZMmiIiIwKpVq5itFkh+HvWWLyGpqanIysriF5r4Xe/fvy/ytfxDqn6HePIMbW1ttGzZEs+fP8etW7dgZWXF5A7w2wQmEAiYddYaOnQojh8/DldXV/z5559YtWqV1LUE0dHR0NDQQI0aNfD69Ws8f/4cffr0kbqsQqEQKioqUFFRQUJCAj5+/Mj8TicrKwsCgYDJRDvkf2R9jMhKcnIydu3ahejoaBgaGmLatGl48uQJ6tatK/Wsi9+Oehg/fjwOHz4sbZHJL6I79xLCanrKhQsXAsjrNZ+WloZGjRrhxYsX0NHRkXrKR4FAIDFjXOPGjdG4cWOpYooJhUJ4enpKjPVnSUdHh/mqV/lPenp6ekw6AAKQGE5XvXp1pjMLirFcSEjWbty4AS8vL4mpUWXVQ19asjxGZCEuLg41a9ZESkqKROfKlJQUZrNDKigo4MqVK2jXrh3u3btXpvY9eUJ37nJi9uzZ8PDwgIaGBr5+/QobGxvs2rWrpItVqMOHD2P//v1QUlLCihUrmCw28q3ly5ejdevWePLkCbS0tBASEoJ//vmH+fcQ9gYNGgR7e3vUrFmTf45mO2PDzc0NdnZ2sLKygkAg4DtYsqw1e/fuHTw8PBATEwMDAwMsWbKEyaJN5NfQnbuciIuL4+8AK1asiMTExBIuUdHOnj2L8+fPQygUYsmSJcyT+7Nnz6CtrY3z58+jbdu20NTUlGpylbLsypUrMDU15R8HBARI3U9A1mrVqiX15E75ybLpSlZkVWbxcr3ianPWkzGlpKSgTp062LJlCxITE6GoqMh8pUPycyi5FxPxlXJhWFwxd+3aFePHj0eLFi3w5MkT9O7dW+qYp0+fLvI1aVaQErcva2trM6kuz+/cuXPYs2cPxowZg1atWuH9+/fw9fVFrVq1pFrS8nu9iOfMmfPbcfOvjf4taYY5FjbePzc3F5cvXy71yb1q1apwcHBAs2bN+GNm9OjRvx1Plk1XYt/uH8rKyqhZsybMzMx+q5+DrMqcfzKmq1evwsHBAVpaWrC1teVHVfyuu3fvwtbWFqdPn0alSpXw/PlzrFixAmvXri0wRTaRPUruxWTVqlUA8iYt6dWrF4yNjfHkyRNcuXKFSfyFCxciPDwcsbGxGDZsGD81qDSio6MBAI8ePYKamhratGmDsLAw5OTkMFseknWr0KFDh3D48GGJea2HDx+OmTNnSnXBI+74eOnSJdStWxdt27ZFWFgYPnz4IFV5xYlW3HNZHDcsLEyquEWN9x80aJBUcYuDeJ76jx8/Moknnq++sKYrVp4/fw5VVVW0a9cOjx8/xocPH1CtWjVcv34da9euLTVlzj8Z08aNG7Fnzx7Ur18fU6dOlTq5b9q0Cd7e3vwqhl27dsX+/fuxbNky/P3331LFJr+OknsxEbcZfvz4kT+h9+nTh8lMbwDw4cMH3Lp1C5mZmYiNjcWlS5ekuqMEwE8qM2XKFHh6evLPT548Waq4L168wKJFi8BxHP9vMWmrz5WUlCQSO5DXYU3ansvizkcXLlyAo6MjgLz5ucXr0f8ucZOEl5cXpk2bBgAwNjaWOm5R4/3Lgjlz5uDq1auIiopCgwYNmNRCAbJtukpNTeXnv7e0tMTkyZOxdu1ajBkzRqq4rMv87WRMLVq0ACD9pEkAoKioWGABoQYNGpS5/U9eUHIvAcePH4eRkREePnzIbGjS/Pnz0alTJ2aTXOSXlJSE1NRUaGlpITk5GSkpKVLF27RpE/9vFtOh5ldU0werWfVSUlLw+vVr6OnpISYmhtmEPl+/fsWtW7fQsmVLPHz4kNlMZHv27MGePXtQoUIF/rnSPhXo+vXr8erVK7Rt2xanT59GaGgok0V/ZNF0Jfblyxd+Yajk5GR8+fKFn2NBGqzLLKvJmIC8WjiRSCSRzHNzc5k3vZGfQ73li1liYiJ27dqF2NhYNGzYEDNmzECVKlWkjvvnn3/Cy8uLQQkLCgwMhIeHBypVqoQvX75gxYoVzIbNsNa5c2f+pCXGcRzu3LmDGzduSB3//v37WLVqFT59+oSaNWvC0dERRkZGUseNjo7G2rVr8fLlSzRq1Ai2trbQ1dWVOu6QIUPg4+MjsyGHsmBpaclPesJxHCwsLHD8+HEmscVNVw0bNmTSdCV25coVuLi48NXny5cvx7Nnz6Curo5x48ZJFZtlmT09PXH58mV+MiZ1dXU4OTmhffv2mD59ulSxfX19cfPmTcyYMQN169ZFXFwcduzYASMjI0yaNEmq2OTXUXIvAZ8+fZK4M2PRY9fV1RWtWrVC06ZN+btXVrO9AUBOTg6SkpJQtWrVUj05x927d4t8TVYLnpRms2bNwvbt24us0SiNRo0aBV9fXygoKEAkEsHS0hK+vr5Sx/3w4QPOnj0rcexJ23SVn0gk4o8RVttbFmWW1WRMQN5ojGPHjiEhIQF16tTByJEjS30HTnlFyb2YOTo6Ijg4GNWrV+fX8GYxNaMsZ3u7ceMGDhw4IHGCKa2Tisja6dOn4enpKbEtWKyDvWvXLuzdu5d59fm0adPw4cMHGBoa8gmntA8L3L9/PwIDA9GqVSs8efIE/fv3Z3LnZ2FhUaDpilWzkKyOEVmWmcg3Su7FbMSIEThx4oTMO5lkZWUxmxlKVpOKvHr1CufPn+fb5BISEpjNnS0rAwcOxI4dOyROtiy2s6yqzwurySgLNRiRkZGIiYmBvr4+DA0NmcSUZdOVrI4RWZaZyDfqUFfM6tWrh8zMTOYn8WPHjsHLyws5OTngOA7KysoIDAxkEpv1pCJiixYtQp8+ffDgwQNUr14dX79+Zf4drOnq6vLLsrJUt25dibt2Vpo1a4Y9e/YgISEBpqampXpq1OPHj8Pc3Bzr16/naxn+++8/AGAybK1Ro0bw9/eXSdOVrI4RWZaZyDdK7sXsw4cPMDU15RMEq2r5I0eOwNvbGzt37kT//v35YTkssJ5URKxixYqYPn06YmNj4ebmhrFjx0odU9YqVKiAqVOnSpxsWSSe7OxsDB48mL9LFQgETKrP7e3t0a1bN9y7dw86OjpYtmxZqV3EQ3zX++0dL6v264iICEREREjEZdW8JKtjhHWZ8184fUva/bgszgQozyi5FzNZtXeKFxxJS0tDhw4dmKzLLMZ6UhExgUCAxMREpKWl4evXr2Xizl1WowTEY9xZS0lJwahRo3DmzBm0bduW2ZBAWRCP+Q8LC4ODgwP//JIlS5hMmvTtnBL5F6aRlqyOEdZlluUc/cUxEyD5eZTci1lOTo5M2pk1NTVx6dIlviZA2rHo+c2ZMwcJCQl8lX9CQgKzuBcvXsTQoUPRu3dvDB06lElcWRo8eDA/Sx/LbWFoaIjr169LxGXVNi6eaTAuLq5Uj3Q4cuQIdu7ciZSUFFy4cAFA3lA4aaYNzk8WTVfiVdYGDhzIpIzfYl3m4cOHA8g7D7Hej4tjJkDy8yi5FzNZtTM7Ozvj9evXsLGxgZeXF5YvX84kLpBXtfvo0SOkp6cjIyMDurq6TIYmCYVCviq+V69eCAgIkDqmrM2ZMwfZ2dlISEhAbm4uqlevzmRK1zlz5kBfXx+RkZFQVVVl1idj+fLlsLe3R3R0NObNm4eVK1cyiSsL48aNw7hx47Br1y7MmDGDeXxZNF15eXnBzs4ODg4OMlllTVbNbbLaj4GytYiVPKN5AYuZuJ25Ro0acHd3Z1aNp6GhgWbNmqFGjRpYunQpOnTowCQukLfKmr+/P7p27Qp/f3+oqqpKFe/KlStYv349Vq9ejQ0bNmDDhg1Yt24dtm7dyqjEspOcnIx9+/bByMgIfn5+zGaS4zgOTk5OaNCgAby8vJjVvBgaGsLHxwf379+Hr68vmjdvziSuLDVq1AhbtmwBkDf1MasZ9b5tumIxu6B44Z8///wThw4dgre3N7y9vZkNV5NFmQHZ7cfA/2bVc3d3x9ixY5nOBEh+Ht25F7Oy2M5cpUoVCAQCfP36lcnyjUUtaiKrqk2WxD3a09PTUaFCBWadvRQVFZGZmYn09HQIBALk5uYyibtx40acPHlS4rnSPv3stm3b+LveTZs2Ydq0aejatavUcWXRdJV/9b1Hjx4ByJvMJigoiMnkLbJqbpPVfgz8bxGrV69eMVvEivw6Su7FbM6cObh06VKZamdu3rw59u3bh+rVq2PhwoVSz5dd1KImrNqvZalv377Yvn07mjRpAgsLiwKL1PyucePG4eDBg+jSpQu6d+8OY2NjJnGvXr2Ky5cvM5vzoDgoKSlBU1MTQF5yYzUnhCyarmR9oSqr5jZZ7ccAEB8fjwMHDiApKQn9+/dHZmYmWrVqxSw++Tk0iY2cePbsGdLT06GgoIANGzZgxowZBeZYl4ZQKESFChUQHBwMIyMjfglUaWzevBlHjx7lF9ioX78+/P39GZRWtsQzCz5//hz16tVjPj5dKBTybZbSsrOzg729PZ8sy4LVq1cjJSUFrVu3xpMnT1CpUiWmfUhk4dsFUxISElC9evUSLNH3xcXFoUaNGvx+rKSkBAMDAyaxra2t8eeff2LHjh1YtWoVli5dyqSPDvk11OYuJxwdHaGiooKdO3di4cKFTIfCAXlt+kpKSujZsyeTxA4Aly9fRnBwMAYPHoyAgADUqFGDSVxZE1dhNm7cWCYTz7BK7EBe+3XXrl3Rq1cv9OzZE7169WIWW1ZWrFiBAQMGID09HQMGDCj1iR0Atm7dio4dO8LY2BjNmzeXesleWYmMjERISAimT5+OGzdu4Pr164iLi2Paoz0jIwOdOnWCQCCAvr6+1H10yO+hank5oaKigkaNGiE7OxutW7cuE2soV6tWDSoqKkhLS0O9evVoaUgZCAgIQFBQELS0tEq6KD9NKBQiKysL1atXR2pqKk6fPs1knLssiS9UXV1d8eeff2LVqlUlXaRCpaamIiAgAJ8+feJryQQCAdMJpFRVVRESEgKRSIRHjx6VqSYheULJvQQIhUIIBAJcvHgRpqamqFSpktQxBQIBlixZgm7duiEgIIDZOvHf+rb6URo1a9bEiRMnoKamhvXr1yM1NZVJ3OLy4cMHiTnmpSUSicBxHB4+fAgjIyMmJ8XatWtDTU2tTJ1gZ82aherVq/PbllVnL1k2XcnqQpV1mdu1a4d27drh6dOnMhs5sXr1anh4eCA5ORn79+8vtRc68o7a3IvZwoUL0aNHDzx8+BAikQifPn3C9u3bpY6blJSEsLAwdO/eHbdv30bTpk2ZXDQAwJkzZ6CoqIisrCysWbMGU6dOxZQpU6SOKxKJEBcXBy0tLZw6dQqdOnViNmGJrOzduxdaWlpITU2Fn58fTExM+OFQ0nBxcYGBgQHev3+Pp0+fQkdHBx4eHlLHtbCwwNu3b/m14VlNdyxLVlZWBWZmY8HS0hIrVqzA1q1bMWPGDKxduxZHjhxhEnv58uUSfQSCg4Pxzz//SB2XdZmdnJzg4OCA0aNHF7hoYrVfiNcIEDt06BAmTJjAJDb5eXTnXswSEhIwdOhQnDhxAt7e3kyWsgSAtLQ0vHr1Cnv27AGQN4UnqylNDx06hD179sDGxgbXrl3D5MmTpU7uz549Q2BgIJKTk1GzZk30798f9evXZ1JeWbpw4QIOHz6MqVOnIiAggNlJKywsDMuWLeMT28SJE5nE3bhxI5M4xalx48Z4/PgxmjZtyj/HouZBlk1XixcvhlAoRP/+/XHq1Clm00yzLvOsWbMAABs2bGBRPAlnz57F5cuXcefOHdy+fRtA3gV8ZGQkJfcSQMm9mGVnZ+PChQto2LAhkpKSkJaWxiTurFmz0LdvX5m0rYo7jamrq0NFRQU5OTlSxTt37hz27NkDS0tLtGjRAu/fv8e8efMwb968Uj/hhYKCAj5+/Mh3KpR2WKCYSCRCeHg46tati6ysLGb7hZKSEtauXcsPS2rcuDHq1KnDJLas3L17F5cvX+YfCwQCBAUFSR1Xlk1XM2bMwNGjRwHk1TywwrrM4v322w63ysrKqFmzJsaNG/fbNX4mJiaoVq0aUlJS+EVzFBQU+FojUryoWr6YXbhwAQEBAVi6dCl8fHxgZGQEU1NTqeNaW1vD09OTQQkLsrOzQ2hoKOzs7PD06VMkJiZK1Y42ZswY7Nu3T2JsrVAoxMyZM2VSHcvSxo0bcfbsWaxduxbnz59HpUqVMHv2bKnjHjlyBKdPn4arqyt8fX1haGgoUbX5u2hY0v9823TVpEkTVK5cmUlscVt4gwYN+LtrFhPvyKrMNjY20NXVRbt27fD48WOEhYWhadOmePbsGXbt2iVVbI7jkJaWxrxfEfk1lNxLwMuXL/H69Ws0btyYH2sqraNHj+Ldu3cSbdYsexinpaVBXV0diYmJqFatmlSximpTnTRpEg4cOCBV7OKSkpKCihUrMu2o9uXLF7x79w56enrMJhWZMGEC3+Z56NAhmbVns2RlZVXgmGAxT7tQKCywtr146WVpFdbvws3NTeq4sirzt8fa5MmTsX//fowbN07qfgiy6ldEfg1Vyxezw4cP4+LFi/j8+TOGDx+OV69eSSxv+bsCAgKgr6/PrwDGcjrJqKgorFy5EqmpqRgyZAgaNWokVW1DUWUrzcuRit27dw+rVq1Cbm4u+vfvj9q1azO5ww4MDMTOnTv5uAKBgG8flUZZHJYkrhXiOA5Pnz6VWM9cGrJc297NzU3iop3VBDayKrNQKER0dDQMDAwQHR2NtLQ0JCcnM5kOW1b9isivoeRezPz9/XHkyBFMnDgREydOxMiRI5nEVVFRkdmQE2dnZ7i5uWH58uUYNWoUpk6dKlVyf/HiBRYtWiTxHMdx/IVJabZp0yYcPnwYc+fOxYwZMzBmzBgmyd3Lywu+vr6YMmUKZs2ahZEjRzJJ7t8OS3J0dJQ6pqzlX3PcwMAAJ06cYBJXlmvby+qiXVZldnBwwOLFi5GQkIBatWrBwcEBAQEBTFbjk1W/IvJrKLkXM/HUpeK7V1Z3UrVr18bu3bvRrFkzPjaLNj+xevXqQSAQQFtbG+rq6lLF2rRpU6HPs1pJS5YUFBRQuXJlCAQCqKqqSr0txBQVFaGiosLvG6yWfBWJRFi8eDH/WElJCdnZ2TKbB4EF8brgAJCYmMh0cSVZrW0vq4t2QDZlFq8Gl1/Lli2ZxJ46dSr8/f1hZ2cHb29vJhep5NdRci9mgwYNwrhx4/D+/XtMmzaNWe/wnJwcxMbGIjY2ln+OVXKvVKkSjh07hvT0dPj7+0vdI/+PP/5gUq6SoKenh/Xr1yMlJQWenp6oXbs2k7jGxsawsbFBfHw8HBwcmJ1op0+fjvj4eOjr6+Ply5dQU1NDTk4OFi9eXGoXLcq//reKikqRF4O/SpZr28vqop11mefNm4ctW7YUem5gtVpg37590bdvXwDA/PnzmcQkv4461JWAFy9eICoqCvr6+mjcuDGzuN+2+bEaxysUCrFr1y5ERkbCwMAA06dPZ9bLuKzJycnB8ePH+W1hYWHB7EQeHBzMx2UxggIAZs6cCRcXF2hra+Pz589Yvnw5Vq9ejWnTpuH48eNMvoOVK1euMPvdhcnKysKLFy/QrFkzXLp0Cd27d2dWg3H48GEEBATg/fv3aNSoETp27MhkoidZlllWxBcOHMfh8+fP0NXVxblz50q4VOVP6Z+AXM74+vri5MmTGDBgADw8PHD69GkmcQ8fPgxHR0ds3LgRgYGBcHZ2ZhIXyBuO06RJE3h6ekJRURFCoZBZ7LLm6dOnyM7OxsqVK/Hw4UO8ePGCSdzLly/j0aNHmDp1Kg4fPszsLurTp0/Q1tYGkFcD8/HjR1SuXLlUrj3g5eXF/3vBggXM4//1119857yXL19i6dKlzGKPHz8eq1evxtKlS/HXX38xSeyAbMp8+PBhjBs3DmZmZpg8eTJOnjwpdcz8rl+/juvXr+PGjRsIDAxE69atmcYnP6f0HeFy7ujRo3xnst27d/MTX0jL398fXl5e0NTUxMSJE/H48WMmcQFgyZIlqFu3LgCge/fuWLZsGbPYZY2TkxN69OgBIC8Bubi4MIm7detWfiWxTZs2MVvVr3nz5rCxscGhQ4dgY2ODpk2bIiAgAFWrVmUSn6X8lYifPn1iHj8+Pp5vC582bRoSEhKYxX758iXWrVuHTZs2Yfv27Xj37h2TuKzLvHXrVkRGRsLFxQW+vr5YsmQJ7t69ix07drAobgF16tRBTEyMTGKT76M292KmoKAAJaW8za6srMxsyJqs2vzExFff7du3LxND1mRFWVkZenp6AABdXV1md8BKSkr8muuamprM4q5cuRJBQUGIjo7GkCFD0KNHD8TExMi0+vt35T8WWA7lzB/z5cuXaNCgAV6/fs10P7a1tcXs2bPRtm1bhIaGYunSpUzmE2Bd5uvXr0t0WGzSpAnc3NwwYcIEZh3fbGxs+L9fQkJCqbyQLA8ouRezXr16YezYsTAyMsLTp0/Rs2dPJnEHDhwok456AKClpQUfHx9+YQxWPcTLotq1a2PDhg38tmA1ntnIyAiLFi3i4zZr1oxJ3JSUFKSnp6N69epITk7G7t27MX36dCaxWXvz5g02bNgAjuP4f4uxWG/czs4OCxcuxMePH1G9enWmQ0fV1NTQvXt3AECPHj0kmhikwbrMhV30KygoMB05YGZmxne6VVVVRYsWLZjFJj+POtSVgIiICLx8+RL6+vpo0qQJk5g5OTl49eoVIiMj0aBBA9SuXZvZPPNJSUnYuXMnXr58iYYNG8La2ppvxy1vMjMzcfToUX5bjB49mlktyaVLlxATE4OGDRsyu+gbP3489PX1ERkZCVVVVaipqUk9vaisnDp1qsjXhg8fXowl+XVLly6Fnp4eOnbsiKdPnyI4OJhf/IflkFRpiWcq/Nnnf8eYMWOYNTeS30fJvZiIl0Fcv359gSpHae5KEhMTIRQKYWtrizVr1oDjOIhEItja2ko9+UdcXBxq1qyJly9fFnitQYMGUsUua8LCwtCyZctCO7pJc/IW9xDPX1UqJl58Qxri6UTt7Ozg4uKCsWPHlvolX8WuXbvG3w1LoziGf31v2d/fmYZWVmVu0aJFoSNdPn/+jLCwsN+Om5+s5tknv4aq5YtJzZo1AUjOvsXC48ePcfDgQbx8+RIODg7gOA4KCgpMDiYvLy/Y2dnBwcEBAoGA7/AkEAiYXeWXFbdu3ULLli3h7+9f4DVptnVKSgoAybHdLCkqKiIzMxPp6ekQCATIzc2VyffIwr59+5gk9y1btgAAzpw5I7Mapzlz5uD9+/eoVasW3/lUGrIqc3h4OLNYRalSpQqePXuGZ8+e8c9Rci9+dOdezGbNmoXRo0ejW7duTDsNsbrLKcylS5fQs2fPUjl8qrgdOHAAw4cPZ77KlYuLC0aPHi2x8A8LgYGBiI2Nhba2NrZu3QpjY+Mys8Y760VuRowYAV1dXVhYWKBLly5MYqalpWHRokVISUlBnTp18OrVK2hra2PDhg3Q0NCQOr4syiwrCxYsYDbhEJEeJfdiFh4eDj8/P4SGhqJ3794YNWoUatWqJXXcmzdvIicnBxzHYfXq1Zg/fz4GDx7MoMR585PfvXsXPXv2xKhRo8r1+sz79+/H2bNn0aBBA1hYWKBDhw5M4gYGBsLPzw9paWkYMWIEzMzMUKFCBSaxxYRCIZOEU1xCQ0NhbGzMNGZYWBj8/Pzw5MkT9O7dGzNnzpQqnpOTE4yMjCRWYDx+/DjCwsLg5OQkZWnzsC6zrLBstyfSo+ReQj5//gxHR0dcvHiRSVWZuD1/1apVcHd3x4IFC6ReujG/rKwsBAUFwc/PD9nZ2WVmaVZZefLkCfbt24dnz54hMDCQWdyEhAS4ubkhJCQE9+/flzrejRs3cODAAWRmZvLPldYT8I4dOzBr1iyJoVRi69evZ/IdGRkZCAwMxJkzZwDkVf1LY+zYsfj7778LPD969OhC+1H8DtZlBvKq+4cMGSJ1nPxMTU2LvKFgMdqB/Bpqcy9m9+/fh5+fH8LCwtC/f3/Y2toyiVuhQgVUrVoVSkpKqFatGvNxwk+ePMH169fx6dMn9OvXj2nsskR8oj19+jQ4jsPcuXOZxH3//j1OnTqFCxcuoFmzZtizZw+TuG5ubrC3t+f7fJRm4hECslpAyM7ODo8fP0a/fv2watUqJm3j4jkrvsVqaJksygzkzZTJOrlXqFCh3HW0Lc0ouRezgwcPwsLCAi4uLkwTsLq6OqZOnYrRo0fjyJEjTDvhmJmZoUmTJjA3N2c2I1tZNWTIEPTr1w+Ojo6oV68es7hz586Fubk5jhw5wrTqvFatWujcuTOzeLLUqFEjZGVl4dChQ9i4cSM/8sPa2ppJbUOfPn3g6urK9LirXLkyP5JCLCwsjFmfDFmUGciriRs2bJhEj3Zpa0d0dHRK/ZDF8oSq5YtZTk4OTp06hffv36Njx45o1KgRk0SclZWF169fo2HDhoiMjET9+vWZjb9OTk6GsrIy3r59Cz09PVSsWJFJ3LIoJycHb9684RfoqVGjBrMT782bN/HmzRu0atUKDRo0gKqqqtQxly5dChUVFYmlgFkMsZMFX19f7Nq1Cx8/fkS1atXAcRwUFRVhbGwMd3d3qeNHRkbC0dERqampGDJkCBo1aiT1TH1v377FzJkz0aFDB+jq6uLt27e4desWdu7cyaRviizKDAB3794t8Jy0qzV6eHgwq4kk0qPkXsyWLVuG6tWr4+bNm5g+fTqOHj3KpAp28ODB6NixI8zNzWFoaMigpP8TGBiInTt3Ijc3F/3794dAICi3azQfPnwYFy9exOfPnzFs2DC8fv0aDg4OUsfdsGED4uLiEB0djfHjxyMkJERihrbfVdgc9XPmzJE6riydOHECo0aNYh534sSJcHJywvLly7F582ZMnTq1wJrmvyMzMxNXr17FmzdvUKNGDfTq1YvZBbCsyiwUCrF9+3ZER0ejfv36mDVrVrld6VFeUbV8MXv9+jVcXFwQGhqKnj17wtPTk0ncf/75ByEhIdi2bRuSk5MxZMgQmJmZMZkq1svLC76+vpgyZQpmzZqFkSNHltvk7u/vjyNHjmDixImYNGkSv6iHtEJDQ3HkyBFYWVlh+PDhzGb4mjNnDhISEviRFCwXS2Et/8XMtxc2rDpk1atXDwKBANra2symUVZVVZVpPxRZlNne3h7t27fHkCFDcPfuXSxdurTUzlxIfg8l92KWm5uLpKQkAHlXz6zGjisoKKBbt24A8u58vL29cfLkSQwaNAjjx4+XKraioiJUVFT4hWnU1NRYFLlMktUCPbm5ucjMzOQnmmG1X9jb2+PRo0dIT09HRkYGdHV14evryyQ2a7LujFWpUiUcO3YM6enp8Pf3ZzY9syzJqszJycmwsrICADRt2pTpiA9SOtCsJMVswYIFGDNmDMLDwzF69GhmVaRr1qxB//79cenSJUybNg1nzpzB33//LfUUtABgbGwMGxsbxMfHw8HBQaLzUHkjXqDn9evXTBfomThxIkaMGIGoqCiYm5tj3LhxTOI+e/YM/v7+6Nq1K/z9/Zm048vK8OHDMXz4cNStW7fAfyy4urri7du3qFKlCsLDw8tE51BZlTkzM5OfFfHjx4/leqVHeUV37sXsjz/+QGBgIJKSklClShVmnbHq168PPz8/iWo7BQUFJuuC29jYIDg4GM2aNYO+vj6zRU3KIisrK3Tu3JlfoIfVwj8DBgxA586d8erVK9StW5fZaAfxPvb169cys9iPuEmC4zi8ePECderUQfv27aWKmZWVhbCwMDRr1gw9e/ZE69atS/2Mi7Is84IFC2BpaQlNTU0IhUKsXr2aSVxSelByLyZZWVnYuHEjAgMDkZWVBXV1dQwcOBCzZs0qcqzsz8jMzMSxY8cwYcIEJCQkwM7ODioqKrC1tUW1atWkvusRT9KSnJyMmjVrMp8bvyy5evUqAgIC+G3BqgPS4cOHERAQgJSUFNSsWRMDBw5k1pbfvHlz7Nu3D9WrV8fChQuRnp7OJK4s5W9vz8rKwoIFC6SKFxERARsbGzRv3hxVq1bFuXPnEB0djS1btjCf7pcVWZV548aNWLhwIb5+/YqgoCAkJSWVmYs+8msouRcTDw8PVKtWDefOnYOqqiqEQiH27t0LDw8PLFu27LfjOjs7o2LFihCJRHB0dETLli3RqFEjODo6Yvv27VKV+dy5c9izZw8sLS3RokULvH//HvPmzcO8efOYrhdfFhw5cgTBwcGYMGECqlativfv32P37t14/fq1VEPLtm7disTERLi6ukJHRwfv3r3D/v37ER8fz6TToo2NDYRCISpUqIDg4GC0atVK6pjFKTc3F2/evJEqxrp167B9+3aJC9OoqCh4eHgwmyyINVmV+dy5c6hevTq8vb3x6dMniddK6xBJ8nsouReTp0+fSiy1qaGhgQULFvCdWn5XVFQUjh07hszMTISGhmLLli1QVlbG/v37pS0yDh06hMOHD0sM6xk+fDhmzpxZ7pL7v//+iyNHjvAzjzVp0gRdu3bF5MmTpTopXr9+XWKa0saNG8PNzQ0TJkyQKrkX1Rzz33//lfqhcPlXEMvJycGECROkipeRkVGgxqlRo0bIzs6WKq4syarM69atQ0hICLKysmS2EiEpHSi5FxNlZeVCn5e2zV3cxv7gwQO0bNmS/578c4n/LiUlpQLjdTU0NJhNrVmWKCsrF/jdKioqUm+LwnrbKygoSB338OHD0NLSwsCBA1GzZk2UpeksWK2xLlbUtizNnchkVWYjIyMYGRnBxMQERkZGUsUipRsl92KUnZ1d4CQr7UlXXV0dPj4+CAwMxKBBgyASiXDmzBkmK80VdeFRmk+KslLUtpD27yeruNevX0dISAjOnj2LiIgI9O3bF/369WM2TloW7OzsinzNzc3tt+PGx8cXWMSltI/5l3WZKbHLP5qhrpj07NmzwIlcPGY6KCjot+MmJSVh37590NHRwaRJk3D79m0cOnQITk5OqFatmlRl7ty5Mzp16lSgzHfu3MGNGzekil3WGBsbo1GjRhLPcRyH6OhoqVZva9GiRaEd8z5//oywsLDfjptfWloaLl68iPPnz0NNTa3Uruc+ePBgZGRkYMiQIWjTpo3EBY6Jiclvx/3eiJHS2kRRFstMShdK7qRIhc0/LSbtPNRlzbt374p8rU6dOsVYkl939+5dnD17Fo8ePUKXLl1K9fzfkZGROHPmDJ48ecLPoMZygR7yP0KhEAKBABcvXoSpqSmzxW5I6UDJnRA59OTJE/j7++PmzZto3bo1Bg0ahD/++IP56mKydO/ePXh7eyMuLq7UzqpXVi1cuBA9evTAw4cPIRKJ8OnTJ6lH15DShdrcCZFDFhYWMDAwgImJCZSVlXHjxg2+KYXVPO2yIhQKcfHiRZw9exbp6enM1x0vS8RNd6wlJCRg6NCh/FTVkyZNYv4dpGRRcpcTr1+/xpMnTzBo0CCsX78eo0ePZjZtJyl7pOmAVlICAgIQEBCA9+/fo2/fvli1ahWTffjevXtFvibtzHeyNmXKFCbDWr+VnZ2NCxcuoGHDhkhKSkJaWhrz7yAli6rli0n+sbvfYjH0x9LSEkuXLkXr1q1x7949bNu2DQcPHpQ6LgB8+PABZ8+elRheV1479URERMDHx0diW0iTSK2srIq8Mzt06NBvxy2LmjRpAn19fX5K3/zbZf369b8dV1xT8fr1a2RnZ6Nly5b477//oK6uDm9vb+kKLWMLFizAoEGD0KBBA37qWRYL7IhrRuzs7ODj44NWrVqhR48eUsclpQfduRcT1mN3C9O6dWsAeXcjLIerzZ8/H506dWIyvK6sW7p0KcaPH4+aNWsyibdq1SoAwPbt29GrVy8YGxvjyZMnuHLlCpP4ZYmsLmbE09laW1tjx44dUFJSQm5uLqytrWXyfSx9+vRJ4iJdIBAw2U4pKSnYvHkzgLzju7xdSJYHlNyL2fPnz2Fvb4/4+Hjo6OjA1dUVzZo1kzqulpYWfHx80Lp1azx58oTpeGZ1dXUsXLiQWbyyTEdHB+bm5sziiWch+/jxI8zMzAAAffr0KfV3lLIg6xEY+Wdky7/0cmnm7e2NL1++4N27d9DV1ZX6uD579iwuX76MO3fu4Pbt2wDytkVUVJTUMwGS0oWSezFzdnaGi4sLmjRpgoiICKxatUpiWtrf5e7ujp07d+LixYto2LAhXF1dGZQ2T6NGjeDv74+mTZvyVaWyXnu7tKpTpw48PT0ltsX3mlx+xfHjx2FkZISHDx8WOaPhrxoxYgSGDBmCYcOGMVvopqwaNWoUBg4cCENDQ0RFRWHatGklXaQfCgwMxM6dO5Gbm4v+/ftDIBBINS2xiYkJqlWrhpSUFFhaWoLjOCgoKEBXV5dhqUlpQG3uxczKykrirmz8+PE4fPjwb8eLi4tDzZo18fLlywKvsUrA385/z6pqsCwqbBY1Fp3XEhMTsWvXLsTGxqJhw4aYMWMGqlSpInXc1NRU/Pvvv/j3339Rq1YtmJubo3PnzlLHLas+ffqE169fo169emViNTRLS0scOnQIU6ZMwaFDhzBy5Ej4+flJHffVq1cICwvDoEGDsG7dOlhaWlIHXDlDd+7FTEFBAVeuXEG7du1w7969QucW/xVeXl6ws7ODg4MDfycpHj7DKgF7e3sjOTkZb968YbrWeFnk5uaGyMhIvHjxAg0aNEDTpk2ZxK1WrRp69eqFN2/eoFWrVgXm9P9dWlpaGDduHDp27IgdO3Zg0aJFqFu3LqytrdGnTx8m31FWREVFYeXKlUhNTcWQIUPQqFEjmJqalnSxvktRUREqKioQCAQQCARQU1NjEtfW1hZLly4FAHTv3h3Lli1j1gGXlA6U3IuZq6srPDw8sH79ehgYGGD16tVSxRPfSXbv3h1Tp05lUcQCzp07h02bNsHAwABRUVGYM2cOhg4dKpPvKu28vb1x9uxZGBkZYf/+/RgwYACmTJkiddwNGzYgLi4O0dHRUFFRgaenp8S65r/ryJEj+Oeff6ChoYFRo0bB3d0dOTk5sLCwKHfJ3dnZGW5ubli+fDlGjRqFqVOnlvrkbmxsDBsbG8THx8PBwQEtW7ZkFltWHXBJ6UDJvZh5e3tjy5YtzOMGBwfjzz//lMmKbQcOHICfnx/U1dUhFAoxceLEcpvcz549iyNHjkBJSQnZ2dmwtLRkktxDQ0Nx5MgRWFlZYfjw4Th69CiD0uZNVrJhwwaJKldlZWU4OTkxiV/W1KtXDwKBANra2qV6ER0xGxsbBAcHo1mzZjAwMGB2MSLLDrikdKDkXsxevHiB1NRUaGlpMY2bnJwMExMT1K1bl6/CY9FRD8hrYxcf/BoaGlBVVWUStyziOA5KSnmHjbKyMrOOb7m5ucjMzIRAIEBubi4/plla06ZNw549e5CQkABTU1M0btwY9erVQ5s2bZjEL0sqVaqEY8eOIT09Hf7+/syPQVl4+/YtoqKikJGRgadPn+Lp06dM5piQZQdcUjpQci9m0dHR6NixI6pUqcK3kbMYA79161aJRPP582epY4rp6urC3d0d7dq1w/3796Gnp8csdlljbGyMefPmwdjYGKGhocyS5MSJEzFixAgkJSXB3Nwcf/75J5O49vb26NatG+7duwcdHR0sW7ZMqg6cZZmrqyt27dqFKlWqIDw8vEwktEWLFsHExAQ6OjpM42ZkZEjsYxkZGUzjk5JHveWL2YcPHyQmg4mOjoaBgcFvx0tMTIRQKIStrS3WrFkDjuMgEolga2uLEydOsCgycnJy4OPjw5fVwsKC2R1rWXT16lVER0ejYcOG6N69O5OYcXFxUFNTw6tXr1C3bl2kpKTwY+ClMWHCBBw6dIj//9ix/9fevUdFWed/AH8PlwFBQUG5mCygpmQr/TTJSFNRNNfAGylqq663RGFJxEuAEupRWw3SMttsV0VFQEktAfNu3jKtNLUWL1xEQeUyEkIkMzC/PzjMSua62zwz35mH9+uczhmGc76+D5Kfeb7P9/l8JmD79u0SJDY/69evb/IYWWJiIqKjowUmerLJkycb5KBbaGgoFAoF6uvrcevWLXh6ekp2K4hMA6/cjeTq1au4e/cu3n33XSxYsEBXhBMTE/HZZ5/97nW///57JCcnIz8/H4sXLwbQcCJfimevL126hO7du+PMmTPw9PTUjd78+uuvJXu221wcPXoUAQEBSE9PB9Bwe+LOnTtIT09HaGjo71734d+L+fPnAwAuX76s9+/Fw3JzcwE0fIAwxJkMU7dz505kZGQgNzcXx48fBwDU19dDrVabbHFvfLS1bdu2yMzMRLdu3STtMdH4eww0PC7Z+G8HyQeLu5FUVlYiOzsb5eXlyMzMBNBwL3vChAl6rRsYGIjAwEB8+eWXkl1FNvrqq6/QvXt3ZGVlPfK95lbcKyoqADTtciaFh38vGn/OUvxeNFq0aBFiY2ORm5uLyMhIJCQkSLKuORkxYgT8/f3x8ccfIywsDEDDB2BnZ2fByR4vPj5e9/rhQmyIHhOtWrXCzZs3JV2TxOO2vJH98MMPePbZZyVf9+rVq0hISDDIM7w7d+5s0nK1cZu3OTLU1q7UvxeNzY1+7ezZswZv82qq1Go1Ll++DI1GA61Wi5KSEgQFBYmO9R817hg1ys7O1rUp1kfjtrxWq4VKpYK/v3+zfYJCrljcjezUqVPYvHlzk6liUnwSnzx5MpYuXYpFixZh7dq1mD59ut6drB7uQ/3iiy8C+Hcf6t+6mpezh7d2O3fuDKDhZ6HRaLB792691z98+DC2b98OtVoNrVaLiooK7N2793evFxwcjOTk5CYNh9avX48dO3bg2LFjeuc1R2FhYVCr1SgpKUFdXR1cXFywefNm0bF+09GjR3H+/HlkZmbqPoDU19fj8OHD2Ldvn97rFxUV6V7b2NhIfmCPxOO2vJGtXLkSsbGxkk0Ve5jUz/CyD/W/Pby1O2vWLN3PQqqt3TVr1mDp0qVIS0tD7969cfr0ab3WCw8Px4wZM5CcnAy1Wo158+ZBqVRK0rrUXN27dw/p6emIi4vD4sWLJXsiwRB8fHxw79492NjYoGPHjrquk6+++qpe665bt+6x32uuY5zlisXdyNzd3Q3S29sQz/A6Ojqid+/ecHNze6QPdXOjVCrRoUMHhISE4NChQ5g0aRKio6Mxbdo0Sab6ubi4oEePHkhLS8Po0aP13g0YOnQoNBoNpkyZgsrKSkyaNAmvv/663jnNma2tLQCgpqYGtra2TebFmxp3d3eMHj0afn5+uHPnDtzd3SXp/d54hX7o0CF06NABPXv2xKVLl3D79m291ybTwuJuZM7OzoiPj29y+lWf09aNfv0M7/Lly/VesxH7UP/bsmXL8N577wEA5syZg7feegspKSl6r2ttbY1z585Bo9HgxIkTuHfvnt5rBgUFoa6u7pEzE83VkCFDsG7dOvj4+GDs2LGS9e83hOrqakRHR6OiogJPPfUUbty4AScnJyQlJaFly5a/e93GD+YHDhzQHa4cPny4Se9i0O/D4m5kjZ++y8rKJF23RYsWCAoKQm1tLQCgsLBQ0hGf7EPdwNraWtfEx8PDQ7JOckuWLEFeXh5mzZqFtWvXYtasWXqtN3fuXN2BqcLCQkyYMEH3KGNiYqIUkc3OwzsX/fv3h5eXl7gwT5CYmIihQ4di5MiRuvd27tyJVatWSXLwraKiAoWFhfjDH/6AvLw83L9/X+81ybSwuBtZREQEjh07hmvXrsHb2xuBgYGSrPvGG2+gtrYWjo6Ouvtz/+n+2v+Cfaj/rX379khKStL9LFxcXPRa7+FRvY3nMObOnavXmgCa3DppjrdRHtb4Qee3mOoHnZycnCaPwwHAmDFjJGtMFRsbi/DwcKhUKri6ujbLRyTljqfljSwxMRE3btxAz5498c0338DDwwMLFy7Ue11958L/JyqVCh999BEKCgrQqVMnvPHGG8127OuDBw+Qmpqq+1mEhobqNbZ34sSJv/m+IZ5nbq7Onj372O+Z6mOBjR0Ff03KDoMc4yxvvHI3snPnzukGukyePBljx46VZN1evXrhxIkTTVrZtm/fXpK1nZycEBAQoJs13pyv3K2srGBvb482bdqgS5cuqKqq0usfxq1bt+pe379/H0VFRfDw8GjWP2OpNRbwqqqqR4bomKrWrVvrOkQ2unTpEhwdHSVZPzs7G2vXrkXnzp1x9erVZj3GWa5Y3I1Mo9Ggvr4eFhYWuu1zKZSXl2PFihW6U/JSToUz1KxxcxQfHw8XFxecPn0a3bt3x8KFC/HJJ5/ove7+/fvx0Ucfoa6uDkOHDoVCoWjSLIf0Z05DdBYsWIBZs2ahd+/e8PDwwK1bt/DVV1/ho48+kmT95ORkjnGWOWlOA9F/bdiwYRg/fjxWrFiBCRMmSNJtCgDy8vKwb98+pKenIz09XbLCDjTMGl+1ahXs7OwwatQo3Lp1S7K1zU1hYSHefPNNKJVKDBw4ULKDSJs2bcKOHTvQunVrzJ49G4cOHZJkXfq3iooKvPbaa7CyskLPnj1N+mBohw4dkJGRAT8/P6jVavj6+mLHjh2S9ZjgGGf545W7kU2dOhV9+/ZFXl4eXnvtNXTp0kWSdbt27YoLFy40eeZan3vBDzPUrHFzVFdXB5VKBYVCgaqqKsl+FpaWllAqlVAoFFAoFGjRooUk61JT5jREx8bGBq+88opB1uYYZ/njgTojUavV+OCDDxAeHg4bGxscPXoU3377LebMmQMrK/0/YwUHB6O6ulr3tUKhwOHDh/VeFwD27duHdevWQaVSwd3dHVOmTEFwcLAka5ubc+fOYdGiRSgtLYW7uzvi4uIkaUqUlJSEoqIiXL58Gb1794adnZ2utwBJ48qVK4iPj0dubi46duyIhIQESRoQmaPa2lrs3LmTY5xljMXdSJYuXQorKytdG9CKigrdo2qLFi2S7M8pLy9H69atJb0qMdSscXPUeMhJpVKhTZs2OHfunGQnro8fP46rV6+iY8eOGDhwoCRr0uNduXLFpA/VGdLUqVOxceNG0THIgJrv/qqR/fDDD4iNjdVtlbdu3RpxcXG4cOGCJOt//fXXGDRoEKZNm4bBgwfj1KlTeq959epVnDhxAjNnzsSlS5dQWVmJy5cvIyoqSoLE5uWbb75BWloa5s+fj/T0dBw8eBBpaWl6NxTRaDQ4cOAAzpw5g379+mH69Ono3r075syZI01wwokTJxAcHIw///nPuHnzJjQaDVatWoWZM2eKjiaMg4MDDh8+jNzcXOTn5zfpt0DywHvuRvJbB1akvLe6Zs0abN++Ha6urrh79y4iIiLQp08fvdY09Kxxc+Lg4ICysjLU1tbqZrorFArMnz9fr3XnzZsHS0tLlJaW4vr16+jQoQPi4uKa7UhdQ1i9ejXef/99FBUVITExEeXl5XB3d8dnn30mOpow5eXlTSbisa+C/LC4G4mTk9NvPrcqVXG3tLSEq6srAMDV1VWS06+9evVCr169dLPGVSoVWrdu3SwP1HXp0gVdunTBmDFjYG9vj1u3buEPf/iD3v3JCwsLsWvXLtTW1iIkJATW1tbYsmVLk34FpB8HBwd4e3vD29sbcXFxCA8Pl6y/hDmqqqrChg0beGhT5ljcjeStt97C7Nmz4e7uDg8PDxQXF6OoqAhr166VZP2WLVti69at8PPzw7lz5yRrdgE0NFcZNGgQWrVqhcrKSixbtkzvXQFzdeHCBUmfR28cAqJUKlFfX4+NGzdKOhOA0OTDqLu7e7Mu7Nu2bcPGjRthZWWFxYsX4+WXXxYdiQyk+V2CCeLm5oaMjAz85S9/Qffu3TFlyhRkZGRIMsYRaNh6LC4uxnvvvYfbt29jxYoVkqwLAGvXrsX27duxZ88epKamYs2aNZKtbW4M+Ty6s7MzC7sB1NTUoKCgAHl5eaivr0dBQUGzvc+cmZmJL774Amlpac12smNzwSt3I7KwsICfn5+ka965cwdubm4oKytrckWiUqkku3o3xJa/uZL6efTr168jOjoaWq1W97qRqQ41MTe2trZYvHgxgIazL42vm+N9ZqVSCaVSCScnJ6jVatFxyIBY3M3cpk2bEBMTg/j4eN2IT0Daf7gMueVvbp5//nnMnTsXd+/eRXx8fJMzFL/Hw7sgzX16m6E83L8fAO7evav7sNqc8SloeeNz7jLTOM9dqu50QMM99/Xr1yMvLw+dOnXCzJkzm3WBN+Tz6B9//HGzfkTLGB43ca05eOmll+Dv7w+tVoszZ87A399f9z3uFMkLr9yN7PTp09BoNNBqtVi2bBnefPNNvbq95eTkYM2aNXB2dsarr76qewY9JiYGI0eOlCRzQkIC/8dHw896//79uHfvHtzc3AzSyOfUqVMs7gbWnK9nuFPUfPBAnZG999578PLywpYtW5Camqr3gJeEhARMnDgRffr0QXh4uK7BilQzn4GG3YCcnBw8ePAAtbW1ut2B5mTfvn2IjY2Fu7s7Xn75Zdjb2yMyMlLyAS/NufAYy9ChQ0VHEOaFF1547H8kL7xyNzJbW1s4OzvDysoK7dq103vkq7W1te6xtC1btsDLywsA9H7++mH5+fmYPXu27p6+lH3rzcWWLVuwbdu2Jj/XUaNGYdasWQgMDJTsz9mwYYNka1FTmZmZCAoKwuuvv47S0lLExMTgH//4h+hYRAbB4m5kLVu2xPTp0xEaGoqUlBQ4OTnptd7DHw4evs8u5TjLzMxMydYyV1ZWVo98YGrZsqXePfwHDhzY5O/QysoKGo0GSqUS+/bt02ttauqzzz6Dvb09amtrkZSUhMjISNGRiAyGxd3I1q5di8LCQnTu3BnXrl3DmDFj9Frvtx6l0mq1utGW+ti3bx/eeecd2NraYvXq1fD19dV7TXP1uB0WfT9EffHFF9BqtViyZAnGjRsHX19f/Pjjj5LeVqEGH3zwAcLCwvDgwQOkpqbq/cGayJSxuBtZXl4eampq8P333yMpKQlhYWFNTqz+rx53QEaKwzLJycn4/PPPUVlZieXLl+Pvf/+73muaq18/gw5Akg9RjbstN2/e1H146tatW7NssGIoc+fO1X04s7W1xcWLF7F8+XIAPCFO8sXibmQJCQlYvHgxPvjgA0RFRWH16tV6FXdDHoRRKpVwdHSEo6MjampqDPbnmIPHdeWT6sRxq1atsGbNGvj6+uL8+fNo166dJOvSv/+OKisr4eDggKlTpwpORGR4LO5GplQq8fTTT0OtVuP//u//zGYIS3M/xW3o08SrVq3Cjh07cOzYMXTq1Al//etfDfrnNSeNf3fjx49Hamqq4DRExsHibmQKhQILFixAv379kJ2dDWtra9GRHuvmzZtISkqCVqvVvW40d+5cgcnkJzIyEhs3bhQdQ9YcHR2RnJwMb29v3Yfqvn37Ck5FZBjsUGdkKpUKly5dQv/+/XHmzBn4+PiY7LCQ3bt3P/Z7o0aNMmIS+ZszZw6Cg4Ph5eWlKzze3t6CU8lLTEzMI++tXLlSQBIiw2NxN7Kqqip88sknKCkpQUBAALp27QpPT0/RsUiwiRMnNvm6OQ41MYarV6/i+vXr8Pb2xjPPPCM6DpHBsLgbWWRkJPr164ddu3Zh3rx5SEpKwrZt20THIhNTW1sr6XwAahggk5mZqTu0+Kc//QnTpk0THYvIIHjP3cgqKirw2muv4fPPP0fPnj0lbTZD5istLQ2bNm3SzR2wtrbG/v37RceSlczMTKSkpMDKygpqtRrjxo1jcSfZMo+j2jLT+Gz0nTt39O5wZgyjR4/G5s2bUVFRITqKbKWkpGDr1q3o168fVq5ciU6dOomOJDtarRZWVg3XM9bW1iZ9mJVIXyzuRrZo0SLExsbixx9/RGRkJN566y3RkZ5o8+bNsLa2RlhYGKKionD69GnRkWTHxcUFLi4uqK6uRu/evXH//n3RkWSnZ8+eiIyMRHJyMiIjI9GjRw/RkYgMhvfcjay2thbXr19Ht27dcOjQIfTv399sriByc3Oxfv16nD59Gh06dMAbb7yBwYMHi44lC3PmzEFQUBAOHjyIHj16ICUlBXv37hUdS3aOHTuG3NxcdOrUCQMGDBAdh8hgWNyNLDIyEv3790dISAg++eQT5OTkmHwLzJSUFHz22Wdo2bIlxowZg8DAQGg0GowdO5YFSCJVVVUoLCyEs7MzNm3ahICAAPTu3Vt0LFkZPXo0+vbtiyFDhuCPf/yj6DhEBsXibmShoaFIT0/XfT1x4kRs3bpVYKInW7JkCaZOnQoPD48m758/f55bmxI4efIk+vTpA4VCgX/9618oLS1Fv379RMeSndraWnz11Vc4evQocnJy4Ovri9jYWNGxiAyC99yNTKFQ6IaCFBYWmsVp+ZycnEcKOwAWdgls374d69atQ3V1NYCG348PP/ywyQdAkkZNTQ1qampQV1eH2tpalJeXi45EZDC8cjey77//Hm+//TbKysrg4uKCJUuWoHv37qJj/UeNk+vYtlN6Y8aMwbZt22BjY6N7r7q6GpMmTcKnn34qMJn8dOvWDV26dEFUVBT69+8vOg6RQfE5dyN75plnsGLFCt2BOh8fH9GRnqhNmzbIyclBTk6O7j0Wd2nY2to2KewAYG9vD3t7e0GJ5OvYsWM4efIkPv/8cyQnJ+PZZ599ZIwvkVywuBvZvHnz0L9/f93M7n379pn8gbpf998uKSkRlER+rK2toVKp4OTkpHtPpVKhrq5OYCp5atu2LTw9PVFQUICioiIUFRWJjkRkMCzuRnb37l2EhIQAAGbMmPFIT3FTtHbtWqSmpkKtVuOXX36Bl5cXsrKyRMeShdmzZ2PatGkYOXIkPDw8cPv2bWRkZGD+/Pmio8nO0KFD4efnh8GDByMiIoLtfUnWeKDOyB4+UHfjxg2zOFB35MgRHD9+HMHBwcjOzoarq6voSLLRq1cvvP/++7h//z6OHTuGqqoqrFu3Di+99JLoaLIzfPhwLF++HAMGDIBSqTT5HTMiffDK3chiYmIQFRWFsrIy2NramsXo1Hbt2kGpVKK6uhqenp5Qq9WiI8mKh4cHIiIiRMeQrZ07dyIjIwO5ubk4efIkAKCurg4ajYb33Em2WNyN7LnnnsPSpUuxbds2nDp1yiwex3Fzc0NGRgZatGiBxMREVFZWio5E9F8bMWIE/P398fHHHyMsLAwAYGFhAWdnZ8HJiAyHj8IZSW1tLbKyspCSkgKlUomqqirs2LEDtra2oqM9UX19PW7fvg1HR0fs3r0b/v7+6Ny5s+hYRP8TjUaD3bt3o7i4GC+++CKefvrpJgcZieSE99yNZODAgbhy5QreffddbN++HS4uLiZf2Pfs2YM9e/bg888/x7lz53Do0CG0atUKly9fFh1NNhobqkRERECtVqO2thYPHjzApEmTREeTnbfffhvFxcU4ffo0qqursXDhQtGRiAyG2/JGMnnyZOzduxdFRUV47bXXYA4bJo2jaS9cuIAWLVqgR48euHTpEjQaDUaOHCk2nEx8+umn+Pvf/46ysjIMHToUWq0WlpaWeP7550VHk53CwkIsX74c3377LQYOHIgNGzaIjkRkMCzuRjJjxgzMmDEDZ8+exc6dO3H58mWsXr0aI0aMQJcuXUTH+02Nh42mTZvW5B/CqVOniookO2PHjsXYsWORkpKC119/XXQcWaurq4NKpQLQMKinsdsikRzxt9vIXnjhBaxevRoHDx6Em5sbFixYIDrSE6lUKt0hunv37qGiokJsIBnKzMwUHUH25syZg/Hjx+Py5csIDQ1FeHi46EhEBsMDdfRE+/fvx9/+9jc4Ojri/v37WLx4MXtzS2zatGno1KlTk/79oaGhglPJk0qlQps2baBQKERHITIYbsvTE73yyisYNGgQVCoVnJ2dYWlpKTqS7DRO2DOHRyPNTUxMzGO/9+vWykRyweJOT3Tq1Cls3rwZDx480L23ZcsWgYnkJyIiAiUlJdBoNNBqtezfL6Fhw4Y1+bqkpASJiYk8tEiyxm15eqKgoCDExsbCzc1N917Hjh0FJpKf2NhYXLhwATU1Nfjll1/g4eGBHTt2iI4lO5mZmVizZg0iIiL4xAfJGq/c6Ync3d3Z69zAcnJykJWVhfj4eERFReHNN98UHUlWKioq8Pbbb6OqqgopKSmcj0Cyx+JOT+Ts7Iz4+Hh069ZNdwiJh72k1XjA6+eff2bXNIkdOXIE77zzDqZMmYLx48eLjkNkFNyWpydat27dI+9x0Im0kpKS4OjoiLKyMty5cwc3b95ERkaG6Fiy4OPjgxYtWsDe3v6R7zUOkiGSGxZ3eqLi4uJH3mvfvr2AJPJWXV0NGxsbHD9+HM899xwHmxDR78biTk8UGhoKhUKB+vp63Lp1C56enkhNTRUdS1YuXryIrKysJk8kJCQkiAtERGaN99zpidLT03WvKysrsXjxYoFp5GnhwoWYMWMGHBwcREchIhlgcaf/SatWrXDz5k3RMWTH09MTo0ePFh2DiGSCxZ2eqHFbXqvVQqVS8bE4A3jllVcQFRWFTp066d7joUVpTJw48bGtZtmMieSKxZ2eKCkpSffaxsYGbdu2FZhGnlJSUjBkyBBuyxvAkiVLAAAffvghBg0ahOeffx4XL17E0aNHBScjMhwWd3oiS0tLrFixArm5ufDy8kJMTAw6dOggOpastG7dGm+88YboGLLU2E2xrKxM14p28ODB2Lp1q8hYRAbF4k5PtGjRIowfPx5+fn44e/Ys4uLikJycLDqWrLRp04aNgoxg586d8PX1xfnz52FtbS06DpHBcJ47PdGDBw8waNAgODg4IDAwEHV1daIjyY6npydcXFxQVlaG0tJSlJaWio4kO++++y5ycnKwatUq5Ofn49133xUdichgeOVOT1RXV4crV66ga9euuHLliug4sqNSqXSH544dOwalUslDiwbQrl07zJ49W9dLoKamBm3atBGcisgw2MSGnujHH3/E4sWLUVJSAldXVyxbtgzPPPOM6FiysHfvXrz//vvIzs7Gxx9/jBMnTqBdu3Z49tlnMWvWLNHxZCUhIQHHjx+Hi4sLtFotFAoF0tLSRMciMggWd/qvPXjwAAqFAkqlUnQU2Rg3bhw2btwIOzs79O3bF7t27ULbtm0xbtw4jnyV2OjRo5GRkQELC96NJPnjbzk9Vk5ODsLCwhAXF4fTp0+jX79+ePnll7Fnzx7R0WTDxsYGdnZ2uH79OpycnODi4gILCwsWIAPw9PRs0t6XSM54z50eKyEhAX/961/x008/ITw8HLt374aTkxOmT5+OkSNHio4nCwqFAlVVVdi/fz/69esHACgvL4dGoxGcTH5u376NgIAAeHp6AgC35UnWWNzpsaytrdGnTx8ADZ28vLy8AAB2dnYCU8nLlClTEBwcDAcHB2zcuBEXL17EnDlz2L/fABITE0VHIDIaFnd6rIdbdj58n72+vl5EHFnq379/k05p1tbW2LFjB7sAGoBGo8EXX3wBtVoNACgpKcHSpUsFpyIyDBZ3eqzr168jOjoaWq22yevc3FzR0WSL7WcNJzo6GoMHD8Z3330HFxcX/Pzzz6IjERkMizs91po1a3Svx40b95uvicyFnZ0dZs6ciYKCAqxcuRITJkwQHYnIYFjc6bFeeOEF0RGIJKNQKFBaWorq6mr8/PPPvHInWWNxJxKI40iNJyIiAocOHcKIESMQGBiIESNGiI5EZDBsYkMkUF5eHoDfHke6YsUKwemIyFyxUwaRQB07dkTHjh1140hdXV0xePBg3Lp1S3Q0IjJj3JYnMhEcR0pEUuGVO5EJ4DhSw7t69arutVarxYYNGwSmITIs3nMnMhHl5eVNep+3b99eYBr5GTNmDJKSkqBQKLBw4UJ07twZS5YsER2LyCBY3IlMAMeRGl5hYSGio6Pxyy+/IDY2Fv7+/qIjERkM77kTmYCLFy/i0KFDnAZnAOnp6brXPXv2xPHjx1FYWIjCwkKEhoYKTEZkOCzuRCagcRxpixYtREeRndLSUt3rVq1a4dVXX23yHpEccVueyASMGzcOBQUFHEdqQNHR0ZwMR80Gr9yJTACLjuGp1Wrk5OTA29tb1xXw4WmHRHLCK3ciE3Djxg2OIzWw4OBgVFdX675WKBQ4fPiwwEREhsMrdyITwHGkhrd3714ADY8ctm7dGpaWloITERkOj+YSmYDGcaSurq545513UFZWJjqS7Hz99dcYNGgQpk2bhsGDB+PUqVOiIxEZDK/ciUwAx5Ea3po1a7B9+3a4urri7t27iIiIQJ8+fUTHIjIIXrkTmYBfjyNlgxXpWVpawtXVFQDg6uoKGxsbwYmIDIdX7kQmwM/PD35+fgCAQYMGCU4jTy1btsTWrVvh5+eHc+fOwdHRUXQkIoPhaXkiahbu37+P9evXIy8vDx07dkRYWBgLPMkWizsRNQvx8fEYMmQI/P39eVKeZI/FnchEVFVVQaFQ4ODBgwgICOBVpcS+++47HD58GN9++y08PT0xZMgQ3gIh2WJxJzIBUVFRGDBgAM6fP4/6+nqUl5fjww8/FB1LdsrLy3H69Gls27YNt2/fxvHjx0VHIjIInpYnMgElJSUYMWIEcnNzsXTp0iad1Egaw4cPx/Tp01FaWoply5axsJOssbgTmQC1Wo0DBw6gc+fOUKlULO4GMHPmTHTt2hVffvklPv30U5w4cUJ0JCKD4bY8kQk4cOAAsrKyEBMTg/T0dPj6+iIgIEB0LNlRq9U4c+YMNmzYgIKCAhZ4ki0WdyJqFsLCwlBcXIy+ffsiMDAQPXr00E2HI5IbNrEhEqhv374AGq4oa2pq4O7ujrt378LJyQlHjhwRnE5eXnrpJUyaNEn3dXZ2NoYNGyYwEZHhsLgTCXTy5EkAwLx58xAdHa0r7itXrhScTD6OHj2K7777DllZWbqBPHV1dThy5AiLO8kWizuRCbh16xbc3d0BNPQ9v337tuBE8uHj44OKigrY2NjA29sbQMOgnqCgIMHJiAyH99yJTEBcXBxqa2vh6+uLCxcuwNHREfHx8aJjyUp9fT0KCwtx48YNdO3aFa6urrznTrLF4k5kAioqKvD111+joKAAnTp1QmBgoOhIsrNt2zYcPHgQP/30E0aNGoUbN27wAxTJFrfliUzArFmzkJqaKjqGrGVlZSElJQWTJ0/G5MmTERISIjoSkcGwuBOZAEdHRyQnJ8Pb2xsWFg29pRpP0pM0tFotFAqFbiteqVQKTkRkOCzuRCagTZs2yMnJQU5Oju49FndpBQUF4fXXX0dxcTFmzJjBWx8ka7znTmSCSkpK4OLiIjqG7OTm5uLq1avw9vaGj4+P6DhEBsPiTmQC1q5di9TUVKjVavzyyy/w8vJCVlaW6FiysGfPnsd+b+TIkUbLQWRM3JYnMgFHjhzB8ePHsWLFCkyZMgVLliwRHUk2cnNzm3yt1Wqxa9cu2NrasriTbLG4E5mAdu3aQalUorq6Gp6enlCr1aIjyUZ0dLTudWFhIRYuXIgBAwYgNjZWYCoiw2JxJzIBbm5uyMjIQIsWLZCYmIjKykrRkWQnJSUFycnJiImJ4cQ9kj3ecycyAfX19bh9+zYcHR2xe/du+Pv7o3PnzqJjycLdu3cRExMDR0dHJCQkwNHRUXQkIoNjcScSLD09HSEhIbCyssI333yDa9euYfz48aJjyUavXr2gVCrx4osvPtJuNjExUVAqIsPitjyRQB988AGuXbuG4cOHw8rKCm5ubti8eTNUKhXCw8NFx5OF9evXi45AZHS8cicSaMyYMdixY0eTK0q1Wo1x48bh008/FZiMiMyZhegARM2ZnZ3dI1vF1tbWsLe3F5SIiOSAxZ1IIFtbW9y8ebPJezdv3uQoUiLSC7fliQS6du0a5s6dC39/f3h4eKC4uBgnT57E3/72N3Tr1k10PCIyUyzuRILdv38fhw8fRklJCdq3b48BAwagZcuWomMRkRljcSciIpIZ3nMnIiKSGRZ3IhOg0WiafM32s0SkDxZ3IoFKS0uRn5+PCRMmoKCgAPn5+cjNzcXUqVNFRyMiM8YOdUQCff/990hOTkZ+fj7i4+Oh1WphYWGBvn37io5GRGaMB+qITMCXX36J/v37i45BRDLBbXkiE7BhwwbREYhIRrgtT2QCFAoFwsPD4e3tDQuLhs/cc+fOFZyKiMwVizuRCQgJCREdgYhkhMWdyAQEBwfj0qVL0Gg00Gq1KCkpER2JiMwYizuRCYiIiIBarUZJSQnq6urg4uKCoKAg0bGIyEzxQB2RCbh37x7++c9/wtfXF7t27cKDBw9ERyIiM8biTmQCbG1tAQA1NTWwtbXlyFci0gufcycyASkpKbh37x6USiUOHToEOzs7bN68WXQsIjJTLO5EJubKlSvw8vKCjY2N6ChEZKZ4oI7IBBw5cuSRe+2ffPKJwEREZM545U5kAl555RUsXboUjo6Ouvd8fHwEJiIic8YrdyIT8PTTT6N3796iYxCRTLC4E5mAQYMGITQ0FB07dtS9t3LlSoGJiMicsbgTmYCtW7di+vTpaNWqlegoRCQDLO5EJqBt27YYNmyY6BhEJBMs7kQmwNbWFtOmTUO3bt10DWw4FY6Ifi8WdyITEBAQIDoCEckIH4UjEiwnJwc+Pj6ora3Fzp07oVQqERISopvrTkT0v2JxJxJo06ZNyM7ORmpqKt555x0UFxejffv2AIBFixYJTkdE5orb8kQCffHFF0hLS4NCoUBmZiYOHDgABwcHjBs3TnQ0IjJj3PcjEsje3h6Wlpb417/+BQ8PDzg4OAAAuKFGRPpgcScSSKFQID8/H7t378bAgQMBAAUFBbC0tBScjIjMGYs7kUBvvvkmFixYgKKiIkyaNAlnz57F5MmTsWDBAtHRiMiM8UAdkQmpra2FQqGAtbW16ChEZMZY3ImIiGSG2/JEREQyw+JOREQkM3zOncgErVixAnZ2dpgxYwbs7e1FxyEiM8N77kQmKCcnB56enqirq0PLli1FxyEiM8NteSITUVVVherqauzZswfu7u5o0aIFCzsR/S68cicyAVFRURgwYADOnz+P+vp6lJeX48MPPxQdi4jMFK/ciUxASUkJRowYgdzcXCxduhTV1dWiIxGRGWNxJzIBarUaBw4cQOfOnaFSqVjciUgv3JYnMgEHDhxAdnY23nrrLaSnp8PX1xcBAQGiYxGRmWJxJxKsoqICrVu3BgCUlZXBwsICTk5OYkMRkVnjtjyRQGfPnsWoUaPw008/AWh4BC4kJATffPON4GREZM545U4k0IQJE7Bq1Sp06NBB915+fj7i4uKwfft2gcmIyJzxyp1IIEtLyyaFHQC8vb1hYcH/NYno9+O/IEQCabVa1NfXN3mvrq4OarVaUCIikgMWdyKBhg8fjrlz5yInJwdVVVW4fv065s+fjz/96U+ioxGRGeM9dyLBsrKykJ6ejpKSEjz11FMICQnBsGHDRMciIjPG4k5ERCQzHPlKJFBoaCgUCsVvfi8tLc3IaYhILnjlTiRQUVHRY7/31FNPGTEJEckJizsREZHM8LQ8ERGRzLC4ExERyQyLOxERkcywuBMREckMizsREZHM/D822w4BvudaQAAAAABJRU5ErkJggg==", + "image/svg+xml": "\n\n\n \n \n \n \n 2022-05-26T17:55:06.629725\n image/svg+xml\n \n \n Matplotlib v3.5.1, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", "text/plain": [ "
" ] @@ -358,8 +358,8 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAECCAYAAAD9z2x7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAABtxUlEQVR4nO2dd5xU1fmHnzt9Zme2d2CBBZa+ApbYI4K9ohGFiPpTEyVFxajYg4IFYw3GlhiTYAFsMSYxGiwxwY4idUHp2+v0Pvf8/rg7wy7bC+wuex4+fHZ37r3nnvfOzPee+573vK8ihBBIJBKJ5JBH19cdkEgkEsnBQQq+RCKRDBKk4EskEskgQQq+RCKRDBKk4EskEskgQQq+RCKRDBIOiODfe++9zJ49m1gslngtFotxySWX8Nhjjx2IUw5I7rjjDj755JM2t1dVVXHJJZf02vlOPvlkNmzY0KVj9u7dyy9/+cte60Nv8OGHHzJv3jzOP/98zjrrLG644QYqKioA+PzzzykuLua8887j/PPP57zzzuOCCy7ggw8+aLG96f8rrriiU+d+5ZVXeO6559rdpzvXGSAUCvH4448n+n3OOefw3HPPIYTgiy++4MgjjyQUCjU7JhwOc/TRR7Np0yaWLVvG0Ucf3cK2hx9+uFPn7+jzWFpaytSpU7tsV3eZOnUqpaWlnd7/888/5+yzzwbg1ltv5fnnnz8g/Xr11Vd56aWXgOafh//9739Mnz6dCy+8kJdffrnDz0l7XHnlldTX1/dKf5ti6PUWgYULF3LhhRfy7LPP8rOf/QyAZ599Fr1ez3XXXXcgTjkgue+++9rdnpOTw4oVKw5Sb1qnvLycnTt39mkfmvL222/z9NNP8/TTTzN8+HCEEDz33HNcdtll/OMf/wCgoKCAt956K3FMSUkJc+bM4f333291e1eYM2dOz41oBSEEP/vZzxg5ciQrV67EbDbT0NDANddcg9/v54YbbiAnJ4d3332Xc889N3Hce++9x4gRI5g4cSIffPABZ555JnfffXe3+tDR51GisXbtWsaMGQM0/zz84x//4KKLLkpoXk9Ys2ZNj9tojQMi+GazmUceeYQ5c+Ywffp0hBC8/PLLvP766+j1el599VVeeeUVVFUlNTWVu+66i1GjRrFz507uvfde/H4/1dXVjBs3jscffxyz2cykSZOYMWMGJSUlPPzww3z44Yf8+9//xmg0kpaWxgMPPEB2dnazfvh8PpYsWcLXX3+NXq9n5syZLFiwAK/Xyz333ENJSQmKonDCCSdw4403YjAYmDx5MldccQUfffQRXq+Xm2++mX/9619s27aN7OxsnnnmGWw2GxMmTODyyy/n888/x+/3c+ONN3Lqqafi9/tZtGgRu3btwuVykZSUxMMPP0xhYSHz5s0jJSWFHTt2MGfOHN577z1+/OMfM3PmTBYvXszXX3+N0Whk6NChPPDAAzQ0NHDOOefwzTffEIlEePDBB/n000/R6/UUFxdz2223YbfbOfnkk5k1axaffvopFRUVnHHGGdxyyy2tvjcvv/wyJSUlhMNh/u///o8f/ehHAHzwwQc8/fTTRCIRLBYLCxcupLi4mDvvvJOqqiquuuoqLBYLJ510EhdddBHr1q3j4osvZvXq1QwbNoynn34aj8fDLbfcwtNPP817772HqqoMGTKEX//61+Tk5ODxeLjvvvvYtm0bkUiEY445hltuuSVx3X/605+yZs0aqqurueyyy1oddT/22GMsXryY4cOHA6AoCj/96U/Jz88nHA63avO4ceOwWCyUlZV1+bO8bNky1q1bR3V1NWPHjmX48OE0NDRw9913s3PnTu6++27q6+vR6XTMnz+fM888E4CVK1fy61//mvr6es477zwWLFjQ7nm+/PJLduzYwXPPPYderwcgLS2Nhx56KNHvOXPm8PrrrzcT/JUrVzJ37twu2wW0+Xk8/fTT+fDDD3n88cdRVRWbzcY999yD3W4nFotx9913s2HDBtxuN7fccgunnXZai7afeeYZVq9eTSgUIhAIsHDhQk455RSWLVtGWVkZNTU1lJWVkZ6ezmOPPUZOTg5fffUVixcvRlEUJk+ejKqqrfb7ww8/5NlnnyUcDlNfX8/555/PDTfc0Cmb29KESCTCww8/zJdffkksFmPChAnceeedie9XcXExW7du5cYbb+SDDz5gzZo1WCwW6uvraWhoID8/n/fffx+z2YzH48Fms3X4OWnLjttuuw2Ayy+/nOeeew6dTse9995LRUUFkUiEs846i2uvvZZoNNqqbiQlJbV9AcQB5C9/+YuYNWuWOO+888RHH30khBDi888/F3PnzhV+v18IIcR///tfccYZZwghhHjwwQfFX//6VyGEEOFwWJx99tniX//6lxBCiKKiIvHmm28KIYQoLy8X06ZNE6FQSAghxPPPPy/+/e9/tzj//fffLxYsWCCi0agIhULixz/+sfjss8/ELbfcIhYvXixUVRWhUEhceeWV4tlnn02c589//rMQQohnn31WTJ06VVRWVopYLCZmzZol/va3vyX2e/rpp4UQQmzZskUcfvjhoq6uTrzzzjti8eLFiT7cdddd4t577xVCCHHppZeK2267LbHt0ksvFe+884748ssvxemnny5UVRVCCPHQQw+JtWvXir1794opU6YIIYR44oknxC9+8QsRDodFLBYTt956q7jrrruEEEJMnz5dPPjgg0IIISorK8XkyZPFnj17WlyP6dOni1//+teJ/Y4++mixbds2sXPnTnH22WeL+vp6IYQQ27ZtE8cdd5zw+Xzis88+E2eddZYQQog333xT/PKXvxRCCPHb3/5WHHfccWLFihVCCCEuvPBC8e2334o333xT3HDDDSISiQghhFixYoW4+uqrhRBC3HrrreIvf/mLEEKIaDQqbrrpJvHcc88lrufy5cuFEEJs2LBBTJo0SQSDwWb9r6+vF0VFRYnPTms07W+cd999Vxx77LHC7/eLzz77TEyePFmce+65zf4/9dRTrbb329/+Vpx22mkJe37729+Ke+65RwghxPnnny9efPFFIYT2mZwxY4bweDxi+vTpife8urpaTJo0SZSXl7fZZyG0z/B1113X7j4ej0ccfvjhifd2586d4thjj018D37729+KH/zgBy1s+/jjj1ttr63PY01NjTj88MPF5s2bE9fvqquuEnv37hVFRUWJ7+R7770nZsyY0aLd0tJSMW/ePBEIBIQQQvz9738XZ599dqKP8eskhBDXXHONeOKJJ0QoFBLHHnus+OSTT4QQQrz99tuiqKhI7N27t1nbqqqKSy+9VOzcuVMIoX2Ox48fL+rq6pq99wsXLhR/+MMfWvStLU1YtmyZePDBBxPfwUceeSTxXZk+fbp48sknE200bbvp56Gt11v7nLjd7jbtEEL7PsR/nzdvnnj//feFEEIEg0Exb9488Y9//KNN3WiPAzLCjzNv3jzeffddRo0axQ9/+EMAPvroI3bv3t3MN+1yuXA6ndx8882sWbOG3//+9+zatYvq6mr8fn9ivyOOOALQXB3jxo1j1qxZnHjiiZx44okcc8wxLc7/ySefcNttt6HX69Hr9bz44osA3HDDDbzyyisoioLJZOKSSy7hz3/+Mz/96U8BEiOWgoICioqKyMnJAWDo0KG4XK5E+5deeimgjSCLior48ssvOf300xk2bBjLly9n9+7dfPHFF838nnEbmlJUVIRer+eiiy7i+OOP57TTTqO4uLiZ//Ljjz9mwYIFGI3GxLX9+c9/ntg+Y8aMxLXJyMjA5XIxbNiwFueKX/ecnByOP/74xBNDdXV1sxG1oijs2bOn2bHTp0/ngQceIBqN8r///Y/58+ezZs0aTjrpJOrq6pg8eTLPP/88GzZs4MILLwRAVVUCgQCgvfcbNmzgtddeAyAYDDZrP27DxIkTCYfD+P1+zGZzYrtOp0u02R579uzhvPPOAyAajZKbm8tTTz2F1WoFuu7SmTJlCgZD86+K0+mkpKSEiy66CIC8vDxWr16d2B73JWdlZZGZmUldXR15eXltnkOn0yE6yHJit9s555xzeOONN7j++utZuXIlP/rRjzCZTIl9uurSae3z+PXXXzNmzBjGjx8PwKmnnsqpp55KaWkpRqMx8f0YN24cdXV1LY4fMmQIS5cu5e2332b37t18++23+Hy+xPajjjoKu90OwIQJE3C5XGzbtg2DwZD4Hp999tmt2qEoCs888wwfffQRf//739m+fTtCiMRnrCPa0oTf/OY3eDyexBxGJBIhIyOj3evUGdr7nHTGDr/fz5dffonL5eKJJ55IvFZSUsLxxx/fqm60xwEVfNBEsqCgIPG3qqqcd9553HzzzYm/q6urSUlJYcGCBcRiMc444wxOOukkKioqmn0JbDYboH05XnzxRTZs2MCnn37K/fffzw9+8APuvPPO5sYZDCiKkvi7oqICi8XSQjBUVSUajSb+jovq/r/vT/zRO96GXq/n5ZdfZtWqVfz4xz/mnHPOITU1tZlwx21oSnJyMm+99RZff/01n332GTfccAOXXXYZM2fObNb+/n2ORCKJv5sKo6IobYpHXDRB8xsbDAZisRjHHHMMjz/+eGJbRUUF2dnZfPXVV4nXUlJSmDBhAh9++CEej4fzzjuP3/3ud6xevZqZM2eiKAqqqnL11Vcn3AzhcDhxk1RVlSeeeIJRo0YB4Ha7m70/cRvir+1vQ0pKCiNGjODbb7/l2GOPbbbt+uuvZ/78+UDPfPQ/+clPqK6uBkjMN7X2nsVvAE37v2PHDvLz85ttj+/TkZgfdthh/PnPfyYWizX7XK1fv57ly5fzm9/8BoC5c+fyk5/8hGuvvZa33347cfPsiKqqqsSABkhMKLZmm16vb2aXEIKtW7dit9ubfR+a7tOUTZs28bOf/YwrrriC4447jiOPPJJ77rknsd1isTRrQwjR6jXa/yYLmtjNmjWLmTNncsQRR3DhhReyevXqDq9v0zbb0oTbb789MTD1+XzNJshbu06dPR+0/Jzk5uZ2yg5VVRFCsGLFisSApb6+HrPZTFJSUqu60V4AwkEPyzzuuOP4xz/+kfhSvfLKK1x++eWANsv985//nDPPPBNFUfj222+bRfrEKSkp4eyzz2bUqFFcc801XHHFFWzdurXFfscccwxvvvkmqqoSDoe57rrr+PLLLzn++ON56aWXEEIQDodZtWpVCwHpDH/9618B7QO+c+dOjjzySP73v/8xa9YsLrroIkaOHMkHH3zQqg1N+fDDD7niiiuYOnUqv/zlLzn//PMpKSlpts8JJ5zAihUriEQiqKrKSy+9xHHHHdflPr/55puANhn7ySefcMwxx3D00UezZs0atm/fDsB//vMfzj33XEKhEHq9vtmNZebMmTz66KMcc8wx2O12Ro4cye9///vEqO/444/ntddew+v1AvDEE08k5hOOP/54/vSnPyWu+/z58xMjrM7yi1/8gvvuu4/du3cDWvTXU089RUlJCYWFhV2+Hvvz+9//nrfeeou33nor8cTRGna7nYkTJyY+AxUVFcyZMwePx9Ot806dOpXCwkIeeOCBhNDU1tayZMkShg4dmthvzJgxDBs2jEceeYSpU6eSm5vbqfZzcnISdr311luJp9bWOOyww9i+fTvfffcdAO+//35igNYZvvzySyZNmsT//d//cdRRR/H+++93+B0oKipCCMF//vOfxDmbPk3H2b17N16vlxtuuIGTTz6ZL774gnA43OFTX5yONCHe1l133cWjjz7aaht6vb7ZALE92vqcbNu2rV074uew2+1MmTKFF154AdAGSfEAhM7oxv4c8BH+/pxwwgn85Cc/4corr0RRFOx2O08++SSKorBgwQJ+/vOfk5KSgtVq5cgjj2zhVgDtUfKMM87gwgsvxGazYbFYWozuYZ84nHfeecRiMc4880xOPfVUjjzySJYsWcI555xDJBLhhBNO4Nprr+2yLV9//TWrVq1CVVUee+wxUlJSuPLKK7n77rt544030Ov1TJw4kW3btrXbzoknnsjHH3/M2Wefjc1mIyUlhcWLFzfbZ/78+SxdupTzzz+faDRKcXExd911V5f7HAqFmDVrFpFIhDvvvJORI0cCWijtjTfemBj1P/3009hsNsaMGYNer+dHP/oRr776amKC+aabbgJIfFGmTZsGwEUXXURVVRWzZ89GURTy8vJ48MEHAS3s77777ktc92OPPZarr766S/0/55xzEEJw4403Eo1GCYVCTJw4kT//+c/NXBvt0dTl05Q//vGPzR7jO+KRRx7hnnvuYfny5SiKwn333UdWVla7x/zkJz/hkksuafVm8tvf/pbHHnuMCy64AL1ej6qqnH/++Vx11VXN9ps7dy4LFizgT3/6U4s2/vnPf7J27dpmr+Xl5fHMM8902q7MzEwefvhhFi5cSCwWw263dymc+uyzz+a9997jzDPPxGg0cswxx+ByuRKDgNYwGo387ne/Y9GiRTz66KOMHz++1fdi7NixnHTSSZxxxhkkJydTUFDA6NGj2b17d6fe/7Y04cQTT2Tp0qXMmjWLWCzG+PHjufXWW1tt48QTT2zx/WyP1j4nxcXFbdpRUFDAKaecwty5c3nqqad4+OGHWbx4Meeccw7hcJizzz6bc889l1gs1qFu7I8iOvssJGnG2LFj+fTTT0lPT+/rrkgGEKtWrSItLY1TTjmlr7siGYTIlbYSyUFEr9dz0kkn9XU3JIMUOcKXSCSSQYIc4UskEskgQQq+RCKRDBKk4EskEskg4aCHZcbZP3RMIpFIJJ3j8MMP79ZxfSb40P1O91e2bNmSWI4+GBnM9g9m22Fw23+wbe/JYFm6dCQSiWSQIAVfIpFIBglS8CUSiWSQIAVfIpFIBglS8CUSiWSQIAVfIpFIBglS8CUSiWSQIAV/P6677jqeffbZxN9er5fTTjutw8ICXSEUCnHyyScDcN9991FeXt7mfq+++mqL12tqali0aBEAJ598crPKPO2xdetWvvzySwAWLFjQZtHvnhAvyjJv3rxEQZWe8uWXXyau/y9+8QsAvv32W0455RQeeeSRbtny73//m6qqql7pn+TQQFCO4CME7RdrGchIwd+PRYsWsWLFCr7//nsAHnroIS6++GLGjRt3QM53xx13JMri7U9NTU2rgp+VlZUQ/K7w3nvvJex67LHHOl0wpK95/fXXExXSnnzySQD++9//ctlll/GrX/2qW7b85S9/abcgh2TwEY1W4XZFAXdfd+WA0acrbdtjc0MNGxuqe7XNSWnZTEhrvyJReno6d911F3feeScLFiygtLSU+fPnc/XVVxMKhTCbzSxevJi8vDweeeQRNm7ciNPpZNy4cVx22WUsW7aMb775Br/fz3333Zeo3+rz+bjppptwu93NavzOmzePRYsW4XQ6Wbp0KQaDAavVyhNPPMEzzzzD999/z5NPPokQolm7t912G6tWrQLg7rvvpqysjIyMDJYuXco///lPduzYwU033UQoFOKMM87glVde4c0338RoNDJx4kRuuOEG3nnnHWpqarj99tuJxWIoisKdd97JuHHjOPXUU5k2bRo7d+4kIyODZcuWNau1um3bNh588EFisRgNDQ0sWrQoUXOzLb799lvuv/9+VFUlJyeHhx9+mN27d7NkyRIAUlNTuf/++9m8eTMPP/wwRqORY489lv/+979s2rSJ0aNHc9FFF/H000/zxhtvYDQayc3N5YEHHuCdd96hoqKCO++8k0gkgsVi4bHHHqO2trZFP91uN1u2bGHhwoW8/PLLrFy5kr///e8oisKZZ57JZZddxnvvvcfvf/97DAYD2dnZPPbYY83qAUsOPcpLo+z8fhjHnFiP2ZTW1905IPRbwe9LTj75ZP79739z22238corr/DAAw8wb948fvjDH/Lpp5/y8MMPc88995CcnMwLL7yAqqqcddZZnHXWWQAUFha2KLm4YsUKioqKWLBgAd9++y2ff/55s+2rV6/mjDPO4PLLL+eDDz7A7XZz7bXXsm3bNn7xi1+wbNmyRLtNi6IDzJkzhylTpvDQQw+xatUq7HZ7C5tycnKYNWsWmZmZzSrbP/TQQ4mC6Vu2bOH222/njTfeYO/evfz5z38mLy+PSy65hA0bNjBlypTEcd9//z0LFy5k7NixvP3227zxxhv8+Mc/bve63n333Tz66KOMGjWKV199le3bt3PPPfdw//33M3r0aF599VX+8Ic/cOyxxzZzZ5WWlnLmmWcmnoSKi4sTtpxyyik88MADACxdupSf/vSnnHjiibz//vts3rwZt9vdop9Llixh/PjxLFq0iD179vDPf/6Tl19+GYD/+7//4/jjj+fvf/87V111Faeffjp//etf8Xq9JCcnt2ufZOAiCOPzKoCC1+PF3PlKlwOKfiv4E9KyOhyNH0jOP/98gsEgOTk5bNu2jWeffZY//OEPiZqvZrOZ+vp6brzxRmw2G36/P1HYOF4ntim7du3ihz/8IaAViY5Xs49z7bXX8swzz3D55ZeTk5NDcXFxC790a+0ajcaEEE+bNo01a9YwefLkxPaO6tts376dI488EoDx48dTWVkJQFpaGnl5eYBWE3X/eYLs7GyeeuopLBYLPp+v1ZvM/tTW1iaeeC666KLE+e+55x4AIpEII0aMaNPWjti5cydTp04FSNSM/eqrr9rt57Zt2ygvL+eKK64AwOVysXv3bm677TaeffZZXnzxRQoLC5k5c2aX+yMZSDQQ8BsB8HpCdKG08YBCPqN2gsLCQm666SaWL1/OPffcw+mnn87HH39MRUUFjz76KDfeeCPBYDCxf2uP/qNGjWLdunUAbN68uUXV+7/97W/MmjWL5cuXM2bMGFatWoVOp0tUsW+r3UgkwpYtWwBN3MaMGYPZbKampgaATZs2JfZVFKVZe/F+ffXVV4CWBCozMzOxb3vcd999XHfddSxdupSioqIObyyg3SR27doFwHPPPce///1vRo4cydKlS1m+fDk333xzovxfU1sVRelU+6NGjWLDhg2Adj2XL1/eZj/jbRYWFjJ69Gj+8pe/sHz5ci644ALGjh3LypUr+eUvf8mLL74IaJO8kkMXIZwE/No8kNejQ9C5QIiBRr8d4fcnFi5cyKJFiwiFQgSDQe644w6GDh3KU089xY9//GMURWHYsGHU19e32cacOXO45ZZbmDNnDoWFhRiNxmbbi4uLufPOO7Fareh0Ou69914yMjKIRCL85je/wWKxtNqu0Whk+fLl7N69m/z8fH71q18RCAR45ZVXmDNnDhMnTiQpKQmASZMm8dBDDyVG2QC33HILd911F3/84x+JRqPcd999nbom5557Ltdffz3Jycnk5ubS0NDQ4TH33HMPt99+OzqdjqysLK644gry8vJYuHAh0WgURVG47777EhO0cQ477DAefvhhhg4d2m77t9xyC3fffTdPP/00FouF3/zmN0Sj0Vb7OXXqVG655Rb++Mc/cswxxzBnzhzC4TDFxcWJJ6xrrrmGpKQkbDabrEN7iBOJuIhGUwHwecyAE8jpwx4dGPqspu3atWtleuRDjMFs/2C2HQa2/QKBy/kf1n2VjyPZjMcd5PjpAoO+c5F5fZEeubvaKV06EolkkOMj4NekMDsnmfjE7aGIFHyJZAAQDEb4/JOdBPy9v1hO4sTvN6EokJmluT993hCCPnF+HFCk4EskAwC3K0jAH8HlCna8cz9HEEP0q8VNDQR8JqxWIxarEYMBvB4jcOiN8qXgSyQDgIA/AkAwEOnjnvQMgQp8CXyM4Jt+Eg3jJOC3YLWZUBQFu8OE12NBm7g9tJCCL5EMAAIBzZUTCg5swYetQC2QB5QDHyHY22fuE0EMIdz4A3psSVpYpt1hw+s1IdSOI88GGh2GZaqqyqJFi9i6dSsmk4klS5YwfPjwxPZVq1axYsUKDAYD8+fPZ/r06ZSXl3PLLbcghCAlJYVHHnmkw2X3EomkbRIj/GC0gz37L4JyYDswHIXJCDzAeuBboBTBZBQ6XsDXu7gIBfUIVcFq00Kl7Q4LQtXh93vpxHrCAUWHI/zVq1cTDodZuXIlv/rVr3jwwQcT22pqali+fDkrVqzg+eef59FHHyUcDvOnP/2JM844g5deeokxY8bw2muvHVAjehOZLbPzrF69mnnz5jFv3jwuuugiPvnkEwDeeOMNTjrppMS2iy++mH/+85+AljvoRz/6UWLbvHnz+Oijj9o9zxtvvMH777/f6rbPP/+cBQsW9MiOgUDclRMcoCN8Tdy/BVKBiQAoOIBjgcmAC83N812j2+dgoU3YAths8RG+GQCvJ9rrmTOFEOz0NBBRD6aN++hwhL927VpOOOEEAKZMmcLGjRsT29avX8/UqVMxmUyYTCYKCgooKSlptkTf6/WSm5t7gLrf+yxatIgLL7yQGTNmMHr06IOSLbMt4tky42kI4vQkW2ZmZiZHHnkkjz32WJePb8rXX3/Nn/70J5599lmSkpJoaGhg1qxZifQRZ599NjfddBMATqeTc889lzPOOAPQct40XfzVERdccEGP+jrQicVUQqEoKNoIXwjR4Uro/oQgAnyFJjeHozQZZyoowHAEOcAmNJdPOYJiFA5GAjMnAb8NAKttn/DrdOD1mMjJcwK9k2dBCMF/q/bwVW0FF44Yx3B7aq+02xU6FHyv19ss/4herycajWIwGPB6vTgcjsS2pKSkhMA/8sgj/P3vfyccDidymO9PPCVAaySneEhN6d2ZfKcrGbfL0eF+V1xxBTfeeCOXXnopJSUlzJw5kzlz5iSyZc6fP5+srCyWL1/O999/j8fjYcSIEfz0pz/l7rvvpqSkhGAwyC9+8QuGDRsGQCAQ4LHHHsPr9ZKXl0c4HGbLli3ccccdzJ8/H4/HwwsvvIBer8dsNrNw4UL++Mc/sm3bNhYtWoSqqs3aXbZsGQ899BDhcJjrr7+e6upqUlJSuP766/nf//5HWVkZl112GeFwmJ///Oc8+OCDrFy5EqPRiM1m4ze/+Q2/+93vaGho4Mknn0xky7z66qsZOXIk8+fPZ9y4cZSXl5OSksLChQubZcv8/e9/z4wZM9izZ0/itcWLFxMOhykvL6euri7x/lZWVqLT6SgpKcHn87Fjx44Ony6uu+468vPzMRgMDBkyhLS0NE477TR+//vf89133xGJRJgzZw42m42SkhLmzJmD0+nkyCOPZM6cOd35ePSIYDDY7ue5J0QjAHqMBkEkAps2ldDkregXtG2/YMjQSux2P3t25xMI7GqnFRt2ey45uTUYDGtoaEimpiYDVT1wU42Fo6pxObNRFMH27d8Rv4/qDQpej4Xqqm3U16e220Zn3/vtapBtIkSBYsK3p5wtSkUvWNA1OhR8u92Oz+dL/K2qaiLx1/7bfD4fDoeDu+++mwceeIATTjiBjz76iIULF/Lcc8+1aLu91WmCUqB3/ZW2pHyG5Le/PB+0fpWUlPDMM88ksmVee+21iWyZr732Gvfccw8jR45MpPs966yz8Pl8ZGVlYTKZWmTLfP7555k2bVoiW+aCBQsYP348SUlJFBYW8tprr3HBBRcksmXm5uZy6623cuONN7Jo0SKWLVuWaLe0tBSr1cr48eMxmUxce+21iWyZ69evJz8/n2AwyPjx4wmFQphMJo4//nguvvhiMjMzOe+883jiiScYN24cN998M9dee20iW+Ydd9zBG2+8QVVVFa+88koiW2Y0GmXSpEkJe8LhMMccc0yzJ5/4isOSkhJee+01SktLURQFq9XK448/nrD32WefbTan88QTT5Cent7sesViMRYuXMiECRNYtmwZmZmZlJWVAfD3v/8dl8vFCy+8wPjx49HpdPz5z38mFotx0kknce+993br89ETDuRqy9oaL3XV5eQNyWDPrnqGDRtBSkr/mhNry37Bd4AfmMiIEZ1LiCeIAiWkpe8iLT0MTEKh970EWoTQdqJRO0l2MxMm7Jub3EoVNVX1ZGXHyMlp/33tzHv/bV0l2yp2MS4lkzOGjurRE9ratWu7fWyHgj9t2jQ+/PBDzjzzTNatW0dRUVFiW3FxMY8//jihUIhwOMz27dspKioiOTk5MfLPzs7G7e76SF1hKNCxOB8oZLbM9rNl5ufnU1FR0ULwbTbt8bipS2d/WnPpvPjii7z77rsAPPzww63au3PnzoStKSkp3HDDDXz++eeMGTMmUQBl/+t6KBD336el29izq55QIAopfdypTiCoRnPRDAFGdPo4BQMwCcEQtEndrxDkogl/6zmluocTgIBfR3Jy8wI6doeZijI9oaCbnsabbHHW8n7FLgodaZw2tLBP3XEdPiudcsopmEwmLrnkEh544AFuu+02XnjhBd5//32ysrKYN28ec+fO5fLLL2fBggWYzWbuuusuHn30US699FLuu+8+7r777oNhywFDZstsyQUXXMDzzz+P3+8HoK6ujmXLlhEIBNo9ri0uvfRSli9fzvLly8nJ0ZJW7W9vYWFhIhumx+Phqquu6lRfBzqBQAS9XocjWZtMHAgTtwIf8A2QDBQ3+uq7hubDPwEYB1SjiX9v0oCq6ggG1ESETpx9E7cg6P5it+3uBv5V+j3DkpI5e9gY9ErfRsJ3OByKZ25sStPR2ezZs5k9e3az7fF0s4cKMltmS6ZOncrs2bO58sorMRgMBINBLr30UsaNG8fmzZs7vJ5NXTpnnHEGc+fO7fCcM2bM4NNPP2XOnDnEYjF+/vOfd6qvA52AP4LVasRg0GMw6PqV4IfDUbZsrETX5OOsRbbE3Q6Ho9D9CQdtgnc0gjCwE0EEBWNHh3USJwG/9qgUj8GPY7fHBd9CZrYTuuFS2uN18fe928i2JnFewVgM/aBimsyW2YsM5IyBvcFgtv9A2v75JztJspuZVJzPV5/txmQ2UDx1yAE5V1cp3dPA99tqSEpWOfKocY0LqNYBZcBRKGT3ynkEDcAaYCoKPbdd6+e71FYPY9N6I9OOKiA5ufmg6otPdmK1NTBpihWFtt/b1t77Cr+X13ZtJtloZvbICVgNvXWTktkyJZJDFiEEwUAUq1UTDLPV0K9G+NVVHgAiobjLZhea2I/tNbHXSAXMQGUvtecFovj92pOmzdZSkO0OC16Pla6mWKgN+nlzdwk2vZELR4zvVbHvKVLwJZJ+TCikxd3HBd9iMRIKRjpVAexAEwxEcLuC6PUKkTDE1FpgM1rhkNG9ei5tDiAHqO6lxVBOAAJ+I0aTHoOhpdvJ7jATCumJhN2dTv3gDAd5fdcW9IrChSPHYzeaOj7oICIFXyLpx8RTKsQXBVksRmIxQTTSNys1mxIf3Q8fmYEQCl7PJsAGTOnWJG3H5AIxtFw8PaUBMBDwi8QK2/1JTNx6DYCnwxa9kTCv79xCTAguHDGeVFNvRhT1DlLwJZJ+TKAxJNMSH+FbtTiL/uDWqa7y4Eg2k5OnBQW4GkzAEb04qbo/mWhxJr3h1nECqfj9kRYROnH2Rep0nDkzEI3w+q4t+GMRZg0fR6bF1gt97H2k4Esk/ZhgIIyigMWiCb3FoolTXwu+3x/G6wmRnZOMybwNqy2M05ndmB/nwKBF7GQDVT3Kt6O5hDxEo6lEwrE2R/gmkwGT2dDox287c2ZUCN7YXYIzHOS8grHk2fpvxjUp+BJJPybgj2CxGhNrDcxxwQ/0bdbM6krNxZGZ4wN2Y7HGcDnFQZhbyAXCtCfAHeMEBAG/dnOytiH4AA6Hud2J26iqslb1UR3wcfawIgrs/XtFnBT8/ZDZMjtPa9kyhRAtcuwAzJ8/n08++URmy+wigUAkMWELYDTq0OmVPh/h11R5SE41Y7FsBlKIqSZiURWv50AXNMlGk62euHWcAO1G6MSxO8z4fTpiMW9jyod9CCH4V+n31BPj9KGjGZV8MJK99YxDbx16D5HZMjtHe9kyL7zwQt566y1++ctfAlBbW8vOnTs55phjePrpp2W2zE4ihCAQiJCcsm/yT1GURKROX+HzhvD5woweG0DLdzUFk6kUAJczgCP5wE1WKhgQZAKVCCZ0c3K4AbAR8GluobZ8+BD34yv4vGaSU5xo8wgam5w1bHPXU6RYGJ+a2VYT/Yp+K/iV5W4qyl292mZefgq5+cnt7pOens5dd93FnXfeyYIFCygtLWX+/PlcffXViWyZixcvJi8vj0ceeYSNGzfidDoZN24cl112GcuWLeObb77B7/dz3333JYTN5/Nx00034Xa7KSgoSJxv3rx5LFq0CKfTydKlSzEYDFitVp544gmeeeYZvv/+e5588kmEEM3ave2221i1ahUAd999N2VlZWRkZLB06VL++c9/smPHDm666SZCoRBnnHEGr7zyCm+++SZGo5GJEydyww038M4771BTU8Ptt9+eyJZ55513Mm7cOE499VSmTZvGzp07ycjIYNmyZc2yZb766qtcfvnliVW8aWlp/OY3v2HUqFFceOGFXHbZZQnB/+tf/8oFF1zQpRQIZ599NiNGjMBoNFJYWEhmZiaXXHIJixcvZv369UQiEX75y1/icDjYvXs3V199NfX19UyfPj1x3oFONKISi6pYrc1dDhaLoU8LocSjc7Kyy9Hi7R3oDdrEsrMhwNCCAz3SzUVLteCme0mFnEB6wl3WWsqSOHaHdvPyepoLvjMc5MOKXQxNSqawe9lE+gTp0mmFk08+mZEjR3LbbbfxwAMPsHTpUubNm8fy5cu56qqrePjhh/F6vSQnJ/PCCy/w+uuvs27dOurq6gAt58uKFSuajWJXrFhBUVERL730EpdcckmLc65evZozzjiDF198kTlz5uB2u7n22msZPXp0Ir10vF2z2dzs2Dlz5vDiiy8yZMiQxE1gf3Jycpg1axZXXHEFxcXFidcfeughLrvsMl566SXuuOMObr/9dgD27t3L9ddfz8qVK6mvr0/ksIlTXV2dSP0cx263oygKOTk5jBw5MpHV7+233242Sl+4cGEzl05rKSn8fj8/+9nPmj2JrF69moaGBl577TX+8pe/JGozhEIhnnrqKV566SVefPHFVu0fiMTLGu4/ArVYjX1W21YIQXWVm9T0ACZzMlCY2JaSasXp9B8EP35O48+uu3W0vDhBtAidcLuje9BurnqDDq8nifi8gSoE/yrdjoLC6UN6lvnyYNNvR/i5+ckdjsYPJDJbZvezZQ4fPpzZs2fz1ltvodfrGT58eCIpG8hsmZ0lHpLZ1IcPWqRONKoSjaoYDAd3zObxBAn4owwb7mH/ePvUNCtVFW78vjBJdnPbjfQQBTOCdDTBH9vFozXRFiKVgL+OlNT2nxAURcFuj0/cliIQfFVbTrnfw+lDR5FsMlPWHSP6CDnC7wQyW2ZLOsqW+cMf/pBvvvmGN998k4svvrjdtkBmy2yN+KIry36Cb7b0XSx+TVU5iiLIzMpvUX82NVWbBHU6D4aPIxfwNGbl7ApOQCEcTiIWEx2O8EGL1PF59QgRoi5YzyfVpRQlpzM+ZWD47Zty6AyHDiAyW2ZL2suWCVpltBkzZvCvf/2rxQSzzJbZOYKBCCazHr2++Y0vHosfCkYSWR0PBqrwUV0VJC1dYDQVtdhusRoxmQ04GwIMGZp6gHuTi5bGoRLofACAJvjJBP1aeoa2YvCbYneYUVXw+01scG/DqjcxI3/kgBxoyGyZvchgzhYJg9v+A2H7N1/tBWDqEc3nSkKhKJ/+dwdjxmYzZFhqr56zLQQCt+srvvkyhbET0sjLz2q2PW7/5o0VOOv9HHPCgS/0IfgY0KNwXCf3F8C/gKFUlA1j25Zqjj5uZIsnqP3xekJ89fluxk6spNQQIctyOCMcqYntB/tzL7NlSiSHIIFAuIX/HsBk0qMoBzsWfzfVlSqKAlnZ6W3ulZpqJRyOJeYfDiy5QEMXCpR40HLxpBHwR1B0SsI91h62JBMoUN1gYXSy0kzsBxpS8CWSfkgsphIOxRKjT4GKYBcCtTEW/+ClSRb4EGILNVUppGcmtZpZMk5KmpZDxtlwsPz4AFWd3N/Z+DMVvy+MrckK5vYIixhBQwyvx0qKKdSjtA59jRR8iaQfEg+73DepWANsJC5uZqvxoKRXiBc0cTmthMM6cnLaj5yz2bR0w64G/wHvGzjQsnN2NjyzATACSVoVsU747wE+KN+JzxBFDZihMQ/PQEUKvkTSD2kZkuls/KmJzcEb4e8AGqipKkCnU8jISmp3b0VRSE21HpRIHS0kNBeoRdCZa+EEUhGq5i6zJXUcoVPirKXEVUdOmp1YFEIhA10tiNKfkIIvkfRDEnnwE6tsnY0/44JvJBKOEYsdOPeCwANsRag51FQJMrLsLSKGWiMl1UooGD1Ii8NyAYG28rZttDw4HiC1sYBM+0nTADyREO+X7yTXamdinhYq3HQB1kBECr5E0g8JBMLoDToMRl2jW8XZuGWf4AOEDlCKBc1PvQ7Q09AwhkgkRnZO59L+ph5UP34anSt96Ezs72+8mbYXkimE4N3S7cSE4Iyho3AkUiwkI0f4EomkVwk2ZsnUJhUDQAQwAT4E6kEohLIdcAGTqakKotfrSM9o350TJ8luwmDQ4XQeeD9+50sfOht/phLwt56yoinf1Feyx+fmpLzhpJmtGAw6rDZj44pbbyddSP0PKfgSST+keVpkZ+PPoWjuC+8BLYQicAPbgDyEmkdttZfMrKROuXNA8+OnpFpxHZQRPnSu9KGWIVPBhN8fxmDQYTS2Hm1UF/Tz38o9jHSkMjltXyF2u8OMzxO/Bs7e6fpBRgq+RNLPEEJoI3xbU8HXAfmNf3swmQ2g9H4hlH2uHCMwmfo6H9GoSnZu1ypZpabZCAQihELd6184FqMuGGC318nGhmo+qy6lzOduY+/2Sx/uc4lpWTzjETqthWTGVJV3Sr/HpNNzan7zxWN2h4VgUCUS0TFQBV+mVpBI+hnBYBQhwJKYsHWhhSA6AAXwotMpmM2GA5AX/zu0tMNHoGCiuqoOg1FHWnrn3DlxUtIa8+o0+MnJbR7KKYSgIRzEHQ7hiYTxRsN4ImE8kRDeSBhvJExIbeme0aFw5rDRFKVkNHtdQYdoUvpQaTGODQIhIBXQyjPG8/7sz6c1pVQH/ZxTUESSsbmP35GocZtCWrqzM5eh3yEFXyLpZwSbhGRqo1MXMAQFPQIbTSduezMvvnauXUAuCrnEYip1NV6ycxzodF1Lk2C3m9HrdbicgRaC/3HVHtbWVjR7LclgxG40kWa2MCwpBYfRhN1owtH436jT87c92/jH3u+IqioT0pqndtDcOuVorpuM/bbFo2rSiMVUQsFoqxE6uzxOvqwpZ2JqFmOSW64mjuct8nlSSEsvRyC6WYCl75CCL5H0M5pPKvrQqkqlNm510DQWv3cjYYJok8NaFsj6Wh+xmCA7t+tpynU6hZRUS4v+Vfi9rK2tYFxKJoelZ+MwmkkyGNG3U4QkzoUjxvHW7q38q2w7EaFyWHpOk61NSx/uL/jOxm3JiXBXW9I+wRdC8E19Jf+p2E262cpJecNbPb/JbMBk0uP1WNDq6gbQFn4NHKQPXyLpZwQCERRFc9ns8xXH87Y70CJ1tLQLoVAUVe2t/IfxCnPauaqrPBhNelLacH90REqaDb8vTDisPYXEhMrq8h3YDSZm5I9gSFIyySZzp8QewKjTc/7wcYx0pPJ++c5mTwkKBkiUPtz/ejiBZBR0+PeL0ImqKu+V7eCjit0UOtKYUzgJs77tcbDdYcE7gCdupeBLJP0MrfSeoXHC0Ano0YSeJj+9mOOx+N2cGG1JfFLUQTSqUlfrIyvb3mV3Tpy4n9zVuOr269pKaoJ+Ts4f0a6otodBp+PcYUUUJafzn8rdfFZd2qTITy7aqHvf5K42Ce1k34Rto+BbTXgjYVbt3MwmZw1HZw3h3IIiTPq28wRBY6SOP4oa0zMQF2BJl45E0s/QQjKbrrBNaeIrjgu+B4tFE7FgsxDOnuACklAwUFfrRlUF2Tldi85piiPZgk6n4GwIYEw18ml1KaOT0xjdin+8K+h1Os4cNgZD2XY+qS4loqocnzMMlKalD+NPRB5AZd+EbQST2UB12Mfbe7YRVmOcM6yIMSmd65PdYQYBPl86jmRnj+zoC6TgSyT9CC0kM0xqmrVxdOoGmvqUk9AidTxYrFqMeO9F6riJj4SrK7XQz+66c0Dz4yenWHA1BFhvrkOnKEzPa1mms1ttKwqnDRmFQafjy9pyIqrK9LzhoOxf+tDZ+DMV0Eb4wgSv7tyM3WDigsLxZFk674e3JyJ1knEk7xxwmTOl4Esk/YhIJKaV3rMa2X90CvEQRDvgbfTx0yuROiIxCTmcSCRGfZ2fIcNSe1zEJDXNxq4ddZS63fxwyHAcxs5lqOwMiqIwI28kRkXP2roKoiLGzPxcFGUzAh8K8bw3JsBGTKi4vEFqTUGG2JI5a9gYrF2sgWy1GtHrdXg9RkjckAcO0ocvkfQjmtexdTa+mrrfXnbAg16vw2TS91KSsrhwJVNb40UI0encOe1hTdZcTUMVO8XNomq6hrPBj9cbavG6oiicmFvAD7KGsLGhho8q4sVQ4ouwnEAqwWiUN7eXoMQgKzmJC0aM67LYx89nd5jxeuI3QmeXjhdCUF3lIRrtmycDKfgSST8i0CwPvgttxev+LgcH4EcQxWI19lJ6hbjgp1Bd5cFiNeJIbr2OcldY569GRVBkSEPXzacFnzfEt9+UsWVj6ytpFUXhuJxhHJ8zjHX1bpwhM0JUNua78eKLJPHS9o00eLTcPpNyc7rdF9DcOl5vBCHMdHXiduf2OjZvqMDj7myVrt5FCr5E0o+Ij9a1XDlOmk/YxmkeqdM7i69cgJlI2EBDvZ/sHHuP3Tl7vC42uWvR2XSEPd3ro6oKtmyqRKgCnzfUrlAelTWE6Xkj2OzUImhiqha2+e+yBlQhODGtAOhc4fL2sDvMqDFBwJ9OV0b4FeUu9uyqJ29ICqlp3Z8b6QlS8CWSfkTAH8ZsNqDTC+L52wHqQwHe2LWFhlCA5pE6hsb87j2NxXcDKdRWe0BAdgeVrToiqqqsLt9JisnM0KxUPJ5gt9wYu3fW4fWEGDs+B0WnUFnevs98akYu2ZZCFAV80U0AqDj48ahJGKM6UOiwaHlHNJ24BR86XXtZOrUVzPX19WzbUkVausrosXtA8fWoD91FCr5E0o8IBCKNguRGy4yZQkxV+efe79nldfFpdRmai0eHFqljRAgI9yAWX0sr7AWSqa7yYLUZSbL3bBT8eU0ZznCQmfmFpKfbQIDb1bVVwW53kN276snJdZA3JIWsLDtVVW5Utf0bx+iU4YRjZpJNMbwRE+cVTCbJaCLg14rCd3ddQZykJDOKAl6PJvxWa/O5BUEYQTWCbQi+wO/7iM3rq7DaQkyYvAudLgJ9lJJBCr5E0o8IJLJkOhtfSeWzmjKqgz7yrHa2umpxhcNo4ZnaCB96GqnjAQRqzIHLGSAzq2funNqgny9rypmQmslwewrJKVZQulYQJRZTKdlUiclkYPRYLfw0Nz+ZaESltqb90bGCgkk/BAC7MRtD40pefxfq2LaHTqeQlLRv4taR7EWwA8HXCD4A3gO+ALYRDofYsC4PRdEzacoQDMZTUTi2MYLo4NOh4Kuqyt13383FF1/MvHnz2L17d7Ptq1at4oILLmD27Nl8+OGHAPj9fm655Rbmzp3LRRddxPr16w9M7yWSQ4hoVCUSjjWGZGo+9Qp/hC9qypiYmsU5BUXoFIWvasrR3Dq9lRdfc5N4PFaEgJSU7vuXhRCsLt+BSa/nh7na+gGDQYfDYcHZhcLmO7fX4veFGTchJ5G3Pi3dhtlsoLLc1cHRAHmNP9MS/Qr4w9jaKXrSFbRInTBCOEhN9QCb0SZwU4DxwDGosVPZ9O1wwiE9k6YMw2ZNbyWT58Glw7OvXr2acDjMypUr+dWvfsWDDz6Y2FZTU8Py5ctZsWIFzz//PI8++ijhcJjnn3+eMWPG8PLLL7N48WJ27NhxQI2QSA4F9mXJNAFOVJHMO3u34zCaOSlvOHajiYmpWWxy1hCO2YAA5sZAmp6N8F2AAZdTmwdITu1+dM76hmrK/V5Oyh2O1bBPXFPTrHjcwU7V4HU2+Cnd4yR/aEqzKluKopCbn0x9nb/DxWYKacBRaEVjSOQc6o0RPmiCH4nECIcPo3RvLjAThRkoHI7CKBDpbN1ch9sVZNzE3B7dRHuTDgV/7dq1nHDCCQBMmTKFjRs3JratX7+eqVOnYjKZcDgcFBQUUFJSwv/+9z+MRiNXXXUVTz31VOJ4iUTSNoGAlufFYtMBXnZ6wBUJcfrQUYncM0dk5aMKwXcuTfD0Bj8Go66HsfhuIBm3K4jVZsRk6t56TG8kzH8r91CQlMz41Mxm21LTtKcHt6v9cMRoVHPlWKxGRo3ZPwUy5OZpk8mVFZ4O+6OQjYL2dBDoRB3brhCfuPV5DHi9SSg0v0nu2lFHdZWHkaMye5Seorfp8J31er3Y7fsWYOj1eqLRKAaDAa/Xi8Oxz5ikpCS8Xi8NDQ243W6ef/55/vrXv7J06VIeeuihFm1v2bKll8zoHwSDwUPOpq4wmO3vDdt9HgXQUVO7FUcyrK8PUag48OwpYwtlif1yFSNf1bqZmA4V5duAVOpqnWzZUt+NswqKxjppaEimvs6L2SK6ZUcwGORvW9cTJcaIgEpJSUmz7do8q47vv9uDPbntiCJ3g0IwqJCWqbJt29ZW9zGadOzZVYMvUEVnpxr8Xu3alpXvprKqc8e0h2aPnh3bSzGYmr/3Ab+Cu0GHxabiC1SxZUsvnLCX6FDw7XY7Pt++SRJVVTE0rlDbf5vP58PhcJCamsrJJ58MwPTp03nuuedabXv8+PE96nx/Y8uWLYecTV1hMNvfG7Zv21JF0O9h2HBtgBUVDi4Yf1hi0jFOZtDP8u+/JSYU8vLt1Nc48PvDjB8/osvnFHiBHVitwxBqmILhOeQPSe1yOx9tXk+lGuL4nGEckTWk1X2+8u7GYNAxfvywVrfX1XqpKitn2PC0Vkf3cSpSXGzdXEV+/og2K1ftz/dbq/F5XEycOK7H6wvifObcidVqRm8Uiffe2eDn269LSU2zUjx1aI8jglpj7dq13T62Q5fOtGnT+PjjjwFYt24dRUVFiW3FxcWsXbuWUCiEx+Nh+/btFBUVcfjhh/Of//wHgC+//JLRo0d3u4MSyWAhXri8OliOO6zj5LyxLcQeIMtiY5QjnbqgHlV4sFgNBAPdjcXXJmzdTs0l0R1fczgWY7MaIMNs5fDMvDb3S0214nYFW83fHwnH2Lq5iiS7iZGj9i9g0pysbAd6vdLJyVsNvz+CrY06tt3F4TDj9ewLyfT7w2xcX47FamRicf4BEfue0uEI/5RTTmHNmjVccsklCCG4//77eeGFFygoKGDGjBnMmzePuXPnIoRgwYIFmM1mrrnmGu68804uvvhiDAYDS5cuPRi2SCQDmkAggmqBJKOfmEgms50sjkdm5VMb3EOqyYXFYkRVBZFIrBv+dxeg4HYJDAZds0pQnWVN9V6CCM4fUoheaXsMmZJmpXSvE4872CIL57at1UQiMSZPHYKug4IoBoOOrBwHNVUeRhdlYzB0HPkS8IexJ5s7Z1AnsTvM1FR7cajaDWvDN2UoKBRPGZKILOpvdPjp0Ol03Hvvvc1eGzVqVOL32bNnM3v27GbbU1NTefLJJ3upixLJoY+qCoKBCPWGAMeYVBC57e6fb3NQE0zCpK/H2KhjwWC0G4LvBhy4nCGSUyxdHgFvc9XxTV0lBYqJfFv7k5MpqdoNzNngbyb41ZUeaqo8jByVgcPRuQih3PwUKsvd1FR7yMtPaXdfVRUEghGyc3t38jQ+cRsJw8b15QSDUaYcPrTXIoEOBHLhlUTSD4hH6FitjdE2SmqHx+RZNfdJnVoLQKhbkTpuIpFk/L6wtkCqC2xuqOEfe78j3+ZgrNKxUJtMemxJJpzOfQuwQqEo27ZW4Ui2MGx45wujpKRYsNqMHaZagMZwV0GvC7G98ebkbtCKtY+bmNOj+gEHAyn4kgFDQ72firLO+20HEt9Wapkgx2XH3Q7tj1oBsizaCtQ6tRro+uIrQRAI4XZpk8RdEatv66v4V9l2hiWlcOGIcRg6+WSQmmbF7QygqgIhBFs3V6HGBOMn5nbJ560oCrl5KbicgUSd2raIb++tRVdxTCY9RpMeVVUYUZhBTjeKvR9spOBLBgRCCL4rqWbb1uo+yyV+oKgK+Nhep4VU5qWE0MoMdkKcFBuq0GEzB1B03Vl81Thh6zKDAskpnXOnrK2t4P3ynRQ6Ujl/+FiMus77q1NTbcRiAq8nREW5m/o6H4WjM7s1d5Cbp7loOhrlJ+rY9vIIX1EU8vJTsCWpDB/Zs7KNBwsp+JIBgdsVxO8PI1RBfV3fZBo8EERUlXdKvydJNaIoCiZLAy0LnrSOgoKOZPJsgpBe7cbiq3iEjsBuN6PXty8HQgg+qy7lP5W7KUpO55xhRa1GEbVHSmNa4MoKF9u3VZOaZmXIsNQu9lvDbDGSnmGjqsLdboSS3x/BaNQfkInUwtGZOFJFr0b/HEik4EsGBJUVbnQ6BYNBR12Nt6+702v8r2oP9aEAQ412rDY9ihKiM+6cBIqDLItKQBfF7e9qUQ0XQrXhdoU6dOcIIfhf1V4+qS5lQmomZw4bg76LYg9gNhuw2oyUl2rRQeMm5vZILHPzUwiFojTUt52nJ+APNyakk0jBl/R7YjGV6koPWTkOMrLs1NX6Wo3lHmjs9jr5pq6SqRm5KBGwJDQ3tQutODDoIuhNEApGuxiL78brTUVVRbvuHCEEH1bs4svacorTszltyKgeVYyKL5YaPTYrkfytu2RmJWEw6qhox63j94d7LaXCQEcKvqTfU1PtJRZTyctPJjPLTjSq4nJ2Lbd6fyMQjfKv0u2kmy0clz2scdFVPE96F0b4aBOuQ1JN6FSF3S5np44SRAEfbmf7E7aqELxXtoN19VUcnpHHjLyRPXZfDBuezpix2Ym8OD1Bp9ORk6PV4Y1EWhYiiUZVwqFYvw6VPJhIwZf0eyrLXVisRlJSraRn2NDpFGoHuFvng4qdBKJRzhg6GhEVqDGB1RYA7ImEX51Dm7jMS9aO+bqyopPHaSNil8uI2WxodaQdE9r8wiZnDUdnDeHE3IJe8VXbkkwMGZbaa37v3PxkhCqormyZUC0+YWtLki4dkIIv6ecEAhGcDQFy85JRFAW9Xkdauo3aam8vlPXrG3Z4GtjqquMH2UPIsdr31bG1uumaOwfAAhgabxbQ4A1Q4e84k6S2whbcTrXVdMhRVeXve75jq6uO43OGcWzOsH47MelItpBkN1PRSqqFeJZMOcLXkIIv6dfE86Xk5u97/M/MthMKRZvlMRkoRNQYH5bvIt1s5ajMfKCJKFkDdFXwtQLnDiwWTeRtwsAXNeWdONJNMGglFIq1yJ8TUWO8tWcr2z0NTM8bwVFtJEPrT+TlJ+P1hPB6m38m4jH41h7WsT1UkIIv6bcIIaiscJOWbsNiMSIIIvCQkakVxRiIbp3Pa8pwRULMyB+ZiHJJ5MG3Ruia/z6OA6NJi2IaYnSw3dNAbbCj6lJu3C6tGlRyE/99OBbjjV0l7Pa6OHVIIVMz2k/x0F/Izk1GUWiRUC3gD2O2GDoMOR0syKsg6bc4GwKEgtEmo/tvgU8xmvSkpFoHnODXBf18VVvBhNRMhiXte2IJBCKYLaIxaVh3JjLtKEoEs0VPqmLCqNO1O8oXqIAHt1ObD7HbzfgiYb6qLeel7Rso93s4c+hoJqVld6MvfYPJpCcjy05VhadZBJeM0GmOFHxJv6Wi3IXBoCMzy44gDNQCYcBJZlYSPm+YQI8qPR08tFqvOzHqdJzYWOs1TjAQwWqNAo5u1jzVbhIWC0RCMYrTctjqqsUZbisu3wuouJwGDEl6/rpnK89t/ZqPK/dg1us5f/hYxu1XsWogkJefTCQSo65WGwgIIRoLl0t3Thwp+JJ+STQao7baS3auo/FxvAKIj9yqyMjSwgkHyih/s7OWMr+HE3OGYzM0F6CAP9I46Zrazda1a2GxxggGohyemdek2HlzhBA0hKqIxRQ8nhh7VA+1QT9HZuZzxZjDmDtqMiMdad3sR9+Slp6EyaRPpFqIRGLEoqoc4Tehe8UrJZIDTHWl9miem0h9WwEkAWagGpttHElJJupqvAwr6N8CFYhG+LhyN/k2O5PSmldyikZVIpEYFmsIyOnmGcyAEbMlTCRixKozJIqdH509FLvRhDMcZHNDDVuctUzJqKNAsaCgMGVoHmOHZvXbCJyuoNMp5OQls3dPA6FQNPH0JyN09iEFX9IvqSh3k5RkwuEwIwihuXPGoH1ktyAIkJFlZ8+ueiLhGEZT/yw4AfDfqr0EY1Fm5LdctNQ8LXJ3Jmy1SB2BA4slABgJBqMckZXPhoZq3ivbTkRVKWsM1SxISmZsipGaUu2pYFRuxiEh9nHy8lPYu7uBqgp3IndOb2fJHMhIl46k3+HzhvC4g+TmpzSKUXwxUR4Qn0isJjNbE624z7Y/UubzsLGhmmmZeWRZklpsj4dkWqwx4ououocDi1UT9WAgQqrJwrjUTHZ5XQRiEY7PGcZPiqZy4cjxJBkDeJw2bEmmfluZqbvYkkwkp1iorHDj94dRFLDIkMwEcoQv6XdUVrhRFMjJiwtgOZqfOv63DajC4SjAZDZQW+Nr4vrpP8SEyuryHTiMJo7JGtrqPsGE28HWGFPfXRyYLWUAhBrz4s/MH8mRmflkmK2JUbzAjxBR3C49WdmdS4c80MjNT2HblirUmIq1l+vYDnTkCF/Sr1BVLfY+IzMJk8nQWKSjHshHafynjfJrQVHJzEqivs5HLNb/cuR/XVtJXSjA9LwRmPStj6QDgTBGYwyDoac3LDtmcxRF2ZcX36jTk2mx7Sd4Lvx+E9Fo8/j7Q4nsHDs6nUIwGJUROvshBV/Sr6iv8xEJx/abrAXNnRMnB1CBWjKz7KiqaDc9bl/gDof4tLqUUY40Rie3XRwj4A9isYbprv9+Hw4UBcyWjipfuXE7tZH9/itsDxUMBj1Zje4+GaHTHCn4kn5FZbkbo0lPekbc312OFp/e1L+dDuiBalLTbOj1un4XnvlhxS4ApueNaHe/QCCM1Rah+yGZGgpmwITZEuugEIobtzMZg1F3SI9+4wOG7lTSOpSRgi/pN4TDUepqveTmJaPTKQgCQAOQ32w/LZtkJlCFooOMzCTqanz9Jpna9+56tnsaOCZ7KMkmc5v7qaogFBSNE7a2XjizA4sl3EGpQxcul4WUFOsh7dtOTbNSPHUI2Tk9mQg/9JCCL+k3VFV4EIImedJbc+fEyQGCgIfMbDuRSAyXq6sVn3qfcCzGhxW7yDBbmZbZfh4abSSuYLUaezhhG0cLzQyHoq0WiBGEiYTDBPy6LhUsH4goikJ6RpLMobMf8mpI+gVaojRXItWtRjmQjNK4krQ58fDMKtIzbCgK1Fb3vVvns5pSPJEwM/ML0Svtf738Ae0GZbX1xugetNBMLa4/1Kof34XLpQl9ZwuWSw4tpOBL+gUeTwifN0xeY6I0gR9wsr87J46CBW2isxqDQa/lyK/p2xz5NUE/a2srmJSWzZCkjl0JwYB2g7JYe8vt4MBs0YS+dbeOG7fTiqJoOeQlgw8p+JJ+QWW5C51OITs3Ln7tuXPi5AANCEJkZGmFRPy+8IHtaBsIIXi/fAcWvYETcoZ16piA349Op2Iy9VZqCDsWiyb0rUfquHC7bNgdFunqGKTIhVeSPidepDwz247BEI9XLwdSUNi3OnVN1V42NlSTarKQarIwJElhYhp4wqWkZGgiW1vjbeIS6hyhWBRPJIw3EsYTCROIRbAZjNgNJhxGMw6jqc04+jilIkK5P8BpQ0ZhNXQu+iUYCGO1qihK7/jTFUyYLTpAtBqpo6puPO488ofK0f1gRQq+pM+pq/ERjarkNYbSCXxoJfjGJ/bxhEN8VVtOhlnzd+/yOtnkDDPCrlAe2M4/99Yw3pTCttJavje7STNZSDVbSDNZiAmBJxJqJureSBhPVPsZVvcVvzbFdOT4LFTZgoQN+xZzmXR6HEYTdqNJ+9nkZmDW69kqggy1OZjQhbTCgYDAalN6acJWQ6dzYDKrLVw6ghheTxRVVUg+ROPvJR0jBV/S51SUuzBbDKSmxYWopTvn89oyBHBuQVEi1DEcixEV6xidXM1x2UNwR4MYawVb6+rwKW2HJiYZjDiMJjLMVobbUxICblOMlG+qJ+iPkBexkTsujahZ4InfJKLaTaM26McXbT6CVoAZ+YWdDnVURYRgQE96Rm+7VuKhmfuP8JssuDrEI3QkbSMFX9KnBIMRGur9DB+Z3kQsy4FUlMbYdHc4xMaGGialZTWLazfp9RgZAlRwVLYVf1I2X9bu5uzUUaTn2WkIB2kIBTHodDiMJhwGEzajsdXoGVUVbFhXRigQoWhcNrt31VO+qZ6JxXmMy2o5ao+pKr5oJHEjqCmrIMPSeSENhxpQVR0Wa2+7VxxYLNW43fvPZbhxuaxYLHrMZvm1H6zId17Sp1RVaMUqchPuHC/gBiYk9vmiRksK9oPM1oppZ6LFHlRjs2VgtRmprfExZFgaVoORfFvHETBCCL7bWk1DvZ+x43PIG5JCRpadDevK2LCunKJx2eQPTW12jF6nI9lkbrwBOVDLa7pkdyCg2W21daekYXs4MFvLCFXHEELsS5omtAid1PTeCgGVDETkVL2kzxBCUFHuJjXNijWRwra5O8cdDrHRWcPktGwcraxaVTAAGUAViqKQmWXH2eAnGo212LctSvc0UFHmomBEGnlDtBuP2WxgyuHDSM9IYltJNTu+r+3VkM9gwAeA1drbAqxF6ggBodA+t1Yo6CEcNhyy+XMknUMKvqTPcDkDBAOR/VIblwPpKGjC9HlNGQpwVFbr8fga2YAPgVerfyugrtbXqT7UVHvZ/l0tWdl2Ro5q7roxGHRMOiyfvCEp7NlVz5ZNlahqz7NyCqIE/GFQBBZL7+azUTBisWij+vjErUDgcmq/J6fKCJ3BjBR8SZ9RWe5Gr9clMhsKPICH+OjeFQ6yqaGGSWnZOIzthVruK4qSnGLBaNJTW9Ox4LvdQbZsrMCRbGHcxNxWJ1x1OoWicdmMHJVJdaWH9d+UEYl0/ulhfwQC+JZAQMFi0aPT9X4+G7NVu1ahRGimF7fLgl4P9i6GrEoOLaQPX9Ir+HwhQkEtvXFnEAKqqz3k5CY3WQQUL7qtCf7nNeUoChyV1Zrvfh8KSQjsQDWKUkhmZhLVVV5UVUWna31MEwxG2LiuDJNJz+TD8ttdiKQoCsNHpmOxGCjZXMk3X+2leOqQbo7OdyBEBQF/EdZen7DVsDRW1gokInW0CB1HiiwGMtiRgi/pMZFIjK8+34NQ9Tjryrp07L5UCgLNf5+BggVXY9Ht4vRsHMbOpLjNBnYiiJCZbaei3I2zIdAkzfI+otEYG9aVEYsJDps2FFMno1Zy8pIxmQ1sXF/O11/sYfLUITgcnRPtaDRGfV0VdbX11NeNJhKGIcMOTOpevd6B0eghFAw0ntuF12tm+MiW10IyuJCCL+kxdbU+hCpITlUZNXp4p4/TG3RNXAwewAuMABp9950Y3e8jB9gB1JKaloNOr1Bb420h+Koq2LyhAp8vTPGUIV1elZuWbmPqEcPY8E0Z677ay8Ti/FZvKkII/P4I9bVe6mp9uJwBhACDwUFahoOMTEfCldX7OLBYGwgGQgB4XH4gmZRUGaEz2OlQ8FVVZdGiRWzduhWTycSSJUsYPnzfl3rVqlWsWLECg8HA/PnzmT59emLbF198wc0338x//vOfA9N7Sb+grsaLyaTHYov1YFHPPneOs9F3PyUjF3unRvcAaYARqEKvzyM9I4naGi9jxmY3CU0UfL+tmvo6P0Xjs1sV6s5gt5uZdlQBG74pY/26MsaOywG0FBHOhgD1tT7q6nyJ9AZJSSaGFvhIz3SRknI4Ot2BztFux2yJ4PPGtAlbVwwQMkOmpGPBX716NeFwmJUrV7Ju3ToefPBBnn76aQBqampYvnw5r7/+OqFQiLlz53LcccdhMpmoqKjghRdeIBptrxiDZKATi6nU1fnIyU1Gpb5bbWjunHIgEwUzn1dvR6coHJnZXmROcxR0CLKAagSCzCw7tdVePO5gIpVA6V4n5aUuhg1PI39Iarf6GsdsNjDliGFs2lDO1i1VGE061lRsR1UFOp1CarqNYcPTSM+wYbFuAcqAI/ar3HVgUDBgsUB9rUCIAG6niSS70iRPkWSw0mGUztq1aznhhBMAmDJlChs3bkxsW79+PVOnTsVkMuFwOCgoKKCkpIRQKMSvf/1rFi1adMA6LukfOBv8qDFNYLuPG/ADeThDQTY7ayhOz+nC6D5ODhAGnGRkJoFCIlqntsbL9m01ZGbZKRzd+Xw37WEw6Jh82BCGDE1FVSE3P5nJU4Zw3A9HUTxFe91irQD2AmNQaL8gSm9isRhQVYVw2IXbZZGjewnQCcH3er3Y7fu+zHq9PjFq93q9OBz7RixJSUl4vV7uvfderrzySnJycg5AlyX9idoaH3q9jrT0nizoKUfLRpPH5zVlXR7d7yOr8Wc1RqOe1FQrtTXaKH/zhgocyWbGT2o9/LK76HQKY8Zlk5mjUjQuh4zMfVWWBA3AxsZ+FfXaOTuD2ardLOtr3cRielJSZak/SSdcOna7HZ9vX6idqqoYDIZWt/l8PoxGI1999RV79uzhd7/7HS6XiwULFvDYY4+1aHvLli29YUO/IRgMHnI2tYcQUFupw2gWbN26tZv2CwpH7SEctrB1zzY2q16GKyb2fr+9W30qGG5Bp9vNrp0qMVXB79Px9Ve7URQw2/xs27a1W+12xP626/VRRowsRQg9u3YmoaolB+S8bWE2+YBkKsuDgJWa2koanJUH7HyD7bPflIFke4eCP23aND788EPOPPNM1q1bR1HRvpFKcXExjz/+OKFQiHA4zPbt2ykuLubdd99N7HPccce1KvYA48ePb/X1gcqWLVsOOZvaw+UMUF2+l8JReeTkJnfLfoET2IHJNJHa5BB6l5/TiiaR1GV3Trw9I1DCuPEjCAUMfLZmJzpFz9Qjhx3QRUdNbReowGeAAI5j7NjezpfTMZFoA3t21uB2WTCaVCZNGndAY/AH22e/KQfb9rVr13b72A4F/5RTTmHNmjVccsklCCG4//77eeGFFygoKGDGjBnMmzePuXPnIoRgwYIFmM1yJd9gobbGi6LQ7WgXDc2d4wqlsMW5mWkZed0We40coASoxmIdzuixWTgcloO8wnQLUA9MQeHgiz2AwZCM3lBJLKonJUWRC64kQCcEX6fTce+99zZ7bdSoUYnfZ8+ezezZs9s8fs2aNT3onqQ/U1vjJTXNhtHYveiPfdE5WXxaU41e0XFEVnslDTuDHbAC1cBwhg7rrfKBnUNQBuwERqAw9KCeuykKeiwWFZ9XL/PnSBLIXDqSbuHzhQn4Iz2MznECQXyRTEqctRyWnkOSoWerT7XqUdlALYLu57zpDgI38C2QTtP0zn2FpVHnk1NS2t9RMmiQgi/pFnU1XgAysnrqztHxaVUEvaLjyHYzYnaFHCAG1PVSex2j08WAr9AWf01D6QdfLWuSFZ1OkJwsI3QkGjK1gqRb1NZ4sTvM3U7vG3fnhGPpbHQ2cHhmHrZOFv/umAxAD1SxL5PmgUMgyB9SDQSAY1HoHy6U4SOGk5sbbTOBnGTwIQVf0mVCoShuV5ARhRlAXLw/p3CUE5FIkdARAgix2ZmOXolxRLfi7ltHQY8gk/iq294sEg5xe4NAA5pbqh673Q9MQuHgzhm0h9Go7/b8iuTQRAq+pMvE3TmZieRfTqCWcNiKyZTR6XaCUfi4MsDUjPxeHN3HyUEb4Xugh5EygjDgQrMz/j/UuFUHJFNdlU52TucTx0kkfYEUfEmXqa3xYrEaSUqKT7BWAQrlZTmMHTup0+18UPEdOiXczVW1HbGvKEpXBF+b6HXTXNyb5vi3o62cTW38n4yCjvr6LeTkyNBHSf9GCr6kS0SjKg31AYYMS20S210NpKGqnXcfbHc3sNVVx5GZ+Vh7fXQPChYEKWg3o9Gt7qO5Zrw0F3c3mrsJwIwm6sMaf6ag0Pt9lUgOFlLwJV2ivs6HEILMxugcQQBNJMejJS5rH28kzEcVu9jmrifDbOWIzJ7G3bdHNvAdgjAKpsa+Opv8dwHxbK4GIAUoJD56j9fVlUgOFaTgS7pEbY0Xo1HfJO99dePPbKC0zeOEEKyvr+K/VXuJCZXjsodxRGYe+gMaQZIDfAd8jiDIPr+7gubmGcI+14y91yd3JZL+hhR8SadRVUFdrY+sLHsTd04VYEPzbbdOTdDH6rKdVAS8FCQlMyO/kDTzwQhdTGn8HwUyae53l9ErksGHFHxJp3E2+IlF1cTqWm2CsxYoaHV0HFFjfFZdxtraCsx6PacPHcX4lMyDltdF69MJB+VcEslAQAq+pNPU1fjQ6RTSMuK1UWsBFc110pydHifvl+/EHQkxKS2LE3IKDsjkrEQi6TxS8CWdQgjRWBTclijwofnv9Wi5YzR8kTAfVe5mq6uOdLOF2SMnMDSpbzJGSiSS5kjBl3QKrydEKBRlRFbT1bVVQJa2slUI9qghPvjuW6JC5djsoRyRmY9BLuuXSPoNUvAlnaI2niwtMz4560FLL5CNKgSv79rCXhFkmC2ZmfkjSTPLkEaJpL8hBV/SKWprvKSkWjGZ4tEtVY0/s9nirGGvz814xcLpI8bLYhsSST9FPm9LOiTgD+PzhvfLfV8NpKCqJj6rLiPHmsRwxSTFXiLpx0jBl3RIbY2WS2bf6toQWqbIHDY5a3BFQhybPVSKvUTSz5GCL+mQ2hovSXYTVls8WVoNADE1i8+qy8iz2hlhT+2z/kkkks4hBV/SLuFwDJczsJ87pwows6EhiDca5ricYXJ0L5EMAKTgS9qlrrYx931ida0K1KCKLL6oKWeozcEwGWcvkQwIpOBL2qWuxovZbMDuMDe+Ug9E2eEx4YtGOFaO7iWSAYMUfEmbxGIq9XV+MpslS6tGCIWPyr0Mt6fIVbQSyQBCCr6kTRrq/aiqIKMxOkejClfYjieqcmz2sD7rm0Qi6TpS8CVtUlvtRW/QkZqmJUsTeAEfGxqg0JFKnq3tlMgSiaT/IQVf0ipCaLnvMzKT0OmaljKE71wGObqXSAYgMrWCpFVczgCRSKxZOGZMrcIV1pNlzSLbmtTO0RKJpD8iR/iSVqmt8aEoCukZ8dW1ERSlnu0eE8dmD+3j3kkkku4gBV/Sgnju+7R0KwaD9hEJxSrRKYKoyCTTYuugBYlE0h+Rgi9pgc8XJhiINHPnNIT2EIwpjEsZ3Yc9k0gkPUEKvqQFtdWNue8bBd8bCZFsctIQcpBulr57iWSgIgVf0ozKCje7d9aRlm7DbNbm9Lc4v8dmEKSYCvq4dxKJpCfIKB0JoPnt9+yqZ+f2OlLTrEwszgPAHQ4RE1UIATZDfh/3UiKR9AQp+BJUVfBdSRUV5W5ych2MnZCbiL3/vKaM4vQwMZGKUTF10JJEIunPSJfOICcaVdn4bRkV5W6Gj0xn3MR9Yu8MB9nlqSTbGsWgy+3jnkokkp4iR/iDmFAoyoZ1ZXi9IYrGZ5M/JLXZ9s+qSxmZHG78K+eg908ikfQucoQ/SPF5Q3z95R78/jCTDxvSQuzrQwG2OGs5LF0BrIDMmyORDHTkCH8Q4mzws/HbcnQ6hamHD8ORbGmxz6fVpZh0ChlmPzAUBZnzXiIZ6HQo+KqqsmjRIrZu3YrJZGLJkiUMHz48sX3VqlWsWLECg8HA/PnzmT59OuXl5dx+++3EYjGEENx7770UFhYeUEMknaOq0k3JpiqsNiPFU4ZgsRpb7FMb9LPVVcep+XYUpQbpzpFIDg06FPzVq1cTDodZuXIl69at48EHH+Tpp58GoKamhuXLl/P6668TCoWYO3cuxx13HE888QSXXnopM2fO5L///S+PPvooTz755AE3RtI2Qgj27m5gx/e1pKRamXRYPkajvtX9/lO5G5NOz9jUGKAHMg56fyUSSe/ToeCvXbuWE044AYApU6awcePGxLb169czdepUTCYTJpOJgoICSkpKWLhwIQ6HA4BYLIbZbG61bcnBQVUF32+rprzURXaOg3ETc9DpWp++WVdfxW6vi+l5wzHoNgOZKLS8MUgkkoFHh4Lv9Xqx2/dN2On1eqLRKAaDAa/XmxB2gKSkJLxeL+np6QDs2LGDpUuX8rvf/a7Vtrds2dLT/vcrgsFgv7NJqOBs0BEOKtjsKuidbN3qbHVfj4jxieolCwPJzirICFBRYcfl7JxN/dH+g8Vgth0Gt/0DyfYOBd9ut+Pz+RJ/q6qKwWBodZvP50vcAD777DPuueceHnrooTb99+PHj+9R5/sbW7Zs6Xc2bf+uhnCwgTHjshkyNLXN/SKqysvbN2CJGblwdDFWw24A8vIOIz+v5aRua/RH+w8Wg9l2GNz2H2zb165d2+1jOwzLnDZtGh9//DEA69ato6ioKLGtuLiYtWvXEgqF8Hg8bN++naKiIj777DPuu+8+/vCHPzB58uRud07SM/z+MKV7GsjNT25X7AH+W7mHulCA04aMwmYwolW3SkGhc2IvkUj6Px2O8E855RTWrFnDJZdcghCC+++/nxdeeIGCggJmzJjBvHnzmDt3LkIIFixYgNls5v777ycSiXDrrbcCMHLkSO69994DboykOTu+q0GnUxg5KrP9/TwNrKuvZGpGLiMdqQjCQD0w5qD0UyKRHBw6FHydTtdCrEeNGpX4ffbs2cyePbvZ9r/97W+91D1Jd2mo91Nb42PkqMxE1svW8EXDvFe6g0yzjRNy4tkwqxt/ynBMieRQQq60PQQRQovKMVsMDC1IbXe/90p3EFKjnDlsNHpdDMEOYCtgBlIOUo8lEsnBQK60PQSpKHfj84aZMDkPvb7te/q6+ip2ep2cMTSHDMt2oBSIAWnAWLm6ViI5xJCCf4gRjcbYuV1bXJWV3Xb+m5qglzLfNi4dHSHLsgntYW8IMAJFjuwlkkMSKfiHGLt31hMJxxg9JQtFaTlCF4SIqbux6rdzVkEMVViAcUABCjLfvURyKCMF/xAi4A9TusdJbl5yi4RoggZgF1CBXqdS6zfijRSRYyuUrhuJZJAgBf8QYvv3tSg6GDl6XximwAt8A7gAA65wDm/uCjDCMZTpeSP6qKcSiaQvkFE6hwjOBj+11V4KhqcnwjAFEeBLIABMwh89kRXbQa8kNwnBlEgkgwUp+IcAWhhmDWazgWHD07TXEMA6wA8cAWI475buSYRgGtpIniaRSA5d5Lf+EKCy3I3XE6JwTGaTMMzvgCpgAgrpfFNfyS6vkxNzh5NpsfVhbyUSSV8hBX+AE42q7NheS3KKhewcLXGdoArYRjzMsibo57+VexjpSGVKulw9K5EMVqTgD3D27GoMwyzSwjAFPjRXTjJQTCSm8s+932HWGzhtyKhWQzUlEsngQEbpDGACgQh79zSQk+sgOcWKIAp8BUA4NoV1dZV8XVdBIBZl1vBxjVkwJRLJYEUK/gBmx3c1KGhhmNok7XqE8LDZOZKPKrYSVmOMsKdydPYQ8m2OjpqTSCSHOFLwByjOBj811V5GFGZgsRgJxrZh1pfzWXUSn9V4GJOczg+yhpBtTerrrkokkn6CFPwBSNMwzORcK1/WbGBa5m6+d5twR4ZyxZihpJutfd1NiUTSz5CCPwCprNDCMEN58Pqeb5g72kkgaiLbcixjkttOmCaRSAY3UvAHGOVeNyVbK/EbY+xWPFxaGMSq16Eox6AgxV4ikbSNFPwBghCCb+oq2fZdNbkxK6kjkjhteASDrgY4HAU5KSuRSNpHCv4AICZUPizfxfdVdYz1p5CZY2fiyCiwFxiFQl5fd1EikQwApOD3c4KxKP/Y8x0Vbg+T3KlYzAbGjLUAnwGZaLnsJRKJpGOk4PdjnOEgf929FXcwyFRPBgCTpmZjMn2GVnN2msxlL5FIOo0U/H5Kmc/NW3u2gYAfBHMIhsJMnppPUtIGIAwcJytUSSSSLiEFvx+y2VnDv8t24DCYOTKSRZ3LR9H4bNLStwJ1wBRZd1YikXQZKfj9CCEEn1SX8nlNGUOTkjmCbPbsrWfY8DTyhuwCKtDSHQ/t455KJJKBiBT8fkJEVXm39Hu2ueuZmJrFFGMWWzZUkpltZ+ToKqAUGINCYV93VSKRDFCk4PcDfJEwb+3ZSmXAxwk5BYw1pbFubSmOZAvjJrpRlF1AIVDUxz2VSCQDGSn4fUxN0M9fd5cQiEY5t6CIoSYHX3+xB6NJz6TDQuj13wMFwHgZkSORSHqEFPw+IKLGqA36qQh4+aSqFKNOx8WFE8kwWvnmqz3EYoKp0xRM5q1APjBZir1EIukxUvAPIEIIvNEwNUE/NQE/NUEfNUE/DeFgYp8caxLnFowlSW9k47dl+HxhJk8xk2TfAOSgReRIsZdIJD1HCn4vIYTALWJsaqhJCHtN0E8wFk3sk2I0k2mxMTYlgyxrElkWGylGMwDfba2mvs7PmHFm0jM2oK2inYYiq1BKJJJeQgp+D6kPBdjsrGGLsxaPGoYyLwZFR4bFypjkdLIsNrIsNjItNsz61i936Z4GyktdDC0wkz90I5AGHIGC/qDaIpFIDm2k4HeDQDTCVlcdm521VAa8KMBweyojo3qmjS4i1WRB18li4bU1Xr7fVkNGlpHCMZsAB3AUinxrJBJJLyNVpZPEVJWdXiebnbXs8DSgCkGm2caJuQWMS8nEbjSxZcuWLlWa8riDbN5Ygd1hYPykbSiKDfgBCrLYuEQi6X2k4LeDEIKqoI/NDbVsddUSiEWx6Y1MSc9hQmoWWRYbSidH8q1RXubCaFCYNGUHer0RTezNvWeARCKRNEEKfit4IiG2OGvZ4qylLhRAryiMcqQxIS2L4fYU9ErvTKSOGmNlVNEG9HqBJvayDq1EIjlwSMFvJKLG+M5dz+aGWvb4XADk2xzMzB9JUUoGljYmXHuC3rALUIFjUEjq9fYlEomkKYNa8IUQ7PW52eys4Tt3PRFVJdlo5uisIYxPzSLNbDnAPRgHjJNpjiUSyUFhUAp+s1DKSBiTTs/YlEwmpGYyxObokV++K0ihl0gkB5MOBV9VVRYtWsTWrVsxmUwsWbKE4cOHJ7avWrWKFStWYDAYmD9/PtOnT6e+vp6bbrqJYDBIdnY2DzzwAFZr3/qn94VS1lAZ8CVCKU/IKWBUcjpGnVzgJJFIDm06FPzVq1cTDodZuXIl69at48EHH+Tpp58GoKamhuXLl/P6668TCoWYO3cuxx13HE899RRnn302F1xwAc899xwrV67kiiuu6JUOx1SVHR4nITVKVFWJCpWIqiZ+j6qNfwuVqBrT/hYqNUF/q6GUEolEMljoUPDXrl3LCSecAMCUKVPYuHFjYtv69euZOnUqJpMJk8lEQUEBJSUlrF27lmuuuQaAE088kUcffbTXBH+Hx8nbe7e1eF2vKBgUHQadbt/Pxt8tegNT03OZkJpJllVOjkokksFJh4Lv9Xqx2+2Jv/V6PdFoFIPBgNfrxeFwJLYlJSXh9XqbvZ6UlITH42m17S1btnSr0z/UOVAAHaBvTECQ8LuLxv/qfgcF/NQ691DbrTN2jmAw2G2bDgUGs/2D2XYY3PYPJNs7FHy73Y7P50v8raoqBoOh1W0+nw+Hw5F43WKx4PP5SE5ObrXt8ePH97T//YotW7YccjZ1hcFs/2C2HQa3/Qfb9rVr13b72A5nKqdNm8bHH38MwLp16ygq2ld1qbi4mLVr1xIKhfB4PGzfvp2ioiKmTZvGf/7zHwA+/vhjDj/88G53UCKRSCS9Q4cj/FNOOYU1a9ZwySWXIITg/vvv54UXXqCgoIAZM2Ywb9485s6dixCCBQsWYDabmT9/PgsXLmTVqlWkpaXxyCOPHAxbJBKJRNIOHQq+Tqfj3nvvbfbaqFGjEr/Pnj2b2bNnN9uemZnJ888/30tdlEgkEklvIIPPJRKJZJAgBV8ikUgGCVLwJRKJZJAgBV8ikUgGCYoQQvTFiXsSSyqRSCSDme6GuveZ4EskEonk4CJdOhKJRDJIkIIvkUgkg4RBWQClq0QiEW6//XbKysoIh8PMnz+f0aNHc+utt6IoCmPGjOHXv/41Op2OJ598ko8++giDwcDtt99OcXExu3fvbnXfgUBPbd+8eTPXXHMNI0aMAGDOnDmceeaZfWtUJ+mK7QC7d+/mF7/4BW+//TZAv6wL0RV6ar/T6eS0005LpGOZOXMml19+eZ/Z0xW6YvvSpUv5+uuviUajXHzxxcyePbv/vvdC0iGvvfaaWLJkiRBCiIaGBvHDH/5QXHPNNeKzzz4TQghx1113iffee09s3LhRzJs3T6iqKsrKysQFF1wghBCt7jtQ6Kntq1atEs8//3yf9b8ndNZ2IYR48803xaxZs8Sxxx6bOH7x4sXi9ddfF0II8eyzz4oXXnjh4BrQQ3pq/5o1a8S999578DveC3TW9k8//VT87Gc/E0IIEQqFxMyZM4XT6ey37/3AGGb2MaeffjrXX389oNXB1ev1bNq0iaOOOgrQcv5/8sknrF27luOPPx5FUcjPzycWi1FfX9/qvgOFntq+ceNGPvroI3784x9z++234/V6+9KcLtFZ2wFSUlJ48cUXmx3ftJbEQHvfoef2b9y4kU2bNnHppZdy3XXXUV1dfXAN6AGdtX3q1Kncf//9ieNisRgGg6HfvvdS8DtBUlISdrsdr9fLddddxw033IAQIpGDP57zf//aAfHXW9t3oNBT24uLi7nlllt46aWXGDZsGL/73e/6ypQu01nbAaZPn47NZmt2fGfrQvRXemp/YWEh1113HS+++CIzZ85kyZIlB92G7tJZ281mMykpKUQiEW699VYuvvjiRF2Q/vjeS8HvJBUVFVx22WWcd955nHPOOc188PGc/23VB2ht34FET2w/5ZRTmDRpEqBlXt28efNB739P6IztbdH0mgzE9x16Zv/RRx/ND37wA+DQfu9dLhdXX301o0aNSlT666/vvRT8TlBbW8uVV17JzTffzI9+9CMAJkyYwOeffw5oOf+POOIIpk2bxv/+9z9UVaW8vBxVVUlPT29134FCT22/6qqrWL9+PQCffvopEydO7DNbukpnbW+LgV4Xoqf233nnnbz77rvAofveB4NBrrjiCi688EJ+/vOfJ47vr++9XHjVCZYsWcI777xDYWFh4rU77riDJUuWEIlEKCwsZMmSJej1epYtW8bHH3+MqqrcdtttHHHEEezcuZO77rqrxb4DgZ7avmnTJhYvXozRaCQzM5PFixc3c/30Z7pie5zjjjuONWvWAJpoLFy4EJ/Pl6gLsb/boz/TU/v37t3L7bffDoDVamXJkiVkZ2cfXCO6SWdtX758OU8++WSzilf3338/Vqu1X773UvAlEolkkCBdOhKJRDJIkIIvkUgkgwQp+BKJRDJIkIIvkUgkgwQp+BKJRDJIkIIvkUgkgwQp+BKJRDJIkIIvkUgkg4T/B+y50y54sj5AAAAAAElFTkSuQmCC", - "image/svg+xml": "\n\n\n \n \n \n \n 2022-05-26T10:48:31.522131\n image/svg+xml\n \n \n Matplotlib v3.5.1, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAECCAYAAAD9z2x7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAB2OUlEQVR4nO3dd3zN1//A8dcd2YvshARBJEbErr0VpVbNWt8udNJBKWqPlqpqrdaPNrSoVR1GbaWUEDMRIolMiSSyk7s+vz+uXCKRHUk4z8fDI3I/65x7b9733PM5531kkiRJCIIgCM88eUUXQBAEQXg6RMAXBEF4ToiALwiC8JwQAV8QBOE5IQK+IAjCc0IEfEEQhOdEuQT8efPmMWzYMLRareExrVbLiBEjWLFiRXlcskr67LPPOH369BO33717lxEjRpTZ9bp168aVK1eKdUxERATvvfdemZWhLBw9epQxY8YwcOBAXnrpJSZPnkxMTAwAZ8+excfHhwEDBjBw4EAGDBjA4MGDOXLkSJ7tj/4bP358ka79yy+/sH79+gL3KcnzDJCdnc3XX39tKHf//v1Zv349kiTx33//0apVK7Kzs3Mdo1KpeOGFF7h27RqrVq3ihRdeyFO3ZcuWFen6hb0fIyMjadasWbHrVVLNmjUjMjKyyPufPXuWfv36AfDpp5+yYcOGcinXr7/+ypYtW4Dc74d//vmHrl27MmTIEH7++edC3ycFee2110hMTCyT8j5KWeZnBKZNm8aQIUNYt24db7/9NgDr1q1DoVDw/vvvl8clq6SFCxcWuN3JyYmtW7c+pdLkLzo6mtDQ0Aotw6N+//131qxZw5o1a6hVqxaSJLF+/XrGjh3Ln3/+CYC7uzu//fab4ZigoCBGjhzJ4cOH891eHCNHjix9JfIhSRJvv/02derUYdu2bZiYmJCUlMSECRPIyMhg8uTJODk5ceDAAV5++WXDcQcPHqR27do0atSII0eO0LdvX2bPnl2iMhT2fhT0/P39qV+/PpD7/fDnn38ydOhQQ8wrjVOnTpX6HPkpl4BvYmLC8uXLGTlyJF27dkWSJH7++Wd27tyJQqHg119/5ZdffkGn01GtWjVmzZpF3bp1CQ0NZd68eWRkZBAXF4eXlxdff/01JiYmNG7cmO7duxMUFMSyZcs4evQof//9N0ZGRlSvXp3Fixfj6OiYqxzp6eksWLCACxcuoFAo6NGjB1OmTCEtLY25c+cSFBSETCajY8eOfPjhhyiVSpo0acL48eM5duwYaWlpfPLJJ+zfv5/g4GAcHR1Zu3Yt5ubmNGzYkHHjxnH27FkyMjL48MMP6dWrFxkZGcyZM4ewsDCSk5OxsLBg2bJleHh4MGbMGGxsbLh9+zYjR47k4MGDvPrqq/To0YP58+dz4cIFjIyMqFmzJosXLyYpKYn+/ftz8eJF1Go1S5Ys4d9//0WhUODj48P06dOxtLSkW7duDBo0iH///ZeYmBj69OnD1KlT831tfv75Z4KCglCpVPzvf//jlVdeAeDIkSOsWbMGtVqNqakp06ZNw8fHh5kzZ3L37l1ef/11TE1N6dKlC0OHDiUgIIDhw4dz6NAh3NzcWLNmDampqUydOpU1a9Zw8OBBdDodNWrU4PPPP8fJyYnU1FQWLlxIcHAwarWatm3bMnXqVMPz/tZbb3Hq1Cni4uIYO3Zsvq3uFStWMH/+fGrVqgWATCbjrbfewtXVFZVKlW+dvby8MDU1JSoqqtjv5VWrVhEQEEBcXBwNGjSgVq1aJCUlMXv2bEJDQ5k9ezaJiYnI5XImTZpE3759Adi2bRuff/45iYmJDBgwgClTphR4nXPnznH79m3Wr1+PQqEAoHr16nzxxReGco8cOZKdO3fmCvjbtm1j1KhRxa4X8MT3Y+/evTl69Chff/01Op0Oc3Nz5s6di6WlJVqtltmzZ3PlyhVSUlKYOnUqL774Yp5zr127lkOHDpGdnU1mZibTpk2jZ8+erFq1iqioKOLj44mKisLW1pYVK1bg5OTE+fPnmT9/PjKZjCZNmqDT6fIt99GjR1m3bh0qlYrExEQGDhzI5MmTi1TnJ8UEtVrNsmXLOHfuHFqtloYNGzJz5kzD35ePjw83btzgww8/5MiRI5w6dQpTU1MSExNJSkrC1dWVw4cPY2JiQmpqKubm5oW+T55Uj+nTpwMwbtw41q9fj1wuZ968ecTExKBWq3nppZeYOHEiGo0m37hhYWHx5CdAKkc//fSTNGjQIGnAgAHSsWPHJEmSpLNnz0qjRo2SMjIyJEmSpJMnT0p9+vSRJEmSlixZIu3Zs0eSJElSqVRSv379pP3790uSJEmenp7S7t27JUmSpOjoaKl58+ZSdna2JEmStGHDBunvv//Oc/1FixZJU6ZMkTQajZSdnS29+uqr0pkzZ6SpU6dK8+fPl3Q6nZSdnS299tpr0rp16wzX+fHHHyVJkqR169ZJzZo1k2JjYyWtVisNGjRI2rt3r2G/NWvWSJIkSYGBgVKLFi2khIQEad++fdL8+fMNZZg1a5Y0b948SZIkafTo0dL06dMN20aPHi3t27dPOnfunNS7d29Jp9NJkiRJX3zxheTv7y9FRERIvr6+kiRJ0sqVK6V3331XUqlUklarlT799FNp1qxZkiRJUteuXaUlS5ZIkiRJsbGxUpMmTaQ7d+7keT66du0qff7554b9XnjhBSk4OFgKDQ2V+vXrJyUmJkqSJEnBwcFS+/btpfT0dOnMmTPSSy+9JEmSJO3evVt67733JEmSpG+++UZq3769tHXrVkmSJGnIkCHSpUuXpN27d0uTJ0+W1Gq1JEmStHXrVumNN96QJEmSPv30U+mnn36SJEmSNBqN9PHHH0vr1683PJ9+fn6SJEnSlStXpMaNG0tZWVm5yp+YmCh5enoa3jv5ebS8OQ4cOCC1a9dOysjIkM6cOSM1adJEevnll3P9W716db7n++abb6QXX3zRUJ9vvvlGmjt3riRJkjRw4EBp8+bNkiTp35Pdu3eXUlNTpa5duxpe87i4OKlx48ZSdHT0E8ssSfr38Pvvv1/gPqmpqVKLFi0Mr21oaKjUrl07w9/BN998I7Vp0yZP3U6cOJHv+Z70foyPj5datGghXb9+3fD8vf7661JERITk6elp+Js8ePCg1L179zznjYyMlMaMGSNlZmZKkiRJf/zxh9SvXz9DGXOeJ0mSpAkTJkgrV66UsrOzpXbt2kmnT5+WJEmSfv/9d8nT01OKiIjIdW6dTieNHj1aCg0NlSRJ/z729vaWEhIScr3206ZNk3744Yc8ZXtSTFi1apW0ZMkSw9/g8uXLDX8rXbt2lb799lvDOR4996Pvhyc9nt/7JCUl5Yn1kCT930PO/8eMGSMdPnxYkiRJysrKksaMGSP9+eefT4wbBSmXFn6OMWPGcODAAerWrUvnzp0BOHbsGOHh4bn6ppOTk7l//z6ffPIJp06d4vvvvycsLIy4uDgyMjIM+7Vs2RLQd3V4eXkxaNAgOnXqRKdOnWjbtm2e658+fZrp06ejUChQKBRs3rwZgMmTJ/PLL78gk8kwNjZmxIgR/Pjjj7z11lsAhhaLu7s7np6eODk5AVCzZk2Sk5MN5x89ejSgb0F6enpy7tw5evfujZubG35+foSHh/Pff//l6vfMqcOjPD09USgUDB06lA4dOvDiiy/i4+OTq//yxIkTTJkyBSMjI8Nz+8477xi2d+/e3fDc2NnZkZycjJubW55r5TzvTk5OdOjQwfCNIS4uLleLWiaTcefOnVzHdu3alcWLF6PRaPjnn3+YNGkSp06dokuXLiQkJNCkSRM2bNjAlStXGDJkCAA6nY7MzExA/9pfuXKFHTt2AJCVlZXr/Dl1aNSoESqVioyMDExMTAzb5XK54ZwFuXPnDgMGDABAo9Hg7OzM6tWrMTMzA4rfpePr64tSmftP5f79+wQFBTF06FAAXFxcOHTokGF7Tl+yg4MD9vb2JCQk4OLi8sRryOVypEKynFhaWtK/f3927drFBx98wLZt23jllVcwNjY27FPcLp383o8XLlygfv36eHt7A9CrVy969epFZGQkRkZGhr8PLy8vEhIS8hxfo0YNli5dyu+//054eDiXLl0iPT3dsL1169ZYWloC0LBhQ5KTkwkODkapVBr+jvv165dvPWQyGWvXruXYsWP88ccfhISEIEmS4T1WmCfFhC+//JLU1FTDPQy1Wo2dnV2Bz1NRFPQ+KUo9MjIyOHfuHMnJyaxcudLwWFBQEB06dMg3bhSkXAM+6IOku7u74XedTseAAQP45JNPDL/HxcVhY2PDlClT0Gq19OnThy5duhATE5Prj8Dc3BzQ/3Fs3ryZK1eu8O+//7Jo0SLatGnDzJkzc1dOqUQmkxl+j4mJwdTUNE/A0Ol0aDQaw+85QfXx/z8u56t3zjkUCgU///wz27dv59VXX6V///5Uq1YtV+DOqcOjrK2t+e2337hw4QJnzpxh8uTJjB07lh49euQ6/+NlVqvVht8fDYwymeyJwSMnaIK+31ipVKLVamnbti1ff/21YVtMTAyOjo6cP3/e8JiNjQ0NGzbk6NGjpKamMmDAAL777jsOHTpEjx49kMlk6HQ63njjDUM3g0qlMnxI6nQ6Vq5cSd26dQFISUnJ9frk1CHnscfrYGNjQ+3atbl06RLt2rXLte2DDz5g0qRJQOn66N98803i4uIADPeb8nvNcj4AHi3/7du3cXV1zbU9Z5/CgnnTpk358ccf0Wq1ud5Xly9fxs/Pjy+//BKAUaNG8eabbzJx4kR+//13w4dnYe7evWto0ACGG4r51U2hUOSqlyRJ3LhxA0tLy1x/D4/u86hr167x9ttvM378eNq3b0+rVq2YO3euYbupqWmuc0iSlO9z9PiHLOiD3aBBg+jRowctW7ZkyJAhHDp0qNDn99FzPikmzJgxw9AwTU9Pz3WDPL/nqajXg7zvE2dn5yLVQ6fTIUkSW7duNTRYEhMTMTExwcLCIt+4UdAAhKc+LLN9+/b8+eefhj+qX375hXHjxgH6u9zvvPMOffv2RSaTcenSpVwjfXIEBQXRr18/6taty4QJExg/fjw3btzIs1/btm3ZvXs3Op0OlUrF+++/z7lz5+jQoQNbtmxBkiRUKhXbt2/PE0CKYs+ePYD+DR4aGkqrVq34559/GDRoEEOHDqVOnTocOXIk3zo86ujRo4wfP55mzZrx3nvvMXDgQIKCgnLt07FjR7Zu3YparUan07Flyxbat29f7DLv3r0b0N+MPX36NG3btuWFF17g1KlThISEAHD8+HFefvllsrOzUSgUuT5YevTowVdffUXbtm2xtLSkTp06fP/994ZWX4cOHdixYwdpaWkArFy50nA/oUOHDmzatMnwvE+aNMnQwiqqd999l4ULFxIeHg7oR3+tXr2aoKAgPDw8iv18PO7777/nt99+47fffjN848iPpaUljRo1MrwHYmJiGDlyJKmpqSW6brNmzfDw8GDx4sWGQHPv3j0WLFhAzZo1DfvVr18fNzc3li9fTrNmzXB2di7S+Z2cnAz1+u233wzfWvPTtGlTQkJCuHnzJgCHDx82NNCK4ty5czRu3Jj//e9/tG7dmsOHDxf6N+Dp6YkkSRw/ftxwzUe/TecIDw8nLS2NyZMn061bN/777z9UKlWh3/pyFBYTcs41a9Ysvvrqq3zPoVAocjUQC/Kk90lwcHCB9ci5hqWlJb6+vmzcuBHQN5JyBiAUJW48rtxb+I/r2LEjb775Jq+99hoymQxLS0u+/fZbZDIZU6ZM4Z133sHGxgYzMzNatWqVp1sB9F8l+/Tpw5AhQzA3N8fU1DRP6x4eBocBAwag1Wrp27cvvXr1olWrVixYsID+/fujVqvp2LEjEydOLHZdLly4wPbt29HpdKxYsQIbGxtee+01Zs+eza5du1AoFDRq1Ijg4OACz9OpUydOnDhBv379MDc3x8bGhvnz5+faZ9KkSSxdupSBAwei0Wjw8fFh1qxZxS5zdnY2gwYNQq1WM3PmTOrUqQPoh9J++OGHhlb/mjVrMDc3p379+igUCl555RV+/fVXww3mjz/+GMDwh9K8eXMAhg4dyt27dxk2bBgymQwXFxeWLFkC6If9LVy40PC8t2vXjjfeeKNY5e/fvz+SJPHhhx+i0WjIzs6mUaNG/Pjjj7m6NgryaJfPo/7v//4v19f4wixfvpy5c+fi5+eHTCZj4cKFODg4FHjMm2++yYgRI/L9MPnmm29YsWIFgwcPRqFQoNPpGDhwIK+//nqu/UaNGsWUKVPYtGlTnnP89ddf+Pv753rMxcWFtWvXFrle9vb2LFu2jGnTpqHVarG0tCzWcOp+/fpx8OBB+vbti5GREW3btiU5OdnQCMiPkZER3333HXPmzOGrr77C29s739eiQYMGdOnShT59+mBtbY27uzv16tUjPDy8SK//k2JCp06dWLp0KYMGDUKr1eLt7c2nn36a7zk6deqU5++zIPm9T3x8fJ5YD3d3d3r27MmoUaNYvXo1y5YtY/78+fTv3x+VSkW/fv14+eWX0Wq1hcaNx8mkon4XEnJp0KAB//77L7a2thVdFKEK2b59O9WrV6dnz54VXRThOSRm2grCU6RQKOjSpUtFF0N4TokWviAIwnNCtPAFQRCeEyLgC4IgPCdEwBcEQXhOPPVhmTkeHzomCIIgFE2LFi1KdFyFBXwoeaErq8DAQMN09OfR81z/57nu8HzX/2nXvTSNZdGlIwiC8JwQAV8QBOE5IQK+IAjCc0IEfEEQhOeECPiCIAjPCRHwBUEQnhMi4AuCIDwnRMB/zPvvv8+6desMv6elpfHiiy8WurBAcWRnZ9OtWzcAFi5cSHR09BP3+/XXX/M8Hh8fz5w5cwDo1q1brpV5CnLjxg3OnTsHwJQpU5646Hdp5CzKMmbMGMOCKqV17tw5w/P/7rvvAnDp0iV69uzJ8uXLS1SXv//+m7t375ZJ+YRnxLU98G0rUGcVumtVJQL+Y+bMmcPWrVu5desWAF988QXDhw/Hy8urXK732WefGZbFe1x8fHy+Ad/BwcEQ8Ivj4MGDhnqtWLGiyAuGVLSdO3caVkj79ttvATh58iRjx47lo48+KlFdfvrppwIX5BCeP+mBe7mUGgaxlyu6KOWmQmfaFmSnfyTbz0eU6TmHtXRjSIuaBe5ja2vLrFmzmDlzJlOmTCEyMpJJkybxxhtvkJ2djYmJCfPnz8fFxYXly5dz9epV7t+/j5eXF2PHjmXVqlVcvHiRjIwMFi5caFi/NT09nY8//piUlJRca/yOGTOGOXPmcP/+fZYuXYpSqcTMzIyVK1eydu1abt26xbfffoskSbnOO336dLZv3w7A7NmziYqKws7OjqVLl/LXX39x+/ZtPv74Y7Kzs+nTpw+//PILu3fvxsjIiEaNGjF58mT27dtHfHw8M2bMQKvVIpPJmDlzJl5eXvTq1YvmzZsTGhqKnZ0dq1atyrXWanBwMEuWLEGr1ZKUlMScOXMMa24+yaVLl1i0aBE6nQ4nJyeWLVtGeHg4CxYsAKBatWosWrSI69evs2zZMoyMjGjXrh0nT57k2rVr1KtXj6FDh7JmzRp27dqFkZERzs7OLF68mH379hETE8PMmTNRq9WYmpqyYsUK7t27l6ecKSkpBAYGMm3aNH7++We2bdvGH3/8gUwmo2/fvowdO5aDBw/y/fffo1QqcXR0ZMWKFbnWAxaePb8k+LPKxYmjYSexdWtd0cUpF+IdnI9u3bpRp04dpk+fzuLFi1m6dCljxozBz8+P119/nWXLlpGWloa1tTUbN25k586dBAQEkJCQAICHhwdbt241BHuArVu34unpyZYtWxgxYkSeax46dIg+ffqwefNmRo4cSUpKChMnTqRevXqGboyc8z66YDnAyJEj2bx5MzVq1DB8CDzOycmJQYMGMX78+Fwr23/xxReMHTuWLVu28NlnnzFjxgwAIiIi+OCDD9i2bRuJiYlcuXIl1/lu3brFtGnT+PHHH3nzzTfZtWtXoc/r7NmzWbRoEb/++iudO3cmJCSEWbNm8fnnn+Pn50enTp344YcfAH131s8//8y7775Lx44d+eSTTwzfhHx8fAx1eXTlqKVLl/LWW2+xbds2xo4dy/Xr1/MtZ5cuXfD29mbp0qXcuXOHv/76i59//pktW7Zw6NAhbt++zR9//MHrr7/OL7/8QteuXcW3gWddegIhmlR0MhlBUacqujTlptK28Ie0qFloa7w8DRw4kKysLJycnAgODmbdunX88MMPhjVfTUxMSExM5MMPP8Tc3JyMjAzDwsY568Q+KiwsjM6dOwP6RaJzVrPPMXHiRNauXcu4ceNwcnLCx8cnT790fuc1MjLC19cXgObNm3Pq1CmaNGli2F7Y+jYhISG0atUKAG9vb2JjYwGoXr06Li4ugH5N1MfvEzg6OrJ69WpMTU1JT0/H0tKywOuAflHunA/BoUOHGq4/d+5cANRqNbVr135iXQsTGhpKs2bNAAxrxp4/f77AcgYHBxMdHc348eMBSE5OJjw8nOnTp7Nu3To2b96Mh4cHPXr0KHZ5hCokyp/wB3+TQUk3aVfBxSkvooVfBB4eHnz88cf4+fkxd+5cevfuzYkTJ4iJieGrr77iww8/JCvr4Y2e/L76161bl4CAAACuX7+eZ9X7vXv3MmjQIPz8/Khfvz7bt29HLpcbVrF/0nnVajWBgYGAPrjVr18fExMT4uPjAbh27ZphX5lMlut8OeU6f/48oE8CZW9vb9i3IAsXLuT9999n6dKleHp6FvrBAvoPibCwMADWr1/P33//TZ06dVi6dCl+fn588sknhuX/Hq2rTCYr0vnr1q1r+Cayd+9e/Pz8nljOnHN6eHhQr149fvrpJ/z8/Bg8eDANGjRg27ZtvPfee2zevBnQ3+QVnl1S5DnCjIwACNKlQ1p8BZeofFTaFn5lMm3aNObMmUN2djZZWVl89tln1KxZk9WrV/Pqq68ik8lwc3MjMTHxiecYOXIkU6dOZeTIkXh4eGD04M2Vw8fHh5kzZ2JmZoZcLmfevHnY2dmhVqv58ssvMTU1zfe8RkZG+Pn5ER4ejqurKx999BGZmZn88ssvjBw5kkaNGmFhYQFA48aN+eKLL3J1NU2dOpVZs2bxf//3f2g0GhYuXFik5+Tll1/mgw8+wNraGmdnZ5KSkgo9Zu7cucyYMQO5XI6DgwPjx4/HxcWFadOmodFokMlkLFy40HCDNkfTpk1ZtmwZNWsW/I1v6tSpzJ49mzVr1mBqasqXX36JRqPJt5zNmjVj6tSp/N///R9t27Zl5MiRqFQqfHx8DN+wJkyYgIWFBebm5mId2mdcUuRZUhX6RkaQsTFEnYcGfSq4VGWvwta09ff3F+mRnzHPc/2f57pDFa+/JHHxq7qMtbegiV0jrt67ypkaQzDvObdIh1dEeuSSxk7RpSMIwvMtIYQwSd8l+2KdPkgyGcHRZyq4UOVDBHxBqAJi02Ppv7s/ESllO1RZAKLOE26kRClT0M1dPyHyxv1b8Nj9rmeBCPiCUAUExAcQlhJGQHxARRel9FQZEHu1okvxUOR5wk3McLNyp6ZlTawVpgTKdZBws6JLVuZEwBeEKiAyNRKA6LT803BUGVoN/DIC1raHnW9WjtEwUecJM7Wglk0tZDIZ3tXqEWRiBJHnK7pkZU4EfEGoAu6k3AEgJj2mgktSSkfmQehxaDgAru2G71rBxS1QMWNHQJ2JLvYKd2RaalvXBqCBYzNuGhujiThbMWUqR4UGfJ1Ox+zZsxk+fDhjxowhPDw81/bt27czePBghg0bxtGjRwGIjo5m9OjRvPrqq7z99ttkZmaWT+kF4TkRkarvu49Ki6rgkpTCtd1waiW0fB2G/QQT/wH7BvDb2/Bjf0gom2R7xRJzmVi5hAodtaxrAeBl541KJiM05tzTL085KzTgHzp0CJVKxbZt2/joo49YsmSJYVt8fDx+fn5s3bqVDRs28NVXX6FSqdi0aRN9+vRhy5Yt1K9fnx07dpRrJcqSyJZZdIcOHWLMmDGMGTOGoUOHcvr0aQBD+oKcbcOHD+evv/4C9LmDXnnlFcO2MWPGcOzYsQKvs2vXLg4fPpzvtrNnzzJlypRS1aMqyAn4VbaFHxcEe96Bmq2g94MY4ugF/9sH/VZAzGVY3RZOLAOt+umVK+o8YUr9nBhDwLfVJ0oMSr2jv99QhiRJ4uiNOLLU2jI9b1EVOvHK39+fjh07AuDr68vVqw9vtly+fJlmzZphbGyMsbEx7u7uBAUF5Zqin5aWhrOzczkVv+zNmTOHIUOG0L17d+rVq/dUsmU+SU62zJw0BDlKky3T3t6eVq1asWLFimIf/6gLFy6wadMm1q1bh4WFBUlJSQwaNMiQPqJfv358/PHHANy/f5+XX36ZPn30E1mWLl2aa/JXYQYPHlyqslZ12dps4jLiUMgUxKTFoJN0yGVVqDc2Kxm2vQrGFvqWvfKRzKZyObR8DRr0hX1T4ch8uLoT+n8Dbq3Kv2yR5wm30s8uz+nSqWNTBxOZkiBjJf1jAqBW2SRakCSJJfuCWHfiNn6vt6ZjfYcyOW9xFBrw09LScuUfUSgUaDQalEolaWlpWFlZGbZZWFgYAvzy5cv5448/UKlUhuRfj8tJCZAfm9C/sAn9vTh1KVRynf4k1+lb6H7jx4/nww8/ZPTo0QQFBdGjRw9GjhxpyJY5adIkHBwc8PPz49atW6SmplK7dm3eeustZs+eTVBQEFlZWbz77ru4ubkBkJmZyYoVK0hLS8PFxQWVSkVgYCCfffYZkyZNIjU1lY0bN6JQKDAxMWHatGn83//9H8HBwcyZMwedTpfrvKtWreKLL75ApVLxwQcfEBcXh42NDR988AH//PMPUVFRjB07FpVKxTvvvMOSJUvYtm0bRkZGmJub8+WXX/Ldd9+RlJTEt99+a8iW+cYbb1CnTh0mTZqEl5cX0dHR2NjYMG3atFzZMr///nu6d+/OnTt3DI/Nnz8flUpFdHQ0CQkJhtc3NjYWuVxOUFAQ6enp3L59u9BvF++//z6urq4olUpq1KhB9erVefHFF/n++++5efMmarWakSNHYm5uTlBQECNHjuT+/fu0atWKkSNHluTtUSpZWVkFvp9LIzIzEgkJD3MPbqbf5MzlM1Q3rl4u1yqpJ9Zf0lHz1KdYJoYS3vU7MqOSISo5/5M0mY6lbXuc/Zeh3NCTpHpDiPeZhM7IotzKXTfsX4Lt7DGVZxMfFs892T0A3ExrEGScxt0Lf5GYUfBzXdTXftuVJDZdSKJfA2vs1PEEBt4rkzoUR6EB39LSkvT0dMPvOp3OkPjr8W3p6elYWVkxe/ZsFi9eTMeOHTl27BjTpk1j/fr1ec5d4Oy07AC4W7YvtIWrK65FmBHn7e1NUFAQa9eu5ZdffmHx4sVMnDiRzp078++//7Jjxw7mzp1LnTp1DOl+X3rpJdLT03FwcMDY2JiZM2fmOueGDRto3rw5U6ZM4dKlS0yZMgVvb28sLCzw8PBgx44dDB48mHHjxnHkyBGcnZ359NNP+fDDD5kzZw6rVq0ynDcyMhIzMzO8vb0xNjZm4sSJ+Pr68sUXX3D58mVcXV3JysrC29ub7OxsjI2N6dChA8OHD8fe3p4BAwawcuVKvLy8+OSTT5g4cSI9evQwfADt2rWLu3fv8ssvv+Di4sKIESPQaDQ0btzYUB+VSkXbtm1zffPJmXEYFBTEjh07iIyMRCaTYWZmxtdff22o77p163KlUl65ciW2tra5ni+tVsu0adNo2LAhq1atwt7enqgoff/1H3/8QXJyMhs3bsTb2xu5XM6PP/6IVqulS5cuzJs3r0Tvj9Ioz9mWcRH6VBNdPLpw88pNLFwt8HaoXLNan1j/E19C1AnovZTaLxThg9jbGzqOgiMLsD27Dtu7p+GlZeD1UtkXOi0e0mOIqV2HOqauNGzY0LCpaVJL/k4Px1EVjlMhr2tRXnu/M+FsunCbgb6ufDXMF7m84FxVBfH39y/xsYUG/ObNm3P06FH69u1LQEAAnp6ehm0+Pj58/fXXZGdno1KpCAkJwdPTE2tra0PL39HRkZSUlOKXzHek/l8FEdkyC86W6erqSkxMTJ6Ab25uDuTu0nlcfl06mzdv5sCBAwAsW7Ys3/qGhoYa6mpjY8PkyZM5e/Ys9evXNyyA8vjz+izI6b9/weUFvr/yPTFpMTR1aFrBpSqCm4fgyEJoMgzaTCj6cSZW0GcpNBkKe9+HraPAuz/0XQ5WTmVXvij9sMswXRY+1k1ybfK29WanHGJiLpD/8kRFt+diFLN/u0oPb0e+HNq0VMG+tArtCOzZsyfGxsaMGDGCxYsXM336dDZu3Mjhw4dxcHBgzJgxjBo1inHjxjFlyhRMTEyYNWsWX331FaNHj2bhwoXMnj37adSl3IhsmXkNHjyYDRs2kJGhv6mVkJDAqlWrSjwia/To0fj5+eHn54eTk/6P+vH6enh4GLJhpqam8vrrrxeprFVdRGoEFkYWNLTTt0Cj06vAWPzEUNj5Ojg1hv4roSSvUc2WMOE4dP8cbv4Ne98r2zJGnkclUxCdlUAtm1q5NnnZ6RsygaoESI0t8SUOXb/LR79e4oU6dnw7qjlGioq991Jocygnc+OjHm2dDRs2jGHDhuXanpNu9lkhsmXm1axZM4YNG8Zrr72GUqkkKyuL0aNH4+XlxfXr1wt9Ph/t0unTpw+jRo0q9Jrdu3fn33//ZeTIkWi1Wt55550ilbWqi0iNwM3KDUtjS6yMrSrV5KvErESmn5zOCPsRePOgW0OVAdvG6P8/3A+MzUt+AYURdPwQMpPgzBr9DWBTm9IXHCDyHBHODZBIM9ywzVG/Wn1kyLhhbEz3yPPg3a/Ypz8dco+3f75AY1drvh/XElMjReEHlTepgpw/f76iLl1url+/XtFFqFDPc/3Ls+79dvWTphydIkmSJL2y9xVp0t+Tyu1axeV3zU9qvKmxtODQAv0DOp0k7XhDkj63kaTgv8vuQnfOStLn1pJ0aXvZnE+rlaRFNaVDO0dJjTc1lq7GX82zS/9d/aR3V9eTpL8/L/BU+b32F+8kSQ1n7ZN6LD8mJaZll02ZHyhN7KxCY7sE4fmj1WmJSouippV+LQAXC5dKNRZ/f9h+AAJTHoxSObsOrmyHbp9B/TJcJaxGS7B0gqAyGrl3LxiyUwi30A8WcLd2z7OLl503QWbmxU6xEHw3lfEb/8PW0pjNb7ShuoVx4Qc9JSLgC0IlFpcRh1qnxs1KP7zX1dKV6LToIq0AVt6i06K5FH8Jc6U5QWlBqG+fgIOfQYOXoMNHZXsxuVw/Vv/mIVBnFb5/YR7csA1XKrAztcPK2CrPLl62XsTKdNyPDQBd0SZK3UnIYPQPZzFWyNny+gs4WeffFVtRRMAXhEosZ4SOIeBbuJKhySA5+wlj2Z+iA2H6UVVv+bxFti6boN/egOq1YdAafYAua979QJ0Ot4+V/lyR58HEhjBVkmGG7eMMM25RQXzhM+3vpmTx6oYzqLQ6Nr/RBne7Uty7KCci4AtCJZYn4FvqBwlWhpE6+0L30diuMQNq9wbgvFwDw7eU3U3Vx9XuBCY2ZdOtE3UeajQjPCWc2ja1893FEPCNjQvt1klKVzFmw1kS01Rs+l9rPJ3yfmOoDETAF4RKLCI1AqVcibO5Pj2Ji6V+bkRMWsX244enhBOYGEjvOr2xP76c2io1/rWa6/PjlBelMXj2ghv79GmWS0qVAXevk+riQ0JWwhNb+LamtjiaOxJkbmHoAspPhlrH+I3/EZaQwffjWuLrVq3kZStnIuALQiUWkRpBDcsaKOT6IX2uFvoWfkVnzdwfqr9Z+6IKOL+BxqZuXMiIRlvEvu4S83oJMhIgohRLEMYEgKTljq3+W9OTAj7oJ2AFmVlCZP6zW7PUWuYdieVqdAqrRzWnXV37kpfrKRAB/zEiW2bR5ZctU5KkPDl2ACZNmsTp06dFtsxiikiNMIzQAahmUg0zpVmFj9TZH7af5nZNcP57Lrg2o06twaSqUwlOCi7fC9frCQoTCPyj5Od40D0TZmYNkGcM/qO8bL0IRU3mvSDITsu1TZIkPtp+icuxWSwf2pQeDctwFnA5EQH/MXPmzGHr1q3cunUL4Klky3R1zX/ydk62zMeVJltmTr1WrFhhSEdQEjnZMteuXYufnx/r16/Hz8+PkJAQhgwZwm+//WbY9969e4SGhtK2bVtAn1ohZ1atn58fXbp0KfBagwcPpnv37iUua1UlSRKRqZG4WboZHpPJZLhauFbo5KtbSbe4df8WvZMT9EFw4Fq8rfV5lvzvljzPS5GYWELdrhD0Z8kXTYk8B9VqEa5KRIbMcH8kP162XuiQuKVUQPTFXNt+9Y/kzysxjG9uy8BmNUpWlqes0iYe2Ruyl903d5fpOQfVH8TLdV8ucB9bW1tmzZrFzJkzmTJlCpGRkUyaNIk33njDkC1z/vz5uLi4sHz5cq5evcr9+/fx8vJi7NixrFq1iosXL5KRkcHChQsNs1rT09P5+OOPSUlJwd394ZjfMWPGMGfOHO7fv8/SpUtRKpWYmZmxcuVK1q5dy61bt/j222+RJCnXeadPn8727dsBmD17NlFRUdjZ2bF06VL++usvbt++zccff0x2djZ9+vThl19+Yffu3RgZGdGoUSMmT57Mvn37iI+PZ8aMGYZsmTNnzsTLy4tevXrRvHlzQkNDsbOzY9WqVbmyZf7666+MGzfOMIu3evXqfPnll9StW5chQ4YwduxY3ntPPxV+z549DB48uFgpEPr160ft2rUxMjLCw8MDe3t7RowYwfz587l8+TJqtZr33nsPKysrwsPDeeONN0hMTKRr166G61Z1ydnJpKpT8wQkF8uKHYu/P2w/cmT0DPkPus8FRy/sEyRqWNbg/N3zjG44unwL4NUPgvdD7GVwKUFOoSh/cH+BsJQwXC1dMVY8ueGTc+M20MSYJlHnoY4+VfydhAzm7r3GCx62vNK4nG5SlwPRws9Ht27dqFOnDtOnT2fx4sUsXbqUMWPG4Ofnx+uvv86yZctIS0vD2tqajRs3snPnTgICAkhISAD0OV+2bt2aK4XB1q1b8fT0ZMuWLYwYMSLPNQ8dOkSfPn3YvHkzI0eOJCUlhYkTJ1KvXj1Deumc85qYmOQ6duTIkWzevJkaNWoYPgQe5+TkxKBBgxg/fjw+Pj6Gx7/44gvGjh3Lli1b+Oyzz5gxYwYAERERfPDBB2zbto3ExERDDpsccXFxhtTPOSwtLZHJZDg5OVGnTh1DVr/ff/89V077adOm5erSyS8lRUZGBm+//XauvP2HDh0iKSmJHTt28NNPPxnWZsjOzmb16tVs2bKFzZs351v/qujxETo5aljWqLA+fEmS2B/yB62y1djXaA1tH6a3aOHUAv+7/uU/R6BBH5DJS9atkxIDKVFQo6V+hE4B3Tmgf66tjKwIsrIzdAVpdRIfbg9ALpOxfJgv8iqUy6nStvBfrvtyoa3x8iSyZZY8W2atWrUYNmwYv/32GwqFglq1ahmSsoHIlllUTwr4LhYupKhSSFenY1GOueLzE5hwnfD0KManZ8LY1SB/+K2vpVNL9obsJeR+CPWq1yu/QljYg3s7CPpDP6O3OB6MtpFqtCDs9o/41vMtcHeZTEYD2wbc0AbpA74kse5ECOfDk1gxvCk1qpmRUnkmPhdKtPCLQGTLzKuwbJmdO3fm4sWL7N69m+HDhxd4LhDZMvOTE/AfvWkLj4zFr4B+/P1nv0IpSfRoMxnscn9ot3RuCTyFfnzQj9aJu178dXAjz4PciHvVapChyShwhI7hUrZeBEtZaNNiuREcxIq/g3mpiQsDfatGv/2jnp3mUDkS2TLzKihbJuhXRuvevTv79+/Pc4NZZMssmojUCBzNHDFV5n7tXSwejMVPj6F+9fpPrTxSUjgHYv/lBYUF1V54P8/2mpY1cTR35Pzd8wz3KvxDvlS8XoID0/Wt/PYfFP24KH9wbkxYhr5Z/qRJV7kuZetFlqQh3EjJtj27qW7emgUDG1fNhkbpc7eVjMiW+ex5nutfHnUf+9dYaexfY/M8HpceJzXe1Fj6OfDnMr/mE2m1UsCmHlLjTY2l3y5tyLM5p/5Tj0+Vum7rKul0uvIv05oOkvRDz6Lvr9VI0kJXSfrjI+nXG79KjTc1lqJSowo9LCghSGq8qbG098sa0trPRkrHbsTl2v603/ciW6YgPIMiUyPzHTJoZ2aHkdzo6c62Pb+B/cnBGMkUdPUa+sTdWji1ID4znjupd564T5nx7g8R/0Hq3aLtHx8EqjSoqb9hayw3xtnCudDDPKp5oJQZcdLIjhdtIuns+fQXHy8rIuALQiWUpckiLjPuYcDXauDcD6BRIZfJcbFweXr5dBJC0P49mwM21elYs3O+mSVz5PTjn48tXkrhEvHqB0hw48+i7Z+TD6dGS8JSwnC3dkcuKzwEZmSBLtuJG6bm1FLdLF1ahwomAr4gVEKRqZHAIyN0bv0Nf34EwfuAB2Pxn0YLX6eFPW9zwdSUeLT0qdOnwN3rWNfB1tT26dy4dfQGW4+iD8+MPAem1cCubpGGZOaYvfcqqgwX7plrQZ2hv1lcRYmALwiVUJ4hmVEPAmicfkTWUxuLf2Y1RJzhQINOmCnN6FSzU4G7y2QyWji14Pzdp9DCl8n0N29DT+iXPixMlD/UbIlG0hKRGlGkETp7L0XzW0A0nWr7kqLL5K5CUWAitcpOBHxBqITyBvwL+p8PWpcuFi4kZCWQrS1aHqUSib8Bh+ej8ezL3+mhdK7ZGXOjwnO8t3BqQUx6zNMZNurVH3RqCD5Y8H7ZqfoPyxotiUmLQaPTFBrwY5Izmbn7Cr5u1XizdXuAXBOwqiIR8AWhEopIjcDKyAobExt9zpicPC5x+iR+OWPxy61bR6uB3RPB2IL/2owhMSuJ3g/y3hempdODfvyn0cqv2erB0oeFdOtEXwQkqKnvv4eCh2TqdBIf/3oJtVZixXBfGtp7I0NGoF1NEfAFQShbEWn6LJkymQzuh0NmIlg4QGIIaFSGNMnl1oo+tQKiL8BLy9kfewYLIws61OxQpEPrV6+PtbH10+nHz1n68FYhSx8abti2IDwlHCg4LfKP/4Zx6lYCs/o1pI69BeZG5tSyrkWQqZl+PdyidCFVQiLgC0IllGtIZk53js9w0Gkg4Vb5rnwVewWOLYVGg1B79+fQnUN0c+uGicKk8GMBuUxOc6fmT2ekDuiXPlSlFbz0YZS//gavuS1hKWFYGVtR3aR6vrvevJvKkn1BdPNyZGTrh8Ni9SkW0gHp4WtSxYiALwiVjFanJSot6mHAj74ICmNo/CABXdx1HM0dUcgUZd/C16hg9yQwqwZ9l3M6+jSpqlR61ylad06Olk4tuZN6h7iMuBIVIy1bw624VE7ejGf7uQi+OXyTc2FPmMleuxOYWD956UNJ0rfwa+i7mnJG6OQ3U1al0TF5WwAWJkqWDGmSax8vWy+ishNJlsuq7I1bkVpBECqZ2IxYNDpN7oDv1BgcG4FMAfFBKOVKHM0dyz5N8sllcPcKjPgZLOzYd2EfNiY2tHVpW6zT5PTj+9/1zzOUU5IkQuLTib6fSUxyJjHJWcQmZxGdnEXsg99Ts/KOdVcelrFyRDNe8nF5bIMx1H9k6UPFY2EtJQrSYqHmw4DfwqlFvuVeeTiYa9EprB3dAker3CktvG29Abhh70HrJ6yAVdmJgC8IlUyuETo6HUQHQNPhYGSq75Z4MDTT1bKMF0KRJPjve/2EJq+XyNJkcfTOUfrU6YORwqjw4x/RwLYBFkYW+Qb8xfuCWH/ituF3mQzsLU1wsTGljr0F7era42xjiouNKc7WprhWM8PcWMEEP3/e++UCWeqmDGmRO6Ec3v3g6g790oe1H7vXEKlf5Y2aLcnSZBGTHpNv//3x4HjWHAthaIua9G6cdwZuA9sGAATZ1qR1hD5zJlUsn44I+IJQyeQK+Am3QJUKrs30Gx294K5+aKarhSvn7p4ruwsnR+pvDnt0AeBk1EkyNBnF7s4BUMqV+Dr65unHD4i4z/cnbzPQ15VXX6iFi40pjlamGCsL713+6fXWvPnTeT769RKZai2jX3gkaOcsfRj0Zz4B/7x+m1MTwlNCgdwjdCRJYtPpMBb8GUh9Rytm92+Y7/XtzexxMHMgyNgE0uPh/h2oXvhY/spE9OELQiUTkRKBkdwIR3NH/UgZANfm+p+ODSEpFNRZuFi6EJcRh1qnLpsLxz5Y5ObBKlL7Q/dja2pr6J4prpZOLQlJDiExS9/3rtbqmL7rCk5Wpswf2JhWtW2pWd28SMEewNxYyYZxrejm5cjMPVf54eTDbwmGpQ8D/8i79GGUP7j4gNLYMEInZ5ZtllrLJzsuM/f363TzcmTn2+2wMn3ytxkvWy8CtQ/Wtq2C/fgi4AtCJRORGkENyxoo5Ar9aBAjc3DQdyfg4AWSDu4F42rhik7SlfjGaB6xlwEZODYkQ53BicgT9KrVC6W8ZB0BOR8UF+7qP7Q2/BNKYEwKcwc0KjCoFsTUSMHa0S14qYkLC/4M5JvDNx8u8uPVD5LvPKjHA1q1vkvskRu2AO5W7txNyWLE+jPs8I/k/e71WTe6BZYmBdfVy9aL0PQYspWmVXI8vujSEYRKJiI14pEbthf0Le6claUc9TcOiQ/C1V6/T3RaNDUsy2AxjtgrYFcPTCw5dvsvsrRZJerOydHIrhGmClPO3z2Pp2U7vj4UzIuNnHixUeEZKgtirJSzcoQvJkZyvvo7mAyVlmm9GyB7dOnDnLVu466DJtNwwzYsJQxHc0eCYrKZ6OdPWraGtaOb07uxSwFXfMjL1gutpOWWS0MaVcGAL1r4glCJSJL0MOBr1fognNOdA2BbF+RKiLte9itfxVwGZ/3ymPvC9uFo7kgzx2YlPp2RwoimDk3xj/Xnsz1XUMrlzH25cZkUVamQs+yVprzaxp21x0OY+/t1dGZ24N4296zbRyZcgb6Fby5zZsS6M5gaKdj1drsiB3t4uKh5kG0NiLmkH8ZahYiALwiVSGJWIhmaDH3AjwsETRbUeCTgK43Brj7EBRlyuZfJ5KvMJH13iIsPKaoUTkWdonft3kVKH1yQFs4tuJF0g5Mhd5jauwHONvmv3FYScrmMBQMb80aHOmw6Hcb0XVfQNXhs6cMofzC3g+q1UWt1BN67TXCkGa3r2LL33fZ4OVsX65o1rWpiYWRBoIkxaLPh7tUyq8/TIAK+IFQiuUboGG7YPtbKdvSC+EBMFCY4mDmUTQs/54atcxOO3DmCWqcucu6cgnjZ+CIhUd/9Hq+2KfmIlnOx5whOCs7zuEwm47OXvHm/Wz22nY9g3q0HC98HPciR/2DCVWKGmlEbjqCSUmlVw5NN/2tFNXPjYpdDLpPToHoDgjSp+geiijceXyfpOBh2kAx1RrGvXRZEwBeESiR3wL8Ipjb6sfePcvCGpDBQpZddXnxDwPdhf+h+aljWoLF96btffv9PiaRT0MorCYW8ZGPWbyXdYuLfE5lxcka+22UyGR/2asC03l5sui5xx7geusDfIfM+3LtBnE1jXv72Hy7H3QLgzRfaoFSUPPR52XoRnBqO1sKx2DduV11cxUfHP+LKvSslvn5piIAvCJVIZGokMmTUsKqhH6Hj2izv5B7DjdsbuFq4lk2XTsxlsHQmSWnEmZgz9K7du9SLdJ++dY9dF+JwMvEkLL1kXR9qnZoZ/8xApVNxI+kGgQmBT9x3Upe6zOnfkB3pvhB5DtX1vwCYftYUjVbivV7VgIKTphWFl60XmZpM7tTwKdbQzN03d/PDlR8YUn8IrZ1bl6oMJSUCviBUIhGpETiaO2Kik/R90Q9u2N6KS2Pc//1H6L30XCN1XCxdiEmPQSfpSnfh2Cvg4sPf4X+jlQpf2aowWWotn+25Si07c/p5tud6wnXS1enFPs/3l78nMDGQue3mYiw3Zvet3QXuP759HRp1G4Ucifg/5gCgcvZl73vt0SnjUMgU+g/TUvC20z//QdWdIeEWclVKwQdIEv/d3Mu803Noa+zAZ6GByBJulaoMJSUCviBUIoYROrFX9JkxXZs9SOh1kePB8aw8FAzV6+iTqcUFUsOiBhqdhviM+JJfVJ2lX+DbuQkHwg5Q27o2ntU9S1WP747eIvReOgsHNqGNayu0kpaAuIBinePavWusv7yefh79GFx/MN3du/NX6F+otAWPjHmxWzfSLNyoId0lzqQWP0zojqOVKeEp4dS0qomRvGRzAHLUtamLUq7Uz7gFzBIeW/IwPQFu/g3HlsCWodz+qh6TT06nliqLZbevY5Sd/HCY7VMmAr4gVCKGgJ+z4EmN5qw6cpOrUSk0c6/G3kvR3LmvAntPiAvExVI/pLBUSdTiA0HSku3ozYW4C3R161qq7pzgu6msORbC4OY16FDfHl8HXxQyRbHy42dpspjxzwzszOyY3mY6AAPrDSQ5O5mjEUcLPlgmw7LpQAAcvdpjotQH1/CU8FJ354B+uGm9avUI0iQDMqzv/A3/fgc7XoOVTeFLD9jyChxbQmJyBO842mJkbMG33b7F+tMIeG1/3vsyT0mhAV+n0zF79myGDx/OmDFjCA8Pz7V9+/btDB48mGHDhnH0qP6FyMjIYOrUqYwaNYqhQ4dy+fLl/E4tCMIjMtQZJGQlPByhY+GIf5IZ3x29xdAWNVk7ugVKuZy1J0L03TrxQWWzEEqM/u/zmqkpGp0GX0ffEp9Kp5OYvusKVqZKZr6kz0ljbmROI7tGxVoB65uL33A7+Tbz283H2lg/dLKNSxuczJ0K7dYBwPtl/U+3VvpySTrupN4pk4AP+n78oPu3kBy9qRb2JxyYARH/6Sd89ZwH4/8ke+otPqhdn3iZxDcvfk/Nuj2hmEnoylqhM20PHTqESqVi27ZtBAQEsGTJEtasWQNAfHw8fn5+7Ny5k+zsbEaNGkX79u3ZsGED9evX54svviAoKIigoCB8fHzKvTKCUJXlGqET9T0al2ZM2X4Z12pmzO7fECtTI15pWZMd5yOZ3qUeVsm/4qq0BEo5Fj/2ChhbEZClT9FQmoD/83938A9PYvnQpthaPBz22MKpBX6BfmRpsjBVFjwW/1zsOTZf38zwBsNpV6Od4XGFXMGAegP44coP3E2/i5OF05NP4tYaRu+E2h0BiMuII1OTacihU1petl7subWH+H5ryQ6+hlubAWD1sDySJDHr5DQC4gNY1nkZTR2alsl1S6vQFr6/vz8dO+qfNF9fX65efXi3/fLlyzRr1gxjY2OsrKxwd3cnKCiIf/75ByMjI15//XVWr15tOF4QhCeLTI0EwM3UFu4Fcyy1BhFJGXw1zNeQe2Zip7podDr2360GgPn9CKqZVCtdCz/2Mjg3JiD+ErWsa2Fralui09xNyWLpviDa17NjcPPcN0ZbOrdEo9NwOb7gb/vp6nRmnZpFTauafNjiwzzbB9YdiE7S8fvtJyx28qh6PUCp72d/PGlaaRlm3Mq1pNXomCvYA3wX8B37QvfxQfMPeLH2i2VyzbJQaAs/LS0NS0tLw+8KhQKNRoNSqSQtLQ0rKyvDNgsLC9LS0khKSiIlJYUNGzawZ88eli5dyhdffJHn3IGBTx5iVRVlZWU9c3Uqjue5/mVR9/MxD7o8Aq8AEpsj7HilkQ1WWXcJDLxr2K9TbUvWB5kwVAnRl49QXVGdm3dvluz6ko4GMZdJqv0S/jH+NK/WvETnycrK4qMtZ8jWaHmtiTlBQUG5tptrzJEhY/+1/Vjdt3rCWWBt6Fqi06KZ5z2P8Fvh+e7jbeXNtmvbaKdoV+R7DWfungFAHacm8H4ZvEe1+h8ngk7wkt1LuZ6z4/eOs+72Orrad6Wdol2l+psoNOBbWlqSnv5wOJVOp0OpVOa7LT09HSsrK6pVq0a3bt0A6Nq1K+vXr8/33N7e3qUqfGUTGBj4zNWpOJ7n+pdF3Xfc34G1sTW1ZfoFsrMcmrJgRFvDTcccn1avQZ+vU1Abm+CqSMbD3oPQ5NCSXf/eLdBkklbXh5Tg/+hcvzPensU/z8YD5/knPJ1PXmxA9zb18t3HK8yLcG34E8t5IvIER+KP8Frj1xjYYuATrzXKaBSzTs0iyy6L5k7Nn7jfo/am7sVMaUY7n6J/SBTGLdiNRGUipqamhjqdjz3PuvPraO3cmuU9lhd74Zii8Pcv+WpbhXbpNG/enBMnTgAQEBCAp+fD4Vo+Pj74+/uTnZ1NamoqISEheHp60qJFC44fPw7AuXPnqFcv/zeAIAgP5YzQuX7+OFGSPXNHdskT7AG8nK3p7u3CTZ0rmrvXDStfSY/ngS+KB6mEA4z0ocDXwbfYp0jL1vDd2Xs0cLLirU5PHn3SwqkFl+Ivodbmzd9/P+s+n5/+nPrV6/OO7zsFXq9XrV6YK83Zc2tPkcuYM0KnrII9PMiN/8hEsPCUcCYfm0xNy5p81eWrcgn2pVVowO/ZsyfGxsaMGDGCxYsXM336dDZu3Mjhw4dxcHBgzJgxjBo1inHjxjFlyhRMTEyYMGECgYGBDB8+nI0bNzJ16tSnURdBqNIiUiOQ1HY4pl5H5diUBs5P7vp4u2tdArU1yY66iquFK1naLJKyk4p/0djLIFdyMTseK2MrPKoVf7jg8oM3SMjQsmhwE4wKSFnQ0qkl2dpsribknXW78OxC7mffZ1GHRRgrCs5xY25kzou1X+RA2IEi56QpqyGZj/K29SYyLZIMTQb3s+7z9qG3kSNndffV2JjYlOm1ykqhXTpyuZx58+bleqxu3bqG/w8bNoxhw4bl2l6tWjW+/fbbMiqiIDz71Do10ekx3E2sTS15HDqfggc6NHevTlB1TyxSTmKv0H8wxKTFFP+Ga+wVcPDm0r0rNHVoWuzsmH9ejmHT6TBeamBNi1rVCy7zg+6X87Hnc6Vd3h+6n/1h+3mv2XuGm6GFGVhvILtv7eZg+EEG1htY4L5qrZqotKhS5fbPT84at7fSb/HN0W+ISY9hw4sbcLN2K9PrlCUx8UoQKoGo1Bh0khZ3jQYAeY3C+6Z9m7cFIDo4Sv+zJEMzYy6T7OTNrfu3it2ds9M/kvd+uUAL9+r8r0XhHzTVTatTr1q9XBOw4jPiWXB2AT72PrzW+LUiX7uZYzNqWdcqUrdOZFokWklbZiN0cnjb6vvtv739LRfiLrCg/YJSrR/wNIiAL1QZZ2POsuvmroouRrlYe+o/AMbUePCl26XwcdveTfWTiqKv6POyFHtoZupdSI/jsrUdQLGC1eYz4Xz06yXa1bXnp9dbY25UtFDSwqkFF+MuotFpkCSJz09/TrYmmwUdFhRrKUWZTMbAegPxv+vPnZQ7Be6bMySzrLt07M3ssTW15b76Pu/4vkNfj75lev7yIAK+UCVIksTCswtZeGZhiZJwVWZXo5LZffUSAO2keP0yg2bVCj1OZuOORmmOa0YEJnLz4gf8nBu2Ch0KmaLI6ZB/OHmbmXuu0t3LkR/GtcTcuOiBuqVTSzI0GQQlBrHr5i5ORp1kcovJ1LGpU7yyA/09+iOXyQtt5ZdXwJfJZAypP4S+Tn2Z4DOhTM9dXkTAF6qES/GXCE0ORaVTcSrqVEUXp8xkqbVM3haAufl9jOXGOMVczb2kYUHkchSO3jQziUWrsil5wM+6SwPbBpgbmRe4uyRJfHP4Jgv+DOSlJi6sGd0CU6PiJQFr4aRfavC3W7/xxbkvaOPchpFeI4tX7gecLJxo59qOvSF70eq0T9wvLCWM6ibVy+VG6vvN32d8rfFlOvqnPImAL1QJe27twUxphrWxdeHJs6qQpfuDuBWXRqNaampaOCNPjcm7wlUBZI7eeCujyMq0ITih4K6NPGIuo6nmzpXEwEL77yVJYun+G3z1dzCDm9dg5QhfjJXFDx8O5g7Usq7F1htbkcvkzG8/v1TLKA6sN5C7GXc5G3P2ifuUxwidqkoEfKHSy9Rksj9sPz1r9aSLWxeORx5Hrcs7lruqOXkzno2nwhjfrjYZUhxuCgv9hiLcsDVw9MY0O4HqchtiM2KKNxY/9grBTvXJ1GQWmD9Hp5OYs/caa4+H8Gobd5a90rRUK0a1dGoJwLTW0wzZPkuqq1tXbExsCkyoFp4sAn4OEfCFSu9Q+CHS1ekMrDeQbu7dSFWlFivVbmV0P0PFx79eoq6DBdN6NyAyNRI3jQZkCnAuRqJBR/0wxs6O1uhkmRy+kX86gjyyUyExhIuW1YAn37DV6iQ+3XWZH/8N540OdVgwsDHyEi5VmGN8o/F81uYzBtQdUKrzABgrjOlbpy9H7hwhOTs5z/YMdQZxmXHUtqld6ms9C0TAFyq9Pbf24GblRkunlrR1aYuJwoSjd6p2t87s366RkKbi6+HNSNfeJ1OTiVv6fX3aY+OC+9JzcdAPDexgre9L/+6fIqYgvnsNgEsyNU7mTjhbOOfZRa3VMWVbANvPR/J+9/p89pJ3mfRV17apzQivEWXW7z2o3iBUOhX7Qvfl2VbWSdOqOhHwhUotMjWS/2L/Y0DdAchkMsyNzGnr2pYjEUdKlkqgEjgaFMfeS9G8160+TWraPEyLnHAHXH2LdzJrVzCxxj09EYDLsaFcvFOEGbcPcuBfzIjKtzsnW6Pl7S0X2Hspmmm9vfiwp2elvTHpbedNg+oN8u3WKa8ROlWVCPhCpbY3ZC8yZAyo9/Drfze3bsSmxxKUGFTAkZVTpkrL7L1XqedoyaQu+hnrhoCfnlT0ETo5ZDJw9Mblvj61soV5CquPhRR+XOxlYi3tic2Mz9Odk6nS8uZP/vx9/S5zX25kKGdlNrDeQK4nXCc4KTjX42EpYciQ6dcYEETAFyovnaTjt1u/0da1rb7LITUW4m/Q2a0zcpmcIxFHKrqIxfbt0ZtEJGayYGBjwyiXiNQI5MioodEU74ZtDgcv7OKCMVGY0Mhdx9/X73IjNrXgY2IvE+CgH/v+6AidtGwN4zb+x8mb8XwxxIdx7WoXvzwV4CWPl1DKlXnG5IenhONi4VLooivPCxHwhUrrv9j/iE6Pfpgr5bd3YdNL2Brb4Ovgy5E7VSvg37ybyvoTtxnSvCYveNgZHo9IjcBZYYqRwhgcGxX/xI7eyDITcTFzwL5aOubGCtYcu/Xk/bVqiAskwNwCM6UZnraexKVm8f2J27y86h/8w5P4ergvw1pVnVZxddPqdHXryh8hf+TKxhmWHCa6cx4hAr5Qae25tQcrYyu6uXeD9AQIOQLp8RDlTzf3bgQnBRtWiarsJEnisz1XMTdWMqNv7gRhEakRuGkkcGoMyoIzRebLUX/j1lVpSXxWLK+2cdcvdp7whEyS8TdAq+KilImzaX3e/PEiLyw6zMK/ArEyM+KHcS0Z4Fsj/2MrsYH1BpKUncSJSH06d0mSxBj8x4iAL1RKqapUDoUfom+dvpgoTCDod5AezKYMPkBXt64AVWYS1s4LUfwXmsj0Pl7YWZrk2haZEkHNjOSSdeeAYaSOiyQnJj2GNzp6PFzs/DGSJHH76r9kyGRcz4glKMyOG7GpTOxcl0Mfdua3d9rTtYFjycpRwdq5tsPBzMHQrZOYlUiqOlUMyXyECPhCpbQvdB/Z2mwG1Rukf+DqLrCtC+7tIPgA7tbu1KtWr0oE/KR0FYv+CqRFreoMa5m7myRdnU5idhJu2RnFv2Gbw9IRzKrjqsoiMSsRa3PJsNj53ZQsAO4kZLDi72A6f3mMo8cOc8HYAmQSH3Xsxalp3Zja24t6jpaFXKhyU8qV9K/bn5NRJ7mXeU+M0MmHCPhCpfTbrd+oV60eDe0aQlo8hJ2ExoOhQW+4ewWSI+nq1hX/u/7cz7pf0cUt0NL9QSRnqvOdtGQYoaPWFCulQi4yGTh445qmH5oZkx5jWOx86o7LDF17mk5fHuWbIzdxszXjZad7XHOsCcCIph1LPZGqMhlYbyBaScvvIb+LgJ8PEfCFSifkfgiX711mYL2B+rHfgb+BpINGg6H+i/qdgg/Q3b07OknH8cjjFVvgApwPS2TruQhe71AHbxfrPNtzUvu6YQQODUp+IUdvXJP09zOi06JxtzNnoG8NjgfHk5iuYmrvBpya1o0tr7fBIS2YS2ZmeNh4VNqVmUqqjk0dmjo0Zc+tPYSmhKKUK3G1cK3oYlUaRc9rKghPyZ5be1DKlPTz6Kd/4OpusG9guDlJtVoQfICGLV/D0dyRoxFHc43TryzUWh2f7b6Kq40pH3Svn+8+hha+fUOQFy/zZC6O3rhe3ARYGrJmLhjUmIld6lLf0fLhpKmkMHTZyVzSpdHTsUvJr1eJDao3iDn/ziFbm427lTuK0jyvzxjRwhcqFbVOze8hv9OpZifszOz0Y+/DT+m7c2Qy/T/P3hB6HJk6k65uXTkdfZosTVZFFz2P//snlBt3U5nzciMsTPJvW0WkhFNdq8OyRsvSXczBCwetFqVMf+MWwNxYiaeTVe4ZsrFXCDNSkqLNpqlD4YusVEUv1n4RU4UpUWlRojvnMSLgC5XKqahTJGQlPBx7f/03QIJGgx7u5PkiaLIg7CTd3LuRqcnkTMyZiijuE0UmZfD1oZv08HaiV6O8eWoM+yUG46ZWl7z/PoejNwrASWFRcF78mMtcNNVPQiooQ2ZVZmlsSc9aPQGRQ+dxIuALlcqeW3uwNbWlQ80O+geu7tJPRnq0f7t2BzCygOD9tHJqhaWRZaWbhDX39+sAzHm5YYH7RaRGUFNTihu2OSzswcIBV+QFB/zYKwTYOFDNpNozHQwH1dc3EEqyktazTAR8odJIyEzgeMRxXq77MkZyI0iOgogzuVv3AEoTqNsVgg9gJFfSsWZHjkceL3DVo6fp4LVY/r5+l8k96lOz+pMzX6q1amLVKbhJCrD1KP2FHbxwyc4ueDHz2MsEGBvh6+BbaZOhlYWWTi1Z12NdlVhn9mkSAV+oNP68/ScaSfNId84e/c/Gg/Pu7PkipETB3Wt0c+9GYlYil+IvPa2iPlF6toY5e6/RwMmK1zoU3LqMSotCB/rEXmURfB0b4pqeRHxGfK70Ag8Ll0BSWgxhUtYz252TQyaT0a5GO/2kPcFABHyhUpAkiT0he2hi34S61R5kZ7y2W78YiF0+2Rrr99L/DN5PB9cOKOXKStGt883hm0QnZ7FwUGOMClkVKuK+fiasm30J8ufkx9EL1+wMJCRi02Pzbo+9zCUTfQB81gO+kD8R8IVK4XrCdW4m3XzYur9/ByLP5e3OyWHlrO/3Dj6ApbElbVzaVHiO/KDYFH74J5QRrdxoWdu20P0jos8B4FbzhbIpgIM3rhoNQP7dOrFXuGhqjFKmpJFdGX3ICFWKCPhCpbD71m5MFCb0qdNH/8C1B4tZPCngg354ZuQ5SL9HN7duRKRGEHK/CLngy4FOkvhs91VszIyY1tur8AOAiPhrmOl02NfqXDaFcPTCVaO/j5HvjdvYywRYWNPQrqFIF/ycEhOvhAqXrc3mr9C/6O7eHStjK/2D13brW/C2D/vBlx24wbbzEdS2M6e2nQWtTRoyFImY87/T1rc3oE+mVq96vWJdPyVLTWxyFjHJWcQmZ5KQrsLewgRnG1Ncq5nibGOG5RPG0ec4eDMV//Aklg1tSnWLomW8jEwNp4YOZDZllJnSrDrOZg7IwDAW/1Hq2Mtcs5QzzPHZHH8vFE4EfKHCHb1zlFRVqmEoHYm3Ifoi9Jxv2Cf6fibrT9zG01k/a/RYcDw7UmV0NqmG/6GtvLffERuPWnzvv5c7t9tS294CD3sLatmZo9ZKRCdn5grqMYb/Z5GWrTFcR6ZMwtjuOKrETkjqh90yViZKnG1Mcalmhou1qf7/D363NlWywT+RNnVsGdK86ME7Ivs+7kY2ZXPD9gEjBy8cdLeJSovKvUGVQWBKONmWjrkWPBGeLyLgCxVu963duFq40tq5tf4BQ3fOQMM+3x29hYTEujEtqVHNDNCvzqTa1ZsXQ/7go04eHIprTYjmV/ZcuU5qukW+15LJwNHKBGcbM+o7WtKxvj0uNvpWfDULDUsvv8ud1FCcXIJ5t+ESTHTuhg+KmAcfGkExKcSnZfPo7QKlHBYOalzkoY66rGQiZVraW9Ys9vNVIEdvXO8EEfN4l05cIAEmRoC4Yfs8EwFfqFCx6bH8G/0vE5pOQC57cEvp2m6o2QqquQMQdT+T7ecjGNbSzRDsAX03i29/uLGVd+vF07fVaAb89iufDdXRy60noffSCL2XgamRXN8atzHDwcok39Ezap2adw69Q3RaBLPbzuaHyz+w7MoHLOu8jAG+nfLsr9LoiEvNMnwYZCTGUs/Rqsj1jg8/SbZcjpu9dzGfsUI4euMSso3LD3L0GMReIsDUhBrmjjiaV81890LpiZu2QoXaG7IXCYkBdR8kP7t3C2Kv6DNjPvDdUf1yfe90zadv3qMLKIwh+AB1bOpQy7oWRyOOYmthTItatrzSoib9fFxpUcsW12pm+QZ7SZJYdHYR/8b8y+y2sxnqOZQtL22htnVt3jvyHr8G/5rnGGOlnJrVzWlZ25b+TV3xcTbLs09BIiJOAeBWo02xjiuUgzc1NBruZsbnmogmxVwmwNSUpk6lzNkjVGki4AsVRpIk9tzaQ2vn1tS0etC1kdOd01D/ARCZlMGv5yMY3soN12r5BFUTS32qheADyGQyurl147/Y/0hVFbKI9yN+uv4TO4J38Hrj1w33EezN7NnUexPtXdsz7995rLywEp2kK1V9HxURfwUAN4fGZXZOABwa4KLRopF0xGfGGx6Ojg0gXiGnmWMpUzgIVZoI+EKF8b/rT0RqxMOx9wDXdoF7W3gwcuW7o7eQIcu/dZ/Dszck3ISEELq5d0Oj0/BP1D9FKsPhO4dZfn45vWr14v3m7+faZm5kzjfdvuEVz1f44coPTD85HZVWVdxq5pWdRkTSbRSAi6VL6c/3KFNrXI2rAY8MzdRpuZgaCoj+++edCPhChdlzaw8WRhb0qNVD/0BcEMRdN3TnRCRm8Ov5SEa0dsPFpoAuE8Os2wM0sW+CraltkWbdXrt3jU9PfEoT+yYs7LDw4T2ERyjlSma/MJsPmn/AX6F/MfHQRFJUKcWuq4Ekwd53iZSycTa10+cMKmOu1fR5eQyTrxJuEWAkw1xuTP1q+eflF54P4qatUCZu37/N5eTLJEUnFWl/naTjYPhB+tbpi5nyQTC/thuQQcOXAX3rXi6T8XaXQsbV29YBBy8I3o+i7dt0devK/rD9qLQqjBX5j4mPSYvh3SPvYmdmx8puKwuciCSTyXijyRs4Wzgz69Qsxu0bx+ruq0vWOv/3W3TXdhPm1Qy36uUTfF0cG0FsGNGp+hWwiL3CJRMTfKp7isVAnnMi4AullpydzNDfh6LSqeBG8Y4dXP/BzVlJ0nfn1O4AVs5EJGawwz+SV9u442xThFmh9XvBmdWQlUI3927svLmTc7HnaF+jfZ5d01RpvHPkHbI0WfzQ6wfszeyLVNZ+Hv1wNHNk8tHJvPrXq6zusRov26LNqk1VpfLvxQ2cuPAN/9TxICE7gVer9S7SscVl5tgE26i9RCcEA5AedZ5gYyPecm1bLtcTqg4R8IVSOxF5ApVOxdt13uYFr6LnhbEwssCzuqf+l7jrcC8Y2kwA4Nsjt5DLZbxdUN/9ozx7w+lv4PZR2jTojZnSjKMRR/MEfI1Ow8cnPub2/dus7rH6YaK2Imrt0pof+/zI24ffZty+cXzV5at8P1QkSSI0JZSTkSc5EXmCC3f90UharCwtaO/emU7u3enu3r1Y1y4yR29cNBpikvX99pfvXkAnk9FMjNB57hUa8HU6HXPmzOHGjRsYGxuzYMECatV6uGzY9u3b2bp1K0qlkkmTJtG1a1fDtv/++49PPvmE48cr7yLTQukdjTiKg5kDnew70cixhEm5ru4CmRy8B3AnIYMdFyIZ80ItnKyLmPPFrQ2Y2kDwAUwaDqBDjQ4cvXOUGW1mGPrmJUliyX9LOBV1is/bfk4713YlKmr96vXZ0ncL7xx+h3cOv8PstrPxxptsbTbnYs9xIvIEJyNPEpmm71KpZ1OXsWpjOt6Pw3fMfpSORftWUGIODXDVaLmZEQeSREBaODJLY5o4NCnf6wqVXqEB/9ChQ6hUKrZt20ZAQABLlixhzZo1AMTHx+Pn58fOnTvJzs5m1KhRtG/fHmNjY2JiYti4cSMajaaQKwhVWbY2m3+i/qGfR798b3oWSU53Tp1OYOnAqn2XUMplTOpSjNa3Qgn1ekLwAdDp6OrWlb/D/+bavWuGQLc5cDPbbmxjfKPxvOL5SsnK+oCjuSObem/io2Mf8fnpz/Gy9CL8QjiZmkxMFaa0dmnN+Ebj6VijA65HFkPEURjxM5R3sAcwtsBVYc4JTSpSSjQBci31TOwe5ikSnluF/oX6+/vTsWNHAHx9fbl69aph2+XLl2nWrBnGxsZYWVnh7u5OUFAQ2dnZfP7558yZM6fcCi5UDmdjzpKpyaSbe7eSnyT2sj5/TqNBhCeks+tiFKPauBe9dZ/Dszdk3IPoC3Sq2QmFTMHRiKOAPl/Pl+e+pLt7d6a0mFLysj7CwsiCVd1XMdJrJKmaVAbUHcDq7qs5OeIk33X/juFew3G9cRAu+kGnT8DrpTK5blG4mDuTjcS9O6e4bGpCM7syHu8vVEmFtvDT0tKwtLQ0/K5QKNBoNCiVStLS0rCyethqsLCwIC0tjXnz5vHaa6/h5ORUPqUWKo0jd45gYWRBa+fWhKSUMDXx1V0gU4D3y6z685a+dd+5eH3rANTrru8WCj6ATc2WtHRqyZE7R+hRqwfTTk6joV1DFndcXPJvIvkwkhsxo80MBlkPwtv7sTQJEefgr0+gXg/oMr3MrlkUrtXqQGIsJ8MOkCaX4+uWNz2E8PwpNOBbWlqSnp5u+F2n06FUKvPdlp6ejpGREefPn+fOnTt89913JCcnM2XKFFasWJHn3IGBgWVRh0ojKyvrmatTQXSSjkNhh/Cx8iEkOKRk9Zck6gZsQ+XUirNXItl1IZKXvaxJiAolIarwwx9Xy64J8st7CHUZjLexN5tiN/HG/jcwl5vzvtv7hN0MK/5Ji+DxuiuyEqhzcDySmQOhjT9BdyO4XK77JEr0+XL+iP0PjMEq07Fc35vP23v/UVWp7oUG/ObNm3P06FH69u1LQEAAnp6ehm0+Pj58/fXXZGdno1KpCAkJwcfHhwMHDhj2ad++fb7BHsjbIqriAgMDn7k6FSQgLoBkdTIDGg3A28O7ZPWP8of0GIx7zOTPmzqMlXJmDG6Fo1UJF+hIGASH5uBdwwYbt5FsurMJnUzH+t7rH44IKge56q5Vw08fgzoN3vibBs5P/2ZpqsVLcPQ3zhtJ2GFEZ9/O5bpo+fP23n/U0667v79/iY8tNOD37NmTU6dOMWLECH2SqUWL2LhxI+7u7nTv3p0xY8YwatQoJEliypQpmJiIRYOfF0cijqCUKelYs2PJT3J1F8iNCHfoyp7tAbzWvk7Jgz3o+/EPzYHgA7i2/B/TW0+noV3Dcg32efz9OYT/A4PWQwUEewArF1+sdDpS5XJ8zV3LNdgLVUehAV8ulzNv3rxcj9Wt+7B/ddiwYQwbNuyJx586daoUxRMqs6N3jtLKuRXWxtYlO4EkwbU9ULcbK0/FY6yUM6EkffePcvDSp1UOPgAt/8co71GlO19xXdkBZ76DNhOh6fCne+1HGZnhIslJBZqJBU+EB0QuHaFEbiffJiwljK7uXQvf+Ukiz0FKJHdr9WVPQBRjXqiFg1UpvyHKZFD/RQg9DurM0p2ruGKvwm/vgns76LXg6V47H65G+g/iprXLaYKXUOWIgC+UyNE7+uGOXd1KEfCv7gKFMV/fqYeJUlH61n0Oz96gzoCwomXMLAtyVQpsG62f/DV0EyjKPilacdW288YMGQ3dOlR0UYRKQqRWEErkSMQRGto1xNnCuWQn0Ong+h7S3buy7Uoyb3b0wN6yjO7/1O4ARuYQvB/q9yybcxZEp6PGmTmQHAn/+wusKsdw5De6L6dfeuwTE8gJzx8R8IVii8+I53L8Zd71fVf/gE4LmwdT9+4NOFDElq1OB6kx7LR8HROlgjc7eZRdAY1MwaOrvh+/77IyXSQc0N97SI7UjzCK8ofw01jGnIeXloNb67K9VinYmNhgY2JT0cUQKhER8IViOxZ5DODh7Noof7h9DJVzG4ydih647+vMWHS+HuM61Sq71n0Ozxfhxp8QFwhODUt3rswkiLrw4N+DIJ8ep9+mMAZnH+42fRenlq+XvtyCUI5EwBeK7cidI9S0rEm9ag8yWQYfAJmCqLbzadC06Gu0zv7lInKju0zoVEZ9948yLIqyv3gBX50Fd6/qg3rkef3PxEdmENt76mfO1mgONVqAU2NQGpMYGIiTGPooVHIi4AvFkq5O52zMWUZ6jXw4tjv4ALi/gK4YwzMPXb/L75ejmdi5LrYW5dDHbO0CLk31Zev4Yf776HT6pREfDe53r4FOrd9u6Qw1W0KzV/XB3bWZ/qasIFRRIuALxfJP1D+odeqH3TnJkXD3CvScV/CBD8SlZDH39+v8eSUGTydL3upYhn33j/PsDSe+hPQEsLCDlOiHXTJR/hB1EXIWOze2ghrNoN274NpcH+itXcuvbIJQAUTAF4rlaMRRqptUxzdnMk/wgzQanr3hnu6Jx+l0Elv+u8MX+4LI1ur4uJcnb3Wqi7GyHEcGe74Ix5fCllcgNUb/D0BuBM6N9ROjarTQ/7OrD3IxSll4tomALxSZWqfmRMQJutfq/nBt1JsHoXptfd/2vaB8jwuMSWHG7itcvHOf9vXsWDiwCbXtLcq/wC7NwMUXspKhdseHwd25iX4kjyA8Z0TAF4rsfOx5UtWpDydbqTLg9jFoPi7foY+ZKi0rD9/kh5O3sTYzYsXwpgz0rfH08rrI5TBBrLYmCDlEwBeK7GjEUUwVprTNWQw77CRosvRdJ485diOOmXuuEpmUyfCWbnzax4vq5XFzVhCEIhMBXygSSZI4GnGUdq7tMFOa6R8M3g9GFvqZrQ/EpWYx7/fr/HE5hroOFmx76wXaeNhVUKkFQXiUCPhCkQQmBhKbHss7vu/oH5Ak/Q3bul1BaYJOJ/HXjRQ2bTtOtkbHhz09mdDZAxOlomILLgiCgQj4QpEcuXMEuUxO55qd9Q/cvQYpUdDlUzRaHWP/7z9OhyTQrq4dCwY2xsPBsuATCoLw1ImALxTJkYgjNHNsRnXT6voHgvfrf9bvxe6LUZwOSWBCKzs+HdxGLLYhCJWUGHgsFCoiNYKbSTfp5tbt4YPBB8C1GSozR745chOfmjYM8LYWwV4QKjER8IVCGXLf5yx2kn5Pv3iJZ29+9Y8gIjGTKT09RbAXhEpOBHyhUEcjjlK/en3crNz0D9w6BEhke/Tk2yO3aO5ejS6eDhVaRkEQCicCvlCgpKwkLsRdeKw7Zz9YOvHLnWrEJGfxUa8GonUvCFWACPhCgY5HHkcn6R4mS9Oq4dZhNHV78t3xUNrUsaVdXTHOXhCqAhHwhQIdvXMUZwtnvG299Q/c+ReyUziia058arZo3QtCFSICvvBEmZpMTkefpqtb11y57yWFMXOvOdCxvj2t69hWbCEFQSgyEfCFJzoTfYYsbdbDZGkAwQe4Y92CqAwFH/VqUHGFEwSh2ETAF57oSMQRrIysaOncUv9AQggk3OSXJG+6ezni61atQssnCELxiJm2Qr60Oi3HI47Tya0TRnIj/YMPFjv5M7sJa3p6VmDpBEEoCRHwhXwFxAeQlJ2UqztHHbSfcKkmjRo2pXENsbarIFQ1oktHyNeRO0cwkhvRocaD1MdZKcjvnOKQthlTROteEKokEfCFPHJy37dxaYOFkX4pwpTrB1FIGrLq9KCBs1UFl1AQhJIQAV/I49b9W0SkRjycbAWEntpFsmRO/34DK65ggiCUigj4Qh6H7hxChszQf383OYMa9/4hxKYddZ2qVWzhBEEoMRHwhVx+D/md9ZfX84LLC9ib2QPw259/YC9Lxv2FQRVcOkEQSkOM0hEAfb/991e+Z9XFVbRxbsPyLssBiLqfiSpwHzqFHHvfvhVcSkEQSkMEfAG1Ts3CMwvZeXMn/T36M7fdXIwU+rH33x65xWj5BdSurTAxF2kUBKEqEwH/OZeuTuej4x9xKuoUb/m8xbu+7xry5txJyODE+UssNg6DhuMrtJyCIJSeCPjPsfiMeN45/A7BScF83vZzXvF8Jdf2lYdv0lURoP/Fs/fTL6AgCGVKBPznVMj9EN4+9DZJ2Ums6raKjjU75t4en8bui5HscwoC3MHBq2IKKghCmRGjdJ5D52LPMWbfGFQ6FZt6b8oT7AFWHrqJtVKLZ5o/1H8RRM57QajyCg34Op2O2bNnM3z4cMaMGUN4eHiu7du3b2fw4MEMGzaMo0f1i11HR0czfvx4xowZw+jRo7l9+3b5lF4otr9u/8WEvyfgYObAlr5baGjXMM8+N2JT+f1yNJ81vIdMkyG6cwThGVFowD906BAqlYpt27bx0UcfsWTJEsO2+Ph4/Pz82Lp1Kxs2bOCrr75CpVKxcuVKRo8ejZ+fHxMmTOCrr74q10oIhZMkiQ1XNjDt5DSaOjTlpz4/4Wrpmu9+C/8KxMJYSX/zK2BkDrU7VECJBUEoa4X24fv7+9Oxo/4rv6+vL1evXjVsu3z5Ms2aNcPY2BhjY2Pc3d0JCgpi2rRpWFnp861otVpMTEzKqfhCUWh0Gpb8t4RtN7bRp04fFrRfgLHCON99fzwdxongeOb2b4jpfx+DR1cwMn3KJRYEoTwUGvDT0tKwtLQ0/K5QKNBoNCiVStLS0gyBHcDCwoK0tDRsbfXjtW/fvs3SpUv57rvv8j13YGBgactfqWRlZVW6OmVrs1kRsoIL9y8wwGUAI+1HEhIcku++oUkqFv4ZReua5nSQX4XkO8TUf5X7RaxTZaz/0/I81x2e7/pXpboXGvAtLS1JT083/K7T6VAqlfluS09PN3wAnDlzhrlz5/LFF1/g4eGR77m9vb1LVfjKJjAwsNLVafn55Vy8f5GZbWYy3Gv4E/fLUmuZ/O0pbMyNWT2+HfYX9R/SLp3G4WLtUqRrVcb6Py3Pc93h+a7/0667v79/iY8ttA+/efPmnDhxAoCAgAA8PR/mQvfx8cHf35/s7GxSU1MJCQnB09OTM2fOsHDhQn744QeaNGlS4sIJpXMn5Q6bAzczsN7AAoM9wJJ9Qdy4m8qyoT7YW5rAzYPg0hSKGOwFQaj8Cm3h9+zZk1OnTjFixAgkSWLRokVs3LgRd3d3unfvzpgxYxg1ahSSJDFlyhRMTExYtGgRarWaTz/9FIA6deowb968cq+MkNvy88sxlhvzXrP3CtzvaFAcm06H8b/2tenSwBEyEiHiLHT65CmVVBCEp6HQgC+Xy/ME67p16xr+P2zYMIYNG5Zr+969e8uoeEJJnY05y5GII3zQ/AMczB2euF98ajaf7LiEl7MV03o/mFx16xBIOvB88SmVVhCEp0HMtH0GaXVavjj3Ba4WroxpOOaJ+0mSxNQdl0jJ0rDljRcw1aaB/8/w73dg4QguzZ5iqQVBKG8i4D+D9tzaQ3BSMMs6L8NE8eQhsT+eDuPojXhWdjWmwfnZcGkbqNPBrQ10mwVyMRFbEJ4lIuA/Y9JUaXxz8RuaOzanV61eT9wvKDqR8/t/ZF+1I3j/ewkUJtBkKLR+E1x9n16BBUF4akTAf8Z8f+V7krKSWN1jtSHNcS5p8ajPbcTuxDq+VdxDa+wGHeZC87Eg8t0LwjNNBPxnSERqBH7X/Xi57ss0smuUe2PkefhvPVzbjZFWRaC2CbFdFtCk6zCQKyqmwIIgPFUi4D9DVvivQClX8n7z9x8+GB8MuydA9AUwtiLSYzjjrvrQqV17Pu/e6MknEwThmSMC/jPiXOw5/g7/m3d938XR3FH/YOZ9+GUEZCVD32XcqzuYgWsuYO9k8nAIpiAIzw0R8J8BWp2WL899ibOFM+MajdM/qNPB7olwPxzG/YHk/gIfbzr3cAimkejGEYTnjRh39wzYG7KXwMRAPmzxIabKB5ktTy6D4H3w4mKo1ZZNp8M4diOez/p608DZquATCoLwTBIBv4pLV6ez8sJKmjo0pXftBwuVBB+Eo4vAZwS0fpOg2BQW7wuim5cjY9vWqtgCC4JQYUSXThX3w5UfSMhKYFW3VfphmIm3Ydcb4NwY+q0gXaXlg18CsDY14otXfPIfqikIwnNBBPwqLDI1kp+u/UR/j/40cWgCqnTYOhqQkTpwEz+dimbDP6EkpqvY9L9W+iyYgiA8t0TAr8JW+K9AIVfoh2FKEvz+AVLcdXZ4f828NSGkZmvo0sCB97rVo0UtMalKEJ53IuBXUf53/TkYfpC3fd/G2cKZ5KMrsbnyK1/rRvBNgAN9Gtvzdpd6NK5hU9FFFQShkhABvwrSSTqW/rcUJ3MnurkMY/1PP/JayBwOSi2JajSRv7vWp56jZeEnEgThuSICfhWUMwyzoXIi/1vxJ3uNZ5FkWpOG43+ml4tTRRdPEIRKSgT8Kua/sGjmnVqGNsOdoBg3/rJdgq1Kg/yNHeAggr0gCE8mxuFXEZIkseGfUMbsXIKaZAa4T+K/ZoeokX4N+aC14NCgoosoCEIlJ1r4VYBaq+PzvdfYeukUlnVO0tO9D4ttEmHvj9BhCjR8uaKLKAhCFSACfiWXnKnm3Z8v8E/oTewbbMbO3IkZtfvA5uHg0UW/MpUgCEIRiIBfid1JyOC1H88RnnSPOo23kqXTsbrdQux+GQuWTjDk/0Que0EQikwE/ErqXFgib/10Hh1amrf8k+DkKNZ0W4XHgc8h4x68dgAs7Cq6mIIgVCHipm0ltPtiJK9+fxYbcyN6dfyX6/fPMavNDF44vR7CTkK/r8W6s4IgFJto4VciOp3EikPBrDpyixc8bOnS6jrfXd7Na43+x+DAo3D9N+i1EHxHVnRRBUGogkTArySy1Fo++vUSf16OYVjLmnRvEc8nJ1bSs1ZPPrgbAwFboPOn0O7dii6qIAhVlAj4lUBcahZv/uTP5cj7TO/jRYdGWfzvwAwa2zdmkcYK+bmvoe270OXTii6qIAhVmAj4FSwoNoXXN50nMV3F2tEtaFobRv35JtVNqvONeSNMj38BzcdBrwUgctkLglAKIuBXgEyVlqDYFAIi7rP8YDAWJgp+ndiWOo5Kxu4bS6Ymk3U1e2F/ZDE0fgX6rRDBXhCEUhMBvxxJkkRsShaBMSkExqRyPSaFwOgUQhPSkST9Pj41bVg/piX2VkreO/IeIfdDWF1nKPUPL4YGfWHQWjHWXhCEMiECfhnR6SRuJ2ZzzT/yQYBP4XpMCvcz1IZ93GzN8Ha2pn9TV7xdrGnoYk3N6mbIZLDo7CL+ifqHWbVept2RZVCnM7yyERRGFVgrQRCeJSLgl1JIfBq7LkSy+0IU0clZQBSmRnIaOFnRp7Ez3i7WeLtY08DZCmvT/IP35uub2XpjK+NcuzDsxDqo2QpG/AxGpk+3MoIgPNNEwC+BpHQVf1yOZueFKAIi7iOXQSdPB0Y2saJP64bUsbdAIS9an/uxiGN8ce4Lutk1ZcrZX8HRC0ZtBxOxgIkgCGVLBPwiUml0HLsRx64LURwOuotaK+HlbMVnfb0Z4OuKo7UpgYGBxVppKjAhkKknpuJtVYvFV46hqOYGY/aAWbXyqoYgCM8xEfALIEkSV6KS2XUhir2XoklMV2FvaczYtrUZ3LwGDV2skZVi9Myvwb9iozTn25CrmJvZwtjfwMK+DGsgCILwkAj4+YhJzmTPxWh2XYjkZlwaxko5PRs6MaR5DTrWd8BIUTYpiD72GMwnpzZjJjfRB3tr1zI5ryAIQn5EwH8gQ6XhwLVYdvpHcSrkHpIELWtVZ9GgJrzk44KNWdmPljE/ux50Ghj/F9jWKfPzC4IgPOq5Dvg6ncSZ2wnsvBDFvqsxZKi01Kxuxnvd6jO4WQ1q21uUbwF6zNH/M7ct3+sIgiDwnAb8x4dSWpkoebmpK4Ob16RlrerIizjCptREoBcE4SkqNODrdDrmzJnDjRs3MDY2ZsGCBdSqVcuwffv27WzduhWlUsmkSZPo2rUriYmJfPzxx2RlZeHo6MjixYsxMzMr14oUJmco5Y4LUVx6ZCjlp3296dXQCVMjMZtVEIRnW6EB/9ChQ6hUKrZt20ZAQABLlixhzZo1AMTHx+Pn58fOnTvJzs5m1KhRtG/fntWrV9OvXz8GDx7M+vXr2bZtG+PHjy+TAqs0Oo4E3SUlS0OWWkuWWkumSkeWRkumSkv2g59Zah2ZOdvVWgJjUvIdSikIgvC8KDTg+/v707FjRwB8fX25evWqYdvly5dp1qwZxsbGGBsb4+7uTlBQEP7+/kyYMAGATp068dVXX5VZwD8SdJeJmy/kedxYIcfESI6ZkQJTIwWmD/5vYqSgmrkx49rWZnDzmjR0tS6TcgiCIFQ1hQb8tLQ0LC0fTiZSKBRoNBqUSiVpaWlYWVkZtllYWJCWlpbrcQsLC1JTU/M9d2BgYLELXEsBGwe7IZOBiVKOiUKGsUJWtJmtyVEEJkcV+5pFlZWVVaI6PSue5/o/z3WH57v+VanuhQZ8S0tL0tPTDb/rdDqUSmW+29LT07GysjI8bmpqSnp6OtbW+beqvb29S1Tokh1V/gIDA0tcp2fB81z/57nu8HzX/2nX3d/fv8THFjqDqHnz5pw4cQKAgIAAPD09Ddt8fHzw9/cnOzub1NRUQkJC8PT0pHnz5hw/fhyAEydO0KJFixIXUBAEQSgbhbbwe/bsyalTpxgxYgSSJLFo0SI2btyIu7s73bt3Z8yYMYwaNQpJkpgyZQomJiZMmjSJadOmsX37dqpXr87y5cufRl0EQRCEAhQa8OVyOfPmzcv1WN26dQ3/HzZsGMOGDcu13d7eng0bNpRREQVBEISyUDZJYQRBEIRKTwR8QRCE54QI+IIgCM8JEfAFQRCeEzJJkqSKuHBpxpIKgiA8z0o61L3CAr4gCILwdIkuHUEQhOeECPiCIAjPiedyAZTiUqvVzJgxg6ioKFQqFZMmTaJevXp8+umnyGQy6tevz+eff45cLufbb7/l2LFjKJVKZsyYgY+PD+Hh4fnuWxWUtu7Xr19nwoQJ1K5dG4CRI0fSt2/fiq1UERWn7gDh4eG8++67/P777wCVcl2I4iht/e/fv8+LL75oSMfSo0cPxo0bV2H1KY7i1H3p0qVcuHABjUbD8OHDGTZsWOV97SWhUDt27JAWLFggSZIkJSUlSZ07d5YmTJggnTlzRpIkSZo1a5Z08OBB6erVq9KYMWMknU4nRUVFSYMHD5YkScp336qitHXfvn27tGHDhgorf2kUte6SJEm7d++WBg0aJLVr185w/Pz586WdO3dKkiRJ69atkzZu3Ph0K1BKpa3/qVOnpHnz5j39gpeBotb933//ld5++21JkiQpOztb6tGjh3T//v1K+9pXjWZmBevduzcffPABAJIkoVAouHbtGq1btwb0Of9Pnz6Nv78/HTp0QCaT4erqilarJTExMd99q4rS1v3q1ascO3aMV199lRkzZpCWllaR1SmWotYdwMbGhs2bN+c6/tG1JKra6w6lr//Vq1e5du0ao0eP5v333ycuLu7pVqAUilr3Zs2asWjRIsNxWq0WpVJZaV97EfCLwMLCAktLS9LS0nj//feZPHkykiQhk8kM21NTU/OsHZDzeH77VhWlrbuPjw9Tp05ly5YtuLm58d1331VUVYqtqHUH6Nq1K+bm5rmOL+q6EJVVaevv4eHB+++/z+bNm+nRowcLFix46nUoqaLW3cTEBBsbG9RqNZ9++inDhw83rAtSGV97EfCLKCYmhrFjxzJgwAD69++fqw8+J+f/k9YHyG/fqqQ0de/ZsyeNGzcG9JlXr1+//tTLXxpFqfuTPPqcVMXXHUpX/xdeeIE2bdoAz/Zrn5yczBtvvEHdunUNK/1V1tdeBPwiuHfvHq+99hqffPIJr7zyCgANGzbk7NmzgD7nf8uWLWnevDn//PMPOp2O6OhodDodtra2+e5bVZS27q+//jqXL18G4N9//6VRo0YVVpfiKmrdn6SqrwtR2vrPnDmTAwcOAM/ua5+VlcX48eMZMmQI77zzjuH4yvrai4lXRbBgwQL27duHh4eH4bHPPvuMBQsWoFar8fDwYMGCBSgUClatWsWJEyfQ6XRMnz6dli1bEhoayqxZs/LsWxWUtu7Xrl1j/vz5GBkZYW9vz/z583N1/VRmxal7jvbt23Pq1ClAHzSmTZtGenq6YV2Ix7s9KrPS1j8iIoIZM2YAYGZmxoIFC3B0dHy6lSihotbdz8+Pb7/9NteKV4sWLcLMzKxSvvYi4AuCIDwnRJeOIAjCc0IEfEEQhOeECPiCIAjPCRHwBUEQnhMi4AuCIDwnRMAXBEF4ToiALwiC8JwQAV8QBOE58f8fZfZpKmNc8gAAAABJRU5ErkJggg==", + "image/svg+xml": "\n\n\n \n \n \n \n 2022-05-26T17:55:07.312722\n image/svg+xml\n \n \n Matplotlib v3.5.1, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", "text/plain": [ "
" ] @@ -393,8 +393,8 @@ "outputs": [ { "data": { - "image/png": "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", - "image/svg+xml": "\n\n\n \n \n \n \n 2022-05-26T10:48:32.276178\n image/svg+xml\n \n \n Matplotlib v3.5.1, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXgAAAEXCAYAAACnP18pAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAA9bUlEQVR4nO3deVwVZfv48Q+7BK5lZSWWFoa7YPoo4pq7qI+VoomU5ZJL5YL7Qoi4W6a5lIZmhrhH+u2p0BI1tTyFigKVPphWKmoioKzn/v3Bj3lAlgN6zgGn6/168Xpxzszc133NDBdzZubcY6OUUgghhNAd2/LugBBCCMuQAi+EEDolBV4IIXRKCrwQQuiUFHghhNApKfBCCKFTVivw9evXx9fXl759+xb4uXjxojZPVlYWbdu25bXXXiuw7MWLF2nevLm1umoxw4cP57fffit2+qlTp3jzzTfNFq9+/fpcv369TMucPHmS2bNnm60P5rBr1y4GDhxI37596dmzJ7NmzeLmzZsA7Ny5Ey8vL/r27Uu/fv3o27cvfn5+/Pzzz4Wm5/+ZPHlyqWIvX76c3bt3lzjP3axngJs3bxISEqL9XfTr149t27ZpOXfv3r3QMlevXqV58+YkJSUxdepUfHx8CuX2ySeflCq+qf3x2LFj9O7du8x53Y3r169Tv379Mi2zc+dORo4cCYC/vz//+c9/LNE1Vq5cSVRUFFBwf9i5cycdOnTgtddeK9V+UpyUlBSGDh1qpt4WZG+RVouxceNGatSoUez0b775hvr163P69GnOnj1LvXr1rNg7y/voo49KnN64cWPef/99K/WmaL/99huXL18u1z7kt2bNGqKjo/nggw946KGHyMrKIjQ0lFGjRvHZZ58B0KJFC9auXasts3//fsaNG8d3331X5PSyeOutt+45h6JkZGQwZMgQfH192bVrF/b29vzxxx+88sorAPTp04cFCxZgMBjw8vLSltuxYwedOnWiZs2aALzyyiuFDohKy9T+KHIdO3aMp59+Gii4P+zevZvx48fTt2/fe2o/OTmZU6dO3VMbxbFqgTclPDycnj17UqdOHTZu3EhwcHCZlk9KSmLOnDmcO3cOW1tb/Pz8GDp0KJcuXSIoKIg//vgDpRT9+vXj9ddf5+LFiwQEBPCvf/2LmJgYsrOzmTx5MhEREZw7d45GjRqxbNky/vzzT/z9/WnZsiXx8fEopZg9ezYtWrTg6tWrzJ49m2vXrpGUlMTjjz/Oe++9x4MPPkinTp1o0qQJCQkJTJgwgfnz57N8+XLq1q3LtGnTOH/+PLa2tjRs2JDg4GB+/PFH5s6dy549e0hJSeGdd94hPj4eGxsbfHx8mDBhAvb29jRu3JgRI0Zw+PBhrly5wtChQ7XCcKf33nuPU6dOYTQaefvtt+nYsSMA27ZtIzw8HKPRSLVq1Zg1axYPPPAA77//PikpKUybNo24uDgmT55MmzZt2Lt3L1OnTuXHH3+kUqVKzJw5Ew8PD1566SWWLFnCjz/+SE5ODg0aNGDmzJm4urpy+fJlgoOD+euvv8jKyqJXr16MGjWKixcv8sorr9C+fXtOnDhBcnIy48ePp2fPngX6fuvWLdauXcuuXbt46KGHAHBwcGDy5Ml88803ZGZmFplz69atSUpK0o7yy2Lq1KncuHGDCxcu0KFDB65du8YzzzzDa6+9xokTJwgJCeH27dtaP1q3bg3AihUrOHHiBDdu3OC1117j5ZdfLjHO//3f//HAAw8wfPhw7b28fScrKwsnJydeeOEFduzYoRV4pRTbtm1j4cKFZc4LKHZ/bNy4Mdu3bycsLAxbW1uqV6+uxbh16xbjx4/n3LlzZGRkEBISQosWLQq0azQaCQ0N5cSJE6SlpaGUIiQkBC8vL6ZOnYqrqysJCQlcunSJunXrsmzZMlxcXPj666959913cXZ2plGjRsX2e/v27URERJCVlUVycjLDhw9n8ODBpcq5uJqQkpLCvHnz+OWXX8jKyqJ169ZMnjwZe3t7GjVqROfOnYmPj8fX15fY2FgWLVqEnZ0d+/bt45lnnuHy5cucOnWKixcv8vfffxMfH29yPykuj2nTppGenk7fvn3ZuXMniYmJzJs3jxs3bpCTk4O/vz8vvvgiaWlpRdYNW9sSTsQoK3F3d1e9e/dWffr00X5Gjx6tTf/1119Vo0aN1N9//61OnDihmjRpoq5fv66UUurChQuqWbNmJmOMGTNGLVy4UCml1M2bN1WvXr1UYmKievnll9XHH3+sve/r66v27NmjLly4oNzd3VVUVJRSSqnZs2erjh07qpSUFJWenq68vb2VwWDQ5ouMjFRKKfXdd98pb29vlZmZqTZs2KDWrl2rlFLKaDSq119/Xa1fv14ppVTHjh3VypUrtf517NhRnTx5Uu3atUsNGzZMKaVUdna2mjFjhkpMTFRHjx5VvXr1UkopNXnyZDV37lxlNBpVRkaGGjZsmBbH3d1dbdq0SSml1KlTp1SjRo1Uenp6kes8b5mEhATVsmVLde3aNXXs2DE1ePBgdevWLaWUUgcPHlQ9evRQSim1Y8cONWLECKWUUitWrFALFixQSik1ZcoU5e3trQ4ePKhycnKUt7e3unLlijaP0WhUSim1dOlSNWfOHKWUUv7+/mrfvn1KKaXS09OVv7+/2rt3r7Y+9+/fr5RS6j//+Y/q0KFDof6fOnVK/etf/ypxm+fvb942CAsLU71799ame3p6Ftjv+vTpo7Zv315ke1OmTFEBAQEFXq9bt05lZmYqb29v9e2332p96927t8rJyVHu7u7aNj99+rRq1KiRyszMLLHfwcHB2r5anN9//115enqq1NRUpZRShw4dUn379i3Qt7Zt2xbKLT4+vsj2itsf4+LiVKtWrdSff/6plFIqLCxMzZo1Sx09elR5eHiomJgY7f2hQ4cWavenn35S48aNUzk5OUoppdauXatGjhyp9XHgwIEqIyNDZWZmqn79+qnt27erpKQk5eXlpX799VellFJr1qxR7u7uhdpOTU1VAwYM0GrBzz//rNWC/Nt+yJAh6ssvvyy0fHE1YerUqeqTTz5RSuX+DU6aNEl9+OGHSqncv5tdu3ZpbeRvO29/KO794vaTlJSUYvPIX9+ysrJUz549VWxsrNbnHj16qJ9//rnYulGSCnOKJjw8nA4dOlCtWjWqVavGE088QUREBKNGjSp1+99//z2BgYEAVK5cmT179nDr1i1++uknPv74Y+39/v37Ex0dTdOmTXFwcKBTp04AuLm50bx5c1xdXQF4+OGHSU5O5uGHH6Zq1ar4+voC0L59e+zs7EhISCAgIIDjx48TFhZGYmIiv/76K02bNtX6dOfRDoCXlxfvvvsu/v7+tGnThoCAAOrUqcOlS5e0eaKjowkPD8fGxgZHR0f8/PzYuHEjI0aMAKBz584ANGzYkMzMTG7duoWTk1OhWIMGDQLA3d2devXq8fPPP2MwGDh//jx+fn7afMnJydy4caPAsl26dGHChAlMmTKF48eP88orr3D48GFcXFxwc3OjZs2afPfdd6SkpPD9998DuddRHnzwQW7dusWPP/5IcnIyy5cvB3KPBuPj42nSpAkODg60b98egAYNGhSKDWBra4vRaCy8oe9w/Phx+vbti42NDZmZmdStW7fAqa6ynqLJf0okzy+//IKtrS0dOnQAoFGjRnzxxRfa9Lxz1R4eHmRmZpKamkr16tWLjWFjY4MyMUpI7dq18fLy4ssvv+TFF18kIiKi0CeDsp6iKWp/PHLkCG3btqVWrVpam5B7aqJ27dra/vzss8+yY8eOQss3b96cqlWrsmXLFi5cuMCxY8dwcXHRpvv4+ODo6Ajk7ofJyckYDAbc3d21Ux8DBw5k2bJlhdp2cXFhzZo1HDhwgMTEROLj47l161ap8y2qJgB89913nDp1iu3btwOQnp5ucj2VRkn7SWnySExM5Pfff2f69Onae+np6Zw5cwYfH58i60ZJKsQpmlu3brF7926cnJy0YpuamsrmzZvLtPPa29tjY2Ojvb5w4QLVqlUr9IdkNBrJzs4Gcj/y51/GwcGhyLbt7OwKtWFnZ8fixYs5efIkL7zwAq1atSI7O7tAvAceeKBQW7Vr1+abb77h2LFjHD16lFdffZWZM2cWKAh3Frb8fQa0Yp7X9+KKRf6Pb0op7O3tMRqN9O3bV9vxjUYjV65coWrVqgWWrV+/PllZWezbt486derQsWNHxo8fj729PV27dtWWnT59ulas09LSyMjIwGg0opRiy5YtODs7A7kX0pycnPj7779xcHDQ+pZ//ef39NNPk52dzfnz5wvsyBkZGYwdO5aQkBDg3s6x5z9/mtdeUdvMzs6uUD9/+eUX6tatC+Tue/lzMVW8mzVrxubNmwu9v2/fPo4fP86UKVMAePnll1m9ejUdO3bEYDCwaNGiUuV16tQpZs6cqb3+/PPPS51beno6f/zxB1Dw76G4f0rfffcd8+bN49VXX6Vz587UrVuXyMhIbXqlSpUKtXFnW3nr706XLl1i4MCBDBgwAC8vL7p37863335rMv/87d5ZE6pXr47RaGT58uXadb6bN28WmK+o9VQaxe0nVapUKVUeOTk5VKlSRdtekHthvXLlyjg5ORVZN4q6GJ+nQtwm+cUXX1C9enUOHjzI/v372b9/P1FRUdy6dYsvv/yy1O20bt1aO8JISUkhICCA8+fP07RpU+2PKSUlhd27d9OmTZsy9fH69etER0cDuRfxHBwccHd359ChQwQEBNCvXz8efPBBvv/+e3Jyckps67PPPmPatGm0bduWwMBA2rZty6+//lpgnrZt27J582aUUmRmZrJ169Yy9xly78YAOH36tLYuvL292bt3L1euXAFyPz0FBAQAuTto/n8kzz//PEuWLMHb25t69eqRmprKF198Qbdu3Qr0MzMzE6PRyKxZs1i2bBmurq40a9aMsLAwIPcPaNCgQezbt6/UfXd0dGT48OFMnz6dq1evApCZmUloaCi3b9/mkUceKfP6uNPnn3+u/TRu3LjY+erWrYuNjQ2HDx8GctdnQEBAqT5hFKVr166kpqby0UcfafvLhQsXWLBgQYGbC3x8fLh69Spr1qzB19e3QLEsSePGjQvkVpJWrVpx5MgRbX/YsmULixcvLnUuhw8fpmPHjgwePJjGjRsTFRVl8m+gRYsW/Pbbb8THxwO5d6QUJTY2lho1ajB69Gh8fHy0omiq/TxF1YTExETatm3Lhg0btL+vN954g08//bTINu78myhJcfvJTz/9VGwe9vb25OTkoJTiqaeewsnJSdtmf/31F7179yY2NrZUdeNOVj2CDwgIKHRBYMKECYSHh/Pqq68WOEquUqUK/v7+bNy4EU9PT27dulXoVsktW7YUuLVq9uzZBAUF4evri1KKkSNH0qhRI5YsWUJwcDA7d+4kMzMTX19f+vfvrx2llEbeSl+yZAmVKlXigw8+wM7OjjFjxrBo0SJWrVqFnZ0dnp6e/P777yW21a9fP3744Qd69uyJs7Mzjz32GEOHDtV2doCZM2dqt9BlZWXh4+NTptNVeS5cuEC/fv2wsbFh2bJlVKtWDR8fH4YPH86wYcOwsbHB1dWVlStXYmNjQ/PmzXnvvfcYM2YMH3zwAV26dGH9+vXaP5c2bdqQkJCgfZwfPXo0Cxcu5N///jc5OTl4eHgwdepUAJYsWcLcuXPx9fUlMzOT3r1706dPnwK3xpoyatQonJ2dtU9yGRkZtGzZklWrVpW6jbxTOPnZ2dkVW1SK4ujoyIoVKwgNDWXRokU4ODiwYsUK7dRDcfr27UtISEihfx6Ojo6EhYWxePFifH19sbOzw87OjjfeeIP+/ftr8+VdGFy2bFmRtwFu2LChwNEyQNOmTct0g0L9+vUJDAzk9ddfB6BmzZqEhoaSmJhYquX9/PyYNGmSlkeLFi34+uuvS/znV6NGDZYsWcKkSZNwcHDgueeeK3I+b29vtm/fTvfu3XF2dqZJkybUqFGD8+fPl6pvxdWEGTNmMG/ePO3vq02bNlr+d+rYsSMLFy4kKyvLZLzi9pOGDRsSGRlZZB516tShQYMG9OjRg/DwcFatWsW8efNYt24d2dnZvPXWW3h5eeHh4VFk3SiJjTL1WVJw8eJFfH19tXurhSitd999l27dutGgQYPy7or4B6oQp2iE0COlFI8//rgUd1Fu5AheCCF0So7ghRBCp6TACyGETkmBF0IInSq3LzoZDIbyCi2EEPe1or5tXaQSBzKwoOPHj5d5mTNnzligJ+UTR0+56C2OnnLRWxw95XK3ccpSO+UUjRBC6JQUeCGE0Ckp8EIIoVMmL7IajUaCgoJISEjA0dGRkJCQAiP7bd68mZ07d2JjY8OwYcPo2bMnSinatWvHk08+CeSOnDdx4kSLJSGEEKIwkwU+KiqKzMxMIiIiiImJYcGCBaxevRrIHWExPDycXbt2kZGRQa9evejRowe///47DRs2ZM2aNRZPQAghRNFMnqIxGAz4+PgAuUfisbGx2rQaNWqwe/duHBwcuHr1Kk5OTtjY2HD69GkuX76Mv78/w4cP59y5c5bLQAghRJFMHsGnpqZqTziC/42NnDdAv729PZ9++ikrVqzA398fyB1udMSIEfTo0YPjx48TGBhY5JNg4uLiytTZ9PT0Mi9zN6wRR0+56C2OnnLRWxw95WKNOCYLvKurK2lpadpro9FY6OkrQ4YMYcCAAQwfPpyjR4/StGlTbWz3Fi1acOXKFe0pLvl5eHiUqbNxcXFlXuZuWCOOnnLRQ5wnp+41a3uJC3qVOP3YsWOMGzeuwPMMqlevXuBRg3379sXT05M5c+Zo73l7e2sPkzAlb96QkBD69OlDkyZNipzv008/ZciQIYXeHzt2LCtXrsTf35+goKACDyIpSlxcHFWrViU+Pp5OnTppT3l67LHHStXf0oiLi2PMmDF8+eWXzJkzh549e9KuXbt7bjchIYGbN2/y3HPPMX78eF599VVcXV0ZPnw4TZs2pUqVKmXO5ccff6Ry5co8++yzJeZT1v25LF8SNVngPT09+fbbb+nZsycxMTG4u7tr086dO8eyZctYsWIFDg4OODo6Ymtry8qVK6lWrRrDhw8nPj6eWrVqFftYNmEhQbmP39N2naDkcuuKKFrjxo1Zv359kdPynll69OjRQp+iy+qFF14osYisXr26yAK/cuXKMsc6evQo586do1OnTsyYMaPMy5eXr7/+moceeojnnnuOd999l7i4OAwGAx06dNAeYFNWO3bsoGfPniUWeEszWeC7dOnC4cOH8fPzQylFaGgoYWFhuLm50blzZ5599lkGDhyIjY0NPj4+tGzZUntCzIEDB7Czs2P+/PnWyEUI3di2bRvdunWjVq1a7N69u8gCfKecnBxmzZrFb7/9Ru3atcnMzARg+fLlDB48mNq1azNt2jTtubxLly5l9+7dJCcnExQURJMmTdixYwdGo5E333yTSZMmaZ8W3n//ff7++28cHR1ZtGgRv/76K1u2bOHdd98Fcj8trF27lg8//JD09HSaN2/Ohg0bCAoKombNmgQGBpKamkpOTg5vvfUWrVu3xtfXl5YtW5KQkICNjQ2rVq2icuXKWj6XLl0iKCiIjIwMkpKSePvtt3n88cdLXAeJiYnMnDmTrKwsKlWqxLvvvktGRgazZs0iIyMDJycn5s6dS05ODm+88QbVqlWjVatW7Nq1CwcHBxo2bMjbb79NUFAQa9asIT09HTc3N7788kuCgoKoXr06U6ZMISUlBaUUCxcupFKlSoX6+eijj3Lw4EFOnz7N008/zYkTJ9iwYQO2trZ4eXkxadIkDAYDQUFBVK5cGWdnZ5YvX35P/8iLYrLA29raFnr8V/6PamPHjmXs2LEFpletWpUPP/zQTF0UQp9OnTqlXbcCaN++Pa+//jqpqakYDAZCQkJ4+umnGTNmTKkK/DfffENGRgZbt27lzz//5Kuvviow/fvvv6dJkyYEBgZy/PhxUlJStGeRBgUFsXPnTqpUqaLdJZdf165d6dWrF5s3b2bt2rV06tSp0Dx2dnaMGDGCc+fO0blzZzZs2ADkfkJo06YNAQEBXL58WXs2b1paGr169WLWrFlMnDiR6OhoevX636mtc+fO8eqrr9KqVSt++uknVqxYweTJk0tcBwsXLmTEiBG0a9eOffv2cebMGbZv346/vz/t27fnyJEjLFmyhPHjx5OUlMSOHTtwdHREKcVDDz2kncaqWrWqlsvgwYO1Z0OvWrWKTp06MWjQIH766SdOnjzJQw89VKifYWFh+Pj40LNnTx544AFWrFjBjh07cHZ2JjAwkMOHD3Po0CG8vb2ZPHky+/fv5+bNm9Yv8EIIyyjuFE1kZCRGo5GRI0cCkJSUxJEjR2jdunWJ7SUmJmoF6rHHHtOem5vnxRdf5KOPPuL111+ncuXKjB8/vlAbTz31VJFtt2jRAsg9ZXvgwIFC01UJzw06e/Ysvr6+ADzyyCO4urpy7do1AO1pV7Vq1SIjI6PAcjVr1mT16tVs374dGxubUj34+r///a/27ObOnTsDEBoaytq1a1m3bh1KKe0a4hNPPGHymbpFtf/iiy8CuevC09OTX3/9tcR+/v7771y/fp0RI0YAkJaWxu+//86oUaOYN28eAQEBPPLII8VeI7kX8k1WISqY7du3s2bNGtavX8/69euZOXMmmzdvNrnc008/TUxMDACXL1/m8uXLBabv27cPLy8vNm7cSPfu3Vm3bh1QsDjb2hZdEk6dOgXkPsD8mWeewcnJiaSkJAD++OMPkpOTteXvfNh2vXr1OH78uNavmzdvUq1aNYASr80tX76cvn37snjxYlq1alXiP5H8sfL6GhkZyaZNm6hbty6TJk1i06ZNvPPOO3Tv3r1QrjY2NiU+JLyo9n/88UcWL15cbD9tbGxQSvHEE09Qq1YtPv74YzZt2sSQIUNo1qwZkZGRdOrUiU2bNvHMM8+wdetWk/HLSo7ghSgnd56iAXj77bdRSvHMM89o73Xr1o358+fz119/cePGDfr3769NGzZsGL179wZyj1gPHz7MSy+9xGOPPUb16tULtN2oUSOmTJnC6tWrMRqNTJs2DcgtWpMmTaJNmzbF9jUqKoqNGzfi4uLCwoULcXFxoXLlyrz00kvUq1ePJ554AgB3d3dWr15Nw4YNtWVHjhzJ9OnT+eqrr0hPTyc4OLjQnXhF6d69O4sWLeLDDz/k0Ucf5e+//za5zOTJk5k9ezarV6+mUqVKLF68mA4dOmjnyNPT04u8+NuoUSMWLVpk8k6hUaNGMX36dCIjI4HcTwcnTpwosp9NmzZlyZIlvPfee7zyyiv4+/uTk5PD448/To8ePcjMzGTmzJmEh4cXeSrcLMo8VqWZyHDBFo4xp0rBHwuTbSNxZNtYJ44MFyyEEELOwQshhF5JgRdCCJ2SAi+EEDolBV4IIXRKCrwQQuiU3AcvBGiDs0G+Adruqb2SB3ez5miSO3bssMpokgB//vmnWUeTPH78OB988AHZ2dncunWLNm3a4OHhwbFjx3j77bd5+umnAcjIyMDX1xd/f3+mTp3K6dOntS9TAfTp04eXXnqp2DjR0dH89ddfDBw4sNC0ixcvMmHCBIt8EcnSpMALUU5kNMmSXbhwgZCQENatW8dDDz1Eeno6L730Es899xxOTk7861//0gY7y8zMpHv37vTt2xeAwMDAMg0jbI4hhysiKfD/EI03Ni703qmAU+XQE1EaMpokfP755/Tr14+HHnoIgEqVKjFnzhyaN2+uDX2QJzU1FVtbW+05FKXh7+9PjRo1SE5OplevXpw/f55JkyaxatUq9uzZg4ODA4MGDaJt27Zcv36d0aNHk5SURP369QkJCSl1nPIk5+CFKCd5QxXk/eSNDZM3mmSHDh3o378/4eHhpWov/2iSEydO5Pbt2wWm540mGRYWxrhx47TRJKtWrUpQUBAAVapUITw8vNDAZl27duWTTz6hY8eOrF27tsj4eaNJ9u7dWxvoC/43muTmzZtZvnw5M2bMQCmljSb56aef8vDDDxMdHV2gvStXrmhDIORxcXHRivjRo0fx9/dn6NChBAYGMmvWLFxcXABYvHhxgXWbkJBQZJ979+7Nhg0btDbPnDlDdHQ0ixYtYtu2bSQmJqKUIjU1lfnz5xMREcGRI0e0wdIqOjmCF6KcyGiSJY8m+dhjj3Hp0qUC7/33v//VYuU/RXOnok7R/Oc//9EGbZsyZQpQON///ve/NGnSBDs7OxwdHZk6dSoXL16kdu3aVK2ae53mwQcfLPTPs6KSI3ghKhgZTTJX79692bZtG9evXwdyh9ldvXq1FresunfvzqZNm9i0aRONGjUqMn7dunU5c+YMRqORrKwsXn31VTIzM+/bJ9LJEbwQ5URGkyzZE088QWBgIGPHjsXOzo60tDQ6duxI+/btOXbsWInLLl68mI8++kh7/dxzz/Hmm2+ajOnh4YGPjw/Tpk3DycmJQYMGlXnM+IrERpX02cqCDAYDXl5eZVrmfn+ws1Vj5LvtD6DxU26FZjHnRVbZNhJHto114pSldsopGiGE0Ckp8EIIoVNS4IUQQqekwAshhE6ZvJRtNBoJCgoiISEBR0dHQkJCqFOnjjZ98+bN7Ny5ExsbG4YNG0bPnj1JT08nMDCQa9euaVfda9SoYdFEhBBCFGSywEdFRZGZmUlERAQxMTEsWLCA1atXA3D9+nXCw8PZtWsXGRkZ9OrVix49ehAeHo67uzvjxo1j7969rFq1ipkzZ1o8GSHuRzKMhLAUkwXeYDDg4+MDQLNmzYiNjdWm1ahRg927d2Nvb88ff/yBk5MTNjY2GAwGXn/9dSB3EJ9Vq1ZZqPtCmEehIvvDvbVnqkDnH00y61JW7psPgEN/B20eGU2y+NEkhwwZwpgxYwp8uzckJIT69etjMBhkNMn/z2SBv3MkOzs7O7Kzs7UvKtjb2/Ppp5+yYsUK7Usbqamp2qBBLi4upKSkFNl2XFxcmTqbnp5e5mXuhjXiWDpGae6sNWd8PW0bczDVx/Pnz9OgQQOmTJnCgB8GFJq+c+dOHnnkEaKjo/npp59wdnYGIDs7u9T5583bq1cvHBwcil1uxYoVRd5XPWbMGOLi4khLS+PcuXPa4GXFSU9PZ9++ffzxxx/UqlWL/v37k5ycrH3LtawuXbrEwoULmTNnDtWqVSMjI4MZM2bw6KOP4u3tzcaNG7UinpWVxddff02vXr3Yt28ffn5+eHp6FmivpPVWs2ZNatasqc2Tfz+7fPkyt2/ftsh+Z+n92WSBd3V1JS0tTXttNBoLfQttyJAhDBgwgOHDh3P06NECy6SlpVGlSpUi2y7rDf4V+csHFTGGKeaMf99vm3s8Yr+TqT7evHkTOzu73PmKiP3DDz8wYMAATp48yZkzZ7QjbHt7+2LbvnM0SaPRiIeHB6NGjSpxNMm0tDQiIiKKHU3SxcWFPXv2lGo0yT179pCens7zzz9/z6NJ5hXq/Efp77zzDs2bNyc7O5tu3brx5JNP4uzszJdffkmHDh1o3rw51apVo3bt2ia3QVlGk7x9+zYrVqww+2iSd/tFp9IyeReNp6enNspbTEwM7u7u2rRz584xduxYlFI4ODjg6OiIra1tgQGJoqOjy/yNVSH+CfKGKsj6NIusT7PIOZoDgMpQMpokJY8m6eTkxPPPP88333wD5H7i8fPz0+aT0SRzmTyC79KlC4cPH8bPzw+lFKGhoYSFheHm5kbnzp159tlnGThwIDY2Nvj4+NCyZUsaN27MlClTGDRoEA4ODixdutQauQhxX8kbTfLO8//GWKOMJknJo0k2aNCAl156iUWLFtGqVStu3ryptQUymmQekwXe1taW4ODgAu/lv9gyduxYxo4dW2C6s7NzgUePCSFKz3jCyJp1a7QBxyIjI9m8ebPJAv/000+zd+9eAgICShxNcuzYsezZs4d169Yxf/78Uo8m+cgjj9zTaJINGjQo82iSY8aMoWfPntSoUUMbTXLSpEkA1K9fn7S0ND755BNeeOGFEtcN5I4m2b179wLvFTWaZHh4OH379iUrK4sRI0Ywa9YsGU1SCFE22imavLtoALv2dqCQ0SQpeTTJPC+88AKLFy/m22+/LbCsjCaZS0aTLKc4MppkxY1j7hhPTt1b4HXigl4F4lj6PnjZNvqKI6NJCiGEkAIvhBB6JQVeCCF0Sgq8EELolBR4IYTQKSnwQgihU1LghRBCp6TACyGETkmBF0IInZICL4QQOiUFXgghdEoKvBBC6JQUeCGE0Ckp8EIIoVNS4IUQQqekwAshhE5JgRdCCJ2SAi+EEDolBV4IIXRKCrwQQuiUyUebG41GgoKCSEhIwNHRkZCQEOrUqaNN37BhA3v35j5UuH379owdOxalFO3atePJJ58EoFmzZkycONEyGQghhCiSyQIfFRVFZmYmERERxMTEsGDBAlavXg3AhQsXiIyMZNu2bdja2jJo0CCef/55nJ2dadiwIWvWrLF4AkLcd4KqAuCR9/opt3LritA3k6doDAYDPj4+QO6ReGxsrDbt0UcfZd26ddjZ2WFjY0N2djZOTk6cPn2ay5cv4+/vz/Dhwzl37pzlMhBCCFEkk0fwqampuLq6aq/t7OzIzs7G3t4eBwcHatSogVKKRYsW0aBBA5566imuXr3KiBEj6NGjB8ePHycwMJAdO3YUajsuLq5MnU1PTy/zMnfDGnEsHcPD9CxmjS/bxrxk25RfDD3FMVngXV1dSUtL014bjUbs7f+3WEZGBtOnT8fFxYU5c+YA0KhRI+zs7ABo0aIFV65cQSmFjY1NgbY9PEpThv4nLi6uzMvcDWvEsVYuJTFnfNk2JSn7J1jZNuUXo6LHMRgMpZ7X5CkaT09PoqOjAYiJicHd3V2bppRi9OjR1K9fn+DgYK2or1y5ko0bNwIQHx9PrVq1ChV3IYQQlmXyCL5Lly4cPnwYPz8/lFKEhoYSFhaGm5sbRqORH374gczMTA4ePAjAhAkTGDFiBIGBgRw4cAA7Ozvmz59v8USEEEIUZLLA29raEhwcXOC9evXqab+fOnWqyOU+/PDDe+yaEEKIeyFfdBJCCJ2SAi+EEDolBV4IIXRKCrwQQuiUFHghhNApKfBCCKFTUuCFEEKnpMALIYROSYEXQgidkgIvhBA6JQVeCCF0Sgq8EELolBR4IYTQKSnwQgihU1LghRBCp6TACyGETkmBF0IInZICL4QQOiUFXgghdEoKvBBC6JQUeCGE0Ckp8EIIoVP2pmYwGo0EBQWRkJCAo6MjISEh1KlTR5u+YcMG9u7dC0D79u0ZO3Ys6enpBAYGcu3aNVxcXFi4cCE1atSwXBZCCCEKMXkEHxUVRWZmJhEREUycOJEFCxZo0y5cuEBkZCRbtmxh69atHDp0iPj4eMLDw3F3d+ezzz6jX79+rFq1yqJJCCGEKMxkgTcYDPj4+ADQrFkzYmNjtWmPPvoo69atw87ODhsbG7Kzs3FyciqwTLt27Thy5IiFui+EEKI4Jk/RpKam4urqqr22s7MjOzsbe3t7HBwcqFGjBkopFi1aRIMGDXjqqadITU2lcuXKALi4uJCSklJk23FxcWXqbHp6epmXuRvWiGPpGB6lmMec8WXbmJdsm/KLoac4Jgu8q6sraWlp2muj0Yi9/f8Wy8jIYPr06bi4uDBnzpxCy6SlpVGlSpUi2/bwKE0Z+p+4uLgyL3M3rBHHWrmUxJzxZduU5FyZl5BtU34xKnocg8FQ6nlNnqLx9PQkOjoagJiYGNzd3bVpSilGjx5N/fr1CQ4Oxs7OTlvmwIEDAERHR+Pl5VWmBIQQQtw7k0fwXbp04fDhw/j5+aGUIjQ0lLCwMNzc3DAajfzwww9kZmZy8OBBACZMmMCgQYOYMmUKgwYNwsHBgaVLl1o8ESGEEAWZLPC2trYEBwcXeK9evXra76dOnSpyuffff/8euyaEEOJeyBedhBBCp6TACyGETkmBF0IInZICL4QQOiUFXgghdEoKvBBC6JQUeCGE0Ckp8EIIoVMmv+gkhBB5npy6t9B7iQt6lUNPRGnIEbwQQuiUFHghhNApKfBCCKFTUuCFEEKnpMALIYROSYEXQgidkgIvhBA6JQVeCCF0Sgq8EELolBR4IYTQKRmqQCfu/Ap5YqVy6ogQosKQI3ghhNApKfBCCKFTJk/RGI1GgoKCSEhIwNHRkZCQEOrUqVNgnuvXrzNo0CAiIyNxcnJCKUW7du148sknAWjWrBkTJ060SAJCCCGKZrLAR0VFkZmZSUREBDExMSxYsIDVq1dr0w8ePMjSpUtJSkrS3vv9999p2LAha9assUyvhRBCmGSywBsMBnx8fIDcI/HY2NgC021tbQkLC+OFF17Q3jt9+jSXL1/G39+fSpUqMW3aNOrWrVuo7bi4uDJ1Nj09vczL3A1rxLFWLiUxZ3zZNuZ1P22bvLb1tG30EsdkgU9NTcXV1VV7bWdnR3Z2Nvb2uYt6e3sXWqZmzZqMGDGCHj16cPz4cQIDA9mxY0eh+Tw8PMrU2bi4uDIvczesEcf8Mc6VeQlzxpdtUxI9bZvCueS1fX9um/svjsFgKPW8Jgu8q6sraWlp2muj0agV9+I0atQIOzs7AFq0aMGVK1dQSmFjY1PqjgkhhLg3Ju+i8fT0JDo6GoCYmBjc3d1NNrpy5Uo2btwIQHx8PLVq1ZLiLoQQVmbyCL5Lly4cPnwYPz8/lFKEhoYSFhaGm5sbnTt3LnKZESNGEBgYyIEDB7Czs2P+/Plm77gQQoiSmSzwtra2BAcHF3ivXr16hebbv3+/9nvVqlX58MMPzdA9IYQQd0u+6CSEEDolBV4IIXRKCrwQQuiUFHghhNApKfBCCKFTUuCFEEKnpMALIYROSYEXQgidkgIvhBA6Jc9ktbagqgAUGD8uKLlcuiKE0Dc5ghdCCJ2SAi+EEDolBV4IIXRKCrwQQuiUFHghhNApKfBCCKFTcptkBdB4Y+MCr08FnCqnnggh9ESO4IUQQqekwAshhE7JKRpxf7jzG8Dy7V8hTJIjeCGE0CmTBd5oNDJ79mwGDhyIv78/58+fLzTP9evX6datGxkZGQCkp6czbtw4Bg8ezPDhw7l+/br5ey6EEKJEJgt8VFQUmZmZREREMHHiRBYsWFBg+sGDBxk2bBhJSUnae+Hh4bi7u/PZZ5/Rr18/Vq1aZf6eCyGEKJHJAm8wGPDx8QGgWbNmxMbGFmzA1pawsDCqVatW5DLt2rXjyJEjZuyyEEKI0jB5kTU1NRVXV1fttZ2dHdnZ2djb5y7q7e1d5DKVK1cGwMXFhZSUlCLbjouLK1Nn09PTy7zM3bBkHA/Ts1glR3PHsfS2uXO93fndga0tt5otlrX2s5LcT9smr21rrDc91ABrxjFZ4F1dXUlLS9NeG41GrbiXZpm0tDSqVKlS5HweHqUpd/8TFxdX5mXuhrXiFOfuYp+zUpyi3Z/rrGjmz0VP26ZwLnltW2Mf0FsNuJs4BoOh1POaLPCenp58++239OzZk5iYGNzd3U026unpyYEDB2jSpAnR0dF4eXmVukN68+TUvQVeJ1Yqp44IIf5xTBb4Ll26cPjwYfz8/FBKERoaSlhYGG5ubnTu3LnIZQYNGsSUKVMYNGgQDg4OLF261OwdF0IIUTKTBd7W1pbg4OAC79WrV6/QfPv379d+d3Z25v333zdD94QQQtwt+aKTEELolBR4IYTQKRmLRlQ4d16YBrk4LcTdkCN4IYTQKSnwQgihU1LghRBCp6TACyGETkmBF0IInZICL4QQOiUFXgghdErugxdlUmjwtAW9yqknQghT5AheCCF0Sgq8EELolBR4IYTQKSnwQgihU1LghRBCp6TACyGETkmBF0IInZL74MW9CaoKgPZc+KDkcuuKEKIgOYIXQgidkgIvhBA6JQVeCCF0yuQ5eKPRSFBQEAkJCTg6OhISEkKdOnW06Vu3bmXLli3Y29vzxhtv0LFjR27cuEG3bt1wd3cH4PnnnycgIMByWQghhCjEZIGPiooiMzOTiIgIYmJiWLBgAatXrwYgKSmJTZs2sWPHDjIyMhg8eDDe3t6cOXOG3r17M2vWLIsnIIQQomgmC7zBYMDHxweAZs2aERsbq007efIkzZs3x9HREUdHR9zc3IiPjyc2NpbTp08zZMgQatSowcyZM3n44Yctl4UQFtJ4Y+MCr08FnCqnnghRdiYLfGpqKq6urtprOzs7srOzsbe3JzU1lcqVK2vTXFxcSE1NpW7dujRq1Ig2bdoQGRlJSEgI77//fqG24+LiytTZ9PT0Mi9zN6wVpzjWim2JOOW13swZt6Ttfz9uG0vvz3ltW+PvRm81wNJxTBZ4V1dX0tLStNdGoxF7e/sip6WlpVG5cmWaNGmCs7MzAF26dCmyuAN4eHgU+X5x4uLiyrzM3TBvnHNlXuLuYleMOOZZb9bKpWgFtv8P5ohTgfK5Z4VzyWvbGn+f92cNMG8cg8FQ6nlN3kXj6elJdHQ0ADExMdqFU4AmTZpgMBjIyMggJSWFs2fP4u7uzsyZM/nqq68AOHLkCA0bNixTAkIIIe6dySP4Ll26cPjwYfz8/FBKERoaSlhYGG5ubnTu3Bl/f38GDx6MUorx48fj5OTExIkTmT59OuHh4Tg7OxMSEmKNXIQQQuRjssDb2toSHBxc4L169eppvw8YMIABAwYUmF67dm02bdpkpi4KIYS4G/JFJyGE0CkZbEwIYVZya2nFIQVeiDx3jowJ8JRbuXTln+7JqXsLvE5c0KucenJ/kwIv/rEKFZFK5dQRISxEzsELIYROSYEXQgidklM0Qoh7c+e1C7luUWFIgRdmJXdQCFFxyCkaIYTQKSnwQgihU1LghRBCp6TACyGETkmBF0IInaqQd9GY+pqy3KkhhBCmyRG8EELoVIU8gi9EvkghhBBlJkfwQgihU/fHEbwQ4p+tiKGcG9/xSV6uxRUmR/BCCKFT/9gj+Dvv1AF5qIAQQl/kCF4IIXTqH3sEL4TeyGPuxJ1MFnij0UhQUBAJCQk4OjoSEhJCnTp1tOlbt25ly5Yt2Nvb88Ybb9CxY0euX7/OpEmTSE9P5+GHH2b+/Pk4OztbNBFLkC9UCSHuZyYLfFRUFJmZmURERBATE8OCBQtYvXo1AElJSWzatIkdO3aQkZHB4MGD8fb2ZtWqVfTu3Zv+/fvz4YcfEhERwSuvvGLpXO6d3G8vhNARkwXeYDDg4+MDQLNmzYiNjdWmnTx5kubNm+Po6IijoyNubm7Ex8djMBgYOXIkAO3atWPZsmX3R4EXQk/uOGCR2woLs9ZprfI6fWajlFIlzTBjxgy6du1K+/btAejQoQNRUVHY29vz+eef88svvxAYGAjA5MmT6devH3PmzOGLL76gUqVKXLhwgcmTJxMeHl6gXYPBYKGUhBBC37y8vEo1n8kjeFdXV9LS0rTXRqMRe3v7IqelpaVRuXJl7f1KlSqRlpZGlSpV7rqDQggh7o7J2yQ9PT2Jjo4GICYmBnd3d21akyZNMBgMZGRkkJKSwtmzZ3F3d8fT05MDBw4AEB0dLcVcCCHKgclTNHl30fzyyy8opQgNDSU6Oho3Nzc6d+7M1q1biYiIQCnFyJEj6datG1evXmXKlCmkpaVRvXp1li5dygMPPGCtnIQQQlCKAi+EEOL+JN9kFUIInZICn8/ChQvLuwtmo6dcQF/5WDKXTZs2AbnfUXnzzTfp2rUr48eP5+rVqxaL+fHHH1us7fwstd78/Pz47bffLNJ2cay1zqTA53P69GmLtZ2YmMi4ceOYNGkSiYmJ2vtz5syxSDxL5nLr1i02btzIrl27+Ouvv/D39ycgIIBz585ZLKYl87nTxIkTLdq+JXP55ptvAJg3bx5dunQhMjISX19fZs6cabGY3333ncXazs9S6y05OZkZM2bw/vvvk5qaapEYd7LWOquwY9EsW7as2GkTJkwwe7yBAwdy9uxZ/Pz8ANiyZYtZ2581axYjR44kOzubMWPGsHjxYho0aGCRomjpXAIDA/Hw8OCXX35h1apVBAcH88ADDzB37lzCwsLMGgssn0+HDh3Izs7WXt+4cYNjx44BcOjQIbPGsnQuea5du4avry8AnTp1YsOGDRaJM2HCBM6ePav9U1y6dKlF4lhyvdWsWZOPP/6YTZs28eKLL9KyZUvatWvHE088wbPPPmu2OHmstc4AUBVUWFiY6tq1q9q1a5fauXNngR9LuHDhghowYIC6ePGiunjxotnbHzJkiPb72bNnVc+ePdWff/6p/P39zR7L0rm8/PLLSimlcnJyVM+ePbX3hw4davZYSlk+n2PHjqk33nhDXb58WSlVcFuZm6VzadWqlZo7d64aOHCg+v7771VOTo76v//7P4vsZ0opdfToUdWvXz917NgxdezYMYvEUMqy6y3/9s7MzFTfffedmj9/vho5cqRZ4+Sx1jpTSqkKewT/yiuvEBsby8MPP0ybNm0sHu+JJ57A0dGRxx9/3CLt29vbs3//ftq3b0/dunULHNGbmzVyiYyMpE+fPnz++ecAHDt2DKPRaJF4ls6nZcuWuLm5MXv2bIYNG4aNjY1F4oDlc/nqq684c+YMjzzyCLdv3+b27dt8/fXXzJ8/3yLxWrVqhaurKy1btrRI+3ksud48PP73nCgHBwfat2+vfXPfEqy1zoCKewSvlFLp6ekqOTnZavFSUlIs1vaff/6ppkyZov7++2/tvSNHjqg+ffpYJJ4lc7ly5YqaN29egfeCgoLUuXPnLBbTkvnkycjIUDNmzFDdu3e3aBxr5HKnvXv3WqxtS273/Ky93vSwzip0gS+KJVd6edizZ4/Z2vrvf/+rxo4dqyZOnKgSExO192fPnm22GCUx97ZJS0tTGzZsUDt37lR//vmnGjJkiBo6dKg6e/asWePcKe9UjSX3tQkTJlis7aK88MILZm3vk08+UUrl/rMfN26c6tKli3r77bdVUlKSWeOcPHlSff755+ratWtq8uTJqlevXuqtt95Sf/zxh1njFMXc62zgwIHq119/NWubptx3d9GY+/aiZcuWFftjDea8KDlr1iwGDhxI7969GT16NGfOnAGw6N0t+Zl72wQGBpKSksLx48cZOnQoo0ePZsKECcydO9esce708MMPA+bNp0OHDrRt21b7+eqrr7TfrUGZ+fuM1rpbJyQkhPr16xMcHEzr1q357LPP6N27N1OmTDFrnKKYe52Vx906912BN/dKr1GjBl999RV169blqaeeKvBjDebOp23btnTo0IEVK1YQGBjIX3/9ZdFzyvlZ4g9i7NixzJ07F0dHR1q3bk3Tpk0tdq7/TubMZ9GiRTRp0oSdO3dy6NAhmjdvzqFDh8x+l05xLLUP5N2tU6lSJTp16sStW7fM2r6DgwP169cnJSWFfv36UaVKFZ5//nmysrLMGqco5l5nNWvWZPPmzVSuXJkXX3yR2bNnExUVRXx8vFnj5FdhL7IWx9wr3doXc+9kznyseSG3KObeNta+mHsnc+ZjrQu5xX0iuHHjhlnj/PLLL4SEhJCVlcWRI0do1aoVX331lVljADz++OOsX7+e9u3bs3LlSjp16sSBAweoWbOm2WJYa50ppbC3t+fVV19lyJAhfP/99xw5coTt27ezZs0as8bKU2HHoilpped/6Ig5ZGRkkJGRUeSwxuZijXz++usvli9fztSpU6lWrRoAR48eZf78+VqBNAdrbZukpCQ++ugjpk+frr33zjvvMHToULN+wrLmvpaZmUlwcDAGg4Evv/zSrG2X5PLlyzzyyCNmay85OZkzZ84QGxtLvXr1aNWqFTNnzmTSpElmvdPl9u3brF+/nkOHDvH3339TrVo1vLy8GDVqlEX/XsH86yw0NLTAvmwVVj3jbwaXLl2yShxrXcy1Rj7mvJBbEtk2pWeNC7lK5d6pNXbsWNWmTRuLxsljrW1jyTh6Wmf3zTn4o0ePMm7cOPr372+VeJYeK8Ka+Vji26X5ybYpO0tcyM1z69YtNm/eTO/evXnrrbfo2rUr3377rdnjFMVaY6yYO45e11mFLvDludKVBc5clVc+esoF9JWPuXOZO3cuL730EleuXGHlypU0btwYX19fHB0dzRqnOJbYNpaOo+d1VmELfHmvdHNfBCvPfPSUC+grH3PnYjAYaNiwIU2bNsXNzc1qd1DlsVY8c8bR8zqrsHfRWGulW+sKujXy0VMuoK98rJXL7t27+emnn9i2bRsLFixAKcXZs2epV6+eWeNYKx9rxNHbOsuvwt5FA2gr3WAwoJRizZo1Zl/pxTH3FXQov3z0lAvoKx9L5JInNTWVyMhItm/fDsDOnTstEic/S+ZjjTi6W2cWu3xrRikpKWrz5s3q3//+t/r3v/9t0VjWuIJurXz0lItS+srHUrm89dZb2u/r16/Xfvf09DRrnDtZ684TS8TR8zqrsAXemis9LS1Nffrpp6pXr16qZcuWKjIyUmVkZJg1hrXy0VMuSukrH2vkkn/o2/xDBFtiCGRr5GONOHpcZ3kq7EXWa9euab/nf/pJgwYNzBrHWhfYrJGPnnIBfeVTHhdyVb6zr/frhWlrrzc9rLP8KmyBz8+SK708rqBbKh895QL6ysdaueRv15Lry1r5WCOO3tZZfhX2LhprrXRrXUG3Rj56ygX0lY+1cvntt9+YOHEiSqkCv589e9ascayVjzXi6G2d5Vdh76Jp06YNrVu3RinF0aNHtd+PHTvG4cOHLRLTklfQrZ2PnnIBfeVjyVx++OGHYqdZ6glC1rrzxFJx9LzOKuxF1rznFRb1Y07WusBmjXz0lItS+sqnvO7UsBRr5aOn9VYeuVTYUzRWeV4hhS+wDRs2DDD/BUNr5KOnXEBf+VgrF2uxVj56Wm/lkct9cZHVWpQFLxham55yAX3lo6dcwHr56Gm9WSuXf3yBt9YFQ2vQUy6gr3z0lAtYLx89rbfyyKXCnqKxFmtdQbcGPeUC+spHT7mA9fLR03orj1wq7F001lIeV9AtRU+5gL7y0VMuYL189LTeyiOXf3yBF0IIvfrHn4MXQgi9kgIvhBA6JQVeCCF0Sgq8EELolBR4IYTQqf8H1j8ogRc/60UAAAAASUVORK5CYII=", + "image/svg+xml": "\n\n\n \n \n \n \n 2022-05-26T17:55:07.946488\n image/svg+xml\n \n \n Matplotlib v3.5.1, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", "text/plain": [ "
" ] @@ -428,8 +428,8 @@ "outputs": [ { "data": { - "image/png": "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", - "image/svg+xml": "\n\n\n \n \n \n \n 2022-05-26T10:48:33.337771\n image/svg+xml\n \n \n Matplotlib v3.5.1, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "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", + "image/svg+xml": "\n\n\n \n \n \n \n 2022-05-26T17:55:08.791682\n image/svg+xml\n \n \n Matplotlib v3.5.1, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", "text/plain": [ "
" ] @@ -465,7 +465,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "484cd61a8f0f4a9b87d8483aa46a6c2b", + "model_id": "39296b50def9436f852cd4b0ccc3a6e6", "version_major": 2, "version_minor": 0 }, @@ -489,7 +489,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "44ea26a201de41bd94802c5f9ae0efad", + "model_id": "14ca832ec5844b729167fc910012b2bf", "version_major": 2, "version_minor": 0 }, @@ -751,19 +751,27 @@ }, { "cell_type": "code", - "execution_count": 101, + "execution_count": 18, "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1gAAAEYCAYAAABBWFftAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAACZbElEQVR4nOzdeXxU1fn48c+dfTIz2RMgQFgEBFRUwK0idWtd6l4FRPnaVrtYSyvWCnUBrVKlKq2Vr+vXXxfQKhbb2mqtSlVUFDEqKAaQHbLvmZnMeu/5/REyJJCQkEwyM8nzfr14kblzl2fu3Jkz555znqMppRRCCCGEEEIIIXrMlOgAhBBCCCGEEKK/kAqWEEIIIYQQQsSJVLCEEEIIIYQQIk6kgiWEEEIIIYQQcSIVLCGEEEIIIYSIE6lgCSGEEEIIIUScSAVrgNF1nT/84Q9cccUVXHrppVx44YU8+OCDhMNh9u7dy7HHHktFRcUh21188cW8/vrrvPTSS0yZMoVLL720zb/bbrstAa8mvi699FIaGxsTGsNFF13EunXrEnJsn8/HrFmz+Na3vsV//vMf7rzzTr744ouExNLaiy++yLPPPgvAX/7yF5566ikA3nvvPc466yy+/e1v89xzz8WWd8f3vvc9amtrAfj+97/Ptm3beh64EClMyoqOSVkhZUWirF69mvvuuy9u+3vmmWdYsGBBp+sly3ucSiyJDkD0rbvvvpuGhgb+9Kc/4fF4aGpq4tZbb+WOO+7gwQcf5PTTT+ell17ixhtvjG3z6aef4vV6Oeecc/jHP/7B1KlTefLJJxP4KnrHP/7xj0SHkFDFxcXU1NTwxhtvALBkyRJmzpyZ4KigqKiIsWPHAnD11VfHlr/yyitcddVV/PjHP+7xMd5///3Y308//XSP9ydEqpOyomNSVkhZkSjnnHMO55xzTp8fd+3atUnxHqcSqWANIHv37uWf//wn7733Hm63G4C0tDTuuecePv30UwBmz57Nfffdx49+9CM0TQNg5cqVzJw5E7PZ3OkxPv74Yx544AEMwwDghz/8Ieedd16bdQzD4Ne//jUbNmzA7/ejlOK+++5jypQpLFiwAE3T2L59O7W1tZx++unceeedWK1WJk6cyHXXXce6detoamrilltu4Zvf/CbQfOfqL3/5C4ZhkJmZyV133cVRRx3Fzp07+dWvfkVTUxOVlZWMHz+e3/3ud9jtdo499ljOOeccNm/ezEMPPcSVV17JBx98wNtvv80bb7yByWRi9+7dWK1WlixZwrhx49i9eze33347DQ0N5OXloZTikksu4YorrmjzGufMmcMJJ5zAJ598QllZGVOmTGHJkiWYTG0bjbdt28btt99OIBBg9OjRNDU1xZ574oknePPNNwmFQgQCAebPn8+5557L+eefz1133cW0adOA5jtLY8eOZdq0adxxxx2Ew2GUUlx55ZVcc801h7xH7e33qKOO4vbbb6eiooJLL72U0047jcrKSm699VZ+85vfMHr0aBYvXszWrVuJRCKcdtpp3HbbbVgslkPO43HHHRc7lt/v57777uOTTz7BbDZz7rnnMm/ePCKRCA899BDr169H13UmTpzInXfeidvt5uyzz2bSpEls2bKFW265hf/+97+8//77OBwOamtrqauro6CggNWrV2O32/F6vaSlpVFXV8fChQvZuXMnCxcupLa2FpPJxI033siFF17IW2+9xZNPPkk4HKa2tpbLLruMm2++mV/+8pcAXHfddTz11FNcc801PPLIIxx33HG88MILLF++HJPJRG5uLnfddRejRo1iwYIFuN1utmzZQnl5OaNHj2bp0qW4XK5OPyNCJDspK6Ss6Gi/UlYcKCtMJhO/+tWvKCsrIxKJ8K1vfYsf/ehHh5xHr9fb7jnZvXs3M2fOZMWKFYwfP57bbrsNs9nM/fff3+E1/NJLL/Gf//yHJ598kjlz5pCRkcGOHTu48MILeeaZZ1izZg0ejwelFOeffz6PPPII48ePj8USiUS47777WLt2LTk5OeTk5ODxeAD47LPPYq3UVVVVfO1rX+PXv/41v/3tb7v8HotWlBgwXnvtNfXtb3/7sOvouq7OOecc9eGHHyqllGpsbFQnnXSSqq6uVkoptWrVKjV58mR1ySWXtPn317/+VSml1P/8z/+of/3rX0oppYqLi9Xdd999yDE++eQTNXfuXKXrulJKqSeffFL98Ic/VEopNX/+fHXZZZcpn8+nQqGQuuaaa9Ty5cuVUkqNGzdOPf7447F9T5kyRdXU1Kh169ap2bNnq6amJqWUUu+++6664IILlFJKPfDAA+rvf/+7UkqpcDisLrroIvXaa6/F9ve3v/0tFte4ceNUTU2NWrVqlZoyZYoqKytTSin1q1/9St12221KKaVmzJihnn32WaWUUtu2bVPHH3+8WrVq1SGv8dprr1U//elPla7ryuv1qmnTpqkPPvjgkPUuvfRStXLlSqWUUh9//LE6+uij1Ycffqj27dun5syZowKBgFJKqX/961/qoosuUkop9Yc//EH99Kc/VUop5fV61amnnqoaGhrUL3/5S/Xkk08qpZSqrKxUN998c+wctzjcfj/88EP1rW99K7buWWedpTZu3KiUUmrBggXqz3/+s1JKqWg0qm699Vb11FNPtXseW/v1r3+t5s2bp6LRaOz9/PDDD9Wjjz6qHnjgAWUYhlJKqYcfflgtWrQodtxly5bF9jF//nz1f//3f0oppX7/+9+re+6557DLL7vsMrVixQqllFKlpaXqnHPOUY2Njeraa69VO3fuVEopVV5eriZMmKBqampir6Hl75bXvXbtWnXuuefGlq9atUpdcMEFyjAMNX/+fDVz5kwVCoVUOBxWl112WewzIESqk7JCygopK3YqpQ5fVsyZM0etXr1aKaVUMBhUc+bMUa+88sohr+1w5+SFF15QF198sVq5cqW6+OKLY+e7o2t41apV6gc/+IFSqvna+eUvfxk7zo033hh7PWvXrlUzZsw4JJY//vGP6n/+539UKBRSfr9fXX755Wr+/PlKKaXmzZsX+zz7fD51yimnqM8//zx2rrvyHosDpLo5gJhMptjdwsOtM2vWLFatWsUpp5zCyy+/zPTp08nJyYmtc7huHxdccAG/+tWv+O9//8vXvvY1brnllkPWOfHEE8nIyOD5559n7969rFu3rs2d/8svvzz2+NJLL2X16tVce+21ALH/x48fz7hx41i/fj0bNmxg9+7dzJo1K7aPhoYG6uvr+cUvfsH777/P008/za5du6isrGxz52/q1Kntvo5jjjmGwYMHAzBx4kTeeOMNGhoa2LhxIytWrADgqKOO4tRTT+3wXJ511lmYTCbcbjcjRoygoaGhzfN1dXVs2bKFyy67DIApU6bEujcMHTqUJUuW8M9//pPdu3fH7uACXHHFFfzv//4vtbW1vPbaa5x55pmkp6fzjW98g/nz57Nx40ZOO+007rzzzkPugh5uv4fz9ttv8/nnn/PXv/4VgGAw2Ob5js7j2rVr+eUvf4nZbMZsNsfO3YMPPojX62Xt2rVA8121g6+x7qivr2fz5s1cddVVAAwZMoQ333wTaL4b+/bbb/Ovf/2L7du3o5QiEAh0uK93332XCy+8kOzsbKD5vC9evJh9+/YBcMYZZ2Cz2QAYN27cIe+vEKlKygopK6SsOHxZ0dTUxPr162loaOCRRx6JLdu8eTMXXnhhl8/JjBkzePfdd7nvvvv4xz/+gcPhiD3X3jV8sNav/5prruHBBx/kmmuu4YUXXmjTTbLFBx98wEUXXYTNZsNms3HxxRezZcsWAB544AHWrFnDE088wY4dOwgGg20+A115PeIAqWANIJMmTWLHjh34fL5Ytw+AiooK7rrrLn7/+9/jcDj49re/zfnnn4/P52PlypXcc889XT7GrFmzOOuss3j//fd59913WbZsGS+//HKsCRqaP5yLFy/mu9/9Lueccw6jR4/m5Zdfjj3funuJUqrNF3/r5wzDwGw2YxgGl156Kb/4xS9iyysrK8nIyGDevHnous4FF1zAmWeeSVlZGUqp2D7S0tLafR2tv+Q0TUMpFTt26+0P1xWmvX201tKtpvXylib2TZs28eMf/5jvfOc7nH766Zx00kmx9yE9PZ3zzz+fl19+mX/+858sWrQIaC6k//Of/7B27Vo++OAD/vd//5fnn3+ewsLC2P4Pt9/DMQyDRx55hKOOOgqAxsbGWPzQ8Xm0WCxt1isrK8PhcGAYBrfffjtf//rXgebuIaFQqNP9dabl/LU+5o4dOxg8eDCXX3455557LlOnTuXb3/42b7755iHvSWvtPaeUIhqNAp2/v0KkKikrpKyQsuLwZYVhGCileP7553E6nQDU1tZit9sPOdbhzkk4HGbPnj14PB42b97MyJEjY9u1dw0frPXr/9rXvkYgEOCDDz7g448/ZsmSJZ2eh9b7vOaaaxg/fjxnnHEGF1xwARs2bGi3XOvsPRbNJIvgADJo0CAuvvhibr/9dnw+H9CcDejuu+8mMzMz9iWflZXFWWedxe9//3vMZjMnnHBCl48xa9YsiouLueKKK7j33ntpbGw85G7c+++/z1lnncXs2bM57rjjePPNN9F1Pfb8v//9b8LhMKFQiL/97W+cddZZsef+/ve/A81f/jt37uSkk07i9NNP55VXXqGyshJozh503XXXAc3Zg2666SYuvPBCNE1jw4YNbY51JNxuN5MnT+all14CmscpfPDBB93+YsnMzOSYY47hxRdfjL2mrVu3ArB+/XqO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VlYW8+fPx+v1opRiyZIlOBwO7r77bkKhEFVVVdx8880EAgHeffddNm3axJgxY7jqqqt4//33+fLLL7n33nsxm82xWAzD4Oc//zmDBw9m7969HHfccdxzzz2JeLtEB+J1Hf/ud7/Dbrd3eh2XlZUdcs3W1dXxi1/8ghdffJF///vfrFmzhl/84hfceuutDB8+nIqKCqZPn868efNYsGABF154IdXV1axatQrDMPjpT3/K9u3bef311wkEAmRlZbFs2TKeeOIJtm3bxrJly1BKkZuby9VXX80DDzxAUVERABdddBHXXXcdCxYswGazUVJSQmVlJQ888ADHHHNMn78f4oCwrhMy9M5XFCJFSAVLCJH8jj0WNm1q96lu3Yc/5hj44osj2iQnJ4dNmzZRVlbGCSecwFVXXUUoFIr9GLz44ot55ZVXuOaaa3j55ZfbtPYopbjrrrv41a9+xbRp0/jTn/7E448/zt13380bb7zR5kcpwJIlS/jBD37A9OnTWb16NV9++SV//etfmTNnDl//+tf54IMPeOihh5g3bx5VVVWsWrUKm80W+2E5adKkWMw/+MEP2LFjB7Nnz+bf//43AI899hhnn302V199NZ988gkbN24kNzeX7373u5xyyil88sknPProo9x2222cccYZXHjhhRQUFMTiu/POO1m8eDETJkzgzTff5IEHHuC2225j165dPPPMMzidTs4991yqqqrIy8vrzjvUPx3mOu6WBF3Hf/nLXxg0aFCXruODr9mHH36Yq666igULFrBv3z7+/Oc/U19fT2VlJc8++ywej4fZs2ez6aDzlJ6ezuOPP45hGBQVFfHHP/4Rk8nE9ddfz+eff86PfvQjtm7dyk9+8hMeffRRAN566y327dvHypUriUajzJ49m1NPPRWAgoICfvWrX7Fy5UpeeOEFfvWrX3XnHRC0bX2SlichmkkFSwiR/A7zI7K4uDju3Z3aU1payuDBg8nMzOTzzz/nww8/xO12Ew6HAfj2t7/NLbfcwkknnURubi65ubmxbevq6nC73eTk5ABw0kknsXTp0g6PtXPnTk488UQAzjnnHAB+/etf8+STT/J///d/KKWwWJq/vocNG4bNZjui17Jz506uvPJKACZPnszkyZP56quvePzxx/nrX/+KpmlEo9EOt6+srIyd85NOOomHH34YgMLCQtxuNwB5eXmEQqEjiqvfO8LKUG+Ix3U8aFDzD+jOruOtW7e2e83OmjWL//3f/+XHP/4xbreb+vp6Ro4cSWZmJgCTJk1i586dbfY1atQoAEwmE1arlVtuuYW0tDTKy8s7vFa3b9/O1KlT0TQNq9XK8ccfHxsj1nL9Dh48mE8++eRIT2NSSlRFR1qfhDiUdFISIk4+qy5nfVUJ66tK+Ky6PNHhiDjy+Xy8+OKLnH/++bz00kt4PB4efvhhvve97xEMBlFKMXToUDweD0888USs8tIiKysLn89HbW0tAB999BEjR47s8HhHHXUUn3/+OQAvv/wyy5cvZ/To0dx6660sX76ce+65h/PPPx9o/sHZQtM0jNbdULuw//Xr1/Pggw/yyCOPcOmll/Lggw9yyimnoJSK7bPl7xb5+fmxxBfr16+PvRZN0zo9dqJs2LCBOXPmAM2V8tmzZzNnzhyuv/56qqurAVi5ciVXXHEFM2bM4K233gKgtraW733ve8yePTvWbTJVxes6rqysBDq/jju6Zn/zm99w/fXX89JLL7F3714A9u3bRyAQQNd1Nm7cyJgxY9rsq+U637x5M2+++Sa/+93vuOuuuzAMA6UUJpPpkGv/qKOOinUPjEQifPrpp4wYMQJI7mu1u1oqOiFDbzOeKRl8XltBUVUpRVWlfF5bkehwhOh10oIlRJxElH5gjJXcukh5H374IXPmzMFkMqHrOnPnzmX06NHous7Pf/5zPvvsM2w2GyNGjKCyspJBgwYxY8YM7rvvPh588ME2+9I0jfvuu48HHniAtLQ0MjIyuP/++zs89m233cbChQt5/PHHcTgcPPjgg5x55pmxMVLBYJA77rjjkO2OPfZYfvOb33DUUUcd9rX96Ec/4vbbb+fll18GmlvHNmzYwG9+8xueeuopBg8eTF1dHQDHH388Dz30EMOGDYttf99993HvvfeilMJsNvPrX/+6y+c1EZ5++mlefvllnE4nAIsXL+auu+5iwoQJPP/88zz99NPccMMNLF++nFWrVhEKhZg9ezann346jz32GBdddBFXXHEFTz31FC+88ALf+c53EvuCjkBvXMdz585F07ROr+P58+cfcs2++eab7Nq1i7vuuosTTjiBW2+9lSVLlmCxWPjZz35GdXU1559/PuPHj293nyNGjMDpdDJr1iyguaW0srKSE088kUgkwoMPPojD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", - "image/svg+xml": "\n\n\n \n \n \n \n 2022-05-26T12:49:58.437764\n image/svg+xml\n \n \n Matplotlib v3.5.1, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1gAAAEYCAYAAABBWFftAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAACkvElEQVR4nOzdd3yT1f7A8U9Gk45079IWKLMs2UMBxYUiOFABUa7zXq96UVCv4ABcqDhwcVVQfnoFFUHwilvBgYAClg2FQoHukTZd6UjT5Pn9UQkUWrrSpmm/79erL8iT8zzPN+mTnpznnPM9KkVRFIQQQgghhBBCNJva1QEIIYQQQgghRHshDSwhhBBCCCGEcBJpYAkhhBBCCCGEk0gDSwghhBBCCCGcRBpYQgghhBBCCOEk0sASQgghhBBCCCeRBlYHY7PZeP/995k8eTLXXHMNEyZM4KWXXqKyspK0tDT69etHTk7OWftNmjSJH374gXXr1jFkyBCuueaaGj+PPPKIC16Nc11zzTUUFxe7NIaJEyeybds2l5zbbDYzbdo0rrrqKr7//nueeOIJ9u/f75JYTrdmzRo++ugjAD755BOWLVsGwObNmxk3bhzXX389H3/8sWN7U9xxxx2YTCYA/v73v3P06NHmBy6EG5O6om5SV0hd4SobN27k2Wefddrxli9fzty5c+st11Z+x+5E6+oAROt68sknKSoq4r///S++vr6UlZXx8MMP8/jjj/PSSy9xwQUXsG7dOu655x7HPrt27aKkpIRLLrmEL774gqFDh7J06VIXvoqW8cUXX7g6BJdKTEwkPz+fH3/8EYBFixYxdepUF0cFCQkJ9OjRA4CbbrrJsf3rr7/mxhtv5N577232ObZs2eL4/7vvvtvs4wnh7qSuqJvUFVJXuMoll1zCJZdc0urn3bp1a5v4HbsTaWB1IGlpaXz55Zds3rwZg8EAgLe3N0899RS7du0CYPr06Tz77LP885//RKVSAbB69WqmTp2KRqOp9xx//vknL7zwAna7HYC7776b8ePH1yhjt9t57rnn2LNnD6WlpSiKwrPPPsuQIUOYO3cuKpWK5ORkTCYTF1xwAU888QQeHh706dOHW2+9lW3btlFWVsaDDz7I5ZdfDlTfufrkk0+w2+0EBAQwb948unXrxvHjx3n66acpKysjNzeX3r1789prr6HX6+nXrx+XXHIJhw4d4uWXX+aGG27g999/55dffuHHH39ErVaTkpKCh4cHixYtomfPnqSkpPDYY49RVFREaGgoiqJw9dVXM3ny5BqvccaMGQwcOJCdO3eSlZXFkCFDWLRoEWp1zU7jo0eP8thjj1FeXk5cXBxlZWWO59555x02bNiAxWKhvLycOXPmcOmll3LFFVcwb948Ro8eDVTfWerRowejR4/m8ccfp7KyEkVRuOGGG7j55pvP+h3Vdtxu3brx2GOPkZOTwzXXXMOoUaPIzc3l4Ycf5sUXXyQuLo6FCxeSlJSE1Wpl1KhRPPLII2i12rPex/79+zvOVVpayrPPPsvOnTvRaDRceumlzJ49G6vVyssvv8yOHTuw2Wz06dOHJ554AoPBwMUXX8yAAQM4fPgwDz74ID/99BNbtmzB09MTk8lEQUEBUVFRbNy4Eb1eT0lJCd7e3hQUFDB//nyOHz/O/PnzMZlMqNVq7rnnHiZMmMDPP//M0qVLqaysxGQyce211zJr1iweffRRAG699VaWLVvGzTffzOuvv07//v359NNPWbFiBWq1mpCQEObNm0fXrl2ZO3cuBoOBw4cPk52dTVxcHIsXL8bHx6fez4gQbZ3UFVJX1HVcqStO1RVqtZqnn36arKwsrFYrV111Ff/85z/Peh9LSkpqfU9SUlKYOnUqK1eupHfv3jzyyCNoNBqef/75Oq/hdevW8f3337N06VJmzJiBv78/x44dY8KECSxfvpxNmzbh6+uLoihcccUVvP766/Tu3dsRi9Vq5dlnn2Xr1q0EBwcTHByMr68vALt373b0UhuNRs4//3yee+45Xn311Qb/jsVpFNFhfPfdd8r1119/zjI2m0255JJLlD/++ENRFEUpLi5Whg0bpuTl5SmKoihr165VBg8erFx99dU1fj777DNFURTlb3/7m/LVV18piqIoiYmJypNPPnnWOXbu3KnMnDlTsdlsiqIoytKlS5W7775bURRFmTNnjnLttdcqZrNZsVgsys0336ysWLFCURRF6dmzp/L22287jj1kyBAlPz9f2bZtmzJ9+nSlrKxMURRF+e2335Qrr7xSURRFeeGFF5T//e9/iqIoSmVlpTJx4kTlu+++cxzv888/d8TVs2dPJT8/X1m7dq0yZMgQJSsrS1EURXn66aeVRx55RFEURZkyZYry0UcfKYqiKEePHlXOO+88Ze3atWe9xltuuUW5//77FZvNppSUlCijR49Wfv/997PKXXPNNcrq1asVRVGUP//8U+nVq5fyxx9/KOnp6cqMGTOU8vJyRVEU5auvvlImTpyoKIqivP/++8r999+vKIqilJSUKCNHjlSKioqURx99VFm6dKmiKIqSm5urzJo1y/Een3Su4/7xxx/KVVdd5Sg7btw4Ze/evYqiKMrcuXOVDz/8UFEURamqqlIefvhhZdmyZbW+j6d77rnnlNmzZytVVVWO3+cff/yhvPnmm8oLL7yg2O12RVEU5ZVXXlEWLFjgOO+SJUscx5gzZ47y3nvvKYqiKG+88Yby1FNPnXP7tddeq6xcuVJRFEXJzMxULrnkEqW4uFi55ZZblOPHjyuKoijZ2dlKfHy8kp+f73gNJ/9/8nVv3bpVufTSSx3b165dq1x55ZWK3W5X5syZo0ydOlWxWCxKZWWlcu211zo+A0K4O6krpK6QuuK4oijnritmzJihbNy4UVEURamoqFBmzJihfP3112e9tnO9J59++qkyadIkZfXq1cqkSZMc73dd1/DatWuVf/zjH4qiVF87jz76qOM899xzj+P1bN26VZkyZcpZsXzwwQfK3/72N8VisSilpaXKddddp8yZM0dRFEWZPXu24/NsNpuVESNGKPv27XO81w35HYtTpLnZgajVasfdwnOVmTZtGmvXrmXEiBGsX7+esWPHEhwc7ChzrmEfV155JU8//TQ//fQT559/Pg8++OBZZQYNGoS/vz+rVq0iLS2Nbdu21bjzf9111zkeX3PNNWzcuJFbbrkFwPFv79696dmzJzt27GDPnj2kpKQwbdo0xzGKioooLCzk3//+N1u2bOHdd9/lxIkT5Obm1rjzN3To0FpfR9++fYmIiACgT58+/PjjjxQVFbF3715WrlwJQLdu3Rg5cmSd7+W4ceNQq9UYDAY6d+5MUVFRjecLCgo4fPgw1157LQBDhgxxDG/o1KkTixYt4ssvvyQlJcVxBxdg8uTJ/Oc//8FkMvHdd99x0UUX4efnx2WXXcacOXPYu3cvo0aN4oknnjjrLui5jnsuv/zyC/v27eOzzz4DoKKiosbzdb2PW7du5dFHH0Wj0aDRaBzv3UsvvURJSQlbt24Fqu+qnXmNNUVhYSGHDh3ixhtvBCAyMpINGzYA1Xdjf/nlF7766iuSk5NRFIXy8vI6j/Xbb78xYcIEgoKCgOr3feHChaSnpwMwZswYdDodAD179jzr9yuEu5K6QuoKqSvOXVeUlZWxY8cOioqKeP311x3bDh06xIQJExr8nkyZMoXffvuNZ599li+++AJPT0/Hc7Vdw2c6/fXffPPNvPTSS9x88818+umnNYZJnvT7778zceJEdDodOp2OSZMmcfjwYQBeeOEFNm3axDvvvMOxY8eoqKio8RloyOsRp0gDqwMZMGAAx44dw2w2O4Z9AOTk5DBv3jzeeOMNPD09uf7667niiiswm82sXr2ap556qsHnmDZtGuPGjWPLli389ttvLFmyhPXr1zu6oKH6w7lw4UJuv/12LrnkEuLi4li/fr3j+dOHlyiKUuMP/+nP2e12NBoNdruda665hn//+9+O7bm5ufj7+zN79mxsNhtXXnklF110EVlZWSiK4jiGt7d3ra/j9D9yKpUKRVEc5z59/3MNhantGKc7Oazm9O0nu9gPHDjAvffey2233cYFF1zAsGHDHL8HPz8/rrjiCtavX8+XX37JggULgOpK+vvvv2fr1q38/vvv/Oc//2HVqlXExsY6jn+u456L3W7n9ddfp1u3bgAUFxc74oe630etVlujXFZWFp6entjtdh577DEuvPBCoHp4iMViqfd49Tn5/p1+zmPHjhEREcF1113HpZdeytChQ7n++uvZsGHDWb+T09X2nKIoVFVVAfX/foVwV1JXSF0hdcW56wq73Y6iKKxatQovLy8ATCYTer3+rHOd6z2prKwkNTUVX19fDh06RJcuXRz71XYNn+n013/++edTXl7O77//zp9//smiRYvqfR9OP+bNN99M7969GTNmDFdeeSV79uyptV6r73csqkkWwQ4kPDycSZMm8dhjj2E2m4HqbEBPPvkkAQEBjj/ygYGBjBs3jjfeeAONRsPAgQMbfI5p06aRmJjI5MmTeeaZZyguLj7rbtyWLVsYN24c06dPp3///mzYsAGbzeZ4/ttvv6WyshKLxcLnn3/OuHHjHM/973//A6r/+B8/fpxhw4ZxwQUX8PXXX5ObmwtUZw+69dZbgersQffddx8TJkxApVKxZ8+eGudqDIPBwODBg1m3bh1QPU/h999/b/IfloCAAPr27cuaNWscrykpKQmAHTt20K9fP26//XaGDx/Oxo0ba8R988038+GH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DeOVV14BIDY2FoPBAFRf/xaLpVFxtXuNbAy1BGdcxyeHNdd3HSclJdV6zU6bNo3//Oc/3HvvvRgMBgoLC+nSpQsBAQEADBgwgOPHj9c4VteuXQFQq9V4eHjw4IMP4u3tTXZ2dp3XanJyMkOHDkWlUuHh4cF5553nmCN28vqNiIhg586djX0b2xxXNnTq631yVeNPCFeSBpYQTmA0Gnnlix0YAoIAmV/V3pjNZtasWcPrr7/OunXr8PX15emnnyYlJYXVq1ejKAqdOnXC19eXd955x9F4OSkwMBCz2YzJZAJg+/btdOnSpc7zdevWjX379nH++eezfv16ioqKiIuL44477mDw4MEkJyc7klmc/iVFpVI1aGL4yeP37t2bHTt28Msvv5CSksKNN97IhRdeyNq1a/n8888dx1QUpcb+YWFhHDp0yLH/ydeiUqnqPber7Nmzh5dffpkVK1aQmJjoGOKo0+lYtGgRISEhrF69mlWrVqHVarnnnnsYN24cJpOJhx9+mIqKCsLCwnj++efx8vJy9ctpEmddx7m5uYSFhdV7Hdd1zb744ovceeedrFu3jksvvRSVSkV6ejrl5eXodDr27t3L9ddfz+bNmx3HOnmdHzp0iA0bNrBmzRrKy8uZPHkyiqKgVqvPuva7devGunXruO2227BarezatYvrrrsOaNvXalO11WF20sslOiJpYAnhJIaAIJlj1Y788ccfzJgxA7Vajc1mY+bMmcTFxWGz2XjooYfYvXs3Op2Ozp07k5ubS3h4OFOmTOHZZ5/lpZdeqnEslUrFs88+ywsvvIC3tzf+/v48//zzdZ77kUceYf78+bz99tt4enry0ksvcdFFFznmSFVUVPD444+ftV+/fv148cUX6dat2zlf2z//+U8ee+wx1q9fD1T3ju3Zs4cXX3yRZcuWERERQUFBAQDnnXceL7/8MtHR0Y79n332WZ555hkURUGj0fDcc881+H11hXfffZf169c7GkYLFy5k3rx5xMfHs2rVKt59913uuusuVqxYwdq1a7FYLEyfPp0LLriAt956i4kTJzJ58mSWLVvGp59+ym233ebaF9QILXEdz5w5E5VKVe91PGfOnLOu2Q0bNnDixAnmzZvHwIEDefjhh1m0aBFarZYHHniAvLw8rrjiCnr37l3rMTt37oyXlxfTpk0DqntKc3NzGTRoEFarlZdeeglPT08Axo0bx/bt25k6dSpWq5UrrrhC5lq5SFtt/AnRUlTKmbcm3URCQgJDhgxxdRgN0lpDmJzBnWKFthNvTk4OS39NdjSwSgryuPvCbo4erJycHMIjInj1h8OOfc4s05a0lfe1IdpSrN9++y1JSUk88MADtT7flmJtiNaItzX+ln///ff06tWLRx55hNWrVzt6YAA++ugjcnJyOO+88/j1118dc3Huu+8+7r77bhYsWMCyZcsIDQ3l0KFDLF68mGXLljXqdbjb772+69jZ0tPTueeee/jyyy9b5Xzu6lzXUUpKCu/9dszRiDHlZHDXmLgW7yVqyHnrK3Pm882KX6UC9/xa22rc7e+RKzijXmqxHqzTh2Pk5+fzxBNPUFxcjM1m48UXXyQ2NrbdD8cQQnQcixcvZtu2bbzzzjuuDkWcYfz48aSnpzsen2xc7dy5k5UrV/LRRx/x22+/4evr6yjj4+OD2WzGbDY7tvv4+FBSUlLneRITE2vdXlFRUedzbc2KFSvYv38/jz/+eKvFfHJNQHd5j1zlXNdRRkYGBaYi7Jrq+ZhFJhNHjtgoKytr0Zgact76ypz5fHPij6fuz6Go5k5/j9xZizSwzhyO8dJLLzFp0iQmTJjAH3/8wbFjx/Dy8mqXwzGEEB3Tgw8+6OoQRCN88803vP322yxbtoygoCAMBgOlpaWO50tLS/H19XVs9/T0pLS0FD8/vzqPWdddYXe6Y+yK4Z7x8fGEh4e7zXvkKue6jry9vQnMPkZQSHXWTrWtkh49Wr4HqyHnra/Mmc83N365js7Nnf4eucrJpR2ao0VSuMTGxjrSpEL1XcKcnBxuu+02vvzyS4YPH87evXsZNGgQOp0OX19fYmNjOXToEAkJCYwZMwaAsWPHsnXr1pYIUYgWdTKrYE5ODjk5OWdlGBRCuM4XX3zBypUrWbFiBTExMUB15rqEhAQsFgslJSUkJyfTs2dPBg8ezK+//grApk2b3GZouhBCCNdpkR6sM4djZGRk4OfnxwcffMCSJUt499136dKlS4sNx2hr3Kk71p1ihbYTb15eHvmmQiy26rHfuWnHWJRUQVBYZPXzGSl8BOTlnWpomYtMJCXZHJnl2pK28r42hMTactwt3oaw2WwsXLiQyMhIZs6cCVSnG7///vuZMWMG06dPR1EUZs+ejV6v55577mHOnDmsXr2awMBAR0p6IYQQoi6tkkUwICCAiy++GICLL76YV199lX79+rXYcIy2xp26Y90pVmg78ebk5BCcdSrJhbWkALVOT3in6uENenV1SuCQ04ZA6DUqevaUJBfNJbG2nNZKctEaoqOjWb16NVCdJr82U6ZMYcqUKTW2hYSEsHz58haPTwghRPvRKqu8DRkyxDHEYseOHXTv3l2GYwghhBBCCCHanVbpwZozZw5PPPEEq1atwmAw8Morr+Dv7y/DMYQQQgghhBDtSos1sE4fjtGpUyfef//9s8rIcAwhhBBCCCFEe9IqPVhCCCGEEKJ9U+z2GknOoHohaUUW/xUdjDSwhGijTqZ6P1NoaChqdatMnxRCCCEarMiUy/JUM526VDq2pSXtIyCyM8EujEuI1iYNLCHaKKPRyCtf7MAQEOTYZi408dA1w9pk5kEhhBDCLziMoPBOjseFedkujEYI15AGlhBtmCEgyJH6XQghhBBCtH0yzkgIIYQQQgghnER6sIQQQgghRIs7kFnEkQwL+744jo93Fk9O6ovO1UEJ0QKkgSWEEEIIIVpUUk4JGxJz8fEAT20FJ0wVXPefzcwa4i1ZBkW7I0MEhRBCCCFEiymuhA2JOUT6e3JRUDGdKtMYF+uBRqWw8PcSjuSaXR2iEE4lDSwhhBBCCNEiquyw3ahBq1YzoV8kalV1psHYmBimjeiKv4ednflqSi1Vrg5VCKeRBpYQQgghhGgRx8t0mKtUXNkvAoNnzZkpnh4aBvmXY1Pg58O5MlRQtBvSwBJCCCGEEE6nKAqp5TqC9QoxQd61ljFo7cT720k2lspQQdFuSANLCCGEEEI4XXpBOWU2NV0M9nOW6+anEOar55fDRiqstlaKToiWIw0sIYQQQgjhdPszi/BQKUT5nHvon1oFl8aHU261sTO1oJWiE6LlSANLCCGEEEI4VXmljeTcUqK9KtGo6i8f6qunZ7iBXamFlFfJXCzh3mQdLCHaCLvdjtFodDw2Go0y4VcIIYRbSswuxqYoxHpZAU2D9hkZF8yRXDP7jdZzlrPb7aSlpZ21vXNTAhWiBUgDS4g2wmg08soXOzAEBAGQk5qMb0gEfi6OSwghhGisxKxiIvw88fMobvA+gd46+kT6kZhVTE5JZZ0NprS0NF75fCv+IRGObUV52bzRzJiFcBYZIiiEi+zJLuexr5J5f8tx9mcUYbMrGAKC8A0MwTcwBB+/QFeHKIQQQjRaSYWVPHMlPcIMjd53eNfqm4z/TTCes5x/SARB4Z0cP6c3toRwNenBEsIFDmYVk5BZgZ+nlY1Hqif0hho8GNfZC18XxyaEEEI0R4qpDIDYYG+KG5l53c/Tg55BWr47VMDxvFK6hvi0QIRCtKwW68Has2cPM2bMqLHtyy+/ZOrUqY7Hq1evZvLkyUyZMoWff/4ZAJPJxB133MH06dOZNWsW5eXlLRWiEC6RU1zBT4dyifTV8u3dA9ky92JenXoepZU2fk0pwy7zroQQQrixlPwyDHotwT66Ju3fL9QDD42KV39McnJkQrSOFmlgvfvuuzzxxBNYLBbHtoMHD/LZZ585Ju0bjUZWrFjBqlWrWL58OYsXL6ayspK33nqLiRMn8vHHH9OnTx8+/fTTlghRCJcoq6zi631ZeOs0XNTFB61aRacAL64bFM2/x3Umx1zFnyckRa0QQgj3ZFcgzVRGbJA3KlUD0gfWwkur4oYBIazfk0liVsPncAnRVrRIAys2NpY333zT8bigoIDFixfz2GOPObbt3buXQYMGodPp8PX1JTY2lkOHDpGQkMCYMWMAGDt2LFu3bm2JEIVwie/2Z1NWaeOq/pF4edT8+F0ZH0TXQA/+OJ5PdlGFiyIUQgghmq6wEixVdjoHezfrONMGhuDrqeWVH6QXS7ifFpmDNX78eNLT0wGw2Ww8/vjjPProo+j1ekcZs9mMr++p2SY+Pj6YzeYa2318fCgpKanzPImJiS0RvtNVVFRIrC2krcSbl5dHvqkQi626h7ag0IRK64lG7+14DJBWUM7QTl5oKkvILzKRlGTDZDI5jhFvsJBr1vD13gyG+Zjw8Dh1DADzGfu0lLbyvjaExNpy3C1eIYTr5ZSrUQGxQc1rYPnqNfzzwm689P1hdqUWMChWEj8J99HiSS4OHDhASkoKTz75JBaLhaNHj7Jw4UJGjhxJaWmpo1xpaSm+vr4YDAZKS0vx9PSktLQUP7+6k1THx8e3dPhOkZiYKLG2kLYSb05ODsFZyfgGhgBgLSlArdMTEhLqeAygVasY1j0KnVaNXqOiZ89uhIeHO44RkZXMlWE+fJaQTo53EAOCTh0DOGufltJW3teGkFhbTmvEm5CQ0KLHF0K0rtxyFeF+nnh6NGztq3O57fwu/N/m4yz+MYkVd45wQnRCtI4Wb2ANGDCAr7/+GoD09HQefPBBHn/8cYxGI6+99hoWi4XKykqSk5Pp2bMngwcP5tdff2Xy5Mls2rSJIUOGtHSIQrQ4+195K7qE+KDTVg8NrGth4U6BXsSF+HDUZKZPmCS8EEII0Tx1LcwbExODWu282SKVdhUFlTCiU/N6r07y0Wu556JuPPt1In8cy2dkXLBTjitES3NZmvbQ0FBmzJjB9OnTURSF2bNno9frueeee5gzZw6rV68mMDCQV155xVUhCuE0xr+mVPU8bU2QsuJClm7MJDQyGqi5sPDg2ECO5ZVyvMhOpxgXBCxEO7Rnzx5efvllVqxYQUpKCnPnzkWlUtGjRw8WLFiAWq1myZIl/PLLL2i1Wh577DEGDBhQZ1kh3EVdC/M+dN35dO5c13K+jZdn0QCqZs+/Ot0tIzvz7m/HeOWHw6y+e1STE2cI0ZparIEVHR3N6tWrz7ltypQpTJkypUaZkJAQli9f3lJhCeESaX+tA9LljPU8fPwDHcMKzYWn5lVFBXgSpFdIMtk4X1FQS4UiRLO8++67rF+/Hi8vLwCef/55Zs2axYgRI5g/fz4bN24kKiqK7du3s2bNGrKyspg5cyZr166ttexll13m4lckROOcXJi3JeVVatGqFMJ9PZ12TE8PDf+6uAfz/refTUfyuLBnaP07CeFicgtOiBZmsyuk/zXd0EPTsI+cSqWilz+UWOF4Xmn9OwghzunM7LYHDhxg+PDhwKmMtQkJCYwePRqVSkVUVBQ2W3VCmdrKCtGW5ZXZ+DAhl5T81q0/8q0agvQKarVzbwpOHRpDpwAvXvnhsGO5n/rY7XZSUlJq/NjtdqfGJURdXDZEUIiOIq2gjEp74yubTj7g4wE7UwroFmqofwchRJ1Oz24LoCiKY6jRyYy1ZrOZgIAAR5mT22srW5u6Mi5KNsb6yXtUv3O9RxkZGRSYiiis0rA7q4K0Iiscy+X9Hblc1t2XyyIsFJiKsWtOLfxbZDJx5IiNsrKyJsd08rx2jY6KKjvmKg2hmlLy8k7NLy4qLEKlq8Tnr231Pa4tNrvdzmVRVj44WM7Ln/xAlJKHKV9/1uuBU5/DjIwMPtx8BL+gMACKTbn8bXQPOnVq2V68tk4+a61DGlhCtLCknBI8VI1PVqFWQc9ADbtyK8guqiDC33lDLoTo6E6fQ3UyY+3JLLanb/f19a21bG3qyrjobtkjXUHeo/qd6z3y9vbGOyOZL4+WYbMrnBfmwSOXdOHHFCsfb0vlUJ4H50cG1shKq7ZV0qNHXLPmYHl7exOYfYygkFCO5JYAxUQH1Mx+W5zjj0bv7dhW3+PaYktJSSEv34Svzp+PDts4z55PYFTns/aBU59Db29vOmdrHMMiTTkZzX697YF81urnjOy2MkRQiBZUZbeTbCwlyqf+srWJ81ej06rZmVrg3MCE6OD69OnDtm3bANi0aRNDhw5l8ODBbN68GbvdTmZmJna7naCgoFrLCtHW7M6xUmG1ccOQaAaEeRAdoOfJq/uy/LahpBRYSMi2tuj5MwrKUaMQqK+/bFMEhkZwQY9wCi0KJd6RLXMSIZxEGlhCtKBUUxmVVXZimzjCz0Ojok+kH8eMpVRYbWc9b7fbycnJqfEjY8yFqN+cOXN48803mTp1KlarlfHjx9OvXz+GDh3K1KlTmTlzJvPnz6+zrBBtyWFjOUmmKs6LDiDUt2YLZ0yPUKadF0KSqYpko7nFYsgoLCdIZ8PJ069q6BluINhHx2Gz3rH8iRBtkQwRFKIFpReUo1GrCPNqek0QH+HL7rRCjuSY6XJGT5jRaOSVL3ZgCAgCqjMRPnTNsBZfiFgId3R6JtuuXbuycuXKs8rMnDmTmTNn1thWV1kh2gK7XeHVTZl4aWFkt6Bay9w1IowfDuez4WAOUaO88NI1fxHg01VYbeSZK+llqKIlv1qqVCpGxgXz9b4s0kttdG2xMwnRPNKDJUQLyi6qIMxXj6YZd/RCffUE+ehIzC6u9XlDQBC+gSH4BoY4GlpCCCE6hq/3ZZGYW87gCB16bXXDSbHbSU9Pd2TPy8nK5PxO1YkodqU5f8h5RmE5AMG6s0daOFu3UB/8tTYOFamxSTeWaKOkB0uIFmKzK+SWWDgv2h8ob/JxVCoV8RG+bEnOp7hCV/8OQggh2g273U5aWhoZGRl4e1cv4BsTE+NIvrImIZ1wgwdd/U/1ShWZclmeaqZTl+rED2lJ+wiI7EyPsAD2pBUxODbQqTFm/DVaI8Cj5RtYKpWK3r4VbCvw4WBmMf2j/Vv8nEI0lvRgCdFCCi0KNrtCpL9Xs4/VK8IXgKOmymYfSwghhPtIS0vjlc+38r+DRbz32zFe+XwraWlpAOQWV7D5iJHLegY4lhI4yS84jKDwTgSFd8I3qDrb3rAuQVTa7OxJL3RqjBmF5UT4eTZrtEZjhOpsBOkVtp8wUWWTecei7ZEGlhAtJK+8euiCM9Kr+3p6EBPkxVFTZYMXWRRCCNE++IdE4B8aQVB4J/xDIhzb1+/JxK7A5T0DGnScUF89cSE+7E4txGpzTl1SaVMwlljoFNj8m4kNpVJBfIAds6WKfRlFrXZeIRpKGlhCtJD8cgVfTy0GvXNG4sZH+GGutLMns+WyQAkhhHAf63ZmcF60P50bkRt9WJcgKqrsJJmqnBJDbpkdBYgOaL0GFkCop0JMoBc7ThRQWSW9WKJtkQaWEC0kr9xOhJ/zFgfuFmpAq4ZvDuY77ZhCCCHc06HsYg5mFXPdoE6N2i/C35PoQC8Om6qckiQip7Q6NbszRms01qhuwZRbbU4f8ihEc0kDS4gWUF4FZVUQ6cQKR6dV0yVAx4akglrXxBJCCNFxfL4zA61axaTzohq974BO/pRaFbanNX9ERG6pnXA/Tzw0rf+VMtLfiy7B3iSkFFDppCGPQjiDNLCEaAH5lup/nX1HLy5IR2mljd+O5Dn1uEIIIdyHoih8tTeLsT1DCTY0fHjgSXGhBry0sP6AqVlxlFlt5JfbiW7F+VdnGhUXjKXKTmKe1WUxCHEmaWAJ0QLyK0Ctqp5Q7ExRvlr89Bq+3Z/l1OMKIYRwH2mFlWQUlnNJfFiT9teoVXQL0PB7Sgnb9x9xrJdltzduLtOB7DIUoFMrz786XZifJ91DDSTmO2dOmRDOIA0sIVpAvgUC9Sq0aud+xNQqFWO6BfDjwRyZ1CuEEB3Un+nVQ/vGdA9t8jHCKURB4Znvj52V/r2hdmeWoQKnLEfSHCPigrBKlSjaEGlgCeFkNrtCgQVCvFpmQZCLewRSUlHFlmQZJiiEEB3RjjQznYO9iQ32bvIxvLUK4Z4Kx4oU/EOjaqR/b6g9maUEe6nRaV37dTLEoCfKUB2DzFEWbYE0sIRwsjyzBZuiIriFGljDY/0w6LV8u0+GCQohREdjsyvsyixldPeQZh+ri69CaaWN43mljd63vNJGYm454T5t46tk3xAPoDp1vRCu1mKfij179jBjxgwAEhMTmT59OjNmzODOO+8kL6/6zvvq1auZPHkyU6ZM4eeffwbAZDJxxx13MH36dGbNmkV5eXlLhShEi8guqgAg2KtlPl46rZpL48P44WCOrGAvhBAdjLHURrnVTu8AHHOn0tPTm7QIfbiXgkGvZX8TFuvdlVpAlV0h3EfT6H1bwsmG3nu/HXNK+nkhmqNFvgG+++67PPHEE1gs1anUFi5cyLx581ixYgWXXXYZ7777LkajkRUrVrBq1SqWL1/O4sWLqays5K233mLixIl8/PHH9OnTh08//bQlQhSixWQVVeClUfDxaJkeLIAr+0dSWGZlZ7osOiyEEB3JibwSVCjsTzXy3m/V86fe/T4Bs7mk0cdSq6BvlB8ppjJKKht3w25DYi4eahVh3m2jB0ulqq5zj+WV8uPBHBdHIzo6bUMKmc1mVCoVP/74I+PGjcPf3/+c5WNjY3nzzTd55JFHAFi8eDFhYdWZbmw2G3q9nr179zJo0CB0Oh06nY7Y2FgOHTpEQkICd999NwBjx45l8eLF3HbbbbWeJzExsaGv06UqKiok1hbSVuLNy8sj31SIxaaQVViKQW3FZCpDo68eH19QaPqrnNGxT0GhCZXWs0aZcz0GMBeZSEqyER4QhKdWxed/HsdXbcHy1/ofJ583mZqXeretvK8NIbG2nLYab2PrJCHaE2OllkA9RERFO7YV5mU3+Xj9ovzZfsLEEVPDs/ApisL3B7IZGmPAQ9O25jzFBHmxfPMxXr6ycQswC+FM9TawZs+ezUUXXcSuXbuw2+38+OOP/Oc//znnPuPHjyc9Pd3x+GTjaufOnaxcuZKPPvqI3377DV9fX0cZHx8fzGYzZrPZsd3Hx4eSkrrvyMTHx9cXfpuQmJgosbaQthJvTk4OwVnJePkFUVJZSLS/B0FBBkJCqjM8WUsKAByPT25T6/Q1ypzrMYBeo6Jnz26Eh4dzyT4LW48auaZXEP5BoWc93xxt5X1tCIm15bRGvAkJCY0q35Q6SYj2osJqo9Cqppe/84bAGTy1dA324WhBKSdSa2YRjImJQV1LNtz9GcVkFJZzy6BOZBoLnBbLSYrdXuN7ZGOGQN46qgvPfp1IkjHI6XEJ0VD19uvm5uZyzTXXkJyczNNPP01paeMnQgJ88803LFiwgGXLlhEUFITBYKhxrNLSUnx9fWtsLy0txc/Pr0nnE8IVTGWVKAr461r+XBP6RVJQVkWOWdb+EB2Hs+okIdxRWkEZoCLM07nzb/tH+2OxwYsbjjuGHZ4rbft3B7LQqFVc0MW31uebq8iUy/KfDzZpCOSNQ2Pw8tCwbn9+i8QmREPU28CyWq388MMPdO/eHZPJ1KTK7IsvvmDlypWsWLGCmJgYAAYMGEBCQgIWi4WSkhKSk5Pp2bMngwcP5tdffwVg06ZNDBkypNHnE8JV8s2VQOs0sC7qFYpeq+ZEoaxeLzoOZ9RJQrir7KIK1CgEOncNezoHeeOtsZOpBBIYFkVQeKdzpm3/bn82I+OC8Pds0EyTJvELDiMovBNB4Z3wDWr4el/+Xh5cP6QTG48UUVElyS6Ea9TbwLrrrrv4+uuvufvuu1mxYgX33ntvo05gs9lYuHAhpaWlzJw5kxkzZvDGG28QGhrKjBkzmD59OrfeeiuzZ89Gr9dzzz338PXXXzNt2jR27drFLbfc0uQXJ0RryzNb0KhVGDxa/lw+ei2juvhxorCySdmjhHBHza2ThHBnWUUV+HvYUDs5h5JKpaKbj4WCShXpBefO3nw0t4RkYylX9G38ulmt5dZRXai0KRwpkBEewjXqvPWgKAoqlYrLL7+cyy+/HIAHHniAjIyGrS8QHR3N6tWrAdi+fXutZaZMmcKUKVNqbAsJCWH58uUNOocQbU2+uZIgHx1qVUWrnO/iHoH8crSQrKIKogK8WuWcQrhCc+skIdydXVHILbEQ62kDnJ8aPcbLSlKpJztOmIgJqnsB4+/2VyfUuLxvBBUFbTNbX49wX4ZE+5CYXcZou4LG2S1SIepRZw/Wrbfe6vj/okWLHP9/9NFHWzYiIdxYXqmFEJ9WGB/4lwu6BqBWwdFcSdcu2jepk0RHV1Buw2ZXCPRomax9GhV097WTVlDuWM/xTDa7whe7MxkcG0C4n2eLxOEsk/sFU1alcCJfhhGL1ldnA+v0IUcHDhyodbsQ4hRLlZ1Si41gg5MHx5+DQa+hk58HR3LN8tkU7ZrUSaKjyy+rbli1VAMLoKuvgqdWzfYTtS/1sebPNI7kmrn9gq4tFoOzjOzsi5dWxb4mLKIsRHM1aHW40yuwkwu5CSFqMpVXV3ohhtbrwQLoEuCB2VJFTrGlVc8rhKtInSQ6oryyKrx1Grw0LXdTQauGgbEBHM8rJa245vylonIrL31/mGFdApk4ILLFYnAWrVpF90ANKfllFJdLMijRuupsYJ1eaUkFJkT9Cv5qYLVmDxZArL9H9TBBowwTFO2X1Emio8srsxHh50lLX/6DYwMJ89XzW1olScZTCS/e3HgEU1klCyb1dZvPYPfA6lQDBzKLXRyJ6GjqTHJx4MABpk2bhqIoHD161PH/5OTk1oxPCLdRUGHDU6vGR6ehYat1OIdeqyYmyJujuWYGBPm04pmFaD1SJ4mOzFKlUGKx0z/aE1p4SpGHRs3V50XxybYTzP0mhRK1gaO5Zj7YeoJpw2Lo18m/ZQNwIoNOTedgbw5kFdGje+uOLhEdW50NrP/973+1rt4thKhdQXn1/CtX3NnrHmZgY2KuY5iiEO2N1EmiI8srr15YOMLPE2sr5Gzw0WsZ11nPTymVPLh6D1q1ivNiAnjo8l4tf3In69/Jn6/2ZpFRIvWjaD11NrDuvPNOrr32Wm644QbCwsJaMyYh3I6iKBSU2+gT6Jo7ZN1CDPykyuV4gYwzF+2T1EmiI8v7K8FFuJ8n6Vmtc85ATzUrp/dA7x9K9zADeq3zU8O3hi7BPvjoNLImlmhVdd4OXLVqFV5eXvz973/nvvvu49dff23NuIRwK1nFlVjtLT//ym63YzQaycnJIScnB6PRiKIoeOk0RAd4yaLDot1ydp1ktVp56KGHmDZtGtOnTyc5OZmUlBRuuukmpk+fzoIFC7Dbq3sNlixZwg033MC0adPYu3evM16OEI2SV24nwFONTtu6vbjB3h70jfJ328YVgEatok+UH5kldnJKKl0djugg6vykBgUFcfvtt/PFF19w991389NPP3Hdddfx1ltvtWZ8QriFo3nVE4FbOoNgWXEhSzceZOmvySz9NZm3v9tFeXkZUD1MsNhi53h+6yxyLERrcnad9Ouvv1JVVcWqVau47777eO2113j++eeZNWsWH3/8MYqisHHjRg4cOMD27dtZs2YNixcv5qmnnnLyKxPi3OyKQl65nWDvOgcdiXr0jfJHAb45VODqUEQH0aBbIQMGDOC6667jvPPO44svvmjpmIRwO8l51Y2cYJ+WzyDo4x+Ib2AIvoEh+PgFOrZ3CzUA8NMRqUBE++aMOqlr167YbDbsdjtmsxmtVsuBAwcYPnw4AGPHjmXr1q0kJCQwevRoVCoVUVFR2Gw2TKba1wgSoiWkF1ZSaYMQb/ftRXI1fy8Pogxqvk4soMpmd3U4ogM45+2QjIwM/ve///Htt98SFxfHlClTWLBgQWvFJoTbOJpXjkHX+sM3Tuej1xLuo+XnowU87rIohGg5zqyTvL29ycjI4Morr6SgoIB33nmHHTt2OJLU+Pj4UFJSgtlsJiAgwLHfye1BQUFnHTMxMbHWc1VUVNT5nKgm71Hdft6bCkCAHvLyjBQVFqHSVeKTZ3SUOXNbfY8btI/JxJEjNsrKyuqMLSMjgwJTEXaNrunncdY+f934OHkdnRlbpEcFCQU6Vm7cyYiYjptxVz5rraPOBtYtt9xCXl4eN9xwA//9738JDg5uzbiEcCvJeeUEern+7mKXQA+2pZdzPK+UriEdtwIR7Y+z66QPPviA0aNH89BDD5GVlcWtt96K1XoqSUxpaSl+fn4YDAZKS0trbPf19a31mPHx8bVuT0xMrPM5UU3eo7rl/1mIh9pEkI+OkJBQinP80ei9CQkJdZQ5c1t9jxtSRm2rpEePODp37lxnbN7e3gRmHyOoGedx1j5qW/X8qpPX0Zmx9a6ycLzCyuYshdsu77jXmnzW6peQkNDsY9R5u33mzJl899133HXXXQQHB2OzSXpLIWpjqbKRWlBBUBtoYHUOqL5T9+3+VkozJUQrcXad5Ofn52go+fv7U1VVRZ8+fdi2bRsAmzZtYujQoQwePJjNmzdjt9vJzMzEbrfX2nslREtJzCkj2EuN2k0W922r1CoVV/YO4KdDuWQXyVxl0bLqbGB17tyZadOmUVRUBMA333zDlClTyMnJabXghHAHJ/LKsCkQ4On6BpZBp6ZPuDff7c92dShCOJWz66TbbruNAwcOMH36dG699VZmz57N/PnzefPNN5k6dSpWq5Xx48fTr18/hg4dytSpU5k5cybz58935ssS4pzKK20k51cQ4i1rwDnDhPhA7Aqs25Xu6lBEO1fnEMEFCxZw11134e9fvWL3pEmT0Gq1LFiwgHfeeafVAhSirTuSWwJAgGfbqADH9QjkP5szSC8oIzrQ29XhCOEUzq6TfHx8eP3118/avnLlyrO2zZw5k5kzZzY+aCGaaV9GETYFQrzaRv3i7qL99QzrEsjahHTuubCbY86lEM5W5ye2tLSUSy+9tMa2K6+80nH3UAhR7UiOGbUK/NtADxZUN7AA6cUS7YrUSaIj2p1WnRVWMgg6zw1Dokk2lrI7rdDVoYh2rM4GVl2LlcoipkLUdNRoJspPj1bdNu6ExQR40jvCVxpYol2ROkl0RLtSC4n09cBL2zbql7ZM+Wth8JSUFFJSUkhPT6/178OE/pF4eqj5LEGGCYqWU2cDa8CAAXz44Yc1tq1YsYJevXo16MB79uxhxowZQPXFftNNNzF9+nQWLFiA/a8PwZIlS7jhhhuYNm0ae/fuPWdZIdqqozlmugZ7ujqMGib0j+TPlAKZyCvajebWSUK4o91phcSHy1Dvhigy5QLw3m/HeO+3Y7z7fQJmc8lZ5Xw9PbiibwRf7smkwioJ3ETLqLOBNXv2bJKTkxkzZgyTJ0/m0ksvJTk5mUcffbTeg7777rs88cQTWCwWAJ5//nlmzZrFxx9/jKIobNy4kQMHDrB9+3bWrFnD4sWLeeqpp+osK0RbVWWzczyvlC5BXq4OpYYJ/SMB+GafZBMU7UNz6iQh3FF2UQVZRRX0DW9b9UtbFxTeiaDwTvgGhdZZ5oYhMRRXVLEhsfFJcux2u6OX7OSPdAaIM9WZ5EKn0/HUU0/xxBNPUFhYSGBgIFrtOdcldoiNjeXNN9/kkUceAeDAgQMMHz4cgLFjx7Jlyxa6du3K6NGjUalUREVFYbPZMJlMtZa97LLLmvs6hWgRqaYyKm12ugZ5kp5ncXU4Dt3DDPSO8OWrvZncMbqrq8MRotmaUycJ4Y5Ozr/qE+7N1qJiF0fTvozqFkyUvyefJaQzcUBUo/ZNS0vjlc+34h8SAUBRXjYPXXf+OdcLEx1PvbWTh4cHoaF13wWozfjx40lPPzW2VVEUR6YWHx8fSkpKMJvNBAQEOMqc3F5b2bq4y0rU7rRqtjvFCq6Pd2tq9QKk6lIj+aYSLLbq8d4FhSZUWk80em/HY4C801adr63MuR43pIy5yERSUvXNihGRWv67q4Bfd+wjzNC4L6Kufl8bQ2JtOW0x3qbUSUK4o12pheg0arqHeLI1ydXRtC8atYrrBnfi7V+SySmuINyvccP8/UMiCArv1ELRifagVW7/qdWnRiKWlpbi5+eHwWCgtLS0xnZfX99ay9bFXVaidqdVs90pVnB9vD9lHwVyGDuwJ6nlJ/ANDAHAWlKAWqd3rDJvLfkrE9Rpq87XVuZcjxtSRq9R0bNnN8LDw7kjrJT/7vqFw+XeXDisW6Nel6vf18aQWFtOa8SbkJDQoscXwl3tSi2kT5QfOo2kaG8J1w+O5j8/J/P5rgz+eWHj6kgh6lPnp/bkuPZVq1Y1+yR9+vRh27ZtAGzatImhQ4cyePBgNm/ejN1uJzMzE7vdTlBQUK1lhWirjuaaifL3xEfX9lLodg72oX8nf77aK/OwhPtzZp0kRFtXZbOzN6OQgTEBrg6l3YoLNTCkc/WaWJKNVDhbnT1Yu3fvZtGiRXz//fdkZmbWeO7BBx9s1EnmzJnDvHnzWLx4MXFxcYwfPx6NRsPQoUOZOnUqdrud+fPn11lWiLbqaK6ZbmEGV4dRp4kDInn+20Ok5pcRGyyZqIT7cmadJERbdyi7hAqrnUGxAUCVS2JQ7PYa0z1OiomJqTHayJ1dPziaxz7fx970Is6TxqxwojobWMuWLSMhIYFffvmFrl0bP0k+Ojqa1atXA9C1a1dWrlx5VpmZM2cyc+bMGtvqKitEW2O3KxzNNXPT8FhXh1Knq/5qYH21L5N7L+ru6nCEaLLm1klCuJOTi+AOjg3EXmI8d+EWUmTKZXmqmU5dKk9ta2cJHa4aEMlTXx7gs4R0aWAJp6qzgRUTE0NMTAwjRozAbDZz9OhRunTp4lbzB4RoSRmF5ZRbbXRvwz1Y0YHeDIoN4Ks9WdLAEm5N6iTRkexKLSTYR0d0oBepdef6anF+wWHtOpmDv5cH4/tGsH5PJo9fFY+nR9sb7i/cU719vBs2bODxxx9n586dzJs3j+XLl7dGXEK0eUeNZgB6hLfdBhbAxAFRHMwq5thf8QrhzqROEh3B7rQCBsUGOLIqi5Zz/ZBoisqt/Hwo19WhiHak3gbWV199xccff8zjjz/OJ598wjfffNMacQnR5h3NqW6wdA9t2w2sq/pHolLBF7sz6y8sRBsndZJo74rKrCQbSyXBRSu5oFswob561u3KcHUooh2pN027oiiOxRw9PDzw8PBo8aCEcAdHc82EGHQE+ujIaSOdQ3a7HaOx5nh9FTAqLpjPd2Uw69IeKIpyVhmA0NDQdjNxWbRfUieJ9m5XavW6iVH6SlJSUkhPlyx3LUmrUXPNeVH89/cTFJRWEuijc3VIoh2ot4E1ZMgQ7r//foYMGUJCQgKDBg1qjbiEaPOO5JbQrY31XpUVF7J0YyahkdGObeZCE5f16MpT3+eTkFJAjJeVV77YgSEgqEaZh64ZRnh4uCvCFqLBpE4S7d2vB1IBhW1Hc9h1PJe0pH0ERHbGJ0Dv6tDcWm1ZEe12OwAjI9W8Z1P47y/7uf/KgXKzUTRbvQ2sOXPm8Msvv5CcnMzkyZO56KKLWiEsIdo2RanOIHj1wChXh3IWH/9Ax4LHJ13UPZAXf0pj3a4MHjg/DENA0FllhHAHUieJ9u5gThn+ejURUdU3ygrzsl0cUftQW1bEtKR9qHVeRHXuRoBexX//SOO6fsHtJkuicJ16G1gAF110kVRiQpzGWGKhuKKKHmG+rg6lQbx1Gq7oF8FXezL553BpWAn3JnWSaK8URSExp5wwb+lBaQlnZkUszMtGo/cmOCKavhYTW47m8+ehlBr7tKd1v0TraVADSwhR05HcvxJctOEU7WeaPLgTn+/KYPOxwkbvW9vcLpB5W0II4Uwn8ssottjoEyzzgFpbr3BfthzN483NmYwx2oD2t+6XaD31NrCMRiOhoaGtEYsQbuNITvXCJO7UwDq/Wwjhfnq+TcynR0DjGkVGo1HmbYk2Qeok0Z7tTisAIER6sFqdr6cHITobuXYDgWFRkiJfNEu9n+D777+f++67j59//tkxGVCIji4p14yfp5YwX/eZdKxRq7h2YCe2niim3Nr4z/LJeVsnf05vbAnRWqROEu3ZrtRCvDzU+Ovly70rRHtZKatSkVVU4epQhJurt4H1ySefMHv2bLZv3860adN49dVXSUtLa43YhGizjuSU0DPc1+3ucE0eHI3NrnC8oLL+wkK0QVInifZsd1ohvUO9ULtZ3dJeROqtaFQKidnFrg5FuLkG9UGHh4cTExODp6cnSUlJLFy4kJdffrmlYxOiTVIUhaQcMz3C3SPBxel6RfjSK8ybpPxKWVdFuC2pk0R7VGG1cTCzmD7hXq4OpcPSqiHSS+FIjpkq6SEXzVDvHKwHHniAI0eOcPXVV/PSSy855ltMnjy5xYMToi0yllgoKrfSM9x95l+d7pp+Ibz4Uyo5xRYi/D1dHY4QjSJ1kmiv9mcUUWVX6BPuzaH0MleH02HFGBTSc+2cyCtDBsKLpqq3gTVlyhQGDhyIj48Pubm5ju2ffPJJiwYmRFuVlFOdQbCnG/ZgAYzvHcziX1LZl1EkDSzhdqROEu3V7rRCAOLDvTiUfu6youWEeip46zQcyi7mfMnhJJqo3iGCO3fuZOnSpQA8++yzLFu2DAC93n0m9wvhTEl/ZRB01waWQa+hW5COpJwSKqw2V4cjRKNInSTaq12phXQK8CLY28PVoXRoalV1yvbjeaVYqmQovWiaehtYP//8Mw8++CAAb7zxBj/99FOLByVEW3Ykt4RAbw9CDO67TknvED1VdoVD2SWuDkWIRpE6SbRXu9MKGRQb4OowBNA70he7AinFVa4ORbipehtYKpWKysrqjGNWq1UmxosO72SCC3fLIHi6YG8tEX6e7Esvks+0cCtSJ4n2KLe4gozCcgbGBLg6FAGEGvQE++g4ViijPETT1DsHa9q0aUyaNImePXty7Ngx7rrrrtaIS4g2qTqDYAnXDIxydSjN1r+TPz8m5pBRWI6/q4MRooGcWSctXbqUn376CavVyk033cTw4cOZO3cuKpWKHj16sGDBAtRqNUuWLOGXX35Bq9Xy2GOPMWDAACe+IiFgZ2ohwF89WDKywNVUKhW9I3zZkpxPRpGFzq4OSLidehtYN954I5dccglpaWnExMQQFNS0nCpWq5W5c+eSkZGBWq3mmWeeQavVSmUm3EpOsYWSiiq3nX91uh7hBjYdMbIvo4jRnWTMv3APzqqTtm3bxq5du/jkk08oLy/n//7v/3j++eeZNWsWI0aMYP78+WzcuJGoqCi2b9/OmjVryMrKYubMmaxdu9bJr0p0dLtSC9Bp1PSN8icnUxpYbUGvvxpYPyYVcb58DRWNVG8DKzExkU8//RSLxeLY9vzzzzf6RL/++itVVVWsWrWKLVu28Nprr2G1WqUyE27lZIKLHmHu38Dy0KiJj/Rjb3ohg8OkD0u4B2fVSZs3b6Znz57cd999mM1mHnnkEVavXs3w4cMBGDt2LFu2bKFr166MHj0alUpFVFQUNpsNk8nU5Iad6NjsdvtZC2PHxMSQkFJAv05+eHpoXBSZOJOvpwcRPmp+SCpkvqK49bQA0frqbWDNnTuXW265hYiIiGadqGvXrthsNux2O2azGa1Wy+7du6UyE27lVAZB91wD60znRfuzJ62Qg7mW+gsL0QY4q04qKCggMzOTd955h/T0dO655x6U075E+fj4UFJSgtlsJiAgwLHfye211UmJiYm1nquioqLO50S1jvIeZWRk8OHmI/gFhQFQbMrlpvO7syfNyqTefiQmJpKRkUGBqQi7pjqRUlFhESpdJXpDAHl5Rsdjnzyj47hnbqvvcZP3MZk4csRGWVmZ4/XUFqtLYissAiDPiecJ97Cwp9DO55t2Ex/mWftrPuM9aes6ymfN1eptYIWEhHDjjTc2+0Te3t5kZGRw5ZVXUlBQwDvvvMOOHTtapDJra9zpYnanWKH1492RZMTfU01u2jFyT9uel5dHvqkQi616wn1BoQmV1hON3tvxuLrcqT/stZU51+Om7mMuMpGUVH2jorZYY/w9OJhbzp4Dh4n5q8yZ7+uZ+9R2XFdxp2vWnWKFthmvs+qkgIAA4uLi0Ol0xMXFodfryc7OdjxfWlqKn58fBoOB0tLSGtt9fWvvwY6Pj691e2JiYp3PiWod5T3y9vamc7aGoPBOAJhyMlD8I7Daj3H54G7Ex0fi7e1NYPYxgkJCASjO8Uej90ar1RISEup4HPLX86eXCTljn7oeN3Ufta2SHj3i6Ny5s+P11BarK2IrzqkeieHM88RXWjhkrmBngZbJF8bX+prPfE/auo7yWWuOhISEZh+j3gZWp06dWLZsGfHx8Y7G0OjRoxt9og8++IDRo0fz0EMPkZWVxa233orVanU878zKrK1xp4vZnWKF1o835ycT8VEBZ50zJyeH4KxkfANDALCWFKDW6R1/pK0lBQA1/rDXVuZcj5u6j16jomfPboSHh9ca6/k6X1btSGNfuT+X//W6znxfz9yntuO6ijtds+4UK7ROvI2tyJxVJw0ZMoQPP/yQ22+/ndzcXMrLyxk1ahTbtm1jxIgRbNq0iZEjRxIbG8tLL73EnXfeSXZ2Nna7XUZUCKfan1Pd8zE4NtDFkYgzeWhUjO3qx/rdmTxxVR8ZwikarN4GltVq5fjx4xw/ftyxrSmVmZ+fHx4e1RPp/f39qaqqok+fPlKZCbehKApHc81MHtzJ1aE4VbifJ5G+WlbtzGHmeDs6bb2rNwjhMs6qk8aNG8eOHTu44YYbUBSF+fPnEx0dzbx581i8eDFxcXGMHz8ejUbD0KFDmTp1Kna7nfnz5zvz5QjBgewyYoK8CPPzdHUoohZX9A7kxyNFbEjMYeIA988gLFpHvQ2s559/nuPHj5OamkqvXr0ICwtr0oluu+02HnvsMaZPn47VamX27Nn069dPKjPhNjKLKjBbqujRDjIInmlAuCffHzXzxe4Mbhwa4+pwhKiTs+okgEceeeSsbStXrjxr28yZM5k5c2aTzyNEXRRF4UBOGRf0aPp1LFrWoCgfovw9+SwhXRpYosHqbWCtXLmSH3/8kaKiIq677jpSUlKa1Ojx8fHh9ddfr/X4Z5LKTLRFjgQXYe0jwcXpony19Aj1YummY1w/ONrV4QhRJ2fVSUK0BaVWhbzSKoZ0luGBbZVGrWLy4Gje+uUoOcUVrg5HuIl6xwJ9/fXXvP/++/j6+nLrrbeyZ8+e1ohLiDbniCODYPvrwVKpVMwYGsHRXDM/Jua4Ohwh6iR1kmhPjGV2QOZftXXXD4nGrsDnuzJcHYpwE/U2sE6mrT05mVin07V4UEK0RUk5ZkIMegJ92udn4JKeQXQN8eHVH5OwK0r9O9TDbreTk5Nz1o/dbndCtKKjkjpJtCfGMjteWjW9I9rfjbv2pGuID0M7B/JZQjqKE+pH0f7VO0Rw4sSJ3HzzzWRmZvL3v/+dSy+9tDXiEqLNOZxdQq+I9jc88CStWsXsy3py/ye7+OW4J337NO94RqORV77YgSHgVJIac6GJh64Z5vLMg8J9SZ0k2hNjmY3eYd5oNZJcqK27YUg0c9ft41BuuatDEW6g3gbWLbfcwqhRo0hKSqJr16707t27NeISok2x2uwczi7htgu6uDqUFjWxfyTv/JLMil0F/N0JGQUNAUE1UrsL0VxSJ4n2wlJlo6BCYWKkd/2FhctNGBDJk18e4NvDhfipXB2NaOvq/fa0ZMkSvv32W5KTk9mwYQNLlixpjbiEaFOO5pqptNnpG+Xn6lBalFqt4t/je5FtruLTP9NcHY4QZ5E6SbQX2UUVKMCASB9XhyIawM/Tgyv6RrDxSCE2uwwTFOdWbw9WSEj13WdFUTh48KDMnxAd0oHMYgC3bGDZ7XaMRqPjsdFoPOcY8ot6hdI3zJM3Nh7hhsHReOlkYUXRdkidJNqLzMIKVEDfCC9XhyIa6IYhMfxvdyZpJTZCI10djWjL6m1gTZs2rcbju+66q8WCEaKtOpBZhJeHhq4h7jcHq6y4kKUbMwmNrE6/npOajG9IBHU1FVUqFbcNDuLf32Xy/tbj3HtR99YLVoh6SJ0k2ouMwnKCvNR4e8hNLHcxqlswYQYPkguqGOzqYESbVm8D6/jx447/G41GMjMzWzQgIdqiA5nF9I70RaN2z4HXPv6BjrlQ5kJTveX7hXtyaXwYb/2czA2yLpZoQ6ROEu1Bld1OdnEFPQOlceVONGoV43sGsHKnEXNFFQbPer9Giw6q3ivj9AUc9Xo9c+bMadGAhGhr7HaFg5nFXDeok6tDaVVPXNWHy1/dxAvfHmLORTIWQrQNUieJ9iC32ILNrhDmI9kD3c0VvQJYsdPIoexihnYJqn8H0SHV28BasWJFa8QhRJuVairDbKlyy/lXzdElxId/jI1jyc9HGd/D/YZGivZJ6iTRHmQWVqf6DvWWHix3Ex2gJ8xbzcGsYoZ0lgWiRe3qbWBdffXVlJaWotfrsVgswKmFHjdu3NjiAQrhaqcSXPi7OJLWd++4bqzbmc5LP6UyOkbv6nCEkDpJtAsZheUEenvgpXXPYecdXVyAlj8yK8kptiBLnYva1NvAGjRoENdeey2DBg3i8OHDLF++nGeffbY1YhOiTTiQWYRWraJnO15kuC7eOi1PTOzDvR/tJMQLRshoCOFiUicJd6coCllFFrqHGYAqV4cjmqCzv4Y/s1UczCpmoHRiiVrU28BKTk5m0KBBAPTq1YusrCx0Ommvi47jQGYx3cMM6LUdcyjHlf0iGBbjy85MM/06V+Gjl0m9wnWkThLurtCiYKmy0ynAC8VeRHp6eo3n09PTz7mUhnA9nUZF9zADh3NK6O8vozvE2er9puTr68trr73GgAED+PPPP4mKimqNuIRoMw5kFnNhz1BXh+EyKpWKf1/cmZs+3M/Ph3O5qn8kKpUMaxGuIXWScHe5pTYAogK8yD92hOWpZjp1qXQ8n5a0j4DIzgS7KkDRIPGRfhzKLiGtxObqUEQbVG/6mldeeQWDwcBvv/1GbGwsCxcubI24hGgTcosryDNbOlyCizN1DvJkUKQXycZSknLMrg5HdGBSJwl3l11qx9dTi7+XBwB+wWEEhXdy/PgGddwbeu4kJtALg15LcoEM8xRnq7eBpdfr8ff3JyAggK5du1JcXNwacQnRJuzPLALo8A0sgH7hesL99PySlEtZpVQowjWkThLuzK4o5JTaiA70cnUooplUKhV9Iv3IMtsxmq2uDke0MfU2sObPn09mZiZbt26ltLRU1hwRHcqBjOovb32kgYVapeKy+HCsVQq/HDa6OhzRQUmdJNzZCZMFiw2iA7xdHYpwgvhIXxTgxyOFrg5FtDH1NrBSU1N54IEH0Ol0XHzxxZSUlLRGXEK0CQcyi+kS7I2vp4erQ2kTgg16hncN4kiumRMFlfXvIISTSZ0k3NnuzFIA6cFqJwK8dYR5q/n2UKEkJhE11JvkwmazYTKZUKlUmM1m1Oqmrzq+dOlSfvrpJ6xWKzfddBPDhw9n7ty5qFQqevTowYIFC1Cr1SxZsoRffvkFrVbLY489xoABA5p8TiGa40BWEQM6Bbg6jDZlSOdAjhrNbE0ro6i8inBXByQ6FGfWSUK0tt2Zpfh4qPDzkpt27UX1mlgWdqUVMjhWcraLavXWTLNnz+amm25i//79TJ06lX/9619NOtG2bdvYtWsXn3zyCStWrCA7O5vnn3+eWbNm8fHHH6MoChs3buTAgQNs376dNWvWsHjxYp566qkmnU+I5ioqs5JmKu8QwwPtdjtGo5GcnBxycnLIzc0lKyvL8dhoNDruzmnU1UMFLVUKi39JdXHkoqNxVp0kRGuz2xV2Z5YS7iM3BdqTzv4a9FoVnyWk119YdBj19mBlZWXx/fffYzKZCAwMbHJ65s2bN9OzZ0/uu+8+zGYzjzzyCKtXr2b48OEAjB07li1bttC1a1dGjx6NSqUiKirKcbcyKEhWOBWtKyHVBHDWHamTjZHTnd4AcUdlxYUs3ZhJaGQ0AIf37SNod47jcU5qMr4hEZxsaob66jkvwpPvDpnYcDCHS/tIP5ZoHc6qk4RobUdyzRRV2OgbLOu2tSc6jYqxcX58uSeT+RP74OnRMdfMFDXV28BavXo1V199dbMbOAUFBWRmZvLOO++Qnp7OPffcg6IojsrRx8eHkpISzGYzAQEBjv1Obq/t/ImJic2KqbVUVFRIrC2kJeP9LsGERgWeZdkkJuY6tufl5fHh7yfw9gs4tS0jBZ/AMCrt1Y8LCk2otJ5o9N6Ox9X7nmqY1VbmXI9bap/Tt1ls1Y1EvZcPFhuOx5V2BZOpoMY+Mfoy8n21PLJmF+9cE42vvmalkpeXR76p0HEMAHORiaSk6psmzuJO16w7xQptM15n1UlCtAa73U5aWhoA3+zLByDMW24KtDcTegXyY1IRPxzM4erzZG0+0YAGVmVlJddeey1du3Z1jHV/5ZVXGn2igIAA4uLi0Ol0xMXFodfryc7OdjxfWlqKn58fBoOB0tLSGtt9fX1rPWZ8fHyj43CFxMREibWFtGS8x3/dSv/oAAb171tje05ODjFZGnwDQxzb9GoVap2ekJDq9UusJQVnPQYcj+sqc67HLbVPbdty05IJCgo85z56jYpnL4jgjlWHWH3Exss39jvrfQrOSq75PmlU9OzZjfBw5/V4udM1606xQuvEm5CQ0KjyzqqThGgNaWlpvPL5VvxDIvg11YIeK7jxMheK3U56+qmhcOnp6W49esNZBnbyoVOAF58lpEsDSwANaGA9/PDDTjnRkCFD+PDDD7n99tvJzc2lvLycUaNGsW3bNkaMGMGmTZsYOXIksbGxvPTSS9x5551kZ2djt9vlTqVodRVWG3vSirj1/M6uDqVN6x3uwz8vjOM/Pydz1YBIxvUKc3VIop1zVp0kRGvxD4kgICyK3EPHCPVUAPftwSoy5bI81UynLtVZZNOS9hEQ2ZlgF8flamqViusHd2LJz0fJLqogwt/T1SEJF6uzgfXWW29x7733Mnz4cHJzcwkLa94Xp3HjxrFjxw5uuOEGFEVh/vz5REdHM2/ePBYvXkxcXBzjx49Ho9EwdOhQpk6dit1uZ/78+c06rxBNsT+jiEqbnaFdpHFfn/sv6cEPB3J4bN0+vp89Fj9JaS9agLPrJCFak7HEQkWVnVCfKsC952D5BYcRFN4JgMK87HpKdxzXD4nmjZ+Osm5XOvde1N3V4QgXq7OB9ccff3DvvfcC1XcMP/zww2af7JFHHjlr28qVK8/aNnPmTGbOnNns8wnRVDtOVA/pG9pZUq7WR6/V8OINA7j+7a08/80hnp/c39UhiXaoJeokIVpLqqkMgFCdzcWRiMY4c0gk1D0ssnOwD8O7BPFZQjr3XNhNEvB0cHU2sE6/eGR8reho/jxholuoD8EGvatDcQuDYgO5a0wcyzYdY+KASC7oHlL/TkI0QkvVSfn5+UyePJn/+7//Q6vVytqMokWkmsoINujQa+T7lDs5c0gknHtY5A1Donlk7V5ZE0vUvQ7W6S1vaYWLjsRuV/gzpYBhMjywUR68rCdxIT7MWbuXUov7TuIWbVNL1ElWq5X58+fj6Vk9X0LWZhQtocqukFVYQWyQd/2FRZtzckjkyR/foNA6y04YEImXh0bWxBJ192AdOHCAadOmoSgKR48edfxfpVKxatWq1oxRiFZ1JNdMUblV5l81kqdH9VDBG5f+zqLvDnHfyLorISEaqyXqpEWLFjFt2jSWLVvmOEdz1masK6V9W0x339a01/coIyOD5OwSbIqOAI2VosIiVLpKfP5asuPMx7VtO/lYbwggL8/YqH2ach533gdOLYfSarGZTBw5YqOsrHoY6KgYTz5PSGW0dzY6zambQZGRkY7Mp67UXj9rbU2dDaz169e3ZhxCtBk7TlSv0TSsi3TvN9bQLkHcdn4X3t9yglHRkkVJOI+z66R169YRFBTEmDFjHA2s5q7NWFdKe3dLz+8K7fU98vb2xrzrEBqVjfjOEaSVZ6HRezuWvCjO8a/xuLZtJx9rtVpCQkIbtU9TzuPO+wCtHpvaVkmPHnF07lyddXiSyc5Px0r55Ch08a9eH7IoL5uHevRwlHGl9vpZc6bGLh9SmzobWJ06dWr2wYVo6+x2O0ajsca2HSdMhPnqZThHE/17fC82Juay8IcTXNzVy9XhiHbC2XXS2rVrUalU/P777yQmJjJnzpwaC2A3ZW1GIWqTVWojMsATD43rey9EyxvYyQdvrYq0Mi2De8p36Y5KPu2iQzMajbzyxQ6W/prM0l+TeeWLHWw/lsewLkEy97CJvHVaFl0/gPQiCwmZ5a4OR4haffTRR6xcuZIVK1YQHx/PokWLGDt2LNu2bQNg06ZNDB06lMGDB7N582bsdjuZmZmyNqNoFFNZFQUVityw60DUKhVdAzSkmMpkPnIHJg0s0eEZAoLwDQzBNzAEvAPIKq5kqAwPbJZR3YK5fkAoB3ItZBVJI0u4hzlz5vDmm28ydepUrFYr48ePp1+/fo61GWfOnClrM4pG2ZFWAiANrA4mLkCLokBSTomrQxEuUucQQSE6ohxz9d0mySDYeGcOt5wa78l3iSo2JuZy0/BYNGrpERRt04oVKxz/l7UZhTNtTSnBSwthvrLkR0cS4KkmzFfPoewSBkm69g5JGlhCnCa92Iq/p5b4SD9Xh+J2Tg63NARUN05zUpMZFBbG5oxKdqUWSFZGIUSHUlllZ3uqmU6+Ghly3gHFR/rxa5KRPLNFhot1QPI7F+IvdrtCepGV87v61+htsdvt5OTkOH6MRqMsvl2H04db+vgFEu2rpluoD9uOmygqt7o6PCGEaDXbj5sos9qJ9tW4OhThAj3DDahUcChLhgl2RNKDJcRfsooqsNgUxsT519heW8+Mb0gE0sfVMBf2DGXFHyn8cjiXcbE6V4cjhBCtYkNiDjqNikiDNLA6Im+dlq7BPiRmF9PbV+q+jkZ6sIT4y7E8M2oVjOjsf9ZzZ/bMiIbz9fRgZFwwJ/LLOFEovVhCiPZPURQ2JOYwJNqAVuafdlh9O/lRVmkjvcTm6lBEK5MGlhB/OZ5XSoRBi0EvdxudbWB0AKG+ev5IL8MsaWuFEO1cUo6Z9IJyzu8sa6Z1ZF2CfPDRazhqknqvo5EGlhBAQVklBWVWYvy0GI1GmXPlZGq1iot7h1FuVXhna6arwxFCiBa1ITEHgFHSwOrQ1GoVfSP9yTTbyTVXujoc0YpkDpYQVPdeAYSoy1m68SChkdGO52TOlXNE+HnSJ1TPZ7tzufmCQgbGBLg6JCGEaBEbEnPo38mfUIOHq0MRLtYnyo/tJ0x8c6iQYX1dHY1oLdKDJQRw3FhKsI8OHw/w8Q90zLeSOVfONTjKixAfDx5bt48qm93V4QghhNOl5pexK7WQK/tHuDoU0Qb4e3kQ6aPmm8QCbHYZDdNRSANLdHiWKjsZReXEhfq4OpR2T6dR8eC4WA5mFfPB1hOuDkcIIZzu810ZAFw7sJOLIxFtRY8gLTlmKxv/Gjoq2j9pYIkOL724CkWBriHSwGoN47oHcHHvMBb/mESaqczV4QghhNMoisLnu9IZGRdEVICXq8MRbUSMn4YIXw/e/e2Yq0MRraTVG1j5+flceOGFJCcnk5KSwk033cT06dNZsGABdnv1kKElS5Zwww03MG3aNPbu3dvaIYoOJrWoEi8PDRF+nq4OpUNQqVQ8c20/VMCj6/ZJAhEhRLuxK62QE/llTB4UXX9h0WGoVSpuHBDMjhMF7EwtcHU4ohW0agPLarUyf/58PD2rv8g+//zzzJo1i48//hhFUdi4cSMHDhxg+/btrFmzhsWLF/PUU0+1ZoiigymqqCK10Er3MAMqlaxV0lo6BXjx6IR4Nh/NY9WONFeHI4QQTvG/XRnotWqZfyXOMiE+ED9PLe9JL1aH0KoNrEWLFjFt2jTCwsIAOHDgAMOHDwdg7NixbN26lYSEBEaPHo1KpSIqKgqbzYbJZGrNMEUH8u3BfGwK9O909uLComVNHx7LqLhgFn6dSGZhuavDEcIt2e12UlJSavycHA0iWldllZ0v92RyWZ9wfD0le6CoydtDwy0jO/Pd/mxS8ktdHY5oYa2Wpn3dunUEBQUxZswYli1bBlSPVT7Za+Dj40NJSQlms5mAgADHfie3BwUFnXXMxMTEVom9uSoqKiTWFtKceBVFYXVCBgE6BZWlmDwLFBSaUGk90ei9HeXO3NaUMgWF1TcJ8vKMjdqnKedxRvy2KhsmU8E59zEXmUhKOnUDJC8vj3xTIRab0uB9/j7Qm3tSTdy/4neeviSiSb2I7nTNulOs4H7xdkRpaWm88vlW/EOqe0yK8rJ56Lrz6dy5s4sj63h+OpRDQZmV6wZJcgtRk2K3k56ezqWx4SxTqXj56z28fstI1GpJhdBetVoDa+3atahUKn7//XcSExOZM2dOjZ6p0tJS/Pz8MBgMlJaW1tju61v7Qn3x8fEtHrczJCYmSqwtpDnx7jhhIsN8nNGxPoSEhAJgLSlArdM7Hte2rSllrCXVY64bu09TzuOM+HPTkgkKCjznPnqNip49uxEeHg5ATk4OwVnJ+AaGNHifeOBRqy9PfnmQncU+3DKy8V8K3emadadYoXXiTUhIaNHjdwT+IREEhcuXeldSFIV3fj1GTJAXF/YMrX8H0aEUmXJZnmqmU5dKugVo+PKgiev3HOGiQb1cHZpoIa3WdP7oo49YuXIlK1asID4+nkWLFjF27Fi2bdsGwKZNmxg6dCiDBw9m8+bN2O12MjMzsdvttfZeCdFcn2xLxUenoWugztWhuCW73Y7RaCQnJ4ecnByMRmOTElb8bVQXxvYM5ekvD7InrbDJsZyM4+SPDJMSQrSW34/lszutkH+M7YZWI70S4mx+wWEEhXfiwn6x6NQq3tqa7eqQRAtqtR6s2syZM4d58+axePFi4uLiGD9+PBqNhqFDhzJ16lTsdjvz5893ZYiinSosq+SrfVlM6huMh6bK1eG4pbLiQpZuzCQ0sjpbVk5qMr4hEfg18jhqtYrXpw5k4pubuWdlAl/dP4Ygn8Y1eo1GI698sQNDQPXNGHOhiYeuGeboKRNCiJb09i/JhBj03DhEsgeKc/Py0NA/zIPtaWZ+PpzLuF5hrg5JtACXNLBWrFjh+P/KlSvPen7mzJnMnDmzNUMSHcy6nRlUVtm5tn8oPx/McnU4bsvHP9AxJNBc2PRkNIE+Ot65ZQjXv7OVB1bt4oPbh6NRN24+liEgyBGLEEK0ln3pRfx2JI85V/TG00Pj6nBEKzs5v+qk9PT0ekdz9ArSklOu4tmvDnJBtxB0Wun1bG/kNyrclt1uJy8vr9HDwhRF4ZPtqQyMCaBnqHe95UXr6B/tz9NX9+W3I3ks+u6QrI8lhHCZ2rIz1pWhccnPR/D11HLLyFgXRCpcrciUy/KfD/Leb8d477djvPt9AmZzyTn30ahVzLwgkmRjKc99I4mE2iOXDhEUojmMRiMf/n6CmKzqO4YNHRb2/YEcjuSaefnG81ojTNEI04bHciCzmGWbqtcJefTK3k5Zn+zkfLEzhYaGShYnIcRZzszOCLVnaPz+QDbfH8jhwct6Smr2Duzk/CqAwryGza0a2dmXO0d3Zfnm4wzuHMjV50W1ZIiilUkDS7g1b7+ARg0Ls9rsvPjdIbqHGbh2YBT5eWd/6Rau9dTVfVGpYNmmY1isNhZM6ou6kcMFz3TmHC2QeVpQe8NTGp1CVKsvO6OptJLHP99Hn0g//nlht1aMTLQXc6/szZ60Quau3UufSF+6h9WeNVu4H2lgiQ5l1Y40juWV8t7fhkqmpzZKrVbx1NV98fTQsGzTMcoqbTxzbb9mz22QOVpnk+QgoqOy2+2kpaXV2BYTE9OomwvzvthPUbmVlXeNkDk0okk8NGqWTB/MxDd/4+b3tvHfO4bTO6KxqaJEWyQNLNFhmC1VvL4hieFdg7gkXrL2tAXn6kF59MrqCeNvbDzC9hMmFl7bn9E9XNtAao89PtLwFB1Rcxdofu+3Y3y9N4t/j+8lX4hFs0T4e/LRXSO59f+2c+M7v/Pe34YyIi7Y1WGJZpIGlugwlm06Rp65kvdujXfKvB7RfOfqQVGpVDx4WU9Gdg3i8f/t55bl27huUCfuG9ed7mGGNhevEMK9NGWBZkVRWPLTEV7+IYkr+kZw99i4FopOdCQ9wnx44+pYHv4qhVve28atQ0O5aWAoXbvEOm7gOaPXVbQeaWCJDiG3uIJ3Nx3jqgGRDIwJcHU44jT19aCc3z2Ebx8Yw1s/H+XtX5P5fFcGfaP8uGZgFON6hWGzt262QenxEaJjstoV3tySzdp9+Uwe1IkXbxggQ82FU6SlpbFyw5+MjAhnm13Ne9tzWb0zixcmlTNhRLyjzOm9roW5mUwb0YXo6FNrr0mDq+2QBpZo9+x2hX9/thebXeHfl/dydTgd2plD7IxGY4PSsXt6aHjw8l7cMqozX+3J4os9mTz3zSGe++YQWjV0CcrGZqvC36jg5aFBXWXh1+QCulXoCDHosFXaJO27EKJJFEUhKcfMpqQKyqrKue38Lsyf2KfZyXeEON3JHtVrO0Gy0czGg9nc+/kxrjpazr/H90JFzV7Xwrxslv98kE5dKoHGD3MVLUsaWKLd+8/PR/k1yciz1/ajS4iPq8Pp0MqKC1m6MZPQyOo7bjmpyfiGRNDQGQxhvp7cMbord4zuSkp+KQkpBWw9eIIMs8L+LAsZxcVU2qrXqdmSmgwkO/bVqMBbb8bLQ4OXhwYtVZQpqUSHFhPooyPIW1f9r4+OQG8d/p4aCkz5Nc7f0AahEMK9KYpCfrmdA0eMJOWYMVuqCPJU8eLErkwc2cfV4Yl2rluoAUMPT/TeBlbvzeWHg9ncOCAY+xkjNk5PDy/aFmlgiXZty9E8Xt2QxLUDo7h5hCwC2Rb4+Ac6htiZC031lq8rsUTnYB86B/sQ71VCUFAQS39NxjcwhCqbHWNeHhMGRKHoDeSbKzmRnc8vh43YNDrKKm1UWG2UVlSx/kAeZZW5dZ5bp1bw9NDgqVXhp9egrSgkLMiPXoZAvHVt689ne0zA0ZKsViuPPfYYGRkZVFZWcs8999C9e3fmzp2LSqWiR48eLFiwALVazZIlS/jll1/QarU89thjDBgwwNXhixZyIq+U9Xsy+WxHCqmFFtSqCroE+zCmRwhBShH9I0/dpJM5MaIleWhU3DE8nPvGD2DRd4f5eGc63h4qLvUopWsbu1ksn4Wzta1vCEI4UXZRBQ+s2kW3UAMLr+sviS3cVGMTS2g1agw6NfHhPoSHV2eLzMnxoKy0tMbcqZKCPO6+sBsBwSEUllkxlVZSUFqJqaz639ScAjYn52NTe1BWaSOrtJJSizeHyqrYlH6ccD89kd6w7XAGI047v6saNZKAo3HWr19PQEAAL730EoWFhVx77bX07t2bWbNmMWLECObPn8/GjRuJiopi+/btrFmzhqysLGbOnMnatWtdHb5wIkuVjcP5Vv65NpnE3P0ADIzyJtJbx3ndo/H6a4kIU05xjf0aMicmPT1der3FWRS7nfT0dMfj2q6Tk2WigftHBNDXq5A3/qy+ATA4NoBIBZq3eInzNDcrZ3skDSzRLplKK7nrwx2UVdpY9Y/B+OjlUncHtfXCGI3GGr1eZ5bJy8vDZmv6HCu9VkO4n4ZwP88a23NyvLBVltdolKUcTaJE8aBU68eJvDJ2Z5dz/zdZhP2aS98wT4Lsxdw+Jo7Q0NAax2qtRpck4Gi4K664gvHjxwPVw8E0Gg0HDhxg+PDhAIwdO5YtW7bQtWtXRo8ejUqlIioqCpvNhslkIigo6KxjJiYm1nquioqKOp9rroyMDApMRdg1OgCKTCaOHLFRVlbWIudrKS35HtUmIyODEznF/J5ZxYnCSqrsEOFZwQ3ddQyP0GAtymRrnp7SIm9K/9rnzPc2IyMDu1p36r0vLuHV//1BREwXx3kyjyXiGxaDotVXlyksQqWrxOevRe7PfHyuMnpDAHl5xkbt05TzuPM+AHltNLbTt6UdO8Kr+0od18qZ10ldZfqHxpBtiGJnaiF+Kj19fYrwCfjrvA387LfEZ+3Mz4JdrePIkSNu93fImeRbp2h3cooruOW9baSYynjnlsGyMrobOXOOFpw9T+vMMvmmQqrMJxo1l6s2DUnAodNAqE5Nv07BjOgazPGjSaSVa0guVvHz8VK8tWqSv0xiUFyRo8dUepLaJh+f6iE2ZrOZ+++/n1mzZrFo0SLH783Hx4eSkhLMZjMBAQE19ispKam1gRUfH1/ruRITE+t8rrm8vb0JzD5GUEh1o15tq6RHjzi3u3PcmPeoOcORqmx2vt6Xxbv7s9lv1KNRW+kV7kdwZSYelmK8PLuzrxDSkvIJiOxMSMipmyVnvrdnvvfFOf4EhUfSufup16GyV6LRezuOU5zjf87H5yqj1WoJCQlt1D5NOY877wO02djOLHP6tXLmdXKuMoO7d+Zwdgk/HMhivyWIPoZADJ7aBn/2G/v3qCGft/byd+ikhISEZh9DGliiXckotPDAf7diMlfywe3DOL+b3M13N6f3VkHt87ROL2OxKVjPyObVlGyFZw6xa0gCDk8N9ArSMLpfLMfzStl6OJPdRXoyj5ZzYc9QogK86nu5woWysrK47777mD59OpMmTeKll15yPFdaWoqfnx8Gg4HS0tIa23195aaNKzVlOFKF1cZnCeks23SMVFMZ0f46hkZ4MKRnDJ4eGo4dSEdjCKuRoU2ItqpXhC9FWcnsKPBmTUIa1w1quUQXMvyvaaSBJdqN7BIr/1h9CKsdPvr7SFnvqgNrSLbC2hphjU3AcZJapaJbqAGvEkir0LDfZGNNQjq9I3wZHNZxJ/m2ZXl5edxxxx3Mnz+fUaNGAdCnTx+2bdvGiBEj2LRpEyNHjiQ2NpaXXnqJO++8k+zsbOx2e629V6J1NXSR4JIKKx9tS2X55uMYSywMjAngiavi6eFTwf9tPo6nR1uZxSJE44TobFwQbmNbnoZ1uzK4vHPLfaVvyqLcHZ00sITbsysKO46b2HbcTKcAPR/dNoJeEXKHuaOrr7HU3JTxtVGpoIu/hsG9YthxwkRCSgEn8lTER5u4JSysGUcWzvbOO+9QXFzMW2+9xVtvvQXA448/zrPPPsvixYuJi4tj/PjxaDQahg4dytSpU7Hb7cyfP9/FkYuGyDdbeH/LCT78/QTFFVWM6RHC69MGMiouGJVKRUpKSqOP2ZDEBEK0pkA9XDuoE2t3prPxhI3bLTZXhyT+Ig0s4dbKq2DdzgwyCsvpFqTj3Zv6ECeNK9FATe2xqo+HRs353ULoGe7L9/symPfNMX49XsqtffX17yxaxRNPPMETTzxx1vaVK1eetW3mzJnMnDmzNcISzVRQWsk7vybz399PYKmyM75PBPeO68aA6IBmH7vIlMvyVLNjYde0pH0ERHYmuNlHFqLpwv08mTggii92Z/DYtyms7tpZembbAGlgCbekKAr/22fkpwwVKnUFl/cJJ9qzEh+d/FERbUeIQc/EXr74+RpY9nsmW48qzLP7M21YjCwbIIQTlVbaeG1DEu/9dpzSyiou7eHPjMFhdA7Ug62IlJQip6zLc/rCrjJPS7QVsUHeXBCtY3NaGTM/2cXbNw9Gq2nbw9Pb+9pZrdbAkkUdhbOkmcp4dN0+Nh/NI8QTJg7ujL+XByUFeTXK1ZbyG2TxVdHKFIXLYzWM7daHeV8k8ui6fazfncEz1/ane5ihVUIoKrOyJ72Q/RmFGAtKsNrsVNoUPKkku8RKV4NN7ngKt1Rlt3Mwz8pNHyVRVGHjir4RTOtnYN2vO/lxv9VRTibmi/aui7+WQZ2DeWNzFo9/vp8Xrm/b63+29+QZrdbAkkUdRXPZ7QofbU/lhW+q12+Yc3Esickn8PfyqLX8mVnhQFJmi9Z3+lyvHr5WvNUq9qYXMf61TdwyIpZZl/Yk0Efn1HPa7QpZJVZe+TmVP9MTOZZXetqzChqVCrUKrPa/NiUfI9hHR49ADaWVMoZfuIeU/FJ+OWyksNzKgFAt913Vjd5hXqSnp+MXHF5jUr7MnxIdwfX9g7F7+LDk56OE+Or49/jerg7pnNpz8oxWa2C15qKObU1rL6DYHG011owiC69syibRZKNfiIY7+3uhLj/G/iqbY1FBc5GJpKTq6wWqs4RZ7AoetlOVaEWVjT/++MNxPZlMJvLzVVj+KlNQaEKl9USj93bsc+a2ppQpKDwZk7FR+zTlPM6I31Zlw2QqaPVYmrJPVVVVm4nlXPtYbApeBj+iVcXcPtCLb9PUrPgjhbUJaUzu488VPX0J9Gr6n+SsHCMH04swniglvciKxaagU5sZGOXN2MGB9AzxJAgz3xwuwjcgEICMlGOU4EWVZyDpxVb+SK9kwtJdjO+RzJR+AXirq9rk3wPRsRVXVPFbmoUTRZn4e3kwIrAUn/IiNh/Wsflw7XOjZP6U6Cgeurwn+aUW/vNzMiEGPbdf0NXxnN1uJyMjA2/vU3VUexqW15a0WgOrNRd1bGtacpFJZ2trsdrtCh/+foIXvj2BzWZjdKwPPYJ17CtSkZNajFWtdyzM56FSCAwMcFwrNpuNoEA1fkGnFu6zlhSw4UQZoZbq4VA5qcX4hkQ4jmEtKUCt09dY7O/MbU0pYy0pAGj0Pk05jzPiz01LJigosNVjaco+eXlGAgOC2kQs9e2Tl2ckOCiYYf27MfHScJJySnj+m0Q+3G3kk32FXNkvkmnDYxjSORC9tv4hexmF5Ww5msfmI3lsTCyjtFKNTlNFlxAforzs/GtkMDGRp3prjUYjwUaN4zNhLSkgQqcnvFMMAMfSs7GqPPgmqYANyaVM6+/PnOvOQ6dtucrXGQs6io7jtyNGZq8+Sn6pjRFdgxjaOZDUQ/lo/OqfGyXzp0RHoFKpeOaafuSbK3nqy4MEG/RcfV4UUD0s78PNR+icXV2/tLdheW1Jqya5kEUdRV1qmy9lVnnz6Lr9bD9hYlQXP2INKiLCT6W6NheaKDSXOR43NO12S2WOE6IhTr/W/YEXJnTmxMgwvj1iZu3ODNbvyUSnVTOgkz+DOwcSYtDhqVVjs5RhttjILK4ks8hCcl456UUWAIJ9dFzcI5CKigp6xoajVavJOp7Ef381Ehppdpy7vlT0oT5a7r4wjrkTDTzz1UGWJ+Tyc+omnr66H6N7yKLdbcGZE8M7ylA3m13h5R8O8/YvycQG6BneTUuPLtL/JERttBo1b9w0iL/933Ye/HQ3KmDSX40sv6Cwdjssry1ptQaWLOoozuX0+VJ2RWFXSgGHitToPTS8fON5jO6kZdmmY/UeRxpPoq0780YAnJob+MgVvfntSB4JKQX8ecLE+1uOY7XV/PKsUYGvXo2P2sbsC2MZP6gLvcJ9yc3NZemvyWhPG+px+ufh5HkaokuID8tvG8Z/f0zg/d3F3LJ8G9cPjmbexHgCvJ07X0w0zpkTwzvCUDdTaSUPrNrFb0fyuGl4DLef58uK30+4Oiwh2jRPDw3v3TqUuz74k/tX7aKo3MqYSFdH1XG0WgNLFnUU9TEEBGHV+bEhMYesIhVj4vx4edpQwv08ycnJcXV4QjjNmQ2fk7x1Wsb3jeCy+DCMRiM2u0K51U5Gdi5fHComMCgEb50GlUpFSUEe0waHEx7enKWRz214tDdTxg7gha/2svLPdH46lM2/x8Uy9fyeaDSSddBVTp8Y3t6Huu1JK+DuD3dgKqvikYuiuCrev8P02gnRXH6eHvz3juHc9/FOnvjffqYPCsEuH51W0WoNLFnUUZyL1WZnT3YFu7ML8VCruLCLN4uu7k64n6erQxOi1Z2ZAfPk0D4ffesvXVhcaKI8P4uJvfzYnFLGY18fY/3+PJ6/cTBdQ3xaPR5Rk8WmorwCyrKK8dZp8Hbzb0+nD4H85lABi3/NQIOdS7t6kZVXyHu/FXaIXjshGuvMTJknxcTEsHTGEOZ/cYCPt6fi76EjuLSSoEZmr7XZFXKKKzhqtLJwYzrZZWkUlFVSYbVjq7KBYicoJ4tQXz0B2LC5+d+i5pKFhkWrO3O+VUJaMc//eJy0IivdQn0Y1ysMe1lhm16/QYiWZggIavXhrmd+NvPy8rDZbPj4BxIZFEpspML2Ixnsyypl/Kub+MfYOO65qJtLGn4dnbmiit+OGkky/jVH+a9efg81GKvSeOKaEDoHu18DOC0tjRfXbSWpMogjBVUEqMoY1UlHjy6xjjLtvddOiKY4M1Mm1Exi8fzk/vQJhGd+TOHjban0jDAQ522v83hVNjuHskv4enceG09UYExMdgxZDzGbiY8KoHuoAb2HmuISM7vSisgrtXDUWD3vd+t/D3HD0DJuGh7bams+tiVSK4pWd/LuvOLlz87MCpILKvFS2xgTrWdwr+pJmEXmml/0jEajDAkR7daZDRtXXe9nzg/LNxVSZT7hSIyhVqvoG+bJ/Ct78N6f+Sz5+SgfbUvhH2O78bdRnR0NrdqS1sgC385zON/KrsQT2BXo7mMh1EdL97g4CssrSUzNZfPxEi5/dROzLu3JXWO64qFxn/c9p6SSP4oDyC+vYkjnQCIqivHQyLw/IRri9EyZtRkb58fYUAu5HuEkZhWTaFPY9dFh+kYb6RLsjdWmYLZUccxo5mBWMRV/LZbop1cRH+lHTKA33tZC/jWuW43MgykpKbz3m4Wg8E6UVVaReDwDjc6T/249wfLNxxnTI4QHLunB0C4dJ6eCNLBEq8spqWRPsZ4jx4tRqVQM6xJIDCZ0nqe+BDQ0I6AQ7UFbut5Pnx9msSlY1Wf3JIcYdLw6dSB/G9WZ1zceYdF3h1i2KZlbz+/ClKExaCzFNYY4ygLfzqEoCsv+yGZ7lpXOwd6M6xVG/rG9aPQagnx0BPnoCLAVcc2gGN7dWcii7w7x7f4s3rxpkFv0Zm1KMjLzs2TKKu1MHBBJt1ADxw6kuDosIdoVTw2M6xXG+XHB/HkkDYO3F8eMZjYlGfH00OCt0xAT6M3NIzozINqfaF05/9uZRtBfWZxNOUXnPL63TksXPzVXdlMza0wvvjlUwJo9edzwzu+M7h7CYxPi6RPV/r/NSQNLNEttd6rh7LvViqKw7biJT3ek8dXeTGx2hX5R/gzrEoTBU0vW8bOHQElGQNGRuOP1Pig2kA9uH87O1ALe3HiE1zYc4fWNRxjZ2Q9PlYFg3yB0WvU5/06IhrHbFZ788gAf7cqjR6CWK86LQq1SkV9L2VCDB0tnDOWbfVnMXbuXq97YzHOT+zvWwmlr7HaFT/YUsGLPMboE6rkoxoMuoR1vSJEQrUnvoSE+2IO7xsSecx2slJTG3+Q4c7ji+X4FdBnck0925zPxzd+4eURnpsR7NTl2dyANLNEsZ07Gh1N3q4NCQtmVWsjmI0bW78nkRH4ZvnotV/cNQW2zEBURdo4jCyHOpa0MKwQYHBvI+7cPJ81Uxpo/0/hkewpGs5VNKceIDvQiWFVKemYWsdHFjn1O/p0Q9VMUhWe+PsiHv6cw9bxgPKrKUDdgjuqE/pEMiPbngVW7uf+TXWw5kseCq/vgrWs7Vf8xo5m5a/ex/UQB1wyM4p6hAXz0xwlXhyVEu3Bm4ovWzMB55nDFqeeFcPelA1j842FW/JHCF7s0xAerGR6mNOjvmbtpO39lRZtT211nu716PO7J3imj0YiPfyDe/sGYSivJL7WQVerFrM+T2Ju5i9JKG2oVDOsSxMyLezChfyTFBXks/TW51V+PEO2Jq4YVnqs3KibImwcv78W0/v48881hsiu0HMsrJaVcBXgTVl5GXIgPXUN88PGXOZUNtWzTMd7fcoLbzu/CbQN8WL75eIP3jQ705tN/jOS1DUf4zy9HSUgt4LWpA+nXyb8FI65feaWN/9tynDc2HkGvVTP7/FDunzSQ1NRUl8YlRHtyZk9SWtI+FE/Xffb9vT146pp+TBsey6NrEtiWWcaxkjQu7hVGe5tpKQ0sUafaeqeyU5KxqD1R+YZiKreRnV9EKZ6UWAsdayuogLhgFdcN7sTo7iGMigvB39vDcYxihBDO4IphhedaKPnkHCuNWkWkrwc9Y0MY0yOEw0lHyLJoMVaq+OO4iT+Om/DyUJFvPcGt8VINncu6nek8/+0hrhoQyfyJfUhLa3wDRKtR8/D4XozqFsysT3czaclmrhvYidmX9SQmyLtGavTTxcTEOG6m1Vbm9OcbqrzSxmcJabzx01GMJRYu7xPOP4cGYMo8QWpqqqxxJYSTnd6TVJiXTXFZZT17tLz4SD9eu7or874+ws7cKj79M41eQVqmV9pcHZrTSM0mHOx2O3l5eY5FfY1GI15+ARTjQ0ZROZmF5WSaArEqKjCWAuCj1eHvCT0iAwkx6Ak26NBairl3XHeZ0C5EO1XXQsm1UalU+Osg0KAhvFMMpZYqUkxlHMk0sTGpgFvjZR5WXTYlGXnks72MjAti8ZTzUNeScKQxLugewobZF/L2r8m8v+U46/dkMrpHCCOidOzcf4jwsDDH8hinp3eG6vTpr3y+Ff+QiFqfPxdLlY3dqYWs35PJ+t2ZlFiqGN4liLduHkyYqoRXPt+KXa0jMPuYrHElhIudeTOlpW56qFQquvhr6RsXzdbkfPamF/G3VUd4drI34/tGOP18rU0aWMLBaDTy4e8nCEtTkV5cxZFME8YqPVZ7dcaYYB8dMQYI9tHQNTqSIB8dprRk1DoPwjud+rJVZFEkRbMQolY+ei19Iv2I8azkztFdyc7KdHVIbdLe9EL+uTKB7mEGlv1tKHqtpsnHOvML0019vJgxciwf/pHK13uz+OVwOeCLzmQhwNsDnVYNVYE89WMaoQFFeOk0VJSZOW4LwlDuhVatwqIK5utEE1EmLXqtGp1WjUYF6dm5VFjt5JdVkVlcSU4Z7EorxFJlx9NDzYR+kUwZFsOIrkGoVCpSUkrwD4nArtERFBIqa1wJ4WJn3kxp6Zseeq2Gcb3CiNJVkFQId69I4PI+4Tx1TV8i/d03EYY0sDqw0+dSpBdW8N3eDHaVBpK/rwhFAb1GR7Svmj6x4XQK9MLLQ0PW8STUOg3h57jozxxCJCmahWjfmppwQ+tG6zO1pmNGM3d8sINAbx3/vWM4fp4e9e90DnX1Pj16ZTxzr+jND38eZvnWVCo03hSVWam02amw2jliLOdgroWyyiosVTYsVQoYT+Ut3J6VCdTdQPZQKXQLrU73PCIuiBFdAykyZgNmUlOrFyOVIYFCtD3+IRE1hhWe7szEGeCcz3Got4Z/X9qVH1JtvL4xicsWb+Lhy3syY1QXNM3svXcFaWB1UFU2Oxt2H+PVHw6RY9FQWFGdvMJHozAkNoi4UB+U/DQ0ei3hTViBuzFDiIQQ7q0pCTfqSpbR0SXllDD93W0oCnxw21AqCnJIKTj1fFO/yJz+hel0KpWK3mFe9Ar2cKxzA5CflcaV3TyJjo52nPeb5AoCw6OpstvJy8pgbKye4NDw6vXSbAqZ2TnsyLISEh6Bt4cGc17m/7d372FVlWnjx797cxYUARUPiClaHsrykFqpqekkVs7Uz1OK5Tij6ViewlDRxAATySP8UpzJMnBSkzTnLWe0t9SswdPrYTRBRVRAVM5n2Ju97/cPYicI5oHD2m/P57q8LvfmWWvd69mbdfOsZ6174evjgJeXM1DK2RPH2HrkKk2b/3L5T8XZceemDve8T4qi1L+qhTOg9ma5bG10TB/kwwuPtSJw138I+sdPfH48hcAXuvC0T7Nauxe0PqgB1m9IbpGRgxfS+Tb+Jt8l3CSnyIgOHV5uDnRv64xLSTplpcV06Vg+MEqzjkfxKIqiAfdacKNiUDapv09dh2Y1zl7LZeJHR7DV6/j71H7YFWdVmnmCur9cp0J11ceatmpHM70OG70NpXnp7IoroM1DZbfF5taovB5Yag3ruHWgpy4JVJSGc7+zUVVLsNf277G3RyM+ndyH/zqdxvI98Yz/62GGdmnBa4+7smP/8fu6F7S+qQGWFbqbh/uazcKVrCJOp+Rw7HI2Ry9nkXAjHxFwa2THkM4t6N3KgZ9SsvBoVn6TeVpSOjml9boriqL8hjm7ujV0CJqx+9Q1FsSextXJjr9P6cdDzZy5ciXrtpmn2vhD5m6fjVO1+tidfn43bdRgSlG0pS5no+5VdYO9Fx5ry7Cunmz6IYkPv0vku/ibdHRzZ6Cbp6ae51cdbUenVKtq+fRio5m09Cy6ejcnw2DLxYxiEm4WUmgov+zPyU7PY61cmPNcJ57u2Iwe3m7Y6HXcuHGDi2nZd9pUrdDSA1EVRVG0pNhgYtnX54iOu0Lvdm5Eju9JS1fHOt1mTbNTqnKfovz21PVs1N2qelzKuXmNcX0fwsvLixfa2/G0Z0ci91/iv68YSPzhMt29XOngpN2/JdUAy0rklRi5mlnE1awifrpyg1N5DuRnFZNdaKTYaAJs2H89C1s9NHW0wUNfhI+rjvatmuHmZENRbjZjH3sYT0/3X91WbWuoB6IqiqJolcks7DiezAf/PEd6YRnjHm/GlL6etGhcP4/bVDNLiqJoTdXj0kff/VRpdq0s7RxDWrcj1ezGias5nNKB2Kcxr6lnnZ+YuldqgPUAqrtU79fKkZtMJq7fuInh55uCDSYzTo2bkl1kJKOglPQCAxn5pWQUlP9Lyy3hamYROcXGSutxsNXh4eyAT3Nn3J3tIT8dV2d72rdrh06n+7nanwOebX6+dl9uL51enzNJDfFAVEVRFK1Jzipi54lUvvifFC5nFuFmV8bz7Z2xMxWxZtcPjOubWqmwxL0eo+uqwpeiKEp9q252zcYOnu/Ykj7t3fnhXAq7zmSy++y3/O6Rpox6zINnn+ikiaIXVj3A+n///yB2eh3OTo7Y2+qxtdFjZ6PDTq+jzFiKnV6HbcU/Gx32FT+30dO0SWPs7WzQ63SYzUKZ2Uxubh4mAbMIZSYzZgEBzAJlZsHOwQmjyUxpmRlDmZncgiLOXM1AZ2uPSQSDwUizxo6IzsYyeDKahKJSI2bdFYxlZgwm4W7SnKujLe6NbGnuYs9TXg6kZpbSzLUxjR30FN+8gnuLlni2aWtpn5aUjt5OZ3lIZFVVZ5FAzSQpiqLUpjMpOTja22CW8kv/Cg1l3Mgr4dSFbDJPnuBkcjbJWcUAPNXBgz/28uBCagYeLcuPy1XP2N7PpXtauqdCURQF6ubEj1sje7o6ZtPCUEyGQxv+GZ/NV+ey6X/kBp9M6d/gjwGx6gFWSnYxRoMRN+cSRK/HaBLKzEKp0URBaRmCDrOASQR48Br6eh3Y2+ix/3mQZqMzU1pmg51Oh41ej2AkPbcIR0cHbHQ6TMUF2NrocbO3xdnJHr0OSvJzcHR2wbVpU2z1egxF+fTzdqadpzvujexwb2RLWWEOW+Iu07hpYwBuXL1M1xYt8WzTGoA0Q959xV+1dLqaSVIURak9L0b+UOPPWjYp4pFmDrzU2ZVnOzShZWN7UlJSuFClXW1cuqeVeyoURVGgbk/8eDb3oE/H9hQbTRxNSMbFwabGyYb6pMkBltlsJigoiISEBOzt7QkJCam2BOO4vu1JSzpPcXH27TMz7Vri2aZ8mbSk82BnR/NW3phEuHY5kaLiYtyat6Ri6JV57SqN3ZvTvJUXep2Om1cTsbG3x7ONNzrgxpWLlJYUVTsDdOt29PZOVV47YOPQiGaWSn0l5Q/qbeP+8+ubXEzKJPfn51Ddul51SZ2iKErDu9uc9JhjedU/nQ5K87IY2tWTLu1ak3v9Cm6Nndh65Cr5eS35r5PlJ8nUzJKiKL8VdX3ix8nOhkeb2/HnAV6aeDCxJgdY33zzDQaDgW3btnHy5EmWL1/O+vXrb2uXn51BYV42ervbH1BYmJtNfiPn8v//3KbYufyBuabCbJzsHGjsYGNpX2RjxlyUg7nIBTNgLMzGZHCgJK98meL8u99O1dd6hxIcbHR3bHM/6614fTdt7naZ4qJi8rMz7ns7tRnL3Sxzp3jrK7a7XS9gibW+++le2xTl5+Ho4KiZz/lObQpysygryNFELL+2THWxaqkv76dvHzQWqP/CO/fqbnNSc9sS2jQtT6vJN26w70Aip9u0Izc3h6LsG7h6tqVp88rL5GXeJKtx+YXa+Vnp6O2danx9N22sdZkyYxl6k0EzsWmhT6q2qamPtBCbVpYByLqRqsnYtPKdLSw21thHWt6/u2mTm3Ed6IAW6ESDd76+//77dO/enRdeeAGAAQMG8P3331dqc/z48YYITVEURallvXr1augQ7kjlJEVRlN+WB81LmpzBKigowMXFxfLaxsaGsrIybG1/CVfrCVlRFEX5v0HlJEVRFOVeNHwdw2q4uLhQWFhoeW02myslMkVRFEWpLyonKYqiKPdCkwOsnj17cvDgQQBOnjzJww8/3MARKYqiKL9VKicpiqIo90KT92BVVGw6f/48IsKyZcvw8fFp6LAURVGU3yCVkxRFUZR7ockBVoXExETGjBnDjz/+iIODAydPniQ0NBQbGxv69+/Pm2++WWP53Ora1pWioiLefvtt8vLysLOzIywsDE9PT03Gm5+fz7x58ygoKMBoNDJ//nx69OihyVgr7Nu3j3/+85+sXLkSQNOxVnW35Z3r06lTp/jggw+Ijo7mypUrzJ8/H51OR6dOnViyZAl6vZ7IyEj279+Pra0tCxcupHv37jW2rQtGo5GFCxeSmpqKwWBg+vTpdOzYUZOxAphMJhYtWkRSUhI6nY6lS5fi4OCg2XgBMjMzeeWVV9i0aRO2traajlXrTCYT77//PmfOnMFgMPDWW28xePBgqzpW1RdryesNwRrzsxZoMc/WN2vLmQ2p3nKfaFR+fr5MmTJF+vXrJyUlJSIiMnLkSLly5YqYzWb585//LGfPnpV//etfEhAQICIiJ06ckGnTptXYtq58/PHHEhERISIisbGxEhwcrNl4165dKx9//LGIiCQmJsof/vAHzcYqIhIcHCzPP/+8zJ492/KeVmOtTk1xNZSNGzfKiy++KKNHjxYRkTfeeEPi4uJERGTx4sWyd+9eOXPmjEycOFHMZrOkpqbKK6+8UmPburJjxw4JCQkREZHs7Gx59tlnNRuriMi+fftk/vz5IiISFxcn06ZN03S8BoNB/vKXv8jvfvc7uXjxoqZjtQaxsbGyZMkSERG5fv265RhrTceq+mBNeb0hWFt+1gqt5dmGYG05s6HUZ+7T5PBURFi8eDFz587FyckJKK/iZDAY8Pb2RqfT0b9/f3788UeOHz/OgAEDAHjiiSc4c+ZMjW3ryqRJk5g+fToA165do0mTJpqNd9KkSYwbNw4oP+vq4OCg2Vih/N6HoKAgy2stx1qd6uJqSN7e3kRERFhenz17lj59+gAwcOBAS1/2798fnU5H69atMZlMZGVlVdu2rgwfPpxZs2YB5ccDGxsbzcYKMHToUIKDg4FfjgFajjcsLIxx48bRokULQLvfA2tx6NAhPD09mTp1KosWLWLIkCFWd6yqa9aW1xuCteVnrdBanm0I1pYzG0p95r4GL4P0+eefs3nz5krvtW7dmhEjRtC5c2fLe1XL5Do7O5OcnFxt+dya2tZVvMuWLaN79+689tprnD9/no8//lgT8d4p1vT0dObNm8fChQs1HeuIESM4fPiw5T0txHov7qa8c316/vnnSUlJsbwWEXS68odgOzs7k5+fT0FBAU2bNrW0qXi/urZ1xdn55wfdFhQwc+ZMZs+eTVhYmCZjrWBra0tAQAD79u1j3bp1/PDDD5qM94svvsDd3Z0BAwawceNGQLvfAy2q7ljl5uaGg4MDUVFRHD16lAULFrBy5UqrOlbVJmvL6w3BmvKz1mktzzYEa8yZ9a2+c1+Df/tGjx7N6NGjK703bNgwYmNjiY2NJT09ncmTJxMVFVWpTG5hYSFNmjShpKTktvK5VUvqVrStq3grfPrppyQmJvLGG2+wa9euBo+3plgTEhKYO3cu77zzDn369KGgoECzsVZV0/br+3twt7Re3vnW64cr+qe6fmvcuHG1betSWloaM2bMYPz48bz00kuEh4drNtYKYWFh+Pv7M2bMGEpLSzUZb2xsLDqdjn//+9+cO3eOgIAAsrKyNBmrFlV3rJozZw6DBg1Cp9PRp08fLl++bHXHqtpkbXm9IVhTftY6refZ+mKNObM+1Xfu0+Qlgvv27SM6Opro6GiaN2/Opk2bcHFxwc7OjqtXryIiHDp0iN69e1dbPremtnUlKiqKXbt2AeWjWhsbG83Ge/HiRWbNmsXKlSt59tlnATQba3WsKVbQfnnnrl27WmYIDx48aOnLQ4cOYTabuXbtGmazGXd392rb1pWMjAwmT57MvHnzGDVqlKZjBdi1axdRUVEAODk5odPpePTRRzUZ75YtW4iJiSE6OpouXboQFhbGwIEDNRmrtejVqxcHDhwAID4+nlatWlndsaquWVtebwjWnp8bitbzbH2wtpzZEOo792m6iiDAkCFD2LNnj6Xa0LJlyzCZTPTv3585c+bUWD63urZ1JSMjg4CAAAwGAyaTibfffptevXppMt7p06eTkJBAmzZtgPKD9/r16zUZa4XDhw+zdetWVq9eDaDpWKvSYnnnlJQU5s6dy/bt20lKSmLx4sUYjUY6dOhASEgINjY2REREcPDgQcxmMwsWLKB37941tq0LISEh7Nmzhw4dOljeCwwMJCQkRHOxQnkl0QULFpCRkUFZWRlTpkzBx8dHk317q4kTJxIUFIRer9d8rFpmMBhYsmQJiYmJiAhBQUF069bNqo5V9cka8npDsMb8rAVazLP1zdpyZkOrj9yn+QGWoiiKoiiKoiiKtdDkJYKKoiiKoiiKoijWSA2wFEVRFEVRFEVRaokaYCmKoiiKoiiKotQSNcBSFEVRFEVRFEWpJWqApSiKoiiKoiiKUkvUAEu5Z4cPH6ZXr16kpaVZ3vvggw/44osv7nudKSkpjBkzpjbCu01ZWRkTJ05k3Lhx5ObmVtvms88+IyIiok62X1VMTAy+vr58/fXXbNu2DaPR+EDrO3jwIPPnz6/x56WlpXz++ecPtI3k5GSGDx9OQEDAA62nQsV+nzt3jsjISOCXftm5cydBQUH3vM6YmBigvD+2bdtWK3EqiqJdKhc9mNrORfciISGBo0ePAuUP6jYYDJXyTGhoKNeuXbundR49epT4+Pi6CPc29xJfTk4O//jHPwDYuHEjp0+frsvQFI1QAyzlvtjb27NgwQKsocr/zZs3KSwsZOvWrbi6ujZ0OOzdu5c1a9YwYsQIoqKiMJvNdbq99PT0Bx5gHT9+nEGDBhEWFlYrMVXsd5cuXXjzzTeBX/rl5Zdfvq8B1vr16wEYOHAgY8eOrZU4FUXRNpWL7l9956Kq27548SIAq1evxt7evlKeCQwMpHXr1ve0ztjYWG7evFkX4d7mXuJLSEjg22+/BWDq1Kl07969LkNTNMK2oQNQrFO/fv0wm81s2bIFPz8/y/u3PsQWYMyYMaxatYqdO3dy5coVsrOzycnJYcKECezdu5ekpCTCwsJo1qwZWVlZTJs2jczMTAYNGsSMGTNIS0tj8eLFlJaW4uDgQHBwMCaTienTp9O0aVMGDhzIlClTLNvfvXs3mzdvxt7enoceeoj33nuPJUuWcPnyZd59913ee+89S9tjx46xbNkymjRpgo2NDU888QQAK1eu5MyZM+Tk5NC5c2fef/99xo0bR3BwMJ06deLAgQN89913vPTSS4SFhWFra4uTkxNr167FxcXFsv7z58+zfPlyTCYT2dnZBAUFceHCBX766ScCAwMZO3Ys6enpzJkzhw8//JCVK1dy7NgxzGYzkyZNwtfXl4kTJ+Lu7k5ubi4fffSR5aF2iYmJLFy4ECcnJ5ycnCzJOiYmhr1791JcXIybmxuRkZFs2LCBixcvEhkZyeuvv05gYCDZ2dkALFq0iEceeaTSZ7t8+XKOHz8OwIsvvsiwYcPYsGEDJSUleHt7M378eEvbzz//nM8++wyz2cyQIUOYOXMme/bs4ZNPPkGv19OrVy/8/f2JiIjgxIkTFBUV8dJLL1n2+/XXX2fr1q3069fP0i+rV6/m7bffZvv27Xz33XdERkYiInTr1o2lS5eyd+9etmzZQllZGTqdjsjISLZt20Zubi5BQUF0796dS5cu4e/vz6ZNm/jqq6+wtbWld+/ezJs3j4iICFJSUsjMzOTatWssWLCAAQMGPPDvhKIo9U/loobNRZcvX2bRokUYjUYcHR1ZvXo1paWld+yrvn37snPnTuzs7OjWrRuzZ88mJiamUp7Zs2cPQUFBuLm5ERAQQH5+PiJCWFgYjo6OBAUFUVpaSnp6OrNnz6Zly5Z8//33nD17lo4dO3Lq1Knb8tCtEhISCAkJAaBp06YsW7aMY8eO8de//pWYmBgiIyMpKSnh2WefZcOGDej1etLT0xk7diwTJkywPKj266+/tuS20NBQdu3addtntmHDBuLj49m2bRsnTpxgxIgRPPXUUyxYsICUlBRMJhN//OMfGTFiBBMnTqRz585cuHCBgoIC1q5da3nwtGJlRFHuUVxcnMyePVuysrLkueeek8uXL0t4eLjExsZKcnKyjB492tJ29OjRkpycLOvWrZPAwEAREYmKipKZM2eKiMiOHTskJCREkpOT5amnnpK8vDwpKyuTsWPHyrlz52TWrFmyf/9+ERH58ccfZe7cuZKcnCx9+/aV0tLSSnFlZWXJ0KFDJT8/X0REQkNDJTo6+raYKrz44oty6dIlERF59913Zd26dZKfny8bN24UERGTySTDhw+X69evy44dOyQsLExERN566y05c+aMLF++XDZt2iQmk0n27dsnqampldb/1VdfSXx8vIiI7N6927L/fn5+cvHiRRERGTx4sJSUlMj+/ftl9uzZIiJSUlIiI0eOlNzcXPHz85O9e/feFvvUqVPl0KFDlv4MCAgQk8kkERERYjKZRERk8uTJcuzYsUr7v2LFCtmyZYuIiCQlJcm4ceMqrffbb7+VGTNmiNlsFoPBIKNGjZL4+HiJjY2V8PDwSm0zMjJk2LBhUlxcLGazWcLDwyU1NVV8fX2lqKhIRET8/f3l0KFDsm7dOgkODrYsW7HfFd+lW/ulIl6j0SiDBw+WjIwMERHZuHGjpKamyvr16y3rX7x4sXz55ZciIvL000+LiFhijY+Pl1GjRonBYBCz2SwzZsyQb7/9VtatWyeLFi0SEZFDhw7J5MmTb+tfRVG0T+Wihs9F06ZNkwMHDoiIyDfffCPff//9XfXVunXr5O9//3ulbd+aZypiCw4OtrQ7fvy4fPnll/LDDz9IXFyc5b1JkyaJiEhAQIAcOHBAsrOzq81Dtxo9erRcuHBBRES2b98uq1atEhGR4OBg8ff3Fz8/PzEajRIXFye+vr5SWloqxcXFMnToUMnIyLDEd2tuq+kzuzXPVcQYHR0toaGhluWGDRsmmZmZ4ufnJ7t37xYRkVWrVklUVNRtfa5YBzWDpdw3Nzc3Fi5cSEBAAD179qy2jdxy2UbXrl0BaNy4MR07dgTA1dWV0tJSADp37kzjxo0BeOyxx0hKSuL8+fNERUXxt7/9DRHB1rb8K+vl5YW9vX2lbSUnJ9OxY0fLmbsnn3ySQ4cOMWjQoGpjy8jIoH379gD07NmTq1ev4uDgQFZWFnPnzqVRo0YUFRVhNBrx9fXllVde4U9/+hM3btygW7dueHl5sWHDBl5//XU8PT1vm/Zv0aIFH374IY6OjhQWFlY6o1jV+fPnOXv2LBMnTgTKr9VPTU0FsMR4q8uXL1u217NnTy5duoRer8fOzs4S+/Xr1ykrK7ttO3FxcezZswfgtvsAEhMT6d27NzqdDjs7Ox5//HESExOrjTk5OZlOnTrh6OgIgL+/P6dPnyYrK4upU6cCUFhYyNWrV2vcjzvJzs6mSZMmeHh4AFjODnt4eBAQEICzszOXLl2ynO2t6tKlSzz++OPY2dkB0Lt3by5cuABAly5dAGjZsiUGg+Ge4lIURVtULmq4XJSUlESPHj0AeO655wBYtmzZXffVr0lKSmLUqFGWvunZsycXLlxg/fr17NixA51Od1ueu3r1arV56JlnnrG0SUxMZOnSpQAYjUYeeughoDzPDB48mDVr1lji7tGjhyXuTp06WXJahYp+qekzq05iYiJPP/00AC4uLvj4+JCcnAz88v1s2bIlGRkZ99Rfinaoe7CUBzJkyBDat2/Pzp07gfIDTGZmJiaTiby8PFJSUixtdTrdHdeVmJhIYWEhZWVlnD59mk6dOtGhQwf8/f2Jjo5m6dKlDB8+HAC9/vavrpeXF4mJiRQVFQFw5MiRO/5R7+npaRk8/Oc//wHKCySkpaWxatUq5s6dS0lJCSJCo0aN6Nu3L6GhoYwcORIovwTk5ZdfJjo6mk6dOlkuRakQGhrKzJkzCQsL4+GHH672HgGdTofZbKZDhw707duX6OhoNm/ejK+vL23btq2x33x8fDhx4gQAZ86cASA+Pp5vvvmGNWvWsHjxYsxmMyKCXq+3XFvfoUMHJk2aRHR0NGvWrLHsy63rrbg80Gg0cuLECdq1a1dt/3l7e3Pp0iXLAGXmzJl4eHjQqlUrNm3aRHR0NH5+fpYB0K2fWcV+34mHhwd5eXnk5OQAEBISwpEjR1i3bh2rV68mJCQEBwcHS79W7d8OHTpw+vRpysrKEBGOHj1q+T782ndRURTronJRw+Wiiph3795NdHT0XfXV3eSAqus/evQo4eHhrF27lt///veEh4fTt29fy/7odDpEBC8vrxrzUIX27dsTFhZGdHQ08+bNswx+lyxZQmBgIBEREZYTkOfOncNkMlFcXMzFixdvy4kV+1XTZ3ZrDr51v44dOwZAQUEB58+fx8vL61f7Q7EeagZLeWCBgYHExcUB0Lx5c5555hlGjRpF27Zta/zjvDqurq7MmTOHrKwsRowYQceOHQkICLBca11SUkJgYGCNy7u7u/PWW2/x2muvodfr8fb2xt/fn/T09Grbv/fee7zzzju4uLjg7OyMq6sr3bt358MPP2TChAnodDratm3LzZs3adu2LWPGjGH8+PGWAgzdu3dn0aJFODk5odfrK11TDzBy5EhmzZpFkyZNaNmypeW+p1v17t2bqVOn8umnn3LkyBHGjx9PUVERQ4cOveNZxvnz5xMQEMBHH32Eu7s7Dg4OtGvXDicnJ8aNGweUfxY3b96kR48eGI1GwsPDmTZtGoGBgWzfvp2CggJLgYkKgwcP5siRI4wdOxaj0cjw4cPp1q0bCQkJ1fb3lClT8PPzQ6fTMXjwYNq0acOkSZOYOHEiJpOJNm3a4OvrW+N+z5gxo8Z91Ov1LFmyhDfeeAO9Xk/Xrl158skn6dmzJ2PHjsXW1pYmTZpYbmr28fHB39/fclbwkUcewdfXl1dffRWz2UyvXr0YOnRovVWZUhSlfqlcVP+56J133uHdd99l/fr1ODo6Eh4ezqBBg361rx599FFWrFiBj49PjesGmDZtGgsXLmT37t1A+ezYqVOnWLFiBRs3bqy0P48//jgffPABa9as+dU8FBQUREBAgOVe3tDQUDZv3oyHhwcTJkzAycmJRYsW4efnR1lZGVOmTCEnJ4fp06fj7u5ebaw1fWbe3t6cP3+eTz75xNJ2zJgxLF68mFdffZXS0lLefPNNy9Uayv8NOqnuVIaiKLc5ffo0MTExrFixoqFDURRFUX6jVC6qP4cPH2br1q2sXr26oUNRrIyawVKUuxATE8OOHTtYs2ZNQ4eiKIqi/EapXKQo1kHNYCmKoiiKoiiKotQSVeRCURRFURRFURSllqgBlqIoiqIoiqIoSi1RAyxFURRFURRFUZRaogZYiqIoiqIoiqIotUQNsBRFURRFURRFUWrJ/wKi40LpBWTjgwAAAABJRU5ErkJggg==", + "image/svg+xml": "\n\n\n \n \n \n \n 2022-05-26T17:56:31.345060\n image/svg+xml\n \n \n Matplotlib v3.5.1, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Ratio of CVEs appearing before (or exactly on) certification date: 26.54%\n", + "Ratio of CVEs appearing after certification date: 73.46%\n" + ] } ], "source": [ @@ -794,7 +802,13 @@ "hist.axvline(0, color=\"red\", linewidth=\"1\", label=\"Day of expiration\")\n", "hist.legend(loc=\"upper left\")\n", "plt.savefig(RESULTS_DIR / \"cves_vs_certificate_lifetime.pdf\", bbox_inches='tight')\n", - "plt.show()" + "plt.show()\n", + "\n", + "n_cves = exploded_cves.shape[0]\n", + "ratio_before_cert = exploded_cves.loc[exploded_cves.n_days_after_certification <= 0].shape[0] / n_cves\n", + "ratio_after_cert = exploded_cves.loc[exploded_cves.n_days_after_certification > 0].shape[0] / n_cves\n", + "print(f\"Ratio of CVEs appearing before (or exactly on) certification date: {100 * ratio_before_cert:.2f}%\")\n", + "print(f\"Ratio of CVEs appearing after certification date: {100 * ratio_after_cert:.2f}%\")" ] }, { @@ -806,7 +820,7 @@ }, { "cell_type": "code", - "execution_count": 156, + "execution_count": 15, "metadata": {}, "outputs": [ { @@ -832,7 +846,7 @@ }, { "cell_type": "code", - "execution_count": 158, + "execution_count": 17, "metadata": {}, "outputs": [ { @@ -860,15 +874,17 @@ " not_valid_before\n", " not_valid_after\n", " validity_n_days\n", + " related_cves\n", " \n", " \n", " \n", " \n", - " d4647f5217d84ba3\n", - " CELES-c002 Machine Readable Electronic Documen...\n", - " 2020-11-02\n", - " 2020-11-02\n", - " 0\n", + " 602f65f51a07adaf\n", + " Brocade Communications Systems, Inc. Brocade D...\n", + " 2015-03-25\n", + " 2016-03-21\n", + " 362\n", + " NaN\n", " \n", " \n", " a7120da6bf4874fa\n", @@ -876,13 +892,7 @@ " 2019-06-17\n", " 2020-06-10\n", " 359\n", - " \n", - " \n", - " 3c24bbe7724dbfdd\n", - " McAfee® Email Gateway (MEG) software v7.0.1, r...\n", - " 2012-10-16\n", - " 2013-08-21\n", - " 309\n", + " NaN\n", " \n", " \n", " e2f3a1cdd592ab05\n", @@ -890,20 +900,15 @@ " 2011-07-31\n", " 2012-07-20\n", " 355\n", + " NaN\n", " \n", " \n", - " f34df0dd7011366e\n", - " JSAFE3_EPASS BAC (Rev. M)\n", - " 2019-04-09\n", - " 2019-04-09\n", - " 0\n", - " \n", - " \n", - " 2731d8ddba404fad\n", - " JSAFE3_EPASS EAC (Rev. I)\n", - " 2019-04-09\n", - " 2019-04-09\n", - " 0\n", + " f410930a2a47d3d0\n", + " Avaya VSP 4000, VSP 7000 and VSP 8000\n", + " 2017-03-10\n", + " 2018-02-26\n", + " 353\n", + " NaN\n", " \n", " \n", " 16bdbde359584f99\n", @@ -911,6 +916,7 @@ " 2019-01-25\n", " 2019-12-03\n", " 312\n", + " NaN\n", " \n", " \n", " 0c7ef6c32cbdee47\n", @@ -918,55 +924,15 @@ " 2019-01-25\n", " 2019-12-03\n", " 312\n", + " NaN\n", " \n", " \n", - " 58ece75f7f2b5099\n", - " J-SIGN version 1.8.9\n", - " 2019-01-11\n", - " 2019-01-11\n", - " 0\n", - " \n", - " \n", - " 10b17081dd7cad8f\n", - " ST33TPHF2E mode TPM 2.0 TPM Firmware versions ...\n", - " 2018-09-24\n", - " 2018-09-24\n", - " 0\n", - " \n", - " \n", - " e27937cf16c20f8f\n", - " ST33JM2M0 B02 including optional cryptographic...\n", - " 2017-09-05\n", - " 2017-09-05\n", - " 0\n", - " \n", - " \n", - " 17b5257b3755a07c\n", - " Plate-forme STSAFE-J, en configuration fermée,...\n", - " 2017-03-23\n", - " 2017-03-23\n", - " 0\n", - " \n", - " \n", - " 23a85a7f9c07412f\n", - " Microcontrôleurs sécurisés ST33G1M2A et ST33G1...\n", - " 2017-02-16\n", - " 2017-02-16\n", - " 0\n", - " \n", - " \n", - " 2748f920f4df8eaf\n", - " IDeal Pass v2 - SAC/EAC JC ePassport 4.0.0\n", - " 2013-12-20\n", - " 2014-09-09\n", - " 263\n", - " \n", - " \n", - " fd31c2a2bbfcc4a9\n", - " Pro 8100/8110/8120 (Ricoh/Savin/Lanier/nashuat...\n", - " 2016-08-10\n", - " 2017-02-13\n", - " 187\n", + " 3c24bbe7724dbfdd\n", + " McAfee® Email Gateway (MEG) software v7.0.1, r...\n", + " 2012-10-16\n", + " 2013-08-21\n", + " 309\n", + " {CVE-2016-8005, CVE-2012-4581, CVE-2012-4585, ...\n", " \n", " \n", " 9e0ec9db58b5c8ec\n", @@ -974,27 +940,31 @@ " 2016-04-25\n", " 2017-02-13\n", " 294\n", + " NaN\n", " \n", " \n", - " 25fcafd838cecd84\n", - " bizhub C360 / bizhub C280 / bizhub C220 / bizh...\n", + " 5068c3b7fefae589\n", + " bizhub C652 / bizhub C652DS / bizhub C552 / bi...\n", " 2010-06-29\n", " 2011-04-15\n", " 290\n", + " NaN\n", " \n", " \n", - " 5068c3b7fefae589\n", - " bizhub C652 / bizhub C652DS / bizhub C552 / bi...\n", + " 25fcafd838cecd84\n", + " bizhub C360 / bizhub C280 / bizhub C220 / bizh...\n", " 2010-06-29\n", " 2011-04-15\n", " 290\n", + " NaN\n", " \n", " \n", - " a0176ceabc4bfc0a\n", - " Cisco Expressway X12.5\n", - " 2019-08-19\n", - " 2020-02-26\n", - " 191\n", + " 2748f920f4df8eaf\n", + " IDeal Pass v2 - SAC/EAC JC ePassport 4.0.0\n", + " 2013-12-20\n", + " 2014-09-09\n", + " 263\n", + " NaN\n", " \n", " \n", " 13e306eb69c8bf95\n", @@ -1002,13 +972,23 @@ " 2017-10-17\n", " 2018-06-27\n", " 253\n", + " NaN\n", " \n", " \n", - " f410930a2a47d3d0\n", - " Avaya VSP 4000, VSP 7000 and VSP 8000\n", - " 2017-03-10\n", - " 2018-02-26\n", - " 353\n", + " a0176ceabc4bfc0a\n", + " Cisco Expressway X12.5\n", + " 2019-08-19\n", + " 2020-02-26\n", + " 191\n", + " NaN\n", + " \n", + " \n", + " fd31c2a2bbfcc4a9\n", + " Pro 8100/8110/8120 (Ricoh/Savin/Lanier/nashuat...\n", + " 2016-08-10\n", + " 2017-02-13\n", + " 187\n", + " NaN\n", " \n", " \n", " 5a22fab9376989ef\n", @@ -1016,13 +996,7 @@ " 2015-09-18\n", " 2016-03-21\n", " 185\n", - " \n", - " \n", - " 602f65f51a07adaf\n", - " Brocade Communications Systems, Inc. Brocade D...\n", - " 2015-03-25\n", - " 2016-03-21\n", - " 362\n", + " {CVE-2014-0739, CVE-2020-3181, CVE-2013-5542, ...\n", " \n", " \n", " 7f1129858dd504a3\n", @@ -1030,20 +1004,7 @@ " 2014-11-07\n", " 2014-12-22\n", " 45\n", - " \n", - " \n", - " e2f5592cc95676e7\n", - " Huawei FusionDirector 1.5.1.SPC1\n", - " 2020-10-23\n", - " 2020-10-23\n", - " 0\n", - " \n", - " \n", - " a606e94c8e0e3028\n", - " Samsung Galaxy Note 7 VPNCPP\n", - " 2016-10-17\n", - " 2016-11-14\n", - " 28\n", + " {CVE-2018-13374, CVE-2018-13376, CVE-2013-4604...\n", " \n", " \n", " 124272e23ec6ac09\n", @@ -1051,13 +1012,15 @@ " 2016-10-14\n", " 2016-11-14\n", " 31\n", + " NaN\n", " \n", " \n", - " a334142059d865a2\n", - " NPCT7xx TPM1.2 rev 116; Hardware version LAG01...\n", - " 2019-08-14\n", - " 2019-08-14\n", - " 0\n", + " a606e94c8e0e3028\n", + " Samsung Galaxy Note 7 VPNCPP\n", + " 2016-10-17\n", + " 2016-11-14\n", + " 28\n", + " NaN\n", " \n", " \n", " dc7ac9298e12f7ee\n", @@ -1065,20 +1028,7 @@ " 2019-01-18\n", " 2019-01-18\n", " 0\n", - " \n", - " \n", - " 66838f2e4bb6eccc\n", - " ST33TPHF20 TPM Firmware versions 74.08 (0x4A 0...\n", - " 2018-09-24\n", - " 2018-09-24\n", - " 0\n", - " \n", - " \n", - " eff64d1800f26807\n", - " NPCT7xx TPM 2.0 Hardware version LAG019, Firmw...\n", - " 2018-01-19\n", - " 2018-01-19\n", - " 0\n", + " NaN\n", " \n", " \n", " 3746512864b941d4\n", @@ -1086,6 +1036,7 @@ " 2017-09-25\n", " 2017-09-25\n", " 0\n", + " NaN\n", " \n", " \n", " 22ede463dbf1a105\n", @@ -1093,6 +1044,7 @@ " 2017-07-19\n", " 2017-07-19\n", " 0\n", + " NaN\n", " \n", " \n", " 4f953ae00a24eb85\n", @@ -1100,6 +1052,7 @@ " 2017-07-19\n", " 2017-07-19\n", " 0\n", + " NaN\n", " \n", " \n", " 0bf7a19b22163465\n", @@ -1107,6 +1060,7 @@ " 2016-12-13\n", " 2016-12-13\n", " 0\n", + " NaN\n", " \n", " \n", " a5898123ec124b34\n", @@ -1114,6 +1068,7 @@ " 2016-12-13\n", " 2016-12-13\n", " 0\n", + " NaN\n", " \n", " \n", " 4e7b5a210809acf9\n", @@ -1121,6 +1076,7 @@ " 2016-07-22\n", " 2016-07-22\n", " 0\n", + " NaN\n", " \n", " \n", " 158950ed4bc35274\n", @@ -1128,6 +1084,103 @@ " 2016-07-04\n", " 2016-07-04\n", " 0\n", + " NaN\n", + " \n", + " \n", + " eff64d1800f26807\n", + " NPCT7xx TPM 2.0 Hardware version LAG019, Firmw...\n", + " 2018-01-19\n", + " 2018-01-19\n", + " 0\n", + " NaN\n", + " \n", + " \n", + " 66838f2e4bb6eccc\n", + " ST33TPHF20 TPM Firmware versions 74.08 (0x4A 0...\n", + " 2018-09-24\n", + " 2018-09-24\n", + " 0\n", + " NaN\n", + " \n", + " \n", + " d4647f5217d84ba3\n", + " CELES-c002 Machine Readable Electronic Documen...\n", + " 2020-11-02\n", + " 2020-11-02\n", + " 0\n", + " NaN\n", + " \n", + " \n", + " a334142059d865a2\n", + " NPCT7xx TPM1.2 rev 116; Hardware version LAG01...\n", + " 2019-08-14\n", + " 2019-08-14\n", + " 0\n", + " NaN\n", + " \n", + " \n", + " e2f5592cc95676e7\n", + " Huawei FusionDirector 1.5.1.SPC1\n", + " 2020-10-23\n", + " 2020-10-23\n", + " 0\n", + " NaN\n", + " \n", + " \n", + " 23a85a7f9c07412f\n", + " Microcontrôleurs sécurisés ST33G1M2A et ST33G1...\n", + " 2017-02-16\n", + " 2017-02-16\n", + " 0\n", + " NaN\n", + " \n", + " \n", + " 17b5257b3755a07c\n", + " Plate-forme STSAFE-J, en configuration fermée,...\n", + " 2017-03-23\n", + " 2017-03-23\n", + " 0\n", + " NaN\n", + " \n", + " \n", + " e27937cf16c20f8f\n", + " ST33JM2M0 B02 including optional cryptographic...\n", + " 2017-09-05\n", + " 2017-09-05\n", + " 0\n", + " NaN\n", + " \n", + " \n", + " 10b17081dd7cad8f\n", + " ST33TPHF2E mode TPM 2.0 TPM Firmware versions ...\n", + " 2018-09-24\n", + " 2018-09-24\n", + " 0\n", + " NaN\n", + " \n", + " \n", + " 58ece75f7f2b5099\n", + " J-SIGN version 1.8.9\n", + " 2019-01-11\n", + " 2019-01-11\n", + " 0\n", + " NaN\n", + " \n", + " \n", + " 2731d8ddba404fad\n", + " JSAFE3_EPASS EAC (Rev. I)\n", + " 2019-04-09\n", + " 2019-04-09\n", + " 0\n", + " NaN\n", + " \n", + " \n", + " f34df0dd7011366e\n", + " JSAFE3_EPASS BAC (Rev. M)\n", + " 2019-04-09\n", + " 2019-04-09\n", + " 0\n", + " NaN\n", " \n", " \n", " bad93fb821395db2\n", @@ -1135,6 +1188,7 @@ " 2016-05-30\n", " 2016-05-30\n", " 0\n", + " NaN\n", " \n", " \n", "\n", @@ -1142,37 +1196,25 @@ ], "text/plain": [ " name \\\n", - "d4647f5217d84ba3 CELES-c002 Machine Readable Electronic Documen... \n", + "602f65f51a07adaf Brocade Communications Systems, Inc. Brocade D... \n", "a7120da6bf4874fa DigiSAFE Data Diode model 3282 version 2.2, mo... \n", - "3c24bbe7724dbfdd McAfee® Email Gateway (MEG) software v7.0.1, r... \n", "e2f3a1cdd592ab05 Cisco 800, 1900, 2900, 3900 Series Integrated ... \n", - "f34df0dd7011366e JSAFE3_EPASS BAC (Rev. M) \n", - "2731d8ddba404fad JSAFE3_EPASS EAC (Rev. I) \n", + "f410930a2a47d3d0 Avaya VSP 4000, VSP 7000 and VSP 8000 \n", "16bdbde359584f99 Xaica-α PLUS ePassport on MTCOS Pro 2.5 with S... \n", "0c7ef6c32cbdee47 Xaica-α PLUS ePassport on MTCOS Pro 2.5 with S... \n", - "58ece75f7f2b5099 J-SIGN version 1.8.9 \n", - "10b17081dd7cad8f ST33TPHF2E mode TPM 2.0 TPM Firmware versions ... \n", - "e27937cf16c20f8f ST33JM2M0 B02 including optional cryptographic... \n", - "17b5257b3755a07c Plate-forme STSAFE-J, en configuration fermée,... \n", - "23a85a7f9c07412f Microcontrôleurs sécurisés ST33G1M2A et ST33G1... \n", - "2748f920f4df8eaf IDeal Pass v2 - SAC/EAC JC ePassport 4.0.0 \n", - "fd31c2a2bbfcc4a9 Pro 8100/8110/8120 (Ricoh/Savin/Lanier/nashuat... \n", + "3c24bbe7724dbfdd McAfee® Email Gateway (MEG) software v7.0.1, r... \n", "9e0ec9db58b5c8ec RICOH MP C306Z J-1.01 \n", - "25fcafd838cecd84 bizhub C360 / bizhub C280 / bizhub C220 / bizh... \n", "5068c3b7fefae589 bizhub C652 / bizhub C652DS / bizhub C552 / bi... \n", - "a0176ceabc4bfc0a Cisco Expressway X12.5 \n", + "25fcafd838cecd84 bizhub C360 / bizhub C280 / bizhub C220 / bizh... \n", + "2748f920f4df8eaf IDeal Pass v2 - SAC/EAC JC ePassport 4.0.0 \n", "13e306eb69c8bf95 ALE Omniswitch 6250, 6350, and 6450 with the A... \n", - "f410930a2a47d3d0 Avaya VSP 4000, VSP 7000 and VSP 8000 \n", + "a0176ceabc4bfc0a Cisco Expressway X12.5 \n", + "fd31c2a2bbfcc4a9 Pro 8100/8110/8120 (Ricoh/Savin/Lanier/nashuat... \n", "5a22fab9376989ef Cisco Email Security Appliance v9.1 \n", - "602f65f51a07adaf Brocade Communications Systems, Inc. Brocade D... \n", "7f1129858dd504a3 FortiSwitch blade appliances with FortiTRNG ru... \n", - "e2f5592cc95676e7 Huawei FusionDirector 1.5.1.SPC1 \n", - "a606e94c8e0e3028 Samsung Galaxy Note 7 VPNCPP \n", "124272e23ec6ac09 Samsung Galaxy Note 7 MDFPP \n", - "a334142059d865a2 NPCT7xx TPM1.2 rev 116; Hardware version LAG01... \n", + "a606e94c8e0e3028 Samsung Galaxy Note 7 VPNCPP \n", "dc7ac9298e12f7ee NPCT7xx TPM2.0 rev1.38 Hardware version LAG019... \n", - "66838f2e4bb6eccc ST33TPHF20 TPM Firmware versions 74.08 (0x4A 0... \n", - "eff64d1800f26807 NPCT7xx TPM 2.0 Hardware version LAG019, Firmw... \n", "3746512864b941d4 NPCT6xx TPM 2.0 Hardware version FB5C85D and F... \n", "22ede463dbf1a105 ST33TPHF20I2CTPM Firmware version 74.05 \n", "4f953ae00a24eb85 ST33TPHF2EI2C mode TPM 2.0TPM Firmware version... \n", @@ -1180,57 +1222,110 @@ "a5898123ec124b34 ST33TPHF2ESPI mode TPM 2.0 TPM Firmware versio... \n", "4e7b5a210809acf9 TPM 2.0 Hardware version FB5C85D, Firmware ver... \n", "158950ed4bc35274 ST33TPHF2ESPI mode TPM 2.0 TPM Firmware versio... \n", + "eff64d1800f26807 NPCT7xx TPM 2.0 Hardware version LAG019, Firmw... \n", + "66838f2e4bb6eccc ST33TPHF20 TPM Firmware versions 74.08 (0x4A 0... \n", + "d4647f5217d84ba3 CELES-c002 Machine Readable Electronic Documen... \n", + "a334142059d865a2 NPCT7xx TPM1.2 rev 116; Hardware version LAG01... \n", + "e2f5592cc95676e7 Huawei FusionDirector 1.5.1.SPC1 \n", + "23a85a7f9c07412f Microcontrôleurs sécurisés ST33G1M2A et ST33G1... \n", + "17b5257b3755a07c Plate-forme STSAFE-J, en configuration fermée,... \n", + "e27937cf16c20f8f ST33JM2M0 B02 including optional cryptographic... \n", + "10b17081dd7cad8f ST33TPHF2E mode TPM 2.0 TPM Firmware versions ... \n", + "58ece75f7f2b5099 J-SIGN version 1.8.9 \n", + "2731d8ddba404fad JSAFE3_EPASS EAC (Rev. I) \n", + "f34df0dd7011366e JSAFE3_EPASS BAC (Rev. M) \n", "bad93fb821395db2 ST33TPHF20SPI \n", "\n", - " not_valid_before not_valid_after validity_n_days \n", - "d4647f5217d84ba3 2020-11-02 2020-11-02 0 \n", - "a7120da6bf4874fa 2019-06-17 2020-06-10 359 \n", - "3c24bbe7724dbfdd 2012-10-16 2013-08-21 309 \n", - "e2f3a1cdd592ab05 2011-07-31 2012-07-20 355 \n", - "f34df0dd7011366e 2019-04-09 2019-04-09 0 \n", - "2731d8ddba404fad 2019-04-09 2019-04-09 0 \n", - "16bdbde359584f99 2019-01-25 2019-12-03 312 \n", - "0c7ef6c32cbdee47 2019-01-25 2019-12-03 312 \n", - "58ece75f7f2b5099 2019-01-11 2019-01-11 0 \n", - "10b17081dd7cad8f 2018-09-24 2018-09-24 0 \n", - "e27937cf16c20f8f 2017-09-05 2017-09-05 0 \n", - "17b5257b3755a07c 2017-03-23 2017-03-23 0 \n", - "23a85a7f9c07412f 2017-02-16 2017-02-16 0 \n", - "2748f920f4df8eaf 2013-12-20 2014-09-09 263 \n", - "fd31c2a2bbfcc4a9 2016-08-10 2017-02-13 187 \n", - "9e0ec9db58b5c8ec 2016-04-25 2017-02-13 294 \n", - "25fcafd838cecd84 2010-06-29 2011-04-15 290 \n", - "5068c3b7fefae589 2010-06-29 2011-04-15 290 \n", - "a0176ceabc4bfc0a 2019-08-19 2020-02-26 191 \n", - "13e306eb69c8bf95 2017-10-17 2018-06-27 253 \n", - "f410930a2a47d3d0 2017-03-10 2018-02-26 353 \n", - "5a22fab9376989ef 2015-09-18 2016-03-21 185 \n", - "602f65f51a07adaf 2015-03-25 2016-03-21 362 \n", - "7f1129858dd504a3 2014-11-07 2014-12-22 45 \n", - "e2f5592cc95676e7 2020-10-23 2020-10-23 0 \n", - "a606e94c8e0e3028 2016-10-17 2016-11-14 28 \n", - "124272e23ec6ac09 2016-10-14 2016-11-14 31 \n", - "a334142059d865a2 2019-08-14 2019-08-14 0 \n", - "dc7ac9298e12f7ee 2019-01-18 2019-01-18 0 \n", - "66838f2e4bb6eccc 2018-09-24 2018-09-24 0 \n", - "eff64d1800f26807 2018-01-19 2018-01-19 0 \n", - "3746512864b941d4 2017-09-25 2017-09-25 0 \n", - "22ede463dbf1a105 2017-07-19 2017-07-19 0 \n", - "4f953ae00a24eb85 2017-07-19 2017-07-19 0 \n", - "0bf7a19b22163465 2016-12-13 2016-12-13 0 \n", - "a5898123ec124b34 2016-12-13 2016-12-13 0 \n", - "4e7b5a210809acf9 2016-07-22 2016-07-22 0 \n", - "158950ed4bc35274 2016-07-04 2016-07-04 0 \n", - "bad93fb821395db2 2016-05-30 2016-05-30 0 " + " not_valid_before not_valid_after validity_n_days \\\n", + "602f65f51a07adaf 2015-03-25 2016-03-21 362 \n", + "a7120da6bf4874fa 2019-06-17 2020-06-10 359 \n", + "e2f3a1cdd592ab05 2011-07-31 2012-07-20 355 \n", + "f410930a2a47d3d0 2017-03-10 2018-02-26 353 \n", + "16bdbde359584f99 2019-01-25 2019-12-03 312 \n", + "0c7ef6c32cbdee47 2019-01-25 2019-12-03 312 \n", + "3c24bbe7724dbfdd 2012-10-16 2013-08-21 309 \n", + "9e0ec9db58b5c8ec 2016-04-25 2017-02-13 294 \n", + "5068c3b7fefae589 2010-06-29 2011-04-15 290 \n", + "25fcafd838cecd84 2010-06-29 2011-04-15 290 \n", + "2748f920f4df8eaf 2013-12-20 2014-09-09 263 \n", + "13e306eb69c8bf95 2017-10-17 2018-06-27 253 \n", + "a0176ceabc4bfc0a 2019-08-19 2020-02-26 191 \n", + "fd31c2a2bbfcc4a9 2016-08-10 2017-02-13 187 \n", + "5a22fab9376989ef 2015-09-18 2016-03-21 185 \n", + "7f1129858dd504a3 2014-11-07 2014-12-22 45 \n", + "124272e23ec6ac09 2016-10-14 2016-11-14 31 \n", + "a606e94c8e0e3028 2016-10-17 2016-11-14 28 \n", + "dc7ac9298e12f7ee 2019-01-18 2019-01-18 0 \n", + "3746512864b941d4 2017-09-25 2017-09-25 0 \n", + "22ede463dbf1a105 2017-07-19 2017-07-19 0 \n", + "4f953ae00a24eb85 2017-07-19 2017-07-19 0 \n", + "0bf7a19b22163465 2016-12-13 2016-12-13 0 \n", + "a5898123ec124b34 2016-12-13 2016-12-13 0 \n", + "4e7b5a210809acf9 2016-07-22 2016-07-22 0 \n", + "158950ed4bc35274 2016-07-04 2016-07-04 0 \n", + "eff64d1800f26807 2018-01-19 2018-01-19 0 \n", + "66838f2e4bb6eccc 2018-09-24 2018-09-24 0 \n", + "d4647f5217d84ba3 2020-11-02 2020-11-02 0 \n", + "a334142059d865a2 2019-08-14 2019-08-14 0 \n", + "e2f5592cc95676e7 2020-10-23 2020-10-23 0 \n", + "23a85a7f9c07412f 2017-02-16 2017-02-16 0 \n", + "17b5257b3755a07c 2017-03-23 2017-03-23 0 \n", + "e27937cf16c20f8f 2017-09-05 2017-09-05 0 \n", + "10b17081dd7cad8f 2018-09-24 2018-09-24 0 \n", + "58ece75f7f2b5099 2019-01-11 2019-01-11 0 \n", + "2731d8ddba404fad 2019-04-09 2019-04-09 0 \n", + "f34df0dd7011366e 2019-04-09 2019-04-09 0 \n", + "bad93fb821395db2 2016-05-30 2016-05-30 0 \n", + "\n", + " related_cves \n", + "602f65f51a07adaf NaN \n", + "a7120da6bf4874fa NaN \n", + "e2f3a1cdd592ab05 NaN \n", + "f410930a2a47d3d0 NaN \n", + "16bdbde359584f99 NaN \n", + "0c7ef6c32cbdee47 NaN \n", + "3c24bbe7724dbfdd {CVE-2016-8005, CVE-2012-4581, CVE-2012-4585, ... \n", + "9e0ec9db58b5c8ec NaN \n", + "5068c3b7fefae589 NaN \n", + "25fcafd838cecd84 NaN \n", + "2748f920f4df8eaf NaN \n", + "13e306eb69c8bf95 NaN \n", + "a0176ceabc4bfc0a NaN \n", + "fd31c2a2bbfcc4a9 NaN \n", + "5a22fab9376989ef {CVE-2014-0739, CVE-2020-3181, CVE-2013-5542, ... \n", + "7f1129858dd504a3 {CVE-2018-13374, CVE-2018-13376, CVE-2013-4604... \n", + "124272e23ec6ac09 NaN \n", + "a606e94c8e0e3028 NaN \n", + "dc7ac9298e12f7ee NaN \n", + "3746512864b941d4 NaN \n", + "22ede463dbf1a105 NaN \n", + "4f953ae00a24eb85 NaN \n", + "0bf7a19b22163465 NaN \n", + "a5898123ec124b34 NaN \n", + "4e7b5a210809acf9 NaN \n", + "158950ed4bc35274 NaN \n", + "eff64d1800f26807 NaN \n", + "66838f2e4bb6eccc NaN \n", + "d4647f5217d84ba3 NaN \n", + "a334142059d865a2 NaN \n", + "e2f5592cc95676e7 NaN \n", + "23a85a7f9c07412f NaN \n", + "17b5257b3755a07c NaN \n", + "e27937cf16c20f8f NaN \n", + "10b17081dd7cad8f NaN \n", + "58ece75f7f2b5099 NaN \n", + "2731d8ddba404fad NaN \n", + "f34df0dd7011366e NaN \n", + "bad93fb821395db2 NaN " ] }, - "execution_count": 158, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "df_w_validity_dates.loc[:, [\"name\", \"not_valid_before\", \"not_valid_after\", \"validity_n_days\"]]" + "df_w_validity_dates.loc[:, [\"name\", \"not_valid_before\", \"not_valid_after\", \"validity_n_days\", \"related_cves\"]].sort_values(by=\"validity_n_days\", ascending=False)" ] } ], -- cgit v1.3.1 From cee43ed6378f59a990450a50003b9c1c7aae9c2e Mon Sep 17 00:00:00 2001 From: GeogeFI Date: Thu, 26 May 2022 21:07:52 +0200 Subject: docs: Documentation for DependecyFinder and DependencyVulnerabilityFinder models --- sec_certs/model/dependency_finder.py | 25 ++++++++++++++++++++++ sec_certs/model/dependency_vulnerability_finder.py | 19 ++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/sec_certs/model/dependency_finder.py b/sec_certs/model/dependency_finder.py index afc4db59..d326fc2c 100644 --- a/sec_certs/model/dependency_finder.py +++ b/sec_certs/model/dependency_finder.py @@ -11,6 +11,12 @@ ReferenceLookupFunc = Callable[[Certificate], Set[str]] class DependencyFinder: + """ + The class assigns references of other certificate instances for each instance. + Adheres to sklearn BaseEstimator interface. + The fit method is called on a dictionary of certificates, builds a hashmap of references, and assigns references for each certificate in the dictionary. + """ + def __init__(self): self.dependencies: Dependencies = {} @@ -96,6 +102,13 @@ class DependencyFinder: return referenced_by_indirect.get(cert, None) def fit(self, certificates: Certificates, id_func: IDLookupFunc, ref_lookup_func: ReferenceLookupFunc) -> None: + """ + Builds a list of references and assigns references for each certificate instance. + @param certificates: dictionary of certificates with hashes as key + @param id_func: lookup function for cert id + @param ref_lookup_func: lookup for references + @return: None + """ referenced_by_direct, referenced_by_indirect = DependencyFinder._build_cert_references( certificates, id_func, ref_lookup_func ) @@ -140,6 +153,12 @@ class DependencyFinder: return set(res) if res else None def predict_single_cert(self, dgst: str) -> References: + """ + Method returns references object for specified certificate digest + + @param dgst: certificate digest + @return: References object + """ return References( self._get_directly_referenced_by(dgst), self._get_indirectly_referenced_by(dgst), @@ -148,6 +167,12 @@ class DependencyFinder: ) def predict(self, dgst_list: List[str]) -> Dict[str, References]: + """ + Function returns references for a list of certificate digests + + @param dgst_list: List of certificate hashes + @return: Dict with certificate hash and References object. + """ cert_references = {} for dgst in dgst_list: diff --git a/sec_certs/model/dependency_vulnerability_finder.py b/sec_certs/model/dependency_vulnerability_finder.py index 2f66f30c..580e1230 100644 --- a/sec_certs/model/dependency_vulnerability_finder.py +++ b/sec_certs/model/dependency_vulnerability_finder.py @@ -23,6 +23,10 @@ Vulnerabilities = Dict[str, Dict[str, Optional[Set[str]]]] class DependencyVulnerabilityFinder: + """ + The class assigns vulnerabilities to each certificate instance caused by dependencies among certificate instances. + Adheres to sklearn BaseEstimator interface. + """ def __init__(self): self.vulnerabilities: Vulnerabilities = {} self.certificates: Certificates = {} @@ -77,6 +81,11 @@ class DependencyVulnerabilityFinder: return vulnerabilities if vulnerabilities else None def fit(self, certificates: Certificates) -> Vulnerabilities: + """ + Method assigns each certificate vulnerabilities caused by dependencies among certificates + @param certificates: Dictionary of certificates with digests + @return: Dictionary of vulnerabilities of certificate instances + """ self._overwrite_previous_state(certificates) cert_id_occurrences = self._get_dataset_cert_ids_occurrences() @@ -106,6 +115,11 @@ class DependencyVulnerabilityFinder: return self.vulnerabilities def predict_single_cert(self, dgst: str) -> DependencyCVE: + """ + Method returns vulnerabilities for certificate digest + @param dgst: Digest of certificate + @return: DependencyCVE object of certificate + """ if not self.vulnerabilities.get(dgst): return DependencyCVE(direct_dependency_cves=None, indirect_dependency_cves=None) @@ -115,6 +129,11 @@ class DependencyVulnerabilityFinder: ) def predict(self, dgst_list: List[str]) -> Dict[str, DependencyCVE]: + """ + Method returns vulnerabilities for a list of certificate digests + @param dgst_list: list of certificate digests + @return: Dictionary of DependencyCVE objects for specified certificate digests + """ cert_vulnerabilities = {} for dgst in dgst_list: -- cgit v1.3.1 From fc318de075d06e44a9dd07b3c8fbc01059270b42 Mon Sep 17 00:00:00 2001 From: GeogeFI Date: Thu, 26 May 2022 21:10:37 +0200 Subject: format: Formatting with black --- sec_certs/model/dependency_vulnerability_finder.py | 1 + 1 file changed, 1 insertion(+) diff --git a/sec_certs/model/dependency_vulnerability_finder.py b/sec_certs/model/dependency_vulnerability_finder.py index 580e1230..27877b84 100644 --- a/sec_certs/model/dependency_vulnerability_finder.py +++ b/sec_certs/model/dependency_vulnerability_finder.py @@ -27,6 +27,7 @@ class DependencyVulnerabilityFinder: The class assigns vulnerabilities to each certificate instance caused by dependencies among certificate instances. Adheres to sklearn BaseEstimator interface. """ + def __init__(self): self.vulnerabilities: Vulnerabilities = {} self.certificates: Certificates = {} -- cgit v1.3.1 From 2494179cd89da581075ed033cb19e48b6619238c Mon Sep 17 00:00:00 2001 From: GeogeFI Date: Thu, 26 May 2022 21:26:36 +0200 Subject: chore: Altered docstring with proper naming --- sec_certs/model/dependency_finder.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sec_certs/model/dependency_finder.py b/sec_certs/model/dependency_finder.py index d326fc2c..f04db9be 100644 --- a/sec_certs/model/dependency_finder.py +++ b/sec_certs/model/dependency_finder.py @@ -14,7 +14,7 @@ class DependencyFinder: """ The class assigns references of other certificate instances for each instance. Adheres to sklearn BaseEstimator interface. - The fit method is called on a dictionary of certificates, builds a hashmap of references, and assigns references for each certificate in the dictionary. + The fit is called on a dictionary of certificates, builds a hashmap of references, and assigns references for each certificate in the dictionary. """ def __init__(self): @@ -168,7 +168,7 @@ class DependencyFinder: def predict(self, dgst_list: List[str]) -> Dict[str, References]: """ - Function returns references for a list of certificate digests + Method returns references for a list of certificate digests @param dgst_list: List of certificate hashes @return: Dict with certificate hash and References object. -- cgit v1.3.1 From 3efa758e95c9279c52047897a8f0964b3cea20e0 Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Fri, 27 May 2022 07:29:00 +0200 Subject: chore: fix model doc style --- sec_certs/model/dependency_finder.py | 17 +++++++++-------- sec_certs/model/dependency_vulnerability_finder.py | 15 +++++++++------ 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/sec_certs/model/dependency_finder.py b/sec_certs/model/dependency_finder.py index f04db9be..8410a9c5 100644 --- a/sec_certs/model/dependency_finder.py +++ b/sec_certs/model/dependency_finder.py @@ -104,10 +104,11 @@ class DependencyFinder: def fit(self, certificates: Certificates, id_func: IDLookupFunc, ref_lookup_func: ReferenceLookupFunc) -> None: """ Builds a list of references and assigns references for each certificate instance. - @param certificates: dictionary of certificates with hashes as key - @param id_func: lookup function for cert id - @param ref_lookup_func: lookup for references - @return: None + + :param Certificates certificates: dictionary of certificates with hashes as key + :param IDLookupFunc id_func: lookup function for cert id + :param ReferenceLookupFunc ref_lookup_func: lookup for references + :return None: None """ referenced_by_direct, referenced_by_indirect = DependencyFinder._build_cert_references( certificates, id_func, ref_lookup_func @@ -156,8 +157,8 @@ class DependencyFinder: """ Method returns references object for specified certificate digest - @param dgst: certificate digest - @return: References object + :param str dgst: certificate digest + :return References: References object """ return References( self._get_directly_referenced_by(dgst), @@ -170,8 +171,8 @@ class DependencyFinder: """ Method returns references for a list of certificate digests - @param dgst_list: List of certificate hashes - @return: Dict with certificate hash and References object. + :param List[str] dgst_list: List of certificate hashes + :return Dict[str, References]: Dict with certificate hash and References object. """ cert_references = {} diff --git a/sec_certs/model/dependency_vulnerability_finder.py b/sec_certs/model/dependency_vulnerability_finder.py index 27877b84..dd25774d 100644 --- a/sec_certs/model/dependency_vulnerability_finder.py +++ b/sec_certs/model/dependency_vulnerability_finder.py @@ -84,8 +84,9 @@ class DependencyVulnerabilityFinder: def fit(self, certificates: Certificates) -> Vulnerabilities: """ Method assigns each certificate vulnerabilities caused by dependencies among certificates - @param certificates: Dictionary of certificates with digests - @return: Dictionary of vulnerabilities of certificate instances + + :param Certificates certificates: Dictionary of certificates with digests + :return Vulnerabilities: Dictionary of vulnerabilities of certificate instances """ self._overwrite_previous_state(certificates) @@ -118,8 +119,9 @@ class DependencyVulnerabilityFinder: def predict_single_cert(self, dgst: str) -> DependencyCVE: """ Method returns vulnerabilities for certificate digest - @param dgst: Digest of certificate - @return: DependencyCVE object of certificate + + :param str dgst: Digest of certificate + :return DependencyCVE: DependencyCVE object of certificate """ if not self.vulnerabilities.get(dgst): return DependencyCVE(direct_dependency_cves=None, indirect_dependency_cves=None) @@ -132,8 +134,9 @@ class DependencyVulnerabilityFinder: def predict(self, dgst_list: List[str]) -> Dict[str, DependencyCVE]: """ Method returns vulnerabilities for a list of certificate digests - @param dgst_list: list of certificate digests - @return: Dictionary of DependencyCVE objects for specified certificate digests + + :param List[str] dgst_list: list of certificate digests + :return Dict[str, DependencyCVE]: Dictionary of DependencyCVE objects for specified certificate digests """ cert_vulnerabilities = {} -- cgit v1.3.1 From 4f63702ac1141c6ea289f0dddf39a6ecba10aefd Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Fri, 27 May 2022 07:58:27 +0200 Subject: Docs: comment on cc notebook --- docs/index.md | 2 +- docs/tutorial.md | 3 --- notebooks/examples/common_criteria.ipynb | 35 +++++++++++++++++++++++++------- 3 files changed, 29 insertions(+), 11 deletions(-) delete mode 100644 docs/tutorial.md diff --git a/docs/index.md b/docs/index.md index 61c39ec5..4760ed1c 100644 --- a/docs/index.md +++ b/docs/index.md @@ -2,7 +2,7 @@ Welcome to the technical documentation of *sec-certs* tool for the data analysis of products certified with Common Criteria or FIPS 140 frameworks. If you're looking for general description of the tool, its use cases and capabilites, we refer you to [sec-certs homepage](https://seccerts.org/). If you are looking for more advanced knowledge, e.g. how to mine your own data, how to extend the tool, and so forth, this is the right place. -There are three main parts of this documentation. *User's guide* describes high-level use of our tool. Driven by this knowledge, you can progress to *Notebook examples* that showcase most of the API that we use in the form of Jupyter notebooks. The documentation currently does not have all modules documented with `autodoc`, so for the API reference, you must directly inspect the [sec_certs](https://github.com/crocs-muni/sec-certs/tree/main/sec_certs) module. If you want, you can run the notebooks as they are stored in the [project repository](https://github.com/crocs-muni/sec-certs/tree/main/notebooks). If you are interested in contributing to our project or in other aspects of our development, you can consult the relevant *GitHub artifacts* +There are three main parts of this documentation. *User's guide* describes high-level use of our tool. Driven by this knowledge, you can progress to *Notebook examples* that showcase some of the API that we use in the form of Jupyter notebooks. The documentation also contains some of the modules documented with `autodoc`, see *API reference*. Still, some dark corners of our codebase are not documented. To inspect the code directly, see the [sec_certs](https://github.com/crocs-muni/sec-certs/tree/main/sec_certs) module. If you want, you can run the notebooks as they are stored in the [project repository](https://github.com/crocs-muni/sec-certs/tree/main/notebooks). If you are interested in contributing to our project or in other aspects of our development, you can consult the relevant *GitHub artifacts* ```{button-ref} quickstart :align: center diff --git a/docs/tutorial.md b/docs/tutorial.md deleted file mode 100644 index 47e78870..00000000 --- a/docs/tutorial.md +++ /dev/null @@ -1,3 +0,0 @@ -# Tutorial - -TBA \ No newline at end of file diff --git a/notebooks/examples/common_criteria.ipynb b/notebooks/examples/common_criteria.ipynb index 83a56379..677dcd28 100644 --- a/notebooks/examples/common_criteria.ipynb +++ b/notebooks/examples/common_criteria.ipynb @@ -6,7 +6,9 @@ "source": [ "# Common Criteria example\n", "\n", - "This notebook illustrates basic functionality with the `CCDataset` class that holds Common Criteria dataset and of its sample `CommonCriteriaCert`" + "This notebook illustrates basic functionality with the `CCDataset` class that holds Common Criteria dataset and of its sample `CommonCriteriaCert`.\n", + "\n", + "Note that there exists a front end to this functionality at [seccerts.org/cc](https://seccerts.org/cc/). Before reinventing the wheel, it's good idea to check our web. Maybe you don't even need to run the code, but just use our web instead. " ] }, { @@ -24,7 +26,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Get fresh dataset snapshot from mirror" + "## Get fresh dataset snapshot from mirror\n", + "\n", + "There's no need to do full processing of the dataset by yourself, unless you modified `sec-certs` code. You can simply fetch the processed version from the web. \n", + "\n", + "Note, however, that you won't be able to access the `pdf` and `txt` files of the certificates. You can only get the data that we extracted from it. \n", + "\n", + "Running the whole pipeline can get you the `pdf` and `txt` data. You can see how to do that in the last cell of this notebook." ] }, { @@ -41,7 +49,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Do some basic dataset serialization" + "## Do some basic dataset serialization\n", + "\n", + "The dataset can be saved/loaded into/from `json`. Also, the dataset can be converted into a [pandas](https://pandas.pydata.org/) DataFrame. " ] }, { @@ -58,7 +68,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -70,7 +80,11 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Simple dataset manipulation" + "## Simple dataset manipulation\n", + "\n", + "The certificates of the dataset are stored in a dictionary that maps certificate's primary key (we call it `dgst`) to the `CommonCriteriaCert` object. The primary key of the certificate is simply a hash of the attributes that make the certificate unique.\n", + "\n", + "You can iterate over the dataset which is handy when selecting some subset of certificates." ] }, { @@ -112,7 +126,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Dissect single certificate" + "## Dissect single certificate\n", + "\n", + "The `CommonCriteriaCert` is basically a data structure that holds all the data we keep about a certificate. Other classes (`CCDataset` or `model` package members) are used to transform and process the certificates. You can see all its attributes at [API docs](https://seccerts.org/docs/api/sample.html)." ] }, { @@ -134,6 +150,7 @@ "metadata": {}, "outputs": [], "source": [ + "# Select all certificates from a dataset for which we detect at least one vulnerability.\n", "vulnerable_certs = [x for x in dset if x.heuristics.related_cves]" ] }, @@ -141,7 +158,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Serialize single certificate" + "## Serialize single certificate\n", + "\n", + "Again, a certificate can be (de)serialized into/from json. It's also possible to construct pandas `Series` from a certificate as shown below" ] }, { @@ -185,6 +204,8 @@ "source": [ "## Create new dataset and fully process it\n", "\n", + "The following piece of code roughly corresponds to `$ cc-certs all` CLI command -- it fully processes the CC pipeline. This will create a folder in current working directory where the outputs will be stored. \n", + "\n", "*Warning*: It's not good idea to run this from notebook. It may take several hours to finnish. We recommend using `from_web_latest()` or turning this into a Python script." ] }, -- cgit v1.3.1 From 1de0b977015e625db30a98f22cac4f098fbb404c Mon Sep 17 00:00:00 2001 From: Adam Janovsky Date: Fri, 27 May 2022 07:59:34 +0200 Subject: docs conf switch ntb branch to main --- docs/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/conf.py b/docs/conf.py index fb66db5e..d1a81b2f 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -65,7 +65,7 @@ html_favicon = "_static/logo_badge.svg" html_theme_options = { "repository_url": "https://github.com/crocs-muni/sec-certs", - "repository_branch": "issue/195-Docs", + "repository_branch": "main", "launch_buttons": {"binderhub_url": "https://mybinder.org"}, "use_fullscreen_button": False, } -- cgit v1.3.1