{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Unit 10: Solutions to Analysing NMR Data from Start to Finish \n", "$$\\require{mhchem}$$\n", " \n", "\"Creative\n", "\n", "Author: Dr James Cumby \n", "Email: james.cumby@ed.ac.uk" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "## Overview\n", "\n", "In this Unit, we will focus on handling real experimental results using Python, from the initial stage of importing data right through to fitting models and plotting the results.\n", "While you could achieve this manually using Origin or Excel, hopefully you'll see that writing code makes the analysis easier, particularly when you have lots of data!\n", "
\n", "\n", "Note: this session does not intend to teach new concepts, but may inadvertently introduce different ways of achieving the same results. Please ask me/a demonstrator if you unsure.\n", "
" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Learning Objectives\n", "\n", "This unit covers the learning outcomes of the entire course:\n", " - Perform numerical operations such as vector algebra and calculate simple statistics on data sets.\n", " - Write readable, well-documented and modular code.\n", " - Break a problem into logical steps, and use loops and decision operations to solve tasks.\n", " - Import and clean experimental data, and choose the appropriate variable types to hold information.\n", " - Fit models to numerical data, and plot the results in a number of different formats.\n", "\n", "\n", "### Table of Contents\n", "1. [The Problem](#problem) \n", "2. [Reading Data](#read)\n", "3. [NMR data exploration](#explore)\n", "4. [Peak hunting](#peak)\n", "5. [Analysing Results](#analysis)\n", "\n", "\n", "### Link to documentation:\n", "\n", "- Documentation for `scipy.signal.find_peaks` can be found [here](https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.find_peaks.html)\n", "- An overview of plotting with Pandas can be found [here](https://pandas.pydata.org/docs/user_guide/visualization.html)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1. The Problem\n", "\n", "> Do you get more peaks in the 1H NMR spectrum if you have an odd number of heteroatoms compared with an even number?\n", "\n", "The information available is a CSV file containing the number of heteroatoms and an identifier for the molecules, and a folder of NMR data with the matching identifiers. You do not know the chemical formulae." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Surveying the class\n", "\"isolated\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Tasks\n", "\n", "You will work in pairs or small groups to try and answer this question, with help and guidance from academic demonstrators. Don't worry if you can't immediately solve the problem - try out a few ideas, and ask for help when you're ready!\n", "\n", "If you get stuck don't panic - you will be given hints throughout the workshop, and a model answer will be made available after the session." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "Task 1.1 Thinking about the problem\n", "\n", "In small groups, discuss the following:\n", "- the chemistry behind the problem;\n", "- what steps are required to solve the problem.\n", "\n", "As you discuss your ideas, add steps to the mentimeter:\n", "
" ] }, { "cell_type": "markdown", "metadata": { "scrolled": false }, "source": [ "\"isolated\"" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "## Gather some ideas:\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
Click here to see solution to Task. \n", " \n", "Some ideas:\n", "- Collect NMR data\n", "- Collect information on hetero atoms\n", "- most abundant isotopes of heteroatoms\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "## 2. Reading Data\n", "\n", "\n", "
\n", "Data: \n", "\n", "You will find all the data you need to answer the question in the directory data. The summary file tells you about the hetero atom counts, the weights file about the molecular weights. In data/NMR_data you find many files with different spectra. \n", "
\n", "\n", "### Task 2\n", "\n", "
\n", "Getting started with the data\n", " \n", "1. Import the NMR_summary.csv file \n", "2. Work out how to read a single NMR spectrum from a file \n", "3. Write a function read_NMR_datathat can read in all NMR files \n", "
\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### 2.1 - Import summary file\n", "First, we need to import the summary data file; here we'll use Pandas.\n", "" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "head: data_sources/NMR_summary.csv: No such file or directory\r\n" ] } ], "source": [ "!head data_sources/NMR_summary.csv\n" ] }, { "cell_type": "code", "execution_count": 4, "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", "
Molecule_IDheteroatom_count
010
122
231
341
452
\n", "
" ], "text/plain": [ " Molecule_ID heteroatom_count\n", "0 1 0\n", "1 2 2\n", "2 3 1\n", "3 4 1\n", "4 5 2" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "summary = pd.read_csv('data/NMR_summary.csv', sep=';')\n", "summary.head()\n" ] }, { "cell_type": "code", "execution_count": 5, "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", "
heteroatom_count
Molecule_ID
10
22
31
41
52
\n", "
" ], "text/plain": [ " heteroatom_count\n", "Molecule_ID \n", "1 0\n", "2 2\n", "3 1\n", "4 1\n", "5 2" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "summary = summary.set_index('Molecule_ID')\n", "summary.head()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### 2.2 - Read in NMR data file\n", "First, we need to work out how to read one file\n", "" ] }, { "cell_type": "code", "execution_count": 6, "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", "
abc
013.796019-0.0506160.263138
113.795790-0.0575110.248825
213.795560-0.0472040.235817
313.795331-0.0303700.238590
413.795102-0.0238730.254259
\n", "
" ], "text/plain": [ " a b c\n", "0 13.796019 -0.050616 0.263138\n", "1 13.795790 -0.057511 0.248825\n", "2 13.795560 -0.047204 0.235817\n", "3 13.795331 -0.030370 0.238590\n", "4 13.795102 -0.023873 0.254259" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "NMR = pd.read_csv('data/NMR_data/1.txt', sep='\\t', names=['a','b','c'])\n", "NMR.head()\n" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "NMR.plot(figsize=(10,6))\n" ] }, { "cell_type": "code", "execution_count": 7, "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", "
shiftintensityderivative
013.796019-0.0506160.263138
113.795790-0.0575110.248825
213.795560-0.0472040.235817
313.795331-0.0303700.238590
413.795102-0.0238730.254259
\n", "
" ], "text/plain": [ " shift intensity derivative\n", "0 13.796019 -0.050616 0.263138\n", "1 13.795790 -0.057511 0.248825\n", "2 13.795560 -0.047204 0.235817\n", "3 13.795331 -0.030370 0.238590\n", "4 13.795102 -0.023873 0.254259" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "NMR = pd.read_csv('data/NMR_data/1.txt', sep='\\t', names=['shift','intensity','derivative'])\n", "NMR.head()\n" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAh8AAAGwCAYAAAAJ/wd3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAxJ0lEQVR4nO3dfXRU1b3/8c+QkCGBJDxIZhIJENsgCIgUbGq0Bq+QXqS0Fq9PIGKp/qDgQ+RWFNNbB60TzS0YNUob2oVYpbpaQW2tSnwgqFw1AqkIFuWSQgTioDck4cEEkvP7QzMwJIRMMrNPMnm/1jprzZxz5sz3kDDzyT57n+2wLMsSAACAIT3sLgAAAHQvhA8AAGAU4QMAABhF+AAAAEYRPgAAgFGEDwAAYBThAwAAGBVtdwEna2xs1N69exUfHy+Hw2F3OQAAoA0sy1Jtba1SUlLUo0frbRudLnzs3btXqampdpcBAADaoaKiQoMGDWp1n04XPuLj4yV9XXxCQoLN1QAAgLaoqalRamqq/3u8NZ0ufDRdaklISCB8AADQxbSlywQdTgEAgFGEDwAAYBThAwAAGNXp+nwAALqXhoYGHT161O4y0AY9e/ZUVFRUh49D+AAA2MKyLFVWVurAgQN2l4Ig9O3bV263u0P34iJ8AABs0RQ8kpKSFBcXx40lOznLsnT48GH5fD5JUnJycruPRfgAABjX0NDgDx4DBgywuxy0UWxsrCTJ5/MpKSmp3Zdg6HAKADCuqY9HXFyczZUgWE0/s4700yF8AABsw6WWricUPzPCBwAAMIrwAQAAjCJ8AAAQhAkTJignJ8fuMlq1bt06ORyOTjuMmfARYY7UN9hdAgBEtNWrV+u+++5r077/+te/5HA4VFZWFt6iTpKZmal9+/YpMTFRkvTEE0+ob9++RmtoDeEjgrz4j70a8atX9MQ75XaXAgARq3///m2aNt5OMTExHb4RWDgRPiLIrX/aLEny/HWbzZUAQPAsy9Lh+mO2LJZltbnOEy+7DB06VF6vV7Nnz1Z8fLwGDx6soqIi/75paWmSpLFjx8rhcGjChAn+bStWrNCIESPUq1cvDR8+XI8//rh/W1OLyerVq3XJJZcoLi5OY8aM0f/8z//499m1a5emTp2qfv36qXfv3ho5cqT+/ve/Swq87LJu3Tr99Kc/VXV1tRwOhxwOhzwej+69916NHj262fmNGzdOv/rVr9r879Ee3GQMANApHDnaoHN+9aot773t3h8oLqZ9X4lLlizRfffdp7vvvlt/+ctf9POf/1wXX3yxhg8frvfff1/f/e539dprr2nkyJGKiYmRJC1fvlz33HOPCgsLNXbsWG3evFk33XSTevfurVmzZvmPnZubq9/85jdKT09Xbm6urr32Wu3YsUPR0dGaP3++6uvrtX79evXu3Vvbtm1Tnz59mtWXmZmpgoIC/epXv9L27dslSX369NGBAwe0ePFilZaW6vzzz5ckffjhh9q8ebP+/Oc/t+vfoq0IHwAAdMBll12mefPmSZLuvPNOPfTQQ1q3bp2GDx+ugQMHSpIGDBggt9vtf819992nJUuWaNq0aZK+biHZtm2bfve73wWEj1/84heaMmWKJGnx4sUaOXKkduzYoeHDh2v37t264oor/K0XZ511Vov1xcTEKDExUQ6HI6CGPn366Ac/+IFWrFjhDx8rVqxQVlbWKY8VKoQPAECnENszStvu/YFt791e5557rv9x0xd80/wnLdm/f78qKir0s5/9TDfddJN//bFjx/wdRFs6dtNcKj6fT8OHD9ett96qn//851q7dq0mTpyoK664ImD/trjppps0e/ZsLV26VFFRUXr66ae1ZMmSoI7RHoQPAECn4HA42n3pw049e/YMeO5wONTY2HjK/Zu2LV++XBkZGQHbTp4r5cRjN3UebXr9jTfeqB/84Ad66aWXtHbtWuXl5WnJkiW65ZZb2lz71KlT5XQ6tWbNGjmdTtXV1emKK65o8+vbq+v9lAEA6CKa+ng0NBy/DYLL5dKZZ56pnTt3asaMGR06fmpqqubOnau5c+dq0aJFWr58eYvhIyYmJqCGJtHR0Zo1a5ZWrFghp9Opa665xsh8O4QPAADCJCkpSbGxsXrllVc0aNAg9erVS4mJifJ4PLr11luVkJCgyZMnq66uTh988IGqqqq0YMGCNh07JydHkydP1rBhw1RVVaU33nhDI0aMaHHfoUOH6uDBg3r99dc1ZswYxcXF+UPGjTfe6H/dO++8E5oTPw2G2gIAECbR0dF65JFH9Lvf/U4pKSn68Y9/LOnrL/zf//73euKJJzR69GhlZWXpiSee8A/NbYuGhgbNnz9fI0aM0L//+7/r7LPPDhiue6LMzEzNnTtXV199tQYOHKj8/Hz/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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "NMR.plot(x='shift', y='intensity')\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### 2.3 - Read in all NMR files\n", "Now we can read one file, we should write a function that can read them all.\n", "" ] }, { "cell_type": "code", "execution_count": 9, "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", "
shiftintensityderivative
014.202218-0.0647110.059473
114.201989-0.0664580.048571
214.201760-0.0563220.038129
314.201530-0.0409920.040142
414.201301-0.0341110.052170
............
65531-0.826316-0.0583350.063376
65532-0.826545-0.0660900.063032
65533-0.826775-0.0709180.056772
65534-0.827004-0.0697080.051623
65535-0.827233-0.0695160.051118
\n", "

65536 rows × 3 columns

\n", "
" ], "text/plain": [ " shift intensity derivative\n", "0 14.202218 -0.064711 0.059473\n", "1 14.201989 -0.066458 0.048571\n", "2 14.201760 -0.056322 0.038129\n", "3 14.201530 -0.040992 0.040142\n", "4 14.201301 -0.034111 0.052170\n", "... ... ... ...\n", "65531 -0.826316 -0.058335 0.063376\n", "65532 -0.826545 -0.066090 0.063032\n", "65533 -0.826775 -0.070918 0.056772\n", "65534 -0.827004 -0.069708 0.051623\n", "65535 -0.827233 -0.069516 0.051118\n", "\n", "[65536 rows x 3 columns]" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def read_NMR_data(NMR):\n", " \"\"\" Read NMR data. \"\"\"\n", "\n", " data = pd.read_csv(NMR, sep='\\t', names=['shift','intensity','derivative'])\n", " return data\n", "\n", "read_NMR_data('data/NMR_data/10.txt')\n", " \n" ] }, { "cell_type": "code", "execution_count": 10, "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", "
shiftintensityderivative
013.808344-0.0632780.077326
113.808115-0.0596820.071795
213.807885-0.0547980.070505
313.807656-0.0521170.071388
413.807427-0.0501410.071391
............
65531-1.220190-0.0572930.056825
65532-1.220420-0.0560440.069937
65533-1.220649-0.0650170.077379
65534-1.220878-0.0747700.075543
65535-1.221108-0.0796700.068632
\n", "

65536 rows × 3 columns

\n", "
" ], "text/plain": [ " shift intensity derivative\n", "0 13.808344 -0.063278 0.077326\n", "1 13.808115 -0.059682 0.071795\n", "2 13.807885 -0.054798 0.070505\n", "3 13.807656 -0.052117 0.071388\n", "4 13.807427 -0.050141 0.071391\n", "... ... ... ...\n", "65531 -1.220190 -0.057293 0.056825\n", "65532 -1.220420 -0.056044 0.069937\n", "65533 -1.220649 -0.065017 0.077379\n", "65534 -1.220878 -0.074770 0.075543\n", "65535 -1.221108 -0.079670 0.068632\n", "\n", "[65536 rows x 3 columns]" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "NMR_data = {}\n", "for ID in summary.index:\n", " NMR_file = 'data/NMR_data/' + str(ID) + '.txt'\n", " NMR_data[ID] = read_NMR_data(NMR_file)\n", " \n", "NMR_data[11]\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "## 3. NMR data exploration\n", "\n", "To answer the problem\n", "> Do you get more peaks in the 1H NMR spectrum if you have an odd number of heteroatoms compared with an even number?\n", "\n", "we will need to determine the number of peaks in a spectrum. \n", "\n", "
\n", "Questions to ask of the data\n", " \n", "To peak search automatically, we need the NMR data to have similar numerical values. Things to check are: \n", "\n", "- What range of chemical shift do they cover?\n", "- What is the maximum intensity?\n", "- How noisy is the baseline?\n", "
\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "## Task 3\n", "\n", "
\n", "Exploring the data:\n", " \n", "1. Write a function that can quantify the following information: \n", " - Range of chemical shifts \n", " - Maximum intensity \n", " - Level of noise in the spectrum background \n", "2. Extract and store these values for all NMR data \n", "3. Plot histograms of each of each parameter, and decide whether any corrections to the data are required \n", "4. Make any corrections required \n", "
\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### 3.1/3.2 - Extract key features from each spectrum\n", "" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Spectrum covers 15.029 ppm from -1.233 to 13.796 ppm.\n", "Maximum intensity is 74.038.\n", "Baseline noise is 0.016.\n" ] } ], "source": [ "\n", "# Calculate shift range\n", "min_shift = NMR_data[1]['shift'].min()\n", "max_shift = NMR_data[1]['shift'].max()\n", "shift_range = max_shift - min_shift\n", "\n", "print( f\"Spectrum covers {shift_range:.3f} ppm from {min_shift:.3f} to {max_shift:.3f} ppm.\")\n", "\n", "# Calculate max intensity\n", "max_intensity = NMR_data[1]['intensity'].max()\n", "print( f\"Maximum intensity is {max_intensity:.3f}.\")\n", "\n", "# Calculate baseline\n", "number_of_points = NMR_data[1].shape[0]\n", "baseline_std = NMR_data[1]['intensity'].nsmallest(n = int(number_of_points*0.5)).std()\n", "print( f\"Baseline noise is {baseline_std:.3f}.\")\n" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "# Now, we convert the code above into a function that can work for any NMR DataFrame\n", "\n", "def summary_statistics(NMR_data, ID):\n", " \"\"\" Return summary statistics for an NMR spectrum. \"\"\"\n", " \n", " # Calculate shift range\n", " min_shift = NMR_data[ID]['shift'].min()\n", " max_shift = NMR_data[ID]['shift'].max()\n", " shift_range = max_shift - min_shift\n", "\n", " # Calculate max intensity\n", " max_intensity = NMR_data[ID]['intensity'].max()\n", "\n", " # Calculate baseline\n", " num_points = NMR_data[ID].shape[0]\n", " baseline_std = NMR_data[ID]['intensity'].nsmallest(n = int(num_points*0.5)).std()\n", " \n", " return shift_range, max_intensity, baseline_std" ] }, { "cell_type": "code", "execution_count": 13, "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", "
heteroatom_countshift_rangemax_intensitybaseline_std
Molecule_ID
1015.02945274.0383830.016211
2215.02945239.2782630.023142
3115.02945195.3297650.018059
4115.02945122.8372840.010094
5215.029451265.8577880.013083
\n", "
" ], "text/plain": [ " heteroatom_count shift_range max_intensity baseline_std\n", "Molecule_ID \n", "1 0 15.029452 74.038383 0.016211\n", "2 2 15.029452 39.278263 0.023142\n", "3 1 15.029451 95.329765 0.018059\n", "4 1 15.029451 22.837284 0.010094\n", "5 2 15.029451 265.857788 0.013083" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "for ID in summary.index:\n", " stats = summary_statistics(NMR_data, ID)\n", " summary.loc[ID, ['shift_range', 'max_intensity', 'baseline_std']] = stats\n", " \n", "summary.head()" ] }, { "cell_type": "code", "execution_count": 14, "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", "
heteroatom_countshift_rangemax_intensitybaseline_std
count58.00000058.00000058.00000058.000000
mean2.08620715.126457505.0062720.029138
std1.0136690.7387702500.0207760.092283
min0.00000015.02945117.8800370.005242
25%1.25000015.02945157.2461490.013050
50%2.00000015.029452134.9409870.016268
75%3.00000015.029452269.3941500.020450
max6.00000020.65575719181.9492190.718201
\n", "
" ], "text/plain": [ " heteroatom_count shift_range max_intensity baseline_std\n", "count 58.000000 58.000000 58.000000 58.000000\n", "mean 2.086207 15.126457 505.006272 0.029138\n", "std 1.013669 0.738770 2500.020776 0.092283\n", "min 0.000000 15.029451 17.880037 0.005242\n", "25% 1.250000 15.029451 57.246149 0.013050\n", "50% 2.000000 15.029452 134.940987 0.016268\n", "75% 3.000000 15.029452 269.394150 0.020450\n", "max 6.000000 20.655757 19181.949219 0.718201" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "summary.describe()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### 3.3 - Plot histograms across all NMR data\n", "" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 0, 'Chemical shift range')" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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8II2b96slStXKi4uTh988IHGjh2r6Oho9enTx+l4Qa1Ro0Z66623NGbMGDVv3lwNGjRQnz591K9fP6ejBaVHH31U27dvP+eqlcvl8ts3xlQZQ81QZupJdHS04uLieKK/Bq666io1bNhQ1157rd/4NddcwzJ1LX344YcqKCjQ66+/7nQUaxw7dkxPPfWU3n77bQ0YMECS1LlzZ+Xn5+uPf/wjZaYGunbtqvz8fBUXF6uiokItW7ZU9+7d1a1bN6ejBZXx48dr5cqV+uCDD9S6dWvfuMfjkfTzCk10dLRvvKioqMpqDWqG20z15IcfftDBgwf9/mDi3EJCQnTjjTdW+VXFL7/80rEvELXVyy+/rK5du6pLly5OR7HGiRMndOLECV1xhf9//ho0aOBbNUTNREZGqmXLltq9e7e2bNmiQYMGOR0pKBhj9Oijj2rFihVat26d4uPj/Y7Hx8fL4/EoJyfHN1ZRUaHc3Fz17NnzUse9LLAycx5HjhzRV1995dvfu3ev8vPz1bx5czVv3lxpaWm66667FB0drX379umpp57SVVddpSFDhjiYOnhcaP7atGmjJ554QsOGDdNtt92m3r17Kzs7W3/729+0YcMG50IHkermT5JKSkr05ptv6rnnnnMqZtCqbv6SkpL0xBNPKDQ0VHFxccrNzdWyZcuUmZnpYOrgUd38vfnmm2rZsqXatGmjHTt2aMKECRo8eLDfA63/ysaNG6fly5fr3XffVXh4uO85mMjISIWGhsrlcmnixIlKT09XQkKCEhISlJ6errCwMA0fPtzh9JZy9pepgtf69euNpCrbqFGjzNGjR01qaqpp2bKladSokWnTpo0ZNWqUOXDggNOxg8aF5u+0l19+2bRv3940btzYdOnSxbzzzjvOBQ4yNZm/xYsXm9DQUPPTTz85FzRIVTd/Xq/XjB492sTExJjGjRubq6++2jz33HOmsrLS2eBBorr5e/75503r1q19//2bMWOGKS8vdzZ0EDnX3EkyS5Ys8Z1TWVlpZs6caTwej3G73ea2224zO3bscC605VzGGHMJOhMAAMBFwTMzAADAapQZAABgNcoMAACwGmUGAABYjTIDAACsRpkBAABWo8wAAACrUWYAAIDVKDPAZcTlcumdd9655O+7YcMGuVwu/fTTT/VyvX379snlcik/Pz+g1ycnJ2vixIkXPOfsufriiy908803q3Hjxrr++usDel8AzqDMAJYoLCzU+PHj1a5dO7ndbsXGxmrgwIFau3at09HUs2dPeb1eRUZGOh2lxrxer/r16+fbnzlzppo0aaKCggKtXbtWS5cuVdOmTZ0LCKDG+KJJwAL79u3TLbfcoqZNmyojI0OdO3fWiRMn9P7772vcuHH64osvHM0XEhIij8fjaIbaOjvvnj17NGDAgDp/c/uJEyfUqFGjOl0DQO2wMgNYYOzYsXK5XPrkk0/0q1/9Sh06dFCnTp00efJkbd682e/cQ4cOaciQIQoLC1NCQoJWrlzpd/yf//yn+vfvryuvvFJRUVEaOXKkDh065DuenJys8ePHa+LEiWrWrJmioqL04osvqqysTA888IDCw8P1i1/8QqtXr/a95ly3mT766CMlJSUpLCxMzZo1U9++fXX48GFJUnZ2tnr16qWmTZuqRYsW+rd/+zft2bOnVnOyYMECJSQkqHHjxoqKitKvfvUrv+OVlZWaOnWqmjdvLo/Ho7S0NL/jZ95mcrlc2rp1q55++mm5XC4lJyfrgQceUHFxsVwul1wuV5XXn5aWlqbrr79er7zyim/VzBhT7Wc8fSttxYoV6t27t8LCwtSlSxd9/PHHftd/6aWXFBsbq7CwMA0ZMkSZmZlVVoz+9re/qWvXrmrcuLHatWunWbNm6eTJk7WaT8BmlBkgyP3444/Kzs7WuHHj1KRJkyrHz/7BNmvWLN19993avn27+vfvrxEjRujHH3+U9POtlaSkJF1//fXasmWLsrOz9f333+vuu+/2u0ZWVpauuuoqffLJJxo/frx+85vf6D/+4z/Us2dPbdu2TX379tXIkSN19OjRc2bOz8/XHXfcoU6dOunjjz/Wxo0bNXDgQJ06dUqSVFZWpsmTJysvL09r167VFVdcoSFDhqiysrJGc7JlyxY99thjevrpp1VQUKDs7GzddtttVT5DkyZN9I9//EMZGRl6+umnlZOTc87reb1ederUSY8//ri8Xq9WrlypefPmKSIiQl6vV16vV1OmTDlvnq+++kpvvPGG3nrrLd9zPjX9jNOnT9eUKVOUn5+vDh066N577/UVkY8++kiPPPKIJkyYoPz8fKWkpOgPf/iD3+vff/993XfffXrsscf0z3/+U4sXL9bSpUurnAdc1hz+1m4A1fjHP/5hJJkVK1ZUe64kM2PGDN/+kSNHjMvlMqtXrzbGGPO73/3OpKam+r3m4MGDRpIpKCgwxhiTlJRkevXq5Tt+8uRJ06RJEzNy5EjfmNfrNZLMxx9/bIwxZv369UaSOXz4sDHGmHvvvdfccsstNf6MRUVFRpLZsWOHMcaYvXv3Gknm008/Pef5b731lomIiDAlJSXnPH72ZzDGmBtvvNH89re/9e1LMm+//bZvv0uXLmbmzJm+/SVLlpjIyMhqs8+cOdM0atTIFBUVXfC8833GP/3pT75zdu7caSSZXbt2GWOMGTZsmBkwYIDfdUaMGOGX69ZbbzXp6el+5/zP//yPiY6OrjY7cLlgZQYIcsYYST/fCqmJzp07+/65SZMmCg8PV1FRkSRp69atWr9+va688krf1rFjR0nyuwVy5jUaNGigFi1a6LrrrvONRUVFSZLvumc7vTJzPnv27NHw4cPVrl07RUREKD4+XpJ04MCBGn3GlJQUxcXFqV27dho5cqT+/Oc/V1klOvMzSFJ0dPR589ZVXFycWrZs6TdW0894Zs7o6GhJ//+8FhQU6KabbvI7/+z907fHzvx3+tBDD8nr9Z535Qy43PAAMBDkEhIS5HK5tGvXLg0ePLja889++NTlcvlubVRWVmrgwIF69tlnq7zu9A/S813jzLHTxep8t4VCQ0MvmHHgwIGKjY3VSy+9pJiYGFVWVioxMVEVFRUXfN1p4eHh2rZtmzZs2KA1a9bo97//vdLS0pSXl+e77Xaheahv57r9V9PPeKF5NcZUKbGny+1plZWVmjVrloYOHVolQ+PGjQP7QIBlWJkBglzz5s3Vt29f/fd//7fKysqqHK/N3+1yww03aOfOnWrbtq3at2/vt53rB3KgOnfufN5fGf/hhx+0a9cuzZgxQ3fccYeuueYa34PBtdGwYUP16dNHGRkZ2r59u/bt26d169bVNbpPSEiI7xmf2qqvz9ixY0d98sknfmNbtmzx27/hhhtUUFBQ5d9n+/btdcUV/Cce/xr4kw5YYMGCBTp16pRuuukmvfXWW9q9e7d27dqlF154QT169KjxdcaNG6cff/xR9957rz755BN9/fXXWrNmjR588MGAf3Cfy7Rp05SXl6exY8dq+/bt+uKLL7Rw4UIdOnRIzZo1U4sWLfTiiy/qq6++0rp16zR58uRaXf/vf/+7XnjhBeXn52v//v1atmyZKisrdfXVV9fbZ2jbtq2OHDmitWvX6tChQ7W6ZVMfn1GSxo8fr/fee0+ZmZnavXu3Fi9erNWrV/ut1vz+97/XsmXLlJaWpp07d2rXrl16/fXXNWPGjFq/H2Arygxggfj4eG3btk29e/fW448/rsTERKWkpGjt2rVauHBhja8TExOjjz76SKdOnVLfvn2VmJioCRMmKDIysl7/X3yHDh20Zs0affbZZ7rpppvUo0cPvfvuu2rYsKGuuOIKvfbaa9q6dasSExM1adIkzZ07t1bXb9q0qVasWKHbb79d11xzjRYtWqS//OUv6tSpU719hp49e+qRRx7RsGHD1LJlS2VkZNT4tfXxGSXplltu0aJFi5SZmakuXbooOztbkyZN8rt91LdvX/39739XTk6ObrzxRt18883KzMys89+XA9jEZc6+AQsACFoPPfSQvvjiC3344YdORwGCBg8AA0AQ++Mf/6iUlBQ1adJEq1evVlZWlhYsWOB0LCCosDIDAEHs7rvv1oYNG1RaWqp27dpp/PjxeuSRR5yOBQQVygwAALAaDwADAACrUWYAAIDVKDMAAMBqlBkAAGA1ygwAALAaZQYAAFiNMgMAAKxGmQEAAFb7/wBPibvnWWXq4AAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = plt.figure()\n", "ax = fig.add_subplot()\n", "summary['shift_range'].plot(kind='hist', bins=50, ax=ax, label='ppm range')\n", "ax.set_xlabel('Chemical shift range')\n" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 0, 'Maximum intensity')" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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5XrllVe8XScAAECD8milaMaMGerVq5eKi4sVFBTkah85cqQ++ugjrxUHAADgKx5fffaPf/xDrVq1cmuPiorS0aNHvVIYAACAL3m0UlRTU6Pq6upa7UeOHOEX7AEAQJPkUSgaOHCgli1b5rptsVh08uRJLViwgJ/+AAAATZJHH5/9/ve/V//+/XXzzTervLxciYmJOnDggNq3b6+1a9d6u0YAAIAG51Eocjqd2r17t9auXaudO3eqpqZGkyZN0tixY91OvAYAAGgqPApFkhQUFKSJEydq4sSJ3qwHAADALzwKRWvWrLnk/vHjx3tUDAAAgL94FIpmzJjhdruqqkqnT59Wq1atFBwcTCgCAABNjkdXnxUXF7ttJ0+e1P79+9W3b19OtAYAAE2Sx799dqGYmBgtXry41ioSAABAU+C1UCRJzZs317Fjx7w5JAAAgE94dE7Re++953bbGKOCggItX75cv/3tb71SGAAAgC95FIpGjBjhdttisahDhw4aMGCAXnzxRW/UBQAA4FMehaKamhpv1wEAAOBXXj2nCAAAoKnyaKVo5syZV9w3PT3dk4cAAADwKY9C0a5du7Rz506dPXtWv/nNbyRJ33zzjZo3b64ePXq4+lksFu9UCQAA0MA8CkXDhg2TzWZTZmam2rRpI+mXL3R87LHHdNddd2nWrFleLRIAAKCheXRO0Ysvvqi0tDRXIJKkNm3aaNGiRVx9BgAAmiSPQlFpaal++OGHWu1FRUUqKyv71UUBAAD4mkehaOTIkXrsscf09ttv68iRIzpy5IjefvttTZo0SaNGjfJ2jQAAAA3Oo3OKXnnlFc2ePVuPPvqoqqqqfhmoRQtNmjRJS5cu9WqBAAAAvuBRKAoODtbLL7+spUuX6uDBgzLG6IYbblBISIi36wMAAPCJX/XljQUFBSooKFDXrl0VEhIiY4y36gIAAPApj0LR8ePHdc8996hr1666//77VVBQIEmaPHkyl+MDAIAmyaNQ9Mwzz6hly5bKz89XcHCwq3306NHatGmT14oDAADwFY/OKdq8ebM++OADRUREuLXHxMTo0KFDXikMAADAlzxaKTp16pTbCtE5P/30k6xW668uCgAAwNc8CkV333231qxZ47ptsVhUU1OjpUuXqn///l4rDgAAwFc8+vhs6dKlio+P1/bt21VZWak5c+Zo3759+vnnn/WP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/F3SRaWlpen222+XzWZTx44dNWLECO3fv9+tz4QJE2SxWNy2O++8061PRUWFpk+frvbt2yskJEQPPPCAjhw54tanuLhY48aNU1hYmMLCwjRu3DidOHGioafokpKSUmseDofDtd8Yo5SUFDmdTgUFBSk+Pl779u1zG6MpzFOSOnfuXGuuFotFTz31lKSmfUw//fRTDRs2TE6nUxaLRe+++67bfl8ex/z8fA0bNkwhISFq3769nn76aVVWVvpkrlVVVXr22WfVvXt3hYSEyOl0avz48Tp27JjbGPHx8bWO9ZgxYxrVXC93TH35fPXnMZVU5+vWYrFo6dKlrj5N4ZhKV/b+0qRerwb1tm7dOtOyZUvz2muvma+++srMmDHDhISEmEOHDvm7tDoNGjTIZGRkmC+//NLs3r3bDBkyxHTq1MmcPHnS1ScpKcncd999pqCgwLUdP37cbZwpU6aY6667zmRlZZmdO3ea/v37m1tvvdWcPXvW1ee+++4zsbGxJjs722RnZ5vY2FgzdOhQn811wYIFplu3bm7zKCoqcu1fvHixsdls5p133jF79+41o0ePNuHh4aa0tLRJzdMYY4qKitzmmZWVZSSZLVu2GGOa9jF9//33zfz5880777xjJJm//vWvbvt9dRzPnj1rYmNjTf/+/c3OnTtNVlaWcTqdZtq0aT6Z64kTJ8y9995r3nrrLfPPf/7T5OTkmN69e5uePXu6jdGvXz/z+OOPux3rEydOuPXx91wvd0x99Xz19zE1xrjNsaCgwLz++uvGYrGYgwcPuvo0hWNqzJW9vzSl1yuhyAN33HGHmTJlilvbjTfeaObOneuniuqnqKjISDJbt251tSUlJZnhw4df9D4nTpwwLVu2NOvWrXO1HT161DRr1sxs2rTJGGPMV199ZSSZbdu2ufrk5OQYSeaf//yn9ydShwULFphbb721zn01NTXG4XCYxYsXu9rKy8tNWFiYeeWVV4wxTWeedZkxY4bp0qWLqampMcYEzjG98E3Fl8fx/fffN82aNTNHjx519Vm7dq2xWq2mpKSkwedal88//9xIcvufsH79+pkZM2Zc9D6Nba4XC0W+eL42xmM6fPhwM2DAALe2pnZMz7nw/aWpvV75+KyeKisrtWPHDiUkJLi1JyQkKDs7209V1U9JSYkkqW3btm7tn3zyiTp27KiuXbvq8ccf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tL755hvX7ZSUFP3Lv/yLT2sArnaEIqCJi4yM1Lp163TmzBlXW3l5udauXatOnTp5/fE6dOig4OBgr4/bUJpKvUFBQerYsaO/ywCuaoQioInr0aOHOnXqpPXr17va1q9fr8jISN12221ufTdt2qS+ffvq2muvVbt27TR06FAdPHjQtX/NmjW65pprdODAAVfb9OnT1bVrV506dUpS7Y+jLBaLVq5cqaFDhyo4OFg33XSTcnJy9O233yo+Pl4hISHq06eP2+NMmDBBI0aMcKstOTlZ8fHxrtvx8fGaPn26kpOT1aZNG9ntdr366qs6deqUHnvsMdlsNnXp0kUbN2685N+nrnr/+Mc/auTIkQoODlZMTIzee+89SdL333+v/v37S5LatGnjttJmjNGSJUt0/fXXKygoSLfeeqvefvtt17jnVpg++ugj9erVS8HBwYqLi9P+/ftdffbs2aP+/fvLZrMpNDRUPXv21Pbt2yW5f3y2evVqLVy4UHv27JHFYpHFYtHq1as1ceJEDR061G1+Z8+elcPh0Ouvv37JvwOAyyMUAQHgscceU0ZGhuv266+/rokTJ9bqd+rUKc2cOVO5ubn66KOP1KxZM40cOVI1NTWSpPHjx+v+++/X2LFjdfbsWW3atEkrV67Un/70J4WEhFz08Z9//nmNHz9eu3fv1o033qjExEQ98cQTmjdvnutNf9q0afWeV2Zmptq3b6/PP/9c06dP15NPPqmHHnpIcXFx2rlzpwYNGqRx48bp9OnT9Rp34cKFevjhh/XFF1+45vvzzz8rMjJS77zzjiRp//79Kigo0EsvvSRJeu6555SRkaEVK1Zo3759euaZZ/Too49q69atbmPPnz9fL774orZv364WLVq4HYexY8cqIiJCubm52rFjh+bOnauWLVvWqm/06NGaNWuWunXrpoKCAhUUFGj06NGaPHmyNm3apIKCAlff999/XydPntTDDz9cr78BgDoYAE1WUlKSGT58uPnxxx+N1Wo1eXl55vvvvzetW7c2P/74oxk+fLhJSkq66P2LioqMJLN3715X288//2wiIiLMk08+aex2u1m0aJHbfaKioszvf/97121J5rnnnnPdzsnJMZLMqlWrXG1r1641rVu3rlX3+WbMmGH69evnut2vXz/Tt29f1+2zZ8+akJAQM27cOFdbQUGBkWRycnIuOsfL1Xvy5EljsVjMxo0bjTHGbNmyxUgyxcXFbn1at25tsrOz3caeNGmSeeSRR9zu9+GHH7r2b9iwwUgyZ86cMcYYY7PZzOrVq+usMyMjw4SFhbluL1iwwNx66621+t18883mhRdecN0eMWKEmTBhwkXnD+DKsVIEBID27dtryJAhyszMVEZGhoYMGaL27dvX6nfw4EElJibq+uuvV2hoqKKjoyVJ+fn5rj5t2rTRqlWrtGLFCnXp0kVz58697OPfcsstrn/b7XZJUvfu3d3aysvLVVpaWq95nT9u8+bN1a5du1rjSlJRUZHH44aEhMhms11yjK+++krl5eUaOHCgrrnmGte2Zs0at48FLxw7PDzcrb6ZM2dq8uTJuvfee7V48eJa970SkydPdq0KFhUVacOGDXWuCgKovxb+LgCAd0ycONH1EdUf/vCHOvsMGzZMkZGReu211+R0OlVTU6PY2FhVVla69fv000/VvHlzHTt2TKdOnVJoaOglH/v8j4AsFstF2859TNesWTMZY9zGqKqquuS458a51LhXqq5xLzXGuX0bNmzQdddd57bParVedOwL60tJSVFiYqI2bNigjRs3asGCBVq3bp1Gjhx5xbWPHz9ec+fOVU5OjnJyctS5c2fdddddV3x/ABfHShEQIO677z5VVlaqsrJSgwYNqrX/+PHj+vrrr/Xcc8/pnnvu0U033aTi4uJa/bKzs7VkyRL97W9/U2hoqKZPn+71Wjt06OB2Xowk7d692+uP44lWrVpJkqqrq11tN998s6xWq/Lz83XDDTe4bZGRkfUav2vXrnrmmWe0efNmjRo1yu1csAvrOL+Gc9q1a6cRI0YoIyNDGRkZeuyxx+r1+AAujpUiIEA0b95cX3/9tevfF2rTpo3atWunV199VeHh4crPz6/10VhZWZnGjRun6dOna/DgwerUqZN69eqloUOH6qGHHvJarQMGDNDSpUu1Zs0a9enTR2+88Ya+/PLLWlfL+UNUVJQsFov+93//V/fff7+CgoJks9k0e/ZsPfPMM6qpqVHfvn1VWlqq7OxsXXPNNUpKSrrsuGfOnNG///u/61//9V8VHR2tI0eOKDc3Vw8++GCd/Tt37qy8vDzt3r1bERERstlsrlWpyZMna+jQoaqurr6ixwZwZVgpAgJIaGjoRT/qatasmdatW6cdO3YoNjZWzzzzjJYuXerWZ8aMGQoJCVFqaqokqVu3bnrhhRc0ZcoUHT161Gt1Dho0SL/73e80Z84c3X777SorK9P48eO9Nv6vcd1112nhwoWaO3eu7Ha76yPJ559/Xv/5n/+ptLQ03XTTTRo0aJD+9re/uc7LupzmzZvr+PHjGj9+vLp27aqHH35YgwcP1sKFC+vs/+CDD+q+++5T//791aFDB61du9a1795771V4eLgGDRokp9P56ycNQJJkMRd+sA8AaNROnz4tp9Op119/XaNGjfJ3OUDA4OMzAGgiampqVFhYqBdffFFhYWF64IEH/F0SEFAIRQDQROTn5ys6OloRERFavXq1WrTgP+GAN/HxGQAAgDjRGgAAQBKhCAAAQBKhCAAAQBKhCAAAQBKhCAAAQBKhCAAAQBKhCAAAQBKhCAAAQJL0/wH5lexVfOxJWgAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = plt.figure()\n", "ax = fig.add_subplot()\n", "summary['max_intensity'].plot(kind='hist', bins=50, ax=ax, label='Maximum intensity')\n", "ax.set_xlabel('Maximum intensity')" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 0, 'Baseline standard deviation')" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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BQUFCg0NPa9jWdHvef7Mnbkz99+X3/P8/WXuxhiVlZUpOjr6nGP9usy0bt1aTZs2rXYWpri4uNrZmpPsdrvsdrvbtgsuuMCruUJDQ393f7lP9XueP3Nn7r83v+e5S7/v+fvD3M91RuYkv74BODAwUN26dVNmZqbb9szMTPXq1ctHqQAAgD/x6zMzkjRx4kSNGjVK8fHx6tmzp1555RXt379fY8aM8XU0AADgB/y+zIwYMUIHDx7U3/72NxUWFqpLly764IMPFBsb2+BZ7Ha7pk2bVu0y1u/F73n+zJ25/978nucu/b7nb8W520xtPvMEAADgp/z6nhkAAIBzocwAAABLo8wAAABLo8wAAABLo8ycZu7cuWrXrp2aN2+ubt26ad26dWcdn52drW7duql58+a65JJL9NJLLzVQUu+ry9wLCwuVlJSkjh07qkmTJpowYULDBa0ndZn/e++9p/79++uiiy5SaGioevbsqY8++qgB03pXXeb+6aef6vrrr1erVq0UFBSkyy67TM8991wDpvWuuv6bP2n9+vUKCAjQVVddVb8B61Fd5p6VlSWbzVZt+eabbxowsXfV9bV3Op2aOnWqYmNjZbfbdemll+rVV19toLTeVZe5p6Sk1Pjad+7cuQETn4OBy5IlS0yzZs3M/Pnzzfbt28348eNNixYtzL59+2oc/91335ng4GAzfvx4s337djN//nzTrFkz88477zRw8vNX17nn5+ebBx54wLz22mvmqquuMuPHj2/YwF5W1/mPHz/ePP300+aLL74wu3btMlOmTDHNmjUzW7dubeDk56+uc9+6davJyMgwX3/9tcnPzzevv/66CQ4ONi+//HIDJz9/dZ37SYcPHzaXXHKJSUxMNFdeeWXDhPWyus597dq1RpLZuXOnKSwsdC3Hjx9v4OTe4clr/2//9m+me/fuJjMz0+Tn55vPP//crF+/vgFTe0dd53748GG317ygoMC0bNnSTJs2rWGDnwVl5hTXXXedGTNmjNu2yy67zEyePLnG8ZMmTTKXXXaZ27Z7773X9OjRo94y1pe6zv1Uffv2tXyZOZ/5n9SpUyfz+OOPeztavfPG3IcNG2buvPNOb0erd57OfcSIEea///u/zbRp0yxbZuo695Nl5tChQw2Qrv7Vdf4ffvihCQsLMwcPHmyIePXqfP/NL1u2zNhsNrN37976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4uPjFRwcrF69emnnzp1uzz1jxgxFRETI4XBo9OjR+vXXX932b9q0Sf3791fr1q0VFhamvn37auvWrdV+Ri+99JKGDh2qFi1a6Mknn6zVsWvywQcfKC4uTkFBQUpISNDevXurjTnbz3fKlCnq0aNHtcd07dpV06ZNk1T98tDKlSvVu3dvXXDBBWrVqpVuueUW7dmzx7W/Xbt2kqSrr75aNptN/fr1q/E4TqdTDzzwgMLDw9W8eXP17t1bmzZtcu2v7WsC+Iyvv+kSsLrk5GQzdOhQ13pZWZm59957Tfv27d2+SfqJJ54w69evN/n5+Wb58uUmIiLCPP300679nTt3NnfeeafZsWOH2bVrl3nrrbdMbm6uMcaYr776yoSEhJjnnnvO7Nq1y6xfv95cffXVJiUlxfX42NhY89xzz7nWJZlly5YZY4zJz883ksxll11m/vnPf5qdO3ea2267zcTGxppjx47V+jlOd6bMTqfTzJ4924SGhprCwkJTWFhoysrKjDHGLFiwwHzwwQdmz5495rPPPjM9evQwAwcOdB1z7dq1RpLp3r27ycrKMnl5eeaGG24wvXr1co1ZunSpCQwMNPPnzzfffPONmTp1qnE4HG7fYL169Wrz+uuvm+3bt5vt27eb0aNHm4iICFNaWur2MwoPDzcLFiwwe/bsMXv37q3VsU+3f/9+Y7fbzfjx480333xjFi9ebCIiIowkc+jQoVr9fLdt22YkmW+//dZ13K+//tpIMjt37jTGVP+79s4775h3333X7Nq1y+Tk5JghQ4aYK664wvX37osvvjCSzMcff2wKCwvNwYMHazzOAw88YKKjo80HH3xg8vLyTHJysrnwwgtd42vzmgC+RJkBzlNycrJp2rSpadGihWnRooWRZKKiosyWLVvO+riZM2eabt26udYdDodZuHBhjWNHjRpl/vM//9Nt27p160yTJk1MZWWlMaZ2Zebvf/+7a39eXp6RZHbs2FHr5zjd2TKnp6ebsLCwGved6uQb7smyc/KN8+OPP3aNWbFihZHkytGzZ08zZswYt+N07979rIXj+PHjxuFwmH/84x+ubZLMhAkT3MZ5cuwpU6aYyy+/3FRVVbm2PfLII25lpjY/365du5q//e1vbse99tprXeunl5DTFRcXG0lm27Ztxpj//7rn5OS4jTv1OOXl5aZZs2bmjTfecO0/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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = plt.figure()\n", "ax = fig.add_subplot()\n", "summary['baseline_std'].plot(kind='hist', bins=50, ax=ax, label='Baseline sigma')\n", "ax.set_xlabel('Baseline standard deviation')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### 3.4 - Apply corrections to standardise the data\n", "\n", "For peak searching to work effectively, we need to standardise our data. The simplest change would be to normalise the intensity values so that, e.g. the maximum is 100.\n", "" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "for ID in summary.index:\n", " NMR_data[ID]['intensity'] = NMR_data[ID]['intensity'] / NMR_data[ID]['intensity'].max() * 100\n" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "for ID in summary.index:\n", " stats = summary_statistics(NMR_data, ID)\n", " summary.loc[ID, ['shift_range', 'max_int', 'baseline_std']] = stats\n" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 0, 'Baseline standard deviation')" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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Dw93W1daWtpNzVsaSmPt586dc1vzDz/8YIKCgkxCQoKrj43H/fjx42b06NFm2bJlpkWLFmbMmDH5+thyvntThyfrL6/nvCdrL6/nvCdrt+WcN8aYWyLMtG3b1owcOdKtrVGjRmbixIkF9n/ppZdMo0aN3NpGjBhh2rVr59p+7LHHzAMPPODW5/777zf9+/f3et7SUBprv9G1a9dMWFiYWbZsmatt8uTJ5u677/a+cB8ojbUnJCSYiIgIn85bGsriuM+dO9eEhYWZzMxMV5uNx/16Xbp0KfB/6rac7zdbR2Hrv1F5OeevV9jay+s5fz1Pj3ugnvPGGFPu32a6evWq9uzZo549e7q19+zZU1u3bi1wn23btuXrf//992v37t3Kzs4usk/emN7M62ultfYbXbp0SdnZ2brtttvc2o8cOaKYmBjVrVtX/fv317Fjx25iNSVTmmvPzMxUXFycateurYceekiJiYk3Na+vldVxX7Jkifr376/Q0FC3dtuOuydsON/Lso7ycs57qjye894IxHM+T7kPM2fPnlVOTk6+L6aMiorK9wWWeU6fPl1g/2vXruns2bNF9skb05t5fa201n6jiRMn6t/+7d/UvXt3V9u9996rd999V3//+9+1ePFinT59Wh06dNC5c+duclWeKa21N2rUSEuXLtWaNWu0YsUKVapUSR07dtSRI0e8ntfXyuK479y5Uz/88IOGDx/u1m7jcfeEDed7WdZRXs55T5TXc76kAvWczxPwX2fgKw6Hw23bGJOvrbj+N7Z7MmZJ5y0NpbH2PLNmzdKKFSu0efNmVapUydXeq1cv1383a9ZM7du31x133KFly5Zp/PjxXq3DG75ee7t27dSuXTvX8x07dlSrVq305ptv6o033vB63tJQmsd9yZIlatq0qdq2bevWbutx99WYgXDcS7uO8nbOF6c8n/MlEejnfLm/MlOjRg0FBQXlS6dnzpzJl2LzREdHF9i/YsWKioyMLLJP3pjezOtrpbX2PH/4wx80ffp0rVu3Ts2bNy+yltDQUDVr1sz1r5nSVtprz1OhQgXdc889rnXdCsf90qVLWrlyZb5/oRXEhuPuCRvO97Koo7yd894oL+d8SQTyOZ+n3IeZkJAQtW7dWuvXr3drX79+vTp06FDgPu3bt8/Xf926dWrTpo2Cg4OL7JM3pjfz+lpprV2SZs+erWnTpmnt2rVq06ZNsbVkZWUpOTlZtWrV8mIlJVeaa7+eMUZJSUmudZX34y5JH374obKysjRo0KBia7HhuHvChvO9tOsoj+e8N8rLOV8SgXzOu5Tt/cb+kfeRtSVLlpiDBw+asWPHmtDQUHPixAljjDETJ040TzzxhKt/3sdUx40bZw4ePGiWLFmS72OqW7ZsMUFBQWbGjBkmOTnZzJgxo9CPahY2r61rnzlzpgkJCTGrVq1y+zjehQsXXH2ef/55s3nzZnPs2DGzfft289BDD5mwsDDr1z5lyhSzdu1ak5KSYhITE83QoUNNxYoVzY4dOzye19a15+nUqZN5/PHHC5zXxuNujDGJiYkmMTHRtG7d2gwYMMAkJiaaAwcOuJ635Xz3pA5v1l9ez3ljil97eT3njSl+7XkC/Zw35hb5aLYxxvz5z382cXFxJiQkxLRq1cp8/fXXrueGDBliunTp4tZ/8+bNpmXLliYkJMTUqVPHLFy4MN+YH330kbnzzjtNcHCwadSokfn4449LNG9Z8fXa4+LijKR8j8mTJ7v6PP7446ZWrVomODjYxMTEmEceeaTAk6S0+XrtY8eONbfffrsJCQkxv/nNb0zPnj3N1q1bSzRvWSmNn/lDhw4ZSWbdunUFzmnrcS/o5zkuLs6tjy3ne3F1eLP+8nzOF7f28nzOe/Jzb8s57zDm/9/lBwAAYKFyf88MAAAo3wgzAADAaoQZAABgNcIMAACwGmEGAABYjTADAACsRpgBAABWI8wAAACrEWaAcqJOnTqaN2+ea9vhcOjTTz/1Wz1lbcqUKWrRokXAjL1582Y5HA797//+r8/qePLJJ/Xwww8HzDhAoCDMADfpySeflMPhcD0iIyP1wAMPaP/+/X6tKy0tTb169fLb/EuXLlW1atX8Nn959Kc//UlLly71uP+JEyfkcDiUlJR0U+MAgY4wA/jAAw88oLS0NKWlpWnDhg2qWLGiHnroIb/WFB0dLafT6dcabJOdne3vEooUERHhk4Doq3GAQEGYAXzA6XQqOjpa0dHRatGihSZMmKDU1FT985//dPWZMGGCGjZsqCpVqqhevXp65ZVX3H557tu3T926dVNYWJjCw8PVunVr7d692/X81q1bdd9996ly5cqKjY3V6NGjdfHixUJruv5tprx/oX/yySfq1q2bqlSporvvvlvbtm1z26ekcxRW8+bNmzV06FClp6e7rlhNmTJFkrR8+XK1adNGYWFhio6O1oABA3TmzBnXmHlvz2zYsEFt2rRRlSpV1KFDBx06dMht7hkzZigqKkphYWEaNmyYrly54vb8rl271KNHD9WoUUMRERHq0qWL9u7dm+81WrRokfr27avQ0FC99tprHo1dkC+++EINGzZU5cqV1a1bN504cSJfn6Je30mTJqldu3b59mnevLkmT54sKf/bQ2vXrlWnTp1UrVo1RUZG6qGHHlJKSorr+bp160qSWrZsKYfDoa5duxY4TlZWlkaPHq2aNWuqUqVK6tSpk3bt2uV63tNjAvhNmX+1JVDODBkyxPTt29e1feHCBTNixAhTv359k5OT42qfNm2a2bJlizl+/LhZs2aNiYqKMjNnznQ9f9ddd5lBgwaZ5ORkc/jwYfPhhx+apKQkY4wx+/fvN1WrVjVz5841hw8fNlu2bDEtW7Y0Tz75pGv/uLg4M3fuXNe2JLN69WpjjDHHjx83kkyjRo3MZ599Zg4dOmQeffRRExcXZ7Kzsz2e40aF1ZyVlWXmzZtnwsPDTVpamklLSzMXLlwwxhizZMkS88UXX5iUlBSzbds2065dO9OrVy/XmJs2bTKSzL333ms2b95sDhw4YDp37mw6dOjg6vPBBx+YkJAQs3jxYvPjjz+al19+2YSFhZm7777b1WfDhg3mr3/9qzl48KA5ePCgGTZsmImKijIZGRlur1HNmjXNkiVLTEpKijlx4oRHY9/o1KlTxul0mjFjxpgff/zRLF++3ERFRRlJ5vz58x69vt9//72RZI4ePeoa94cffjCSzKFDh4wx+X/WVq1aZT7++GNz+PBhk5iYaPr06WOaNWvm+rnbuXOnkWS++uork5aWZs6dO1fgOKNHjzYxMTHmiy++MAcOHDBDhgwx1atXd/X35JgA/kSYAW7SkCFDTFBQkAkNDTWhoaFGkqlVq5bZs2dPkfvNmjXLtG7d2rUdFhZmli5dWmDfJ554wvznf/6nW9u3335rKlSoYC5fvmyM8SzM/OUvf3E9f+DAASPJJCcnezzHjYqqOSEhwURERBT43PXyfuHmhZ28X5xfffWVq8/nn39uJLnqaN++vRk5cqTbOPfee2+RgePatWsmLCzM/O1vf3O1STJjx4516+fN2JMmTTKNGzc2ubm5rrYJEya4hRlPXt/mzZubV1991W3ce+65x7V9Ywi50ZkzZ4wk8/333xtj/u+4JyYmuvW7fpzMzEwTHBxs3nvvPdfzV69eNTExMWbWrFnGGM+OCeBPvM0E+EC3bt2UlJSkpKQk7dixQz179lSvXr108uRJV59Vq1apU6dOio6OVtWqVfXKK6/o1KlTrufHjx+v4cOHq3v37poxY4bb2wV79uzR0qVLVbVqVdfj/vvvV25uro4fP+5xnc2bN3f9d61atSTJ9RaPN3MUVXNhEhMT1bdvX8XFxSksLMz11sf1r0VxtSYnJ6t9+/Zu/W/cPnPmjEaOHKmGDRsqIiJCERERyszMzDdPmzZt3LY9GftGycnJateunRwOR6H7ePL6Dhw4UO+9954kyRijFStWaODAgYXOm5KSogEDBqhevXoKDw93va104xqLkpKSouzsbHXs2NHVFhwcrLZt2yo5Odmtb1HHBPAnwgzgA6Ghoapfv77q16+vtm3basmSJbp48aIWL14sSdq+fbv69++vXr166bPPPlNiYqJefvllXb161TXGlClTdODAAfXu3VsbN25UkyZNtHr1aklSbm6uRowY4QpMSUlJ2rdvn44cOaI77rjD4zqDg4Nd/533izc3N9frOYqquSAXL15Uz549VbVqVS1fvly7du1y9b/+tSiuVk88+eST2rNnj+bNm6etW7cqKSlJkZGR+eYJDQ31eMzCGGOK7ePJ6ztgwAAdPnxYe/fu1datW5Wamqr+/fsXOmafPn107tw5LV68WDt27NCOHTsk5X8tPan9+iCW135j280eE6C0VPR3AUB55HA4VKFCBV2+fFmStGXLFsXFxenll1929bn+qk2ehg0bqmHDhho3bpx+//vfKyEhQf369VOrVq104MAB1a9fv9Rq9naOwmoOCQlRTk6OW98ff/xRZ8+e1YwZMxQbGytJbjc5e6px48bavn27Bg8e7Grbvn27W59vv/1WCxYs0IMPPihJSk1N1dmzZ30y9o2aNGmS72/63LiPJ69v7dq1dd999+m9997T5cuX1b17d0VFRRXY99y5c0pOTtZbb72lzp07S5K+++47tz4hISGSlO84XK9+/foKCQnRd999pwEDBkj69VNdu3fv1tixYwvdDwgkXJkBfCArK0unT5/W6dOnlZycrFGjRikzM1N9+vSR9OsvjFOnTmnlypVKSUnRG2+84XYF4/Lly3ruuee0efNmnTx5Ulu2bNGuXbvUuHFjSb9+Emrbtm169tlnlZSUpCNHjmjNmjUaNWqUz9ZQ0jmKq7lOnTrKzMzUhg0bdPbsWV26dEm33367QkJC9Oabb+rYsWNas2aNpk2bVuJax4wZo3feeUfvvPOODh8+rMmTJ+vAgQNuferXr6+//vWvSk5O1o4dOzRw4EBVrlzZJ2PfaOTIkUpJSdH48eN16NAhvf/++/n+jounr+/AgQO1cuVKffTRRxo0aFChc1avXl2RkZF6++23dfToUW3cuFHjx49361OzZk1VrlxZa9eu1T/+8Q+lp6fnGyc0NFT/9V//pRdffFFr167VwYMH9fTTT+vSpUsaNmxYMa8WECD8e8sOYL8hQ4YYSa5HWFiYueeee8yqVavc+r344osmMjLSVK1a1Tz++ONm7ty5rhtks7KyTP/+/U1sbKwJCQkxMTEx5rnnnnO7uXLnzp2mR48epmrVqiY0NNQ0b97cvP76667nPbkB+PobQc+fP28kmU2bNnk8x/U8qXnkyJEmMjLSSDKTJ082xhjz/vvvmzp16hin02nat29v1qxZ41Zb3s2meTfOGmNMYmKikWSOHz/uanv99ddNjRo1TNWqVc2QIUPMSy+95HaT7t69e02bNm2M0+k0DRo0MB999FGRr9H1ihu7IH/7299M/fr1jdPpNJ07dzbvvPNOvnV48vqeP3/eOJ1OU6VKFddN0XluvAF4/fr1pnHjxsbpdJrmzZubzZs351vT4sWLTWxsrKlQoYLp0qVLgeNcvnzZjBo1ytSoUcM4nU7TsWNHs3PnTtfznh4TwF8cxnjwZi8AAECA4m0mAABgNcIMAACwGmEGAABYjTADAACsRpgBAABWI8wAAACrEWYAAIDVCDMAAMBqhBkAAGA1wgwAALAaYQYAAFjt/wHpqKJTTjW4TgAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = plt.figure()\n", "ax = fig.add_subplot()\n", "summary['baseline_std'].plot(kind='hist', bins=50, ax=ax, label='Baseline sigma')\n", "ax.set_xlabel('Baseline standard deviation')\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "## NMR peak hunting\n", "\n", "A number of different peak finding algorithms exist, but here we will focus on `scipy.signal.find_peaks` that you saw in unit 7. Use this to determine the number of peaks in each NMR spectrum, and store these values for plotting. We can optimise the peak finding using the `prominence` parameter (in this case; other problems might need different parameters).\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "## Task 4\n", "\n", "
\n", " Finding Peaks:\n", " \n", "1. Write a function capable of extracting peaks from any of the NMR spectra\n", "2. Test how the peak-fitting parameters affect the number of peaks determined\n", " > Hint: \"prominence\" is particularly useful for these peak shapes\n", "3. Optimise these parameter(s) to determine the number of peaks in each spectrum\n", "\n", "
\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### 4.1 - Function to extract peaks\n", "" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Normalised intensity')" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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eXl644031K5dOz322GO6+OKLHdYMnen7YKY2bdrY1yI5w5nQWrVP1e+9M+/twIEDkqSzzz7b6dqAhoqwAzRwrVu31qBBg/T888/ryJEj1Y67srfNJZdcoi1btighIUGdOnVyuLVo0cK0mrt161brKfH79+/Xtm3b9Mgjj+iqq67ShRde6FJYqNC0aVNdffXVmjFjhr799lvt3LlTn376aX1Lt2vevLmsVmud/Xr06KGioqIa30PVxeNffvmlfSStpj6nTp1Sbm5utT7u+O677xQXF6c2bdrU+7UAf0fYAQLACy+8IKvVqssuu0xLly7VDz/8oG3btunZZ5+tNlVyJmPGjNGBAwd06623av369fr555+Vk5OjkSNHOvXB7qzJkydrw4YNGj16tL799lt9//33mjt3rvbt26dWrVopKipK8+bN048//qhPP/1UEyZMcOn133vvPT377LPatGmTdu3apVdeeUXl5eU6//zzTXsPCQkJOnz4sFasWKF9+/bVOh3Uo0cPnX322fr888+rHVu8eLH+/e9/a8eOHXr88ce1fv16jR071qHP888/r2XLlun777/XmDFjdPDgQY0cObLe9a9Zs0apqan1fh2gISDsAAEgMTFReXl5GjBggB588EF16dJFAwcO1IoVKzR37lynXyc2Nlaff/65rFarBg0apC5dumjcuHGKjIw0dY+Y8847Tzk5Ofrmm2902WWX6YorrtDbb7+tpk2bqkmTJnrzzTeVm5urLl26aPz48Xr66addev2WLVsqOztbf/jDH3ThhRfqxRdf1BtvvKHOnTub9h6Sk5N177336uabb9bZZ5+tGTNm1NgvKChII0eOrHFPmyeeeEJvvvmmunXrpgULFuj111/XRRdd5NDnqaee0vTp03XxxRdrzZo1evvtt+s9GnP8+HEtW7ZM99xzT71eB2goLEbF6kYAgEf8+uuv6ty5s3Jzc9WhQwdJtnU0y5Yt0w033FDjc3bu3KnExERt3LjRrctTnMnzzz+vt99+Wzk5Oaa+LuCvGNkBAA+Ljo7Wv/71L6fPJvO0Zs2a6bnnnvN1GYDXNPV1AQDQGFx//fW+LsHur3/9q69LALyKaSwAABDQmMYCAAABjbADAAACGmEHAAAENMIOAAAIaIQdAAAQ0Ag7AAAgoBF2AABAQCPsAACAgPb/AeIZaHd1fKawAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ID = 1\n", "peaks, peak_info = find_peaks(NMR_data[ID]['intensity'],\n", " prominence = 1,\n", " )\n", "\n", "\n", "fig = plt.figure()\n", "ax = fig.add_subplot()\n", "\n", "ax.plot(NMR_data[ID]['shift'], NMR_data[ID]['intensity'])\n", "ax.scatter(NMR_data[ID]['shift'][peaks],\n", " NMR_data[ID]['intensity'][peaks],\n", " color='r'\n", " )\n", "\n", "ax.set_xlabel('Chemical shift (ppm)')\n", "ax.set_ylabel('Normalised intensity')\n", "\n", "#ax.set_xlim(7.3,8)\n", "#ax.set_ylim(0,20)\n" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "def count_peaks(NMR_data, ID, prominence):\n", " \"\"\" Return the number of peaks in an NMR spectrum. \"\"\"\n", " \n", " peaks, peak_info = find_peaks(NMR_data[ID]['intensity'],\n", " prominence = prominence,\n", " )\n", " \n", " return len(peaks)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### 4.2 - Optimising the prominence parameter\n", "\n", "To find peaks automatically we need to choose a prominence value. Let's systematically test a few different ones and see what the effect is on number of peaks. There are many ways to tackle this, but here we'll use the power of pandas to plot multiple curves quickly (and neatly)!\n", "" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "prominence_range = np.arange(0.1, 5, 0.2)\n", "\n", "\n", "# Make an empty DataFrame with 'prominence value' as the row index and 'ID' as the columns\n", "prom_testing = pd.DataFrame(index=prominence_range, columns=summary.index)\n", "\n", "for prom in prom_testing.index:\n", " for ID in prom_testing.columns:\n", " prom_testing.loc[prom, ID] = count_peaks(NMR_data, ID, prom)\n" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1sAAAKnCAYAAABwG1fTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAD+t0lEQVR4nOzdeVyU57nw8d/DNizCoCgCRQnGfcHkVYuocUUNMS4xTeJSgmapfYMr0VhNPeW0iEsaqwknuNRYbI4hx2NQGivRtoLxNRhAicRaJQ1GTVhiIiDIOjzvHzgTJ4CCMvPMmOv7+fD5ZJ7nhvtyMizX3Nd93YqqqipCCCGEEEIIIdqVg9YBCCGEEEIIIcT9SJItIYQQQgghhLAASbaEEEIIIYQQwgIk2RJCCCGEEEIIC5BkSwghhBBCCCEsQJItIYQQQgghhLAASbaEEEIIIYQQwgIk2RJCCCGEEEIIC3DSOgB70dDQwNdff42npyeKomgdjhBCCCGEEEIjqqpy/fp1AgICcHBoef1Kkq1W+vrrr+nWrZvWYQghhBBCCCFsxOXLlwkMDGzxviRbreTp6Qk0PqFeXl4aRyOEEEIIIYTQSnl5Od26dTPlCC2RZKuVjKWDXl5ekmwJIYQQQggh7ri9SBpkCCGEEEIIIYQFSLIlhBBCCCGEEBYgyZYQQgghhBBCWIDs2RJCCHFfUVWV+vp6DAaD1qEIIYSwU46Ojjg5Od3zkU+SbAkhhLhv1NbWUlhYyI0bN7QORQghhJ1zd3fH398fFxeXu/4akmwJIYS4LzQ0NFBQUICjoyMBAQG4uLjIIfRCCCHaTFVVamtr+eabbygoKKBXr163Pbj4diTZEkIIcV+ora2loaGBbt264e7urnU4Qggh7JibmxvOzs58+eWX1NbW4urqeldfRxpkCCGEuK/c7buPQgghxK3a4/eJ/EYSQgghhBBCCAuQZEsIIYQQQgghLECSLSGEEEIIIYSwAEm2hBBCCI0dO3aMqVOnEhAQgKIo7N+/X+uQ7F5bntMFCxagKAqbN2+2Wnz2Zt26dQwbNgxPT098fX2ZMWMG58+fNxujKEqzH6+99ppGUduuxMREQkJC8PLywsvLi7CwMA4dOmS6X1xczLx58wgICMDd3Z1HH32U/Px8DSO2fbGxsU1ee35+fqb7qqoSGxtLQEAAbm5ujB07lrNnz1o8Lkm2hBBCCI1VVlYyePBgEhIStA7lvtHa53T//v2cPHmSgIAAK0VmnzIyMoiOjiYzM5MjR45QX1/PpEmTqKysNI0pLCw0+3j77bdRFIUnn3xSw8htU2BgIOvXryc7O5vs7GzGjx/P9OnTOXv2LKqqMmPGDL744gsOHDjA6dOnCQoKIjw83Oz5Fk0NGDDA7DWYl5dnurdx40Y2bdpEQkICWVlZ+Pn5MXHiRK5fv27RmKT1uxBCiPuWqqpU36jRZG5Xd12rz/mKiIggIiLCwhHdO1VVqa6p02RuV51zm85Na81z+tVXX7Fw4UI+/PBDpkyZcq8h3hVVVamqq9dkbjdnp1Y/p2lpaWaPd+3aha+vLzk5OYwePRrAbBUB4MCBA4wbN44ePXq0T8CtoKoqVQZtXqNujq1/jU6dOtXs8dq1a0lMTCQzMxNnZ2cyMzP57LPPGDBgAABvvfUWvr6+vPvuu7zwwgvtHvvtqKpKnWr9n6POSut/hho5OTk1eR1C479h8+bNvPrqq8ycOROApKQkunbtyp49e1iwYEG7xNxsTBb7ykIIIYTGqm/UMM0zUpO5U6//GTePuzuXxVZV19Tx2PQ/aDL3Xw8sw83Vpd2+XkNDA5GRkaxYscL0B60WqurqGRKnzYpmzq8X4u7ifFefW1ZWBkCnTp2avV9cXMzBgwdJSkq66/juRpWhjqEfxFt1TqPsx1fj7tT216jBYGDv3r1UVlYSFhZGTU1jYnPruU6Ojo64uLhw/PhxqydbdWoNb5yfbtU5ARb3OYCL0rafofn5+QQEBKDT6QgNDSU+Pp4ePXpQUFBAUVERkyZNMo3V6XSMGTOGEydOWDTZkjJCIYQQQvzobNiwAScnJxYvXqx1KHZHVVViYmIYNWoUAwcObHZMUlISnp6eplUE0VReXh4dOnRAp9Pxy1/+kpSUFPr370/fvn0JCgpi1apVXLt2jdraWtavX09RURGFhYVah22zQkND2b17Nx9++CE7duygqKiIESNG8O2331JUVARA165dzT6na9eupnuWIitbQggh7luu7jpSr/9Zs7nvN646Z/56YJlmc7eXnJwctmzZwqlTp9pcptTe3JydyPn1Qs3mvhsLFy7kzJkzHD9+vMUxb7/9NnPnzjVbnbEGN0dnsh9fbdU5b527Lfr06UNubi6lpaXs27ePqKgoMjIy6N+/P/v27eP555+nU6dOODo6Eh4erlmpsbOiY3GfA5rM2xa3Pj+DBg0iLCyMBx98kKSkJIYPHw7Q5PtdVVWL/wyQZEsIIcR9S1GU+66UT0uKorRrKZ9WPvroI0pKSujevbvpmsFg4OWXX2bz5s1cvHjRarEoinLXpXxaWLRoEampqRw7dozAwMBmx3z00UecP3+e9957z8rR3Xw+76KUTwsuLi707NkTgKFDh5KVlcWWLVvYtm0bQ4YMITc3l7KyMmpra+nSpQuhoaEMHTrU6nEqitLmcj5b4OHhwaBBg8jPz2fGjBkAFBUV4e/vbxpTUlLSZLWrvUkZoRBCCCF+VCIjIzlz5gy5ubmmj4CAAFasWMGHH36odXg2SVVVFi5cyPvvv88//vEPgoODWxy7c+dOhgwZwuDBg60Yof1TVdW0X8tIr9fTpUsX8vPzyc7OZvp06++dslc1NTWcO3cOf39/goOD8fPz48iRI6b7tbW1ZGRkMGLECIvGIStbQgghhMYqKir4/PPPTY8LCgrIzc2lU6dOZqsvovXu9Jz6+PiYjXd2dsbPz48+ffpYO1S7EB0dzZ49ezhw4ACenp6mfS56vR43NzfTuPLycvbu3cvrr7+uVah2YfXq1URERNCtWzeuX79OcnIy6enppq6Pe/fupUuXLnTv3p28vDyWLFnCjBkzzBo8CHPLly9n6tSpdO/enZKSEuLi4igvLycqKgpFUVi6dCnx8fH06tWLXr16ER8fj7u7O3PmzLFoXJJsCSGEEBrLzs5m3LhxpscxMTEAREVF8ac//UmjqOybPKftKzExEYCxY8eaXd+1axfz5s0zPU5OTkZVVWbPnm3F6OxPcXExkZGRFBYWotfrCQkJIS0tjYkTJwKNZ5bFxMRQXFyMv78/zz77LGvWrNE4att25coVZs+ezdWrV+nSpQvDhw8nMzOToKAgAF555RWqqqp46aWXuHbtGqGhoRw+fBhPT0+LxqWoqqpadIb7RHl5OXq9nrKyMry8vLQORwghxA9UV1dTUFBAcHCw1TflCyGEuP/c7vdKa3MD2bMlhBBCCCGEEBYgyZadqa2tJ+t4Pv/46xmtQxFCCCGEEELchuzZsjO1NXX8etE7AIwc3w+dq/20ixVCCCGEEOLHRFa27IxHB1ecnBwBKCu9oXE0QgghhBBCiJZIsmVnFEXBy9sdgLJrlRpHI4QQQgghhGiJJFt2SN+xMdkql5UtIYQQQgghbJYkW3bImGyVXZNkSwghhBBCCFslyZYd0nt7AFAqZYRCCCGEEELYLEm27JCXlBEKIYQQQghh8yTZskPeHaVBhhBC3E/WrVvHsGHD8PT0xNfXlxkzZnD+/Hmtw7Jrx44dY+rUqQQEBKAoCvv37ze7P2/ePBRFMfsYPny4NsHagda8RisqKli4cCGBgYG4ubnRr18/EhMTNYrYvqxbtw5FUVi6dKnpmqqqxMbGEhAQgJubG2PHjuXs2bPaBWnjYmNjm3xP+/n5me6///77TJ48mc6dO6MoCrm5uVaJS5ItO6Tv2FhGKHu2hBDi/pCRkUF0dDSZmZkcOXKE+vp6Jk2aRGWlvKl2tyorKxk8eDAJCQktjnn00UcpLCw0ffz1r3+1YoT2pTWv0WXLlpGWlsY777zDuXPnWLZsGYsWLeLAgQMaRm77srKy2L59OyEhIWbXN27cyKZNm0hISCArKws/Pz8mTpzI9evXNYrU9g0YMMDsezovL890r7KykpEjR7J+/XqrxiSHGtuh71u/S7IlhBD3g7S0NLPHu3btwtfXl5ycHEaPHq1RVPYtIiKCiIiI247R6XRm73yLlrXmNfrxxx8TFRXF2LFjAfjFL37Btm3byM7OZvr06dYO2S5UVFQwd+5cduzYQVxcnOm6qqps3ryZV199lZkzZwKQlJRE165d2bNnDwsWLNAqZJvm5OTU4vd0ZGQkABcvXrRiRJJs2SXTylapvOMphBC3o6oqNTdqNJlb565DUZS7+tyysjIAOnXq1J4h3TNVVamuqdNkbled810/ny1JT0/H19cXb29vxowZw9q1a/H19W3XOe5EVVWq6uqtOqeRm7NTu75GR40aRWpqKs899xwBAQGkp6dz4cIFtmzZ0i7xtoaqqlQbNHqNOrb9NRodHc2UKVMIDw83S7YKCgooKipi0qRJpms6nY4xY8Zw4sQJqyZbqqpSr1ZbbT4jJ8W1zc9nfn4+AQEB6HQ6QkNDiY+Pp0ePHhaKsHUk2bJD3tL6XQghWqXmRg3TfZ7XZO4D3+7E1cO1zZ+nqioxMTGMGjWKgQMHWiCyu1ddU8ejT1nvD+dbpe1dgpurS7t9vYiICJ566imCgoIoKChgzZo1jB8/npycHHQ6XbvNcydVdfU8vKHlUkdLOr1yIe4uzm3+vJZeo2+88QYvvvgigYGBODk54eDgwB//+EdGjRrVnmHfVrWhjrAPf2e1+W718eQ1uDm1/jWanJzMqVOnyMrKanKvqKgIgK5du5pd79q1K19++eW9BdpG9Wo1O/Ifs+qcAC/2+ivOilurx4eGhrJ792569+5NcXExcXFxjBgxgrNnz+Lj42PBSG9Pki07ZCwjvF5WhcHQgKOjbL0TQoj7xcKFCzlz5gzHjx/XOpT72jPPPGP674EDBzJ06FCCgoI4ePCgqWxLNK+l1+gbb7xBZmYmqampBAUFcezYMV566SX8/f0JDw/XKFrbdPnyZZYsWcLhw4dxdW35TZkfruyoqtruK7z3i1vLhgcNGkRYWBgPPvggSUlJxMTEaBaXJFt2yEvfmGypqsr1siq8O3loHJEQQtgmnbuOA9/u1Gzutlq0aBGpqakcO3aMwMBAC0R1b1x1zqTtXaLZ3Jbk7+9PUFAQ+fn5Fp3nh9ycnTi9cqFV57x17rZq6TVaVVXF6tWrSUlJYcqUKQCEhISQm5vL73//e6slW66Oznw8eY1V5mpu7tbKycmhpKSEIUOGmK4ZDAaOHTtGQkKCqdNjUVER/v7+pjElJSVNVrsszUlx5cVe1m8e46S0vTLgVh4eHgwaNMjq39M/JMmWHXJydqSDlxsV5VWUXauUZEsIIVqgKMpdlfJZm6qqLFq0iJSUFNLT0wkODtY6pGYpitKupXy25Ntvv+Xy5ctmf9hag6Iod1XKZ213eo3W1dVRV1eHg4N5tY2joyMNDQ1Wi1NRlDaV8mllwoQJZp3yAObPn0/fvn1ZuXIlPXr0wM/PjyNHjvDwww8DUFtbS0ZGBhs2bLBqrIqitKmcz1bU1NRw7tw5HnnkEU3jkGTLTum93akor5KDjYUQ4j4QHR3Nnj17OHDgAJ6enqb9Gnq9Hjc3+/sjxxZUVFTw+eefmx4XFBSQm5tLp06d6NSpE7GxsTz55JP4+/tz8eJFVq9eTefOnXniiSc0jNp23ek16uXlxZgxY1ixYgVubm4EBQWRkZHB7t272bRpk8bR2x5PT88mezI9PDzw8fExXV+6dCnx8fH06tWLXr16ER8fj7u7O3PmzNEiZJu3fPlypk6dSvfu3SkpKSEuLo7y8nKioqIA+O6777h06RJff/01gGn10M/Pz6JdSSXZslP6ju58delbSqVJhhBC2D3jwa/GltlGu3btYt68edYP6D6QnZ3NuHHjTI+NezaioqJITEwkLy+P3bt3U1pair+/P+PGjeO9997D09NTq5BtWmteo8nJyaxatYq5c+fy3XffERQUxNq1a/nlL39p5WjvD6+88gpVVVW89NJLXLt2jdDQUA4fPiyv0RZcuXKF2bNnc/XqVbp06cLw4cPJzMwkKCgIgNTUVObPn28aP2vWLAB+85vfEBsba7G4FFVVVYt99ftIeXk5er2esrIyvLy8tA6H2GXv8nH6v1i0+nEef2qY1uEIIYTmqqurKSgoIDg4+LYbzoUQQojWuN3vldbmBtLGzk7pb3YklDJCIYQQQgghbJMkW3ZKbzprSw42FkIIIYQQwhZpmmzV19fz61//muDgYNzc3OjRowe//e1vzbrWqKpKbGwsAQEBuLm5MXbsWM6ePWv2dWpqali0aBGdO3fGw8ODadOmceXKFbMx165dIzIyEr1ej16vJzIyktLSUmv8My1C37GxA6Hs2RJCCCGEEMI2aZpsbdiwga1bt5KQkMC5c+fYuHEjr732Gm+++aZpzMaNG9m0aRMJCQlkZWXh5+fHxIkTuX79umnM0qVLSUlJITk5mePHj1NRUcHjjz+OwWAwjZkzZw65ubmkpaWRlpZGbm4ukZGRVv33ticvKSMUQgghhBDCpmnajfDjjz9m+vTppsPvHnjgAd59912ys7OBxlWtzZs38+qrr5pOc09KSqJr167s2bOHBQsWUFZWxs6dO/nzn/9sOjDvnXfeoVu3bvztb39j8uTJnDt3jrS0NDIzMwkNDQVgx44dhIWFcf78efr06aPBv/7eeN9c2ZIyQiGEEEIIIWyTpitbo0aN4u9//zsXLlwA4NNPP+X48eM89thjQOOZGEVFRUyaNMn0OTqdjjFjxnDixAmg8QTuuro6szEBAQEMHDjQNObjjz9Gr9ebEi2A4cOHo9frTWPszfd7tmRlSwghhBBCCFuk6crWypUrKSsro2/fvjg6OmIwGFi7di2zZ88GMB2Y17VrV7PP69q1K19++aVpjIuLCx07dmwyxvj5RUVF+Pr6Npnf19fXNOaHampqqKmpMT0uLy+/y3+lZXgZk63SG6iqiqIoGkckhBBCCCGEuJWmK1vvvfce77zzDnv27OHUqVMkJSXx+9//nqSkJLNxP0wkWpNc/HBMc+Nv93XWrVtnaqah1+vp1q1ba/9ZVmEsI6yrrafqRq3G0QghhBBCCCF+SNNka8WKFfzqV79i1qxZDBo0iMjISJYtW8a6desA8PPzA2iy+lRSUmJa7fLz86O2tpZr167ddkxxcXGT+b/55psmq2ZGq1atoqyszPRx+fLle/vHtjNXNxd0rs6A7NsSQgghhBDCFmmabN24cQMHB/MQHB0dTa3fg4OD8fPz48iRI6b7tbW1ZGRkMGLECACGDBmCs7Oz2ZjCwkI+++wz05iwsDDKysr45JNPTGNOnjxJWVmZacwP6XQ6vLy8zD5sjbEjYZl0JBRCCCGEEMLmaJpsTZ06lbVr13Lw4EEuXrxISkoKmzZt4oknngAaS/+WLl1KfHw8KSkpfPbZZ8ybNw93d3fmzJkDgF6v5/nnn+fll1/m73//O6dPn+bnP/85gwYNMnUn7NevH48++igvvvgimZmZZGZm8uKLL/L444/bZSdCI2mSIYQQ94fExERCQkJMb+6FhYVx6NAhrcOya8eOHWPq1KkEBASgKAr79+9vMubcuXNMmzYNvV6Pp6cnw4cP59KlS9YP1g6sW7eOYcOG4enpia+vLzNmzOD8+fNmY4qLi5k3bx4BAQG4u7vz6KOPkp+fr1HE9mXdunWmv3uN3n//fSZPnkznzp1RFIXc3FzN4rMHsbGxKIpi9mGskqurq2PlypUMGjQIDw8PAgICePbZZ/n6668tHpemydabb77Jz372M1566SX69evH8uXLWbBgAb/73e9MY1555RWWLl3KSy+9xNChQ/nqq684fPgwnp6epjF/+MMfmDFjBk8//TQjR47E3d2dv/zlLzg6OprG/Pd//zeDBg1i0qRJTJo0iZCQEP785z9b9d/b3vTS/l0IIe4LgYGBrF+/nuzsbLKzsxk/fjzTp0/n7NmzWodmtyorKxk8eDAJCQnN3v/3v//NqFGj6Nu3L+np6Xz66aesWbMGV1dXK0dqHzIyMoiOjiYzM5MjR45QX1/PpEmTqKxs/BtEVVVmzJjBF198wYEDBzh9+jRBQUGEh4ebxojmZWVlsX37dkJCQsyuV1ZWMnLkSNavX69RZPZnwIABFBYWmj7y8vKAxmq6U6dOsWbNGk6dOsX777/PhQsXmDZtmsVjUlRVVS0+y32gvLwcvV5PWVmZzZQUbnh1H//46xleWDaJp54dqXU4QgihqerqagoKCggODr4v/mDu1KkTr732Gs8//7zWodg9RVFISUlhxowZpmuzZs3C2dnZ7t941co333yDr68vGRkZjB49mgsXLtCnTx8+++wzBgwYAIDBYMDX15cNGzbwwgsvaByxbaqoqOD//J//w1tvvUVcXBwPPfQQmzdvNhtz8eJFgoODOX36NA899JAmcdqD2NhY9u/f3+oVwKysLH7605/y5Zdf0r1792bH3O73SmtzA01bv4t7830ZobxjJIQQzVFVlRqNOrbq3F3u6lgOg8HA3r17qaysJCwszAKR3T1VVamuqdNkbledc7sdc9LQ0MDBgwd55ZVXmDx5MqdPnyY4OJhVq1aZJWTWoKoqVXX1Vp3TyM3Z6a6f07KyMqDxTQHAdFzOrX+QOjo64uLiwvHjx62WbKmqSrVBo9eoY9tfo9HR0UyZMoXw8HDi4uIsFNm9UVWVerXa6vM6Ka5tfj7z8/MJCAhAp9MRGhpKfHw8PXr0aHZsWVkZiqLg7e3dDtG2TJItO/Z9GaHs2RJCiObU3Khlhv8vNZl7f+FWXD10rR6fl5dHWFgY1dXVdOjQgZSUFPr372/BCNuuuqaOSbPf0GTuw+8uxs3VpV2+VklJCRUVFaxfv564uDg2bNhAWloaM2fO5OjRo4wZM6Zd5mmNqrp6Hvp986WOlpa7fCHuLs5t/jxVVYmJiWHUqFEMHDgQgL59+xIUFMSqVavYtm0bHh4ebNq0iaKiIgoLC9s79BZVG+oY87dYq813q4zwWNycWv8aTU5O5tSpU2RlZVkwqntXr1aT/O9xVp931oNHcVbcWj0+NDSU3bt307t3b4qLi4mLi2PEiBGcPXsWHx8fs7HV1dX86le/Ys6cORavWJNky47pb3YjLJdkSwgh7F6fPn3Izc2ltLSUffv2ERUVRUZGhs0lXPcDY9fj6dOns2zZMgAeeughTpw4wdatW62abNmjhQsXcubMGY4fP2665uzszL59+3j++efp1KkTjo6OhIeHExERoWGktuvy5cssWbKEw4cP3xdlz7bg1tfaoEGDCAsL48EHHyQpKYmYmBjTvbq6OmbNmkVDQwNvvfWWxeOSZMuOSYMMIYS4PZ27C/sLt2o2d1u4uLjQs2dPAIYOHUpWVhZbtmxh27ZtlgjvrrjqnDn87mLN5m4vnTt3xsnJqUki269fP7MEwhrcnJ3IXb7QqnPeOndbLVq0iNTUVI4dO0ZgYKDZvSFDhpCbm0tZWRm1tbV06dKF0NBQhg4d2l4h35GrozMZ4bFWm++Hc7dWTk4OJSUlDBkyxHTNYDBw7NgxEhISqKmpMWv0piUnxZVZDx7VZN574eHhwaBBg8w6YtbV1fH0009TUFDAP/7xD6v0YZBky44Zz9kqlXO2hBCiWYqitKmUz5aoqmraB2MrFEVpt1I+Lbm4uDBs2LAmrcsvXLhAUFCQVWNRFOWuSvmsTVVVFi1aREpKCunp6QQHB7c4Vq/XA437Z7Kzs826TFuaoihtKuXTyoQJE0yd8ozmz59P3759Wblypc0kWtD4nLalnM9W1NTUcO7cOR555BHg+0QrPz+fo0ePNikttBRJtuyYsUGGlBEKIYR9W716NREREXTr1o3r16+TnJxMeno6aWlpWodmtyoqKvj8889NjwsKCsjNzaVTp050796dFStW8MwzzzB69GjGjRtHWloaf/nLX0hPT9cuaBsWHR3Nnj17OHDgAJ6enhQVFQGNiZWbW+Mf4nv37qVLly50796dvLw8lixZwowZM5g0aZKWodskT09P0343Iw8PD3x8fEzXv/vuOy5dumQ6C8r45oCfn5/p/CjxveXLlzN16lS6d+9OSUkJcXFxlJeXExUVRX19PT/72c84deoUH3zwAQaDwfQa7tSpEy4ulkvQJdmyY943ywgrK6qpq6vH+S7KAYQQQmivuLiYyMhICgsL0ev1hISEkJaWxsSJE7UOzW5lZ2czbtz3m/qNezaioqL405/+xBNPPMHWrVtZt24dixcvpk+fPuzbt49Ro0ZpFbJNS0xMBGDs2LFm13ft2sW8efMAKCwsJCYmhuLiYvz9/Xn22WdZs2aNlSO9f6SmpjJ//nzT41mzZgHwm9/8htjYWI2isl1Xrlxh9uzZXL16lS5dujB8+HAyMzMJCgri4sWLpKamAjRpn3/06NEmr+v2JOdstZItnrPV0NDAlGG/paFBZc+HL+PjaxtxCSGEFu63c7aEEEJoqz3O2XKwdJDCchwcHPDU3zxrS/ZtCSGEEEIIYVMk2bJz3x9sLMmWEEIIIYQQtkSSLTtnPGtL2r8LIYQQQghhWyTZsnOms7akjFAIIYQQQgibIsmWnfu+jFBWtoQQQgghhLAlkmzZOWMZYbmsbAkhhBBCCGFTJNmyc8YywlJpkCGEEEIIIYRNkWTLzpn2bEkZoRBCCCGEEDZFki0759VRygiFEEIIIYSwRZJs2TlvOWdLCCGEEEIImyTJlp27tfV7Q0ODxtEIIYRoD+vWrUNRFJYuXap1KHbr2LFjTJ06lYCAABRFYf/+/Wb3FUVp9uO1117TJmAbl5iYSEhICF5eXnh5eREWFsahQ4dM91VVJTY2loCAANzc3Bg7dixnz57VMGL78sPv+bq6OlauXMmgQYPw8PAgICCAZ599lq+//lrbQG1YbGxsk+9nPz8/s/t9+/bFw8ODjh07Eh4ezsmTJy0elyRbds7rZjfCBkMDlRU1GkcjhBDiXmVlZbF9+3ZCQkK0DsWuVVZWMnjwYBISEpq9X1hYaPbx9ttvoygKTz75pJUjtQ+BgYGsX7+e7OxssrOzGT9+PNOnTzclVBs3bmTTpk0kJCSQlZWFn58fEydO5Pr16xpHbvua+56/ceMGp06dYs2aNZw6dYr333+fCxcuMG3aNA0jtX0DBgww+77Oy8sz3evduzcJCQnk5eVx/PhxHnjgASZNmsQ333xj0ZicLPrVhcW5uDjh7qHjRmUNZdcq8fRy0zokIYQQd6miooK5c+eyY8cO4uLitA7HrkVERBAREdHi/Vvf8QY4cOAA48aNo0ePHpYOzS5NnTrV7PHatWtJTEwkMzOT/v37s3nzZl599VVmzpwJQFJSEl27dmXPnj0sWLBAi5DtQkvf83q9niNHjpiNffPNN/npT3/KpUuX6N69u7VDtQtOTk5NvreN5syZY/Z406ZN7Ny5kzNnzjBhwgTLxWSxryysRt/R/WaydYPAIK2jEUII26GqKjU3ajWZW+fugqIobfqc6OhopkyZQnh4uE0mW6qqUl1Tr8ncrjqnNj+frVVcXMzBgwdJSkqyyNe/HVVVqarT5jl1c76759RgMLB3714qKysJCwujoKCAoqIiJk2aZBqj0+kYM2YMJ06csGqypaoq1Q11VpvvVq4Ozhb9ni8rK0NRFLy9ve8hyrZTVRWDWm3VOQEcFdc2P5/5+fkEBASg0+kIDQ0lPj6+2TdQamtr2b59O3q9nsGDB7dXyM2SZOs+4OXtTuGVa9IkQwghfqDmRi1PPLBEk7lTLm7B1UPX6vHJycmcOnWKrKwsC0Z1b6pr6pnw7BuazP333Ytxc3W2yNdOSkrC09PTtCpjTVV19YRsedPq8wKcWbIId5fWP6d5eXmEhYVRXV1Nhw4dSElJoX///pw4cQKArl27mo3v2rUrX375ZbvGfCfVDXVMTn/VqnMafTh2LW6OLq0e35bv+erqan71q18xZ84cvLy87iXMNjOo1aQWjLDqnADTgk/gpLS+Yis0NJTdu3fTu3dviouLiYuLY8SIEZw9exYfHx8APvjgA2bNmsWNGzfw9/fnyJEjdO7c2VL/BECSrfuCnLUlhBD27fLlyyxZsoTDhw/j6uqqdTg/Om+//TZz586V5/4O+vTpQ25uLqWlpezbt4+oqCgyMjJM93+4CqGqqsVWI+1dW77n6+rqmDVrFg0NDbz11ltWitD+3Fo2PGjQIMLCwnjwwQdJSkoiJiYGgHHjxpGbm8vVq1fZsWMHTz/9NCdPnsTX19dicUmydR/Qm9q/S7IlhBC30rm7kHJxi2Zzt1ZOTg4lJSUMGTLEdM1gMHDs2DESEhKoqanB0dHREmG2iavOib/vXqzZ3Jbw0Ucfcf78ed577z2LfP07cXN24sySRZrN3RYuLi707NkTgKFDh5KVlcWWLVtYuXIlAEVFRfj7+5vGl5SUNFntsjRXB2c+HLvWqnPeOndrtfZ7vq6ujqeffpqCggL+8Y9/WH1VCxrL+aYFn9Bk3nvh4eHBoEGDyM/PN7vWs2dPevbsyfDhw+nVqxc7d+5k1apV9xpuiyTZug/ob3YkLJODjYUQwoyiKG0q5dPKhAkTzLpmAcyfP5++ffuycuVKm0i0oPH5tFQpn1Z27tzJkCFDLL5voyWKorSplM+WqKpKTU0NwcHB+Pn5ceTIER5++GGgcU9MRkYGGzZssGpMiqK0qZRPK635njcmWvn5+Rw9etRUCmdtiqK0qZzPVtTU1HDu3DkeeeSRFscYX8OWJMnWfeD7MkJJtoQQwh55enoycOBAs2seHh74+Pg0uS5ap6Kigs8//9z0uKCggNzcXDp16mTq5FZeXs7evXt5/fXXtQrTbqxevZqIiAi6devG9evXSU5OJj09nbS0NNP5UPHx8fTq1YtevXoRHx+Pu7t7kw5wotGdvufr6+v52c9+xqlTp/jggw8wGAwUFRUB0KlTJ1xcbD+htLbly5czdepUunfvTklJCXFxcZSXlxMVFUVlZSVr165l2rRp+Pv78+233/LWW29x5coVnnrqKYvGJcnWfUD2bAkhhBDmsrOzGTdunOmxcc9GVFQUf/rTn4DGBgWqqjJ79mwtQrQrxcXFREZGUlhYiF6vJyQkhLS0NCZOnAjAK6+8QlVVFS+99BLXrl0jNDSUw4cP4+npqXHk9unKlSukpqYC8NBDD5ndO3r0KGPHjrV+UDbuypUrzJ49m6tXr9KlSxeGDx9OZmYmQUFBVFdX869//YukpCSuXr2Kj48Pw4YN46OPPmLAgAEWjUtRVVW16Az3ifLycvR6PWVlZZrUy95OZsZ5frN0D737B/Dmf8tZFkKIH6fq6moKCgoIDg6WRgdCCCHu2e1+r7Q2N3CwdJDC8r5vkCFlhEIIIYQQQtgKSbbuA8YywlIpIxRCCCGEEMJmSLJ1HzB2I6yprqO6qlbjaIQQQgghhBAgydZ9wb2DDienxrbA5dL+XQghhBBCCJsgydZ9QFEU2bclhBBCCCGEjZFk6z7hJQcbCyGEEEIIYVMk2bpPyFlbQgghhBBC2BZJtu4T3qYyQkm2hBBCCCGEsAWSbN0npIxQCCGEEEII2yLJ1n3i+zJCSbaEEEIIIYSwBZJs3Sf0UkYohBB2KzY2FkVRzD78/Py0DsuuHTt2jKlTpxIQEICiKOzfv9/sfnFxMfPmzSMgIAB3d3ceffRR8vPztQnWDiQmJhISEoKXlxdeXl6EhYVx6NAh0/3333+fyZMn07lzZxRFITc3V7tg7dC6detQFIWlS5earsXGxtK3b188PDzo2LEj4eHhnDx5UrsgbVxbfo4uWLAARVHYvHmzxeOSZOs+YVrZkjJCIYSwSwMGDKCwsND0kZeXp3VIdq2yspLBgweTkJDQ5J6qqsyYMYMvvviCAwcOcPr0aYKCgggPD6eyUt60bE5gYCDr168nOzub7Oxsxo8fz/Tp0zl79izQ+HyPHDmS9evXaxyp/cnKymL79u2EhISYXe/duzcJCQnk5eVx/PhxHnjgASZNmsQ333yjUaS2rzU/R/fv38/JkycJCAiwSkxOVplFWJycsyWEEPbNyclJVrPaUUREBBEREc3ey8/PJzMzk88++4wBAwYA8NZbb+Hr68u7777LCy+8YM1Q7cLUqVPNHq9du5bExEQyMzMZMGAAkZGRAFy8eFGD6OxXRUUFc+fOZceOHcTFxZndmzNnjtnjTZs2sXPnTs6cOcOECROsGabduNPP0a+++oqFCxfy4YcfMmXKFOvEZJVZhMVJ63chhGhKVVVqqmo1mVvn5oKiKK0en5+fT0BAADqdjtDQUOLj4+nRo4cFI2w7VVWprqnXZG5XnVObns/bqampafyarq6ma46Ojri4uHD8+HGrJluqqlJVr81z6uZ0d8+pwWBg7969VFZWEhYWZoHI7p6qqlQ3aPM97+rQtu95gOjoaKZMmUJ4eHiTZOtWtbW1bN++Hb1ez+DBg+811DZRVZUGtcqqcwI4KG5tfj5v93O0oaGByMhIVqxYYXqTxRok2bpP6G92I6wor8ZQb8DRyVHjiIQQQns1VbU80Wu5JnOn5P8eV3ddq8aGhoaye/duevfuTXFxMXFxcYwYMYKzZ8/i4+Nj4Uhbr7qmnnHPv6HJ3Ed3LsbN1bldvlbfvn0JCgpi1apVbNu2DQ8PDzZt2kRRURGFhYXtMkdrVdXXMzDhTavOafTZwkW4O7f+Oc3LyyMsLIzq6mo6dOhASkoK/fv3t2CEbVfdUMu0j36lydypj6zHzbF13/MAycnJnDp1iqysrBbHfPDBB8yaNYsbN27g7+/PkSNH6Ny5c3uE22oNahX/+HKIVecEGB+Ug6Pi3urxd/o5umHDBpycnFi8eLEFo25Kkq37hJfeDWh89+F6eRXenTpoHJEQQojWurXcbdCgQYSFhfHggw+SlJRETEyMhpHdn5ydndm3bx/PP/88nTp1wtHRkfDw8BbLDkWjPn36kJubS2lpKfv27SMqKoqMjAybS7jsweXLl1myZAmHDx82W2H9oXHjxpGbm8vVq1fZsWMHTz/9NCdPnsTX19eK0dqH2/0cHTNmDFu2bOHUqVPttkLeWpJs3SccnRzx1LtxvayK0ms3JNkSQggaS/lS8n+v2dx3y8PDg0GDBtlcdzxXnRNHd1r3XeFb525PQ4YMITc3l7KyMmpra+nSpQuhoaEMHTq0Xee5EzcnJz5buMiqc946d1u4uLjQs2dPAIYOHUpWVhZbtmxh27Ztlgjvrrg6uJD6iDZNOlwdWv89n5OTQ0lJCUOGfL9iZDAYOHbsGAkJCdTU1ODo6IiHhwc9e/akZ8+eDB8+nF69erFz505WrVpliX9CsxwUN8YH5VhtvlvnvRe3/hx1cHCgpKSE7t27m+4bDAZefvllNm/ebNG9hpJs3Uf03u5cL6uiXJpkCCEEAIqitLqUz5bU1NRw7tw5HnnkEa1DMaMoSruV8tkKvV4PNO71yM7O5ne/+51V51cUpU2lfLZEVVXT/jdboShKm0r5tDJhwoQmnfLmz59P3759WblyJY6OzW8H0eI5VxSlTeV8tuLWn6ORkZGEh4eb3Z88eTKRkZHMnz/fonFIsnUf0Xf04MqX30qTDCGEsDPLly9n6tSpdO/enZKSEuLi4igvLycqKkrr0OxWRUUFn3/+uelxQUEBubm5dOrUie7du7N37166dOlC9+7dycvLY8mSJcyYMYNJkyZpGLXtWr16NREREXTr1o3r16+TnJxMeno6aWlpAHz33XdcunSJr7/+GoDz588D4OfnJ102m+Hp6cnAgQPNrnl4eODj48PAgQOprKxk7dq1TJs2DX9/f7799lveeustrly5wlNPPaVR1Lbtdj9HfXx8mux/dXZ2xs/Pjz59+lg0Lkm27iPG9u+lkmwJIYRduXLlCrNnz+bq1at06dKF4cOHk5mZSVBQkNah2a3s7GzGjRtnemzc+xYVFcWf/vQnCgsLiYmJobi4GH9/f5599lnWrFmjVbg2r7i4mMjISAoLC9Hr9YSEhJCWlsbEiRMBSE1NNVshmDVrFgC/+c1viI2N1SJku+bo6Mi//vUvkpKSuHr1Kj4+PgwbNoyPPvrIqp307Imt/hxVVFVVNY3ATpSXl6PX6ykrK8PLy0vrcJr1h98eIC3lFM/+33HM/cVYrcMRQgirqq6upqCggODg4NtuOBdCCCFa43a/V1qbGzhYOkhhPd+ftSV7toQQQgghhNCaJFv3Ee+bZYSyZ0sIIYQQQgjtSbJ1H/HyvrmyVSorW0IIIYQQQmhNkq37iN60siXJlhBCCCGEEFqTZOs+4m3asyVlhEIIIYQQQmhNkq37iJd348pWeekNpMmkEEIIIYQQ2pJk6z5iLCOsqzNwo9K2TnQXQgghhBDix0aSrfuIq5sLOldnQPZtCSGEEEIIoTVJtu4z+ltKCYUQQgghhBDakWTLztQY6jlW+AV/+fJss/eNBxuXSpMMIYQQQgghNCXJlp2pNdQzPyOZpR8foLq+rsl9af8uhBD26auvvuLnP/85Pj4+uLu789BDD5GTk6N1WHZp3bp1DBs2DE9PT3x9fZkxYwbnz583G6OqKrGxsQQEBODm5sbYsWM5e7b5NzIFJCYmEhISgpeXF15eXoSFhXHo0CEA6urqWLlyJYMGDcLDw4OAgACeffZZvv76a42jth/r1q1DURSWLl3a7P0FCxagKAqbN2+2alz2JDY2FkVRzD78/PxM9+fNm9fk/vDhwy0elyRbdqaDsw5HRQGgtLa6yX1jslVeKitbQghhL65du8bIkSNxdnbm0KFD/POf/+T111/H29tb69DsUkZGBtHR0WRmZnLkyBHq6+uZNGkSlZXf/27cuHEjmzZtIiEhgaysLPz8/Jg4cSLXr1/XMHLbFRgYyPr168nOziY7O5vx48czffp0zp49y40bNzh16hRr1qzh1KlTvP/++1y4cIFp06ZpHbZdyMrKYvv27YSEhDR7f//+/Zw8eZKAgAArR2Z/BgwYQGFhoekjLy/P7P6jjz5qdv+vf/2rxWNysvgMol0pioLexY3vam5QVluFn7un2X29t/GsLVnZEkIIe7Fhwwa6devGrl27TNceeOAB7QKyc2lpaWaPd+3aha+vLzk5OYwePRpVVdm8eTOvvvoqM2fOBCApKYmuXbuyZ88eFixYoEXYNm3q1Klmj9euXUtiYiKZmZk8//zzHDlyxOz+m2++yU9/+lMuXbpE9+7drRmqXamoqGDu3Lns2LGDuLi4Jve/+uorFi5cyIcffsiUKVM0iNC+ODk5ma1m/ZBOp7vtfUuQZMsOddQ1JlvXaqqa3DOubMmeLSGEaCwVq6mq1WRunZsLys1KhDtJTU1l8uTJPPXUU2RkZPCTn/yEl156iRdffNHCUbaNqqpU19ZrMreri1Orn88fKisrA6BTp04AFBQUUFRUxKRJk0xjdDodY8aM4cSJE1ZNtlRVpapem+fUzenunlODwcDevXuprKwkLCys2TFlZWUoimL11VlVValp0Oh73qH13/NG0dHRTJkyhfDw8CbJVkNDA5GRkaxYsYIBAwa0Z6htoqoqDWrTvzktzUFxa/PzmZ+fT0BAADqdjtDQUOLj4+nRo4fpfnp6Or6+vnh7ezNmzBjWrl2Lr69ve4duRpItO6R3cQOgtLbpC9+ro3QjFEIIo5qqWp4YsEqTuVPOrsPVXdeqsV988QWJiYnExMSwevVqPvnkExYvXoxOp+PZZ5+1cKStV11bz5gFb2oyd8a2RbjpnNv8eaqqEhMTw6hRoxg4cCAARUVFAHTt2tVsbNeuXfnyyy/vPdg2qKqvZ8DWN6w6p9HZXy7G3bn1z2leXh5hYWFUV1fToUMHUlJS6N+/f5Nx1dXV/OpXv2LOnDl4eXm1Z8h3VNNQyzMfv2zVOY3eC3sdV8fWfc8DJCcnc+rUKbKyspq9v2HDBpycnFi8eHF7hXhXGtQqTl4eaPV5Q7t9hqPi3vrxoaHs3r2b3r17U1xcTFxcHCNGjODs2bP4+PgQERHBU089RVBQEAUFBaxZs4bx48eTk5ODTtf6/29tJcmWHep4m2TLu6OUEQohhL1paGhg6NChxMfHA/Dwww9z9uxZEhMTbSrZskcLFy7kzJkzHD9+vMm9H75rrqrqXa+e/Rj06dOH3NxcSktL2bdvH1FRUWRkZJglXHV1dcyaNYuGhgbeeustDaO1bZcvX2bJkiUcPnwYV1fXJvdzcnLYsmULp06dktdkK0VERJj+e9CgQYSFhfHggw+SlJRETEwMzzzzjOn+wIEDGTp0KEFBQRw8eNBUTmwJkmzZIb1L4zdlabNlhMZkS8oIhRBC5+ZCytl1ms3dWv7+/k1WCPr168e+ffvaO6x74uriRMa2RZrN3VaLFi0iNTWVY8eOERgYaLpu3LNRVFSEv7+/6XpJSUmT1S5Lc3Ny4uwvtVm5cHNq23Pq4uJCz549ARg6dChZWVls2bKFbdu2AY2J1tNPP01BQQH/+Mc/rL6qBY2lfO+FvW71eY1zt1ZOTg4lJSUMGTLEdM1gMHDs2DESEhLYsGEDJSUlZvvdDAYDL7/8Mps3b+bixYvtGfptOShuhHb7zGrz3TrvvfDw8GDQoEHk5+c3e9/f35+goKAW77cXSbbsUEedcWWraTdCr5uHGpdJGaEQQqAoSqtL+bQ0cuTIJq3JL1y4QFBQkEYRNU9RlLsq5bM2VVVZtGgRKSkppKenExwcbHY/ODgYPz8/jhw5wsMPPwxAbW0tGRkZbNiwwaqxKorSplI+W6KqKjU1NcD3iVZ+fj5Hjx7Fx8dHk5gURWlTKZ9WJkyY0KRT3vz58+nbty8rV67E39+fyZMnm92fPHkykZGRzJ8/35qhoihKm8r5bEVNTQ3nzp3jkUceafb+t99+y+XLl83ecLEESbbskGnP1m0aZNyoqKG2th6Xu3gnUAghhHUtW7aMESNGEB8fz9NPP80nn3zC9u3b2b59u9ah2aXo6Gj27NnDgQMH8PT0NO3R0uv1uLm5mc4zio+Pp1evXvTq1Yv4+Hjc3d2ZM2eOxtHbptWrVxMREUG3bt24fv06ycnJpKenk5aWRn19PT/72c84deoUH3zwAQaDwfScd+rUCReX1q/4/Fh4enqa9hAaeXh44OPjY7r+w4TV2dkZPz8/+vTpY7U47cny5cuZOnUq3bt3p6SkhLi4OMrLy4mKiqKiooLY2FiefPJJ/P39uXjxIqtXr6Zz58488cQTFo1L/hK3Q9+vbDVNtjp4uuLg6ECDoYHy0ht09rX+Er4QQoi2GTZsGCkpKaxatYrf/va3BAcHs3nzZubOnat1aHYpMTERgLFjx5pd37VrF/PmzQPglVdeoaqqipdeeolr164RGhrK4cOH8fT0RDRVXFxMZGQkhYWF6PV6QkJCSEtLY+LEiVy8eJHU1FQAHnroIbPPO3r0aJP/D0JYwpUrV5g9ezZXr16lS5cuDB8+nMzMTIKCgqiqqiIvL4/du3dTWlqKv78/48aN47333rP497yiqqpq0RnuE+Xl5ej1esrKyjSpQb7VXy+dY9GJFIZ16UbyhMgm95+ZsJHS7yp5K/n/8mAf654lIIQQWqmurqagoIDg4OBmN5wLIYQQbXG73yutzQ0cLB2kaH+3a5AB0iRDCCGEEEIIWyDJlh3qqLt5cHEzZYTw/b4taf8uhBBCCCGEdiTZskPexpWt2iqaqwLVexsPNpaVLSGEEEIIIbQiyZYd8r7ZIKOuoYEb9XVN7hvLCEtlZUsIIYQQQgjNSLJlh9wcnXFxcASaLyU0lhGWy1lbQgghhBBCaEaSLTukKAreN8/autbcWVvGg42lQYYQQgghhBCakWTLThlLCcuaXdkydiOUlS0hhBBCCCG0IsmWnTI2ybh2u2RLygiFEEIIIYTQjCRbdsq0stVMGaGXlBEKIYQQQgihOUm27JRpz1YzK1vexgYZZVU0NDRYNS4hhBBCCCFEI0m27JQx2SqrrW5yz+tmstVgaKDietP7QgghbMsDDzyAoihNPqKjo7UOzS6tW7eOYcOG4enpia+vLzNmzOD8+fNmY95//30mT55M586dURSF3NxcbYK1E4mJiYSEhODl5YWXlxdhYWEcOnTIdD82Npa+ffvi4eFBx44dCQ8P5+TJkxpGbF/WrVuHoigsXbrUdG3evHlNfiYMHz5cuyBtXGxsbJPny8/Pz2zMuXPnmDZtGnq9Hk9PT4YPH86lS5csGpckW3bKWEbYXDdCZ2cn3DvoAGmSIYQQ9iArK4vCwkLTx5EjRwB46qmnNI7MPmVkZBAdHU1mZiZHjhyhvr6eSZMmUVn5fXl9ZWUlI0eOZP369RpGaj8CAwNZv3492dnZZGdnM378eKZPn87Zs2cB6N27NwkJCeTl5XH8+HEeeOABJk2axDfffKNx5LYvKyuL7du3ExIS0uTeo48+avaz4a9//asGEdqPAQMGmD1feXl5pnv//ve/GTVqFH379iU9PZ1PP/2UNWvW4OrqatGYnCz61YXFGFe2mjtnCxqbZNyoqKHsWiXdHuhszdCEEEK0UZcuXcwer1+/ngcffJAxY8ZoFJF9S0tLM3u8a9cufH19ycnJYfTo0QBERkYCcPHiRWuHZ5emTp1q9njt2rUkJiaSmZnJgAEDmDNnjtn9TZs2sXPnTs6cOcOECROsGapdqaioYO7cuezYsYO4uLgm93U6XZPVGdEyJyenFp+vV199lccee4yNGzearvXo0cPyMVl8BmERxpWt0mZWtgC8vd0pvPydHGwshPhRU1WVmqo6TebWuTmjKEqbP6+2tpZ33nmHmJiYu/p8S1JVleraek3mdnVxuuvno6ysDIBOnTq1Z0jtQlVVquq1eY26Od3da9RgMLB3714qKysJCwtrcr+2tpbt27ej1+sZPHhwe4TaaqqqUtNQa9U5jXQOLm1+PqOjo5kyZQrh4eHNJlvp6en4+vri7e3NmDFjWLt2Lb6+vu0VcquoqoqqNv/3piUpilubn8/8/HwCAgLQ6XSEhoYSHx9Pjx49aGho4ODBg7zyyitMnjyZ06dPExwczKpVq5gxY4Zl/gE3SbJlp4yt31ta2TLu2yqVjoRCiB+xmqo6nnhojSZzp+T+Dld3lzZ/3v79+yktLWXevHntH9Q9qq6t55HoNzWZ+6P/WoSbzrnNn6eqKjExMYwaNYqBAwdaILJ7U1VfR/8/vqHJ3P98YTHuzq1/jebl5REWFkZ1dTUdOnQgJSWF/v37m+5/8MEHzJo1ixs3buDv78+RI0fo3Nm61TU1DbVEfbLEqnMaJf10C66OulaPT05O5tSpU2RlZTV7PyIigqeeeoqgoCAKCgpYs2YN48ePJycnB52u9fPcK1Wt4uxXva02n9GAn1xAUdxbPT40NJTdu3fTu3dviouLiYuLY8SIEZw9e5a6ujoqKipYv349cXFxbNiwgbS0NGbOnMnRo0ctWkUgyZad+r5BRstlhCB7toQQwt7s3LmTiIgIAgICtA7lvrBw4ULOnDnD8ePHtQ7F7vXp04fc3FxKS0vZt28fUVFRZGRkmBKucePGkZuby9WrV9mxYwdPP/00J0+etPpKjD24fPkyS5Ys4fDhwy3uGXrmmWdM/z1w4ECGDh1KUFAQBw8eZObMmdYK1W5ERESY/nvQoEGEhYXx4IMPkpSUxKxZswCYPn06y5YtA+Chhx7ixIkTbN26VZIt0ZSpjLC2mgZVxeEHy6x6Y/t3SbaEED9iOjdnUnJ/p9ncbfXll1/yt7/9jffff98CEd07VxcnPvqvRZrN3VaLFi0iNTWVY8eOERgYaIGo7p2bkzP/fGGxZnO3hYuLCz179gRg6NChZGVlsWXLFrZt2waAh4cHPXv2pGfPngwfPpxevXqxc+dOVq1a1e6xt0Tn4ELST7dYbb4fzt1aOTk5lJSUMGTIENM1g8HAsWPHSEhIoKamBkdHR7PP8ff3JygoiPz8/HaLuTUUxY0BP7lg1TmN894LDw8PBg0aRH5+Pp07d8bJyclsJRagX79+Fn8jRpItO2Vc2WpQVSrqavByMX9XRG882LhUygiFED9eiqLcVSmfVoyNHKZMmaJ1KM1SFOWuSvmsTVVVFi1aREpKCunp6QQHB2sdUosURWlTKZ8tUVWVmpqau75vCYqitKmUTysTJkww65QHMH/+fPr27cvKlSubJFoA3377LZcvX8bf399aYQLcbKPe+nI+W1FTU8O5c+d45JFHcHFxYdiwYU2OgLhw4QJBQUEWjUOSLTulc3TC3cmZG/V1XKupapps3SwjLJWVLSGEsAsNDQ3s2rWLqKgonJzk1/O9iI6OZs+ePRw4cABPT0+KiooA0Ov1uLk1vln53XffcenSJb7++msA0x9hfn5+0v2tGatXryYiIoJu3bpx/fp1kpOTSU9PJy0tjcrKStauXcu0adPw9/fn22+/5a233uLKlStyfEELPD09m+wh9PDwwMfHh4EDB1JRUUFsbCxPPvkk/v7+XLx4kdWrV9O5c2eeeOIJjaK2bcuXL2fq1Kl0796dkpIS4uLiKC8vJyoqCoAVK1bwzDPPMHr0aMaNG0daWhp/+ctfSE9Pt2hc8tPcjuld3LhRX0dpbRVBdDS/dzPZkjJCIYSwD3/729+4dOkSzz33nNah2L3ExEQAxo4da3Z9165dpsYjqampzJ8/33TPuKfjN7/5DbGxsdYI064UFxcTGRlJYWEher2ekJAQ0tLSmDhxItXV1fzrX/8iKSmJq1ev4uPjw7Bhw/joo48YMGCA1qHbJUdHR/Ly8ti9ezelpaX4+/szbtw43nvvPTw9PbUOzyZduXKF2bNnc/XqVbp06cLw4cPJzMw0rVw98cQTbN26lXXr1rF48WL69OnDvn37GDVqlEXjUlRVVS06w32ivLwcvV5PWVkZXl5eWocDwNS0nfyztJi3xzzDGP8Hze79K+8KS57dga+fnj8fitEoQiGEsJ7q6moKCgoIDg62+CGVQggh7n+3+73S2tzAwdJBCsvRG9u/N3PWlrFBRpmcsyWEEEIIIYQmJNmyYx1NHQmbS7YaywhrquuortLmcD8hhBBCCCF+zCTZsmOm9u/NrGy5ubvg7NzYyUbO2hJCCCGEEML6JNmyY/qb7d+vNbOypSjKLQcbS/t3IYQQQgghrE26EdqZGkMNx68ep9JQibdz44nsZbXVzY7Vd3Tnakm57NsSQgghhBBCA5Js2ZkGGnjn0jsATO60EIBrzZQRAngZDzaWMkIhhBBCCCGsTsoI7YyrgyuOSuNeLHenxq79Zc2UEQJSRiiEEEIIIYSGJNmyM4qi0MGpAwDOjg1A8w0yALyl/bsQQgghhBCakWTLDhmTLSfHegBKW9iz9X0ZoaxsCSGEEEIIYW2SbNkhY7KlKHUAlNdVU9/Q0GTc92WEsrIlhBBCCCGEtUmyZYeMyZZKnelac/u2jMlWuZQRCiGETauvr+fXv/41wcHBuLm50aNHD37729/S0MwbaeLO1q1bx7Bhw/D09MTX15cZM2Zw/vx50/26ujpWrlzJoEGD8PDwICAggGeffZavv/5aw6htW2JiIiEhIXh5eeHl5UVYWBiHDh1qduyCBQtQFIXNmzdbN0g7tm7dOhRFYenSpWbXz507x7Rp09Dr9Xh6ejJ8+HAuXbqkTZA2LjY2FkVRzD78/PxM9394z/jx2muvWTQuSbbskDHZumGoxNNZBzTf/l0vZYRCCGEXNmzYwNatW0lISODcuXNs3LiR1157jTfffFPr0OxSRkYG0dHRZGZmcuTIEerr65k0aRKVlY2/D2/cuMGpU6dYs2YNp06d4v333+fChQtMmzZN48htV2BgIOvXryc7O5vs7GzGjx/P9OnTOXv2rNm4/fv3c/LkSQICAjSK1P5kZWWxfft2QkJCzK7/+9//ZtSoUfTt25f09HQ+/fRT1qxZg6urq0aR2r4BAwZQWFho+sjLyzPdu/V6YWEhb7/9Noqi8OSTT1o0Jmn9boeMyVZFfQXeLm5cr6tp9mBj/c0GGaVSRiiEEDbt448/Zvr06UyZMgWABx54gHfffZfs7GyNI7NPaWlpZo937dqFr68vOTk5jB49Gr1ez5EjR8zGvPnmm/z0pz/l0qVLdO/e3Zrh2oWpU6eaPV67di2JiYlkZmYyYMAAAL766isWLlzIhx9+aHoti9urqKhg7ty57Nixg7i4OLN7r776Ko899hgbN240XevRo4e1Q7QrTk5OZqtZt/rh9QMHDjBu3DiLP6eSbNkhs2RL58blylLKmulIaCwjrCivwlBvwNHJ0apxCiGE1lRVpaaq7s4DLUDn5oyiKK0aO2rUKLZu3cqFCxfo3bs3n376KcePH7e5MixVVamurddkblcXp1Y/nz9UVlYGQKdOnW47RlEUvL2972qOu6WqKlX12rxG3Zxa/xq9lcFgYO/evVRWVhIWFgZAQ0MDkZGRrFixwpR8aUFVVWobajWZ28XBpc3PZ3R0NFOmTCE8PNws2WpoaODgwYO88sorTJ48mdOnTxMcHMyqVauYMWNGO0d+e6qqoqrNd762JEVxa/PzmZ+fT0BAADqdjtDQUOLj45tNpoqLizl48CBJSUntFW6LJNmyQ+YrW43L9M2tbHnqG1+kqqpSXlZFR58OVo1TCCG0VlNVx4zQ/9Rk7v0nf4Oru0urxq5cuZKysjL69u2Lo6MjBoOBtWvXMnv2bAtH2TbVtfWMXJqgydz/b/NC3HTObf48VVWJiYlh1KhRDBw4sNkx1dXV/OpXv2LOnDl4eXnda6htUlVfR7+kLVad0+hc1BLcnVv3GgXIy8sjLCyM6upqOnToQEpKCv379wcaS2GdnJxYvHixpcJtldqGWn556peazL31/2xF56hr9fjk5GROnTpFVlZWk3slJSVUVFSwfv164uLi2LBhA2lpacycOZOjR48yZsyY9gz9tlS1iotfP2i1+YweCPg3iuLe6vGhoaHs3r2b3r17U1xcTFxcHCNGjODs2bP4+PiYjU1KSsLT05OZM2e2d9hNSLJlh35YRgjNn7Xl6OiAp96N8tIblF2rlGRLCCFs1Hvvvcc777zDnj17GDBgALm5uSxdupSAgACioqK0Ds+uLVy4kDNnznD8+PFm79fV1TFr1iwaGhp46623rBydfenTpw+5ubmUlpayb98+oqKiyMjIoKqqii1btnDq1Km7Xn38sbl8+TJLlizh8OHDze7BMjbHmT59OsuWLQPgoYce4sSJE2zdutWqyZa9iIiIMP33oEGDCAsL48EHHyQpKYmYmBizsW+//TZz5861yv43Sbbs0A/LCAFKm1nZgsZ9W+WlN+RgYyHEj5LOzZn9J3+j2dyttWLFCn71q18xa9YsoPEPhS+//JJ169bZVLLl6uLE/9u8ULO522rRokWkpqZy7NgxAgMDm9yvq6vj6aefpqCggH/84x9WX9WCxlK+c1FLrD6vce62cHFxoWfPngAMHTqUrKwstmzZQr9+/SgpKTHb62YwGHj55ZfZvHkzFy9ebM+wbx+jgwtb/89Wq833w7lbKycnh5KSEoYMGWK6ZjAYOHbsGAkJCVRWVuLk5GRaOTTq169fi28cWIqiuPFAwL+tOqdx3nvh4eHBoEGDyM/PN7v+0Ucfcf78ed577717+vqtJcmWHbo12fqJy+2Tre8PNpZkSwjx46MoSqtL+bR048YNHBzMGwQ7OjraXOt3RVHuqpTP2lRVZdGiRaSkpJCenk5wcHCTMcZEKz8/n6NHjzYpM7IWRVHaVMpnS1RVpaamhsjISMLDw83uTZ48mcjISObPn2/VmBRFaVMpn1YmTJhg1ikPYP78+fTt25eVK1ei0+kYNmyY2ZEFABcuXCAoKMiaod5skd76cj5bUVNTw7lz53jkkUfMru/cuZMhQ4YwePBgq8QhyZYdMiZb1Q3VeLk0/oAurWna+h3A23SwsbR/F0IIWzV16lTWrl1L9+7dGTBgAKdPn2bTpk0899xzWodml6Kjo9mzZw8HDhzA09OToqIiAPR6PW5ubtTX1/Ozn/2MU6dO8cEHH2AwGExjOnXqhIuLfSY/lrR69WoiIiLo1q0b169fJzk5mfT0dNLS0vDx8WmSrDo7O+Pn50efPn00iti2eXp6NtlD6OHhgY+Pj+n6ihUreOaZZxg9ejTjxo0jLS2Nv/zlL6Snp2sQse1bvnw5U6dOpXv37pSUlBAXF0d5eblZdUB5eTl79+7l9ddft1pckmzZIXdHdxQUVFTcnRtro29XRgiysiWEELbszTffZM2aNbz00kuUlJQQEBDAggUL+I//+A+tQ7NLiYmJAIwdO9bs+q5du5g3bx5XrlwhNTUVaNwHc6ujR482+TzR2L0tMjKSwsJC9Ho9ISEhpKWlMXHiRK1Du2898cQTbN26lXXr1rF48WL69OnDvn37GDVqlNah2aQrV64we/Zsrl69SpcuXRg+fDiZmZlmK4HJycmoqmrV5kOKqqqq1WazY+Xl5ej1esrKyjSp6f6hRacXUVFfwTTfX7D846MM6NiV1MnPNxm3K+FvJO/8iGnP/JToX8mZF0KI+1d1dTUFBQUEBwfLoZ9CCCHu2e1+r7Q2N3Bo8Y6wacZSQhfHxnr+a810I4Tvz9qSlS0hhBBCCCGsS5ItO+Xh2JhEOTg0HoTYUhmhac+WdCMUQgghhBDCqiTZslOezp4AKEpjsnWjvo4aQ32Tcd93I5QGGUIIIYQQQliTJFt2ylhGWKfW4HDzAMGy2qYdCaVBhhBCCCGEENqQZMtOGcsIK+sr0Ds3bthrrpTQuGervPQG0gtFCCGEEEII65Fky04ZywgrDZXodTcPNm6mSYb+Zhlhfb2BGxU11gtQCCGEEEKIHzlJtuyUsYywor6Cji6Nyda1Zla2dK7OuLrdPPhY9m0JIYQQQghhNZJs2SljGeH1uut431zZKmux/Xvj6la5dCQUQgghhBDCaiTZslPGla1KQyV6l8Y9W82tbMH3pYTSJEMIIYQQQgjrkWTLThn3bN1aRthcN0K49WBjKSMUQgghhBDCWiTZslOmla36SrycdQBcu0MZoRxsLIQQtuv69essXbqUoKAg3NzcGDFiBFlZWVqHZZfWrVvHsGHD8PT0xNfXlxkzZnD+/HmzMbGxsfTt2xcPDw86duxIeHg4J0+e1Chi25eYmEhISAheXl54eXkRFhbGoUOHTPfnzZuHoihmH8OHD9cwYvuybt06FEVh6dKlpms/fD6NH6+99pp2gdqw2NjYJs+Vn5+f6X5FRQULFy4kMDAQNzc3+vXrR2JiosXj0jzZ+uqrr/j5z3+Oj48P7u7uPPTQQ+Tk5Jjuq6pKbGwsAQEBuLm5MXbsWM6ePWv2NWpqali0aBGdO3fGw8ODadOmceXKFbMx165dIzIyEr1ej16vJzIyktLSUmv8Ey3CuGdLRcXTpfF/Y1kLZYRysLEQQti+F154gSNHjvDnP/+ZvLw8Jk2aRHh4OF999ZXWodmdjIwMoqOjyczM5MiRI9TX1zNp0iQqK7//Pdi7d28SEhLIy8vj+PHjPPDAA0yaNIlvvvlGw8htV2BgIOvXryc7O5vs7GzGjx/P9OnTzf4me/TRRyksLDR9/PWvf9UwYvuRlZXF9u3bCQkJMbt+63NZWFjI22+/jaIoPPnkkxpFavsGDBhg9pzl5eWZ7i1btoy0tDTeeecdzp07x7Jly1i0aBEHDhywaEyaJlvXrl1j5MiRODs7c+jQIf75z3/y+uuv4+3tbRqzceNGNm3aREJCAllZWfj5+TFx4kSuX79uGrN06VJSUlJITk7m+PHjVFRU8Pjjj2MwGExj5syZQ25uLmlpaaSlpZGbm0tkZKQ1/7ntysnBCVeHxr1aOqfG87Oaa/0O4G0qI5SVLSGEsEVVVVXs27ePjRs3Mnr0aHr27ElsbCzBwcFWeef1fpOWlsa8efMYMGAAgwcPZteuXVy6dMnszdw5c+YQHh5Ojx49GDBgAJs2baK8vJwzZ85oGLntmjp1Ko899hi9e/emd+/erF27lg4dOpCZmWkao9Pp8PPzM3106tRJw4jtQ0VFBXPnzmXHjh107NjR7N6tz6Wfnx8HDhxg3Lhx9OjRQ6NobZ+Tk5PZc9alSxfTvY8//pioqCjGjh3LAw88wC9+8QsGDx5Mdna2ZWOy6Fe/gw0bNtCtWzd27dpluvbAAw+Y/ltVVTZv3syrr77KzJkzAUhKSqJr167s2bOHBQsWUFZWxs6dO/nzn/9MeHg4AO+88w7dunXjb3/7G5MnT+bcuXOkpaWRmZlJaGgoADt27CAsLIzz58/Tp08f6/2j25GnsyfVNdWmZKulBhmmlS0pIxRC/MioqkpNdZ0mc+tcnVEUpVVj6+vrMRgMuLq6ml13c3Pj+PHjlgjvrqiqSnVtvSZzu7o4tfr5/KGysjKAFv/4r62tZfv27ej1egYPHnzXMd4NVVWpqtfmNerm1PrX6K0MBgN79+6lsrKSsLAw0/X09HR8fX3x9vZmzJgxrF27Fl9f3/YM+Y5UVaW2QZtzRV0cdG1+PqOjo5kyZQrh4eHExcW1OK64uJiDBw+SlJR0r2G2maqqoDb/N6ZFKW5tfj7z8/MJCAhAp9MRGhpKfHy8KTkdNWoUqampPPfccwQEBJCens6FCxfYsmWLJaI30TTZSk1NZfLkyTz11FNkZGTwk5/8hJdeeokXX3wRgIKCAoqKipg0aZLpc3Q6HWPGjOHEiRMsWLCAnJwc6urqzMYEBAQwcOBATpw4weTJk/n444/R6/WmRAtg+PDh6PV6Tpw40WyyVVNTQ03N99+s5eXllngK7omHowff8A1ODo0reC2VEUqDDCHEj1VNdR3TR6zVZO4DJ141nXN4J56enoSFhfG73/2Ofv360bVrV959911OnjxJr169LBxp61XX1hO2PEGTuT/+/ULcdM5t/jxVVYmJiWHUqFEMHDjQ7N4HH3zArFmzuHHjBv7+/hw5coTOnTu3V8itUlVfR////oNV5zT659xluDu37jUKkJeXR1hYGNXV1XTo0IGUlBT69+8PQEREBE899RRBQUEUFBSwZs0axo8fT05ODjqdzlL/hCZqG2pY9ukLVpvvVn8Y/Ed0jq53HnhTcnIyp06datXezKSkJDw9PU2LD1alVnG1yPo/hzr75YPi3urxoaGh7N69m969e1NcXExcXBwjRozg7Nmz+Pj48MYbb/Diiy8SGBiIk5MTDg4O/PGPf2TUqFEW/FdoXEb4xRdfkJiYSK9evfjwww/55S9/yeLFi9m9ezcARUVFAHTt2tXs87p27Wq6V1RUhIuLS5Ol1x+Oae6dFV9fX9OYH1q3bp1pf5der6dbt2739o+1AGOTDEVpfEfsWk1V47sPP2BqkCFlhEIIYbP+/Oc/o6oqP/nJT9DpdLzxxhvMmTMHR0dHrUOzawsXLuTMmTO8++67Te6NGzeO3NxcTpw4waOPPsrTTz9NSUmJBlHahz59+pCbm0tmZib/9//+X6KiovjnP/8JwDPPPMOUKVMYOHAgU6dO5dChQ1y4cIGDBw9qHLVtunz5MkuWLOGdd95psqLdnLfffpu5c+e2auyPVUREBE8++SSDBg0iPDzc9Nozrga+8cYbZGZmkpqaSk5ODq+//jovvfQSf/vb3ywal6YrWw0NDQwdOpT4+HgAHn74Yc6ePUtiYiLPPvusadwPlxBVVb3jsuIPxzQ3/nZfZ9WqVcTExJgel5eX21zCZUy2VKUWgNoGA9WGetyczN/5k0ONhRA/VjpXZw6ceFWzudviwQcfJCMjg8rKSsrLy/H39+eZZ54hODjYQhG2nauLEx//fqFmc7fVokWLSE1N5dixYwQGBja57+HhQc+ePenZsyfDhw+nV69e7Ny5k1WrVrVHyK3i5uTMP+cus9p8P5y7LVxcXOjZsycAQ4cOJSsriy1btrBt27YmY/39/QkKCiI/P79dYm11jA46/jD4j1ad89a5WysnJ4eSkhKGDBliumYwGDh27BgJCQnU1NSY3mj56KOPOH/+PO+99167x9wqilvjKpMG894LDw8PBg0aRH5+PlVVVaxevZqUlBSmTJkCQEhICLm5ufz+9783bUWyBE2TLX9/f9Pys1G/fv3Yt28fgKldY1FREf7+/qYxJSUlptUuPz8/amtruXbtmtnqVklJCSNGjDCNKS4ubjL/N99802TVzEin01l12ftuGJOtuoZqnBQH6tUGrtVUNZNsNZYR3qisoba2Hpe7+IUlhBD2SFGUVpfy2QoPDw88PDy4du0aH374IRs3btQ6JBNFUe6qlM/aVFVl0aJFpKSkkJ6e3uqEVVVVsy0E1qAoSptK+WzJ7Z6vb7/9lsuXL5v9/WYNiqK0qZRPKxMmTDDrlAcwf/58+vbty8qVK81WtHfu3MmQIUOsvp/QSFGUNpXz2YqamhrOnTvHI488Ql1dHXV1dTg4mBf1OTo60tDQYNE4NC0jHDlyZJNzLy5cuEBQUBAAwcHB+Pn5ceTIEdP92tpaMjIyTInUkCFDcHZ2NhtTWFjIZ599ZhoTFhZGWVkZn3zyiWnMyZMnKSsrM42xR8Zkq8JQgbeuMfsvbWbfVgdPVxwcb7aHl31bQghhkz788EPS0tIoKCjgyJEjjBs3jj59+jB//nytQ7M70dHRvPPOO+zZswdPT0+KioooKiqiqqrxd2RlZSWrV68mMzOTL7/8klOnTvHCCy9w5coVnnrqKY2jt02rV6/mo48+4uLFi+Tl5fHqq6+Snp7O3LlzqaioYPny5Xz88cdcvHiR9PR0pk6dSufOnXniiSe0Dt0meXp6MnDgQLMPDw8PfHx8zPYWlpeXs3fvXl54QZt9aPZk+fLlZGRkUFBQwMmTJ/nZz35GeXk5UVFReHl5MWbMGFasWEF6ejoFBQX86U9/Yvfu3RZ/jWq6xLFs2TJGjBhBfHw8Tz/9NJ988gnbt29n+/btAKbD3eLj4+nVqxe9evUiPj4ed3d35syZA4Ber+f555/n5ZdfxsfHh06dOrF8+XJTvSY0rpY9+uijvPjii6al7l/84hc8/vjjdtuJEG5Jtuor6OjixtXqymaTLUVR0Hu7c+3bCspLb9Clq97aoQohhLiDsrIyVq1axZUrV+jUqRNPPvkka9euxdnZ9leSbI2xXf7YsWPNru/atYt58+bh6OjIv/71L5KSkrh69So+Pj4MGzaMjz76iAEDBmgQse0rLi4mMjKSwsJC9Ho9ISEhpKWlMXHiRKqqqsjLy2P37t2Ulpbi7+/PuHHjeO+99/D09NQ6dLuWnJyMqqrMnj1b61Bs3pUrV5g9ezZXr16lS5cuDB8+nMzMTNMiTnJyMqtWrWLu3Ll89913BAUFsXbtWn75y19aNC5Fba6jghV98MEHrFq1ivz8fIKDg4mJiTF1I4TGJer//M//ZNu2bVy7do3Q0FD+67/+yyzrr66uZsWKFezZs4eqqiomTJjAW2+9ZbbH6rvvvmPx4sWkpqYCMG3aNBISEszO9Lqd8vJy9Ho9ZWVleHl5tc8//h6d/PYkW7/YSh/PPpy+EkD21Su8OeIJHuver8nYBU/9Fxc/LyE+8VmGDH9Qg2iFEMKyqqurKSgoIDg4WDaRCyGEuGe3+73S2txA8807jz/+OI8//niL9xVFITY2ltjY2BbHuLq68uabb/Lmm2+2OKZTp06888479xKqzbl1Zctb11hL29zKFkj7dyGEEEIIIaxN0z1b4t6YJVsujdl2ac3tDzYul/bvQgghhBBCWIUkW3bs1mRLb0y2aqubHettOmtLVraEEEIIIYSwBkm27Jgx2TKoBrxutnO/YxmhnLUlhBBCCCGEVUiyZcd0jjqclcYuVW43d9/dqYywTMoIhRBCCCGEsApJtuyccXXLzbmxqaQ0yBBCCCGEEMI2SLJl54zJlpODAWg52TLt2ZIyQiGEEEIIIaxCki071yTZkjJCIYQQQgghbIIkW3bOmGypSi0AZbXVNHdOtbGM8HrZDRoaGqwXoBBCCCGEED9SkmzZOWOy1UBjslWvNlBRX9tknP7mylZDg0pFefPt4YUQQgghhBDtR5ItO2dMtqobbuDqeLP9ezOlhE7Ojnh0uHkWlzTJEEIIm3Ls2DGmTp1KQEAAiqKwf/9+s/uqqhIbG0tAQABubm6MHTuWs2fPahOsHVi3bh3Dhg3D09MTX19fZsyYwfnz51scv2DBAhRFYfPmzdYL0s4kJiYSEhKCl5cXXl5ehIWFcejQIbMx586dY9q0aej1ejw9PRk+fDiXLl3SKGL7sm7dOhRFYenSpaZrFRUVLFy4kMDAQNzc3OjXrx+JiYnaBWnjYmNjURTF7MPPz890v7i4mHnz5hEQEIC7uzuPPvoo+fn5Fo9Lki07Z0y2Kusr8XZxA+Baix0JZd+WEELYosrKSgYPHkxCQkKz9zdu3MimTZtISEggKysLPz8/Jk6cyPXr160cqX3IyMggOjqazMxMjhw5Qn19PZMmTaKysumbjfv37+fkyZMEBARoEKn9CAwMZP369WRnZ5Odnc348eOZPn26Ken/97//zahRo+jbty/p6el8+umnrFmzBldXV40jt31ZWVls376dkJAQs+vLli0jLS2Nd955h3PnzrFs2TIWLVrEgQMHNIrU9g0YMIDCwkLTR15eHtD4htWMGTP44osvOHDgAKdPnyYoKIjw8PBmfy60JyeLfnVhccZk63r9dbx1HSmquk5ZC00y9B09+Pryd5RLR0IhhLApERERRERENHtPVVU2b97Mq6++ysyZMwFISkqia9eu7NmzhwULFlgzVLuQlpZm9njXrl34+vqSk5PD6NGjTde/+uorFi5cyIcffsiUKVOsHaZdmTp1qtnjtWvXkpiYSGZmJgMGDODVV1/lscceY+PGjaYxPXr0sHaYdqeiooK5c+eyY8cO4uLizO59/PHHREVFMXbsWAB+8YtfsG3bNrKzs5k+fboG0do+Jycns9Uso/z8fDIzM/nss88YMGAAAG+99Ra+vr68++67vPDCC5aLyWJfWViFh1Nj44uK+gr0Lv7AbVa2TB0JpYxQCPHjoKoq1dV1mszt6uqMoij3/HUKCgooKipi0qRJpms6nY4xY8Zw4sQJqyZbqqpSVVtvtflu5ebidNfPZ1lZGQCdOnUyXWtoaCAyMpIVK1aY/vjSgqqqVBm0eY26Od7da9RgMLB3714qKysJCwujoaGBgwcP8sorrzB58mROnz5NcHAwq1atYsaMGe0f+G2oqkpdQ41V5zRydtC1+fmMjo5mypQphIeHN0m2Ro0aRWpqKs899xwBAQGkp6dz4cIFtmzZ0p5h35GqqqA2/7elRSlubX4+8/PzCQgIQKfTERoaSnx8PD169KCmpvE1cetKq6OjIy4uLhw/flySLdEyTydPoLGMsOPNMsKyO5QRyp4tIcSPRXV1HdPHrddk7gNHf4Wbm8s9f52ioiIAunbtana9a9eufPnll/f89duiqrae4auaL3W0tMx1C3HXObf581RVJSYmhlGjRjFw4EDT9Q0bNuDk5MTixYvbM8w2qzLUMSD5dU3mPjvrZdydWv8azcvLIywsjOrqajp06EBKSgr9+/enqKiIiooK1q9fT1xcHBs2bCAtLY2ZM2dy9OhRxowZY8F/hbm6hhp+/Vmk1ea7VdzAP+Pi2PqyyeTkZE6dOkVWVlaz99944w1efPFFAgMDcXJywsHBgT/+8Y+MGjWqvUJuHbWKG8X9rDsn4N71HCjurR4fGhrK7t276d27N8XFxcTFxTFixAjOnj1L3759CQoKYtWqVWzbtg0PDw82bdpEUVERhYWFFvxXSLJl924tI/S5mWy1dNaWsf27lBEKIYT9+eE7vKqqtsvK2f1u4cKFnDlzhuPHj5uu5eTksGXLFk6dOiXPYRv06dOH3NxcSktL2bdvH1FRUWRkZODt7Q3A9OnTWbZsGQAPPfQQJ06cYOvWrVZNtuzF5cuXWbJkCYcPH25xX9sbb7xBZmYmqampBAUFcezYMV566SX8/f0JDw+3csS279ZS7EGDBhEWFsaDDz5IUlISMTEx7Nu3j+eff55OnTrh6OhIeHh4i+Xb7UmSLTtnTLZqG2rRuzS+O9VSGaGXNMgQQvzIuLo6c+DorzSbuz0Y9x8UFRXh7+9vul5SUtJktcvS3FycyFy30Kpz3jp3Wy1atIjU1FSOHTtGYGCg6fpHH31ESUkJ3bt3N10zGAy8/PLLbN68mYsXL7ZHyK3i5ujM2VkvW22+H87dFi4uLvTs2ROAoUOHkpWVxZYtW3jzzTdxcnKif//+ZuP79etnluRag7ODjriBf7bqnLfO3Vo5OTmUlJQwZMgQ0zWDwcCxY8dISEigrKyM1atXk5KSYtpPGBISQm5uLr///e+tm2wpbo2rTNamuN3Tp3t4eDBo0CBTx8EhQ4aQm5tLWVkZtbW1dOnShdDQUIYOHdoe0bZIki075+bohgMONNCAh0vju3NlNc2fo+Xt3biyJXu2hBA/FoqitEspn5aCg4Px8/PjyJEjPPzwwwDU1taSkZHBhg0brBqLoih3VcpnbaqqsmjRIlJSUkhPTyc4ONjsfmRkZJM/VidPnkxkZCTz58+3ZqiNz2kbSvlsiaqq1NTU4OLiwrBhw5q0179w4QJBQUFWjUlRlDaV8mllwoQJpk55RvPnz6dv376sXLkSg8FAXV0dDg7mjcMdHR1paGiwZqiNq79tKOezFTU1NZw7d45HHnnE7Lperwca93dlZ2fzu9/9zqJxSLJl5xRFoYNTB8rry3FzUoFWtH6XMkIhhLApFRUVfP7556bHBQUF5Obm0qlTJ7p3787SpUuJj4+nV69e9OrVi/j4eNzd3ZkzZ46GUduu6Oho9uzZw4EDB/D09DTte9Pr9bi5ueHj44OPj4/Z5zg7O+Pn50efPn20CNnmrV69moiICLp168b169dJTk4mPT3d1PlxxYoVPPPMM4wePZpx48aRlpbGX/7yF9LT07UN3EZ5enqa7SGExpUYHx8f0/UxY8awYsUK3NzcCAoKIiMjg927d7Np0yYtQrZ5y5cvZ+rUqXTv3p2SkhLi4uIoLy8nKioKgL1799KlSxe6d+9OXl4eS5YsYcaMGWbNhyxBkq37gDHZcnFsfKejpQYZUkYohBC2KTs7m3Hjxpkex8TEABAVFcWf/vQnXnnlFaqqqnjppZe4du0aoaGhHD58GE9PT61CtmnGg1+NLbONdu3axbx586wf0H2guLiYyMhICgsL0ev1hISEkJaWxsSJEwF44okn2Lp1K+vWrWPx4sX06dOHffv2Wb+Zw30kOTmZVatWMXfuXL777juCgoJYu3Ytv/zlL7UOzSZduXKF2bNnc/XqVbp06cLw4cPJzMw0ra4WFhYSExNDcXEx/v7+PPvss6xZs8bicSmqqqoWn+U+UF5ejl6vp6ysDC8vL63DMRN/Lp78inwmdX6aX588TVCHjvzj8f/bZFzRV9eIenwzLjonUj/+tWwKFkLcV6qrqykoKCA4OFgOUhVCCHHPbvd7pbW5gUOLd4TdMDbJcHBoPKejrLb5PVvGMsLamnpqNDp3RgghhBBCiB8LSbbuA8ZkS8WYbFVhaGbzpKubC843uznJWVtCCCGEEEJYliRb9wFjslVP44qWCpTXNV3dUhTl+yYZsm9LCCGEEEIIi5Jk6z5gTLaqDDfocLN9bGkLpYTexoONJdkSQgghhBDCotqcbKWlpZkdUPdf//VfPPTQQ8yZM4dr1661a3CidYzJVkV9BXqXxgPgSmta6Ejo3biyJWWEQgghhBBCWFabk60VK1ZQXl4OQF5eHi+//DKPPfYYX3zxhalVrbCuW5Mtb93NZOtOZ21JsiWEEEIIIYRFtfmcrYKCAvr37w/Avn37ePzxx4mPj+fUqVM89thj7R6guDOzZMulsS1lSytbemMZoRxsLIQQQgghhEW1eWXLxcWFGzca/1D/29/+Zjp1uVOnTqYVL2FdbVrZ8pYGGUIIIYQQQlhDm1e2Ro0aRUxMDCNHjuSTTz7hvffeA+DChQsEBga2e4DizozJ1g3DDbo564A7lxHKni0hhBBCCCEsq80rWwkJCTg5OfG///u/JCYm8pOf/ASAQ4cO8eijj7Z7gOLOPJw8TP/dwaXxf6mUEQohhBBCCKGtNidb3bt354MPPuDTTz/l+eefN13/wx/+wIYNG9o1ONE6jooj7o6NK1YezgrQcut3KSMUQgjbc+zYMaZOnUpAQACKorB//36z+++//z6TJ0+mc+fOKIpCbm6uJnHai3Xr1jFs2DA8PT3x9fVlxowZnD9/3mzMvHnzUBTF7GP48OEaRWz7EhMTCQkJwcvLCy8vL8LCwjh06JDp/g+fS+PHa6+9pmHU9mPdunUoisLSpUtN14qLi5k3bx4BAQG4u7vz6KOPkp+fr12QduCrr77i5z//OT4+Pri7u/PQQw+Rk5Njuq+qKrGxsQQEBODm5sbYsWM5e/asRWNqc7IVHR3d7PXKykoiIiLuOSBxd4ylhC5OKnDnlS3pRiiEELajsrKSwYMHk5CQ0OL9kSNHsn79eitHZp8yMjKIjo4mMzOTI0eOUF9fz6RJk6isNP/d9+ijj1JYWGj6+Otf/6pRxLYvMDCQ9evXk52dTXZ2NuPHj2f69OmmP1RvfR4LCwt5++23URSFJ598UuPIbV9WVhbbt28nJCTEdE1VVWbMmMEXX3zBgQMHOH36NEFBQYSHhzd5HYtG165dY+TIkTg7O3Po0CH++c9/8vrrr+Pt7W0as3HjRjZt2kRCQgJZWVn4+fkxceJErl+/brG42rxn6/Dhw/z6178mLi7OdK2yslJKCDXWwakDJTUluDgagDvv2aq4Xk19nQEnZ0erxSiEEKJ5ERERt33DMjIyEoCLFy9aKSL7lpaWZvZ4165d+Pr6kpOTw+jRo03XdTodfn5+1g7PLk2dOtXs8dq1a0lMTCQzM5MBAwY0eR4PHDjAuHHj6NGjhzXDtDsVFRXMnTuXHTt2mP1tnZ+fT2ZmJp999hkDBgwA4K233sLX15d3332XF154QauQbdaGDRvo1q0bu3btMl174IEHTP+tqiqbN2/m1VdfZebMmQAkJSXRtWtX9uzZw4IFCywS110lW6NGjcLHx4dly5Zx/fp1Jk+ejJOTk9lysrAu48qWg0M90HKy1cHLDUVRUFWV8rIbdOrsabUYhRDC2lRVpbq6TpO5XV2dURRFk7ktRVVVqurqNZnbzdnprp/PsrIyoLFz8q3S09Px9fXF29ubMWPGsHbtWnx9fe851rZQVZUqgzavUTfHu3uNGgwG9u7dS2VlJWFhYU3uFxcXc/DgQZKSktojzDZRVZU6tcbq8wI4K7o2P5/R0dFMmTKF8PBws2Srpqbx3+Dq6mq65ujoiIuLC8ePH7dqsqWqKqjN/11pUYpbm57P1NRUJk+ezFNPPUVGRgY/+clPeOmll3jxxReBxuOrioqKTJ3UofENlzFjxnDixAnbSbaCg4P58MMPGTt2LA4ODiQnJ6PT6Th48CAeHh53/gLCIozJlkLjD+yWyggdHR3w0rtRVnqDsmuSbAkh7m/V1XVMm6jNnpHUIytwc3PRZG5Lqaqr56evNl/qaGmfrF2Iu4tzmz9PVVViYmIYNWoUAwcONF2PiIjgqaeeIigoiIKCAtasWcP48ePJyclBp9O1Z+i3VWWoY9D//t5q890q72fLcXdq/Ws0Ly+PsLAwqqur6dChAykpKaazV2+VlJSEp6enafXAmurUGuL/+YzV5wVY3f89XBTXOw+8KTk5mVOnTpGVldXkXt++fQkKCmLVqlVs27YNDw8PNm3aRFFREYWFhe0Z9p2pVaglD1l3TkDxzQXFvdXjv/jiCxITE4mJiWH16tV88sknLF68GJ1Ox7PPPktRUREAXbt2Nfu8rl278uWXX7Zn6GbanGwBDBw4kA8++IDw8HBCQ0P54IMPcHNza+/YRBsYk60GpRaAivpa6hoMODs0LRPUd/RoTLakI6EQQoj73MKFCzlz5gzHjx83u/7MM9//QT5w4ECGDh1KUFAQBw8e1CRJsAd9+vQhNzeX0tJS9u3bR1RUFBkZGU0Srrfffpu5c+earcoIc5cvX2bJkiUcPny42efJ2dmZffv28fzzz9OpUyccHR0JDw+X/gi30dDQwNChQ4mPjwfg4Ycf5uzZsyQmJvLss8+axv1wtUxVVYtWIbQq2Xr44YebDUKn0/H1118zcuRI07VTp061X3Si1YzJVl1DNQqgAmW1VXR27dBkrJepI6FssBRC3N9cXZ1JPbJCs7nvN27OTnyydqFmc7fVokWLSE1N5dixY3c8C9Tf35+goCCrd3tzc3Qm72fLrTrnrXO3hYuLCz179gRg6NChZGVlsWXLFrZt22Ya89FHH3H+/HnTOazW5qzoWN1fu7lbKycnh5KSEoYMGWK6ZjAYOHbsGAkJCdTU1DBkyBByc3MpKyujtraWLl26EBoaytChQy0RfssUt8ZVJmtT2raQ4+/v3yTx79evH/v27QMw7SssKirC39/fNKakpKTJald7atVPrhkzZlgsANE+jMlWpaECLxdXymqrKa2pbjbZMjbJkGRLCHG/UxTlvivl05KiKHdVymdtqqqyaNEiUlJSSE9PJzg4+I6f8+2333L58mWzP8KsQVGUNpXy2RJVVU17i4x27tzJkCFDGDx4sCYxKYrSplI+rUyYMIG8vDyza/Pnz6dv376sXLkSR8fvK5P0ej3Q2DQjOzub3/3ud1aNVVGUNpXzaWXkyJFNjni4cOECQUFBQONWKD8/P44cOcLDDz8MQG1tLRkZGRY9vqpVydZvfvMbiwUg2ocx2aqor0Dv0rEx2WqxI6EcbCyEELakoqKCzz//3PS4oKCA3NxcOnXqRPfu3fnuu++4dOkSX3/9NYDpDwo/Pz/ppteM6Oho9uzZw4EDB/D09DTt1dDr9bi5uVFRUUFsbCxPPvkk/v7+XLx4kdWrV9O5c2eeeOIJjaO3TatXryYiIoJu3bpx/fp1kpOTSU9PN+v8WF5ezt69e3n99dc1jNQ+eHp6mu0hBPDw8MDHx8d0fe/evXTp0oXu3buTl5fHkiVLmDFjhlmDB/G9ZcuWMWLECOLj43n66af55JNP2L59O9u3bwcwnWMWHx9Pr1696NWrF/Hx8bi7uzNnzhyLxXVXe7aE7TGtbNVX0tElgEtc41qLZ201vjtRKgcbCyGETcjOzmbcuHGmxzExMQBERUXxpz/9idTUVObPn2+6P2vWLKDxzdDY2FirxmoPEhMTARg7dqzZ9V27djFv3jwcHR3Jy8tj9+7dlJaW4u/vz7hx43jvvffw9JTGUc0pLi4mMjKSwsJC9Ho9ISEhpKWlMXHiRNOY5ORkVFVl9uzZGkZ6/ygsLCQmJobi4mL8/f159tlnWbNmjdZh2axhw4aRkpLCqlWr+O1vf0twcDCbN29m7ty5pjGvvPIKVVVVvPTSS1y7do3Q0FAOHz5s0e97RVVVtS2fYDAY+MMf/sD//M//cOnSJWpra83uf/fdd+0aoK0oLy9Hr9dTVlaGl5eX1uE0cfnGZf7j7H/g5eRFeXkYxwq/YMNPp/CzHk2X8VP2fMzW19IYPWkAr254WoNohRCi/VVXV1NQUEBwcLBszBdCCHHPbvd7pbW5gUNbJ/3P//xPNm3axNNPP01ZWRkxMTHMnDkTBwcHeXdNQ7eWEXq7NL4YrkkZoRBCCCGEEJppc7L13//93+zYsYPly5fj5OTE7Nmz+eMf/8h//Md/kJmZaYkYRSuYWr/TgJdLY3VoWU11s2P1pm6EkmwJIYQQQghhKW1OtoqKihg0aBAAHTp0MJ3K/vjjj3Pw4MH2jU60mrODMzqHxpajHZwb2/Rfq20+mTKubEk3QiGEEEIIISynzclWYGCg6eTqnj17cvjwYQCysrKseuK6aMq4uuXq1LgNr6y2hZUtY+v30hu0ccueEEIIIYQQopXanGw98cQT/P3vfwdgyZIlrFmzhl69evHss8/y3HPPtXuAovU8nBpXrHSOjQlUi90Ib5YRGuobqKxoPiETQgghhBBC3Js2t35fv3696b9/9rOfERgYyIkTJ+jZsyfTpk1r1+BE2xhXtpwcDQAtnrPlonPGzd2Fqhu1lH13gw6ebTuhWwghhBBCCHFn93zO1vDhwxk+fHh7xCLukadT4xkBDg71AJS2sLIFjfu2qm7UUlZ6g58E+VglPiGEEEIIIX5M2lxGCPDnP/+ZkSNHEhAQwJdffgnA5s2bOXDgQLsGJ9rGWEaoUgO0vLIF4GXqSChNMoQQQgghhLCENidbiYmJxMTE8Nhjj1FaWorB0Fiy5u3tzebNm9s7PtEGxjJCw81kq9pQT3V9XbNjvTtKsiWEEEIIIYQltTnZevPNN9mxYwevvvoqjo6OputDhw4lLy+vXYMTbWMsI6xpqMJRaWz/XtpiR8Kb7d/lYGMhhBBCCCEsos3JVkFBAQ8//HCT6zqdjspKWSXRkrGMsLK+Er1LY9OLlkoJveRgYyGEsBnHjh1j6tSpBAQEoCgK+/fvN7sfGxtL37598fDwoGPHjoSHh3Py5EltgrUD69atY9iwYXh6euLr68uMGTM4f/58k3Hnzp1j2rRp6PV6PD09GT58OJcuXdIgYtuXmJhISEgIXl5eeHl5ERYWxqFDh0z3KyoqWLhwIYGBgbi5udGvXz8SExM1jFgI29DmZCs4OJjc3Nwm1w8dOkT//v3bIyZxl4xlhBX1FXi7uAItN8nQSxmhEELYjMrKSgYPHkxCQkKz93v37k1CQgJ5eXkcP36cBx54gEmTJvHNN99YOVL7kJGRQXR0NJmZmRw5coT6+nomTZpk9qbwv//9b0aNGkXfvn1JT0/n008/Zc2aNbi6umoYue0KDAxk/fr1ZGdnk52dzfjx45k+fTpnz54FYNmyZaSlpfHOO+9w7tw5li1bxqJFi2Q/v/jRa3M3whUrVhAdHU11dTWqqvLJJ5/w7rvvsm7dOv74xz9aIkbRSmbJls4drn/X4sqW980ywnIpIxRCCM1FREQQERHR4v05c+aYPd60aRM7d+7kzJkzTJgwwdLh2Z20tDSzx7t27cLX15ecnBxGjx4NwKuvvspjjz3Gxo0bTeN69Ohh1TjtydSpU80er127lsTERDIzMxkwYAAff/wxUVFRjB07FoBf/OIXbNu2jezsbKZPn65BxELYhjYnW/Pnz6e+vp5XXnmFGzduMGfOHH7yk5+wZcsWZs2aZYkYRSsZ92yZrWzdoYywVMoIhRD3MVVVqa5uvlGQpbm6OqPc3D/bnmpra9m+fTt6vZ7Bgwe3+9e/HVVVqaqrt+qcRm7OTnf9fJaVlQHQqVMnABoaGjh48CCvvPIKkydP5vTp0wQHB7Nq1SpmzJjRXiG3iqqqVBm0eY26Od7da9RgMLB3714qKysJCwsDYNSoUaSmpvLcc88REBBAeno6Fy5cYMuWLe0dthB25a7O2XrxxRd58cUXuXr1Kg0NDfj6+rZ3XOIuGPds1al1+Lg4A7crI7zZIEPKCIUQ97Hq6joen/K6JnN/cPBl3Nxc2u/rffABs2bN4saNG/j7+3PkyBE6d+7cbl+/Narq6hka23ypo6Vlxy7E/ebvtrZQVZWYmBhGjRrFwIEDASgpKaGiooL169cTFxfHhg0bSEtLY+bMmRw9epQxY8a0d/gtqjLU8dCBDVab71a501fi7tT612heXh5hYWFUV1fToUMHUlJSTFtI3njjDV588UUCAwNxcnLCwcGBP/7xj4waNcpS4QthF+76UOOSkhLOnz+PoigoikKXLl3aMy5xF1wdXHFUHDGoBjxdGrfjtdyNsHFlS8oIhRDCPowbN47c3FyuXr3Kjh07ePrppzl58qS84XkHCxcu5MyZMxw/ftx0raGhAYDp06ezbNkyAB566CFOnDjB1q1brZps2ZM+ffqQm5tLaWkp+/btIyoqioyMDPr3788bb7xBZmYmqampBAUFcezYMV566SX8/f0JDw/XOnQhNNPmZKu8vJzo6Gjeffdd0w8rR0dHnnnmGf7rv/4LvV7f7kGK1lEUhQ5OHSirK8P95pt/d2qQUXWjltqaOlx0bX+3UAghbJ2rqzMfHHxZs7nbk4eHBz179qRnz54MHz6cXr16sXPnTlatWtWu89yOm7MT2bELrTbfD+duq0WLFpGamsqxY8cIDAw0Xe/cuTNOTk5NGnv169fPLCmzBjdHZ3Knr7TqnLfO3RYuLi707NkTaDzyJysriy1btrB582ZWr15NSkoKU6ZMASAkJITc3Fx+//vfS7IlftTa/JPrhRdeIDc3l4MHDxIWFoaiKJw4cYIlS5bw4osv8j//8z+WiFO0kjHZcnVSAbjWwp4tjw6uODk5Ul9voPTaDXz9JEkWQtx/FEVp11I+W6KqKjU1NVadU1GUuyrlszZVVVm0aBEpKSmkp6cTHBxsdt/FxYVhw4Y1aQd/4cIFgoKCrBlq43PahlI+W2J8DdbV1VFXV4eDg3mTa0dHR9Mb80L8WLU52Tp48CAffvihWQ3u5MmT2bFjB48++mi7BifaztiR0Nmx8YdbWQvJlqIoeHm7893V65SXSrIlhBBaqqio4PPPPzc9LigoIDc3l06dOuHj48PatWuZNm0a/v7+fPvtt7z11ltcuXKFp556SsOobVd0dDR79uzhwIEDeHp6UlRUBIBer8fNrfEcyhUrVvDMM88wevRoxo0bR1paGn/5y19IT0/XMHLbtXr1aiIiIujWrRvXr18nOTmZ9PR00tLS8PLyYsyYMaxYsQI3NzeCgoLIyMhg9+7dbNq0SevQhdBUm5MtHx+fZksF9Xo9HTt2bJegxN0zJluOSmO3qJbKCKGxlPC7q9elSYYQQmgsOzubcePGmR7HxMQAEBUVxdatW/nXv/5FUlISV69excfHh2HDhvHRRx8xYMAArUK2acbDdI1tyI127drFvHnzAHjiiSfYunUr69atY/HixfTp04d9+/ZJQ4cWFBcXExkZSWFhIXq9npCQENLS0pg4cSIAycnJrFq1irlz5/Ldd98RFBTE2rVr+eUvf6lx5EJoq83J1q9//WtiYmLYvXs3/v7+ABQVFbFixQrWrFnT7gGKtjEmW4pDYxvZllq/w60HG0uTDCGE0NLYsWNRVbXF+++//74Vo7F/t3sub/Xcc8/x3HPPWTia+8POnTtve9/Pz49du3ZZKRoh7Eebk63ExEQ+//xzgoKC6N69OwCXLl1Cp9PxzTffsG3bNtPYU6dOtV+kolWMyVYDtUBjsqWqarPnaOi9b7Z/L5WVLSGEEEIIIdpbm5Mtax/2J9rGmGzVqY0t3+saGrhRX4eHc9PNt16ysiWEEEIIIYTFtDnZ+s1vfmOJOEQ7MSZb1YYbuDg4UttgoLS2qtlky1uSLSGEEEIIISzG4c5DhD0xJlsV9RV4uzR2XLrW4llbN8sIpUGGEEIIIYQQ7U6SrfuMMdmqNFTirWtMtlpq/+7lLStbQoj7T2ubIwghhBC30x6/TyTZus8Yk63rddfxdnEFWj7Y2LiyVV4qyZYQwv45OzcetnvjhvxME0IIce+Mv0+Mv1/uRpv3bAnbZtqz1VCNXqcDoKyFMsLv92xJGaEQwv45Ojri7e1NSUkJAO7u7s12YhVCCCFuR1VVbty4QUlJCd7e3jg6Ot7115Jk6z7j7uiOgoKKipdL4wujpZUtYxlheVkVBkMDjo6y0CmEsG9+fn4ApoRLCCGEuFve3t6m3yt3q1XJlvEk+9bYtGnTXQcj7p2D4oCHkwcV9RV0uLniWdrCypaXvjHZUlWVivIqU1mhEELYK0VR8Pf3x9fXl7q6Oq3DEUIIYaecnZ3vaUXLqFXJ1unTp80e5+TkYDAY6NOnDwAXLlzA0dGRIUOG3HNA4t51cOpARX0FbsZkq7a62XFOzo508HKjoryKsms3JNkSQtw3HB0d2+WXpBBCCHEvWpVsHT161PTfmzZtwtPTk6SkJDp27AjAtWvXmD9/Po888ohlohRtYty35eLY2EGltIUyQgC9t/vNZKsS6GKN8IQQQgghhPhRaPMmnddff51169aZEi2Ajh07EhcXx+uvv96uwYm7Y0y2nB0NQMtlhAB6Y5MM6UgohBBCCCFEu2pzslVeXk5xcXGT6yUlJVy/fr1dghL3xphsKUrjfoXbrmzJwcZCCCGEEEJYRJuTrSeeeIL58+fzv//7v1y5coUrV67wv//7vzz//PPMnDnTEjGKNvJwNO69qgVaPtQYGssIQQ42FkIIIYQQor21ufX71q1bWb58OT//+c9NnZ6cnJx4/vnnee2119o9QNF2ns6eABhuJlultdU0qCoOzZw3I2WEQgghhBBCWEabky13d3feeustXnvtNf7973+jqio9e/bEw0M62dkKYxlhndrYhbBBVbleV43exa3JWCkjFEIIIYQQwjLu+hTbwsJCCgsL6d27Nx4eHqiq2p5xiXtgLCOsrK/A3amx/3tpTfPt372kjFAIIYQQQgiLaHOy9e233zJhwgR69+7NY489RmFhIQAvvPACL7/8crsHKNrOuLJVaag0rWa11CTD++bKVrmUEQohhBBCCNGu2pxsLVu2DGdnZy5duoS7u7vp+jPPPENaWlq7BifujnHPVkV9BR3vkGwZ92yVShmhEEIIIYQQ7arNe7YOHz7Mhx9+SGBgoNn1Xr168eWXX7ZbYOLumVa26ivRu+iAls/a8ur4fRmhqqoozTTREEIIIYQQQrRdm1e2KisrzVa0jK5evYpOp2uXoMS9Me7ZUlHx1jXm09fuUEZYV1tPdVWtdQIUQgghhBDiR6DNydbo0aPZvXu36bGiKDQ0NPDaa68xbty4dg1O3B0nBydcHVwB8HBp/F9c1sLKlqubCzrXxiYa0iRDCCGEEEKI9tPmMsLXXnuNsWPHkp2dTW1tLa+88gpnz57lu+++4//9v/9niRjFD6iqiqpW4ODg2eIYT2dPqmuq8WjMo1pc2YLGjoTfFJVReq0Sv590bO9whRBCCCGE+FFq88pW//79OXPmDD/96U+ZOHEilZWVzJw5k9OnT/Pggw9aIkZxC4PhKhe/7sHFr/uiqoYWxxlLCV2dGlvyl9U23/odvm+SUS4rW0IIIYQQQrSbNq9sXbp0iW7duvGf//mfzd7r3r17uwQmmufg0BFVrQUaMDRcxcmxa7PjjE0ynB0aALjWQhkh3HqwsSRbQgghhBBCtJc2r2wFBwfzzTffNLn+7bffEhwc3C5BiZYpiiOODp0BMBiKWxxnTLacHBtXv8puU0aov3mwcWmptH8XQgghhBCivbQ52WqpPXhFRQWurq7tEpS4PUdHXwAMhpIWxxiTLZTGDoMttX4HKSMUQgghhBDCElpdRhgTEwM0dh9cs2aNWft3g8HAyZMneeihh9o9QNGUo2NXqPuMekNRi2OMyZZKY7J1uwYZ35cRysqWEEIIIYQQ7aXVydbp06eBxpWtvLw8XFxcTPdcXFwYPHgwy5cvb/8IRRPGfVqGhjuvbNWpjY0xrtfVUN/QgJND08VMYxmh7NkSQgghhBCi/bQ62Tp69CgA8+fPZ8uWLXh5eVksKHF7jg6NyVZ9K/Zs1TZ834WwrLYKH1ePJmNNK1ulkmwJIYQQQgjRXtq8Z2vz5s3U19c3uf7dd99RXl7eLkGJ2zOtbLUi2ao0VODprANabv9u3LMlZYRCCCGEEEK0nzYnW7NmzSI5ObnJ9f/5n/9h1qxZ7RKUuL22NMioqK/A28UNaHnflpeUEQohhBBCCNHu2pxsnTx5knHjxjW5PnbsWE6ePNkuQYnbM5URNtx5ZauivgJvXWOXyJY6EnrfLCOsrKimvq7lg5KFEEIIIYQQrdfmZKumpqbZMsK6ujqqqlrueCfaj5NpZesbVFVtdowx2TKoBrxdnAEobWFlq4OXKw4Oje38Zd+WEEIIIYQQ7aPNydawYcPYvn17k+tbt25lyJAh7RKUuD1jGSHU0dDwXbNjdI46nJXGJMvLpfF/c0srWw4ODnjqZd+WEEIIIYQQ7anV3QiN1q5dS3h4OJ9++ikTJkwA4O9//ztZWVkcPny43QMUTSmKCw4OHWlouIahoQRHR59mx3Vw6sC1umt4GJOt25615U7ZtUrKZWVLCCGEEEKIdtHmla2RI0fy8ccfExgYyP/8z//wl7/8hZ49e3LmzBke+f/t3Xl8XGXd///XOWe2LDNZ2qZp2rRNutEVKEUoO7KJoiK3P1QQRbldQUDkBlFuWUSq8pWbWxQUN1BAuG9ZBG4t1K3IUpbSSiml+96m2fdklnPO748zM0mapUk6aZr0/Xw8YjJnzpy5pjPFvPu5rs916qlDMUbpgc8qBujXxsZZyUjdV9hKrduqV5MMEREREZGMGHBlC+CYY47h0UcfzfRYZAAsswhY16+OhEGfA0B9tOfW79C5I6GmEYqIiIiIZMKAK1sAmzdv5uabb+aSSy6hstL7ZX/p0qWsXbs2o4OT3llW/zc29pleh8EDTSMENI1QRERERCRDBhy2li9fzvz583nttdd44oknaG5uBuDtt9/mlltuyfgApWfpjoTOgStblul1j+ytQQZAXnIaoSpbIiIiIiKZMeCw9c1vfpM77riDZcuWEQgE0sfPPPNMXn311YwOTnqX2mvL7kdlyzViwAEqW8lphFqzJSIiIiKSGQMOW2vWrOFjH/tYt+Pjxo2jpqYmI4OSAxvINELHjQIHmkboVbY0jVBEREREJDMGHLby8/PZu3dvt+OrVq1i4sSJGRmUHFjHxsYHnkYYc73GGK2JOFG7+4bU0LFmS9MIRUREREQyY8Bh65JLLuHGG2+koqICwzBwHIeXX36Z66+/ns985jNDMUbpQaqyZTv7cF23x3NyfF61qt1pxTQMABpiPXck7AhbqmyJiIiIiGTCgMPW9773PSZPnszEiRNpbm5mzpw5nHbaaZx00kncfPPNQzFG6YHX+h1ctx3HbezxnLAvDEBLooU8fwiAumjPYSrdIKO+tdfwJiIiIiIi/Tfgfbb8fj+PPPII3/3ud3nrrbdwHIdjjz2WGTNmDMX4pBemmY1pRHDcRmx7H5aZ1+2c1DTC5kQzecEs6mJtvVa2UvtsObZDc1M74UjW0A1eREREROQIMODK1u23305rayvl5eV8/OMf5+KLL2bGjBm0tbVx++23D8UYpRfWAdZtpcJW1IlSkOwcWddLk4xAwEd2ThDQui0RERERkUwYcNi67bbb0ntrddba2sptt92WkUFJ/6Q7Ejo9dyTMsrIwk29xXtArYjb0udeW1m2JiIiIiGTKgMOW67oYyWYLnf3rX/+isLAwI4OS/vGZfVe2DMNIV7dyA9571ltlCzpvbKywJSIiIiJysPq9ZqugoADDMDAMg5kzZ3YJXLZt09zczJe//OUhGaT0LN2R8AB7bTUmGsnxe7d7W7MFHeu2NI1QREREROTg9Tts3XPPPbiuy+c//3luu+028vI6GjIEAgGmTp3K4sWLh2SQ0rOOjY1732sr1f49lHyn6/oxjVAbG4uIiIiIHLx+h63PfvazAJSVlXHyySfj8w24kaFkWHpj417WbEFH+/eA5QBQH+s9SOUlK1v1qmyJiIiIiBy0Aa/ZOv3009m+fTs333wzn/rUp6is9KoqS5cuZe3atRkfoPTOMg88jTBV2bLMBAAN0d6nEWrNloiIiIhI5gw4bC1fvpz58+fz2muv8eSTT6Y7E7799tvccsstGR+g9K5jGmHfa7YADCMO9K9BhqYRioiIiIgcvAGHrW9+85vccccdLFu2jEBy7yaAM888k1dffTWjg5O++ZJhy3WbcZyeA1IqbLnEAGjoK2ypQYaIiIiISMYMOGytWbOGj33sY92Ojxs3jpqamowMSvrHMHIxjCyg93VbqbCVcL3pg3XRNlzX7fFc7bMlIiIiIpI5Aw5b+fn57N27t9vxVatWMXHixIwMSvrHMIz0uq3ephKmwlYsGbZijk27nejx3PSaLU0jFBERERE5aAMOW5dccgk33ngjFRUVGIaB4zi8/PLLXH/99XzmM58ZijFKH9IdCXtp/54KW612Cz7De7t7a/+emkbY3hYj2h7P9FBFRERERI4oAw5b3/ve95g8eTITJ06kubmZOXPmcNppp3HSSSdx8803D8UYpQ8H2tg4FbaaE83kB70ph/W9rNvKzg3i81mA1m2JiIiIiBysAW+W5ff7eeSRR7j99ttZtWoVjuNw7LHHMmPGjKEYnxyAlaxsJZwDVbZayQ8EqW5v6TVsGYZBXkE2NVVNNNS3UjQhf0jGLCIiIiJyJBj0zsTTpk1j2rRpmRyLDIIvvddWRY/3p/bZAsgPem93fS/TCAEi+cmwpSYZIiIiIiIHpV9h67rrruv3Be++++5BDWTJkiV861vf4pprruGee+4BwHVdbrvtNh544AHq6uo44YQT+OlPf8rcuXPTj4tGo1x//fX8/ve/p62tjbPOOov77ruPSZMmpc+pq6vj6quv5plnngHgIx/5CPfeey/5+fmDGuvhpGMaYc+VLcuwyLayabVbyQt6UwR7q2xB542NNY1QRERERORg9CtsrVq1qsvtlStXYts2s2bNAmDDhg1YlsVxxx03qEG88cYbPPDAAyxYsKDL8R/+8IfcfffdPPjgg8ycOZM77riDc845h/Xr1xMOhwG49tprefbZZ3nssccYM2YM3/jGN7jgggtYuXIlluWFi0suuYRdu3axdOlSAL74xS9y2WWX8eyzzw5qvIeT/m5s3Gq3kuM3gL4rW/mp9u/qSCgiIiIiclD6Fbb+/ve/p3++++67CYfDPPTQQxQUFABe5ehzn/scp5566oAH0NzczKWXXsovfvEL7rjjjvRx13W55557+Pa3v81FF10EwEMPPcT48eN59NFH+dKXvkRDQwO/+tWv+N3vfsfZZ58NwMMPP0xpaSl/+ctfOO+881i3bh1Lly5lxYoVnHDCCQD84he/YPHixaxfvz4dGEeq1MbGdi9rtsALW5XRSrL93u2+KlsRbWwsIiIiIpIRA+5G+KMf/YglS5akgxZAQUEBd9xxBz/60Y8GPIArr7ySD33oQ+mwlLJ161YqKio499xz08eCwSCnn346r7zyCuBV2OLxeJdzSkpKmDdvXvqcV199lby8vHTQAjjxxBPJy8tLn9OTaDRKY2Njl6/DkWV6DTIcpw7XjfZ4TqpJRtByAKiPtfd6vdQ0wkZVtkREREREDsqAw1ZjYyP79nWfslZZWUlTU9OArvXYY4/x1ltvsWTJkm73VVR4DR/Gjx/f5fj48ePT91VUVBAIBLoEv57OKSoq6nb9oqKi9Dk9WbJkCXl5eemv0tLSAb22Q8U0C4AAAIkD7LXlS4WtPqYR5qWmEapBhoiIiIjIQRlw2PrYxz7G5z73Of7whz+wa9cudu3axR/+8AeuuOKK9HS//ti5cyfXXHMNDz/8MKFQqNfzDMPoctt13W7H9rf/OT2df6Dr3HTTTTQ0NKS/du7c2edzDhfDMPBZ44ADb2xsmQmgfw0y6jWNUERERETkoAy49fvPfvYzrr/+ej796U8Tj8e9i/h8XHHFFdx11139vs7KlSuprKzs0lTDtm1efPFFfvKTn7B+/XrAq0xNmDAhfU5lZWW62lVcXEwsFqOurq5LdauyspKTTjopfU5PlbiqqqpuVbPOgsEgwWCw369nOFnWeBL2bmyn742NXWLAgcKWV9nSNEIRERERkYMz4MpWdnY29913HzU1NaxatYq33nqL2tpa7rvvPnJycg58gaSzzjqLNWvWsHr16vTXokWLuPTSS1m9ejXl5eUUFxezbNmy9GNisRjLly9PB6njjjsOv9/f5Zy9e/fyzjvvpM9ZvHgxDQ0NvP766+lzXnvtNRoaGtLnjCTRthgv/98q/u/BF9PHUuu2DjSN0MFb09X3NMJU63eFLRERERGRgzHoTY1zcnK6tWofiHA4zLx587pdc8yYMenj1157LXfeeSczZsxgxowZ3HnnnWRnZ3PJJZcAkJeXxxVXXME3vvENxowZQ2FhIddffz3z589PN9yYPXs2H/jAB/jCF77Az3/+c8Br/X7BBReMyE6EsWicOy73XsfZnziRYFagoyNhLxsbp8JWzG0HLBpi7b1Oo8xLdiNsamjDth0sa8B5XEREREREOIiwdSjccMMNtLW18dWvfjW9qfELL7yQ3mML4L/+67/w+XxcfPHF6U2NH3zwwfQeWwCPPPIIV199dbpr4Uc+8hF+8pOfHPLXkwm5edmEsoO0t0ap2lPHpGnjD7ixcSpsRZ02IJeE69AcjxIOdF8rF8nLArw1bU0NbeQX9r9aKSIiIiIiHQ6rsPWPf/yjy23DMLj11lu59dZbe31MKBTi3nvv5d577+31nMLCQh5++OEMjXJ4GYbBuIkF7NxYQdXurmErcYA1W62JFoJWPlE7QX2svcewZfkswnlZNDW00VDXorAlIiIiIjJImiM2Ao2d6DUDqd5dC4DP7F9lqznRTEEyYNX11SQjX+3fRUREREQOVr/C1sKFC6mrqwPg9ttvp7VVv4QPp3ElXtiq2uO9J5blNciw7b4rWw4OBSFvT66G/jTJUEdCEREREZFB61fYWrduHS0t3r5Lt912G83NzUM6KOnbuGRlq2p3KmwlK1tONa6b6Ha+3/QTNL029pGA95b3WdlKb2ysvbZERERERAarX2u2jjnmGD73uc9xyimn4Lou/+///T9yc3N7PPc73/lORgco3Y0rKQSgOhW2zDF4udnBdqrxWcXdHpPryyUai6bDVl/t3yP5ClsiIiIiIgerX2HrwQcf5JZbbuG5557DMAz+/Oc/4/N1f6hhGApbh8C4SV2nERqGhWWOw3b2Ydv7egxbOb4camI1ZPu9du8NfVa2vGmE2thYRERERGTw+hW2Zs2axWOPPQaAaZr89a9/paioaEgHJr0bN9GrbFUlG2SAt27LdvaRsPcR7OExYZ/XLj/L5wJ9TyPMT04jrFeDDBERERGRQRtwN0LHcRS0hlmqQUZrUzstjV5oSlWzDtQkI2A5ADRE23u9fiQ/2SBD0whFRERERAZtUPtsbd68mXvuuYd169ZhGAazZ8/mmmuuYdq0aZken/QglBMkNz+b5vpWqnbXkhOZ2NGR0Om5/XuOzwtQlmUD/WuQoWmEIiIiIiKDN+DK1vPPP8+cOXN4/fXXWbBgAfPmzeO1115j7ty5LFu2bCjGKD3o1pEwuddW4gCVLcOIA32v2cpPtX7XNEIRERERkUEbcGXrm9/8Jl//+tf5/ve/3+34jTfeyDnnnJOxwUnvxpUUsnXt7nSTDF96r62eK1upNVsuMQDq+tmN0HVdDMPI2LhFRERERI4UA65srVu3jiuuuKLb8c9//vO8++67GRmUHNjYZGWrev+9tnqpbKWmESbcKAD1/ZhGGI/btLXGMjNgEREREZEjzIDD1rhx41i9enW346tXr1bjjEOgsb2d2//6N/463mtekepImApbiV7WbKWmEcZcb2pgY6wd23F6PDeUFSAY8gNqkiEiIiIiMlgDnkb4hS98gS9+8Yts2bKFk046CcMweOmll/jBD37AN77xjaEYo3Tityx++9ZqAMqDZsc0QrNjGqHrOhhG1xydClttdhuQgws0xtspCGb3+Dx5+dlUVjTQUNfKhEmFQ/JaRERERERGswGHrf/8z/8kHA7zox/9iJtuugmAkpISbr31Vq6++uqMD1C6yvL7KczOora1jUTER9WuVGVrXPKMBI5Ti2WN7fK41JqtlkQzub4SmhMx6mN9hK2CHC9sqSOhiIiIiMigDDhsGYbB17/+db7+9a/T1NQEQDgczvjApHcl4Qi1rW3E8/xU76pPNrEIYJpjcJwaEva+bmErtWYr7sbJDwS8sBVtg17eutS6LU0jFBEREREZnAGv2eosHA4raA2DiRHvzzwR8RNrj9NQ0wyAL9Ukw+neJCNkhrAMC4CCLC9j96dJhsKWiIiIiMjgHFTYkuFREokAYBV71ap0R0Kz9/bvhmGkpxJGAt7bXt9H+/e8/OReW5pGKCIiIiIyKApbI9DEPC9sMTYEQNWe/ToSHqD9e24qbPWrsqWwJSIiIiIyGApbI9DEZGUrHvHas1ft7t/GxqmOhNnJlXp9ha2IphGKiIiIiByUAYWteDzOmWeeyYYNG4ZqPNIPqWmEbV5hK93+3epjzRZ0hK2gz9tfq69phPkFXhWsUZUtEREREZFBGVDY8vv9vPPOOxiGMVTjkX5INchoNR0cn9FpzVZqGmHflS2/lQxbsfZenyMvGbbqtWZLRERERGRQBjyN8DOf+Qy/+tWvhmIs0k95oRA5fm8KYSLiozK511bHNMK+K1umkQD6rmxF8jWNUERERETkYAx4n61YLMYvf/lLli1bxqJFi8jJyely/913352xwUnPDMOgJC/Cxuoa4hE/1ftPI7T3Jffe6lqBTIUtjBgAdf1okNHaHCUeT+D3D/ijIiIiIiJyRBvwb9DvvPMOCxcuBOi2dkvTCw+diREvbCUifqrX1mPbDlaysuUSxXEbsIz8Lo9JhS2bKGDQ0EfYyg2HMC0Tx3ZorGtlTFFkqF6KiIiIiMioNOCw9fe//30oxiEDlGqSkcj349gOdZUNjJ1QgGnk4bgN2PY+LDO/y2NSYSvhtgNZfU4jNE2TSF4W9bUt1CtsiYiIiIgM2KBbv2/atInnn3+etjbvF3bXdTM2KDmwVJMMq8ib7pdq/2710f49FbbaHe89a07EiDt2r8+RapLRqCYZIiIiIiIDNuCwVVNTw1lnncXMmTP54Ac/yN69ewH493//d77xjW9kfIDSs9ReW05hEKCjI2EfGxunwlZrooXUhM++phLmaa8tEREREZFBG3DY+vrXv47f72fHjh1kZ2enj3/iE59g6dKlGR2c9C41jTCa472Fqb220h0Jnb4qW+3kBQIA1Ef7aP+ujoQiIiIiIoM24DVbL7zwAs8//zyTJk3qcnzGjBls3749YwOTvk3M88JWi8/FNUi3f0/ttdVT+/dsKxsDAxeXgpCf+liM+j4rW940wgZNIxQRERERGbABV7ZaWlq6VLRSqqurCQaDGRmUHNi4nBz8polrQCLX12kaoVfZ6mljY9MwyfF5ASo/4OXsuj6aZHRMI1TYEhEREREZqAGHrdNOO43f/va36duGYeA4DnfddRdnnnlmRgcnvTMNg+Kw1yQjkeenak9qY+NUZauix8elphKGg96qrT7XbGkaoYiIiIjIoA14GuFdd93FGWecwZtvvkksFuOGG25g7dq11NbW8vLLLw/FGKUXE/Mi7GxoIB7xdepGmAxbPazZgo6wleP3wlbfGxtrGqGIiIiIyGANuLI1Z84c3n77bd73vvdxzjnn0NLSwkUXXcSqVauYNm3aUIxRepHqSJiI+KmvaiIeS6TXbPXUjRA6wlbI57Xqb+irQUYqbGkaoYiIiIjIgA24sgVQXFzMbbfdlumxyACVJPfasgsCuK5Lzd56ikq9sOW6LThOC6aZ0+UxqbAVsBwA6mK9B6mIphGKiIiIiAzaoMJWXV0dv/rVr1i3bh2GYTB79mw+97nPUVhYmOnxSR9SlS1jXBbgbWxcPGUGhpGN67Zi2/swzfIuj8mxvPDlM73NjOv7aJCRn2yQ0djQhuM4mOag98AWERERETniDPi35+XLl1NWVsaPf/xj6urqqK2t5cc//jFlZWUsX758KMYoveg8jRBIN8lIb2zsdJ9KGPZ71TDDiANQH+t9GmEkGbYc26G5qffzRERERESkuwFXtq688kouvvhi7r//fizLAsC2bb761a9y5ZVX8s4772R8kNKz1MbGbSFwgapdyY2NzSISbMXuof17ahqha8QA+txny+/3kZ0bpLU5SkNdK5G87i3/RURERESkZwOubG3evJlvfOMb6aAFYFkW1113HZs3b87o4KRvEyJhDCBhgp1tdats9bSxcWoaYcKNAn1PI4SOJhmN6kgoIiIiIjIgAw5bCxcuZN26dd2Or1u3jmOOOSYTY5J+ClgWRbnJ8NSl/XtqY+PuYStV2Yq5Xsjqq7IFkK8mGSIiIiIig9KvaYRvv/12+uerr76aa665hk2bNnHiiScCsGLFCn7605/y/e9/f2hGKb0qiUTY19xCPOKnOhm2fFYxAHYfa7ba7VYgn3Y7QXsiTsjn7/H6qXVb9QpbIiIiIiID0q+wdcwxx2AYBq7rpo/dcMMN3c675JJL+MQnPpG50ckBTYxEWLVnr1fZ2pysbJleZauvNVutdiuWAbbrNcko7iVspacRaq8tEREREZEB6VfY2rp161CPQwappFNHwqa6etpbYx3dCPtYs+XiUhgKUNUWoz7WRnF2uMfr5xWkphEqbImIiIiIDES/wtaUKVOGehwySKn2705hEIDqPbUUTUk1yOhe2fKZPrKsLNrsNgqCFlVtfTfJyEut2arXNEIRERERkYEY1KbGu3fv5uWXX6ayshLHcbrcd/XVV2dkYNI3x2nCNMNMzPMqUqmwVbmrlgnlE7xjbj2O245phLo8NteXS5vdRiTovf19NclITSNUZUtEREREZGAGHLZ+85vf8OUvf5lAIMCYMWMwDCN9n2EYCltDzLb3UVf5fly3lbETNlES9ipbsVyvFX/V7jpMYzYGQVyi2HYVpq+0yzVyrByqqCLs9947hS0RERERkcwbcNj6zne+w3e+8x1uuukmTHPAnePlIJnmWFy3BYjj2HspyfOaYcR84AQMqvfUYRgGljWOhL0L296Hf7+wlWqSkZXsidGvaYTqRigiIiIiMiADTkutra188pOfVNAaJoZhYfkmA2DbW8gNBMgLeVMI4xF/p722kuu2emj/ngpbIZ/XXbKuz8pWas2WKlsiIiIiIgMx4MR0xRVX8L//+79DMRbpJ8sqA8BObAO6diRMhy3zwBsb+0wbgIZoe6/PlZpGGG2P094Wy8DoRURERESODAOeRrhkyRIuuOACli5dyvz58/H7u+7PdPfdd2dscNIzyzcVomAnvJb8EyMR1lVWEY/4qNpTC3Ta2LiPsGWZCaDvylZWdgC/3yIet2moayWUFcjkSxERERERGbUGHLbuvPNOnn/+eWbNmgXQrUGGDD3Ll6psdYQtgESen+qNdbiui2WlKlu9b2yM4VWqGvoIW4ZhkFeQQ3VlI431rYwvyc/UyxARERERGdUGHLbuvvtufv3rX3P55ZcPwXCkPyyrHADb3gZ0TCOMR3y0tURpaWzD8qX22uq9smUTAwJ9NsgAb91WdWUj9WqSISIiIiLSbwNesxUMBjn55JOHYizST5ZvKgB2YjuuazMx4u215RZ6+2lV7arFl1yzZTu9V7YSrrdWq6/W7wCRdEdCNckQEREREemvAYeta665hnvvvXcoxiL9ZFoTgQAQw7H3MjGvYxoheHttpbsR9lHZane8kFUfa8N13V6fL9Uko7FelS0RERERkf4a8DTC119/nb/97W8899xzzJ07t1uDjCeffDJjg5Oepdq/24lN2PYWSiKLAIiGDBzLoGpPHZY1GwDbqcF1ExhGx1udClttdgvgEnccWhIxcv3BHp8vP9n+vV6VLRERERGRfhtw2MrPz+eiiy4airHIAFjWVC9sJbZSmH0qIZ+P9kSCRNhH1e5aLHMMYAE2tlOFz5qQfmx6zZZrE7IM2m1oiLX3GrZS0wgbtdeWiIiIiEi/DThs/eY3vxmKccgAWb6yZPv3bRiGwcRIhM21tSQiPqr31GEYJpY5DtupIGHv6xK2glYQv+En7sYZE/KzuyVOXbSNiTl5PT5XahphgxpkiIiIiIj024DXbMnhoaNJhtf+vSTZJCPeaWNjXz/WbeWFvLzdV/v3jrClypaIiIiISH8NuLJVVlbW535aW7ZsOagBSf/s3/69815bqbBlWeMh3nvYqovXEfF772VfGxvnpboRahqhiIiIiEi/DThsXXvttV1ux+NxVq1axdKlS/mP//iPTI1LDqBjY2Ov/XtJXsdeW1Vv1OA4Tr82Ns4JeGGrr7228gpSrd81jVBEREREpL8GHLauueaaHo//9Kc/5c033zzoAUn/mFYJHe3f91AS9qYRJiJ+ErEEDdXNWMHkNEKn92mEyVmEfe61lZpG2NTQhp2wsXxW5l6IiIiIiMgolbE1W+effz5PPPFEpi4nB5Bq/w5g21vTe205hQEAqvbU4UtWtuw+KlsBywH6rmyF87LSU0ebGvveAFlERERERDwZC1t/+MMfKCwszNTlpB8sayrgNclIrdmK5Vi44LV/70eDDJ+VAKA+1t7H85iE87K889QkQ0RERESkXwY8jfDYY4/t0iDDdV0qKiqoqqrivvvuy+jgpG8d7d+3UhTOxTIMbBPsXB/Vu+vSYSvh9F7ZMoxU2Oq7YpVXkE1jfavWbYmIiIiI9NOAw9aFF17Y5bZpmowbN44zzjiDo446KlPjkn7oaJKxDZ9pUhwOs7ux0WuSsacOn+m9H7ZdievaGEbHWqtU2HKJAf4+pxFCp42NVdkSEREREemXAYetW265ZSjGIYNgWcmwZXfstbW7sTHd/t2yxgEGYGM7tfiscenH5vi8phc27YD/gJWtgkIvnFVVNmb8dYiIiIiIjEba1HgE66hs7cB17fS6rXjER/XuWgzDj2WO8c7Zb91W2Od1L4w53lqtA1W2Jpd7QW3bxu7rv0REREREpLt+hy3TNLEsq88vn2/AhTI5CPu3f091JExE/FR23tiY7mErNY2w3fGmBTbE23Fct9fnKp9ZDMBWhS0RERERkX7pdzp66qmner3vlVde4d5778Xt45d1ybxU+3c7sQk7sZWSSAEA8Yif2ooqb08sswhY261JRipsxZwYhuHguCZN8XbyAlk9Plf5DC+0bdtciW07WJaKoiIiIiIifel32ProRz/a7dh7773HTTfdxLPPPsull17Kd7/73YwOTg7Mssq8sGVvZWJkCgCJPB+O41K7rwErq+fKVpaVhYmJg0PYb9IYg/po72GreFIBwZCfaHucPTtrKZ06dmhfmIiIiIjICDeo8sSePXv4whe+wIIFC0gkEqxevZqHHnqIyZMnZ3p8cgCWbyrQda+tRF4guddW7xsbG4aRrm4VhLzM3VeTDMsyKUtWt7ZsqMjkSxARERERGZUGFLYaGhq48cYbmT59OmvXruWvf/0rzz77LPPmzRuq8ckBdG7/XhLxml44fgMnZCY7Eqb22up9Y+P8gNcSvu4ATTJSYUvrtkREREREDqzfYeuHP/wh5eXlPPfcc/z+97/nlVde4dRTTx3KsUk/dG7/HvT5GJvt7YcVj/ip2lObXLPVfRohdLR/zwl4m1Q3HKD9ezpsbVDYEhERERE5kH6v2frmN79JVlYW06dP56GHHuKhhx7q8bwnn3wyY4OTA+vW/j0vQnVrK4mIj+rddfiscu/+HsJWqv17jt+7XXeAsFWuypaIiIiISL/1O2x95jOfwTCMoRyLDML+7d9LIhH+tbeCeJ6fqj11WJbXsj1hV+K6bpf3MFXZCvq8LpINB5pGONMLW/v21tPc1EZuuOdmGiIiIiIiMoCw9eCDDw7hMGSwurV/D3vVqkTET9WuWixrXPLMGI5bj2UUpB+bWrPls2zgwJWt3HAWRcV5VFY0sHVjJfMXTsn8CxIRERERGSW0WdIo0HndVmpj43jER9WeOkwjhGnkJ+/vea8ty/DCVkOs/YDPlapubd2ojoQiIiIiIn1R2BoFOrd/L0m3f/dTX9VELBrHSrZ/T+y3bisVtjDiwIG7EQKd2r9r3ZaIiIiISF8UtkaBjiYZnffa8rpeVO+px2f1vLFxKmy5RIG+99lKKZ/prQFTkwwRERERkb4pbI0C6bBlb2Nicq8tO8vC8RtU76lNV7Zsp+dphDHXmz54oAYZ0HWvLcdxMvMCRERERERGIYWtUSC9Ziuxg3DQT24gAEAi7Pc2NjaTGxvvV9lKtX6POV7IOlCDDICJpYUEgj6i7XH27qrL2GsQERERERltFLZGgf3bv6emEsbzfF7Ysnre2DjV+r3daQNcmuJREgeoVlk+i6nTvOtp3ZaIiIiISO8UtkaBVPt3SDbJSHYkTET8VO2uxZfca6u3sAXgN1MdCQcylVAdCUVEREREeqOwNUp0tH/fkl63FY90rWwl9luzZRkW2VY2AHlBCxho+3dVtkREREREeqOwNUp0dCTc1qUjYdWeOnxmz90IoaNJRn7Q29+6P+u2ymZ4lTJNIxQRERER6Z3C1ijR015b8Yif6t11WMnW767biuM0d3lcKmxFgt5Hob4fHQnLk9MIK3bX0dJ84EqYiIiIiMiRSGFrlOho/95pr62Ij+aGVqKtFobhrc/qbWPjHL8B9G+vrUh+NmOLvOfYtqnyAGeLiIiIiByZFLZGCcsqB7z27xPDyWCV68M18aYSpjY2dnoOW1k+F+hfZQu67rclIiIiIiLdKWyNEqY1Aa/9e5z8UB0BywLTIJGbbJJhptq/97yxccDyWr73p7IFUJ5skrFlgzoSioiIiIj0RGFrlPDav08BwLW3U5LqSJjXdd1Wwu4ajlJhy2d5rd/7G7ZSTTJU2RIRERER6ZnC1ihiWVOBVPv3jnVblbtrO21s3HNlyzASwACmESYrW9s2VeIcYCNkEREREZEjkcLWKNLR/n0rE9J7bfmp2l3XsbFxL2u2XGIA1Pdjny2ASZPH4PdbtLZEqdzbkJHxi4iIiIiMJgpbo0hve21V76lNr9lK9FLZsokC/a9s+fwWU6Z519S6LRERERGR7hS2RpH0Xlud2r/HI75kZavnjY1TYSvmeiGrv2u2oKMjoTY3FhERERHpTmFrFOnc/r0kkmz/HvFTtacO8wDdCNvtNsAdVNhSkwwRERERke4UtkaRzu3fJ+W2AF6DjPbWGO3N3houx23AcTsCVceaLQfLdGhNxInaiX49X/lMbx2YphGKiIiIiHSnsDWKdG7/XhiqxDQMXJ+JnWNRs8fGIAiAbVelH+M3/QRN73gwuddWQz+bZKQqW3t31dHWGs3Y6xARERERGQ0UtkaZVJMMw91OUW7HVMLK3XWd2r/3vNdWftAHQF20tV/PlV+YQ+HYXFzXZfvmqgM/QERERETkCKKwNUK1NPYciNJ7bSW6Nsmo3l3baWPjruu2cnxeKIsELaD/lS3o1CRjo6YSioiIiIh0prA1wlTurOGS8qu4tPxrPW4m3Fv79y4dCffbayvs89Zzhf0GAHUDaJLRsW5LTTJERERERDpT2BphxkzIp7GmmbbmdvZurex2f+f27yXpypbXkdAy+27/nu33bjf0c68t6NSRUGFLRERERKQLha0RxvJZlM0rBWDL2zu639+p/fukdPt3b6+t1Jqt3qYRBn0uMLDKVuf2767rDuSliIiIiIiMagpbI1D5/MlAz2HLtEqAIBBncp63rise8VO958AbGwcsG4D6AVS2SsvG4vNZtDS3U7m3YaAvRURERERk1FLYGoHKFyTD1prt3e4zDBPL591fklsLeJWt6j11GMY4AGyna2UrtWbLNJNhawANMvx+H6VlYwFtbiwiIiIi0pnC1giUqmxt7aGyBR1NMgoCXjt2J2QRNVzaGr0KVmK/ylZqGqFhxAGoj/Wv9Xt6PDPVkVBEREREZH8KWyNQWTJs7dtRTXN9S7f7U+3fLbZTkJUFQCLPR+1ebx8tx6nBdePp81PTCB28jYkbov2vbEHXdVsiIiIiIuJR2BqBcvNzGD85OXVvTQ9NMtLt37dSEvGmCMYjfqp2uYAXuOxOTTJS0wjjrheyBtIgA9T+XURERESkJwpbI1RZct3W5re7r9tKhy27015bET9Vuxs6OhJ2WreVqmzFHC9kNQwwbKUqW3t21NDeFhvQY0VERERERiuFrRGqfP4UoLf276nK1g4mJtu/x/O8Jhk+0wtbnTsSptZsJdwEpuFQF20bUBv3gjG55BXk4DguO7ZUDe4FiYiIiIiMMgpbI1RHR8K+279PL/DWYXmVrVqsHtq/h8wQlmEB4LdsYo5Nmx3f/7K9MgwjXd3askFNMkREREREQGFrxEqFrW1rd2En7C73dW7/PjlSD0A84qNqT88bGxuGkV63FbK8ilb9AJtkpDoSqkmGiIiIiIhHYWsEclwXd2yIrNwQ8WicXRv3djsntW6rKLsaSFW2Om1s7PTc/j0/5DXQqB9ok4wZySYZClsiIiIiIoDC1oizq7GRBT+/l3MffYgp80qBvtdt5QW88GPn+qiuasRwvS6GnbsRQkeTjHDAAAYetso6VbYGst5LRERERGS0UtgaYSbk5uICbYkE+cdNBHpet2X5pgLgYyfZfj8A8bBFSy8bG6fCVq4/GbaiAwtbk8vHYVomTQ1tVFc2DuixIiIiIiKjkcLWCGOZJnPGjgPAnZEHwJY+2r87ia2UJNu/xyN+GiqDQNcGGdARtrJ8g6tsBQI+Sqcm9/7SflsiIiIiIgpbI9G8Im/KXmOhV7HqsbKVav9u76Q0kg1AIs9HzZ7kpsZOFa7b0VgjFbYCPu/YQCtb0LHflppkiIiIiIgobI1I88Z5oWYXbRiGQe3eeuqruk7d69z+fdYYr417IuKnYrsDGICD7dSkz0+FLZ+ZDFsDrGwBlKfavytsiYiIiIgobI1E85OVrfdqq5kwLRlw9muS4bV/9zY+Li9oBrxphFW7GrHMVJOMjlCUClummQCgPjaw1u8A5TOTHQm115aIiIiIiMLWSDStoJCQz0dLPM6Y9yU7Eq7pad3WVAAmhWsBbxph9Z66Thsbd3QkTIUtlxgwyGmEyY6Eu7bXEIv2f1NkEREREZHRSGFrBOrcJMOcXQj03f59bKgKgHjY22srvbGx072yZRMFBjeNcMy4MOG8LBzbYcfW6gE/XkRERERkNFHYGqFSTTJaxnvdBfvqSJjr8zY9ToR97NtTi89MVba6h62Y44WswYQtwzDSTTI0lVBEREREjnQKWyNQ1G5j+jivkUWFz5uut+O9Pd2m7qWmEVrsxGeYYBnURtvBHQP0PI0w7sYwcKkbxDRC6Fi3pfbvIiIiInKkU9gaYepi+/j+ukvY5jyAYThsaKwjJz8bO2Gz873dXc61rHIAHHsnJXlZACQiPtrSGxt3VJ+yrWwMvD22fJZNQ6wN13UHPD51JBQRERER8ShsjTB5/nEEzCxs4oyPRGmOxyg6cSrQfd2WaU0g1f59XrISFs/z01jrBS/b6ahsmYZJji8HAL9pY7suzfHogMeX3mtrQ8WgwpqIiIiIyGgxrGFryZIlHH/88YTDYYqKirjwwgtZv359l3Nc1+XWW2+lpKSErKwszjjjDNauXdvlnGg0yte+9jXGjh1LTk4OH/nIR9i1a1eXc+rq6rjsssvIy8sjLy+Pyy67jPr6+qF+iRlnGiYTs2YAMHeCA4B/gdcsY//NjTu3fz9qTCvg7bVVWxEAuq7Zgo6phNneXsmDav8+ZVoRpmnQUN9KbXXzgB8vIiIiIjJaDGvYWr58OVdeeSUrVqxg2bJlJBIJzj33XFpaWtLn/PCHP+Tuu+/mJz/5CW+88QbFxcWcc845NDU1pc+59tpreeqpp3jsscd46aWXaG5u5oILLsC27fQ5l1xyCatXr2bp0qUsXbqU1atXc9lllx3S15sJTfE6GhPeay8p8P6c2kuygV46EiabZEzN8zY9jkd8VO3w3vaEXdWl+pQKW/lBC4C6QTTJCIb8TJzirQnbqqmEIiIiInIE8w3nky9durTL7d/85jcUFRWxcuVKTjvtNFzX5Z577uHb3/42F110EQAPPfQQ48eP59FHH+VLX/oSDQ0N/OpXv+J3v/sdZ599NgAPP/wwpaWl/OUvf+G8885j3bp1LF26lBUrVnDCCScA8Itf/ILFixezfv16Zs2adWhf+EEImCF2t24naEEwVAkUUZXlhcota7bjui6GYaTPt6ypAEzIqQHySUT87N3qciwAMRynDsvy2senwlZuwAtjg9lrC7yphDu3VrN1YwWLTpo+qGuIiIiIiIx0h9WarYaGBgAKC71f/rdu3UpFRQXnnntu+pxgMMjpp5/OK6+8AsDKlSuJx+NdzikpKWHevHnpc1599VXy8vLSQQvgxBNPJC8vL33O/qLRKI2NjV2+DgdBK4txIW9qYJxa/L4Em9saMXwmjTXN1Oyp63J+qrJVEPTWZ8XzfOzb3ohpFgBd1211n0Y4+LAFsEUdCUVERETkCHbYhC3Xdbnuuus45ZRTmDdvHgAVFV63vPHjx3c5d/z48en7KioqCAQCFBQU9HlOUVFRt+csKipKn7O/JUuWpNd35eXlUVpaenAvMIPKc+bgJGf/TchvoTkeY+xx3vj2X7eVav+eZe0BvDVblXvqsMzkxsad1m3lWF6DjJDlXXywla10+3dNIxQRERGRI9hhE7auuuoq3n77bX7/+993u6/ztDig21S5nux/Tk/n93Wdm266iYaGhvTXzp07+/MyDokpObNwXO+tO2p8AoDQsV7A2X9z41T7d9PdhWU4uH6Tipp6fFb3jY3D/jAAfstrvNEwyMpWqv37jq1VxOOJQV1DRERERGSkOyzC1te+9jWeeeYZ/v73vzNp0qT08eJiL0DsX32qrKxMV7uKi4uJxWLU1dX1ec6+fd2rLFVVVd2qZinBYJBIJNLl63AxJWcWTnJPrPF5Xse/xFRvCuD+la2O9u8JZo/xNj1utGxcp/eNjS3TC0iDaZABMK44j9xwCDvhsHNr9aCuISIiIiIy0g1r2HJdl6uuuoonn3ySv/3tb5SVlXW5v6ysjOLiYpYtW5Y+FovFWL58OSeddBIAxx13HH6/v8s5e/fu5Z133kmfs3jxYhoaGnj99dfT57z22ms0NDSkzxlJCvzjCJle+PMF9wEuNWEvfO3fkbBz+/f54719s+IRP9EW7/EJpyPIpqYRYnihrCE68Nbv3nMaWrclIiIiIke8YQ1bV155JQ8//DCPPvoo4XCYiooKKioqaGvzKiqGYXDttddy55138tRTT/HOO+9w+eWXk52dzSWXXAJAXl4eV1xxBd/4xjf461//yqpVq/j0pz/N/Pnz090JZ8+ezQc+8AG+8IUvsGLFClasWMEXvvAFLrjgghHViTDFMAym5MzBdcGhndxQO9vjzbjA7o17aW/tuhlxqknGzEKvZXwi4qO5zgtWnStbqWmELjFg8JUt6LS58cae18SJiIiIiIx2wxq27r//fhoaGjjjjDOYMGFC+uvxxx9Pn3PDDTdw7bXX8tWvfpVFixaxe/duXnjhBcLhcPqc//qv/+LCCy/k4osv5uSTTyY7O5tnn30Wy7LS5zzyyCPMnz+fc889l3PPPZcFCxbwu9/97pC+3kwqy52dnko4Ib+FpniMrBmFOI7LtrVdN3ROtX8vDdcDXpOMhqruGxunphEmXK+iNdgGGQBlM1NhS5UtERERETkyDes+W5031O2NYRjceuut3Hrrrb2eEwqFuPfee7n33nt7PaewsJCHH354MMM8LE3JnoXjGliGy/SiGBsrIPf4ibRvrGXL29s56vhp6XNTla2ibG/9VDzip3q3j5J5kOhhzVbMbQfcQbd+ByifkWzYoWmEIiIiInKEOiwaZMjATcwqw8DbEGtspB4Ad3o+0FP7dy9sRfxe8Enk+ajY6gVd29mXDr2pNVsuLj7TOaiwNXV6EYZhUFfTTF1N86CvIyIiIiIyUilsjVA+009RaCoApq8W03CoL/SmTe7fJMOyvLAVMPdiGQ7xiJ9dm2wAXLcN121OXtNHlpUFgN+yaYy1YzvOoMYXygpQUprcnFpTCUVERETkCKSwNYJNy5mP6wKGQ2FuM7vddlxg6zs7ukzRTLV/N0hQnNOIk2Wxa0cLhpFco9XDui2faeMCjfHBdSSEzk0yFLZERERE5MijsDWCTc09qst+W42JGBRl0drYxr5tVenzOrd/n5HvVbH2tjTjs4qArh0JU1MJwwHvo1EfG3zYKp+Zav+ujoQiIiIicuRR2BrBpmTPxHa9t7C8yAtFue/zNoXubd3WnKJWANpCBq4zFgC7015bqcpWJBW2DqYjYbJJhipbIiIiInIkUtgawXL9eeT6vHVR+bm1ABhHebe3vL29y7mpdVvTkpWteMRHvC0P6LkjYU7Aq5gdVEfCZGVrx5YqEnF70NcRERERERmJFLZGuKk5cwEwrVaC/jjNRd7+Wd0rW1MBmBj2Qlki4qetydurrKe9trJ83pqvg6lsFU3IIzsnSDxus2tHzaCvIyIiIiIyEilsjXDlufNwkr0wxoabqPDFcOmhI2FyGuGYkLeWK57no6E6BPQctoJWMmwdRGXLNM10kwyt2xIRERGRI43C1gg3JXsmTnLd1vi8JhrtOIl8P3u3VtLS2Jo+LzWNMNvah2U4JCJ+6iq8fboSTsc0wrDfq3b5LG/a38GELejUkVCbG4uIiIjIEUZha4QbH5qEaXhTB6eOawIgsMALONve2Zk+z2v/HsI0bIpzGolH/FTu9N7+zpWtVDdC04gDBzeNENT+XURERESOXApbI5xpWBSHygHIzW4EXPzzxwFd1211bv8+KVyPnWuxe4s3VdDuoUGGmwxbdRmqbGkaoYiIiIgcaRS2RoFpucfgumAYCSJZbbSVZAGw+V/7dSRMNsmYGmkAw2DjzgQAjtuI43hTDlNhy3ajADREB7/PFnSErZqqJhrqWg7qWiIiIiIiI4nC1ihQ1mlz47GRJipDttckY/+OhMl1WzMLvemGO2ttDJJNMpLrtlJhK+62Ae5BV7ayc4JMmFQAwNZNlQc4W0RERERk9FDYGgUmZ89IN8mYUFBPkxMnkedn2zs7sW0nfV6qslWW74WtaI4PSG5snFy3lQpbDg6W4dJwkGELOq/b0lRCERERETlyKGyNAiErm4jfW6c1sdDbtNgpjxBti7Fnc0fASbV/L87x9rxK5PmxY94myKmNjYNWEL/hdSn0WfZBN8gAKJ9ZDMAWdSQUERERkSOIwtYoMTVnDgChQAuWaRM4OtmYotN+W6mwlReo9tq/h31EW3rf2Nhv2TQnYsQd+6DGpvbvIiIiInIkUtgaJaanm2RAYbiZ+BQvMHUOW6a5X/v3PD/NddkA2E4PYcv0QtbBTiVMha3tWyqxEwcX3ERERERERgqFrVFias5R2MkmGUWRRmpySTbJ6OhI2Ln9e2m4jkTER31VEOiYRggdYSsStACoO8iphBMmFRDKChCLJti9o/agriUiIiIiMlIobI0wNdVN3HvXn/jWtY90OV4YKMJveC3fS8bU0UQCO+LvUtmCjqmEk8L1JMI+qnd7gaqnaYS5fi+8NcQOrv27aZqUTS8CYIs2NxYRERGRI4TC1ggTDPr5v6dX8uaKzezdXZc+bhhGenPjcWFvP6v2idlU766lsbY5fZ5lTQWgNFyP6zPZucsLVKnW79ARtnKSYetgK1sAZTPVkVBEREREjiwKWyNMbjjE/KMnA7DipQ1d7pueeyyuC35fnFAghn++16Fwy9sdUwlTla3y/EYAtlZ4gSrRQ2Ur5PPaxme2/bsqWyIiIiJyZFDYGoFOOGUm0D1sTQvPx02u2xoXacSZFgG6bm6c2murNFwPwI4abxqh49TiujGgczdCL2wd7MbGoPbvIiIiInLkUdgagU5Mhq01q7bT0hJNH5+YVYabfEtLCuqoz/eCVE/t38dm12EZDnVGDrg+AOxkk4xU2LKS3QgzsddW2XSvslVV0UBT48FfT0RERETkcKewNQJNmjyGSZPHkEg4rHxtc/q43wyQ5/dCzfiCBppMm0TYx9Y13du/W6n275EAjt11Y+NU2DKMOAD1Gahs5YRDjJ+QD8A2TSUUERERkSOAwtYIdcLJM4DuUwknZ3ubG+dltWHg0j4xm+3v7iIRTwDd27/HIz7i7XlAx15bqbDl4FXNMlHZgo51W+pIKCIiIiJHAoWtESo1lfCNVzZh2076+FHhRbgumKZLXk4rzrQ84rEEO9fvSZ/T0f69jkTET2ujF672n0aYcJNh6yBbv6eUJzsSbtmgjoQiIiIiMvopbI1Qc48uJSc3SEN9K++t3Z0+PjX3KJxkk4zx+fUwqwDYb91Wsv37pHA98Tw/jdUhoKMjYSps2cQxDCcj0wgBypJNMtSRUERERESOBApbI4ztJtjVspJ3m/7I8YunA/Dayx1TCSP+AgJmDgAlhXU0jwsA+3ck9CpbpeF63IBJVaXfu3ZyGmGWlYWZ/Gj4TSfj0wi3barsUo0TERERERmNFLZGmKZ4Bc/sup5XKu9j0amTAFjx0sYu5xSHkh0Hw800+xwSub4e99qaHKkHYM8+r2thahqhYRid2r/bGatslZQWEgz5ibbH2burNiPXFBERERE5XClsjTD5gUkUBKbgYDN+QQ2mZbBtcyUVe+rT50zPXQhAViCGz7KJTszuca+t4pwGLMNhZ7UXthJ2x1qqVNjymTbtdoL2RPygx25ZJlOmFQGwVfttiYiIiMgop7A1ApXlngJAhfMGcxeUAl2nEs6KLMRxwTBgTLiRaGk29ZWN1FbUAx3t332mw4ScBvY0emu2UpUtgByfNxUx6POm+2WsSYY6EoqIiIjIEUJhawQqyz0ZgB3Nr/G+U8oBeO3ljqmExaFSwNuouHRsLczy9tFKVbc6t3+fFK6nKhEGwHaqcV1vI+OwzzsWDngfkYw1yUiGLTXJEBEREZHRTmFrBCoKzSLbGkPcbWPaYq89+79WbqO1xfvZNCzyU5sb5zfQNsGrXPW0bmtSuI5aM4zrmoCD7VQDHZWtXL/X2TBTTTLKkx0J1f5dREREREY7ha0RyDDMdHWrOXsNJZMKiMdt3np9S/qc0pzZAORlt9IShESOb7/276mwVU80HMSORQCw92v/nuU1KsxYZWvqDG/N1r499bQ0ZWZqooiIiIjI4Uhha4QqC3tha1vzK7zvlBlA16mEc8In4Lrgtxyyg1GiE7N6bJJRGq4nEfHR3pIKW966rdQ0wqDlrdmqy1BlK5KXzdjx3nNt21x5gLNFREREREYuha0RamLWMfjNbFrtGuad6q3Peu3ljTiOC0B5eC5ucnPjCQW1tE/KZuf6PcTaY0DnvbbqsHN8NNdnA5BI7rWVmkbos7w1XA0ZqmxBpyYZmkooIiIiIqOYwtYIZZkBJue8DwDfpK1k5wSpr2th/bu7AciycghaXnVq0tg67PIIju2wfZ13f6qyNSG3Ecuwqa7xNj/efxqhZSQAqMtg2CpLr9tSkwwRERERGb0Utkaw1Lqt7a0vs+jEaQCseKmjBXxR0Os4OCbcRKzUC09b/uU1yeja/r2RihpvcVZiv7DlGt7+Wg3RzK2vKldHQhERERE5AihsjWBTck7ExKIutp2FZxQAXddtTc89FoCcYJS2HLCzrf3av08FvCYZe/arbKXWbNl4HQ4zWtlKhq1tm/bhOE7GrisiIiIicjhR2BrBglYuJdnHAFA4Zy+mabBl4z4qKxoAmJt3Iq4LpgGFuU20T8zu2pEwHbbq2NfqrdlKNchIrdlKuFHAzeiarUlTxuAP+GhrjVGxuz5j1xUREREROZwobI1wqamEe+3XmT1vEtBR3RoXLMEwvOmBk8fWEJ2UzZY123Fdr4lGqv17abieGturZO3fIAPAb9oZ22cLwPJZTJk2DtBUQhEREREZvRS2RripuScBUNG2lvedUQJ0rNsyDIO85ObGxQX1REtzaK5vpWpnDUCXaYSVbqr1exWu62IZFtmWV+3yWU5GpxFCx1TCrRvVkVBERERERieFrREu7B/PuOAMXBwmva8egNUrt9LW5rV4L80+CoC8nFYSU73qVWrdVuf279W+vOQV4zhOLdDRJMNv2TTE2tIVsUzoaP+uypaIiIiIjE4KW6PA1ORUwqbQ2xSX5BOP2ax6YysAcyInAhCwbBL5DnaWxZa3vY6EqbA1IbeBeI6PeLs3ddB2vHVb6bBl2sQdh5ZELGNjLk+1f9c0QhEREREZpRS2RqCNtdX8ceO69O2y3FMA2NW6khNO9QLUin96UwlnhBfgugaGARPH1hKdmJ2ubJlmMRDEZ7pMCDfR3OSFq/3bv4d8XkWrIZa59u9Tp3uVrb07a2lrjWbsuiIiIiIihwuFrRHmvZoqznn8QW78x/M0Rr2QMiZYTthfTMKNMvN079jrr2zEcVz8ZjC9uXHpmFraJ3V0JPTav3vhbFKknrr6ENB9Y+NwwPuY1GWwSUZ+YQ6FY71xbdtUmbHrioiIiIgcLhS2RphZhWOZXlBIeyLBnzavB7xGGKmuhIzfSFZ2gNqaZja+twfo2Nx4bMRr/75n8z7aW7wqVbpJRm4dVXVe2Nq/spXtNTSkPsNNMspnptZtqUmGiIiIiIw+ClsjjGEYfHzWPAD+sH5t+nhqKuHOthUcd6JXrUq1gJ+WewzgbW4cn5qD67psfWcn0LX9+76GINB9zVZqGmGmw1bZzFRHQq3bEhEREZHRR2FrBPrYzDmYhsGbFbvZ1lAHwISs+QTNCO12I0e/3wd0rNtakH8qrguW6RKaGMcOWemphOmOhJE6qtu8cLX/NMKA5QBkdK8tgPIZapIhIiIiIqOXwtYIND4nl1MneVMDn0hWt0zDYkruCQDkztyFYcCmDRVUVzYyJjgeM7m58dRxVUQnZnVq/z4VgEm59VQnem6QYZkJYAgqWzM6KluZbCsvIiIiInI4UNgaoT5+lDeV8Mn1a3GSQSU1lXBv4nVmz5sIwIrkVMI8fxHgbW7cPimbzT20f68xUpWtrtMIDSMZtjJc2SqdOhafz6K1Ocq+vfUZvbaIiIiIyHBT2Bqhzpk6nXAgyO7mJlbs9tZfTc45Hsvw0xjfw6KzvU2KX3vJm0o4KXsWAPk5rUQnZrN1zQ4cx8E0i3EJ4TNdjGwLANvxKk2psOUa3v5a9Rls/Q7g81tMLh8HwFZtbiwiIiIio4zC1ggV8vn48PSjAPjD+ncA8JtZTMo+DoDxx1YDsOrNrbS3x5md3Nw46EsQnxyivSXK3q2Vyfbv3pTEnOw4AK7bjus2pcNWwm0H3IxPI4SuUwlFREREREYTha0R7OOz5gLw5y0baI551afUVML6wGqKivOIRROsemMLs8LH4bpgGFB0VAt2yEw3yfD5ygEozmkiGvU6EibsfR2VLVws08n4NELo6Eio9u8iIiIiMtoobI1gx46fQHl+IW2JBH/a4u25NTV3MWBQFV3PiWdPALwW8D7TRyi1ufHYGqIlHZsbW9ZUwGuS0diYDXgdCf2mn6DphS+/aQ9JZat8pteRUJUtERERERltFLZGMMMw+LdkdesP73ldCbN9hYwPzQGg7KRGwAtbrusyNjgZ8DY3jk7KZsuark0ySiN11DRkAZBwunYk9FtDU9kqT04j3L2jlva2WMavLyIiIiIyXBS2RriLZs7BAF7fu4sdjfUAlOeeDEBizHuEsvzUVDWxaX0F05ObG+eGorRPzGbrfnttTcqtp6rJC1upjoQ5vhwAfJZNQ7w93fkwUwrG5JJf6G20vH1LVUavLSIiIiIynBS2RrgJuWFOKZ0KdOy5NTXsha297f/iuJOTLeBf2sCC/NMA8JkOvqNM9u2oprm+Jb3X1oTcBmqjXrhKbWwc9nlTD/2mjeO6NMUz25EQOqYSblmvdVsiIiIiMnoobI0CH5/pTSV8IrnnVkFgMvmByTgkmHuWt0fWay9vZEywGAMfAJNmN+AETbau2YFpFuO4QXymS8LyNj9O7LfXVrZ3mPpo5sOWOhKKiIiIyGiksDUKnFs2nXAgwK6mRl7b4+25VZacShia6q3L2rBuDzVVTUSSmxtPKKinvSSbLWt2YBgmrlkKgBEyAG+vLeiYRpjj946r/buIiIiISP8obI0CWX4/F0xL7bnlTSVMha2KxEpmzfPCzOuvbGRS9kwgtblxVrojYcA/DYBQ0AG6TyNMVbbqhqJJRqf2726G14SJiIiIiAwXha1R4uNHJffc2ryBlniM8aHZZFkFxJwWjjs/AHjrtmaHTwAg5I8TnRxiy5pk2Ap4YSsSiALdpxEGLS+EDUVlq7RsHJbPpLmpnap9jRm/voiIiIjIcFDYGiUWji+hLK+A1kScP2/egGGYlOWeBMCYeXsBeOv1LZQFjk5vblx4fJxta3diJ+z0XltjsloAcN0mHKc1PY0wK1nZen7XexkfeyDgo3TqWEBTCUVERERk9FDYGiW67LmV6kqYnEpY61vF2KIw0WiCtav3EDC9AFUyvZF2x2bXxr3p9u8luQ3EYl4TDdvZl65s5QUtDOCFXRt4r74y4+NPr9vaoI6EIiIiIjI6KGyNIh9L7rm1Ys9OdjY2MCn7OHxGiJZENSd+KALAin9uoCg0BYCxkWaiJd66rVT79+KcRuqSe20l7H3pNVtxp50PTp4NwL3v/DPjY0+3f9+gypaIiIiIjA4KW6PIxHCEkyZOBuDJDWvxmQEm57wPgNL31QGw4uWNlOXMByAcaqd9YhZbku3fE04An+nS3B4EvI2NU5Wt5kQzV809BQNYums96zNc3VJHQhEREREZbRS2RpmPHzUP8Pbccl033ZWwPe9dgkEf1ZWN5Nd7FSrLdLDm+djy9nYMwyTmTgIg4XoNNWx7X3rNVtyNMyU3wvmlXtfDn6x9KaPjLk+GrV3bq4lF4xm9toiIiIjIcFDYGmXOK5tOrj/AjsYG3ti7mym5J2JgUhffyvFneU0o3nulEVwLw4Ci97WlOxKalje90LW8j0XCqSRkhrAMC+iobgH8eed7bGioyti4C8eFieRn4zgu2zdn7roiIiIiIsNFYWuUyfYH+OA0by+tP6x/h5AVoST7aABmnOF1GnztpY3k+MYAUFTaQnV1I/VVjWQFZwDg93t7Xdn2PgzDSK/bak40Myu/iA9MmoVLZqtbhmF07LelqYQiIiIiMgoobI1CH5/lTSX8v83raY3H0lMJfRO3ALD+3T0U+7x9tQpyW9JNMnJC3rEcvzeNL7WxcWoqYXOiGYCvzTsVgD/tWMfGDFa3OtZtqSOhiIiIiIx8Cluj0PETJjI5kkdLPM7zWzelw1Z14l2OOrbAO2lHCeBtbhwvC7FlzXYsXzkA+UFv4+JEMmx1bpIBcFR+EedOmokL/HTtyxkbd9kMryOhmmSIiIiIyGigsDUKddlz6713CPuLGROchovDMec7AGz+u4nrgmlA+CQ32f7d22urMNQKgO14HQf3D1sAX5vrVbee2/EumxurMzLu9DTCDftwXTcj1xQRERERGS4KW6PURTO9sPXK7h3sbmqkLNdrbBGZuRuAt17eiUUIgKKjW5Pt38cTs/1YposBOE4drhvtMWzNKRjP2RMzW92aUj4O0zRorG+ltqopI9cUERERERkuClujVGkkj8UlpbjAUxveTU8lrDXXMG5CNu1tcUKJcQCMKW5l+6Y9JOIOzVGvuuQ6yY6E++211dnXkp0Jn93xLlsbaw56zIGgn0lTvI6JapIhIiIiIiOdwtYolp5KuP4dxgSmkesbT8Jt530f9QNg7/CCTW6onZYiPzve241tepsiR2PJc/oIW/MKizmrZAaO6/KTdzNT3dLmxiIiIiIyWihsjWLnT5tJts/PtoZ63tq3l7LckwAYf4y3Fmvj897b7zMdrGP9bHl7B8Gg15HQdn3ed2dfr2EL4GvzvOrWM9vXsrWp9qDH3LFuSx0JRURERGRkU9gaxXI67bn1xPq16amErTlrCYQsdq12cV0Dw4CCU222vL2d7JB3vpn8ZPQ1jRBgfuEEziyZjuO63JeBtVtlM9WRUERERERGB4WtUS41lfC5ze9R4J9D0Myl3WngfR/MBsfAjXp7aI09qo0tb++gIHsWACHLBry9tlJhq8Vu6fE5rk6u3frj9nfY3lR3UONNTSPcua2aWCxxUNcSERERERlOCluj3AklpUwKR2iKxfjLtm1MzjkRgLKTGwBo3x0GIL+gjU3v7sDn99q/5/hjQNc1W03xnjsELhhTwukTpmG7Lvcd5NqtceMj5IZD2AmHnVszt2GyiIiIiMihprA1ypmd99zasJaysDeV0C3aCLjsWh4AIORPUDcmTt2+ANGED9MAA0g4Femw1e60k3B6rjZdnVy79dS2NexoHnx1yzAMypNTCbds0FRCERERERm5FLaOAKmw9dLObQTc2ZiGn2ZnD3MXZ9O4LgKAgUvWqSZb1+yipsXrUmjiVbayrWwMDKD3qYTHjJnIqcXl2K7L/e++clDjVUdCERERERkNFLaOAJMj+bxvwiRc4NlN25iUvRCAOee2E6sLYCcsDAPGLI6z5e3tNMe8ypIXtvZhGiY5Pm9tV09NMlJS1a0nt65hV3P9oMersCUiIiIio4HC1hHi40d51a0n1q9lao7XAj6rbDsALVUhAAomt7NlzQ4wvL22TMPAdqpx3cQB120BLBw7iVPGl5FwHe47iOpW+azUNEK1fxcRERGRkUth6wjxwfJZZPl8bKmvpbnN20ur0dhM8VQf9eu8IJUbjrJp3XZyco8CwHABXGynus/2752l9t16Yuvb7G5pGNRYp5SPwzAM6mtbqKvp+/lERERERA5XCltHiNxAgPPLvT20ntm4h/Gh2QAc9xGXhpXeui3LcNg3toZIaEbyUd7Hw7b3EfF557xc83KvTTIAFo0r5aTxU0m4zqDXboWyAkycXAjAFk0lFBEREZERSmHrCPLxWfMAeHbTe0zKXgxA4by9tGzLwXXBNCDndJe2PXkA+LzSFgm7knPGn4PP8LG6fjUPbHkA27V7fZ7Uvlt/2Pov9gyyupVat6WphCIiIiIyUilsjUCJhE1jc/uAH3fixFIm5oZpikXZXT8JgJbgBgIBk/ZWPwCFR8fZ8XaU9oQPI9n+3bb3cVTkKK6afhU+w8cbdW/0GbiOL5rMiUVTiDsOP1v36qBeY6r9+1a1fxcRERGREUpha4RpbG7nuiVPcsMPniIW7306X09Mw+CiZBv4P66vJs8/CYc4x3/EonGX120wMj7KljU7qWgs8B4D2I4XeI7OP5orp1+JZVi8Xvs6v9zySxzX6fG5Up0J/3fLv9jb2jjg16mOhCIiIiIy0ilsjTB1ja28t3kfb6/fww9+vgzXdQf0+NSeW//ctYOi4PEAlB5fS8O/vDVZwUCCTTs3Uttpr62E3RF4jsk/hq9O+yqWYbGidgW/3Npz4DqhaAonjJtMzLH5+SCqW2UzvbC1Y0sViXjvUxZFRERERA5XClsjzJSSQr779QuwTIM/v/guD//xjQE9fmpeAccXT8RxXTZVe1P14gUbaHk3GwATl90Fe2mNTvBuGwa2XdnlGgsLFvKVaV/BMixerXmVX239VY+BK9WZ8PHNq6lo7b1lfE/GT8gnOzdIImGzc1v1gB4rIiIiInI4UNgagU44eirXXn4mAD/7/T9Z/vrGAT0+Vd16Yl0jISufOC3MmJ2NbRsYBmSfECXWngxbeGu29ndcwXF8ufzLmJi8UvMKv9n2m26B68SiKRw/rnRQ1S3DMDSVUERERERGNIWtEerfPnAsF517NK4Lt937JzZsqzzwg5I+OG0WIZ+PTXX1RKxjAJhxRgvN9d7mxvkzY7Q3jAO6TyPsbFHhIr48zQtcL1W/xIPbHuwSuAzD4GvJzoSPbV7FvraBVbfKUx0JN6ojoYiIiIiMPApbI9i1n3s/x8+fTHs0wQ0/eIqa+pZ+PS4SDPKBMm8vrff2eaHKN3EL9ZvDAOTkx2naFQSS3QidStxeGmEcX3g8Xyz/IgYG/6z+J7/d/tsugeuk8VM5buwkYo7NA+tWDOj1pSpbr/5jPY0NrQN6rIiIiIjIcFPYGsF8lsl3v/5hJpcUUFnTzI0/fJpoLN6vx6amEj75XhyfESJq1BCozQLAMlx2V1TTlvBhGAYGNo5T2+u1ThhzAl8o/wIGBsurlvPw9ofTjTsMw+DqeacC8PvNq6hsa+7361t8xlHkFeSwa1s13/7q72huauv3Y0VEREREhpvC1ggXyQ1x140fI5wT4t1NFXzvvuf71aHwpImTmZATprYtToCjAJg9MwCAgUt13h52N+YDqamEfU9TXDxmMf9e9u8YGPy96u88vKMjcJ08firHjplI1E7wi/f6X90qHBvmhw98lrz8bDa8u4dvX/kwLYPYX0xEREREZDgobI0CpRMKuPMbH8ayTP7yynoefOLAgcYyTS6aNQeAtfu8Nu+R8n1Eo95mxv45zexr6LzX1oHXTZ009iQ+X/Z5DAz+Vvk3Ht3xKK7rdqluPbrpLarb+1/dmjp9PEt+9lnCeVm8t2YXN1/1MK0t0X4/XkRERERkuChsjRLHzZvM9VecBcAv/ucV/vrK+gM+5qKZ3lTCP28wAZN2/y5aa721WuHSOFX1ybDVQ/v33pwy9hQun3o5AH+p/AuP7XwM13U5tbiMY8aU0G4neGDdawN6bdNmFbPk/s+QGw7x7r928p9fe4T2ttiAriEiIiIicqgpbI0iHz17AZ/40HEAfPenS3l3U9/VqGkFhSwcX0JzzI9hTwUg4npTCf0Bm8aWHKDvjoQ9OW3caenA9cK+F3h85+MAfG2uV916ZNNKqtv718wjZcbsEu68/zNk5wZ5Z9V2/vNqBS4RERERObwpbI0yV112GouPLSMWT/DNu56msqbvdusfP8qrbr1dUQhA8VivwYaFS3PcAlJ7bfW/tTzA6eNO5zNTPgPA8/ue5393/S+nFZexoHAC7XaCX743sOoWwKy5E7nzp5eRnRPk7Te3cevXf0+0vX8NQUREREREDjWFrVHGMk1uv+ZDlJWOobquhRt/+DRtfQSSD02bRcCyeGW71/bdzKkA18UwoCErASTbv9t7BzyWM4vO5LIplwHw54o/8+SeJ9P7bj28cSU1A6xuAcxeUModP/k0oawAq17bwm3feIxYVIFLRERERA4/ClujUE52kLtu/Bj54SzWb63kuz/9M47Tc4fCvGCI88pm0NCeTSJRhIsDcQMAtyhGzLYwDINEYuegxvL+ovfz6cmfBuD/9v4fde7bzC8sps2O86v1rw/qmnOPmcwd915KMORn5Sub+O5//A+xWGJQ1xIRERERGSoKW6NUSVEeS/7jI/h9Fv94bSO/+J+Xez3348k9t97e600lzEoez44k2NeaC0AiPvDKVspZ48/iksmXAPDc3uc4rdQLfr/b+Ca10cFtVjz/uKnc/mMvcL3+zw1874b/IR5X4BIRERGRw4fC1ih29FGTuPGL5wDw0JOv8fw/1/V43imTpjA+J5d3KsYAkJvdCriYhktVm9ckw6ChX/t39eac8efwydJPArCm+SUWTYjRmojz6/cGV90COOb4Mm79r0/hD/hYsXw9S775BxJxe9DXExERERHJJIWtUe6DZ8zl0x89HoAlP3ueNRv2dDvHMk0+NnMOFU15xBI5GEaCgJHAxKUqmp08x8ZxGw9qLOcVn8fFky4GIDt7O6X5tfx245vUDbK6BbDwxGnccvcn8fstXv7bOn5w8xPYCQUuERERERl+CltHgC9/6lROXTSNWNzmm3f9kb1V3UOTN5XQ4N0Kb4NjPzaGAa0+P5DqSHjgjY0P5PwJ5/PxSR8HoGxMDYW5Ffx6kGu3Uo4/eQb/+aNP4vNZvPjCWu76zlPYtnPQYxURERERORgKW0cA0zS45eoPMmPKOOoaWrnhB0/Rst8eVdMLxnBM0QQ2VI8HIGgmAJdo0GuWMZj277350IQP8W8T/w3wAtfSiqXUR9sO6ponnDqTb//wYiyfyd//vIYf3fK0ApeIiIiIDCuFrREomhh4I4jsUIAf3HghhXnZbN5RzW0//j9sp2sY+bdZc9lRN4a47cdnOvgMm2a8TY4NIJ7YnYnhA3BByQVcWPIxACYV7OOH7/7moK950plHcdOS/w/TMvnr//2Le777DI6jwCUiIiIiw0Nha4RxXZdP/PoxvvzY07y6dceAmlYUj43wgxsuJOC3eGnlFn726D+73P+RGUfhM/xsqh4HQNBI0OZa2I6BYRjY9saMvpaPTvwIc3NPBmBv4g3+uPv/Dvqap549h2/e+W+YpsELf1zFvXc+p8AlIiIiIsNCYWuEWb+vmnX7qvj7xq1c/vATfPSBh3li9Vpi/ax2zZ0xgW995TwAHnnmTZ77+zvp+/KCIc4pm87Gqo6phKZh0GJ767bsxJYMvxq47qgraG6dBMDTe/7AX/b95aCvefq58/iPOy7CNA3+9MRK7vvBnw6qk6KIiIiIyGAobI0wRxWPY+lXL+eSRUeT5fexvrKabz37Amf8+Ff8ZPmr1LQcuLPfuafM5nP/diIAP3xgGave3ZW+7+Oz5rKlZhy2Y+AzHCxsWlwfAIn4rh6vdzBMw+DyqZ9iR10BAI/seIS/Vf7toK/7/vMXcN2tF2IYBs/+zxv87K4/K3CJiIiIyCGlsDUCPbN6HcdMKOaPX7iM6886heJILjUtrdz74grO+O9f8q1nX2D9vuo+r3HF/3cS7z9xJgnb4Vs/+iO7KuoBOLV0KnnBfHbUeXtuBc0Eza63bisR3zckr+f8ybPx27PSget323/H3yv/ftDXPefDx/D173wEgKd//xoP3P28ApeIiIiIHDK+4R6ADExtSysPvPg6jutimQbHT5nE549fiOUz+eOa93h7TwVPrF7LE6vXsrislMtPWMhp08swDaPLdUzT4OYrP8Ceqgbe27yPG37wFA987xJys4NcNHMOr1W9S9mYaoJGgno7CIBB05C8JtMwuGruqVzzSjUhy6IoUs1vt/8W0zA5fdzpB3Xt8y5ciG07/Pcdz/Lkw6/i81l8/uqzMfb78xARERERyTRVtkagL532PmaOH4vtuKzYupPvL32R7z33D+yozcVHz+Pk8imYhsGrW3fypcf+yAfvf4hH3/wXrbF4l+uEgn5+8B8XMrYgl227a/nP/3qOhO3wb7Pmsim5bstn2NTZIQAsM9ZtLJly/qSjmB4Zy3tV+RT55gLw4LYHebHqxYO+9gf/bRFX3fQhAP7nwZf47X0HP01RRERERORADFfzqvqlsbGRvLw8GhoaiEQiwz0cAHbU1vO3dZv5y3ubeWvHbjq/kyX5YfJzs9lcW0tb3AtZeaEgFy+cz6ePP4biSDh97ntb9vGV7zxGNJbg/zv/WL7+uffzkT/8jmOmPEFxpAHXhovzN+C6LmOK12JZBUPyep7Zvpavv/pH8gJBrj62iOXVf8PA4ITCEygOFTMuOI5xwXEUhYqI+CIDrk49/egK7r/rzwBc9uUz+fSXzhiCVyEiIiIio11/s4HCVj8dTmHr9msfpnTqWE48czaz5pdimiY1za38Y8MW/rpuMy9v3k4sYQPgAtkhP1jQkqxs+UyTD8yewWdPXMiCkmIA/r5iA9+++1kA/uPfz6apxOFPO37GadM2EHVMLo28h2FAuOARQllnDMnrsh2H85f+gs2NNVw37zTyw9v5S2XP3QkDZiAdvvb/GhsYS9AK9vi4J373Cg/c/TwAl191Fp+64rQheS0iIiIiMnopbGXY4RK26muauOjbd2E0WRhVJkazSzjoo2RCHrPmTOL4k2dw1PFTeH3HHv66bjP/WL+FxvYoLoABhs/AoeMtP3bSBC4/YSFnHzWdh59+nQceexnLNLj9hgu46d1H+czxy3FduDC8gYABVuBEQqHzsKzJWL7JmNZkTDM3Y6/vj9ve4boVz5AfyOIfF3yFra0b2NG6g8poJVXRKqqj1dTEanDp+2Ob58/rFsKKgkWMC47j+UfW8Jsf/xWAK645h4svPyVj4xcRERGR0U9hK8MOl7C1fv1OvrDjxx2r7VoNjGoTo8ryvldbmJUGWU0WxWPClM0cT3jOWCpzHV7asp2KxmZcwLUAI/kFFIdz+ewJC9n0+h7+8fIGwjlBij86nrnlvyI3GOW87M1ELLvHMRlGAZZvCpZViumb7AUxazKWrxTTmohhBPr9+mzH4bw/P8DWplr+Y8EZfHnOSd3OSTgJamO1VEWr0iEs9VUZraTNbuvzOXyGj0BbNrUbY9jVPo6fO5ezTnqfVxULjiXLyur3eEVERETkyKOwlWGHS9iqbGvgwifvwgwnMLPtdFjqJgFGjRe+jCrvu6/aJMeXg1GaS00E9sXacE284Ja8jt80KYgFiG5uJX9yDlPPeYVjSnZylG8fM4J1GIZB54fs3+Vwf65rEIuNJZGYAMYkfL4phLLKyAlPJxCcimkWdVt79dTWNVz/2rMUBLJY/uEryfH3P6wBtCRauoSv1M+pqpjt9hwaU8K+MAWBArKtbHJ8OenvOVYO2b7sXr9bhjWgcYqIiIjIyKSwlWGHS9jatL2Cq9d+HzvqI97kx45Z2LaJbQBBByvHxgwn+m7qX29gVFtQZ5GI+oiZQVoMP7ZjQir4uGBEHYrmVPPJRStwXZd4zGLChkmMLdzJmKJdRPK9VvCdw5eBQSLqB8cgGLTx+Zw+X0885qO+voDmpjG0txcRj08g4U7kN241a9uC/Fv++7hk0jEEgj6CQX/H94APf8AacJMM27Wpi9V5Iay9ir+++gYbdm/FGpsgd7JJzGof0PU6C5mhdDjrK5TlWDldQly2lY3P1C4MIiIiIiNFf7OBfsMbYUI5cM7ELTTZAWoTIWrtEI12EBcD14Z4s594rZ9Euw87buEYBg4OZjCOVeBANpDv4uYngAQWUbJoIQtwowZ2i494zOc9vs3PvvowCcfEZzo0GNk4hWcxefpCAoF8/P52fMZ67Pga4rE1OO5aDHMfBL0W8W2A4XghrL05l9amHOJRE9NIkJvbTmFhK/5AgnFFVYwrqgLeS7/OhcnvDbHf0lYbpLneRyxmEY1644vFLGJRHwk7gG0HcOwAjhPAdoLgBnEJAiFcQphGCMPIwjCzsCzvu8/KwfJlcbz/ZOz1xbzxq01U4fLhyxYy5/TxRK024laUmBklZkSJ0kaUdtrdNtrdNtqcNlrtVloSLbQ7XkBrd9ppj7VTQ82A39eAGSDbyiZgBtJfftOP3/B3/Gwmf+50rMt3o+Ocnh7f+Zj2GRMREREZeqps9dPhUtnasHcHEzm1yzHbhSY7QL0dpC4RojqRTWU8m5pEFnV2iJpEFlXNOUQbgsRb/NgxEydh4MQTGAEbowCMAnrdde39496jKNhMcyJAdaLjtTsOxG0f8YSV/PLhdxIU+ZuZEGhkYlY9pdl1FIZaerxuTUsBtS1FtLbnYcdC+FyXSLCJ/OxaCnLryM3u+XGZZtsGsZiPWDQZ4pI/R9t9RGM+ou1+73b6y588108iEcB2AtiWD9v04/j92D4L22+R8Fsk/AaJgIUTdCBo4wYTOIEETiCO449j++IHHuAQ6BzCLMPCMixMw+z4GbPLsfT3/Y73dd/+x3u6zzIsfIavx58tw8Jn9nHffrcVIEVERORQUWVrlIq27iMaAtMAExcTsAyDfF+MfF+MqcGmXh/b7pi0OhbNjp/GRIA6O0hNPIt9zWF21+exqzqP6toc4lGvgYZRAG4R7G7LpyjYTMiKE42a+E0X03AxTQiaCYL+RJfniWOyg3x2uPm82jKVUGucsb5mxlnNjPV5X3lWlDE5dYzJqevy2Jp4Ntti+bzYMoXdtREa41m4WFiGTcBwCBg2AdMmaNgEzIR320jeNmxvPOmfbQJGwvtuJu8zEwQs77Fm8ndzy3LJyoqTlTV0wSdhG0RjfqLxZIBLfW/1EUtYxGyLmO3Ddg1sx8RxDRzXIIH3s20Y2K6JYxjYGMnvJq6Jd59h4FjJ4ybez6aB4zOwLXCTt23XxMbAdhNE7XbabAOnc6eUEczC6hS+Ooe0/UKb2XdoO5jQ19N5qWBpYKRvdw6mnW8bhpEOqKn7REREZORS2BphKprbmJvTdQ8p13WxAQcX1yXZFt31Wr17J2AYkG1CtplgDAkItHY0Ty8EJns/Oq5LHIOoY9DmWDTbfpoSfgL+KO2uxTSjlqjjw3ZMbNckQfIXeBdsw/K+Y+Aa3i/wbvL3eAOosbOpsrNxosVY2ETMKHlWO/lWGwVWK2Erxhh/K2P8rRyTs6fLa3RccDBw8UKIixcSXNf77gCOa6bvd5L3O65BFIM218BxfTiJAE7CwHbBxQA3OTjXSMcN7+oGhuF6TUAA03AxcLEMFwsvbFqp24aDj+T39JeL37DTgc5nufiyYuRkxTL6eciU9J+va+BClz9bF9J/5q4LDqb3CUvdn/yz7PJz8jp9/WwnH2+7Zvo9s91kiIR0MHRJBszkd++5vPsc10iGRzP9eAez07W96zmOd24Mg2jn19jl9ZG8nXqdnY7t/xi36+OHNKw6hrdhnmukv4xOt41evqfH5HprKVM/Q/J6SYbbaeypn5PfjW6PSR5PP77juOGSri56jXQM77ZhJP8+eQ11jOTx1JeJgWF2P+6db+JdInmusd9jDQMjGUotTEzT7LHCapqpSqqJaVhYqdvp78nKq2niMztuW6aFz7Qwk999poll+rBM0xvDfu976jXsf+xA93e7jtH1MV2+p/4M97vd+fr73+78PPvfBtKhvqfnUMVYROTgHFFh67777uOuu+5i7969zJ07l3vuuYdTTz31wA88jESdeloc8Bngx6twGYaRfCONnn/n6+P/K103tWNV8n8NCOKSa4FrueCP4ZLcp4sYhDraqvc9/7Rz8CMV/9Jf9Piz3wuG+4/ddff//dC7fg8j6GlMbp8/9ee19P+czmy8KZ6dGT387L3ETq87/ctQx3Me6Nedgdzf+Xen1PUtAyzczr9FH5DmH3foPBm7r8+W2+1YMqy5PZ/n/Wx0HOvxPKOH6+4/jkPzC3N/PxNutx/6enz3sfd2Xl/P3+t9nYMj4DpAL3197ORX14cbnX7u63m7vo+93tfD4wb236fuf8F7/1x0Pb9/f359nN/D8/V4vtv1Pe3v+36o9fZ+9HpeDy/E7eN19PW6+37Pe/hM9PnfoOH/szx89O/PYv9/AEk74F/GTv9QNdodghfZ21O0xudywZyHhn4AGXLEhK3HH3+ca6+9lvvuu4+TTz6Zn//855x//vm8++67TJ48ebiH12+VzXHWFHZM2zPx3kTL8L77ksHLu23gM8Cip/vo+FdiYEj+1gzwkm4yVB3oOr1Hpt7O6/1o/3457BxH+2+gj8p8eDm0cWgwzzb4JaP9C9qHzMH+9Rny/9M6fKPxgUd2+I5dejewd21kv8cje/SSSfosHBoNdtVwD2FAjpgGGSeccAILFy7k/vvvTx+bPXs2F154IUuWLDng4w+XBhlPv/EsWWNuSFcnOiYxdfzbVcfP3vTBLrc73W/iBTG/mQpsRjKUeUHNSv/s3bffPsjJa6eec7/79jvunX9E/FuPyLA6Qv6TLnLYGfzfPP2dPVSG+j3SO3lotDg2BRO3Dfcw1CCjs1gsxsqVK/nmN7/Z5fi5557LK6+80uNjotEo0Wg0fbuxsXFIx9hfcycezYN7ZmEZjvdlJr8bLqax3884HeeljpO63/UabBgO2G5yryzvfhMXI3m/QfK70d/JLL3rK5j1HeI6gmR6/2Wj0+OMrtdJndf58XQ6t6fn7T0cur3f38vroofn6O38jtfbcxDtK572J7oezPTDAz62lxN6e1x/Z7j2NNWy3+cr0OvPQGSYDP5vnv7OigzE/tO5D3dHRNiqrq7Gtm3Gjx/f5fj48eOpqKjo8TFLlizhtttuOxTDG5AZJZP5XsnTvd5v2076K5GwSSSStxMOCdvGtl3i8QTxhE3cTnhfiSjReBst8RaaYs00J1poT7TRkmgj6rQSs9uwjSbwNWKYDt6KexsXMPA20nINF1KtKgwXN9lQwls13/Gz93tgsvWAAYa30t/73uXnZMhKNqkgGRANw8UwnGToSobC5GNT95udHmcYTkd1LzkOM/m8qRCXej4zFcqMLqtkOv5vsI/A2e18Y//7UtxO10pxejivp8cORF8rDPpg9HX+wK95sAG972v3NZDuY+1rLN0v08tr3e/EjpsHWmHRv2MZO79fQfjgVsoc6LX3lPn6CtIHeu5D9evo4f5rb5fP8UEO9nB/rT05lGMe7OexX/f1+P8Rmf/v5UD/vIbiNQ9mHEOh1//+GH3/t6m3+wb6j4H7HxiaP+v+fYYOh/fjYFTEg4wd7kEMwBERtlL2/xdf13V7/Vfgm266ieuuuy59u7GxkdLS0iEdXyZYlollqV20iIiIiIw+ZcM9gAE6IsLW2LFjsSyrWxWrsrKyW7UrJRgMEgwGe7xPRERERETkQI6IEkggEOC4445j2bJlXY4vW7aMk046aZhGJSIiIiIio9kRUdkCuO6667jssstYtGgRixcv5oEHHmDHjh18+ctfHu6hiYiIiIjIKHTEhK1PfOIT1NTUcPvtt7N3717mzZvHn/70J6ZMmTLcQxMRERERkVHoiNln62AdLvtsiYiIiIjI8OpvNjgi1myJiIiIiIgcagpbIiIiIiIiQ0BhS0REREREZAgobImIiIiIiAwBhS0REREREZEhoLAlIiIiIiIyBBS2REREREREhoDCloiIiIiIyBBQ2BIRERERERkCClsiIiIiIiJDQGFLRERERERkCChsiYiIiIiIDAGFLRERERERkSGgsCUiIiIiIjIEFLZERERERESGgMKWiIiIiIjIEFDYEhERERERGQIKWyIiIiIiIkNAYUtERERERGQIKGyJiIiIiIgMAd9wD2CkcF0XgMbGxmEeiYiIiIiIDKdUJkhlhN4obPVTU1MTAKWlpcM8EhERERERORw0NTWRl5fX6/2Ge6A4JgA4jsOePXsIh8MYhnHQ12tsbKS0tJSdO3cSiUQyMEI5UumzJJmiz5Jkij5Lkgn6HEmmDMVnyXVdmpqaKCkpwTR7X5mlylY/mabJpEmTMn7dSCSi/4BIRuizJJmiz5Jkij5Lkgn6HEmmZPqz1FdFK0UNMkRERERERIaAwpaIiIiIiMgQUNgaJsFgkFtuuYVgMDjcQ5ERTp8lyRR9liRT9FmSTNDnSDJlOD9LapAhIiIiIiIyBFTZEhERERERGQIKWyIiIiIiIkNAYUtERERERGQIKGyJiIiIiIgMAYWtYXLfffdRVlZGKBTiuOOO45///OdwD0lGmBdffJEPf/jDlJSUYBgGTz/99HAPSUagJUuWcPzxxxMOhykqKuLCCy9k/fr1wz0sGYHuv/9+FixYkN40dPHixfz5z38e7mHJKLBkyRIMw+Daa68d7qHICHPrrbdiGEaXr+Li4kM6BoWtYfD4449z7bXX8u1vf5tVq1Zx6qmncv7557Njx47hHpqMIC0tLRx99NH85Cc/Ge6hyAi2fPlyrrzySlasWMGyZctIJBKce+65tLS0DPfQZISZNGkS3//+93nzzTd58803ef/7389HP/pR1q5dO9xDkxHsjTfe4IEHHmDBggXDPRQZoebOncvevXvTX2vWrDmkz6/W78PghBNOYOHChdx///3pY7Nnz+bCCy9kyZIlwzgyGakMw+Cpp57iwgsvHO6hyAhXVVVFUVERy5cv57TTThvu4cgIV1hYyF133cUVV1wx3EOREai5uZmFCxdy3333cccdd3DMMcdwzz33DPewZAS59dZbefrpp1m9evWwjUGVrUMsFouxcuVKzj333C7Hzz33XF555ZVhGpWIiKehoQHwfkkWGSzbtnnsscdoaWlh8eLFwz0cGaGuvPJKPvShD3H22WcP91BkBNu4cSMlJSWUlZXxyU9+ki1bthzS5/cd0mcTqqursW2b8ePHdzk+fvx4KioqhmlUIiLgui7XXXcdp5xyCvPmzRvu4cgItGbNGhYvXkx7ezu5ubk89dRTzJkzZ7iHJSPQY489xltvvcUbb7wx3EOREeyEE07gt7/9LTNnzmTfvn3ccccdnHTSSaxdu5YxY8YckjEobA0TwzC63HZdt9sxEZFD6aqrruLtt9/mpZdeGu6hyAg1a9YsVq9eTX19PU888QSf/exnWb58uQKXDMjOnTu55ppreOGFFwiFQsM9HBnBzj///PTP8+fPZ/HixUybNo2HHnqI66677pCMQWHrEBs7diyWZXWrYlVWVnardomIHCpf+9rXeOaZZ3jxxReZNGnScA9HRqhAIMD06dMBWLRoEW+88Qb//d//zc9//vNhHpmMJCtXrqSyspLjjjsufcy2bV588UV+8pOfEI1GsSxrGEcoI1VOTg7z589n48aNh+w5tWbrEAsEAhx33HEsW7asy/Fly5Zx0kknDdOoRORI5bouV111FU8++SR/+9vfKCsrG+4hySjiui7RaHS4hyEjzFlnncWaNWtYvXp1+mvRokVceumlrF69WkFLBi0ajbJu3TomTJhwyJ5Tla1hcN1113HZZZexaNEiFi9ezAMPPMCOHTv48pe/PNxDkxGkubmZTZs2pW9v3bqV1atXU1hYyOTJk4dxZDKSXHnllTz66KP88Y9/JBwOp6vueXl5ZGVlDfPoZCT51re+xfnnn09paSlNTU089thj/OMf/2Dp0qXDPTQZYcLhcLd1ozk5OYwZM0brSWVArr/+ej784Q8zefJkKisrueOOO2hsbOSzn/3sIRuDwtYw+MQnPkFNTQ233347e/fuZd68efzpT39iypQpwz00GUHefPNNzjzzzPTt1Nzjz372szz44IPDNCoZaVJbUJxxxhldjv/mN7/h8ssvP/QDkhFr3759XHbZZezdu5e8vDwWLFjA0qVLOeecc4Z7aCJyhNq1axef+tSnqK6uZty4cZx44omsWLHikP7OrX22REREREREhoDWbImIiIiIiAwBhS0REREREZEhoLAlIiIiIiIyBBS2REREREREhoDCloiIiIiIyBBQ2BIRERERERkCClsiIiIiIiJDQGFLRESkD4Zh8PTTTw/3MEREZARS2BIRkcPO5ZdfjmEYGIaB3++nvLyc66+/npaWlkM+lr1793L++ecf8ucVEZGRzzfcAxAREenJBz7wAX7zm98Qj8f55z//yb//+7/T0tLC/fff3+W8eDyO3+8fsnEUFxcP2bVFRGR0U2VLREQOS8FgkOLiYkpLS7nkkku49NJLefrpp7n11ls55phj+PWvf015eTnBYBDXddmxYwcf/ehHyc3NJRKJcPHFF7Nv37709To/bvLkyeTm5vKVr3wF27b54Q9/SHFxMUVFRXzve9/rMo7O0wi3bduGYRg8+eSTnHnmmWRnZ3P00Ufz6quvdnnMK6+8wmmnnUZWVhalpaVcffXVXapyU6dO5c477+Tzn/884XCYyZMn88ADD3S5xq5du/jkJz9JYWEhOTk5LFq0iNdeey19/7PPPstxxx1HKBSivLyc2267jUQikak/fhERyQCFLRERGRGysrKIx+MAbNq0if/5n//hiSeeYPXq1QBceOGF1NbWsnz5cpYtW8bmzZv5xCc+0eUamzdv5s9//jNLly7l97//Pb/+9a/50Ic+xK5du1i+fDk/+MEPuPnmm1mxYkWfY/n2t7/N9ddfz+rVq5k5cyaf+tSn0kFnzZo1nHfeeVx00UW8/fbbPP7447z00ktcddVVXa7xox/9iEWLFrFq1Sq++tWv8pWvfIX33nsPgObmZk4//XT27NnDM888w7/+9S9uuOEGHMcB4Pnnn+fTn/40V199Ne+++y4///nPefDBB7sFRRERGWauiIjIYeazn/2s+9GPfjR9+7XXXnPHjBnjXnzxxe4tt9zi+v1+t7KyMn3/Cy+84FqW5e7YsSN9bO3atS7gvv76667ruu4tt9ziZmdnu42NjelzzjvvPHfq1KmubdvpY7NmzXKXLFmSvg24Tz31lOu6rrt161YXcH/5y192e55169a5ruu6l112mfvFL36xy+v55z//6Zqm6ba1tbmu67pTpkxxP/3pT6fvdxzHLSoqcu+//37XdV335z//uRsOh92ampoe/3xOPfVU98477+xy7He/+507YcKEHs8XEZHhoTVbIiJyWHruuefIzc0lkUgQj8f56Ec/yr333st9993HlClTGDduXPrcdevWUVpaSmlpafrYnDlzyM/PZ926dRx//PGAN30vHA6nzxk/fjyWZWGaZpdjlZWVfY5twYIF6Z8nTJgAQGVlJUcddRQrV65k06ZNPPLII+lzXNfFcRy2bt3K7Nmzu13DMAyKi4vTz7t69WqOPfZYCgsLe3z+lStX8sYbb3SpZNm2TXt7O62trWRnZ/c5fhEROTQUtkRE5LB05plncv/99+P3+ykpKenSBCMnJ6fLua7rYhhGt2vsf3z/Rhqpbof7H0tN1+tN58ekrp96jOM4fOlLX+Lqq6/u9rjJkyf3OZbUNbKysvp8fsdxuO2227jooou63RcKhfp8rIiIHDoKWyIicljKyclh+vTp/Tp3zpw57Nixg507d6arW++++y4NDQ3pStKhsnDhQtauXdvvsfdkwYIF/PKXv6S2trbH6tbChQtZv379QT2HiIgMPTXIEBGREe/ss89mwYIFXHrppbz11lu8/vrrfOYzn+H0009n0aJFh3QsN954I6+++ipXXnklq1evZuPGjTzzzDN87Wtf6/c1PvWpT1FcXMyFF17Iyy+/zJYtW3jiiSfSXQ+/853v8Nvf/pZbb72VtWvXsm7dOh5//HFuvvnmoXpZIiIyCApbIiIy4qXasxcUFHDaaadx9tlnU15ezuOPP37Ix7JgwQKWL1/Oxo0bOfXUUzn22GP5z//8z/Tarv4IBAK88MILFBUV8cEPfpD58+fz/e9/H8uyADjvvPN47rnnWLZsGccffzwnnngid999N1OmTBmqlyUiIoNguK7rDvcgRERERERERhtVtkRERERERIaAwpaIiIiIiMgQUNgSEREREREZAgpbIiIiIiIiQ0BhS0REREREZAgobImIiIiIiAwBhS0REREREZEhoLAlIiIiIiIyBBS2REREREREhoDCloiIiIiIyBBQ2BIRERERERkCClsiIiIiIiJD4P8HiBJyVgPW+yYAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = prom_testing.plot(figsize=(10,8), colormap='viridis')\n", "ax.set_xlabel('Prominence')\n", "ax.set_ylabel('Number of detected peaks')\n", "ax.legend(ncol=5)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
Click here to see some discussion on the prominence parameter. \n", " \n", "A prominence above ~1 seems to give a fairly constant number of peaks, but anything below this gives a number of peaks strongly dependent on this parameter.\n", "\n", "We will choose prominence = 1 to avoid biasing the number of peaks in one spectrum over another. It is possible that we are missing some \"real\" peaks, but we are unlikely to do better in one spectrum than another.\n", " \n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### 4.3 - Optimise the parameters and extract peak count\n", "\n", "" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "# Calculate number of peaks using optimum prominence value\n", "for ID in summary.index:\n", " summary.loc[ID,'num_peaks'] = count_peaks(NMR_data, ID, prominence=1)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "## 5. Analysing the results\n", "\n", "Now we have computed the number of peaks, we can this for each spectrum in order to answer the original question.\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### Task 5\n", "
\n", " Plotting:\n", " \n", "Plot graphs to determine whether the number of heteroatoms influences the number of NMR peaks.\n", "
\n", "" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 0.98, '')" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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8im3adOmKS4uTm3atFGbNm0UFxcnf39/PfDAA26uHgAA1ATVNiglJibq2Wef1cSJE5Wbm6vmzZvr0Ucf1XPPPWc/ZubMmbpw4YImTpyoM2fOqFevXkpKSlK9evXcWDkAAKgpqm1QqlevnpYsWWLfDqAiFotFc+bM0Zw5c65bXQAAoPaotmuUAAAA3I2gBAAA4ABBCQAAwAGCEgAAgAMEJQAAAAcISgAAAA4QlAAAABwgKAEAADhAUAIAAHCAoAQAAOAAQQkAAMABghIAAIADBCUAAAAHCEoAAAAOEJQAAAAcICgBAAA4QFACAABwgKAEAADggI+7CwDMdv78eR08eLBSx567UKjUvRlq2GSXAv2sVz2+ffv28vf3d7ZEAICHICihxjl48KB69ux5TY9ZWMnj0tLS1KNHj2svCgDgkVwalE6cOKEbbrjBlU8BlNO+fXulpaVV6thD2WcV+//2KuH3ndUutEGl+gYA1B4uCUo5OTl68cUX9fbbb+vChQuueArAIX9//0rP+ngd/VnWzRfUIaqruoU3dnFlAABPU+XF3GfPntWYMWPUtGlTNW/eXK+99ppsNpuee+45tWrVStu2bdM777xjZq0AAADXVZVnlJ555hlt2rRJ48eP1/r16/XEE09o/fr1unjxor744gsNGjTIzDoBAACuuyoHpX/84x969913deutt2rixImKjIxU27ZttWTJEhPLAwAAcJ8qn3rLyspSx44dJUmtWrVS3bp19fDDD5tWGAAAgLtVOSjZbDb5+vrab3t7eysgIMCUogAAAKqDKp96MwxDDz30kKzWy5v0Xbx4UY899li5sLRmzRrnKgQAAHCTKgel8ePHl7k9duxYp4sBAACoTqoclN59910z6wAAAKh2uCguAACAA1WeUZowYUKljmPTSQAA4KmqHJTee+89hYeHq3v37jIMw8yaAAAAqoUqB6XHHntMq1at0k8//aQJEyZo7NixatSokZm1AQAAuFWV1yi9+eabys7O1lNPPaVPP/1UYWFhuvfee/Xll18ywwQAAGoEpxZzW61W3X///UpOTtaBAwfUqVMnTZw4UeHh4Tp37pxZNQIAALiFaZ96s1gsslgsMgxDNpvNrG4BAADcxqmgVFhYqA8++EBDhw5Vu3bttHfvXr3++us6duyYAgMDzaoRAADALaq8mHvixIlatWqVbrzx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e/dW3bp11a1btwqPGTx4sKZNm3Zd6wLg2QhKgAd66KGHZLFY9NJLL5VpX7dunSwWi5uqcq/nn39eAQEBOnTokL7++muXPc+cOXMcBjF3admypZYsWeLuMoAaiaAEeKi6detqwYIFOnPmjLtLMc2lS5eq/NiMjAz1799f4eHhaty4sYlVuUZRUZG7SwBQCQQlwEPdeuutCgkJUXx8vMNjKpr9WLJkiVq2bGm//dBDD2nkyJGKi4tTcHCwGjRooLlz56q4uFhPPvmkGjVqpBYtWuidd94p1//BgwfVt29f1a1bV506ddLGjRvL3H/gwAH99re/VWBgoIKDg/Xggw/q1KlT9vsHDx6syZMnKzY2Vk2aNNHQoUMrfB02m03z5s1TixYtZLVa1a1btzIXhrVYLEpLS9O8efNksVg0Z84ch2Nis9k0c+ZMNWrUSCEhIeWOzcvL0//8z/+oWbNmCgoK0m9+8xt99913kqT33ntPc+fO1XfffSeLxSKLxaL33nvvqo+T/u9r8c4776hVq1ayWq0yDEPHjh3TiBEjFBgYqKCgIN17773697//bX9cRkaGRowYoeDgYAUGBuqmm27SV199VWYMjx49qieeeMJeU6mPPvpInTp1ktVqVcuWLbVo0aIyr7Vly5aaP3++xo0bp8DAQIWHh+vjjz/WyZMn7TV17txZu3btsj/m6NGjuvPOO9WwYUMFBASoU6dO+vzzzx2ON+DpCEqAh/L29lZcXJwSExP1r3/9y6m+vvnmG2VlZWnTpk1KSEjQnDlzNHz4cDVs2FDbt2/XY489pscee0zHjx8v87gnn3xS06dP1549e9S3b1/ddddd+vnnnyVJ2dnZGjRokLp166Zdu3Zp/fr1+ve//6177723TB8rVqyQj4+Pvv32W/3lL3+psL5XX31VixYt0iuvvKLvv/9ew4YN01133aV//vOf9ufq1KmTpk+fruzsbM2YMcPha12xYoUCAgK0fft2LVy4UPPmzVNycrIkyTAM3XHHHcrJydHnn3+utLQ09ejRQ7fccotOnz6t0aNHa/r06erUqZOys7OVnZ2t0aNHX/VxpQ4fPqy///3v+uijj+zru0aOHKnTp08rJSVFycnJysjI0OjRo+2POXfunH7729/qq6++0p49ezRs2DDdeeedOnbsmCRpzZo1atGihebNm2evSZLS0tJ077336r777tPevXs1Z84cPfvss/ZgV2rx4sXq16+f9uzZozvuuEMPPvigxo0bp7Fjx2r37t2KjIzUuHHjVHpZ0EmTJqmwsFCbNm3S3r17tWDBAgUGBjocb8DjufOKvACqZvz48caIESMMwzCM3r17GxMmTDAMwzDWrl1rXPnf+vnnnze6du1a5rGLFy82wsPDy/QVHh5ulJSU2NvatWtnDBgwwH67uLjYCAgIMD744APDMAwjMzPTkGS89NJL9mOKioqMFi1aGAsWLDAMwzCeffZZIyYmpsxzHz9+3JBkHDp0yDCMy1dt79at21Vfb/PmzY0XX3yxTNtNN91kTJw40X67a9euxvPPP/+r/QwaNMjo379/uX6eeuopwzAM4+uvvzaCgoKMixcvljmmdevWxl/+8hfDMCoe08o+ztfX18jNzbXfn5SUZHh7exvHjh2zt+3fv9+QZOzYscPh6+jYsaORmJhovx0eHm4sXry4zDEPPPCAMXTo0DJtTz75pNGxY8cyjxs7dqz9dnZ2tiHJePbZZ+1tW7duNSQZ2dnZhmEYRufOnY05c+Y4rA2oaZhRAjzcggULtGLFCh04cKDKfXTq1EleXv/3dhAcHKzOnTvbb3t7e6tx48bKzc0t87g+ffrY/+3j46Po6Gj98MMPki7PaGzYsEGBgYH2P+3bt5d0+XRSqejo6F+tLT8/X1lZWerXr1+Z9n79+tmf61p06dKlzO3Q0FD760pLS9O5c+fUuHHjMnVnZmaWqfm/VfZx4eHhatq0qf32Dz/8oLCwMIWFhdnbOnbsqAYNGthfW0FBgWbOnGlvDwwM1MGDB+0zSo788MMPFY7ZP//5T5WUlFQ4HsHBwZJU5mtf2lY6Ro8//rjmz5+vfv366fnnn9f333//q3UAns7H3QUAcM7AgQM1bNgwPfPMM3rooYfK3Ofl5WU/ZVKqokXEvr6+ZW5bLJYK22w221XrKV0jY7PZdOedd2rBggXljgkNDbX/OyAg4Kp9XtlvKcMwqvQJv197XTabTaGhoeXWWklSgwYNHPZZ2cf992t19BqubH/yySf15Zdf6pVXXlFkZKT8/Px0zz33XHXhe0V9//f3glR2PEqPr6itdIwefvhhDRs2TP/4xz+UlJSk+Ph4LVq0SFOmTPnVegBPRVACaoCXXnpJ3bp1U9u2bcu0N23aVDk5OWV+aJq599G2bds0cOBASVJxcbHS0tI0efJkSVKPHj300UcfqWXLlvLxqfpbTVBQkJo3b64tW7bYn0uSUlNTdfPNNzv3Av5Ljx49lJOTIx8fnzIL3q9Up06dMjMylX1cRTp27Khjx47p+PHj9lmlAwcOKC8vTx06dJAkbd68WQ899JDuvvtuSZfXLB05cuSqNXXs2FFbtmwp05aamqq2bdvK29u70jVWJCwszL5ubdasWVq+fDlBCTUWp96AGqBz584aM2aMEhMTy7QPHjxYJ0+e1MKFC5WRkaE33nhDX3zxhWnP+8Ybb2jt2rU6ePCgJk2apDNnzmjChAmSLi/6PX36tO6//37t2LFDP/30k5KSkjRhwoRyP9Sv5sknn9SCBQu0evVqHTp0SE8//bTS09M1depU016LdPmThH369NHIkSP15Zdf6siRI0pNTdWf//xn+ye/WrZsqczMTKWnp+vUqVMqLCys1OMcPV+XLl00ZswY7d69Wzt27NC4ceM0aNAg+ynJyMhIrVmzRunp6fruu+/0wAMPlJvZa9mypTZt2qQTJ07YP1U4ffp0ff3113rhhRf0448/asWKFXr99dd/daF7ZUybNk1ffvmlMjMztXv3bn3zzTf2UAfURAQloIZ44YUXyp1a6dChg95880298cYb6tq1q3bs2OH0D8orvfTSS1qwYIG6du2qzZs36+OPP1aTJk0kSc2bN9e3336rkpISDRs2TFFRUZo6darq169fZj1UZTz++OOaPn26pk+frs6dO2v9+vX65JNP1KZNG9Nei3T5NNPnn3+ugQMHasKECWrbtq3uu+8+HTlyxL5W53e/+51uu+02DRkyRE2bNtUHH3xQqcc5er5169apYcOGGjhwoG699Va1atVKq1evth+zePFiNWzYUH379tWdd96pYcOGqUePHmX6mTdvno4cOaLWrVvb10D16NFDf//737Vq1SpFRUXpueee07x588qdnr1WJSUlmjRpkjp06KDbbrtN7dq105tvvulUn0B1ZjEqOmkNAAAAZpQAAAAcISgBAAA4QFACAABwgKAEAADgAEEJAADAAYISAACAAwQlAAAABwhKAAAADhCUAAAAHCAoAQAAOEBQAgAAcICgBAAA4MD/B+FuK3KJmXhTAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = summary.boxplot(column = 'num_peaks', by='heteroatom_count', showmeans=True)\n", "ax.set_xlabel('Number of heteroatoms')\n", "ax.set_ylabel('Number of peaks in $^1$H NMR')\n", "\n", "# We need these lines to remove the additional \"title\" text\n", "# (try commenting them to see what happens)\n", "ax.set_title('')\n", "ax.get_figure().suptitle('')" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [], "source": [ "summary['even_heteroatoms'] = (summary['heteroatom_count'] % 2) == 0\n" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 0.98, '')" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkoAAAGnCAYAAABIEXhYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA5m0lEQVR4nO3deVyVZf7/8fcBCVnELQVMUhTNBXfLXfQ7iW1mOmalpo7ZV8ddXMrMxA3DSbQ0NbWUqUz7ljVTUwqZa2Qqau42Gi4FDJUmKYos9+8Pf5zxhLcS98HD8no+Hj7kvs51X+dzON7w9rrvc902wzAMAQAAIB83VxcAAABQXBGUAAAATBCUAAAATBCUAAAATBCUAAAATBCUAAAATBCUAAAATBCUAAAATJRzdQGulpubq+TkZFWoUEE2m83V5QAAgNvAMAz99ttvqlGjhtzczOeNynxQSk5OVlBQkKvLAAAALnD27FnVrFnT9PEyH5QqVKgg6do3ys/Pz8XV4HbLyspSXFycwsPD5eHh4epyANxGHP9lW3p6uoKCguw5wEyZD0p5p9v8/PwISmVQVlaWvL295efnxw9KoIzh+IekW152w8XcAAAAJghKAAAAJghKAAAAJghKAAAAJghKAAAAJghKAAAAJghKAAAAJghKAAAAJghKAIAyJycnR1u3btW2bdu0detW5eTkuLokFFMEJQBAmbJ+/XqFhISoW7duiomJUbdu3RQSEqL169e7ujQUQwQlAECZsX79evXp00dNmjTR9u3b9d5772n79u1q0qSJ+vTpQ1hCPgQlAECZkJOTowkTJuiRRx7Rxx9/rDZt2sjLy0tt2rTRxx9/rEceeUQTJ07kNBwcEJQAAGXC9u3bderUKb3wwgtyc3P89efm5qYpU6YoKSlJ27dvd1GFKI4ISgCAMiElJUWSFBoaesPH89rz+gESQQkAUEYEBgZKkg4dOnTDx/Pa8/oBEkEJAFBGdOrUSbVr11ZUVJRyc3MdHsvNzdXcuXMVHBysTp06uahCFEcEJQBAmeDu7q758+fr008/1WOPPaadO3fq8uXL2rlzpx577DF9+umneuWVV+Tu7u7qUlGMlHN1AQAA3C69e/fWBx98oAkTJqhz58729uDgYH3wwQfq3bu3C6tDcURQAgCUKb1791bPnj21efNmff7553rwwQfVtWtXZpJwQwQlAECZ4+7urrCwMF26dElhYWGEJJjiGiUAAAATBCUAAAATBCUAAAATBCUAAAATBCUAAAATBCUAAAATBCUAAAATBCUAAAATBCUAAAATBCUAAAATBCUAAAATBCUAAAATBCUAAAATBCUAAAATBCUAAAATBCUAAAATBCUAAAATBCUAAAATBCUAAAATBCUAAAATBCUAAAATBCUAAAATBCUAAAATBCUAAAATBCUAAAATBCUAAAATBCUAAAATBCUAAAATBCUAAAATBCUAAAATxTYoZWdn68UXX1RwcLC8vLxUp04dzZw5U7m5ufY+hmEoMjJSNWrUkJeXl7p06aLDhw+7sGoAAFCaFNugFB0drWXLlmnx4sU6evSo5s2bp7/97W9atGiRvc+8efMUExOjxYsXa/fu3QoICFC3bt3022+/ubByAABQWhTboPT111+rZ8+eevjhh1W7dm316dNH4eHh2rNnj6Rrs0kLFy7U1KlT1bt3b4WGhio2NlYZGRlas2aNi6sHAAClQTlXF2CmY8eOWrZsmb777jvVr19f3377rXbs2KGFCxdKkpKSkpSamqrw8HD7Pp6engoLC1NCQoKGDRt2w3EzMzOVmZlp305PT5ckZWVlKSsrq+heEIqlvPec9x4oezj+y7aCvu/FNig999xzunDhgho0aCB3d3fl5ORozpw5euqppyRJqampkiR/f3+H/fz9/XX69GnTcefOnasZM2bka4+Li5O3t7cTXwFKkvj4eFeXAMBFOP7LpoyMjAL1K7ZBad26dXrnnXe0Zs0aNW7cWPv379e4ceNUo0YNDRo0yN7PZrM57GcYRr62602ZMkURERH27fT0dAUFBSk8PFx+fn7OfyEo1rKyshQfH69u3brJw8PD1eUAuI04/su2vDNKt1Jsg9KkSZP0/PPP68knn5QkNWnSRKdPn9bcuXM1aNAgBQQESLo2sxQYGGjfLy0tLd8s0/U8PT3l6emZr93Dw4MDpQzj/QfKLo7/sqmg73mxvZg7IyNDbm6O5bm7u9uXBwgODlZAQIDDlOnVq1e1detWtW/f/rbWCgAASqdiO6PUo0cPzZkzR3fffbcaN26sffv2KSYmRkOGDJF07ZTbuHHjFBUVpXr16qlevXqKioqSt7e3+vXr5+LqAQBAaVBsg9KiRYs0bdo0jRgxQmlpaapRo4aGDRuml156yd5n8uTJ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cerdu7fc3NzUtm1bnT592nKBAAAArmI5KIWEhOjjjz/W2bNntXHjRoWHh0uS0tLS5OfnZ7lAAAAAV7EclF566SVNnDhRtWvXVps2bdSuXTtJ12aXWrRoYblAAAAAVynUvd6u16dPH3Xs2FEpKSlq1qyZvf1Pf/qTevfubXV4AAAAl7E8o/TOO+8oICBALVq0kJvbf4e77777tHLlSqvDAwAAuIzloDRq1Ch9+umn+drHjx+vd955x+rwAAAALmM5KK1du1YDBgzQtm3b7G2jR4/WunXrtHnzZqvDAwAAuIzloPTAAw9o2bJleuyxx7Rnzx6NGDFC69ev15YtW9SgQQNn1AgAAOASli/mlqQnn3xS58+fV8eOHVWtWjVt3bpVISEhzhgaAADAZQoVlCIiIm7YXr16dbVo0UJLliyxt8XExBSuMgAAABcrVFDat2/fDdvr1q2r9PR0++M2m63wlQEAALhYoYISF2kDAICywCnXKEnSkSNHdObMGV29etXeZrPZ1KNHD2c9BQAAwG1lOSh9//336tWrlw4ePCibzSbDMCT997RbTk6O1acAAABwCcvLA4wdO1bBwcH6z3/+I29vbx0+fFjbtm1T69attWXLFieUCAAA4BqWZ5S+/vprffnll6pWrZrc3Nzk5uamjh07au7cuRozZozphd8AAADFneUZpZycHPn6+kqS7rzzTiUnJ0uSatWqpePHj1sdHgAAwGUszyiFhobqwIEDqlOnjtq0aaN58+bpjjvu0PLly1WnTh1n1AgAAOASloPSiy++qEuXLkmSZs+erUceeUSdOnVS1apVtW7dOssFAgAAuIrloNS9e3f713Xq1NGRI0d07tw5Va5cmQUnAQBAiea0dZSuV6VKlaIYFgAA4LayfDG3JG3fvl0DBgxQu3bt9OOPP0qS3n77be3YscMZwwMAALiE5aD04Ycfqnv37vLy8tK+ffuUmZkpSfrtt98UFRVluUAAAABXsRyUZs+erWXLlmnFihXy8PCwt7dv31579+61OjwAAIDLWA5Kx48fV+fOnfO1+/n56ddff7U6PAAAgMtYDkqBgYE6ceJEvvYdO3awjhIAACjRLAelYcOGaezYsfrmm29ks9mUnJysd999VxMnTtSIESOcUSMAAIBLWF4eYPLkybpw4YK6du2qK1euqHPnzvL09NTEiRM1atQoZ9QI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+pc+//xzTZ8+XWvXrlWvXr2Um5urYcOGacyYMfn2u/vuu4vsdQFwjt//58jNzU2/v4PX9T8bcnNzJV07/damTRuHfu7u7kVUJYojghJKpT179ig7O1vz58+Xm9u1S/Hef//9W+5Xv3591a9fX+PHj9dTTz2lVatWqVevXmrZsqUOHz7sEMYAlFzVqlVTamqqDMOQzWaTJO3fv9/+uL+/v+666y59//336t+/v4uqRHFAUEKpVLduXWVnZ2vRokXq0aOHvvrqKy1btsy0/+XLlzVp0iT16dNHwcHB+uGHH7R79279+c9/lnTtQtC2bdtq5MiRevbZZ+Xj46OjR48qPj5eixYtul0vC4CTdOnSRT/99JPmzZunPn36aMOGDfr888/l5+dn7xMZGakxY8bIz89PDz74oDIzM7Vnzx6dP39eERERLqwetxOfekOp1Lx5c8XExCg6OlqhoaF69913NXfuXNP+7u7u+uWXXzRw4EDVr19fffv21YMPPqgZM2ZIkpo2baqtW7fq3//+tzp16qQWLVpo2rRpCgwMvF0vCYATNWzYUEuWLNHrr7+uZs2aadeuXZo4caJDn6FDh2rlypVavXq1mjRporCwMK1evVrBwcEuqhquYDN+f5IWAAAAkphRAgAAMEVQAgAAMEFQAgAAMEFQAgAAMEFQAgAAMEFQAgAAMEFQAgAAMEFQAvCHnTp1SjabzeGWD6527NgxtW3bVuXLl1fz5s1v2KdLly4aN27cba0LQMlGUAJKoMGDB8tms+nll192aP/444/t960qa6ZPny4fHx8dP35cmzZtKrLniYyMNA1irlK7dm0tXLjQ1WUApRJBCSihypcvr+joaJ0/f97VpTjN1atXC73vyZMn1bFjR9WqVUtVq1Z1YlVF4/o71QMovghKQAl1//33KyAg4Kb3sLvR7MfChQtVu3Zt+/bgwYP12GOPKSoqSv7+/qpUqZJmzJih7OxsTZo0SVWqVFHNmjX11ltv5Rv/2LFjat++vcqXL6/GjRtry5YtDo8fOXJEDz30kHx9feXv76+nn35aP//8s/3xLl26aNSoUYqIiNCdd96pbt263fB15ObmaubMmapZs6Y8PT3VvHlzbdiwwf64zWZTYmKiZs6cKZvNpsjISNPvSW5uriZPnqwqVaooICAgX98LFy7of//3f1W9enX5+fnpf/7nf/Tt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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = summary.boxplot(column = 'num_peaks', by='even_heteroatoms', showmeans=True)\n", "ax.set_xlabel('Number of heteroatoms')\n", "ax.set_ylabel('Number of peaks in $^1$H NMR')\n", "\n", "# We need these lines to remove the additional \"title\" text\n", "# (try commenting them to see what happens)\n", "ax.set_title('')\n", "ax.get_figure().suptitle('')\n" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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du3amfT0dK/19KbquVwuk5ycbJo1a2YCAwNNixYtzNSpU01hYaFnDn2pXA5jjLHyjA4AAMClVLt7VAAAQPVBUAEAALZFUAEAALZFUAEAALZFUAEAALZFUAEAALZFUAEAALZFUAEAALZFUAEAALZFUAEAALblb3UBV8Ptduv48eMKDg6Ww+GwuhwAAFAKxhjl5+crMjLS59upf+uaDirHjx9XVFSU1WUAAIByyM7OVtOmTS8755oOKsHBwZJ+faMhISEWVwMAAErD5XIpKirK83f8cq7poHLxck9ISAhBBQCAa0xpbtvgZloAAGBbBBUAAGBbBBUAAGBbBBUAAGBbBBUAAGBbBBVAUkHRBUVPekfRk95RQdEFq8sBAPwfggoAALAtggoAALAtggoAALAtggoAALAtggoAALAtggoAALAtggoAALAtggoAALAtggoAALAtggoAALAtggoAALAtggoAALAtggoAALAtggoAALAtggoAALAtggoAALAtggoAALAtggoAALAtggoAALAtggoAALAtggoAALAtggoAALAtggoAALAtggoAALAtggoAALAtggoAALAtggoAALAty4PKsWPHNHToUIWFhalu3brq0qWLMjMzrS4LAADYgL+VBz9z5ox69eql3r1767333lN4eLi+++471atXz8qyAACATVgaVJ599llFRUVp6dKlnrHo6GjrCgIAALZi6aWf9evXKy4uTvfee6/Cw8PVtWtXLV68+JLzCwsL5XK5vF4AAKD6svSMyqFDh7Ro0SKlpKRoypQp2rFjh8aNGyen06nhw4f7zE9NTdWMGTMsqNQe5mUcsLoEjwm3tLG6BABADWDpGRW3261u3bpp9uzZ6tq1q0aNGqWHH35YixYtKnH+5MmTlZeX53llZ2dXccUAAKAqWRpUIiIi1KFDB6+x9u3b6+jRoyXOdzqdCgkJ8XoBAIDqy9Kg0qtXL33zzTdeYwcOHFDz5s0tqggAANiJpUFlwoQJ+uyzzzR79mwdPHhQK1euVHp6usaMGWNlWQAAwCYsDSo9evTQunXrtGrVKsXGxurpp59WWlqahgwZYmVZAADAJix96keSBg4cqIEDB1pdBgAAsCHLP0IfAIBrTUJCghwOR6nnL1u2TA6HQ8uWLau8oqopggoAoEb46KOPNGjQIEVFRcnpdKpBgwaKj4/XvHnz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tKlnvHHjxpJEn6pYZmamcnNz1b17d/n7+8vf319btmzRiy++KH9/f8+/PX2pehEREerQoYPXWPv27XX06FFJ/M5Y5bHHHtOkSZN03333qVOnTho2bJgmTJig1NRUSfSlKlS7oFK7dm11795dGRkZXuMZGRnq2bOnRVXVPMYYjR07VmvXrtWmTZsUExPjtT4mJkaNGzf26lNRUZG2bNlCnypR3759lZWVpd27d3tecXFxGjJkiHbv3q0WLVrQF4v06tXL5xH+AwcOeL6kld8ZaxQUFKhWLe8/lX5+fp7Hk+lLFbDwRt5Kc/Hx5L/97W/mq6++MuPHjzdBQUHmyJEjVpdWY4wePdqEhoaazZs3m5ycHM+roKDAM2fOnDkmNDTUrF271mRlZZnBgwfzSJ8F/v2pH2Poi1V27Nhh/P39zaxZs8y3335rXnvtNVO3bl2zYsUKzxx6U/VGjBhhmjRp4nk8ee3ataZhw4bm8ccf98yhL5WrWgYVY4xZuHChad68ualdu7bp1q2b57FYVA1JJb6WLl3qmeN2u8306dNN48aNjdPpNDfddJPJysqyruga6rdBhb5Y56233jKxsbHG6XSadu3amfT0dK/19KbquVwuk5ycbJo1a2YCAwNNixYtzNSpU01hYaFnDn2pXA5jjLHyjA4AAMClVLt7VAAAQPVBUAEAALZFUAEAALZFUAEAALZFUAEAALZFUAEAALZFUAEAALZFUAEAALZFUAEAALZFUAFgiT/+8Y+qX7++7rnnHqtLAWBjBBUAlhg3bpxeffVVq8sAYHMEFeAal5CQoPHjx1tdhocxRo888ogaNGggh8Oh3bt3lzivd+/eCg4Ortriqim7/QwAFYmgAlyl+++/Xw6HQ3PmzPEa/9///V85HA6LqrLOhg0btGzZMr399tvKyclRbGxsmba///77ddddd/mMb968WQ6HQz/99NNlty1NLy7Oe/TRR3328ec//1kOh0P333+/z3yHwyF/f381a9ZMo0eP1pkzZ8r03gCUHUEFqACBgYF69tlnq9UfrqKionJt99133ykiIkI9e/ZU48aN5e/vX8GVXV5pexEVFaXVq1frl19+8YydO3dOq1atUrNmzXzm33rrrcrJydGRI0f0yiuv6K233tKf//znCq8fgDeCClAB+vXrp8aNGys1NfWSc6Kjo5WWluY11qVLFz311FOe5YSEBCUlJWn8+PGqX7++GjVqpPT0dP3888964IEHFBwcrJYtW+q9997z2s+FCxc0duxY1atXT2FhYZo2bZqMMZ71xhg999xzatGiherUqaPrrrtOf//73732kZCQoLFjxyolJUUNGzbULbfcUuL7KCws1Lhx4xQeHq7AwEDFx8dr586dkn4985CUlKSjR4/K4XAoOjq6FP96Fas0vZCkbt26qVmzZlq7dq1nbO3atYqKilLXrl195judTjVu3FhNmzZVYmKiBg0apA8++OCK9Vz8d71Uf0rTmw0bNig+Pt6z/cCBA/Xdd99d8pgbNmxQaGio5x6gv//97+rUqZPq1KmjsLAw9evXTz///PMVawfsgKACVAA/Pz/Nnj1b8+fP17/+9a+r2tfy5cvVsGFD7dixQ0lJSRo9erTuvfde9ezZU7t27VL//v01bNgwFRQUeG3j7++v7du368UXX9S8efP0yiuveNZPmzZNS5cu1aJFi7Rv3z5NmDBBQ4cO1ZYtW3yO7e/vr3/+85/661//WmJ9jz/+uN58800tX75cu3btUqtWrdS/f3+dPn1a//3f/62ZM2eqadOmysnJ8QSYqlSWXjzwwANaunSpZ3nJkiUaOXLkFY9x6NAhbdiwQQEBAaWq6XL9KU1vfv75Z6WkpGjnzp3auHGjatWqpT/+8Y9yu90+x1q9erX+4z/+Q6+++qqGDx+unJwcDR48WCNHjtT+/fu1efNm3X333V5BFrA1A+CqjBgxwtx5553GGGNuuOEGM3LkSGOMMevWrTP//ivWvHlzM2/ePK9tr7vuOjN9+nTP8s0332zi4+M9yxcuXDBBQUFm2LBhnrGcnBwjyXz66aeebdq3b2/cbrdnzsSJE0379u2NMcacPXvWBAYGmm3btnkd+8EHHzSDBw/2OnaXLl0u+17Pnj1rAgICzGuvveYZKyoqMpGRkea5554zxhgzb94807x588vuxxhjEhMTTcOGDU2dOnVMkyZNzI4dO4wxv/57+vn5maCgIK9XYGCgkWTOnDlzyX2WthcX5508edI4nU5z+PBhc+TIERMYGGhOnjxp7rzzTjNixAiv+RdruliHJDN37twrvs/L9ae0vfmt3NxcI8lkZWV5jpGcnGwWLlxoQkNDzaZNmzxzMzMzjSRz5MiRK9YK2FHVXjwGqrlnn31Wffr00X/+53+Wex+dO3f2/Lefn5/CwsLUqVMnz1ijRo0kSbm5uZ6xG264wetm0RtvvFEvvPCCiouL9dVXX+ncuXM+l3KKiop8LnHExcVdtrbvvvtO58+fV69evTxjAQEBuv7667V///4yvEvp/fffv+S63r17a9GiRV5j27dv19ChQ0u9/9L0omHDhhowYICWL18uY4wGDBighg0bXramgoICvfLKKzpw4ICSkpJKVcul+rN3795S9ea7777TE088oc8++0w//vij50zK0aNHPTcrv/nmm/rhhx+0detWXX/99Z5tr7vuOvXt21edOnVS//79lZiYqHvuuUf169cvVe2A1QgqQAW66aab1L9/f02ZMsXrqRFJqlWrls/p9vPnz/vs47eXExwOh9fYxT94JZ32L8nFee+8846aNGnitc7pdHotBwUFXXZfF+v/7dNMxpgKfcIpKChIrVq18hor6yW1y/Xi340cOVJjx46VJC1cuLBUNb344ovq3bu3ZsyYoaeffrpMdZXkSr254447FBUVpcWLFysyMlJut1uxsbFeNzx36dJFu3bt0tKlS9WjRw9PP/z8/JSRkaFt27bpgw8+0Pz58zV16lRt375dMTExV107UNm4RwWoYHPmzNFbb72lbdu2eY3//ve/V05OjmfZ5XLp8OHDFXLMzz77zGe5devW8vPzU4cOHeR0OnX06FG1atXK6xUVFVWm47Rq1Uq1a9fW1q1bPWPnz5/X559/rvbt21fIe6lIl+rFv7v11ltVVFSkoqIi9e/fv9T7nj59up5//nkdP378inMv1Z/S9ObUqVPav3+/pk2bpr59+6p9+/YlPtHUsmVLffTRR/rHP/7hc6bH4XCoV69emjFjhr744gvVrl1b69atK/V7BazEGRWggnXq1ElDhgzR/Pnzvcb79OmjZcuW6Y477lD9+vX1xBNPyM/Pr0KOmZ2drZSUFI0aNUq7du3S/Pnz9cILL0iSgoOD9Ze//EUTJkyQ2+1WfHy8XC6Xtm3bpt/97ncaMWJEqY8TFBSk0aNH67HHHlODBg3UrFkzPffccyooKNCDDz5YIe+lIl2qF//Oz8/Pc9mqLP1ISEhQx44dNXv2bC1YsOCycy/Vn9L0pn79+goLC1N6eroiIiJ09OhRTZo0qcTjtGnTRh999JESEhLk7++vtLQ0bd++XRs3blRiYqLCw8O1fft2nTx50pbBEigJQQWoBE8//bRef/11r7HJkyfr0KFDGjhwoEJDQ/X0009X2BmV4cOH65dfftH1118vPz8/JSUl6ZFHHvGqJzw8XKmpqTp06JDq1aunbt26acqUKWU+1pw5c+R2uzVs2DDl5+crLi5O77//vm3veSipF78VEhJSrn2npKTogQce0MSJEy97dupy/blSb2rVqqXVq1dr3Lhxio2NVdu2bfXiiy8qISGhxGO1bdtWmzZtUkJCgvz8/PTQQw/p448/Vlpamlwul5o3b64XXnhBt912W7neM1DVHOa3F80BABUmISFBXbp08fkMHQClwz0qAADAtggqAADAtrj0AwAAbIszKgAAwLYIKgAAwLYIKgAAwLYIKgAAwLYIKgAAwLYIKgAAwLYIKgAAwLYIKgAAwLYIKgAAwLYIKgAAwLYIKgAAwLYIKgAAwLYIKgAAwLb+H4qRV3xtkzlxAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = plt.figure()\n", "ax1 = fig.add_subplot(211)\n", "ax2 = fig.add_subplot(212, sharex=ax1)\n", "ax1.hist(summary[summary['even_heteroatoms']]['num_peaks'], alpha=0.5)\n", "ax2.hist(summary[~summary['even_heteroatoms']]['num_peaks'], alpha=0.5)\n", "\n", "ax2.set_xlabel('Number of $^1$H NMR peaks')\n", "ax1.set_ylabel('Count')\n", "ax2.set_ylabel('Count')\n", "\n", "ax1.text(75,6.5, 'Even', fontsize=14)\n", "ax2.text(75,5, 'Odd', fontsize=14)\n", "\n", "ax1.vlines(summary[summary['even_heteroatoms']]['num_peaks'].mean(), 0, 7.5)\n", "ax2.vlines(summary[~summary['even_heteroatoms']]['num_peaks'].mean(), 0, 7.5)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "# Conclusions\n", "
\n", "\n", "Key points:\n", " \n", "- The number of 1H NMR peaks appears to decrease with increasing numbers of heteratoms \n", " - This may just be due to a smaller number of compounds in this range \n", "- Molecules with one heteroatom show the highest number of NMR peaks on average\n", "- Comparing odd with even numbers of heteratoms, there is little evidence from these data of any difference\n", " - Further work would be to apply statistical testing on these distributions, ideally using a greater number of measurements.
\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Tasks to complete after this session\n", "\n", "- Read through the notebook with answers, and check that you have understood the steps\n", "- Find and read the documentation for any Python commands you are less familiar with\n", "- Think about other ways to solve the problem, and try to implement/compare them\n", "- Extend your analysis to explore other peak searching approaches (or parameters)\n", "- Use statistical methods you have learned to quantify any correlations we have observed" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## END UNIT 10" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.13" }, "rise": { "enable_chalkboard": true, "scroll": true }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": false, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": { "height": "calc(100% - 180px)", "left": "10px", "top": "150px", "width": "384px" }, "toc_section_display": true, "toc_window_display": true }, "toc-autonumbering": true }, "nbformat": 4, "nbformat_minor": 4 }