ashutosh-pathak commited on
Commit
8444121
Β·
1 Parent(s): c0f21d6

Restructure + Add Gradio Interface

Browse files
This view is limited to 50 files because it contains too many changes. Β  See raw diff
Files changed (50) hide show
  1. README.md +32 -28
  2. app.py +27 -0
  3. train.ipynb β†’ notebooks/train.ipynb +4 -20
  4. {preds β†’ outputs/preds}/0_pred.png +0 -0
  5. {preds β†’ outputs/preds}/100_pred.png +0 -0
  6. {preds β†’ outputs/preds}/101_pred.png +0 -0
  7. {preds β†’ outputs/preds}/102_pred.png +0 -0
  8. {preds β†’ outputs/preds}/103_pred.png +0 -0
  9. {preds β†’ outputs/preds}/104_pred.png +0 -0
  10. {preds β†’ outputs/preds}/105_pred.png +0 -0
  11. {preds β†’ outputs/preds}/106_pred.png +0 -0
  12. {preds β†’ outputs/preds}/107_pred.png +0 -0
  13. {preds β†’ outputs/preds}/108_pred.png +0 -0
  14. {preds β†’ outputs/preds}/109_pred.png +0 -0
  15. {preds β†’ outputs/preds}/10_pred.png +0 -0
  16. {preds β†’ outputs/preds}/110_pred.png +0 -0
  17. {preds β†’ outputs/preds}/111_pred.png +0 -0
  18. {preds β†’ outputs/preds}/112_pred.png +0 -0
  19. {preds β†’ outputs/preds}/113_pred.png +0 -0
  20. {preds β†’ outputs/preds}/114_pred.png +0 -0
  21. {preds β†’ outputs/preds}/115_pred.png +0 -0
  22. {preds β†’ outputs/preds}/116_pred.png +0 -0
  23. {preds β†’ outputs/preds}/117_pred.png +0 -0
  24. {preds β†’ outputs/preds}/118_pred.png +0 -0
  25. {preds β†’ outputs/preds}/119_pred.png +0 -0
  26. {preds β†’ outputs/preds}/11_pred.png +0 -0
  27. {preds β†’ outputs/preds}/120_pred.png +0 -0
  28. {preds β†’ outputs/preds}/121_pred.png +0 -0
  29. {preds β†’ outputs/preds}/122_pred.png +0 -0
  30. {preds β†’ outputs/preds}/123_pred.png +0 -0
  31. {preds β†’ outputs/preds}/124_pred.png +0 -0
  32. {preds β†’ outputs/preds}/125_pred.png +0 -0
  33. {preds β†’ outputs/preds}/126_pred.png +0 -0
  34. {preds β†’ outputs/preds}/127_pred.png +0 -0
  35. {preds β†’ outputs/preds}/128_pred.png +0 -0
  36. {preds β†’ outputs/preds}/129_pred.png +0 -0
  37. {preds β†’ outputs/preds}/12_pred.png +0 -0
  38. {preds β†’ outputs/preds}/130_pred.png +0 -0
  39. {preds β†’ outputs/preds}/131_pred.png +0 -0
  40. {preds β†’ outputs/preds}/132_pred.png +0 -0
  41. {preds β†’ outputs/preds}/133_pred.png +0 -0
  42. {preds β†’ outputs/preds}/134_pred.png +0 -0
  43. {preds β†’ outputs/preds}/135_pred.png +0 -0
  44. {preds β†’ outputs/preds}/136_pred.png +0 -0
  45. {preds β†’ outputs/preds}/137_pred.png +0 -0
  46. {preds β†’ outputs/preds}/138_pred.png +0 -0
  47. {preds β†’ outputs/preds}/139_pred.png +0 -0
  48. {preds β†’ outputs/preds}/13_pred.png +0 -0
  49. {preds β†’ outputs/preds}/140_pred.png +0 -0
  50. {preds β†’ outputs/preds}/141_pred.png +0 -0
README.md CHANGED
@@ -1,40 +1,44 @@
1
- # Deep-Learning-liver-segmentation-project
2
- <em>Final project of the Deep Learning course followed at <a href='https://www.imt-atlantique.fr/en'>IMT Atlantique</a>.</em></br></br>
3
- <p>The code of this project is largely inspired by that of <a href='https://github.com/jocicmarko/ultrasound-nerve-segmentation'> this repository</a>, a tutorial for a kaggle competition about ultrasound image nerve segmentation. The goal of this project is to adapt the code to the segmentation of liver images as described in this article https://arxiv.org/pdf/1702.05970.pdf.
4
- </p>
 
5
 
6
  ## Data
