From 8048f0bd3ad0b709d43cb8738a24f49be02a848d Mon Sep 17 00:00:00 2001
From: ashwinmaran <amaran@wisc.edu>
Date: Tue, 3 Oct 2023 20:17:27 -0500
Subject: [PATCH] add lab-p5 and p5

---
 lab-p5/README.md               |   90 +
 lab-p5/hurricanes.csv          |  555 +++++
 lab-p5/images/README.md        |    3 +
 lab-p5/images/table.png        |  Bin 0 -> 41014 bytes
 lab-p5/lab-p5.ipynb            | 3502 ++++++++++++++++++++++++++++++++
 lab-p5/project.py              |   49 +
 lab-p5/public_tests.py         |  840 ++++++++
 p5/README.md                   |   48 +
 p5/gen_csv.ipynb               | 1180 +++++++++++
 p5/hurricanes.csv              |  555 +++++
 p5/images/README.md            |    3 +
 p5/images/add_group_member.png |  Bin 0 -> 160694 bytes
 p5/images/gradescope.png       |  Bin 0 -> 61912 bytes
 p5/images/summary.png          |  Bin 0 -> 20543 bytes
 p5/images/table.PNG            |  Bin 0 -> 13846 bytes
 p5/p5.ipynb                    | 2546 +++++++++++++++++++++++
 p5/project.py                  |   49 +
 p5/public_tests.py             |  808 ++++++++
 p5/rubric.md                   |  139 ++
 19 files changed, 10367 insertions(+)
 create mode 100644 lab-p5/README.md
 create mode 100644 lab-p5/hurricanes.csv
 create mode 100644 lab-p5/images/README.md
 create mode 100644 lab-p5/images/table.png
 create mode 100644 lab-p5/lab-p5.ipynb
 create mode 100644 lab-p5/project.py
 create mode 100644 lab-p5/public_tests.py
 create mode 100644 p5/README.md
 create mode 100644 p5/gen_csv.ipynb
 create mode 100644 p5/hurricanes.csv
 create mode 100644 p5/images/README.md
 create mode 100644 p5/images/add_group_member.png
 create mode 100644 p5/images/gradescope.png
 create mode 100644 p5/images/summary.png
 create mode 100644 p5/images/table.PNG
 create mode 100644 p5/p5.ipynb
 create mode 100644 p5/project.py
 create mode 100644 p5/public_tests.py
 create mode 100644 p5/rubric.md

diff --git a/lab-p5/README.md b/lab-p5/README.md
new file mode 100644
index 0000000..e503061
--- /dev/null
+++ b/lab-p5/README.md
@@ -0,0 +1,90 @@
+# Lab P5: Looping Patterns and Hurricane API
+
+Let us start Lab-P5! This lab introduces you to some fundamental looping patterns that will help solve P5. It is
+designed to help you become comfortable using the functions in `project.py`. You will also
+learn basic methods to manipulate strings needed for P5.
+
+## Corrections and clarifications
+
+None yet.
+
+**Find any issues?** Report to us:
+
+- Ashwin Maran <amaran@wisc.edu>
+
+----------------------------------
+## Learning Objectives:
+In this lab you will practice:
+- inspecting the `project.py` file,
+- iterating through data using a `for` loop,
+- writing algorithms to search, filter, count, and find min / max,
+- writing algorithms that store/use indices
+- writing helper functions,
+- writing algorithms that manipulate strings.
+----------------------------------
+
+## Introduction:
+In this lab, you will look at hurricane data and learn techniques to extract specific data. Data
+scientists use such data when studying the effects of climate change.
+
+According to the [Center for Climate and Energy Solutions](https://www.c2es.org/content/hurricanes-and-climate-change/),
+"Climate change is worsening
+hurricane impacts in the United States by increasing the intensity and decreasing the speed at
+which they travel. Scientists are currently uncertain whether there will be a change in the number
+of hurricanes, but they are certain that the intensity and severity of hurricanes will continue to
+increase. These trends make hurricanes far more costly in terms of physical damage and deaths."
+By tracking past hurricanes' speed, number of fatalities, and property damage, scientists can prepare for
+future ones.
+
+------------------------------
+
+## Note on Academic Misconduct
+
+You may do these lab exercises only with your project partner; you are not allowed to start working on Lab-P5 with one person, then do the project with a different partner. Now may be a good time to review [our course policies](https://cs220.cs.wisc.edu/f23/syllabus.html).
+
+------------------------------
+
+## Project partner
+
+We strongly recommend students find a project partner. Pair programming is a great way to learn from a fellow student. Project difficulty increases exponentially in this course. Finding a project partner early on during the semester is a good idea.
+
+If you are still looking for a project partner, take a moment now to ask around the room if anyone would like to partner with you on this project. Then you can work with them on this lab as well as the project.
+
+----------------------------------
+
+## Segment 1: Setup
+
+Create a `lab-p5` directory and download the following files into the `lab-p5` directory:
+
+* `hurricanes.csv`
+* `project.py`
+* `lab-p5.ipynb`
+* `public_tests.py`
+
+Once you have downloaded the files, open a terminal and navigate to your `lab-p5` directory.
+Run `ls` to make sure the above files are available.
+
+**Note:** If you accidentally downloaded the file as a `.txt` instead of `.csv` (or `.cvs` or `.csv.txt`)
+(say `hurricanes.cvs`), you can execute `mv hurricanes.cvs hurricanes.csv` on a
+Terminal/PowerShell window. Recall that the `mv` (move) command lets you rename a source file
+(first argument, example: `hurricanes.cvs`) to the destination file (second argument, example:
+`hurricanes.csv`).
+
+----------------------------------
+## Segment 2: Learning the API
+
+You will be finishing the rest of your lab on `lab-p5.ipynb`. Run the command `jupyter notebook` from your Terminal/PowerShell window.
+Remember not to close this
+Terminal/PowerShell window while Jupyter is running, and open a new Terminal/PowerShell
+window if necessary.
+
+**Note**: For P5, you will be working on `p5.ipynb`, which is very similar to `lab-p5.ipynb`.
+It is strongly recommended that you finish this notebook before moving on to P5,
+so you can ask your TA/PM any questions about the notebook that may arise.
+
+**Note**: Unlike `p5.ipynb`, you do **not** have to submit `lab-p5.ipynb`. This notebook is solely
+for your practice and preparation for P5.
+
+------------------------------
+
+You can now get started with [P5]((https://git.doit.wisc.edu/cdis/cs/courses/cs220/cs220-f23-projects/-/tree/main/p5)). **You may use any helper functions created here in project P5**. Remember to only work with P5 with your partner from this point on. Have fun!
diff --git a/lab-p5/hurricanes.csv b/lab-p5/hurricanes.csv
new file mode 100644
index 0000000..fb683b4
--- /dev/null
+++ b/lab-p5/hurricanes.csv
@@ -0,0 +1,555 @@
+name,formed,dissipated,mph,damage,deaths
+1804 New England hurricane,10/04/1804,10/11/1804,110,100K,16
+1806 Great Coastal hurricane,08/17/1806,08/25/1806,110,171K,24
+1812 Louisiana hurricane,08/15/1812,08/20/1812,115,6M,100
+1821 Norfolk and Long Island hurricane,09/01/1821,09/04/1821,130,200K,22
+1848 Tampa Bay hurricane,09/23/1848,09/28/1848,130,20K,0
+1867 San Narciso hurricane,10/27/1867,10/31/1867,125,1M,811
+1875 Indianola hurricane,09/08/1875,09/18/1875,115,4M,800
+Gale of 1878,10/18/1878,10/23/1878,105,2M,71
+1886 Indianola hurricane,08/12/1886,08/21/1886,150,200K,74
+1887 Halloween tropical storm,10/29/1887,11/06/1887,70,7K,2
+1891 Martinique hurricane,08/18/1891,08/25/1891,125,10M,700
+1893 Sea Islands hurricane,08/15/1893,09/02/1893,120,1M,2000
+1893 Cheniere Caminada hurricane,09/27/1893,10/05/1893,130,5M,2000
+1894 Greater Antilles hurricane,09/18/1894,10/01/1894,120,5.09M,227
+1896 Cedar Keys hurricane,09/22/1896,09/30/1896,125,338M,202
+1896 East Coast hurricane,10/07/1896,10/13/1896,100,500K,4
+1898 Windward Islands hurricane,09/05/1898,09/19/1898,110,2.5M,392
+1898 Georgia hurricane,09/25/1898,10/06/1898,130,1.5M,179
+1899 Carrabelle hurricane,07/28/1899,08/02/1899,100,1M,9
+1899 San Ciriaco hurricane,08/03/1899,09/12/1899,150,20M,3855
+1900 Galveston hurricane,08/27/1900,09/15/1900,145,1.25B,8000
+1901 Louisiana hurricane,08/02/1901,08/18/1901,90,1M,15
+1903 Jamaica hurricane,08/06/1903,08/16/1903,120,10M,188
+1903 Florida hurricane,09/09/1903,09/16/1903,90,500K,14
+1903 New Jersey hurricane,09/12/1903,09/17/1903,100,8M,57
+1906 Mississippi hurricane,09/19/1906,09/29/1906,120,19221,134
+1906 Florida Keys hurricane,10/08/1906,10/23/1906,120,4.14M,240
+1909 Velasco hurricane,07/13/1909,07/22/1909,115,2M,41
+1909 Monterrey hurricane,08/20/1909,08/28/1909,120,50M,4000
+1909 Grand Isle hurricane,09/13/1909,09/22/1909,120,11M,400
+1909 Florida Keys hurricane,10/06/1909,10/13/1909,120,3M,34
+1909 Greater Antilles hurricane,11/08/1909,11/14/1909,105,10M,198
+1910 Cuba hurricane,10/09/1910,10/23/1910,150,1.25M,116
+1912 Jamaica hurricane,11/11/1912,11/22/1912,115,1.5M,105
+1915 Galveston hurricane,08/05/1915,08/23/1915,145,30M,405
+1915 New Orleans hurricane,09/21/1915,10/01/1915,145,13M,279
+1916 Gulf Coast hurricane,06/28/1916,07/10/1916,120,12.5M,34
+1916 Charleston hurricane,07/11/1916,07/15/1916,115,22M,84
+1916 Texas hurricane,08/12/1916,08/20/1916,130,11.8M,37
+1916 Virgin Islands hurricane,10/06/1916,10/15/1916,120,2M,41
+1916 Pensacola hurricane,10/09/1916,10/19/1916,110,100K,29
+1917 Nueva Gerona hurricane,09/20/1917,09/30/1917,150,2.17M,44
+1919 Florida Keys hurricane,09/02/1919,09/16/1919,150,22M,772
+1920 Louisiana hurricane,09/16/1920,09/23/1920,100,1.45M,1
+1921 Tampa Bay hurricane,10/20/1921,10/30/1921,140,10M,8
+1925 Florida tropical storm,11/27/1925,12/01/1925,65,3M,73
+1926 Nassau hurricane,07/22/1926,08/02/1926,140,7.85M,287
+1926 Louisiana hurricane,08/20/1926,08/27/1926,115,6M,25
+1926 Miami hurricane,09/11/1926,09/22/1926,150,100M,539
+1927 Nova Scotia hurricane,08/18/1927,08/29/1927,125,1.6M,192
+1928 Fort Pierce hurricane,08/03/1928,08/14/1928,105,235K,2
+1928 Haiti hurricane,08/07/1928,08/17/1928,90,2M,210
+1928 Okeechobee hurricane,09/06/1928,09/21/1928,160,1.7B,4112
+1929 Bahamas hurricane,09/22/1929,10/04/1929,155,9.31M,155
+1930 San Zenón hurricane,08/29/1930,09/17/1930,155,50M,8000
+1931 British Honduras hurricane,09/06/1931,09/13/1931,130,7.5M,2500
+1932 Freeport hurricane,08/12/1932,08/15/1932,150,7.5M,40
+1932 Florida–Alabama hurricane,08/26/1932,09/04/1932,85,229K,1
+1932 San Ciprián hurricane,09/25/1932,10/02/1932,145,35.8M,272
+1932 Cuba hurricane,10/30/1932,11/14/1932,175,40M,3103
+1933 Trinidad hurricane,06/24/1933,07/08/1933,110,7.2M,35
+1933 Florida–Mexico hurricane,07/24/1933,08/05/1933,90,67.8M,39
+1933 Chesapeake–Potomac hurricane,08/13/1933,08/28/1933,140,41.2M,47
+1933 Cuba–Brownsville hurricane,08/22/1933,09/05/1933,160,27.9M,179
+1933 Treasure Coast hurricane,08/31/1933,09/07/1933,140,3M,3
+1933 Outer Banks hurricane,09/08/1933,09/22/1933,140,4.75M,24
+1933 Tampico hurricane,09/16/1933,09/25/1933,160,5M,184
+1933 Cuba–Bahamas hurricane,10/01/1933,10/09/1933,125,1.1M,10
+1934 Central America hurricane,06/04/1934,06/21/1934,100,9.46M,506
+1935 Labor Day hurricane,08/29/1935,09/10/1935,185,100M,423
+1935 Cuba hurricane,09/23/1935,10/02/1935,140,14.5M,52
+1935 Jérémie hurricane,10/18/1935,10/27/1935,85,16M,2150
+1935 Yankee hurricane,10/30/1935,11/08/1935,105,5.5M,19
+1936 Mid,09/08/1936,09/25/1936,120,4.05M,2
+1938 New England hurricane,09/09/1938,09/23/1938,160,306M,682
+1940 Louisiana hurricane,08/03/1940,08/10/1940,100,10.8M,7
+1940 South Carolina hurricane,08/05/1940,08/15/1940,100,13M,50
+1940 New England hurricane,08/26/1940,09/03/1940,110,4.05M,7
+1941 Texas hurricane,09/16/1941,09/27/1941,125,7.5M,7
+1941 Florida hurricane,10/03/1941,10/13/1941,120,675K,10
+1942 Matagorda hurricane,08/21/1942,08/31/1942,115,26.5M,8
+1942 Belize hurricane,11/05/1942,11/11/1942,110,4M,9
+1943 Surprise Hurricane,07/25/1943,07/29/1943,105,17M,19
+1944 Great Atlantic hurricane,09/09/1944,09/16/1944,160,100M,400
+1944 Cuba–Florida hurricane,10/12/1944,10/24/1944,145,100M,318
+1945 Outer Banks hurricane,06/20/1945,07/04/1945,100,75K,1
+1945 Texas hurricane,08/24/1945,08/29/1945,115,20.1M,3
+1945 Homestead hurricane,09/12/1945,09/20/1945,130,60M,26
+1946 Florida hurricane,10/05/1946,10/14/1946,100,5.2M,5
+1947 Fort Lauderdale hurricane,09/04/1947,09/20/1947,145,110M,51
+1947 Florida–Georgia hurricane,10/09/1947,10/16/1947,105,42.7M,1
+1948 Bermuda–Newfoundland hurricane,09/04/1948,09/16/1948,130,400K,8
+September 1948 Florida hurricane,09/18/1948,09/26/1948,130,14M,13
+1948 Miami hurricane,10/03/1948,10/16/1948,125,12.5M,11
+1949 Florida hurricane,08/23/1949,08/31/1949,130,52M,2
+1949 Texas hurricane,09/27/1949,10/07/1949,110,6.7M,2
+Able,08/12/1950,08/24/1950,125,1.04M,11
+Baker,08/18/1950,09/01/1950,105,2.55M,38
+Dog,08/30/1950,09/18/1950,145,3M,31
+Easy,09/01/1950,09/09/1950,120,3.3M,2
+King,10/13/1950,10/20/1950,130,32M,11
+Able,05/15/1951,05/24/1951,90,0,0
+Charlie,08/12/1951,08/23/1951,130,75M,259
+How,09/28/1951,10/08/1951,100,2M,17
+1952 Groundhog Day tropical storm,02/03/1952,02/05/1952,70,0,0
+Able,08/18/1952,09/02/1952,100,2.75M,3
+Fox,10/20/1952,10/28/1952,145,10M,601
+Barbara,08/11/1953,08/16/1953,90,1.3M,9
+Carol,08/28/1953,09/08/1953,160,2M,5
+Florence,09/23/1953,09/26/1953,115,200K,0
+Alice,06/24/1954,06/26/1954,110,2M,153
+Carol,08/25/1954,09/01/1954,115,462M,72
+Edna,09/02/1954,09/15/1954,125,42.8M,29
+Hazel,10/05/1954,10/18/1954,130,382M,1191
+Alice,12/30/1954,01/06/1955,90,623K,0
+Connie,08/03/1955,08/15/1955,140,86M,77
+Diane,08/07/1955,08/23/1955,105,832M,184
+Ione,09/10/1955,09/21/1955,140,88M,7
+Hilda,09/10/1955,09/20/1955,120,120M,304
+Janet,09/21/1955,09/30/1955,175,65.8M,1023
+Betsy,08/09/1956,08/18/1956,120,50M,37
+Flossy,09/20/1956,10/03/1956,90,24.9M,15
+Greta,10/30/1956,11/06/1956,100,3.6M,1
+Audrey,06/25/1957,06/29/1957,125,150M,431
+Ella,08/30/1958,09/06/1958,110,200K,36
+Helene,09/21/1958,10/04/1958,150,11.4M,1
+Arlene,05/28/1959,05/31/1959,65,500K,1
+Cindy,07/05/1959,07/11/1959,75,75K,6
+Debra,07/23/1959,07/28/1959,85,7M,0
+Gracie,09/20/1959,10/02/1959,140,14M,22
+1960 Texas tropical storm,06/22/1960,06/29/1960,60,3.6M,18
+Abby,07/10/1960,07/16/1960,80,640K,6
+Brenda,07/28/1960,08/01/1960,70,5M,1
+Donna,08/29/1960,09/14/1960,145,980M,439
+Ethel,09/12/1960,09/17/1960,115,1.5M,1
+Anna,07/20/1961,07/24/1961,105,300K,1
+Carla,09/03/1961,09/17/1961,145,326M,43
+Debbie,09/06/1961,09/19/1961,90,50M,68
+Esther,09/10/1961,09/27/1961,160,6M,7
+Hattie,10/27/1961,11/01/1961,165,60.3M,319
+Alma,08/26/1962,08/30/1962,85,1M,1
+Daisy,09/29/1962,10/08/1962,105,1.1M,32
+Arlene,07/31/1963,08/11/1963,115,300K,0
+Cindy,09/16/1963,09/20/1963,65,12.5M,3
+Edith,09/23/1963,09/29/1963,100,46.6M,10
+Ginny,10/16/1963,10/29/1963,110,500K,3
+Abby,08/05/1964,08/08/1964,70,750K,0
+Cleo,08/21/1964,09/05/1964,150,187M,156
+Dora,08/28/1964,09/14/1964,130,280M,5
+Gladys,09/13/1964,09/24/1964,130,100K,1
+Hilda,09/28/1964,10/05/1964,140,126M,38
+Isbell,10/08/1964,10/19/1964,115,30M,7
+Betsy,08/27/1965,09/13/1965,140,1.42B,81
+Debbie,09/24/1965,09/30/1965,60,25M,0
+Alma,06/04/1966,06/14/1966,125,210M,93
+Inez,09/21/1966,10/11/1966,165,227M,1269
+Beulah,09/05/1967,09/22/1967,160,235M,59
+Doria,09/08/1967,09/21/1967,100,150K,3
+Abby,06/01/1968,06/13/1968,75,450K,6
+Gladys,10/13/1968,10/21/1968,100,18.7M,8
+Camille,08/14/1969,08/22/1969,175,1.42B,259
+Francelia,08/29/1969,09/04/1969,100,35.6M,271
+Martha,11/21/1969,11/25/1969,90,30M,5
+Becky,07/19/1970,07/23/1970,65,500K,1
+Celia,07/31/1970,08/05/1970,140,930M,28
+Dorothy,08/17/1970,08/23/1970,70,34M,51
+Felice,09/12/1970,09/17/1970,70,0,0
+1970 Caribbean–Azores hurricane,09/30/1970,10/22/1970,85,65.5M,22
+1970 Canada hurricane,10/12/1970,10/20/1970,105,1K,0
+Beth,08/10/1971,08/16/1971,85,5.1M,1
+Doria,08/20/1971,08/29/1971,65,148M,7
+Fern,09/03/1971,09/13/1971,90,30.2M,2
+Edith,09/05/1971,09/18/1971,160,25.4M,37
+Ginger,09/10/1971,10/07/1971,110,10M,1
+Irene–Olivia,09/11/1971,10/01/1971,115,1M,3
+Laura,11/12/1971,11/22/1971,70,0,1
+1972 Subtropical Storm Alpha,05/23/1972,05/29/1972,70,100K,2
+Agnes,06/14/1972,07/06/1972,85,2.1B,128
+Carrie,08/29/1972,09/05/1972,70,12.45M,4
+Delia,09/01/1973,09/07/1973,70,6M,2
+Fran,10/08/1973,10/12/1973,80,0,0
+1974 Subtropical Storm One,06/22/1974,06/27/1974,65,10M,3
+Alma,08/12/1974,08/15/1974,65,5M,51
+Carmen,08/29/1974,09/10/1974,150,162M,8
+1974 Subtropical Storm Four,10/04/1974,10/08/1974,50,600K,0
+Amy,06/27/1975,07/04/1975,70,0,1
+1975 Tropical Depression Six,07/28/1975,08/01/1975,35,8.8M,3
+Eloise,09/13/1975,09/24/1975,125,560M,80
+Belle,08/06/1976,08/15/1976,120,100M,3
+Anita,08/29/1977,09/04/1977,175,946M,11
+Babe,09/03/1977,09/09/1977,75,13M,0
+Amelia,07/30/1978,08/01/1978,50,110M,33
+Cora,08/07/1978,08/12/1978,90,0,1
+Debra,08/26/1978,08/29/1978,60,0,2
+Ella,08/30/1978,09/05/1978,140,0,0
+Greta–Olivia,09/13/1978,09/23/1978,130,26M,5
+1979 Tropical Depression One,06/11/1979,06/16/1979,35,27M,41
+Bob,07/09/1979,07/16/1979,75,20M,1
+Claudette,07/16/1979,07/29/1979,50,400M,2
+David,08/25/1979,09/08/1979,175,1.54B,2078
+Frederic,08/29/1979,09/15/1979,130,1.77B,12
+Elena,08/29/1979,09/02/1979,40,10M,2
+Henri,09/14/1979,09/24/1979,85,0,0
+Allen,07/31/1980,08/11/1980,190,1.57B,269
+Danielle,09/04/1980,09/07/1980,60,25M,3
+Jeanne,11/07/1980,11/16/1980,100,0,0
+Karl,11/25/1980,11/29/1980,85,0,0
+Arlene,05/06/1981,05/09/1981,60,0,0
+Dennis,08/07/1981,08/26/1981,80,28.5M,3
+1981 Tropical Depression Eight,08/26/1981,08/19/1981,35,56.2M,5
+Katrina,11/03/1982,11/08/1981,85,0,2
+Alberto,06/01/1982,06/06/1982,85,85M,23
+1982 Florida subtropical storm,06/18/1982,06/22/1982,70,10M,3
+Beryl,08/28/1982,09/06/1982,70,3M,3
+Chris,09/09/1982,09/13/1982,65,2M,0
+Alicia,08/15/1983,08/21/1983,115,3B,21
+Barry,08/23/1983,08/29/1983,80,0,0
+Diana,09/08/1984,09/16/1984,130,65.5M,3
+Fran,09/15/1984,09/20/1984,65,2.8M,32
+Isidore,09/25/1984,10/01/1984,60,1M,1
+Klaus,11/05/1984,11/16/1984,90,152M,2
+Lili,12/12/1984,12/24/1984,80,0,0
+Bob,07/21/1985,07/26/1985,75,20M,5
+Danny,08/12/1985,08/20/1985,90,100M,5
+Elena,08/28/1985,09/04/1985,125,1.3B,9
+Gloria,09/16/1985,10/04/1985,145,900M,14
+Juan,10/26/1985,11/03/1985,85,1.5B,12
+Kate,11/15/1985,11/23/1985,120,700M,15
+Bonnie,06/23/1986,06/28/1986,85,42M,5
+Charley,08/15/1986,08/30/1986,80,15M,15
+Danielle,09/07/1986,09/10/1986,60,10.5M,0
+Arlene,08/10/1987,08/23/1987,75,8K,0
+Emily,09/20/1987,09/26/1987,125,80.3M,3
+Floyd,10/09/1987,10/13/1987,75,500K,1
+1987 Tropical Depression Fourteen,10/31/1987,11/04/1987,35,1.8M,6
+Beryl,08/08/1988,08/10/1988,50,3M,1
+Chris,08/21/1988,08/30/1988,50,2.2M,6
+Florence,09/07/1988,09/11/1988,80,2.9M,1
+Gilbert,09/08/1988,09/19/1988,185,2.98B,318
+Joan–Miriam,10/10/1988,11/02/1988,70,2B,334
+Keith,11/17/1988,11/26/1988,70,7.3M,0
+Allison,06/24/1989,07/07/1989,50,560M,11
+Chantal,07/30/1989,08/03/1989,80,100M,13
+Dean,07/31/1989,08/08/1989,105,8.9M,0
+Gabrielle,08/30/1989,09/13/1989,145,0,9
+Hugo,09/10/1989,09/25/1989,160,11B,67
+Jerry,10/12/1989,10/16/1989,85,70M,3
+Bertha,07/24/1990,08/02/1990,80,3.91M,9
+Diana,08/04/1990,08/09/1990,100,90.7M,139
+Gustav,08/24/1990,09/03/1990,120,0,0
+Klaus,10/03/1990,10/09/1990,80,1M,11
+Marco,10/09/1990,10/13/1990,65,57M,12
+Bob,08/16/1991,08/29/1991,115,1.5B,17
+Grace,10/25/1991,10/30/1991,105,0,0
+1991 Perfect Storm,10/28/1991,11/02/1991,75,200M,13
+1992 Tropical Depression One,06/25/1992,06/26/1992,35,2.6M,4
+Andrew,08/16/1992,08/29/1992,175,27.3B,65
+Bonnie,09/17/1992,09/30/1992,110,0,1
+Arlene,06/18/1993,06/21/1993,40,60.8M,26
+Bret,08/04/1993,08/11/1993,60,35.7M,213
+Cindy,08/14/1993,08/17/1993,45,19M,4
+Emily,08/22/1993,09/06/1993,115,35M,3
+Gert,09/14/1993,09/26/1993,100,170M,116
+Alberto,06/30/1994,07/07/1994,65,1.03B,32
+Beryl,08/14/1994,08/19/1994,60,74.2M,5
+Debby,09/09/1994,09/11/1994,70,115M,9
+Florence,11/02/1994,11/08/1994,110,0,0
+Gordon,11/08/1994,11/21/1994,85,594M,1152
+Allison,06/03/1995,06/11/1995,75,1.7M,1
+Dean,07/28/1995,08/02/1995,45,500K,1
+Erin,07/31/1995,08/06/1995,100,700M,16
+Felix,08/08/1995,08/25/1995,140,3.63M,9
+Gabrielle,08/09/1995,08/12/1995,70,0,6
+Jerry,08/22/1995,08/28/1995,40,40M,6
+Luis,08/28/1995,09/12/1995,150,3.3B,19
+Marilyn,09/12/1995,09/30/1995,115,2.5B,13
+Opal,09/27/1995,10/06/1995,150,4.7B,63
+Roxanne,10/07/1995,10/21/1995,115,1.5B,29
+Tanya,10/27/1995,11/03/1995,85,0,1
+Arthur,06/17/1996,06/24/1996,45,1M,0
+Bertha,07/05/1996,07/18/1996,115,335M,12
+Cesar–Douglas,07/24/1996,08/06/1996,130,203M,113
+Edouard,08/19/1996,09/07/1996,145,20M,2
+Fran,08/23/1996,09/10/1996,120,5B,22
+Hortense,09/03/1996,09/16/1996,140,158M,39
+Josephine,10/04/1996,10/13/1996,70,130M,3
+Lili,10/14/1996,10/30/1996,115,662M,22
+Marco,11/16/1996,11/26/1996,75,8.2M,15
+Danny,07/16/1997,07/27/1997,80,100M,9
+Erika,09/03/1997,09/20/1997,125,10M,2
+Bonnie,08/19/1998,08/30/1998,115,1B,5
+Charley,08/21/1998,08/24/1998,70,50M,20
+Danielle,08/24/1998,09/08/1998,105,50K,0
+Earl,08/31/1998,09/08/1998,100,79M,3
+Frances,09/08/1998,09/13/1998,65,500M,1
+Georges,09/15/1998,10/01/1998,155,9.37B,604
+Hermine,09/17/1998,09/20/1998,45,85K,2
+Bret,08/18/1999,08/25/1999,145,15M,1
+Dennis,08/24/1999,09/09/1999,105,157M,6
+Floyd,09/07/1999,09/19/1999,155,6.5B,85
+Gert,09/11/1999,09/23/1999,150,1.9M,2
+Harvey,09/19/1999,09/22/1999,60,22.6M,0
+Irene,10/13/1999,10/24/1999,110,800M,3
+Jose,10/17/1999,10/25/1999,100,5M,3
+Katrina,10/28/1999,11/01/1999,40,9K,0
+Lenny,11/13/1999,11/23/1999,155,786M,17
+Alberto,08/03/2000,08/25/2000,125,0,0
+Beryl,08/13/2000,08/15/2000,50,27K,1
+Debby,08/19/2000,08/24/2000,85,735K,1
+Florence,09/10/2000,09/19/2000,80,0,3
+Gordon,09/14/2000,09/21/2000,80,10.8M,24
+Helene,09/15/2000,09/25/2000,70,16M,1
+Isaac,09/21/2000,10/04/2000,140,0,1
+Joyce,09/25/2000,10/02/2000,90,0,0
+Keith,09/28/2000,10/06/2000,140,319M,62
+Leslie,10/04/2000,10/12/2000,45,950M,3
+Allison,06/05/2001,06/20/2001,60,9B,41
+Barry,08/02/2001,08/08/2001,70,30M,2
+Chantal,08/14/2001,08/22/2001,70,4M,2
+Dean,08/22/2001,08/28/2001,70,7.7M,0
+Erin,09/01/2001,09/17/2001,120,0,0
+Gabrielle,09/11/2001,09/19/2001,80,230M,2
+Iris,10/04/2001,10/09/2001,145,250M,36
+Karen,10/12/2001,10/15/2001,80,1.4M,0
+Michelle,10/29/2001,11/06/2001,140,2.43B,48
+Arthur,07/14/2002,07/19/2002,60,0,1
+Bertha,08/04/2002,08/09/2002,40,200K,1
+Cristobal,08/05/2002,08/13/2002,50,0,3
+Fay,09/05/2002,09/11/2002,60,4.5M,0
+Gustav,09/08/2002,09/15/2002,100,340K,4
+Hanna,09/12/2002,09/15/2002,60,20M,3
+Isidore,09/14/2002,09/27/2002,125,1.28B,19
+Kyle,09/20/2002,10/14/2002,85,5M,1
+Lili,09/21/2002,10/04/2002,145,1.16B,15
+Ana,04/20/2003,04/27/2003,60,0,2
+Bill,06/29/2003,07/03/2003,60,50.5M,4
+Claudette,07/08/2003,07/17/2003,90,181M,3
+Erika,08/14/2003,08/20/2003,75,100K,2
+Fabian,08/27/2003,09/10/2003,145,300M,8
+Grace,08/30/2003,09/02/2003,40,113K,0
+Henri,09/03/2003,09/08/2003,60,19.6M,0
+Isabel,09/06/2003,09/20/2003,165,3.6B,51
+Juan,09/24/2003,09/29/2003,105,200M,8
+Kate,09/25/2003,10/10/2003,125,0,0
+Larry,10/01/2003,10/06/2003,65,53.6M,5
+Nicholas,10/13/2003,11/05/203,70,0,0
+Odette,12/04/2003,12/09/2003,65,8M,8
+Alex,07/31/2004,08/06/2004,120,7.5M,1
+Bonnie,08/03/2004,08/14/2004,65,1.27M,3
+Charley,08/09/2004,08/15/2004,150,16.9B,35
+Earl,08/13/2004,08/15/2004,50,0,1
+Frances,08/24/2004,09/10/2004,145,10.1B,50
+Gaston,08/27/2004,09/03/2004,75,130M,8
+Ivan,09/02/2004,09/25/2004,165,26.1B,124
+Jeanne,09/13/2004,09/29/2004,120,7.94B,3037
+Karl,09/16/2004,09/28/2004,145,0,0
+Matthew,10/08/2004,10/11/2004,45,305K,0
+Arlene,06/08/2005,06/14/2005,70,11.8M,2
+Bret,06/28/2005,06/30/2005,40,9.3M,3
+Cindy,07/03/2005,07/12/2005,75,71.5M,0
+Dennis,07/04/2005,07/18/2005,150,3.98B,88
+Emily,07/11/2005,07/21/2005,160,1.01B,22
+Gert,07/23/2005,07/25/2005,45,6M,1
+Irene,08/04/2005,08/18/2005,105,0,1
+Jose,08/22/2005,08/23/2005,60,45M,16
+Katrina,08/23/2005,08/31/2005,175,125B,1392
+Maria,09/01/2005,09/14/2005,115,3.1M,1
+Nate,09/05/2005,09/13/2005,90,0,2
+Ophelia,09/06/2005,09/23/2005,85,70M,3
+Rita,09/18/2005,09/26/2005,180,18.5B,120
+Stan,10/01/2005,10/05/2005,80,3.96B,1668
+Tammy,10/05/2005,10/06/2005,50,30M,10
+Vince,10/08/2005,10/11/2005,75,0,0
+Wilma,10/15/2005,10/27/2005,185,22.4B,52
+Beta,10/26/2005,10/31/2005,115,15.5M,9
+Gamma,11/14/2005,11/22/2005,50,18M,39
+Delta,11/22/2005,11/30/2005,70,364M,7
+Epsilon,11/29/2005,12/10/2005,85,0,0
+Zeta,12/30/2005,01/07/2006,65,0,0
+Alberto,06/10/2006,06/19/2006,70,420K,3
+Beryl,07/18/2006,07/21/2006,60,0,0
+Chris,08/01/2006,08/04/2006,65,0,0
+Debby,08/21/2006,08/26/2006,50,0,0
+Ernesto,08/24/2006,09/01/2006,75,500M,11
+Florence,09/03/2006,09/19/2006,90,200K,0
+Gordon,09/10/2006,09/24/2006,120,3.8M,0
+Helene,09/12/2006,09/24/2006,120,0,0
+Isaac,09/27/2006,10/02/2006,85,0,0
+2007 Subtropical Storm Andrea,05/09/2007,05/14/2007,60,0,6
+Barry,06/01/2007,06/05/2007,60,118K,1
+Chantal,07/31/2007,08/05/2007,50,24.3M,0
+Dean,08/13/2007,08/27/2007,175,1.66B,45
+Erin,08/15/2007,08/20/2007,40,248M,21
+Felix,08/31/2007,09/07/2007,175,720M,130
+Gabrielle,09/08/2007,09/11/2007,60,0,1
+Humberto,09/12/2007,09/14/2007,90,50M,1
+2007 Tropical Depression Ten,09/21/2007,09/22/2007,35,6.2M,0
+Lorenzo,09/25/2007,09/28/2007,80,92M,6
+Noel,10/28/2007,11/07/2007,80,580M,222
+Olga,12/11/2007,12/17/2007,60,45M,40
+Arthur,05/31/2008,06/06/2008,45,78M,5
+Bertha,07/03/2008,07/21/2008,125,0,3
+Cristobal,07/19/2008,07/23/2008,65,10K,0
+Dolly,07/20/2008,07/27/2008,100,1.6B,22
+Edouard,08/03/2008,08/06/2008,65,550K,6
+Fay,08/15/2008,08/29/2008,70,560M,36
+Gustav,08/25/2008,09/07/2008,155,8.31B,153
+Hanna,08/28/2008,09/12/2008,85,160M,537
+Ike,09/01/2008,09/15/2008,145,38B,214
+Kyle,09/25/2008,09/30/2008,85,57.1M,8
+Laura,09/29/2008,10/04/2008,60,0,0
+Marco,10/06/2008,10/07/2008,65,0,0
+Omar,10/13/2008,10/21/2008,130,80M,1
+Paloma,11/05/2008,11/14/2008,145,455M,1
+Ana,08/11/2009,08/16/2009,40,0,0
+Bill,08/15/2009,08/26/2009,130,46.2M,2
+Claudette,08/16/2009,08/18/2009,60,350K,2
+Danny,08/26/2009,08/29/2009,60,0,1
+Erika,09/01/2009,09/04/2009,50,35K,0
+Fred,09/07/2009,09/19/2009,120,0,0
+Grace,10/04/2009,10/07/2009,65,0,0
+Ida,11/04/2009,11/11/2009,105,11.4M,4
+Alex,06/25/2010,07/06/2010,110,1.52B,51
+2010 Tropical Depression Two,07/08/2010,07/10/2010,35,0,0
+Bonnie,07/22/2010,07/25/2010,45,1.36M,1
+Colin,08/02/2010,08/09/2010,60,0,1
+2010 Tropical Depression Five,08/10/2010,08/18/2010,35,1M,2
+Earl,08/25/2010,09/05/2010,145,45M,8
+Hermine,09/03/2010,09/10/2010,70,740M,52
+Igor,09/08/2010,09/23/2010,155,200M,4
+Julia,09/12/2010,09/28/2010,140,0,0
+Karl,09/14/2010,09/18/2010,125,3.9B,22
+Matthew,09/23/2010,09/28/2010,60,171M,126
+Nicole,09/28/2010,09/30/2010,45,245M,20
+Otto,10/06/2010,10/18/2010,85,22.5M,0
+Richard,10/20/2010,10/27/2010,100,80M,1
+Shary,10/27/2010,10/31/2010,75,0,0
+Tomas,10/29/2010,11/11/2010,100,463M,44
+Arlene,06/28/2011,07/01/2011,65,223M,18
+Bret,07/17/2011,07/23/2011,70,0,0
+Emily,08/02/2011,08/11/2011,50,5M,4
+Harvey,08/19/2011,08/22/2011,65,0,5
+Irene,08/21/2011,08/30/2011,120,14.2B,58
+Katia,08/29/2011,09/13/2011,140,157M,3
+Lee,09/02/2011,09/07/2011,60,2.8B,18
+Maria,09/06/2011,09/18/2011,80,1.3M,0
+Nate,09/07/2011,09/12/2011,75,0,4
+Ophelia,09/20/2011,10/07/2011,140,0,0
+Rina,10/23/2011,10/29/2011,115,2.3M,0
+Beryl,05/26/2012,06/02/2012,70,148K,1
+Debby,06/23/2012,06/30/2012,65,250M,5
+Ernesto,08/01/2012,08/10/2012,100,252M,12
+Helene,08/09/2012,08/18/2012,45,17M,2
+Isaac,08/21/2012,09/03/2012,80,3.11B,41
+Leslie,08/30/2012,09/12/2012,80,10.1M,0
+Nadine,09/10/2012,10/04/2012,90,0,0
+Rafael,10/12/2012,10/26/2012,90,2M,1
+Sandy,10/22/2012,11/02/2012,115,68.7B,233
+Andrea,06/05/2013,06/10/2013,65,86K,1
+Barry,06/17/2013,06/20/2013,45,0,5
+Chantal,07/07/2013,07/10/2013,65,10M,1
+Ingrid,09/12/2013,09/17/2013,85,1.5B,32
+Karen,10/03/2013,10/15/2013,65,18K,0
+Arthur,07/01/2014,07/09/2014,100,39.5M,2
+Bertha,08/01/2014,08/16/2014,80,0,4
+Dolly,09/01/2014,09/04/2014,50,22.2M,1
+Fay,10/10/2014,10/13/2014,80,3.8M,0
+Gonzalo,10/12/2014,10/20/2014,145,317M,6
+Ana,05/08/2015,05/12/2015,60,0,1
+Bill,06/16/2015,06/23/2015,60,100M,8
+Danny,08/18/2015,08/24/2015,125,0,0
+Erika,08/24/2015,09/03/2015,50,511M,35
+Fred,08/30/2015,09/06/2015,85,2.5M,9
+Joaquin,09/28/2015,10/15/2015,155,200M,34
+Kate,11/08/2015,11/13/2015,85,0,0
+Alex,01/12/2016,01/17/2016,85,0,1
+Bonnie,05/27/2016,06/09/2016,45,640K,2
+Colin,06/05/2016,06/08/2016,50,1.04M,6
+Hermine,08/28/2016,09/08/2016,80,550M,4
+Julia,09/13/2016,09/21/2016,50,6.13M,0
+Matthew,09/28/2016,10/10/2016,165,16.5B,603
+Nicole,10/04/2016,10/20/2016,140,15M,1
+Otto,11/20/2016,11/26/2016,115,192M,23
+Bret,06/19/2017,06/20/2017,50,3M,1
+Cindy,06/20/2017,06/24/2017,60,25M,2
+Emily,07/30/2017,08/02/2017,60,10M,0
+Franklin,08/07/2017,08/10/2017,85,15M,0
+Gert,08/12/2017,08/18/2017,110,0,2
+Harvey,08/17/2017,09/02/2017,130,125B,107
+Irma,08/30/2017,09/13/2017,180,77.2B,52
+Jose,09/05/2017,09/25/2017,155,2.84M,1
+Katia,09/05/2017,09/09/2017,105,3.26M,3
+Maria,09/16/2017,10/02/2017,175,91.6B,3059
+Nate,10/04/2017,10/11/2017,90,787M,48
+Ophelia,10/09/2017,10/18/2017,115,87.7M,3
+Philippe,10/28/2017,10/29/2017,40,100M,5
+2017 Potential Tropical Cyclone Ten,08/27/2017,09/03/2017,45,1.92M,2
+Alberto,05/25/2018,06/01/2018,65,125M,18
+Beryl,07/04/2018,07/17/2018,80,1M,0
+Chris,07/06/2018,07/17/2018,105,0,1
+Florence,08/31/2018,09/18/2018,150,24.2B,24
+Gordon,09/03/2018,09/08/2018,70,200M,3
+Kirk,09/22/2018,09/28/2018,65,440K,2
+Leslie,09/23/2018,10/16/2018,90,500M,17
+Michael,10/07/2018,10/16/2018,160,25.5B,74
+Barry,07/11/2019,07/19/2019,75,900M,3
+Dorian,08/24/2019,09/10/2019,185,5.1B,84
+Fernand,09/03/2019,09/05/2019,50,11.3M,1
+Humberto,09/13/2019,09/20/2019,125,25M,2
+Imelda,09/17/2019,09/19/2019,45,5B,7
+Karen,09/22/2019,09/27/2019,45,3.53M,0
+Lorenzo,09/23/2019,10/07/2019,160,367M,19
+Melissa,10/11/2019,10/14/2019,65,24K,0
+Nestor,10/18/2019,10/21/2019,60,150M,3
+Pablo,10/25/2019,10/29/2019,80,0,0
+Olga,10/25/2019,10/27/2019,45,400M,2
+Arthur,05/16/2020,05/21/2020,60,112K,0
+Bertha,05/27/2020,05/28/2020,50,130K,1
+Amanda and Cristobal,06/01/2020,06/12/2020,60,865M,46
+Fay,07/09/2020,07/12/2020,60,220M,6
+Hanna,07/23/2020,07/26/2020,90,1.2B,9
+Isaias,07/30/2020,08/05/2020,90,5.03B,17
+Laura,08/20/2020,08/29/2020,150,23.3B,81
+Marco,08/21/2020,08/26/2020,75,35M,0
+Paulette,09/07/2020,09/28/2020,105,50M,2
+Sally,09/11/2020,09/18/2020,110,7.3B,4
+Teddy,09/12/2020,09/24/2020,140,35M,3
+2020 Subtropical Storm Alpha,09/17/2020,09/19/2020,50,24.2M,1
+Beta,09/17/2020,09/25/2020,65,225M,1
+Gamma,10/02/2020,10/06/2020,75,100M,6
+Delta,10/04/2020,10/12/2020,140,3.09B,6
+Epsilon,10/19/2020,10/26/2020,115,0,1
+Zeta,10/24/2020,10/30/2020,115,4.4B,9
+Eta,10/31/2020,11/14/2020,150,8.3B,175
+Iota,11/13/2020,11/18/2020,155,1.4B,84
+Claudette,06/19/2021,06/23/2021,45,375M,4
+Danny,06/27/2021,06/29/2021,45,5K,0
+Elsa,06/30/2021,07/10/2021,85,1.2B,13
+Fred,08/11/2021,08/20/2021,65,1.3B,7
+Grace,08/13/2021,08/21/2021,120,513M,16
+Henri,08/15/2021,08/21/2021,75,700M,2
+Ida,08/26/2021,09/05/2021,150,75.3B,107
+Larry,08/31/2021,09/12/2021,125,80M,5
+Mindy,09/08/2021,09/11/2021,60,75.2M,23
+Nicholas,09/12/2021,09/20/2021,75,1.1B,2
+Alex,06/05/2022,06/07/2022,70,0,4
+Bonnie,07/01/2022,07/11/2022,115,25M,5
+Danielle,09/01/2022,09/15/2022,85,0,0
+Earl,09/02/2022,09/15/2022,110,0,2
+Fiona,09/14/2022,09/27/2022,140,3.09B,29
+Ian,09/23/2022,10/01/2022,160,113B,161
+Hermine,09/23/2022,09/26/2022,40,9.8M,0
+Julia,10/07/2022,10/10/2022,85,406M,35
+Nicole,11/07/2022,11/11/2022,75,1B,11
diff --git a/lab-p5/images/README.md b/lab-p5/images/README.md
new file mode 100644
index 0000000..1c55d5b
--- /dev/null
+++ b/lab-p5/images/README.md
@@ -0,0 +1,3 @@
+# Images
+
+Images from lab-p5 are stored here.
diff --git a/lab-p5/images/table.png b/lab-p5/images/table.png
new file mode 100644
index 0000000000000000000000000000000000000000..2b2472d15b63c4c31bec11d975f912844c17571b
GIT binary patch
literal 41014
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
C#!?>u

literal 0
HcmV?d00001

diff --git a/lab-p5/lab-p5.ipynb b/lab-p5/lab-p5.ipynb
new file mode 100644
index 0000000..02f73bb
--- /dev/null
+++ b/lab-p5/lab-p5.ipynb
@@ -0,0 +1,3502 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "15d34763",
+   "metadata": {
+    "cell_type": "code",
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "# import and initialize otter\n",
+    "import otter\n",
+    "grader = otter.Notebook(\"lab-p5.ipynb\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "aa4a9352",
+   "metadata": {
+    "editable": false,
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:48.509644Z",
+     "iopub.status.busy": "2023-10-04T01:15:48.509644Z",
+     "iopub.status.idle": "2023-10-04T01:15:48.726758Z",
+     "shell.execute_reply": "2023-10-04T01:15:48.725729Z"
+    }
+   },
+   "outputs": [],
+   "source": [
+    "import public_tests"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "4d7af2a1",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "# Lab-P5: Looping Patterns and Hurricane API\n",
+    "\n",
+    "**WARNING:** Please go through Segment 1 of [Lab-P5](https://git.doit.wisc.edu/cdis/cs/courses/cs220/cs220-f23-projects/-/tree/main/lab-p5) **before** you start to solve this notebook."
+   ]
+  },
+  {
+   "attachments": {
+    "table.PNG": {
+     "image/png": "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"
+    }
+   },
+   "cell_type": "markdown",
+   "id": "86bd2236-e241-4d99-97d0-977b1784a2fe",
+   "metadata": {},
+   "source": [
+    "## Segment 2: Learning the API\n",
+    "\n",
+    "### Task 2.1: Examine the `hurricanes` CSV file\n",
+    "\n",
+    "The `project.py` file will allow you to access the dataset you'll use this week, `hurricanes.csv`. We generated this data file by writing a Python program to extract data from several lists of hurricanes over the Atlantic Ocean on Wikipedia (here is an [example](https://en.wikipedia.org/wiki/2022_Atlantic_hurricane_season)). You can take a look at the script `gen_csv.ipynb` yourself. At the end of the semester, you will be able to write it yourself.\n",
+    "\n",
+    "Open `hurricanes.csv` with Microsoft Excel or some other Spreadsheet viewer and look at the hurricanes in the dataset. The data shows:\n",
+    "\n",
+    "* `name` (the name of the hurricane),\n",
+    "* `formed` (the date of formation of the hurricane),\n",
+    "* `dissipated` (the date of dissipation of the hurricane),\n",
+    "* `mph` (the max wind speed in mph of the hurricane),\n",
+    "* `damage` (the damage in US dollars caused by the hurricane),\n",
+    "* `deaths` (the number of deaths caused by the hurricane).\n",
+    "\n",
+    "Often, we'll organize data by assigning numbers (called **indexes**) to different parts of the data (e.g., rows or columns in a table). In Computer Science, indexing typically starts with the number `0`; i.e., when you have a sequence of things, you'll start counting them from `0` instead of `1`. Thus, you should **ignore the numbers shown by your Spreadsheet Viewer to the left of the rows**. From the perspective of `project.py`, the indexes of `1804 New England hurricane`, `1806 Great Coastal hurricane`, and `1812 Louisiana hurricane` are `0`, `1`, and `2` respectively (and so on).\n",
+    "\n",
+    "For example, consider this example from `hurricanes.csv` as viewed from Microsoft Excel:\n",
+    "\n",
+    "![table.PNG](attachment:table.PNG)\n",
+    "\n",
+    "The **index** for the `1812 Louisiana hurricane` is `2` but it is the third entry in the dataset, and it is on **row** `4` of the table. Therefore, you must follow this convention for all the questions\n",
+    "asking for the value at a particular **index**."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "497e2cdb",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "### Task 2.2: Explore the API\n",
+    "Use the inspection process we learned in [Lab-P3](https://git.doit.wisc.edu/cdis/cs/courses/cs220/cs220-f23-projects/-/tree/main/lab-p3) and [Lab-P4](https://git.doit.wisc.edu/cdis/cs/courses/cs220/cs220-f23-projects/-/tree/main/lab-p4) to know more details of the 'project' API. In Lab-P3, we saw how to use `dir`, and `help` to learn the API. Run the following cells to explore the API:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "417e06d8",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:48.731739Z",
+     "iopub.status.busy": "2023-10-04T01:15:48.730742Z",
+     "iopub.status.idle": "2023-10-04T01:15:48.817002Z",
+     "shell.execute_reply": "2023-10-04T01:15:48.815992Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# it is considered a good coding practice to place all import statements at the top of the notebook\n",
+    "# please place all your import statements in this cell if you need to import any more modules for this project\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "98c70d68-d464-4389-b611-6b8e935c1bfa",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:48.822022Z",
+     "iopub.status.busy": "2023-10-04T01:15:48.821002Z",
+     "iopub.status.idle": "2023-10-04T01:15:48.831670Z",
+     "shell.execute_reply": "2023-10-04T01:15:48.830571Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# use the 'dir' function to learn more about the project API\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "a7db4a49",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "Spend some time reading about each of the seven functions that don't begin with two underscores. For example, run this to learn about `count`:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "7639d9e2-ea47-47c1-8d42-40e6381ccfaa",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:48.835696Z",
+     "iopub.status.busy": "2023-10-04T01:15:48.834695Z",
+     "iopub.status.idle": "2023-10-04T01:15:48.843081Z",
+     "shell.execute_reply": "2023-10-04T01:15:48.842094Z"
+    }
+   },
+   "outputs": [],
+   "source": [
+    "help(project.count) "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "fd1de2e2-0e4d-4a9a-8c68-ceac35d03d75",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "Alternatively, you could run the following to just see the function's documentation:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "4c4d19c5-ae7b-4ba6-a5d1-63a2af3093dd",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:48.847096Z",
+     "iopub.status.busy": "2023-10-04T01:15:48.847096Z",
+     "iopub.status.idle": "2023-10-04T01:15:48.852573Z",
+     "shell.execute_reply": "2023-10-04T01:15:48.851560Z"
+    }
+   },
+   "outputs": [],
+   "source": [
+    "print(project.count.__doc__)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "8b68dc0e-bfd1-4ad0-aa57-66f7067be401",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "You may also open up the `project.py` file directly to learn about the functions provided. E.g., you might see this:\n",
+    "\n",
+    "```python\n",
+    "def count():\n",
+    "    \"\"\"This function will return the number of records in the dataset\"\"\"\n",
+    "    return len(__hurricane__)\n",
+    "```\n",
+    "\n",
+    "You don't need to understand the code in the functions, but the strings in triple quotes (called *docstrings*) explain what each function does. As it turns out, all `project.count.__doc__` is providing you is the docstring of the `count` function.\n",
+    "\n",
+    "Try to learn other functions in `project.py`, by using `help` function. For example, you may try: "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "eec4b9f8-cb6b-49ce-b32a-714eb137e3da",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:48.856590Z",
+     "iopub.status.busy": "2023-10-04T01:15:48.855569Z",
+     "iopub.status.idle": "2023-10-04T01:15:48.863044Z",
+     "shell.execute_reply": "2023-10-04T01:15:48.861033Z"
+    }
+   },
+   "outputs": [],
+   "source": [
+    "help(project.get_name)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "1d1241a2-bad8-45de-bc52-884d74d2fb1b",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:48.867053Z",
+     "iopub.status.busy": "2023-10-04T01:15:48.867053Z",
+     "iopub.status.idle": "2023-10-04T01:15:48.874849Z",
+     "shell.execute_reply": "2023-10-04T01:15:48.873838Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# now try getting help for the other functions in the `project` module\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "9897e54c-5ab0-4681-9982-f288feaea56b",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "### Task 2.2.1: Getting familiar with `project.py`\n",
+    "\n",
+    "You will now demonstrate your familiarity with the functions inside the `project` module by answering a few simple questions. You must have already imported the `project` module to this notebook. Make sure you placed the `import` statememnt at the **top** of the notebook in the designated cell.\n",
+    "\n",
+    "**Remember:** In Computer Science, we start indexing at `0`."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "f8b0cdab",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 1:** What is the `name` of the hurricane at **index** `0`? "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "55fb64c1-678c-459a-99b7-2f52b70a5daa",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:48.879871Z",
+     "iopub.status.busy": "2023-10-04T01:15:48.878851Z",
+     "iopub.status.idle": "2023-10-04T01:15:48.886895Z",
+     "shell.execute_reply": "2023-10-04T01:15:48.885881Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# we have done this for you!\n",
+    "name_idx0 = project.get_name(0)\n",
+    "\n",
+    "name_idx0"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "874b92fc",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q1\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "4b8ae0c1",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 2:** What is the `name` of the hurricane at **index** `1`? "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "a0e0e7c5",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:48.902419Z",
+     "iopub.status.busy": "2023-10-04T01:15:48.901424Z",
+     "iopub.status.idle": "2023-10-04T01:15:48.908696Z",
+     "shell.execute_reply": "2023-10-04T01:15:48.907681Z"
+    },
+    "scrolled": true,
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# replace the ... below with your code\n",
+    "name_idx1 = ...\n",
+    "name_idx1"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "0ffdd7e5",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q2\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "abfc8bef",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 3:** What is the speed in `mph` of the hurricane at **index** `7`? "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "4fc72e0a",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:48.923740Z",
+     "iopub.status.busy": "2023-10-04T01:15:48.922742Z",
+     "iopub.status.idle": "2023-10-04T01:15:48.929928Z",
+     "shell.execute_reply": "2023-10-04T01:15:48.928917Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# replace the ... below with your code\n",
+    "mph_idx7 = ...\n",
+    "mph_idx7"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "786eb947",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q3\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "aa09dc8d",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 4:** What is the `damage` in dollars caused of the hurricane at **index** `5`? "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "9742a42d",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:48.942902Z",
+     "iopub.status.busy": "2023-10-04T01:15:48.942902Z",
+     "iopub.status.idle": "2023-10-04T01:15:48.949941Z",
+     "shell.execute_reply": "2023-10-04T01:15:48.948928Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# replace the ... below with your code\n",
+    "damage_idx5 = ...\n",
+    "damage_idx5"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "e7641918",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q4\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "38a2eaab-2165-4343-aa12-c48c20acb223",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "Notice that the damage amount ends with a \"M\". In this dataset, \"K\" represents one thousand, \"M\" represents one million, and \"B\" represents one billion. In P5, you'll need to convert these strings to integers (e.g., `\"1.5K\"` will become `1500`, `\"2.55M\"` will become `2550000`)."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "74a940c8",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 5:** What is the `name` of the **last** hurricane in the dataset?"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "134a4959-0ff4-4826-8e55-f2263e306f26",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:48.962800Z",
+     "iopub.status.busy": "2023-10-04T01:15:48.962800Z",
+     "iopub.status.idle": "2023-10-04T01:15:48.968977Z",
+     "shell.execute_reply": "2023-10-04T01:15:48.967967Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# we have done this for you!\n",
+    "name_idx_last = project.get_name(project.count() - 1)\n",
+    "name_idx_last"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "0f86e61a",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q5\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "044d18e9",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "Now, let us try to get the `name` at index `project.count()` instead. What happens? Why? Feel free to reach out to your TA/PM, if you are not sure."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "a4d38fbf",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:48.981467Z",
+     "iopub.status.busy": "2023-10-04T01:15:48.980466Z",
+     "iopub.status.idle": "2023-10-04T01:15:48.986188Z",
+     "shell.execute_reply": "2023-10-04T01:15:48.985177Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# execute this cell without changing anything\n",
+    "project.get_name(project.count())"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "f2ac51fa-ff0a-434f-8c2e-e40e6476f0fa",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "## Segment 3: Working with strings"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "38756d68",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "### Task 3.1: Indexing / slicing Strings\n",
+    "\n",
+    "Stepping back from the Hurricane data, Tasks 3.1 and 3.2 introduce us to performing operations with strings. While this will be covered in more detail during Friday's lecture, we will cover the essentials now.\n",
+    "\n",
+    "We can think of a string as a sequence of characters. For example, the string `my_str = 'hello_world!'` can be written as...\n",
+    "\n",
+    "| index  | 0    | 1    | 2    | 3    | 4    | 5    | 6    | 7    | 8    | 9    | 10   | 11   |\n",
+    "| ------ | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- |\n",
+    "| string | h    | e    | l    | l    | o    | _    | w    | o    | r    | l    | d    | !    |\n",
+    "\n",
+    "... where we can then access specific characters of the string by an index, e.g. `my_str[0]` which returns `'h'` or `my_str[8]` which returns `'r'`.\n",
+    "\n",
+    "Furthermore, we can \"slice\" strings -- that is, get a particular section of characters. For example,\n",
+    "\n",
+    "- `my_str[1:5]` returns `'ello'`\n",
+    "- `my_str[:8]` returns `'hello_wo'`\n",
+    "- `my_str[5:]` returns `'_world!'`\n",
+    "- `my_str[:]` returns `'hello_world!'`\n",
+    "\n",
+    "Try running this in the cell below."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "cfaa8a24",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:48.990187Z",
+     "iopub.status.busy": "2023-10-04T01:15:48.990187Z",
+     "iopub.status.idle": "2023-10-04T01:15:48.996820Z",
+     "shell.execute_reply": "2023-10-04T01:15:48.995811Z"
+    }
+   },
+   "outputs": [],
+   "source": [
+    "my_str = 'hello_world!'\n",
+    "print(\"my_str[0] returns\", my_str[0])\n",
+    "print(\"my_str[8] returns\", my_str[8])\n",
+    "print(\"my_str[1:5] returns\", my_str[1:5])\n",
+    "print(\"my_str[:8] returns\", my_str[:8])\n",
+    "print(\"my_str[5:] returns\", my_str[5:])\n",
+    "print(\"my_str[:] returns\", my_str[:])"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "7319eb8c",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "Notice that slicing is **inclusive** on the lower bound and **exclusive** on the upper bound. We can also leave out a bound to start from the beginning (e.g. `my_str[:6]`) or to keep going until the end (e.g. `my_str[8:]`). Lastly, a negative index will count **backwards** from the **end** of the string.\n",
+    "\n",
+    "Try running the cell below."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "cc68f988",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:48.999820Z",
+     "iopub.status.busy": "2023-10-04T01:15:48.999820Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.004572Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.004572Z"
+    }
+   },
+   "outputs": [],
+   "source": [
+    "print(\"my_str[-1] returns\", my_str[-1])\n",
+    "print(\"my_str[-4:-1] returns\", my_str[-4:-1])"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "b4841367",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Your Turn!** Try slicing the below phone number! Can you extract the area code (first 3 digits), exchange code (middle 3 digits), and line number (last 4 digits) of the given phone number?"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "4316c947",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 6:** What is the **last digit** of the phone number: `608-867-5309`?"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "a55bbfff",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.009765Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.008764Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.016244Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.015060Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# replace the ... with your code\n",
+    "phone_number = \"608-867-5309\"\n",
+    "last_digit = phone_number[...]\n",
+    "\n",
+    "last_digit"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "38c3bce1",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q6\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "b5f6c9d3",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 7:** What is the **area code** (i.e., the first three characters) of the phone number: `608-867-5309`?"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "e4b0a772",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.028375Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.028375Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.035774Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.034765Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# replace the ... with your code\n",
+    "phone_number = \"608-867-5309\"\n",
+    "area_code = phone_number[:...]\n",
+    "\n",
+    "area_code"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "4bfdf037",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q7\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "0f8b2276",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 8:** What is the **line number** (i.e., the last four characters) of the phone number: `608-867-5309`?"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "81828521",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.049239Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.048239Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.055822Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.054811Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# replace the ... with your code\n",
+    "phone_number = \"608-867-5309\"\n",
+    "line_number = phone_number[...:]\n",
+    "\n",
+    "line_number"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "77317008",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q8\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "7efa87ad",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 9:** What is the **exchange code** (i.e., middle three characters) of the phone number: `608-867-5309`?"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "32d3afc4",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.069047Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.069047Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.074504Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.074504Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# replace the ... with your code\n",
+    "phone_number = \"608-867-5309\"\n",
+    "exchange_code = phone_number[...:...]\n",
+    "\n",
+    "exchange_code"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "b685d93e",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q9\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "73416a4d",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 10:** What is the **department code** (i.e., the letters at the start) of the course: `CS220`?"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "5581131d",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.088183Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.087183Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.093432Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.093432Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "course = 'CS220'\n",
+    "dept_code = course[...]\n",
+    "\n",
+    "dept_code"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "2f2906f6",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q10\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "63f73dae",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 11:** What is the **course code** (i.e., the numbers at the end) of the course: `CS220`?"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "3219a1ba",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.106939Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.105938Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.114397Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.113391Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "course = 'CS220'\n",
+    "course_code = course[...]\n",
+    "\n",
+    "course_code"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "3c28dcef",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q11\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "0529a58e",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "After that short detour, we will now go back to working on the hurricane dataset.\n",
+    "\n",
+    "### Task 3.2: Calculating Damage Costs\n",
+    "\n",
+    "Question 4 showed us that damage costs are represented as strings with suffixes for thousands, millions, and billions.\n",
+    "\n",
+    "We can **index** the last character of these damages to find the suffix. We can then potentially use it to determine whether the suffix represents a thousand, million, or a billion."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "fbea9dee",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 12:** What is the **suffix** (i.e., the last character) of the cost `\"3.19B\"`?"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "272cc9d6",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.127415Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.127415Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.133887Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.132880Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# replace the ... with your code\n",
+    "cost = \"3.19B\"\n",
+    "suffix = cost[...]\n",
+    "\n",
+    "suffix"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "f25dbe47",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q12\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "1fc06e2a",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 13:** How many billions are there in the cost `\"3.19B\"`?\n",
+    "\n",
+    "Just as we found the suffix by **indexing**, we can also find the number by **slicing**. Answer the question by slicing the string to obtain the number of billions, and typecasting the string into a float."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "3ed13461",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.146701Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.145701Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.152171Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.152171Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# replace the ... with your code\n",
+    "cost = \"3.19B\"\n",
+    "billions = float(cost[...])\n",
+    "\n",
+    "billions"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "a889adbe",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q13\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "89a8f7bf",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "### Task 3.3: Slicing dates\n",
+    "\n",
+    "Run the below cell which prints the formation and dissipation date of the first hurricane."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "ece79345",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.165266Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.165266Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.170093Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.170093Z"
+    }
+   },
+   "outputs": [],
+   "source": [
+    "print(project.get_formed(0))\n",
+    "print(project.get_dissipated(0))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "f4c5cc97",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "The dates are represented as a string in `mm/dd/yyyy` notation. Two digits are used to represent the month and day even when they can be represented with a single digit, that is, `'9/4/1804'` is represented as `'09/04/1804'`.\n",
+    "\n",
+    "To extract the month, we could run the following code..."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "425e901d",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.174098Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.174098Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.179687Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.179687Z"
+    }
+   },
+   "outputs": [],
+   "source": [
+    "project.get_formed(0)[:2]"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "de4d2a52",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "Notice, however, that this is the *string* `'09'`.\n",
+    "\n",
+    "Write the code to get this as the *int* (e.g. `9`)."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "c639454b",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 14:** In which `month` did the hurricane at **index** `0` form?\n",
+    "\n",
+    "Your answer **must** be an `int` between `1` and `12`. You **must not** hardcode the answer, but use the appropriate function from the `project` module to find the date of formation of the hurricane."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "510b89a1",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.184696Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.183696Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.190716Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.189708Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# replace the ... with your code\n",
+    "month_idx0 = ...\n",
+    "\n",
+    "month_idx0"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "6f587508",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q14\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "868d4b8c",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "### Task 3.4: Helper Functions for Month, Day, and Year\n",
+    "\n",
+    "The below functions will be useful in p5. Solve the below questions for getting the day, and year as an int. The function to get the month has already been done for you."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "1b18d8e1",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.203398Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.202398Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.207742Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.206735Z"
+    }
+   },
+   "outputs": [],
+   "source": [
+    "def get_month(date):\n",
+    "    \"\"\"get_month(date) returns the month when the date is the in the 'mm/dd/yyyy' format\"\"\"\n",
+    "    return int(date[:2])"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "35b77034",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "You can confirm that `get_month` works by running the cell below."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "d08661ae",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.210743Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.210743Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.216183Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.216183Z"
+    }
+   },
+   "outputs": [],
+   "source": [
+    "month = get_month(\"09/22/2023\")\n",
+    "\n",
+    "month"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "e3a6218d",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "### Task 3.4.1: Define `get_year(date)`\n",
+    "\n",
+    "You must now define this function, which will take in the `date` as a `str` and return the `year` as an `int`."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "9edfbae2",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.221192Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.220192Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.225922Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.224914Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "def get_year(date):\n",
+    "    \"\"\"get_year(date) returns the year when the date is the in the 'mm/dd/yyyy' format\"\"\"\n",
+    "    pass # replace with your code"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "a7aa9a4a",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 15:** What is the `year` in the date `\"09/22/2023\"`?\n",
+    "\n",
+    "You **must** answer this question by calling the `get_year` function."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "306f6044",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.229922Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.228923Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.234952Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.234952Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# replace the ... with your code\n",
+    "year = ...\n",
+    "\n",
+    "year"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "5ed9e2ea",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q15\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "0248f120",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "### Task 3.4.2: Define `get_day(date)`\n",
+    "\n",
+    "You must now define this function, which will take in the `date` as a `str` and return the `day` as an `int`."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "89b5f280",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.248971Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.248971Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.254102Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.253094Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "def get_day(date):\n",
+    "    \"\"\"get_day(date) returns the day when the date is the in the 'mm/dd/yyyy' format\"\"\"\n",
+    "    pass # replace with your code"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "d1a0314f",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 16:** What is the `day` in the date `\"09/22/2023\"`?\n",
+    "\n",
+    "You **must** answer this question by calling the `get_day` function."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "782abd17",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.258102Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.257103Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.264885Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.263877Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# replace the ... with your code\n",
+    "day = ...\n",
+    "\n",
+    "day"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "0055da45",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q16\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "9a6e4ab0",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "### Task 3.5: Using Helper Functions\n",
+    "\n",
+    "Using the helper functions you made above, complete the following questions.\n",
+    "\n",
+    "**Hint:** You'll use these helper functions in combination with functions from the project module."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "821acf4f",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 17:** On what `day` did the hurricane at **index** `100` **form**?\n",
+    "\n",
+    "You **must** answer this question by calling the `get_day` function."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "671ea14e",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.277560Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.276559Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.282608Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.282608Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# replace the ... with your code\n",
+    "day_formed_idx100 = ...\n",
+    "\n",
+    "day_formed_idx100"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "92a929fd",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q17\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "03e570fd",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 18:** In which `year` did the hurricane at **index** `200` **form**?\n",
+    "\n",
+    "You **must** answer this question by calling the `get_year` function."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "acd08955",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.296118Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.295117Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.302715Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.301707Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# replace with your code\n",
+    "year_formed_idx200 = ...\n",
+    "\n",
+    "year_formed_idx200"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "f7bff4ef",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q18\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "832ac84e",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 19:** In which `month` did the hurricane at **index** `300` **dissipate**?\n",
+    "\n",
+    "You **must** answer this question by calling the `get_month` function."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "9562f391",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.315195Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.315195Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.321419Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.320410Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# replace the ... with your code\n",
+    "month_diss_idx300 = ...\n",
+    "\n",
+    "month_diss_idx300"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "e619fa80",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q19\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "6cfd8eb1",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "## Segment 4: Looping"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "fc0e5794",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "### Task 4.1: `while` and `for` loops\n",
+    "\n",
+    "Run the below code and observe the output."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "6f4ff12e-2142-4fc7-b7e0-dc54ec0a641a",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.334958Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.333957Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.338932Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.338932Z"
+    }
+   },
+   "outputs": [],
+   "source": [
+    "i = 0\n",
+    "while i < 5:\n",
+    "    print(i)\n",
+    "    i += 1"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "1c6ff122-f8b3-4909-acd3-269a60756464",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "Equivalently, we can use `for` and `range(n)`. The `range(n)` function returns a sequence of numbers, from `0` to `n` but not including `n`."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "3cb57adb-af1a-4c16-affb-4744d626da41",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.342942Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.342942Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.347543Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.347543Z"
+    }
+   },
+   "outputs": [],
+   "source": [
+    "for i in range(5):\n",
+    "    print(i)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "a29c53a1",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "Now, we will try to use `while` and `for` loops to answer a few simple questions."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "4c5d8826",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 20:** What is the sum of the numbers *0 to 25*, both inclusive?\n",
+    "\n",
+    "You **must** answer this with a `while` loop. Ask your TA/PM if you are not sure what to do."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "9192111e",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.352555Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.351555Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.359036Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.358027Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "i = 0\n",
+    "sum_while = ... # replace the ... with the correct initial value for the sum\n",
+    "while i ... 25: # replace the ... with the correct comparison operator\n",
+    "    sum_while += i \n",
+    "    i += 1\n",
+    "\n",
+    "sum_while"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "923aa8d9",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q20\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "6bf1f360",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 21:** What is the sum of the numbers *0 to 25*, both inclusive?\n",
+    "\n",
+    "You **must** answer this with a `for` loop. Ask your TA/PM if you are not sure what to do."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "ba9ce950",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.371863Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.371863Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.379503Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.378492Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# replace the ... with your code\n",
+    "sum_for = ...\n",
+    "for i in range(...):\n",
+    "    sum_for += ...\n",
+    "\n",
+    "sum_for"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "58f5b99e",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q21\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "f5359d22",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "### Task 4.2: Looping through hurricanes\n",
+    "\n",
+    "You have had some practice with simple looping structures. You will now loop through the hurricanes dataset.\n",
+    "\n",
+    "Run the below code and observe the output."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "27698c77",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.392699Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.391700Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.396560Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.396560Z"
+    }
+   },
+   "outputs": [],
+   "source": [
+    "for idx in range(10):\n",
+    "    print(project.get_name(idx))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "03c9cfb3",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "Can you make the code above display the **year of the formation** of the first 10 hurricanes? How about the **first 15** hurricanes? Please feel free to reach out to your TA/PM and ask them for help, if you face any issues.\n",
+    "\n",
+    "You are now ready to answer some interesting questions with loops."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "3ddb7960",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 22:** What is the **total** `deaths` caused by the **first** `10` hurricanes in the dataset?"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "3de665a3-f733-4acf-a1e5-18e836d4453f",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.401558Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.400556Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.408431Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.407436Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# replace the ... with your code\n",
+    "total_deaths_first10 = ...\n",
+    "for idx in range(...):\n",
+    "    total_deaths_first10 += ...\n",
+    "\n",
+    "total_deaths_first10"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "8f0abf01",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q22\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "593615d7",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 23:** What is the **average** speed (in `mph`) of **all** the hurricanes in the dataset?"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "26e575ac-4dc5-49de-a6d8-abe9a5cb2ea6",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.421940Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.421940Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.430503Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.429493Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# replace the ... with your code\n",
+    "sum_wind_speed = ...\n",
+    "for idx in range(project.count()):\n",
+    "    sum_wind_speed += ...\n",
+    "average_wind_speed = sum_wind_speed/project.count()\n",
+    "\n",
+    "average_wind_speed"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "bce409d9",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q23\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "774aefcd-f260-4554-a1fc-02076458ccb7",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "### Task 4.3: Filtering\n",
+    "\n",
+    "You will now *filter* the data using an `if` condition as you loop through the dataset."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "d027146a",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 24:** How many hurricanes caused **more than** `1000` deaths in the dataset?"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "652b3f89-4ad1-44a2-bbbc-b21fea7009cf",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.444877Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.444877Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.453368Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.452357Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# replace the ... with your code\n",
+    "num_hurr_1000_deaths = ...\n",
+    "for idx in range(...): # loop through ALL hurricanes in the dataset; do NOT hardcode the number here\n",
+    "    if ...: # replace ... with a Boolean expression\n",
+    "        num_hurr_1000_deaths += 1\n",
+    "\n",
+    "num_hurr_1000_deaths"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "ce2ac759",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q24\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "6496187e",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 25:** How many hurricane `names` **start** with the letter *D* in the dataset?"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "5ffb3cb6-f420-4653-8ef4-bb5140c19114",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.467422Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.467422Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.477570Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.476559Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# compute and store the answer in the variable 'num_hurr_d'\n",
+    "# TODO: initialize the variable 'num_hurr_d'\n",
+    "# TODO: loop through all hurricanes in the dataset\n",
+    "# TODO: update the value of 'num_hurr_d' only if\n",
+    "#       the name of the hurricane at the current idx starts with 'D'\n",
+    "        \n",
+    "# display the variable 'num_hurr_d' here\n",
+    "num_hurr_d"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "46d5ca68",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q25\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "e0a161cd-1012-4a92-b6b1-9f0095991720",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "### Task 4.4: Maximization/Minimization\n",
+    "\n",
+    "You will now find the maximum/minimum using loops."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "73e52ef8",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 26:** What is the `name` of the hurricane which has the **fastest** wind speed (in `mph`)?\n",
+    "\n",
+    "`None` is a Python keyword which denotes nothing. At the beginning of this loop, by saying `fastest_idx = None`, we make no assumptions about what the fastest hurricane is. Inside the loop, if the `fastest_idx` is `None`, we know that is our first (and currently fastest) hurricane.\n",
+    "\n",
+    "Note that in the skeleton code below, we break ties in favor of the hurricane that **appears first** in the dataset."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "02eb02f0-34b1-4d6a-b2d0-13ce09241cc3",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.491165Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.491165Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.500304Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.499293Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# replace the ... with your code\n",
+    "fastest_idx = None\n",
+    "max_speed = 0\n",
+    "for idx in range(project.count()):\n",
+    "    current_speed = ...\n",
+    "    if fastest_idx == None or current_speed > max_speed:\n",
+    "        max_speed = ...\n",
+    "        fastest_idx = idx\n",
+    "fastest_name = project.get_name(fastest_idx)\n",
+    "        \n",
+    "fastest_name"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "5fab8b2b",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q26\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "3c3b8357",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 27:** What is the `name` of the hurricane which has the **slowest** wind speed (in `mph`)?.\n",
+    "\n",
+    "You **must** break ties in favor of the hurricanes that appear **first** in the dataset."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "05cc4ff6-c0a3-468a-9ee8-6d04cb91682a",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.513457Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.512457Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.520544Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.520544Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# replace the ... with your code\n",
+    "slowest_idx = None\n",
+    "min_speed = 0\n",
+    "for idx in range(...):\n",
+    "    current_speed = ...\n",
+    "    if ... or ...:\n",
+    "        min_speed = ...\n",
+    "        slowest_idx = ...\n",
+    "slowest_name = ...\n",
+    "        \n",
+    "slowest_name"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "f0793bab",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q27\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "898f5290",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "### Task 4.5: More Filtering"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "859ed5e5",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "You will now create a function that takes in two years `start_year` and `end_year`, and return the number of hurricanes that were formed between these two years (both years inclusive).\n",
+    "\n",
+    "You **must** use the `get_year` function you defined above to find the year of formation of each hurricane. "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "b746eeae",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.534245Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.534245Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.539477Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.539477Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "def count_hurricanes_between(start_year, end_year):\n",
+    "    # replace the ... with your code\n",
+    "    num_hurricanes = 0\n",
+    "    for idx in range(...):\n",
+    "        year_formed = ... # TODO: find the year of formation of the hurricane at idx\n",
+    "        # hint: to find year_formed, you first find the date of formation and pass that value to\n",
+    "        #       another function to find the year from that date.\n",
+    "        #       note that you can perform both computations in a single line by passing the\n",
+    "        #       value returned by one function as an argument to another function.\n",
+    "        if ...: # TODO: evaluate if hurricane at idx was formed between start_year and end_year\n",
+    "            num_hurricanes += 1\n",
+    "    return num_hurricanes"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "be402552",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 28:** How many hurricanes were `formed` between *1980 and 2002*, both inclusive?\n",
+    "\n",
+    "You **must** answer this question by calling the `count_hurricanes_between` function."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "415fbeeb",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.544488Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.543486Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.550125Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.550125Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# replace the ... with your code\n",
+    "hurr_between_1980_2002 = ...\n",
+    "\n",
+    "hurr_between_1980_2002"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "4392deb9",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q28\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "1317449e",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 29:** How many hurricanes were `formed` between *1901 and 2000*, both inclusive?\n",
+    "\n",
+    "You **must** answer this question by calling the `count_hurricanes_between` function."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "fa9c6318",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.563558Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.562557Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.569331Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.569331Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# replace the ... with your code\n",
+    "hurr_between_1901_2000 = ...\n",
+    "\n",
+    "hurr_between_1901_2000"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "d799964a",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q29\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "30483ffa",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "## Segment 5: Fixing Indentation\n",
+    "\n",
+    "### Task 5.1: Debugging\n",
+    "\n",
+    "The `def`, `if`, and `for` statements above use different levels of **indentation** to encode the meaning of the statement. This means, by just changing the indentation level of some code, you might get invalid code that has a **syntax error** or you might get **valid code** that gives a different, **incorrect result**. Therefore, it is an important skill to decide on the **correct indentation level** for and to recognize a wrong indentation level in a piece of code.\n",
+    "\n",
+    "For each of the following questions, you will be provided with a function which has either **syntax/semantic errors** because of **bad indentation**. You **must** fix the indentation to make the functions work as intended.\n",
+    "\n",
+    "**Warning:** You **must** fix the errors **only by changing the indentation**, and **not** by writing any code of your own. \n",
+    "\n",
+    "**Hint:** You can increase the indentation simultaneously for a number of lines by selecting them and hitting the *Tab* key on your keyboard. Similarly, you can decrease their indentation by holding the *Shift* key and then hitting *Tab* on your keyboard."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "b29bb591",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 30:** Fix the indentation errors in the function below."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "cd45719d",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.582887Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.582887Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.589455Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.588447Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# fix any indentation errors you find in the code below\n",
+    "\n",
+    "def count_slower_than(mph):\n",
+    "    '''count_slower_than(mph) returns the number of hurricanes\n",
+    "    with a maximum wind speed less than the given speed'''\n",
+    "    num_hurrs = 0\n",
+    "    for idx in range(project.count()):\n",
+    "        if project.get_mph(idx) < mph:\n",
+    "        num_hurrs += 1\n",
+    "    return num_hurrs"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "8d9361d7",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.593457Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.592456Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.599389Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.599389Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# execute this cell without changing anything\n",
+    "count_slower_than_200 = count_slower_than(200)\n",
+    "\n",
+    "count_slower_than_200"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "8e87b037",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q30\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "b73e2250",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 31:** Fix the indentation errors in the function below.\n",
+    "\n",
+    "Unlike the previous function definition, this one has a **semantic** error, i.e., the code executes without any syntax errors, but the logic behind the code is incorrect. Fix the indentation, so that the code behaves as it is supposed to.\n",
+    "\n",
+    "**Hint:** If you are having trouble identifying the error, you should try tracing through the code using the test examples below. Manually open [`hurricanes.csv`](https://git.doit.wisc.edu/cdis/cs/courses/cs220/cs220-f23-projects/-/tree/main/lab-p5/hurricanes.csv), then go through the function line by line to confirm that it behaves as it ought to."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "a2e3fd2e",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.613209Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.613209Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.619177Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.618169Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# fix any indentation errors you find in the code below\n",
+    "\n",
+    "def count_number_of(name):\n",
+    "    '''count_number_of(name) returns the number of hurricanes\n",
+    "    in the dataset with the given name'''\n",
+    "    num_hurrs = 0\n",
+    "    for idx in range(project.count()):\n",
+    "        if project.get_name(idx) == name:\n",
+    "            num_hurrs += 1\n",
+    "        return num_hurrs"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "d457e67f",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.622177Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.622177Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.629316Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.628308Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# execute this cell without changing anything\n",
+    "count_number_of_harvey = count_number_of(\"Harvey\")\n",
+    "\n",
+    "count_number_of_harvey"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "e3d97a39",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q31\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "d1e77ead",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 32:** Fix the indentation errors in the function below.\n",
+    "\n",
+    "This function definition has a **semantic** error, i.e., the code executes without any syntax errors, but the logic behind the code is incorrect. Fix the indentation, so that the code behaves as it is supposed to."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "be5204fc",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.642240Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.641240Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.648054Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.647045Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# fix any indentation errors you find in the code below\n",
+    "\n",
+    "def count_deadlier_than(hurr_idx):\n",
+    "    '''count_deadlier_than(hurr_idx) returns the number of \n",
+    "    hurricanes in the dataset which caused more deaths \n",
+    "    than the hurricane with the given index'''\n",
+    "    num_hurrs = 0\n",
+    "    for idx in range(project.count()):\n",
+    "        if project.get_deaths(idx) > project.get_deaths(hurr_idx):\n",
+    "            num_hurrs += 1\n",
+    "            return num_hurrs"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "0d173f83",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.651054Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.651054Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.658291Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.657281Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# execute this cell without changing anything\n",
+    "count_deadlier_than_0 = count_deadlier_than(0)\n",
+    "\n",
+    "count_deadlier_than_0"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "b52c1c6f",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q32\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "4c883a5b",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 33:** Fix the indentation errors in the function below.\n",
+    "\n",
+    "This function definition has a **semantic** error, i.e., the code executes without any syntax errors, but the logic behind the code is incorrect. Fix the indentation, so that the code behaves as it is supposed to.\n",
+    "\n",
+    "Note that for calls to the function below to execute, you must have correctly defined the function `get_year` in Task 3.4.1."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "fe270fc5",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.670926Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.670926Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.677476Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.676469Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# fix any indentation errors you find in the code below\n",
+    "\n",
+    "def find_average_mph(year):\n",
+    "    '''find_average_mph(year) returns the average speed of \n",
+    "    hurricanes in the dataset which were formed in the\n",
+    "    given year'''\n",
+    "    total_speed = 0\n",
+    "    num_hurrs = 0\n",
+    "    for idx in range(project.count()):\n",
+    "        if get_year(project.get_formed(idx)) == year:\n",
+    "            total_speed += project.get_mph(idx)\n",
+    "        num_hurrs += 1\n",
+    "    return total_speed/num_hurrs"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "d63aa503",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.680477Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.680477Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.686438Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.686438Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# execute this cell without changing anything\n",
+    "find_average_mph_2022 = find_average_mph(2022)\n",
+    "\n",
+    "find_average_mph_2022"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "58a1867b",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q33\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "a5543d06",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 34:** Fix the indentation errors in the function below.\n",
+    "\n",
+    "This function definition has a **semantic** error, i.e., the code executes without any syntax errors, but the logic behind the code is incorrect. Fix the indentation, so that the code behaves as it is supposed to."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "072bfeb4",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.700565Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.700565Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.706734Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.705725Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# fix any indentation errors you find in the code below\n",
+    "\n",
+    "def check_more_than_one(name):\n",
+    "    '''check_more_than_one(name) returns True if \n",
+    "    there is more than one hurricane in the dataset\n",
+    "    with the given name and False otherwise'''\n",
+    "    num_hurrs = 0\n",
+    "    for idx in range(project.count()):\n",
+    "        if project.get_name(idx) == name:\n",
+    "            num_hurrs += 1\n",
+    "        if num_hurrs > 1:\n",
+    "            return True\n",
+    "        else:\n",
+    "            return False"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "3252d6f1",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.710735Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.709736Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.715989Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.715989Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# execute this cell without changing anything\n",
+    "check_more_than_one_maria = check_more_than_one(\"Maria\")\n",
+    "\n",
+    "check_more_than_one_maria"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "b5ee956c",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q34\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "f926a821",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 35:** Fix the indentation errors in the function below.\n",
+    "\n",
+    "This function definition has a **semantic** error, i.e., the code executes without any syntax errors, but the logic behind the code is incorrect. Fix the indentation, so that the code behaves as it is supposed to."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "f0e986e6",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.729999Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.729999Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.736362Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.735351Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# fix any indentation errors you find in the code below\n",
+    "\n",
+    "def find_deadliest():\n",
+    "    '''find_deadliest() returns the most number of deaths\n",
+    "    caused by any hurricane in the entire dataset'''\n",
+    "    deadliest_idx = None\n",
+    "    max_deaths = 0\n",
+    "    for idx in range(project.count()):\n",
+    "        curr_deaths = project.get_deaths(idx)\n",
+    "        if deadliest_idx == None or curr_deaths > max_deaths:\n",
+    "            deadliest_idx = idx\n",
+    "        max_deaths = curr_deaths           \n",
+    "    return max_deaths"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "d8350d81",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.740363Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.740363Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.747015Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.746007Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# execute this cell without changing anything\n",
+    "deadliest_hurr = find_deadliest()\n",
+    "\n",
+    "deadliest_hurr"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "7c84f491",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q35\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "207b1317",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 36:** Fix the indentation errors in the function below.\n",
+    "\n",
+    "This function definition has a **semantic** error, i.e., the code executes without any syntax errors, but the logic behind the code is incorrect. Fix the indentation, so that the code behaves as it is supposed to."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "85be1c35",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.760499Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.760499Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.767422Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.766415Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# fix any indentation errors you find in the code below\n",
+    "\n",
+    "def count_more_common(name1, name2):\n",
+    "    '''count_more_common(name1, name2) returns which of \n",
+    "    the two given hurricane names appears more often\n",
+    "    in the dataset, and returns \"Draw\" if they appear\n",
+    "    an equal number of times'''\n",
+    "    num_name1 = 0\n",
+    "    num_name2 = 0\n",
+    "    for idx in range(project.count()):\n",
+    "        if project.get_name(idx) == name1:\n",
+    "            num_name1 += 1\n",
+    "        elif project.get_name(idx) == name2:\n",
+    "            num_name2 += 1\n",
+    "        if num_name1 > num_name2:\n",
+    "            return name1\n",
+    "        elif num_name1 < num_name2:\n",
+    "            return name2\n",
+    "        else:\n",
+    "            return \"Draw\""
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "b3e6adb3",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:15:49.770422Z",
+     "iopub.status.busy": "2023-10-04T01:15:49.770422Z",
+     "iopub.status.idle": "2023-10-04T01:15:49.777429Z",
+     "shell.execute_reply": "2023-10-04T01:15:49.776422Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# execute this cell without changing anything\n",
+    "count_more_common_1828_louisiana_katrina = count_more_common(\"1812 Louisiana hurricane\", \"Katrina\")\n",
+    "\n",
+    "count_more_common_1828_louisiana_katrina"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "91ce8c59",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q36\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "e709c6a0",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "## Great work! You are now ready to start [P5](https://git.doit.wisc.edu/cdis/cs/courses/cs220/cs220-f23-projects/-/tree/main/p5)"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3 (ipykernel)",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.11.4"
+  },
+  "otter": {
+   "OK_FORMAT": true,
+   "tests": {
+    "q1": {
+     "name": "q1",
+     "points": 0,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q1', name_idx0)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q10": {
+     "name": "q10",
+     "points": 2.5,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q10', dept_code)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q11": {
+     "name": "q11",
+     "points": 2.5,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q11', course_code)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q12": {
+     "name": "q12",
+     "points": 2,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q12', suffix)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q13": {
+     "name": "q13",
+     "points": 3,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q13', billions)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q14": {
+     "name": "q14",
+     "points": 5,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q14', month_idx0)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q15": {
+     "name": "q15",
+     "points": 2.5,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q15', year)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q16": {
+     "name": "q16",
+     "points": 2.5,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q16', day)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q17": {
+     "name": "q17",
+     "points": 5,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q17', day_formed_idx100)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q18": {
+     "name": "q18",
+     "points": 5,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q18', year_formed_idx200)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q19": {
+     "name": "q19",
+     "points": 5,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q19', month_diss_idx300)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q2": {
+     "name": "q2",
+     "points": 1,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q2', name_idx1)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q20": {
+     "name": "q20",
+     "points": 5,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q20', sum_while)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q21": {
+     "name": "q21",
+     "points": 5,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q21', sum_for)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q22": {
+     "name": "q22",
+     "points": 5,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q22', total_deaths_first10)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q23": {
+     "name": "q23",
+     "points": 5,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q23', average_wind_speed)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q24": {
+     "name": "q24",
+     "points": 5,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q24', num_hurr_1000_deaths)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q25": {
+     "name": "q25",
+     "points": 5,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q25', num_hurr_d)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q26": {
+     "name": "q26",
+     "points": 5,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q26', fastest_name)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q27": {
+     "name": "q27",
+     "points": 5,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q27', slowest_name)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q28": {
+     "name": "q28",
+     "points": 2.5,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q28', hurr_between_1980_2002)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q29": {
+     "name": "q29",
+     "points": 2.5,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q29', hurr_between_1901_2000)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q3": {
+     "name": "q3",
+     "points": 2,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q3', mph_idx7)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q30": {
+     "name": "q30",
+     "points": 0,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q30', count_slower_than_200)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q31": {
+     "name": "q31",
+     "points": 0.5,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q31', count_number_of_harvey)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q32": {
+     "name": "q32",
+     "points": 0.5,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q32', count_deadlier_than_0)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q33": {
+     "name": "q33",
+     "points": 1,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q33', find_average_mph_2022)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q34": {
+     "name": "q34",
+     "points": 1,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q34', check_more_than_one_maria)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q35": {
+     "name": "q35",
+     "points": 1,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q35', deadliest_hurr)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q36": {
+     "name": "q36",
+     "points": 1,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q36', count_more_common_1828_louisiana_katrina)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q4": {
+     "name": "q4",
+     "points": 2,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q4', damage_idx5)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q5": {
+     "name": "q5",
+     "points": 5,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q5', name_idx_last)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q6": {
+     "name": "q6",
+     "points": 1.25,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q6', last_digit)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q7": {
+     "name": "q7",
+     "points": 1.25,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q7', area_code)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q8": {
+     "name": "q8",
+     "points": 1.25,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q8', line_number)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q9": {
+     "name": "q9",
+     "points": 1.25,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q9', exchange_code)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    }
+   }
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/lab-p5/project.py b/lab-p5/project.py
new file mode 100644
index 0000000..118e11b
--- /dev/null
+++ b/lab-p5/project.py
@@ -0,0 +1,49 @@
+__hurricane__ = []
+
+
+def __init__():
+    import csv
+    """This function will read in the csv_file and store it in a list of dictionaries"""
+    __hurricane__.clear()
+    with open('hurricanes.csv', mode='r') as csv_file:
+        csv_reader = csv.DictReader(csv_file)
+        for row in csv_reader:
+            __hurricane__.append(row)
+
+
+def count():
+    """This function will return the number of records in the dataset"""
+    return len(__hurricane__)
+
+
+def get_name(idx):
+    """get_name(idx) returns the name of the hurricane in row idx"""
+    return __hurricane__[int(idx)]['name']
+
+
+def get_formed(idx):
+    """get_formed(idx) returns the date of formation of the hurricane in row idx"""
+    return __hurricane__[int(idx)]['formed']
+
+
+def get_dissipated(idx):
+    """get_dissipated(idx) returns the date of dissipation of the hurricane in row idx"""
+    return __hurricane__[int(idx)]['dissipated']
+
+
+def get_mph(idx):
+    """get_mph(idx) returns the mph of the hurricane in row idx"""
+    return int(__hurricane__[int(idx)]['mph'])
+
+
+def get_damage(idx):
+    """get_damage(idx) returns the damage in dollars of the hurricane in row idx"""
+    return __hurricane__[int(idx)]['damage']
+
+
+def get_deaths(idx):
+    """get_deaths(idx) returns the deaths of the hurricane in row idx"""
+    return int(__hurricane__[int(idx)]['deaths'])
+
+
+__init__()
diff --git a/lab-p5/public_tests.py b/lab-p5/public_tests.py
new file mode 100644
index 0000000..8070d01
--- /dev/null
+++ b/lab-p5/public_tests.py
@@ -0,0 +1,840 @@
+#!/usr/bin/python
+# +
+import os, json, math, copy
+from collections import namedtuple
+from bs4 import BeautifulSoup
+
+HIDDEN_FILE = os.path.join("hidden", "hidden_tests.py")
+if os.path.exists(HIDDEN_FILE):
+    import hidden.hidden_tests as hidn
+# -
+
+MAX_FILE_SIZE = 750 # units - KB
+REL_TOL = 6e-04  # relative tolerance for floats
+ABS_TOL = 15e-03  # absolute tolerance for floats
+TOTAL_SCORE = 100 # total score for the project
+
+DF_FILE = 'expected_dfs.html'
+PLOT_FILE = 'expected_plots.json'
+
+PASS = "All test cases passed!"
+
+TEXT_FORMAT = "TEXT_FORMAT"  # question type when expected answer is a type, str, int, float, or bool
+TEXT_FORMAT_UNORDERED_LIST = "TEXT_FORMAT_UNORDERED_LIST"  # question type when the expected answer is a list or a set where the order does *not* matter
+TEXT_FORMAT_ORDERED_LIST = "TEXT_FORMAT_ORDERED_LIST"  # question type when the expected answer is a list or tuple where the order does matter
+TEXT_FORMAT_DICT = "TEXT_FORMAT_DICT"  # question type when the expected answer is a dictionary
+TEXT_FORMAT_SPECIAL_ORDERED_LIST = "TEXT_FORMAT_SPECIAL_ORDERED_LIST"  # question type when the expected answer is a list where order does matter, but with possible ties. Elements are ordered according to values in special_ordered_json (with ties allowed)
+TEXT_FORMAT_NAMEDTUPLE = "TEXT_FORMAT_NAMEDTUPLE"  # question type when expected answer is a namedtuple
+PNG_FORMAT_SCATTER = "PNG_FORMAT_SCATTER" # question type when the expected answer is a scatter plot
+HTML_FORMAT = "HTML_FORMAT" # question type when the expected answer is a DataFrame
+FILE_JSON_FORMAT = "FILE_JSON_FORMAT" # question type when the expected answer is a JSON file
+SLASHES = " SLASHES" # question SUFFIX when expected answer contains paths with slashes
+
+def get_expected_format():
+    """get_expected_format() returns a dict mapping each question to the format
+    of the expected answer."""
+    expected_format = {'q1': 'TEXT_FORMAT',
+                       'q2': 'TEXT_FORMAT',
+                       'q3': 'TEXT_FORMAT',
+                       'q4': 'TEXT_FORMAT',
+                       'q5': 'TEXT_FORMAT',
+                       'q6': 'TEXT_FORMAT',
+                       'q7': 'TEXT_FORMAT',
+                       'q8': 'TEXT_FORMAT',
+                       'q9': 'TEXT_FORMAT',
+                       'q10': 'TEXT_FORMAT',
+                       'q11': 'TEXT_FORMAT',
+                       'q12': 'TEXT_FORMAT',
+                       'q13': 'TEXT_FORMAT',
+                       'q14': 'TEXT_FORMAT',
+                       'q15': 'TEXT_FORMAT',
+                       'q16': 'TEXT_FORMAT',
+                       'q17': 'TEXT_FORMAT',
+                       'q18': 'TEXT_FORMAT',
+                       'q19': 'TEXT_FORMAT',
+                       'q20': 'TEXT_FORMAT',
+                       'q21': 'TEXT_FORMAT',
+                       'q22': 'TEXT_FORMAT',
+                       'q23': 'TEXT_FORMAT',
+                       'q24': 'TEXT_FORMAT',
+                       'q25': 'TEXT_FORMAT',
+                       'q26': 'TEXT_FORMAT',
+                       'q27': 'TEXT_FORMAT',
+                       'q28': 'TEXT_FORMAT',
+                       'q29': 'TEXT_FORMAT',
+                       'q30': 'TEXT_FORMAT',
+                       'q31': 'TEXT_FORMAT',
+                       'q32': 'TEXT_FORMAT',
+                       'q33': 'TEXT_FORMAT',
+                       'q34': 'TEXT_FORMAT',
+                       'q35': 'TEXT_FORMAT',
+                       'q36': 'TEXT_FORMAT'}
+    return expected_format
+
+
+def get_expected_json():
+    """get_expected_json() returns a dict mapping each question to the expected
+    answer (if the format permits it)."""
+    expected_json = {'q1': '1804 New England hurricane',
+                     'q2': '1806 Great Coastal hurricane',
+                     'q3': 105,
+                     'q4': '1M',
+                     'q5': 'Nicole',
+                     'q6': '9',
+                     'q7': '608',
+                     'q8': '5309',
+                     'q9': '867',
+                     'q10': 'CS',
+                     'q11': '220',
+                     'q12': 'B',
+                     'q13': 3.19,
+                     'q14': 10,
+                     'q15': 2023,
+                     'q16': 22,
+                     'q17': 13,
+                     'q18': 1979,
+                     'q19': 9,
+                     'q20': 325,
+                     'q21': 325,
+                     'q22': 1920,
+                     'q23': 99.53971119133574,
+                     'q24': 19,
+                     'q25': 41,
+                     'q26': 'Allen',
+                     'q27': '1975 Tropical Depression Six',
+                     'q28': 131,
+                     'q29': 295,
+                     'q30': 554,
+                     'q31': 3,
+                     'q32': 198,
+                     'q33': 97.77777777777777,
+                     'q34': True,
+                     'q35': 8000,
+                     'q36': 'Katrina'}
+    return expected_json
+
+
+def get_special_json():
+    """get_special_json() returns a dict mapping each question to the expected
+    answer stored in a special format as a list of tuples. Each tuple contains
+    the element expected in the list, and its corresponding value. Any two
+    elements with the same value can appear in any order in the actual list,
+    but if two elements have different values, then they must appear in the
+    same order as in the expected list of tuples."""
+    special_json = {}
+    return special_json
+
+
+def compare(expected, actual, q_format=TEXT_FORMAT):
+    """compare(expected, actual) is used to compare when the format of
+    the expected answer is known for certain."""
+    try:
+        if q_format == TEXT_FORMAT:
+            return simple_compare(expected, actual)
+        elif q_format == TEXT_FORMAT_UNORDERED_LIST:
+            return list_compare_unordered(expected, actual)
+        elif q_format == TEXT_FORMAT_ORDERED_LIST:
+            return list_compare_ordered(expected, actual)
+        elif q_format == TEXT_FORMAT_DICT:
+            return dict_compare(expected, actual)
+        elif q_format == TEXT_FORMAT_SPECIAL_ORDERED_LIST:
+            return list_compare_special(expected, actual)
+        elif q_format == TEXT_FORMAT_NAMEDTUPLE:
+            return namedtuple_compare(expected, actual)
+        elif q_format == PNG_FORMAT_SCATTER:
+            return compare_flip_dicts(expected, actual)
+        elif q_format == HTML_FORMAT:
+            return compare_cell_html(expected, actual)
+        elif q_format == FILE_JSON_FORMAT:
+            return compare_json(expected, actual)
+        else:
+            if expected != actual:
+                return "expected %s but found %s " % (repr(expected), repr(actual))
+    except:
+        if expected != actual:
+            return "expected %s" % (repr(expected))
+    return PASS
+
+
+def print_message(expected, actual, complete_msg=True):
+    """print_message(expected, actual) displays a simple error message."""
+    msg = "expected %s" % (repr(expected))
+    if complete_msg:
+        msg = msg + " but found %s" % (repr(actual))
+    return msg
+
+
+def simple_compare(expected, actual, complete_msg=True):
+    """simple_compare(expected, actual) is used to compare when the expected answer
+    is a type/Nones/str/int/float/bool. When the expected answer is a float,
+    the actual answer is allowed to be within the tolerance limit. Otherwise,
+    the values must match exactly, or a very simple error message is displayed."""
+    msg = PASS
+    if 'numpy' in repr(type((actual))):
+        actual = actual.item()
+    if isinstance(expected, type):
+        if expected != actual:
+            if isinstance(actual, type):
+                msg = "expected %s but found %s" % (expected.__name__, actual.__name__)
+            else:
+                msg = "expected %s but found %s" % (expected.__name__, repr(actual))
+    elif not isinstance(actual, type(expected)) and not (isinstance(expected, (float, int)) and isinstance(actual, (float, int))):
+        msg = "expected to find type %s but found type %s" % (type(expected).__name__, type(actual).__name__)
+    elif isinstance(expected, float):
+        if not math.isclose(actual, expected, rel_tol=REL_TOL, abs_tol=ABS_TOL):
+            msg = print_message(expected, actual, complete_msg)
+    elif isinstance(expected, (list, tuple)) or is_namedtuple(expected):
+        new_msg = print_message(expected, actual, complete_msg)
+        if len(expected) != len(actual):
+            return new_msg
+        for i in range(len(expected)):
+            val = simple_compare(expected[i], actual[i])
+            if val != PASS:
+                return new_msg
+    elif isinstance(expected, dict):
+        new_msg = print_message(expected, actual, complete_msg)
+        if len(expected) != len(actual):
+            return new_msg
+        val = simple_compare(list(expected.keys()), list(actual.keys()))
+        if val != PASS:
+            return new_msg
+        for key in expected:
+            val = simple_compare(expected[key], actual[key])
+            if val != PASS:
+                return new_msg
+    else:
+        if expected != actual:
+            msg = print_message(expected, actual, complete_msg)
+    return msg
+
+
+def intelligent_compare(expected, actual, obj=None):
+    """intelligent_compare(expected, actual) is used to compare when the
+    data type of the expected answer is not known for certain, and default
+    assumptions  need to be made."""
+    if obj == None:
+        obj = type(expected).__name__
+    if is_namedtuple(expected):
+        msg = namedtuple_compare(expected, actual)
+    elif isinstance(expected, (list, tuple)):
+        msg = list_compare_ordered(expected, actual, obj)
+    elif isinstance(expected, set):
+        msg = list_compare_unordered(expected, actual, obj)
+    elif isinstance(expected, (dict)):
+        msg = dict_compare(expected, actual)
+    else:
+        msg = simple_compare(expected, actual)
+    msg = msg.replace("CompDict", "dict").replace("CompSet", "set").replace("NewNone", "None")
+    return msg
+
+
+def is_namedtuple(obj, init_check=True):
+    """is_namedtuple(obj) returns True if `obj` is a namedtuple object
+    defined in the test file."""
+    bases = type(obj).__bases__
+    if len(bases) != 1 or bases[0] != tuple:
+        return False
+    fields = getattr(type(obj), '_fields', None)
+    if not isinstance(fields, tuple):
+        return False
+    if init_check and not type(obj).__name__ in [nt.__name__ for nt in _expected_namedtuples]:
+        return False
+    return True
+
+
+def list_compare_ordered(expected, actual, obj=None):
+    """list_compare_ordered(expected, actual) is used to compare when the
+    expected answer is a list/tuple, where the order of the elements matters."""
+    msg = PASS
+    if not isinstance(actual, type(expected)):
+        msg = "expected to find type %s but found type %s" % (type(expected).__name__, type(actual).__name__)
+        return msg
+    if obj == None:
+        obj = type(expected).__name__
+    for i in range(len(expected)):
+        if i >= len(actual):
+            msg = "at index %d of the %s, expected missing %s" % (i, obj, repr(expected[i]))
+            break
+        val = intelligent_compare(expected[i], actual[i], "sub" + obj)
+        if val != PASS:
+            msg = "at index %d of the %s, " % (i, obj) + val
+            break
+    if len(actual) > len(expected) and msg == PASS:
+        msg = "at index %d of the %s, found unexpected %s" % (len(expected), obj, repr(actual[len(expected)]))
+    if len(expected) != len(actual):
+        msg = msg + " (found %d entries in %s, but expected %d)" % (len(actual), obj, len(expected))
+
+    if len(expected) > 0:
+        try:
+            if msg != PASS and list_compare_unordered(expected, actual, obj) == PASS:
+                msg = msg + " (%s may not be ordered as required)" % (obj)
+        except:
+            pass
+    return msg
+
+
+def list_compare_helper(larger, smaller):
+    """list_compare_helper(larger, smaller) is a helper function which takes in
+    two lists of possibly unequal sizes and finds the item that is not present
+    in the smaller list, if there is such an element."""
+    msg = PASS
+    j = 0
+    for i in range(len(larger)):
+        if i == len(smaller):
+            msg = "expected %s" % (repr(larger[i]))
+            break
+        found = False
+        while not found:
+            if j == len(smaller):
+                val = simple_compare(larger[i], smaller[j - 1], complete_msg=False)
+                break
+            val = simple_compare(larger[i], smaller[j], complete_msg=False)
+            j += 1
+            if val == PASS:
+                found = True
+                break
+        if not found:
+            msg = val
+            break
+    return msg
+
+class NewNone():
+    """alternate class in place of None, which allows for comparison with
+    all other data types."""
+    def __str__(self):
+        return 'None'
+    def __repr__(self):
+        return 'None'
+    def __lt__(self, other):
+        return True
+    def __le__(self, other):
+        return True
+    def __gt__(self, other):
+        return False
+    def __ge__(self, other):
+        return other == None
+    def __eq__(self, other):
+        return other == None
+    def __ne__(self, other):
+        return other != None
+
+class CompDict(dict):
+    """subclass of dict, which allows for comparison with other dicts."""
+    def __init__(self, vals):
+        super(self.__class__, self).__init__(vals)
+        if type(vals) == CompDict:
+            self.val = vals.val
+        elif isinstance(vals, dict):
+            self.val = self.get_equiv(vals)
+        else:
+            raise TypeError("'%s' object cannot be type casted to CompDict class" % type(vals).__name__)
+
+    def get_equiv(self, vals):
+        val = []
+        for key in sorted(list(vals.keys())):
+            val.append((key, vals[key]))
+        return val
+
+    def __str__(self):
+        return str(dict(self.val))
+    def __repr__(self):
+        return repr(dict(self.val))
+    def __lt__(self, other):
+        return self.val < CompDict(other).val
+    def __le__(self, other):
+        return self.val <= CompDict(other).val
+    def __gt__(self, other):
+        return self.val > CompDict(other).val
+    def __ge__(self, other):
+        return self.val >= CompDict(other).val
+    def __eq__(self, other):
+        return self.val == CompDict(other).val
+    def __ne__(self, other):
+        return self.val != CompDict(other).val
+
+class CompSet(set):
+    """subclass of set, which allows for comparison with other sets."""
+    def __init__(self, vals):
+        super(self.__class__, self).__init__(vals)
+        if type(vals) == CompSet:
+            self.val = vals.val
+        elif isinstance(vals, set):
+            self.val = self.get_equiv(vals)
+        else:
+            raise TypeError("'%s' object cannot be type casted to CompSet class" % type(vals).__name__)
+
+    def get_equiv(self, vals):
+        return sorted(list(vals))
+
+    def __str__(self):
+        return str(set(self.val))
+    def __repr__(self):
+        return repr(set(self.val))
+    def __getitem__(self, index):
+        return self.val[index]
+    def __lt__(self, other):
+        return self.val < CompSet(other).val
+    def __le__(self, other):
+        return self.val <= CompSet(other).val
+    def __gt__(self, other):
+        return self.val > CompSet(other).val
+    def __ge__(self, other):
+        return self.val >= CompSet(other).val
+    def __eq__(self, other):
+        return self.val == CompSet(other).val
+    def __ne__(self, other):
+        return self.val != CompSet(other).val
+
+def make_sortable(item):
+    """make_sortable(item) replaces all Nones in `item` with an alternate
+    class that allows for comparison with str/int/float/bool/list/set/tuple/dict.
+    It also replaces all dicts (and sets) with a subclass that allows for
+    comparison with other dicts (and sets)."""
+    if item == None:
+        return NewNone()
+    elif isinstance(item, (type, str, int, float, bool)):
+        return item
+    elif isinstance(item, (list, set, tuple)):
+        new_item = []
+        for subitem in item:
+            new_item.append(make_sortable(subitem))
+        if is_namedtuple(item):
+            return type(item)(*new_item)
+        elif isinstance(item, set):
+            return CompSet(new_item)
+        else:
+            return type(item)(new_item)
+    elif isinstance(item, dict):
+        new_item = {}
+        for key in item:
+            new_item[key] = make_sortable(item[key])
+        return CompDict(new_item)
+    return item
+
+def list_compare_unordered(expected, actual, obj=None):
+    """list_compare_unordered(expected, actual) is used to compare when the
+    expected answer is a list/set where the order of the elements does not matter."""
+    msg = PASS
+    if not isinstance(actual, type(expected)):
+        msg = "expected to find type %s but found type %s" % (type(expected).__name__, type(actual).__name__)
+        return msg
+    if obj == None:
+        obj = type(expected).__name__
+
+    try:
+        sort_expected = sorted(make_sortable(expected))
+        sort_actual = sorted(make_sortable(actual))
+    except:
+        return "unexpected datatype found in %s; expected entries of type %s" % (obj, obj, type(expected[0]).__name__)
+
+    if len(actual) == 0 and len(expected) > 0:
+        msg = "in the %s, missing" % (obj) + sort_expected[0]
+    elif len(actual) > 0 and len(expected) > 0:
+        val = intelligent_compare(sort_expected[0], sort_actual[0])
+        if val.startswith("expected to find type"):
+            msg = "in the %s, " % (obj) + simple_compare(sort_expected[0], sort_actual[0])
+        else:
+            if len(expected) > len(actual):
+                msg = "in the %s, missing " % (obj) + list_compare_helper(sort_expected, sort_actual)
+            elif len(expected) < len(actual):
+                msg = "in the %s, found un" % (obj) + list_compare_helper(sort_actual, sort_expected)
+            if len(expected) != len(actual):
+                msg = msg + " (found %d entries in %s, but expected %d)" % (len(actual), obj, len(expected))
+                return msg
+            else:
+                val = list_compare_helper(sort_expected, sort_actual)
+                if val != PASS:
+                    msg = "in the %s, missing " % (obj) + val + ", but found un" + list_compare_helper(sort_actual,
+                                                                                               sort_expected)
+    return msg
+
+
+def namedtuple_compare(expected, actual):
+    """namedtuple_compare(expected, actual) is used to compare when the
+    expected answer is a namedtuple defined in the test file."""
+    msg = PASS
+    if is_namedtuple(actual, False):
+        msg = "expected namedtuple but found %s" % (type(actual).__name__)
+        return msg
+    if type(expected).__name__ != type(actual).__name__:
+        return "expected namedtuple %s but found namedtuple %s" % (type(expected).__name__, type(actual).__name__)
+    expected_fields = expected._fields
+    actual_fields = actual._fields
+    msg = list_compare_ordered(list(expected_fields), list(actual_fields), "namedtuple attributes")
+    if msg != PASS:
+        return msg
+    for field in expected_fields:
+        val = intelligent_compare(getattr(expected, field), getattr(actual, field))
+        if val != PASS:
+            msg = "at attribute %s of namedtuple %s, " % (field, type(expected).__name__) + val
+            return msg
+    return msg
+
+
+def clean_slashes(item):
+    """clean_slashes()"""
+    if isinstance(item, str):
+        return item.replace("\\", "/").replace("/", os.path.sep)
+    elif item == None or isinstance(item, (type, int, float, bool)):
+        return item
+    elif isinstance(item, (list, tuple, set)) or is_namedtuple(item):
+        new_item = []
+        for subitem in item:
+            new_item.append(clean_slashes(subitem))
+        if is_namedtuple(item):
+            return type(item)(*new_item)
+        else:
+            return type(item)(new_item)
+    elif isinstance(item, dict):
+        new_item = {}
+        for key in item:
+            new_item[clean_slashes(key)] = clean_slashes(item[key])
+        return item
+
+
+def list_compare_special_initialize(special_expected):
+    """list_compare_special_initialize(special_expected) takes in the special
+    ordering stored as a sorted list of items, and returns a list of lists
+    where the ordering among the inner lists does not matter."""
+    latest_val = None
+    clean_special = []
+    for row in special_expected:
+        if latest_val == None or row[1] != latest_val:
+            clean_special.append([])
+            latest_val = row[1]
+        clean_special[-1].append(row[0])
+    return clean_special
+
+
+def list_compare_special(special_expected, actual):
+    """list_compare_special(special_expected, actual) is used to compare when the
+    expected answer is a list with special ordering defined in `special_expected`."""
+    msg = PASS
+    expected_list = []
+    special_order = list_compare_special_initialize(special_expected)
+    for expected_item in special_order:
+        expected_list.extend(expected_item)
+    val = list_compare_unordered(expected_list, actual)
+    if val != PASS:
+        return val
+    i = 0
+    for expected_item in special_order:
+        j = len(expected_item)
+        actual_item = actual[i: i + j]
+        val = list_compare_unordered(expected_item, actual_item)
+        if val != PASS:
+            if j == 1:
+                msg = "at index %d " % (i) + val
+            else:
+                msg = "between indices %d and %d " % (i, i + j - 1) + val
+            msg = msg + " (list may not be ordered as required)"
+            break
+        i += j
+    return msg
+
+
+def dict_compare(expected, actual, obj=None):
+    """dict_compare(expected, actual) is used to compare when the expected answer
+    is a dict."""
+    msg = PASS
+    if not isinstance(actual, type(expected)):
+        msg = "expected to find type %s but found type %s" % (type(expected).__name__, type(actual).__name__)
+        return msg
+    if obj == None:
+        obj = type(expected).__name__
+
+    expected_keys = list(expected.keys())
+    actual_keys = list(actual.keys())
+    val = list_compare_unordered(expected_keys, actual_keys, obj)
+
+    if val != PASS:
+        msg = "bad keys in %s: " % (obj) + val
+    if msg == PASS:
+        for key in expected:
+            new_obj = None
+            if isinstance(expected[key], (list, tuple, set)):
+                new_obj = 'value'
+            elif isinstance(expected[key], dict):
+                new_obj = 'sub' + obj
+            val = intelligent_compare(expected[key], actual[key], new_obj)
+            if val != PASS:
+                msg = "incorrect value for key %s in %s: " % (repr(key), obj) + val
+    return msg
+
+
+def is_flippable(item):
+    """is_flippable(item) determines if the given dict of lists has lists of the
+    same length and is therefore flippable."""
+    item_lens = set(([str(len(item[key])) for key in item]))
+    if len(item_lens) == 1:
+        return PASS
+    else:
+        return "found lists of lengths %s" % (", ".join(list(item_lens)))
+
+def flip_dict_of_lists(item):
+    """flip_dict_of_lists(item) flips a dict of lists into a list of dicts if the
+    lists are of same length."""
+    new_item = []
+    length = len(list(item.values())[0])
+    for i in range(length):
+        new_dict = {}
+        for key in item:
+            new_dict[key] = item[key][i]
+        new_item.append(new_dict)
+    return new_item
+
+def compare_flip_dicts(expected, actual, obj="lists"):
+    """compare_flip_dicts(expected, actual) flips a dict of lists (or dicts) into
+    a list of dicts (or dict of dicts) and then compares the list ignoring order."""
+    msg = PASS
+    example_item = list(expected.values())[0]
+    if isinstance(example_item, (list, tuple)):
+        val = is_flippable(actual)
+        if val != PASS:
+            msg = "expected to find lists of length %d, but " % (len(example_item)) + val
+            return msg
+        msg = list_compare_unordered(flip_dict_of_lists(expected), flip_dict_of_lists(actual), "lists")
+    elif isinstance(example_item, dict):
+        expected_keys = list(example_item.keys())
+        for key in actual:
+            val = list_compare_unordered(expected_keys, list(actual[key].keys()), "dictionary %s" % key)
+            if val != PASS:
+                return val
+        for cat_key in expected_keys:
+            expected_category = {}
+            actual_category = {}
+            for key in expected:
+                expected_category[key] = expected[key][cat_key]
+                actual_category[key] = actual[key][cat_key]
+            val = list_compare_unordered(flip_dict_of_lists(expected), flip_dict_of_lists(actual), "category " + repr(cat_key))
+            if val != PASS:
+                return val
+    return msg
+
+
+def get_expected_tables():
+    """get_expected_tables() reads the html file with the expected DataFrames
+    and returns a dict mapping each question to a html table."""
+    if not os.path.exists(DF_FILE):
+        return None
+
+    expected_tables = {}
+    f = open(DF_FILE, encoding='utf-8')
+    soup = BeautifulSoup(f.read(), 'html.parser')
+    f.close()
+
+    tables = soup.find_all('table')
+    for table in tables:
+        expected_tables[table.get("data-question")] = table
+
+    return expected_tables
+
+def parse_df_html_table(table):
+    """parse_df_html_table(table) takes in a table as a html string and returns
+    a dict mapping each row and column index to the value at that position."""
+    rows = []
+    for tr in table.find_all('tr'):
+        rows.append([])
+        for cell in tr.find_all(['td', 'th']):
+            rows[-1].append(cell.get_text().strip("\n "))
+
+    cells = {}
+    for r in range(1, len(rows)):
+        for c in range(1, len(rows[0])):
+            rname = rows[r][0]
+            cname = rows[0][c]
+            cells[(rname,cname)] = rows[r][c]
+    return cells
+
+
+def get_expected_namedtuples():
+    """get_expected_namedtuples() defines the required namedtuple objects
+    globally. It also returns a tuple of the classes."""
+    expected_namedtuples = []
+    
+    return tuple(expected_namedtuples)
+
+_expected_namedtuples = get_expected_namedtuples()
+
+
+def compare_cell_html(expected, actual):
+    """compare_cell_html(expected, actual) is used to compare when the
+    expected answer is a DataFrame stored in the `expected_dfs` html file."""
+    expected_cells = parse_df_html_table(expected)
+    try:
+        actual_cells = parse_df_html_table(BeautifulSoup(actual, 'html.parser').find('table'))
+    except Exception as e:
+        return "expected to find type DataFrame but found type %s instead" % type(actual).__name__
+
+    expected_cols = list(set(["column %s" % (loc[1]) for loc in expected_cells]))
+    actual_cols = list(set(["column %s" % (loc[1]) for loc in actual_cells]))
+    msg = list_compare_unordered(expected_cols, actual_cols, "DataFrame")
+    if msg != PASS:
+        return msg
+
+    expected_rows = list(set(["row index %s" % (loc[0]) for loc in expected_cells]))
+    actual_rows = list(set(["row index %s" % (loc[0]) for loc in actual_cells]))
+    msg = list_compare_unordered(expected_rows, actual_rows, "DataFrame")
+    if msg != PASS:
+        return msg
+
+    for location, expected in expected_cells.items():
+        location_name = "column {} at index {}".format(location[1], location[0])
+        actual = actual_cells.get(location, None)
+        if actual == None:
+            return "in %s, expected to find %s" % (location_name, repr(expected))
+        try:
+            actual_ans = float(actual)
+            expected_ans = float(expected)
+            if math.isnan(actual_ans) and math.isnan(expected_ans):
+                continue
+        except Exception as e:
+            actual_ans, expected_ans = actual, expected
+        msg = simple_compare(expected_ans, actual_ans)
+        if msg != PASS:
+            return "in %s, " % location_name + msg
+    return PASS
+
+
+def get_expected_plots():
+    """get_expected_plots() reads the json file with the expected plot data
+    and returns a dict mapping each question to a dictionary with the plots data."""
+    if not os.path.exists(PLOT_FILE):
+        return None
+
+    f = open(PLOT_FILE, encoding='utf-8')
+    expected_plots = json.load(f)
+    f.close()
+    return expected_plots
+
+
+def compare_file_json(expected, actual):
+    """compare_file_json(expected, actual) is used to compare when the
+    expected answer is a JSON file."""
+    msg = PASS
+    if not os.path.isfile(expected):
+        return "file %s not found; make sure it is downloaded and stored in the correct directory" % (expected)
+    elif not os.path.isfile(actual):
+        return "file %s not found; make sure that you have created the file with the correct name" % (actual)
+    try:
+        e = open(expected, encoding='utf-8')
+        expected_data = json.load(e)
+        e.close()
+    except json.JSONDecodeError:
+        return "file %s is broken and cannot be parsed; please delete and redownload the file correctly" % (expected)
+    try:
+        a = open(actual, encoding='utf-8')
+        actual_data = json.load(a)
+        a.close()
+    except json.JSONDecodeError:
+        return "file %s is broken and cannot be parsed" % (actual)
+    if type(expected_data) == list:
+        msg = list_compare_ordered(expected_data, actual_data, 'file ' + actual)
+    elif type(expected_data) == dict:
+        msg = dict_compare(expected_data, actual_data)
+    return msg
+
+
+_expected_json = get_expected_json()
+_special_json = get_special_json()
+_expected_plots = get_expected_plots()
+_expected_tables = get_expected_tables()
+_expected_format = get_expected_format()
+
+def check(qnum, actual):
+    """check(qnum, actual) is used to check if the answer in the notebook is
+    the correct answer, and provide useful feedback if the answer is incorrect."""
+    msg = PASS
+    error_msg = "<b style='color: red;'>ERROR:</b> "
+    q_format = _expected_format[qnum]
+
+    if q_format == TEXT_FORMAT_SPECIAL_ORDERED_LIST:
+        expected = _special_json[qnum]
+    elif q_format == PNG_FORMAT_SCATTER:
+        if _expected_plots == None:
+            msg = error_msg + "file %s not parsed; make sure it is downloaded and stored in the correct directory" % (PLOT_FILE)
+        else:
+            expected = _expected_plots[qnum]
+    elif q_format == HTML_FORMAT:
+        if _expected_tables == None:
+            msg = error_msg + "file %s not parsed; make sure it is downloaded and stored in the correct directory" % (DF_FILE)
+        else:
+            expected = _expected_tables[qnum]
+    else:
+        expected = _expected_json[qnum]
+
+    if SLASHES in q_format:
+        q_format = q_format.replace(SLASHES, "")
+        expected = clean_slashes(expected)
+        actual = clean_slashes(actual)
+
+    if msg != PASS:
+        print(msg)
+    else:
+        msg = compare(expected, actual, q_format)
+        if msg != PASS:
+            msg = error_msg + msg
+        print(msg)
+
+
+def check_file_size(path):
+    """check_file_size(path) throws an error if the file is too big to display
+    on Gradescope."""
+    size = os.path.getsize(path)
+    assert size < MAX_FILE_SIZE * 10**3, "Your file is too big to be displayed by Gradescope; please delete unnecessary output cells so your file size is < %s KB" % MAX_FILE_SIZE
+
+
+def reset_hidden_tests():
+    """reset_hidden_tests() resets all hidden tests on the Gradescope autograder where the hidden test file exists"""
+    if not os.path.exists(HIDDEN_FILE):
+        return
+    hidn.reset_hidden_tests()
+
+def rubric_check(rubric_point, ignore_past_errors=True):
+    """rubric_check(rubric_point) uses the hidden test file on the Gradescope autograder to grade the `rubric_point`"""
+    if not os.path.exists(HIDDEN_FILE):
+        print(PASS)
+        return
+    error_msg_1 = "ERROR: "
+    error_msg_2 = "TEST DETAILS: "
+    try:
+        msg = hidn.rubric_check(rubric_point, ignore_past_errors)
+    except:
+        msg = "hidden tests crashed before execution"
+    if msg != PASS:
+        hidn.make_deductions(rubric_point)
+        if msg == "public tests failed":
+            comment = "The public tests have failed, so you will not receive any points for this question."
+            comment += "\nPlease confirm that the public tests pass locally before submitting."
+        elif msg == "answer is hardcoded":
+            comment = "In the datasets for testing hardcoding, all numbers are replaced with random values."
+            comment += "\nIf the answer is the same as in the original dataset for all these datasets"
+            comment += "\ndespite this, that implies that the answer in the notebook is hardcoded."
+            comment += "\nYou will not receive any points for this question."
+        else:
+            comment = hidn.get_comment(rubric_point)
+        msg = error_msg_1 + msg
+        if comment != "":
+            msg = msg + "\n" + error_msg_2 + comment
+    print(msg)
+
+def get_summary():
+    """get_summary() returns the summary of the notebook using the hidden test file on the Gradescope autograder"""
+    if not os.path.exists(HIDDEN_FILE):
+        print("Total Score: %d/%d" % (TOTAL_SCORE, TOTAL_SCORE))
+        return
+    score = min(TOTAL_SCORE, hidn.get_score(TOTAL_SCORE))
+    display_msg = "Total Score: %d/%d" % (score, TOTAL_SCORE)
+    if score != TOTAL_SCORE:
+        display_msg += "\n" + hidn.get_deduction_string()
+    print(display_msg)
+
+def get_score_digit(digit):
+    """get_score_digit(digit) returns the `digit` of the score using the hidden test file on the Gradescope autograder"""
+    if not os.path.exists(HIDDEN_FILE):
+        score = TOTAL_SCORE
+    else:
+        score = hidn.get_score(TOTAL_SCORE)
+    digits = bin(score)[2:]
+    digits = "0"*(7 - len(digits)) + digits
+    return int(digits[6 - digit])
diff --git a/p5/README.md b/p5/README.md
new file mode 100644
index 0000000..8cf8c2f
--- /dev/null
+++ b/p5/README.md
@@ -0,0 +1,48 @@
+# Project 5 (P5): Investigating Hurricane Data
+
+
+## Corrections and clarifications
+
+* None yet.
+
+**Find any issues?** Report to us:
+
+- Takis Chytas <chytas@wisc.edu>
+- Samuel Guo <sguo258@wisc.edu>
+
+## Note on Academic Misconduct:
+You are **allowed** to work with a partner on your projects. While it is not required that you work with a partner, it is **recommended** that you find a project partner as soon as possible as the projects will get progressively harder. Be careful **not** to work with more than one partner. If you worked with a partner on Lab-P5, you are **not** allowed to finish your project with a different partner. You may either continue to work with the same partner, or work on P5 alone. Now may be a good time to review our [course policies](https://cs220.cs.wisc.edu/f23/syllabus.html).
+
+## Instructions:
+
+This project will focus on **loops** and **strings**. To start, download `p5.ipynb`, `project.py`, `public_tests.py` and `hurricanes.csv`.
+
+**Note:** Please go through [Lab-P5](https://git.doit.wisc.edu/cdis/cs/courses/cs220/cs220-f23-projects/-/tree/main/lab-p5) before you start the project. The lab contains some very important information that will be necessary for you to finish the project.
+
+You will work on `p5.ipynb` and hand it in. You should follow the provided directions for each question. Questions have **specific** directions on what **to do** and what **not to do**.
+
+After you've downloaded the file to your `p5` directory, open a terminal window and use `cd` to navigate to that directory. To make sure you're in the correct directory in the terminal, type `pwd`. To make sure you've downloaded the notebook file, type `ls` to ensure that `p5.ipynb`, `project.py`, `public_tests.py`, and `hurricanes.csv` are listed. Then run the command `jupyter notebook` to start Jupyter, and get started on the project!
+
+**IMPORTANT**: You should **NOT** terminate/close the session where you run the above command. If you need to use any other Terminal/PowerShell commands, open a new window instead. Keep constantly saving your notebook file, by either clicking the "Save and Checkpoint" button (floppy disk) or using the appropriate keyboard shortcut.
+
+------------------------------
+
+## IMPORTANT Submission instructions:
+- Review the [Grading Rubric](https://git.doit.wisc.edu/cdis/cs/courses/cs220/cs220-f23-projects/-/tree/main/p5/rubric.md), to ensure that you don't lose points during code review.
+- Login to [Gradescope](https://www.gradescope.com/) and upload the zip file into the P5 assignment.
+- If you completed the project with a **partner**, make sure to **add their name** by clicking "Add Group Member"
+in Gradescope when uploading the P5 zip file.
+
+   <img src="images/add_group_member.png" width="400">
+
+   **Warning:** You will have to add your partner on Gradescope even if you have filled out this information in your `p5.ipynb` notebook.
+
+- It is **your responsibility** to make sure that your project clears auto-grader tests on the Gradescope test system. Otter test results should be available within forty minutes after your submission (usually within ten minutes). **Ignore** the `-/100.00` that is displayed to the right. You should be able to see both PASS / FAIL results for the 20 test cases, which is accessible via Gradescope Dashboard (as in the image below):
+
+    <img src="images/gradescope.png" width="400">
+
+- You can view your **final score** at the **end of the page**. If you pass all tests, then you will receive **full points** for the project. Otherwise, you can see your final score in the **summary** section of the test results (as in the image below):
+
+   <img src="images/summary.png" width="400">
+
+   If you want more details on why you lost points on a particular test, you can scroll up to find more details about the test.
diff --git a/p5/gen_csv.ipynb b/p5/gen_csv.ipynb
new file mode 100644
index 0000000..20a934d
--- /dev/null
+++ b/p5/gen_csv.ipynb
@@ -0,0 +1,1180 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "id": "0093917e",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import pandas as pd\n",
+    "import requests\n",
+    "from bs4 import BeautifulSoup as BS\n",
+    "import csv\n",
+    "import datetime"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "id": "23fa7e95",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "2023"
+      ]
+     },
+     "execution_count": 2,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "FINAL_YEAR_IN_DATASET = int(datetime.datetime.now().date().strftime(\"%Y\"))\n",
+    "\n",
+    "FINAL_YEAR_IN_DATASET"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "id": "83d6a097",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "179"
+      ]
+     },
+     "execution_count": 3,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "year_urls = {}\n",
+    "for year in range(1800, 1850, 10):\n",
+    "    year_urls[year] = \"https://en.wikipedia.org/wiki/%ss_Atlantic_hurricane_seasons\" % (str(year))\n",
+    "for year in range(1850, FINAL_YEAR_IN_DATASET+1):\n",
+    "    year_urls[year] = \"https://en.wikipedia.org/wiki/%s_Atlantic_hurricane_season\" % (str(year))\n",
+    "    \n",
+    "len(year_urls)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "id": "810e4019",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "179"
+      ]
+     },
+     "execution_count": 4,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "year_pages = {}\n",
+    "for year in year_urls:\n",
+    "    r = requests.get(year_urls[year])\n",
+    "    page = BS(r.text, \"html.parser\")\n",
+    "    year_pages[year] = page\n",
+    "len(year_pages)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "id": "db752dde",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "627"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "hurricane_urls = []\n",
+    "for year in year_pages:\n",
+    "    page = year_pages[year]\n",
+    "    for url in page.find_all(\"div\", {\"class\": \"hatnote navigation-not-searchable\"}):\n",
+    "        if 'main article' in url.get_text().lower():\n",
+    "            hurr_url = \"https://en.wikipedia.org\" + url.find('a')['href']\n",
+    "            if hurr_url not in hurricane_urls:\n",
+    "                hurricane_urls.append(hurr_url)\n",
+    "                \n",
+    "len(hurricane_urls)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "id": "13e67b9c",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "['https://en.wikipedia.org/wiki/1804_Antigua%E2%80%93Charleston_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1804_Snow_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1806_Great_Coastal_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1812_Louisiana_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1815_North_Carolina_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/Great_September_Gale_of_1815',\n",
+       " 'https://en.wikipedia.org/wiki/1821_Norfolk_and_Long_Island_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1826_Canary_Islands_storm',\n",
+       " 'https://en.wikipedia.org/wiki/1827_North_Carolina_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/Great_Barbados_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/Racer%27s_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1842_Atlantic_hurricane_season',\n",
+       " 'https://en.wikipedia.org/wiki/Great_Havana_Hurricane_of_1846',\n",
+       " 'https://en.wikipedia.org/wiki/1848_Tampa_Bay_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1856_Last_Island_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1867_San_Narciso_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1869_Saxby_Gale',\n",
+       " 'https://en.wikipedia.org/wiki/1875_Indianola_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1876_San_Felipe_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/Gale_of_1878',\n",
+       " 'https://en.wikipedia.org/wiki/1886_Indianola_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1887_Halloween_tropical_storm',\n",
+       " 'https://en.wikipedia.org/wiki/1888_Louisiana_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1891_Martinique_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1893_San_Roque_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1893_New_York_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1893_Sea_Islands_Hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1893_Cheniere_Caminada_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1894_Greater_Antilles_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1896_Cedar_Keys_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1896_East_Coast_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1898_Windward_Islands_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1898_Georgia_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1899_Carrabelle_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1899_San_Ciriaco_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1900_Galveston_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1901_Louisiana_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1903_Jamaica_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1903_Florida_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1903_New_Jersey_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1906_Mississippi_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1906_Florida_Keys_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1909_Velasco_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1909_Monterrey_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1909_Grand_Isle_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1909_Florida_Keys_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1909_Greater_Antilles_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1910_Cuba_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1912_Jamaica_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1915_Galveston_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1915_New_Orleans_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1916_Gulf_Coast_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1916_Charleston_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1916_Texas_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1916_Virgin_Islands_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1916_Pensacola_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1917_Nueva_Gerona_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1919_Florida_Keys_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1920_Louisiana_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/September_1921_San_Antonio_floods',\n",
+       " 'https://en.wikipedia.org/wiki/1921_Tampa_Bay_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1924_Cuba_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1925_Florida_tropical_storm',\n",
+       " 'https://en.wikipedia.org/wiki/1926_Nassau_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1926_Nova_Scotia_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1926_Louisiana_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1926_Miami_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1926_Havana%E2%80%93Bermuda_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1927_Nova_Scotia_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1928_Fort_Pierce_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1928_Haiti_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1928_Okeechobee_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1929_Bahamas_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1930_Dominican_Republic_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1931_British_Honduras_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1932_Freeport_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1932_Florida%E2%80%93Alabama_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1932_Bahamas_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1932_San_Cipri%C3%A1n_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1932_Cuba_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1933_Trinidad_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1933_Texas_tropical_storm',\n",
+       " 'https://en.wikipedia.org/wiki/1933_Florida%E2%80%93Mexico_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1933_Chesapeake%E2%80%93Potomac_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1933_Cuba%E2%80%93Brownsville_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1933_Treasure_Coast_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1933_Outer_Banks_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1933_Tampico_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1933_Cuba%E2%80%93Bahamas_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1934_Central_America_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1935_Labor_Day_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1935_Cuba_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1935_J%C3%A9r%C3%A9mie_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1935_Yankee_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1936_Mid-Atlantic_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1938_New_England_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1940_Louisiana_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1940_South_Carolina_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1940_New_England_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1940_Nova_Scotia_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1941_Texas_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1941_Florida_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1942_Matagorda_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1942_Belize_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1943_Surprise_Hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1944_Jamaica_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1944_Great_Atlantic_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1944_Cuba%E2%80%93Florida_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1945_Outer_Banks_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1945_Texas_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1945_Homestead_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1946_Florida_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1947_Fort_Lauderdale_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1947_Cape_Sable_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1948_Bermuda%E2%80%93Newfoundland_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/September_1948_Florida_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1948_Miami_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1949_Florida_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1949_Texas_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Able_(1950)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Baker_(1950)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Dog_(1950)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Easy_(1950)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_King',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_cyclone_naming',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Able_(1951)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Charlie_(1951)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_How',\n",
+       " 'https://en.wikipedia.org/wiki/1952_Groundhog_Day_tropical_storm',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Able_(1952)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Fox_(1952)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Alice_(1953)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Barbara_(1953)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Carol_(1953)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Florence_(1953)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Alice_(June_1954)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Carol',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Edna',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Hazel',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Alice_(December_1954)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Connie',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Diane',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Ione',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Hilda_(1955)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Janet',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Betsy_(1956)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Flossy_(1956)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Greta_(1956)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Audrey',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Carrie',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Ella_(1958)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Helene_(1958)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Arlene_(1959)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Cindy_(1959)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Debra_(1959)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Gracie',\n",
+       " 'https://en.wikipedia.org/wiki/1960_Texas_tropical_storm',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Abby_(1960)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Brenda_(1960)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Donna',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Ethel_(1960)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Anna_(1961)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Carla',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Debbie_(1961)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Esther',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Hattie',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Alma_(1962)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Daisy_(1962)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Arlene_(1963)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Cindy_(1963)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Edith_(1963)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Flora',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Ginny',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Abby_(1964)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Cleo',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Dora',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Gladys_(1964)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Hilda',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Isbell',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Betsy',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Debbie_(1965)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Alma_(1966)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Faith',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Inez',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Beulah',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Doria',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Abby_(1968)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Candy',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Gladys_(1968)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Camille',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Debbie_(1969)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Francelia',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Gerda',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Inga',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Martha',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Alma_(1970)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Becky_(1970)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Celia',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Dorothy_(1970)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Ella_(1970)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Felice',\n",
+       " 'https://en.wikipedia.org/wiki/1970_Caribbean%E2%80%93Azores_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/1970_Canada_hurricane',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Beth',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Doria',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Fern',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Edith_(1971)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Ginger',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Irene%E2%80%93Olivia',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Laura_(1971)',\n",
+       " 'https://en.wikipedia.org/wiki/Subtropical_Storm_Alpha_(1972)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Agnes',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Carrie_(1972)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Brenda_(1973)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Christine_(1973)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Delia_(1973)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Fran_(1973)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Gilda_(1973)',\n",
+       " 'https://en.wikipedia.org/wiki/Subtropical_Storm_One_(1974)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Alma_(1974)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Carmen',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Fifi%E2%80%93Orlene',\n",
+       " 'https://en.wikipedia.org/wiki/Subtropical_Storm_Four_(1974)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Amy_(1975)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Depression_Six_(1975)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Caroline',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Eloise',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Gladys_(1975)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Belle',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Dottie',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Emmy',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Anita',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Babe',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Amelia_(1978)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Cora',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Debra_(1978)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Ella_(1978)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Greta%E2%80%93Olivia',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Depression_One_(1979)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Bob_(1979)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Claudette_(1979)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_David',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Frederic',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Elena_(1979)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Henri_(1979)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Allen',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Danielle_(1980)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Hermine_(1980)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Jeanne_(1980)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Karl_(1980)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Arlene_(1981)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Bret_(1981)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Dennis_(1981)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Depression_Eight_(1981)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Katrina_(1981)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Alberto_(1982)',\n",
+       " 'https://en.wikipedia.org/wiki/1982_Florida_subtropical_storm',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Beryl_(1982)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Chris_(1982)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Debby_(1982)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Alicia',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Barry_(1983)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Dean_(1983)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Diana_(1984)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Fran_(1984)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Isidore_(1984)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Josephine_(1984)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Klaus_(1984)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Lili_(1984)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Bob_(1985)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Danny_(1985)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Elena',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Gloria',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Juan_(1985)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Kate_(1985)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Bonnie_(1986)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Charley_(1986)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Danielle_(1986)',\n",
+       " 'https://en.wikipedia.org/wiki/1987_Gulf_Coast_tropical_storm',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Arlene_(1987)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Emily_(1987)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Floyd_(1987)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Depression_Fourteen_(1987)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Depression_One_(1988)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Beryl_(1988)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Chris_(1988)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Debby_(1988)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Florence_(1988)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Gilbert',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Joan%E2%80%93Miriam',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Keith_(1988)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Allison_(1989)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Chantal_(1989)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Dean_(1989)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Gabrielle_(1989)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Hugo',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Jerry_(1989)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Bertha_(1990)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Diana',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Gustav_(1990)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Klaus_(1990)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Lili_(1990)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Marco_(1990)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Bob',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Grace_(1991)',\n",
+       " 'https://en.wikipedia.org/wiki/1991_Perfect_Storm',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Depression_One_(1992)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Andrew',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Bonnie_(1992)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Danielle_(1992)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Depression_One_(1993)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Arlene_(1993)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Bret_(1993)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Cindy_(1993)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Emily_(1993)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Gert',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Alberto_(1994)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Beryl_(1994)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Debby_(1994)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Florence_(1994)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Gordon',\n",
+       " 'https://en.wikipedia.org/wiki/Christmas_1994_nor%27easter',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Allison_(1995)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Dean_(1995)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Erin_(1995)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Felix_(1995)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Gabrielle_(1995)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Iris_(1995)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Jerry_(1995)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Luis',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Marilyn',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Opal',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Roxanne',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Tanya',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Arthur_(1996)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Bertha_(1996)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Cesar%E2%80%93Douglas',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Dolly_(1996)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Edouard_(1996)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Fran',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Hortense',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Josephine_(1996)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Lili_(1996)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Marco_(1996)',\n",
+       " 'https://en.wikipedia.org/wiki/1996_Lake_Huron_cyclone',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Danny_(1997)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Erika_(1997)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Bonnie_(1998)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Charley_(1998)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Danielle_(1998)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Earl_(1998)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Frances_(1998)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Georges',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Hermine_(1998)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Mitch',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Bret',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Dennis_(1999)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Floyd',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Gert_(1999)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Harvey_(1999)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Irene_(1999)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Jose_(1999)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Katrina_(1999)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Lenny',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Alberto_(2000)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Beryl_(2000)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Debby_(2000)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Florence_(2000)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Gordon_(2000)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Helene_(2000)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Isaac_(2000)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Joyce_(2000)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Keith',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Leslie_(2000)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Michael_(2000)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Allison',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Barry_(2001)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Chantal_(2001)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Dean_(2001)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Erin_(2001)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Gabrielle_(2001)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Humberto_(2001)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Iris',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Jerry_(2001)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Karen_(2001)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Michelle',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Olga',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Arthur_(2002)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Bertha_(2002)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Cristobal_(2002)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Edouard_(2002)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Fay_(2002)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Gustav_(2002)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Hanna_(2002)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Isidore',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Kyle_(2002)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Lili',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Ana_(2003)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Bill_(2003)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Claudette_(2003)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Erika_(2003)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Fabian',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Grace_(2003)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Henri_(2003)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Isabel',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Juan',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Kate_(2003)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Larry_(2003)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Nicholas_(2003)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Odette_(2003)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Alex_(2004)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Bonnie_(2004)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Charley',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Earl_(2004)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Frances',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Gaston_(2004)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Ivan',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Jeanne',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Karl_(2004)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Matthew_(2004)',\n",
+       " 'https://en.wikipedia.org/wiki/Subtropical_Storm_Nicole',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Arlene_(2005)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Bret_(2005)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Cindy_(2005)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Dennis',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Emily_(2005)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Gert_(2005)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Irene_(2005)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Jose_(2005)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Katrina',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Maria_(2005)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Nate_(2005)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Ophelia_(2005)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Rita',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Stan',\n",
+       " 'https://en.wikipedia.org/wiki/2005_Azores_subtropical_storm',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Tammy',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Vince',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Wilma',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Alpha_(2005)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Beta',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Gamma_(2005)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Delta_(2005)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Epsilon_(2005)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Zeta_(2005)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Alberto_(2006)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Beryl_(2006)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Chris_(2006)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Debby_(2006)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Ernesto_(2006)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Florence_(2006)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Gordon_(2006)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Helene_(2006)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Isaac_(2006)',\n",
+       " 'https://en.wikipedia.org/wiki/Subtropical_Storm_Andrea_(2007)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Barry_(2007)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Chantal_(2007)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Dean',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Erin_(2007)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Felix',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Gabrielle_(2007)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Humberto_(2007)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Depression_Ten_(2007)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Lorenzo_(2007)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Noel',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Olga_(2007)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Arthur_(2008)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Bertha_(2008)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Cristobal_(2008)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Dolly_(2008)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Edouard_(2008)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Fay_(2008)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Gustav',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Hanna_(2008)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Ike',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Kyle_(2008)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Laura_(2008)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Marco_(2008)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Omar',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Paloma',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Ana_(2009)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Bill_(2009)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Claudette_(2009)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Danny_(2009)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Erika_(2009)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Fred_(2009)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Grace_(2009)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Ida_(2009)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Alex_(2010)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Depression_Two_(2010)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Bonnie_(2010)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Colin_(2010)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Depression_Five_(2010)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Earl_(2010)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Hermine_(2010)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Igor',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Julia_(2010)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Karl',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Matthew_(2010)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Nicole_(2010)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Otto_(2010)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Paula',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Richard',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Shary',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Tomas',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Arlene_(2011)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Bret_(2011)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Don_(2011)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Emily_(2011)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Harvey_(2011)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Irene',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Katia_(2011)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Lee_(2011)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Maria_(2011)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Nate_(2011)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Ophelia_(2011)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Rina',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Beryl_(2012)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Debby_(2012)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Ernesto_(2012)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Helene_(2012)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Isaac_(2012)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Leslie_(2012)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Nadine',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Rafael',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Sandy',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Andrea_(2013)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Barry_(2013)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Chantal_(2013)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Fernand_(2013)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Ingrid',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Karen_(2013)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Arthur',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Bertha_(2014)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Cristobal',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Dolly_(2014)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Fay',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Gonzalo',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Ana_(2015)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Bill_(2015)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Danny_(2015)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Erika',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Fred_(2015)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Joaquin',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Kate_(2015)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Alex_(2016)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Bonnie_(2016)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Colin_(2016)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Earl_(2016)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Hermine',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Julia_(2016)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Matthew',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Nicole_(2016)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Otto',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Bret_(2017)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Cindy_(2017)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Emily_(2017)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Franklin_(2017)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Gert_(2017)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Harvey',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Irma',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Jose_(2017)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Katia_(2017)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Maria',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Nate',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Ophelia_(2017)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Philippe_(2017)',\n",
+       " 'https://en.wikipedia.org/wiki/Potential_Tropical_Cyclone_Ten',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Alberto_(2018)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Beryl',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Chris_(2018)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Florence',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Gordon_(2018)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Kirk_(2018)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Leslie_(2018)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Michael',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Barry_(2019)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Dorian',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Fernand_(2019)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Humberto_(2019)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Imelda',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Karen_(2019)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Lorenzo_(2019)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Melissa_(2019)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Nestor_(2019)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Pablo',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Olga_(2019)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Arthur_(2020)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Bertha_(2020)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_storms_Amanda_and_Cristobal',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Fay_(2020)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Hanna_(2020)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Isaias',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Laura',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Marco_(2020)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Nana_(2020)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Paulette',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Sally',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Teddy',\n",
+       " 'https://en.wikipedia.org/wiki/Subtropical_Storm_Alpha_(2020)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Beta_(2020)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Gamma',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Delta',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Epsilon_(2020)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Zeta',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Eta',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Iota',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Claudette_(2021)',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Danny_(2021)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Elsa',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Fred_(2021)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Grace',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Henri',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Ida',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Larry',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Mindy',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Nicholas',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Sam',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Alex_(2022)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Bonnie_(2022)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Danielle_(2022)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Earl_(2022)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Fiona',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Ian',\n",
+       " 'https://en.wikipedia.org/wiki/Tropical_Storm_Hermine_(2022)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Julia_(2022)',\n",
+       " 'https://en.wikipedia.org/wiki/Hurricane_Nicole_(2022)']"
+      ]
+     },
+     "execution_count": 6,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "hurricane_urls"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "id": "ee7a9025",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "pages = {}\n",
+    "for url in hurricane_urls:\n",
+    "    r = requests.get(url)\n",
+    "    pages[url] = BS(r.text, \"html.parser\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "id": "119d1259",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "627"
+      ]
+     },
+     "execution_count": 8,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "hurr_data = {}\n",
+    "for url in pages:\n",
+    "    page = pages[url]\n",
+    "    title_full = page.find('title').get_text()\n",
+    "    title = title_full.split(\"-\")[0].strip()\n",
+    "    table = page.find('table')\n",
+    "    fields = {}\n",
+    "    for tr in page.find_all(\"tr\"):\n",
+    "        tds = tr.find_all([\"td\", \"th\"])\n",
+    "        tds = [td.get_text().strip().lower() for td in tds]\n",
+    "        if len(tds) != 2:\n",
+    "            continue\n",
+    "        fields[tds[0].replace(\"\\xa0\", \" \")] = tds[1].strip().lower().replace(\",\", \"\").replace(\"\\xa0\", \" \")\n",
+    "    hurr_data[title] = fields\n",
+    "\n",
+    "len(hurr_data)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "id": "013820db",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def clean_name(hurr, formed):\n",
+    "    name = hurr.replace('Tropical Storm', 'Hurricane').replace('Tropical storms', 'Hurricane').split('Hurricane')[-1].strip()\n",
+    "    if name == '':\n",
+    "        name = hurr\n",
+    "    name = name.split('(')[0].strip()\n",
+    "    for hurr_type in ['subtropical storm', 'tropical depression', 'tropical cyclone', 'potential tropical cyclone']:\n",
+    "        if name.lower().startswith(hurr_type):\n",
+    "            name = formed[-4:] + ' ' + name\n",
+    "    return name"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "id": "8d2f12be",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def clean_date(date):\n",
+    "    date = date.split('(')[0].replace('  ', ' ').strip()\n",
+    "    if len(date.split()) != 3:\n",
+    "        return None\n",
+    "    month_list = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december']\n",
+    "    months = {}\n",
+    "    for month in range(len(month_list)):\n",
+    "        mm = str(month+1)\n",
+    "        if len(mm) < 2:\n",
+    "            mm = '0' + mm\n",
+    "        months[month_list[month]] = mm\n",
+    "    month, dd, yyyy = date.split()\n",
+    "    if dd in month_list:\n",
+    "        month, dd = dd, month\n",
+    "    mm = months[month]\n",
+    "    if len(dd) < 2:\n",
+    "            dd = '0' + dd\n",
+    "    return '%s/%s/%s' % (mm[:2], dd[:2], yyyy[:4])"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "id": "b5556480",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def clean_damage(damage):\n",
+    "    if damage in ['unknown', 'millions', 'moderate']:\n",
+    "        return None\n",
+    "    elif damage in ['minimal', 'none', 'none reported', 'unspecified']:\n",
+    "        return '0'\n",
+    "    damage = damage.split(\"$\")[-1].split('–')[-1].split(\" \")\n",
+    "    try:\n",
+    "        num = float(damage[0])\n",
+    "    except:\n",
+    "        return None\n",
+    "    if int(num) == num:\n",
+    "        num = int(num)\n",
+    "    num = str(num)\n",
+    "    if len(damage) > 1 and damage[1] == \"million\":\n",
+    "        final_damage = num + \"M\"\n",
+    "    elif len(damage) > 1 and damage[1] == \"billion\":\n",
+    "        final_damage = num + \"B\"\n",
+    "    elif str(damage[0])[-3:] == \"000\":\n",
+    "        final_damage = num[:-3] + \"K\"\n",
+    "    else:\n",
+    "        final_damage = num\n",
+    "    return final_damage"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "id": "62b7ff3f",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def clean_deaths(deaths):\n",
+    "    if 'no ' in deaths or 'none' in deaths:\n",
+    "        return '0'\n",
+    "    deaths = deaths.replace('≥', '').replace('at least', '').replace('up to', '').replace('over', '')\n",
+    "    deaths = deaths.replace('c.', '').replace('+', '').replace('>', '').replace('~', '')\n",
+    "    if '–' in deaths:\n",
+    "        deaths = deaths.split('–')[1]\n",
+    "    elif '-' in deaths:\n",
+    "        deaths = deaths.split('-')[1]\n",
+    "    deaths = deaths.replace('indirect', 'total').replace('direct', 'total').replace('all', 'total')\n",
+    "    deaths = deaths.replace('reported', 'total').replace('related', 'total').replace('confirmed', 'total')\n",
+    "    deaths = deaths.replace('deaths', 'total').replace('dead', 'total').replace('overall', 'total')\n",
+    "    deaths = deaths.split('[')[0].split()[0]\n",
+    "    deaths = deaths.split('total')[0].strip('( ')\n",
+    "    try:\n",
+    "        return str(int(deaths))\n",
+    "    except:\n",
+    "        return None"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 13,
+   "id": "a280140b",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "554"
+      ]
+     },
+     "execution_count": 13,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "full_data_hurr = []\n",
+    "for hurr in hurr_data:\n",
+    "    bad_hurr = False\n",
+    "    fields = list(hurr_data[hurr].keys())\n",
+    "    for key in ['formed', 'dissipated', 'highest winds', 'fatalities', 'damage']:\n",
+    "        if key not in fields:\n",
+    "            bad_hurr = True\n",
+    "    for key in fields:\n",
+    "        if key not in ['formed', 'dissipated', 'highest winds', 'fatalities', 'damage']:\n",
+    "            hurr_data[hurr].pop(key)\n",
+    "    if bad_hurr == False:\n",
+    "        formed = clean_date(hurr_data[hurr]['formed'])\n",
+    "        dissipated = clean_date(hurr_data[hurr]['dissipated'])\n",
+    "        mph = int(hurr_data[hurr]['highest winds'].split(\":\")[-1].split('mph')[0].split('(')[-1].strip())\n",
+    "        damage = clean_damage(hurr_data[hurr]['damage'])\n",
+    "        deaths = clean_deaths(hurr_data[hurr]['fatalities'])\n",
+    "        if formed != None and dissipated != None and damage != None and deaths != None:\n",
+    "            final_hurr_data = {}\n",
+    "            final_hurr_data['name'] = clean_name(hurr, formed)\n",
+    "            final_hurr_data['formed'] = formed\n",
+    "            final_hurr_data['dissipated'] = dissipated\n",
+    "            final_hurr_data['mph'] = mph\n",
+    "            final_hurr_data['damage'] = damage\n",
+    "            final_hurr_data['deaths'] = deaths\n",
+    "            full_data_hurr.append(final_hurr_data)\n",
+    "        \n",
+    "len(full_data_hurr)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 14,
+   "id": "7374ea3b",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Open 'hurricanes.csv' to find the extracted data\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<div>\n",
+       "<style scoped>\n",
+       "    .dataframe tbody tr th:only-of-type {\n",
+       "        vertical-align: middle;\n",
+       "    }\n",
+       "\n",
+       "    .dataframe tbody tr th {\n",
+       "        vertical-align: top;\n",
+       "    }\n",
+       "\n",
+       "    .dataframe thead th {\n",
+       "        text-align: right;\n",
+       "    }\n",
+       "</style>\n",
+       "<table border=\"1\" class=\"dataframe\">\n",
+       "  <thead>\n",
+       "    <tr style=\"text-align: right;\">\n",
+       "      <th></th>\n",
+       "      <th>name</th>\n",
+       "      <th>formed</th>\n",
+       "      <th>dissipated</th>\n",
+       "      <th>mph</th>\n",
+       "      <th>damage</th>\n",
+       "      <th>deaths</th>\n",
+       "    </tr>\n",
+       "  </thead>\n",
+       "  <tbody>\n",
+       "    <tr>\n",
+       "      <th>0</th>\n",
+       "      <td>1804 New England hurricane</td>\n",
+       "      <td>10/04/1804</td>\n",
+       "      <td>10/11/1804</td>\n",
+       "      <td>110</td>\n",
+       "      <td>100K</td>\n",
+       "      <td>16</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>1</th>\n",
+       "      <td>1806 Great Coastal hurricane</td>\n",
+       "      <td>08/17/1806</td>\n",
+       "      <td>08/25/1806</td>\n",
+       "      <td>110</td>\n",
+       "      <td>171K</td>\n",
+       "      <td>24</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>2</th>\n",
+       "      <td>1812 Louisiana hurricane</td>\n",
+       "      <td>08/15/1812</td>\n",
+       "      <td>08/20/1812</td>\n",
+       "      <td>115</td>\n",
+       "      <td>6M</td>\n",
+       "      <td>100</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>3</th>\n",
+       "      <td>1821 Norfolk and Long Island hurricane</td>\n",
+       "      <td>09/01/1821</td>\n",
+       "      <td>09/04/1821</td>\n",
+       "      <td>130</td>\n",
+       "      <td>200K</td>\n",
+       "      <td>22</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>4</th>\n",
+       "      <td>1848 Tampa Bay hurricane</td>\n",
+       "      <td>09/23/1848</td>\n",
+       "      <td>09/28/1848</td>\n",
+       "      <td>130</td>\n",
+       "      <td>20K</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>...</th>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>549</th>\n",
+       "      <td>Fiona</td>\n",
+       "      <td>09/14/2022</td>\n",
+       "      <td>09/27/2022</td>\n",
+       "      <td>140</td>\n",
+       "      <td>3.09B</td>\n",
+       "      <td>29</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>550</th>\n",
+       "      <td>Ian</td>\n",
+       "      <td>09/23/2022</td>\n",
+       "      <td>10/01/2022</td>\n",
+       "      <td>160</td>\n",
+       "      <td>113B</td>\n",
+       "      <td>161</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>551</th>\n",
+       "      <td>Hermine</td>\n",
+       "      <td>09/23/2022</td>\n",
+       "      <td>09/26/2022</td>\n",
+       "      <td>40</td>\n",
+       "      <td>9.8M</td>\n",
+       "      <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>552</th>\n",
+       "      <td>Julia</td>\n",
+       "      <td>10/07/2022</td>\n",
+       "      <td>10/10/2022</td>\n",
+       "      <td>85</td>\n",
+       "      <td>406M</td>\n",
+       "      <td>35</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>553</th>\n",
+       "      <td>Nicole</td>\n",
+       "      <td>11/07/2022</td>\n",
+       "      <td>11/11/2022</td>\n",
+       "      <td>75</td>\n",
+       "      <td>1B</td>\n",
+       "      <td>11</td>\n",
+       "    </tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "<p>554 rows × 6 columns</p>\n",
+       "</div>"
+      ],
+      "text/plain": [
+       "                                       name      formed  dissipated  mph  \\\n",
+       "0                1804 New England hurricane  10/04/1804  10/11/1804  110   \n",
+       "1              1806 Great Coastal hurricane  08/17/1806  08/25/1806  110   \n",
+       "2                  1812 Louisiana hurricane  08/15/1812  08/20/1812  115   \n",
+       "3    1821 Norfolk and Long Island hurricane  09/01/1821  09/04/1821  130   \n",
+       "4                  1848 Tampa Bay hurricane  09/23/1848  09/28/1848  130   \n",
+       "..                                      ...         ...         ...  ...   \n",
+       "549                                   Fiona  09/14/2022  09/27/2022  140   \n",
+       "550                                     Ian  09/23/2022  10/01/2022  160   \n",
+       "551                                 Hermine  09/23/2022  09/26/2022   40   \n",
+       "552                                   Julia  10/07/2022  10/10/2022   85   \n",
+       "553                                  Nicole  11/07/2022  11/11/2022   75   \n",
+       "\n",
+       "    damage deaths  \n",
+       "0     100K     16  \n",
+       "1     171K     24  \n",
+       "2       6M    100  \n",
+       "3     200K     22  \n",
+       "4      20K      0  \n",
+       "..     ...    ...  \n",
+       "549  3.09B     29  \n",
+       "550   113B    161  \n",
+       "551   9.8M      0  \n",
+       "552   406M     35  \n",
+       "553     1B     11  \n",
+       "\n",
+       "[554 rows x 6 columns]"
+      ]
+     },
+     "execution_count": 14,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "df = pd.DataFrame(full_data_hurr)\n",
+    "df.to_csv(\"hurricanes.csv\", index=False)\n",
+    "print(\"Open 'hurricanes.csv' to find the extracted data\")\n",
+    "df"
+   ]
+  }
+ ],
+ "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"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/p5/hurricanes.csv b/p5/hurricanes.csv
new file mode 100644
index 0000000..fb683b4
--- /dev/null
+++ b/p5/hurricanes.csv
@@ -0,0 +1,555 @@
+name,formed,dissipated,mph,damage,deaths
+1804 New England hurricane,10/04/1804,10/11/1804,110,100K,16
+1806 Great Coastal hurricane,08/17/1806,08/25/1806,110,171K,24
+1812 Louisiana hurricane,08/15/1812,08/20/1812,115,6M,100
+1821 Norfolk and Long Island hurricane,09/01/1821,09/04/1821,130,200K,22
+1848 Tampa Bay hurricane,09/23/1848,09/28/1848,130,20K,0
+1867 San Narciso hurricane,10/27/1867,10/31/1867,125,1M,811
+1875 Indianola hurricane,09/08/1875,09/18/1875,115,4M,800
+Gale of 1878,10/18/1878,10/23/1878,105,2M,71
+1886 Indianola hurricane,08/12/1886,08/21/1886,150,200K,74
+1887 Halloween tropical storm,10/29/1887,11/06/1887,70,7K,2
+1891 Martinique hurricane,08/18/1891,08/25/1891,125,10M,700
+1893 Sea Islands hurricane,08/15/1893,09/02/1893,120,1M,2000
+1893 Cheniere Caminada hurricane,09/27/1893,10/05/1893,130,5M,2000
+1894 Greater Antilles hurricane,09/18/1894,10/01/1894,120,5.09M,227
+1896 Cedar Keys hurricane,09/22/1896,09/30/1896,125,338M,202
+1896 East Coast hurricane,10/07/1896,10/13/1896,100,500K,4
+1898 Windward Islands hurricane,09/05/1898,09/19/1898,110,2.5M,392
+1898 Georgia hurricane,09/25/1898,10/06/1898,130,1.5M,179
+1899 Carrabelle hurricane,07/28/1899,08/02/1899,100,1M,9
+1899 San Ciriaco hurricane,08/03/1899,09/12/1899,150,20M,3855
+1900 Galveston hurricane,08/27/1900,09/15/1900,145,1.25B,8000
+1901 Louisiana hurricane,08/02/1901,08/18/1901,90,1M,15
+1903 Jamaica hurricane,08/06/1903,08/16/1903,120,10M,188
+1903 Florida hurricane,09/09/1903,09/16/1903,90,500K,14
+1903 New Jersey hurricane,09/12/1903,09/17/1903,100,8M,57
+1906 Mississippi hurricane,09/19/1906,09/29/1906,120,19221,134
+1906 Florida Keys hurricane,10/08/1906,10/23/1906,120,4.14M,240
+1909 Velasco hurricane,07/13/1909,07/22/1909,115,2M,41
+1909 Monterrey hurricane,08/20/1909,08/28/1909,120,50M,4000
+1909 Grand Isle hurricane,09/13/1909,09/22/1909,120,11M,400
+1909 Florida Keys hurricane,10/06/1909,10/13/1909,120,3M,34
+1909 Greater Antilles hurricane,11/08/1909,11/14/1909,105,10M,198
+1910 Cuba hurricane,10/09/1910,10/23/1910,150,1.25M,116
+1912 Jamaica hurricane,11/11/1912,11/22/1912,115,1.5M,105
+1915 Galveston hurricane,08/05/1915,08/23/1915,145,30M,405
+1915 New Orleans hurricane,09/21/1915,10/01/1915,145,13M,279
+1916 Gulf Coast hurricane,06/28/1916,07/10/1916,120,12.5M,34
+1916 Charleston hurricane,07/11/1916,07/15/1916,115,22M,84
+1916 Texas hurricane,08/12/1916,08/20/1916,130,11.8M,37
+1916 Virgin Islands hurricane,10/06/1916,10/15/1916,120,2M,41
+1916 Pensacola hurricane,10/09/1916,10/19/1916,110,100K,29
+1917 Nueva Gerona hurricane,09/20/1917,09/30/1917,150,2.17M,44
+1919 Florida Keys hurricane,09/02/1919,09/16/1919,150,22M,772
+1920 Louisiana hurricane,09/16/1920,09/23/1920,100,1.45M,1
+1921 Tampa Bay hurricane,10/20/1921,10/30/1921,140,10M,8
+1925 Florida tropical storm,11/27/1925,12/01/1925,65,3M,73
+1926 Nassau hurricane,07/22/1926,08/02/1926,140,7.85M,287
+1926 Louisiana hurricane,08/20/1926,08/27/1926,115,6M,25
+1926 Miami hurricane,09/11/1926,09/22/1926,150,100M,539
+1927 Nova Scotia hurricane,08/18/1927,08/29/1927,125,1.6M,192
+1928 Fort Pierce hurricane,08/03/1928,08/14/1928,105,235K,2
+1928 Haiti hurricane,08/07/1928,08/17/1928,90,2M,210
+1928 Okeechobee hurricane,09/06/1928,09/21/1928,160,1.7B,4112
+1929 Bahamas hurricane,09/22/1929,10/04/1929,155,9.31M,155
+1930 San Zenón hurricane,08/29/1930,09/17/1930,155,50M,8000
+1931 British Honduras hurricane,09/06/1931,09/13/1931,130,7.5M,2500
+1932 Freeport hurricane,08/12/1932,08/15/1932,150,7.5M,40
+1932 Florida–Alabama hurricane,08/26/1932,09/04/1932,85,229K,1
+1932 San Ciprián hurricane,09/25/1932,10/02/1932,145,35.8M,272
+1932 Cuba hurricane,10/30/1932,11/14/1932,175,40M,3103
+1933 Trinidad hurricane,06/24/1933,07/08/1933,110,7.2M,35
+1933 Florida–Mexico hurricane,07/24/1933,08/05/1933,90,67.8M,39
+1933 Chesapeake–Potomac hurricane,08/13/1933,08/28/1933,140,41.2M,47
+1933 Cuba–Brownsville hurricane,08/22/1933,09/05/1933,160,27.9M,179
+1933 Treasure Coast hurricane,08/31/1933,09/07/1933,140,3M,3
+1933 Outer Banks hurricane,09/08/1933,09/22/1933,140,4.75M,24
+1933 Tampico hurricane,09/16/1933,09/25/1933,160,5M,184
+1933 Cuba–Bahamas hurricane,10/01/1933,10/09/1933,125,1.1M,10
+1934 Central America hurricane,06/04/1934,06/21/1934,100,9.46M,506
+1935 Labor Day hurricane,08/29/1935,09/10/1935,185,100M,423
+1935 Cuba hurricane,09/23/1935,10/02/1935,140,14.5M,52
+1935 Jérémie hurricane,10/18/1935,10/27/1935,85,16M,2150
+1935 Yankee hurricane,10/30/1935,11/08/1935,105,5.5M,19
+1936 Mid,09/08/1936,09/25/1936,120,4.05M,2
+1938 New England hurricane,09/09/1938,09/23/1938,160,306M,682
+1940 Louisiana hurricane,08/03/1940,08/10/1940,100,10.8M,7
+1940 South Carolina hurricane,08/05/1940,08/15/1940,100,13M,50
+1940 New England hurricane,08/26/1940,09/03/1940,110,4.05M,7
+1941 Texas hurricane,09/16/1941,09/27/1941,125,7.5M,7
+1941 Florida hurricane,10/03/1941,10/13/1941,120,675K,10
+1942 Matagorda hurricane,08/21/1942,08/31/1942,115,26.5M,8
+1942 Belize hurricane,11/05/1942,11/11/1942,110,4M,9
+1943 Surprise Hurricane,07/25/1943,07/29/1943,105,17M,19
+1944 Great Atlantic hurricane,09/09/1944,09/16/1944,160,100M,400
+1944 Cuba–Florida hurricane,10/12/1944,10/24/1944,145,100M,318
+1945 Outer Banks hurricane,06/20/1945,07/04/1945,100,75K,1
+1945 Texas hurricane,08/24/1945,08/29/1945,115,20.1M,3
+1945 Homestead hurricane,09/12/1945,09/20/1945,130,60M,26
+1946 Florida hurricane,10/05/1946,10/14/1946,100,5.2M,5
+1947 Fort Lauderdale hurricane,09/04/1947,09/20/1947,145,110M,51
+1947 Florida–Georgia hurricane,10/09/1947,10/16/1947,105,42.7M,1
+1948 Bermuda–Newfoundland hurricane,09/04/1948,09/16/1948,130,400K,8
+September 1948 Florida hurricane,09/18/1948,09/26/1948,130,14M,13
+1948 Miami hurricane,10/03/1948,10/16/1948,125,12.5M,11
+1949 Florida hurricane,08/23/1949,08/31/1949,130,52M,2
+1949 Texas hurricane,09/27/1949,10/07/1949,110,6.7M,2
+Able,08/12/1950,08/24/1950,125,1.04M,11
+Baker,08/18/1950,09/01/1950,105,2.55M,38
+Dog,08/30/1950,09/18/1950,145,3M,31
+Easy,09/01/1950,09/09/1950,120,3.3M,2
+King,10/13/1950,10/20/1950,130,32M,11
+Able,05/15/1951,05/24/1951,90,0,0
+Charlie,08/12/1951,08/23/1951,130,75M,259
+How,09/28/1951,10/08/1951,100,2M,17
+1952 Groundhog Day tropical storm,02/03/1952,02/05/1952,70,0,0
+Able,08/18/1952,09/02/1952,100,2.75M,3
+Fox,10/20/1952,10/28/1952,145,10M,601
+Barbara,08/11/1953,08/16/1953,90,1.3M,9
+Carol,08/28/1953,09/08/1953,160,2M,5
+Florence,09/23/1953,09/26/1953,115,200K,0
+Alice,06/24/1954,06/26/1954,110,2M,153
+Carol,08/25/1954,09/01/1954,115,462M,72
+Edna,09/02/1954,09/15/1954,125,42.8M,29
+Hazel,10/05/1954,10/18/1954,130,382M,1191
+Alice,12/30/1954,01/06/1955,90,623K,0
+Connie,08/03/1955,08/15/1955,140,86M,77
+Diane,08/07/1955,08/23/1955,105,832M,184
+Ione,09/10/1955,09/21/1955,140,88M,7
+Hilda,09/10/1955,09/20/1955,120,120M,304
+Janet,09/21/1955,09/30/1955,175,65.8M,1023
+Betsy,08/09/1956,08/18/1956,120,50M,37
+Flossy,09/20/1956,10/03/1956,90,24.9M,15
+Greta,10/30/1956,11/06/1956,100,3.6M,1
+Audrey,06/25/1957,06/29/1957,125,150M,431
+Ella,08/30/1958,09/06/1958,110,200K,36
+Helene,09/21/1958,10/04/1958,150,11.4M,1
+Arlene,05/28/1959,05/31/1959,65,500K,1
+Cindy,07/05/1959,07/11/1959,75,75K,6
+Debra,07/23/1959,07/28/1959,85,7M,0
+Gracie,09/20/1959,10/02/1959,140,14M,22
+1960 Texas tropical storm,06/22/1960,06/29/1960,60,3.6M,18
+Abby,07/10/1960,07/16/1960,80,640K,6
+Brenda,07/28/1960,08/01/1960,70,5M,1
+Donna,08/29/1960,09/14/1960,145,980M,439
+Ethel,09/12/1960,09/17/1960,115,1.5M,1
+Anna,07/20/1961,07/24/1961,105,300K,1
+Carla,09/03/1961,09/17/1961,145,326M,43
+Debbie,09/06/1961,09/19/1961,90,50M,68
+Esther,09/10/1961,09/27/1961,160,6M,7
+Hattie,10/27/1961,11/01/1961,165,60.3M,319
+Alma,08/26/1962,08/30/1962,85,1M,1
+Daisy,09/29/1962,10/08/1962,105,1.1M,32
+Arlene,07/31/1963,08/11/1963,115,300K,0
+Cindy,09/16/1963,09/20/1963,65,12.5M,3
+Edith,09/23/1963,09/29/1963,100,46.6M,10
+Ginny,10/16/1963,10/29/1963,110,500K,3
+Abby,08/05/1964,08/08/1964,70,750K,0
+Cleo,08/21/1964,09/05/1964,150,187M,156
+Dora,08/28/1964,09/14/1964,130,280M,5
+Gladys,09/13/1964,09/24/1964,130,100K,1
+Hilda,09/28/1964,10/05/1964,140,126M,38
+Isbell,10/08/1964,10/19/1964,115,30M,7
+Betsy,08/27/1965,09/13/1965,140,1.42B,81
+Debbie,09/24/1965,09/30/1965,60,25M,0
+Alma,06/04/1966,06/14/1966,125,210M,93
+Inez,09/21/1966,10/11/1966,165,227M,1269
+Beulah,09/05/1967,09/22/1967,160,235M,59
+Doria,09/08/1967,09/21/1967,100,150K,3
+Abby,06/01/1968,06/13/1968,75,450K,6
+Gladys,10/13/1968,10/21/1968,100,18.7M,8
+Camille,08/14/1969,08/22/1969,175,1.42B,259
+Francelia,08/29/1969,09/04/1969,100,35.6M,271
+Martha,11/21/1969,11/25/1969,90,30M,5
+Becky,07/19/1970,07/23/1970,65,500K,1
+Celia,07/31/1970,08/05/1970,140,930M,28
+Dorothy,08/17/1970,08/23/1970,70,34M,51
+Felice,09/12/1970,09/17/1970,70,0,0
+1970 Caribbean–Azores hurricane,09/30/1970,10/22/1970,85,65.5M,22
+1970 Canada hurricane,10/12/1970,10/20/1970,105,1K,0
+Beth,08/10/1971,08/16/1971,85,5.1M,1
+Doria,08/20/1971,08/29/1971,65,148M,7
+Fern,09/03/1971,09/13/1971,90,30.2M,2
+Edith,09/05/1971,09/18/1971,160,25.4M,37
+Ginger,09/10/1971,10/07/1971,110,10M,1
+Irene–Olivia,09/11/1971,10/01/1971,115,1M,3
+Laura,11/12/1971,11/22/1971,70,0,1
+1972 Subtropical Storm Alpha,05/23/1972,05/29/1972,70,100K,2
+Agnes,06/14/1972,07/06/1972,85,2.1B,128
+Carrie,08/29/1972,09/05/1972,70,12.45M,4
+Delia,09/01/1973,09/07/1973,70,6M,2
+Fran,10/08/1973,10/12/1973,80,0,0
+1974 Subtropical Storm One,06/22/1974,06/27/1974,65,10M,3
+Alma,08/12/1974,08/15/1974,65,5M,51
+Carmen,08/29/1974,09/10/1974,150,162M,8
+1974 Subtropical Storm Four,10/04/1974,10/08/1974,50,600K,0
+Amy,06/27/1975,07/04/1975,70,0,1
+1975 Tropical Depression Six,07/28/1975,08/01/1975,35,8.8M,3
+Eloise,09/13/1975,09/24/1975,125,560M,80
+Belle,08/06/1976,08/15/1976,120,100M,3
+Anita,08/29/1977,09/04/1977,175,946M,11
+Babe,09/03/1977,09/09/1977,75,13M,0
+Amelia,07/30/1978,08/01/1978,50,110M,33
+Cora,08/07/1978,08/12/1978,90,0,1
+Debra,08/26/1978,08/29/1978,60,0,2
+Ella,08/30/1978,09/05/1978,140,0,0
+Greta–Olivia,09/13/1978,09/23/1978,130,26M,5
+1979 Tropical Depression One,06/11/1979,06/16/1979,35,27M,41
+Bob,07/09/1979,07/16/1979,75,20M,1
+Claudette,07/16/1979,07/29/1979,50,400M,2
+David,08/25/1979,09/08/1979,175,1.54B,2078
+Frederic,08/29/1979,09/15/1979,130,1.77B,12
+Elena,08/29/1979,09/02/1979,40,10M,2
+Henri,09/14/1979,09/24/1979,85,0,0
+Allen,07/31/1980,08/11/1980,190,1.57B,269
+Danielle,09/04/1980,09/07/1980,60,25M,3
+Jeanne,11/07/1980,11/16/1980,100,0,0
+Karl,11/25/1980,11/29/1980,85,0,0
+Arlene,05/06/1981,05/09/1981,60,0,0
+Dennis,08/07/1981,08/26/1981,80,28.5M,3
+1981 Tropical Depression Eight,08/26/1981,08/19/1981,35,56.2M,5
+Katrina,11/03/1982,11/08/1981,85,0,2
+Alberto,06/01/1982,06/06/1982,85,85M,23
+1982 Florida subtropical storm,06/18/1982,06/22/1982,70,10M,3
+Beryl,08/28/1982,09/06/1982,70,3M,3
+Chris,09/09/1982,09/13/1982,65,2M,0
+Alicia,08/15/1983,08/21/1983,115,3B,21
+Barry,08/23/1983,08/29/1983,80,0,0
+Diana,09/08/1984,09/16/1984,130,65.5M,3
+Fran,09/15/1984,09/20/1984,65,2.8M,32
+Isidore,09/25/1984,10/01/1984,60,1M,1
+Klaus,11/05/1984,11/16/1984,90,152M,2
+Lili,12/12/1984,12/24/1984,80,0,0
+Bob,07/21/1985,07/26/1985,75,20M,5
+Danny,08/12/1985,08/20/1985,90,100M,5
+Elena,08/28/1985,09/04/1985,125,1.3B,9
+Gloria,09/16/1985,10/04/1985,145,900M,14
+Juan,10/26/1985,11/03/1985,85,1.5B,12
+Kate,11/15/1985,11/23/1985,120,700M,15
+Bonnie,06/23/1986,06/28/1986,85,42M,5
+Charley,08/15/1986,08/30/1986,80,15M,15
+Danielle,09/07/1986,09/10/1986,60,10.5M,0
+Arlene,08/10/1987,08/23/1987,75,8K,0
+Emily,09/20/1987,09/26/1987,125,80.3M,3
+Floyd,10/09/1987,10/13/1987,75,500K,1
+1987 Tropical Depression Fourteen,10/31/1987,11/04/1987,35,1.8M,6
+Beryl,08/08/1988,08/10/1988,50,3M,1
+Chris,08/21/1988,08/30/1988,50,2.2M,6
+Florence,09/07/1988,09/11/1988,80,2.9M,1
+Gilbert,09/08/1988,09/19/1988,185,2.98B,318
+Joan–Miriam,10/10/1988,11/02/1988,70,2B,334
+Keith,11/17/1988,11/26/1988,70,7.3M,0
+Allison,06/24/1989,07/07/1989,50,560M,11
+Chantal,07/30/1989,08/03/1989,80,100M,13
+Dean,07/31/1989,08/08/1989,105,8.9M,0
+Gabrielle,08/30/1989,09/13/1989,145,0,9
+Hugo,09/10/1989,09/25/1989,160,11B,67
+Jerry,10/12/1989,10/16/1989,85,70M,3
+Bertha,07/24/1990,08/02/1990,80,3.91M,9
+Diana,08/04/1990,08/09/1990,100,90.7M,139
+Gustav,08/24/1990,09/03/1990,120,0,0
+Klaus,10/03/1990,10/09/1990,80,1M,11
+Marco,10/09/1990,10/13/1990,65,57M,12
+Bob,08/16/1991,08/29/1991,115,1.5B,17
+Grace,10/25/1991,10/30/1991,105,0,0
+1991 Perfect Storm,10/28/1991,11/02/1991,75,200M,13
+1992 Tropical Depression One,06/25/1992,06/26/1992,35,2.6M,4
+Andrew,08/16/1992,08/29/1992,175,27.3B,65
+Bonnie,09/17/1992,09/30/1992,110,0,1
+Arlene,06/18/1993,06/21/1993,40,60.8M,26
+Bret,08/04/1993,08/11/1993,60,35.7M,213
+Cindy,08/14/1993,08/17/1993,45,19M,4
+Emily,08/22/1993,09/06/1993,115,35M,3
+Gert,09/14/1993,09/26/1993,100,170M,116
+Alberto,06/30/1994,07/07/1994,65,1.03B,32
+Beryl,08/14/1994,08/19/1994,60,74.2M,5
+Debby,09/09/1994,09/11/1994,70,115M,9
+Florence,11/02/1994,11/08/1994,110,0,0
+Gordon,11/08/1994,11/21/1994,85,594M,1152
+Allison,06/03/1995,06/11/1995,75,1.7M,1
+Dean,07/28/1995,08/02/1995,45,500K,1
+Erin,07/31/1995,08/06/1995,100,700M,16
+Felix,08/08/1995,08/25/1995,140,3.63M,9
+Gabrielle,08/09/1995,08/12/1995,70,0,6
+Jerry,08/22/1995,08/28/1995,40,40M,6
+Luis,08/28/1995,09/12/1995,150,3.3B,19
+Marilyn,09/12/1995,09/30/1995,115,2.5B,13
+Opal,09/27/1995,10/06/1995,150,4.7B,63
+Roxanne,10/07/1995,10/21/1995,115,1.5B,29
+Tanya,10/27/1995,11/03/1995,85,0,1
+Arthur,06/17/1996,06/24/1996,45,1M,0
+Bertha,07/05/1996,07/18/1996,115,335M,12
+Cesar–Douglas,07/24/1996,08/06/1996,130,203M,113
+Edouard,08/19/1996,09/07/1996,145,20M,2
+Fran,08/23/1996,09/10/1996,120,5B,22
+Hortense,09/03/1996,09/16/1996,140,158M,39
+Josephine,10/04/1996,10/13/1996,70,130M,3
+Lili,10/14/1996,10/30/1996,115,662M,22
+Marco,11/16/1996,11/26/1996,75,8.2M,15
+Danny,07/16/1997,07/27/1997,80,100M,9
+Erika,09/03/1997,09/20/1997,125,10M,2
+Bonnie,08/19/1998,08/30/1998,115,1B,5
+Charley,08/21/1998,08/24/1998,70,50M,20
+Danielle,08/24/1998,09/08/1998,105,50K,0
+Earl,08/31/1998,09/08/1998,100,79M,3
+Frances,09/08/1998,09/13/1998,65,500M,1
+Georges,09/15/1998,10/01/1998,155,9.37B,604
+Hermine,09/17/1998,09/20/1998,45,85K,2
+Bret,08/18/1999,08/25/1999,145,15M,1
+Dennis,08/24/1999,09/09/1999,105,157M,6
+Floyd,09/07/1999,09/19/1999,155,6.5B,85
+Gert,09/11/1999,09/23/1999,150,1.9M,2
+Harvey,09/19/1999,09/22/1999,60,22.6M,0
+Irene,10/13/1999,10/24/1999,110,800M,3
+Jose,10/17/1999,10/25/1999,100,5M,3
+Katrina,10/28/1999,11/01/1999,40,9K,0
+Lenny,11/13/1999,11/23/1999,155,786M,17
+Alberto,08/03/2000,08/25/2000,125,0,0
+Beryl,08/13/2000,08/15/2000,50,27K,1
+Debby,08/19/2000,08/24/2000,85,735K,1
+Florence,09/10/2000,09/19/2000,80,0,3
+Gordon,09/14/2000,09/21/2000,80,10.8M,24
+Helene,09/15/2000,09/25/2000,70,16M,1
+Isaac,09/21/2000,10/04/2000,140,0,1
+Joyce,09/25/2000,10/02/2000,90,0,0
+Keith,09/28/2000,10/06/2000,140,319M,62
+Leslie,10/04/2000,10/12/2000,45,950M,3
+Allison,06/05/2001,06/20/2001,60,9B,41
+Barry,08/02/2001,08/08/2001,70,30M,2
+Chantal,08/14/2001,08/22/2001,70,4M,2
+Dean,08/22/2001,08/28/2001,70,7.7M,0
+Erin,09/01/2001,09/17/2001,120,0,0
+Gabrielle,09/11/2001,09/19/2001,80,230M,2
+Iris,10/04/2001,10/09/2001,145,250M,36
+Karen,10/12/2001,10/15/2001,80,1.4M,0
+Michelle,10/29/2001,11/06/2001,140,2.43B,48
+Arthur,07/14/2002,07/19/2002,60,0,1
+Bertha,08/04/2002,08/09/2002,40,200K,1
+Cristobal,08/05/2002,08/13/2002,50,0,3
+Fay,09/05/2002,09/11/2002,60,4.5M,0
+Gustav,09/08/2002,09/15/2002,100,340K,4
+Hanna,09/12/2002,09/15/2002,60,20M,3
+Isidore,09/14/2002,09/27/2002,125,1.28B,19
+Kyle,09/20/2002,10/14/2002,85,5M,1
+Lili,09/21/2002,10/04/2002,145,1.16B,15
+Ana,04/20/2003,04/27/2003,60,0,2
+Bill,06/29/2003,07/03/2003,60,50.5M,4
+Claudette,07/08/2003,07/17/2003,90,181M,3
+Erika,08/14/2003,08/20/2003,75,100K,2
+Fabian,08/27/2003,09/10/2003,145,300M,8
+Grace,08/30/2003,09/02/2003,40,113K,0
+Henri,09/03/2003,09/08/2003,60,19.6M,0
+Isabel,09/06/2003,09/20/2003,165,3.6B,51
+Juan,09/24/2003,09/29/2003,105,200M,8
+Kate,09/25/2003,10/10/2003,125,0,0
+Larry,10/01/2003,10/06/2003,65,53.6M,5
+Nicholas,10/13/2003,11/05/203,70,0,0
+Odette,12/04/2003,12/09/2003,65,8M,8
+Alex,07/31/2004,08/06/2004,120,7.5M,1
+Bonnie,08/03/2004,08/14/2004,65,1.27M,3
+Charley,08/09/2004,08/15/2004,150,16.9B,35
+Earl,08/13/2004,08/15/2004,50,0,1
+Frances,08/24/2004,09/10/2004,145,10.1B,50
+Gaston,08/27/2004,09/03/2004,75,130M,8
+Ivan,09/02/2004,09/25/2004,165,26.1B,124
+Jeanne,09/13/2004,09/29/2004,120,7.94B,3037
+Karl,09/16/2004,09/28/2004,145,0,0
+Matthew,10/08/2004,10/11/2004,45,305K,0
+Arlene,06/08/2005,06/14/2005,70,11.8M,2
+Bret,06/28/2005,06/30/2005,40,9.3M,3
+Cindy,07/03/2005,07/12/2005,75,71.5M,0
+Dennis,07/04/2005,07/18/2005,150,3.98B,88
+Emily,07/11/2005,07/21/2005,160,1.01B,22
+Gert,07/23/2005,07/25/2005,45,6M,1
+Irene,08/04/2005,08/18/2005,105,0,1
+Jose,08/22/2005,08/23/2005,60,45M,16
+Katrina,08/23/2005,08/31/2005,175,125B,1392
+Maria,09/01/2005,09/14/2005,115,3.1M,1
+Nate,09/05/2005,09/13/2005,90,0,2
+Ophelia,09/06/2005,09/23/2005,85,70M,3
+Rita,09/18/2005,09/26/2005,180,18.5B,120
+Stan,10/01/2005,10/05/2005,80,3.96B,1668
+Tammy,10/05/2005,10/06/2005,50,30M,10
+Vince,10/08/2005,10/11/2005,75,0,0
+Wilma,10/15/2005,10/27/2005,185,22.4B,52
+Beta,10/26/2005,10/31/2005,115,15.5M,9
+Gamma,11/14/2005,11/22/2005,50,18M,39
+Delta,11/22/2005,11/30/2005,70,364M,7
+Epsilon,11/29/2005,12/10/2005,85,0,0
+Zeta,12/30/2005,01/07/2006,65,0,0
+Alberto,06/10/2006,06/19/2006,70,420K,3
+Beryl,07/18/2006,07/21/2006,60,0,0
+Chris,08/01/2006,08/04/2006,65,0,0
+Debby,08/21/2006,08/26/2006,50,0,0
+Ernesto,08/24/2006,09/01/2006,75,500M,11
+Florence,09/03/2006,09/19/2006,90,200K,0
+Gordon,09/10/2006,09/24/2006,120,3.8M,0
+Helene,09/12/2006,09/24/2006,120,0,0
+Isaac,09/27/2006,10/02/2006,85,0,0
+2007 Subtropical Storm Andrea,05/09/2007,05/14/2007,60,0,6
+Barry,06/01/2007,06/05/2007,60,118K,1
+Chantal,07/31/2007,08/05/2007,50,24.3M,0
+Dean,08/13/2007,08/27/2007,175,1.66B,45
+Erin,08/15/2007,08/20/2007,40,248M,21
+Felix,08/31/2007,09/07/2007,175,720M,130
+Gabrielle,09/08/2007,09/11/2007,60,0,1
+Humberto,09/12/2007,09/14/2007,90,50M,1
+2007 Tropical Depression Ten,09/21/2007,09/22/2007,35,6.2M,0
+Lorenzo,09/25/2007,09/28/2007,80,92M,6
+Noel,10/28/2007,11/07/2007,80,580M,222
+Olga,12/11/2007,12/17/2007,60,45M,40
+Arthur,05/31/2008,06/06/2008,45,78M,5
+Bertha,07/03/2008,07/21/2008,125,0,3
+Cristobal,07/19/2008,07/23/2008,65,10K,0
+Dolly,07/20/2008,07/27/2008,100,1.6B,22
+Edouard,08/03/2008,08/06/2008,65,550K,6
+Fay,08/15/2008,08/29/2008,70,560M,36
+Gustav,08/25/2008,09/07/2008,155,8.31B,153
+Hanna,08/28/2008,09/12/2008,85,160M,537
+Ike,09/01/2008,09/15/2008,145,38B,214
+Kyle,09/25/2008,09/30/2008,85,57.1M,8
+Laura,09/29/2008,10/04/2008,60,0,0
+Marco,10/06/2008,10/07/2008,65,0,0
+Omar,10/13/2008,10/21/2008,130,80M,1
+Paloma,11/05/2008,11/14/2008,145,455M,1
+Ana,08/11/2009,08/16/2009,40,0,0
+Bill,08/15/2009,08/26/2009,130,46.2M,2
+Claudette,08/16/2009,08/18/2009,60,350K,2
+Danny,08/26/2009,08/29/2009,60,0,1
+Erika,09/01/2009,09/04/2009,50,35K,0
+Fred,09/07/2009,09/19/2009,120,0,0
+Grace,10/04/2009,10/07/2009,65,0,0
+Ida,11/04/2009,11/11/2009,105,11.4M,4
+Alex,06/25/2010,07/06/2010,110,1.52B,51
+2010 Tropical Depression Two,07/08/2010,07/10/2010,35,0,0
+Bonnie,07/22/2010,07/25/2010,45,1.36M,1
+Colin,08/02/2010,08/09/2010,60,0,1
+2010 Tropical Depression Five,08/10/2010,08/18/2010,35,1M,2
+Earl,08/25/2010,09/05/2010,145,45M,8
+Hermine,09/03/2010,09/10/2010,70,740M,52
+Igor,09/08/2010,09/23/2010,155,200M,4
+Julia,09/12/2010,09/28/2010,140,0,0
+Karl,09/14/2010,09/18/2010,125,3.9B,22
+Matthew,09/23/2010,09/28/2010,60,171M,126
+Nicole,09/28/2010,09/30/2010,45,245M,20
+Otto,10/06/2010,10/18/2010,85,22.5M,0
+Richard,10/20/2010,10/27/2010,100,80M,1
+Shary,10/27/2010,10/31/2010,75,0,0
+Tomas,10/29/2010,11/11/2010,100,463M,44
+Arlene,06/28/2011,07/01/2011,65,223M,18
+Bret,07/17/2011,07/23/2011,70,0,0
+Emily,08/02/2011,08/11/2011,50,5M,4
+Harvey,08/19/2011,08/22/2011,65,0,5
+Irene,08/21/2011,08/30/2011,120,14.2B,58
+Katia,08/29/2011,09/13/2011,140,157M,3
+Lee,09/02/2011,09/07/2011,60,2.8B,18
+Maria,09/06/2011,09/18/2011,80,1.3M,0
+Nate,09/07/2011,09/12/2011,75,0,4
+Ophelia,09/20/2011,10/07/2011,140,0,0
+Rina,10/23/2011,10/29/2011,115,2.3M,0
+Beryl,05/26/2012,06/02/2012,70,148K,1
+Debby,06/23/2012,06/30/2012,65,250M,5
+Ernesto,08/01/2012,08/10/2012,100,252M,12
+Helene,08/09/2012,08/18/2012,45,17M,2
+Isaac,08/21/2012,09/03/2012,80,3.11B,41
+Leslie,08/30/2012,09/12/2012,80,10.1M,0
+Nadine,09/10/2012,10/04/2012,90,0,0
+Rafael,10/12/2012,10/26/2012,90,2M,1
+Sandy,10/22/2012,11/02/2012,115,68.7B,233
+Andrea,06/05/2013,06/10/2013,65,86K,1
+Barry,06/17/2013,06/20/2013,45,0,5
+Chantal,07/07/2013,07/10/2013,65,10M,1
+Ingrid,09/12/2013,09/17/2013,85,1.5B,32
+Karen,10/03/2013,10/15/2013,65,18K,0
+Arthur,07/01/2014,07/09/2014,100,39.5M,2
+Bertha,08/01/2014,08/16/2014,80,0,4
+Dolly,09/01/2014,09/04/2014,50,22.2M,1
+Fay,10/10/2014,10/13/2014,80,3.8M,0
+Gonzalo,10/12/2014,10/20/2014,145,317M,6
+Ana,05/08/2015,05/12/2015,60,0,1
+Bill,06/16/2015,06/23/2015,60,100M,8
+Danny,08/18/2015,08/24/2015,125,0,0
+Erika,08/24/2015,09/03/2015,50,511M,35
+Fred,08/30/2015,09/06/2015,85,2.5M,9
+Joaquin,09/28/2015,10/15/2015,155,200M,34
+Kate,11/08/2015,11/13/2015,85,0,0
+Alex,01/12/2016,01/17/2016,85,0,1
+Bonnie,05/27/2016,06/09/2016,45,640K,2
+Colin,06/05/2016,06/08/2016,50,1.04M,6
+Hermine,08/28/2016,09/08/2016,80,550M,4
+Julia,09/13/2016,09/21/2016,50,6.13M,0
+Matthew,09/28/2016,10/10/2016,165,16.5B,603
+Nicole,10/04/2016,10/20/2016,140,15M,1
+Otto,11/20/2016,11/26/2016,115,192M,23
+Bret,06/19/2017,06/20/2017,50,3M,1
+Cindy,06/20/2017,06/24/2017,60,25M,2
+Emily,07/30/2017,08/02/2017,60,10M,0
+Franklin,08/07/2017,08/10/2017,85,15M,0
+Gert,08/12/2017,08/18/2017,110,0,2
+Harvey,08/17/2017,09/02/2017,130,125B,107
+Irma,08/30/2017,09/13/2017,180,77.2B,52
+Jose,09/05/2017,09/25/2017,155,2.84M,1
+Katia,09/05/2017,09/09/2017,105,3.26M,3
+Maria,09/16/2017,10/02/2017,175,91.6B,3059
+Nate,10/04/2017,10/11/2017,90,787M,48
+Ophelia,10/09/2017,10/18/2017,115,87.7M,3
+Philippe,10/28/2017,10/29/2017,40,100M,5
+2017 Potential Tropical Cyclone Ten,08/27/2017,09/03/2017,45,1.92M,2
+Alberto,05/25/2018,06/01/2018,65,125M,18
+Beryl,07/04/2018,07/17/2018,80,1M,0
+Chris,07/06/2018,07/17/2018,105,0,1
+Florence,08/31/2018,09/18/2018,150,24.2B,24
+Gordon,09/03/2018,09/08/2018,70,200M,3
+Kirk,09/22/2018,09/28/2018,65,440K,2
+Leslie,09/23/2018,10/16/2018,90,500M,17
+Michael,10/07/2018,10/16/2018,160,25.5B,74
+Barry,07/11/2019,07/19/2019,75,900M,3
+Dorian,08/24/2019,09/10/2019,185,5.1B,84
+Fernand,09/03/2019,09/05/2019,50,11.3M,1
+Humberto,09/13/2019,09/20/2019,125,25M,2
+Imelda,09/17/2019,09/19/2019,45,5B,7
+Karen,09/22/2019,09/27/2019,45,3.53M,0
+Lorenzo,09/23/2019,10/07/2019,160,367M,19
+Melissa,10/11/2019,10/14/2019,65,24K,0
+Nestor,10/18/2019,10/21/2019,60,150M,3
+Pablo,10/25/2019,10/29/2019,80,0,0
+Olga,10/25/2019,10/27/2019,45,400M,2
+Arthur,05/16/2020,05/21/2020,60,112K,0
+Bertha,05/27/2020,05/28/2020,50,130K,1
+Amanda and Cristobal,06/01/2020,06/12/2020,60,865M,46
+Fay,07/09/2020,07/12/2020,60,220M,6
+Hanna,07/23/2020,07/26/2020,90,1.2B,9
+Isaias,07/30/2020,08/05/2020,90,5.03B,17
+Laura,08/20/2020,08/29/2020,150,23.3B,81
+Marco,08/21/2020,08/26/2020,75,35M,0
+Paulette,09/07/2020,09/28/2020,105,50M,2
+Sally,09/11/2020,09/18/2020,110,7.3B,4
+Teddy,09/12/2020,09/24/2020,140,35M,3
+2020 Subtropical Storm Alpha,09/17/2020,09/19/2020,50,24.2M,1
+Beta,09/17/2020,09/25/2020,65,225M,1
+Gamma,10/02/2020,10/06/2020,75,100M,6
+Delta,10/04/2020,10/12/2020,140,3.09B,6
+Epsilon,10/19/2020,10/26/2020,115,0,1
+Zeta,10/24/2020,10/30/2020,115,4.4B,9
+Eta,10/31/2020,11/14/2020,150,8.3B,175
+Iota,11/13/2020,11/18/2020,155,1.4B,84
+Claudette,06/19/2021,06/23/2021,45,375M,4
+Danny,06/27/2021,06/29/2021,45,5K,0
+Elsa,06/30/2021,07/10/2021,85,1.2B,13
+Fred,08/11/2021,08/20/2021,65,1.3B,7
+Grace,08/13/2021,08/21/2021,120,513M,16
+Henri,08/15/2021,08/21/2021,75,700M,2
+Ida,08/26/2021,09/05/2021,150,75.3B,107
+Larry,08/31/2021,09/12/2021,125,80M,5
+Mindy,09/08/2021,09/11/2021,60,75.2M,23
+Nicholas,09/12/2021,09/20/2021,75,1.1B,2
+Alex,06/05/2022,06/07/2022,70,0,4
+Bonnie,07/01/2022,07/11/2022,115,25M,5
+Danielle,09/01/2022,09/15/2022,85,0,0
+Earl,09/02/2022,09/15/2022,110,0,2
+Fiona,09/14/2022,09/27/2022,140,3.09B,29
+Ian,09/23/2022,10/01/2022,160,113B,161
+Hermine,09/23/2022,09/26/2022,40,9.8M,0
+Julia,10/07/2022,10/10/2022,85,406M,35
+Nicole,11/07/2022,11/11/2022,75,1B,11
diff --git a/p5/images/README.md b/p5/images/README.md
new file mode 100644
index 0000000..17b4c7c
--- /dev/null
+++ b/p5/images/README.md
@@ -0,0 +1,3 @@
+# Images
+
+Images from p5 are stored here.
diff --git a/p5/images/add_group_member.png b/p5/images/add_group_member.png
new file mode 100644
index 0000000000000000000000000000000000000000..402e5962e3e54ce8349f60ccfe4ce2b60840dd3b
GIT binary patch
literal 160694
zcmd43bx>U0`YxD+;10n9gkS-J2M-V+xVyW%L+}JmaCg_nEx0?425a0M8h2^9JLfy+
zch8-gnyRV!XHu1Px}n&s*=s%T`##dY6y(IwQHW7qym)~wDe+b5#R~+}7cXAjAiV-!
zxlDyL0}n5qmBfW#RE)jd2cEn(7m^iv@uE5k_0bR>c#iBKq3QhM1wQrPzb_?~s7_zJ
zcrK9qDx~sF54sGm@kXBHg+o+cON;cEW@z{E@v$9jaT)ldYw+FQe-ikQ!*th8_s3n2
zz@MPCo2N{lvE}*s<&@<%;~Q7EL^Val2^5M;R3~TW;%a?06`hX^lp?b40<naVC<33D
zIo25wBEr&$MUY@<Ob7b^y!@}PVf7FH^Z550v5Z2_*#7H_?Oor9{`LAl|EwCcq5<FZ
z?^kl{S@eSc^MoSs57+O|P!y{-6w@EJOvhJNR!nLfWn^X7Ye9_~YGT3p|5=ORzt<x3
zKF}AXo>}DYW&in!dnDmW|MLWi;u8J;SlT_prs@CwUL>D@{|_rA{Qu)+%X4%6iA9k(
zr0ndNygj|V;=ui^92`O8xf@2BL`1Rv|NNHjpQi&G2tP5|vE6A?)6gz^-u_tuv(oWs
z%8M7NyQc~H+z&}eX0*6nT^59?&~RQ9jwkbb43#$6&z>y#-t|f<i%?pLm8wlRI$GD;
z)$dQ@v2AVbR4iAI_RS=W;Jm?N;ov0WG%!eVJM!@GkbJL+Ok_^PV{sZ96c!p5W_Y$Y
zHwUL(PqeqMc%fD2uQbo+yHxAJ5Z+TS+}$I|D{XCSn_OCvD=eG$EPctSU9XUblq2>-
z-|$vOPL3unf|8jTGs{$_FghAbQs|$X3G=h+)<z>fY7kV#$HT4l-HqIe-(u|vzS)~B
z05$I29nLx;BdhJ;hdMd&x44ooHDtxMwzf3fESL@#g_9!21$*A(Y-||D#9YfoiacOO
zCne-TW=d4u?2cQa$UjX_Gs?&q3bwjGg7R{jJSSpv;1Gz32=ns`Gn>5W=&0vM1~tBC
zk)OvUR6%4A*o}>eEcat$aWp=EprYcV9avaO-$Eo45Ku7tkX-ircV@+Lr+|-_+dfWK
z^0b(Ilnu!F;o545{`2S0RD$=<f#b&S|Ff4tF>eKUws*E|HL9&HqjP|j%~jj=Y{wPR
zMvzg`ywA-kG_$lq2?&j4+nS!4d><DrmuQPbhm5RjY^;Hz)^0wvlX1w&&CRpy?T`gF
zQR10{$OJ<c7F;Uq*D<_k2WTtxt9NN%!@nL0r=PVkvY>kZeq;fQs{127?!8~of1L~t
zC8D^L%os94937RJj~Eu9l6ph0r)p$JN5?BD#8%?@CGdL#HiL>)8*hX4Dx`bkI^Y3#
z$0|6&=->bQ=fqYd;(OZ(R{7n=OQu~zo$fc36f`8vU>L2ftq9HKc}7MXxVWHvwQ>|x
z6lW)AO}K!w@)u5QY|>`q3Gva~KKn*SPB;mnf1(Who{?bm&=c~%M}5y8JT|`Sc_b|C
z>1ko}DIt*fi>8*{V(;B_?=u4{g^->A8N8;X-LcthWWMRu&A18Ms_&!2e*aa~phRqL
zMQ)A7b^37z@07)-SS9P(Cv@nEzNDOQU$^L^x3>z$9Q%{+6h6~jldti!UYpg?Nmi@;
z+TsQ(KDYOM>*m_i51)IcG`^dKHn02+KeebQS6d{QU=IL!9Vq|C8o%L0hTY}&c}{yS
zR>T}KzB=(YK_tN1ssp#eooJLrB@<KaIJK4@SYO70WhA9xmsh22n*)_(WW-ih4-Iy+
zO6s)EX`Fi3-D7r}#~I>oN5=~}l$u~*^K#69Y+nL5{KJcfjdJ=S%q*UZ?lHHXP}OSW
zGYq*%0HLlPa2+qxR#sq@dZy^5wzkDY|AxOyRAC$=R*hg{SxLQ;#{BTqFCD>hMGQj>
z;bd%=TkUWc<|E;uzre%ec{?*d<SN4@wp8E|H3@@)QZzM}T>UD6lkD>d1I|V~UIHke
z7zUg5&Uzu((HUQD>{|DGT)*SsU|p!-y$Tn!1C3%@!tMHcAu-WMEW)U+MNF2OjmGTH
z?U}rOM`7V}Ff={gG7P_qqJk&cWuMLGY=bX~Oo)u$y;i)$d7~TNiWsO19q&KThZ2i`
z6rE5BrwOe-y4#=Z*4I;0Q=7zwg-Oe(s3?5-4nt3<n}keHDkyv1oWYfLu+zldfv*^3
z>L;dX>D~?v4<8BodS4xv%kDCjK@8FJKUA{V--kawddurWZ^>bVe=9{qmjMejBi(@N
zJw3|Pm)PDyJW>*`>jPDLK|w2G7&<-;&G62scAW+G1B+ij8Y_0pvUsFSD%be%Y|_xe
zs{&IKop#sZ^(orFiw3Y3mM@I3*>rR$>*Y48-Lx^3vFLVv;!eu@?V$S(*f<9kR!S)c
z*%c+c-ko2(#0ONhIr+amL9bfetsCt5T+h0*+hH<j=*2SSTBatZ9uN23vIBAI%(FI&
z&Azjd#~FO`ggl{R5Cq0g?_aT11xKGcn0fGUM4{^}MUwD@rhWnG{Vh@)ViqR(abd%q
zD{bW?BL;za*sgKkJHj5K$fJHm6%|gbW|tOl7;p6QC>J`Qg}6Z*eRt59nNK1`Lf&gZ
z{h+(syMmr)@85AJr;7b+^9V{Rd@+EX<2^Lk65!)BJ6-gr+G+>%^z4qO*V!EF`1-!2
zS0>%l(b*J_<gKyB6l7jqSEijknoCSeLM_!2uov*6HNwbB-znE(wcg)=4MgFwpiuM_
zCOk|23{$Qxg$j5h0dEFTJ}W*kQR!mt&;Df&?0(VZSXh=)r9p6F^;y>bBu!v7m5&$<
zJ~~=VO1<5+@qU0%vc`zzMOaLkH3z{bgg#k5hrnR$!^2ToeC{XUxG6-8Z@0H^`MvPP
zcr~<@YtxX*JVwHa5F6~tCo9PlF8wHhJqcc@W2cq94|5$K18deB2Gsa>-{UbH99&M%
zOgYc&jPkd*>9&1iWoBkhSoj!oppl&XF`Xw)s$^x{$Hrz37h4#q?qeZ4ElR0{0xqbl
zs>2Uo{u#+xgwZN@-r^SwMtK=^XMHrh5*)I6d1i>-4hBz$<BxrjldGg(Sx-q$R@afi
z!M-0bF){PJyH6!1DlRQ?tEx|oN%TG08$76b0efcQ_ynD=D=jTD_g2D5_)nc+T-6Ut
zYD2}Wv~gGCzlAZJ)j0O|m-4#fZ|)WqDlVfCg-<0hSI+(3FAC;ZtoONnOwoeBmu~g;
z5o~F8JDHXQj*qP7e0T3_N}A`aZyp}#S62bTBDl{9s}BFZ#4Fji%+la-b9)X1I1acR
z;#g&+M}L2|+8SRg2}$XIG-oTkJ^Oe3urxyA`i2^R$(Ju*rj2E+XMdYs)_Dx6qzTlF
z{?Tev4Ql+hS)mI6fw9@hcQ76aSFAf5L<a!>rQuok<w(*t@$m0xiJY8akh1F9h7b+~
z9xG)<MQm)my2De$nm69v-1%QT%eSevf4mfvl9GCxk+EB@!{c*iq@<M?J~DE6b1a)F
zxSB6bP_uA^h|y_Ryqn^#^i;Rl;7<DK=SQd8%l+HluU2l$-1vdx&-FHrSC@e<^oVH)
zi5(M-C3;@3XK3R-zI{k}o56*FarIk7Mn+D+<7{IM8TXwa8fB4e09cFC5dbZ+PrlwJ
zGH4vIw%}IXH<4`fyAI)z={zF!64y8hc?YdQ#=O4QHf#ha{k*E6xBmccj^DKX&!p-)
z;(#BiKd|oAqcfjIBO<m-TC~{NIgc%Dk52cM<1X*zcQ<P4t2F8?Ch{lp44ovNpSCi>
zZ7(k+5Z<#hSi>So^9tpoLVpo0Rg#+|vpO1SYR>y<*UO{`c2tlp0hlbW+x*FU=nbEj
zR~nP9K{0j!VowRpXqx-e{nb4=U64)M4V1^{jx9dlIs{{BNktw@hUOxroU!cUez}Fk
z`YD{KN=xGoXnF?5(mghxd<MTb)eMh~E;suL#;<a{Gmucd3qdEuBF1L*yuTD@)|+ld
zib;$SqR)&;;c=T|(ZCX@b$03>&qUv6Ng7fY(cOL)rIMhfrjw-k<=@>cQY7CaaE6LT
zC2kIhr(1HlFBwfEsL&(DCY9YT1%{88;wDRFn)3Q>2Xpm|TOnOTBWN@fX8;=31;6rx
zhrXWcg@WTu3kq6Xp%V2-v}A|nyL#>I4r)4$zPjSdaU(%CK+}<cc)!B$eNXr={LS&x
z#=W^YNlS0-AB#){om&mX4|QrrJUyu|F5DO7D@c}W$+EDfD9jKU=D`;fX1cpajf{LW
zWNT__jQ=VcLPY2?^N0KKu2xwFO~v_V`;&nW46jn(oSo3<@zJ`)jUzV6Jv6c%x*nsY
zz@i~<A6dsyo4euj?Y8vKpGK&Sm?lw#81C+FgPK~Vm7U%pWn$HY^~%aAGRbzqRK)gn
zQF0pU`Dv#b75r<rn`6dvAKG~yQBil;qkx#GDFL2Pj6p?0&G|=Z>Bt0;dWOu*inFt5
zbebHrL@6m;Sy|J-KnaAz#`N^X_I5I4WRJc+1uaDZ0Ux3i*8cwTf`a0=GlPXW?I~yo
zHd^1)v}J{j(yOZrYS<!%CQ;OCu187cLcEujF3QTiEUY^)kUhxWrpG6#tLb5c5i)#`
zX{b`b#?8Yw==s3tgN<`ePxac3MpF>{v2XZqIrPz87Fcc(K`vfW9ZDX_j>c-NEG#6E
zk=E5M6oY@xeJ*`^T3^#^cMZ!6@RRuLx<A=es(yHICD>A50h!Nebm;0C*gcIT-LNrN
z=ZC?H%+2iPn%F;la=F^*1CUh1J~lY^77_l4`y19+g-;rnwWas$19Kd>)nT*$X>(v#
zE`!(p-i1O)$VyE0<Ni{ebwNSF4+;v>#d=d_+PCo;h?ru1{lZUA{9f0G^Kp5`54&z|
zRU-JK>0nmWv7@OZCVtPejlBw8wVfRmD?EgN>fO0&T4wzUjVc3Zl_6BRkCui^z=v24
zPTYKV9;k}b87iL{_`G^T@q+K~%TC^uZUEx~AEYwLEKCnp_2^0=UjFp-BrPR%O~!XU
zF@M*)(&ov_OBFLc);HsNRAZ{k=kgBy&(FrdK%ia7&o6L%OFDVd-c)_&7e-J^PN4D3
zuB|=S7E*6-z8V7HOS=Q?eqy<WV`dse#aY+Rm;;Hcs(5;0XJZGd=*t%O!-E;8ni>@=
zRR=8kmWR`Icy=?i{nacfQDELxH}rds2!O$A|F+0ES{#lKH66LRs-<4OzNJS{;mN7K
zl5TCQjSWc;4{==`&Q>3i=+vQ}K2s{%B04&{&QaSO&<EO&>B=fwI3y2j+_&H3l=U20
zM^xY71*z&@pMEcR&(03^yfiflm6AT{?pAB{Oo+{r=M=BvJcx^@>g<6lRmH}=kd@Q3
zwSFj$6c2oxmuJrJ`$)x7Ro42p-r^%O=C5mPY}714Oetwfk1sNA*SWjnhIv#ZXnm%p
z_B}n%wRNV<aJ9Lwq*~VIYcXSDSdgs)(zo&O^fxxt+I(Rf5B(ffx0m8k22(-Q)CzQ<
z)DMD!&<e)u>%)~+3Pqky*`l<;;hq%+L$;jXe57yXd|;`13fT;d=!YTN1C@@BRSci4
zJ~Jb1XFXif#nU!`kRX^|0a+mf90I;~wdRYFq!;K&-)<l8%+=ND-8tscV}1znNe^d{
zrm9v!pJlbg`Ul3d`08zkR~AsmBIJ%1kdaY%z3){Ht<%!*Yg-@B!U&k`>=q#vN3*rG
z3>pa8R1Qi<3so=s$90-w^%cHM{_2d5*2W~0A>^>?3MYaJ5xt|MsJ2=c2F7zPW@h?*
zFJM$v9*7`Ws?;AfP#$N}Wg-_8$oKP$)U5giHXZ<4Mqd}lA8g9Ss%wX*Tie5T>}E2A
zJh8@frlNhMhY&nALW=cu6(tUuIFG9_QtsCZLLeGo9U6EcO;yg^oQMZ>&y}aAXCAQQ
zjG$k?Qft^Gi$S1oX4VhuQ$?hQv+gI;zxXu}RN~{;Kwt^U<wn0O7<d3U;bMvtjo6gj
zk*M)*z1c$Qa+#mFSaV{ZkmhvtmzHTG$wtXO!YPn~ru&QsJl#*^sQ*pEJc&LFw~p`&
zJVjPA3v%6<k))MUirei^Y~E%IH4KFBmzR?!CnhRtfIiaH=Xl-dEi7!jdd0x&N^EU|
zCQZG&yLx`MpHtxKGY#VRxksCv8fIX+mXpHSSm&AUcrL)EG~h?PziMIi{9RY$WTcmQ
zbmL>@^E144{b*FWs1iE84@qWS^t$qo=!R$y4=!Dwfh#9`V!edBS<TG}HD{VGGOCRY
z!&o}~<3>iDLPO>JU_+iMJ9*!~qahfBe!TSJl%}R0OjLkXX^WPs5iBp0zkdDm>_UV`
zlgIG&5L`hGI;wH`si?!LBLP9<uMA5|5BtY&pf?|#JbHh!iv;h12XCpUZM`2714mvr
zHkoT`c6EvuAr=;TQqe@ReWD8M96E_4L5veMH5C{1iv*9+Fd(wDKlC7eSTSK|k0rWB
zfHsIGCcf(Gq645`Tv>K>`cL$hI3w}?eh0uB7^za2;p@uEN?cxE$r_?QJ<&*l!S&bI
zl!%yi_Lg8WcB6^OKgplXMo175SHHiYFQy;5UYUr=%JN$}U4QlJl?puxZ-#)?=~`r6
zT@)OEo*W!(C9cj@oOsmKRvTV8Mn=sG3p_kLP{XeX0cY1eh__;BBrM<g=LTLe1fDlQ
zAccjc@WFwfy<o&<j=$54Deyuv;97o4m8i+zks$gidBeeBrhf+a^ssyGDL|NHC8Rtr
zH{hWrVZ5nm($Z36$t>#^vz5@7U2HVUa$;giI_arqaHbF?^-5Q9n1Dn5poDZS*OW10
zNDD+6=%N&cX9ngjM;FkuIPJ~R<<c73?(LT+ec@hvSlgQ{tC+c+yi5z0C!AGR;bpTt
zs9@b3EW@Y5JT4~_$ZU4_HCm;}GNM&~KEwAA8{7ZPWu@kJy#*ge-u_KemNM`U`RvA~
zX@ShnX6KjNbQ?Q6-Q~`gNT;VG){77cxyaOtE-pGrZ7G!VFLJTMTIzMGiZN!^YcHH>
z(^7t&pEc1^y-{)3h*Q^jtU3_zE@^6tNW?!xPzlfS^B9Pn6c#pJ<vKQqPh2^@W~u~f
z%rrT>%gU<x@<wn%<_IBJF)4RU@BOLF@bS+l_JQJFX4C58Y3}OEU}_3J;QO=-Oa>Gb
zO0Qn=d0zQz)jD+}nZyxb=M-w!g^mq1AMPSrYs{7}o^sk6giWJ0ZsX!EF1NVz;o;5Q
zlj`e7?mC4H4c+e_$kkODFutN>K`xMG{^(8o<|~dN9Y_m5fOWL{)j{{rhyhFMYI}h?
z{B5AA3I1p*wa%uYQlrQ<D%#`5@l&mcmM3o=%B6Ws=2P9LPamxVg<qF=!fwuP+#Q|s
zVtq;Gq`sM$L^0_eSkl8&+mx4&uB<T9(hdyI&Mu6|=&B~<Pxrzf{2cz%)Odi&$(k}U
zm`rG{J`2>kdjy2;cK@$rWMq+@?<Hg;&oEJd1~@t<HaFJlyRGBzkypnnD*y$=;V!@z
zR^q0?u~_)G;vz@<1ZIi;`BL@y5TKrq>epFKE;a2F5gjHnvRB^ABfa7zO^W_gtjnh+
zZosi`Wo>P3<ypgDgxT`y8u@LdC$HT@+*i@BdoK5f?k963T>x6$@Al;v&EI*(bqRE4
zY3d0q4S9Mz|ColZ%11}Z%ZiDqmIU!juOA<=JFevNMP<3!ShpE3AJ~?v?;q~H<#jci
zNwg)>)KsAf#ImyVrPG5vAE;h;HPkmG!|WV+cw$mg&fmW$wO)d|nA~ssT{lnp6`G8P
z2X}S(4wD0&>ru75RL$jp>dB|)r6mOg^2;C4+}zfKZ<-2PTHbPzh506!jAMw)1+U>B
z_79wvl02!Y0npI=K&M$FdWkeRt0{{fx*iw*Rq3^dM_7u?P2lV67x*eBwzCxnI5;dA
z`)-DYr#D`|tE;slb_m~ld($GI`~PssK;U6VL2a?H(11Xm;OqIoBQoJxt8~1)XAhYR
zIYR-Lm)zH+G8m94-0jT^X}Pfy6vVHlX5Ed6@hbN9^(=Sr@Z#f{)b7yj+*~}{g+C<$
zu~4JU4LSX$Zb$N!==H9P-D&ziS$MeQC+nM2#kSgz9(U-%-hK)pF{f(f^VQGL2;1`V
z@<M>>ofT6O7S>i~=jE)gI`|4d-_(>cKc9MV;Og2pV}XZ<m)YK)S15bPZ`8YWcTvQo
z!Qy?sH3o+Ouq|O<N4ZUQw>ld{<i&T3UTKK-^~Fp~lnf0)bz5hsK2lN9zn=^|i7tn#
zA7AbRWJ4_`qI^c^&(KtU)1jk_-G{lkD)rZ#<vE2k+9x7Y-rm4qjiW%S_Nk;isPB=8
z9dfe7W4}FQUSD5qX(_wX^(;RD`J=&N+@G-6P{gS7?V>B-wzt;|XAsaJF0~7Gw{86%
zqtVjHmlmHlH03CIw6t3?>X{PYX4W>zs|;uLDB;?)&E>~ZKjj1@m=?J~hIhw#s@>I{
ztPU12BmHjdd4-WUw8HH5@zXMN6_j$R=;;*~r&vRCb06zOt-jYJC;O6;ma-2GE#cx+
zczM_YQ}Q~{qKO$&;2!@fU5&s>%+%{PIgpaBT_~)cii^R16yX2BQ5O#m9~xTFs}qh~
zkF2yOibGC&cQo6dmMnpc^cfvx;r5#GqcEhCsV(~*C#`sV)~bxq52+G36)JAVh^(|0
zWm{b%TwovZDk(LIiYn027o$Lx=7|}*zo%DKg-0vU1Yjq{!Np;xq<8==Sw2ioE}vI>
zrS<M)t?N(8j+1wl8EHoPxsw_QyH3a9iLa%(u%Kvmrb=2!uid%DEvv(~{BSv5HW$>$
zP0gW-<h?q9hv+LH;GwB`YgXM}uQ@+2l#>&yDzsY&aN%_}Fi%1rzpbBHamtM?UW2oh
zQ5Cw<lG2MFw+>bjh$@?<o-fJ-p{f9Hpy;hM8K+(;)9f-)|GUh(3OdmP?xSX;%xnDB
z?y?z-dGq{8L@yfb9z_Oh$Vehi=zatVs@aG_*+EE5(Ax}vfF-@Z+WbKHU@%v`c_bdS
zM%>)Ut0z`8WiFfQ@;ph+syGqR;?}jX9D+7q?<ZJxQ2F~bcfumz{?fzc%8G=)t*1!N
zmE?1yZKWOqmo30P{K`}Q3=k^MECXwu>D{jy)38e04>bOij@ROqW^mdEtb@;=X<VQ(
zlS1UiaitgdzDtc)Q#(iYvvx~tM!#)bNiIk(2)e%X|H_Li;@4{*5*CR|t*9|ORgg%+
z##T*=2}<bXrh?Qi>||$0J6;|8psUWPqV70;md!27^Vz)oRoxRDO>+VC(peqNV_Nl-
zW^<tSynz#bH#UCuxGgH2xHzt(<yGffi)63MrJxb$kQcg}CJ)cRxIQt9ol*k@CC!NL
z+TJ-lL~>LFDQ7jiZ(ukyC4s9K#YX;J4KU~K7H{s;TM7w9CaL=ab18?L8>Rj7!sYR@
zt^O*rqa#ZrE!CEv->xK0-ND{M;f|Pd>G2JYvojclC;0ocij%y&@7YXmU&9p?IZIDc
z5||OPU|YX*H8ha5r-C<X*a)d!zy9hsEmH{k{U#K}Z}V_L@Vgowalk7R?^UeeD7i}4
zS>&^GVfdWZtrTStakx1fVc9_=4UL)F^FIB^FvGLJ^q`!c+?a&EzLM}p5dsepk&o^p
zb9=}4%S(GJ3sCvpavdpZMp&uW?wGK@e??{{$3xn)`u5h2UWdE9mXy^qq<opr_5HHe
z#J-EF>Gn(*0p`KfZdeN+c%JH`j7;KaT7%U@?meQkvT}tOzt5e>K}pF}f0Uo0`OOHV
z9&*C*XY!B6XD?3i7%L2i`cnr#FKt{MnKUAj9=pf;>!Y~CS=w-7ytnwAhGXexwPqgo
z_mH~s)ex~fAyLjUjdde)bNA<`n!5}3+S;TFZ7%O~lf|2pvyLHb;l1Y{&EX#(i|LIM
zlj0M)wt{mg#TpKywR^wq?wXUY>FX&9v}xbWbMhOik(ef=EPH*BlxP$UUcB=Rp`v!1
zm|FehtukXpJjBI`pq8fID=|JCkkBX=$OX3YD?J5$cwSrk;o~_2{r>7yrGer*U%j>a
zi9NrAgub}>;(;ovxg07IvgYaP!cUMzEQJ88<@S#4lTcTf+34JFtELx%&kz`*@>Dy_
zT|nn&#X>7T)qA7;CCwJjvZI9@*bm&ItX6N>ZY36QG6c1}Tf+^W9x+Wvv6O(>@Se;5
zQAz1H74@w9p_@B&PF=aM^95z9Yhb_cP%H-NAc{4qhP=WnSL9!D0f^*#i?hOttQ>;R
zpxTRGuba1d#e%fdHnL_1;=3Cg6)mU~7~VEq6@u0Pk<-vDli_LH6ATP+UCT6W`Cs{X
zJk(p<>JXrS9=0Q!=H{?ipGACavoKw5EDn&HnD6;vJ%4iS^&@wL%M5$t>5BLF<@DR9
zq4w>?rx#~n@Q|6Q`RwzwxuT<^lNCKz#+avyf{sjCUA>!`vU@IeQuNyT5x>*vTB^@!
zPvN4L2HNp#RBA<`#!RJ=n=0yP@aFEWx|#wO9(D@1)pR<Y@&P%*)qYR2uq~iix{(Sv
ztQAWqJ(fPOnox)%Ryc-S9u6qxr}o@pQ@*ygrb1$1ou19&_c$M|H7Cs!0KiYP-q&Z;
z7RFjdyS^qz$a6kfZER1@U$Z}HdIc%JmXn*d`3poKJ+c17U^M0U=%14E55#1gBSXz$
z?d{4Ef1nrU4Fb&_cU^5w1mi)}w3we7EQ-pl%L^D8-)~?MR-Nx$9Yv8dwK_Qt#D$FW
z^MhPDMi}fXi^%K}p4WAIzb7m`LZ_)pVdc5To40qj+JLT>Rs3;XaUx2uHI>iwyvC!J
zudbGCu4T5%Hcd28)K1`=ijopa11IxJYmju2@`D@Z{%lb|!Zs9)JIkcotM236Yr<B!
z)LvRp;byUzsHfW!jm9@y+4OL!Y4Mc`9DpS(TLIwF*W24~dzXPrOImOe^P-{!=!Y%{
z_#Nv<8C?c4tn7Te4hG^J9BP*(ptA5hpA?6g9t-SME($Zl_(Z2q{O>S1AqgF74q=td
z3@zp6<0N_Fm=m+ihHOzhd@Zz8ogant^gvGd0Ya(eGjKI$&dxpL%lWOJ>5CCS+)#er
z2%1OOGKWfv;+3G~TNEiNgUZRK#=%+;(79LH*vMf#Jna@v0ebUdwXHUBL}E&U>tlD&
z-kgRNnN><?XqceSU2c9hi~GW-NHyWNJ%e2Ve(sge_sz{uLPCzJ@*EI&xz^LcK?pBz
zcXv0HsIZKTmQrlnco~hNj#6xDW`%YhLyxC~lvF(gf`NhhQ2dO&y}LQ3q8=3*AuA;b
zjOsWaz`crj`33o7x-Dw#R`bz$Q(sQua&z;4n}Km|UCKPc%p991F$sx!+|Fhv$IF7g
zPmk(kZ~n4M+L{&?u}Q|=RUWq=_(l6VZ*Ot!ZBV5{WoM>`lebS`FvD~cxzSM=F<Jk>
zs4*xvHa1RIsb3`~mQ%Ut>3Kw;b9HPsEu3q?Udt92z^JZOYpv}zX&(XJmciknIhSLV
zl!nmo`01*bu*U$AHD3D4?9N5OZ0&*T^O_nHrs$*?Y}|sU0e*hUDdrE2ewAbnBwv-j
zM<x~~rlvlhKoMS3T>AaJ`_sLBK^`8P&Q40_7sXVZteToZGxh_e`o4~iN_v?e$n_Cb
zRU=m)KxJjnlPuNg==iOiDUqouqPp_8lRV9blQD@j{P*Src#4wf2z6=3w)~^rxs7E|
z(V0~^x|c8USgV(E-&Y=}zn&KTp0=nWlmjXoVdZVEAQ}A`j`pD{KRcUjag{bYIxS5>
z`ypu$YBQ&}@%VVIYKX*vjBF^-J~%S6canDWiN!=sK_fXK1EwtEW@ks_)(RWwqo!)~
z^tgg9xSo}1zAX>r4h~{Be>&EC*0#1*x9bKM=N~gQr|as9bocOSXjZRGegNv)bRqim
zs{>&rD|*BT-WEc^i<w|+As<~`b<C*W;b`>5h9j~vD5$7{-uIWY<nA*n>LJXHd9@d9
zwDR02B9W2H4>z)Sa{h2dIVGv-v6CwNHL&-F6cikI3Ag$AxmnNr;z$(JBX@m$c7Bhi
zox|pm^YcN}ed4zIqfOtK-U(os6-!9{LP4@2=Lp7A2rv}mBB2lvu*8m0U(o}0gv&Nw
zq+I5`&GrEtE{*F1`@6$OybjAc*`H}+x{7y#T34_vHA_oNBPWzc4g&0_ihx?kLMjUb
z2O~ch7c)CUOPyQB^FwlaVq$t~v&nM5orqXfFwm{=wKNU%&UomCU<r4CfLm@76zGzl
zKZ%N(1rP7|D3`>NLY|vTJV*7CtxK2O#O#C)t#d2y`-{l0aGIJPhU>sBV0KLK6PO41
z^)@u*^*K<nzkg=9jJMq}zhH-!G~A(iK}-L@z$}tV@y}mpfA)bXYa|qfaKE5jHgDqi
z?!Mo|T$yL?3)$+HNliDImKK|^aHOIlMoisrRkQd+y{q#f2D<&S3b_sak9XA6n2#_X
zDb#K6y%T*6Eh{Q!dA+J^CW;9)QR*VlUUL$`fZltG+G_|zVLCQ8HdUx%ud#7PyMbx7
z@vJD=^l(<c*&_~+>L}N|-JBeM{S2+)<f^PI@^j0d^#cTH?sgR=RX;tTRRJi&x^`x^
zPw%_`O3%43<KMgis>j9JJiE5ngI33y!ZcqL`OWdla-%E>eeuEBmfmvn_VzYF?sY(n
zSW-qF#xs4~Tnh?G#N@;ZGuKFMKxWP?b9f3kbAL9In5}&djT9ZvQ2AO?Pa3CZCy1sS
zPJnj!bL-(_)b{l6-_X@ZU!@oN2LL8xkg~jRqj_shUx&iOJ8omU%FR7}b%9E~^$lIv
z)6DGa73J<*r;Br=&CR|wuIO^~vZ`n-Dw<iyGzLa5iPwX^w}^$W(95zM$axQI5WA+7
z@Wu`QS?FJj2OS+l?ZuVv#_=`lhwn*gEk!xi?@k(?{GExymF<t})jPh#aeQ{Iv{CCg
z>6@w^z|8V_X5wWWRS<Q30I?p1V9=sIg|7ZyD9o)WQBu))gY&dV9=f%=x!Ph0+bkvE
z3Fc9zQRMlfpAeVE_uP?Cxzb)xc<6S#ph^h(r4N_Jeh3NjA>_2|E=Rlx3$<#Rwnu98
zBjR&zZg_SlXz(Ldao+8MyEW<2p8!~-&o1{Cl#~=?nFL*3?%qC{q$#XY((-;V;`Br@
zdyS%5VEi63GHUAUn{92?DDOAe8r&UUCn5qQC8{8--Cc4sg*!jKDrB_=qjz~#4znSc
ztn>2<^uW-?oFPzYt9=d`&cMLnu_?!qN*+OcdQv9;><|?dA~^@ik<Ws(d-SZlM+-e;
zr3Y%9jG{`sN>N(j&KLeRfY2<@AQfM%2GEbAzJ8JPt#^r5mQaBh5mAD=O1gui#~ZB9
zl?iPfxv^mPlg~Ifz_Ah|CRQq*xov9F-Q2AF_RRr0S$TE_?D(G263pyR%A=!oRMZ{4
zeL~e>X?A3dKXf!Zl+5<ls9}JUz+!f9xi}qcvm|Y6h0dD28ghBLI<c@YGM6k>LXr_S
zys*@oUG=96{A=c1LO}sb?gh}w0=Aq%vVaeCbRK5bEf;HDS`R-Hun1;nXGRA{sKVma
zMSmLx0unzFugl)|mx%J2-mqiRhr1U<kFVhV3L~4&MRMEU<l}NOSK=Kv?N&Pc&NoCq
zP$Xzkvojq2DOR@J-&Zp;Q&H;qFgScuSM6~MozEDE;t@6j7Z-a)l3k%AWf#u7Sg!hZ
zgA|LH^jh!MUJfXo{rUxHra#63-xNTq>*=j%#?kf&Xx4dLOsQ7_Ix_5Ze>jOqI&sP4
zau4&<7hEi?<j<bJf5%VXS<lX`+V}DDlDHo=f7?V5x4^-8|2Dhe5R%dA@@wWpB~XL_
z(e*;D?0ejgJf$jb721z%HP#Q;WrhA<R5dmA<c=4XTi#Ye{9*OJyK)`b?_5<?>5KJZ
zH#QW4%Ahtix=xW@D*+dOc`tRl)twK5CSGSd=;`2$#fHjf^m2eO)%smTcFelJUyk=?
zz%9FZRCaU}Z*3cIYZEw0JB0o?#WZr!yF2DZed^4z0<NE_=q8ku!#2^ABQDa^7OB==
zVOCV?&9#+Zb@@-0w9o?-ov23>Xl}0c@nnUS6o(AC*2FY_-CtHhf`zK}{OZ0gHa2=~
zcQZ_0%0EmbQb?leyyJA@nNh?iAP<=G1)ajt0Ajl7`4YU&Zca?fCi0WiXE>2@dT+dC
ze^Vqvbzjrf{f23yMZX!ju+SF__O&U0u@xBPWog}kiYagE#n4gR`WbDyS3VXS2WNBl
zMn)!ZUDTmUT-e`MV~*PW=5%Bv2La*C!{gQG&-``2HDL4NCT6}7VE_wKt)ldv?z`HR
z1#NzasY$1lfvO4h#QZ$&=m;AsD(=NOAd9gRq2-mdH`nFoqex5pC@TpJ^tPfPpUKI1
zzajiKI*iH|&hklSa8#E01Coqv`H1FK#S2GYUw%zZ4aTx9ONBonpbwS3y})q<M1o~p
z9H0-iDIxZkL_!HYJ@@?;7JxQhdhqH2_q<c7D$|sd?_7Q6m6SCVbC$XeG%NL<j+a<%
zkC^=A4XMvW4_s)Bn#P=>Y<Wio6Y}D|lr%$VXt$a{o&2j;0)4$-c1rd10F4+Zd4{w$
zzpD-XX3T)*#@OZekFv6$*vZY#PTC(o%G$8gGcoW0g@e5;Zb%nTlU-fqQeF~SR^E>Y
z=ao2wk8WR7V$ef<HfmzRA&f6qnU;Z+l%6XMuq%~@h@Xv%4_&#q%q^nBT=P-D9gv<j
z@0mOOev|I2SCW<j?Tsy2%`TQ(YhBB{ZuuPVUNF+X$05eXCL~?}NIt@lH%!E`dTNm6
z#fSA;a~1{~ft8+tfr)vKn;1%fq1B!(`(a&{A0OY&$@yqgZQ00zf`sgGw<9a2mRMAI
zQjo?q8Xf^gSwBGOk5g8@A>~6b#}5B?ch}_Msn_g!xHn&`MNC{ZmP&f+?C3~zaCmWc
zrrYj%xPGxqXK7jG`vIIG9tG&IW`<V0j?<v1v9ZwebI8ulG@B}7AGi-*tl4F+Q+KnD
zP=NzZcR9WF^ISz~(QZTRQme<+^%2;(zmwWP$dF>7CjW7shlh47%kSpQSjwuz-r$`k
ziW0)r5nrSID&P;<p`mf8R~}ZueuHIUZAp|B{bKfI8GH`P2`Om<Irr)9_As6CfE+P@
zYEt>WGHkn2T+y*Qqm3VW+Ke9<rt<RT4`7BCCLIkAA6(pcIgR0FV5vC|U<O&$kvaDU
zKv6b3z&ru<4}T<`PRXaF$N#=uyGQi&2QIB%hgVW^EY6D#U)6*K*V`(<+atX*vcKHM
zXAS$JBZJoNK6|npP*UyIJ^FAHmCnO%HdjRfyPxOdb%OFMkwyj#_Y9NZ61X3B!ExhP
zO@wjTfl5Fh2Ekom<%yCRa2P?(<3x3}!({Avk6p*zTGxnVTt5a0!c0B{a1ZZQ@?Jo(
zE0bSyOlT}Pos+t_PF<Ya_|TI$?y{i--QCH~%;5F*E$6+jMMeGk`t`?8pG?1g6^@Oa
zEHM@lVJ!c>wbc_FH*IP%P=A7z7Ne)&s)>}<7A|8V+V?s4ecqH(h;|*`#xAD3oZL_a
zv@<`W-p)_ixiQ}f4a5J9Gx{j!5dF)uv&;#_P#hfHOY}ASJ<5h5gp;dEd?jB|NxSQ%
zu8sv2bS9oHQ`2KXFKki*b6dOqr+2~<-+Cv})3TWm%3VbRgUCC)8ENQqi<Ix;(MDv4
z2e}>BYa$E9$kUGf{a-o2UrpRe57eubJwwB#CA{r!AiaNHF#QgE4R5@;2{@)2IJnID
zr;+{UDWU=!2~!^NB#SjsYGhA68wzLsx~doK?Wy4kd`@l^)upv}#oO+?Iq<x-l9OY>
z`q=nHM7ZQ!hFcc092|}P0Wa-vW>i&}mm1AL_St11iEV(STv~D`7j&_j)zhm#PwYtf
zZbeg+?^0#=psaoll6+KZMT_Ppu*TZi4*EffT?0l&t)+?B+LlB@7MRDSke{I^5s{WE
z2}sq_5)x9fvlF(n!w<-zqHiu!rezoH<62)w|CRI-04@^7@-krZYi(^zf2;8;IIwpE
zgVfW)5)fQN@(T*^-<&!)3Xu(>30_n=>CzSVF6ktrk}%RU28Dh+nJx}%_WUL$rsC!%
z<tv~PT8BqOk<-r0o9pczjgj_q6ioMlPBAGu+0?WS<l}WN_d=t*K3;_YJz{CYXb_?A
zdqg)AX<21QnXx#80qKh=1DUC*hKHP@qNgFnn->tUNKqQyhqAqC<n!7FM`c`slkz;c
z2EVHM+Y((BJv|IQTg4VPTp8KBc6)U34O4~8gbcpYurL7D1I^94+k=+pBz1k_A|g^>
z@8bPpA=f9@)#ahckwKtrDzU1%$v&<+e{OauK0L~GAYW+^kII2PJVXDK`J1k-MkXc1
z#{*^j109bCV1$BZR6zo=qL{e^pRapD%IoSD_x5AHI<i&+Z7vE5O0%b@fX@{@3%7=b
z#<%M&FyI@E#UcplO+8}+3Z;k-EHFPmWIRh;Ox)dOvA(>3x-5MpD5ipx7icg97-)CP
z1A2zJ?EQs>r&Uzc06oKN=nWAaU2Fv0V@fp}`yp_eb&PqqdAgKX9UTD<z&eTX5HJ+P
zfy;=L?hIRzhvvs7CjrM^#T)&(g#|vIE>9a?cfAH1O>0t8F6K&qfB)3snxU-Bl)K|i
zaiFzQR#KKlLw7IJUoEy>OkdKGC?;Zta{wbTgutT`p#ffpxfFq?CmkIfAFu1B$5p@R
zvFe;v0_K22T~+FW%d#@@@vNR0CBp~Npwivz#KfvBig9&J%)u9;K@4V~g+kR*gv(>b
zQ=dHD8m=|0F9kYFOW8`%9Uu@$y}>TJ!+IbR+Qrr>nwLUER99E^Q(nd!cFhRAfTq9Y
zwyHv0tA(_wTeqS?@`_4PJ3=rs1+LDof>sj&Q+5{z|1`l^oRH5$_s`NK0y;l2Ga4Jm
zp7ZTfhRYtrIKXiUW9^{SL+Fl+W8|m<;APD|MOwqc!N@=LcX(5<m^we42wnn4b9s^5
zK4g4aMoHqfAZd5c?P$PlkGpf)e}s58CoU$`O2%^mKIEoA#*B}28G;h(87dV#L?6KT
zQM}=>vriOYRcFJK9H;g<ZNu|LMbYBpZ5IgXe@b_z9%?btndfmxwxV@j<zz-)!_1k<
z1pHF;6%=%oaBvBp*XG0W%*RVhOJuTG@R@Y;OYF#*mRb`sGr=Z_4+sck0?rlDij6kM
zHbj<mb3K60>2{4VezbCaab|92-r;NSw>`G}`1lGH*BDM$w-N2n%;azP`^VEh)W#R!
z(cueZq&a73pr3*RfL9$);zXOK9g&oJiE&BphwA~h57)>1Zqtk7>RMU|6<rdb_}<}9
zGt<n=jqRqZD;MgOTLk#^kO@=WEpt=zRo~0#kB7(GeZvE#IVJs$bP|E0V!>i!m(a<C
zx{n_inB5&=Qc|yGzX5VA(0b3+`>pm6j028+m%6%n@-II)-tstGZB}Fe{$@iiNogtH
z+pVt~rVji~-kYBAJWa{Bfumk-Cwy+7Sb65>ve9+2V`Bw<u9UQ-q;y3Src0k}fw&1C
z{aDG>DB{h<`33sbWn&Y=^K)Hp?)y*gH+t`!wXcucogUOAzP{E`7cm^Hq0%d?%=0=L
zv#qglbE}Um#6NUue(KY2^YJ<X8#fO5TyESIF1L*7w7<q<o#t9=Bo?pBjoD3mQUz?c
z+DAuMCMIr|2dW<Uc?hR6GE3`gf5g<>yejona7xteW}aC+XO|09M3Ph0p2$&`CWnUx
zqu*Ta78DjRE>`8VCCqfEuoqMPHOF$;|I6^}z)AnC=@Txijz&lrA6>PzU`k)CTACRw
zHvE8Tl$dnlcQ(SxjirQtc>u>lU6RVZO@PM}5}fJt3}_)r4#ERtKylpe{n})qBU(`K
z<XF8+x)SFOpImI+>EDck;-H_Apl`5ySYDb9qGxQ|JQIlm4FW8FxZUj23PBPo#tFqm
z*$^1xvGp_1?muJ+a;PYlTi11b5M&y9=tj5NNa`AWc5Z2~e=E>SqtZ^Ptt#m_9WB(>
z>}J|FQPY~+-8XYIl;MRv!P@%yGazxKvpT*#OeE{%e@rQz&FE-$1gOrXm;gk(Wj_ar
z4gpF8jCVvePEK}9fOYUhK|uov6$3hDeHks}uc}M`{Qj@$xrh9B=>0|NDSklz74Ea~
z0yj@nleN1I$y}*C5TgLhyK*|8$=~3xnaw#kvYzE{ZMDdgMUe5@IIQ|cUo6#?3cP&!
z>~c(|+e|+=91<9`;(crIc#4fH77@%WA*{3k+}ibEBuLM2&mr{sDkx*QL^SMS;qo1c
z(apipB7yypoBdqxN}aTW#@s=<cH(%}YLo86A}0A~-#eqZ??1|2T>v*-#cB%!EoF;g
zpA-;f8APVmX)sPJsTn#I3IHhUHW)(|_OFPj#Rk{3;vDQ^?5#K0ILDA`Wi8M9eTJlF
z_k;ALEOSF6dS-^*%f7z(tHY=A#k%R4;o;%KRebSsA2_&*<#rDHd$c)Gmf01s<MWxZ
z2qIeG5k4LPzvt6uc0RA&`zr;`WYih&^Mjxl9pCGkc*@eD@<ep|=nU#H5|{FfWTXUM
z7c07;2|$QGv;0MVpR{SJP+eP5G4AhAlbkFAx-a;G{^P7BE9k7oFIfIdXDc29gjru8
z+ufcX`L6+MR6DMB_z9E4wzW*O=i7Xxaa2+tb#LWLz3cWP{LT!f?#}jZQc_YJ2-0M&
z9w02NQB7v%ao5C<#9mvY_ED#Id_Y}EX=DG;+SE*}((`pF*d&wNkEtX3`$)MC0ZHUH
zA`^_LP+pI9Z$-z6NLP}z3VJr))U-6YZn5uyll2vv##R=uNqC*EW%PVkQmKa}ihcuH
zzCJ%c7a+TkG1s!OXMOfWdxNl}*XXzm3<!&<bwK7NT9B2;5|AkXE!M`|5;^Y529?Gd
zazEXN>hM#tEmm2%wx;G%yP-nsx2lxZLi5q07#cAeA1+N!Y6ALkNds!GkrC(7JipPO
z>>L<F9$2vDHeh!gn(>xrBOIjG(Pp}ng`JU*Fg_veV!6+wJ_~qj06NCU)wNh9@Xs^r
zEgu0k9=soE@%{-bVL0G%2H1kM>2EOjfAWPOim!p9RK0za#>QbKWOU_H*k+icdkuE7
zz*`>cD=0ia;*f1^Z9V$PC|QNp`7<)nO<0P}gSU=`Kz-IO01+V3wXXLB+;&`uBkJAe
zQ6^stDeGq7b-qGza*_%~`6ZbU)o5m7hJb*016_!?LZH=9&{I>ZX*LK<iNU5r8&Qo_
z|1$*%PJ?HYmQaxR`jwl#v_@H2VZ0tGQp>v7FYLU>O>=_j#e<ZxETceiO)*VZyDpF~
zStt-ebhoeUF5yy!K{q(`dqWP+nR|x;n!I6QF{;Vg{ISi;8VaqSUmW*1H(6S4kq__(
zX75?oBl;kFRuLrCYd#VI^S)5P!Cm`QRSl&5GF!i$?Z6)LLeLbI6tb0oLi~5X35w{*
z*c`_f%j>lh3Ybn7^0%z`g1iG0Q*S6`Xr>@fu)Tfd(Pq~l^1zU2rDwaKrSZAN<FKce
zz{CNFJPcMW6VIGT%FD?v*SO0M`1%-p$4;i&f5%5#1ZtEJI@W%(PcTzkPCf)4=5t*4
zZV-aYhA?p2At7VtnN9zAeZp2-3udtJb90<_08EE6Y8tm4V;PI|4C*Q>w*~p$zruhB
zgE|(r=44I}xGP|$BMOT$@X5Xo@V?kjya(bpE0khoOTYJ_Go>bTt>)u^?;k*jhP#eu
zF$^*^zaJp@f6|k}g5bgI(K=;wCNdrfWa%70pI)BY&!wyRih^A7<ABHHs($}$@8GH}
zt-;L9ti9e(e6$puAcKkiJw1&SdbhA}8N(f5hmRu|FUl`ETCF*ns3Y;Q_5AF8{fU<|
zal}@uqlOW%ZvqZYd3_y7rN-UCSevAA{~RCBJ-n)0@*Gx2BX`Ma2NrVxb6|TJl!hd2
z(YU`g{qx;SJe@p^+-H6h335`>m6O%SpTyldif0pn$a5Y<_cxtc<15Q8t1T{;;H4%&
zzywIHCBH{*Z@?@qN62xooxz7I9%01s{7=jWi35XxAj!Y=@%u^}=E)L=+wITUla*?+
z@iNrf)}_(K(kR&|aNd9gsJM&8cMJ5yPwb(c8Xf-zAG_M1e+0vJaR@y4yS65k%O_at
z>R~A;D5!DoGCyA56ZSzGwpgNXrj{7hv04UJ_H;eO@EV!^W3e*5k5GOEny&*KsS*-$
zv2O@=*Viq3H$dx8F;74^3-qJ6ua_o*%;#vDj$C}e!QK5f@N7PgmVtrZX!zfeV_*0<
zaCmqm6Eiby9MH}R`wIhJB2!aSssbjRPsH|9ZPhVFILsW10qNmo#W@o|)L||QPgYjC
zblz54WV)mL-Z6k27UJXZ?VHkh!yi2to3gyx+JfSg?C)Ph@Wms7|2xk3WA66$im#z^
zwW()6EDXq#0yx98(r9L8(tDuU!Sso^yu4t0w^AQ7L*S}!8CDuH0H7=|d<u;|Ndo5`
zh;>}Q<#}9!;D??aZ-%rDMD|lrMK=NH0q1pfeR`(Z;Ik;cJ6=^@t6upQu!oMoG_UMS
zeRFejkIKsA(*@lxp7=HJ-H1OPlB~&(R=n>Vci$SZjD5*j?RX<+DG44s;_EC6{uoJ&
z{$HVIt5*QRA~u{v$Hp)DY@L=BgxRjPrLns%40eeSpHqcMlJr~+tA8EnAJJ}lJTE6H
z3>E{*eeMp7%2%M>W6Jz@!*5=n?Y}2mxVw8tHmgDpM*qSfyU5*TmP}DG#&xmbh{s7n
zMdMpfXu{i*0h?@cyHYY2rV1d98%4$o?W!$e;Hr2&-Jb#|T7dj0o>!fYSA~4kOwEXc
zV+fJ$4CXAqk7~88r3lLt%Ton%eSgEh;L*__dHWNDD??2JWo6~tkMvA5%!2=HQ*=XK
z=iI7L1dboXAOF+tJf{`;1vcg2b4=KL`X{vh|2`=Gz$~(-ZutC9T-*=!S|7qa=SKuQ
zswo$@BXa~R)b`?TiA2EU=Gy=7^Xyi|XrDe6vj!52%4mECLh}@y|C1Q6QyF4&noEJV
z`hC0QLZ(M%^@<{J&H%U;kZA?tk^qqYlWFxiw9?VCGEjN_e`Z=04TS{s?BF%&{*`Hc
z4XhMI=2!U41|;7vOaCWNZzViRuXk;3go`w@S(zSp`<dn+jQ$r;|39Sgb7&M)v|6vO
zRnxA9z3g<FHjiDC^UdB(PyTmsU-rAA4o*VsYf3;yT9-s-k(|V~a{Ql53nS%p(6zkt
z8v~1Q9wzx++AF9ZN2QY%k<G^?WQohpp7x-<<KR0CKdL=LbnABWve)8xzQjfptc;yh
zvT|d0*xHBtu(+eGZj~6Sspq>kp_`2A0m`R==W{r!yLcXFe9ij5KQsWi5<N8!Cx1f7
znC-~}?Rzz#!>Ih+F2~b+lh-l+$BoooF16Zn$wXIl+b8Py$$eW#OmF)^G7YoxXVqT3
ziB+zauvoLT1{TK;U%3DJ=zzUS!^EVHn`?!H#EiK%_44W*nj6;6-My)hfU*UB-5N8O
zBD<rj1(!)KEnbtY1nOtx(=#y|YNfl>mzu1OOiT;2RR&hg3%l>0br3{;W@V*{$wsuB
z4&(ppvkm(C5*StD;{5ixboKPe1csAkC@3iYFX8+J`G#0JL62bKQel1WDB@CCvb;Z#
zsjG~rB5Ms6v|~exuCr=tQ&W~OO})&7tX(1^F*6}KYDqdf-i(ifOalBz=MS^6j|<mq
zbq;8k#%l4}7W<PHpRC+wB4W#v77MkL<lDRt-s~|@GR2I4K$HA=Xl=*XIXoMU234x9
zy%uP-E-Y^Qw#K4IMn+#3%F^*g9v79G&XO>sdz{ZzLsE&Cm&4;~rq+t>oC;{?ZYEo1
z7f<wBPItEX>@kU0S@DQ8)hwev`<zl!Rb^zpOnD95{z{(KeG`L0*<G5=`=JtZJ;7DS
z=l;>C6CCzQZH7{mb4UEx@2V3``>E$Bz7vWWi-czv=dqVifA6{GAEBwB>}b&Uch=5*
z)YJ_E?W-Oq_xrQsdd)4T4$js?bbm^3c<9n<eqYw}&0h02KP+677N+OM|J-xtN|NPb
z&hWcn<KSCVQ6@?B9}#k7{gpx_W<`AUhJ!)yd1Fz%?l`phT5t1lnrB`G*u;M-yZ`f%
z6(Hog>~AUMMTZmSm;nHPg_TGs?{E4-%pjIyn66V@Q%g)+=+}tp&B{QJAg7ht$xD=2
zB}<<9Ol(77{k29Sz-F9<9x=6hm=-U4YE}B)OIbyAcsrq^ZtUd7Im}_QM_*NWqg?u(
z9P)HLV|~C(P)W;;#o?3Z0tp+~TsDsJqp8fm-`*NcD$VNgr^TnR7Kms0CPJ$Ahfj{q
z!wAh%7j$$ITJEJK-g(yy3}+t$Z)`bSrg49X<%xspRyms-8lp(rVl~9je&*(kfnqVc
zkPS&Rs;cka$Q9Uuj4$h4#;d59Zb>wIeH%o*VV?55MwOSs+97zC#_*A8#qlKA-lg}}
zjvrC0PB}5L?dVp3QgB>HIz*K-YY*we7klSnG8!`l!iK7~&c@`W?r!Xi=90m||Hau`
zMpdEpZNG}rCEX<@UDBl@-AFe`Nq2WDCEY3A-Q5k+-3?3Wt~0s!^WN`%zML`6`LaLl
zvE8n<=A8eyuHPkK=diQ8&aN=&JuFC1OIT1dJGzUBEmgC>INOQfI2wE92-V!|I#>uE
z$e9*cN%m2lAMxvF3IDm6p8sKrL=`O_#{S_WnjikxFRGdlLWosKRv85)SivtG;&tcd
z-S&N!uLAmaNm;i)Cl0nhR}MvGA=y?_T~qEyF=~J8+n}>O6MTeB^qY$l{0l?r*|nG$
zpmRLF?6&hz3V%-6-o8pDymofJl1=7quhiNmPw^8S-Df)vD3bgDse_s=%Puy!_<mA#
zi)3Cl`+U-ysK+FR20YhyK8=)ymHv_-z?!aGA<j0gi>hRGBViKrv5)d`zP+&fC_i2?
zAChTquq|rLV2_MUMaJhFG}>Z#kJ<lwx!>G!wc})e-$HR(1&ILJ0dKLOsU}=o%9K?x
z+MrZ^YJMKt<;a~+4|}WOc17lk_Ii6Yu<Ve&GFW8!cH1&W(uuw?u;J}-BrnbY`!A}=
z`6B!YqTE;WPv{#^8~Tg;c)yDlK76BlSJfBzK~571C#)zr6aFw!6r5zN+FU)s;dY+^
z1KV+R8ztj#F$uz2yR4Dh?P8yYmWV&<1m$V-Qlo>`sHk`gt<j+gT;e_qj+`9eySG8!
zhUgSCsv}6yvaY5{O~t4{@~!qTu+-!fKT}SV(zhFb)$cf%XW*ur6y!ixAWb!RQGPue
zk>QCw^UK#)QK3j#LV;D8r-Z*#h>n(4EZ8R)zvwvX?XOdG^xgw?gSL<Cl>Yv92#6Ai
zQ)#>J3TvS-r{QX$7A3|8PJV_RSk1>h_$X^Z8%lEvi{<6Et-3Lw{Oco_!d(s<$-97X
zHVfgfB9)s{YZ77lp(PlM_?pi&-Wp&d7Ug+$6&k<rA=NQ7@8_g_%g7&=-JP4$FDdo|
zaeDs4eh?lPu$i9*D{oJeQLw8u3`wd8YBpg7E*5blnC(ZLC$XN|hDb`XZ_$$28=_%g
zPADmc%Sh8O(qu+?!lZ^se$ggtA_c#i);eEx)BRw?5a-W<9oM_0UY^>XVq{ftszSEP
zy(>X=^RK*^`5bK|Mn~xx&7|hJew)0<`i7@46_YZ&1u4$im94ZYTAg8M?08x6tzZg@
zf$)F*CDB38(0HZJrTY#q_v)a}^%Uj#9zv}AXv7*qNzU2FNmW=~4CxJWqSh85^HceZ
zn^oOi(@Q{>99;U#)>H<YuDDA&F9Z=@5-y~jl#1fBYm=3wL3cOrLEX*TE>Uz6R64dg
zPqC3cL>Y-d8p;dO)hLf~U0*P|mh?stbu4Y5imMj73)1SBPx!z7$Ifx;Mg4p8@<j5e
z1Z^D+kdHk0BqbyTuU(9BwuFe)Y<_GNheCY$D#fJ1Z?EH%hKjH{3`e)?UZqd==g&9J
z&c6zYgAE2~=;5S8RpMhei#$Je$b!dLl#2QX;*Vq7*{db}ZNK!uT$=gB-9Osk^gHUg
zUB|q^!i;)@hAb<k+w-XE_uZRRbf*{e4c{eY$%O;7I>x#P(j$8-7;q0<XN^Pt&G~uw
z7SPjkDL@Q<c4M4>D_32<d(81!N_@6`yMM7N^(C+Q*S%jGY7s^$D^>JGHPy8q49dhW
z{Ykfrt5CS6^O?A5Nqn^EDD=pfcHzxmN>k{%QSlL#Q<e|i+h5dWIKYA7xpwWz%Tqf%
zh{TMDitY*S{z%0CmX_p~fzL%>PR<vM5_MrJYEP6?&hg*H7Y_-LsqHQ4_tmL>uNLz2
zYn5+H^SnsklFsFXoxlnnMfh{k7MKe9Q&W~Z4vlTRGj&GCoG!C4^LR%)kHxgyMqz9y
z2QETdMw)dvs#=r(R+s>pk&Yc5M~I0dy1@j53m%3_!s7c(9X`XSwpia1SB#Y7SLgpW
zJ8gc6Saq`+i;b7@LOIQ=tTnypLSnC(oYrBsettS>M6Z_a&O0c%)<7*4r=fzK%F9Sb
z&(rp_rcMwt-caA`bSU3zP}=CelXHhNHxp@$I=aw;YqH!LMmzlkwCTYbs{P!H@#Ql8
zRp<9VAoqjHw)D+Q&2A(sJXTjwtnIn8+PqBUR06*X`PrK+!SIoz*N9pFtG>J$K`EI9
zFMfWZ(0u=(o*;djv*}{$VF9<AVtBe@R{m~xz-QN_gf99ytS_$TnReqiY5XFNq>7HC
z1wzz10)u6L81fm={(X2}gEz6*^GYe(5c>MS{d2{yU!CKtD&Nz~vRcVvy94cKxAC!K
zA|hq7#&a+Cn%wvDz3ca+IT>|atauB*)K#Q5eNih)Qz{k|k}enX3aM3zFaB$4a=JCN
zdojxdK1XtPYPb0a`95PNg{Z=_<)q-KiM!m9nyGQ#vs*m#AvQkqhkSUuTa=C5N%25p
z5u@_`*|gGRD=nMj3txo`<^m+!iv0e5b0R@@HbGQYO;0PclB_nf(_(dA@*;5^wdqe9
z@mYCZ*dGO2rN2^z9nAeHspFm6>pz2Sl%NeV8ji<^&$hj%P?##dzqfEIo291>g{1Q2
zB}dLX1aX!(6dhSK5hPorbNO9#2E~QX>;<~Ok-g>Q#1Uv|X&ErsOh`)V1j^-#VyRTY
zk$;}y%qLiB=a7$^xBDxHk{8nX6|{UG1*ULs4M8Ed+$qHIGkJLI?5F+dh4Fo?9s1(`
zPv%zUs-<%fBY0gqM~Bp3|Ev7||4Q!4{7<VWy?(wu1a$jTpP!XF;TDVG#H{}5NAb7S
zUoo+W1Uz^IXufUV-vD2cqA8ICFfc>@fI;W&1%!r<K|1G=Z%(k{<Yep*#P^dB*orYS
zGGYk}tLDWf0*zT>VP$}*Fu&Ua&wJL&>}>z!WDO;?2CuO+BN35e^T_dWSeaCPW?c8?
zX5i?Vot}8R?_byU^aBwmK`J-Kzx#H3h!X6@TUunbo5e;-VfMRVQ6Rd8J*^IoXyfBQ
zby|_&QJLuI{P<-hhP097dJP)gTsj_oQpGFr_78y+T2@#bekbaI5F4*Sw-*T*3@YK8
z?(gqsk5;_^#9~=8YaFb+VK4tK&vg3Mz=vOi{0LT0PDVXk)%ozj+u#N0(scOw(po)J
zlhS1JCc)B~>L;EM!taf(ot@6Sx;oB8bHd3&Ev<i$Zwmi2=Xy&2&-}henu?%Qan&Ec
zsPnnwB|DD?UwLKZ32S}P*zll2OnhE$QKU1Nkh~BS6cneSrKL4s*6kjibACMEU$W;B
zxAIR9j(<?xX^de>bRy=jbh3TxCax+5M++vKFq=S<HAyW+iuOUQ+4hb@k+5>y<UN|6
zUOwx<jJk%~->HHPeSPN9;P?(_5`tvlVCjJCFksc2b-7j~wgm%dPEO9^H_C`rr-(pt
zEup)VYqtweE*kaO5&V4_m+C)$(j^rXOwT?%+-o1j!Nv|e2`w((+#T)d?(5<L<E@Mg
z-H#t%#t?G6K7=e}zEaFfb58V<`wfU;c4w!$gedPJZ{MMZI#t)E@p$qPt^!mMn@Xv_
ze~{4IVhl$#OoCoRLxVNde#IWf%vRuL^aKhlbDYswg?BbeiFrRs01FF>wVM9F*D`yi
z5f<py8*bQ6Sa0JPH1fw`=nR-gb($^@mU%IRgn;}ObX!ezPM;Jez}O9EENwZ@%?bDR
z3PSUa^vxT>6dgI;iQKUK?{KjfyRosc9yU&6BV$LphLmKCGC4Erd91UAzkY3i!7R}D
zFD)$rFOnLM)8DmL5AfS4DgA~11|6M<Ktom4WGPqL#pUM0?Fy`FU%!40rfU3Ny`e8#
zTt9L!I9&Yx{vD7~`oCG~cXo9}$EN;)?7%?##o}OMswO2?;4giw1%^1voE&D9rXtC^
zOQ`$%9|HrH+S=u57enz~JbK2R)L|ls@TjuVvYb=1I2c%zAsC5jYQ|;S0SeFhy#dI4
zY|q}LsE7nD5WSTIKyL*Z0^k>L3&STz$3!IXIvfoDz@VEo|Jr51N|x+p%{(O|p@8m4
zR6GKNgGOTSX*sYZraKl~r+uNjV353%XldSE!@TaMqA)2e8XD-|+TLCCx_y1;e$(s%
zW|{}9MK}g12*}bh;xr6&Z0zs-V*y@b+5P&BDUa9f`922Kc}<1SGTeo)Zz3Ln5YN1_
zq`amkQu@Ha000nf6*)TKMbn%=I3YZbX28|-lnZagVp6@3E>$RcGr%^5`)LH-W1Y_w
z;&i)jB}3+CvwnNAc6<zeh=W6e3Iz^X<0cFE_~5)22a1uB(d^GP*x4x;C)ApZ|6(_@
z6m(Toys-Na6Cdw&d+V^hGct+8lvZOt?-Napad@40eX#x#PZv3x9pib#c&}8{`Ia0H
zsrS+kR>g85CN>p$A2gZe{Ye&!x+83H^z)8uA9TgwD57$>+BZf^OYM0)7V2$;?yjgS
z7{HCj_I0zT%IM-~+H7jAL$2xjo(ZR{tfl2&ny<Y;nUMBA!_U0eVqrL$Lt0hr9l%Nr
zeyJIh01tCSLR1{~8_ds?ABFk&&kzv+CP>dtQNcpDh9i}?%Q9#f%##&OYo0gyJmAD)
z=jLvWi@lTDb^LQ_wTzHM88!}9crSRrh)9?M$cNmgDC9y8*Zzocp&%I&!4)~3Hd`%+
zDh^JaI`jD{n@uq@cGZ%Gii*}!Mlj9|{^5fOn0i=eyIr@_ii-UrhB-OFx7iLy=p-VK
zwq<W`LqkV*I8{m%^YZjV5A6A0<Qt$I<M;3&qyF#6>-XxZ-3hC5xp}WYJT?`w=`S_;
z=?WDvu}ldKZB8M~zJC4MT+sRV(Advp863<v{Y>wiH`lDUFaNMoVeEA70#zE*N_}Kx
zB2D|)SWgeu8^Y$hz43(l`oaqjjQ9xa!*wBC;M`FJ?7}Fq<I_`#?;&<}b^s{{=tVXx
zEUKt6TMenpz^?pdVnTO>nUj`k=QxqgO3*z6`z|dcS;I#BM`@h$h%vfDb+rgGv6SoP
z+j*pmb5o<qncsVWhGRZEJsDk1^y+PAr^xMX#P$4i?CUpGc6R(8?iu++#l;z06dGEC
zdILOA?wa;IIAL+IsU86TFvneN4k&gM!STuQyGmGLzyK7GCCfSIszZ=`>EIO73&jmS
z(77s>p&`j4{E>?GL2i8F%03}*7PB@toL!v7%0nqS6LrmXUy%EBbPN}=z5M40JdY^L
zu75bIb@>@u5fUn!FMJLRC{h6`0x=~umziwwEpA>dh7uN`AmY`QyRB9a=3=$V&)_G;
zOhLg-3BBX#;N;|J=NI#Y%_LCabhQ6)7j${FS|y1Sp0<|B%t^x6KQu-%mG=|uL}S%Q
z=Gt|^t`xtp5F8=E0$eHA4@k&2Q8m~CNJ=t8fYC4*i5B@8ILx%#8U{uoh?UI2!RS#@
zy4k>f#m_>o%;BIkt)3iMGcy7FnQ}G0g#yjrYq7EAI{Nqa_6kXL?aj^AMFLYohfx<D
zv9NF!=NI#`b3Qs?7W)2##9(1vI5_B0ka9Usrt#aUl=8V=7B|&#!hiNX4-JJZX#&<2
zU@$~YP`m{-B{_NKEf}yXPF$Uyoe6q9AdpKSAb{&Jn~0EvB)$KNh5Zy_4CIA$wcr2e
zkp<VuE_-#G7vO7vSI4ib^8ht&`qop5l$?RzYvDZ*{o)2Od`f#J*vJ4wClD;@G`Ypw
z50@2Z+e4Nbyw}!%&d~92E|Pu->P8&rQF3?K#@_J}axi%CHEpmXFg9^|^=X>dNx=Pa
zsYs*FrYk7gNP74{`%)AI|9ytjQQ`JGgOl>cRW$K?W`g}qorrX=htq9fx;1bgnaBa}
zweO!xa9dn^zsyErw$w8p9vnV6N>@iCU}P-Sdj%8GI-H+v3QX5mX?!-frvc|tBHx3*
z4=24Jkkd(TVZJ!upJ{Kz0MhI7(W&b9s!zWX+01&ehZ2VA>MT1teD#Yp%RdN<7nJHp
z+zt-*7i%=eWSP|(q1@d8^U3pN%bwY`xGMMw?tQff9xCcj-xN(78yoOCq6(RVJFU(A
zo(qqWn4iaJ?>G2108L_7(PLMOpC4%IULFn%51t;Ma9f`msEfd;mFMTfp+moZt=MKI
zeVG~@9B;M4)zm;k^DdN_r+P+LO&Yvs26T-|$gN^;Q)R%w=@oee`$Bw0#LibiMHP;G
zRz)y`6xrQ402ht<@?;-1DHj(7pQfr<zD1a_?Q2fXI{*6mZ2#AI)l<_d!|6I^<w(F8
zC{4^3SiNvKQ$hYiWP4{@tI+{iT*9_!=xN`!G(0qdY9tzmsWS<b5mY~kwSfL_G)vUF
zJOg`EG*s7$0!}nLqdX!h{}XW+CI;Hgx=_J?hh(4HWQ8^j0Yt0(<*VDvy_55cL+~3x
zHjjm=udnB+vnneD65A+rJR&VkO~~;+M)ZKcQY!Ef-ba#yvtne0bRiV_>+Nd$hj$<J
zZBKzzjX*m}J+}O!s7J;-T}S-mOA$b0RV$;({}Ic;N)>o9N8S|i9qwHwxGei5Q32x-
zAYv3ICM@~g6LjQ$t7{||=TU**XX@cB$x>|?5`l6tv&nMfj4mD`6Dn%4_267Zgcm3X
zL4gc@TNUu|6F^w->lYFX`Fqx=!COQC{=6dQ$HyRHq9J3kI#5hJ;{E&z{H%6MwLOmZ
z#PTLZk?^}+&6O1t6jbHjjQaD{8Y_NOG^ck*fJgXrBaZNYFZ%Q=jE8u30RxdNAX|xs
z!^x`WVxtR5PhTCJia8gu`rXK0M8_x=9}{t{_aU#Q_Hu&Tj`R#jL*D+%DwuLTIX&(d
z6Ymf+QF;+V!I~(Ao>fr8t>H#TC!nnzUZ;UxKF;*_FU1FuN&r4_p6bUY#=5vURKX83
zvalRQdj;6HCT4msDaFMlvnKbm8}Qi6Ds(MA>ghrF54&=Ks0rLA1KIiCzb96(gw6p)
zZnHK<oP)h%_>YjUe^OjO5YJIJg%gSo^~=S?>(p42xlF_n6?=_El7rd`>;*xgyf@jx
zOV>;NmLj{bSW`j$fZ$F0f+m^YM{QfvjJ&JECa_8RpNl1b-1DtA3_cpGAD_0TC(Fr+
zJ&%^Knws}dS%pu(@(aUMU0k>g0KIQ$c<^nai;MGuhWdm_H8>To0|GiKBX%$Du7DYn
zEYSxTc!3!)Y_WRZ?CTdfRp-se2LR1vEy|6GidwpNSH)HqhSErH^}IMfAv1g2gFrCe
zkkY<|G6VFmtgM3hj)kNF1MOCiyMZDV3KVF`8<^KAjrPx5_Bvt#e{lxDIk7vdtgI|@
zI^t=pk08Y#aJ)S=oNxpeO|fb0Dhns;+cC*O2}!e=@h^|E@IY_k`FNkp@1{E`_d?7^
z7RSkH?gs4Cw*nGcnjF5w#LEu#&$&Tx=?D~&QTD)J!ih)#i8mXR7k&r;@q}L3tIG_S
zn!r>Flsl3mMLQ&z)n~uSCeF>LI|H^76wV5X{r*g}0v8%5#LJd`jkyEuC(!RJC8`LY
z|M$xFe~b&fyc#QQZoW?}DM^l>9fU^YY7C=(ctAveJ3c#$jscr2^s$M_aW&xg9=5i(
zX#mZQIgr}KC(D37FUv;hEzw!Lk`pRwNV}^pXed9cs^ac|8?fAIU8i4{kk^Tkg0Fc-
z`$_Ks6wMEy1k^x7Lr)U)XbenRumf(?GVKofnWTn>22o_<r6xBg(~6^yX#ku$&&wUz
z0<af~ikebs#O!RWNoo(hvZ`aC($5%<2ouTr0f#6wFIEfuEWj><g@fT|6Ylw!>@1eo
z3E&j(t`49L^Aml}y~?r*8q8Pt=By$zJ%IrgY_Z2ihWu>i(tmY!-UI~1HpPn&EVMmk
z2zZG7rX{C4yl$`qKQW5re;O)G7{{LPAN_9ak5C+n^V*)kuZqw4kx+z|lk6>2It5Vz
zK0c7f^YAeKZU2FhZN<uE4M9Gn=<a?7&rs1KB!4AB%vYz0sVtWI@L?^eOxq&u@dhB}
z=+aX)+6|O3v1V_~S^qil42XgxOsUC|nx7*ca&r^gA0N?f5AiX8xb;a>UAb2!OUDtN
zDT}HQ+yxqmN#VpiG5%q?YC*E;Y4Zy}{8U6s_mh})3;Z-8OqKpfqn4Ht35l`7d6U3*
z`ICg@le~884jmJaIijQrfbN*jZlfC%4zUDZqZ3lxfxYP3poJ8j7O}_e{?yRal_yN(
z%NKcox{d&atJ@(pO1YT1`#t!&GJgO51oO&MeEUC5I&$*YC#3-Mb$R(Q?KYIKPzpV+
zeD$X^ey|T$oi}a8nc!qTo)}3U+8yy5W@o!M2jbGw>*JfM=nzTZEr*CGAiXOo$Ru+k
z0*gZ@CMI4tx4A?haR3)YV^Wf}x0u)cMH|W4{^6{(N&b%`wdCZnWR9>Y-ws{50`qJN
z3RMSVLF}z}KMNQ?gq)4_4OQBn2E4|%hxvy)Jyp4d!%ER3od3h<70?YlID|cqWmF$;
zoWZiIG~qibyU%})!EZqd>M}VIiI^l4j^~}3&Magh^{syrfjbh$f9{}%qGNR&GDW)o
zm#NP0GTLcQvRCZOQF{M|!aty2GS3UXVST13|M$H!m0;jE__zFm%>RFr<!>pUCscD+
zVn2-xGNRO>{{81>QYo{E^dh88r%W&XdyNhE5GB&xmShJ(`j<okEZ_Birm_be<Na%Z
z=r6~1I{Vf5zj%6Z@{afa`~jnpzNslp0f62FPq>)G8CrY-BQ=A}|4{SKQN_i_l;vY`
zsglB|ntL*AY@!DQ*8tr)HkqT4wg|G?D6JwHLb3B7db+gu|DjG(prtf9POqG7rj2M&
zc6XEdg%r`T`;Ba4P)j3+=~B?~-klW1TM<D(wK%1u$WwE~Y<X=h>;fGX2F!CdSEsJ0
zx3NV*Zr{`r3o1@Peb7{GHa0YbXxH-akjtR?!4~S{OCK;D8%f|QsHx?MRm_>8eG%S+
zwY9yNq!CIa0CfuX5@J3Y4Sv+&g3gbj2D<bA(66;yJeoXr9f7o!4xo>TwVFnf_=L5U
z<0SOKaj*wH5TJ@@ZyE3trD`u*00$}^Ii>K3<uolf<@OB$@0^=~71F`1m+I3?^o>=^
zd0pf>68_t*4MHLu(V6x%A40TCBFlU$X1%F=ps^p{KTooQpQ*?f<@aGYrS;AYcAvh`
z_sM+*lY3(QpKr!AlUaL4F*q2v=_jF!(H(xT%CHXj5162f-Rd<<$;*ISw75RIy14p$
zWs>?E9$podG&&}xFCS>fL6_S4^05hpL_$U!k3%;@KA8iY$Rh!+?A)9Zwc2J`CxXgY
z;D@@tu>(~wWTI7Q7lp|G^=l#l?v{r&X7{y>9=o03AKxRqXO{{l>7_<Uy*?{$0lzF5
zEMA!}bOwh^D?zunI;*LvSv%v#kkL{Zoj|yO1uk=PpF$g(ka(1qFO!0)jFd@s!w~5E
zXBEE~vnIYI>p)H8S5lS(sP|WW$fU(~lWEIXSlfPg7rWc*HdmM61DhBf#E%P5{{SOP
za`XrG5+^?HvT8pwtAq$09|22VUU|OOs3b5+U067vC3>^t3pLoW++IR*vI_9tV4g2L
z@=F0#$KX=-X$+~Te|o$XK+7-j@in+KFhL-?P9I_Bx*A+uAa+FvN<Rn@O@E;X0_pqp
z#qqoqa>~EAw6~NM@IO`_AHn<uvQ*j<667YM)L%vh1_NP83#v&;N%#bk;$q*w!vQF8
z2L%%NxB)?lnlS}vx>~Fu-BAr^z_O4Cas~GNf<{86!&7+)FwvpRbmQVzy>7SW4^@(%
zG(1fDMkD=Tt`6tz#&SpQYRxT5vby@t81(ahWlPQQ8O<H%*zM$G=X&05d>S$PfYrYN
zgqL~YL{5K?$9-DvKHx3!@fXaOs8`^mAt9WePBkl+*w<8(<^Z-+wauonOv=^{7>({e
zmjTBEG@MLUfSnE`jYJDx?Lf}Tn9j%l?Hm`KJ|yfXulo)X=H^D^*ASzzeY43|m+%lg
zy^lTs=6HH~THfCes`%=e2?4jgegN;#bNW~t?RJHT7y@)#0xaA=%%R&$1Bp<!efZ4c
z=xbQn?f~sq+f$%VbLO~9SM9+RIqc;1O*sthJ~g|NUyb^|Z^JM!q*y;#PfLqj>B|+>
zKt#0CSp}eP)0HwCM>~hJQ+!T$|Jp#9SVgRnM3!#~YTx#OW^DNM6u?G-T<;RHP*N6#
zoGL@@0@?zgv=eacmji_Es7}DL&=wY_q2X@Gug9hGszvaHg8I@MHmNx4{P3tHkLD*~
zfr}rOTTqHZ{`{~9<b)3Rv%U^|9j)*Zl=&R4uFO!B)ppk3L&Na}^(owNWhAv8u2&vj
zxn7l;OdmY-q2Aow{HM{V&CSf^a9HB9@)A_3{Y}gZz)b9hu~X;O!w_@Y{oM!sy<mRF
znZ0AR$!FEYo-7<3%3mInjE_N%ePii<g5MMmo;YQ7bmqv${+Ji+ucAJJDIaBOgRRRF
zB(eM(u835sJ7j6Tf6pXA*zk52Owp=Loo-Jl^VuOTtn(C=cD6<g8jTLC#53&D{A<>n
zE-&#Jx#-R3122^MEdphdj;Fg)C4{Hf;5u#mv*7z;Bur(F<G~9iXBP+DGdG9vAQuG~
za6o#*gu;Z3j;4g9WWjtGv>Dvb;ED06DXZlqiNf5{U#9vdn3(wLz{-q)Lx4_fX=o(#
z>FY5kKQ(7O`;<c@=vzA9(PD#xT;O_8j;0iW8Sh=$)7@ie_yq@bTgu3CrB1p_ZWcc{
zm{yXKhU_DiT7OsOA}WOB9~Er|5_CX-0d}Z=U=RTTZuQJK8O`f3k<Fb_bD=(6=C@z<
zLC?uPMeAn+L9*9Ku4eIHR?<}XL|Ng3Xe442`Mtb6;surlJp<j4VUe(<HgWU-MHPO&
z(ePm&l<5eW<MXTf+v@pu_V-V0TqMfoil=9yS|UZuxcmJB=%i87r{0^sxIS~)8Qji{
zrUJz&_T!dAxh3MOY@v;W#7We2f!O6Wjx%;FZ0r@6dt4Y?uofq%f9sR=G=9Uz{y<)P
zdGs@dKN{dqr8!>!Na{iAB6+TiW#JQ!1&VH)#eCiFB;aShj){*2!{2P9>i5>;H>ZD+
zfkQIe*ho&CL1J_82nVy;W_C1G=keq-s0loy!50piS2l8Tuq;rb6#gP4RIf}u`_u+i
zIv5-hOhHNUxhPG<pl@V^fss~SdDP!6%-45NQm)~k_3RH3Q4=z8KfZ2Mw%@Ofx9Bf`
z8=>{?THaNpF}46NwTP8@;yW#<;)jL?I(R~g{Pe*t0Y(;gto6b>LYEa06B{$CM6{=S
z$<<m%NO}agS=h_e!Jw0~^j22%3x>q?(v0It(lo~IFj#f?o3bVjLy2Uj6sNp+s<T|1
zn~whY1`a-sjm`;2Tu->Wva-rzwaw1jmX+nbe$NqD(M%gp!6`EsF=?R3CxC1W7f1zL
z_%U9e!9T~N&TsLPsIf74Vl9by8|s^GV4>yN@aZ_n9)A}^AB#(8k?1kwf?X7s=VMB2
z;!R6PeEMpm-Fm+~F0p3o?M??d7bA|P=4zvrRn}22SktfadiuW<$<JP;BBw(P_taI=
z!4iy#h<QExcFDf+!^Kl9`)5zjM;xasP{RKH?nSMA+0)epNZ^x$N-DBx0(Qr5H2vk-
z)bZ;r9j{J-k-<>=QMUU-^3UE_9q;s2PUf}g#kyiMP0*C)-+<!eX7652OzwAQcZ^8Z
z$r)mGP5C)0Lh<2#TVR%*&B@7`v5_H|lE{ls>t+Er?~<nd+^>iT(rl2m5~T(<ZM#1S
z{q+7+Zc_vp-uXOGyqNNW>|K!v(kJqc4K5K*5U2zIb?jCQrl){s>w)J9@&$7E-v#Mf
z85jpFC00aw)s|p$50E`#0~9mHqlGTw0Okf<BlRAS8$-NKnfDe9^uGYVP?L)U593u8
zc<X^}4p+%y(zK9T$Wq(VQ3eI4#nvejQ~C3-(Vp%c186wYnQbu-zs&%vTKbAtgi^?~
zWZa;{)43UoDNI#Tb`y*88l(<p=*4rr(x&xU5p!u@Eh#Asj|1ruuA#o6gM`AA`1WD#
z@%}O^sE$N{kkkDd*hr8rE*c6SQIXqMB>~mf!fYm-fTeTv@u7!+^D##VpzWUZ!oVrI
zvTV`sMZgh}|GoeB;{)u~AC)t&d-Zo*umI(DZf}o-yim><C5H%tVrKH1MnGw@7Mv*Y
zTv8{6oev|mwSUml(-Xzn9jdeHctc1`OGCE4eW;<>?QMo?$;hJ_1r|*5h>Gm>qa#C`
zzb5xJFSHVmkB?2vOn@~k%JX5qhpHPkDB$4m00ADppdcTBhaM01Wr(#DBjTyGrmD2v
z2UwjBs?S8j8Pe-s^u{x(aups-$1!VrVHIMR2-~Ww>xz{p1qb_cP2+fuJU-4h4d^tP
zbDMjd&Q+A}uuH~+%m;<p0K6Cpd2KyVq)=ZGB?x{sQj`L265=Is0QCe8x<LN``I}a1
zQqqiqTx>KVA}kDPN+raw@7^A8O(8$y<Fg~a&plc!>dhkmnf039pakG<1MIcEqg4>v
zb8P&0ceDDOQ1kl;+6!=U9+A8n7c|uH2&!4wIKcB7CM}j>l(ovl$9g(Ggfp{)ZI>$*
z&{he!xz|HHRtx9A&e`gI*2_uiEn#s3j48lm0_Z$u`JQ)HErH&M@d6zD03n8?BB-c<
zsNy1?v`Bcj^$Gbim?17yd=W8<%Q`bQ*9Y-e`3)e702~Cc>EO28KCP%S)~)xvvIGkG
zkYqDw`|5}Y&`_3E9jZLFe=zk?E&;=`<rY2%V6M*2&d=s)uK`DW{*NeXSJtom>_S)+
zM(wuIk*-%N<;N-tV7RI?rhOS6ZY9W7-Z<|Y*>5shj^@&_4Qx&@m-}{y9S?v(6$QQ&
zF=CVeq~1TUSDWbQw-<YAvvkm05m#SjZ~?wV>tW}?Z9lPwZxOr^4@)y~7hZEfUat@0
zrl6qYMh4BM{w}jmvx8}1L`;el>x(%y$=MPI8;5`s&?UelBI>j`F@d?~Ftl75U7b}j
zKE9d?doH=y=VH-a#;hO|x6|8cSn9l0o3N9nWbX%MK^!LF@bIn8F)Z=R2^#@hGBBJl
ztCfC7%lHUZ{5vgfqB6-Mtf*<sdUrmrKnTG0oD0LJr^cysdr)T3vDpdn^8>4H_{_|)
zQ_)Om-@!phYD<VcYpd%aHg1qC?(Uv3k*Dv9yLCc~d!mvo0j}<ADl-eV*!XnW+kD^H
z&{X!#%PdhOm@Ffb`(g#d-JP^HPmA`s@nZB&CRJUr{@!I?Hxv>W7u}hauc8=Htu5J!
zIWrdWXQut513rR25y-4vNmqpY3RQxh3Nr5qG-2BfJI;GTbW@V9_*IWXnh1(Be@dg`
z?ORz5tdla(u)D9dSBIWEg_B4Yr56}j1V~kW?&(EIXZ?{Kz4Dj${P67N5C{A}Vv{v}
zKTkv9CKH5U=flm*%Pl0q2Gpb%?3+SF(_@S`mgbo~@9(*B%i7EwpE5`RPrSZ;qvX-*
zJ@(v_HD)e-0xX@+D_GIEth-wEp;vB;`yq(jP5qe#7uH}x|4no>%_p|Y)wG1QDLclX
zo{Kzj9ix{lAW0>_!?-htfE$a9Erl9Yr#atv#NgxEU#%kn7j!~wk+`?UT=VI2lZ~Tq
z^NCU>iWR0^U8@{1ixkW4W-M1>a5|Xd-ASm&(h*(O&c43V=RdBoy*O8`)$<5yZPBCQ
z5-C2C<ac<9%pIVbfeQ+cA`UCxl6HVfMN!ogCYq&?qv%I+5sTCnZE^nEcY;NwgYb?x
zyQ@&lXbua+gaoGZDjePp$zCe)w`rLU4pIdMrfX>>?;gT|A;rTgP$Dd~w1AW%V$Ft~
zi;hTk!ns<02J)_+k+2XEg1Nk(rE!-aye2%2+u~@;`SKukn_y;pXBU-#>o_QqN)0a&
zP`F~_;)XSwkJk#Kfwy%`tBJ>|hm}buy{Bq7;_3we8uuarQ+IoN$=xO6YWZWwnK5&F
z|K+Q@MKv|N1C>_IsMLszwe0b);H|Y<YEx0{zShH1#bE|d5OC50bb8rR1HaomdOd|V
zYXmjVkLG4~5--92E_@J?_Ik?X_WB30zzWcZ=n7xKy&JGwoCUdANp-f+=1{avhrc_%
z;EbX|Cgb@U3JQxWLHN$Q-q4&75P4%}_CzdzQ>K-glJu5>0`Bf*B|`!W8^v4q(bJqf
zCM^m)>|*WM^z=HD8G0}`s3gNaed@OME?sWw3MTdqEvC29(YXws@`9c?hGj_JiX0Zq
z8d!+$NbNmzI?83zZno@0sW+keVGT)NoJS@W^gQSc;5=Fl8j_AeaY|4*TEb)ZxV<If
zUArg$0hj3&l~?xD>VtPqK|yvl<~^ZCQqq88iy3fmqz|63tyyWn9@c^in;9jYnURdK
z!?ZUgGPc2WaR#7rL_|ah2&zHai>@tbgNs)w-%>H6SoW_!3Q}{Hwd7z4l02Q*8Q1<@
zRheyq1AB3t$GX#jA)M1n+bw7wYZdp6PM7*bfT#|-Q=M>noGuhhdD*ebbMcyR5gq+a
zv-9R{Aw%-yMB76;D&jpKqh^a~U&kvs8r8gC%}XH8h-x(T0hFOhPaP4-@pVVn6~MyW
zRjf`B?sM-8#Uv=mj)i6S_3KP{VQg(~Tw1t{oQa9!sBE(c{!9TWwV8z_86z#itI!V>
zY9q}*m@F;JHI|zBrj?Y|rH&Diy#1i!c?r>iNPMR|2Z1$TPg6(<t5<K*L8-91daA1r
z*7Wtouc$)do^E>eCYW$2&Qt<~6tL92J}<!79mATw^Obz}=LB(gm%gl-%g+w=0E#`S
zQrEMDDapUh$xfMG(CGppRET^1g~fc8+tEoDbU=zy;7}Pblo>IqA#F!S#rO|{TB&a|
zH2_o9Yh*7fsP1YwCuChwF+#;#>!nU9K-(^PoYou3KwYA`i>`J14Uuz+>ppc+&5gyW
zkG)l0EON3El}?7rdmj@NgV3AV3f`BgC2aSPYoA6gA9&xzf|<+YY?*FqBnt~KD#?-)
z1Q(SP6%&iGiuS3f_*NoA88oRNv4`>6YFfpKQ_F&AjxnVjv^;*B&}MgfTKI5`GC&%^
zWj2p~tzJ-2h`+Zl`dL&qi4(R|b<j)^c@&}kUC^-3692h_Mi(|H)E*ZrU6x0Q3ce{)
z)6mDpFQfkLD%1@qSD(W=A`&c}tB$;<n)>27H<&q@r`o1P6(|D#1AeP6<U;)g*wOpV
zl&qhJ=r_dy+M)krV}F7Pz#AZb#h?s0(r4KU2u)kj-cL-Vl^6v1SSfs#_h4V9Y`*j&
z9)W1Frp<aQA2@_#o3wi^kYq`?UWYWfxs=Y=UR*44S}>GYrndc_&4oQwh)CDb9e{9C
zU;W+P+~l?S3mNr;4VDb%e5$)Wz9cFftl?wH$SUBr{k<m2l-A~Y#rT%zAV`Un#<)~7
zt;YVOId<rX-=#RKz+wM-0O%$vZttNUKl(_{lmzerVp<4^9Y!?B`_XA|nEZ41I1V_b
zzzSU9wdklvmPyBH^}+D}Msz9bjxTj%UiN~~VCu5wtmUHV(bim+q{>`NdAu$o<V}LV
z$6|p;5GTrI#LLPsLcZ6*2#8Va*4{;tHeDiHJG(lK4t^JmGC{I3XUZkIWn%VAvYI~S
zoOEUl(!(YWT6(hw-2sTAqbZqG2OM8Fx`A+GvZ0}DwWVou?IUdsN=uW|YK0}yAp;Uz
z4OfHGh(h!Ks1TJOojVw!feMkq`!TM*+n#&h>SyH>CJ1QR{OtpnJI1I)ESwyHnAh+t
zp1N%z$%`i~ccI8gVjLUi+mc{f&}6eiI52R!H0pRU!vNW*Fg)5}01_xlnisVWYg0eK
zl8-Tg#qRbRKHJM_ZV6=4jOw&;cy{;4BI2B!DYeqTT%N6D1%Y?1GYtc~&35+^{0%)n
zeuS7&<)GtWX*F1%fDAP?hFI20P<rse(|~?qU{$Oh-s_~-65Jfevu4}A0Tk3`8eq(r
zruD!@VSYHeDGJmKVp1~ttIA+)eNd9TZnb{uat1U71L;r0VEr4<=zb4rcH5+)1CbAt
zle6*ftMEDXyM6cB4sYPY!hY&heDljM?+0zc!Bfu2(Aa9dn~Iq8Tx4n!*ii@}%n$xj
ztJ;-LmN|W6-PEeTc?;NnRTEWqw#pXsNaS~Q=7tyJ?S)Ng;V6)MN9?%l)oQ>iPYpux
zw0~@N+^_tRB@%7QalbdKM2iAy0PsUmj)-2Yx5c8%{#5(xU0J!oB?OeQ{Vc(fVybO+
zZc>`}1rM+bd-6{Ys#Sd16hy^~r5d%GU!;*0K*C;|b3F;a9S<uN%&0%;gd#EM+34&x
z|1OuN5lill60keN%_9)@g>YImmsd#+i5csZ0I}V~#o=&hC@I?^I<n(<>t>(A<fLQC
zYJP$C4bQQ<6V*L*P)YG>0|qu<xq})1AJ~BnftN3VgVBILReeki4Df0k?>N5E3;^3A
z{=t3+i?2n;^h&tj9T4zcS<Da83Yx{2s@K1ffq#dUvf>s_1PEjWIR)R`=nf0M_I0Qr
zT~4zt&K^3N2Qe+*@3X1K*An&@K$|UA+vXHYZPS(NHUav09-~$YuR~I1t3dXYI?nIo
zFa66yW<9xK3Q_1_(e2AGYYMBu4Q%eZN^Qi&leiP$rFViXsl7X!)9V_rf}ZNx4;gCx
zDhg_Xl9aXxil``+TKvQ5WQTVkGpKZ>!Q*;(UoAS1K8-&}+u?E6fqsWxhX-J$w$E^)
zCSy~yp5NB9FbDnii@(E^A+z*qJTAkk&wjDJ*_>?SqIZw>qC0IG7%Td}>+1(7KDD8W
z7O{lms*P|MGQ9mh(|>7b&3?19-USS^tp1IS0`=~R_vwPpmSzN)*f6sJukOzG=WFP)
z+e>-?$VC$Z>0DaUy}mz~PSEQTGpdjD9J_Q?0TGN89Aq#5zFJRHD>_IcX)no$O>|Kg
zX#`zKJr3m$=}zkQr}@KKpj!a+2=oR&=yLA*5n^_Oe((r1Kjgz!uEkyVBy$SgUZg8H
zP|Kq08C-7Bv@|Y8h@+UrGZJv<zPS79p@1H>I9qb0yBv2xBEdY-)Fj=O#t)dMc7=Dr
z2w~sLoo-(*`Vtr^Pr=l(J1kvOR?!Jz(SvscT$skYJK$^X&u}nP{_s)Zlm1CDw+IZ3
ztagj8`zk5o0d(Erg=mLvjTBXM2#Vl<;B^O>Lr1>B2m_n<hdPC5xi9k1OAc5%Gv$|H
zNuL=G0-Q($JoIZ)zu6Y-;{hTTh+G2lBcP?9I|HAXA(1o|WzNf%yH4(b3b%Ox32%Kk
z23~$52^ruI1CRGYiw#?`Pxc#P0Ra$pNEM3D?>J{YqrAq<kk09~^c~G0%9~-u^E|^e
zh~D7oNlHwu#TlM6_3`u%0hh0$>GbGQtr3x#ai_Sxr8$(BF+if6npJC>Wh5D+#URLV
z;NDn`qmz4h*wQLn4B<*BsjJ@}-+T%8sIl3W;JOhnSUU%(3XIV9x>v1Vw&-B0GV+1j
zc!F&r<j~XgJsmGE7k%;1Fl6|+mvfBnMB#r{x)2N>-=5BWCCjn~SC|~R@*iEgCJuA&
z+bHwTpY6|=sei7^$q=)}U1+>?*k8!p42DMh10h;74x&JR<$3`GS(Jxzo#Q0Go9YrH
z<t;5y4q0~9DJdvBuTVyXX3Ac3H--P1AM(_1A45rb#c~2-V}+h&3Yj~(0URu52F;<b
zG^Z2s@kY}45~Xr;^W1I~|Dt>o7q5rK1&S4rC<N5X<m5^>@3FlJ5`?RaD)1%TFOE$X
z7TLg<R!)A}PFYGb1*920>tYuQV}E33<~BAa=NV)4N&v4H<KMr&P`+S+LT%x$y2e<i
z^D~VZ3QugWL-5@jPdgA+#0b{qu>qg*CfDQAlCIODexctx%41CHE-a2&&8`c9Hlx+?
zO6HRSy1DvCnKXXq^*_7Gago|~8s!|S)a>$<Y;0Z2i%nk^9gD4zLVz%>E}RJDCq~aV
z{&@{5(PFo2BT4Tzbar`ZX{8#wJCs(Rmp{Z)h<M(EA^7{bvrgaG2QE4BX;Wh9k3NIw
zR5`g314*F62l1+A{5(<U=n7G*w*{1AJ|L6%>R=(P#YVte{BjPK^ra!lSX5gl!xnbA
zxm2D357ky%Jp5eZr`2>ZK0ZEcS2>I@g)@5n*uip<?}Kw0(s_;+dW?N^yntXa=Twkj
zVz^14Pk%@3P4d#Ff}~n8fbV$o#VUSy5mfzf{tdJ_;q^Q`916(dOO+3cPe(w69~$zU
z6+uNY)YkSK5rUUO4pTS#=Av>XEdqxKf9mmc_exO0*LRhuQoRE@Dk38zs1C<1$k2Ne
z5{row9UJFkB@MD1{|T*}f~xthJ)A_PEwX3wZC}NK_O+@?qdGo*6Q{+-b(<3@BUNrm
z=Eq*P%F2T$FBN||$(ZDLSf^xDTG~JKC38m(O0h9Ks%lODj6cQOip$HHL1W;l6w~%o
z^bN@VXjE6HDJZaxR(qx}k-$cq(h6RUentTd)T4^5&E4Tfo2M1GzMp{liO2J;GYf}l
z&TGWeR3n=|COYJ-S&7b=QLB?hv&oH`i=LkDj@lKQe9e=<@?t1)_>`nY2U;R6HX5-n
zWV&<v%0~gH*xE2b;I5*=mm#Ki-m)&-+^jbt0C79PI<am=xZhGr9DoGFjfI6@zTdq?
z(SLt_K^NYI+*NES31~&pX_2ERZ+!*5V+zC4h~4}oK7II*QB#XDJd&T4*QS%5S;zwl
z6ri>iqLP{O)J^ZA&O09t&9(TR6qkmEkCvHLFo4!s3g3z*&oUkm+6f>6)`Ud3aaK!j
zF!2FWc!EN@MQQ;T;2my{6DPZ<Wc_80XUn*2h@6Otxu}{ArHm&3V*KYQu9i@Oqd4e{
z$6L?xRcm<qzRd%GtO@WignAqH&vS3RzWU3Zz2uB$v@G4}?JZmt9bWhR`JTza#%|L@
zYTQJMsw$(ryfhC*90L_SDJVVHmg;Oaxv1Ih-uYo=8D+-eNUIt0G=LWf8(-#ncegO#
zmS?M2Q*L%$yH?7}K+X>Y-IlRtDB!J)fVCVI-wBL<gQKD#CnY8RxIUyb!3K28n+7?C
z6g>qf{cj}Iri(&M`J1@fKL!mWyS%`T$RH-v4DXVL;lkTMN1t1af56LDbciJxeRn;a
z|L0=2EnFt=CxO7m-vCL!yUT}-zpZO+N?I@|36;7lDyUbv!Eb;9md=X~|G30IrKd+Y
zVt#osdGmMs+QEKgYI1T)lCtKJ*;{<E4<B?-is$P_(}L1tfTm?wvoYIabtPoB6dnaJ
z%eH)AbO6jsv#9<fka(=^WydyqlpgkUXJ56}LqppNNBItiIBQ3VpweQUem~viCskNf
zh`@0t3JAx70eqzJbxEMpuihJ9&Jg0g)Ej85iRfEiq|5BRizR@ytO|GyeP}AI)c=m2
zo<0JgR@c{k(y17EQu%XN;eb*uO<*OPlTOIPqy7p89F)U2#=2t93BvoS+G}SQFet<s
zPQW{!r~G{*St8Vy){?)3Ohr#&U}S)afwQ}RsNu!J=i$D#qp72E6@)s%{)42}$xOMv
zh`7&8EO9+UXeaRf-mB~%lYhgKxlrDlS-TmJ9T1%VB+Dr*y3dZxipi!(G`B5(wVqt#
ze3^n%cf`}`+yDZ|H#Rl`ik|EM3~c+F9bg~^SA${P>By)_NZLRac#QvMeR&{==6&2a
zE2lpu&^I-x_Phz^L?v!@J9i$5%0ZKllsifKV-4hK^$pzVsL$Qm8&j$SQ;C_4qy#|P
zK`P~KdAJ8adl4!i3LlX^2*GT0aUtUIND39&Sy^s;IEKdo!C_G;QKw+fmy|DLt%|#U
zcsvV_fKXVF?=LFcLrp0!ZVpbX5cylN*(3Mn=2O;6X1p^ttIs=fii()&F~y|ROji$g
zQb0PoW!T0a0K2I0MfuxWtwB!Cl#&uCPLgZ4;lf1BjKAd+ls=w@S?Dj14}dcYFpfY;
zcm<ibK)ojgLB!-=^#MZ?+*}3OJJL#O(2ihUu!rh~`Udk2X`a5q;7@{Aw1adXc7UQc
z*VJU5;(!LruLH1c{2CO{+vv1=q4G+rv!~WtAHt937e!>Bx^`tlbN8wxMbsr!B<bi`
zquyr~!MdY?Vb}T{0UDM#<pUa+&|1TRx6{p}kMX+acJDrsyqfymJBoM5izNSqIo~cP
zxnNX@^bW11WnO(p1JS$&ziVoVxh;}@3SPwJgMM-rLXpq|;(5WG6@L1v+VA%A;q1vJ
z{LSq$l#s8-E2uzZ+_jSxpDbY*Jg{p)o(D4y#KI<C3Tfxy;I<}8Bi6*?^bl7tCj<II
zY*vKy7Eh(~hfR6wpr_jhUR)of2xJkUodBN<V1-*RF$0C%9W1m0#)U7zHyZdK&G&rD
z>+tm@+a|GJ^R46#Ye|hiZ8-7gg1Q;(Q5x$Tcsy(h=1+3~OgU&o@8DNS0XK-!mepC6
z<SetpOz_sS2dm(EhUdb>CfO=ABRY<&TrhD}g_fOxot!Ns=^9N$o)R!1q?BYWdSNUu
zv9`nq%LpITBVptK`PtwUhh}i7Zf5-E`~tCv`ehvG*N|#CRoWZIMP!*6$RGanp~`vE
z)<}#T<kQk55)dr%a^JjuEhld7iJN>Ut(tR+ijo^ucmo6DetTN8BQzro?I>>)mNxEB
z+q51pEjgAiSUA`IMNHw7f{Ntf*({T%Ps$x%8>t}oMU#pth?fR#7D11PMk6naW9eP4
z);6eCLv~*JXz-p!MGOy*(iR9{h<#DJR-SQxdhxv1kvp5M1m|M=ETP+9KFdfdMfEV2
za0%jZaje?nKzCR%lBU%(n#9*&^s^H#6B~q`yI<eKiwuWJAG-Qv6=Y_{CN=;w!e{&U
z;^Q+@{;~iZsmem6ItH*c!2KXYr3S$A>uf+x+npyyI*=W<zUKJ=M*c5u^g0SdV~>cR
zmlqFtvLKzr%G5v#9a+5&Bz#<f1^_sm23t#toGhQU>rykQe^r2-^aL5M{%VWG4B49P
zsdM!5WGLPsD&IlF+UkC9duS6-AH{t~d)Vu(1R0RS$c;zaT~#w*)>8x9Kx&0SBv9as
z->8-E*mQ}860mH5X+0PmpQ0k@Ltp65g8Wv?g{nKi?es8rZ7<`zLuLK;V-qNi(6EFR
zbUS{Irq}&hjgO0zQGoOG^fU|@#PN&bsqCB8-`D_oUnokt7MQj5Pu(YL<>jsXt`aJ3
zYL)AvI-fK(Wksp!cnKWQxL@Yut%C1B@r(Sxz=%auK8CryT)F_T0m|7b_akv2@3zl8
z+-<aasTqix9fIZHYO~i77zGq>0<rXqX@DNbOQcv^WYPcq26x_L>&+dbFWVN#iEp5b
z>%tZvOn;q&zu-k03gPvfVtV)8y=@K51)M<X0?InMoyOMLw!NaDyQu)gjK9VCoDd99
z%77V{shLScDFHy&85kO{u~wa)p6Nw7RI(pq`T|eP0r@*p=d~^P8KJ>rc<O`8SFjna
z6a=79=6H^tr|#ny4KMFoUb`2x-8nBM4^k6kM^>r2FTdEWt*we@@Uip8^7CWc1v*Jf
z?KJfReD~?q!RC8kAmMOPQwy(qK@RfsR1zQYO&Q?Wzm7EgP>b#v>J}EhyMVZC4kwNj
zDR*$i4#F_LT<5UuC{!xu4FjKvg=T}oZQX^B@0(i<^r&bLD5%iI>Tky1#3`pgBz@_y
z$OEmV?U1Q~?(Z6*K3EVcoyeuvyCH17xb$`I4M^J*^ng+G5BMxKs@=e6G5!hn6Zu<G
zG|M$IW0GWIY9?*m_j-KAFJV-tfvp1O>JMy{s#5|ptHY8%C`R<K?`lChr3!<l*y+6-
z2>}5JrBF5V&U~6<L1STQX>`c4RV-*=z=a7XI9%JRxBtsW`-L3@W3Y$B2M5Ceeje70
z2<sIdyX{U?kNz)xiD~Hy{FjcSgExpcBT2}0t69cU1n)iRUHVr0zkPB2N%**amY0Y@
zZSiQu-Y4W}%UYSb=mdv?n9OWEvvp%fCP?pm4oUpBN!|IF$ExIW=fbVVz3T1VW2VwI
z%4hRPNEiH)8|Zv1zg_*6pUmsT*X0M5-2L9Y%fuebE4Qm$r7QdS<1AD!eGu*f_);u(
z`x_^AMji#56*>SaE6jbfHKnM$wT*KDnQ*v_DX?w~Ph<&$Am@*th7ka^vyu66i9B&c
zOhgL%w@Tn#9u<Pktc<`YoOJ6hKMy^}!=RE&EClG*676O#P9~CYR&K_Kd82+(F4(DQ
zMarj%bg^qo#&khJ4n`DOL|!}z=yZ(T(Lmcz-!g|4TXS<u3kypNVH|?^U)=dX3=*a$
ze&cfJk{*id843$u@2fUhAg0g)x+m4k%E0tbM!mguxiY}T<BeZo3cCt@owi{A_p@Q)
zC;buYC7o7}Nwe;9n=0c^M%NG?lQlnM*|75qf-4eF!fhr4W{@rT@y{Be_Yp5er*eM?
z>$)h6r)hpqp^jEzX71<$)^qjni9r(4RDY)5IkC0$Z*mZ7*YdKOUsKD&3BTLgN<vXB
zr)kHZ!9+Th+P{l^u1ua_{@_%sk(ZtEfeP)@Q)qB-@R&~9=l`rFA|rpPqfWo(`~{Lz
zG0-vX&(5XFTvMdg6->`S1~V}aX0O)L@>-w4P*Tm}OmS>!1-b)PEXZmGD(`w%*Y7`q
zD?J^79QVp{!QEiiQrf{`wf)8OB2teMG<_7PnYq7gbq{N&L*l`|+FlzR9D+TP)@1e&
z7<e`Kn%k*(wcLEgT|k>yRR~1WJ~3$Xc`ew3Nj9x0``pYr5ie)4Dh&fAJU1e402`Ie
zLYpC-o2)T?u82r{c&hg>NHUG!e)s;fiX>v;iyWnxryLR~z$9<@lE>fRX$N$Q&pHYs
zuLzVMPE4A<!Bh8TC?F~pj9eUs;(%tl$<2+Lk{X$a`M5LkD>nOMQxwQ$AZE3niXf{v
zIRP)HLR8dnC9A1+kuqSFm8J0+8X6H35g;D2u$sJLS7-5h=|+$fNa6u+a{@hS+@4OR
ziiOI_i8K{@1mx+5Cf@@5gQh3V7G-@V7?ZdU@7Kve+Xqb9nT&Ge`6_O7W~KPjh3j0P
z6^C<V5AE`#ng-L80?-5wv_mzOs?`0Rl}!&E2Gg1dJV#PU1s%0asZQ;$nJ2H?R~d>A
zZkLT-HwQ5lo3?g#nTp5on{qnu80ZG)x7H|v%8pwZG^E2qg}S=>X%MJ)3p`-gnxsy>
z)3h2pnLa2xa)ABDFquUqz9&LtowYWftNV4k4@*UbPsc~~g9Gr#5-sJS-ZRQ47IxTB
zTa^;Bn8>NS!eD~M*K0>;NJ{1d?EAkB{Yl%LCd;?oD-Xv#K}Y!a)*Z?ja|9}nu!5My
zB$P%j4Rvj8p)vOSTH2(~t=WTK+scRHc@CDWNFyR-`;E?k=hqN!DW7n;MdOQfSoSO^
zMZO-5XMthYuUtB-vE0#Q0iwUr1>gMDS?k06WsiCV=tLtfCqR=>xq3yiO4v=AJ0$+}
z1BZ$O7MPaRn>-c+vid+n{Y5;#V$FTU?YtbYL_7ZQvMVYTObPa{M^E}bDO>0?d4l9;
zMf6V$${;)Uz(V8Z=DM~_YgUnI8%VNVD@;@=VdfP4F!Ec{e-DqZ^5?1HyIl0zcSrW}
z8`aIY+pZ*t%dk4|={sLvOX*a9$D+r;!CI~}9IA9VV^$4(a~lGF;%X1CE0}SSWOYcu
zc~ILo!m0Tjrkh{3x-v01IopJm`u{NYmT^&cYa1vAA|)c-($YB~AR*n|DN0C7H>iL}
zcMYiwF{E_2bV@hU-Q8#5<Fn7+@9%s#d~q0=`LAAgT-SBWk`GS<`nBu%g~Rp$rq7)^
z8#EtO%`pQ+d&f<7psR_WrJT!41%QzkHr*@MK93rw6J&7b+%I6+*|7{j9%W0W!a6h&
z@}T&bjL&Vez7AB&7PMR*s?7L$8cJpeN9u3bG>Y}f3OoHFh4p;u>Q)`pPe;l@!1=V%
z$e2y2`ZPzY#98kJax{`OqOnhsqWlY{=me;qe;d<?Fr=Txq=8$1g$Vzp=>)s_?#**P
z?$ZV)9qkIMZnp{=G@rJx!t*vZa8=6TqqW^&wF6Q?Ov3Rtby)ag?@v2|o|74#{&Pn=
zf=B+K^!DlQ$mLL6q2b6bgHW~~Jsn+<vz>W*77()4`6KRXZUU-oVI;qr-`<sw(_o-y
z7I5C)*fN%x_4?4!+3kakLAE>Nk6|@gLhG|_PW;f%mr=iF<*cft$<UA$nE^nxmXnNS
zfV9#kvKPdf?*2`)+u7OsY<PlN13?~*<}E1FG2Y_+&~goQAdNzi1n4NeMg(OC?XPF`
zPHyA<_p=HO<P1s?q!ELJP@=J<Ydl&mpqoZ!)5=VeL2IpBr)}L`U0s?avA`<jXzK3H
zr7HZe+qo!^E*>5_B{lXN+|b$Qp_0Sj9e0O+0j}V+XZqtZ(QlZTfVmD72cw%t3-2a3
zBRDV56I5yOwEdQu3l>kU+vUnuOgC#m!FTp|3owwMFRLinI$zpG^0(J0{GpuyG@3~S
z?7Kj0ug%?Yv)-j|Iv~CMYrxl~rDYO6=h2~xlRfFh*tb&sJs=CqImoRTS(ssJ_!I}L
zWV6E%oX7xZnZ;~Cb?mnxl#ynx*aUbR^v7*YpKx;Q508LcCO%9Ao@S{i{DKzdetAj4
zZx5w>+c8*~p<QY+{`0Qa0M0`I&{9Kf3YA_Lmf-#XO2f%|4PU<ag9zvDRPk|E^_4_#
zD$I8Y5S`JFkMFiAjTG`eP)G#zzqU{7EblnB=B1$HbrNB~Ko5YL06x*x*|H42S$;l%
zL^D6rn5;4D1_A-(`+mvWco-P?K>5aH@y+haGUDQ)Y0q?>?GV5>$Mq*R*tgICu>YOD
zav0gFdYRn2vC52b*UNL@WI+jt4iCNEF>quYbf?R&FU=oyH{v;0;5j+5vIBIx$W(dM
z%iqA?hYSy+5Cpp`kczY#GFx8Xlw^fdP*RuKY@Xm8;t3&x>rv3NSu`Hiy=Ui|Pu(aa
z!&U}}<=O8SgUN}kFcfHT%q360)`^e*p`WJJKhRhPR)oqYcX@ze1kkp+T6>m(^PrOL
zM3qYnw5=Kc>yVH&kdE62#!_#3?%1ug=`AA=i2!k%7A~J`F_mbIc!(MMjnLg7eX%<@
zkk_l-JMnoC9EQ(1t~mD*hDG%pk&?gKNu{u!1{)I>cpxmn*zEWKZIO|Y!BbVmOu7?3
z2+Hz;Yhnp~_(Q9;iRE;iy(#|b$)TL2tS_chh)!TecI9~Y7*Z@Gf7`GJw$Uzwi1@HA
z1RsDbgnP5K_kt3Mf*bRID1Gr;E8fY;89p_uu{jn-_GjW0@4h!wYODY)iFDgUu9$=z
zQm6HILq2(cSY8O2oUjs3Yk0$g2BF`G2USTGgstV|AA!j`%fuYb@b&BEoIY<;*(6T;
z1u9HT!^kHfevSD{mAhE{;?Y(<ECze&Sf}Dk#Mh3mSD!x*A03_fb~VP9XJ+OdRgA@;
zpgew`18<Sk78k#B;qLY#BeIkfX}y3VD=^dP144W&<3HEF$}_(sB0NIJ{k@uQQfeL(
z7l%iJhf4V<Ux%TSAzV~wbzu+)m@GDZ`v#N+04KsvjU~lAKexO8)C&EF7{u5ZKOi8;
zPdHLE7Myy-rC;?s37`BIf5sdQm<onJJ3!T+{-l=?>2wZeW@gro{wr6O`!s+V2*f)d
zQEKt<@VL5yh~@ZMm-QBqxT~tHM^)+QR^|_)R_CAZD6o|&IzxOU+WHe{$i5AeD%v|l
zWlZ33K5df&6bf>tF-;Ww;Myw>{Q3EO(Pzk28v{CS;^MYa$eYJ+KhFv7BFl7ks-8#@
z;u0i8C5k-LBCJrA8SY7p{~u`m&+hK243T!I-bb})jvyJLqrQxVg|=EK+*SrtE$p)!
z!3NRV=7zEq<T1))p}Lo!jnne-@?fRW&}<!7F;_}`o>oSi9_2OX#{VKJLGeR^`r3!m
z1dPtl2!}>27h@?vF#r0#PcRx9j5;G5_GocsWo3CD<i^{?78l-ojy`oLXk#3)gRDxt
z{BK=Lnzoh}N_u+fHgGR?K8{F?OH5Wd7yafNA0PkqYud->>zye|x}YS6evDsa5>!|m
zdwHqzu?%<|;5>kM7SLAaq<Be9_53-7?u48U@Twvu?_ji;W^{Cb%PNJ8%&w)WIzdK&
z$`}(F`-qYk3Vr)Mraz<DVp`c7(Y-VmPGQiy8X@~%G^*?XAo)}}4C$x@G9+SRhy+N;
zQk}2K$yvW=z^Or{Z3a+O1ok*;J|Y5$L8xib<FMmLu*Hy^bW2K^!8M%b`@y8%L1%2d
zy`#9kR6|uyuLQ+JMMd>84)jt#fvV@7QdF3%-Q6G**HM{Lz#JkD)DNEKZ45C{ah7JE
z>HK8nfk0>kNX0?TjBnvo5#XS?W&)%yqqIzKeHFw>=>N#29m$5E-O;6%02kp`QOs`i
zL)Y_jmf7)UFnB@$uI=jL@>5idPg_ewTGHig3gd|^4OSb_rmOYvBuPqoQ(G5P_62IL
zgt-WiUzAz$<p9fFg|3St{!+BP_2TSOD<0Z4dScQ;wy?UmIbJ}5T_4^AQmUvK6zhib
z^G{OgE2jFIo72ijgTbBzH9($-3-EfMpg+#;Q5})(>AT@~Re9ZBZsq6a`*LHXF+=h~
z5T3xvmTogq>_;f}7$R+})*;AK)rVKe>09ez%s0<Yqmq4oy|=uAgMxaXg7wFhd3-H`
zf)eyo^x=Q3uI>J^$WLz@oUiax!vU~xqD03T$WIuO&mRQZNtmt%_w*E!?f@i<*QZZo
zJ2Pd@4!&0{kDd@tHjr_1V}yuDMMa<^W5~$LI~^Vb2Zn?wNCOBvujjh3*XvI}3A)y7
zNG(Qfy3W&yOaLg4BpYZB{Ho4J5cC#_r7(VXcL#00x$WCu+@ezfan9^vH-MZ3!1{YR
zY2RVPB{CXb0s=tC!*>Y=^ko2^ym4RvV6{y(#tz2{#M|4z@zn!;H3DiBW@7`fgs<U0
zK(YhWDxqENCzzN3b{dcv@H)F9$Sc=rmyc=-_PZiJeujl()uF5=b}2D{*T(?lQlZ)R
z>4wMWe73<o{LdJX4<Ehf)CNTdR%MePE&j5##k0{Bw4JX7oI2T)jZshF5a(3@=wJt9
zBHx_i975Zi*N2x*Cp{tV&h`ffKSf1x`%~Uo>$>}-ivw6u>hALDSYNZSjE|doDJBS8
zt|}z{s?u}E_y5OU0BS<_vQ<I#)Ncz^Sus`Tpe_M9$(^bAOqhp!28djDPP;0P=*8H+
zpH{w&Tp9R@2DGz|a({UKr8+WUm$O(1L#E<h1AVTFs-l1lxE81>EPi*k1^5N55AQFo
z$|uv)QwZZy8No7YoHsy;cp$l-n34d0&H@xP#>%>5D<Bom=V{HP0u~|%K`9s@5COzl
zoSu$`XS@XD?vxt03~>1+PgbnvFp0?BJ?s0|AFP%d>f*6YZ>Tb;f&#uetPj|>e)jWp
zKS~=~H+tRJ+B%}GlciE~0(hq2+y>kpkRM+Z57p*1E%=;7+^JHckFK>rHiVWK|BHUS
zdRpW$<o*?N%U@}!JI!WaLGogDcB+i?uQIZ6QMg(EBuSoL_`~iH4ALrCy^pF|-#_DI
zwl+umwvum>Sln<)kKjT251I7NaesU**Sjs2@E<XyyZ3s#=eAq_m%Pbhp)S|+UsA-t
zh)ix6|M|avv}+;ofBz`GVdQ79x{}iC5DH&HzuK*dsi{O+u249f&I6QexT^pXy+X;%
zmV77W44%A}n*RNTTnL0{2{&B|;4XmDv-Xov{0RdyhdVxv*T}6%Z61NX$R8Ju{Ad%p
zTE^VgJ#bqEwd%U@=s-(tzvHp|U8KEY_G|y!jqLM_!@B>utsZ}~`QKheK*Nk~=4nj+
zXF%47{_DU73HIgPlZ)G$1!F*SBS=X22Xfkpuo!-SUG>SoPY3NFTu~5+l*-M{P7_bO
zpU3oyzU$=LeXg;wxR{+j1|6)#qED~qNcl@4obNdaV*(XrViOZlQ)g#qfj*L~oZNg#
zcBQ7e_!k%_nQg#2ec<5m!+&<)ZTO07zKk^+^kGO)BB4mO@xs@L>mqSeIRcg-8OchQ
zLlaqDVxZ0nVrwAGlnp9J4LvT?{I^Hhes`3xUR?lW@uo2v<=ii3r#S?K5+KngnaDo)
zHLorvCbqgdKKlh89-bvNz&kUt4+3oO$PwBg2zf#(4Fs)u>&zjK%OwBLSI!xjy&ZiB
zB+ObG91b%R<M4tH4-UX-U?tR_a{vB)BWpRdM~llf&Oo6DuvR`vF>sUsl_;R+5m5y&
zYyTf#c9MI29mkfyy)#4E#12RsAmkZB%$c3?hTvmWIFg;PSG=#WA^HzecD(;g`eX8i
z!rB*yaSO)4%mNih9f2T@EfCECb>$hlx}&rN9|E8^BjVzZN16&)CosSh_;<nFNO}Jj
zOK8Am$@Rd=tn&m!&+;#Akv#Uke!kfR=nu{f;eg&xwSx=L*}X#lehBy_U8y#2N6%ce
zq@+4IbaWp1kTX(onvAnHxurJcp)x}3_TFfU*h+N*B?dsE{(nFB_?jssEDq7%F9O#v
zd9rLsS%Wqp1fd(mA*o()a<XzpQ*kMpYfmogRKyk-2wMI64(efAPSl)&N`gRR0#XA9
z?mB?FWZy}dSVsfZ2vC%7(|O1DzDN<?)#)4vwmplC%$`7RQHlhDJUEG5O|-#)U&W|Z
zu~U~$nc(+t$G_bcIg`CnBK9V0<arW0>mEn1CKRYgiHi++8v^+?j^!Cb-Fgz%hKnT=
zEdFkb#_3(&3*0ThPxyQ^>(1hg)LutflLE@7!~MMk`vp$7diwhMc1Sv|lkO)cf579|
zPu@-KUln|UmIsF`si={RXJPm>rD2qk^27}bZOrex+<X0+DXBFWyJly#!h9$b++jC$
zZoQWaK?G5>-JPA=d~Ob>pB}`hsX0_ViGfC75))3Q$bUc-6Vvg!y&hj5;?>rMHNhrC
z1kR}h*lf318WbsY*6nNtWo0@Ng;SQMPzmoN{PR=mKB#0kES@!&$<@{^-PM&nE33Y;
zq7B{F^8js;yHePof~X|));R9YP6Xk(S65zDJ8h3gP`X!FpKMMX)`$g}C?w)0hVLCs
za8xI~gy-c<dT(i3dkL7W-u5QT5XwTgx0lPzj?KAESG`#bcEU|`pozP)#l{`9sRL$z
z8-eg1ePy!DVtr;*vcISH^vqUHE+os}KOh1#c}g8nBLaJ$AY;(tOiqozH+w&T1O*sr
z=cQq~LuS1d+0?$bMQhX5Zh*+dkMx8ymx#=5f3oaQqaZ#JN-E%b(AVP6EH4ivU_1nF
z*Go)mFo<97?>1;yPXj%Y5>^O~Y`u6Ws7kTJZ?^;nF0Q};0|k9#WOQ_J7)bx?mzZIh
zk(*`hCi4MoaY0`njLS|MxUeZL{_q1#C8f-^Hu|nERV#`PM=6d>g`~Bu-$JG%hU^Jk
z>goW;#fFSr5E{A^3OG{SmUGr-<~f-;(lOr%(+V<aXc?w{P=liq7^6Gjdu!9E%GB3q
zTl_oq;uGSDuU1nZ++NvFjK$SDJAuXw4yyL{3O;?0{KQ{GzoeuDZZx$vT4w-xl_JbA
z*6V^K-A%6+y|n)DZa^E6L|@&GX4JoRc>E|`FZb%6N9p8Q6p&NVY&8LkhhW&V(?(Dk
z10JHIr>CtgZ3<xm!g!^5mWsDG%}wkmK26~{sPB{xP*A+4Du5WIS#%byj5f4?)!^iq
z-{Sxl5;HR0FPQqu$<o^EhNZ@Nb$L}~*=D+`<lU}5NT0D}$x}=4=<a~7L@6s{FD++<
zlI?CR!Lrj>t(tv*fp;e*&uN>Q_-?ME=mp;$7}=RA>v$+XQ%hvEvjFlROI#$|+v|+v
z2X=PX?x*toJ+iWL870sGRT*eRc+ypOf!-rP`pA?A3zGjO<JMIS!|*q5fv100(#J44
zqDAA0s;VV5Ao)0OFDF@&AI4QIGBRBYi^evlrlx%GfOn=83WaK^WO=cfMJAU)fb5%$
zY^^8gy;g~&yn=>CnAi0vqYkL~Wq;9(NE#;5#Wy~AGdEp@YSOp0xFg`w_>uZ>6{Lj)
z!h(&8H2Y?%L21zLADS~Yj_Kyzz1@8F`wL4&?^gTcUv~jI`Qelws(VcpiJ)`A{6ljp
z|LC#7VauG&*iQw_RVY;u-WgwU9bqzy`*c69HVffOxd!qHgT13%5dONrUK;<|Goim-
zLlEFfE;gkJYmYKw?GOj0mb22|S-zK~rJ_pV_qH~A^Tyclb=GFH!nOOcw44G9d~+<b
zFn9Bfg$xOWs+y`pX(@XmzA0W*xDaCg!)_8uY3UO?dj<xU{=Uv{b`Q_WSR(F!Zr+u}
zqoiyiwg(WKpdz+1h1&g3f1l1t$w@JN9(D6MzyCx3?&u9Z7MTK>7tb0H4}^{^4HR5^
z?{5^!wVP-pSGgEod_G^w9)ksJdQAWgNCwRYW)41!O|lv(0Ulo0zC01y&{Z7l+E+m>
z6O~pBjy&_dt1EJL(X}Y1p$P(xQz?RyYL04w&*&J(C9jw0Lr628MA#>qd)R4D!X^w*
zQiZLkqKGMIxf~6itMeMy26q~b9-JGc4>7gm7l8HRfl0z|vp$#*go|80ce=|`n8(OW
zM{eA~Al0W`8^2Vj*&qN!rg$rqfQ}>x4FqWvU>8`;ury#}<Kp7t4f*LCO4f^d*`4KE
zo=gozBK<um_r&jlUAI%aMwbm$hX6OsWjRHUFMxwXMD!F}(kVs2JvQpH+8#MkuWYej
z@RWFbuBCN(_4fMZQPihz^ZgCCW_m_j-8KtLN4sPBlsp_X3g`PZyS;L9VaczGw!>yV
zi{0P0vUIkdl+}x#^j$?UC^Dk!JilIL5<zl%b>#i(GO@K{ch2I>Gbu?pS*9xr_M5pa
z>;$*xLQai(JX@rfQ(s5r@UnF-JQC&#i+FH(GIhDh6-kw_G(fbA`co8ait5S9rLxFg
zX7i``=0tbfe@hX<-9P*jNLDa1QToVNe6boUXeiLB@Vs`Lw;I|QX%iQRyqYcIFa<=_
zwh+QHuU3=;x8424qr5hs0c=mb8FU7Xz+v%nYbPg%0F9;PrP8uekO?MwG6FL)GPSSL
zwX<-z&@)^4G(i1#5kZZO-mGmbiI(@b1z(%Ye*U=x1AL8e4}GicA=4%h-ZGF+#>K=T
zAS8VqL%Z+{tME+!*8C)?(6smD2>+<}3bFl`_s3Rlp(SH}hmsxd`9g!+L<N?FySsbH
z_z%0|dBGF;)U$-Z$Y+k#k&)li>mE2NnGaz>-^_GPCoLUqPFOU>m7G}J=I2(mk|AM)
zGYtA0kY_2bMjlYnRR$H{;>t?#z7hUAo}lEnv(uWmbmU5exOq05$I(6EzekgBV*{Xc
z)zs7owso)+KMsqSQ#wXM*Yh%YCMW3`=w|A@Q@fW3wF>vnuYf!SuM(MzwziB2B`u3W
zWRs$b8qTb0OiV_6&*$c55HMBnM?WNdH4Z}49#DXt`c{}Ok~;UXK1E+i3faE}6CPrT
zzWSS%r%qRIh@HcyrFo5!9NZjBP90*szK>+;t!zA=JMjE7#vgHqMn)j)tQ}o_Cib8b
z9*;sQzx|IQ5&@U5>B-kozn^m@?ua($=I7_-1O^0kvoON!He#DMMdSwcS{9e_mL%Fl
zReZ>hRo=Y=#4hs&H87_pa;Y~5?x%G%6c2=_^3L11(;w`j&gKAnp%em9Q&a8e3tC${
z!C<9=gu8Ww0tx<1pb;^FcA!Nj@LthKwr9??@3DW6B>%mpCYiCks>?OZWHkd8Ztept
z;ZT$>B3N|5V@zeCqoZrfJ+qa0IXMX&<Y~Y>s6+?OAFyd0z6-2c&oK7(^y$~Wcom-b
zJS+93w*VzW&~!8?*%;F~|G^i@v5khRHl!~B+>w9BVU)taE_a+5IFV*%>skFNVxnRv
zyE9Y6KYzA%b_(v9DNEC<$?B*Kb<WOT#dOaOWqMp+SC}&Ecl7n*h~j5IG1#oQ;XMgj
zzrA!F@<F%_?2_Jini1R1z{J2r=UJzwp)u4>$T~2>u{%i3MxBv!Jm<u~K<`(mtae;X
z(92y<U{lNT6sxDqVr;M`zv*q!LR2JsadF4x#?tS!>@*>=_ffT1S3zTiB@>oNI#U8W
zJ4^|fb3H#r#l=@vW@?<t_$kPo4<h8G<@k^1yt#L#i?$~nhkqC@wX@R*qzq4Y_sVHY
z2lC43$%S}$uv}h5iWt%Ia~y7j5M|w7D#)k|{p^tZ(%RM2SMPc2WvGN{CTl6&ypD?3
z!M|Z{QNzO*HFSuAlJXFVBcTTnS?vP9R9EK&c8w%*r}BHthpsFwN7#oY^N5(2+c0v;
zLXC#XER1B)c&MqFfYFc~lT3n5=yvuK`9OrvdN})Dox93uUwAYc8Zxr`{%1P6gqTDb
zLLdO6+Oo*Q_i}CQm<7iS+4VlGwx*;6nnQ1P{=nPYoroxh3Z7c4yq)z}Fm{FPvFH6-
z<gA?r#Nw&3G3AP#Yl_`s;Y%;*?3ck}X&h=--g|fRx_1w=zrhh+h)?pl>HRyFgxK!B
z-nzBLp)3guPd)y@1CUB?=uh&xp;+jK50!Ba_k$I~1eAlUlL8~z={#Cbt3Rcr_~etE
zALPQajoyvKc-*6%s~=)#Cw+8w>%7bkZ)zG9mzJLFXlxv4d=6N|9-g5gVGT~3v2)k%
zliJ#P!6B}%Qf`N`xPkTIdNW5!tMIsdmfvm7eDfzY%>{qu?l$D}mI@P9$Fjbt7!Ed`
z>(M3)1Et6+%D0`jinsS-9rqbg)MEPc6Pq;*J3A_0@<QfZHXI^>^^sEi{jJR@sdC}M
zv)<{k8Uxa&&|hsX1g>~mgM$F73T%B~1Ul)}l%IPpAD(O2%m#lAe9NBjP9k*J!tE-Z
z)s6>MWhjN2*?4&wY<c&iBeU@!JQ#IUdnk3x4^2kpOvBpXBx7Uif?OcpLwd8;88xu?
z!LBP0uA)aw(n&5QB{fx`C*>EGDnMNULKAGp(=QLI;-X?Q7UTe0x)TmxdT;GjpI%oN
zSX>OqDR5SxsP<Y&=!2%Fn%aoz?5qgV6Uz;=j_%F~1Byu~bZHPH^%c1W`SFyd7I0ip
z=N-8^6$$|kB53VBpq3w$NO<Yeh7e$3Kco2iIiM6)US4jsU;K9+9ETAs82{PF$xjxH
zw<W}&JAz)aeo>*Re2ED$W$$-to34?5($ElJU23M1^7CID(;A%P;9yg{d#604>|R+-
z*U{jy1+>?fh>n(Q7i;)<BMX;6Od{;T1EAB8$CNKQ*gR~x)uEJLS1TJFoSR#<#Am1b
z_H&}WGcXZvvlOTkdemg%LWv+3LxwHz-X2&`UY=$8KKp^(Z9{GxcoNddri2)pC?^(+
zPLa_%UK9;#!CM<Ek$ShN^j^*s-nw5dS{$bt`Wj4MksmeWr_)vG?i4&gqWJ#3gVt-m
z))i<LAAM2}RFIymvN3Q4;z@vbK2bt+{rmpclEFdc143;)s3iw2E$u<q$_H=+XA|#7
z#3tCl3Z-cO42!_?h4TvLW1MsmR;qQ@-YG0XOac4(F<_!N*t$(9iO8#uf&)P5^{4(-
zGC_9}U{ck7c~Zs-q4bxOf74O2iitVJZMiYOpzQ3#4_1p#o$dA6uUUJ++s}P&e(j4S
zytW?wO%ME?Zw;-?%B)Tcf|Is-b8oZ0UlmV5SyL0aHLP?M0(mAH^qCK}G}kZ$^NBd#
zE=?0~AYz@PrtiF6%z@~Od>PP^Qyq!^62d~qq*pXg`+#J|7!?mP2@iQ%Ul^;4IGa!|
z0o7t0&1(4q#IIvCRFiIY8_IiK#QJ!h*Pp>Zfh$$y2il+RBBTvr<}sR?TFJ>xL>p+H
ztw|wF>{r<?o_cymT8$Z8-oO8VAvb4--|OeHoz$mmZ!(5w&?+4edytn;(e`A1!FhCW
zy!m;(nVOnfEjk9=oP;4x5EgEh-CYh-Y#baU^fMTG7I)5nt~RGSGB86euU_G!eMt+$
z_e?XEbhT5L^>_tZHMBx%{!gP2o~wgk0-$@WdfkYH&&`C_oWi$fmvc$4F9cChdwV*o
zZqI&2V6|uUrPeI=^VfS--10gdc_(rM`v84ws<1d`<KWoh?tb~a+#Q<4D-~)zS#Q<<
z>6((?Ukh5dl_MS<6XP%Di{$qOrJV7bl-*mbXOey3E~@i?(x-DFCo6n4R$_wMXN8kP
z--L@r)}NbimAQXp7Gl=v`6>SW;*~L=Ga6c(Yb$ET$3`eAs$w5p@wocH9XaM+P%~Mz
z&(?vP*Qg<^=JKJ9%|n%MQO#F>Hy!p0i$#OD>CJ*&RTj%tTznFz&5EpNa-4zF3wCz)
zbHwvF&q5s?Z8!IjwW$&f5aNkSYqXDJF*Y)eSQ<n`4Ms-?`OnMB(=~Imgrvv?_sdam
zvrr}Um|+Pf0-q}{kNA9c>Go)SMgpU7uHN(f0@7qMH3BXD1a;Ul{3zI2<+P~|luYOJ
z>ol0OHr|`g^}L$t?J*DsrWw`Q6=^}i2^W_fBt@XA=)4=+z_P*k6w4~LLH1+sJTcJD
zXQlGpD$&dX5t9&7E?J<v%{!?G&ZzTTjor&jm1~Tdq~wMq-ZJ>NT7(6R!?-^ei-U4}
z0~!M1$i02`?_b&vt6UF@3vJ}&(50lMq#R4iwwG5-W;24o(FcQ3RY{v^X#qV7?>D~>
zJ0xEhDW#-<)n04s!SeB?NbR2$n-(PuUJ#D3?Xyd3i?=l`wyO*dt~r!|!^T7|8Q=_s
zvhMLR{p|j;ka+39i!>z?0v1Y1t9>b{F`GGD2MVm$j{HPi@5BAzW*n6M_job?&tDU>
zU}fj$Gto24OUvPi_5$4+*^rPCRW)k1LO~DBrz{WdzIzP@UVId<%XcAYY=5xNe)rx-
zc@*&CJ$AL*pPt{nRr|$-;O^hMpGJ$X{|w39FaJOP15F@RVfVgJqGAxg|CcYyo#nQ6
zb`*t{Pb73?g1RutcI`s80davzr{s$~=kND6WVo2GX*Y=2j3hmjmBFq`E+~vkO!R*9
zJUJU^>*z{J(NzXi6vpM|dMiFne*fls#c2X6-kPZAHvHtM$%i>K)M25e?6UFG90(!E
z50709CBAan$}#Q+VAM6vVGUj7Vx!{?q?;Ru>iQLL<@y9c@A<6>2jIy4Ufg589kt@w
zU=a6zBPspM9bteF^tKca+%`6%h_<zLwc;3L@}`cy0FGOxQ@%A_JJIvgx9{StHpBk|
z2rHoq2=H-PDyk`cD*>Y;APPP#l+H?ug)l34;O9LYO&35%=Wvk@n!s-V>pST4ufHKK
z7yrA7IPDi?9T;j^e78eEC9DQ8Qoq<<Q2F-G4`|&DHp1Hgy<RO_%ZB!xjOMA|knYv%
zqHQHrQ7enKQpC2_aQjY%WNS1>p5h3S$etG+iPesavlekKWo4?LVj1XJ68ES2n|pC5
z+AMXW!egZ3zJ#HHZtbN|XTr`d&X0l2`jBF~MMrpPPY=M-@}l28@p&6(OpHcwYPIbJ
zqxofXOO%S<^<n_!rDtI&dE|&4j-@=cf3ksc^Wy$m9<EAw#C3zxqJD*IIBh5K{G>{F
ziCwcQ2?Ub!Au-w8gUq&~?=e_eF8x5790K9&sd4x=q$pvaF(zp+2ORu=pSWaf1R~FF
zT2o3>N1sGa7&RB(8ahH)pObU=FdyM+65yv?IQ0f1t7r}mI;aOls8lEFpiEj?933zO
zz(Wh3xA%5wE2)RlqmdDT9r4=})FZ0;y|}o&?8nn8*3s4B5{8cng3+Xy$%uD79B}RE
z?g(C=s7TT~recQnx$zlkGSbmR$s;&C{quQgN%=mO7ax9<Weh#{-LQAw-G4`q{O6NZ
z@9A=LIvB8{>#s0=i?7nibaWAy*!G^cpRRNI^@qvI=zG229k})6^O(U9Onw!ck}5-H
z{t@c4RS~qh=0KvHk|fqgt&vn|ysacSM{hl~ib%5>NeJRm<w~0xJN0hl4LA2Q<@7?U
zjg{+R#c%s|@;^_ls%sdaqr}%+VRe$9O728Yvot`k>YDgIf(=@$5Wn6)5PwW|*E-%Z
z6nQl@NZdqMpMf)_us5LTN~&C57Df5<Ry}N!U>U#E5t60ytkm)ln4>-GOcE>?RFJ|S
zE1BEq&#ckbOm+KUdOU{|)YZKvoFAc~TzghH1A7Fb0#>E&sWtQD2HP{Fr{>{w6IyN`
zFdVCP+vRo)jW1JgeQZu{l@!&@3vwH5FY+)8_?I==Q6*fWJR?<F7Ox!_H$sC}k2pE&
zN%+j#ej83hq12bBx^98DG<YmvuQa;*B;3q(fJF!*+IYWgDv<c@`Xc0?JHNm43WK_^
z&ji;&y?ZGxX6M>`eL<le-EO1a=*V}wq(1gtQRw;13wU0d3?~yCpT+Gl!;BnLsK;T8
zWj`kAOi}|8x7q3REz!nS=Jzy7JaaZD$m(hLDg#f_%pq=+o1_&?Ub!SAWu7!O$XHDc
z)-$vB^gx<W>WQn9vksTZf?&6L$S%K-nEq=$DR^92GCY)7M!M_Q@aL_lq@;yrf0h)5
zHI6skc=rA^l?v;E?^l!j5*y-&@`GGwAg^_w>pw!+m2)wIMb*`TfMW8OM@N8jPkDfW
z1{=ETAlTXMxlHi97xXOY<+YIu54a2TpB(KP8V}7(2Qm+{FS=tWs(6r06%TXAv$?of
znz&iI5hjm36iD@EV2t1L;Q1-zlHvs_F!b+ON1{DSwl2ypEp0rDr%Od+9~((8p`w!P
zHE?mESvC^S%24D1#AE8?Y77!O)}Ip@=X4`RT8wTA!a$VQfxCip<QG`zq<>B$AL#nr
z$b=S1ruBV(#JVYX*HQ-*0>5*Eoh#$%6*BmCiGdgI>Df)AwS0HG2hH4$;933=Iu1}0
zJg{4Hz@q0#$}Uxvc_8A6j?SCwNueAGh)T!9oDXe<%-<EkVvLqWq86kQ$omRB>VIDG
z^PQaOdZZ*Z7I?L&(pQ@kKB(bIt#o(aznQ7;zi%IiYQbiopm}$1&SLZ&%?bZq=s#04
ziw^?#Rk-C-#jI*pn5s+N7ITn?eBA@f2t+==E<d_@#XIv5V47{k2vmyE`8x?U6t$JL
zwW_v$lfEVnpRAugmk~GgLQItFa`-hmQ}a7<-%|iNI7r{^!)`~aIup+iT3-H`oNwfV
zwLB@5+@1nDa!O{WBeyiS)rMP{koGI<50$#r55FSaofiCW>|f#)=(oz=GJVVWz5os#
zt=qd>R4A#ly8|#mkBiIGx%l1<oj5aK{g&D5G|7gGWhFL7MyjhRE{r&7`ZJ*$<20#W
zqgP;B^TXeo2TBhK5O}!kp9%=xTy6H8*J{t+hLTD5^nDNIqUwB8si~Qt$i6tZ5t3DZ
zIp<rSn&k1@dF{k;&<-@{-k%0_^z=Om`Pv8?wDiUz=%3d7PRB`1(C;%ze7`=hP6N)r
zaeRVyW0)x}_JG#*JDa!K3{4su>bO7e`Ekp5id0WCFw)VPas(~E6QI2O7GSGt!U62w
z^1zMg8=qSDBiCnGT9cm<(SIkuzMGo|U~cIDJ%soO%;;iE9V|@<Z`F1S>6urB8(Y5Q
z>g(@$EB1L+9Z^v;b1Zh`Tc}@rQU4<DppFHwsBa|jitX1j!#<!Ft($>~pBmWgY3u0d
z9QNoRL1jB`*I0?gZa0CcTq?Z#zT@lvSVLb?U0YkN6&t#nx<Mwftzq{P%*j$*tg_Vi
z>P(uFA8FS3W=J8FexZNPNDFXAmSt<*dR|{WQ(2>Sxm(i+ym(kvdK@Hm=@p*b$^1K)
zjC&t<M_8OJne%g^-vxNl{g&D@y}jA&lewLJ;#t19Fp+_Do4sHsc#5AxQ79Dm9-2@v
zn`B6tO5NIjwry&MY)5Wa)rxdmiTO-ZSxFuoHd^a(K5Q{dOL*617Oh3sW1mxRR&PIU
z$xfB;_q6a4Ggm-04mkx(784fjoo)CXhT3;sADiugsb(J?-m$WhQ2U;rquyr%w!`Js
z;-z!5$l!sU$LCbpxgxWc^#(Xf1J7Q2diK`{>pE>apS`|6=M5ADY~}$Q5g064-w<_)
zNmx=}ep;Ws>u*|=a)gHF^#rG>eYZQN;S_UHK%b-@pK;sj1Akz_u01OZ-kjL=juKSp
z?w_%{Sqd3=!-q9ghguKB8N^Wi*znO<;z%zW^e20NUd??((z)R$fZ}t*=Ni$6OyP9&
zzx=dYghVV(uUb_E36dfcFE`Is+za*S;n`=l2Y3JiA7xksOHej&4VgV?)m1*9Xg}pn
zy16tosx);zl}qjarL2@;zGiI=sjaze$=<u>_ACwxWJC|{*p}Vmc+SoglM^1T#ckZS
zmg4!VK{k)|AwT)OG%M*%x4|#}Yh7-l+iTXln<bo!UqBtc$8?ZbO_$3_=(yjRd!thk
z@sY(Yt%2F&n!I`--dK_Oh(kLek%5j5k$eB-*v|171LZpwy6n*jaGmc1)3dG1e08PQ
z22u+IO@RezZo^U-8uE%O?_{COqI)#&+X<0fX$3~m*EFnSIZ{5Skz!+2mgb7#$$xCc
z$ATL(NKdX#R#S)Tzpl(#%#U*Am5Y?-l&xfDKJ)Mrwqs8&*iAe?L=;r9ftM|LHvC>J
zdDrqt4F@L@HroWO)nO$}$}eaE3etfA-c>L+k>-3HI4-bR>n!?#h9<^8&c0Z>62ibU
z8^F<AJmip(p|rQJdPN%3@|NAItn4@@CgE#*vp?c~u}ST=3jq#|&gJ##ow*$Q(pBaY
zS{GkXoTu-sR_zw0@14E>_0E6-e#a})C>C<e_>>!;!rgf9n*`_i=Dzl@Qvp|DE2Gq<
za1Xoa=+}i@2=4{i47eL>W$@(C(FY~}vE~pEl3z=-b$_?BU)8JJTil-NFDbDww^*OP
zkQCsN?gGh(SIMXd18%Kv8>~O(1O`^bX(&oQPHg#OK7)lSwB;yU8{EBkje~zyS7_rV
zg`9j$16w-S9J_t|_$k`>LxlG+zDr90$cHqAD|dBXAHL!zE?WCFH1nT(72){_?{j_i
zzU6|$!<wfA6RN4jnIPhx%f_~(tNZ|1fCKE7Pga{pa#Ki2-wNPhn~|CsspS4KeSsr{
zZ*Ft<a4YXKRw|At`HH*r`$v5fgaP`5i3tD?ubZA;E5)Y-w4Xy6S*dUTK5}*vhh<Sl
zlGycROUjKm*_uK50UU_|bf!DtT=us4??s9rv^rSeqNV6|aXhXm&`=k_tn8y8+w;z$
z9^qpw=54}_pHj(9)T1bqp?{2jV2e+ZvgGCz2pnJW)MS2<ufT|F=eu1%gh$CgK;UE|
z=Sir2vNn?_9ViF_#$ZHpChoR6u;Ew0=TIeOf*4+;VdWd;<?wcol;vj9Bo|;Mrry4U
z#K@P*TI<iwW6{=Ym6@-67c0SK(XTP?j{5z3Qk|J^Ao%n5?{W>-;^sFEI1Kut61Tgn
zsTib!eOM*%QIO}tyWVT5&5%i7SXj%8od@RW$?>uK-beW$|DQ`sh4q&px)Lq_fK#aV
zXm?>PJLkKwX#juE1;(GI4Fr_3>9@s&S4PE;Pa?9>nQUwj`J)k-npT*tDLRXY@M;Ku
zZeN{~kv5+nmj}kqOux-YrW_b~ki&$Yw&H;-S!`6)l=IQr&I2U++?+ML?Z(A@`I}3d
z*M{?VDOTCk0{Ay2rr4P|5c*@FXRvUo{g{@f9uh*$jZaEI0CJST&km619BN?wPn)zr
zn_^Y;Q&d$&X|-Eq^*m?NUK1W17#YZGUtHc?>!G1#i#&u!4a?F(9XDs|O7K`t9Bj`W
zw<n7zB~Bb1x5r9Wo$vTjTufZ#^8iucQ04SnT_Y|w2Ea6*kg_&5jjBt?SR6tjAW3b^
zp5TDYrl_TMO!cxd*UvAp#NNfo2*`1JBK&Sywm&p6O;|U;H)A#9GPy?jGh|P_|K<!Z
zqvD(y$UkW`coX<EDZVL!t~<~WGp0*&B-oyxvlV`SwWP~uWtGkyQq%=f&UPEou5rxv
znF^*wnhw@_5B{PdHV6H>;5j+G?(2gF?V-taF8e3fm#;|shsQOa?oGO%eNcR#oe<F3
z<bA`l*Do07={dx~(dn!WK-7^9PTjH1-@gND0B~a?pmM>%UNdF6KPty32P1j;d6}(G
zn|#{kQ%{Z$8JJj1rKNAqx>*411gPtM?g9}Oc=JQ}DoD-)%mlz*4A)n|*XN^XcVBs|
zEi8$$pL^U4nf5!8z5K8+=Uq5m84($4VrWj!LMxFv7mo*aZ@mBsSI=zQ%FSXsDDt?3
zeW7{Hpv(i4nmXMg&v(NlVY2fX_JrL2{2Du5_9<mHR1omxLL43KD7eL(PDpu#<*OX7
zd3ka`o{O3jTLUI6=Xjh&PTu$AiK?F{fE~@5_D9l0xL57&7N(^M%^DBBv3tSB<Jxkv
z4f6vS1aDHFw`L}p0IZRG%xwFT_yC%mEJr;hUa{k4;quDPM>X{91yio7lH2vWDf*>Q
z(z8nj`WKbXyYi-G80W9TQwhUvuDAJgYGtLRbMgRpHLRc3^P;1xYp`m&apgmY0{VF;
z&Xw}UQychXA2kE*>Q1^u3lhf8xB=atcR+^cYLaYa{ujC6oe#S`meK%3#s35?SSQQ6
z$QmVbLj-xWmY0(*IIg>;rI>a`HhY#j4PNreNO37!wY(v~G*H}=eD9zP3DX$={4Lrr
zA|k`s*yrLD?@6o@KH8&mW$A4^9K73Ni?PKl1*DU0zTF@e-Q=W#>B^$R!UkUn3mPig
zDE5DV7SwaAAm!L+P$hiOD=TXvpYT0B!`RSVy3f(p0oH~3DlB+<e>HVvWMqg&HlEi|
zSl)UEtTo#z-HQ*XOE}n9<u<8+==nlHA-0q=wZCC&)BS8oiijb%D%D%Sb!&Y3>dL@r
z*E+KspNIPS3rQ8dnZCBnpoj>qIOcwX+V_S;gmq2a0!6XY5LX!A>2^s)IgQOzso6?<
zQxL!enF)|GmbMOTS>ECIc)323D6b~Dk;-mO4F6FH6NL%eT_!s3$jT|)_Dm&mcK+(y
zNi8vz%6&+w;QDIzmr52m?!w3*(syAhUkuHxM6enE-H2=0llUy%FX+CVZgfaX^*TF~
znVWTnhsXc^&DsmV<3^*ZKelKE8?L&fdG#b<E8^4{uonz;1jy)1mc#j%r-!Jh4GDs&
zgg?$(VNw9n@hmm|Y^@Wk+Sm7CRHyFE@tEp8yVAsbD|0tDoW%Ts%$1cb*#cpw4sxKX
zapB9W%Y1sVJq3WT47e;OYh#5VNW0*A2sTBqz%)Aqa(A{+=NFfh)ARz2>%Z8QCsh=1
zr`}@Y3trwV7Tw>FqGlm|FE2}BVP^>mHDhDkpyla&ows&&cG`p>Fc32P=1?Ke&slEA
zxbrh2?2!!6gmd^&cHK~AkJpnV)rCRI`lj>hJTfw}fAb3rnf_|7*m&tF9V@8axu5E#
zt<fv9)YiEj<u62vSVb{Hb?~*rhaxP9UWAmgD#8Yjd24&8;Dr}|N!mNdw!fF1&U0>I
z(?3B+56&}>8}A#8M}=BmH~XHvxyX2_uXtCSeKd3u!((_%774@DWQeR8LbpvdxX+y-
z71bBOv!K)Aj*M&>yWSh>e7AmHbyRdAnR}wwP<uGoU_{HxEPnQ^dCCT_{}(N1W?(nZ
zhsBM`-djp)iF|{q%MHJ)LFJ2h-=DzVH0V#Iko!I~K;R(T-_wMPD`F5bZHCXzp`kIy
zYV=j|2O~X;jh@dNE!2INS5l9BEFG%Z!0sXMPjz;7;Pi%YMSXDkz{(9lci$J@W7~df
zM1@b(VZ>g8Po#3$+uhSCC8w}El<t3*nr?Z+DyfEkSpyMKkZ9L@U*%&8YM&9{Yiel@
zm?0x8>j0#9ho7{sSC210Dn?;mo<nI#dSqyMIjHjxmLh<2RA(LomOkz*r1RIvXeJiW
zO0KScQeN&LEDWNDViGb8CDv<it-ZY5Ofn_?z^s2p0m}~5qXgM0S`TC}p$BW<-@b#x
zf`etbb#yx0syUneCDg@DuDfDTP5U#4lAoHrszS7*bRfLDdwwqp)n^NYdhL&e<d)fJ
z^RO}r?k;%>f<j&^xh!th>Z3$i{m&*cJ=ry(baFUPl{)A1_#7=yM^N=j9qY-sU3L4t
z`c<CcZe24y&y1Mxm7!-4j(X;%Go>_i^ORE8Jy18ul5*NjS%RpGflmKwY=;A5w_0Z+
z56aq`o>;P5l7)J@E!)urL&;{K7Yqz^AwK*pEu1yLru5}15G6%1Sp21tNkKuqSI5(l
zi=k-I<z=gC_lh*RCic(&0)Rq5#Z`vF>>mKt=dpl{8)R%|5(^4u^&xUfEiY|QB==4F
zfb2CWwLrn^HanQXfyeaBvSD}5KwnF1S~Hc;Jkz^`S+5$OK#4~i3I*c~i~PRumOe{u
z_Uz}R(->@jiP?lnU)I{R_2L+y0gvt>2Q)7%5Rw)qpaArKpp1<3)(pdy><WtkDKI?5
zrV)OVRJv?K{c<f-rYZ?IMC~3<LFE!>Jr$~fqwtke<cF*0$%JW%X^;^Lm#szqsxNZN
zV*A}Mb`*N8HNsvAQFDzHy-zKJH1hC4)<iP%jr(c7oU9Z9#5hor<Ka~EZUbH?=B&E)
z`1450aj3Tnw6HuO72DR`t+!#!>P8B)g`4^%W3V+bh~s13D^eoryP{O6H<IQiUHZOv
z?lEVoprt(MX+^Teh>XmycC0_@M3I<W1b?1J6Re@*KHSg!lH94ak`B!J!PXAfl>N_H
zM46*uPOq9H8*MLAy`30Xk|m9gq1j$FUl54Qc9eCPz;CNRvi=i!JCqLePT;w{w2eaI
zaWr6eYd+C37#lq(*L$g=to6D}b8UkUs;%pKQTgnF9506W)CGlJK)?jnQz6=oYQ&J@
z@|49DaRDO--1BG|$%mO)I%ekO^qMDX{V9|+P8nEom9D$9>$f*LFWt+d>iCmKgxpM4
zSZbW)@cF9^`rX)m-xlZ}W1#6)Ilyy@4*(WXs_%0G2VCUgx%L^DeQ@C2p?54#LhIZ?
z&IEp6b+B*J?PzblpOW(Sm7USABpxo|Lql2`TAP`Y)owZ!a5+jApLhA4c9L5=9`AZz
zi_HclsAPV<YUH4z2KitZA!8RoV)zfweo_)EE6Q&!DzBB4WIe7xdj0Zf?R6xD200*=
zD<lgxn6E3_8BlPawb8~xQ)VY?3g-7uh<UL|@VM>P2CU1=0e129`g$=clGxHxGJ#v5
zEe`PsSqhsgJET+v|C}Tj)bK&MwOtz+Gw`C*1odrR<ZmM26B0^OPqo2!?nSbYzkP|S
zqis?jakEKHsO>lXtIcYv1E~x>xw(To;lFblPs`4^I-Mt}b2Z%ET_X&n9b)m_W%92j
z1*m%6WiUQnq1rXIo3?*JPkwu5ziMukSeG$nX<tUxgYm}w27dn|hLHQssHc1O9TtOJ
zN@4HXs}+`2z~co(VjM3T$s4ZR18YOKukD&Qzt{x@#gfgAwYOOptV%xei3pFWx*C|h
zcM>`mOsWv)5;a^qz3hKdsp+7%!mo6e>md2|D)8N9`{|A#$VH_kK0YVBxm-RhX2f-@
zYOIXk4cpRr*<1r(frzTf?7Wx0ecfEA0D>i!4IfUX*iu12m$K78VxFj<bdJ-rykufi
z$@qES<amRuf|An8Na@AHb6>sC&{;D47lYkBGXp==n%I?T;R*7by}w4)wWQX8g-pTG
ziv^>GIHF>P-w#AV0Xezmd#{xRnAwzcWOC2NXy?AFGIzd#nGWhPOodT1<!5}0h>DZQ
zQTvPQB6`%_A;<4_5#6#36b7S6ns7ncDH8KDquI3(g*<d;J&=%%PP$tEVW{teM6|J4
z!^;CCvqcOf{CO|hP)5|$GGMS`J3G-7<O%EzjNLmMknQKnhf&MPqaF9odkBp+aVe>n
z;1UFPA*)O8LE*^_Zc3!296v7psa-H;R_3Irj`K`3!6d!8>UpMUMivOERq0GTZcovs
ze!<M!Q0nlpF1<s;jKNdH;=$r?-%7ia&3mR|%gZdvQBxi~2gm1LqVaj94q=ZVmGN5Z
z+1dO70Slw8FBp%}MsT7f4d-p9!HD9saHy-P!O0#|+PJoaCw%38(xPfqgr>dcod}RJ
zElB8r!2#!&Jp}WOPt8PxKI{!bEOrFkV0o~m>HMjZAFT5kYoP2WR%9gc_7-&a7Q}EI
zRl@k)4q&ylNnPY|^71lR0m`66u13+su$Qq~%$u%!agfELEQ^Rm4O^C%Qm}DYdk^fJ
zKVkRlPjg;;wH9%EE9>**uQt8O&02B^&0T5%#>Kn=;Df;>TE+?>X5vE}L6E%gJCK)Z
zHUQ8XTg#&uEiWnZJUs8_;{m=h80(Mt-93Hs-91Ny?7qPDZbYI7rL5PR_%YI(FDJ)Y
z4pYWQ8sBdRq-T-M&NmRdoG4c?uLydxX~>AhNOSplw4=!dk148-Y7C{7Y`oL3@5-T<
zV&k1b;E9fo%FoP(<z~v8)={ufzJtMI^fbd6IQ^82w2QH$%)X7CalVcrmOrF?F)=b7
z-0Xo)Z7gT}OYuwb=h{!1CU50U#PnR`<)i{$#jXW&&c7%5S^_Y5oH*FQL=Ve5R*MtD
zwPaQpIn-2!%wFHJzuo(I4@*4k$>S$CPTP|J5C8BXBLCyZXU1a%*X^OeSFHyAN*CJc
z-oWVa)poxi{Jw-jGOxpeuU`TIM7@Y#lW~+4BMi8IspVF8=>POA1?Q{t)$PkuKYwK?
zH2x<oH3^?5RQF<Xdur3`x=i*3{cw0j0>Qb(!A5Ul!_KVSj^A+A>E1lLPQ@b#R~HKn
z`L{~g&ymi6iL_0vQ|p-yi}9ei!^cp3f{3?E1yWXC7^Hb~)iGDS+8P_wv8AP-YdwGt
zrrCM2KSt-&*cFyVr(TevntFLj`OWTznlcVNywq?rg@0X3Yxvg}oJbu3*PB<4(a)Vv
z6Dqhxl<gKzwpF7#qIBzQ7k>?9bu;Kcxqs(j+pgFjW=7Q4gQ|(ij}Sg$C{g>D>|Tf!
zmssq4SHsFeceXXSTCYr(@p{gaA&mLaq@D*QJSWnwIHash4SO@>Mb65|*+apETF1Jv
zNt|@<yps#FR<Ah*wP|q*tt3KgFRg&cq@=*w`^m=uNI#&i#sIQDj4bJPAWeJkR|Lp!
zN!uMWYpC_|uQ<23FK$E#=07KzsCv5h<JSn&gs!!<Ehbz&mU@!TpPD+qAX`;gNlEkM
zzzziHRrKoeny-=;C~^?KR)KlPfA;J_Z_h)9Hz=Gq>=sf#f;-=!u|lj2F(eOO1K+U-
zsI$_#UtZqaT!xbJ+Z`C0X-y=p58?Ht$e~xLf|8xU1*w~v0S>t&%0s^|p~Son`_on1
z#KBVQCZ-ieHy&nmaID)K_p2?fcMp8lv1r--+OoX{voIz)#7=Look3-ap3W%v3w@Oi
zl8}R=q|5VFkk9s4NP6jT<)Z((DH0J?)C7yNQn$eSO<HJdY%-_}Mh*Mx*EKf-YYD)e
zLB1VOBQS0b`$PDgYae0I#HDqQh^33WxdB9Xdw+6JU<ma{{eD2*et}rHj4X*@y+Rl%
z0C9ENKkrT9wI=2X642F{FD|U7IF3RIOBTpaOZ)L=MK*T8JRVqZz;$vetvIc-_vZ|_
znwXjSwO`|hii0ESeF}V#kD7GMbU;ec-qES;dm{n@S@~Js(bwT<OzXNlw6)f?$6{Jl
z0iJ?N*2|*2%W7(_)U8lydUoZ)2ApRgy07oLaeFS*A2MW`56oBP{@);;i=K6BwtaMt
za(pY*#X<)H?%NipZie@|=5@x>hg9%F@MV}QEPF)N5L@S1Qg1igMhHp6n19`um6Fn0
zcXR%h|6N-fEM-dt!lz_bNxP}pIiMWzp^0kB+TgRF-2-6*N4HGKv6x)i+C*Q_A}r=4
zJ5OH-(3!2)d)f=!)+XjNB_Cs+z1-D)xN>RpXywv7ookL}<&st)5<}{6c2K0z<MwU#
zQ19uS)+}DnDaKwzi^uJ@^UeM>{}}T%`#XK-!!d>`%wg4Q5WcrB@u<rri<ubqxJ5TT
zUHwpnkxoHHP4HkVnaV)!sX9pXx?Zza?Hm-Px>gMn3AGih<ng&O=KgrozEwDa9kVvA
zaZ_)9xR-CCW73ljbzq^`61?>XW~8zUWKLB}Eo1Hw;C1xcnN2>QchGk>V4L0`%YU7@
zIwy{pxBwaHSmHAg1--@g&eU${G1Rtwa|>^N?+q#0;ZYX6__2^v7%rA3*rUJrFBFZ1
zlFEv_3CL-g_~AO-6Kxl`$fxWUhChM<cx+R&sW|S?*2ri88988ba?=0aJ%FIBUclR0
z6CzvH1Nayriz1$+wD6~R673j#UqR9zn|eaLP0;Bv0j@>(yVFlk`aZuQAa6DD+L+Z*
z(c*c*^#v+tAS51`0f$lGBhm%;udd?afqaPB$n}({d@Ua7XnJnQb4~FVot<GjzuG&8
zb)Pa)0=PrlDS?pF=Y{WZ;(J=SGCFEZxj)hZDR~P)N}~Elt*oAul!#VBUrvjK94*8p
z3`BD&b<xrNwX~4EgCBMv?JKJeo6;(Hd0$@;`56C6(uc?g)qx)AobFhS*C#_`H(v`O
zK-R}Wkm<cy;EcDNLv+|-0a)Z|=&VD62#xJNokp=mxzhA=>%>FSc6LB^Qf(wj+pBI5
z%ctqb0Qd6{DVC=sXd0dKu;o>=+#ItPb!cyvW3Z{0O{(HYHnGOA0TGwSOuaQ1@%rJC
zCc8Lv(v_NeqSen~lpzDKDbLSow5wss4!92V+ktUxR8%Go;J#RYsbTEs7&2fUCPxmC
z;e-Lz0So{tCiM=)4-Qa(^UUfvxn(va{)A-m{n1{_p6x6IoX@5AOfHZR&RpU*)}+}I
zKH2`F7~<cjmaKNf66!35855%MSvb7zsa;rTE@sDZMKsHN?`p~+BWJw)F<vraz3nZ>
zP&$Y53{#DA$)!Ivt@#T&0&_DJ3A!cWB|8UUNp+>y1U1s>O%(B>20BQj4JTT{Ns^R4
zSnuqm124wM0kgP!aircdto~7TqQeu=8B9hRd$YOvzKf8;y2)pENd>sSyz?`bF(+cq
z_m>yP{?6OHmG-M`YPoJzRZ`_|>cZr=7i%p*N8aNAe{vU-@}C)K6z(6G9ba<N{9q|g
zm`qKs)K|cJxL2@u5zqAPIYZWShC~hR=J~-EB9Ui{t6P(9kQZs{F9_8-=ZWj=eY$hc
ze>MeZJ4F%azbS!#jfuz{RWz;OoBwv&-13ku4*&}41n?j+s<pZXea>z91zyjv{vX!f
zI;_g|Yt+T17$BkoA|V~p4bmbdEiJ7eAgy$xqM(HIq`SL8TBW<Yq*J<ckEyQpt>6B>
zz0Wz<b>=@SE|EFs`@YXJo-yumkN(jS?dmf@<!aKmvzBl3cXi!n$Mjsef?v!b59Hiq
z5%{(oRef)w10;w|j;%1)KTuLDaEoXfGz4f25=ys?Ra9%IF!2k@eWpx&SHHsZ>BdLv
z`vp%09qsK$M>sVZ3mua9xV@vKjN=O7qe8v0V*h}}fn&YrgXCW*Up-~C#SA9$x?dP}
z>r`;Y94@GD^hSrCo$5Bus|(Z=ujsY3HbuMy;}VXNa_?pV<4F0u<K<DNsOWODT4Dj*
z(-=>}jVd0KK_)rfM5^6;i^iLlBd+E$?em3=;ue}eaqm0=2tu#r%{Rt*mB@4c{N;6b
zC?q%2pzp0U(b7JB(4!%)939-u$VjI8y12;I0fY1gRSGSd*Cg?&2~akk=12am0ZydH
zMyL)}9=`0o{p9+rXxoM-C3CIO8qGH(3X+l+Fo~0s6OP8G1WQkxwrm#*@8Nbb@*j96
zQCLk~wV>oKEBDgb)0Ap%msftGq?*PRjrTG8^AcX2F6%;hnc3zJyXj_dP7(!;T*tCC
z|1ZohjwWo08081~i*$=TmjP85GeROUQPYZ7R8-_<KZEgtjvbh_WoP=(V5@fuVjLC~
zRTD*3`W%rkePpC#e&SqG9nlc-@EkUoGp-+R<2?q}t#DmgniMk_W4;ClgL6;bKS0^F
z-$qJXY`#$<mWgmGIx4boZZc>#*qmzK3D>!|Fq1)<<UXUis*JFzvaclC-Ip(aMpP`0
z<_A4h=t(6SBMq&<xidCCW_&&<Ri)|pgzZ+dWMLl+kr%T~D=bn{vg^=#kiSkXr<ceX
za|#9Qk5J47wnniPgtEiRo5SH+7(RW$BC0<xZT1C_FPRn<?>ji<60oO5=9nwGwEw#x
z2)7LJd))4BsPz2$QuOrF(obueV|9)<7c^E%*VHzA-9O>E#0gmOpPs8^6OUF1Mw@>H
z8i$e+CnD@&DkTL4o{zScS!w%`m(p74YhH&_n|WuAM8<axMd5*g+aA8<UmV>d=UUec
zupyGP>#U|m<R-|HnvpXk`AIzXznm4x>K+{5`{?ofD_lEEbS~GUkSHgI_LOs(47(hU
zz^%1I?`E-Vf`<Wm&22<H(~~%Y@~QNMQ`u^6YHdkT^aW+=HaOCTmvwW<XY?-}7M0`S
zpRFz(P8Jy*S61QfuT{l~V;YkmQ+Un>B_>^;_e2Js2O9@hF7phJ>ZQ2B;y^$ylf5>t
zBBz^x&nPzRuzBcwzWCS-heOqhjt9L?`$}W$rLgNB0bX9I$#eIi5$D%m)=P<e*nZT$
z3qQMn5*H1CT<qQ=PG~q$;9YS;8`m;QQB3XkPPTUaP+u>6xQe7ckw4&Uid=(GiejVl
zm!237!r8dL5}zkC$O#({)*jxhii&5~X+8=<F&JKPdOkz~CmT6h$P0sV)i{H7io0I@
zu~%~xujy={T%#15pnrOGrPJ={(cE8ChaC@3NCAGbxD{D@?fNws(j}d$K~5zgK*Pbo
z03}toxDn?_%4Co$%YzHdTD`I=dBBx|IB>oy+4JE9{T3pC>$9wPDQ77n>Va`fa9uDq
z4+Clb@z)FJs)J%&o!7AV8vSsau}#ry&b2AT?XjE>nl0)%A~^#xpERpDNLhG2s2qgR
zQ&<kV-$z?82q49#;aN!oHBk@Prda76cbhTaP`JlaP>WN?1wDhLmm@C9NK(-nuh`3%
z_d`qxkc7QtwYZUqkv#V_IRo3|W1S$`qT6MOzM~~eFHM-D_#-=vS+-;hej*rnxhy!@
zSmFx>M9iw&rvn3jCr*5c1fn`_>p@AMxY;ww!D5M2v(ok_RD3>T5b%hK$8(nMjk~=c
z+1A)(sG?cltZMLMM)~NzcLFoKp6IafToS&W$?{hb>d`Oe_N&tm;=7AWQ*WOkFWg7c
z-<RZv7F3@%cehvO=EYKx>GQg40CvJ_Bj<y-n6dH8XOuGVUpM7|u!Dbo<pq8LayN~m
zt>|<{K)t@PM?zKbnn?dsOV`l&RlX-N_>Bp_u|s1!g?Q*q*dKg(;$GVhvVuE}`5PIw
zw*#azdiCeetn4Lr`2TMXkSGxHZ@dMYoT{Or8Xg`GIsmcwz}8W(O~#a2wF18iD+l8x
zzS&o0J5wpB4PxtG>=9b+q{lT{d<*%;Mu{5FG_NaH%R?q#kZ@EGAj+iK9ka-s%c!q1
zGne#s4=)J<3@ccs`AB6x%-7^S6X{UeUpv<@{3DvPWroWGf+<u_mS$NjZ6K{LBKvwO
zL+?t@*7hR%N6J56+r4kn=djRZ8(w?OW_RX1J7A;5v71{Z1}FHm<b-ml2~b|ypAEt8
z{eTZC$=3&aHZ&>0?1~XB@YKV@UIk2SK)a@DENz#+oAfLYl#PZda?4yBuwnw@XsgLr
zy0p3}`T1p=w}#d!1yxIXLS`2GsSYn>%E@raMvLSwqmPik>nmI9W3e>(?>Ta+Kw1(e
za@FR!m@jsj9*v2X53eI1C3vm>6<J&MYM1s`By{!lmoX_hqVy)ZRh=)++Y43=JIh>S
z^)A37*6iWmiwt+&Y$gZ(8rO`3gom||d9t@TghoP~`Kf}!=af5DSwBTMZ73---h8ZE
z&ANx%F@%S=u5<7cmni0)l%S8-gV*bbrsP6z?*eZ$O$MD#g1FQSMoZFyVZ2DR5%T}1
zJTOy#s<ecx`NzW6#HNpRS<(RF3;($ZEBwQw@8REii(IM%9<kC70K!+&e$*nO;n@-B
z|BU&rd$cC~F2-r1POy?nSJ|$z<pVC^i}z$0$`==V)UxXqwk<p^=a=>C+`x-ZNqejx
zDCPI+=Wt`gnaWV%&O2w?pxfBE*_kQvnHgfK8Z?O{=N;RI7w<(~e()eL^GUcmZ3cR!
z7_MsYv4E50hXu{{Y$cqKHIet6Soh!WqyM?7aeswoSLpc#_fvx!J#vqqZ$!-L`~=Sv
zWkAG<6mx3Wb?@X1fKx9eC5L68p;eBIq<j~naTu02GU6{E$x9+2J~<GBwAlrgfB~_F
zlwET3q(^?{9cA^R0qM=wi1(K&BCzff_r|oM){8ELB5vf_1?#ddW$^$GH*mS(+qKto
ztF(cAPgL?bSgA0`+Y`~=eEIvi;z2%u8yCD=+nzeU>V%?IHRoPyCABRFv%1st;*zJ`
z!EK90K4k^%@QBFFjJUc$V?F_#kcdaxqK~xxDt302&_^u=hJ-66ud*nu63}3c&y+`)
z{%<`}3M!qIMp~twC|Fq*dZXQ|2<u)t8tRWK$Y?Qed><ez!95IAV!81$#P(aP5bCQB
ze?Tp(XQDRIla%C%R5QTANx`kuzJgMR_Gb|qNY6+koG3Pd>^ZWIB!C@4*ipTL+uV^;
z=B*+V#R>Q7X6npm#>2O>!73^PI7WoAoo?7TG0I9^a9nzqMITM~UR8r2GCU_aAt93%
z-&K;SNyBNnDUY~@pzt+@L-c;*-bQep7`YmJ)k%1lm+`IDKL%!1zVp$Pl?Zs2-1?*L
zfub2dLx`h0OQr*dz&AN63$68H+xkU}%qmy){K<VuoYH`L7H*EQlY-ln+}v<%;90@B
z>>dxyor0SDQ*E)iyCx=Vc!BwNOG>xvFn)ioA}G>4{Zh_Z?jRfXgWI(d$}buRr~72w
z-!(w&?}AJrV9GkHIEomzTrJgBxhw`3{Cz^!SY37O{npmrrG`2~{S%jkl=RPQB#mp<
zDlVpsToq}LHI!u#^$CT`aMzojt{0_vEuT}lRRc@ie9F&?zFot+rTWkmTPs2TDa-&@
z$Q74S$s2|!0q$!gxR=HAPx3*|GFurdMQs@`s&c(_YDW-baKJR?(J9eDi{%!a@s@1p
zAd&fd;TKQ<2rN`C>ZW$)Ye3^Rg@k;~s|`DkVtA<oX@+bqhRFiSD+AEwcfmZArBfED
z`9ae4E2DM=C-g8(2i`{R6~s9QZ9e!!o!{!DnXC9ekP7weTE3^8dtve5l&d1ev19>)
z7iFGOfj=Csg2I>SZvNvA0?y?h=PsqM-rMOActU~6icj1;cDFb%YZcBJ-gN3L_wJUK
zr<8k$gT+8$+p1+a1Re})^+(^I2*V(0785F&Nq)CYWQ>+ABs*T(d1P$5es<Q)v?lhx
zXHGpO!POa#8Y+nT7CMHhS7p|BK4Se|`(Y7{`x*R#0PpRPkI%bGj8wll1cDx)J0&#)
zBYKoIg{M4rm*D<w-NLS3;@QQ(z|f$GP+>z*+NPz^GsQ*>HnBg~Uu{8?4XG{%-(hQv
z4yMj~4T8HS8EH?%ul<u9_<oC*hH6`Je<Gr#MJS(zOfj|jaXx#9k|ZrHTI-@v=wHqP
zf~8*`%g9SerMV^`bXpCceUg6ti@ifG^C(5Pf|}{|R6}3^T;lp9Bd1}z*x8owU6j1>
z`uZAU4_&s|V@mZF+OcJ0+2X~q^N1E&e94yPGHx7G&gfl9F(FqY{p65p(qW*+u1ol=
z8=18RJ6lDGK-ZhLSV=~NVyoLYzb{EU@`Ue4R`t+2SfA1}2oal_ogs!VZ1~px&u$Oz
zWTZ(+T-B@jx{vpraPwFuxVlycCym`qh<g(n-*VKqhj+Lxw>~bmWKCE>f!&#)qZpda
zWZF6c^_uUud_t%OsJ<#KkZ9|WPM_TM>6_W-6H%3^t@fsoXfV{b%qUY@m42Ftt~-x|
zi;D;eh)51kXmy0O#F&=uN}b5S#`1@rf6nc+&D~bz{ac5{&evopaq!X|3k%<dJ^USQ
z{CcDR$AdJu3Wmk^2Vx#1kkFNy&A*!%u(eoKYtWTUr=y*_gA03!(v6CU!kL~j9C6H9
z1hyh~aO&&s(pus2@QCo`#XySK&fI5(CM(mLv$WdK*r2bEIbNx*B-?2&hNg*uW{-`-
z@;%$LI^wc~fUocJK)q(>8FQz9-2rz+NnoIoa<Jr$g~ezBP3?B-8?s7<?3TfrpV2b$
zjEpgCY%8#c9GUo}Z@z4$qnTK-l2??dZ!NwOB8(jp8lr+Q$;_zQ<o@ckSu(B9Cm@)e
zRL8}*W@*h{9N-ctytQ;2d8@#ys~H&cHUiFwRr({7!3MT-O?20CKp%8ghcsIk&<7f4
zRaDnE%ML=<akvp}bpjXBTBKlmy;|~hXwlLZM_B>3vwl&H)GrB-n7wO!uv^Dlcu0Bm
zMoN4EvpDZOzfeXve7Je=+)O{DEG986yy^2;wSe(yOJZrRq9J?^hBNCi@1j2L3OD}c
z1u5CXvqc@Z1I<+vJ;4-1!OQOQ3Tn4vqJ}0X<SDG-*9>ZQK0E$Us90)7GWXvP^xYxB
zQv-db0#4354gIdqNhu_Z!&sl?d6)IiyUAr89mlN~KD2CkSH)Z4g?8uj&VamfZstMq
zNl#!;i=-Zd84reTiu;Vd^R-W3cXo)KT^dieJ1fy~Z3SE__nWc)>*V#_;P+RDLX0Bi
z;tpLT%O*1$%(S|rAJ|y%j7(D7!p1s<^8^e~Jx}RLp#!-jE5j0ahRid8`;}%qPJF3p
zA8Bd6H}@qZ6_8Pe5=k~cW4_GufLQyac4*>M!P3f3>u`N=JGH5!Pww*h;jTi46<&OL
z7A-l0jCMLjcV_0#v)oYiMS>W|SDsOU%1`oM>>Pw(rL?qG`sCK@Cv6`%e_Q&?*vo4r
z)un86d-%v0U-hq3Bq<HdwFka>O{dmDJ&7DND+NE7lr*Nzyx-JBOV>q5<j><4wR8CW
z)&#5tz-CLxE*a=n+kNBWuNYB4y+76bX@oZ8j^mLve%*E9F2TH0z;o^RT%#rmKGb3;
zD<O8)%o2Sc(^@-1ljbZ3dy$RFHSbsd(XjVF6V)o-;N{95F96eGy8#uI^?+wudnt^)
z`ol_t+NW1dca@=dkNnV|eVu{-J%EE+8=J%V&)tnrDWmEX|5TAzHT(ZUvHtR}GmwJU
zgww+90@hICkqXOccCOaY)4Y+Cye!k<cz#<kErh+?%Vz15Xi+ugIXm&Q9u;{lj_0&e
z>ejc}Z(g~#Z8WoG?}mEWb$w;@`!hTtNyZx2Q@=MTmW;nUz~C0x@QO&#B_=qAr}gBH
zI04UxgRHjMu~kx8#;b@=**89hhFF!YoSZO<hz;}&^r$h^E^OyE)cIRUU|0iz{p<Dc
z-evcx;qmCk++B1xZr&l!c#p=4Ten}DJzITgEM)lh!03NwiGTkz335ZzjlBRRAm5y8
zU3kf}^Y1C@WR}*EM^oevt5*6jk-nZCE~H*svM$eljFCi?_2)OEY&>Tk>^-;WKiZSl
z7JJTomwepO?8F(7uzKaT7Ma{UY_Nml-@RnrpBk%H(%<Jlbu=|SR=rNb0mC=>WdFgI
zQBZ6kVL&XM=L75GF)4%2hLG{`sG_o#%krU>tqexAIWeQ3-B~@l0yPxI{=Dpo|0lNC
zpi0?EZ+n|KHKpehq8aE@=jl4GOqF)cqL%~H^(LjJkO$BlZPCA?&NzFx9kkG?s-)7h
zq*8AG6W=IxgA=@?dZ}`%%Ei{#_mILXF>3WU&~wh`dg3N{uG#ZC^VYB4Rd@@|Lr`S~
z)Ot)p+VtnUFl;uPU0-1jpTfdXcI&i?c+zM((r+`{>y(tmuS}_dE&RXR(ilEJES5AD
z6MOaYe(AkT2U^<u(vi$>ix4B1_kJEPF7-yco$ey=rTquC@(_RP(H?pi|Nl%2bF+}w
z>e{Ri_`)xy^2KAbIXU=JSLeUbxpe!USMv+TFm9`v3}vv2{d4P~uxI*i7Wf1PZe1SF
zg3g@3yhXK_tS^GA%PXp=DE`U))ZkhPdio?R8IVs^*dCXF$ETNC7SvQo5*YH*rzNjv
zpf=z?TW>PR3G%k^=u-fl1=q*a>J5UV1!B)B9vpbax*lzvpILMSQdaD(Gu<pF<HpCs
z+U_0523(wKG@?CHB5)R%QKs|BbH;-MY-}6`twIkaseUnV)Lv_`7^{Y1=k6^Qq{96C
zczEF_<(yAcuc2Wi-?%kPJF7k`1`UzF`(`|9xzjI1&LSj&&iE|f&pyEv>Vi^+`uW$d
zDdxm+wNR1y>VI=fSUfd;CO8-&CL#)pPPftK9zvY}i#RqoA_5UEkt!$&i57n@?@Ik>
z{ReKD>QZO=MXzkkj5W%hyFdQ?Y&(ki8%%=>kp5P(al9^S`M&fuo59D~t0nbxDn4QC
z5)_JgKLuXBG2hqNMog@9?A}6N?wg?7P*ZW>PCb)8FHlhMcG~4(bJ)V|=uq&@-s)n0
zDprS!&39Y<PGLkNo$0rxy1b^Qo`M3Q(_{22t@p2A7M7Isl70O6|26U2(b}2XGWj1E
z>u1X^V^yA*)IgFpwaVQSoPc6E{u6G;gI5X!G;opZ8)MxR<_x7{q#0$5z2zhmj7>gC
zaz?5ulIxu3vy(%Iz{!&Ih@j!o&V;!+hNo5FUw?qvPEXJ}jGcuLaNQshG}nE>ZZg7d
z=?<ik#`!^F+LtiK3tinW^k0lcMLT`@(zP`3>a}&H^Yr`hPuHSzgsb29MzB)mTQR0e
zMabaGnZK1CG}__RcqFPeJkj70C7W75s$p!VijEG>AaWNMo>O^8z=tZ;W*JuK$AdKb
z)wlfYouAw+jux=@KM8W2nRG+tj#SCLv+8a7-wq+CPO~53`i(;WeZOL=2rKI7_u;}N
z+reUFMlyqz*1FuiGI_t;%H=(Bff6aIa>J`q6<3iouC6$KA|>VVzV6Z$Pa|1bGSb47
zclv^dhjW9m0y_Um=Ss@Rv;&q^6UN@$F%r@IqJffXqT0=EDoc$bH8nF+yvEf8!O%O{
z&FwPv7e{lbd-hKd8CE=-Zv#n>`<3fYS>39Wl4hav{})di2`&_lxWEhsut~JldxLHz
zT2SvY&19}&=Pw9$-u7gy4ACYIRa4Q1IznC>Np0<kZw($DE?Ac1b2@G^7($eGn{&Z5
zvqo1j7bs8>^iLn6J&g$OR?GDtt#Lix13iX32309=V?Bp#h8gJ@J(MVQF#!8V;Nye-
z+PYkkwB5F#l)C2OA~H1xuaC)q2Z&rR$-8T8B=M8$dU$wdro~-W5sIgGLPAS(gz~aJ
z*z?6uxC?RejI;CKyQddViTW>v93{n5dKDm3q4y(w^RM5;X&>ny;FOIwQg#q2k^9hj
zN%#r)G@Q!HLPA0f7XYClOPh-7n+~(8KAayMuLzf(2Rp@*u}LrG1hVdr=qgVbUtI+Q
z0)TL+K}SJ<$@I??-%W!fbB&#akULm8q~FJ2zBwQl44Kf@79u4zz2VuhOyMOZ3G2-l
z9$q+{{^^rPAwlp^X(M#xzs=NW4=en`g(|D59X*XstE`l<Tfb98^HhvEyiHvo764xT
zFa7<XqGn1+Twu_W6wONe31jwJ>FAnO)f7A`181}9y(P}Pc30AyTO$I)qM|~A3hn14
zr$z=&x1>Ns@f?es5HLZvleLPUD}$Y}Eby=!*ZGr14rb*ub0lMy#zbY&rxzv^1diQ<
zwp|61+_;CT8X6KpZ#({4j3P8OLu$r5S)<n|ZU+W!qochi-}-f>h%p6Xi9^HBdeik1
z2Xc3w7F!>b6C>`8%@AW9HstQ1>L;7X5lS?-QXap3%`!VCRyxTTli0$Q@h`er;-ali
zmH%WNMPxnB96EqtcL~~|9{-?3=iv4`v$h6~YijN7M3KOY)#jhh5=l%gjdE&Xpxtyf
zgj3_ltE2V2BzxLxy0F8rx*u5?@=3@|65kzSeo^B1<LkiXRuN<K;Pg)tAiOX!97r9q
z{du%fZZkTVi#x%Yt!-xd0u)d8c&(_Q9b_yGy4tfya`%Y@Wjk9EI!%2*_Tv#kCu&Tt
z!Ntp4F5(h+-NOs!gl1%T2VotKoWPE|Iu<IpjnZWa(IhlzoxOc)UC#Eq!<Mq$yq51*
zk{c!Z-eI}RPRaVasv6Pc)azDD`A3CIGmd+$^t4ZHR=+|+_w0SGoC~mxL3=t-Q>gLs
z_<$RmM+r#1Aeb5m5*T}^EwMRWV;k#WKRDiE(Er{D`o&#h`L(`S7$&mh0>w(?XP6@{
zhmxG0RjGTT6kw7a#jGqY<NJS2{I-;nvRcw3ih}zBM!8zlnf<UT#m#&|muP5PuF7Pd
zTN0fvE_#r%*$LOGpte4aPBP%>W*67c(5Fm>QFm4ZS=|!q3W{!|e_enA6~aSIRvVtk
z_>>IV%5+*fDVA{54<96&n`3Vf%yZc1#aCBn!eAUcwjCSm#chJF!CpFAnyFV0$ch7e
z)iL7mW-ZA*uR{U^tWen3lTF=eIV(VtETnzrtD0mk$jeolmGBPk#3G0V4v!9P64cJw
z3Jc+$d|db|oezXSQeNe%ymejh8Id^d`9|^JOUPpu@{1E{?r1TYRG?qLyr>%y74x8q
z<XmNl&Ch(CBSdFEo29>-lG@7@apc>{QI|7+;(F)|-!v23f}5cE7D?)wl$hL*z{<*q
z`a}u3p(O2!i_rY`A=D2w>9hK@KTrV~0U`*IoH+yi?E7@$I5z{rqKjv~<MEQuoTAs9
z!YJ-9-p2^0`9KZVyEw0>Cm0lJu!Fe!h8cLsakSd%G{I@ukdZ;Vd-1uiN1I6H>$@pr
z-u;1R`u|BE`s4kJJ`^$R7q8AjgoXws78e&o#!f`ik%xo7CO8;7F+YSqa{8qS9UVE0
zk=L5yoSj?1#m4FWWDp(^wqyPJn)4n#C+XXcj3Cm!MBi1z{#Y~yZU&jW2<pv~dhg&O
zc2#O>svrqN4&O0X38SUcM!#nF1j{DhpwZO53p@d`Tq}aed_JTN{lcNQdcJePd2Nbj
ztX~)kwuP>-k6FS=Kgo!FCKB@iN*Y*%-lYL=Nhx$6KfFo1H+rFiCev!m1Z{Wu_&C}4
zNy;beyb`vyejGftqa*m1HJSaW+GO%NhOSj+4I%5Jo3F{0eP8{QFrWIBEDzOLsKCEF
zjE4t*!gZ!ja)StB+LZLTXJaIJ{mxBUlvarFjP#|VI5#{NaGPFB6u)xmid%*4&qF%Z
zzuvtgx^(FT8imgE8tJ8FKuwq0+HYuNFc0I_LF(f+UKJVawzGpY*K(PT<74AXe$Jq!
z3$iFY*Q#>d>7!AIpLD;XvA=qY$S*x7MMYEH@%WqjN~uL?Fv8fx$YuWLJ;FOBuA`g^
zVNs7{HMh4rOV`E|<zC)749DYn6&Dp1)tRlKR3{^(9n-huw9o+|Oxnm9kFB(18Zq&=
znaz^3%_}yoNnhi!sHJ73qrkw5$>lwEmM7%Ss8w^e5I{aVArZ-CK6$n<RVymfR&tr7
z1e(K{4i28MVR~`@u5zIeSMHpQ#mW*9RIhn{GeNi&@0UWt`F&O!3&G%}hVI^XCbXH4
zITjb<Nyw?G+o5Mz=~qtH)TewggOmFp-vQLZe-pE$%(!fH_i#8A1XW-9s6SG<9Mt?v
zxsa`-q)l`a%gF2ny~0H)^^wF#EA!X#FN|3w0ET!Fp)MdN`M9+cN&t6_^(uXwTP{b0
zUsL&t{gU>@K;SdHpl^4d8IOFw$#@utxxF#;#WFdl>eR*U+(q1vh}!`v@9o%Gf|d?M
zs7a+B1-D6X>H;`=nP5;89L?fq8bS64fkjvDLhI{}*;L)-gH0F59ecvNU(VNSPA^_e
z{Y+qJ`Vdo{3cAS6=owthCn~o$NXzatFHKDsfNwJ?IoU6kcYiQnPd-0i$9Zq~y_{fj
zOHDvdNy*@kZ_o<?YDbD@-TV}pu!pRjI%Ss7;RTpH*Y>=T(aR?vXy&!b{Rt>=$rvbp
zf<U+0er+seP4!aQX@Ib2M+6TCCBx4jg6C0uZZVoBhl4tqzhWF7%wKJ;@7~Xbo=<$_
z&Iq{ZxStaEd)o~A(&m$VWuMOnZQVq#rp-xL^<rW%_2(E@drzkB*#owBoeQ3n^`ZHh
zQSJ1LSw~RYQnV~&*ts4N@g^;>Hl7OA1g#<>Qa&s<K8c<$Dkvd~#3C*|JS<4<Tgt+%
znf`$Z@2e~32JsnPj|F3(zayz2Av}HH<M*wege_Kb88dFg;(0K^%a^pRt>VeuiY*T!
zB9xV_W(r4G8F(uRu5VpPw$n(@D0kd#kCb=t6%p3)NY2V$_)^BQ^1bw544+dkpC-z5
zN|Cu%NLRVGm)ZR6tcdn7;pY;>oe*+?9@cH&9gZatx&YphFJ_USOZJeVaMtHSsE%(P
zaT>2Zv{=7}9U4rpRy8u(`m6f#3*g7Nfvy4Fy&dh5g7Y7+f&7CWlo3?o*n0$=X(i8M
z-tXtMXV;5=w3k}9Svb0S;cH_SzuQVRf1j$)jc@*0T)InUX|u1+>`tB;Yp)%p>)3Lz
zr?9pTE7#}<xY4oOxB57kBec?`L6Sx8dEo4-rre*L>X&=z2!J=kj;>o66*0H=$-WOn
z^U-PwKhtd67vF2gU#_3&kJ+!$QO7lWf(VUec^MWe<>&FdIAN=R^2%A4;vi@P77BWH
zb)Q0s4Z5=&Z(|kjwxZ5E9#K%2et8K(1#iK7gW2BP5(SyuE3!nbwDe&!+*@Ob$5S+)
zU>%1RHQAK;NoSspCyEt05sqo|41`nsC3bE+D<M${32>)CeMgZYK5)F9A=FXs=F-7s
z-2~s$)~nn`OA_Pd%>%>?k8iE%4?y-P-LuaFitk05si3&{RTKxDi9vvlpNvEQy#^EA
zMRFdgM~~!H%ylQ_g6HOzcIarzxY^uBS<Sco*j$efr@R*;Q#!*1O_dVAv668xh4ztz
zU6uZ^k-gHrl<qC&GycG3pnwHS83)^~#`!FlKs9pxgc6jQG#YOAUn)6f1V+6pTU!w_
zxMWoO+1oI>t!+>)`mnbs90D3XIay7|S8|#LE9D;fFnu#wdoram%ctPoBUiO+sbbc6
z!a!B}h2F~X@Tkqo!pHcqb$B8rFCQDtcX+zHVsRZ2fOHRWLN%xBFHnlh?(OLctkiV2
zNB$x`pm6tW6UcAA823-%k6*nJs$QvyYD*`&$59L^O9-Y`8lk~7QX}WY>3lu3)9U>|
z7naHsbuxud#qr%>>M=XDypaCfUvVF*Jn&}M)bif1YF^vHl#@tkEk?;LL1>*Gl~XJc
zpMJ0ZE;-dd;=!trm45NE+Z@MH6PKX#)RY8c_h7^G=EZ9(DIN5Bh392Xh02AyR+%Ol
zCfc6czbmj%Sv6%$Il)x~GB2QW)n{$oiT&O}MpjPFE%i?YG{8p6k;`+Tyh&+>xtBb=
zIyYz3&LwK!)qej4z##KU0Kh5D;w*|3V(ZV1Wo0?3jbh~4ow$z8a>UBi?5!^K$Dtf;
zME)1R`GAv}iJYyv6QuwP8&_uTYE!|}kql$C52(t7-Ts9C<~J#znySm%<M_1t%+1{L
zniH0y0-F(Av~pv8ThDk84;4R0u9Ec<ABU)@zQbW(r6vzUl8=_!xAY#>L2RNsE#U6k
zCRE!fDW=mF%L{8ub~)x*sUch$<^01OUPLJh3+p`cL)O!Q0djAA!P+{cOc{b>UCv?Z
zD{ZaZ|JRJ(P=CA3=(!kF04;m6&^RMyYseY{S$g_9=xBh3ODfc+$xdr)>g4L~2?=!=
zj;AN1R1=nHev%oW)+~~jl-!Sv&E4ORQQ=`koB8rS4fVo2yQ##VGLt|<zYYFR-_ToL
z^aFlGL=z<?7@@7EL;$#vfz)b|9_7sdGaJk1&c+u27b=GJUr(U-Q1me4ii@||{PHaj
zGb`THqM>4AW>ing#MXJ2q_YsLtjxJ8rQEtO$T?mk$;__s2BsgxV?BbTf6I_EKE|DI
z6h|XG8wbUmx2HvNh@$RBDk}6fHpEa;)&t~tV#%CR?0ou~R9REDRwxu2Cme-xDt)pZ
z*RVYj)&4f#LdC+%M#<#aks(aG=|q%}neu$HKDdR{Y^s02I5VS}jEF1;<PpekyUg5N
zgO49W<D}R>m}0J3ZBgwq%Fp~)d#k%(xSo0=j{GDnI@MUn-6t-Ze&_m6Um0^xRM6CP
ztJ$pR#W>i9s@DWwm6M2q`cZ$}8};}&oZ%W=q6oFH$!zbkrs)uDGi8o|7!$xTlVZLO
zIp&uEwE3SrrjREGFL{u_z}^DU1iF-LlI2I(<j6~NxWmHA?21X7SEmzpPBiV}zlDj&
zI}9(^V47FG@)$#pR>sZScG+WRr^!z(&Nk3Oc|Qx$NuSFqn|v7x%K46jh>#M}=Q0?x
zRZ!q*uFXKpl*>D#f5CFbFM&+#%WfC6sjz}2Yc+w)MwAkPjo`;tydH4Xgg2o4T~F`1
z%O)8sS7~>6YZ3(|C`KBGhs*Hsb-%M7F#jK1e?QgqB7gOqSr-*g+78`kq14~>!hx^>
zWPIA@=EyT%f&iVB6(wcz56HV{=j1@Yy>-IdPZJY{jGCZU8Gfqv^S5?Swg$DHl2S?~
zcW-YCAG*7vDH|pfOrRHiz<ikOB+ZWa!Nw>g#E!`(zC~_nvpZkCHw~s1TxVxn)1ikp
z{{L82ASa^*ntG?}8s0@EbLzXdSh+YT-8MKmU_FQv0^4E=7RG~-QBP5ku1`l|*YR%0
z24f@55i7?AXD6kn$A#^3xegZT>L_n+{HqfmsSmVJ1Y$O$W*=8o>3W{ss<}B%WPt6t
zXjoyH@)OOSj8DDe^c5<W4=Qq^_Fe9zC8i7vmPA&)4uyU<r(5x#hSh-10YZYRC*OOE
zk9(?u+>PPx+0r7BOIj2Ztz%_R?}dh&r(_O}j^ucM*0#5tj^4N_E7P73pyy#{XUKdP
zOkI;iBjRZ1M{|4^cS9}A;q;YJgGseufN8n9W<0U$Ao&hhdsMYD-(G|8m8vMM7Er+j
zg{1*FP>`e}o(m09+h>?J#=f+?U_E|1TK3dh--;XTL*%^*tG+UW(h)iFJC@UhwWT?y
zE(`Nu>od5Ka^AJ;_vvJ*j|CMkTz;*pSh?@<b_`|RZgKv(`PhqZW>E2^7c8>VT)!|Y
zLVKl728lA-JG&Yf8ND!P-0yeHp{MFq(a_LQ3m+bGj6jJ-x)-B6c)e#`-}9(alv*um
zzD0^L;|d>EW+f&qED)7Dj0<uWl&3UEPQH3On7Tzj49$W$Q4iYN3+QN`v@Up3)M+^$
z9jHArMU7;rf1$pJC%woU=T}_yDp>OAbG6|DVW)EZyDq%8x3~K*JsDeG9_<un6m%hs
z-L=$`MO9Pdl3HQ9g2~pGluAT*pY9YYpaq5I%hI$-qDrs18`mew@0=v1RYpZk50ASj
z2x7LEho24iN7+#O?G~=g&-J*|())}JHXpkJ1vD!H8f73mH(f4Ye{FrM=x|H%oL>O9
zdTWblZo<2Tv`MYPh0%kO5{zOOZQ3O+^1YWMb&f?{gQ?%4cvclQEUASL+baLaItw_z
z?x(37K5^$=XUW_8*4R3skXnei8EZf6x$krt7^XL+7d9dBM@pyoKzraaoI${M=Z-a9
z(h-HM@Gsc9f_^WyGp6Z&+a#-APR2X3Xms5ay?HQ$zQkeC8B`d1VPKf5Z{Ub=*i~*E
zWYG<f2r}!osgV<32wHPdMPYJ2)<9Xe;0-4z2*nlZG2e}S@L)dVj(Bovj~em&)r9XK
z`|9Kfqi)h;8UC{SJyR*o(O0zcdV3Wd!Jy6AwXs>+xl;Ep>Et~T&|Z$Vu8{kQPVWOk
z`1Q)yhOQ(#)rwX*VrAF+Zv9~Ixf0N+ra<p!&eVAK?a(hDoFA+l)vm5cxh8(Z6HSHN
zgm>nbSLr=W-ju{v=j1>;7lbj^_&lH8v&~+L)PZ6eve4hx0it}<@tG2OL(adpeNUJj
z!<=<{iryl*&W9P^W%uTD22V7q?lq*cQgAgZ8~8@Stxa8q*I<C$;)%1fpgnvW5E8IS
z#6tFfKI==;`;K=v-c2Z9a_xj&pi&&7)AMZg$@%8iORyn;#?n;prF1GUw~T(s<igqH
z)xj93zv95nz2OR0N@O&$u_+XnglBq#`aVTnefQ?Y80Jy1DQ!u9K#kXnx5N4M_d26M
zfd?*?Lvn9)Y^9G6c8~=1Lro+XxQ<~k<C=(Rlj8O~Z1?=<x2*Hu?*!!`!7m*c28Z@4
zh>orXv(H_OS<(p`^d}87S}}_=I6ZH2Qk_D6*~sn+<Qo!zHcE7m#%+D{O)xmxCt{g)
zkAk0oZxULm2Uwg5x+=WBBELNVm66Zl50~$zW9@M%I|(WKM|sZ&&P%Tpo?#vE|0>gE
zfB3DY^sS&FuKlGyIv;gcJKsd!GbkwPNZ8K4^YYG`j5Z5FDM%lY&^PfO{K2&F66Tfj
z(Kmm8r6><Ge|-?VVm>m1nLATJ!oILL|JJ#~)b?%QPT^S%#-f(!k3XLS37>78J?AvP
zMcnyczx3Kk3^F=;gFuok6N1K-VaWU9C~<$YZHLJxV)vXp)@X$x{y)DGLif&v-U^g1
zs^8^s_F%~p-=H8Y2TC3N;{P;n3tXKwG@B_w&S6FB6AI(p|MUEH$J+m&lDBXp<Heq`
z3{;fGSO2BzPG01H{e5AZ=@Q>b?SihE*-r%C_85Id&lP;dCo1JDTZiGomC{8;7iV;<
z1q=KHo=m2$Rn_3}$H=ljsh=aPaavK|2uj$pghi`!Z7t}?;Uz6yujdDB)!^I*wm({h
zY6+!f2BZ1*D5$&yNJK=npRa_Xx9#pgtq>U7|83>*cu)=zUvqpxMn-gKhp*-O9F(zf
zE^h*z^w5b^d*E%;ex|<3K-Z_sgg<}Ql97Ra_isCyUuy3z+(9PB!LcD_Wr2YTudpn1
zm{e8I<4AbAzlvC_v*9wrPCBCabIJV*$mN$Vv3H$#CWUj=|2C{aw)X|`W`P)#;C_?}
zo+n}La-0Xm{8sp;P1Q~lGns6QH;wfLpV&<H<qbS{zpPc`5-H2xHLs&H*%r%m5L_Mk
z_0H}MfsOst&t5MNb8}1kkejoo{jk%m&~Ru6IZakphJ}6}5D|g%A2PAj`SOv1v5Dzf
zkLp{+zU-}<>4}Hhe;_RG<APrfjZV2o$ImRy_kh#Onb(R<r8wZnl=lxAePE_i8>R}~
z=-RQ~$Od0+MDf~e{`)K+ZeeknmgXMMmB$jSW<D}-mRPiQIb#VBjOIxpA!lo;DlPFE
ziQe!B^4P^}71X3^+F~gljia_x(zf#5a*Bqu%^cbnKVF1qYvd1&inKBp*yRS+4%^Si
zLU3rFGQU7PX(6DEK*a9<oDvk@Ut}w*xgwzevyRCt8~4`aaO}x#ISgl(W^U0)2+D>}
zy)c&5SGd3{qu<}I(<UFF8pnDKa^gS(6|fCjQKWiQz<ba7{_b93jf$dD0$QcKuI&J(
z_&%PAQEtRRSwsR^^DXO?$Uci7S)|(6FOyTSxXw*pQIQE7860>EJqb6F8^^EL8#~a-
z16Ye6aaYi)>6HtI4Ns{NCV8!iiGz#j>XP+}XmT=YL!-|+@7H{9JZN@$o^HXcx3MwQ
zw)1B3F;Awfyo19l=d6kl3>bP=sO~;C-rhyRS$fn;N}dM%Mh5=WNYL2#>^#FI)I*BY
z%(ns20h{ez&&+K&lrPuaga`lktBVmyjz{xx0y*wJNPlj;ZUO0lYii+ooH^k4jF;;B
z)Y-!4aK86ykjVT_d%K!g`m@5=I+5YKHr>j~iG}K)Iu|DWt_Fo5*1Ab9&FdN@Cnkt3
zFAVf`solPPO$|?)s#i%oRJK$B-tI%`q~d`5#~AcRMt=joOw_jip#iVii=AVF{SmR^
zI4CT?$-b{w7$N8d7xbN+9AwkOKqRaZZJI?NqaJZunrGh0(YJbF!f8fEtzBvB+wm7*
zr0Nhw_P9F{iGA2F&exge&(D0@J%S}JCs<h<n#OfOiPF<*cF#r`HM#T1m8||nPnk?B
zBdv6Edr22toI#7lN2SM{Jl%I~Ik*y;b%Z6<6xFN+Wb{!TF3PmmMYW;X;)K*@W>?|f
z8W?YTr2KXbpDN3v5!#YTazSkKVJ=y8P9GZjEVDwl%hA}nx|9&1ev*mj{5I?ynHlpC
z%{`I$8|rp$8Y1kNnrTeb)mySgr$|YX*2(({4r_t?A5Ect1D=wX&zn{u2FEh!AnZ!@
z^9{j4A~?iFk~a(|cfDU24vvXtQppmmO;;cEz7`KXd1xs~N4MftNpbfRx8dSd1|&kN
zwuI^c$Jzmp2J54c4C6JH8iEM|RlgG>)ZwO%4{tnuKbyU<DuYY_oWl#~yFU_0Nvdnf
zrza&O<YoD^(A;PEBq_Jl-R~iZCX$j&&z)yDG_u}kswu1ua1oTjq=++fA(|U2cw2rs
z`c47`T`mcEsG>q$jw{}eUU_+F-2ePog3Rv&Ey^@9#)8d6_R}&4Rgb4Pg=o2Z)yL0Z
zTRpHEEkRt#b2gu_E+~!Vci{=4;H8jYO@F}#sfKrt9(522m<}YP|N89Z|7t7tL7G<n
z^c5pQQ+sp8bU$0K_m3wepA#j|&jsRN!g_m+u-b;7hu^0AV?K1us&g77WW1Y(gv+_j
zjPZ7KjR-R(rGB!Sb%N}lWKqrqDAAAP%}lFNvu*Dx8lJJ6&0ifP>I}jPB^tvD9WKv#
zPH#kGls>4nJgcuCjDx+^D*1pz6CP-!9UNZKfxq^B7w|G3_dmfd5DtV(2}`t+EO^pD
zyJsL5JF$gwhZ|HfZAe+L2a(hk8P5@bJurnU!7>88fL~naB)@$E%!=h>XIt9TCNvO=
zP+iq~?9U!8>|3X#s1!4_kCpO5>f$ZbWXkU$HwQe#AfZ<ZDL(j!__KXgp~d46FFD<z
zC*=hKu2wN{(URe7X12a+&1dC+B)1)OTy#3v^k~J!yf|#W{>ZHqBR-t>Wa8s%raT&X
zK##}&e7rAQ-*ivV&Z5M)#MRtJ#-@GcRZJ1KqOuTa>6ee~^}*-5Nb5cFa!RO(HS`a2
zvy+iQF}sD7mtwfJ-B<GVc@)1%TI#~mrX|MN9a?%ukb*P!4W<S{d(o)NkFT+#B>~cw
zA6sC;-pv#Wx>WGOQsd7M?@mjY2A2o+K>S~ks~uNz%oGzO92&z%b}YfYQ={Lm7#Ku6
zp6C~pUiQiqs9Xc**b6VH?=wcU-167YFH-I=Kts=XkTCw`3rGKlIsGIF{FWAqa4n^q
zK>-7`JrO*T{!&AcVSy1iu)}2WFd87%5Cber=?=*W=kysgw2**Ko#$XxFZ?@`6ddAu
zS|eFGqVCg(t?|1P!&(Ir=dh?<^-CK3PR&bUbe2J<rYq@{8yma-@s`=jhN#SFEF$2w
z{U9Sp{~Z~2SmcRGse;rRa%e%e-Rnz}PM@2d?Q$E-21H%o_V~C12pzF;g!Z<jCc8eA
zIsAXkHAzMCj9iD3XT&?Q)bjG@gUmAeI2e?3vtv;n49)kOn6k5qdbpB$N%kgGDt#Ik
zQbU3d8tTE<lEPUaXZct_>lc_cA`YjB`tAVyKnaY7oxLrx@Y$OZL;|j3y|wPxacHHI
z@~<~xriNB@G}3o~RF1JX`~x^I(bk8O81WbaN$yHe>TQbDmkUFuI{7g&vmN;Tk}x@H
z6J<+=b}lK2zp~PkhMb<4c~_~rVH<4BbwS*u?y3AyHxw0^Ai%i?&6-f>m;w23_T0)j
zrXo&g@2f5(Wv%T`$3#xov+nccA2hnTHNJ4!U-Bfzb1}nc$c`o1^05Y3AwV+I7b%QU
zCk_YYrc@?o{?jWulPu>aZ0p}YMEeo1yKKE5X%c8AJ)FHy<DQ2M${!v>^p)uGB9MWB
zt@qmiqGccaq@67hoX`IXG3B;VR+ho=J#0lVM8OoGjVUDqM+2&63ePkOxcT3Fh>5St
zZ~mG0W5|acGT8}HS~l}jT2s3$qYt4oA!#AP;_;6tEscwMEA{hRl3sp?<4*!ZR=`j^
z_sYaLP5=J2|H@Hiu5^ffYHfR9xe@^>W2bTBu;F@9*pk;CxwCwN)PBDk@tEV(^)g%@
zsk|0L1zkB4jrQ{MI5NQ3ZOvec^>vR>6FCR9VPURZ;8F&oHw(T(>P#FgxMPlsncY%`
zkU4=i*kvzCdYbMJyh75<fRjqCmuM)NuVqAXF^P)K1&1oehIl|{sUsK7lB;FGhw^g7
zBP;T#3p}W@<Mge=x$~cm2(+}cw$y89Xg*G2iW;dUd-bf?n8BBrm6n-aPf77uLSk-y
zPFYFG=Ppn1Y9V)2??R_emBV(fUZd;z3RA(U%e=I!(6=(F&?Z+HHMFyGHcna(SV-#_
zrPL+v_b?U+<ZJ2qn_uJvDV62xADbcO=V5MTO3O`{G#bWgm-8tgpg5Tl+!tv{v!L`F
zzju#-9}R^>pl;hj>$lQz;)q@v9GNLRN3NZ*r??x;989I}+V`%Z4LK}D<wS@HsY$r;
zieJQ#DSzoAZ$u+Eli>NFj8plIhN8={!^e=f@x}2hA>@s^{GWUUPB%Jgn>GNHPVm}-
zuCa61Ip^o1hkxaE!@>bUT_W@ON)<1YfWuhth>DtQO!JEo{P0V4BGE3^T!ndWYO|{k
zW~X8YnVKILs`$i0%2YPP1^b@7iZVw}HZ_g3)<=H>$$&P<8Flbi$3_Jyf146XqFAf4
zZKgi>RF%K<Jzzp<zm&W*_xzQ$U~H!yr_-Taj92Bmw<&kH=Z*@gl{L*(o==?-s50@p
zj14xp?seVDDtCMOsqOm-od025%*qP`p}99-mcn8Q8U6NEpZ(acu3oZG=a6_4tm%4s
zM10}GENorKZA<+V9OpXRue`vLRu<D9%+<sr#-<oDKRM2Y`J`~}Xs&+to~l>?<^+L+
z-|{{TXz_Q}5fr3#__1CiTAm?q@-pz=R6q9xlpl%u|HqE(t4wCYmp$-D9F3RZi-%>E
zwh_G75XDS>j;;#~6xjXI;nC|hiH5#rZeD!8lB~_hpC*d(B3W(O%j*R>Z=V|Uq46#-
zMh)!;rGkI0^9(v8>Iy54*BrdtceNSKYjfuL>^CdLRS6K*RXN%U(p21YFi>J;>IZh<
z-F>iX17J^|nW4$*c*4XsZ+yQ>lk!cMl1fMbf+|-jaIwE1QPlWo(!a<*Dn$9oLs>QM
z=NTK%I^SnW+u9T-rsG9l-mJa3RyV{sr@1!owEu{eZONLBdu1i}F7v}%!nX0fv<wWC
zx$*JwN(E+6X>X!CY>Cf?c<`fNQJXXQX~TIf@CtQ8x{@u^ICShB?8v;TjP}4yWrLsl
zljw4WVrSzpz;m>DdqIwv?>=igp0WTfCt`Jfr9bm|JKX*UpcN|3)?vC^C~-BG@|m7~
zF&J;zu&|&6MI!sp{r|Y<Uc^KdRNH^2^|HImn$@9zdk!?ot4Cu4;oGoHE{=8h!F<c@
zVJygb!dk7Y{3OXrsI7=gyJ2qAwc3t}<mc}FInG6+7dy3YF3`uj`k_Q${c}=?#-7%<
zkUO5y7kR31g4uZEgxP!x<+y}ihdf4M+Y+KewiMNK=)PK{zbW_=->*5;|H0PkaL|r5
z&$tS*qU3a3hD<8J>+6-ee<!PI&p~7B-n2kZgAgwbb)kA_3dNf{!7;A<oF%8^JQ5fJ
zEG&MC3V&mHD9$?oU<Vyxw$al|c9;$RWip)@m$lQe?SIYX%3@lzrZGyL%4nmWin3~M
zwF4V1lb>v9q%UH?gH(8SSuXDi$r*Cc47}okzS~Q0HZE*~VG)X1X-g-9C?SM5U?44;
zmBJ^k-;<P89K!-FIjB-fWTrUvl>0aL_Chqxh4f(|B9&KC){jfjO*xytYNBhol_3*(
zR^iw`)b#}9n;kBcoTShD8+-*yEk>WJXQWqaCnPBTuq=atcjHzE8|mj~71pOm?r%^y
zJ@rhVk&G8GPXqel{zw>{zf0D<O8LV`MQ<?x&NB8A;|LQsjA+#2AuC(kin9vgQgfVh
zd?Gm^p|>y<Xu7O{6Zvr-9)DVxEdN!1epY0n6#f93Lks8!u3*uVLzR<)lK1p@>zm08
zZ{07C^wVu)i9r<>Mb*g%FPa|kR>%l@mJ{Ijl-<6~CvdK<pwL=t!AG?I{2>Zt&}=|5
z3fd}eO~&XoCD2EgtdAeZ`uQbBk5@8PhjHtBeTtvb*O`nhF>mi^Pe!kzo0S;o>-)$z
zp<?9rt7e6Kd+XZ38FA0eNgxMNa<ujJ4`Sdak)E@<GEp;}!q8yG%a{8|-}Oltr(jtm
zfC$b%7$%fGPF(?f$WvUbrM0<xNtP0#WoW%dWiy14!wPb$gRcBej1g=LjTSXFuPuA}
zy5f+(94|+`+<I75C;uruPiDx7&Y$Bp=-vh!Hp5sP97=EBw%<Jtg>nw+oy>4qLnHyt
z9)uSfOB@s{M+sB2Mn=SFX_X3SAUFa`l2chZRZ>#geL9V>h@LAH6hwRuw~6qEOAR}V
ze0+cq?z3;p$jB%RWjwW69fINB786w(Pn7!lzdw>(p1W_Z&=0oCzWzQmZ!cSrMQvKa
z5Y7tf`WF#4OOJN<X15QasN>{E$ZdPHle{trcYqC);@NflEc`xukGgD-a4)YcsH$ss
z1P7mNhU&ol;hhza!CO$#af{`b%5gnw2?0438XB6%(UGq$CB`*OIY}9qgzmS&te{Ux
z3Bw4}t0Q1UFF}b#DLV%a_RXT$azY~_2TF!92*<(Q>uf$whMLvZo<0?&^c*z$mLX<N
zd;Y1nZsF*|ptzXMKT>O`?@&>q?lbb07lv2Bw2TR`iGzt65FkF6J)bdN2LTKdlJ}Dz
zfy&#q=L3fM+Y_0LJV2lO!&+hU2@g+lP@2&=yF1D6(+I&oa;6sYImGX8upchW%6ikM
z#3PR+ke_$P2wuNS!a#!;5Y+ohyU+vb|J89nV!OIpmW^p8Itm8+i*I|0ad>%!?yd|M
z!q8oAhW08aJK7`#HD#OmX;Bz%C(c{35D=hL>4QB{V4|un=8@_tK1sw+K}ku>@1UTm
z@TkS#g){Q>>!cv~6<DbZo=sN6Y;)kafxkgAHja;@VN@u$^~skH=}W*sWic@5VckBt
zcoCH?F(C7#+N~zb$EP$j)T-1xe{-{xm@iGYP%Anr4Mj!!*C_8$RV5!no+6mM6&xH4
z;1$dcY8k71o|PJx$IMKTlu*z!(2~(Dpf;=h_=26Gp-`odaZQ!4FNrq7KZ+3h_VnzJ
z4T)HRElbN;q58T;(B)G2eWaC+d8%T|S#}Q^0~7=}_@nu5vMDNV@iiwmy8<-sTdp?S
zB)_#hzuGoudCup^PD*1`*A+jD7nljAc}SI%XjLGB5oa)0A!#1w<gP3&OSZ(;I4Ua&
z*FM(K`EnVi_|&+pYxmrRsohP9i0AoDg<ew9*0!(WCIm7znTT^k`rk}cNl=xkDOhpw
zRv6$vlyzSJ?LGK=JR0C|w$v>0T{J%aA%PL=YXW^efuy9*GZV@CN&facJIB+UUvr_P
zRE@tC;hQk6uOz)(T~h-Xc3;-H{Oi|1tsVFEDvF6wQSe21g*FGi_h}2>oH5JJ0uy_M
z-HM958s6EoC?+m0H=JYNix@xUvmkQdU|}!HFL1;s%z`-5%t&H6I5cR*z=T(K@rmBW
ziy)(2H8UmRccEoslKX5~Hs;n5L%Hi#^HN?_N(yS_G_|@P#6{)JW;X4`Wup~>Lv{B0
zRqq%W%q|1lq2=S#p;c{aZY)`!^xnw$B}H<IN0t4Q(}HZ%_Ch~j42-hd80taPwMw?O
zAlyzlj8JU2&1BknF^Lvm8sQP(qnYnzsujXWxn>3^6E#v(bsU~-SMxji?*%Es$V0Fl
z2Q5787t@AiA7&B*F&4$+dV*{+VV%9T`*S#G?5e{Xc@Vi*J>8fKh00PNPO~txWAVec
zuPRqtd<kIffK=`z%xx7KHJ_}>O-g$lA%b(q$XQZd-BsvqW}%g>xw#?+33avI?_(^A
zwF3Oh!$h8WYQww_^<CwQx4->k<6iE!#GHrO0v^|IT|+>Zc(%z+dJ_g-0s<Ku8{+{t
zfUIF6SRh4^fTriSXFET;g>TxBNzhqsOCmYhuoluNLc&XQWiXcU8fIzVV80Cv0|VJI
z^c(P~tB2bJ1hhp(_3i8k@H^h8rBx7@n1e6(l2+~3Kd$95wYHu%X*qFf2!CYJNqsfp
zLO_LplZ92XwT<uf+E}UJ*_XXgogP-!#oG)I@kz$cU}$zyNnF>HZ<WXIA}O;e8Av1F
z#t_*&mXMeCsHZh$W{WOJNPxRSR}$^G-@<GwI4vw1t{Fv8cyOS?c7`hh2FBD~;$&Dx
zU~gIb{8{Ox&-Ch#XXeKEd()`<%2$M^8eq0BV?#rqE89PN+2YfCSWK<CX+N&*QeoXd
z_66h;vx*eE3da2n%`-g}OQWTOCs$fpg62MblED$RM4$w54s^s33%Zos&$Yl@^>(#_
z*`cN0cVSXeklKW0<sA6=<|Vp;TtA;r@tA$}Z;TI}Ys=qy`nEK;(lIiO=i4!HtLC-q
zRP%w_-s=ko1r5#8^x{FyT<gBsWc600#aM-%9E>SCY9!7^3%?c=6ap&M?6fTGx}=eZ
zS~6zKUtasg@Tu+8Vy?Iz)-McXZ>hGjhDC(=;PdQ^&9&;d?T>fz+D+{5TkLEG8Y*kc
zKZjugd}tx{x@r;O$m5-ga<`hy%alKH916<4-@Loxmf(Nm-CYxj#w%1+RRz&8sR<%$
zUoQ>#3T#MPYmVjjrutsL4j5&g!7!^R>W54&^RC8;B#%a3+xhG1&;K|69kUcgO5O2W
zTR0My9~L-YWh)oKN(z&fva+&VgZ2|TTDn*mwM=X;2hi%V%l15R&FMh*#2JhNXmvf=
zlz7G53>AJDs(UgMs#C2|)HKw!G1(egqf^QVeLg&y7diTon-TK$<}>U?;V}sb(&I;g
z*f2(eo2UGF)4$cWMLut1v|+KWIo@v`sBcPpZjqaZ%hac&YzWD{_JM(+u2-u~0nl}^
zlg|ZLU0PE1%zB79_nW&!dycFux<OmlV0Zjycs?Xp@4}9#R6q(@1{#|5tSG`BlmMCd
zvqdFIGcyK<K<nv{90X$a5$y8T<sli%VljcO`O8$;CYVqd-@4h<d+g920l^P6+{7x$
z-V4-aZLhEnXEh(oH5rV!i#J~Bq&h3s#BiVXKIlcSEm)O}eW?>MW61WH;Uegl{yQK-
z;gS3w+3%4veQByfi_Vx2_4S7zKDdmH6EM=z^bS1=Vt_5Q-kt+pLl`XS4IUnFH{J5V
zpui;MX7FvDQ;>iz7+_KqNa(0N{}*X*8J6X`bq%X1N=tW1NlObzNOw2V-AXso(%s$M
zbW0;3(%miH-Tj`rwrj8bJ^Ok7eEhf%j{}73yv~|)j4{XTA)dmMvcAg^q+FdVWV71m
zbgnA6|M@+>wzlHf8ctrG3iKQA>X*9_0KWR7s@N&{{5athRcP%enDlZZBfuxR%R94D
zt<<kGNL&Oo=*$7)#7NlV<27`2&>|s5QE@fU>veop6|>V%dZh6&8Fn-f?10EB)z=rs
zfeQ{qK_X(-Rh2G!G^Gj9GVFiNFwwx172S7Av=+8Ed&}(gGN@1VvK&6V>n(9-ze1v<
zv98x9iA(QcqXJGQ{(3k5r8l0@$;}p{08Yuxr4{S%O*y-v2gHaz@Y4u6Bzrmw+?65c
z%z<OB#6Op!i*ZFotvi7HnM64cm}9M?VU}>%6VdX7{i-NkxsE@kQ4%pUG`tf*KvtKL
z8Cc`k*%618lovGVPBs7$CrNR!;Gp?uHNw&9R!=oFIZ;`LSB!E>O7?wS5fzM#q!dh?
z>W*%GE@6cJV<AR;-MtMUXigChD*$*>)~g+H6c!ei$M4_IBqmP8#xl}iKmwEHR1^fn
zKtuQB=8wcA)Z)tOv;ETv-TIN@i}fB4CL%AqTf2Jtxg4&J0nslv0&qZu*OZhdrslhZ
zXac67egqg!Ey>D0f4JwQq8k_o%^IpevIO*aw*>EM?G7}7GdFrtN@S}0*^dyjuU1J8
zTcD8}87*!9KU$cJ(g}w~=1v?sdI=)~P5S^@f&nN{vR<u^b9IxHl*k{&T`-q$bp`gr
zpppGn{eqXmV^k6nQwy2a?bvLcmb)tomivfz?f%lK;X?MH*b@&H5pK50!$aSk#>7L(
z{@jj-$9f|D{;s&M-`9+&lpGow)N*+Vzpw6Z>oW&O2?FM5_KU>0*oa{TC?5&|7p*dG
z@?UF#m%{gqVKJev%}YI_73eGnuvXc-${P;X^$kH9Z}rMr2XH6q51d(91q+ph#iZWI
zFHsW`<2XI0@_`@6moYtv)oW!;RO2ola_g%lp58*L&a-_UP*c%Tv<gf*ftYn)iFIsJ
zM<*<k1hz*^_-s>AN!5;oG(QP)HK~~;2#PhPW0)a2o8CYrJdt*P)AHHh{)a}cJL43u
zMwEi%QMVqG1{c31t=#9qxLRbK<mjlg<Iu$YET{uzuxH08mQ9?UExZ@>LCJ<13XL8k
zR#d$mle}`?s3dAY9FVo1z`~u`+C7Vkg8^_TIIA|Vf-pf(@{rIVo3d&<8+$~Tqf9c;
zh`Y6VZ>G8k$Z~MeaMXUcE3d5zhW`~@6=h`=Tj-cxzv7tTdGm&f{73hKdlyC8Q$Ii0
znOq|JgY{Jf8HH0KqMx9552cC8{(Qq=Do6E_qXcM{4C)$|H&x`+u6M6&Mxd?X%n^-N
z!--cjE9{!CK!K!4_1GF{!c5cO|F72N#ylq3^#$8iFsLAik**2e-33L0pxXx@f}^<&
zaQ2ie1}#2Z<woX(!=CW-9mB!;IXOBa5z+w?CqK^!T-F5Wb_c^*po3UXL4l}V=dT7&
zuzE25-&AN~8!BxC4al6(vhToI2HL}<g4V`%W&%t{jQF(0xj4L-Zl(VSV_l5$9TV~@
zcVvv%fI@w#I6)ix6aBkgDaS4^oitNOexyFHgub);!UjR=yhOj?wh5I=EGV~GI%N>&
zy3;ap9|x-?r@0k$=QCix^0*@eUTMHrbIBbG@aRz&ch0j@vsj71uVVfMOa&Wj%FqRB
zgqcZUJ_`;F(909l+wDm?ZeHk73=(V`WLOQ&x0$AUpNvjzy3nTrSg-IEVA*IjdQ0yP
zj-c3rN^p9LarK@b!1KR}EU7LiC{$i-#EzL1dCqq%i)&!P)!84Sda-2!JdMkSM`l1z
zjt>oa)6Ol+QIYohvuqnDgALO&BdUiP)W6{?yQ5}Sn?LpiJ8K?qzr_54uiPX#eqZ;8
zkC6vk>>$5w>M1c&;J^HBA@2eh09z$E1?#sDobEF3mE6aDAY&5Tz@E&3{+0P}?Sw!c
zy%k#8;6v|4&-k~`X-0k3EQ}d8JIlJjT|TT^<OaA7X4PA2MFaFo(&*vp(=j}7r>JQ8
zx4S)|`+vIIiy5nB0~Z4H&hxN?d5?*g^uP{Z{X^C5VKX<Yy$zQztnd!6YZccB%^ycw
zj?3_{EN!|<4B)>4I>$<3()>0j?@C9tLp|q#e-R!VJAvL3{;RMEe0@`o{IAaN_v5$8
zx>nJVariN@z@%0(DXt833`Y7AP{qo~I-c=dO;*Gg6vf#D1-+8j8my4?A?v_3HQgyF
z7~WEX4GbEfr^VMkc#TIxQgn(?j1UY|W<AsNc{G#%;az2-JSd^e->##i6ynDRps}3%
z{6VSI+xzRYU*<8u(LfFtR6v@VnOV&@eAT%*&&rc}_LnEQ-G$}xHOL&*5;ueYb;%R@
z{+~4-pKHVr{mpGNO=KaItBRy!WIzZQr=aw4hn|fh^B<m99BQMy{PL=r+*II*f1NEF
zmPO*M&elwY-;gM;q&VI8n#&ppok7b_QDsTnTuLWwY#`s;ZS$I|N574aj2tkGRTcEz
zdR995_)$4%=Z4MCrz>=^&y^Tzqo|}j*{C*JhW!g8%-i`4t{`@kzIX;rO&xm8T~6oI
zuI?z%Hl{L95|`cfb-nywjso90(}Bdp;qKM+G>gM9P>A|9)Y1cEm0>cT@Z=HbCZmFa
zI?&$I(dq-&aUMFrkTIVSuvSZvmDaGbGHHkl3Mwly-$rYOe?9*mp~K_O20G;&a~y>2
z0p&x8P(@%*uP77z7|UkWOEOibXV`Vgk*`|C;<lXXo*5XNlWXLY<|Hbwpx){qPn>C*
zDF-i<&Fti%gKp0XpKxK$Kbh8E8IS?*D5~SkQ8^|ocnihq$ezG9Yv&~aJqrtRenwW3
z6fv(_lY>5wKeo8EIIMH8t?3}1WBhrX=ompP=0oYAM3!)&dgtdr3a)bT_S(AN8tq@J
z^Ct;%S`0x%B4b-|T#P3&fFd(qQ?mh2(H;b)dQR6JXItm(Ok_RK>9zWQ7-bXt^sfQK
zSl~|FU7=#Dlv0n*Bn|AC?yZhDvQz)7ch;FMvh;E$sC?Th7>6s-fOB_VgFI|NadlS%
zQHvqO=;LwoqTlF4Rkla+8{g|*<k!93)ZN`V8*Ge}@4k2=e%bxo@K&svQA(gEs<Nvt
z8~QKy0gQ(u>~BXb{d9ExUwU>GT%2DfIl!jcJek|<zt=**EKMi?UpfY|9a;hQdZR_B
zb|L)RmII8?!+o<AUa7PdcI%s>(inY%u(^8855s|5-)hHM##u^NYyoZd(Uk@g{vo1=
zVQlEbTkF0=(NTv%t#@-BDR{4F7rA!|%bRX)gj;HHhwE7uskS>OL4~D(YEk0|3SykN
zk>}g3_*5A%aV1H!7}C=GF|j2+Vq%fUt3^^XmA}=2U{o)F1GW%Rpv=E%Yn5MSzJJr!
zP9*a9^Mlt2V@k3BU!^%cea>E=y}FjYzBZ&<n*TQ=EvbUtP~jz?Q(8hveOIxe%x5p8
zs^}Y%!C)61u2T-pZcn)RlLoImN|%wx?w}Y_golPp!f2Nmj3zEGn)6G_5lmo9`EBC_
z97tnmF;(0ClBU2BN+=37v(*Kd%RaaGzs+UAKvG`*+gnRXE;cGI%22Uv+O}R2@Q$$+
zuwUyF<!L!CT5>A_{UWWcEv4GU_0d-2l$6xAMr|s10s<-+n1^NDZP<u_VVo28bb+Z9
zZOg(Nxe<6cH>l&+BX9!3s(_y~xpD$BlxzmzJoYs-I1U*e28NBlJ&lX&A&J!@?d!$z
zLK7xv|MGVqP2_FK-@V0uJzym0nS&OEjfF|eIM4mN9wI!;KrwUl0Tnp^8tfJbWhrE<
zv16-p9D%2;U;1zZile^o(y+${XC@mv0TVk1>ZI?xebLt%gCbn+gZ#GR%)1Tok@}wm
zuPVP^rcTs&wZ=yaVSewUrlX^wCSeh05{w(RWvv8W!H8c1&=MkOK_w{%$@qLlVI&?`
zo;q!sR&U&pf?PyI8=B&BKJZt1A_3hlBG@rHVjW%0@;}_DR5!6_aFgZ`;X?aGezl+m
zCcs7n3+S4Jqim!f2TF>8>vWqb@XZIu+3W6}vznT$N}sZLIl$-sF5_wXO#Xkkae-cc
zq%10tt=f)t=h1O7T(&2svg}+9*e31&=7=Zz_tT=I`d5z3L$-^9u_LjhXC%ZXV5{pQ
z+u5BrpyQNJ0=!YtKadDhPnmBw2QyduaWu@sAT?nUkk`svC%L%MnNmT(?@zb>0_f_I
z9_wE<8cvJ6|00^7@FsoSHniv)7|4yZ$SS-!o^(bC%S%7>(|I`1{6!>3Zr1-MFo3(%
z(XD#ib>J{DR`AzxaUotcu^t8C#e=KLhbIKN>ubQmkNf>&PWqHl#nIQVskf{)jMFnj
z1G~#rq;<1^%Io9}<GYrs?EK8zk*LlVEp{yx+2(I%RSh|I?PU>YQ3>%W*b#~EzAeZq
zzK>XaLzV#Sd*vRc{T+ZzzX#OX+Snk@AG3cts3|F!sbEMmp=?Q>+!Zt(DT*tv%XhaA
zWgHoyI);T#RNEj}Y`NbRMUP8TRH=RVF)j``*Xr^#F59Q#Vu6DjQQ6J)LRz4Eu3?v0
zW#*`SceN`&=*u0{TUcP}&waCZTn7|<ly}b&Y(B+BN3R0^uB(gHbsGx!@#;R?v#zZP
zKk_40>^y>n08wcYt)qQzq<N>S#pS@`H9c}QILS~Usv{U@#(Lp2x*6MGq~HFLd%wiP
z;0vTRj;j7cGIIL{7V0u;=Wo|L+PgkRp6pEx)+ebhz{6}CO@;)<QT9?hax`p1%*gc(
z7Cer?J!$OxKDAJAl8{2up?q^jfv^yG$rQFq<4N{I(orZ43$ob8rbFmkJyN4rFK(w-
z@?U7udPtNuFNUQRotYwk20;XKyMTILOOrR6eBdgUiK(0JA}u%Pj{Q{S4YCeA%n!Ul
zWTtoT3{>em`G88{!EM72xJf&2)88b*bd{@s7Um8t%u>C*ZfJMQfXSOGf`{Ys1_g8Q
z_SVS3bHP&5lHL8-%e!Lpkg8|}9`)xef;qyn^sZ@KWO=oT4jL!Z%<3!7DU&77c)Drn
z66Y4Z-vJ}t?=bwe6r_);-kX?EIw2rf%&WD%`pwTKwGU5>WLke0{@vfHck$-eyL&{4
z_4o3Nq|XvO5Cn#~$NVnJQpxKeSsO5IYOAO)@IRlzwo_f^darL-E>&Dqa15$VK>S{k
z_$G#omIDUoi#O87=pWxFLKGIk4j^wK4mi33NY2D_Vs2_Cb~cwUQE*-cy8lwFg1`Jy
z7#_O4vVk*9YX_5n4_HtG55ACaUNa~?VR<+(4y3=unnbzqEX)+=*e_q=s}7W8R&vxu
z&n1WZ)KcDYMX#>@qF&=$;M1Glc>GxoSG^q1fZ{VwIqUV!l0Y2Ql({O#4u4|AUc2|j
zpU3=;DXw<S4;zaNTTuawyx1GLe!q`jAEp1Y(*5=CL!7@K<NyCR{ui-0AS!_E0O$)U
z(%Z*2GMW9GsC`8E^4~Kfcbe)5`ou26!*SaU(gUTYoZN_ryx9x||MfHnkYaD4gun!c
z0H=fIZ#(j;CJDgmqv7<F!7aU+mTA3C74$qq0M#)2=XF@I(chM=5yn_35Du}HH%B(@
z<WH=D?7PCcjrmvV@lfeNp)DKz0QF53BX+I%KzyJ7r3~*;vn(@`L~kKu@mLijt^7)w
z!9?juMb++56-~c7_0bPF!DmlbxxtU?O?w+WXgT_SQqk7HP$)atNH9usT6Ee-aR}{5
zDLrVcZ19`pJx=heuXSU7ATvgau|%?GV!j@TI5g`}L^s8g`doQa7?rDnoe-WwHXgHh
z=cem4Br)X{>3vNU97jARk44Y_g4pLJUw&Gf<8+jQta8IzDHKc{(p<4cr&G<`V~yYt
zsqR61p016iY5M$6Z?og0aWvcg7TrHp)@WceM->+}uADNcm~CZ4)}j3r0$Ax{S)pfU
z6f&E>jAcvTUu(!q?y)~Ck=I`<FYE0a<c8UvIC>1YBCu@5D;uAt;09dqBtFQ!cj~Cu
za^O@~9mL`AQkxJG=5HVG!I<IC!FGJoIzi$wCn|pKV2!`B6r-%<Ot)UbOFF}BHT(wC
z;kC@<)TM{VKGW!=7N=P%Y?9;zpBsY9$$I}74W9_{6VFH7K|w*Hatr`7JDeuPFf%oc
zOm5Dq3C$}keoyw2@7LI!{Z9KA>sK+dl*?4y4A96kM5<O!kGg`RW8{q*nQTfLs*97V
z_Y@X0IJR-1B>FXq%=4}BKLmv}pb%E-_Q30DaEUBPN%qjwyO_BCB;tH-MuNJYy+C{{
zsE>~6=6vZuVG~puTZFg1ysxjrK5X{F{KD}&LV&=s-oba>^8C!=y?3@;=Cw)wNii0R
zZu7qJuaR&Y>PR}pEP4f$wGzrPB<JRCcXBGh`<r||sKv_OHQZ)hmUZ%0I<3KkauVeL
z$?ntS_>h9UqD3roTBBY2;BbeGaGV<I8N*w5?B65&^+8bjy)ik75+<tAzYmMUE0npl
zZ}+ool&h;~1xYIJM+VlB-hoe_O~jF)o{5k~29?XYW^9g&j-FOmiI4|%B(8Is`y_Sd
z)Vf@uuaQP|QPcO*)1Q@<XN}A&$jG{{-8X$oUC?{iwD~5vyksFTJz*T-Y~x^_4C(5M
z<L!=#iI(V>4x{^P8nEWTV*6{w2_N^0^RS=ZjD_*UV^vtL?c*P@t0oBgR(|yp$jys<
zvLt$R$UfaEy$vIP5j1WhO#3RY=q)?FRen&??&AUd{DRV!l*Cn23%yD1WoYzJ!c}=S
zjhN^pNrUP@mv9{eecjwV>6`{iDz2Qy8v9`XxG_r(b(K1`83Ci*$rD^+ll-h5OA9Cj
z@AZf$`K7In|9(|yahfWJ`wN6^Q7gjrPDLp!gB>HzC#{Q!{#p^QWmEESe7zcv<xn-;
zaP>_4TvB--p(ex;v$H+t&f(LjG7QM}n<O$f%^XRA6qObilvc7b%5I486a({x?5vE4
z<jD${CyBPyWIDAw-=x}YTqDv;A}F$iv1puS<cdmjEOM=Q4XTG_<iY==D=B(iT;fNn
zt~%Yh0Ld?4Y{`s9<8?#$(fhA=_<}f_D3$kcv~KiG<;mH2(mHJ-$M=UlY#Vp=lgF!L
z$BxB<(U*KWCU!A785tbHdqT^1SF<$|5Bg9Nl{M~{E>q7uWkdo+k=fYt(ARNywiCBR
z{nL)AdsqqQc-FEmjI0nm2ick*IJhYaM@5tr-ME<BE82S>e`ZzYmzQkH&JCo`eC2Ru
zkb`b#M^FPL68SP9i7)GbH_4mTD*kHA|9zVI<=SmaNSl<Gn-{r`lSW8QeSL}FY1tSJ
zMz4T$i{GS-s+O>|xrD?N&03Y0Yox$`jx9Yn^VVlB*~I<vK<tD<Y-A*cvfDyeIS0<(
zLJpBB%HH+G>OxRP&=0AZddIEYx*+pl$qOy+i|!?;lyjC9INuIMMRMosx%1M2q9qn{
zPNyjm<%5UymZxWZgj~&K6}NYHJd0A|xnf=ZSp}H|Bm0nU&Miv1*a^eyJufq(tb=<O
zw&k2pp4t6U>#_bN{$MjBIbC-$nACXSdxqBg)zmw?J7LENxxxQ)LehiVyvWO^Mki9Q
zVnx5ndD%83yCh&!nV(BjFQ%+>(tNY~`ShSwi(Z4>X7dZDNjGwLfC4eJPE>w<MriSz
zrE6tEyHGR3T3wS>Q;X?LQG{ix%%GX)Xp81`E^A!F!${q>pC$Zrax|8J#P14xq7cu)
zumKToSe+o!&YmIT@zZHydb)+`+dT;X?H22EBtra%NJkdpShOg4{+r80Kb*MUrRebq
z+wmquE{!m1P4ZZgV^h<Cyu62~NIvp-f4r_dF`~cs=)>r`{qfURsKSDZ((<#T6Zh5M
zOiY6Zbir^|TboU(3c!|Cn8=z+NNjpznjBC<5M#M!Y{}4SCL*OOYN-knGcKehE-uVZ
z^0g>Rr)~SP5&C_WuP3r{b<T#e;ivZ+dfrJf2&%B@5Y$HKu#;0Aq22U;rdxm9txbWP
z95IBH+}t*Xk%?jx<NTs5g8FPx(#Vl*DmPjSJq-=2LdD8#)wZ^`qFQ6UM~rW~Bd)Fp
zlX-Y<!gv<m+HKFOf3;t%<NrM({~Q@;`saTSsztAI+V1uTjwV#hK0Nkbb3sP)%G51h
z4VAE9j^;Pa00V?sdfcE6#))C{K!GO_wq!ya^?oxP(>Y`auG}%>x#^jWv7I(GWv{w9
zA>EcrHGUj>%c?0O0D_WPVGVrRAL&0o`iQxGxD5qS(B1b`KK7j_QE6kJfHWZvzd=TG
zG24nkcTSE~GRN64;9P@(k`j|3bLT{av3%ICVb&lY{ygZ5Gk*JALn?E7edoZjk2fe}
zBJ%7s7-soF>Y|DUo$mV8A&o*2Lkh~$F~xia)t;u~<FyKzAu^=fZzq~->(~oxMN+bI
zbLccQmH9^(r)djo-{iSXGUZe3x(6pTXLLT|6j5RuTkP$@THlu92^O`z=Ig82-tMXA
z$XAV_y~B|tbfF-@Pnm^?N-o=HR8_UzMtgnmpun`SGnM!Xjycs#{cK?RKVoUiIwpK7
z)hO{A;{gx5?*8`bHW7zvM>c)6-e#k@#SM2Nr{eGPYOM5aqPo-6lxAp<6m?ftMRfG`
zRfup~>BvFnQ%(EOeO4$$AC1@Ar%eR~r4J|D&k)rOd>SZXIv!m?tIgz$E4pTUSv?f=
zvbyK4S^CPA!!l0lUz?O_&CYEYp3;;8!S42q%>Ffbu*dkht!wwrNATvMG%+HiMwyn2
z5>oN&Y-5>rwhzzAI&{mY=IiH^81yO_HD~J(#8{d54BvVF{7Q}Kvz%L=x<FbBEslHX
zilPM0;ndv~2Quz+HCH@*W9mZ40>1N%h&o%B!|U$Hif4A!jn1fCZjeulGK8%QjZRD~
zh561IhogncrG^F!^hE4A$_m-BaY)rQ>t(Y|QBN}51%^0G^*()K5T*LjSF|?h9HmkO
zq1-8d$jkf{m(1@svHrdwUvS}GuUlzY2MtrJ6loIpLP&tFic>zQ?B+sh0dbI)+T!O4
zf0m`k%>@IKTYF%A;xJSb4MIqIJTP^Os#~jz?}|cZ6Dy#`^=+#hc4*<YBW=mN4S@`X
z*q&@+vC8RGRtCbMT32>DI&PVmzDHC~phaPOe<$2tO1`!>cH{__dy6J4m*ZYVLhAj@
zG(FZ%Rj^rX{Ehb3fJKB!cNVmBtGyiyGi^w4*nGYF{sR7#rL4gkJ?6lz+XaTX?ewY%
z9y)q}z!On8sP>5cy~I|<wd~c6wwi%Xfmj9QNj6r^(59~|X?iBUS8zho@r>WKR8>`{
z#!fqq_|phEjSaNTtqc(h8`P!^(a>+v-N{&ZkSvc%7Q*h%(^f!qv12%BV*not9pfW3
zpTKVW{ShkF5C7}v)E~V*x<|@vmICN#GF$u9C563(5SX&^i0#uaG9I2sjDKyeYs%ob
zGgy9$lt;=Jfiv~$kN^;Egr8_0!g=qd(EShy!Fl`Td+%q@nsXIt!e$XiF5-PY2?ayZ
zh?cCK>y3@)wTQa~VTv|3CkdOJn)ZmK`A<7`CHg6DE=8kBF9_egXz(~tvi7P~W#rT*
z9n+gTM|lLog#I!X2K>Dx$jEhkUUkHgO4xhs4#BvU{niOpv7*T*c}<Mm;j`Dro(0#}
zP|9?DIIJUc={cp?k}2)jY+aolJ>;cDr-ow7F*gh*g3m(NV{td=;y1Z`5Ou+OU5}2H
zI6fkCDJaNf?3tI>62CFDUcPd1&_UOF9v6;@Q8!z)(`e6nEoEXiemlHkr{7HVn2WY3
z6lu8!Y2ucQ@z~bdTAJ$d$Bsc;8<+k;q#L5l`}~?33~oKWh6_3!%7ul6!*0wM62T#&
zQi~DFDwY=S@8JA@Z|kATY^(bTvaeW8UO6;eucuI>R26FXC+BfDXpe2IGb-v!D@rW)
zN_pU`2+9m6=8Pawk{Toj;O<S@+_p$;2+yM8dV#YI=WJUoxVDidF218v2G5I-0fBtA
zw$5k%JAl1E0kNo1t<!gXgXmr^HRqOaS%r8FwRhbvFQ9v`X*yO6LS7AP0o@>HBb*Wg
zU-_kg?yE7;9OOU0;B@haZuyhvH$i0mI!6o&N)MBy7+PNfY^$q|Dr~YVWEQh7FAbL1
z*^T7n(Xmztr#82^4whO`VX3j`d-F}rtH#Ew+1{j&Sih#F=Cr;(weq;LyBvdf45YQV
z9Ha&Y2KquM8!i?IWE3^<kEe}7T!Bd-YRou3U&i6`cp=a3?8Rhvlt&t;!^*iuGq1Lu
z34}`Ph0{f|8xUW)b8{=yKmV?K)XeWM<?Dw?!2G2!S7^=tIi63c$K~T0D3;S@WOwMF
zmj-_w3}^Ch-KSUN6}22P?k)`ihh-<VD^=K{P=pXpSM%S&HI)-YqdhpCjo^BY?)CLS
zXvQvHU-n15rqt-}F*UW!9huj$(k`<b$!3Ro?#}8|(Gr6mQ<zN}D^kMcNMv*=`6?nA
z4sP~z+Nc}`CJXAxg5%YiGA3PBMcL)b=I~(iRc>ZMAk~G!5e{z4Leq`DasK2t&!ILl
zIE*PZ)jON}TZ-8l^tf0#-&7)Chl~*f5x8h&urf8>7Df2$@rixzN$~n;r7UMgqFQ@j
z0G?u=UVBGeyt;N<L5b(Nu;GFF0g}CK?nu70T$zWesM}q{rQ<V#v?{hYmyVz!C?xi>
zi7JU}Y=)z<q9VT}lm`7vN4teZwc4UI@odQKS0n-+f}cAL`~7TOb8|&BH0Ct4cdo9t
z&ykwbqV?1Bj7%0db$}D82MMsono;w-H*h$ZZ$KevJ|0)j3noOOt*WlT;n45;`QAH`
zEV5Nov&R}<5o?^o$F=m7-n;)j7ii?GRAhrKqo|0F|MJb;AQESsXzTsob2HUar1d#z
z$SBJQJ0vSJbFPE>y)0qI&l`p;I9To`XT>4+Lq?3CoQ#4V)PVYeC~TUnJKKx>tyO)-
z(jLQ7LN4dp5Cl<sAST=OSadTov21ppW(@87IkWF}^V4R14B~Qs+5WxD_=>uecQ$f#
zB=qh?T1u0Ers54#5+UC1{_&fi8Y&-dH_G)Wx3*{>lUp4G=yl$gIUMAFew6QnmR|y4
zzrI)mtBx;2MoXIB@%nVh-8}`mMJkQU1;~KysFi1sj4vis)POMJqUHX2y|8rT8K8x~
zy5F4zwYD}FTZxnIrExnQANV5~t*z$g=La8Nq;cx`)pMXL<-zT8+P>ywQ&tz>iNVyu
z+uVkoZTh$dTU!3<F#Wwa2F;K$Ez+K-gs5tzt}jR2EZBne_6R-SFqW_w3uDT?^=+tQ
zX*{KerluSjnVDZPRy1e47nip=uKnb>@?+S@2Q8J&X1#T#^MHb^wJ|JjgZgA6>PMF`
zZ;SUqr@-&k1%QkTy;nXQIob~uE`owzZEPR{)FpvE1v>5ASWH5Ss_Yrr*(<e%DbT%)
zR8;q0Le{F!<h`rk_4Or(5FAZzD=CaM)z)Gf4Z7=7ROC-h_3iF9T<jwdFdN60mS!~H
z`%){rgEtPu!IY@vwH)j@28KccLiOzITRU6tuWsAgEE?<q8#(v_9*@D+*v?`v0S?o2
zdpj8)PvoJZ;`o@}VXwf-IG)?d`g3V%V4&D$jyOudQ`j<&?|wjqMxv*S<M__OXhUkn
zS#f+^=G$VYzd3&RzBz%VB}Q>mh{#Qru5Ke2S7#_zMn;J{H6tSniC$S8CideHv@aoH
zNQWmUCr8~q15zSVQextTrKM@i_C*<<?*$YTz-9Gq;xkdvi#`8HAf}8f)#5oC<Y``5
zkpB_p@X0nfG^ha;AA#1>?ds_3A|v6ucvh$5t_=PRorh$eLChB-BFL=I)3RG|neTVz
z8!`rtvV=l#+2umo>s(iaoRwn3@+c}TX#FRro%#-!!eKb!INuuo<W-qbgj&U$E|&g}
z{Q*xrM)_>TK)IqquD2H=U{+>c*YcoGK>;$n1_(sVKU`J0wL-eBtp}U`9tzIF0;CXB
z!@j+frIX{6(n#>6Trv7z0z-<63)R6Y0yPA{^?CIh6)0WLlT0<&Gcn=O{_LML+us1t
zU}m5JBSq;BU@{Wx>0vEVWpW%MqK1RBLPEl&rq2I9Jb(!MrDOTd<1QyBquhQ?OxVRm
zPWyB9S-Hpkr?N_>-NW1`B>e5q>*_uQ1Z<Rk2&nVWBE{I*-h4AlBi#r;(*h0|x2C4<
zb&25MlDS$PQ*(HPEV#x7U0-E0@$}RkWaRd{Ta5k`xMv^m@J1>taBy*TE@EP0wj5O}
zRp4D<pJ}Q$PR)#r3{2RA>c9a+MCj{lCtu$TOnN%k`>S#ip>G&K(<_XK3(Zn!Q>Slp
zD7tL$pjjK99D6=+yhh@Om@^BVC!{Xkn^E2Hq4USa>RODl!sYd4m+_;bsRQjs_}_3#
zhCA$v!HW#3vjH}v%&e8wnx!TcF)<r1E=(tv!YZ!JO>OPNt!z=b){51NiZITny{n`c
zK`~3>ixX+o)SNDBHwW~pO^K=8H|t44+-WrU+7=dux_s-Nz6l9=4V*DDawDVTEG(>a
z<{`GAA|ubp(AmZDO>etg$b<~?>(ZjWfqr~8Q?$y;_^76)I*5t28cvKMC~(nguwE-L
z=ru1c209}o0?zXVVM2@h<K9NECj~xu>32VZ5gojt5q)MdL5cgPi-c$Jr>ELs?>=aV
z8nGGY)x;`6g;ALEjNq;EGfbsa)THMD_>W^}%h=>o-5d}@y3Z0C<6Bs8BnuZ77Y5aN
zcz}HZ6N1d0nu=&|52o{UJ>CLjf>1N5RWZYl{!Y3w@(LZ64b~74bcL)K4ZHeUziIbo
zi#l5nQ@pAx+N~^9rbdH}eaxCPPZKe8H)&o}%yV<tUi#JCbL%AhC8xT2<RWA{G4a6t
z%3y2O3cNSx_E=g`2xQD_0!zk?pI=!o#51y@VtZ!B%KpIc$9in3dR$_}`&X9ul+@Hn
zN5|JKc02CZ*E=BxjVnBkA3^i(nuC@DrLJJnl-}{l(H*QOI~d@`bXb=#z}WGoRiAJ>
z9R{(;vpwRh0qo5k`ede!^%TxRp39#r^eymBwvguL)S?c7(3q?g{1ZwAME@0iD=jsp
zA7<v+74<|}kN;fBFZrb7yp9;fH8f01##3%@wO)~M`t@<+v6VEmGC~qL4UEjx)s=<)
zlNF}Sfk4xZi!0vN&X!2@n9~#`$b-k4l#I)5z-G{5y6iD`>3n^RmVy9nER?XKT}LDt
zDQjo4rt{LX0s+i)MJYtYvi%WXI9$g@mx}{=xKtE=x4Uq=o#y+~QEd5Kw3uku+i~R<
zf_E=EpJQCX<DAZKq<Ne!xM&g(07vByH^agXnOWUxO(H^2e`l3Gsjt9!vaY6PN`<so
zK^!4+FDkl)#dz|yVq2*Ue%mJzA~5L+Jmt>L20{M<B#j<OX2tP)`}1H*c`tG)5ZN4_
zoogQTP-Eog>O*2<F_a}ike5Wt$v8ABFDpw)MM+%FzMegOZz7*rS68Q(Mu|y5fp4+5
z4f5Q1$+BK>QkStySp^4`=4CN)5dHN2y6C=BJqaXI*6NGcu+cFwOP77Hu-955K<(R3
zr`1Adm#>3a#mvG)@J@R_UFNmKU=Je$tNUuLbyW$@=f8(_TJ;)>zH)eU)PnHE4zoV_
zT11$R>8H2Hr}RvWZ(gKwb5V2N{4Cew%LwnWh)GJ*Qjp7p=V&ZO0e5oQjF94v$S<*G
z2dE*-sI7|bF~zS8p2VO6ertC2A8Va95Y4?-A2sua&)+L%JjDxV!lb`HowW+tBb1Vm
zlrAkSb*QQ&5%uJiQPq%Kf3Id}D5-%TV;qwbCyaFbY@dRBeRb{1*`=~!Ux)%JKf5`@
zQ|vXRiLo&_O`Qo!MQNl4`^+sZ$*(>Vv9K_wXXoFoqyeWMZg1%MprBrTA56XF6(+)W
zhd6I#QdKmS5z<Hgu@D2i4m!tve$<5pVW_Y@ubQA>lgy@`&M?CVvcY%*C`pOjhI)IH
z&Fya^b01>b>m1Lvf%!2mF0PrW8R6<W0lVGy>2&3_vvV&7?JFxa{pLYrz+3<sGPv_f
ziwc%cu1pdV{H0T<UQ;nLF?a%*Yj4-LpX>7tla>q7BBV0VV)r)tcv?gs?LU6Bvj*zf
zn#%HkFM(dJT|OZ{C@2oNJ`%BW%}>rIU7<XB#G=2p>N8*aX=|oBu%JMQn}>quq0bl2
zh+fMc>y5UOOgJ#b7FT6wBqyh1h$t@lpr8gTZY3<p63_t-qSG4&9gVJ{!czbKR{IBT
zkA;DW*di&|Zxl`5_*%6v&$OkXZf_M76@ZwJH9&yp;r^zZ$*4;+J3Eh%-A#>O!)+#8
z^rNf&?InrRqsr_en%e<<;|CD8b{*+h4or+Na#IFyqh(u!o}b&Kx|EF8Ja)qQrYN5!
zc0qXQF7YQ5cI6@G%a^BFKe3&+CZpa-N@7cz;dnKyLNj4gQc`+#RgO)}<m6=_bDx4t
zLjLxxj0t;mY)nd>BLf{nd2Wr8s_Jy#cYSc_>j?*^^D8%8?0FBOi^qnO{)BrfES1*m
zv>_!gAJtU6cl+~ai&W~^<Y-ne8V2Tr)2<4z`&M|{HSadF+Rd{&&q+n34Z_=OUOUPD
z;g*Nczz}p;U$w-<$L{Wx-d<x3j!(+d^EcB@Hddk{9YaDs>cgL&QG^n3r5^e9XOE3R
z35TM^#que(-`!;#&9*$;cl^}Wva(VUo8fUgUR^{Y9O&tmm6gR_I^c2m0q<-h#~B}!
za(7qS(tNdDc&ZMU&Z}s5mWWP0RyQ|lG)SJC9e(xW$B(Ft4CIK2GX#VoENM2jw`hLQ
z&}CxaP+pSHlVf81`EqM}Qv!>N<Kx`h5p7661GVS5Gyz*E9SjG7D?9Gc!Pvw^n~}Mh
ztBlS<u@PR0G^(Cn<fy|cdaSzoJ6BQazjD*T;N~m!xH;WZ*x2Lti0ITz)UPE695#Vs
zwq*bS{<)L|5pZ#h(C*w?@$|lP+r=jtm7hF#2v8eZfPYvz=yOdKvmJVkb_)`|=}k_>
zv$MnxbYths`A0$=9AmnE+kV#wEeB3^ZD>43llXaIcL1KLPH&>ubZQ^$_7$@Y*V3$~
zKDC|mmhhA@Hqky^jz5ZO^b7AS1Idp(GMlL*La9W2+x9Nx?U=)B0(vvF0PaRdhPt9)
zF(wh;zEzmm$835l(iD<%2O&CjFP$UbX!`v=z+`xQk18m#(lcqk?k;^3_7M=>(*GV3
zUliPbqD8Q^FS=IaaId)vN{jD~W7t4CDAH)2cu=-v2?gn}2)4CNp()B2a4}#RPeR=7
zr=v~%$uc$By5=rrICY05S#mugD4rozAcJe%w?8!c;BsXLWw8ea2k1&o4wHg9PvYv@
zkf0m{v~-j`!EAE3<H>_WQ`5mKB(~x478F7odM3B*q|O_gb+amNNjnx|4AcAFoJl}>
zc2nhB$sIaLr1u!&<`*sw^zKY`zz-oA=ElbLqSCAs<QHLajMbbGi}_q*x)PxN39r&R
zT^VhenTtatvdLM{$D_VlC2nrh;&DdIx_>6g^qV}qOOW?A-^;s3R5UDyrKYCq5PE)n
zDRq7nRnQ~T5H+CtnI6TQ^Al-9w&RX?Zz>`8%tGJ0Z+7WvQ9En3`L)jzNS-@eD-v2N
zzls3xTCA_<l86HmMvxsR3uQ~=ZqAXX_by&GYu-Y~TRzne!8C&V`R=*pLNaRqx>`<E
z6{%C4%&d}6@0Otz_Vo^)j&GZo3TBfkPD~)$eLArHX$Roj&7>7G1D1~Ix>0T)+DTRG
zV>o}rVjhS6h*rk@$J?GW{{UiAO=J^HuGVrqxtpC6)fALmj;2+S#DXXsk#rpHmbs@R
zPmW(P$)ypp|1kT^6_b;_s;_g^^Bn?kzOV9;`9(@#g$`qz+z(i$2(c50zKZw|9I^~2
zSSpp6TPnDRtiaOmF!h2hO#IWuF}0fJ+H+3MiP0NNXY2Q7C}*l%fpM+qr#(Mg`5QuQ
zjs!BLT+&26ancFk3t#;S;O=DIowg|a-P5j*o}=<l6wfu0a8poM=6^h&2=6*oC=hV5
z3kkv0%PbC-sCPz@pPR!=MYGb=*EO0srU`ula)mRWw<QJJLx{v>#ODLK_16w^QNEIr
zfPRuQlzp7kujFV0M(|ZW>O-+bw&~COf`2oQ){T4kIG0}er)Yr5l9zTdw4T~^5Dq;p
z4|m^Gb}yqFdvqpa^5;2UoDpvMK0DaIBYwy34i@8#>d6P1Vm89ty^ojZqP<uKDM2pb
z$Z1h5Z5HX}fLIyVl;r0(eV>{FNvLt&K<Ybw`XoMI!07Uo&U=HpjGEAhP&&Z22+OyR
zbiFRjF7sRzvHsrQKZ&voJ<Dl7GhM9u3bMrV#@h^Eabi+we6spoad(8f+UUrT2%u-!
z>HSHI;X^DWBv7p@43xj5mS{Rgss^=R8Q)&2?(b90?-IkT>CmcRnx_8)%l9~Z>XkN-
z;+K$8TDkxT`7z>qtHJn_*+e9wyqcil1fN&K9aF{#p)+rh4oV2zX&?}q;u8CsvPfsF
zN?FoduHCkxVnV53Y~&l8ZTq(hBD97-;d}wg4_Lbop{Fj-*r^Ht?9YOL5MyUY3gB^a
zb{?brAY9Rr|H@H{k4y)l7H;q8cmU^jyhp}1EX?C$;-&?cnX!-3{BR~Grbx4D%Sw)r
zvy?OP@`2Uq=XOKTrR+jbJ3XevcC3b42BoK6ZL0FGqzP>8?L5Z7V^nLK+^c7A)z#!x
z#l+M;oH>znZX4S!u+TJQza?jy?`$>UokZe^RZ?byeTLyTVnsjiu=PRAeSh1eRUMOF
zgVQB7HFv_{A^GyEErGl|o{IQ+O$DP(wnun!T48a?mbRg2j{5i^PEE=?^X$S4j}tAg
z{{H_)PaeNHeXPzlHUU{-QJ9>RSIs}zN^!(qGSodDEm9?vj(^kDS5(++7>*>K0Uzyi
ztU&h%`1HBX_(Mr*7UW@x!;GYy;-j*$rG<r{1SaJo9&O}{UEF3Wj!k@{P`}cN?;h{D
z1{88lQ@!raat><abAWayuXFDDqnl~3FLr&oOn$Dw&d!T_`HDEkSW+mP6!DYo#Huxf
zhAiiQP?u#f0N3_tI+e7bb9l(H8Aq6ZVFx29nVD<9)EMiC-BJ$ZD><@@qe;LHO6wU9
zb>YJ^=+qBYn|Z303k2M*9YY!VUQS(}t}3tw90wl*{zS$Z?t)2$C50KHWCS_snYTi^
z$^IdG>5mZ=VqL4oSqu^Jmn=5E!S|WuL%4W!;rndyxYK%<;y1T26_uD_3H*M%0Ca0b
z^8l~<tc>vUNT8H~Jaght`Oq!bHZZp9E4v~wgH*cyzwnsRVoYO4P6%E?a8M*A+wB?s
ziAhNv){R8ST(nJi^jYPqG-ev}ycBsGA2hn3o`gePDZu=D%iEZ<HmGalSdvpjPfmnh
z;ACcybI~>H+K#b|DYE}!7cH{}WC7zuSqPylDao#w8Dl+!?di1$>1Q5O<A^3()yFk8
zQ^)4H#(s+tWKfhvjTZ3q)mFxJh^;L`wOxg{I7dzPA9^x#B%jCe!ym>2ygIHEz)>hn
z?RK4_L1Yif#KL0<Fk9*~?oC~bVj==cy_sUhpGlT*uuMX4AJ~4r1t>3vdzOxWoVHiQ
zeyXnMNmHLKq(;yvCuU3`<m1WD{QMV!nd-Didi7!*2ShEhukY?9KiSwQeTv`^mK48R
zic0b+@yl(gR9E_>BXv_^BqI&3ZYDSWu*dcaN;`0DcFfGD)f`Tk6x$?!VuoMy`;7g+
z5`^}yJchg8!F|hZ$d*tcvpgG9$Y?T3N_0guc_U(C8+xy_X6tAfi#4=MigK?n%HU=`
zoGq0=iH4Rz0vi2L;Hzrzm$pCA+^T)B$LM|x4&EF3lrx}PwsONY{A8!-?ga6;@n^{J
z`!}(upj6nfMH#oE2R%JKTipbCB-VzZ<JY14><V%8r?p3uV{U;3k%#eiLjEjU6l(4j
zLiJFdW(rIKdk$Hm>GsUrz@q=>>nG>y{Yem2pK!jXUa>75;ENQ3#Z(#FQX>f(bmTUM
z-SIF~+r87UxaAD}y|`1~yPbTctLxZAr<u?@AOpGtT_aOu`-g?@*`+#z90XT)<FP%f
z2X4b$D-~H~Cg=1xgIP{Grzfq_8}}t^M++~KEwg7u9p2;`irP5pHkRa0$ZW*sW5{fL
z+|SOzLu^4wMbpw$mmimTxJXf7ymQH{0DEaj!h=E?BS=w3^?rTdN_w%5rEgqASi`&D
zut9wmXq&j5PfT?Te0g7UxKZ48+ISQ~tXbc+e3MvwRM3<V2_#r==dG~N$Z?;T8`Ox*
zJ>|4!zBQH8l)?{-(@;C!$r<vVq)Xb`DowfbDwh&(q-VHj9f^IZd7SU5X<ATFkCPZH
z^rO>KgU8`ODoaL1LG`NFm&s$XiDjf;?=Kcnj$MoNmTj9=IcD_uhj)#{*d#!<GE&?A
zXm;+<e)Kx~X4FW1E_4yJm@gjtewgjp<wSq!+j=equ6iK^Jb}($6zfVP4J6!+E&NqB
zi7Q#}BpU_A<%&wN!omz_6orxDA^6iH7PdD%G*peLjt{1;=I(+CrCGhg^mGKvn|zv2
zh)hlEqY|?RmL!hP$p)28t?N*m{F&L<w8XzOy~I_NktKLL^>Fv|N=b;ecsb~4i@yfe
z{`!)s0hB1tn4ys=H;^)AlGcIrZ0gSCYb5IT{>bUaB$GTmY5RDcs4uiVEF>j_T^tL_
z)Nw#xns*a=GD4q**J@oRQI}QzrU!eM!WDS|g*SXy$geTyS6Bb*9?%ix`X2OhyJTiY
z?J_tdgiN%<(Z!{mLW}4P11mYZo3N%%UG=jwdc1#S8<GFcHsp7jqyIl--PZTwog4bJ
z#Txy(${3cIGl{nz^v6jpVQ%*$X58nY3K-iiA8-G~qJkBB#_m2~iSuDU<rIzTPJ*Zu
z^RTSkuG}@(>+>MNKgC{y<&4aUn=F^Q=C&qw=rQ9D256W+xVqx^c|L60CI6@X>KYFK
zTzZ=?SQKM?=FF)I)69V3G#2Wbi5XAP*?4k3efv@G%WX=$mcP->PWqjj0^DtIq7YuW
zf4=8?jS@iCzm2#1VPaC};U5nx3j)?bi8A<)3W^LW6ZC)Z(Z8a2|9_rBK12L}q>;aY
ziA~~vjOGRL>C1meet?AV1;AH-|CZk$Tt5Feb%FHm?}hsNXOMLM1<U^H&#IsV_#_Ix
zpv?Y@Zq);7#sA5+>InQ#wPLhlejPXOYZQ%U!jr*yb!@?B;81Cfo!Io$91O$LGdcVs
z|M7aDKhe+6SC1m_duABYojV0fg4(zA!i>7TadgCW4262G0D;Kxo1bwfMsmkCNn|L`
znNH$<Jcq7DR4^>hM}f~6cCaK}crd;fKboH2xp)v*t6^*Rxa4F?%R|BcmdZy4v>WKk
ziU41EJg^U9cwGa1zF0qsPGM4t=DRsO(0;1>z1y#swG9~ezuwT8v`*u0z!J<;^{`vy
zh)82AL+&5#vwVw(QqIRA*^Vlw9`wy<KbNHf?V^=6&lj2rH$t#b-?=htkzQU79V7@o
zE0uJY5>FA2G0w^Cv#%^4UoMb0fesL`-nPHI$jAd>Z0ZRdxEh+Va8s1xd5kVMC&{Jd
zbt)m&#ULP^$ntPTDD&?Z%*`uVd>Cb3)M=lGmJ6E2+S=q$Rgn!i?@C?xuWHk>iFt{h
z-s#I5dXRFv7YX-T5N#(-C9zrM8Y1(-BENWgsQTf9L}VZX6O;EKdASMzJyuWge;@7$
zRGz;N_aUagnevWp>Z~{T4R&{@DM>)UHpgsL9@doAlyH^r=?y9)d@1I``g`z}SY;}M
zWG07`luxL8;v^Bho=EmDo56f~5&^WC@*qVn3X$0C9vS+QHR9w@oPRoIkryU)jB~ry
zrp&d6H&<i<_55c1<cfmCGJXe_BT-#$O$}W^DLJJ1Zg~@?J~7cZ20czU3(CzEC>I#M
zK8wnzL9FI;Szce)qEBf;A#C7w<gS|juX0l#%HlF21`4z68zRLR?y<)&8J7OA(_ogJ
zgMB0=fnhLty)%F;;_vE`X=o^%Zh(jnU0GR9buVUIK}$NAaEWzDMLDcz8%S<Xt;Q_)
zX;b2UNGq*;6d|wD8J-G2G{m5lc0R@tAxDl$)y=gs{w?T)fPk;(&Sm9YQ>UYI`3%9i
z&yUg<iK_E59`_3x0RnBZiYcpHqzv?I)kI-HEcwrkIz|H0)-=3px9v_s33%17))%3d
z$whscZPV)fuSVr{AXG`kAn<w_aLI>EDJ?>ZlFFN2(le~ElWl`7GB8M63^{hN&(f2g
zk5SgNe|Vn@W-P$6;blAs@I@R3iy||VNBqNJj|9ECg2yuGEMdcFFk({WG}SqOw2N;u
zNE^XXD~l&>_MJMrlaQwL6~i-Emr{IR!cujcSP6_{VPgZGnT0xjEQAKWLha*6T$TUV
zmIvqd*h3B`Mq|T;|KaLoge8HQQNK-j)q?Bc*Y+i4QZa=$UpjOpkB`vV*dAP$7LRL&
zrvZ3VRvT}_5Yhf&9$YM<<WT~z0{VO2jE$5Jv4ObK3?<0S5#dlYhf`ij9l-#PmWESk
z4$PA8D_J3($1zHBJ+zdxB?YHA+R{0*D=<&r$Oa7XdJ{&Y?U<P)ZQ;tOS}>1|6@>%`
zQB#8plo(Q4j37*zLlovSC_^~byAs#h5pndhwN<b4{QhdAuB@ypK7O<IEo1AgZ=o_j
zy#}x%VH%ob1MvFWcfm4gUMqi}4PY5@f$I>YLkjI?m!{pv(~q;ja{(Yj`UKaWf|i|~
z-XZd9X^u`WE_$%t83@k&=fke{dVE0(@yp#J!hvLNLfos{!(pqZ+><6Abop18#kfNC
z9G?8Hic_>Jt`SGQ+qk&EC%lE-ZFgr>_@SQQe51PeqLOL8*usvPqb{L7Db|&Zi|nm7
zvkA03ewxFYdr?H_{u||O3n)z8tfV9|u%xGZXgfoKwbo6H2$N!thFjfk=u$Wx_l~<~
z*=q4Zn;`5BZb*zo#we*F&D7>7{dgRFDOo~mHM-?02_3!wI}oaO;S*24pF5T_o_)cF
z<W1+t$1kmH<!*Bf3(I}KT?kYb>kD@`k^pzGbouWo-Tx+y)s3*6fLeIrI-sCT|B7Yn
zpy8{SS%DEe{?Y9hhSM@#IWYQO(}IvHyK#jX^e$TJyY*99D;IxSxH#7e<8J1~jEl<3
zh4~wPj;y@+cW=!V5%p^Cpt&EUOpmdo=?%%J{@3gld-`sMV?@CW^F7n>c;VVn!S)V>
zd0Wq!LK9lKdvRmHt-?ZGO0!qnj*5!P`#FNM&DIE@&8BbmzTVjH-<~xb*qhJ8vi~*M
zx!bikiu=2-4a!)*q84Y%$yBb;=4O4^t6e7dod-Q2Jb3q2`*8}=DDVvsbyBna@QVd}
zEn#3+^J+|*cE_AjBfUP?uzPzv+{aW@=TXom`Qv){1P)dRbv8ub3m`_3NGxxnK39cT
zdE#N$a}B{8!*>&R#9NRgX|E5hB?v$ICPW;Sx(Ow69;yoU-Za+32ndNX^2oBv9_{aN
zS?uMc66;aEzt%yNCc51Iu9b8@wPUbRcCdHW$>w_Nei)>@qNjOx-n$vhTp;6eb}N+n
zc~D6y*Gx%%i3X49lfh8m-GS@j@#VKilb$5=?<V__Z;sl?>|E~&mFZyx_kIXRNxsH_
z!FF@A?iJs@dZ#RoOI4h`YHDzI9?U+gsZnlsGy=2Wtz$Fl>VH?Ji_mwAi;bLi@|lVv
z&F}nSBFfUhH)f4A;5t$BOI+(<Lz>6U-f999SWS3{MgVMIbUUBkp42=!JD->wmABmc
z{sQxBNhsnfFE@=Zqf7<pOA1hS9SsQKmtO&kv+L%R%-C8lwyf+MTGiUap`(>CU9y~Z
zmy5{TJ@uL*1egfeX#oMD=JOHp1p<O2QBegYTxY?2?Cm@~x$~Nu2fTM8RCwqwd21R>
zrx`0Su-MI~a?B<<?zkSQU!=Uz`4Wc-!6xtW>FJik*6zTJrOQb=?axcQ|8$yv%fqhC
z)-9p)>61C%lLQJPm<0V)Iw5aCK#`|e&b<iH_gj6`bO6I<)%Mucr5*Y$rgMG$$JdA{
zZ$EL<1XE4o2+UR+4FcZb+tCVy24vy+NTcfoJND-^q(J0^*J!_G$~Px`qUCP%<D`Z>
z_gZZRpdAOA<v&!E4+^9FPkMUuGZ}#aAd-5+hH&uka*Yemx0fyy9u$*fw{sOUvBRzL
zG-`zHebm&%qPZZ<63X~C(3ecwj=G{j3ovXuQ554svpzhIw%GwsY}hdwd2i@%5(>_+
z-9X&-F}TVuV+M$AsR|MBJb|it%1lq_jyG82%XI+|F(!Ur<_X0M2oCUcqJ|3!TW~qJ
z+DMgGKDh0`c=~ISP<r@LCVX+q;(nDaoIX8#=H=#bzqPki?lQ~TRFh@~-aAm+5S>Wq
z`5{@s9DV;jq>~G1>CM{O0KFeTAn@iShqs@2X9CCtZa<yAjv<Rms$_B<dH-5XNopV!
z>UoXTbQ^q0e=>(1n4Xx;Csij3#+#hIaie6SDuJ{2>|a8)!^FhI*_v+XTqBK@UFGBs
zPq#keX*U<t&vXsFj3iZh@l0eXmSy(aD>JyDauVS-S3`T&?&v4|@hlc<Kmh=Gjsqj<
z3mrx4W%kvwby&UP;}QvOFbI>l>;Og*x~S4_mOhf=nS)FjkXmE!jh`G}PNApK1R_}g
zwUMpa--qQUzbz=ZPE^BRY=P-JMF8r+QP`6Xd`+HsO_fK~GYK`pWEzuQLEXRg%|dih
zlENDN8Zo2aHsrTh%gjPCV#_M8&_|YdQhCFbH4QWKtiEK$oS_1Q8K}&MfB|Fm{a`_*
zcl-6%g$iT*$`1s;(ZM%JEWBJYxT?P(os3RW2C}uG0MyD{$ta$edZxO3nB<R%{2xQT
zo1X`g22P<`V=xb%E1eFzdgGLm2ne7n?Ii<m&Ma?eM8;D5Qai+!Ehaj)XE7tVn^%kQ
z{CcKXedsbjJ|2Qfp_Y)efr$~B0|XF_)+^97UQe32xx@SDsg}Rq>-zP-cj{thV!&Qr
z8!x{|Ks)yECo&!(<!F4tk_L<5oAtaioJJ7r-D^fpc_wsLPDU=l?Oe^wrzTX-F#?j3
zd^2;`4YzPTnq{VrDNV1U+t%_6>>QDJvt)*jGQ`3A(2_04_z|=108Mj>z-7LNVqMWY
z>%diLnU5qL=)hcA#$<7|@ir@8h6n|e)I{Vw{ePsrWmuQrx9%$-ASDV)r<8y+NP{#;
zw{%D&AtBNY((nbOySuwVy1PrdyX#E+#rm&v_Fj8m*LmYBy@cnP&zxi4<Gw$Gxvnrw
zgbd3+mumYm2-x8r{9p2%OM(6qIO@_JU^8B?XT4gz=BzQwlmA@n7pI08x^Iz<x-DD(
zZl%T3T1UqcihX9f;jRN$b>69nFv7P2j6O|)yX1?9BudeI0Kdr4N|@HC&Gp^<qAZaN
z{cGSu#C`b^GzJxF&yL!NH8sI^zsfy{PuLwHrztBteLZq2g2Uv*HlGndq|pGdlr`$K
zkz}k!%lXO40u)l;1F=%3UT7Cj0wx{;C1oZ#xs3={D`+OGi6ddONMlOdZQH6owZ{tA
zQ&m&__L|nKPs8y%5b>EM7QNf*)a(qcTK%Qdr%y^!&;4R)VmYJUJ)Tk5Y$DdwsJOGe
zUx$rhX<%Z}&u%+NmX%HI6^g|~1V-CBXo)XcfFm~!Tc-lD-Lq0vX!>=09xKgfn7L*<
zR^431EGU^J6Aql3JY2<gvpFO(yxma18kQU6918T91TIO0M}=_ug@_^xo3@^i^WK3D
z=B9%xL1di+Wm)y%RoLh9@$r<~`SMjh7`#B+**jqlFu8o@(XGA5?+!X?GLi3<ovU{~
zKuErr{0_)|Nd0ft_6CgnQqI%zuuAjL0~rX+ac}P!yGiXla(Xg_@X_}enYXt$b2S|u
z!Zecom<EFrp;yQT%Gw1RhJ9{0OSvcwHVE747>~h`O$P18_*i5;VV@+!=TZ-?BN?Pj
zwYGsw*I^yo6TS>$mlD#-n8*5D5Cj0k%mG5OH(1z{=JTl|1w|u+bX2Kmd!4<$1~N4o
zaqPBK%q|KanrA{^e9BmHyG{VD`(jzJAG#M7s;a6wKF8DcK{`P~0^BAwkFTSdEpNKQ
zwpFAFI!I#@_xAzht51Z{LQwEhD*8zfF-hs(Y)v?}A1;$qHTe1{w47~u-hCM_)tBSr
zcsv>gM`Yw3KleyPtK6Lo6o}lj;W}T;Hib0Z_HXo~A>6r0RF)q1qC+Rp<bO+GKf5k8
zgD+IC$8$U=OLJ{J-iw;fXcwn|XIH7*nG!O}{t6UZ|2!(3S%)O!JX2)buT40FoEHHh
zyxdMtDs35mcg!~JUh|xm`v%Q>FrashMgYmh(Y&`~kv56M6a{DL@OssF<8$i5<?_x7
zYf%f8#a;c$*xn&~n+OO{dO@?)`+!<^m_W17P{=*2AOXmH*NZMLW|Ng#bUr@wA?_NU
zSM~m-lbI4#7WkL>$)&fE_*(VXd+(#&Nymz{`+gBWA4nqPt=?*0IJtOp5zkwud%-HC
z_&P6hka3*JsGyoGHA-GJH7iFy*)PQKT-Lv{7kIqHLW;xMe1;!5bDw}lkXy`Zd3k#I
zfR?}ei|vpu&h<^d>2{cX)$W^>O+WjK-g;kOv2B)bh{{MOeL`}qgN(V6^NAE%d-CiK
z-{sr_O&qOG3FIp@bUKQ==x@OhK7jf>vs5*V;ke3T+KS|j2X=E$-vDh<cJfUo?Bx|c
z$JaLuLJsL_I85&;P^Incj^jzha&vN2V&qp2JYwXt`15G-c%|St!+jGA_Zt&9yBj~q
zZ_uhh!w0FJzg1^p0bB3RL^F1`&i?aT2Y0PD^v*zH>0F4pjb&r1uI^^1GEHA!JvWzB
z0=qzx4C4YX`%*eJb~i<GMcz*uq{k3TDl1ip%PDNcd}5Z|UO2BqNRBEOWpYu1sn@+c
zxS%v?)>@^<8Gg5FJ(m}eLppv>_g()!`>5~YGtSPonO3dt+37UB>r#(*fyl#;0a5&e
zt-BqygU6czm5h+3f&$kU_*cq`uN4(T@m{}o1Sz*-#C)vq$op}>rbbk5aFD4nom|mr
z*(VU-^ofc{ODewR5ksR&V)?Sl+N-o}WOQ$Huk}f2?%n<O7HSI#`{z_%(BJ~D>*s~6
z*P&-@R1e~T2e3_Dva)wO9g)(ggw?Mwxu;sLqF5JEa2O-XWAb_!hDJOP47yZtOiTzH
zE=O{W%RoP&k<DfEau3(@3;wsF?}pL6ZRT5GUkm)rk11~IY-UD<bjI+`possfMV0sN
zd^Taz=yLeBMa?1x3s)ZLm7J>5dDB5-UTz@)@KfW`HO*~Zcu@jJ;VddI^Lw6Mmz?~3
zWZr8nhh=Z`JLPX8x+UKqv|QI#*9tUh<dio`MC{{!>0aufG)12T_{YY^GLMZfD=pVF
ze-Q83;~U&ts6q|idvt8nJ#ZmGL;&;92{<+&>ALj|4a?{*E@y|cr)+<`7E1zW&$vmJ
zIzsAMAp0zEuJ)DYi{>V}rJx?Io&}YoPyfzjn;Zo7f#3OLD=WPSeGX&)@<^l<V=rN?
zH$#c^O3yZWy8Igr_bv9ESRx`y2K7@**1GjJR2`b^r;uX5C%jERy1IUTJ)JC^w_bX}
z9Iev0;<GBKgp9{a@P4cW+os|<4BQ9DWaKiJ>lZD9$d|rxH6l+`tFHp+8t-ncqkTU@
zW*;_^KneEFLyNL6h!IyH(o`t80~}XiY0IgA<AtE?U)i=4k>%o-KE~_98{3Nx`+(bc
z_3Zq8lE^+>7W4Z}!|jA&aG70Pd^k}XgoQ`3zw{#CmVdRYr6jK$HGb{nUgqgpA}jq+
z{Q*U9$u%3@gghpM*?4z~RnsL#;>6Qar=8Ajzwi5@n`-{s6q!rCg$-3%#j~wSvnD*Y
z<dl@75hS{1O$k(FFT$a?rdvoLqDbUpg4`hlpx)D<p$XWZb1zjkg2a!m()>03`Z<jn
zV`}Q=7I==t;nSX;!kX`vc2?SuX}Hl4e#-hykTNIdRY{zCjWwGn7MuXjRwzP%sDVhS
zV_!Q388$YKutuW<VG>ejNVt=no5A8WqgSv--=mmD+CJ0uz1Z_4VQe*+E^W7I$%Xd~
zS+}6_;w0aK=E-KaJiR6yFWC;RswM{K(D+%{d<y}B3DF?_*w_R{WJGA6h}Absto0r7
zOi&L$`gQ&Ndun>49MSf4%cg+`eY)0obY)*%NlUBgBuXpS#AKrBY{D^5DG291^11G|
z7s3M)LJWicM`0x;ft}^YTFW6yb4S3H)8+On=I7?p!sey{@HC~peUv80LVX!Be5wwp
z5``Q}T58=_>Mpceire7`=yD4>_g~Nz+5M#R%}wTqkYwe@$2-HL%K0g+uEp_%lebV{
zQwF-=Q|#j7p<o}Rt>)&$#70L%{Cv;CBCCSD3N;R#q}kC}M)dQBD4`;ZocL=&<>@Qb
ze2<}*U%!A7#=uO}K+j9QGi@)RZ7ew+^y{*@rBSX3^MkX$#}Ob@^$7E5X=u!s-qBYf
zdO9S(PZ3SGY?9Z&$NwzQHdD)SY@h;kRSJ%4PiY?evw|v3wK9VZx~30t#7%{b_Ye0M
zP0qg088|IlZbNP^EP!?Q`uZA}r(DkaS&QvXQ>Av?owB`D&?@WpZop{!EeZ~8_@+x%
z*Q0hV3TX)G=yY+h2bc(sgb4|@W!BeU+kl2ymJ${hM}nwKPn$j*Jd7|hJv3M@&xgJk
z$to%-Ia)ee0nS!!aILp!e7HXl38r`TZo5rEr%-CVAYjHi&t6dzshc55Ew08ohd$QX
z$}CVrhlIz#BZ3N&N&82XGPuSLn~@xY0ubuK@+rM=MHWL{w2+`MFf5CrSkR5D1-ZyR
zxjnI4zC5DAWrYmrtC)Er7N8)w&vZp!B*5(^*XM=HU+&E+sEQ%nOLEoQ(P^BlvRelt
zqv+I){iX%A;d30e(0u+($jC_A&3V|5XmA>_Cb@hhgfbe;PbSI{A*su&Pkr;Am~WfD
zbst>BKJeV0eAKUKp)~+&C^Q~!W=it>2u0c-(~t8iB=3IHK+c0aic`PXb+C>wrBkHk
zsJ9CX4^Z0U7Mzs_>_&Q(6g3*oc8aKTb62s;JOj1Pw>@AR3j}yx+Mb<h?agGQ72Hki
z6y@b+-&)^0fv^EoV<T;FaD7Jy_3|=*n9+PsWQVY@2yhl^s?S|lEl!y32rA8RxZ&J(
zByfI)+f@a~W9&Vo=fQyvz=e&9$9}w!tEhy5AtUCZvmC`~mz$kE1XIh$*>ts)HHkq-
zFm~^{V!E?^f3a6}`1vk@bz#Xe`y~`7EQ`}cFI_ASPO(;+4~l2f{hKhO8&qB}UlieU
z$L7v9uvIPw`{V2%JoE(6l}>*FJ5O7qGmsM6oSeDm=fL;3RGFSxIRR?)L~ajAF;ek7
zLYjzac3zf&o}i#m!|m??ndowOTg1-);#nN^UV96td{FVrAU`>;AvFFeigW2?W@}3o
zbWPg67&2`KI0qxg$9KNZ*Dx`zQ3?8F6(t9IYMt(`b2G%XT#njx8XH$cf)G{eCR)c%
z4|C+f@wB<rg2JV#YsFa62$3@}$P^{@aH5(Q{>BY(sXgx|Jm=KqunfR(4&d3enuTNS
z?(23xU^<!C6x6r1HPc7{{`XyN?BTJo)s2-C@F0O#v4WWeAU3lkq7S=$P~<5j+{kIv
z%8gn#hr4rfWQbpZ6o<HknEOOy<#z`AX6uz$mi5fcbSfgpkkZn!JW~@uKz?#n{Ho{6
zba9L6(gzd$$BXG>pJmfeej}Tksf97QPgkcn|6r%{sPy1sU!&B41t53MCayzxrKH5;
zSWPFoQfP{PR@*%^R%B$9rIAn~u;C4Cy1C8W-p0<TGNGe`dOP~^`|(n`%-g^pfi~r3
zJC{lyr_Zpkv5<>PK$Is8SY{Q~`CGN==<G0~E+-7Jh$$$^^xZ0KJ5z>Y+kYGQ394Kz
zw=6bT5Kdz{r23l6%FE-f?n_}Blzb`<!7<aK5#``yJG^valwl}unHn0JZS#Bw3yhz@
zYpL*C*72#NqCpwq>MC;uw;W={@a$i|-{UWNO(#RIX<(oWon#Z8xsgnejbb3$e+=rb
z+ecxsRL8R>Cnup`uTq*PhS8<Iw6s))w1@5;fN9&W%-hAh%mya?jKt2o!klGGHj>*r
zfKEs9_fJmzJtFt^U}vx2piHd)7s-zM@qS@p&D9n7pjav@fQ=Yrae$9mU*9l1zP^>8
z4iz=W#GNs&pidV_`0~bN8Bv<wq0YS}inSEX4S}Dmpw4b_q57rj@k}gB6CsZTswNx?
zZC*A#%X=^gjEG&1phm<JD=CiaYKr%v{_6hb;pTi61V`{YDTM#L$;Uq&Dk-t(n3(Bh
zHmrcp8HpoMD-SCh-o%q5CLu*{bZls7a<r_pIGRz1A4I|Ci32R{zFuvwglrMLis89A
z6u>n#{j{xTQIwhriTDY3!f<pXGyZ|KYT_)tyRfrmqOvfBn3ImKDf>sifm&>gN=#fp
zyY3Wzmpe9~w#%W0yC)_FSAGK_ADOqL?0Q;VV~XVgqGHkycZWKr;=L@?N?!RIc^NtO
z>#eXRF;05BF99%w%Y5!a%jN2Rd;GnUQs={!;aw*oZ*bKm$v+G9*_jGrM=!|DbnT3E
zkNzN)*O7r4gJA;iUD(HmRNe)IB0<p<4-yQixrh)vMMZEVK}s3*F#?|Rhlxpxh-6e$
zMU{kwW!2pzY;J;N)s)v$LlF@Tv%QHP0!S7Cm}@`+;|Ywx(Ki=+@W?|GBO~L(CG<>y
z1nnmAsbTamDY)`{h*$uma`q|6WL2yJ#3j7o-kCc4x&=il0yV45!=vks5&al4iuux!
zXz(lh^JmS-c!RLk>rNH+Wd#*y?Rm<MF8==pOuep=KnMYVhrlmPA08VfE2kvP_*zLx
zGx28(0@FDRoK2t_H-saK6WEcDdwRqt3&Xmk+>*4Mo$r8sJ!X(=eRbmm2e+FmpdDv@
zM@?46{$yX{5^s6&%2b_DCB&z;HXx0}FWA1ehL7ya``O+$5@L32ate5OBV0;K{gJ5>
z@VM~Uth{#FB;USTsB>+~An4dMkSOhBJ0;|*&OdWLe>}BfRi|-;N%an1IvH%N4G%LY
zDk@H?I}3PbZ(-Y;(*65w4Uv?vS}aKPe}fNb|DBx++ET|jxZv-?*H+u$SU`LQ->_RB
z>GE4K#`Ql><Vm<<>?~AJR9^HCJUu!sr)MHz_wn%o-^>L%I>=yxpa}44r_6w`taN{u
zTMS6afvL23JoY0~U0s!D>>rbJQeL7Hx>9i9P{nZQK<~nK`zrSI^!{ajU(Lx<c~gT%
z@H|gCj#*4z9^GoHr$>j?d~9O8Kbm8_I$+;QW}&|w76;E^OAh1|tgWrV#JPFL3m10F
zB|fQv)9!E)RKh}V)o{eYMqfEtNdqF15~!s#>TIdk@13LRD5>kft{)l4DkLch@><D{
zfOa5*0+IS-Z?DiBStqMw5V29zRLMyzpcy0(YH#1WUW-aEXa4kbj~x>OF6%qkuR(ZA
zZzo&cV?uVp-|_rQsmf0K94SV4Ubb{j!OE6NuY&~E<G%bX#U=NjxOBT*aTGHD!&mSf
zxVe}bWtP|1SC@}X4-bFPN>Uw?jG3Mmkxs(!7lhH!$dZm7`)YF=%+b*c;v_l*jN(1L
zzTX|oA|n&<@%khrbbqf{EYzUm5*7hRjm>f^(8O%iQLQea!N91GOP5FH0|TV!^eg%@
zm&0e-*@7J%GoMt0@fkeo+abMcndw;q?#X`W<6~o@CBfj9B?9*}IxadrJ!8JwnG-}8
znu>?ohrfcvDe}n~nWAlAR7>9z)14bXzpDKO?}G2ObvIX+zsSfT-?8x;T0G$pyjwYk
zhwb*~J;yNz<0iW-hzAM4rouTj-A+NFRcFt{K^qLXO}dtcKm*-M5K8#hAo1wrdBLBc
zE9OAYtmvRL!OD9-H8r(qWLRa;j)(&0N4U=c>;EFSGnoj358^s@trtuR&w&MIS}^bC
z5PSAM2z`ESZx1EO$-Vj4R5a+o+k3A~U<fNf|Ml<<MHg=i#LXETV8vCuV+EesiiG^u
zU+r#`Pf4L)*<C8Wu9z&Z9c9UEOwj>_Zo0lf>8E@ZKE6R%I9*=yF~WbW8-EgY(sE^j
zXkie5(YfmT{YF$37n_$?w~w@lIKJ{ItQIZiCt4z2(;Fi=Wks{jt<S*GBt&C$5TLwp
z2vYHA_^VM-`-t557ew+zuT*ic8rTe+l;Z|KKkjnqKFAug<rWaJCJ%8$c}8V0t3m*^
zW-n!A4?!q(Xp{4Q<+=E&pzLyS;kU-ewEQd-Zw&tIttK33BHY2FF4Q|>uJ=nw{A@Z#
z<Svf-!ftQRyT7QVu8Md94m~ZEVmB9F68<}+e;h5_S@fFczks!uE`+c)@%!RJpHrZ3
z6=;D*UPe2{Y=L&wLK2f!+D=Iz$OhoL+_d-4eA6F#l*fWcJ83(F=@OX7=RP=8TVjgi
zdeUkVV}-?@c55}6=H_s3@Xi6I)p@2s+QFP?{loBW6k-qc#9i&|bdSTt(95yX_Z&Dl
zg-VqPjX9|2HalUw`{`sioHfBmhdtEP+?dwNL}+HQRYuVPoUgJ?zuY$QUc_we6eX~r
zk`O!p{Jj$OvZtp99M*vJ3yx_J+NgR%0*X;Ew}nlksiOp3AiB0jUGX@TMz1NF2Rk>`
zu1*NCrG&EwTY;hI&(^n{WqDglu|8F>13VK?Q3)ID@2P?7Nebg9dV|kqwkcjnb<3J1
zm)Tye!_uy*(;RptujLJ}b}9pRod45{4}2NX;SQL5Rr$YDrBNUD^~{gPA(3tBb1`v0
zMM;4+-Y1D9lqxXU=2K^1tuhV#*cw0lj*Cm;IIZ%>DkW^rA~{Wqt81<%#SM#obrzx~
zHhr-QP4iyU7TNfk$YVDuS4g%%xcwVgU~@8aXWkj}*zfoxr3It}(^im!mg{m{o1(nq
z-CC5PbX;a?>YG=HbQ*P)<fM9FO$)YnC@Ctlva$+bS3d=bDPs8J#hL1tJs-s0qMEkU
z%E07++tS}f<Y08I@WR=z8z~GWU{XnUR4DnBZ`{}hC=BsUz)LGH$(RAwNkB;$K)1k1
z<V@b#MhU*D!NP6F^w&&amedjt&>M+sd}T-1lp3#xX1}Hn{1*i8zbVwlAyV}e%{8$O
zj5-Exv|T&}8d<@=CXVCKq$1C<#GmJpUQ+}-C%yzp3x3RPYdoKOA|BMLg1G{x$Hr_9
z?(aZ3>&!~3_gBpFdc11E!EluPFSBqmDQF@TpAi3Zo{bf)MMb$-ZC>OMy3#Y~&G*c6
z{<bb<3_t{kD?bTo?~ICipWIqi7&9~4tobs1JTRlp(@A?iAM*2MKSvKGwbVc_?)LA@
zLjhyOf4u*@Ga_?cnc{hQ5UaABe5J3bjQN2QeW$0Orz4b+^=R)sI)wP!vi<LwV_W@+
zG2q@n*l@AX!D0%Bij$r?a>X?AziRhqowj<|UEIG&#N!37$h~}fK&gsDz5m8`>o4fH
z&6SbTv1Y{vd^^B;(07JhUcD^?6KPKOH<OGxyYLZ7wihuP*>gRUd(8m|b+*B$;buR5
zgu(aLZBG+N1UP#I5njMC%ZV}w3@o+6iGc(<#hZL$z))5h(+CBk1p<=&GhJZtMrwI&
z1_l0qFv;{4?7)6=9Nq_lbO7&vW?FPt?tD`j!s`NB{C{*Mdep!A`X@))|17O%XCeT%
zlVzQyW3aK4$J(#PZ2RM3mTCRAavi2CXYEKe;H`1)S2M}J-_``_uUEtHQWF<1)u!w(
z^Ro+5O0ht+0R&1qYHJM~MwYW~{Y(4dFQl(F?|_qM=_Kf&DR{7Zn;D|0sD;{JynAT%
zB)R_)kw=%40~#MtD`4z0_4YQ9Tti8T(OA8O7h{^t#D~^Vn0W8#H^Why;vcGHr@FDM
z|1Y6s{VO<E(jW&n)Z9Ed>lj@`7o$yJMU?cn>+8>%Pn-6ZmzdQsR?DqSzxRox*FPk)
zvAS2Fi`fE2qGJFEa{!(eF|MFIHts{wUNn8uz!4>m8QzMC7?77Mae7*_xA+#cMW?<U
z7l#!tJoLL71AqRBNC;j2J6G3-!KzV64%+c@c5ZfVxueOkl!JdjMn#NE-O|kTX5GU=
z(05~XqA#YSb3*?`Gt*?%>P?<@+5CoYi(+Pbc6-bSF2`7bn*VM9qI}rikFLV3g454>
z@5n@X`>>gtb$UI>)L8~9(S5ZpkHc#oX6siDK7)`LqwCmr0|xScP-go=5lp^8PM>?M
z9Ty#3$IDf~$pNDd--y9>x07LEVqF6)*m>rg9hTbsvf<fc5@Zn(IG4A;F_HbEQq(FR
zIY>z|3IF)_Z;jr?M2=sC7?Otsw`U`fEo~wq>7<&HKgilw$A)+sg%f3I@(Nx)^9I&b
z@&B}Nwi{b>+C$4C2DBgBT3uQ1`2uT3{Yr%*{G{3SPQwH4^15uBY4!@MDmJ$K8bSNt
z&VQS;Y#VA3>i`5z0jr*mR=ppy^WR^qs)FyNMn3@=U8!?}<rxkQa$t2X4R;e`0Ma%N
z?p*$tF1h56Wr;%^u7Ocs>=IM^<&+0Yz|P7pSI9{j9aCTvo~iwlVi^;NV)hf1Q`N`-
zq`&+;as3LDpUmQ)F8%u&|I<P$_ad&paD{c^5GT7_qUYVu#-HcOQ0E5MKC37Yzk;Hy
za@H~<jY6XThyav4{2KuPDhE}bB%hEyO~}R<9U%zFFU{wFL9v}_FXPB4C@f6rFnfg%
zONLsP1!d%u=1qp@e~Y-4_0ArePt!ieFOi4Yr-$De_n&G2?4apH|8|j0s-6AN(g}yH
zbL%VD9dzS8W4s$;*a4nvJU8!ajv#J|=-AhM=l@CpXw=sK?=k?P`R3V8QIQOwwdsNt
zzIo~$tv@~vay~L;RBG2OvH$juV}I@O8-s7161L`EigspuOxvs<O{`3?TU1S1GGl)8
zOLj=}KSpqHRerT<WWJ{J*^!+#_G-V^!DS`vFb~9R`NBWl?z9gDra}WF4e1L+SJb-0
z<a9PR?TExojL6<*ojfcf<0vKNBkwnmHcW)ZtD7mG#q)>>g>byz<_<k;m(d_D4rpwo
z@E;+*WGe5JLJ#OsXfGxM40E@0hWo)a|G#noM)>oDvBVew^98dF*i7WqD-{W|$$CsA
zdL8J`T<Wa&-kRg=Y)N{U7MHsZQs}UllB{&|xB$FoQG4gGdu3_t_Iyef@Mn2C`9kny
z6t$Fl^H_&Rqi`-z&R*{J$Fa(nJtOvhrYd6gj+T~OtUWrW;#S4im7ke~@M!8GTv@Gi
zbbSBTn`M*N6qu$S;yGF87PW+gynD7Afw~-}RA}?nrrfCEo>Qntz23og_s2{1{k8`h
zaP|FucXr@%kDd8az_%wm<$%bnvZC^vtyOC23jyVg*bc5OP+i@7!pkEKr3rSn2PN_}
z<kzd;AM64PR@3EvUEzQ?vXlEGcEHKGABRoS^1biX_4ZB$t`;2Vj>rDfzQEWixq!$j
z%9b!yJYup|_YUVuN8osPnYYiYTnU**S@W~=u(^kNM~0sHuSG`f@!VYGaI#wWe)LMs
zjO#`KnT0nTOwPm6eq}yEUVsd1CIJX}AY#IAevXAohbHrxx=iRddG>?R<#>91JO=??
zUHR&ycnW-x#{1DxEzTR*&j~+W?a-_V-_3)-2#x*N2Rar-MGX{5agvqKRfS1)c3HA-
z-{t1tuC>NA9W3B%t(SZ`W)AlE7kuNM{#WqQ;M6~_N346$+bki(?_Ew|p~V-_3AX6u
z?HoZo!3<2K*Z;xGtoHwdWftyoD1XlT>;||ZWgfyK!%yZsU@cK4G9Db2Xw-hbd~LgY
z`IXhskSZ@Kp2zVUki!9fL!oxjL&FW<eLiL6Zmy8qalqHR1>5)JIlB6jG3YTSOKkz3
zo4`d!JAHMQ3ZQMbvU33SI?@{`g}lw(tstgB4Pd7}6o9B<OIkr>apIwzuIXfKs(an$
z&jM^_LWb$)+}EA%)R-Wg+vMmx4tn9;9}E(XE3E-sb2UOPL=Ie)KyiAra8LC8GCO``
zB;g_P7I@?6%Pe<)5iUAK?W<=_U*AIkV6Nh8s?C>6zwdkF4meal-Px`n=F2I_mKdy`
z0H)cPj4Ae3Q*I*<2TA|pv}A5x6!5hF6e==zHjeRbTy6?`nMA;2d3%mRE%4c(Y`UkX
zm?YLjJ)yD?Rc1qkuCW|srgujmbisrkig42$yP8J>02D0e_G55>ad_OC`Cz!&Z1YHG
z_zvbJzkg0af%o9l)P95bC;zG{R;O0{0Kby@18;lXW5nJ98r6G|Y_-&t-<qFlBR-b9
z&t`#ZwF30n2Otj2;=cc)*>rD=FJ0Y9OGz^ix`T7L@+$L_Ck@~6I+p=}Ad6q1>FQLz
z;k<};+YSuansB;&^q>4`=-pvVW3u&Pk?+`QI7d0&3%R+%z6WiQsw7u)3sZ4@@Y<8o
zr!3|>gZ`w#OMgqloXQx;E`uwfMSN8k$ZdnKxu>?aqUoM~$e}q_#X3V6V`p+3$Nu2p
zVOmhxVsy?MPjQQHNJh);4qR<QhL;;0#SC9C0<;=&I=!j5xXJU!GyVY^9Bm|XT)L%<
zJvXiwu9<<Ut-B+?#TEqUKTQ}uUUpAkg^Dcri;IKB(>FYcNq+54bm?^k>@cAs&%5Q;
zne<mFnINdJ$ygO13@SndD`!hoOKX7BH#`2FH>n;Z<7t_goOqoHO}F7brZJZarhh}J
z$!n+9uS7c|ocvbggE8R%Wdl4SdXy4<hD<t%1HQ)!=B7NxFd7Ac6CY`yPhYwjcZTrF
z)o7$ilSP`tptu>(<Ia6$g`%8b(30w#U<|QV-gMT&MFW<BR=d`xrL@j?qEOlX_TRfT
zL(Ld2e(ctbseCTv5C2+-u)f|kb~GkRyyyPcccQFE0KdNMtmpkyMQB@_AEK^6Dn=-r
zW1^48-TWo+b|ZFddTSZN(WOBQ?=OK*H&%EKYh!!bW$&9C4I3>I_=@PNZ$;Qfu>iTa
zAXp@@JpN0ReRIr>s0C7Eudh`6Ar^y2L|ATt|JN7MoFnL^cH#GLhQh~k-1RyI061?G
z`~QHW^8^`^p;0KiV-imfCub+nMNOsE8la<^0S)E~2{8oo<%Naf<=H`A-wfZ2eQ!q>
zD;VUYMs#uj8hL|1@smcA%YFcFy`f~+qz;<(3-v?+6AMF1o_7J$K_^(w%tgshFv#ZW
zjrGkN?`{sZ)IN@+gT<{kZ^3hS>huZAIxKLaM@Ci!!MlKlMn`Bpn7(sQ_uFFH&3+5_
z-a1_)Q5#o_e=+;|yaDj?DIhTwE0}0$yJ8l7;;X`-Qa@StJuP^rU`56Jii%WxQKd0{
zwHJUVJOxzcRH<y4P?1rPH;J3Ot?OhcrX{a8r)OvGtq+sqXCbX$Xz&o(Y(nY*>Slbt
z%9<i#u~EMlkjosTiNmkBaMb-}*i{h8mSx($0v``sKH5ucvDb2PRPShmB}LtKLb+DR
z9m^{U2Uy%j;X8ffjXph9iy_3T2d2pBkS^e6jHE>k^0H?fMm1<1cB3)ZY)V{htMQS4
z=z8J>U`AEGA_@}7&ip!X5MbI1hu_!J;!hq;gTK;9FwIU9j7ryaB~^!phpL3_#14L6
z;Q>L5hn+I@h1y&AGET|%%rbrpYIy0AsVQ!?cXsRII!vS}k5{YoVW1hAlsNnyib~Z!
zaN+8OArF12*1iN`PlMu8BWz^vU1+E2<sRazrzg>EZ{7l%tp1Adb&CYsdbo#Y_c#(K
zv~NI7oPU_}>C&;=XQ9FuQ*TzAZCjn5VFnYwa%=khXt>1yy5hqVYJoI+l8!kkvD^(-
zIh8wgDPu7SgKLlBm5TB4M+)F$-syC#dGAGyyYG!=wW%(g(o*n6^ZxuQIi9&Qag5fd
zXX4Tc>@aqAr)Io!*=-2~dLz`(*yG>UfHCo~#%Nz1;$_mn&BafrNh<b4&Hd(6v^%Gm
z79rs^T%<Xgvj{w{v(EXK^*7T6k?xwx_xSE{-9T3xQn1?87Ba$`+h97d+Paa>adyA+
zZtxMV{FxdI$Ie*Hp#W{l=UsrbCdB&z9wm*l9tg>0pWb;^e#dq`?J{R<WAG0%d0ZAm
zmf-)x1*ckin_}WV4M}C|e(29OGp+`N>KIl=W<0PU#CU*jgyRh(S|!`ic;vfnECRVF
zHKI$5ZYW`RY?DK(>#&QIRxR|nA6h+tdytfJ1?>$7w?lzA2fP|7NvC-G{XP5lQ1#_>
zG!7f+Iygh9V6<tkFZQsoL#o&Pxt6zEF#N9e-H`~%{KpMHH#TjrH;~r#9}<XtJ$7HZ
zjYqxv^kH3}h>zik8M(%+c4KL+>YK3B9yQA4LCR_Qsh3mz1j0Fbgxoo!@KN0A^m48*
zv|r}$tnW$?z6E=+bBt$Ad$**T1LJpWC|>-m8`v+-#yJ=l*nYGvVbeDgH=g*8R}G5U
zc7L{IECxcX2nP>1^Y77B)|Og5yOY}b<^yY1-CT1-z~_d(Z_wS(j_&~__mYsPZbqu5
zA8QWM!j0t|g0hyuAv}!loi5sr6uoL(@FhWsTFv0wH+v!26DbHDih+VhV+)+6g4hG4
zRaVcOB-_0u1_&i+Cknc*Zk3V1RtlYCnlGj3tWHGzdTxZcoB0J_4XNL)Kma$}2DRCn
zkMPaS1OdnD0O9#>VZo<(uF(hIg}CLi-~mJ;AQYUT8fgMS{_ev3@-b0Retcc%q4?mn
zF&VXTjg`_7r{<+)(dW=w;1{`KFV)#^{_-oBt+Jal#a=YE57x|bZPd=$ZDLx@qZ%(e
z3)7|nblJ)GPQ6QY!XA}}&PCbz=^sy<-(ERvcT1lSlem&)!<t1;B15^3Z@E!Eejv|-
zbGMnmBzxwXIm4|p*g;Y*ZeZfwq+fAwS*UH(SulOcjqDwI(}&M{FY0@)4KZ}0{qS3+
z?^!~GrbWS*D{t>rKXC^UaJSEH*C4UWJv}j}w-3bny7>#iq$G7S?&>l<eQ9fy*!LG=
z43xKKl(Ni|i`7Omn9vqMf-9$dQ7x=vQ3K#**VNG&N*B`$Yppgh0oGy9ve0M<wAcu%
zFSey@w8E#DPzs26DlRFH5cCHdi{wrlgl^&IvR~AqSlRB~%}{-LM*4E(mr-AF+hA_R
z2zA|SQhz%oxUz$bb=JNxClL@hzKgWJWrX48#t48#8R#1TCA^2<t^Jn0`WZvm*VCnE
z&0A@89<BPQhFOy<TYp-NR*wRF_TtWR0`V5?2_Vba7==iL>_)?N1re5AOptI-+<XGm
zylVUmU%k{U;*jlj7)cMG;la9L^gFKDRw^p$<x2%6MU;~>Z_>H(jn}Vic9}*3fWK3O
z0gi|S7->SG>sEGF1RO5FBv}=;PeZ8JXHT~RM6Qh?%jFI(!nJP<UobTfhWyGB{S><2
zcXmljJiWQ`bh)eT=s@W^Y%ql}sneYuz#QQ-$}c&B$>J1)i`Wg7e5cP3<{e4i@SB{n
zVlQ#H8~=`G03HL&x7zn5KIxA5#xzY80%Z8R<Rll|#}=56V&Kqc06FuLY2r(4&<)O&
za;R=bQIvL=Ywo8y$;mb+W`H&bH<~x0Q4u6t{ZJ|HK`DVaw}HNDka)F;7p{1-f!+N?
zM^E$ph?J4E(zi;`UM>njWhd(ERB%jCFs&0`9`82N2aaM(s+bTms{C5BVhWDRk%B3C
z<&B8v^s-w61Q`)J$$8Z3Q^mCkpJdL-PA{9QjFn_w;90XBhbrt|@v#*jywj3;co}-s
zpme!uyK{hi8_8C0SHv|*%)T2G6a<)_hi3ru=qUgtb|o-!s2`DKs#6r|e2OM72Zmur
zFW*af>en6KMgQp<zj@R{wpo{aOeV^Wfi>ynev#<FRWW^a)Ap681?aa5G)2g`tZL%N
z3JRCPTi)1Ru8Kv6&8u2PA=y=0o*<7-?9JAlt>UO8xLEoL6BwmxalYlPtvC&)535sm
zkl3f0t(@+~j3nAqZv^FULtDwQjh(OO6Sb|&XcM|OQ20jaV=ZCme(a3C7E$QCL~{#G
z$Ln!dLPEzOr*s0SBr=v#%f)R_QMFiILcLCt%Y-5!ty%GAJ|@o2PJpHeg|5yNntr0M
z&L8qxUHP!zgG8Da?^^UQ1Ee}ooxPipous$0!UGR%rGpc}wopuSZ2|k^N1zv7LQC3p
zDx~ao*)VB*a#AfirbYQREw5+~A;gDnCFsYqbyI8tLeN`FwB%)%|C@xx4fUA!<reNc
zy4TTNK%w%nsY}k|evR|7$+wWAtBY@lt2T$eds>wd5smxHXe=sk`XcJvv<l0px=NPf
z-we7>C4h}t29i&PTFTKklx8zrpiu!l2<-te0@2=1=P~gbs=%Q7ysGrn--hCOb?;*}
z0O~9~TFnyZ_0A9+p$SOPTwfcq{m0<bnjM=bX~6)<Djr+1(n+|*mnnJ+y&n^muZbeY
z$brk=diq_uc=+)Ww@>d&|2bHS3^zXc(ZVR)?Qiv*L@0FLOOh$=eW@BX%x)LN8>w3-
zE6e;W-<=xjIh!-X&@f@OQ4FS-m@(zu%tw3By)!g0oE#e$vt5ULMd&79QSbF^EL_Fg
zB5W?vV78-mQtSS<EEn_o)vw(~iWSF#!{P8dJGk7SAA#v7Yehf3Iz%yP-l7^pL2N{E
z3Z1f1o>Ss|y3RGY|LS=>TlFR7LScXxld<{nDyrC$A%&VHs!YAI*>dDAbV?|}C|2RS
zt6ep~^7w6r>i%z{&<J+0<Q*NPSqELz@2V>4Q_-HK6bf~=x6I!!YvR~YQd4Z~q2NMy
zhGea<9a8A-obQ1pw&--7!xa|s@XYFyw!!F3h58i%zo7FF&?+W<yy%;F@SC7PaE9&Q
z(JvrO&F&>*r~M}`o^1#6Ou&##u(|y)!!a|rmII8YW_RPRDrh3m{j1p2=E3v7POJCu
zkcEQklM2uyV*g9-J=OcGN4O1}HJHdvh*7Dx+`8aDv$?ZX!_LVhk`NLcFnhETBH(cD
z5nw1`yW{2nO3jOpNj#^oRMb=#e*Ea_8^|0fNQ>i>s#>u3e{95zsR1CBmjhx_r{E^<
zV-gO0$;18ASD^N%SQ$OTIOci`)PT(9c7ZQ<64Ysnz2TLWljgzn2ZHW&w2vQwE%R{r
zv)2&1+u$P^*Bfkr4gd(ss4zK}e|0Dj-Qt)?;q%M9s~)=KHJaz)`Qc_kN^&wc7~C8J
z5}vm#ylj`0&-sLCCqW~WDN8D&ROZ6gfvVfK!v5~M5o4DGDi*}R=%s793L;PZBfs8V
z>@&3RRs!9SJ}`<~49#y9IM)vZq>JJ?NWNbhQ7Mawy+s3>J3E?7L3J*FP#c2fH&@${
zSJY`Dr~+UA=fHYGQxbk`#Q%_2AL{yhq>$6M^Xofa*_yrnL&E!kzKt9~_|gkzE_R+b
z>_>YW>wo|t_T0h$@xcx;!J6|WsTDsl*Uve19Rx&DaMuFg>OQE<^ck8Z&mbVp=z604
zP+>ZlnAo&+fK7fAH!>Mapk6ZXAPWi$pl%TXn<O>a(FT$spuvD{5NK_zG`TF=u8%!I
zA3d{PAH;sY?IN}AKhJ5NMJ`KL3lc})HXWidqI#7w-{69v3~r)Uwe6AIdimFVetBnS
zxethbiv`ms0yIU-LCsqhaQ%AJWxO2K4_Vd^%zo_(Dew8iHl<8TlhTlsBd;xrK~pZh
z5_XiiNk`9EBxFt=h9&`MWmR(MVrbkNe{F2)w39t^c;wM3rK%Rr_|DFpQqoH<(Z8N;
z((vpT$BreoW~M-ml{We#7n_;r9(!@xqZ}Rg{P3SC{kk%`t?uI>{=gBbghBH#F2Pfm
zQM6}}<@)6@63MgnP4zfS<bG($GCCm(v}KyS6G8?gX6X%ECfdb8{+tFWzS6NB$J)6K
z-<5EXnl7!!mMBbgV6m=ORu&&{;Pk<?@a(V73Gtvez(~Pss7zDHp_tkL!t6<O@d&3!
zcgAaV*1~}?`1IR#lgfiQ?~gAFb^tYB)_dlavNB)~Tyk(bm4yQ=)>x&sRcUc5Mim8^
zAswsoeVYB=@d5+&VYCYMQ6b(GdkmD!8MeN%y*kcza|4SubQL582zNdUf^Ri}%Wwc}
z*WK%?nfdvh_$i+FUh`gN;ED`Vbw}quD9*fke}nA~KK2jZt&hFrL@%=~(~?nMld1Xm
z5%%?(^8O;Ai*R?028^FSOE3A4IY^N<3|<N<l4obXE&;tJg+6jz61=~~>{%aG4!WSE
z{En2^^i~5p9M0jEzSK1_X-$}J($o=okZS8c<v7Sa7d_sk1SnO=Md+{kxiJqexhLF0
zf4|i~Vjk5HED7*b?EeHylz^)0wS8*w=Mb8=aO~k5ePUALjyhX%a!<%d{E+?k*eySp
zM5KZQPbP^?U!fsBrw4<hzgPu4eN-z~<SYT6yUJ)L-|X*jf^YAlO5)shU&cg_^Yfgj
zu#X&zoJW!bohHyP3k&|52@RDpg|qx{zBe~LKRjB;L0JwT*e1>zY2VjPYWqT)P)E8u
zHF*46ZA76p&~FGhzP5h;^-L~VO&W8ALLqmM#5#ap44-3tziUwiZNfo+oa!=Nx=KO*
zbsh%2a(W0V5$^VB9Dfn8Y<V)KQ`J`Vk#{#H`bpWL2a}c&fE0@!1p6(r@;mh^%QJ{=
zMlg(Xqc((tGDNV}&z8mGQ&xfVsyXAV04llYkmFNycGxiwrM`?lXD=Aqn>SF14<&yL
z+v5KtDDD%L5!!TYv~&H^YxMbVN155D5yvw#3<R1~U*1QK_e{6;jE|6WFf}ADit1NH
z#U}wk*xJFaaA#sIby5B9y{81Bqeu=p7_AXxbJ0gd*+WT_S-NDGEczlQjAN`_ayhJh
zbxxkbni@uOZwKM41}x$*`lI9{lLTWI7uR(8yY*<rk`UMSig7Msgf+twrUt|fz*s^F
z_-_Z#8@`9lu`+h<JxaKgPta@7$z`de?Jj<*a=4kKBt9CC6~S?6`0c6Z`7XPqTRA*A
zko=6$RGucA0aa3rg7Ga3nf_wQsI*J>l;o3>P=Q?UoYGu>^AKIpDxU1n=`7UD#1J#o
zJ@B%1Ky{j9IsLmGEF~R+)cV#|y2hLRKeAJ?@sw#P-QNk{iI3Ix)-IOxl+w*&DkbI#
zIerKlG$-lJeRE{u+Hgu<8J7F|!Xj;vA11HB{X&LV1u^{gt5*dvG05N*zmZT{Uw6gh
z{zxMu$6<4O32GKGZ_6M)v1@e!$7Fk(gLVK2mP%w7z~GhxW7zQ+stdJ+*!aLPZ}~b*
zNQU>_OuY+t4hHRdJGD}mHCb16y1tYAD!W6svGEXTw7Zklk4o1E?yKhzI&!^_2_IXB
znzexwq8T|NY^J|3bdx5+x7TMs7XiJD&cv?C?fCI~xlC7c1R>(p-UUemM{N%hF&d)=
z(WTSj#aC8{+4}fDTa}h9@bMYLzlJ@A-kkXybXw{hU7tw@6M}}pw+Svx@tuBnS57<^
zp;SRwXE+qg%f;Rz@iW+PQBu^8{$~~C{ii6PwFtsC6T%(sk*_nx#}zPO^0DF~b+R))
zr&xeR1qM_A0}w|rUx&i~6{DdvDLKMb`mCa2c{AhHs_pByg3^B`Q#m8e5w^~+gUxMu
z0v}?jj9hhLnf1~9j5;r`mzoOt_Exo5PMi=M-aYOLgb4r|9f^sFDvvwI!Gm1VL%Npa
zlO`XO^*qq6TMORB_$u+uYHL_sJU8?CDR8q@r;fAQ9K<|#!ikLa0mAqV9Y<YG6;X|N
z+yl&m2!%MKFrSUZFg@OBI_JTXOd`ZXjv@7dUQ&8^Sa1v}cLm&7VD|*PbBGY5dYvs2
z4`zRYI7Egf9@ar9TBq?BI*%6ebC=afB2*);91L<T!XzLrUw>g7Z2h3D{1##I^>lyk
z#3HNB2Mm8c9Y#9T>nE*`m8KzKE*WMw2%l{3palEGi%6f7%?k{XX5$%j5%+)$?a398
z;ViK)9UQ}7r`Q9h=O&V-&ao@h>n9Z6<}~rp*Xq4Q;{=qesovBvAFC)TBGj)|)jrrb
zgoQrt97Ch+pp(a8hhy-qvC(0)UP#{evWffifQ2cKTf8bkQH3aygMv$JvKSy6r-6<u
z0M+SN=#+c{SVNH9>$&Ej3V^D-OirKb_$8<;?%87!9uZY$Fo-Juz9^}I1#m0wYB`(g
zBUC3eb%fZRRIzN1zbR-)O4<ginoqaAPAePPljsYYy%02gg#h}P^rkz$qrB5k(EH+R
z@o8WAWw#?AA5e-2wGZ^wXP4He*ZRNuApOVP<t+Y}&{IYd-Kg2?DiHSlDR$7kcZPV(
ze3S$JG$J6mmsXZ@+5G+m?tPpK2^|z<d}3(OBw&U{@?E6a1FA5uAY77VfcQl~SVJ5L
z)yboW1FfWM_v-}fYYfaza?)mEF!!!qCVE(yk?M-X;!MXF2&#At9Qz-F5%5J#w#L?1
z1Ufw(!s5pv=Q4hkqgjWSHa5?q5opn>U7`hssqx;1)uucCm`(?)t%vuR$eJ|;vRck;
z)k3`+rq!Idd79oeQNqnUjcL}Iu^I<aK0Iuycx{9VYOqs1y;o}#tLqXcNS2l5nP9LK
zaKW4i2agYj1{-!um+d6!odpGf6f9`P14_6rKMcUBEynX~n;jJEFGHj;XkykmPhGxE
zfUj88@bpzUyl+8|tZWLXpHZCdLCT0BQL|5?_+X?a;&yI))T4@4v-aCL7q?`=!9DxY
zi8oW}O$BJ2WdY<(1(zlml@}>2jqun+cNTZiA+}!%Kpurb?;B0KZ8p2wH=A9DhY$Z6
z6`jU-He}opDxeoiXToPHxOBMCaB3;lhlMfM&*-b@;m6e`M1mR?CQ=pMV61mQ{s~+u
z!J>WyKC8^Ag+z0c_dP)zR_x=a>Kl8_lLQFhf(JY?n<>entZl)#&U0YDBJp6Dh1oST
zL)~34(=!qs$QgU0hG=d5jXaEvoc+eSyE^>_dWvp+^oPIwDrRvLQ53VaHs7TwjH`8a
zJ6P&6i$7&Q4Uu9v&di8&Pj$(8lzVsvxcd}7coruvcA+1F_S-4OxB?qer-V8-v-JZf
zVLcZQJ(zJP$~wrxwBb^3DTbf)&^aEE@a<;XU*;X!dlp#)vW&T7hy%~y_=wL(YRVc_
zmB){#Qd#+nM!k*4h4$1Opfd61e}Z9p5ElNm!Ij+8En*^#Qf|9cR$Q8KgX`e`N7hgS
z%W{b}HgLN=-lv=!(qV=_fn$}7OuDu;ETGE_X4iPPqjv7<aX6p9o68yb%q~>%{8)&_
z6jqHQU;%U_ruTYhMj-6@XfcnPuZu~D8{9jU>K6u^6k7x}aoPquKR%OAbl_3tY0-mG
zB%3cbp>8KcB$sW5?u<BuI3}Bi4G8d}yFRF<S1EuOta$C`){9JA2}l!L9Uo4z^$SjC
z;ATCLwtxs~eVDTVD*_jc8oAj@LbsI_eEMz&3uPCBy~)j)uqM5V2@Zo4-Ja+b=*Vr~
zl-DG18DEN;P~nl7%>$-H566}-Eg6~^nBfSVSS3#LQ!4L%`WDQekaQS*9S2tpf!&1L
z1a<in>t2(L2kObz;x)0p`cgEAo(DM#BJ4MVbyDm^tOFC{&%ccPDr-CXQb_9e@S=(N
zQCL`vp7aT3WQF3zLOW9J8&I%}?fms%qeIAg;HrKty4<t((IeTt7DG5Z5jTG@|A=FM
zYT;se2)16TJX6b?YjBdE!hAjEy@f46!Q)Nb*Cl^2w;CUNU!Z~1|CuMI{V8YrZZx@C
zr*FMOS8HG2Y#YfNM#x9I^S5O3og1v2Lj3U>+}}md`Om-06(g|U=ydz3bLkP$Pirrt
z9?Z|4WI^M@A-e^{*bnzy5#@44mG4G>E+T9QUW#>xv%ygyLrn!qISuFG)dy%EY`Hym
zI!>pxZl}&7&CT|JQ`V}<rbiWQDEyZJh^z#$)WcEHuwn$P8R;NUuPaB$s+fKM+w#(=
zV`@n4{Z&B`1U#O;d8zewzNt@Q@q?B)X92y|+?<4dg&5sCx7T|TYQnE_Ojq0W^pUM?
z57_QiMZied?c8{u=e((j&55a+zK;dmBLDA?r_`@9fJcI%P9;nRx-0;(W^b2m>Ef@b
zU(|MnEzsHC3iC7B957Ao|9(xqIcwYap%~QeweQi2lj}rKY;4cY52s4a;>OlFg!pOF
z17ddPy=Ju2Z0JR)I-WAwn2NE!fzY9rmi18xI6k9_XEB=zCUo^`<F`t-GSbZYN;Z`S
zcp#LYyR69pzIp4E%uO#1^dys``1@TG*!Tz;wDonMD8ks)9Z>naZMt5+e+6b%^=&XL
z3l51q>3Rm&EnQ?Q<1{65trr$$8;s2pPg?ip1_Gw|X1-`}IZbaa@kkR136Opt6_X%|
zVe6C$aq8UKk102IhDv&Z_M3Fii=3}*ceaDkGyFG@eO=F%JpBBFGLl3ynne0|Wghnx
zR~<u>%vJ-D%q&sTu~~WqU@MwkvswLopqHLz&B-EW(pU6f69><vgg>lUDU2&9<_N|K
zrzEckM1h%#O{oe3LDb_1$e%WG9j0ag95t%yz(HwVhA{EffsuiZ;SA%oh_GzR2T~g_
ztWg|cYP7b)w}>(MwW8wK5iW`?$CbtBs|$s>IXO2QR{`mle|GEVb3$}#_0jB=%3X#@
zVKUF`)x!pS>+WFc?3j`oJZ1+fEE*A*PD6!lUcuyY*V`Sac0A()eErpL`0wHE=Jf(B
z18(LY?nQX(;a=0ma@zI#5<(P{XMl2YDj-*E)7ud=M793xqXx<d-FUl1hdF;9D6(Sf
z^bopz8RI64D2h5@=wZ%6UxP6}tpWmD6RkAYKz`_^0+p;@1Zz%7c{C@I{NTZ$m>pFq
zO?0}{N4F$G?o(W+*x2Y$Ln=VfNruaYmm<vhDRDaO6{N}Lg7=)f+xPPtuimpV)wjjY
zy%^Uvqn%1ReTX_D29j|dfMG86QBaR`8bbo;J#|%PJLSF_RUaz)0tD|(^wmea0xb|_
zb~jrhQN6pH)i`H55=q7(E<a9%N<nsc>9j?u%U{o0k5U0T>hyL=yYz=!08}HiO~NVJ
zd;y)dMOaCkr3wE;0ZG&vSmoL-x7o6KG|ji`>#tw!PSuY8I6{M)LSiEaAP1t?tz!Wz
zOpg@rkjS)}NWk-5tKKa4;G)X2{ZRrq8Zif*yAfb&o*rQn^-;;>@0CqUHE^Q_^mlNe
z^EC>H1;3IktR;_9Q&J;&fhZ;gMk)KkpPO^qKCKkDdZO_CeqnwJUIoz5x<?~I0R)D%
z%KS%KE)E`jX=>v+;KkZ-OX?m0`jS2dCJ(PwU}Y^wL{r>PE+aS367#wTc<%o~X?P8N
z$^ICZ$1`V3)cx{3%aPDn$lI$6=B9cHFm5w%dT&Eb_CS|mkd|K*>Q5#C7grqOe{_EC
zBVA3x@*hOb`wcjU`la8Cwa#_mvV<S-XMU9f^uIG7d-gPej-HN*@rC11+*Y6s3$>`_
z`G7I3{UrK|6JC7Ui2VD0wcU+X{z!Q_04-I&*x7GiA%{gJl(hPO$a&aBXg316OHkK2
zt1lg~X0U^OGn{E3;8Vlp6vq`_oU`RBg1R2@+Cr;VPFfzx3Pc6aU$UO7v$YwNiBvzw
z`@IQlr-i>d!7Rw{Q&Zmc)zMsg)dwTfU@&3pM3lsrt0JTSGjTBwcbgZmOtw~yfrp+3
z*IZsk_PkpQegx@cufNZ?4&XaX2$B+P$#{f^#>yS8cXK@NfU}NI|H`rH{;7A9!x@UW
z=TB3KL~d_#XXowBhQ8CHs6yuPNs5@w9Bqq*`j|&-rr^-bUTSrK`|6sW!Nl<wuG`4T
zUB`zYnMWU-(k=JUvu={AWbKC(ffeCkn?G*0N5zf+jD7fP<^sl!7?+|!b^-d*wx+C_
z9W@IB7bSt!0+NePal>ePbha!Eyb2=$O@3}s-3#<J{f#99N$%j}|JRtsQGY}ye06@!
zPpjqvD5gU%)l_Oy3)h8pZ!N3bJ2-$-6ohu*XOOWrw&t5H0((Ro@a*WQNP>Eo-zB^%
zcj~b|O$)wSTVqh!`pi|Y@veZlTen2L;0qil8`-)+QixxDTq1yRTnz+n7^2{c2~!6Q
z4%9|P0;1cnjG`&*D}0px4}@CQFlhi~xZ`(G)X@pfw=0fXr_<lRiGyiZ$)2QUW^(3;
zZQ~7)T4)7LbP}yjj{<At@?jo~L?8LpWe<}sj)POND>gs3H}DI|^?~TqE<7@kwE6x_
z83hOJew;M#-W5|IcyKTHkK69`Lr}LqR(@T0WAISAz)zLLYBF~_972FqMOc%RaCLv5
zwCF&~W+b{Xn3_rfmlg^BSz<6ihwR;)NHZ#+!~GSu2)zaBGCU{SqL}3VC1cOM_?s}n
zbkdm3?HdjmI#~X{_Ty*V_<F_Xf!S}PfzssH@)ygMlmawz15*IT`3gKTFv?L`Ro<3_
zfyc7AXlw^|NdDh3pFll7V}dc;CBL}@j_QD4l3>1|9TO#AcyGeUb?p->ByR4<8R^{K
z|BXL*r<x{{oc~MClo!kOVf<Yf^WoLZ_O=2Jx8l^_$l1roa2EmwYR7=_7y1}Tp8C%4
z|6!N~dCmWH^8%*T{|tofzH#aE_^oU5JjJDbq%Sbm@yp*0Jn-ZH=}*aIJ-(YiPyf#!
zsNJ*RCmDOatM%`!jYpeTLhC<M2p@mI|L_00!SHgM^1n~5fB@%e&g}A{Z=xo<t?=RD
zutFh3PS9k8!u5_|bMNL+IL{vt%*^nj=meBas1xAzxRWwr>^2-3ADTPgMufLUqM9dQ
zCIW0Dx{X0Fi1fWU>2rg1x*$|!OZ@CUU0E_LU~2zwVV^p{e5cXI+Wrj(Tb*kH2(&4p
zPb2XVn*JZg-ZG%eY;EIJ0g+Zx8l<E|x&#EIOPW93C7sd@(hW*VNOyO4cXy|B*I77w
zcAR&g_q_9AK8)jxJkPV%y4QVQ*Y8qLl~3tdhGwg6<S+_|4u^v%%cxz=FH*$7_Ls5j
zSYNom_@C70q}P8n-bYE?UU;|2kLnK}l>jzd7>^rmVSeH=kE&o@p6_JQa;3&xo~h#V
zesq5U@Dp&AW-XO>4;p1#XQSrJMNONrR4A+3QuTin+6A)n{{ubNPX7;mqp~#mEH8y5
ztKAf2e}MHm-IMsC<`G^=aJ4F_T+$f13-;{)+<mL~J!(2S9&W6Ye>B{K$cOZbkn3lE
zzmmtd7CO0Kwk8#No6@`tW)zQ5ePI0nKMw}8|2P}CjUa#!4S4EasCt*}r6>?;Fxk!C
zWJ_dyY;CvCr1Ts#jolh7$cH*FGNTU$u<7;fnz9bmHMqV^bpha%Mo6s?hOw-wn!Kv~
z^6r}GujnY?7I_>Te8jB<b7Np2S!@{)GRQFfUaASa1pssz10y+GuN_?7upH7Dx)~kI
ziw%4NBHa9D<Yc-S7!l=w-3e-5@Ui{%#R+C#RWBxRXd7r(n4Kf+<j5K3rPmziqPbC0
zm$DA18Rp~yN(E@10GpWOG&}Np=CqO;Fb%rHwVnMew)yKQa(gNPKEB>??-MLz;HbTs
zD3=-b|Hgi0niyAk#Z(F)_P6!5YtlR#um)VT`_yp7munh?|GwzXg#Yi&UcXmafZwa4
z=F;1uh)+wCo%e1n3WH*E9m&>G=UieprtY}p2896x@%%t~0)Wya^IWB(0al`c;AN3D
zJoa~IBK!Yk0dgD~`L|y23lV;NHTy5|AXOVUiPE3!a6VqS{$ASc|10ISG8=%s?k|pa
zJN7xlAvid0)w<QAX`XsSk3OIMnl06dKMljBNKyNYyb7EiHf5!e`g+5mCn>^F(n=q}
z+qM!D4a}vge?BF<eSZ0dSB*qUF!a6B>Cbc}4Y67AMfV=#w3G~eQ(aY6h_tdAl1K%J
z1FV;ome+F?prmxaM*bV&3|_b}@Bfc|r)<k6p-__X*SGk1z~u|Jwe3GmZ<P{pVE=M{
z`(E$l`q8OlJzrRR(#whR0Yf3GHPeTe;=pcbd`xaLYdwZbm7aroexPlx%0-GPyo!?P
zdf?Vn#goPS`_;A|Z?ehd`fXz{-_!E%yhEfkg}K8ZeSLfgfNhJEXwbOsaMbzrT=2V#
z>FKpfqekJ6MNrT1|BdGz=K22>>|ywMn*d~xw97wckj$MQK>r^IsUbbBmETwnuYl14
zAc^T2oB!#zSpp+4)_%1$T{DL*$Ei%ehb1@;xF6j=voi$y%SWUqhd@xMxeL^j9YCx3
z*H-|ehmHw`d`T7OGNBwLQAD(NhiT8eB~o{MIY4xXT74Y6!SZ*1YA^lYZkt}QosY0?
zyzPx@{f)U$tasU~Cl6JQ(r;0v1=fks0|AFwj!%TLvMxPo(7L=V1!N^C_zD8f7qWxp
zQNg;o6#fcIeEbsECD4C+`GtlEi`2!v6pN0O;=j3!^TmnnU5*-`c;U?lKu<{j{s31V
z`xH)>m*8>#O~=fUh2;BAab9s&XKZZ7j8_C9cj#(O9h2&-L*PUh#+jIy{-Yg{o+}pd
zF}U@|67$!D%)!=gYP+?}2A3$TBg6ipVtT%_?s4#)!YWuf`FUvsHR*uK2pE|zw59-(
z`4ciiqqR)UaD(|D-{Zfqky0o^!1*OBMud9gGjiAaFF0g>znnt+Y0ERE@H+9I1>snc
zkM<L_B#&`G&SM^{3Vy>|nm(WVT!|*;(H9f;AHJ9d0LPB@xu*J$|0i&S0QZ5eW55_S
z2?*5q?ZYkmxw-}?R<z6r9iD^RrW@_WF|{c8Ps`j5xcfAu_~ondN!mGpGz<`74kE`x
z^fB!+FvI%ZQlWqI9>7%4rOY42(vFc=RGb*!Ha5&Dk<ZR!`KJ{oePQN@!uMpEu-${T
z)O^X{y$Mj9h(!UCC}8;p5BMf={Kp?IWJ7^~r6P7U6)b=(aFG0Eh5<w}s-RW{K>K=^
zUy$k)EI&T!@>TPoLRLtVniLi=QBE#?cW`&%Z0txTWq2n%=WeWK9%z@AM?!uLk=D3z
znu2jmFCs6#49$%N_9qbYB&ec>-?JzoM!?k63~=7)L_kfhK3lynK4vO|(fse07ml=M
znJGNDTnH|<)cH{@DxniCcL;J>^tjvsGM8z3KJFT4)Y_A&SY`Ek|D=YoE%U8xoqv`2
z9O^ojmh>W29esJfF6eISC&rwuLhpLBD?&1J=MfIddH<Y2S%us2jkevif`yvJ1Wt6=
z@)#JLvVlc67m^FegS6D9ODFtkW^OkZ^o%a80X1>MQ1vt_oya5ryZEl{lfyK76=YTh
zl5gJh!HsT2d{OgzE@yQ6&lY_H3@q|B{m`Ssk<l?vJoySyHJw%eZ@3_~V(=ZM@yizg
zk!hEF$H{aZ0+4<=+oep^w0Fbj8r&Dn=8XU(PUu7-9JjOmCC3tFzRHS=UXlhg6LZbQ
zZDXu|%^Oht1_@YXAdqSh6gGKQ1c=vtNQf#dbH0CECR{kKXU^ifBDS_JI;-nbPMr7b
zF$&)sHBY@M`ERw<v}8xII#FC)_kKou6azC>V7pa$N&j1_OX^!uV^@N?Ewy^Wn|+>6
za2cEIPues-JJfsjS;TNG@dv*U;(McNvQK|%*Z<`6=PAB6-i5BJQ5>6?7nMMi3h+y~
z@YHy1a$rMGZamh+%M}#sv9YniIBc&;iz){q5(x|$H4`%Jp&IF_NY1S0>a&8F-uac<
z$P67*4i1NMY{bTP>iz<c&#t)4SN98IuYQr2thU+t)%PwCvf>ExQv1HTP85Zwdnq~F
zP1NTF0p6}}jxzPnENiya=T}uq(`(Vu3*sVmRy^eSSxv)pR;zO`Abw+rB=OhU=0;SE
z`0)|hP455eR;Goa0UH~Jg;_m|NVM)>I&2S6<r|>{g(uJ&-`&@mQ=Oi_@kW<bQ9(#9
zE}nM^EJ8OoH@{p%fc`hJ(bvm==4SjWrSHE0*k}agC&u&d&ip(kpeFj_s0W2_?*#s5
z%)MhxQsVAE^QHI(30!FNUzrimL$KF@gJ*(~I4$daZQ0j|i<gKoXT1Nm;eK9h|6kMV
zHU7N}J2L`%{E1*tbz(%DGlhO*jI1(h<c|i;)31;CBZM=u|90v5_L&sKL6ubvO4?+5
z3~pMn4UT*>8ASa+{m*O1&MvU34$2fE8d_Dqrr9k$Y<nDi{^OVbTOvk^fsl=ALK^VH
z+U-yCuctmdVVfsTcIm)+k;SC#-ueu76WC<ruCbqSjvw7fY9J0ChWx?9q;w)Z<`p-*
zFtY@jH#Id`{$J~iZN1baR8-3w{a4M+a)8(5zDvsS&J5@p!5oSTfga4ci5jyE!8}p!
z8WJ8IX?@)H17PD?(J^olM7q4Gmz|ZSz*u=%+a0bT0F0f(L=^toFoY!^AM+WvJ`df-
zDezgXB~_q!`tqJ!yK=6VftKu4cu3+Nu<yj=sn3s_F`)2Ou0(TX$1p{U2iU^Y*zICE
zb3BedkBKC9rsO`_Lp-xrpUPF0!z<<<iV**-IMLDqnC0#59T|ve*G1VVhhCY`d3B7$
zvN0#uW5hS`On;O@AqSEMxo2XrwCX0n|I>qbbUXum55Q-!rNH?YV8*fTsN^{Tifdy;
zc1=Zv2u%inttJ_zCu7Zz?*h1<$Z@h4?DowRHyL;+#|i8f@e(r*Hj51aWL%5;eTzi+
zW!reSk=(~8(c|RQ6b45D7^l;4cs%z&IJd?2?1ZSvzm$Ph1Nb(M@t}Qj$wGU1J+gXZ
zwYGt82<YX6eWVHCsQd%`J@V~?U~L0TY!;K<Kti<xRiGBoqk;ZimBlSv87%i>yzcOi
zq%wtNV+?Le=%^1EI6XmxufiI2&vw3b316Clr=VN;_yAHU#_eoRPtQ(CQAPA@nZ@5j
zb@PM}`0zvLMq<DT10EYt46=NFBp*KBWJM1;ACcG~j~&nnopttS<aZ|<aZ&j)nB!UM
z&j&c)TVJkqANPpnF!60Q!khVWp2rba9)&?&jIh3W<4hqQMnzPvZC_hy1OGb}I2;&x
z*uFRPZ{%d>D^~<zyAj*psF|YwUg&=F{rl4>FkqJX{;p~6)f1R4jO{1zXu5V^2vgQP
zTK&@AX`G*(XOz4K28h%1LnXlE5@`Y64z!JK-meB%$6#p5hZ@o}!@B5=Jz^`y;*$%K
z7yKoJf7Ws%8STT{P%%Y0d?WCeLuE2TjdqRVf<*=ZIFsorX*IQLy)}zdVA(STmXuGi
zOK2O!et2#^D!CTrT<nz4l$2+r<Z`vZsIv_3=ij3pRv*tWP;LVMM@jiXbrWbaJdDoE
zjEc}*UBf8oRg8_Gx`B=dKvSR1d<1T?$5ndzwjP@f4c=$-9pIg>b^v&Sgrt}kX}Nn!
zPR+Hd($q~ns~aHngIRxc;LGb!_Q$c=N{b8Kw&XL`!9c}4cU;Y?*acw8S!=341&*8%
z3>fk*(#mNIdnEf|p^JTzt7Cg}hxFUjH{8imWHVmZkMvc>M>e~l)~<b8+Eu=b{7)`1
zg+kz#BMSujx`xfBr}}FM_pe)$S`cZ-?z|o~8W1exmPdP0y}qVY+UiO=pZ;fdT|T5o
zkIO_F!0Y|K++(!LOAng?mZ&X5K5fw+K>s5`!~ARf41IYOF0cg5D&VaHs;lsq+L1_O
zk~bv4vqIC?*Y)PD8*n7W=<6Fq;yDP*9}5GvE6H+Z$PybaHqOYPEgu5-HuwqudhYPa
z=+Am=W=@a?#$tkTiIag0AdTxi-KuJ2Lcv?r{Jk_-1GEP2_sz+F$m_fN5-r9unzolt
z&rJW$GUgI3Z0}_t_;7i6GKiAQG2XPwD<dG#KHaPZW@zzZv94FcLIC4u55zSfI~O3l
zynX?(Bp?=T&^6wkOchJE8ox*}cwH^O(4dFl(%As~H&tXYnX&M5SFQLAE*cV!7~z}-
zKD?%nCIS`vML0B${WSrOMib@Q7!#~V;RN|f`ojSD97#p06#W`)Z6=AIok!WMc`yL2
zGU<CE<Y(yQl^42==?dQBY@Yxk2vC#d6j0<86k`?TlpsoB!0}<AW#Bf~fX|>MEpN-L
z8^JUD1XG~B&AG-hE$IE56pM1^@^UaZ00`~1q2>@e^<wSilfh8<7hQBTr0azK-pY<&
z(jP#eJGHg-yI6#i&nE%4yU%NCT6lEB2C-hCo8`BRQ#s3g3t6rZikK&u-i*_=%b^(W
zVRKCX@N^NMjpi`cTeMQBL3HT3A>5-`6=X2*z6nnVs-g!J4}X=($2+&j=hrwc2J64^
zBOeaxkKz~9icEJK#0++ERGuM}$d8SiaaZwV=AmzZ++3}B$xILv8-AQ<j1CXF-He+j
z4_*-<wY+M#FZ*~#*%;yk3Ug|^gKy$u%Yo3it`9!daE@{H%%r7Ry@Y;6H%IIc^Se5<
zb9Ceu+(q-o9|=P=;bFf(qA2jBzPupvA{~~UL^xt#Tes-E94}DQTVD?w8=g@AV7@T$
zaA)4ic_2=}Ixsmq3&2;y17_Zh5505^Rd<n6+*eCb56xcD(b4ho@c`EHoVtZhQw9U<
zW<-pfH(-eD;)ICa5YId`%E-W!jtZg^qzv(mO@Xvdl#3aTQ6^EtaA*docdqr5h>B@Z
zw~4+xaaixjjVK}`^8srQ<4eJoH+>k*K-}u+GQ?_V2Zmeg80a6xwv-T&&avzkXGTg!
zDKPc6M9P5_a=yfL)?>bw(<MmmIcnkFgz&?$J7dGw_5h&5(l6&;rw~}4pi<4(rVyZ-
zn^0qzA-PfQ&9EqE2qC~r28ORgJr8rt=<%m`T<oiVTE>pzj~KkDHX!IUGBbPBW)MW7
zH(rfaY9w>ywCFc7SoUO82LkjZ0SIH6DcEOtCgtwE08iD+jNLerd4)V%^EG>nso(r{
zd6gHi$5*;7*plAnG?wC;INlN^gZoOs_4ceJE0P38U_0_g45?9iTIuqYkId{0n|(@l
z12-iR430BMhl=Ck89T-S8F}~mfLFwDlje2f#&Lmyy`z@c3LNRvZdZJ2IwTMnE;X*;
z*k(!|xAh)iNr3m^18h>GND8-dhm%X`G>!!&R2obK*U|!|lC=lms{|S12|=(ZTS~aV
zOWo2xUA=l&lwe<K(I^pmwa%&40vrd%yn{^|`9QI+Ul#I7@;a{hj(ttc)^+>aZ|2t1
zE^eXE?jLeQ4iG@<Px)nWc20phP|yKu$@Vch8Nelj)4C`tmjd%~HxsGMo}aDgeqm=5
z&_-<l17mA1Fb$y9P!b$PPWG8vqJPc|_~fXhuwk&Al))Jk4P12Z9{?OKjQ6>do)Z7#
zX>e9EYt)@gaK-P{3V<OI3HttPeB!!5Y@AEh+vs9C?m3J`{uSjh)3p;JcI*%bS-qA9
z-Cwvn1O%_rwa?@77#4*Ov@T+R`|r~Ns9)q12-L=wAf$S!)=d%+Oh9Mq>YDvTYxIl$
zz@6iEe1HGSerCu=s4S~|@Ff63J#okYa2}Hi@dxkjuF;g!KFWU0HXmw1v+o*cX+X3v
zPrkGLz&H9*C_$Ht>m5j|AVH(;oz)!ITW}czmq#(muJ(8OE}x`U_3RJkIqwH~K)T7!
z&JMMP%Na<@@Cr;;p2!iQDJaM{-LpV3`C@uEd~*OOWlhdnmPZRb4{KV87%2}d*&)h_
zKp?UQ<gAZ*CcJ^bV@oi;OdH0<)Ycm)hfulY?BQ;s<)nKn77%oa^Au(-A+dW&uMe(5
zGJ4BYS16`Xtv9Hy$(5I!=FM`ixf}Qn2YE7Q!#cmB7f^!|FgFdPLX-dx2eAPd{gQ56
zc5RW$YVW>0u0JlK(lRv?5%kG~;&A5XY0P?YoZ<jq`B&itANgl5B;_2Bd~_qrFn|%v
zU-jz)n<IL~GmTWeK&;i-_m2YX26ASei+EX~J@LMYepg<#Xn35rrAlHHFd!HvIJBN5
zu>H*s&2L`T?xjv3KeHtVo+{VtF#U2v{|E#RQO&z_J2-@6XM@1FRpzFo9vK-Rp?20=
z83V)jS;~E1=j@!q&;j8Sdpn&9S=av%El*%FN^6y31t)H4>I2!n1Zon<q#`ghwWeoL
z7X0~=iylO2L`TOavsq_kXN!o*S_6LEd-D@-zU6Y2O76?G$jQk(NU70i&&7fhsOU71
z@v;nE7&AV-5fK*2&MnlaFnoorOvX&I+7eA2wphc$w*}dFulZySju94r_p*;<PN21(
zX-+zll=m8~|1YnG9+&H1GWUwvqjOwkgg+X^>^x+zT6-UFzAiLthP|DQ8+yH=FD_fr
z4yRp5-r`ESTKXIN%dgm6Kg_#ju8KSzBIrCnc(N~2et5CiKmFs%Sd2ZCfSB3adC;Mz
zmfz`nS_(bLe99~@`eNbC2apO5<)9i!p!h{?rLH5R`&itQv;Q3R`e{*K5=wygvWgrO
z^@yE0>19#S!%KxiodY?c%md#ZD>9J0e%+n2nCW`k+!kg_ZGZ4>up10=6ToT1z=aV5
zANQ$(T%VBcYx}3l`PBd*J1+Hl-7GCVJUnD*W`-F^$X(q%*0c%6XLh9oni-Q<t)Zc$
z;lc$JZI<%#es(WBkc#bD#>f4xAJeNbZ=X?8X_ijgWx(Gb_fgZ;J`jy|E=U_+oH3Py
zFe?3M^z|rAei^`c>K%X+<#Tvcm;>s6oA%M-=3s10baOc~z;E#eJuDB>(cEqY(w!4>
zfP257UlVwrfN;ucHjm@DjXL+m<*pSaY|VlV!PCn$KR=}j<b4q?L7~66gKgqE1o#6`
z^bTqLd@S_`>0A9GNr@`2Wz3(r<LUz~;gq*`%Sw!!WLMTQmm5LkoE782ez(etZdwiy
z5Di?GhVOy*`+>vKGm65Ld>?j*^ey=yn&)2;E9Unr2-wB%QSnkVV5Y1e+1bOKgqVU6
zLu0oU#3S8ik39FOH>6qzpvtU|u4ZQ{DK|kFA^091KtQFs4-`#6_gX{!G75r=S|Ymf
zR*s3ytVlrr^{>q?5s$#9=jahdaBRG%oY-qdv<^@tfPw>x??I7p5AWHU8yVs0TFO<`
zQ4X#b;Gf=XH7iEry<}53>?AHcBYQIRBzx#}wN1)LI(6E|>x{N29nDw!1C-_NBS1u&
z7>L`{Hmbi`GWTmO6pqSrZvr{SkAe0&Y7mzZBM|s%XXNjTQ<-ak3tIQqqJjARwA(_Q
zfV=h|@!yi2hKV5=zQ4ky6-2b4k{zE*&doW~5}Os(rzMe}y(gEAR8npILZlOB`|BU0
z0lU4V4P7ltbbki;Y<p~n>1oygZ)|~mbyM#o`1Vyj0G|xMP$nqxA#CoeRqc8(o-9}y
ziBXi>GW-&XPyfty64;|EN{Za6`QM@waJgKAo4gI4gqYZ_52SRAEuo{MV@NEvje!n8
z3`(^&#<CA%JqYS^)63+Hg-NQg7wTN^LMDbUv{GT0{K}UK;`6HXW-AWvFL*XizFWv5
zT@jE7;(-^f9@~ba>%QNze+^{h!VcdheS85C{zH2HAWfet5Vx3Zbj!Tm2I7|LBVXG`
z+Qt+#1RBXpe{?Xay8_VtH+bDea>S73kmK!k2X5$>-!>O}=5%$L$-q7h*#WeT$2$lI
z8jcj9-P8oQ>S`#}pkp@Ed*fY4|AaO|=@ULPm#I>|^mYImau7lNlXSX`#CC6%jKcA@
z7W5EKUs|1p`$axOa!-T(QS?Icr3=ftk?F@Tp+;4oemT}ts?zp#aZ@sUEDpINggch-
zfGc>(piJ1uPfqh!t-EzfbecX>5JG_N6)D^)4y4Zr?7Fts(dE$F5zjTOse&KtUG@J>
zYrN1psag`f9?a9m-6c%fbyjT8Wc<MB6{8`o(E0`JKq(`pI07w;t?&9~u9r`xSel?2
zGtK<$uT4la-hwQ4hT+jot8@}GJPdg#+WkkhVGT!wth7pGLNeo6doZcde;e1RydlQN
zP$&zUGSkxh6d_&{7q^2~J~vV6{7hC2ik~*oI|26ca$dGmW)H7P`R3tz_c~w27;j+K
zyzXhGHECn`;KT3DWZ98X2+hP89NH2Vtu<TeX<i<o>s|EyGB@?xZ?|ipj;p=c_adwU
zG~k1LWj&qoD?{h9yuCeBp4*|W*9YPd2)3(f<7o@RsXMt8zR_AP0;bIcjPXy6J<ZG|
zx?x~(l|TwUN)wcZJUlJWKfn$7D;Bp>ox-BiOxr}<>N=#Z#p+9-<b4UrX;~Ai9xx4p
zJCV&8oGtu)vl{4w@YmHT*t(hA8$7R87MBpe?}dE|9EynlOlQ`^F#cWq54FQ)D8a)>
zRd?ULEVcm5uIqfg(SkM)1r}BAdUFR~m+A*Ina9Dpg3~YNalp&0E-CokOJ;7vEcXCt
zI-!d-6(EZ>#MC@DNL)&-@qwbs^4#7k@x5WubH)6UhTni=G*==s_1H+wE}Bj!m6q42
z)E~Uqc<xKs@8+LNb(b8@DM?rx^Ah%q^Lu5G9Ks0&NefUX=S<IdB+{WeJ8xZZW_LfI
znHjv}ak_YlrFRAU1dpwX^L&BmnJ3X(qHn2H7SF0JP-MJhWEo`{nS1zXZ*+{6m3fs5
z#+W2vESLDCecku!FFtI{H(Ndsekk0e7eIe{<-&8|H^{hfHRoZ^ldQ!#qa^0nY5qba
z=mG&jAuMKL|2idHp|@}!i*TODd4FU9BiB3LlL(1nVQys<azdm6QGp7E+cY}q7@8ex
zzt_v_>1kW*Aj3s`j*NbPaF-b#4kxjW))DlB)jGqXC}?oAlZ?D%=DIv{*zi0}uz4_N
zXXh~MZO*A)hWPg)<14EYT02V*mFwl96rdK*sX5pUMCn>R0>t`mrzgbTHQl($+Yf5L
zhM3MF?^8?Nj!|B?+auV$dkn6qk+L$A<O*e#8~oX>$uIq?s}j$3syL!2fNN7y4;`c7
z;Jy4ygfIE&p5rTP<Qz4)`U7Xzn*C;ql_D{%K!%@SDtK3-PeNMY3oW2m*K%Q~&JR@^
zBBmEt!h1wN;T0rOg!sN~TdY&+e#&U#NUBlkH^7EznRD2z=3On)s6o2*lk1#LqV;z-
zk9WK&L?d5jQVNS<#l#j@v#q<K>}uE16#o2KmWPO{(CQ24sr`X~j_Hl(;3hTITXA~}
z!=qeO0E6nDRIK8Rw{V{PC?zHFi#{tkDsHCxBBnTH`7JJPi39=9eJS&ow)XbI#fH0q
zpe^T3!k6IZ?wDy=>DeAVM1hSK+K*q~y4>Cw#~+NkKqk>)u{WC!IKTuKg)EhB2D0^E
z>Dl6n(em<l7DoqLePw#96oW<h^Ka6J=piE65Ry)%9b9-qvUbfrTt))a6p^F!Pwpa_
zxs-1=qGQIa)V(`in7ODK$^VMT%PUF1(>>`G1=A8ioO&e-#CKW+nJ5Nk^!0J&9^v`n
zB7AoG(gM9Ov1L)Xt@scD7*gsWc{R1(^{p?4GFRkvzP<&)FrUmnW3B3C8yU^jaEOr0
zx-|tpZ3X-*7=hqGw%4GDoI$@uWf|++>r|_CJv}9zy`Qhml!*H@-W;zY=!@7&LqnDG
z3de8C;n>P5r>6%aI+}Fu`9VH~mX?O|%|2|h^YL;=u%GKgB27Q#%jBrC6F<VA=c}|T
z1FChe<HHV*Hk19h31#fprs$`vPEH!njyW7}*`k`@v<SOuOsAg2ciJ!V#_Wlgv85c6
ze)_~7cy{BDmdj$QT<v;iKtSLjmBhqURzD>aufF{>g#|QgI{|*hwczrmbsvtPD6h`>
zL{S5d0CTKl+UfiNOZ^1-H(`?Y9hOGZe2WwtRIJz?zR|&m1z(kdjIr_IXr=`^`|KBP
zV4qHz{G@;9B%3REN_>bi4fI>*4vz5TqK}{WXZxSShS7V<3KGoG2N9mfBlr|`tr2Lk
z!O3+dD^ZxO6t&`#GNLk`>hsRaCPX3zTRB-6#Y$J}{m)>2rq+;WRw+rz^9Kx1rO<GY
zs6iAIgye(A?A+fGr@W<Y&CdNY&n(U_Eg~(*LeCmMxwC5_V}^`3wI0nXeX*@wmsdr}
z{f3M(JMU7PUXCDCh>r^X_&A@W`Or==EK*kPGZAjOkK0pCHwjx?;jyuailiS^j61u#
z%aQbnl75Tw+{te3iw{#j7&AIL2<sp2wXtGbR#pg+3ExqfCFr1h2n?QgJ2iYvFu6L3
z9Z1&rtaLf6;Rd(D`$^RCx>>`GnU($rQ-P(@Sum&lIU##0z`8Y${IcLfj&%Yru-P+d
z&D-KcY-7L&t%anFjac=%)(e)gv=nO~sUGYq2#lqXn}ZtlmQZHVGpl;wjd>+=b6w7w
zYinyCx(99!1WO3BS^mb8%8E4TT;j#)Joxm9P2$Hhd(Pp71s<ZM!cv3o2*Sf(yP>j~
zHf3dVF|<x@%Y0MV1o>I%Z6Bq~*CWVwa&o**&z9d_x;~>_0u37z=UWpBinqmt?8gUz
zSP%7f!KyGo!>-b#`~E|v`GKEx{n;$65O}Ez3@)}vmv)2^=!+}6v>MRIiPtUh-xJH1
zFOnlqtR^`69o<ICVxRXy^OL|VjYOBzO<=z4qNdK)ousN%hDMu0!R}dQ{U9M?Y&oly
z?GKYzLZ7i=V`*uoHlNnf{GD8;A4@f7-AWlHD0kVSL=1jbbwXB5dRkSAhl8ZP%3-qf
zcqgZ6DvK9K`FbZ9?bp*PEOmbVQ9fw8j7mPP)W9Q#5g2jsmz<#wf-sbDRH;%T3KX1S
z7IViJ+{;^EMLhEtlfXyM?YbduXI8L(xNHOG4^aKH7YBvb)+!B#!(iv~E7sv+F&&Xn
z<Z;?Yh1*eUbWxF2bD8x;`pn!hVb_`?&zLEdDS3exEI3=GAKdG7fQ|k7quo{*akBI2
za9lLC)<gGdr@3l94#7EO)NK+$@^U;w;xi0q9%xc7^!<>?G=j$R5o<+iGHt?Gj#=th
zI$t7RR>)4AxyV6zQ8;ks?(R`jGs}I4p3@P6b9QxoMv|Yu%Yjc<Yj;8(-+yo1i`gj>
zxpX`9!Xjs?t&Jij<?{_2jku!9tm(GQR~f5gBtn<;)b#Z9EVh;&QAq_%REwyP7zHz4
zUS+|KH&|HB4(HBSWOJz1@c$U0r8Jm@WrSQksh<tk@@I$0g?|&qs6AI*Qd>TwpM_qu
zJNV>d&S94xr&ep-9Wb4?*UmwYC@aBRED*}_a2SSy;^0Hd5;%=f-17imMcf;OXR0kI
zT6K1|$6@^T`;UT!*Jvkh&kh7K8ZQ-+qT;P@V-`PiLCt22zdz~iEeS+0^?9!2S(4L3
zCw2K%jRSU27=xMX+r#M6x3V#5a{jK8q|Y+_`m9XzD9(ZQ#iexFIqo;h9}bjc2Uip8
zoT$lo?33=kLPV(A6k3<pVxuX$yGGho-p%<hl)UTceL*QA0(XS<#q?tg&3<fRe6M4}
zq4DOhdU50WAU8MlWTD?a2pF2a?q{|1_eanltRQ4Z%}L^R%E-+({b2ZV8f|F%)Y8rl
zTuJf*0_HrQ2?t@b%Loekjs*k+Adih>s3$)82nV<PN*M>I#afKIt2Z|{XJccNzXs$0
z5mdLsm5+_XP|&=il^E<xV6)3RBnv`BWEvk|uE=(#R&#5*z4dHqu}l+crRFon?Np5a
z{$8bhX;w~677Y!HRe$U)I|Py={OOa5>}XrpTdH@+uA9rvy^uVR{c#-oLK2x3il;lN
zWldLiDK#4#+jBVELQ((*CgSh#j<HD*`qw~k<Joq-h`i5jKSD=yx#WfwbMR2$F&G;e
z@#dz?e{#s;X!!16AbDeAd=Q@txj}|o@*7e>=qr<7`_P!ep%r;6d{lIA804fh)Rpyj
zlN(*WPVI)qH#{9|StcM#l$SYOKD|JU(}(S)q*b@nJb;C*CwdC0@oqEj#LhW}PbTE7
zxoG(@`%3CUgZtsf;Gnj4ne9NS$P;P~MhPJS3B_OZL&QYXl+0F#VYSk)PA*(aclY4F
zF1UFSm|Wf+4mQO0!*0=G^Y~AUg@ZJ>UB(ZU4-PjR?8Z|cTSGHAZv6ZTuGc#eP!5`j
zlW*;|Mpi$5wQw3u(Ixz>AP<q2{gt05D(UI?(sXkmQSMmYTS!1}bE5^<CMZ9D?c^<D
zu%M1Ln{;t8IKw|1noOBwaHXb}l;mUxzU+L3iAq3_97Re@Oz+tCErg#6^wUH6_+t8#
zAMRUx9xFlV94ac#N;76=7GG+s-5s-qdR!1BF~0avlANsRbbLyw@k#fxNGp1LocPr%
zS#t5u@(LLPm$wND{C>tpOvt$8)=t4iCB``>V{C25ZT^e**Sisg2ay1gqb;h8^MQOX
zGASAZk6@u0PL`43H<#n-TQ;Rj*MfyAX+W~0pr&@lSYakC3TlTB4N2m*OtoNyUqp%T
zcYTSjYi2A8j`7J!9%LkWSzvNzprWCwv3+n=`s97st>vYNr_NTT;^hGaQfCI$Yiur-
z`M=shu(8QtV2+g|Pr~#)^3u~u%i!>w+823lr%OQ=j|6i$re(MNlT1pS?~CXk_8EdR
zCR39-BV%0WjTjcI0(x*9rbF%%ACG)cxrOc|Cfjx^2C?$Votk>9Md_{YiTg&$$#IK*
zg9{4wjG%po;D`Hq9uWoq3yXNIQH4`#Ue2-L*DRn?$}S+NOmf<A{iq<V1=UE*Kufj+
z`5M^oIHb9(14C+v8oH8p<=l|ykG&mAPC>@i-y<k1LPkb+;o4UUKA&ka0T!?4ZuMOl
zl6(yX6XTOSBHyCZM>CaX!j7Ux#5Z)sc0o9Z)9@?SH+<Hj0hvgZcXN8hlB3>xdmIBA
zPgw=y<KnmKzE|RZ^Y{OO^qS2wOOLshg^7LHZf$gE?Gt(8Z<cnWvs3Jnh_PA9+A6jW
z%tm$9>zbx&T`gQq4!*cJ?YbG@lZ2*drxq4-<FH=XlRj@rDGp2bZmKez^p70Jh{}31
z#{WqKD@D<Edhj5ku&^v@Yy-@tc32wDp>tDL{P_JqY1iJ~j#XPF{+iJ@XowU(FwpJj
zC_6j<ZY?d;rYvi?`kCAP-Nn2gN;C$Bz4JK)#4C-R+7yDw8_jN1Trsh(1r&Hsome_$
zrhx(ElDV3iWY-&{q%Yver+rfbW|IsfBfz346iTS^u<Vy1C@3e8YfZpzhv-@WsV>Pb
zp$|CfC3FL{ta?`4og!lXV+4fdRA2()mypm(HYhH}PcE|b)9F;8Q5W~MgHIdX9tx7%
zsGf9g`j(Z&BbmH#d(`<H3RVWAe-NUe-f+`Nh*ez`cH*VX;`9(sqEAj<iiclnZM`gD
zlkmYIs+>6+!#x&bK<a*?Y4-&!HahAvDFYM3s)>FHQJIJYSaojR(WjTYQ0D$a-@XYE
z6CWabIK7_U>2pyQ5P-Q2da2Blf<P0mj=<u_&tY^<1*vYYQ8vA$ejL|<>QiHqlLsuS
z*XG_?Q-Sna<`7Z!-y1w3CK^R1-ou(XTSy*-tvqVguVW(C%B`Z~S^`DJZ#c|c?k+Z^
zHlr{P)Q-YEnV6lC&Z6E4#=$ZLH-fyT?w;<HfVi&S?tImfPlC!d4Gs5g)z%sZ^SFmg
zyp9SAm!$?mA^5Y!PWFO!cG4o<;5B7KCFSasS|1-1r4Z2#nsA3Nh=GOAfX6m;Fp&>(
zg}O$_NadoVK>$?SCjpFPI=YW6C0*_bc{Flhvx;ctOapN*v|KJ5r`wW|6uX8-(@M$(
zkYc`EBadf?BWP5VZ@&cw0`OT`72%XJY_GD@IIK5|cOxOY+Wv3oP^dypK?Tf&%=Rli
zJze1<L}3w8KF+*{!&Z<})!pCwrC2%ZJv}|WVcE2#<f7BpAbjSX^ShfvD_Pq=YZ?4)
zDA&F47n-j!x_nfpo`H<Of%k36$X4GN96v3+(gdyzy?Vy4Y|2HZYI$87royY!TV2yn
z)fqE;b8~2$11=}6C_H!fPT;<9c6N4HVfUKTt~sxxxWDE2_@p#`MXzRNCc-p$V$Yp4
z@@io$yZzU%%HQ)O^Xq$pL0KSA=H^h#Ye+dCdwN>;$1_^nv!@&!D9Il@T!b<3qLZS>
zwOz!uR#sM8sBz1NuDyvGi#}WMfqGttpMQ$D@TYs!6BfV7r0ML%eMQ%gNJzHK<u{=O
z;WX}PsjI8g{b_QfA4NVYTbLitK#*|HX;@f@*?&a2I}*?V<dP~rL4LZChukxDI>UsL
z3I%4Lv<Mj)XjV#ca&lTSKy6l=G$woXIMDjD<wc6yo(iI{)S})NZS)7L?L!W2Z+Q0@
zYuM(sUNa*jp5?t8&>-*D1#vgvO+E7J@EJa-ONQhare@@DXq_6Gsi~>Ey55~IV+#lf
zfK)af8{0%CvxKT4s;5sDFj)`g1Es{%hYd>;6UH=H2=d!ibv{BM>|j0%5f7@)rko3k
zNPUxV642-da*;?&tgQ>@K`&>~O<rDZiC~GUgn^;*_aX{1ieGIHHO=j2PxSW;i->X`
z7<PletKQc(j%Kd+`!^S2y*-+hZBbFBvG3N`){U~Vo4NC)Uc}a-y?!xhreg$0fsTeY
zO8B1WEfe}c(}sl-28OhyB{zj+8yQ(Ma{lItV?S(ESeQH3TcY=eM!KYPQg-SKix2nl
zaY+Nq7F|#yZEZ`>Ti%c?D}8-amAm`&sYSF0)bsC5NR&Rc!BV2fwJs`$b)AC=4(NC$
zMrH%L@0X^f5_qI?KosNh8W{G2qT3G_4GkmsTY%_bpEpZ)SC6rwA=}|@p;SxDQUZ*C
z0J!4L)!3VZQ+LSFLMIsIT(arvFUQZzoivO4lHdFpRA1=brsJP!u$M<g6+-h6WSIY?
zdU%&dsVD<kc3GXlt1X`JS~xtEA7fSviuL#RAKpG4`u5_I8508oUtfRX%`Gvg2yD7u
zc6LYNcZ4KzSgtU^!p2@K#Dlk$6Ck?#QG{1|c-rkj&zcP+gEInogidyVT^TY(^W8@r
zc!YpJ0JSyJ*6#521^kU=X=(5^`+p1Yw6395Gd9)YEhs3+U=h~fA?N0POG^5VxOrsG
zxyKt0R1lul72jf;ulx`RR3Y+bZ`oew<mBeY_9ezgN0NM>B9MHcC@w6C?0gKQX#<}%
z+$K)9wFZ;mB;V4KF}IAAr04B5uXZ*|CF|?zO(PTjZm=<mU!~UoElOr)q|?(S$tB-a
zG_(}e%csk9felIOAbatL3!>Tm9Sj2a?7N&FEZ7qIJ9+~8^?BeByj)fyBgBJ)73&|k
z_nz1@jEzNgYc};awF<VkQ&LlbV?;(#C4P>guI<pBc=_>y1(HsckZ@xXV(dV%@s{!(
z<&WP>?`MaL1)9nVTLB>H&mwXG2~0Ji5qW#5mdNw3Xh@=TbtzPkC#4lk@pZQX(_i;>
z$FO8@KrMY?miKm)!`i%o)z!a9ACr5Y*q}8|C99*8vw|^x@^yhi@&g<~+OQ#EP0jh3
z_#rsDVBPM{S}zs}S#)2>pPCsJ`#y2>vS@JoYxQ2gO*kMV9?K~3qb2*%$38HC$dTB(
zPVjJZkh-Fsvm$?Z<-8cr3a;Nir|%gVcPlY^y88#Q)U!b(E%D)z4jdd@@B&uOV^sV<
zHUsm~FSaL)^bA&U3<7d;Wkp$A284tqjyju1SI!Td_MqXy&nF>odz8Sw!h|C~nTUgf
zV>Vw~x!XzjaC>vmnUaD6`euvEt%uev-|2Ixru+fK{_lN8!zuskkF2b$(J0C^p&)k~
zLA&#$yBi%eRN-;4V)lepgMoxvo9u=LbwTB8e#Oa3%v@A7G!-U;0X&M#uJ7M99&XXh
z(o#!CT&7DdG9+DCeYyUXikI?k_xe`vnF;bHXd3Xfv=Y;jle4t+^t4Y`d$E59e@d`+
z2Olm7v0J8J(>U21Ao1Tl9r)V@M(A?_knuC8&sX$*CUu_FJ3MYiE-qZU?QLzRHntQ&
z*gD20d09U{3PM0E?HUF;G>^+QDNP=zx3}3|A%W#>X2t>L@`0Z<{%M}Me)}jYpE=cE
z(fgzz88VnHiw%LuHSpVT%scc%Z6hOx{S0`y6aTk?;WObQU+#1Kf^HpR({#k>NCD_N
z(y+vwGJlbf=G6iZQ??^CHYzF|{HEUj@tZ7wE<dT0n(Ey^SC6QKRAF|$PXst^X5!+Y
zU=hP&z-5W()a;*e50BsKOFq+`0`T$P{nLQAllJ(ZHAVx!=J<zw_E$OF@^yN)ZS#bV
z3;A~X;<z(}QB5$E#E1P?`vdesEg>32L7q%94QXU7NsH5Q<UMtbH}rH0S8VbJU3o>i
z#P{s=L~bX9LQ2fzaz0_<UJ{M!x7@OxyzB9+6XRFDT<ln1=^FFAc{69RQLZ$5Z16Fd
zbCh4qU76o2POJW=U{vLcM5`oth|V!I%h=zNGU!iZ$RD#}&-}e`jNtT4imG2%64$KO
zFwZL>0WTXVC=fm%aQeN@Z!to=`bXc&mhE3qLD1&ohF{e)M@k-aLnkcVofAQhtsQWv
z=-smXymG;GIW+Euy|SX?hgdpB7^R|MMaS`mnP+gI&7{*)PbR2hRh1~W%CNUM4WT2*
z?<9R~-Ryq#TXD$my>OkZoz1oMba9(gLv3w2bzvmG(wn(%3V+KALGsmp+L8eHLO)pR
zot>qcwC5-(c8&#gHO8|V3xwiv+$~e2q?B5_M;eKyg261zX*tQV;gPH(BPk61pci4E
za4168m#j-a*I{v38WiPjuskB(J>NTr$Xu@JH<cH(?{;^;o#%kohuesoN-)_G|F3nn
zh2)s<x)S`5lpJb9ZaFc%^;r1qc3ne}@pdM0rJ51z7L)$6A+EPSz>g2Q?ciOJ)|Pi{
zp4=rrA8jYw^F#a<@aYp1Mifv+D4Xa*oz5c09O2;HBOaoNiOjLscY`LrQL9julr?vW
zep*KAvB$$ZT?{Pg8?IP|Fex+)<`LId2&0OVhL*HbGYB!oyKJCJRcfPp&|2Tgx5jFX
zG)rK95UMOkLaK9#9SBdd^kOQbIfYe2a+Pac4omwy_$SrwjNY%lUQ4XM>wB?oHxVxG
z6j;C6HRPYgdbGTlD826#^HgA+3RD{jkiBW9`*j8h&QIJTdLcAfWUzeCO44tc;TDZ|
zN9`=6m#M4<)A7t+o7D=CsGgsYltb%^IPB)UBU1D}2@~{!E+ZxNJ_v{klepyVN_?UI
zVyGq^3cr$|nqG$5nek`+1e68T=V%S3w`>ZRrcb)?BalYq{;&%_E0XCN{BE?7)R53Q
zN$`n4wUK$-u4xiqsXLl?#UL&s^Q_INj6JO*tDE|hLAqs?YED`88-=U8?^*O2`k=WW
zH%#3_N!f6+x80T!v+Ae(Eg&F*k8Ktw6S6)oe=p_b<F~?l?P{|&<njDiW(54(0lhuI
zpa0!}XF>btQ+d)i+UdXQwM%q>8({TP>9GvYP*U#H)gxci4aficA#%Zn5S*PJb6Bnk
zTN!R~OARJEUBIUj$KKt764l*m%1pItiSQ*6UhLKG-t^#PVI>nQ&*hiZ1Ox*Y=QpWo
z)+Z;#NCp;arTP_-XzUX+E!wNG8WrCLY@R0AwN{vd$hfsKf_T;kr+sh~pzD<UV1g?U
zFupjLfnlXlC95K2YaOe$P6-=(W(du8(tOb1rTjHaf`GtN`RkfkLqkfXIX?!I=Y>C-
zIq4SK;gUx|1q&0~hZg@*19SDdtkgU_jM>Yp=L9DZam4EJEk6`nCT5s?*52Wx(ed2n
z>aH))Jj<>>brWlyRz*0+EO&YLZ=<P+pDKFKoOFi3`1ynvO^T@;@O}=fkBkhC#u(${
z*V|lgRtwKDGv<0clj>(d|E`hiBzBcmL;QT|_9z@m8atcPq1xKc$(xkyBW-4bq?E*J
zJQ+3E^1JW7J<AZiBz*><(_f40=kjS;PXF-9V^GnN<;~ia_aSe`Qj`l~t$dj|oRv!6
zq0B)(1JxoEkuz2P*pP(C%Zuwf#?lG3n2N*shvyGynrh~~E4(Bn4pGrSfsjbxlNmv#
zAZ*Hhjv&+$bRiDtnOV-K>L9%81S9-@Op=A471S5xMqeiuR}>K$L2=a^AtP&rhm%^!
z$|xJ_YW^(DgxwD4>Crpc<bU&yJ{)h?=_KP<HTxcl(MRJ0F2_$LYJ!rIW~fcH;O6I@
zK8^Pn(&<eibodEjv+q@bXD6||g-)QF>d((ZNXB`I^Zq14OWt8Dcx*3ArmL&NB>TG#
z!R*gE;@ks&PEC#O>bk*o4+Y2cc5687h4bx{?J{3`#)-lDT9efBrZ&Ut(!@kUXqaE=
znUSbfPYq{vG9{b2nxusJ;j(v>VDn+S#42<~$*bPzE^mT{?&b842`KQrbs-OZK1`x~
zOXEHB`^#T1s5QdMn)~F6?ESl*g)!&RJs7WYTl=K@6O$$Uh8GwY*epYbH|vD9C7eno
z3WBZ<KdO^lcR%ASom{;FS6v1x<$xYJY3n@>Nj*~uSYnDSQR*(msPOU6a;X7Hk=pNV
z<mFDp#Nd<NYMvKEwj~f=F%2+GC?ole9=#B?!)MJbQ-UZ+3KSfjM89V@qBO;b9`l^r
z$v8|%&7)ybbC!&;C__F&e>~(rFX|YX75qx!)#FId&6oHUHx>Mv7nLI}PMkb4otHgu
ze2S#IC*YI%ld%?V($}XP=omOW7^YJdwDN`@h{EHO318vUR*`9?i(YOlgLZn!$?=p4
z3*{?UXc&hp9Y5soEh#yZynvFD<tC4G_$@;t3{VHayKHUad_h1!6<}ayAs-wk$ntT?
z5+Cg^RINcz>e3$}y@WI3<+RW9n)q@T0cVqOru?CW!`^;ye^#sV@5h^K%$A^0sNvg|
z5;}39RMa;-W7pbO?PhlSOq9ylIL^*!Y~zFWC#dAXoa}eGIepaB>@E-I7Y_*pdL|sX
z<7;=&s_*iN+}z{h>VnYa$I?R-4{*<Qi(@lK2TV)tT((d5D;DnxC#+__>00how@1@J
zM7k$dslgp_936dGUo@9W1g<b;+0r>Lx|s+}bYpY#SMM<_bk2X%E#BDSnuJxIvW2NA
z3dtjASy%h4>sct1*RQw4+E~JoVM7#bZH@F+*SA(yu5scVezn7_>*>OddHt!34x+45
zAi0{eYs<XyHd&A9u<6itn0SWV`h7nFv9fn2HGgK>uXMe_&|A;8-fS`QF<5$&n91?t
z!?t1htyJ9rv{{Lj6#+ENw0Iop*BBo&GdVST4jLv?ybmU-+Hd5Cy=}%kp>MsJD4nyB
zl|$=v^W%konwJwiUIeZS*6Q}Q`Vco?*>%j+fTjNpQP#@i4w^k%pFZQfC?}WY*3R&^
zy$0RcjLXhIzLY`Vjq&i!K5Ym@UPYyiN-;dz;2Z0%%LW#vGc()Po&Ts^ZO#7o#y(-$
zo4z}DH3O-Joztt4{z8>L?e<OGnfQ7oC3iNvT}NlT4Mzj4s<{ky1oU)0*BYy%O5DjE
zhY!Y~l0W_Z>5~UH1i?Wh2QEAE^3o1t)_*;x5G%|tU`O9EG>(AF*PPwl78$n{7UAU;
zfMDB^3&F883wKZQa=0~54_se<cma<pz9;ZT&oewd@hK}@rKsLaN^U;a#6XC6BiU3z
z0{8sYTX`(J^Ye3*7gd(a&#LiAy>DVYin_YMmY-apPWxd{*`RFFagB_G|1)RyWW`?(
ztZZ#A!I8i`D~UI-yZVy=(PB1SV>))9lz!j*{?7S+NpuJc35x1f=jvGTxwfGE-V6?M
zJZNK7C4`jp)Ld+QrLp3wbM#6p&rkH9ChcA3sc{jXn6AUc=e65S-`O}Szf2Iv&KP@w
zVG9NU+No)^S{tf`C=*Rctv*Xu11xE-kkVJEiu|6b3?o^093GQHO$A>nGCU&k@NWBP
zX~`jfe^Mb)r>C&IykKYJWS^5-k_c|t`wl|QA%ujybQGvZaPV-%<t=4QOf>!dKDkqP
zl7?TaG(YLWF5F)>A7`Y5kK*CYAW$_UgQA8<t$t>H+_pFnAzh?zH@eJ_>o|fp{)Lo?
z;A#HEV-tFa^JC0($5h8anwT&mD^m$0eJLw`&49yss2O3Weg+UeL{1KU+#e=>p2*#;
zec6_xpw0J`(-OxtW8V;iy?Uq(njya734cPt8)~}OFqA+A0)!EiJzY60F2<fv2Lb{i
zcqUY|Op*S1>0^1}Iy7fUKC50bh#htGtHiJ3(4|D7zuVNrd1|X0iO^=QTP4q3*No(d
zl0hJP)gAADJUNi($WAf)<C}A|4>Kx-_K0X*SV+VR?KX)^y>A*$Gj}HY#Fk=VPgTVV
zo(<T;KzFVMi`Jlc;Qoe=6#9aMZGwl0=ncn=Q4e~=zWWb<|6kSBnX!sk+A?bVe2Nyi
zYXM;|2|~L!EY9z48A-v^0%fq=YI|fQA_9z+BWFTvhaA)Wfv(`K(j@A;(~I`N!_vQ(
z9|umbLU)1QxSZ_OWJYd|aVjSf4SUMU*#IRqC1tzj#DpczWq*ql2nF&gD_iz06${8p
z-2~fU-pU)GgjmmTRTs!BDQo%g1&TywmY!XNQUuQN>||RThIAWI4Ws-GCN%&|QaKj<
zJ>Q4=9ZAJk|NQaH-kR6?nOSMQI{_sW8u263ro5b!od8WqMQN_eqWPu`&Wgr_F^0y7
ztN%7PZhh-DI_euX175A=S9EmXDP?i(u9AFbH3h2?9&?LyJ{z;9Iy?syNuJ~HIXnIg
zvHe<oD3&?)_9f))p{iCg%D)iv7JS{FDW}c^lu8}G$fWA8mY_^?F#ZZ{uc-Jnn8R8O
z)UgiTw@}Z7A1fmuD_zzXme(-)bGDw@Uhm+nFewYmI0uqZUcCu3w+|Oh^=&ocTE@bg
z;2mTjSMwwuwpzJm!D^$SqNB^ti;9hi`B^@<*wZ8|Ao<&p&m=IHVne?Z>_Rw5<fS)&
zNJiD$vy+t*uKesBbZi;}AMlk?O_%rNV>Uyd^ZOoOB1y?cD9`CC8EZeyH3`aQS5r-h
zI>f;_5CW0Xy3#19rgt%*D2oUPfWO3kb!42jqEb{==ACSUEF>Wx9d%0Zr$2sqf%B)K
zQ19iqX`ptDu^RjmBkdXee5P;f)lQU@zI4jw2+H$aL?R!sRU{Xv)?vJ=uy4<KCFmtW
zEZp5Yf7|&A+<sIALwn!7yWJVHydmD`B^OWOLGd`cx)nO2uN_ECU>Y-C-Mh+H9H%KP
zm{~gs^i4fhL{P&%?dU#km5sc(w|1Ovqm*PxgXU*gF0f1H#EyxmvOYSN_VW8E0+p=M
zyDUuqIyE&o{AF@{!^4M~M!j=BSOjW@l9F%o4XfTLcvXX@<u#tDl?7%OSF)H;NJ|Rw
zk|NdjOqYPr9j{MUM2|!BIzlAGCs~~^kABQV)y`i<W3g$Io($)K4o$NBqGeG^7PV2m
zq(x@2X!}KY`dk7&h3lk(!j0XwC`3d==5nyr2{^1TtW->Myh=OI-_Hyra%PkAWr?v#
zM8d9bZbq6+8X6il4LTA?Dc9__-q(r<=mpoAWKR5T1~=dS=Mb!HRw!EJTi|Z)7nl!D
z*9WUj0G4FTGRt~;)ckNi{8{c@wr((E=@8})t-OM~1IdRmzQrLqMX7*h&;UrTal1K=
z^kXM$FUOPARX%>z_%Ogz$NE|Ru5|iDFG(oe8#E~eGBeks(Akv`4OrTHzoVXB?)9B`
z*x$AC!}s*&8h<et`oLwep4>LKN482XQCZ=`4~FwjbO~3#lSes3bDrbGfyGSD;n?lK
z?gqOc(ly{or){4sfLCXg0xsJp2{7am(v1ltsEtLPfgKVN=J)s#5t42ZuiaP<B{fat
zEMao<YIYhaLS1Vdi_2<^gGXspNYL0EB#n+{NMPxB9GH4^za^xj2Mgk+=3cN7|GsUl
zt^P%ZXEwi1;UQG`&>8mAJihW1zqEhCkHJk16a-Ky#c_=^^cx77|Cd$@ZVC;xfdNB$
zdg`$>pSY$8dX$MJgl(>AOaJSZQmNK{dv9A?8xj3XTb^$#vgo(!SFdp561vhy)hNUv
zJUStDWr()o)=c!p5uy`b-?N6nP0}j(q(*dP8_f@bG=Uu^FL(K#dt(52jO!A3<7Q?z
z>3*0P(Qc(+CMW)oR(jvw<2x7XU3ED{%#Wd`OW4tV$%Ev}Z-NNxM5D^0+w`&IVZW=$
z7`d~1CPpwV9F<Q})G;nPI3q$7%%1MP8`!74DG>`Wd5(1N7@m7Zl+y`ObGeK3R;ntd
zjA4<H7}XPI{9(a}goJdFO0p#KuOVefPhdy3_GA)L9p`5WD6<mVPL9)<<*(x2>R2J2
zpI+GZYndN_T~p@A258KpxL&9k=;J+}gss`=VNae|$BBI6l^fb^I{H5Ehgd(?p!wtQ
zYagp;f<yC^e_*Gy>|z6M(yvTs*V{@d{VFy{XnMfs!De?dz8A~|d{tI=*XNkfANKZX
zzhA0;E#`a5;<s9CAmvp4qTB#n9jy!v<7cBsGwGH7fJDZ~)iB1FeLJL3SCr`lr|rR}
z@bglM*+Br8-+21%Sm~d-iH_G3hxMK6%e=2s_R*zEK#0+}w<)y#m*IHl%N8msqtFc5
zy1pOCED&(fAkN+66(1{GX304Y_7a!=e~5d_s37}p-Pb??0a1~X5&@BxZV;4CNoket
z?vfG(Y3Y*gl<pAeMmj}0rJFqwpLe}$@3q$1XN)t(`Qj&s!X5v6&TC%3YX)3s#_5%T
zJ*Z1z%$lvi1D{Yc6CIH_?2$`uSA42g62IAKdA#?lM;fa8%tdCTQWf8v^Kaz{eh<gB
zH}XqaL73*3J+uitd$$?V=KG;eWU_%Xf4}Z;>CkQT?o5s<8azfE>fG`J&D@{-!gLtY
z&`UA1%Rf3`U3{n}uGOej<|=7|Vt+GS!qRLw-*`;rpzRcljK6$((TSiO92JimSokhX
z+0stLY4w4t36z5Z8yjfYLsqGUgbdQo>RkrXRrc4bnZET$WfYi$sg4)@_v@8ElA$iH
zfx&5I<F=oay5NU?Jt7HL)7cLDd!Q72S?i24W*uDdU~Vh4kR#k>y6B!Nyf!+c!{+Bf
zO&~=<Zs8|xt+^q7QxkTNXs)f&s#SiUH=Axh|3oInv2G&!c%UFFgu8s&j4!QZ?`XPC
zp!Ie>vhA2XL4$M8!`?(Zf^nx6s$l+Tkr1fgjkh-MtUf$RP7W2eU+J%L*1BS3!s*)`
z94D=1*qcw;*0$;53-Ov;r!vhs<R>LYzm+vFe*>w&WJVk-j?krJ7;0*hk!7GR-?+H*
z4%^d}tWJ2P1%+=}a$-^6{+#VrtwQoLWkhJyVgPj_qoaNE@I<QSz+GJ4X0TZ|#M|4<
zEQi}YD8dX$eqbD)a%d)`#W+5U_~G<M_S;YwXKYM@Z_Pr|5XIL|!-Ya`xZTACW&lt!
zxD6~D7=}=FSy*`*Ev}8hwE$;gu<|g1^Wbz5UWu`#tu@))U-2blnW9fd=CPol@q48i
z`ULvcoQB3DM1&%wNHj*q%I#^s0PhnAY3RK3cE3j8^f@Gxr*5hsUEVIF1ee<vsR68c
ze;TD1La=<E?)Z>kZ;z+Kl;}P`CWRBqu#t_8dR#?R)I*~ox4Py4@VSaUeh2`c(&|rs
zj?|#hT#-Kt0oz3pGlY82-6}k&#<3qiz3FQ>RByb06bL1DcIhl=k_%ym&S~FNm>RAF
zrZZAQD4Hx<?**^(%?bt3KA|=uD7))ITPCmPht>P4(d{}SE>3cCn(U!VM)e?ui}_5c
zX35uWk1r2rN*ew=@{lNp|L3XxfU4Nh*2)e}w!{V%wS^nB)f)@(#C#1Rbj*WYU1rnI
zf^`^hmJJL>?Cn>FRK9RfvM2~BDVdG3CRWK$argP%eh{f;U0e)zw9Ij;MiFf<2zzl&
zoN>q=oR^#V?s~5sr!z7>gV9*Fg2io!Gbtnok<NLgSfgO~&wNAL_5Fo_Z%aW%r}5RE
z(Me5XVO<i_y7r<Pq=@Wj{`68&mJ@zB_bM*=eag{KwN;tfG57=$5|2Yf=B5z(Y^Ch3
zG1&DnV$;d|kRZr|j_Von=jX=0FMSA}_Vja_|N7ulxCL_BOx@&DS6rCl1rBOnC#H(1
zM`O{ulga-9meR|E%H+fqx)DBV#C^pSm2ah<iZDDvSf0x}2R3J3bf=6LFWe*-m}Q{%
z{SnQQV`+;m9uOKEjp8LOP&n}-pXaer9!8oYNdm2!@!HTv^58Xnl^Ns~W!~)FZEcYR
z=G*w(qlbZ!ul2jW^6;R$yDN9-|Byx9*-`$4=2_|P=z;y@Xy*A=a?eA#*gFh;PoI!_
zw(X1MsG!%WH1Ixr_Oz9NRC%AS@t+%qdvW7T<J_yNpp|-yjm?OGA=5B##^2bOkZ)LB
zJz2Ju`qED>6;o!c^<y{3m!y;*Z<W)BhTiUIHxHIqx>h(?^Sw!UEvH6~?yb0-9nh^3
zXPSH6hC~nv(d3Ir!W&&q&f1+D;8nOo7%$#AXj%-d)?VEFG_?Ohn8nvs(En7DyDAfS
zbYPBf>mJdf%1cjQ_?>>sbCNwQ&zqy2^P7I#=MRf|=kKlr@A8;G;-t$9k^N|m*hl00
z0!?@$89Kt`%wp(D8oP&TRSHe&x~d&-FuHpQ2-@69TS4txS%7{B)YkMz#4wqH!<*}2
zYsu{szH5b>6-9B$sFF{dOnVee6L?>f^NBU^K1sNHmsD(i?B2I`(?MhS0mv-~>WU|)
z8BVnWiMzrb_tg!zc-&sV?DOhn^L%HybkeCRJFeLSeU2BOqsX8?)mo+0WqyXQ#E;X)
z>0l`>knMP*7JLZ<lSm1+pWWgnL51DsF?SaaM3`y?q4tMIZ2NQ{93#hw2z8yq;!#Ci
z6KZw{Q$57beZ)k+#EctXwkQ^*bKMKAkLbPN01L$GSPP8`qStJ__r%R2os7}des$#e
zktIDYD#%M|>}-J+!|we22w5C9xG^)|y-?gsywKL&zSU0qw9j`>9n6I%<HzZhgvk1u
zXTYHkN58wuy>Amb>>LeiLHxs>cnQt*mXSEPH+Wpc3pdwC%dN9s=W@XF$kMENZ}VsB
z-i9@yN)e$JE5v0ZZ@sUzS{sEAxJp1XY5w0=@tm}6VLRiO;jBgZRdhntYV)Lu)c2GI
z-s$O!byu$|(5jyZ>I?{`>&nZ?NoNef2W9{w1I6=#LRGS}Quwtm=amlLJ6+usrkhmn
z(<9hIp)>Je#iA3F6gytatM&2m6;V)C9e*a(J=(x8^75sWkhi>&lC<3Cn5YN17$gzM
z0^;HwZ&rs78Fl-XtYqB(x4~ewgcHws-)vpHGo9-yTfg=WTc(__H2-R;>v_|R#SnY9
zi6!Ej|9Oa(xF%v+Zf#xjMyl(^WIG+zo1P_`@6UN67}SIW{4%kw*`7t8%d><Zx1xsk
z{Q8#D?3zLu6|K*C1Q<!WI90J~S4L&&NkbgyK_ZNi{qM(UAFO<NL@s1-eKrv?HCZ|$
z#KHp~lBMfbyV=2Abdl~^LcuOmrPZ3#($;0?@GmLWE@4JvT#bp1cHD(@<_{m<zrXne
zH#x6%urntd^^h+e<xi~yr_RM_v#|7i_X4j^z=-v_mg7u53_|=dAn4o+3|`^i+Y5bs
zOYk`>UU%3H(~!~G!ocv8wUurF{&RU=a&j{5#3UgMLru!e2e)<i%R{8@%^LZMe~(sy
zAVqa_^!b4wYp?Q+2BwJzB)dZu6^)PEk3B^Cg>a%l!#CnS%lg`RQ76moT2fkU2`Y2Q
zrLu2XK>}(B_4_fL+b&^2_cp0jqbSN9Bcl^iu~zRyhZdaXP4UJuo4OxzvQ=Aa>{M)r
z*K<yucg4bcZdtAhhNFcH+4EA%w8r5A<D2d8V4|H{vIoxT+R-Yd=Q;ES(XgAjw$b|r
zLI35G1V`_Vzx_Wmx$4d{*<G&5k-EycAE9F3B@%r`hj2dFJrKtZ&nIH|OnL8aubec9
zK86L6Xg#Kkuf7}V9Wd7MQj?jFjgwWXO{Ag`&G2*{wnX_w`LrRPRR+qdzF6B=Rp#T7
zkQ)#_7N8c_P)lkmer-ti>U-|&iPhZOyICjRp;@I}YFw=r2j7*pU9D8cdg{h(m++Tx
zS%sgs^Sk!^m=<F04lfbnUa_9l2B(F3nMDc=;$>vEX3=>fSTzNG>qDWg2OqIAOLQA=
zT3Xie?m~P(exbXSiAxO(w_ygJeCyA7dhy4`C(qT6)9|jPEPbQ6uhKG!ez=kR!5Am}
z@zjK@t#Z0o<Ogd0Z5XDe+QFTce9-kZ4Z~a6pU8lil2Y{6jFDlC4&2Z~UbJ}>v?h<8
z)5VsA>uA4#s!3G5A0B!GovquYs_EHvFd2Un7ISRUYKA7U`FBBJikPr?L6LuJn|Mp>
zBhD{zyUM={6Mz2n9m<8ZhV8;)dFloHcD<~$;f@=<Npv-*gQxvcyb}epK&vPikM00?
z;w3=WPy~gz^9V!bU6O~ffiX_AT?8|>q?cxoi%+TN>dyw#?vuHLPV5kF7FVZV&*TIR
zpiPRIAS4z+mTu3;>zD06&}qE|%|l`B#S>o;?Gkp=BNYwyOc7QuKU1~QA<pU;9G1JY
z>>v;HPZK64jEukOGi9cKEC}=exc4sqb28<g?`>{vd3pNCCAAuS<WhPvQo#}qk7Boi
zimIO>o@^#yQt)H4{+z7+M)#B7&P}y|@ZWY-=O?EqzCP2taqP}V`NVYJ_jMNLU8-$2
zelzOc^6^2SV+?P1zK>r8Q`0Gx(v}YGcamvz=H|WqKfHGQDsB527=+pX?H2`oq1(v?
z`IB!UEAteSWBqI6iP*GrE<8JLI{q67@6nh}Tn>edZ4fa&eN&~^uaM(p<V2qRznQ^!
z;PuGA?4+ZiaH^3e{?I9koz{Dkx%0o8!OT^yS@g+_Qc`BzDE}cb!w!X;Ud2HS^^6|D
zG6nq3FlzGVa=wMkh!OHTNhpN>%G^1p6I*S5pk$g94&!`uj*9Ef&d$-E%D#5HoV*;6
zGUtaIwOOntNRyQe3=Al`-8wx>#l^)nr6#}axMckAI3OnLXmz|QL|_q?7D%^6@%@Ca
zrTG<lNee7r%4OnTlAfiC6<MHrx?hK4`DM!K&C4(HWYmM(3qvd6#O8}hyPR0mmPI8K
zPc7Hu@oL`%`$R>hsy!%X55RdyLLV*}0RvnKOlu@s7@PAxlaNps^r1A6Y0lb5b1WQg
z@7G@_QL3!5I<gttI8!t%H-1sbwmbe)G%Pz=Yvp$+XdVW)e6pjKL7A0lFx0cdCo<H2
zDy&dAGH0+-=6Yj1qWZXfzh>el9w{yN?O%gGUjE=8RyBEJj~f#vV#;ogr>4p;A{Yiv
zK;;oT_KLEyn)f>D`sRH0xFc70zW{r1;B?kF{rYxz`<MRM$5L1wN(!<n#~`%=_XYG9
zVKfVkMv>k-fB&MQA~ruA*0<ksjmK7n{5>bYAtcnqa=VA@6B=5lgamO=U`$L%xX>-m
zz^J%0puif1&av>Ittgh|gmf@aadFO8aYHv)^l@?VN=$2=&v`<H(&OJ)vJpD&;d5FW
zELGWH%L!JCvisg}753og=Yb$k%4K~3o1g_3zKupUR`A@L<7)(i{RWg>?<Z@}gkpDp
zkNleHMfcztc7Rv)jss`#c3~1DV~o%+t|9Af0urr=V3bwz77=D&`eH%Bx3^iDq98Sp
z(jhW)RGCdwKp~EJ(uk0$Hh(&+o^L}crey4gar23`VAQDYI^rsa<Cc6{ceu%9b52B)
zPj_n(t7Ad_74y}>T~MxeyJ*eIB`mR?2)Dz@`_q&)_eZTL(Zi?+oUeyQCI(x#FqxU*
zb%x$I1}^fe(9n;qt$|N**m|HpkwI#J)ukd*Fx@-ZJl(f0O7HRk<bbQX3e1XN8?vsy
z2G94=(Gj>0RcXUlpC$FK3i-LmLmC=*@sc-F{z9EI#&bWL3^Ft2tU0F>-`u?$$<8iU
zGgimAWye+DBI|jCw}C-!l${M+ls7Mu+}-6H!qVbB)<`A!Ey7Q9E!mD;&g^3=IgPZs
zYpB4<2Rgmxw$44m!jk;qg(dseq0(l@j$P!xS605YoPBf6_V4rtFYVEaUISgda7Sne
zLF7F;qK_hS1%`%fMo|$F(-s_Ulq-|bvjr`?o6BhagC#bPbwa4U&lmR!E{!O*NhB>M
zv2qh!HCXW>6pf!Bd`Xm?6L=wRWyRVNv$9(sHIZv#MqCyHA9RgDBhPO?0>409qCu_X
zG&58FN_rhq0x1<Ducer;2-crR7}jr#wm&#VR7S&lyr}wp_BTJtBY3QlsIvHuj*|0l
z4BLM%(nsasX5{27{ql|y^Dcc)zpU&_w-=yhM04Y)FtRY=Yip8J)mv*PSC*+Z;puAW
z+1YJOQeZrmw)Z@Wv|e9_Ru;4Y0vSdI)uHUjwO=nd@Fzg+9~h31yR3%2!i|?Ip%{j-
zP%#sea7j#4#jlm)hfki&X%htAy%cSvv0E6%aK;W~kl7=L_=&PwsgA%I<+OHh<jisF
zPUd<um&Z>3XVOC5W*n;{Qr{W)Mt(%Tu?qH*$dV-aU%&V<Fj|a`uA!P&_+(eTzMuS*
zCtl-~dg>FBtkE4;Z?oy@^cHYlr9_GsUJnfY9K~$$DWxXC%t_j(K7v(;i<Cd)r^v@E
zA(D!+(j8PZ8FNf1epmkkJXO_<5Whm6xr|nULnkI72DU8`hRCDq>eRc+YO=CDMJIE2
zG-t8QwcmgvRMf{O-_l$JSsuZZ4L1_}XMs-u8qILdiCp`64}*8IaLz^gPAK+WSgoj1
zYdq#Ul-KBe*3HEw+Sc~40M6DPB+3rdDMS}u^S2ks84@P~kNu-XYz1)QA7<sf?p`b_
zBdD}>-E1XasXgGgqv#$#amtH#Ju{mXOm`=E%_>927Pxv-R8(xN@)n!LDvnWpcfypb
z_t*M8U;>b$5<NIyASFm{RonN2F*VBLdg#XP^u{6d)FQB|b!8}$R?_Hp+LwH3H3`3w
zfuJ}~r0}k2*1;}XPS)_%eyK~jWO41^pwOZRx5FFfzUyeKI$3GtbAR%EpQ*c)5hzJ#
zcjzQR02ll7Ti7zjhIXPeLk<BXe9EI{jU!}!cTwLk<4Y=-2SvFjTFCO|JyK9oeiK*h
zb~j@!A}0BBGD3A!XX;kBNFQzmrGWsof{Q(c{En)CwS=U3L0sm|adNPb`oZzxBZjA;
z1B{q<6SiSJyxk1n?zyN4vpnWGGuP95D=I3>Ex^z3zH<%3KfL}}UbecxRa3&)SeK{Y
zw(eVt-bn=gxq4-o#w#Qxwi({@)3l@vcI^fPJh66gku?4wE&!4fwxJIvq?aB13-3hp
z!qU+p?~cb-54xiId!P4w$~EM>pGvvb$HL%y$(k4shQ4Xb%bl#w%EC<>ZkkKlpJHWU
z;#!^EW~2UuPex6`>DcXd9a%&K%;4Z8@k2%Rk7u`B?ZBNW=!6~J(8MO^WGt0fWdPd<
z{ub;!buSA&`FPp1x3jY|ugabu2a%lD*xe-z#0N?u_NuG$Or8&Tdyu_$Tn4eQl8Nw*
zK)`H>Hy>g)RM(&R0BTyCx;nW(zFX~~+{;?GKRQT4si211^B6%C5g+WcduRtR`%>s@
zKuW5=TIp(3u%=dUD|3*&`+X6dN?KBH#48Y<C(eC4G^YKaB&V*ftVBUaM#E=VUK{Eb
z<P$SK>p6_o?+5E9{y!Onm75<BEGvO|JIF=q?c2AB{8XyX9!N)~B3G>=+>ATl;5~Ss
z`jCz;9jxOI-!Nm&>G;+fq%+stxPU{4R_vcpQgUdHGGUUXz~pdq5Z!L`Avv#WeYR4t
zc&dNc;O3h~P&G*fM~0tJP;S{(fmL2VBg@ff^w(1x>ie|tL640d11o)qjBEy@&xb_=
zeS4!xR8GJu3_9CF8DwNy_5C!1W&8VQs21DE#1NVtOvZHH=m`4XdzYnJ?xLou>a;>0
z&n6kg1fc1z4<>lt(QkvW>DsFpBA8^XUO6~dy+18SM6JYN)DqaSx~j|qC+|ZV63rlA
z6nqr<{Kh!CT2Cq&Z<v8s`nSH$1~1FK2E!(+)%;RhJ-dUuba`Fk7Uw3H`jK?$gX9cN
zo@X02TCd(pV#yCMwGWrqRbuk5Xx32liHqnz{+jOIWY0t9U}v!9?Om1Y#ba{ENAQOk
zo9kqG{oD^J90QTCdCyS;mgpDR-~~!k_AA4{G^eAKxzkAbHk9ahb@n5w4Xyq%Y2wn{
zbrJq?Jq*i?`SYn&BEoCoC?ZB!M4p=eAfr$RUm~NFOpI#P^pEGk9P2CYdRJGtt&`oQ
z9o!9WYt!F%(Lb*Kd?dp0yk@9_=|{XZy}BR}EuviL?$=s^m-dpPzLPTGe1gx)am^`K
z2_36(uqzLK>6iTc{NxuhGBP53ZlCWYD=IIXuFiffJUohsu06`kuENipmc;6aBM1rH
zg!=5vcD*BpMWQx?O34s(pQXr1jAnn#j)t3;?B?t}jEt%eALe=zes-HmNh&B5>t`}w
zK_?STO3~IrdfNxJotbqoRtwb=VR4a2JySY1X*oHo@x@*^+Z$H!P=Oj<y^=$}dH70^
z9T)d;NMuw{y$jFA!*P$d+o0+t*y5dpBqV0X>=yn|jzE215jE<TBt*Pc?##I)uBfc8
zt}65Bl~*d!rF1L3AN2OAf<*j{kGr)5qt5He8m~6%&uOWr&eg8RpZD$3S3dKpACUdg
zLPwS1%p-gDj2Z2@#2OJ@tVV_D5YUy^<GdV?H7q%I8biL73G87Q-$Z-w4EJFwmY3OZ
zKm2OYOrTfZFR|}Z;43^^Z&)HAcRGoGUq@`{zuHYjrL;e3WPO8dn7p<MHTSKiR-YXj
z@$=oCxfJb^v%@iO@9ML%C6sWF1urWFkzViqDaM{2PiI(Hpol+wT+c@*{49)?xM0-$
zeP&g|LbLyRwb{JQxBk=cZrAy35ZR4mw~a;?=n-JM;LBI=j3<#!7;!KTkich@q#!4A
z*`WSG_?5}4^QnGsdVxLLd(4rs@Y`g(T17=AD>pN<m+6Y^L-LIuf{*iFRUHUPNzHUZ
z6~-rL5?FJVT%c(>Rm&@_Xbb+k<osgy#KbKhpHm@!q~-|))5#bpxTE8x)&_W-xvOzy
z)6OjC+D5y1&(EgokNNoA1H+yk6kbKoO*?*TtoD$O3Ppn#3MDo=l?errm*z|3<p6ak
zoi|}moosq+<fzD(l~MCAV$w&7gH%29;Ummy8qVo^+M(m(MY>gpNAKRo%D%eB-SU0D
zFrFyX^xAR613XTNNdCF#Bl(OcR494#<5NW=4se+FI6z5{bl&cDc?#1$?dv=1UDE{O
z)y=&3m^N0drFFDitLbOKZGyaj5oVz3Evwyt{Ib^`xG&|yz!2BYGkjW88J4&Ol^<B4
zRP9cl2`TNS1q{-}Gx_Z}Cw%;v(b6i$7-7*}X#()D2AzXz?Di_`0jb9Bsv~aPK@G@0
zv;v_>%eyDp4oyHC%?mq3`tE33rZ<mrZIkw0HPxRRh_=%frH>i`hdi&@V<cY*N|XpG
zXCzw`WnjqXbH`7i%ro0evWD&ff&BX#k1NBp(m~NoiMOKh(*dX7wZULI_;oT~KUx8H
zJt(c&;V92w-6ipm8qS_?7a1NI*3;LMlT$c~;Zo`=dY76HL}%9783-<YdPTql&>X!9
z(r-_W=#bot2@VT(=k_Z7KB?X<<h=FZLCc9AWQjEJRS&{|(NH1R=&pmu+Nl>x2KOjp
zEwU`R<jJ8o5syZ#%RB!rFDk_nmu(4K>PI@vM#EB5&ilJzG+6WVwnRMRJG(<tqfumN
z04FqRJ%vU93?eP03ZPO$eT=Z8xo2V4&AGpRYPD-HgUQwU$tVyB4ISJ6AR;p2Ra7()
zr?t=h2A*gxE>Ph2#}d4ZO9+u}A-l!j?d@$i=k>h2x4FG9UmhF$K6cS?b#3oo31^PK
z{e$rfWfbGUz>%%DZZt;7T`iffw{5Oq9eIF-?`{TNswg%FW-%U@R{U7A*>y9vlar~o
zAJ452gBLNuz?KumGrJXDIen6h&_hP56Hv%oZI8%~02v?dnHYE794~a1Ved8+H+~^Q
z6}t|+sWWu{>YoJ*SpuE@@?oKzRSwsUv?i|b2X~ppFFU;%EBzG+Ah&!Joo}Q<AY!!N
z@7MKKI_ZdTBC|YG!JD)Jrkdua?Y}@t4ie7em5o~Xp1$j_8tmx_jEg)3f$zN1CANDZ
zps=LGgvZs4CR*Ysyq?^G;mR*&FM$^?zJJSpRfW^#^m~+f#=NQF^ZomfC9{3&ma^yM
z>yUM;=9lIVI?bl*$SfDmOcx}%)h42CH%iJ>XXW*ZK4oKTmS4>(WZ+~~lvRuEEnmO{
zc&)cDYVFrfwRiLI%OsPjTJ!+HAH)O47oK*M?fP)zdJbnAhr%zVMqx>_fOTyt*J*6z
zl^7*ZMg`U==M%6w?0^-zGg&0?J%8p=4n~#NYY)fCa_bdvg=Xd=pE&Yedq#sr|8B=$
zBKqMQ9vxKt%AU@(>;NfW>0Zu_lpI81TShTUOBysZnQNCi`@r#1W;*oFF2Q$(9O&C>
ze7hGAo0>CQsYY@3{LcGa7T|LJp(_V?pE7Vn4LLcSLF1JbMi(9unv<KsZoWPa=aNRb
zOErX3Or31FLRxXY2Z*X0bgEAxZhvZN@9sA7312cW6f223Uy;Ye!qzCW(C#ZUpIu#5
zjfo`!i#HEaj(%nq9^L~UfX4uuq%>G&4UdZy(dLkoRf&!ZCHvqnA}suLaR-u*Dvlgv
z_ye=Xkx{8BP4FvFrvm|~3=IoaLL(3r<&f^4B}++WVqyx+j);gT`Ybmqzq~Ar%wOFD
z6Yu&hCwGabB=?pnR>mh<4SP8p9;M%#RNmMdEV4r>#w{e?M|G4rT$nb#X<FhR;9P2*
zy8Go$rt-PM+slD+I9T~Q@b$w#M-#-2;%M2i-Y;w;{Pscu&m@U5AS87E*2OvTgaUVY
z<@qCG_VV2-&H2<+AX>$XO0nZ!XvoRQNh#WHj~2uH1e+ESaxY0AC6<(cM+4YT!O$9U
z$a9|Uk)EL;<*Lf8sEBJmKAv)&oBNe28H0pfTvCM3W3_mAenwJ2SyuF^$O<rDI0#5d
zo<m*>4dvq!z?|vSt8bD2u5><bpQt?Na>SAppdD}n=4xYa;~dhV5Ce!B3ns~>-U|sR
zMMM@a79cB{+iz6gBsATS;;la<x`{}{?Q&APG6W_w?}(xp&ivw?j*jcKXGgn})i8po
zlb>G7MMQ|e!EJ48k#_u7{{89ukt?Se3M_5~FRiO|s^yPzy$gDQb>EpOai>pC*X^}g
z9~U9h@QR4QiIqh6`!H?BwyAuZk<swCkEpQltB7b$smPyCZB_?9V!+&~!@??t!KLbg
zWE`sblD@cFdtS(n4{sK3e`<Y!oB(HATRV}LCn+hpw}9X+)85~|8{eb4Ro=RVY_3uw
z{yfKg^XYiz<h!fVGOtv*I>uvKUki(faKj$$qt!^C;NXmcf=@*|NMh~5g@tfI5P6-W
zf<m=9oyv~;Qna`r+vGC7fD$KHMnmJAjY&=d5}#Xyg=G7sHFzm$*C!jj&8~w^?yIW$
zJ%A9cd-&%w2rhuhe`0X(J4AGV*4}hCSuS+Nu=r)iT$wJJSwNzq3cj)VPN1m?hMMVF
znGKd?X(<!V2Y38w{-F?G;(Igg-=<S5NZ1Cu@6u$ch1rFdYc*P9=;m%21J=sX+8D;_
znwR(N<*<{gdi(1--iZ$}<!F;SL!Oj~f=w?QqOmq6<+)%zt22soW3PwGp2AWkc<3V7
z21NNDR5tBkCDQ1OE>~Sr@FE!*s2t9aBcm3_1dkd_6Mu@l!toP4?)hPzT+A%*CQbD6
z<x9R4b-d`tmxjvXNs6s)G=o2u!(4w!cZ+tmT-Z&za#YOg2>y(ub0!a!_R(CL?qD{W
zU?Eux43TsOi_hch>fVg)nz0BtKP`Q&ldIUUu<dL*iRyB6zpt^QLz(*8JAfpPaTb@<
z*qtAEXkVy&@UIOt818m3{bzVF9w7D1M9TxGn)6sr7^V^@q-Ivwb;V%$UisH!2=ke+
zYK1CsIk^Ft_x4Jl^yzBpZj99OvJkt;Ro{<pWOteGC>IL{-B>$01@LBh`TDCGNY%2m
z$A@Tz1;o+Kaon3KQu1FWm-9<Yr^!5+<VT+auylj<c}eKXQ25tZa=YzFyeL(e8GSDQ
z%$*a4epfJ_f9%(5$D)4tbpXOb*N*4HlbQptu`q*1S(uraJUzW#cTe~CJ=_nRTr~4n
zPxld-b4otmanP-^UG3T21SBTp`Sa(dQ(ax{W7Vca?>ihA?>+PwLMg$+raeGJ*s*Kr
z7#PM`_Z+`x)O?#jCNMm0c@)u<F@W3gf@JnX{6CaZekAJ=yjK(+t*@PmoDSh8n4ABG
z5(PrO#%$J(2HRI$q@`cNI}spc0~2%5aX6i48oop9`dk2Si<2&BKq|b4TEl_FT0~%D
z)(lHZTG(6L+`rnlN#hIy-xpReE#k=#;7*BYf?%)eFDrM9pfF4}xX>F(jlZO^cGh3b
z<d`DK*#Gb`z?(I?dA^gBOUw98L3jUlaGt4#Q&=hb-?2UMCeWJCVg#dM#-SL^y0Wy)
zUjk4o4aw~AQh)r$_~A@ie1k3H@SyQT1srgulhrCOm5`4i5(g;RDWi!@a1&VFhR0@t
zikYO*x-$w~%E^trekj-#RYm5eSoiO}y@Wan=cotCG^SwG4+2Fpg7uYu{Q!V=dcx#y
zNTtMRs>~d~?Vmr_a+R{uzdUUoIjqZ7y9iq9UjkfgF*YnTBq=dFJNe7AxtCI#|Diyc
z5=A!x@-omnpv4d=_fqPEn0O3_E$tHGQ0r1@OKetFMo^6(>5DR}$to~l0gIy*?{e+$
z50F6X81kFpAtfaMK>25l=mB>2YlmCy^6lYLxV$c(a%hZz=wZoIa|F$jh?`qiGM<)#
zLWIEMj>8Zr<%Dbw1EURzjQ!*ZCNf=b>rvilY76ia6Kta+v046pOK!XVc=J8+>GW$~
zmjh`y!{7>CIMpgJ;F-5~u#aW4`1ZXom~xr*@6i2@13{t_PrT?O&x+*4M0e3@78dWM
z)J#!r2fys`w`w`LbQ*YAxaB>a#s$9ZP-8eeJ#cSR$_CdH`&g@fSP}^Zc!>U<4LLN_
z!pP<$-KHVl&1qSRD5;DqXe|>Jl@+(vYb7?tiX5kSteKgGvF~FA+p4YTZkYc084~uY
z=5;4bwr<wG{oqr~xwo<gQ>bu4#Ise$L(S$$+N5Sak;@E?e1pu^+YN%ZSxy~(AB%sq
zspZRGVMC<Vh+r8XY<n#&EYmPJTMHo|okawv09neVhAPu83{0rFypd|l%uJ3HXB$f_
zxJ_wcAy*s-fnLV0_O4I$kB~G&u7{r=(jDBD?;VHaMnN33RE8WaY;3~4YW&Esh8c_E
zP&q6=+laSsB*FvVWwwoudYqp!HV$_2yWSbW-OXklzu1%MSzo#Xn4W*}*RdiSnw#xM
zo|gy(+)Pl+G7=~G{tz1MROH@mrPn8Qz|sVipI6cArjLDFTVRqu<5GKkIgN6_{{y^k
zkNFwG@K&zZlH`*F042r4VG<G4e1@o`#S7{KUjvg7z~~Nm#7`r}%qEf7mW1>^nI<V<
zR-P$sT)4I|`XG885R^9&p^$53T}vq5YN+|xr^wxjFhDmwL!vO)>O0562u<#d=mf#a
z_$c>#Z+TA+n}3b33TTp>m@6e`WLKSU@j7<JXU>>?Q3#d{zk|)|axAEAOfy2XOZ~?J
zh_cjoZK@CaC|)G=j`$(1@IKu4k2sjD!Ug}5cGS*%*E@Lmz;6WD;+HLn+m4Rtg$3mo
zrpxF$9vB5l%BD)&-wjG1eq~4W;5NSS+;KdM3c9+99ygqI!xBWjNJf8L@75vBAI-ty
z{W-B8HbK9Mx+Mxj2pX2JSC5zqY@TDmJgr@da1@P@K{{4B4QVmUu!s%W=)yE$4H#LM
zlp-xwL7VHVa)*`iCKz3q{yWH8ytoAntp~<zHX<%nTT9?Q7^-=leZd-Xmk?11TkYXD
zaG5+4Tj;PtJgG5hxA4}735a93Ytf*-!fVx?CCAd~lb=kZa#?qOvquK$w+_&!3thm=
z12j)x4URp<Ma83{0vD2<{zJ!+ZV0pFw{z~8#HS`9zyzK|*>3SkWDwfDgqfL!yF}ok
z60_U}=q`xAPtycEuC>lYB_j?GpO7NB2)+<nm|qCF_wKS!TMrD3EkEyLcV_nMw8Rn>
zt#Y$Ihh3Pkc#vF4+4hd?$}3d`1!0Q@uH)a}Q%`?%_bv&|8fFLqhUHhH=4KfI33weE
zf-#K!B!KFIv3&i)wyB_JVYxMtxH;B~@o70AY`#ZCP5C%QsmY*{0lwF1g*g5R3C0LP
z&eG@?q;I-PV2v2uS)<1ikEnKv*IV5u3zhu+0hnot`Usvu4dW4hc_s-}>!nd<;h1u}
zUZ)P6dNG^fvFO#!J+-}UjPaY}+fYxabfkeaDg{l<AlYRT!$+u<5Iv?u6pxjVXgevU
zf*!c817;)T2XtqOSeIw0T8NtJ!CGW3e(mAg!shva0Q?Va!V<0Rv0ukXNGYxwu<u$s
z7(AGwR!VrBC%orM07;tQti4KUaKs<mu8thvT}wpJ`Z*A1gc3pL--u2rOy;hyVb7C#
zE1b#;Gc%i!3m#WoSB`O`C7yZOk(pmb&B91fD1-XmtETsB(Pv;!3a>Bou}$&v=b<bd
z3pw9kx<2f1nedQsc75U4l>|6Qo0x;@stSjy@+PzAv)^K}kLkPNNkaq`;?=b1eC+}=
zQ_r_=EePki7->k|`{+VJ6o(_$F%=GRsIrB#CaNj0A>-^oJHKQdD_kJi6*qDNv=Ji<
zWd@Q6xns@82IVn%Qbcqauh%S(U-3mPZwdrvHf$B1t{Y-%KR{G$h~22Q0`dE(QGX-I
z`L^oWg1S}m5TYT_=noD~+D0FUaCp#8n#htb%++a17Urv;PvU1Tvdb{nj|Ugkeck!o
z9dKS^K3}EZ7~PrdHp%nP0$wQE5@_LAaH)2|y?3F)Xx1|b8IGYbE}WJBMtPEvo}oXQ
z@)Gen`HI~xIGwN@?K#%QSqz85C8tbaU%UZL>4Y1_jqJXLEelPWSgeKY|C1oh?=0{$
zqAks@5|`i$g3)*6gZ~(PD}nk-`O16*mjp37IQyB6NN-nvbDHbvA(%KeEq`?L3Th{p
zjF4w!XWok9R}qP9LkZFr6=5Vrd8NHt@qIx)Tu~-0$hS+lu||UX!bE#ng?ipuPW<mE
zKx|({n>t9cGcfBp#z<SUu^yv$jSNcNi#)zs*%e1R@lBbEnl5k7qUf`V4Jy~az&^I_
z{|4-f?#{;wj|I5NIGryCQgaP5tIxQz9_4NR__;r0;oHpqD-6pOjPY>n4G_jY55E(B
zC+#Kf-MbWzpGzuNlm$0sEXW9?d&7p{e|~m;wa+op5KoBqgHezEgNz))7F{HPhLDo>
zgrg-FRym=1b$##XAY>y1&utP-@YvvT(>~#uH?cw}*03bQq&^VAaJ;L-(Ax{Phg^6<
z;B!-tJI(c9lXi}Gv)rl2Kkh!%)PEcT#-~W;HkThexIFPrHIU9wy(C@M=G{Me+-sae
z9b$hnxVyDXc`@#VY_uP>NDCq#`tK*FptQFStHx~AdjE-fIHCYH8i=UbUzc}dk@;^B
zZ%5Yao+a>nN#PriJ-%;<k=Cm->aP$Kf+8V)C(f$&dSS54S3&=R0oMEeBcL5_L(;<w
zJsB>FyRZ9}z-eKhLRK6THc?i#Yn>t=Dq2|BW?>Q7Nk=8p()vJOi{Aj*+1k%blN`hk
z>BGk!OvR6tUg_S))WX7)7U%}_t_6m4SeP>Q#G$KE29h~p!M9|8HW?XKy}yYcFf#j(
zQSQ&%kod36Syv1#GO`q$j!_QD>*tv7WlA2CQ;<>c<>`FQII#@2dY|i~eAhQrLtPY;
zTk)k@h^%UMTIN;OD<g}athAMs2;`Y%#;!sqCeLnfqBa|K13v%YfCJ<GlGlx#4brsa
zvc%Ny5I^0Pq<;P1pWR0gkZS&bhLoa4ApA)U(l3okk<7x9RBMgQ#I3EqHc@*DePreK
z!vi-a*<ev_MBR7W(zwL-+GLQFtIcjtN%zgAMVhd7MqgCMH_JQaF;;#Xd;$8Kn!v0W
z@BmRWs_2ygMw<$qP@SQkaA$W&GNTr$#;0-8X+9%A3E6E+#wc5Ek8K1llp$$37NT@1
z(P{N*t_wIj`Z-#)^Tp0NYhNgc_*hunFJd2TIKNsas{e%8!p%P)h0H}_no0ir9M#&I
zm>+D40=jjlD7QU@l0=WuE=z!FW)CLo4#dR?e^jxK)<lT907f6GoLitdr*01Xf<RC;
z6zB1W_lw|MI;*nuXwQm&I#Adt&n!QO32=^unD4~|#nlcehMcrOsU!D;{F!1Mno{a7
zJq$*fhMYX|cIj*XHUyF)BYQ}}x^O^Ko8WM>L?Y`A>~z$|#vWxM`h=`Id_KiHcD6&S
z6)Gzr;U4nSRLBdxpS4GE=pFUA2y?VVoEWsEtva9Yha5I{8fwcAtm@=n=Q?OC(_6Sp
zQhYxng>hzNyS)v<hL(OBBi!m8BOQGd>~qHfws&I6Ef*KC<1@?4Q}!Eb&0(z=6stPS
zht`$uK*^nvlu-@{zRvb}Bww|xf#CP|#$&1MY}uB!X+Dz`aCxBsB|KT@g!yk~y5;n~
z-hPcU_~wso*Pw~?-ln#)1X!58y*FqyiRjYAz_GN;yJF+bdVu*{PCQ1`I_;85qsz-B
zG&P|g?_r}SUvUvn4oxuElR5FfkxTOFrtI;@4}Zf{R=!bOl;<VcnQbdmUm=ua*~bT%
z!N_G);m-DIg59DIP0B1TTZJEGzv<IG-o<XApcwsSsnrpfurd`*^5k%D14E>I1X!>n
ziH@6@hJq<+lOJy_3=B2$_%|9uX#)EnN>6@Mt)A4PE9g@(*DMNTZ^1OE4?^FSP)q6Y
zPpC;CtFeqp)?%N5^|=Jia6Rj4YlvqV!FG5bnfi-7u#HSCet^l-!oUwDbcPaUhBtk<
zn^kXGKSue8a)xJ<{w~xkJ&_zQN0zFvVAy4+d_uf8R(l?-^HgWpUm--%bIdU+Sj*Jl
z>~Orv{mc+pwH_Wzp#bmeBFM`W!xua0*QQnWfdo0Y*=544N>r^4O=sKg$_+K|*Wf)%
zUiJj315lkOPpDUYtFLMPoFz$2;$|^@&q}BT%@U9y>RY>OP8*qLsDBHa*U2fTNn_1>
zsn5aCyRXI(9vD&#`L|7)1nLz$sfnLHEfk{L)NbUaq&qQ_>J5!xU=#B8yi_<{O0sSz
zmoQ{}b@TJwuN`J4*)5A3{cieHS%gP=r%*arnSZP$8h6_s_d&%o(K|UF?T*P73KqB$
zanFhj7kBs}pTA6~BHKZ4#f?1-cZ^w^cwXF1YNt`NvBoTxz}L8y{@V}dM_TGr8|oRZ
z=ti>*EDyh@0~)jQ2{o71E)4!o@a~C`i}O_MG2WxTPHAxq6&d+Jq_ECp^G;bjpE8G;
zx0$fINGq6FOS&~ExrQ+aebf|n6HKA4?yf)6MyjS=)fmKuS;jOK>rw$fW<sg|&Vvh7
z#@S2QW??YLm^R3Mc&rj;s)&^cHs#)OzMSL}co0?rp0OofU$;xWHrDgBy#jqnw8Xid
zVdhNRw5>^KKVWKaU%7nrl~6e4^6|xxF`hS8R=LWyN$6G|gB-;&@#Sp<D^QhGOvKtR
z&-%i+xj!i!hoHt&PSwC$1uRIHjm`SV@2?QpE4$D|b~??$ev0)+0+3UbC9%D|!41xZ
zu>Zn#Lcr26Ea%he6ntN5ZVLHOJEb==19A=D=4Z2B<T|BS)`hR(iiOqLS|9ZBfQquf
zyR0-vt?)`K*)LQck@)Gbo2O#SXL;_ic%<Ao{0E{Xmw75`L)mVunDP_IaLK@ECW+7f
zR#RUDa~JQgzpHfVNtSpCjtk?X?EI=vl*_a5CU^|%TA5cgK0Vp_L3L3$45$GB0{p*3
zO~G@U@4;kwJJtl%&h8Jzb{f5*BgrdDd|L{kAXMSBUN7W~s446-z&E*xBve(EuSoLO
zHVN6aiHt)2Z-hSx>88pGIIDuGC02K4d#yQ(>d8xi%U)=Qg*uv7LqMr~TVv>D_oKUE
z(CmKRncO;jF2Z+pk{_A{xf%kqg?}1ike-qm)%5MzxqST<W~*{eG5-E%JkKR^Ty5=a
znty3~MpZSOE9AyK-62@=OL;_o-Y*o-HufoTD?RP9p1AQi1P)6IeEQ$j_Kc9M(zfI9
z|Imr5XV(#6;$<af8?l)^4Bc=A7>D6x5I$8i^3s>A(117C13xh5I3Jn>zI{5Xa_|1%
z4;$wJOU(teMDMbrC*wZJ^VkDKnK`06&jg#)_qI{|K0Jl2k762#1qW9Pv@$x6AIrTA
zaECFD?Z$;pB9$Siqvi1evIoq*A+F=DpA2WnCg0fuGh{*6MD^5d8l$hf&!mNsPCk9`
z@9OL(C;OL{_3naQDlLPKTF2kJ6Iv`hsw{{enNeJiV{Y#?2eXtCBRv)QLKclmy3ga}
zJggDu*OV95X>o#vNIa+bVPsfp;-!+f991{=5#gOO_1h~;1ko&f*Cy@ER{2>=ffl0S
z7ucu@FClz5(fQX6hkW_zfU@Vq)}a&S$2-dx@Hge|=rF#2R3>HU5_6%2uXV9pI;w*=
z*l~@9ON`+a#zDJSKr3DQ1L9F@>ho|C-~N=lMZ80q@A@~2?@t*{_wOYwQUdnB)mY#z
zL1BZx49yl)6Bl)FdO*WP)S__%oFM<IgORFxs(%+QM@1EGSrmpU$_;GW$=&#uE&2|B
zbzd}5fKvCYzzcyJTy}xMab0s38GQ@)G4BiBCgRaQvBM-I%Y@*u+s&Fb*)dI{z`a15
z3r95|eaWIP>B6Fd3f_#BlzsaK7YEEsa!V@Me*`kWHYQv{-BQ;f+8g%vlv4@twt&Dx
zw&Zd!dFg!NKyKEo`7a2P7s+nj=sp35RCT;$ym<);e9vFn@1@f-8m&Qkfk8mY{|_P;
zrJko4A3DUpQ9YKx#>6B$P9ofSJgcor%Q{`}0sd>bp#f=uwRb}<)9<cQVbcx%7)*tL
zJHTuQ>FcpgPX;H*>!Qt|_|T<Q_p}OVZns&VaNMlifCDEzv5Pn$Fg9GM;W??rz|^G6
zpA$=({7uzr&dl~<z)ww^SkBfzFb&qXc8GX*u1I&pi$>qmgKuh*@rc}&obp6pG&sY5
zvQ$j*Nn1<sgtEtTm+ji4Mj!e2QOcz1^G1vYMH#sAr}!~F!cZnNDSo4zGH)QSe(D<B
zWQNyR-_0O%EzV1fk<6CP(!)}QlN&oO%IVww)_yy$OmHZ-*<pP2-8Uw(_{^c7GnN-_
z8lt}=NEf%{LoS#)I}K;@pl`G(imG~KFYYM2-Mv5?_LfQT=7yk9UF3e%`OKXO#bYGz
zibg!VfJmT8=4_{8tF1mFw8IG54-F0Sm9woak7ri$AVN8^GHb<?UK5_XFIX;8eGCjX
zXPb=~u4noah-kz+UBZ`SW`*h0D^AW#q}_DLe3?7i^)NC*P<f?ADnCT}$K?A!o#7&c
zGChwtV7kDbaY;=3AJv_Xi*w}aKdSe{FY~wKxt8Q9i&lNHK9IDOwlT5g`hcO?WR)(9
z*E*K12||Q6wgPID3LCz+yy8=SKbnWBAhA0~j=pvi9XCCf5A)*((A9<`BZ~j4bU3L(
z{2KGY6QYSh7ABB)I1m@o_6)D><Hq3Va<{yC`M!eeU$R<G^=qa7T~qr-Kg7{_3w)SZ
z54j_$cM&tFo*cgCnrCK$Tsd@y>%ST7)PP0Zf!V#Uk1sJ5In_$V>-vO^+Nr&zG;mN9
z6%@(IzXXVh7YuBNi2~rm+8d**$tU1Z6&KG=NSGO{b~JnFa!Y72_S?J}1gJ8@m-g&7
z5CTFeI$CA9N{nNz6zoj*FXk^rNIvx%v+(W$;&u@!E#NFIE&KtJPQq^PwjvWQLtMJY
zmoJ}p01o5$Z`8P+44Jz@**_EUW{ANjp&%Yb`yuJ0kB>hKy=5$0vB#T_FPAd(FG!{w
z{kLkUhTpWcy-3MBz7m<z_q>B{n!c}3oqmL#p7q$=i5l{mvNI{E*?R|viwsG~4xP?A
zKS;Bbu6s~)xqrZmX&ccQz>(cn36lCM_MnjhN*X9GZjv|6F=@Z-c9^ikty%_WSqztJ
zT>G5Q$B*n%u}8JBoDd?b&0_u72yOBXL?MGG<-}lH2aTEe2~37CzKsG0bnpD#yVa^H
zaFoj05A-{kP8Kn-#?Mbbn^SS)ori=hg4NBiCbGwpv7F&M9xCN7&bnuoUY#@d?_*`c
z=)?8B@CUP{DtmyRAr`om=M>@Z7d-X<4Sd6UH!ey}^(B2%o3esTFr~pGN=nK>7cHNm
zo;x^r%+CZQG}0|csNl@lPa=uDcaKEHt1cVu(~mjKc+zj?D=Qg~?go9X!hhg5IM*I3
zFV8Lcfw`BU=O?NaGP3s@1<0i;h#WYVP=0`;@Rc1f9#UV2o|W(I?(sa;W^<y>&eh4u
zznY1ho|=9~<v0~cFS`!Ox*D!$hcMd}1}XM9hC^OfMJyAp)s;RPZ5Wb~FJKEzps5Fe
z9UnfzduO~JsBy7ttK*ZmO(P-ocnJ|v1qv&;cDaUwbrLc^V$DXnyZhT$z6Ft-=6nBB
zP^JD))Q&_1kI|Qzi*qW}H0F!QyY2<@g?Z2@aCwOsT61UR1_z(9x0ZOztHlO}q~zri
zQ&9+DGAlOD)Cp>jHssFEf5xI}Z_8*YJ}G%bPLq<87_1zq(wX}9KFFhvy+Ms=H;dVM
zirl(&f5@RA4k=URWIoBt9FTu$SncjsQh2NAnJU&UyM&OE^}8qsD?x{5@)xG{hE44N
zRnn<fDrjiXk<e5-H2LhMdga0fOkv6QG>n|llm^!{TF1j_zT(ke>yvhz?TQUQQ+Vik
z<TE)ai)=0a)UKqu_7^wGS@o-OD+<!Yx6#(0HtK-5hdC*Ux;jol(;w(qy7Yfg8}BHi
z=I_>tNOG5!1*cqC_DHZpgDRF6h+=I_qKj9=(o9QF0jE=v$1K*M`kz(Df6pxg`AGc8
zw{-xiqRcb+6LnTaMNwh!=g)HaKMNUQ21Taiwi=umn-(B-ezeVA$vsUz&dVhb{RYhr
zOYhd2g75V!N~xcjo)^B8|DJ1zx+y{*;gD(2dRPv-X_SQST9@WFx7%?|x}KeR2?$(N
z(P>hDqJn!xbtJp?5z!lLjv8)&7RwP^^Q}ohN)fw{b$wF8G4%XM5NTH#rmtsLuWn*i
zhwsSo)BQL`?1o78^e0r1<tKe;Q>P*cUU=%(W$<s>BZh^AV~2lU)GJo~m45ygUDy}t
zYWMHzFe7}Un>}&xBQEfbC~bcHLs(LOPWJ}QDae&@a`)soPXw#cwz9&x+OFI$;kRpj
zKndY_@dtUywE@*P_VzU4Nh#wNZ~8UiSJBnYwY72EhMdx8e9H4_RM@VS<~ecANqdV3
zz|hF*y=T7jSME%Zn2Y|ulRG0*v*2-+ACwC(C8B*{Dl{~!4JACWR6Kt}$2YA%9!eA~
zEiJ6BxXv&AhK7dDrV~G{*PT1&EG{;GMS3?wBhCwZS35OaPp5WQ%x=o4sL5K+|7_aS
z?H1lkc`Y>@pS_9<A6^!tDVO6j=U`)WFbqS2aGeJtDT?j7<??{ylxw$xrP%qS0ihdS
zo=DxXT8#RAaQs6uT3`(n-D{qcwExy<V5mP9&S#J5*)+5Bn+|<Mhg)SMUEI@&)<=WY
zvr4fUaC@A1DVW*}8rj|GTYC@{X%ofZ)yBG;CG%2&WwqTGrz-Vg{H63~{56gC4D-z&
z8`9zrvW0mlW1sJ$DvKjLro46--t8Z+rWzp=xW6*m38qH)Ec>yR9@s3k1rX>yUYJuw
zLr%0Y$W2Z(f2$BR?E5t2qyPH*NXu%TS6_jNf+ShCfWI^jLJTP-iQi}*h8-H(DhF+-
ze%sBa=2z$p5I%BofGQ=eDoVu9Y_~3~#ORJi-}cIKVq2?*&wLw0WV5LnU7m}VG<Ioj
zO>T`6PBOjv_gv$GXXFmY;Fg6MF1m*YyDF`Rq-_*ed5C3Lar1Cb&v;RRt|q^Qg`_$m
z#p*K&<Fx=G|C5y!!#6r528UarVquF*ivTE`54Ka)=HIcIwkW?Kq3DhStga4Y?0F{%
zm(&otjLd}pBtt1{;Mt_PwjSBWs#Y5Eo5yp~7))L_EXnJ!9FF&1aaKCV#RbOAEeij+
zN&j?Yj|(bR7qB1P<r{4Fqy+5UOM{`%Y98X?g!kXyjrtD<Wi&BkA>Sh=E>*UlnmTX6
zQsA;WKp}&4Y_zrc4pzt$C=ctbxP1w{1Cdt*v0&R3y>j`9t9TYh0i=P1Hiv}!<Eug$
zRIs><T`}K)^bTaXYl6G&B|Gd5`y}H;@gKY7npcx?KG|!2f1bFzb12TCCc#IaSCkyK
z{fJ4>Y-I)V7DKhPL+5@yjMh*H4h&)LYw;Yo2Pt4E&60A4JOpD8C2~Zt24NLrq`-w(
zylG`2BNHj$_uB`Ha)kLuj4}-wX6iTJ1a=rDSA`3ZO54Jky-)H=k;C`N8F1J(L(jU|
zc_{Ruw#;{S-FyfMwfz4HP?OU?zU139zFN#}3HSnra6uNFdK0-+Yx@?br1)6i&AMrX
z27zW!?U*JW@obJ0ah=FSf8U>AOQKc|>^)-_4lk%4j!w1bemNCuqsaGC!3fafm=y2N
z3~;EtQr24H{;xTaE9p&-ZU#;k=wpyV^oE-zc18Jx!V|k)XdVA=J*awi|6j+d;*BY<
z%0VI@NDUX3tqg0-c>6UYaiQf&Q(IJ2#nI3$yjBrW5z(G3l~|47F2Gi)-WF`Ni@{%^
z%rvy{@!geUPR8*gXiH@53)R-Pmir-WjQB!8Kz{BQ$lfs(VY0hfEv;}0rC?(f)r7<Z
z|MZD^Q1647zQ6dNRuvWxm9HLqAnu>-U>HGG_)P}~14=*5001(^V*I3Dnd@hGdV0o4
zAK*d?XlFD%Kr9|~$no}epFfAHZSAT-{iOE-VPNa<1Xco@R#%O)7`^M9t=xEsG6x%g
z02jEm=XpAl&V9T;R5+3xh>ry8TB=>n4jcXOE)F<=tAv`H>PP<U?VC2aNR7`5?0vQw
z661ysuiTyc_qLi!ryAVM4gjm7qcA>^_iT*!^eUzmT2xDU2uTJ##H&h!ct{mz#r|<f
z9<{BClJV;!PmrtLwB!WmbVd^g^dIH?NNiT+Mcs!)QgBEjY=1`n%T<L!S5U|LJ23eG
zOLk&=rgCE&)^{<AcYjH6J0~spt-=BoEI4i7H-en1C0rB}KqSmamN8&yW*3d|YaujL
zuFx=4g~lBj@~h{5<He<t7MEH5d(@nY;(ogM)6|c0+udT)>g~oOzx{@K0;A%|MRZ$)
zYjDa%TEs-g9z>_kFX%9BINV%7w!_LzNH^k<j;AzGHj|YU6)kHdSiTEJ&6L!X`W4Dn
ztz~qaXPCvofid{;pAqmvHv+RibzF)4ZfEf3<;%`({g%<B#N=-}Ur$Y@at#cxaUE#Y
z8l5@e>gxkx1s<KoQl2MO<_leCBto!1h4)p36(mA>w{u&pzET!^51V!R?6=|5LgepG
zhqE(Z>j&t4yt5NH7-!N0CS9k7dp7d}x@YsBvaJD%GaxUIxU|wJuk0H8PNN+9>Vp`L
zl(ejs5+hvvIE`0}yW8Dnnd!sByppkfy?yRm``EOe3#aST^@+jvmWBU#=l;kbIRA;L
zA$=s%l*^56rwCpH7F<08Kis!2hvu*41S#R=zNRtU&4ctLC-VWT6%IuCQDP=i<~@A;
zI7~%Z9H`Bc#^*d-zc7P`sdb=lKBt;~Pc3Uv^bwb0W^f4Qrd`z1vL8MDIr*l#){(Cm
z`P@8y?Hue9tt-)I?l{>hgjk`mc@O#-)Z_DG-Ld#dug-81BuSrI0!$w9sb?Co%T?%(
z4Vc7`6R@nsDC*OCGCR*)UlDJX1^guMCtn*vdKs~x2b73jxL!B<P(_sH+rvelP56{p
zE=W=yQUZ_J_qFhswl;W1g>OkXkbkl&zqUsr1Ri39dz7N05TxW@bejHBV%KkaA|xan
z8}9GN87wS<?vO-aTf!o7aWQ6H7bL+)Yt0o`6%+HB6!UdhNT~ehaM%0zToBFEI@>J9
z68d}%HW0<6NfLa?F@9?Hr95K^kZKAF3NUC$SnpQ3Un@Im82O60xL9XO@W(xha140B
zH!@PLTgXb=^@tz}!Bzp#`Cx;db#d_wB|yDq)?@-r;9v{%$^suNHYWC%9}Y1wZQSQ5
zhpiL)vY+tOOcxzFI7stoZN7%h1non4zWsWJ6XVm8J62ZThevPIv%I&MaT`oWpFxs{
z*@*(zsQ!{7;oj5)C8gmn?cV{roavvMDqN2D5F8z6X6*h5VyB`TC)vk;j8!(yp|z6k
z8?{Hv%2&JN&W_oheofDh>fA$fcG|3UWx5|KMyWL0L0#m9RY;wcS#_7tAi-2Gb8NWy
zM$J3)!9g_1Pv^(=1Z*X_xo5CrCQobuqT4zNxJ|mAI1anvKgo8Rx`Ts3Mn}WgS4N)+
zv70;OAAjp!-$3{-h^d(0mYD@i>|$CLwpdoyAX{f4GlTvo_Rm;(+!mW#Awo&w?^{Gf
zd-aNlD;xqaenQq@w2E@W%%GafJ-eNw|5ey|$5Y+^|G%p;lS)}-BqU^KhY*q-LT1R0
z$ezgxh0G9=b*z-V3)zl6vy#1KWE`B|^U%0Hzw2{-KmDy+dY|!rzn;&><9_!bz}qQw
zl7V0GYyPS6BxZB-(F+}X9_LC<zwz&wbKF>YK7DK%%A6{_-N~dRyVlK{>lK6N@dIL~
zuBt?szwWzwnG2cC;Z4fh+X84zKIPcLfH{%iC0&o5<j7_uGt1syT><(j^+0S)nSvdO
zH`ajNP-bFqG?6VN8h8wRX0m6$SrN`2#kSJwm|7l&YGRbD+x?`~95F~9Uw?EgVRR*z
zaV>?8p4V;nJB0Efx12RJ)P>&7n}j*f{)#vb^JGm?Rid~r6aqW$&q4Bri=s$MM_&H9
zq)c<e>8m#~GqSEeL)u}2K0%bc&iNPdv886YHxj*MAc5-S<3qQ4QgFu1+~EDMWxt}X
z;lHkl1oDJaq1q%|#0~qHpvIPdxBUq~#^gt+{9r|!^sLw6MIqv1lq18s`r2h1n~7y{
zQnRz1fqI~+Mbc4AzwiFY7`96PQKgxf=TUz8j*j-&1-b^MN3&kk*_wJHG<+O{tdzfZ
zL}X@WqAb6+L@bhtRRfm^3j_+sPDFJWaN(agrM<W5L5lW0e!aS*AOTMxN}4y@^GH<4
z>9p$0_FjIU_6RyVJq5kRS8w0uX^kmz+rKkb6`vA89PNVzDg*DR@tZ<oD#dyF)1XAS
zx;3jTL>b32-zOtefm@fO^)a3<h*E&=met<GS<b+LucBT?g8X=$x)%NIDhhZno^1`(
zOWnC+vsO=i!PfbtC&-pqgn%A`dQ=R-@TmfG_>eX?H9MfU#$nc0mCOT6Jl*M52}vp5
zYu8K=>Bw0AE}&q6&I9U{ijd<1IDLCio3IyALud_%#`@LoiJ^wdT{f$GG8Ny6=zTKL
z)EpeEX;fh=u=oM@iQ^1^J&J#|we`Zhx7{Qk#AtG2TCQ<rWsfLg5MWpv?@mu^i*Iaf
ziXkJH%P->PWH;e53)=DiZ!>kB-C#^$8ou<GpZ^YE&wmiU4fy+5G+(Y;RW2Y?)8Fz=
ze@jBuTcKRCwH{_A$q-kZg$CUMdO2Zv1l``GcN&_=w@3}H(P68oY9l8LwOk6CZB|zi
z-I>6_e@<|+FG~x`yry<?$S&hH1U?OLZ{UK|GSDOAIBFgb@@zQ)fn}jpTOLY=bD#Z1
zK<za>-*>9LqvX+KQ?FH}w6sE6M%m5VcWmOyQ1Da;G&x;0wQ0DWq1?A8Q}PP`OzWSs
z^F-)#CeYO?Z#x{-(D~&0WJGV#feE)?3R6QF>BjO!j=g7MmTsJ9HvaIHp?qALA%_s^
z9{Ecoy!{Qg<nKnlPWB1y?95+ZkM2qnl#9=TN~D2liBT;+i=7?hUV+R4I69CPp<wd0
zVQUA8;z8?=*Gs*<GjeU*@85r5S0*zD&xqA=e+*@`^LCfkTX7HQA++U~Py%vPv0DZ@
zJLca*ftq#9V>*4VXo-7N48YJ>IQUat3nGVk+I7n=rMuA<9J@w0)q&cf+Pz6XJuR6^
z|It{mwASV|LJHJnJa0@ZvtdC&m`dP6UtqyAs|yLZQT_WU64=re#PWLVt+jobqRb@<
z4Q0yAz@Gi6?yY)5ORK#0x_O-1KkG56608Dxy!sfE-+q$RQ-d)TFqefiuwA{%$U^UP
z<IWu-%N&An+?hC#;kb@h`v9Ucmr~FcF`jZ=G5CVHF{v}E@GJe=P-VrqNW*ZpxfRVJ
zY7?f+PLZ(VfX>*?{dSzg1@$sJ6yl?4>)Gi(CvoYTZ>cSJw6{Ovx^9bzuR^4z@GAw+
z>z|XBQC6-rm1t;~F&Sx2onC%kzU#_);|}<lvP=f3gcB5!I=&|Drsh=cfW89b9`f=E
zrVzA;Iyt;j*}f;e+-7V`e-~b$J)j~g-`etdV${5Ee-~xdFY>kO7^nx&Pz9$aBh+=2
ztWi~7^F>y9F{jQ2Klk6ZMDJ4*QaZ0}aZt>=tr|M2g!@F3Yl|J_F=b2-&(8<z?kFCC
zMaOtc!zaC+WNEbaNB8wD>tgZZnI&qE>&^@6*3yl{9_Ym~hp<@BE~=e92NUryQ9eF$
zSocHp8JYnnN(rm5J>=6%9VBF3U2odv|7YNx&E9H(;Ad=w5tb6@rIm%C#%5e@Cm(dS
zme73!eZ=xOWKw$hT7innsC-l~YU5Xxh-YKs_APmmc!!1lL~+Bj^08#(FF%uB;K5C6
zq=A8--_4udy}g|#*N9f;j+FbozN|2^y*&-xig<6Iy`AX<VFm^8y|uY5SG4tJ(J-ss
zmXYR{i-uy1>$jnj^%hxp^-|WRUXb&zD&1;WW{^Mb<9#(w(BVlT4?oS5<zuOml9jwx
zBX|T^Cc@RW;RPGMs+oLRO8_8pN6oW2jt~cuDxBvf%=l_K3KT-mHj#}s5!i{dq}q4|
zR`S|q40fh~F6ogU?0vcwl?Ti1vw?oN>T_b6k6)th^Cu+Q?njn4uwGN22oM26RLV@!
zcRq$2paQr2l3@4_9aLqz<<ncVR+tRGXtu0Mt3Di%+)kfck5N|marSV#Jtq#V{LeAH
zm9D(dDx{kwyE@NOS}c6|*|Q+wg+=7}_sd@f%UIPf?wnul*sZRv5ZOCU-GoC(_Wr@J
z0MVKlBIgqvQO^C^*_~V;{Adn5+XamkDF_%ms!x?O41aK#t+BTp20_|i18~!aPeF{m
zMSg#+#Czl5nJ=2S?*8`6gK6(l3tNXNb0^4ov+mi=C3s+NJS1}N(}$CrIPZCbOWt3)
zYxf`Mt-KM1b76?%ISM#;+{7;f@e}PaA(LxgY;kZ1B5Bqw--99~?$w{%{`svPIn|^h
z!u=Ls3CS<&8U>_B!CQaDu~F=xIid-)N(u?pk9Ij|5}0XB&raHb8{tB;Lvqxwe;)cV
z0;N=JVTPR3e1cpv>vbOjJkZ)ITC%F;_`(UxE^9`hNDQGeGBSEW-E_v8l!N?vgiMs!
zB_^K8@Haa0qB`!7LS82K>GLUS|2>lJ&ph+1$e`A<;YiN@kKT@&W?e+vG-|ZuaqTEI
z5j^|`f~*AmDguB9kT?jzZ_8yP0!NNYU|}g6j4upnF^zT!Y?DCP;8zAf&#mns6i-CS
zlAWr(LwopPqVd*ggn=_0(Bo2N$%XWfCv)ZIZ7z&b$A;X<&<Q|}QHVUA8cLA?>m&F^
zLB*Dlv0f@V4v<uOdZ9h2QEGQ3oam-~1yqI9)JLB`Z%!eLKi_2P!k-Pi270~FMeB!^
zKK}@*ue6<wuyQ6Le((Ukozh*=T}JcJ!w{Rt+y~H?lqC+|lt3+Z%624&`)4GJI(u~!
zerL*q2bjCv%=dAa@Fo|^!Tbfpbh>Wny}dUVg%d`>XNKMrmCJm1$$LaPot*q<d6zTi
z`rH{{nAJ5kiClals}Igr$c?|P*x;zSM9b^sSX@>b>cr%t6>CMqNqd0~pqoCl!jLF{
z^G3aV+$En0jh_wQ#l550KHi_&p3TevaOGF~)BE&MZCz?*b)n#Cm$fPQn%miNZh+O$
z?ChL885ee?KO@tX5T!_H(mG*bLBUxV??fgd%R)f@rnub0?AQxIt2f-vzk|#jNgzx7
z#`h{c4J#OE#y&4ZLGc(MtKNO}=TyL+>IUmxXCC$5=%Ujl(=du-iL~_AO&Lc0h%0e?
zX^0vd%;Cx=?alXvi+LEY*kFc_uoyzl>avcc;p7CIgd<)?NK6XeOzVnElLdF*5j<GS
zSK^I7Km<b_?Q{?zQQ=u=LmZPWESR;cH^A@e>D_m3j$FLJOGwQlt5rTcDlLKK1E($=
z`^6Z3Hvw!23;YTSDCVqQMn&OePJf5}1y^qFovto(GxJ14U}F`gP62K*IVHJ47`NgA
z<P+wSeuWf%u(`y-O**CCQv{{6-*24?uo1w<X$GTj_Y`n;*{`SNO({j+WfgI1$atqC
zaNovRbRXoeFz`;tr-8Jxd&QO;4C9;_ysMBmjZ^oQJXnMU^E}&lyW3qy@5jXXN54W`
zDX4$^e){h!wZXFKAgkiYW`4WPNZtOh+zcku%a0+OC1F6RGBI)Mp`MnCqE?G9`Quq4
zqU7Tn#Y+KEG~FJMq}WixTpYMgV1v`FnO>u=tzQsu2(6iX_c(r$(^<>(!2>b*%c?9B
z?k!yCG#YAo7pw1lI2ni%*j}>K2eFcIQOSpfMwM*`)7A-;=1B!5W+a4#g+fd?$-jW(
zo&4z%%+n4>wY;qC0zB}5(`u+=T=?~z?B)BUS90Ec`4P2=6P6mx&O^f?Y#ghUB!>j?
z8vM#H@@-+I{(pw~kagQb26>!?=nWKHQ#tk`I=?qmQiCOr86to@jwfYuzp_uIZCqML
zMmbss?1GXyBxOF8Ua(G&Y>C70iVwNoI|;uZlikAd*eik{Q5|oraI0hXq-$kC;)nEi
z@pN8^nQwdbl_MiQlB^=Yh9lggQJKvq1*lJe#t+cfE-A+)M~6O8jo_^o2QzqEQ9}DS
z6|>cVY{9@YiPCsFQEdtz$STceal|)Hju`>xQK{AlePR8EvXWCsDo=rKSn)#3vu-**
zkudo-7M2p?Gd##9ql}(sBvHzdDFT57pWcl-YG04i3HgX}+jL5*CpR(q0t0<^&Js%U
z^U;y|Ry^U1qES(y@-0aJ##;r{oU(8CX0zJ|yEWY(|9(TS%inHj9rBocT^Un1#eagH
zULdCaIt>FT&keGoeF|*`_x1zSCpQh=LaH~tiCIx1=b5IO1NZue+~-3mLS^zc236qr
zLBYrZk=Vo6scd4)a8Q%rw|(PTu0ra<^M9_X4dI=qd^Ou3mviiUBO#*xAcXbvcgvwK
zD_$Ao^5A!0t2GQpQd9Gvj(8ap8YO64Bz5b~(Qcc$`StE=kUS8R(|Nftn(9ooEa`|F
zcUc(OnToUyzsM?>7ouupZo%|Le)L0B6BDa*WTgHBc0?@_;#mEs$Ybt>L@B*efPex(
zQ9*|7ux&#(REKGI%n|fr*Uha402LmRe<9qR-AbX6K5=8Gp|_!N5J^t@ovP6DI&PSb
z->nIO0N@9Dmm31~;{E85`V%!`5^`xv@%I&-nlqS|=qGp>P%-_@Bw~b+Fjs=^(ebwn
za!6jJ4!gRh!}P338}`UppkiXe{bMIT>h5>QxOk^bO$tAMQOJ4iJYwX>YZ@qnU*gu#
zkd&8Eie@qk(ymX>%AVz$P*G88%}A$8P8k+BZj_vY%+8c)MJBGk;0jEEd5~9(5xIG`
zZ;j`RrhFgmdL$#u-N*>=52k?_D=f0}u97rML$(p`yO*#EJh2EkHr1YRiGzwm;?hyw
zyoU$bFNhK1W8iz|CN%eHJ)I*U>i}GG!L4D33Ct-VuF=GWKe4E$yMGH9z!OFSXcGMc
zs-O42V*384k4ndb<1gU^4+ep^zRl74ro$tgFCS&+Ki&Py%xsktX%v?^-h=WL(pZ?B
z&3`<YrL8OAR<`JX&MX)zq}3>)uU%1=Nq_M@ezmhR)K=0+iKY>-8dUZ5_s9uCBP{Go
zz6dOVN8M<7f3?D@s0!O(Cioak?^Oy;^F(O^P%ZUMLvoSprN3=)a~YZ6<s?R{-P2Ok
zk+i=dbOHlXw|p7%a?I`9ao2&m0#X;^F)9y3i15;>hJZqi4=xToyd@_G2lxjEKMMlI
zTeP>|SIXjpe(T>K_cQ*jL87KElL(P>cGfyY@n$Urm`<l;6q490ADE+Jk0bxJT(VHS
zre<y%b6ne`bWfjzS(u?~#NtYX$5Max{P%(A`8e&bHZbW@42j&HZK@r$)Pg%2LP)^#
z^5r@U;fUCnaxn=xIaqy1NC|;T6aJfH2jSL|Xn(v2sfru_d;kw);_-V7ei|^<xe2Lb
z!_f6>1%vu#-fsjRy--~E8^WLCf7L&$Ndl{L#Gbp%E!)Io7b3K^_>fJKkRyWsXMnb5
z&Hb*=pO5!-D%}Nq4@I!VJ3lq6NBM;XTpY26{JT;`!C)sn5fEH*;D4fH%?WC`Ectob
zu!%hd8-Y-EI&<bM<uJ61oZa3V6=hz~!eyPd;F^o#zCdHmO?Tx#7npCm^Q(<4O$|1A
zyAK)~&TF7`0^T@a@IhJl)LoV@IkW!d#VJg>m(3e#WIR0y2nTqWqjhXNuHEK*TTA~N
zu;m(&wl+H~RW8BL>F8;yF=wWNyyjLUJ!<{uDa6^_FgjFQM>rI2bgQRM^(ZOjQFrEY
zsr{YyCo%tb+MoBhuJ_%prdSOLEIQ`r!0>FIoG~{MJ5N|nO3ZKbKK)vlw3+80xs%tw
z%AGV!2>!MhJYQpYv|MdA*|+r60hgT$uaW{v!j_+LJ0tLnMdz%4=ZRyLLn98t0I%Vs
z2v7Q<Q5Fel(-8BdB8b+|R1XpKWC0930D~aR41s9Gocxo`*tDoV&<a{yWl4Ygs{?O!
z@`YrkVP7sh)wo81B{OAWI*5bYWj5wW9NiyZ6HAT4`GDI2oVorb1JIbsm?=pfqJXiB
zdzaa<KencxpSC7wO-v?0tHf5dJ3u{acl8eZe861H>u>r(swayTAOUyz;2S$iK`n<w
zRtFoe!PnO>&&9GrV*L(8wVr-|1=T~6vSK*UhFG-yGq>z6_-)cBQ}*y}i_o0SGzZ58
zjr4bxyD1ZaH!73tn6QfN?09LblV_g$Peo?;Wu2=_mSMlgg4I6t^p(WqBsB3r=t-0x
zi85zoik+X8GEOE{3y1zkQ)cE-gCuNIli5t(cfRD&@flZ{Gm|nT&G3p(YXvpoHZn7(
z8}>03-8+63?p96Xyw~NV&8)-jr~6}N<#MD>JtgmQJozF~sB`b+2Hzp*ACoB<==USv
zAij-{&(!oVr*T*&M6jjF=|iDI>>oZCi~4BTdVE)hnG5mC{?APCuyIIg(Dspv!I$^_
z`88COx^5c$Y{_^6;b<kCj#)g(Q;xDs;36_S+=w%fNu7d~yPV@X_jZlA4y<8#aV3)A
z`&?vs=<Dhn13>}Zyp7mHcyTV>h2RvaASyH?;NwwC+*YWX#g)4-(~CI7?>U0K$WnV4
ziWeQ1r|uwejJN#!K23@d#bV(Es!u**`ctwo?o*<~YO&p@d-V!^){%`<C?fm`B%a2L
zc75l_`w4k43ftVkK*+s1&Gwxi2pBmKHI7_g&4#17VtZ^>ZTYR4MOsnWL!=dq9_WTk
zBMCBkAb`3m#BzAb8-8|1rLqwYtfJYebzW}Zrh(&P;;P(UhDvzENgTrD)jfsSYzXb*
zWlw)F4t|uQ@N-tf#E5Osv#t@Mjvh=Lo|fP7!J^(>u3p_6<zCs2)1VIPYyWy-wfNu`
zCTG>-kcGvFt*oF*`!Or|$F}VDv7T$ttMn+hb)T)&hT{RDBgxXD2Xe9f6rj&Z1{Cti
zuaW(LHJXRRes|WeF7{2|up|tH*(4*+!*M1<*S&mYW#psiDdFwKb~s=_&m@oc;p-bL
zhn%x+o9*00=bhC~PEGXgVoi;X$I!Y@b5)I)KxXnx&FnJyH96NvC^mfiG;)g28DlC?
z%%n6%G%>rnFU*XbFt(JsKJ2l*Yb-1h=-&aH#K?$n3ju3`wu0x?N3l%F>1U0)q7&mW
zdN{?RC(DC?g@S+)M(l#`fhT1}9#-}KL+(@3r@zjlVxXMphEjy^qjiK{b?$*m0fTV1
zXgi3t=d9rB-oRwq1Fb9nb~b(AcKK8=fb#b2P435nP*hKItG4BDfp+bGufM=v!$@A*
z`q7=&DV0@^#OIPsaezQI<$Mf!RI5$5Z~6bPZVXfh^{4@88}PdPniu0{`Ftd31s0Tk
zpoT>v!$S9a&~t#Mb2?dW6`7^Z?S{=yca2d;TuDP*^yLEEoBwY`g2U>-%t^4cyIGLH
zuMte=B@Nr6|5>9UGpn4b)~$Uf*V;yzm7RHoS%x@~ivElK5f-r-Knr7(2H3iaJ%5x2
zJrOkP0N?;)Z!%671X}jW>>=1s<?#38_E#*7XW`;=qQh}kGDM6Q`t#FqP{*KofH7%4
zxOo$tB>A|TM^^bz*M-0V0QK*$YNm(bY`OuSL+nvQ^YD&O9VTnnonyP5XIbRzrOR=%
z7E$tHq%ypG2<bsFP^mY7n^Y&SV};MZ`1HeB(qMCgfz8T!4d<rmdJmMLZ(!KQE%=(o
z_|w-*A-BJCg{b}9uTwfN8QZ+@@HsYUkS|uOI6zIrQjOPiN-#H<E};#LM9<X}ljTHY
zcHgrz6BjyK4^y+Brw4@9n?DSun482KZa!JLI2=l#K7cnjM0gJiA3uNE?eAbB=L|%!
z3)ux0u#Hn&${5`culNhJRWo*Au<Dk=Xsj@Q35uLjJvRLMm);Txa3{L!_I;XG%NuxF
zz^P<~DOc!_V(zJ!BlIuNI>vnUdwns31(oRbd9yVUk4QFM`IIj}%J#U!NV6=9&V{1|
zXaR+B@!zhtvDjM=K&U0G>dh*m@1g-0hUd8Z80?xAt;2Cm<=T+vJ25<jkPQP`$YEPA
zZIu$Ffo@-CltM=iJA26}yo2v4MA(iZI`^Gh?I)-`*qwym&slrXE^_JXXdVxm{@C)0
zqb!kVEHs&P%TWPT3By;fa@tIfRN#C>wcbz&W}2he68chMrE9N4g?H*@gObOIox_`A
zTz65Of&CaW#)>$1o+8*^(ZO_CH|s~!=)+AaAtqKvasfkJc#KRwfWYj5+`Ebdjz&G)
zFi1*0)ZD66E&~AO=L7P3%5U~GX?)zmlb><v4WljMV~IuB@GxqZ)Qh&<X!B_N8q4E4
z3Wk@J3~lZ9Sdf&Al^P)}7}8)>fpJ~ynOVs8aO1du8|hPg97SbcCfwx#YG-b05^~iE
zC4`HATUvpE9s%`xcxe>b{B$`09u99o#Z999zRb~m8A*XC7=w#VDxHEp&@YUz74@tZ
z4^(!TM#X`1oYopAvr~oH^>Asw{`JUsKKgR-f8_};GwlX=wrgVEBBhkuyjk#X_{KFm
z<2lj*qUT{&mQLx27~8Ct5y-lBs;Wr#RuW<42&3*tRw{N3ut!=uuzNpykwUN9ZFPA4
zmkZtZF<0gYT$zfKd)vC43tGL?>!Ga=s$UV*HKoYVoFTp-b6W>kML(&km3+zT$U`RQ
zh&0(%afGIwRe4rvYHC*bYl}%@;*IN6s-CCksNX-<Na&Igh$=`;e)9&B5D{VGlY>=;
z?A<-xAO^xWg&dr;ap`{_xcXm7XiE#Vx+N4$dWM*I<*VpzXMw2Zl-mi)DvD(Mu3O39
z$5q3_5tqDoihq!}EFJw#kLlAeKta71p1I+j2Q7Oc!V&GV%|&I{V1Z%jHjG)Rfo+!+
z91P)T#=jKF;0w&7@7)Lqn^)PrnW^3#%ds;*OE&>AKZZ&ia#qR+NBm&-?lLA`!43FA
zMy-W!xzL6sI#26!@WSsz^lfJix{Z8QBT(Y7X6iWsQZG0Qdi<!^{V*;Y)iHkSKJZED
zIF=GVm3<h9reIZzX{5MsnCtku=Azs~s9fhN#NK9NCe$t|wh0J}&-mimjNT>PeU@Qj
zxg4O1X}(6^1@-tTlunSWjHiq_bNbcu%j~t)F|0JAswWz+GVM;ad|zCPGR?f=@pvkS
z0nb{+=QPx=!COmaR=7v~Vr8o%+VmqzH?XbMJB{b}$WOh?;BId()$Vcvd7(Wt1{(H%
z6Vxt5HCH%oE-8H6`@zmvT%7FPch`!OCpPYNr2YIzMZ+tyt*fkT3{t8WyN#{+D4>Fc
ziG`S&LUmY0rMIE^wo<g3Qma1Y?nWPcvBX8|QQ7eV8mcKHV=am;IQN5+iXwE!NWtL_
z!6nFzROvs1K{V_%qgrB(O)Wtqh*$i9t#aFFV0RmqG>EsUy!{`zj5+i2B8Z8l2ESAv
z3$=k<OLBPlGsKlU@DgI^P5aBSRyz;d3z5CYfCKFY(+0HqVDNb?E4(|;F!&P0$Jtfj
z{cIe>Qhr2gyn=yh($=dzv^F9qr-++}qvzqS?O&r$g0}WH*Lpm*FS#1eE9FTJG_%ut
zeKXj1qqxGr_~0$qn~D(f*NYJKupWp8Cd(ayDPTH-<g%yBxaB;z5p;dVkhf%{a^vt^
zy@>RAsRi$;YH~TO7pLE)4Pe$lV`CYeBk4aMd;2=tf^mgixHLIezwVact<k`siEeA&
zmRC4xq?Nsnj{`l=pSS(aQ~i+c?u^q9I&m@m#$svO7jj+rt8CXxb!*1d$q9(go=x)i
z7m|K{;`s}512aODqF-YCTAlmj(5}wP-K8=BHmmk^-yjh-1mYp9y|u>t)Q_4z-Q}$X
zE(f(fJcGIrg^3kO>E?$1?V3|*``c-D)Yo8FGB%PV^^2W@NJAcGD0^kWmbPuyOp@`9
ze>9eNY#NkLw+f9RPDyJnSdG0|{&@bbXd9oHs80NPq}hjOe<eFud^wJ{#$oWazjrTV
z#|smq{D=|vJ$=IXGY!uBTXLgayx9wv5k58W=zo2`@$RN+D`8C*Ps?i*suYPm7XyA$
zg{H>TALjIB$y;|Pl>P44s7@eQSAhC@Vo&sd$^*vXT=5g>+fFF9IIb?r6;vrpGi56O
zy}>2z{f>KS8bFPO_R%+9>VW#}OqbBpyuB7=%1?Lt!SnltjJ&A07uVn{c`DsNqECCW
zHw-jljUKGc*C!w;x!i+>`xAukiMWLC`ABVANeTN<!uc9r&~J}9X}dxjX)xNO@2?*D
zqR^w?$D4cK`8;?1{(bdmnc-a{qlOAnz9UTTs|y2>+GVX;#VgCBB5$4ryw$h2S)E}G
zR${lUnsIMYV!v5c;dg3{nfXFfvy_y$WYrZitR%g2&z~x>>%$Mo?mUTApz2|bW2k00
zJwNlMz#c2ad!hby#pC8L<9=mCo$KeqX_#pArc1iw%%h@kq)IQ`PjJ(9HyPa-_j3--
zow!;1WC-s<A9zmBwCUWswt_~ZH3W++gxucJ(#V}C?>u?beQ$rb)Oi+}7F>3g%TVI9
zc3xRqLP5699qQ;K`AhZ72``#Sg*-M3Md&p{a8P;_=bw<BxR%VzFRpdOny<$%N4JTz
zMc+u@ELdT3`rH1GHRIvVk|7GMp2QCIP4A$iJAYwgANkng!ei4K+HeH^NK44yd?%*&
G^#1`nq_8jm

literal 0
HcmV?d00001

diff --git a/p5/images/gradescope.png b/p5/images/gradescope.png
new file mode 100644
index 0000000000000000000000000000000000000000..7441faae41d8eb98bfceeb78855b67896b1ff911
GIT binary patch
literal 61912
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

literal 0
HcmV?d00001

diff --git a/p5/images/summary.png b/p5/images/summary.png
new file mode 100644
index 0000000000000000000000000000000000000000..4a63e32ff1a29903584746aa4873373855558e7b
GIT binary patch
literal 20543
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

literal 0
HcmV?d00001

diff --git a/p5/images/table.PNG b/p5/images/table.PNG
new file mode 100644
index 0000000000000000000000000000000000000000..eb8f8ee7f0d75373fb58ab32f478e1b36655bb6a
GIT binary patch
literal 13846
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

literal 0
HcmV?d00001

diff --git a/p5/p5.ipynb b/p5/p5.ipynb
new file mode 100644
index 0000000..1e0399e
--- /dev/null
+++ b/p5/p5.ipynb
@@ -0,0 +1,2546 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "9b3ef23d",
+   "metadata": {
+    "cell_type": "code",
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "# import and initialize otter\n",
+    "import otter\n",
+    "grader = otter.Notebook(\"p5.ipynb\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "608620fe",
+   "metadata": {
+    "editable": false,
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:14:41.279817Z",
+     "iopub.status.busy": "2023-10-04T01:14:41.279817Z",
+     "iopub.status.idle": "2023-10-04T01:14:42.308930Z",
+     "shell.execute_reply": "2023-10-04T01:14:42.308930Z"
+    }
+   },
+   "outputs": [],
+   "source": [
+    "import public_tests"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "feb762da",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:14:42.312936Z",
+     "iopub.status.busy": "2023-10-04T01:14:42.312936Z",
+     "iopub.status.idle": "2023-10-04T01:14:42.316033Z",
+     "shell.execute_reply": "2023-10-04T01:14:42.316033Z"
+    }
+   },
+   "outputs": [],
+   "source": [
+    "# PLEASE FILL IN THE DETAILS\n",
+    "# enter none if you don't have a project partner\n",
+    "# you will have to add your partner as a group member on Gradescope even after you fill this\n",
+    "\n",
+    "# project: p5\n",
+    "# submitter: NETID1\n",
+    "# partner: NETID2\n",
+    "# hours: ????"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "0c018208",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "# Project 5: Investigating Hurricane Data"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "eb9d6c94",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "## Learning Objectives:\n",
+    "\n",
+    "In this project you will demonstrate how to:\n",
+    "- write fundamental loop structures,\n",
+    "- perform basic string manipulations,\n",
+    "- create your own helper functions as outlined in Lab-P5.\n",
+    "\n",
+    "**Please go through [Lab-P5](https://git.doit.wisc.edu/cdis/cs/courses/cs220/cs220-f23-projects/-/tree/main/lab-p5) before working on this project.** The lab introduces some useful techniques related to this project."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "47697cfa",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "## Testing your code:\n",
+    "\n",
+    "Along with this notebook, you must have downloaded the file `public_tests.py`. If you are curious about how we test your code, you can explore this file, and specifically the function `get_expected_json`, to understand the expected answers to the questions."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "e9754830",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "## Project Description:\n",
+    "\n",
+    "Hurricanes often count among the worst natural disasters, both in terms of monetary costs, and more importantly, human life. Data Science can help us better understand these storms. For example, take a quick look at this FiveThirtyEight analysis by Maggie Koerth-Baker: [Why We're Stuck With An Inadequate Hurricane Rating System](https://fivethirtyeight.com/features/why-were-stuck-with-an-inadequate-hurricane-rating-system/)\n",
+    "\n",
+    "For this project, you'll be analyzing data in the `hurricanes.csv` file. We generated this data file by writing a Python program to extract data from several lists of hurricanes over the Atlantic Ocean on Wikipedia (here is an [example](https://en.wikipedia.org/wiki/2022_Atlantic_hurricane_season)). You can take a look at the script `gen_csv.ipynb` yourself. At the end of the semester, you will be able to write it yourself. \n",
+    "\n",
+    "We won't explain how to use the `project` module here (the code in the `project.py` file). Refer to [Lab-P5](https://git.doit.wisc.edu/cdis/cs/courses/cs220/cs220-f23-projects/-/tree/main/lab-p5) to understand how the module works. If necessary, use the `help` function to learn about the various functions inside `project.py`. Feel free to take a look at the `project.py` code, if you are curious about how it works.\n",
+    "\n",
+    "This project consists of writing code to answer 20 questions."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "d0388404",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "## Dataset:\n",
+    "\n",
+    "The dataset you will be working with in this project is linked [here](https://git.doit.wisc.edu/cdis/cs/courses/cs220/cs220-f23-projects/-/tree/main/p5/hurricanes.csv). Be sure to look at this csv to see what it contains, and specifically what the names of the columns are.\n",
+    "\n",
+    "If needed, you can open the `hurricanes.csv` file, to verify answers to simple questions, but you must still have the correct code in your submission!"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "6a7614b2",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "## Project Requirements:\n",
+    "\n",
+    "You **may not** hardcode indices in your code unless specified in the question. If you hardcode the value of `project.count()`, the Gradescope autograder will **deduct** points. If you are not sure what hardcoding is, here is a simple test you can use to determine whether you have hardcoded:\n",
+    "\n",
+    "*If we were to change the data (e.g. add more hurricanes, remove some hurricanes, or swap some columns or rows), would your code still find the correct answer to the question as it is asked?*\n",
+    "\n",
+    "If your answer to that question is *No*, then you have likely hardcoded something. Please reach out to TAs/PMs during office hours to find out how you can **avoid hardcoding**.\n",
+    "\n",
+    "**Store** your final answer for each question in the **variable specified for each question**. This step is important because Otter grades your work by comparing the value of this variable against the correct answer.\n",
+    "\n",
+    "For some of the questions, we'll ask you to write (then use) a function to compute the answer.  If you compute the answer **without** creating the function we ask you to write, the Gradescope autograder will **deduct** points, even if the way you did it produced the correct answer.\n",
+    "\n",
+    "Required Functions:\n",
+    "- `get_month`\n",
+    "- `get_day`\n",
+    "- `get_year`\n",
+    "- `format_damage`\n",
+    "- `deadliest_in_range`\n",
+    "- `get_year_total`\n",
+    "    \n",
+    "Students are only allowed to use Python commands and concepts that have been taught in the course prior to the release of P5. Therefore, **you should not use concepts/modules such as lists, dictionaries, or the pandas module, to name a few examples**. Otherwise, the Gradescope autograder will **deduct** points, even if the way you did it produced the correct answer.\n",
+    "\n",
+    "For more details on what will cause you to lose points during code review and specific requirements, please take a look at the [Grading rubric](https://git.doit.wisc.edu/cdis/cs/courses/cs220/cs220-f23-projects/-/blob/main/p5/rubric.md)."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "63006afc",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "## Incremental Coding and Testing:\n",
+    "\n",
+    "You should always strive to do incremental coding. Incremental coding enables you to avoid challenging bugs. Always write a few lines of code and then test those lines of code, before proceeding to write further code. You can call the `print` function to test intermediate step outputs.\n",
+    "\n",
+    "We also recommend you do incremental testing: make sure to run the local tests as soon as you are done with a question. This will ensure that you haven't made a big mistake that might potentially impact the rest of your project solution. Please refrain from making multiple submissions on Gradescope for testing individual questions' answers. Instead use the local tests, to test your solution on your laptop.\n",
+    "\n",
+    "That said, it is **important** that you check the Gradescope test results as soon as you submit your project on Gradescope. Test results on Gradescope are typically available somewhere between 10 to 20 minutes after the submission."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "4d776143",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "## Project Questions and Functions:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "9bc58344",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:14:42.320041Z",
+     "iopub.status.busy": "2023-10-04T01:14:42.320041Z",
+     "iopub.status.idle": "2023-10-04T01:14:42.395082Z",
+     "shell.execute_reply": "2023-10-04T01:14:42.394041Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# it is considered a good coding practice to place all import statements at the top of the notebook\n",
+    "# please place all your import statements in this cell if you need to import any more modules for this project\n"
+   ]
+  },
+  {
+   "attachments": {
+    "table.PNG": {
+     "image/png": "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"
+    }
+   },
+   "cell_type": "markdown",
+   "id": "35d58b6f",
+   "metadata": {},
+   "source": [
+    "For the first three questions, you do not have to define any of your own functions. Use the `project` module by calling the specific function needed to solve a certain question.\n",
+    "\n",
+    "*Please Note*, indexing in python starts from **0**. Therefore, if a question asks you to use a certain value's **index**, do not be confused that with the **location** of the value in the dataset. In our dataset here,\n",
+    "\n",
+    "![table.PNG](attachment:table.PNG)\n",
+    "\n",
+    "the **index** for `1804 New England Hurricane` is 0, but the **location** is 1, and the **row number** is 2. Be sure to keep this concept in mind for *all* questions asking for the value at a particular **index**."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "56da8b79",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 1:** How **many** hurricanes does the dataset have?"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "c3589ac0",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:14:42.399077Z",
+     "iopub.status.busy": "2023-10-04T01:14:42.399077Z",
+     "iopub.status.idle": "2023-10-04T01:14:42.406296Z",
+     "shell.execute_reply": "2023-10-04T01:14:42.406296Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# compute and store the answer in the variable 'num_hurricanes'\n",
+    "\n",
+    "# display the variable 'num_hurricanes' here"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "7232d907",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q1\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "9a4bf2a5",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 2:** How many `deaths` were caused by the hurricane at index *315*?"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "968c7d78",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:14:42.434208Z",
+     "iopub.status.busy": "2023-10-04T01:14:42.434208Z",
+     "iopub.status.idle": "2023-10-04T01:14:42.438777Z",
+     "shell.execute_reply": "2023-10-04T01:14:42.438777Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# compute and store the answer in the variable 'deaths_315'\n",
+    "\n",
+    "# display the variable 'deaths_315' here"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "93dd1933",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q2\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "5cc2dce4",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 3:** What is the `name` of the hurricane at the **end** of the dataset?\n",
+    "\n",
+    "**Hint**: Your code should work even if the number of hurricanes in the dataset were to change. You **must not hardcode** the index of the last hurricane."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "4a307eb0",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:14:42.463930Z",
+     "iopub.status.busy": "2023-10-04T01:14:42.462947Z",
+     "iopub.status.idle": "2023-10-04T01:14:42.468342Z",
+     "shell.execute_reply": "2023-10-04T01:14:42.468342Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# compute and store the answer in the variable 'name_last_index'\n",
+    "\n",
+    "# display the variable 'name_last_index' here"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "3d45da9f",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q3\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "8a769290",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 4:** How **many** hurricanes in the dataset did **not** cause any `deaths`?\n",
+    "\n",
+    "**Hint:** Loop through *all* hurricanes and count the hurricanes that has *0* `deaths`."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "75341871",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:14:42.498877Z",
+     "iopub.status.busy": "2023-10-04T01:14:42.497879Z",
+     "iopub.status.idle": "2023-10-04T01:14:42.505568Z",
+     "shell.execute_reply": "2023-10-04T01:14:42.505568Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# compute and store the answer in the variable 'zero_death_hurrs'\n",
+    "\n",
+    "# display the variable 'zero_death_hurrs' here"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "bc763a6e",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q4\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "0c3a4374",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 5:** What is the **fastest** speed (in `mph`) of a hurricane in the dataset?\n",
+    "\n",
+    "**Hint**: Look at Question 26 and Question 27 in Lab-P5 on finding the maximum/minimum. Here you will have to find the function value of the function `project.get_mph`."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "0b7a9fdc",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:14:42.544318Z",
+     "iopub.status.busy": "2023-10-04T01:14:42.544318Z",
+     "iopub.status.idle": "2023-10-04T01:14:42.550279Z",
+     "shell.execute_reply": "2023-10-04T01:14:42.550279Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# compute and store the answer in the variable 'max_speed'\n",
+    "\n",
+    "# display the variable 'max_speed' here"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "05259535",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q5\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "ae0a2c35",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "### Function 1: `format_damage(damage)`\n",
+    "\n",
+    "You will notice if you look at the dataset that the damages caused by the hurricanes are not stored directly as numbers. Instead the damages have a suffix (`\"K\"`, `\"M\"`, or `\"B\"`) attached at the very end. You will have to convert these 'numbers' into integers before you can perform any mathematical operations on them. \n",
+    "\n",
+    "Since you will need to format damages for multiple hurricanes, you **must** create a general helper function that handles the `\"K\"`, `\"M\"`, and `\"B\"` suffixes. Remember that `\"K\"` stands for thousand, `\"M\"` stands for million, and `\"B\"` stands for billion. For example, your function should convert the string `\"13.5M\"` to `13500000`, `\"6.9K\"` to `6900` and so on. Note that for **some** hurricanes, the `damage` does **not** have **any** suffixes. For instance, the hurricane `Florence` at index `308` did damage `'0'`. Your function **must** also deal with such inputs, by directly typecasting them to ints. \n",
+    "\n",
+    "This function should take in the strings from the `damage` column as input, and return an **int**. Refer to Task 3.2 in Lab-P5 to understand how to slice and calculate damage.\n",
+    "\n",
+    "**Warning:** Your function `format_damage` must take in the damage as a **string**, and **not** an index. If you code your function to take in the index of a hurricane, and return the damage caused as an int, it will be useful only for this project. To make your function more useful, you must make it accept the damage itself (i.e., a string like `\"13.5M\"` or `\"6.9K\"`) as input."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "20856f22",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:14:42.568739Z",
+     "iopub.status.busy": "2023-10-04T01:14:42.568739Z",
+     "iopub.status.idle": "2023-10-04T01:14:42.574107Z",
+     "shell.execute_reply": "2023-10-04T01:14:42.574107Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "def format_damage(damage):\n",
+    "    pass # TODO: replace this with your code\n",
+    "    #TODO: use relevant intermediary variables to simplify your code\n",
+    "    #TODO: check the last character of the string `damage`\n",
+    "    #TODO: type cast the string (except for last character - use appropriate slicing) into a float\n",
+    "    #TODO: use the last character of string to determine what factor to multiply the float with\n",
+    "    #TODO: type cast the final computation to int\n",
+    "    "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "b569c767",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"format_damage\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "47b77011",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 6:** What is the `damage` (in dollars) caused by the hurricane named *Igor*?\n",
+    "\n",
+    "There is **exactly one** hurricane in this dataset named *Igor*. You **must** exit the loop, and **stop** iterating as soon as you find the hurricane named *Igor*.\n",
+    "\n",
+    "You **must** use the `format_damage` function to answer this question. Your answer **must** be an `int`. "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "dfecaff8",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:14:42.607286Z",
+     "iopub.status.busy": "2023-10-04T01:14:42.607286Z",
+     "iopub.status.idle": "2023-10-04T01:14:42.612633Z",
+     "shell.execute_reply": "2023-10-04T01:14:42.612633Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# compute and store the answer in the variable 'damage_igor'\n",
+    "\n",
+    "# display the variable 'damage_igor' here"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "feb95bd6",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q6\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "a44ffa98",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 7:** What is the **total** `damage` (in dollars) caused by all hurricanes named *Karen* in the dataset? \n",
+    "\n",
+    "There are **multiple** hurricanes in this dataset named *Karen*. You must add up the damages caused by all of them. You **must** use the `format_damage` function to answer this question."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "69cb01e1",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:14:42.645024Z",
+     "iopub.status.busy": "2023-10-04T01:14:42.644024Z",
+     "iopub.status.idle": "2023-10-04T01:14:42.650341Z",
+     "shell.execute_reply": "2023-10-04T01:14:42.650341Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# compute and store the answer in the variable 'total_damage_karen'\n",
+    "\n",
+    "# display the variable 'total_damage_karen' here"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "3a5f8759",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q7\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "28377e2a",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 8:** What is the **average** `damage` caused by hurricanes with names starting with the letter *G*?\n",
+    "\n",
+    "You should only consider hurricanes whose **first character** is `\"G\"`. Remember to search for `\"G\"` and not `\"g\"`. "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "51d0de97",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:14:42.681689Z",
+     "iopub.status.busy": "2023-10-04T01:14:42.680689Z",
+     "iopub.status.idle": "2023-10-04T01:14:42.687097Z",
+     "shell.execute_reply": "2023-10-04T01:14:42.687097Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# compute and store the answer in the variable 'average_damage_starts_g'\n",
+    "# use relevant intermediary variables to simplify your code\n",
+    "\n",
+    "# display the variable 'average_damage_starts_g' here"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "5d72b561",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q8\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "c1a6cd53",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 9:** What is the `name` of the **fastest** hurricane in the dataset?\n",
+    "\n",
+    "To break ties (if there are multiple hurricanes with the same speed), you **must** consider the **last** one you find. \n",
+    "\n",
+    "**Hint:** If you find the **index** of the fastest hurricane in Question 9 instead of just the **name** of the hurricane, you can solve Question 10 very easily using the appropriate function from the project module (i.e., without writing a new loop)."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "cee13ee3",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:14:42.719357Z",
+     "iopub.status.busy": "2023-10-04T01:14:42.718357Z",
+     "iopub.status.idle": "2023-10-04T01:14:42.724751Z",
+     "shell.execute_reply": "2023-10-04T01:14:42.724751Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# compute and store the answer in the variable 'fastest_hurricane'\n",
+    "\n",
+    "# display the variable 'fastest_hurricane' here"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "ca24b99f",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q9\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "e2e9d016",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 10:** What is the `damage` (in dollars) caused by the **fastest** hurricane (found in Question 9)?"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "d24531e5",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:14:42.762831Z",
+     "iopub.status.busy": "2023-10-04T01:14:42.761830Z",
+     "iopub.status.idle": "2023-10-04T01:14:42.766867Z",
+     "shell.execute_reply": "2023-10-04T01:14:42.766867Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# compute and store the answer in the variable 'fastest_hurricane_damage'\n",
+    "\n",
+    "# display the variable 'fastest_hurricane_damage' here"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "29b54b84",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q10\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "4a17a9ea",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "### Functions 2, 3, 4: `get_year(date)`, `get_month(date)`, and `get_day(date)`\n",
+    "\n",
+    "Now would be a good time to copy the `get_year`, `get_month`, and `get_day` functions you created in Lab-P5 to your project notebook. You will need these functions for the upcoming questions."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "647677f0",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:14:42.804133Z",
+     "iopub.status.busy": "2023-10-04T01:14:42.804133Z",
+     "iopub.status.idle": "2023-10-04T01:14:42.808029Z",
+     "shell.execute_reply": "2023-10-04T01:14:42.808029Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# copy/paste the get_year function here from your lab-p5 practice notebook\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "5960c6fd",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"get_year\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "73580d08",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:14:42.818916Z",
+     "iopub.status.busy": "2023-10-04T01:14:42.817916Z",
+     "iopub.status.idle": "2023-10-04T01:14:42.821709Z",
+     "shell.execute_reply": "2023-10-04T01:14:42.821709Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# copy/paste the get_month function here from your lab-p5 practice notebook\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "81082f1e",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"get_month\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "a2295cf0",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:14:42.832729Z",
+     "iopub.status.busy": "2023-10-04T01:14:42.831728Z",
+     "iopub.status.idle": "2023-10-04T01:14:42.835599Z",
+     "shell.execute_reply": "2023-10-04T01:14:42.835599Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# copy/paste the get_day function here from your lab-p5 practice notebook\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "fe88c1a0",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"get_day\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "b939917b",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 11:** What is the `name` of the **earliest** hurricane which caused over *1 billion* dollars in `damages`?\n",
+    "\n",
+    "You **must** use the `year` of formation of the hurricane to identify the earliest hurricane. There are **no** other hurricanes in that year which caused over 1 billion dollars in damages, so you do not have to worry about breaking ties.\n",
+    "\n",
+    "You need to find the hurricane with the earliest year of formation among those hurricanes with more than 1 billion dollars in damages. You **must not** initialize your variable to be some hurricane which caused less than 1 billion dollars in damages, such as the hurricane at index `0` for example. If you do so, you will find that you are finding the hurricane with the earliest year of formation among the hurricanes with **either** more than 1 billion dollars in damages **or** have index `0`. This is **not** what you are supposed to do.\n",
+    "\n",
+    "**Hint:** Take a look at the [lecture notes for February 20](???) if you do not remember how to find the maximum/minimum with `None` initialization. You can use `continue` statement to skip to next index in a loop. "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "b6d49c68",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:14:42.846631Z",
+     "iopub.status.busy": "2023-10-04T01:14:42.845631Z",
+     "iopub.status.idle": "2023-10-04T01:14:42.852614Z",
+     "shell.execute_reply": "2023-10-04T01:14:42.852614Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# compute and store the answer in the variable 'earliest_billion_dollar_hurr'\n",
+    "\n",
+    "# display the variable 'earliest_billion_dollar_hurr' here"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "e1e7c74f",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q11\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "26a2c264",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 12:** What is the `name` of the **most recent** hurricane which caused over *100 billion* dollars in `damages`?\n",
+    "\n",
+    "You **must** use the `year` of formation of the hurricane to identify the most recent hurricane. There are **no** other hurricanes in that year which caused over 100 billion dollars in damages, so you do not have to worry about breaking ties. You **must not** only use the indices of the hurricanes to determine the most recent hurricane (i.e., you may **not** take for granted that the hurricanes are sorted in increasing order of the date of formation)."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "352bc7cb",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:14:42.903886Z",
+     "iopub.status.busy": "2023-10-04T01:14:42.902886Z",
+     "iopub.status.idle": "2023-10-04T01:14:42.910062Z",
+     "shell.execute_reply": "2023-10-04T01:14:42.910062Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# compute and store the answer in the variable 'most_recent_100_billion_hurr'\n",
+    "\n",
+    "# display the variable 'most_recent_100_billion_hurr' here"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "42976c66",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q12\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "e52967f3",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "### Function 5: `deadliest_in_range(year1, year2)`\n",
+    "\n",
+    "This function should take in two years, `year1` and `year2` as its inputs and return the **index** of the hurricane which formed **or** dissipated between `year1` and `year2` and caused the **most** `deaths`. In case of any ties, you must return the index of the **first** hurricane in the dataset with the most deaths.\n",
+    "\n",
+    "As in Question 11 and Question 12, you **must** initialize the variable you use to store the index of the deadliest hurricane as `None`, and update it for the first time only when you come across the first hurricane in the dataset within the year range."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "1f96e06f",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:14:42.962804Z",
+     "iopub.status.busy": "2023-10-04T01:14:42.961804Z",
+     "iopub.status.idle": "2023-10-04T01:14:42.968436Z",
+     "shell.execute_reply": "2023-10-04T01:14:42.968436Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "def deadliest_in_range(year1, year2):\n",
+    "    \"\"\"\n",
+    "    deadliest_in_range(year1, year2) gets the index of the deadliest (most deaths) hurricane \n",
+    "    formed or dissipated within the given year range.\n",
+    "    year1 and year2 are inclusive bounds.\n",
+    "\n",
+    "    deadliest_in_range(year1, year2) returns the index of the worst hurricane within the year range.\n",
+    "    \"\"\"\n",
+    "    pass # TODO: replace with your code"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "f2bd8df5",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"deadliest_in_range\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "dd01ce85",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 13:** How much `damage` (in dollars) was done by the **deadliest** hurricane this century thus far (*2001 to 2023*, both inclusive)?\n",
+    "\n",
+    "Your answer **must** be an `int`. "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "a9cb1f16",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:14:43.000280Z",
+     "iopub.status.busy": "2023-10-04T01:14:42.999280Z",
+     "iopub.status.idle": "2023-10-04T01:14:43.005400Z",
+     "shell.execute_reply": "2023-10-04T01:14:43.005400Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# compute and store the answer in the variable 'damage_by_deadliest_21st_century'\n",
+    "\n",
+    "# display the variable 'damage_by_deadliest_21st_century' here"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "8b1fb468",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q13\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "d47f482e",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 14:** What was the speed (in `mph`) of the **deadliest** hurricane of the 20th century (*1901 to 2000*, both inclusive)?"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "087083c8",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:14:43.029723Z",
+     "iopub.status.busy": "2023-10-04T01:14:43.029723Z",
+     "iopub.status.idle": "2023-10-04T01:14:43.037046Z",
+     "shell.execute_reply": "2023-10-04T01:14:43.037046Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# compute and store the answer in the variable 'speed_of_deadliest_20th_century'\n",
+    "\n",
+    "# display the variable 'speed_of_deadliest_20th_century' here"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "fe726c3b",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q14\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "68375727",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 15:** In this century (*2001 to 2022*, both inclusive) how many hurricanes formed on **average**, in the `month` of *October*?\n",
+    "\n",
+    "We will leave out the year *2023* since *October* isn't yet over. Your answer must be a  **float**. You may hardcode the month (i.e., **10**) and the range of years (i.e., **2001** and **2022**) for the average calculation."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "956329f4",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:14:43.065283Z",
+     "iopub.status.busy": "2023-10-04T01:14:43.065283Z",
+     "iopub.status.idle": "2023-10-04T01:14:43.072482Z",
+     "shell.execute_reply": "2023-10-04T01:14:43.072482Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# compute and store the answer in the variable 'avg_hurricanes_in_oct'\n",
+    "\n",
+    "# display the variable 'avg_hurricanes_in_oct' here"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "e164ced1",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q15\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "2ad428f0",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "### Function 6: `get_year_total(year)`\n",
+    "\n",
+    "This function should take in `year` as its input and return the number of hurricanes that were **formed** in the given `year`."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "4e941295",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:14:43.113157Z",
+     "iopub.status.busy": "2023-10-04T01:14:43.112157Z",
+     "iopub.status.idle": "2023-10-04T01:14:43.116175Z",
+     "shell.execute_reply": "2023-10-04T01:14:43.116175Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# define the function `get_year_total` here"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "6eeb1f36",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"get_year_total\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "39dd6c24",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 16:** How **many** hurricanes were formed in the `year` *2016*?\n",
+    "\n",
+    "You **must** answer this question by calling `get_year_total`."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "72093103",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:14:43.147988Z",
+     "iopub.status.busy": "2023-10-04T01:14:43.146987Z",
+     "iopub.status.idle": "2023-10-04T01:14:43.152623Z",
+     "shell.execute_reply": "2023-10-04T01:14:43.152623Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# compute and store the answer in the variable 'total_hurricanes_2016'\n",
+    "\n",
+    "# display the variable 'total_hurricanes_2016' here"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "67b6112c",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q16\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "ac106398",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 17:** How **many** hurricanes were formed in the last `decade` (*2011 to 2020*, both inclusive)?\n",
+    "\n",
+    "You **must** answer this question by **looping** across the years in this decade, and calling the function `get_year_total`."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "e23d83a8",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:14:43.177328Z",
+     "iopub.status.busy": "2023-10-04T01:14:43.176328Z",
+     "iopub.status.idle": "2023-10-04T01:14:43.185658Z",
+     "shell.execute_reply": "2023-10-04T01:14:43.185658Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# compute and store the answer in the variable 'total_hurricanes_in_last_decade'\n",
+    "\n",
+    "# display the variable 'total_hurricanes_in_last_decade' here"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "0b8dfd7b",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q17\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "e8b1e410",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 18:** Which `year` in the 20th century (*1901 to 2000*, both inclusive) suffered the **most** number of hurricanes?\n",
+    "\n",
+    "You **must** answer this question by calling the function `get_year_total`. You **must** break ties in favor of the most recent year."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "1ed008cf",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:14:43.219103Z",
+     "iopub.status.busy": "2023-10-04T01:14:43.218103Z",
+     "iopub.status.idle": "2023-10-04T01:14:43.295977Z",
+     "shell.execute_reply": "2023-10-04T01:14:43.294972Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# compute and store the answer in the variable 'year_with_most_hurricanes'\n",
+    "\n",
+    "# display the variable 'year_with_most_hurricanes' here"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "698ce095",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q18\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "b0549041",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 19:** How **many** hurricanes lasted across at least 2 *different* `months`?\n",
+    "\n",
+    "**Hint:** You can determine if a hurricane lasted across two different months by comparing the month of formation and the month of dissipation of the hurricane. Note that there may be hurricanes which formed late in the year, and dissipated early in the next year. You may make the assumption that **no** hurricane formed in one month, lasted years, and then dissipated in the same month of a different year."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "73ecdd09",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:14:43.336127Z",
+     "iopub.status.busy": "2023-10-04T01:14:43.336127Z",
+     "iopub.status.idle": "2023-10-04T01:14:43.342379Z",
+     "shell.execute_reply": "2023-10-04T01:14:43.342379Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# compute and store the answer in the variable 'multiple_months_hurrs'\n",
+    "\n",
+    "# display the variable 'multiple_months_hurrs' here"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "8b4eabc5",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q19\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "87abb7b0",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "**Question 20:** What is the **average** `damage` caused by the **deadliest** hurricane of each year from *2001 - 2023*, both inclusive?\n",
+    "\n",
+    "You **must** use the `deadliest_in_range` function to identify the deadliest hurricane of each year, and you **must** use `format_damage` to convert the `damages` into an `int`. If two hurricanes in a year have the **same** deaths, you must break ties in favor of the hurricane that appears **first** in the dataset.\n",
+    "\n",
+    "**Hint:** For calculating average only consider the years that had a deadliest hurricane. If a particular year has no hurricanes in it (which would imply that it has no deadliest hurricane), you should skip that year from both the numerator and the denominator.\n",
+    "\n",
+    "Your answer **must** be a  **float**."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "847659ae",
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2023-10-04T01:14:43.381867Z",
+     "iopub.status.busy": "2023-10-04T01:14:43.381867Z",
+     "iopub.status.idle": "2023-10-04T01:14:43.404977Z",
+     "shell.execute_reply": "2023-10-04T01:14:43.404977Z"
+    },
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "# compute and store the answer in the variable 'average_damage_deadliest'\n",
+    "\n",
+    "# display the variable 'average_damage_deadliest' here"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "bbb1c542",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"q20\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "71144f03",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"general_deductions\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "aef41b3c",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "grader.check(\"summary\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "383310d5",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "source": [
+    "## Submission\n",
+    "It is recommended that at this stage, you Restart and Run all Cells in your notebook.\n",
+    "That will automatically save your work and generate a zip file for you to submit.\n",
+    "\n",
+    "**SUBMISSION INSTRUCTIONS**:\n",
+    "1. **Upload** the zipfile to Gradescope.\n",
+    "2. If you completed the project with a **partner**, make sure to **add their name** by clicking \"Add Group Member\"\n",
+    "in Gradescope when uploading the zip file.\n",
+    "3. Check **Gradescope** results as soon as the auto-grader execution gets completed.\n",
+    "4. Your **final score** for this project is the score that you see on **Gradescope**.\n",
+    "5. You are **allowed** to resubmit on Gradescope as many times as you want to.\n",
+    "6. **Contact** a TA/PM if you lose any points on Gradescope for any **unclear reasons**."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "97c08385",
+   "metadata": {
+    "cell_type": "code",
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "# running this cell will create a new save checkpoint for your notebook\n",
+    "from IPython.display import display, Javascript\n",
+    "display(Javascript('IPython.notebook.save_checkpoint();'))"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "400ff620",
+   "metadata": {
+    "cell_type": "code",
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "!jupytext --to py p5.ipynb"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "188213f6",
+   "metadata": {
+    "cell_type": "code",
+    "deletable": false,
+    "editable": false
+   },
+   "outputs": [],
+   "source": [
+    "public_tests.check_file_size(\"p5.ipynb\")\n",
+    "grader.export(pdf=False, run_tests=False, files=[\"p5.py\"])"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "2ae54425",
+   "metadata": {
+    "deletable": false,
+    "editable": false
+   },
+   "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.11.4"
+  },
+  "otter": {
+   "OK_FORMAT": true,
+   "tests": {
+    "deadliest_in_range": {
+     "name": "deadliest_in_range",
+     "points": 0,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('deadliest_in_range: variable to store the index of the deadliest hurricane is not initialized as `None`')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'variable to store the index of the deadliest hurricane is not initialized as `None` (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('deadliest_in_range: function does not consider all hurricanes active between `year1` and `year2`')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'function does not consider all hurricanes active between `year1` and `year2` (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('deadliest_in_range: number of hurricanes in the dataset is hardcoded')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'number of hurricanes in the dataset is hardcoded (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('deadliest_in_range: function logic is incorrect')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'function logic is incorrect (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "format_damage": {
+     "name": "format_damage",
+     "points": 0,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('format_damage: function output is incorrect when the damage has suffix `K`')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'function output is incorrect when the damage has suffix `K` (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('format_damage: function output is incorrect when the damage has suffix `M`')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'function output is incorrect when the damage has suffix `M` (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('format_damage: function output is incorrect when the damage has suffix `B`')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'function output is incorrect when the damage has suffix `B` (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('format_damage: function output is incorrect when the damage has no suffix')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'function output is incorrect when the damage has no suffix (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "general_deductions": {
+     "name": "general_deductions",
+     "points": 0,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('general_deductions: Did not save the notebook file prior to running the cell containing \"export\". We cannot see your output if you do not save before generating the zip file. This deduction will become stricter for future projects.')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'Did not save the notebook file prior to running the cell containing \"export\". We cannot see your output if you do not save before generating the zip file. This deduction will become stricter for future projects. (-3)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('general_deductions: Functions are defined more than once.')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'Functions are defined more than once. (-3)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('general_deductions: Import statements are not all placed at the top of the notebook.')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'Import statements are not all placed at the top of the notebook. (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('general_deductions: Used concepts or modules not covered in class yet.')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'Used concepts or modules not covered in class yet. (-5)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "get_day": {
+     "name": "get_day",
+     "points": 0,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('get_day: function logic is incorrect')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'function logic is incorrect (-2)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "get_month": {
+     "name": "get_month",
+     "points": 0,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('get_month: function logic is incorrect')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'function logic is incorrect (-2)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "get_year": {
+     "name": "get_year",
+     "points": 0,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('get_year: function logic is incorrect')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'function logic is incorrect (-2)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "get_year_total": {
+     "name": "get_year_total",
+     "points": 0,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('get_year_total: function logic is incorrect')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'function logic is incorrect (-2)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('get_year_total: function `get_year` is not used to answer', False)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'function `get_year` is not used to answer (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('get_year_total: number of hurricanes in the dataset is hardcoded')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'number of hurricanes in the dataset is hardcoded (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> public_tests.rubric_check('get_year_total: public tests')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q1": {
+     "name": "q1",
+     "points": 0,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q1', num_hurricanes)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q1: required function is not used', False)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'required function is not used (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> public_tests.rubric_check('q1: public tests')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q10": {
+     "name": "q10",
+     "points": 0,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q10', fastest_hurricane_damage)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q10: incorrect logic is used to answer')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'incorrect logic is used to answer (-2)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q10: tie breaking is not implemented correctly')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'tie breaking is not implemented correctly (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q10: number of hurricanes in the dataset is hardcoded')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'number of hurricanes in the dataset is hardcoded (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> public_tests.rubric_check('q10: public tests')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q11": {
+     "name": "q11",
+     "points": 0,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q11', earliest_billion_dollar_hurr)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q11: variable to store the index or name of the earliest hurricane is not initialized as `None`')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'variable to store the index or name of the earliest hurricane is not initialized as `None` (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q11: `get_year` function is not used to determine the year of formation', False)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - '`get_year` function is not used to determine the year of formation (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q11: used indices of the hurricanes to determine the earliest hurricane')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'used indices of the hurricanes to determine the earliest hurricane (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q11: hurricanes with damages <= 1B are not ignored')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'hurricanes with damages <= 1B are not ignored (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q11: number of hurricanes in the dataset is hardcoded')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'number of hurricanes in the dataset is hardcoded (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> public_tests.rubric_check('q11: public tests')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q12": {
+     "name": "q12",
+     "points": 0,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q12', most_recent_100_billion_hurr)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q12: variable to store the index or name of the most recent hurricane is not initialized as `None`')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'variable to store the index or name of the most recent hurricane is not initialized as `None` (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q12: `get_year` function is not used to determine the year of formation', False)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - '`get_year` function is not used to determine the year of formation (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q12: used indices of the hurricanes to determine the most recent hurricane')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'used indices of the hurricanes to determine the most recent hurricane (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q12: hurricanes with damages <= 100B are not ignored')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'hurricanes with damages <= 100B are not ignored (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q12: number of hurricanes in the dataset is hardcoded')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'number of hurricanes in the dataset is hardcoded (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> public_tests.rubric_check('q12: public tests')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q13": {
+     "name": "q13",
+     "points": 0,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q13', damage_by_deadliest_21st_century)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q13: functions `deadliest_in_range` and `format_damage` are not used to answer', False)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'functions `deadliest_in_range` and `format_damage` are not used to answer (-2)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q13: incorrect logic is used to answer')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'incorrect logic is used to answer (-2)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q14": {
+     "name": "q14",
+     "points": 0,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q14', speed_of_deadliest_20th_century)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q14: function `deadliest_in_range` is not used to answer', False)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'function `deadliest_in_range` is not used to answer (-2)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q14: incorrect logic is used to answer')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'incorrect logic is used to answer (-2)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q15": {
+     "name": "q15",
+     "points": 0,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q15', avg_hurricanes_in_oct)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q15: functions `get_year` and `get_month` are not used to answer', False)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'functions `get_year` and `get_month` are not used to answer (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q15: incorrect logic is used to answer')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'incorrect logic is used to answer (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q15: number of hurricanes in the dataset is hardcoded')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'number of hurricanes in the dataset is hardcoded (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> public_tests.rubric_check('q15: public tests')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q16": {
+     "name": "q16",
+     "points": 0,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q16', total_hurricanes_2016)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q16: function `get_year_total` is not used to answer', False)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'function `get_year_total` is not used to answer (-3)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> public_tests.rubric_check('q16: public tests')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q17": {
+     "name": "q17",
+     "points": 0,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q17', total_hurricanes_in_last_decade)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q17: function `get_year_total` is not used to answer', False)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'function `get_year_total` is not used to answer (-2)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q17: did not loop through the years in the last decade and hardcoded all ten years')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'did not loop through the years in the last decade and hardcoded all ten years (-2)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q17: incorrect logic is used to answer')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'incorrect logic is used to answer (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q18": {
+     "name": "q18",
+     "points": 0,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q18', year_with_most_hurricanes)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q18: `year_with_most_hurricanes` is not initialized as some year in the twentieth century, or as `None`')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - '`year_with_most_hurricanes` is not initialized as some year in the twentieth century, or as `None` (-2)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q18: function `get_year_total` is not used to determine the year with the most hurricanes', False)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'function `get_year_total` is not used to determine the year with the most hurricanes (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q18: tie breaking is not implemented correctly')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'tie breaking is not implemented correctly (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q18: incorrect logic is used to answer')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'incorrect logic is used to answer (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q19": {
+     "name": "q19",
+     "points": 0,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q19', multiple_months_hurrs)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q19: hurricanes that formed at the end of one year and dissipated at the end of the next are not considered')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'hurricanes that formed at the end of one year and dissipated at the end of the next are not considered (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q19: incorrect logic is used to answer')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'incorrect logic is used to answer (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q19: function `get_month` is not used to answer', False)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'function `get_month` is not used to answer (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> public_tests.rubric_check('q19: public tests')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q2": {
+     "name": "q2",
+     "points": 0,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q2', deaths_315)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q2: required function is not used', False)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'required function is not used (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> public_tests.rubric_check('q2: public tests')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q20": {
+     "name": "q20",
+     "points": 0,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q20', average_damage_deadliest)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q20: years with no deadliest hurricane are not ignored')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'years with no deadliest hurricane are not ignored (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q20: all hurricanes formed between 2001 and 2023 are not considered')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'all hurricanes formed between 2001 and 2023 are not considered (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q20: incorrect logic is used to answer')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'incorrect logic is used to answer (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q20: functions `deadliest_in_range` and `format_damage` are not used to answer', False)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'functions `deadliest_in_range` and `format_damage` are not used to answer (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> public_tests.rubric_check('q20: public tests')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q3": {
+     "name": "q3",
+     "points": 0,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q3', name_last_index)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q3: index of the last hurricane is hardcoded')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'index of the last hurricane is hardcoded (-3)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q3: required function is not used', False)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'required function is not used (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q4": {
+     "name": "q4",
+     "points": 0,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q4', zero_death_hurrs)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q4: incorrect logic is used to answer')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'incorrect logic is used to answer (-2)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q4: number of hurricanes in the dataset is hardcoded')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'number of hurricanes in the dataset is hardcoded (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> public_tests.rubric_check('q4: public tests')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q5": {
+     "name": "q5",
+     "points": 0,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q5', max_speed)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        },
+        {
+         "code": ">>> public_tests.rubric_check('q5: public tests')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q6": {
+     "name": "q6",
+     "points": 0,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q6', damage_igor)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q6: did not exit loop and instead iterated further after finding the hurricane')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'did not exit loop and instead iterated further after finding the hurricane (-2)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q6: number of hurricanes in the dataset is hardcoded')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'number of hurricanes in the dataset is hardcoded (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q6: `format_damage` function is not used to convert the damages into an integer', False)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - '`format_damage` function is not used to convert the damages into an integer (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q7": {
+     "name": "q7",
+     "points": 0,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q7', total_damage_karen)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q7: incorrect logic is used to answer')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'incorrect logic is used to answer (-2)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q7: number of hurricanes in the dataset is hardcoded')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'number of hurricanes in the dataset is hardcoded (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q7: `format_damage` function is not used to convert the damages into an integer', False)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - '`format_damage` function is not used to convert the damages into an integer (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q8": {
+     "name": "q8",
+     "points": 0,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q8', average_damage_starts_g)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q8: incorrect logic is used to answer')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'incorrect logic is used to answer (-2)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q8: number of hurricanes in the dataset is hardcoded')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'number of hurricanes in the dataset is hardcoded (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q8: `format_damage` function is not used to convert the damages into an integer', False)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - '`format_damage` function is not used to convert the damages into an integer (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "q9": {
+     "name": "q9",
+     "points": 0,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.check('q9', fastest_hurricane)\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q9: incorrect logic is used to answer')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'incorrect logic is used to answer (-2)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q9: tie breaking is not implemented correctly')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'tie breaking is not implemented correctly (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> \n>>> public_tests.rubric_check('q9: number of hurricanes in the dataset is hardcoded')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false,
+         "success_message": "Note that the Gradescope autograder will deduct points if your code fails the following rubric point - 'number of hurricanes in the dataset is hardcoded (-1)'. The public tests cannot determine if your code satisfies these requirements. Verify your code manually."
+        },
+        {
+         "code": ">>> public_tests.rubric_check('q9: public tests')\nAll test cases passed!\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    },
+    "summary": {
+     "name": "summary",
+     "points": 127,
+     "suites": [
+      {
+       "cases": [
+        {
+         "code": ">>> public_tests.get_summary()\nTotal Score: 100/100\n",
+         "hidden": false,
+         "locked": false
+        }
+       ],
+       "scored": true,
+       "setup": "",
+       "teardown": "",
+       "type": "doctest"
+      }
+     ]
+    }
+   }
+  },
+  "vscode": {
+   "interpreter": {
+    "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49"
+   }
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/p5/project.py b/p5/project.py
new file mode 100644
index 0000000..118e11b
--- /dev/null
+++ b/p5/project.py
@@ -0,0 +1,49 @@
+__hurricane__ = []
+
+
+def __init__():
+    import csv
+    """This function will read in the csv_file and store it in a list of dictionaries"""
+    __hurricane__.clear()
+    with open('hurricanes.csv', mode='r') as csv_file:
+        csv_reader = csv.DictReader(csv_file)
+        for row in csv_reader:
+            __hurricane__.append(row)
+
+
+def count():
+    """This function will return the number of records in the dataset"""
+    return len(__hurricane__)
+
+
+def get_name(idx):
+    """get_name(idx) returns the name of the hurricane in row idx"""
+    return __hurricane__[int(idx)]['name']
+
+
+def get_formed(idx):
+    """get_formed(idx) returns the date of formation of the hurricane in row idx"""
+    return __hurricane__[int(idx)]['formed']
+
+
+def get_dissipated(idx):
+    """get_dissipated(idx) returns the date of dissipation of the hurricane in row idx"""
+    return __hurricane__[int(idx)]['dissipated']
+
+
+def get_mph(idx):
+    """get_mph(idx) returns the mph of the hurricane in row idx"""
+    return int(__hurricane__[int(idx)]['mph'])
+
+
+def get_damage(idx):
+    """get_damage(idx) returns the damage in dollars of the hurricane in row idx"""
+    return __hurricane__[int(idx)]['damage']
+
+
+def get_deaths(idx):
+    """get_deaths(idx) returns the deaths of the hurricane in row idx"""
+    return int(__hurricane__[int(idx)]['deaths'])
+
+
+__init__()
diff --git a/p5/public_tests.py b/p5/public_tests.py
new file mode 100644
index 0000000..35a00ce
--- /dev/null
+++ b/p5/public_tests.py
@@ -0,0 +1,808 @@
+#!/usr/bin/python
+# +
+import os, json, math, copy
+from collections import namedtuple
+from bs4 import BeautifulSoup
+
+HIDDEN_FILE = os.path.join("hidden", "hidden_tests.py")
+if os.path.exists(HIDDEN_FILE):
+    import hidden.hidden_tests as hidn
+# -
+
+MAX_FILE_SIZE = 750 # units - KB
+REL_TOL = 6e-04  # relative tolerance for floats
+ABS_TOL = 15e-03  # absolute tolerance for floats
+TOTAL_SCORE = 100 # total score for the project
+
+DF_FILE = 'expected_dfs.html'
+PLOT_FILE = 'expected_plots.json'
+
+PASS = "All test cases passed!"
+
+TEXT_FORMAT = "TEXT_FORMAT"  # question type when expected answer is a type, str, int, float, or bool
+TEXT_FORMAT_UNORDERED_LIST = "TEXT_FORMAT_UNORDERED_LIST"  # question type when the expected answer is a list or a set where the order does *not* matter
+TEXT_FORMAT_ORDERED_LIST = "TEXT_FORMAT_ORDERED_LIST"  # question type when the expected answer is a list or tuple where the order does matter
+TEXT_FORMAT_DICT = "TEXT_FORMAT_DICT"  # question type when the expected answer is a dictionary
+TEXT_FORMAT_SPECIAL_ORDERED_LIST = "TEXT_FORMAT_SPECIAL_ORDERED_LIST"  # question type when the expected answer is a list where order does matter, but with possible ties. Elements are ordered according to values in special_ordered_json (with ties allowed)
+TEXT_FORMAT_NAMEDTUPLE = "TEXT_FORMAT_NAMEDTUPLE"  # question type when expected answer is a namedtuple
+PNG_FORMAT_SCATTER = "PNG_FORMAT_SCATTER" # question type when the expected answer is a scatter plot
+HTML_FORMAT = "HTML_FORMAT" # question type when the expected answer is a DataFrame
+FILE_JSON_FORMAT = "FILE_JSON_FORMAT" # question type when the expected answer is a JSON file
+SLASHES = " SLASHES" # question SUFFIX when expected answer contains paths with slashes
+
+def get_expected_format():
+    """get_expected_format() returns a dict mapping each question to the format
+    of the expected answer."""
+    expected_format = {'q1': 'TEXT_FORMAT',
+                       'q2': 'TEXT_FORMAT',
+                       'q3': 'TEXT_FORMAT',
+                       'q4': 'TEXT_FORMAT',
+                       'q5': 'TEXT_FORMAT',
+                       'q6': 'TEXT_FORMAT',
+                       'q7': 'TEXT_FORMAT',
+                       'q8': 'TEXT_FORMAT',
+                       'q9': 'TEXT_FORMAT',
+                       'q10': 'TEXT_FORMAT',
+                       'q11': 'TEXT_FORMAT',
+                       'q12': 'TEXT_FORMAT',
+                       'q13': 'TEXT_FORMAT',
+                       'q14': 'TEXT_FORMAT',
+                       'q15': 'TEXT_FORMAT',
+                       'q16': 'TEXT_FORMAT',
+                       'q17': 'TEXT_FORMAT',
+                       'q18': 'TEXT_FORMAT',
+                       'q19': 'TEXT_FORMAT',
+                       'q20': 'TEXT_FORMAT'}
+    return expected_format
+
+
+def get_expected_json():
+    """get_expected_json() returns a dict mapping each question to the expected
+    answer (if the format permits it)."""
+    expected_json = {'q1': 554,
+                     'q2': 3,
+                     'q3': 'Nicole',
+                     'q4': 91,
+                     'q5': 190,
+                     'q6': 200000000,
+                     'q7': 4948000,
+                     'q8': 703819205.882353,
+                     'q9': 'Allen',
+                     'q10': 1570000000,
+                     'q11': '1900 Galveston hurricane',
+                     'q12': 'Ian',
+                     'q13': 91600000000,
+                     'q14': 155,
+                     'q15': 1.8181818181818181,
+                     'q16': 8,
+                     'q17': 97,
+                     'q18': 1995,
+                     'q19': 153,
+                     'q20': 20052745454.545456}
+    return expected_json
+
+
+def get_special_json():
+    """get_special_json() returns a dict mapping each question to the expected
+    answer stored in a special format as a list of tuples. Each tuple contains
+    the element expected in the list, and its corresponding value. Any two
+    elements with the same value can appear in any order in the actual list,
+    but if two elements have different values, then they must appear in the
+    same order as in the expected list of tuples."""
+    special_json = {}
+    return special_json
+
+
+def compare(expected, actual, q_format=TEXT_FORMAT):
+    """compare(expected, actual) is used to compare when the format of
+    the expected answer is known for certain."""
+    try:
+        if q_format == TEXT_FORMAT:
+            return simple_compare(expected, actual)
+        elif q_format == TEXT_FORMAT_UNORDERED_LIST:
+            return list_compare_unordered(expected, actual)
+        elif q_format == TEXT_FORMAT_ORDERED_LIST:
+            return list_compare_ordered(expected, actual)
+        elif q_format == TEXT_FORMAT_DICT:
+            return dict_compare(expected, actual)
+        elif q_format == TEXT_FORMAT_SPECIAL_ORDERED_LIST:
+            return list_compare_special(expected, actual)
+        elif q_format == TEXT_FORMAT_NAMEDTUPLE:
+            return namedtuple_compare(expected, actual)
+        elif q_format == PNG_FORMAT_SCATTER:
+            return compare_flip_dicts(expected, actual)
+        elif q_format == HTML_FORMAT:
+            return compare_cell_html(expected, actual)
+        elif q_format == FILE_JSON_FORMAT:
+            return compare_json(expected, actual)
+        else:
+            if expected != actual:
+                return "expected %s but found %s " % (repr(expected), repr(actual))
+    except:
+        if expected != actual:
+            return "expected %s" % (repr(expected))
+    return PASS
+
+
+def print_message(expected, actual, complete_msg=True):
+    """print_message(expected, actual) displays a simple error message."""
+    msg = "expected %s" % (repr(expected))
+    if complete_msg:
+        msg = msg + " but found %s" % (repr(actual))
+    return msg
+
+
+def simple_compare(expected, actual, complete_msg=True):
+    """simple_compare(expected, actual) is used to compare when the expected answer
+    is a type/Nones/str/int/float/bool. When the expected answer is a float,
+    the actual answer is allowed to be within the tolerance limit. Otherwise,
+    the values must match exactly, or a very simple error message is displayed."""
+    msg = PASS
+    if 'numpy' in repr(type((actual))):
+        actual = actual.item()
+    if isinstance(expected, type):
+        if expected != actual:
+            if isinstance(actual, type):
+                msg = "expected %s but found %s" % (expected.__name__, actual.__name__)
+            else:
+                msg = "expected %s but found %s" % (expected.__name__, repr(actual))
+    elif not isinstance(actual, type(expected)) and not (isinstance(expected, (float, int)) and isinstance(actual, (float, int))):
+        msg = "expected to find type %s but found type %s" % (type(expected).__name__, type(actual).__name__)
+    elif isinstance(expected, float):
+        if not math.isclose(actual, expected, rel_tol=REL_TOL, abs_tol=ABS_TOL):
+            msg = print_message(expected, actual, complete_msg)
+    elif isinstance(expected, (list, tuple)) or is_namedtuple(expected):
+        new_msg = print_message(expected, actual, complete_msg)
+        if len(expected) != len(actual):
+            return new_msg
+        for i in range(len(expected)):
+            val = simple_compare(expected[i], actual[i])
+            if val != PASS:
+                return new_msg
+    elif isinstance(expected, dict):
+        new_msg = print_message(expected, actual, complete_msg)
+        if len(expected) != len(actual):
+            return new_msg
+        val = simple_compare(list(expected.keys()), list(actual.keys()))
+        if val != PASS:
+            return new_msg
+        for key in expected:
+            val = simple_compare(expected[key], actual[key])
+            if val != PASS:
+                return new_msg
+    else:
+        if expected != actual:
+            msg = print_message(expected, actual, complete_msg)
+    return msg
+
+
+def intelligent_compare(expected, actual, obj=None):
+    """intelligent_compare(expected, actual) is used to compare when the
+    data type of the expected answer is not known for certain, and default
+    assumptions  need to be made."""
+    if obj == None:
+        obj = type(expected).__name__
+    if is_namedtuple(expected):
+        msg = namedtuple_compare(expected, actual)
+    elif isinstance(expected, (list, tuple)):
+        msg = list_compare_ordered(expected, actual, obj)
+    elif isinstance(expected, set):
+        msg = list_compare_unordered(expected, actual, obj)
+    elif isinstance(expected, (dict)):
+        msg = dict_compare(expected, actual)
+    else:
+        msg = simple_compare(expected, actual)
+    msg = msg.replace("CompDict", "dict").replace("CompSet", "set").replace("NewNone", "None")
+    return msg
+
+
+def is_namedtuple(obj, init_check=True):
+    """is_namedtuple(obj) returns True if `obj` is a namedtuple object
+    defined in the test file."""
+    bases = type(obj).__bases__
+    if len(bases) != 1 or bases[0] != tuple:
+        return False
+    fields = getattr(type(obj), '_fields', None)
+    if not isinstance(fields, tuple):
+        return False
+    if init_check and not type(obj).__name__ in [nt.__name__ for nt in _expected_namedtuples]:
+        return False
+    return True
+
+
+def list_compare_ordered(expected, actual, obj=None):
+    """list_compare_ordered(expected, actual) is used to compare when the
+    expected answer is a list/tuple, where the order of the elements matters."""
+    msg = PASS
+    if not isinstance(actual, type(expected)):
+        msg = "expected to find type %s but found type %s" % (type(expected).__name__, type(actual).__name__)
+        return msg
+    if obj == None:
+        obj = type(expected).__name__
+    for i in range(len(expected)):
+        if i >= len(actual):
+            msg = "at index %d of the %s, expected missing %s" % (i, obj, repr(expected[i]))
+            break
+        val = intelligent_compare(expected[i], actual[i], "sub" + obj)
+        if val != PASS:
+            msg = "at index %d of the %s, " % (i, obj) + val
+            break
+    if len(actual) > len(expected) and msg == PASS:
+        msg = "at index %d of the %s, found unexpected %s" % (len(expected), obj, repr(actual[len(expected)]))
+    if len(expected) != len(actual):
+        msg = msg + " (found %d entries in %s, but expected %d)" % (len(actual), obj, len(expected))
+
+    if len(expected) > 0:
+        try:
+            if msg != PASS and list_compare_unordered(expected, actual, obj) == PASS:
+                msg = msg + " (%s may not be ordered as required)" % (obj)
+        except:
+            pass
+    return msg
+
+
+def list_compare_helper(larger, smaller):
+    """list_compare_helper(larger, smaller) is a helper function which takes in
+    two lists of possibly unequal sizes and finds the item that is not present
+    in the smaller list, if there is such an element."""
+    msg = PASS
+    j = 0
+    for i in range(len(larger)):
+        if i == len(smaller):
+            msg = "expected %s" % (repr(larger[i]))
+            break
+        found = False
+        while not found:
+            if j == len(smaller):
+                val = simple_compare(larger[i], smaller[j - 1], complete_msg=False)
+                break
+            val = simple_compare(larger[i], smaller[j], complete_msg=False)
+            j += 1
+            if val == PASS:
+                found = True
+                break
+        if not found:
+            msg = val
+            break
+    return msg
+
+class NewNone():
+    """alternate class in place of None, which allows for comparison with
+    all other data types."""
+    def __str__(self):
+        return 'None'
+    def __repr__(self):
+        return 'None'
+    def __lt__(self, other):
+        return True
+    def __le__(self, other):
+        return True
+    def __gt__(self, other):
+        return False
+    def __ge__(self, other):
+        return other == None
+    def __eq__(self, other):
+        return other == None
+    def __ne__(self, other):
+        return other != None
+
+class CompDict(dict):
+    """subclass of dict, which allows for comparison with other dicts."""
+    def __init__(self, vals):
+        super(self.__class__, self).__init__(vals)
+        if type(vals) == CompDict:
+            self.val = vals.val
+        elif isinstance(vals, dict):
+            self.val = self.get_equiv(vals)
+        else:
+            raise TypeError("'%s' object cannot be type casted to CompDict class" % type(vals).__name__)
+
+    def get_equiv(self, vals):
+        val = []
+        for key in sorted(list(vals.keys())):
+            val.append((key, vals[key]))
+        return val
+
+    def __str__(self):
+        return str(dict(self.val))
+    def __repr__(self):
+        return repr(dict(self.val))
+    def __lt__(self, other):
+        return self.val < CompDict(other).val
+    def __le__(self, other):
+        return self.val <= CompDict(other).val
+    def __gt__(self, other):
+        return self.val > CompDict(other).val
+    def __ge__(self, other):
+        return self.val >= CompDict(other).val
+    def __eq__(self, other):
+        return self.val == CompDict(other).val
+    def __ne__(self, other):
+        return self.val != CompDict(other).val
+
+class CompSet(set):
+    """subclass of set, which allows for comparison with other sets."""
+    def __init__(self, vals):
+        super(self.__class__, self).__init__(vals)
+        if type(vals) == CompSet:
+            self.val = vals.val
+        elif isinstance(vals, set):
+            self.val = self.get_equiv(vals)
+        else:
+            raise TypeError("'%s' object cannot be type casted to CompSet class" % type(vals).__name__)
+
+    def get_equiv(self, vals):
+        return sorted(list(vals))
+
+    def __str__(self):
+        return str(set(self.val))
+    def __repr__(self):
+        return repr(set(self.val))
+    def __getitem__(self, index):
+        return self.val[index]
+    def __lt__(self, other):
+        return self.val < CompSet(other).val
+    def __le__(self, other):
+        return self.val <= CompSet(other).val
+    def __gt__(self, other):
+        return self.val > CompSet(other).val
+    def __ge__(self, other):
+        return self.val >= CompSet(other).val
+    def __eq__(self, other):
+        return self.val == CompSet(other).val
+    def __ne__(self, other):
+        return self.val != CompSet(other).val
+
+def make_sortable(item):
+    """make_sortable(item) replaces all Nones in `item` with an alternate
+    class that allows for comparison with str/int/float/bool/list/set/tuple/dict.
+    It also replaces all dicts (and sets) with a subclass that allows for
+    comparison with other dicts (and sets)."""
+    if item == None:
+        return NewNone()
+    elif isinstance(item, (type, str, int, float, bool)):
+        return item
+    elif isinstance(item, (list, set, tuple)):
+        new_item = []
+        for subitem in item:
+            new_item.append(make_sortable(subitem))
+        if is_namedtuple(item):
+            return type(item)(*new_item)
+        elif isinstance(item, set):
+            return CompSet(new_item)
+        else:
+            return type(item)(new_item)
+    elif isinstance(item, dict):
+        new_item = {}
+        for key in item:
+            new_item[key] = make_sortable(item[key])
+        return CompDict(new_item)
+    return item
+
+def list_compare_unordered(expected, actual, obj=None):
+    """list_compare_unordered(expected, actual) is used to compare when the
+    expected answer is a list/set where the order of the elements does not matter."""
+    msg = PASS
+    if not isinstance(actual, type(expected)):
+        msg = "expected to find type %s but found type %s" % (type(expected).__name__, type(actual).__name__)
+        return msg
+    if obj == None:
+        obj = type(expected).__name__
+
+    try:
+        sort_expected = sorted(make_sortable(expected))
+        sort_actual = sorted(make_sortable(actual))
+    except:
+        return "unexpected datatype found in %s; expected entries of type %s" % (obj, obj, type(expected[0]).__name__)
+
+    if len(actual) == 0 and len(expected) > 0:
+        msg = "in the %s, missing" % (obj) + sort_expected[0]
+    elif len(actual) > 0 and len(expected) > 0:
+        val = intelligent_compare(sort_expected[0], sort_actual[0])
+        if val.startswith("expected to find type"):
+            msg = "in the %s, " % (obj) + simple_compare(sort_expected[0], sort_actual[0])
+        else:
+            if len(expected) > len(actual):
+                msg = "in the %s, missing " % (obj) + list_compare_helper(sort_expected, sort_actual)
+            elif len(expected) < len(actual):
+                msg = "in the %s, found un" % (obj) + list_compare_helper(sort_actual, sort_expected)
+            if len(expected) != len(actual):
+                msg = msg + " (found %d entries in %s, but expected %d)" % (len(actual), obj, len(expected))
+                return msg
+            else:
+                val = list_compare_helper(sort_expected, sort_actual)
+                if val != PASS:
+                    msg = "in the %s, missing " % (obj) + val + ", but found un" + list_compare_helper(sort_actual,
+                                                                                               sort_expected)
+    return msg
+
+
+def namedtuple_compare(expected, actual):
+    """namedtuple_compare(expected, actual) is used to compare when the
+    expected answer is a namedtuple defined in the test file."""
+    msg = PASS
+    if is_namedtuple(actual, False):
+        msg = "expected namedtuple but found %s" % (type(actual).__name__)
+        return msg
+    if type(expected).__name__ != type(actual).__name__:
+        return "expected namedtuple %s but found namedtuple %s" % (type(expected).__name__, type(actual).__name__)
+    expected_fields = expected._fields
+    actual_fields = actual._fields
+    msg = list_compare_ordered(list(expected_fields), list(actual_fields), "namedtuple attributes")
+    if msg != PASS:
+        return msg
+    for field in expected_fields:
+        val = intelligent_compare(getattr(expected, field), getattr(actual, field))
+        if val != PASS:
+            msg = "at attribute %s of namedtuple %s, " % (field, type(expected).__name__) + val
+            return msg
+    return msg
+
+
+def clean_slashes(item):
+    """clean_slashes()"""
+    if isinstance(item, str):
+        return item.replace("\\", "/").replace("/", os.path.sep)
+    elif item == None or isinstance(item, (type, int, float, bool)):
+        return item
+    elif isinstance(item, (list, tuple, set)) or is_namedtuple(item):
+        new_item = []
+        for subitem in item:
+            new_item.append(clean_slashes(subitem))
+        if is_namedtuple(item):
+            return type(item)(*new_item)
+        else:
+            return type(item)(new_item)
+    elif isinstance(item, dict):
+        new_item = {}
+        for key in item:
+            new_item[clean_slashes(key)] = clean_slashes(item[key])
+        return item
+
+
+def list_compare_special_initialize(special_expected):
+    """list_compare_special_initialize(special_expected) takes in the special
+    ordering stored as a sorted list of items, and returns a list of lists
+    where the ordering among the inner lists does not matter."""
+    latest_val = None
+    clean_special = []
+    for row in special_expected:
+        if latest_val == None or row[1] != latest_val:
+            clean_special.append([])
+            latest_val = row[1]
+        clean_special[-1].append(row[0])
+    return clean_special
+
+
+def list_compare_special(special_expected, actual):
+    """list_compare_special(special_expected, actual) is used to compare when the
+    expected answer is a list with special ordering defined in `special_expected`."""
+    msg = PASS
+    expected_list = []
+    special_order = list_compare_special_initialize(special_expected)
+    for expected_item in special_order:
+        expected_list.extend(expected_item)
+    val = list_compare_unordered(expected_list, actual)
+    if val != PASS:
+        return val
+    i = 0
+    for expected_item in special_order:
+        j = len(expected_item)
+        actual_item = actual[i: i + j]
+        val = list_compare_unordered(expected_item, actual_item)
+        if val != PASS:
+            if j == 1:
+                msg = "at index %d " % (i) + val
+            else:
+                msg = "between indices %d and %d " % (i, i + j - 1) + val
+            msg = msg + " (list may not be ordered as required)"
+            break
+        i += j
+    return msg
+
+
+def dict_compare(expected, actual, obj=None):
+    """dict_compare(expected, actual) is used to compare when the expected answer
+    is a dict."""
+    msg = PASS
+    if not isinstance(actual, type(expected)):
+        msg = "expected to find type %s but found type %s" % (type(expected).__name__, type(actual).__name__)
+        return msg
+    if obj == None:
+        obj = type(expected).__name__
+
+    expected_keys = list(expected.keys())
+    actual_keys = list(actual.keys())
+    val = list_compare_unordered(expected_keys, actual_keys, obj)
+
+    if val != PASS:
+        msg = "bad keys in %s: " % (obj) + val
+    if msg == PASS:
+        for key in expected:
+            new_obj = None
+            if isinstance(expected[key], (list, tuple, set)):
+                new_obj = 'value'
+            elif isinstance(expected[key], dict):
+                new_obj = 'sub' + obj
+            val = intelligent_compare(expected[key], actual[key], new_obj)
+            if val != PASS:
+                msg = "incorrect value for key %s in %s: " % (repr(key), obj) + val
+    return msg
+
+
+def is_flippable(item):
+    """is_flippable(item) determines if the given dict of lists has lists of the
+    same length and is therefore flippable."""
+    item_lens = set(([str(len(item[key])) for key in item]))
+    if len(item_lens) == 1:
+        return PASS
+    else:
+        return "found lists of lengths %s" % (", ".join(list(item_lens)))
+
+def flip_dict_of_lists(item):
+    """flip_dict_of_lists(item) flips a dict of lists into a list of dicts if the
+    lists are of same length."""
+    new_item = []
+    length = len(list(item.values())[0])
+    for i in range(length):
+        new_dict = {}
+        for key in item:
+            new_dict[key] = item[key][i]
+        new_item.append(new_dict)
+    return new_item
+
+def compare_flip_dicts(expected, actual, obj="lists"):
+    """compare_flip_dicts(expected, actual) flips a dict of lists (or dicts) into
+    a list of dicts (or dict of dicts) and then compares the list ignoring order."""
+    msg = PASS
+    example_item = list(expected.values())[0]
+    if isinstance(example_item, (list, tuple)):
+        val = is_flippable(actual)
+        if val != PASS:
+            msg = "expected to find lists of length %d, but " % (len(example_item)) + val
+            return msg
+        msg = list_compare_unordered(flip_dict_of_lists(expected), flip_dict_of_lists(actual), "lists")
+    elif isinstance(example_item, dict):
+        expected_keys = list(example_item.keys())
+        for key in actual:
+            val = list_compare_unordered(expected_keys, list(actual[key].keys()), "dictionary %s" % key)
+            if val != PASS:
+                return val
+        for cat_key in expected_keys:
+            expected_category = {}
+            actual_category = {}
+            for key in expected:
+                expected_category[key] = expected[key][cat_key]
+                actual_category[key] = actual[key][cat_key]
+            val = list_compare_unordered(flip_dict_of_lists(expected), flip_dict_of_lists(actual), "category " + repr(cat_key))
+            if val != PASS:
+                return val
+    return msg
+
+
+def get_expected_tables():
+    """get_expected_tables() reads the html file with the expected DataFrames
+    and returns a dict mapping each question to a html table."""
+    if not os.path.exists(DF_FILE):
+        return None
+
+    expected_tables = {}
+    f = open(DF_FILE, encoding='utf-8')
+    soup = BeautifulSoup(f.read(), 'html.parser')
+    f.close()
+
+    tables = soup.find_all('table')
+    for table in tables:
+        expected_tables[table.get("data-question")] = table
+
+    return expected_tables
+
+def parse_df_html_table(table):
+    """parse_df_html_table(table) takes in a table as a html string and returns
+    a dict mapping each row and column index to the value at that position."""
+    rows = []
+    for tr in table.find_all('tr'):
+        rows.append([])
+        for cell in tr.find_all(['td', 'th']):
+            rows[-1].append(cell.get_text().strip("\n "))
+
+    cells = {}
+    for r in range(1, len(rows)):
+        for c in range(1, len(rows[0])):
+            rname = rows[r][0]
+            cname = rows[0][c]
+            cells[(rname,cname)] = rows[r][c]
+    return cells
+
+
+def get_expected_namedtuples():
+    """get_expected_namedtuples() defines the required namedtuple objects
+    globally. It also returns a tuple of the classes."""
+    expected_namedtuples = []
+    
+    return tuple(expected_namedtuples)
+
+_expected_namedtuples = get_expected_namedtuples()
+
+
+def compare_cell_html(expected, actual):
+    """compare_cell_html(expected, actual) is used to compare when the
+    expected answer is a DataFrame stored in the `expected_dfs` html file."""
+    expected_cells = parse_df_html_table(expected)
+    try:
+        actual_cells = parse_df_html_table(BeautifulSoup(actual, 'html.parser').find('table'))
+    except Exception as e:
+        return "expected to find type DataFrame but found type %s instead" % type(actual).__name__
+
+    expected_cols = list(set(["column %s" % (loc[1]) for loc in expected_cells]))
+    actual_cols = list(set(["column %s" % (loc[1]) for loc in actual_cells]))
+    msg = list_compare_unordered(expected_cols, actual_cols, "DataFrame")
+    if msg != PASS:
+        return msg
+
+    expected_rows = list(set(["row index %s" % (loc[0]) for loc in expected_cells]))
+    actual_rows = list(set(["row index %s" % (loc[0]) for loc in actual_cells]))
+    msg = list_compare_unordered(expected_rows, actual_rows, "DataFrame")
+    if msg != PASS:
+        return msg
+
+    for location, expected in expected_cells.items():
+        location_name = "column {} at index {}".format(location[1], location[0])
+        actual = actual_cells.get(location, None)
+        if actual == None:
+            return "in %s, expected to find %s" % (location_name, repr(expected))
+        try:
+            actual_ans = float(actual)
+            expected_ans = float(expected)
+            if math.isnan(actual_ans) and math.isnan(expected_ans):
+                continue
+        except Exception as e:
+            actual_ans, expected_ans = actual, expected
+        msg = simple_compare(expected_ans, actual_ans)
+        if msg != PASS:
+            return "in %s, " % location_name + msg
+    return PASS
+
+
+def get_expected_plots():
+    """get_expected_plots() reads the json file with the expected plot data
+    and returns a dict mapping each question to a dictionary with the plots data."""
+    if not os.path.exists(PLOT_FILE):
+        return None
+
+    f = open(PLOT_FILE, encoding='utf-8')
+    expected_plots = json.load(f)
+    f.close()
+    return expected_plots
+
+
+def compare_file_json(expected, actual):
+    """compare_file_json(expected, actual) is used to compare when the
+    expected answer is a JSON file."""
+    msg = PASS
+    if not os.path.isfile(expected):
+        return "file %s not found; make sure it is downloaded and stored in the correct directory" % (expected)
+    elif not os.path.isfile(actual):
+        return "file %s not found; make sure that you have created the file with the correct name" % (actual)
+    try:
+        e = open(expected, encoding='utf-8')
+        expected_data = json.load(e)
+        e.close()
+    except json.JSONDecodeError:
+        return "file %s is broken and cannot be parsed; please delete and redownload the file correctly" % (expected)
+    try:
+        a = open(actual, encoding='utf-8')
+        actual_data = json.load(a)
+        a.close()
+    except json.JSONDecodeError:
+        return "file %s is broken and cannot be parsed" % (actual)
+    if type(expected_data) == list:
+        msg = list_compare_ordered(expected_data, actual_data, 'file ' + actual)
+    elif type(expected_data) == dict:
+        msg = dict_compare(expected_data, actual_data)
+    return msg
+
+
+_expected_json = get_expected_json()
+_special_json = get_special_json()
+_expected_plots = get_expected_plots()
+_expected_tables = get_expected_tables()
+_expected_format = get_expected_format()
+
+def check(qnum, actual):
+    """check(qnum, actual) is used to check if the answer in the notebook is
+    the correct answer, and provide useful feedback if the answer is incorrect."""
+    msg = PASS
+    error_msg = "<b style='color: red;'>ERROR:</b> "
+    q_format = _expected_format[qnum]
+
+    if q_format == TEXT_FORMAT_SPECIAL_ORDERED_LIST:
+        expected = _special_json[qnum]
+    elif q_format == PNG_FORMAT_SCATTER:
+        if _expected_plots == None:
+            msg = error_msg + "file %s not parsed; make sure it is downloaded and stored in the correct directory" % (PLOT_FILE)
+        else:
+            expected = _expected_plots[qnum]
+    elif q_format == HTML_FORMAT:
+        if _expected_tables == None:
+            msg = error_msg + "file %s not parsed; make sure it is downloaded and stored in the correct directory" % (DF_FILE)
+        else:
+            expected = _expected_tables[qnum]
+    else:
+        expected = _expected_json[qnum]
+
+    if SLASHES in q_format:
+        q_format = q_format.replace(SLASHES, "")
+        expected = clean_slashes(expected)
+        actual = clean_slashes(actual)
+
+    if msg != PASS:
+        print(msg)
+    else:
+        msg = compare(expected, actual, q_format)
+        if msg != PASS:
+            msg = error_msg + msg
+        print(msg)
+
+
+def check_file_size(path):
+    """check_file_size(path) throws an error if the file is too big to display
+    on Gradescope."""
+    size = os.path.getsize(path)
+    assert size < MAX_FILE_SIZE * 10**3, "Your file is too big to be displayed by Gradescope; please delete unnecessary output cells so your file size is < %s KB" % MAX_FILE_SIZE
+
+
+def reset_hidden_tests():
+    """reset_hidden_tests() resets all hidden tests on the Gradescope autograder where the hidden test file exists"""
+    if not os.path.exists(HIDDEN_FILE):
+        return
+    hidn.reset_hidden_tests()
+
+def rubric_check(rubric_point, ignore_past_errors=True):
+    """rubric_check(rubric_point) uses the hidden test file on the Gradescope autograder to grade the `rubric_point`"""
+    if not os.path.exists(HIDDEN_FILE):
+        print(PASS)
+        return
+    error_msg_1 = "ERROR: "
+    error_msg_2 = "TEST DETAILS: "
+    try:
+        msg = hidn.rubric_check(rubric_point, ignore_past_errors)
+    except:
+        msg = "hidden tests crashed before execution"
+    if msg != PASS:
+        hidn.make_deductions(rubric_point)
+        if msg == "public tests failed":
+            comment = "The public tests have failed, so you will not receive any points for this question."
+            comment += "\nPlease confirm that the public tests pass locally before submitting."
+        elif msg == "answer is hardcoded":
+            comment = "In the datasets for testing hardcoding, all numbers are replaced with random values."
+            comment += "\nIf the answer is the same as in the original dataset for all these datasets"
+            comment += "\ndespite this, that implies that the answer in the notebook is hardcoded."
+            comment += "\nYou will not receive any points for this question."
+        else:
+            comment = hidn.get_comment(rubric_point)
+        msg = error_msg_1 + msg
+        if comment != "":
+            msg = msg + "\n" + error_msg_2 + comment
+    print(msg)
+
+def get_summary():
+    """get_summary() returns the summary of the notebook using the hidden test file on the Gradescope autograder"""
+    if not os.path.exists(HIDDEN_FILE):
+        print("Total Score: %d/%d" % (TOTAL_SCORE, TOTAL_SCORE))
+        return
+    score = min(TOTAL_SCORE, hidn.get_score(TOTAL_SCORE))
+    display_msg = "Total Score: %d/%d" % (score, TOTAL_SCORE)
+    if score != TOTAL_SCORE:
+        display_msg += "\n" + hidn.get_deduction_string()
+    print(display_msg)
+
+def get_score_digit(digit):
+    """get_score_digit(digit) returns the `digit` of the score using the hidden test file on the Gradescope autograder"""
+    if not os.path.exists(HIDDEN_FILE):
+        score = TOTAL_SCORE
+    else:
+        score = hidn.get_score(TOTAL_SCORE)
+    digits = bin(score)[2:]
+    digits = "0"*(7 - len(digits)) + digits
+    return int(digits[6 - digit])
diff --git a/p5/rubric.md b/p5/rubric.md
new file mode 100644
index 0000000..3f07999
--- /dev/null
+++ b/p5/rubric.md
@@ -0,0 +1,139 @@
+# Project 5 (P5) grading rubric
+
+## Code reviews
+
+- The Gradescope autograder will make deductions based on the rubric provided below.
+- To ensure that you don't lose any points, you must review the rubric and make sure that you have followed the instructions provided in the project correctly.
+
+## Rubric
+
+### General guidelines:
+
+- Did not save the notebook file prior to running the cell containing "export". We cannot see your output if you do not save before generating the zip file. This deduction will become stricter for future projects. (-3)
+- Functions are defined more than once. (-3)
+- Import statements are not all placed at the top of the notebook. (-1)
+- Used concepts or modules not covered in class yet. (-5)
+- Hardcoded answers. (all points allotted for that question)
+
+### Question specific guidelines:
+
+- q1 (2)
+	- required function is not used (-1)
+
+- q2 (3)
+	- required function is not used (-1)
+
+- q3 (4)
+	- index of the last hurricane is hardcoded (-3)
+	- required function is not used (-1)
+
+- q4 (4)
+  - incorrect logic is used to answer (-2)
+  - number of hurricanes in the dataset is hardcoded (-1)
+
+- q5 (4)
+- incorrect logic is used to answer (-2)
+- number of hurricanes in the dataset is hardcoded (-1)
+
+- `format_damage` (4)
+  - function output is incorrect when the damage has suffix `K` (-1)
+	- function output is incorrect when the damage has suffix `M` (-1)
+	- function output is incorrect when the damage has suffix `B` (-1)
+	- function output is incorrect when the damage has no suffix (-1)
+
+- q6 (4)
+	- did not exit loop and instead iterated further after finding the hurricane (-2)
+	- number of hurricanes in the dataset is hardcoded (-1)
+	- `format_damage` function is not used to convert the damages into an integer (-1)
+
+- q7 (4)
+	- incorrect logic is used to answer (-2)
+	- number of hurricanes in the dataset is hardcoded (-1)
+	- `format_damage` function is not used to convert the damages into an integer (-1)
+
+- q8 (4)
+	- incorrect logic is used to answer (-2)
+	- number of hurricanes in the dataset is hardcoded (-1)
+	- `format_damage` function is not used to convert the damages into an integer (-1)
+
+- q9 (4)
+	- incorrect logic is used to answer (-2)
+	- tie breaking is not implemented correctly (-1)
+	- number of hurricanes in the dataset is hardcoded (-1)
+
+- q10 (4)
+	- incorrect logic is used to answer (-2)
+	- tie breaking is not implemented correctly (-1)
+	- number of hurricanes in the dataset is hardcoded (-1)
+
+- `get_year` (2)
+	- function logic is incorrect (-2)
+
+- `get_month` (2)
+	- function logic is incorrect (-2)
+
+- `get_day` (2)
+	- function logic is incorrect (-2)
+
+- q11 (5)
+  - variable to store the index or name of the earliest hurricane is not initialized as `None` (-1)
+	- `get_year` function is not used to determine the year of formation (-1)
+	- used indices of the hurricanes to determine the earliest hurricane (-1)
+	- hurricanes with damages <= 1B are not ignored (-1)
+	- number of hurricanes in the dataset is hardcoded (-1)
+
+- q12 (5)
+	- variable to store the index or name of the most recent hurricane is not initialized as `None` (-1)
+	- `get_year` function is not used to determine the year of formation (-1)
+	- used indices of the hurricanes to determine the most recent hurricane (-1)
+	- hurricanes with damages <= 100B are not ignored (-1)
+	- number of hurricanes in the dataset is hardcoded (-1)
+
+- `deadliest_in_range` (4)
+  - variable to store the index of the deadliest hurricane is not initialized as `None` (-1)
+	- function does not consider all hurricanes active between `year1` and `year2` (-1)
+	- number of hurricanes in the dataset is hardcoded (-1)
+	- function logic is incorrect (-1)
+
+- q13 (4)
+  - functions `deadliest_in_range` and `format_damage` are not used to answer (-2)
+	- incorrect logic is used to answer (-2)
+
+- q14 (4)
+	- function `deadliest_in_range` is not used to answer (-2)
+	- incorrect logic is used to answer (-2)
+
+- q15 (4)  
+	- functions `get_year` and `get_month` are not used to answer (-1)
+	- incorrect logic is used to answer (-1)
+	- number of hurricanes in the dataset is hardcoded (-1)
+
+- `get_year_total` (4)
+	- function logic is incorrect (-2)
+	- function `get_year` is not used to answer (-1)
+	- number of hurricanes in the dataset is hardcoded (-1)
+
+- q16 (4)
+	- function `get_year_total` is not used to answer (-3)
+
+- q17 (5)
+  - function `get_year_total` is not used to answer (-2)
+	- did not loop through the years in the last decade and hardcoded all ten years (-2)
+	- incorrect logic is used to answer (-1)
+
+- q18 (5)
+  - `year_with_most_hurricanes` is not initialized as some year in the twentieth century, or as `None` (-2)
+	- function `get_year_total` is not used to determine the year with the most hurricanes (-1)
+	- tie breaking is not implemented correctly (-1)
+	- incorrect logic is used to answer (-1)
+
+- q19 (4)
+  - hurricanes that formed at the end of one year and dissipated at the end of the next are not considered (-1)
+	- incorrect logic is used to answer (-1)
+	- function `get_month` is not used to answer (-1)
+
+- q20 (5)
+  - years with no deadliest hurricane are not ignored (-1)
+	- all hurricanes formed between 2001 and 2023 are not considered (-1)
+	- incorrect logic is used to answer (-1)
+	- functions `deadliest_in_range` and `format_damage` are not used to answer (-1)
-- 
GitLab