7
- The data to be used are available in NifTi format <a href='https://www.dropbox.com/s/hx3dehfixjdifvu/ELU-502-ircad-dataset.zip?dl=0'>here</a>.
8
- This dataset consists of 20 medical examinations in 3D, we have the source image as well as a mask of segmentation of the liver for each of these examinations. We will use the nibabel library (http://nipy.org/nibabel/) to read associated images and masks.
9
 
10
- ## Model
11
- <p>We will train a U-net architecture, a fully convolutional network. The principle of this architecture is to add to a usual contracting network, layers with upsampling operators instead of pooling. This allow the network to learn context (contracting path), then localization (expansive path). Context information is propagated to higher resolution layers thanks to skip-connexions. So we have images of the same size as input</p>
12
 
 
13
 
14
- <p align="center"><img src="img/u-net-architecture.png" style></img></p>
 
 
15
 
 
16
 
17
- <p>in the data.py script, we perform axial cuts of our 3D images. So 256x256 images are input to the network</p>
18
 
19
  ## Evaluation
20
 
21
- As metric we will use the <a href='https://en.wikipedia.org/wiki/S%C3%B8rensen%E2%80%93Dice_coefficient'>Dice coefficient</a> (which is quite similar to the Jaccard coefficient)
22
 
23
  ## How it works
24
- <ol><li>First download the data whose link has been given previously</li>
25
- <li>Create a 'raw' folder
26
- <li>In the 'raw' folder, create a 'test' folder, and a 'train' folder
27
- <li>Then separate the data in two sets (train and test, typically we use 13 samples for the train set and 7 for the test set) and put them in the corresponding directories that you can find in the 'raw' folder</li>
28
- <li>Run data.py , this will save the train and test data in npy format</li>
29
- <li>Finally launch the notebook, you can observe a curve of the Dice coef according to the number of epochs and visualize your predictions in the folder 'preds'</li>
30
- </ol>
31
- (Feel free to play with the parameters : learning rate, optimizer etc.)
32
-
33
- ## Some results
34
-
35
-
36
- <p>Finally we get this kind of predictions for a particular cut (thanks to the mark_boundaries function that you can find in the notebook), we can observe the liver is delimited in yellow</p>
37
- <p align="center"><img src="img/segmentation-example1.png"></img></p>
38
-
39
- <p>The evolution of the Dice coef for 20 epochs, this plot shows that we have consistent results and a test Dice coef reaching almost 0.87</p>
40
- <p align="center"><img src="img/dice-20epochs-example.png"></img></p>
 
 
 
1
+ # Liver Segmentation with U-Net
2
+
3
+ *Final project of the Deep Learning course followed at [IMT Atlantique](https://www.imt-atlantique.fr/en).*
4
+
5
+ The code of this project is largely inspired by [this repository](https://github.com/jocicmarko/ultrasound-nerve-segmentation), a tutorial for a Kaggle competition about ultrasound image nerve segmentation. The goal of this project is to adapt the code to the segmentation of liver images as described in [this article](https://arxiv.org/pdf/1702.05970.pdf).
6
 
7
  ## Data
 
 
8
 
9
+ The data to be used are available in NifTi format [here](https://www.dropbox.com/s/hx3dehfixjdifvu/ELU-502-ircad-dataset.zip?dl=0).
 
10
 
11
+ This dataset consists of 20 medical examinations in 3D, we have the source image as well as a mask of segmentation of the liver for each of these examinations. We will use the [nibabel library](http://nipy.org/nibabel/) to read associated images and masks.
12
 
13
+ ## Model
14
+
15
+ We will train a U-net architecture, a fully convolutional network. The principle of this architecture is to add to a usual contracting network, layers with upsampling operators instead of pooling. This allows the network to learn context (contracting path), then localization (expansive path). Context information is propagated to higher resolution layers thanks to skip-connections. So we have images of the same size as input.
16
 
17
+ ![U-Net Architecture](img/u-net-architecture.png)
18
 
19
+ In the data.py script, we perform axial cuts of our 3D images. So 256x256 images are input to the network.
20
 
21
  ## Evaluation
22
 
23
+ As metric we will use the [Dice coefficient](https://en.wikipedia.org/wiki/S%C3%B8rensen%E2%80%93Dice_coefficient) (which is quite similar to the Jaccard coefficient).
24
 
25
  ## How it works
26
+
27
+ 1. First download the data whose link has been given previously
28
+ 2. Create a 'raw' folder
29
+ 3. In the 'raw' folder, create a 'test' folder, and a 'train' folder
30
+ 4. Then separate the data in two sets (train and test, typically we use 13 samples for the train set and 7 for the test set) and put them in the corresponding directories that you can find in the 'raw' folder
31
+ 5. Run data.py, this will save the train and test data in npy format
32
+ 6. Finally launch the notebook, you can observe a curve of the Dice coef according to the number of epochs and visualize your predictions in the folder 'preds'
33
+
34
+ (Feel free to play with the parameters: learning rate, optimizer etc.)
35
+
36
+ ## Some results
37
+
38
+ Finally we get this kind of predictions for a particular cut (thanks to the mark_boundaries function that you can find in the notebook), we can observe the liver is delimited in yellow:
39
+
40
+ ![Segmentation Example](img/segmentation-example1.png)
41
+
42
+ The evolution of the Dice coef for 20 epochs, this plot shows that we have consistent results and a test Dice coef reaching almost 0.87:
43
+
44
+ ![Dice Coefficient Evolution](img/dice-20epochs-example.png)
app.py ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from src.model.model import get_unet
3
+ # from src.dicom_handler.dicom_predictor import predict_dicom
4
+ from src.nifti_handler.nifti_predictor import predict_nifti
5
+
6
+ # Load the model and weights
7
+ model = get_unet()
8
+ model.load_weights('models/weights.h5')
9
+
10
+ # Define mean and std (should have saved these during training)
11
+ mean = 0 # Replace with actual mean
12
+ std = 1 # Replace with actual std
13
+
14
+ def predict_liver_segmentation(file):
15
+ # segmented = predict_dicom(file.name, 'models/weights.h5')
16
+ segmented = predict_nifti(file.name, 'models/weights.h5')
17
+ return segmented
18
+
19
+ iface = gr.Interface(
20
+ fn=predict_liver_segmentation,
21
+ inputs=gr.File(label="Upload NIfTI file (.nii.gz)"),
22
+ outputs=gr.Image(label="Segmentation Result"),
23
+ title="Liver Segmentation from NIfTI",
24
+ description="Upload a liver CT scan NIfTI file (.nii.gz) to get the segmentation result."
25
+ )
26
+
27
+ iface.launch(share=True)
train.ipynb β†’ notebooks/train.ipynb RENAMED
@@ -2,25 +2,9 @@
2
  "cells": [
3
  {
4
  "cell_type": "code",
5
- "execution_count": 1,
6
  "metadata": {},
7
- "outputs": [
8
- {
9
- "name": "stderr",
10
- "output_type": "stream",
11
- "text": [
12
- "Using TensorFlow backend.\n",
13
- "C:\\Users\\Admin\\Anaconda3\\lib\\site-packages\\dicom\\__init__.py:53: UserWarning: \n",
14
- "This code is using an older version of pydicom, which is no longer \n",
15
- "maintained as of Jan 2017. You can access the new pydicom features and API \n",
16
- "by installing `pydicom` from PyPI.\n",
17
- "See 'Transitioning to pydicom 1.x' section at pydicom.readthedocs.org \n",
18
- "for more information.\n",
19
- "\n",
20
- " warnings.warn(msg)\n"
21
- ]
22
- }
23
- ],
24
  "source": [
25
  "import os\n",
26
  "from skimage.transform import resize\n",
@@ -338,7 +322,7 @@
338
  },
339
  {
340
  "data": {
341
- "image/png": "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\n",
342
  "text/plain": [
343
  "<Figure size 432x288 with 1 Axes>"
344
  ]
@@ -378,7 +362,7 @@
378
  "name": "python",
379
  "nbconvert_exporter": "python",
380
  "pygments_lexer": "ipython3",
381
- "version": "3.6.8"
382
  }
383
  },
384
  "nbformat": 4,
 
2
  "cells": [
3
  {
4
  "cell_type": "code",
5
+ "execution_count": 3,
6
  "metadata": {},
7
+ "outputs": [],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  "source": [
9
  "import os\n",
10
  "from skimage.transform import resize\n",
 
322
  },
323
  {
324
  "data": {
325
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEWCAYAAACJ0YulAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzt3Xl4VNX5wPHvmz1kYckGQtgDsgmyKAoqKiqoFRU31Kq4UKwWrbUttv1Rta3V2k1Fa11wqxXFFVfctwrKIiBr2ElYkpBAFkL28/vj3IRhmEmGkFmSeT/PM8/M3Htn7pvJzH3vOfcsYoxBKaWUAogIdgBKKaVChyYFpZRSDTQpKKWUaqBJQSmlVANNCkoppRpoUlBKKdVAk4Jq00Skp4gYEYnyYdvrROTrI3jvrSIy3nn8GxF56mhiDRQRuVlE8kSkTERSRGSMiGxwnl8Y7PhUcGlSUCHDOchWiUiq2/LlzoG9Z3Aia5ox5j5jzI3BjqMpIhIN/B042xiTaIwpBO4FZjvP3wxuhCrYNCmoULMFmFL/RESGAPHBC6fNyQDigNUuy3q4PVdhTJOCCjUvANe4PL8WeN51AxFpLyLPi0iBiGwTkd+JSISzLlJE/ioie0RkM3Ceh9c+LSK7RGSHiPxRRCJ9CUxEfuzsr1BEfuu27m4R+Y/L87Ei8o2I7BORHBG5zlke68S33anCeVxEvCY9EblJRNaKSKmIrBGR4c7yASLyufP+q0XkApfXeNyHiPQD1jub7RORT0VkE9AbeNupPor15bNQbZcmBRVqFgHJzkEvErgc+I/bNo8A7bEHs9OwSWSqs+4m4HzgeGAkcInba58DaoC+zjZnA01W+4jIQOBfwI+BY4AUoJuXbbsD7ztxpgHDgOXO6geAfs6yvkBXYJaX97kUuNv5+5KBC4BCpwrobeBDIB34GfCiiPRvbB/GmGxgkLNNB2PMGcaYPsB24EdO9VFlU5+FauOMMXrTW0jcgK3AeOB3wJ+BCcBHQBRggJ5AJFAJDHR53U+Az53HnwLTXdad7bw2Clt1UgnEu6yfAnzmPL4O+NpLbLOAuS7PE4AqYLzz/G7gP87ju4A3PLyHAPuBPi7LTgK2eNnnAuA2D8tPAXYDES7LXnJiaHQfzmdogCj3zz3Y/3+9hcatyRYZSgXBC8CXQC/cqo6AVCAG2OaybBv2bBjsWXyO27p6PYBoYJeI1C+LcNvem0Pe1xizX0QKvWybCWzysDwNaAcsddm/YBPdkbzPMUCOMabOZVn9Z3Ck+1DqEJoUVMgxxmwTkS3AucANbqv3ANXYA/waZ1l3YIfzeBf2YIrLuno52JJCqjGm5gjD2gUMqH8iIu2wVUie5AAneFi+BzgADDLG7PCw3tP79PGwfCeQKSIRLomhO5DdjH0odQi9pqBC1Q3AGcaY/a4LjTG1wCvAn0QkSUR6AHdw8LrDK8AMEekmIh2BmS6v3YWth/+biCSLSISI9BGR03yI51XgfOcCcgy2Gae338+LwHgRuUxEopy+AMOcA/iTwD9EJB1ARLqKyDle3ucp4E4RGSFWX+fv/RZbRfQrEYkWkXHAj7DVW0e6D6UOoUlBhSRjzCZjzBIvq3+GPShuBr4G/gvMcdY9ia2LXwEsA153e+012OqnNcBe7MG+iw/xrAZucfa1y3ltrpdtt2NLOb8AirAXmYc6q38NbAQWiUgJ8DHQ38v7zAP+5OyzFHgT6GSMqcJedJ6ILRk8BlxjjFl3pPtQyp0Yo5PsKKWUsrSkoJRSqoHfkoKIzBGRfBFZ5WW9iMjDIrJRRFbWd8pRSikVPP4sKTyLbWfuzUQgy7lNw3YMUkopFUR+SwrGmC+xF9m8mQQ8b6xFQAcRafKCn1JKKf8JZj+FrhzaaSjXWbbLfUMRmYYtTZCQkDDi2GOPDUiASinVVixdunSPMSatqe2CmRTEwzKPTaGMMU8ATwCMHDnSLFniraWiUkopT0RkW9NbBbf1US6H9jzthu2pqZRSKkiCmRTmA9c4rZBGA8VOj1OllFJB4rfqIxF5CRgHpIpILvB77GBkGGMeB97D9vrcCJRzcOhjpZRSQeK3pGCMmdLEeoMdNuCoVVdXk5ubS0VFRUu8XasQFxdHt27diI6ODnYoSqk2pE2Mkpqbm0tSUhI9e/bEZbjgNssYQ2FhIbm5ufTq1SvY4Sil2pA2McxFRUUFKSkpYZEQAESElJSUsCoZKaUCo00kBSBsEkK9cPt7lVKB0Saqj5RSypPq2jq27tnP+rxSduw9wDmDOtMzNSHYYYU0TQotoLCwkDPPPBOA3bt3ExkZSVqa7Tj43XffERMT0+R7TJ06lZkzZ9K/vw57r9SRqq0zbCvcT3ZeKdl5Zc59KVv27Ke69mCf2AcXrOfq0T2YcWYWnRKa/l2GI00KLSAlJYXly5cDcPfdd5OYmMidd955yDb1k2JHRHiusXvmmWf8HqdSR6qyppb8kkp2l1Swp7SS2qOcfyUmMoK46Ehio+z9oY8jiI2yzyMiPFeP1tUZcvceYL1z0N+QV8r6vDI2FZRRVXNwyurMTvH0S0/izAEZ9MtIJCs9ifbx0fzri028sGgbry3NZfq4Ptwwthdx0Tp9tStNCn60ceNGLrzwQsaOHcu3337LO++8wz333MOyZcs4cOAAl19+ObNmzQJg7NixzJ49m8GDB5Oamsr06dN5//33adeuHW+99Rbp6elB/muUv1TX1lFWUUNZZQ2lzn1ZZfXBx859eVUt7WIiSYqLIikumqS4KBJj7eNkl2XtYiKbvOZkjKHkQA27SyrYVXyAvJIKdhfbg799bO8L91cF6FM4VExUxGHJIlKE7UXlHKiubdjumPZxZGUkcUpWKlnpifTLSKJveiIJsZ4PbfddNITrx/Tk/vfX8eCC9fxn0TZ+cXZ/Ljq+K5FeElG4aXNJ4Z63V7NmZ0mLvufAY5L5/Y8GNeu1a9as4ZlnnuHxxx8H4P7776dTp07U1NRw+umnc8kllzBw4MBDXlNcXMxpp53G/fffzx133MGcOXOYOXOmp7dXIaa2zlC4v5L8kkrySyvIK7GP80orKCitpLSi+pADfWlFDZUuZ7jeiEB8dCQHqmtp6mQ9QmhIFjaB2Mfx0ZHsKau0B/2SCiqqD99vSkIMGclxdG4fx9DMDnRpH0fn5Dgy2seRlhhLdGTzD5wGqKqpo6K6lkrnvqLa7XlNLZXVdQ33lTUHt6muNYzpm2rP/DOSyMpIJDnuyPvp9E1P4qlrR7FocyF/fm8td85bwdNfb+Guicdyar8mx4tr89pcUgg1ffr0YdSoUQ3PX3rpJZ5++mlqamrYuXMna9asOSwpxMfHM3HiRABGjBjBV199FdCY1eGMMewpqyKvpOKwg31+SQX5pfZgu6esitq6w4/aKQkxpCXFkhwXTXpSHL1To0iMiyIp1p7tJzac9UeRGBvt9vzg2X9dnaG8upbSCluSOHhfc8jzssoaSly2yS+toLyqlpSEGAZ3bc9ZAzMaDv6dk+PISI4jPTmW2KjwqUoZ3TuFN346hnd+2MWDC9ZxzZzvOCUrlbsmDmDgMcnBDi9o2lxSaO4Zvb8kJBxs6bBhwwYeeughvvvuOzp06MDVV1/tsa+B64XpyMhIampqAhKrsmf624vK2ZhfxsZ8W1e9Mb+MTflllFYe/n+oP9hnJMfRPyOJjOQ4MpJjSUuy9+nJ9gw7JqplWn9HRIhNIrFRdGnfIm8Z1iIihAuGHsM5gzJ4YeE2Hvl0I+c98hUXH9+NO8/pR5f28cEOMeDaXFIIZSUlJSQlJZGcnMyuXbtYsGABEyY0Njmd8peK6lo2F+xno8tBf2N+GVv27Keq9mC1SnpSLH3TE7loeFd6pybQuX28Xw72KrhioyK58ZTeXDoik8c+38gz32zlnZU7uWFsL6aP69OsaqrWSpNCAA0fPpyBAwcyePBgevfuzZgxY4IdUptWUV3Ljn0HyCkqJ3fvgUNKADl7yxvq5kWge6d29E1LZFz/NPqkJ9I3PZE+aYm0jw+fg4GC9u2iuevcAfz4pB78dcF6Hvt8E3MX5zDjjL5ceWKPsDgJEHOUTcwCzdMkO2vXrmXAgAFBiih4wvXvrldTW8eu4gpyisrJ2WsP/Paxvc8vrTxk+5ioCHqnJtiDfpo98PdNT6RXaoI2S1QerdpRzH3vreWbTYX0TGnH3y4bxogeHQMeR0V1LX96dy03ndKb7intmvUeIrLUGDOyqe20pKBCXnF5Ncty9rIqt5jtTgLIKTrA7pKKQy7qRgh0aR9PZqd4TuuXRreO7cjsFE9mp3ZkdmxHelKs1/bvSnkyuGt7XrzxRD5fX8Dv569mypOL+OulQ7lg6DEBi6GgtJJpLyzh++37GHRMMt1Tuvt1f5oUVEipqzNs3lPGsm37WLptL8u272VDflnD+vSkWDI7tWNUz44HD/od25HZqR2d28cRHdn2i/cqsESE049NZ2hmB6a/sJQZL33PloL9zDizr9/HIFu7q4Qbnl1MUXkV/7pqOBOHdPHr/kCTggqy/ZU1rMjZx7Lte50ksI/iA9UAtI+PZnj3DkwadgzDu3fkuMwOJHrplKSUv3VKiOGFG0/grtd/4B8fZ7NlTxn3Tz7Ob1WPH6/JY8bc70mOi+bV6SczuGtgmpvpL0wFjDF2iIKl2/Y2lALW7iqhvgYoKz2RiYM7M7x7R4b36Ejv1ASt7lEhJTYqkr9dOpQ+aYk8uGA9OXsP8MSPR5CSGNti+zDG8ORXm/nz++sY0rU9T14zkozkuBZ7/6ZoUlB+t72wnBcWbeWt5TsbLv4mxEQyrHsHbj29L8N7dOT4zI60b6ctfVToExFuOb0vPVMSuOOV5Vz42P+Yc+0osjKSjvq9q2rq+O0bPzBvaS7nDenCXy8dSnxMYBtBaFJQflFXZ/hyQwHPL9zGZ+vziRDhrAEZjMlKZUT3jvTvnKRjzahW7bzjutC1Yzw3PreEi//1DY9dNZxTspo/TEbR/iqm/2cp320pYsYZfbl9fL+glJQ1KbSAlhg6G2DOnDmce+65dO7c2W+x+ltJRTWvLsnlhUXb2LJnP6mJsfzsjCyuPKE7ndsHrgisVCAMy+zAm7eczI3PLeG6ZxZzzwWDuHp0jyN+nw15pdzw3BJ2l1Tw0BXDmDSsqx+i9Y0mhRbgy9DZvpgzZw7Dhw9vlUlh/e5Snl+4lTe+30F5VS3Du3fg9iuGMXFwl7Do8KPCV7eO7Zg3/SRmvPQ9v3tzFVv27Oc35w7wuST8RXYBt764jNjoSOZOG83w7oHvB+FKk4KfPffcczz66KNUVVVx8sknM3v2bOrq6pg6dSrLly/HGMO0adPIyMhg+fLlXH755cTHxx9RCSNYamrr+GhNHs8t3MqizUXEREUwaegxXHNST4Z004F5VPhIiovmyWtG8sd31/L011vYVrifh6443usQ3vWe+2Yr97y9mn4ZSTx93Si6dgj+WEttLym8PxN2/9Cy79l5CEy8/4hftmrVKt544w2++eYboqKimDZtGnPnzqVPnz7s2bOHH36wce7bt48OHTrwyCOPMHv2bIYNG9ay8bewPWWVvLw4h/8s2sau4gq6dohn5sRjuWxkps5mpcJWVGQEd18wiN5pCdw9fzWXPL6Qp68dyTEeDvTVtXXc+/YaXli0jfED0vnnFceHTHPr0Iiijfr4449ZvHgxI0fanuUHDhwgMzOTc845h/Xr13Pbbbdx7rnncvbZZwc50qYZY1iRW8zz32zlnZW7qKqt45SsVO6dNJgzjk3Xi8ZKOa45qSfdO7Xj1v9+z4WP/o+nrh3Jcd06NKwvLq/mlv8u4+uNe/jJqb351YRjQ+r30/aSQjPO6P3FGMP111/PH/7wh8PWrVy5kvfff5+HH36Y1157jSeeeCIIETZuf2UN/9u4h8+zC/hifQE79h0gISaSKSdk8uOTetI3PTHYISoVksb1T+e1m0/m+mcXc9m/F/LPy4cxYXAXtuzZzw3PLSanqJy/TD6Oy0ZlBjvUw7S9pBBCxo8fzyWXXMJtt91GamoqhYWF7N+/n/j4eOLi4rj00kvp1asX06dPByApKYnS0tKgxWuMYUN+GZ+vz+fz9QUs3lpEda0hISaSk/umcusZfTn/uC4khdEwwko1V//OSbx5yxhuen4J0/+zjGtP6sGby3cSIfDCDScyundKsEP0SJOCHw0ZMoTf//73jB8/nrq6OqKjo3n88ceJjIzkhhtuwBiDiPDAAw8AMHXqVG688caAXmguqy8NrC/gy2xbGgDol5HI1DG9GNcvjZE9O2kLIqWaIS0plrnTRnPnvBU8t3AbfdMTefrakfRISWj6xUGiQ2e3Ys35u40xZOcdLA0s2WZLA4mxUYzpm8K4/umc1i/N48UxpVTz1NUZvsguYETPjkGbsEeHzlYNjDEs2lzE/BU7+WJ9PjuL7RSgx3ZO4vqxvRjXL50RPTpqaUApP4mIsCOttgaaFNqwvJIKXl2ayytLcthWWE5ibBRj+6Yy48w0TuufFpbzzyqlGtdmkkJ9/Xy48FbtV11bx2fr8nllSQ6frS+gts5wYq9O3D4+i4mDu+gMY6p5qg/A7lXQZShEtcK+KDVVULoTOvSw868qr9pEUoiLi6OwsJCUlJSwSAzGGAoLC4mLOziW0JY9+3llSQ6vLs2loLSStKRYpp3am8tGZtIrNXQvaqkQVlcH2/4HK+fCmvlQWQKdesNZf4BjzwvNg6sxULID8tZA3irIWw35a2BPNtTVwOSnYcglwY4ypLWJpNCtWzdyc3MpKCgIdigBExcXR2pGF15flsvLi3P4dksRkRHC6f3TuHxUd07vn0aUzkKmmiN/nU0EK+dBSS7EJMKAC6D7aFj4KLx8FfQYC+f8CY4JYu/7ylLIX+sc/Nc4CWA1VBQf3KZ9JmQMgn4TYOXLsGKuJoUmtImkEB0dTa9evYIdRsCs2lHM04u389byLyitqKFHSjt+eU5/LhnRLaCTcSgfGQPL/wsLZ0P7btBlmD2YdhkGyceExhl3aR6setUeOHetAImEPmfAWfdA/3MhxpksfthVsOxZ+Ow+eGIcDJ0CZ/6f/Tv8qaocNn1iY6svBezbdnB9TBJkDITBkyF9IGQMhvQBEH+wJzGmzv4P9hdCQmj2EQgFbaJJajg4UFXLvKU5vLw4h9U7S4iNiuDcIV24bGQmJ/bqpDOUhaqyAnj7Nlj/rh1Dq64WCtbZAxRAQppNDl2GHkwU7bsFJlFU7Yd179qz582f2Zi6DIOhV9iDa2IjrWUqiuGrv8Gif9kEMmYGnDwDYluwl7sxkPMdLH8RVr9hq68kAlKybALIGATpg+x9h+5Nf2a7VsK/T4Hz/wkjp7ZcnK2Er01SNSm0Ah+tyePu+avZse8AA7skc8UJmUwa2lVnKgt1696F+TNsNceZs2D0TyEiwp715q2Cncth13J7X7AOTK19XbsUl9LEUPvYl4OeL+pqYcsXsOJlWPs2VO+3VSzHXQbHXQ5p/Y/s/fZuhY/vgdWvQ2JnW2oYOgUijqJBQ8lOWPGSLV0VboTodjDwQpusMk+E6GaWho2B2aMgqTNc907z42ulNCm0ATlF5dzz9ho+XptHv4xE7rlgMCf10WJvyKsohg/usme4nY+Di5+wVRmNqT5g68R3fu8kihVQsNZeHAWI72TPiGMS7Jl5hHOTSIiIch5HOMujPGwTaZPTmvlQthti28OgSXDcFdD9JJusjkbOd/Zv3rHElojO/hP0Ps3311dXwLp3bCKoL7X0GAPDroSBkyD26Ke6BOCzP8MXD8Av1tnkEEZCIimIyATgISASeMoYc7/b+h7AHCANKAKuNsbkNvae4ZAUqmrqePKrzTzy6QYiRLh9fBZTx/QiWi8ch74tX8KbP7UtYE75BZz6q+Y34ayusIlil1OiyF8LNZX2gFlXY8/6Ta29d31sap31dS7ra2xi6Dvelgj6TWj+Gbc3xsCq12zJoXi7vRZx1r2QmuV9+x1LbfJc9ZpNpu0zbUlj2BTb0qmlFayHR0+ACQ/A6Okt//4hLOhJQUQigWzgLCAXWAxMMcascdlmHvCOMeY5ETkDmGqM+XFj79vWk8I3m/bwf2+uYlPBfiYM6sysHw3UISdag+oD8MkfYNGj0KkPXPRvyBwV7KiCo7oCvv0XfPk3qDkAI2+AcTOhXSe7vnS3vY6x/L+wZz1ExcPAC2ypoOepR19qacq/xkJ0PNz4kX/3E2JCYZiLE4CNxpjNTkBzgUnAGpdtBgI/dx5/Brzpx3hCWn5pBfe9u5Y3l++ke6d2PHPdqFbTLT7s7fwe3phurwuMusm22IkJ474h0XEw9ucw7Gr4/D5Y/KRt4jrqJti9EjZ+bEs7maPhRw/DoIsgLjlw8Q2+GD65B/Zug45HPp9yW+fPpNAVyHF5nguc6LbNCmAytorpIiBJRFKMMYWuG4nINGAaQPfu3f0WcDDU1hle/HYbDy5YT2V1HTPOzOKn4/poz+PWoLYGvv67raNOSIerX4e+ZwY7qtCRmAbn/wNOmAYf/h989VdI7moTxtArIbVvcOKqTwqr34CxtwcnhhDmz6TgqamEe13VncBsEbkO+BLYAdQc9iJjngCeAFt91LJhBs+KnH389s0fWLWjhLF9U7l30iB6p+nENa3Cng3wxk9snfiQS+HcByE+uBOuh6z0AXD1q1CcC0ldjq5lUkvo2BO6jrTXMTQpHMafSSEXcJ1WqBuw03UDY8xO4GIAEUkEJhtjimnjisurefDDdbz47XbSEmOZfeXxnDekS1gM0dHq1dXB4qfgo1m2muSSZ+yZp2pa+27BjuCgwZNhwV02uXu7EB6m/JkUFgNZItILWwK4ArjSdQMRSQWKjDF1wF3YlkhtljGG15ft4L731rK3vIqpJ/fi52dl6UxmgWCMHcenusK2BoqMdbl3bvXLouIgMubwfgHFufDWLbD5c+h7FlzwCCR3Ccqfo47SoAthwW9g1esw7tfBjiak+C0pGGNqRORWYAG2SeocY8xqEbkXWGKMmQ+MA/4sIgZbfXSLv+IJtk0FZdz1+g98t6WI4d078PwNJzDomPbBDit8LJwNH/7uyF4T6ZY0Duy1y8//B4yYGhrDU6jmST7G9oNY9Sqc9iv9X7rw69hHxpj3gPfcls1yefwq8Ko/Ywi2ujrDs99s5YEP1hEfE8n9Fw/hspGZOixFIJUVwBd/sWP5jLsLairsUMq1lbbdf22VD8uqIDIaTv4ZpPQJ9l+kWsLgi+HdO2xfkM6Dgx1NyGgTA+KFqty95fxy3koWbi7kzGPT+fPkIaQn6YB1AffpH6C6HCb+ReuP1UEDJ8F7v7QXnDUpNNCk4AfGGOYtyeXed9ZgjOEvk4/j0pHd9EJyMOxaCcueh9E3a0JQh0pIhd7jbFI4c5ZWITl03IQWll9awY3PLeFXr61kcNdkPrj9VC4blakJIRiMsePxxHe09cZKuRs82Q7BvWNZsCMJGVpSaEHvrtzF7978gfKqWmadP5DrTu6p1w6Cae182PY1nPc37UOgPDv2PHgnxpYWuo0IdjQhQUsKLWBfeRUzXvqeW/67jO6d2vHujFO4fmwvTQjBVF1hWxulD4Th1wU7GhWq4jvY5sWrX7d9UJSWFI7WZ+vzmfnaSgrLqvjFWf24eVwfnQYzFCx6FPZth2vegkj9mqtGDL7YToK0fSH0HBPsaIJOfy3NtL+yhj++u5aXvttOv4xEnr52FIO7ar+DkFCyy47Q2f88eyFRqcb0n2gn8ln1miYFtPqoWb7bUsSEh75k7uLt/OTU3sy/dawmhFDyyb22n8HZfwh2JKo1iEmw80usedMOcugP1RV2gp/CTf55/xakSeEIVFTX8qd313D5EwsRhFd+chJ3nTtARzQNJTuWwor/2iao2slM+WrwZCgvtFOV+sMX99vb3KvsdKwhTJOCj3bsO8CPHvmaJ7/awpUndOf9205hVM9OwQ5LuapvgpqQBqf+MtjRqNak73iITbZjIbW0HUvhfw/Z+SMK1sH7of3d1KTgo5cX57CpoIxnp47iTxcNISFWL8eEnFWvQc63cMb/BXbSFtX6RcfBsefD2rftMCctpbrCTs+a1AWuegVOuQO+/w+seLnl9tHCNCn4aENeKT1SEhjXPwxnQ9u3HV7/CTyYBbtXBTsaz6rK7XDWnYfA8VcHOxrVGg2eDJXFdma4lvLFA7Z08KOHIa49jPsNdD8Z3vk5FGS33H5akCYFH63PK6VfRphNgFNeBAt+C4+MtLNU1VbBq1Ohan+wIzvcNw9DyQ47IXuwJ3FRrVPv0yC+ky1xtoQdS+F//7QnKVnj7bLIKJj8lC2ZzLvOzu0dYjQp+KCyppZtheX0y0gKdiiBUV1h60AfHgYLH4Uhl8CMZXD5C3ZSkvdCrE60OBe+/icMvFCbFKrmi4y2g+Stf//oT3xqKg9WG51z36Hr2neFi56A/NXwwcyj248faFLwweaC/dTWGbLaelKoq4XlL8EjI2xVTOaJcPP/4MLH7KxZvU61YwgtfxFWzA12tAd9fLedCP6se4MdiWrtBk+2I+pmf3B07/P5/U610UO22shd1ngYczssfRZ+CK3ZAzQp+CA7rxSg7VYfGQMbPoZ/nwpvTrcTrl/7Nlw1DzIGHbrtab+GHmPhnTtsqSHYcr6DH+bZeQ469gh2NKq163EyJHY+ulZIh1QbneV9uzN+Z0+83r4tpPovaFLwwYa8MiIjhF6pCcEOpeXt/B6enwQvToaqMrhkDtz4qS0VeBIRCZOfdKkTrQhouIeoq4P3f21/xGN/Hrw4VNsREQmDLoINH0JFM6aLr6mEN2+x38mz/9T4tpHR9vcWGQ3zrg3ub8mFJgUfrM8rpVdqArFRbegC5t6t8OoN8MQ4yFtlL9DestgWnyOa+FokHwMXPm5f9+FvAxGtZytfhp3LYPzdENtGS3Eq8AZPto0q1r175K/94gEoWAsXPGwH22tK+272t7T7h+D+llxoUvDBhrbU8mh/oe3g9chI+6U/5U6YsRxGT7eT1vuq39m2ymbxU7D6Tf/F601lmb2W0HUEHHd54Pev2q5uI6F99yNvhbRjmW3wMKyJaiPYfofmAAAbT0lEQVR3/SfASbcG77fkRpNCEyqqa9lWVE5Weiu/yFxZCl/9zbYo+vZxGHYlzPgezjyKjl5nzIKuI2H+z2zJI5C+/geU7YYJ9zddslHqSIjYkVM3fWZPonxR39ooMQPOaaLayJPxdx/8LRVtPvLXtyD9NTVhY34ZxtB6m6MWbYEPfgN/H2gHius5Fm5eaIu3yV2O7r2jYmydKAKvXm8ntw+Evdvgm0dgyKWQeUJg9qnCy+DJYGph7Vu+bV9fbfSjh3yrNnIXGQ2XPmMT0rzrWrZX9RHSpNCE+pZH/Tu3ouojY2Dz5/DSFHj4ePju35B1Ntz4CUx5CdKPbbl9dewBkx6xLS4+uafl3rcxH80CibBnV0r5Q+chkJLlWyukhmqjq2y1anN16A4X/gt2rYAP/6/573OUdACfJmTnlREdKfRIaQUtj6rK7cXXb/9tz1rapcKpd8LIG46+VNCYgZNg1I2wcLZttdTvHP/ta+v/7BDH4+6yF+mU8gcR22nz8/vt/Bzefj8N1Ubph3dSa45jz4PRP4VFj9lS/cALjv49j5CWFJqwIa+U3qmJRIfybGr7cuzZ898HwDu32670kx6Dn6+2baH9mRDqnf0nyBgCb0yH4h3+2Uddre0BmtwNTp7hn30oVW/QxYCxJyHefPEXp9rIx9ZGvhh/DxwzHN66NfDX6tCk0KTs/FKyQrHlkTGw7Rt4+cfw0HG2jr33aTD1ffjJV3D8VbYvQaBEx9k60ZpKeO1G/0xWsvxF2L0SzroHYtq1/Psr5Sqtn61G8tYKaccy2+DhaKuN3EXF2N8SwLypgbtW59Ck0Ijyqhpyig6E1kXm6gr4/kXb+/iZibDlS3vWfNtKuOx52yNTJDixpWbB+X+H7d/YC28tqXiHvVCeeaK9CKhUIAyeDLmLDz9jr6mEt25puWojdx17wqTZth/Ox3e3/Ps3QpNCIzbklQEh0vKoshQ+/SP8YxC89VOorbYtHe5Ya8+cO2QGO0Jr6BX2zOnLB2FzC8xitfN7eO0mWxqqKLZNUIOV9FT4GXSxvV/9xqHLv3wQ8tc0v7WRLwZeACdMg0WPwrr3/LMPDzQpNCJkxjyqqbItib78q22Cec18+OlCGHFdaFajnPugLTW8fhOU5R/56+tqYc18mDPR9rhe/x6Muglu+Ra6Dm/xcJXyqmMP6Dbq0Cqknd/DV3+HoVf6t1EFwNl/hC5D4c2b7bwmAaBJoREb8suIiYoIbssjY2yHlq1fwUWP2yalvU8L7bPlmAS45Bl7Zv/GT+wYRb6oKLFDdT88DF75MZTk2qL5HWtg4v3Qqbd/41bKk8GT7TAUBdn2BK2+tdEEP1QbuYuKtb+lulrbF6i22u+71KTQiOy8UvqkJRIZEcQD8Gf3wcq5cPpvbdVMa9F5MEz4M2z61I4Y2ZiiLXbojb8PhAW/geSucNkL8LPv4aRbPA89rFSgDLwQEFj9Onz5F5dqo46B2X9KH9vZNHexPWnyM+2n0Ijs3aWc0KtT8AJY9oL9Eh5/deuciH7EVHsh/NM/2gvg3UcfXFffemrRY7Z6SCJs/e3om7WKSIWW5C62z8CSObB/T2CqjdwNvtiWEgac7/ddaVLworSimp3FFcGbWGfjx3ac9T5nwPn/DO3qIm9E7BnVzu/tiKzTv4KYRHvGtegx23MzvqMd9nrUTYHpT6FUcwy+2M6rnNQlMNVGngwNzMCPmhS82JAfxJZHu3+AV66F9AFw6XN2XJTWKq69HR/p6XPghYugdLcdyC61v012x10emhfLlXI18EI7S9qZvw9ctVGQeE0KInKpMWaeiPQyxmwJZFChYEOwWh4V74AXL7MH06vmNX8E01DSdYRtRfHBr6HPmXDho/a+NZZ+VHhq1wl+8mWwowiIxkoKdwHzgNeAsKvkzc4rIy46gsyOATyLrSiGFy+1M6Bd/4GdzKatGD0dhk3Ri8ZKhbjGkkKRiHwG9BKR+e4rjTGBH6kpgLLzSslKTyIiUC2PaqvhlWtgz3q46tXD50ZuCzQhKBXyGksK52JLCC8AfwtMOKEjO6+UMX1TA7MzY+xF5c2f24Hs+pwemP0qpZSbxpLC08aYH4vIk8aYZo1XICITgIeASOApY8z9buu7A88BHZxtZhpjAtef24viA9XklVQG7iLzF3+xg72dNtMOZKeUUkHSWOe1ESLSA7hKRDqKSCfXW1NvLCKRwKPARGAgMEVEBrpt9jvgFWPM8cAVwGPN+zNaVkAvMi//L3x+n237PG6m//enlFKNaKyk8DjwAdAbWAq4Vq4bZ3ljTgA2GmM2A4jIXGASsMbtfeqb17QHdvocuR+tb0gKfi4pbPrMDmHRe5xtz6+tcZRSQea1pGCMedgYMwCYY4zpbYzp5XLzZRCarkCOy/NcZ5mru4GrRSQXeA/4mac3EpFpIrJERJYUFBT4sOujsyGvjISYSLp2iPffTvJW2wvLqf3tkNdRMf7bl1JK+ajJsY+MMTeLyFgRmQogIqki0suH9/Z02mvcnk8BnjXGdMNe2H5BRA6LyRjzhDFmpDFmZFpamg+7PjrZeaX0zUhC/HXmXrLTNj2NSYCrXtFWOUqpkNFkj2YR+T0wEugPPAPEAP8BxjTx0lzAdZD/bhxePXQDMAHAGLNQROKAVKAZ4y23nOy8Mk7v75Z8Nn1mu7l36m2bi2YMtvep/Y7sLL+y1HZOqyi2s6TpPMNKqRDiyzAXFwHHA8sAjDE7RcSXyvbFQJZTqtiBvZB8pds224EzgWdFZAAQB/i/fqgRRfur2FNWSf/Obn/ipk+gOAdik+Dbx6HWmSIvIspWAWUMOjRZJHU+/BpBbbUdviJ/jS0hdDkuMH+UUkr5yJekUGWMMSJiAETEp8kFjDE1InIrsADb3HSOMWa1iNwLLDHGzAd+ATwpIj/HVi1dZ4xxr2IKqPqJdQ4bCK9oC6T0tYO61VZD4SbIW2WvDeSttiN+/vDKwe3jOx2aJDIG2VEWN30CFzwCfccH8K9SSinf+JIUXhGRfwMdROQm4HrgSV/e3Olz8J7bslkuj9fQdDVUQHltjlq0+eAkL5HRkH6svQ255OA2B/ZC3honUTgJY9lzUF1+cJtTfwnDr/HzX6GUUs3TZFIwxvxVRM4CSrDXFWYZYz7ye2RBkp1XRlJsFJ2T4w4urKuzJYU+ZzT+4viO0HOMvbm+du8WmyBMrTNhh1JKhSZfh85eCcQ6j1f4KZaQkJ1XSlZG4qEtj0p3Qc2B5k0HGRFhZ05K6dNyQSqllJ802SRVRC4DvgMuBS4DvhWRSxp/VetkjCE7r/Twi8xFm+29zhGslGrjfCkp/BYYZYzJBxCRNOBj4FV/BhYMe8qq2FteTVa6JgWlVHhqsqQARNQnBEehj69rdTZ4G96iaBNExmifAqVUm+dLSeEDEVkAvOQ8vxx4338hBU92Yy2POvaEiMjAB6WUUgHkS+ujX4rIxcBY7NAVTxhj3vB7ZEGQnV9Gh3bRpCXFHrqiaItWHSmlwoIvw1z0At4zxrzuPI8XkZ7GmK3+Di7QsneX0i/dbcwjY2xJoddpwQtMKaUCxJdrA/OAOpfntc6yNqW+5VGWe9VR6W7b+ayTL2MAKqVU6+ZLUogyxlTVP3Eet7lxnvNLKympqPFwkVlbHimlwocvSaFARC6ofyIik4A9/gspOLK9tjzSpKCUCh++tD6aDrwoIrOd57nAj/0XUnCs391Iy6OIaGif6eFVSinVtvjS+mgTMFpEEgExxpT6P6zA25BXRkpCDCmJ7i2PNkHHHhDp64ggSinVevl8pDPGlPkzkGDLzvdwkRkOHR1VKaXauDbZM/lIGWPYmFd2+PUEY7SPglIqrGhSAHYVV1Ba6aHl0f4CqCqDTjrCqVIqPPgySmo7Efk/EXnSeZ4lIuf7P7TAWe+t5VHhJnuvJQWlVJjwpaTwDFAJnOQ8zwX+6LeIgqDR2dZAO64ppcKGL0mhjzHmL0A1gDHmAHYMpDYjO6+MtKRYOrRz65NXtBkkEjp0D05gSikVYL4khSoRiQcMgIj0wZYc2owNeaX0d686ApfmqNGBD0oppYLAl6Twe+ADIFNEXgQ+AX7l16gCqK7OkJ1Xps1RlVIK3zqvfSQiy4DR2Gqj24wxbWaYix37DnCgutZ7c9TME4MTmFJKBYEvrY8uAmqMMe8aY94BakTkQv+HFhheJ9YpL4TKEi0pKKXCik/VR8aY4vonxph92CqlNiE7z3bUzvLaHFX7KCilwodPczR7WNZmBgLakFdKl/ZxJMe5XUzW0VGVUmHIl6SwRET+LiJ9RKS3iPwDWOrvwAJlfV7p4aUEcJqjRmhzVKVUWPElKfwMqAJexs64VgHc4s+gAqW2zrAxv4x+6V5aHnXoDlFtbj4hpZTyypfWR/uBmQGIJeByisqprKk7vOUR2D4KWnWklAozXpOCiPzTGHO7iLyN03HNlTHmAg8va1UaWh519tActXAzHHdpEKJSSqngaayk8IJz/9dABBIM9Ukhy7366MBeqCzWkoJSKux4TQrGmKXO/RcikuY8LghUYIGQnVdG1w7xJMS6fQwNLY+0OapSKrx4vdAs1t0isgdYB2SLSIGIzApceP6VnVd6eKc10CGzlVJhq7HWR7cDY4BRxpgUY0xH4ERgjIj8PCDR+VFNbR2bC/Yffj0BnJKC2MHwlFIqjDSWFK4BphhjttQvMMZsBq521rVqWwvLqaqto1+6l6TQPhOiYgMfmFJKBVFjSSHa08B3znWFVj+W9AZvs62BTQopWnWklAo/jSWFqmauaxWy88oQgb4eO65pHwWlVHhqrEnqUBEp8bBcgDg/xRMw2fmlZHZsR3xM5KEryotsk1RNCkqpMNRYk9RIb+t8JSITgIeASOApY8z9buv/AZzuPG0HpBtjOhztfn2xIa/Uc9XRXucSiiYFpVQY8ttopyISCTwKnAXkAotFZL4xZk39NsaYn7ts/zPgeH/F46qqxrY8Gj8g4/CVhdpHQSkVvnwZEK+5TgA2GmM2G2OqgLnApEa2nwK85Md4Gmwt3E9NnfF+kRmBjj0DEYpSSoUUfyaFrkCOy/NcZ9lhRKQH0Av41I/xNGgY3sLbvMzJXSG61V82UUqpI+bPpCAelh02sJ7jCuBVY0ytxzcSmSYiS0RkSUHB0Y+0kZ1XRoRAnzQvSaFTr6Peh1JKtUb+TAq5QKbL827ATi/bXkEjVUfGmCeMMSONMSPT0tKOOrDs3aX0TEkgLtrDtfSiTZCi1xOUUuHJn0lhMZAlIr1EJAZ74J/vvpGI9Ac6Agv9GMshsvNLPVcdHdgH5YXa8kgpFbb8lhSMMTXArcACYC3wijFmtYjcKyKuczFMAeYaY7xVLbWoyppathWWa3NUpZTywG9NUgGMMe8B77ktm+X2/G5/xuBuc8F+ahtteYQ2R1VKhS1/Vh+FpOzGxjyq76OgzVGVUmEqLJNCVITQKzXh8JVFmyHpGIhpF/jAlFIqBIRhUiijZ2oCMVEe/vSizXo9QSkV1sIuKWzwNtsa6JDZSqmwF1ZJoaK6lm1FXloeVZTA/nwtKSilwlpYJYWN+WUY4+UiszZHVUqp8EoKB1seeRneAjQpKKXCWpglhTKiI4UeKR5aHhVusveaFJRSYSysksKGvFL6pCUSHemp5dEWSOwMMR4ShlJKhYmwSgp2zCMP1xNAm6MqpRRhlBT2V9aQU3SAfumNNEfVpKCUCnNhkxQ25pcBeC4pVJZB2W7to6CUCnthkxQabXmkzVGVUgoIo6QAkJWe6LnlkTZHVUopwM9DZ4eSS0dmcunITM8rNSkopRQQZiUFrwo3QUI6xHppmaSUUmFCkwLYPgpaSlBKKU0KgDZHVUophyaFqnIo3anNUZVSCk0K2hxVKaVcaFLQlkdKKdVAk4ImBaWUaqBJoXATtEuFuPbBjkQppYJOk4K2PFJKqQaaFLSPglJKNQjvpFB9AEpyNSkopZQjvJPC3q32PqVPUMNQSqlQEd5JoaHlUa/gxqGUUiFCkwJo9ZFSSjk0KcR3tDellFJhnhQKN0EnvZ6glFL1wjspaHNUpZQ6RPgmhZpKKM7RpKCUUi7CNyns3QYYbY6qlFIuwjcpFG2y91pSUEqpBmGcFLQ5qlJKuQvvpBDXXpujKqWUi/BOCp36gEiwI1FKqZDh16QgIhNEZL2IbBSRmV62uUxE1ojIahH5rz/jOUThJq06UkopN1H+emMRiQQeBc4CcoHFIjLfGLPGZZss4C5gjDFmr4ik+yueQ9RU2eaox10ekN0ppVRr4c+SwgnARmPMZmNMFTAXmOS2zU3Ao8aYvQDGmHw/xnPQvu1g6rSkoJRSbvyZFLoCOS7Pc51lrvoB/UTkfyKySEQmeHojEZkmIktEZElBQcHRR1bfHFX7KCil1CH8mRQ8XcE1bs+jgCxgHDAFeEpEOhz2ImOeMMaMNMaMTEtLO/rItDmqUkp55M+kkAtkujzvBuz0sM1bxphqY8wWYD02SfhX0WaITYZ2KX7flVJKtSb+TAqLgSwR6SUiMcAVwHy3bd4ETgcQkVRsddJmP8ZkFW22E+toc1SllDqE35KCMaYGuBVYAKwFXjHGrBaRe0XkAmezBUChiKwBPgN+aYwp9FdMDXTIbKWU8shvTVIBjDHvAe+5LZvl8tgAdzi3wKittq2PBk8O2C6VUqq1CL8ezfu2g6nVi8xKKeVB+CWFoi32XpujKqXUYcIwKeiQ2Uop5U0YJoXNEJMICS3Q30EppdqY8EwK2hxVKaU8CtOkoNcTlFLKk/BKCrU1sHerXk9QSikvwispFOdAXY0mBaWU8iK8koIOhKeUUo0Kz6SgfRSUUsqj8EsK0e0gMSPYkSilVEgKv6TQqbc2R1VKKS/CMCn0CnYUSikVssInKdTVOs1R9XqCUkp5Ez5JoTgXaqu05ZFSSjUifJKCNkdVSqkmaVJQSinVIHySQlJn6H8eJHUJdiRKKRWy/DodZ0g59jx7U0op5VX4lBSUUko1SZOCUkqpBpoUlFJKNdCkoJRSqoEmBaWUUg00KSillGqgSUEppVQDTQpKKaUaiDEm2DEcEREpALY18+WpwJ4WDKelaXxHR+M7eqEeo8bXfD2MMWlNbdTqksLREJElxpiRwY7DG43v6Gh8Ry/UY9T4/E+rj5RSSjXQpKCUUqpBuCWFJ4IdQBM0vqOj8R29UI9R4/OzsLqmoJRSqnHhVlJQSinVCE0KSimlGrTJpCAiE0RkvYhsFJGZHtbHisjLzvpvRaRnAGPLFJHPRGStiKwWkds8bDNORIpFZLlzmxWo+Jz9bxWRH5x9L/GwXkTkYefzWykiwwMYW3+Xz2W5iJSIyO1u2wT88xOROSKSLyKrXJZ1EpGPRGSDc9/Ry2uvdbbZICLXBii2B0VknfP/e0NEOnh5baPfBT/HeLeI7HD5P57r5bWN/t79GN/LLrFtFZHlXl4bkM+wxRhj2tQNiAQ2Ab2BGGAFMNBtm58CjzuPrwBeDmB8XYDhzuMkINtDfOOAd4L4GW4FUhtZfy7wPiDAaODbIP6vd2M75QT18wNOBYYDq1yW/QWY6TyeCTzg4XWdgM3OfUfncccAxHY2EOU8fsBTbL58F/wc493AnT58Bxr9vfsrPrf1fwNmBfMzbKlbWywpnABsNMZsNsZUAXOBSW7bTAKecx6/CpwpIhKI4Iwxu4wxy5zHpcBaoGsg9t2CJgHPG2sR0EFEgjH59ZnAJmNMc3u4txhjzJdAkdti1+/Zc8CFHl56DvCRMabIGLMX+AiY4O/YjDEfGmNqnKeLgG4tuc8j5eXz84Uvv/ej1lh8zrHjMuCllt5vMLTFpNAVyHF5nsvhB92GbZwfRjGQEpDoXDjVVscD33pYfZKIrBCR90VkUEADAwN8KCJLRWSah/W+fMaBcAXef4jB/PzqZRhjdoE9GQDSPWwTCp/l9diSnydNfRf87VanimuOl+q3UPj8TgHyjDEbvKwP9md4RNpiUvB0xu/e7taXbfxKRBKB14DbjTElbquXYatEhgKPAG8GMjZgjDFmODARuEVETnVbHwqfXwxwATDPw+pgf35HIqifpYj8FqgBXvSySVPfBX/6F9AHGAbswlbRuAv6dxGYQuOlhGB+hkesLSaFXCDT5Xk3YKe3bUQkCmhP84quzSIi0diE8KIx5nX39caYEmNMmfP4PSBaRFIDFZ8xZqdznw+8gS2iu/LlM/a3icAyY0ye+4pgf34u8uqr1Zz7fA/bBO2zdC5qnw9cZZzKb3c+fBf8xhiTZ4ypNcbUAU962XdQv4vO8eNi4GVv2wTzM2yOtpgUFgNZItLLOZu8Apjvts18oL6VxyXAp95+FC3NqX98GlhrjPm7l20611/jEJETsP+nwgDFlyAiSfWPsRckV7ltNh+4xmmFNBoorq8mCSCvZ2fB/PzcuH7PrgXe8rDNAuBsEenoVI+c7SzzKxGZAPwauMAYU+5lG1++C/6M0fU61UVe9u3L792fxgPrjDG5nlYG+zNslmBf6fbHDds6JhvbKuG3zrJ7sT8AgDhstcNG4DugdwBjG4st3q4Elju3c4HpwHRnm1uB1diWFIuAkwMYX29nvyucGOo/P9f4BHjU+Xx/AEYG+P/bDnuQb++yLKifHzZB7QKqsWevN2CvU30CbHDuOznbjgSecnnt9c53cSMwNUCxbcTWxdd/B+tb4x0DvNfYdyGAn98LzvdrJfZA38U9Ruf5Yb/3QMTnLH+2/nvnsm1QPsOWuukwF0oppRq0xeojpZRSzaRJQSmlVANNCkoppRpoUlBKKdVAk4JSSqkGmhSUciMitW4jsbbYyJsi0tN1pE2lQk1UsANQKgQdMMYMC3YQSgWDlhSU8pEzLv4DIvKdc+vrLO8hIp84A7d9IiLdneUZzlwFK5zbyc5bRYrIk2Ln0/hQROKD9kcp5UaTglKHi3erPrrcZV2JMeYEYDbwT2fZbOxQ4sdhB5Z72Fn+MPCFsQPzDcf2aAXIAh41xgwC9gGT/fz3KOUz7dGslBsRKTPGJHpYvhU4wxiz2RnUcLcxJkVE9mCHYKh2lu8yxqSKSAHQzRhT6fIePbHzJ2Q5z38NRBtj/uj/v0yppmlJQakjY7w89raNJ5Uuj2vRa3sqhGhSUOrIXO5yv9B5/A12dE6Aq4CvncefADcDiEikiCQHKkilmkvPUJQ6XLzbJOwfGGPqm6XGisi32BOqKc6yGcAcEfklUABMdZbfBjwhIjdgSwQ3Y0faVCpk6TUFpXzkXFMYaYzZE+xYlPIXrT5SSinVQEsKSimlGmhJQSmlVANNCkoppRpoUlBKKdVAk4JSSqkGmhSUUko1+H9L2FzeX77Q4gAAAABJRU5ErkJggg==",
326
  "text/plain": [
327
  "<Figure size 432x288 with 1 Axes>"
328
  ]
 
362
  "name": "python",
363
  "nbconvert_exporter": "python",
364
  "pygments_lexer": "ipython3",
365
+ "version": "3.9.19"
366
  }
367
  },
368
  "nbformat": 4,
{preds β†’ outputs/preds}/0_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/100_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/101_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/102_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/103_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/104_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/105_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/106_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/107_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/108_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/109_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/10_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/110_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/111_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/112_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/113_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/114_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/115_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/116_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/117_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/118_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/119_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/11_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/120_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/121_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/122_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/123_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/124_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/125_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/126_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/127_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/128_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/129_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/12_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/130_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/131_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/132_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/133_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/134_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/135_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/136_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/137_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/138_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/139_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/13_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/140_pred.png RENAMED
File without changes
{preds β†’ outputs/preds}/141_pred.png RENAMED
File without changes