{ "cells": [ { "cell_type": "markdown", "metadata": { "button": false, "new_sheet": false, "run_control": { "read_only": false }, "slideshow": { "slide_type": "slide" } }, "source": [ "# Testing Graphical User Interfaces\n", "\n", "In this chapter, we explore how to generate tests for Graphical User Interfaces (GUIs), abstracting from our [previous examples on Web testing](WebFuzzer.ipynb). Building on general means to extract user interface elements and to activate them, our techniques generalize to arbitrary graphical user interfaces, from rich Web applications to mobile apps, and systematically explore user interfaces through forms and navigation elements." ] }, { "cell_type": "markdown", "metadata": { "button": false, "new_sheet": false, "run_control": { "read_only": false }, "slideshow": { "slide_type": "subslide" } }, "source": [ "**Prerequisites**\n", "\n", "* We build on the Web server introduced in the [chapter on Web testing](WebFuzzer.ipynb)." ] }, { "cell_type": "markdown", "metadata": { "button": false, "new_sheet": true, "run_control": { "read_only": false }, "slideshow": { "slide_type": "slide" } }, "source": [ "## Automated GUI Interaction\n", "\n", "In the [chapter on Web testing](WebFuzzer.ipynb), we have shown how to test Web-based interfaces by directly interacting with a Web server using the HTTP protocol, and processing the retrieved HTML pages to identify user interface elements. While these techniques work well for user interfaces that are based on HTML only, they fail as soon as there are interactive elements that use JavaScript to execute code within the browser, and generate and change the user interface without having to interact with the browser." ] }, { "cell_type": "markdown", "metadata": { "button": false, "new_sheet": true, "run_control": { "read_only": false }, "slideshow": { "slide_type": "subslide" } }, "source": [ "In this chapter, we therefore take a different approach to user interface testing. Rather than using HTTP and HTML as the mechanisms for interaction, we leverage a dedicated _UI testing framework_, which allows us to\n", "\n", "* query the program under test for available user interface elements, and\n", "* query the UI elements for how they can be interacted with.\n", "\n", "Although we will again illustrate our approach using a Web server, the approach easily generalizes to _arbitrary user interfaces_. In fact, the UI testing framework we use, *Selenium*, also comes in variants that run for Android apps." ] }, { "cell_type": "markdown", "metadata": { "button": false, "new_sheet": true, "run_control": { "read_only": false }, "slideshow": { "slide_type": "subslide" } }, "source": [ "### Our Web Server, Again\n", "\n", "As in the [chapter on Web testing](WebFuzzer.ipynb), we run a Web server that allows us to order products." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "button": false, "new_sheet": false, "run_control": { "read_only": false }, "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "import fuzzingbook_utils" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "from WebFuzzer import init_db, start_httpd, webbrowser, print_httpd_messages, print_url, ORDERS_DB" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "import html" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "db = init_db()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "This is the address of our web server:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/html": [ "
http://127.0.0.1:8801
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "httpd_process, httpd_url = start_httpd()\n", "print_url(httpd_url)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Using `webbrowser()`, we can retrieve the HTML of the home page, and use `HTML()` to render it." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "from IPython.display import display, Image" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "from fuzzingbook_utils import HTML, rich_output" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/html": [ "
127.0.0.1 - - [10/May/2019 14:52:20] \"GET / HTTP/1.1\" 200 -\n",
       "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "\n", "
\n", " Fuzzingbook Swag Order Form\n", "

\n", " Yes! Please send me at your earliest convenience\n", " \n", "
\n", " \n", " \n", " \n", "
\n", " \n", " \n", "
\n", "
\n", " \n", " \n", " \n", "
\n", " .
\n", " \n", "

\n", "
\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "HTML(webbrowser(httpd_url))" ] }, { "cell_type": "markdown", "metadata": { "button": false, "new_sheet": false, "run_control": { "read_only": false }, "slideshow": { "slide_type": "subslide" } }, "source": [ "### Remote Control with Selenium\n", "\n", "Let us take a look at the GUI above. In contrast to the [chapter on Web testing](WebFuzzer.ipynb), we do not assume we can access the HTML source of the current page. All we assume is that there is a set of *user interface elements* we can interact with." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "[Selenium](https://www.seleniumhq.org) is a framework for testing Web applications by _automating interaction in the browser_. Selenium provides an API that allows one to launch a Web browser, query the state of the user interface, and interact with individual user interface elements. The Selenium API is available in a number of languages; we use the [Selenium API for Python](https://selenium-python.readthedocs.io/index.html)." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "A Selenium *web driver* is the interface between a program and a browser controlled by the program." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "from selenium import webdriver" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "The following code starts a Firefox browser in the background, which we then control through the web driver." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "BROWSER = 'firefox'" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "**Note:** If you don't have Firefox installed, you can also set `BROWSER` to `'chrome'` to use Google Chrome instead." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "# BROWSER = 'chrome'" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "The browser is _headless_, meaning that it does not show on the screen." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "HEADLESS = True" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "**Note**: If the notebook server runs locally (i.e. on the same machine on which you are seeing this), you can also set `HEADLESS` to `False` and see what happens right on the screen as you execute the notebook cells. This is very much recommended for interactive sessions." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "def start_webdriver(browser=BROWSER, headless=HEADLESS, zoom=1.4):\n", " if browser == 'firefox':\n", " options = webdriver.FirefoxOptions()\n", " if browser == 'chrome':\n", " options = webdriver.ChromeOptions()\n", "\n", " if headless and browser == 'chrome':\n", " options.add_argument('headless')\n", " else:\n", " options.headless = headless\n", " \n", " # Start the browser, and obtain a _web driver_ object such that we can interact with it.\n", " if browser == 'firefox':\n", " # For firefox, set a higher resolution for our screenshots\n", " profile = webdriver.firefox.firefox_profile.FirefoxProfile()\n", " profile.set_preference(\"layout.css.devPixelsPerPx\", repr(zoom))\n", " gui_driver = webdriver.Firefox(firefox_profile=profile, options=options)\n", " if browser == 'chrome':\n", " gui_driver = webdriver.Chrome(options=options)\n", " \n", " return gui_driver" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "gui_driver = start_webdriver(browser=BROWSER, headless=HEADLESS)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "We set the window size such that it fits our order form exactly; this is useful for not wasting too much space when taking screen shots." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "if BROWSER == 'firefox':\n", " gui_driver.set_window_size(700, 300)\n", "if BROWSER == 'chrome':\n", " gui_driver.set_window_size(700, 210 if HEADLESS else 340)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "We can now interact with the browser programmatically. First, we have it navigate to the URL of our Web server:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "gui_driver.get(httpd_url)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "We see that the home page is actually accessed, together with a (failing) request to get a page icon:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/html": [ "
127.0.0.1 - - [10/May/2019 14:52:23] \"GET / HTTP/1.1\" 200 -\n",
       "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
127.0.0.1 - - [10/May/2019 14:52:23] \"GET /favicon.ico HTTP/1.1\" 404 -\n",
       "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "print_httpd_messages()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "To see what the \"headless\" browser displays, we can obtain a screenshot. We see that it actually displays the home page." ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "image/png": "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V65cwfLly1VYlvtaVFQU4uLikJ6ejgMHDrgaCoyIiIiIyBEDNBEREREREZELDNBERERERERELjBAExEREREREbnAAE1ERERERETkAgM0ERERERERkQsM0EREREREREQuMEATERERERERucAATUREREREROQCAzQRERERERGRCwzQRERERPkW9TsAACAASURBVERERC4wQBMRERERERG5wABNRERERERE5AIDNBEREREREZELDNBERERERERELjBAExEREREREbnAAE1ERERERETkAgM0ERERERERkQsM0EREREREREQuMEATERERERERucAATUREREREROQCAzQRERERERGRCwzQRERERERERC4wQBMRERERERG5wABNRERERERE5AIDNBEREREREZELDNBERESfl2AwCJ/Ph/7+fvT19eH9+/csLCwTvFTWB4dVHr4O4L80Ag1tAXT3B8f69Eb0+zfeAvTAwIBtCQQChukGBwct04y0t2/f4smTJ2Gn8/l8tss8ODgY8nONjY3Izc3Fzz//PFKLTABqa2uRn58/1otBnwGnY7CiogJnzpz5JOcVGp7xtE38fj86Ozvx9u1bNDQ0oL6+Hq9fv8arV69YWFgmcPmL7EF8sd+Hv8ge/FD2Dxr/bVNmHBzE/JOD2FbkR/HDoRAdDDJIEzkaTwG6ra0NHo8HQghDmTp1Kh48eGCYduXKlYZpPR4PHj16NGLL0tvbC03TIITAw4cPQ067bt062+WWJTExEd988w3a2toAAKWlpYiPj1fv5+TkjNhyT2Q7duxAdHQ0hBCIi4sb68Wh37FQx2AgEFDH/pkzZ8ZwKUkaT9skGAyip6cHL1++xPPnz9Hd3c0LXSICACzI9RnLaR8Wml+zKf8x14e//Ucf0o8O4u9O+/DLswD8gfDfRzRhjacADQw9gf7666/Vha2mafD5fLbT7tu3D0IILFmyBH6/f0SXo6KiQi2Dm6eZL168UNMnJyejvr4eZWVlOHjwoLrw0zQNtbW18Pl8ePPmjQp7DNAjo7e3F99++y2EEJg0adJYL86IGxgYQFdX11gvxrgQ7hhMTk6Gpmm4f//+J12Od+/efdL5jyejtU0+tUAggObmZtTV1Y31ohDR78z8U37MP+lTJeOkDxn/+Nu/T/1W/nHov+p1/fT/6MNfHfZh21U/+gZ5Y47I0XgL0MDQ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\n", "text/plain": [ "" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Image(gui_driver.get_screenshot_as_png())" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Filling out Forms\n", "\n", "To interact with the Web page through Selenium and the browser, we can _query_ Selenium for individual elements. For instance, we can access the UI element whose `name` attribute (as defined in HTML) is `\"name\"`." ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "name = gui_driver.find_element_by_name(\"name\")" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Once we have an element, we can interact with it. Since `name` is a text field, we can send it a string using the `send_keys()` method; the string will be translated into appropriate key strokes." ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "name.send_keys(\"Jane Doe\")" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "In the screenshot, we can see that the `name` field is now filled:" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Image(gui_driver.get_screenshot_as_png())" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "In a similar fashion, we can fill out the email, city, and ZIP fields:" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "email = gui_driver.find_element_by_name(\"email\")\n", "email.send_keys(\"j.doe@example.com\")" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "city = gui_driver.find_element_by_name('city')\n", "city.send_keys(\"Seattle\")" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "zip = gui_driver.find_element_by_name('zip')\n", "zip.send_keys(\"98104\")" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "image/png": "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JiIiIiIiItKBAZqIiIiIiIhIBwZoIiIiIiIiIh0YoImIiIiIiIh0YIAmIiIiIiIi0oEBmoiIiIiIiEiHdxKgWVhYWFhYWFhYWFhYWFhWemGAZmFhYWFhYWFhYWFhYWHRURigWVhYWFhYWFhYWFhYWFh0FAZoFhYWFhYWFhYWFhYWFhYdZUkCNBEREREREdEqxQBNREREREREpAMDNBEREREREZEODNBEREREREREOjBAExEREREREenAAE1ERERERESkAwM0ERERERERkQ4M0EREREREREQ6MEATERERERER6cAATURERERERKQDAzQRERERERGRDgzQRERERERERDowQBMRERERERHpwABNREREREREpAMDNBEREREREZEODNBEREREREREOjBAExEREREREenAAE1ERERERESkAwM0ERERERERkQ4M0EREREREREQ6MEATERERERER6cAATURERERERKQDAzQRERERERGRDgzQRERERERERDowQBMRERERERHpwABNREREREREpAMDNBEREREREZEODNBEREREREREOjBAExEREREREenwfx8ud7AMxLuBAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Image(gui_driver.get_screenshot_as_png())" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "The check box for terms and conditions is not filled out, but clicked instead using the `click()` method." ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "terms = gui_driver.find_element_by_name('terms')\n", "terms.click()" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA9AAAAE7CAYAAAA1smmAAAAgAElEQVR4nOy9eVBVSbznmf90/zNxprtjXt+J6bjxXsTtF0Q8JoKJJoYZexh6DGMImyBsxq6HYfvkaevTpmy01WpFeeVellpq6SguuD7FEQc3ShhsBheKkqbcGAVUWihXUARB2WS5y3f+oDI9673nImoJ30/EL5Rz8uTJk2e5+c385S8FCCGEEEIIIYQQEhHxuQtACCGEEEIIIYR8CVBAE0IIIYQQQgghLqCAJoQQQgghhBBCXEABTQghhBBCCCGEuIACmhBCCCGEEEIIcQEFNCGEEEIIIYQQ4gIKaEIIIYQQQgghxAUU0IQQQgghhBBCiAsooAkhhBBCCCGEEBdQQBNCCCGEEEIIIS6ITkALQaPRaDQajUaj0Wg02tgyCmgajUaj0Wg0Go1Go9FcGAU0jUaj0Wg0Go1Go9FoLowCmkaj0Wg0Go1Go9FoNBf2SQQ0IYQQQgghhBDypUEBTQghhBBCCCGEuIACmhBCCCGEEEIIcQEFNCGEEEIIIYQQ4gIKaEIIIYQQQgghxAUU0IQQQgghhBBCiAsooAkhhBBCCCGEEBdQQBNCCCGEEEIIIS6ggCaEEEIIIYQQQlxAAU0IIYQQQgghhLiAApoQQgghhBBCCHEBBTQhhBBCCCGEEOICCmhCCCGEEEIIIcQFFNCEEEIIIYQQQogLKKAJIYQQQgghhBAXUEATQgghhBBCCCEuoIAmhBBCCCGEEEJcQAFNCCGEEEIIIYS4gAKaEEIIIYQQQghxAQU0IYQQQgghhBDiAgpoQgghhBBCCCHEBRTQhBBCCCGEEEKICyigCSGEEEIIIYQQF1BAE0IIIYQQQgghLhhrAjoQCMDv94+KhUKhj1rWT01nZyfy8vJQVFQEv9//uYvjSDAYdLwnXyLhnslPwcuXL3HlyhXs2bMHy5cvx86dO1FaWorGxkZVhtevX2Pu3Lmorq7+JGUaSwQCAdy8eROnTp1Cbm4utm/fjtzcXJw6dQo1NTUIBoOfu4hhv3OBQOBzFy8i4b4JIzFCCCGEkBEzlgT0ixcvIIQYNaupqfloZf3UXLt2zXBtXq8XfX19n7tYtixdutTxnty5c+dzFy9qZs+e7Xg9H1O8DAwMIDs723A+TdMsf8+cORNJSUkQQuDkyZMfrTxjjd9++w3z58+31KnZNE3DokWL8Pz5889W1nDlW7BgwWcrl1uOHTs2qt92QgghhJARM5YEdH9/P8rLy7F58+awjadZs2Zh7dq1WLJkCaZPn67Ew1gW0Onp6ZbrO378+Oculi337t3D3Llzbe/Jr7/++rmLFzU1NTVISUn5pAL69evXiI+PNzzzL168AAD09fWhurra9rmngI6M3++3dEwIIbB+/Xrcv38fbW1tKCkpQWZmpm2azzHie/PmTZw4cQIej+eLFNCvXr1CcXExvv7664gdFWvXrkVWVhamTp2KuLg4CmhCCCGEjC5jSUDrycvLs204JSYm2qZ//vw5VqxYMWYFtF1DctmyZZ+7WI709/fb3r8v1cW4vr7+kwpovdBITk62dSP2+/3IycmhgI6CN2/eYPLkya4727Zs2WJJO2XKFPT09Hzikg+zdu1aS3m+/vrrz1KWkTJ9+nTbd2n16tW26W/duoWpU6dSQBNCCCFkdBirArqmpsa2kbVw4cKwx61bt25MCuhNmzZZ6uKP7g4dGxs7ZgS0U4fAxxDQ5mf/6NGjYdN/9dVXFNAu8Pv9mDRpkuUeHjt2LOxxixcvthyTlpb2WUaid+/e/cULaLtrEELgzJkzjscEAgHDvSOEEEIIGTFjVUA/ePBgRALa7/er0dqxJKA7OzuxbNkyaJoGn8+Hffv2fe4iRcRu1PxLdOEGPq2ANneWRLrXr1+/VvN4CwoKRr08YwU7t22v1xsxKJVTbIY1a9Z8moLryM3NtZTjS3Dh1nPw4MGoBTQANDc3U0ATQggh5MOhgAZOnTqFS5cuqb+l2+VYEtCSoaGhP0RUYDdQQI+MadOmGc4RFxeH/v7+sMesXr2aI9BhaGxstL1/GzdudHW8ndu3EAJPnz79yCU3Mp4EdCgUwg8//ICHDx+qbfI+EEIIIYSMmPEuoIPBIDRNw/Lly9W2e/fuQQiBe/fufZKyfkl0dnaioaEB7969i+o4v9+Px48fo6GhAZ2dna6OiSSgOzo60NTUNKIOgYGBAdTW1uLZs2dRHyt5+/Ytampq0NHRETHtpxTQdsHBJkyYgIaGBsdjmpqa/hACOhgM4uXLl6ivr0dLS8uIlhwKBoN48eIF6uvr8erVq1HpMJozZ47t/bty5Yqr4/Pz822Pj9Z9OhQKoaWlBY8ePYqYNhgMorGxEW/fvlXbRiqg/X4/Ghoa8Pz58w9+Zt+8eYMHDx6M+L64FdDyO15SUqK25eXlQdO0sPkHAgE0NjbiwYMHo7Lk1bt37/DgwYMRrXrg9/vx22+/obGxEQMDA47pWltbcf/+/ai/y4QQQggZAeNdQMv5onoBDUBFLF63bh0SEhIslpiYqBpXGRkZtmkSEhJQX1+v8mxoaHBM52Q//vjjBx1bUlLiuL+4uBjAsChOSkqyTbNr1y74/X7s3LkTEydONNTlxIkTcffuXcd70N3djU2bNsHn81nug1w+acuWLQbT52cnoK9cuYINGzYgISHBkFdqairq6urCPhODg4NYv369ITq1/viKiopIjxVaW1sxb948yzV5vV5kZGTgyZMntsdFEtDV1dVh72U0I5VOYk8IgSVLlqC1tdWxjPp1ocOVZ/Xq1ejs7Iz4DL569QorVqywbG9paVHn9fv9OH/+vO38YiEEYmNjsXPnTrS3tztecyAQQEFBgeXeSpsyZQo2bdpkeNb0wiocg4ODjvXppvMEeN9BYfceyGdgxowZtnWYmpoKYPgZ0ccFiI+PtxXwDx8+xNSpUw3La02cOBGFhYVRC+jjx48jMTHRUubs7Gy8efPGkHbHjh2Oz8GzZ8/Q0tKCtLQ0lY/H40Fubq6r+tPjVkDLudL6+zwwMODYgVdQUGD5xgkxHHgyLy8PoVDIkL6ioiLst3VwcBDLli2zdJgMDg6G/S5XVlaitbUVCxcutJRlxowZaG5uBjDcmXL06FF4vV7Ls64fdSeEEELIKDPeBfSMGTNsBbTk3LlziImJsc1LjiicOnXKEIhJb9evX1d5VVVV2TbOUlNTLY0gaZs3b/6gY+vq6hyFiQwu1dXVhXnz5tmmWbx4saojJwFgJ2yqq6st6+Nu3boVhw4dCrturj4gk9MSNOFMdgqYaWxsNIjumJgY7NmzB+vXrzccv27dOsdRp7KyMsMyQMnJyTh69ChmzZplqI+ioiLLsZEEdFNTEzZv3mxZZigpKQk//PADuru7bctkh1OQJb2tWrUqrCB9+/atrZiQdVdSUoJ3795Z6k9fDz/88AN6e3tx8uRJg7BNT09X1xMMBpGRkaH2ffXVV8jPz8fRo0cN90uI4U4K2bGlp62tzfKsZGZmIj8/HxMmTHCsg9mzZ7uqT/Ma6tI8Ho/re/L27VvHcty8eRPA8OiwXWeTx+NBdXW1Yz3rhd2lS5cirkttNjsB3dnZaZgK4PP5cPz4cSxfvtzwbOpHVcvLyy1iW9ovv/zi+B2N1tPHjYDu7+9X38VIHSXd3d2Gtdo1TcP69euxZ88ew/s4depUg/huamqyXR5QCIGDBw9aplJIy8vLQ319vaEzQW+5ubmO33Qhhr/7Q0NDyMrKckyjaZpjRxkhhBBCPhAxTgV0MBg0jMY4CWjAeQkifePR7/fbNlz1ArqsrMzQiBocHAQwPMJl17j0eDzo6ur64GMB2K7/ao7ObB4t0Vt8fLxtNGEhhsWYnqdPn1rqQp+mqKjIkkd6ejpmzpyJn3/+WaVzEtDr1q1DbW0t9uzZY7vf7Krc2tpqKY8+AvnKlSsN++zcasvLyy31K+9/IBCwCLVTp04Zjnfrwq1fbufw4cOWUS83dHd3295vO8vJyXFcUsnv99sKuvXr1xvSff/995Y0ZnEq6y8xMdFwTWvWrDEcpx+Zbm9vt+Q7YcIEQ76BQMAitPXnePXqlSWPhIQEzJw5E/v373dVn3v37rWtu5iYGFfHA8OjhU734MSJEypdZWWlbZpwovjVq1cAhr1UzPu8Xi+OHj2KGzduOAo6OwE9ZcoUQ5qqqiq1T98hl5qaqr5FwLC7spvnTm/nzp1zXY9AZAHd3d1t8MIIJ6CDwaBF9OtHxS9evGjYFxsbi6GhIUMeTh2UTrZ48WJ1rPnZ1VtmZqZj3vKb7/P5HO9rZmZmVPVKCCGEEJeIcSagY2NjkZ6ebhEG4QR0MBi0zcs8p80uUJBeQJ87dw5CWAXnzp07bfM/fPjwqBwLwHa0wyygT548aZvX1q1bVRo7MZGWlmbIR78UmDS9e3Rvb69l/5YtWyz1biegzemWLl1qSTN9+nRDGv0IpxACkydPNuyvra0Ne9/evXtneV7M5TDXi7kDw42A3rp1qzr2wYMHlvqIhpKSEtcNep/PZxBI4a5LiOGgZHrsAmx5PB6DUJbrD5eVlRmONdfr/PnzDfvtRpD1rsNXrlyx7DcLfHMe5vsfCbvnWYhhIR4NTp0aO3bsUGnevHljm0bTNJSWllq8QfQi3m595NOnT6v9fr/f1sXd3GFUXFxsObd+vrLZ68D8HXFyo9+zZw+2b99u2S5dkt3iJKCTk5MxZcoUS2dDOAF95MgRSz76gHuhUMiS3/bt2w152EVnF0Jgzpw5tu9hYWGhOnbRokW291ofwHLBggWO9Sm/H6dPn7bsj4+Pj6peCSGEEOISMc4EtJOFE9DDl2A9xiygU1NTLWn0Quz48eMQQhjmyb569cp2dCkuLs7gSvwhxwKwdTE3N3xPnTplSZOYmGhIY+dKGhsba0hjN6pinpNnLrdZlAHuonDfuHHD9t40NjYCAH755RfLvuzsbEMednNc4+PjlQDcuHGjZb+5UR7pPJEEtBQWmqbh/v37lroYCeXl5VG58+7atcuSh5Ogu337tkrz7Nkz2zRy/n8gEIDH44HH47E8l2ZXVXOj324e6LVr19T+FStWWPYfOXLEkIfdCJ3bucuAvcgRQmDSpEmu8wCcheXq1atVmp6eHts08lkaHBxEZmameu8uXrwIALh7967lGJ/PZ/Fw2LVrlyWdWUCbOzXM12kOiDZjxgzDfrv3X39f9+/fD03T4PF4LGLUDU4C2smcBHRnZ6fl/bATnXajwPqpBDk5Obbnle7e1dXVqk7nz59v+N2w6wD84YcfDOc/evSoJU1SUpIhzaNHj2zLQAghhJCPgBhnAnru3LloaGhAYWGhofH+KQT08+fPUVlZaThGNobNZg4O9CHHAiMX0CkpKYY0dsGQvF6vIY0+0JE0KWgldqNxZtdINwK6ra3Ntg7Onz8PAFi1apVl3549eyz1Yzfn8Pnz5wDsR0HNwdOePHliSePz+dT+cAL6xx9/VH9XV1dbyvYhtLW1WUbgw5nd0m1z5861pNO7oX733Xe2ecmR1UuXLkGIYdd7M2b3b/OyUHbTBvQuv0uWLLHsNwto/fxWaXoRHgmn6zO7k0fCaQ6wjHMAOAvoy5cvG/Iyd0TYzXs3C1sgchTuzs5Oy36zR4d5CoY+EBpgL6DXrl1ryCMYDI44mreTgD506BDu3r1rGeV2EtDmaRlCDE8lMWMXH0K/XrqdgDZ3PALWewbYC2hzYDX5/ujN7EXh9/tt64QQQgghHwExzgS0PohYT0+PGhn4FALajIwAbjazS/RoHDtaAvq3336zpNELRQC2gXXMI9Dm/WaXX8D9OtB29SDdzt24rgP2or+8vNzRfd/cIeAk5OUz4iSgpdu2tLlz59revw+luroaycnJtmXQm90InJ3XgaZpKmq3U8Cj5ORkAO9d6O2WXvL7/SgrK8OKFStQXFysOlGam5sdg2rpBbTdPHizgLZ79qNZ4/2nn36yvb5o5kADzi7c+fn5Ko2TgI609JtdR0JOTo4lXSQBffPmTdvzx8bGKrPzatDfWzsB7RTcbyS4CSKmn5bhJKDtRuPtAsvZ1a3ea8BOQC9btszVtbgR0JcvX7akMQvoQCBgWyeEEEII+QiIcSyggfei8VML6FAo5BixNtISJCM59lMKaLs1b0tLS9X+1tZWy367wF1uBbSda2xWVhYAqzuqEMbRI4ldo3/37t14+vSpbT2b1492Ej5SqDkJaDszByCLhlAohLt371qWGJJUVVVFFNJ2Ys2ug+HMmTMquN3mzZtt6/r58+cQ4r2YDsebN2+wd+9e23Ws9aYX0Hbzr1esWGHI127k1ylwmh125xAiuijcgP03RAhh8Cxxeo6c7qfEHPRLCIHvvvvOki6SgC4oKLA9f2JioqMlJSXh5cuXKg+7d8ntkmFucLuM1ddffx323HYePHaBt+wE8tSpU8PuN08TcYICmhBCCPkCEeNcQPf19UGITy+g7cSqEO5GLkZy7KcU0IFAACkpKYY0+pFxu0a82UUVcC+g7cSDDCRlNzpqNwJt1yGxefNmRwFtHk2Vz5HZZHCuaAS0pmm2o7VuGBgYgBAC3377bdh05eXltoJXCHv3Zrt7lpqaqrwNXrx4YYmoLZ8fIYyBk8y8fv0aa9euNYxsJiYm4sKFC7bu5+aozZs2bTLs1wdws5sbHKluzDiJEyHcC3G7aODSBgYGVLqRCmi753fTpk2WdJEEtN03wDxFIxJ/FAEthafTuefPn2/Jw24EevXq1ZZ0egFLAU0IIYSMM8Q4F9DA8AjmpxTQvb29tu6cmqZFdNUc6bGfUkADww26bdu2WfIyzyf0er2OEaDdCmi79YrlKK5dAKDjx4+7OldRUZFtgDEhBH777TfD8R0dHbbp5FrLTgK6qanJ9n5OmDDBMifcDVJA290TMz09PbbXbedu63R9QryfN2onVuWzqY9srOfXX3+1XH9aWpq6dv1yRNLslj26ePGiIZ+4uDhkZWVZ8l69erVBsLpFv7yY3pyeXTP6Zej0Zp6nPFIBbe6wEkJgzZo1lnSRBLTTMlrRBF37owhoGQDP6dx2wQHnzJljSffNN99Y0i1ZskTtp4AmhBBCxhmCAhpPnz41RFW1wy6vkQpop2Vx9u7da0i3du1awxI3H3LspxbQwHCjLisryyCkfD4f0tLSkJOTg/z8/LANc7cC2i7drVu3ANjPXzx48KAlD7vRWLmetJ37snmZqebmZksaTdPU/nBBxCoqKmz3RTtSCrwX0EK4m+drtwyU0+i3UzCy8vLysPWoFxt6Xr9+bTuftre3V6VxK6ABoLCw0FD3Ho8HycnJWLJkCfbv3/9BS4M9fvzY9trtIpfb4RSIzByMbqQC2u45l9MY9EQS0HbPsRDCsD57JP4oAhoA7t+/b1hOTs/58+ctedgFXpOu4Ho7dOiQ2k8BTQghhIwzBAW0K+zy6u7uNqRxI6CdGuIxMTGGKK1yaaCMjIxROfZTC+ibN2+quckej0eJ0WhwI6CHhobC3hu7OZ0bNmww5GG31qvH41GjoHZzJc2Cwm70ddq0aWp/pGWs7JZjEsI+ono49AI6LS3NEpjNjFkwaZrmeMzPP/9sKZ/X6zVEU7Zz4zaLRIndXHlzZGs3AvrFixeGNZBHM2CVHrs112NjYyPWcSAQsO1YmDdvniXtSAW0nTC2W2bLLlq3XkA7Bc0zfwcknZ2d2LRpk8H75Y8koMNhFzl/4sSJlnR2387a2lq1nwKaEEIIGWeIMSqgnaJU2zVa3WDXANYLg7dv39oGK9IHzwLs16QVQqj1XCVy5FbfEPuQY+1cUM0C2k5suhHQ5jmS9+/fN+wfaWRpOwF96dIlQxq7qME7d+5U+wOBgKVBr+9YAKACXelNHxnZblTOHOnZru70kbrfvXtne+9kx8fAwIDt9Xo8HuUG7ga9gBZCIC8vL2x681I+P/74o2PaUChkeQ+2bNliSHPnzh3D/oSEBMf87LwpNE1THRdv3761rRO9gH737p3BQ8Dr9UYUtCPF7/fbisOysrKwx505c8ZyTEJCgsWDBXBed7u1tTXsOVpaWmyP0z+DgUDAdrqDeekmO5dl8zsBAC9fvlT3Ry8o7YL6nT17Nmz5o8GuE0AIgRMnTkSd17JlyyzvmxnzM2/+nmVnZ1vKsmjRIlfnt1umjQKaEEII+YMjxqiA3rdvn22DIi4uDsFgMOr87JZDmjJlCqqrq3HkyBHHNV5nz56tAg05uerqRWowGDQ06qQY/JBjg8Gg7Txb/VIsALB8+XJLGvPosl1jTu+qDACLFi2ypElMTMS0adOQkZGBOXPmYP78+fjmm29w/Phx3L171/ae2Ikn8+ix2b0yNjbWst7qrVu3LPm8fv1a7T9x4oSlrGYRZh59NK/zal4redWqVYb9Th06endp/dI75ufMrSg0C2ghhjtK7I7v7+83iJ2EhATbtWr16NesFkIYoi9L9ILDzl3eKS/9M52Tk+P4TuXk5ODIkSPw+/04e/asZX9MTAzS09ORkZGB2bNnY968ecjKysKePXtQXV2Nd+/euapLO54+fWpx6fd4PGrNcDONjY0W74a4uDjHKSPXr1+3veZwy+FJ7Dokpk6divb2drx79852PW/5/jY1Nal8ent7HZcmmzhxIjZu3GjokDtw4IA61u75E0Jg27ZtUda0M04diU5TBcLR3d1t+TbqpySYvX40TcOrV68Medh5HqWmpro6v903bunSpYY0586ds6Qxd1rard8thHWaESGEEEJGATGGBHR/fz/KysosUXnNlpaWhsLCQlRWVroW03bCMRp78uSJbWNJiOERjXXr1mHWrFmWxpyMXjzSY1++fOnoHuz1elFYWIiBgQEcOHDAcZ3a7777Dm/evMGNGzdsg3IJIbB48WI12uU0VzacpaamGkSt+Zr1ZSstLcXTp0+xY8cOQx5xcXGOruLmEeLp06ejsbER1dXVhryTkpLQ0tJiOd7v91tGmjZt2oSWlhZL3llZWYagWbdv33ast3nz5qGurg7BYBBXrlxxvAcrV650DMSlx0nATJ48GadOncK9e/fQ0NCAoqIigxCcOHEinjx5EjF/fTRpvYu6Hr0bdzjX49u3b0d8LpzqTQiB+vp6HD58OOpnzefzObqVu+HNmzcWjw6Px4OCggIlzvv6+nDs2DHL/czIyHAUNVevXnVcYiw+Ph6FhYVhYzX09PQ4Lm/nxn744QeVV2Vlpe38dLPplwxraGjAggULbNNpmob9+/fj/v37I6rz1tZWXLhwwTZytt6++eYbFBcXR3V/a2pqDJ0+cXFxqK6uxsOHDw33w+PxGILGdXR0WL5Belu3bp1hiTLz9WzZssX2OI/Ho0bTS0pKbL0ehBjuTOzs7ERtba3jN3fu3Lkf9KwTQgghxAYxhgS005JD4ayiosJ1/gcPHrRtVKakpKCxsVGNRGiahsmTJ2PBggXYuHEjjh49iq6urhE1aisrKxEKhUZ87MmTJyOms5sLaLZr165FFMYbN24EMBwReSTl9fl8hpFSKaCPHj2KYDBoO89T2po1azA4OBj2/jU2NmLChAmOeXz77bcRR2DLysocRa6mabbLNUVq9E+dOtXRxVtvTqOceqSAjo+Px4EDBxyjR+vLfODAgai8MuQIoH6kTo9047ZbEsiM03zWtLQ01NbWor293VLfMTExqKurAzAciGwkz5oQ1kjq0VJRUWHrEm1nKSkpqK6uDpufneuz2cK52APA4OCgrQeIpmlYu3atwZ08JiYG06dPx8qVK5Gbm2sRWq2trY6jvT6fzzI9xc6V2WxTpkwZUV27+Y6ZLdL3QE93dzdmz57tmFdaWpplKkVJSYmrcoz0egD7Zfj09ssvvxgCNdrZ9OnTR1TnhBBCCHFAjCEB/Sno7OxESUkJCgoKUF5ebhhNqqqqws2bNw1BlcYjgUBgRKPQQggljADg9OnTePjwoSHv/v5+/Prrrzh9+rQaUY0kes20tbXh0qVL2LlzJ44dO4Y7d+5E1dgOhUJ4/PgxioqKsG3bNpw5cwaNjY0jmhow2gSDQezbt88wJ7W/vx/Xrl1DQUEBcnNzkZ+fj+rqarS1tY3oHPX19di9e3fY683NzXUdOK61tRWFhYXIzc3FxYsX0dzcbNjf0dGBwsJC7Nmzx/LOyXON5Fnbt29f9BdvQ1tbG06dOoWNGzdi8eLFmDVrFhYvXozvvvsOZ8+ejWoJqNGio6MDZWVlOHXqlOGb9Pr1a5w7dy6qefWvXr1CWVkZcnNzUVpaGnE+9pdMb28vqqurkZeXh71796KqqsoxijchhBBCxikU0GS0efXqlWG+ZXx8PJKSkgyWmJhoO8dVvzwMIZEYHBzE5s2bDSOjds+a3VJkM2fO/NzFJ4QQQgghXxoU0GS0SUpKUiJlzpw5YdM2NDQYRI3ZLZSQcOgDZ8XGxqqAfXZ0d3cb5tXr5+8SQgghhBDiCgpoMpqY56Sa1+y1Qz/3cyy7h5LRRy+I3SwdpJ+ne/78+U9QQkIIIYQQMqaggCajid/vN0S0TU5OdpwD2tPTY1jKSL9+MyFumDx5snp+vF6vYe63nkAggKKiIhUEcOrUqX+IOeuEEEIIIeQLgwKajDalpaWWyMmpqanIysrCN998g5kzZ2LSpElKzHg8Huzfv/9zF5t8gTx8+NDQYSOEwIQJE5CZmYnly5dj7ty5SElJMUQzXr58Obq7uz930QkhhBBCyJcIBTT5GAwMDOD48eP4+uuvkZSUBI/HA03ToGkaYmJikJiYiKysLJw4cQK9vb2fu7jkC8bv96O4uBhLly5VYlk+az6fD/Hx8cjIyMDevXtdLQVGCCGEEEKIIxTQhBBCCCGEEEKICyigCSGEEEIIIYQQF1BAE0IIIYQQQgghLqCAJoQQQgghhBBCXEABTQghhBBCCCGEuIACmhBCCCGEEEIIcQEFNCGEEEIIIYQQ4gIKaBkwTe8AACAASURBVEIIIYQQQgghxAUU0IQQQgghhBBCiAsooAkhhBBCCCGEEBdQQBNCCCGEEEIIIS6ggCaEEEIIIYQQQlxAAU0IIYQQQgghhLiAApoQQgghhBBCCHEBBTQhhBBCCCGEEOICCmhCCCGEEEIIIcQFFNCEEEIIIYQQQogLKKAJIYQQQgghhBAXUEATQgghhBBCCCEuoIAmhBBCCCGEEEJcQAFNCCGEEEIIIYS4gAKaEEIIIYQQQghxAQU0IYQQQgghhBDiAgpoQgghhBBCCCHEBRTQhBBCCCGEEEKICyigCSGEkC+LUCgEv9+PgYEB9Pf34927dzQabZxbbXNoRFb3PIj/0gq0dAbRMxD63J83Qv74jDUBPTg4aGvBYNCQbmhoyJJmtHn58iUePnwYMZ3f77ct89DQUNjjWltbkZ+fj19//XW0ikwANDY2orCw8HMXg3wBOL2DNTU1OHny5Ef5rpCRMZbuSSAQQFdXF16+fImWlhY0Nzfj+fPnePbsGY1GG8f2r3OH8NUeP/517tB72zNk/NvGpu0bwvxjQ9hcGkBZ3bCIDoUopAlxZCwJ6M7OTng8HgghDDZ58mTcvXvXkHb58uWGtB6PB/fu3Ru1svT19UHTNAghUFdXFzbt6tWrbcstLSkpCd999x06OzsBAJWVlUhISFD78/LyRq3c45mtW7ciJiYGQgjEx8d/7uKQPzDh3sFgMKje/ZMnT37GUhLJWLonoVAIvb29ePr0KR4/foyenh42dAkhAIDMfL/RTvjxtXmbjf27fD/+5u/8yDg0hH9/wo/rj4IIBCOfj5Bxy1gS0MDwCPS3336rGraapsHv99um3b17N4QQWLRoEQKBwKiWo6amRpXBzWjmkydPVPqUlBQ0NzejqqoK+/btUw0/TdPQ2NgIv9+PFy9eKLFHAT069PX14fvvv4cQAhMmTPjcxRl1BgcH0d3d/bmLMSaI9A6mpKRA0zTcvn37o5bj9evXHzX/scSnuicfm2AwiLa2NjQ1NX3uohBC/mDMPx7A/GN+ZfOO+THv737/+/jv9nfD/6rt+vR/58e/OeDH5osB9A+xY44QR8aagAaGGxhpaWlKkO7cudOSpre3F16vFykpKRb37tGgoaFBnb+oqMjVMXIU+uuvvzZsf/z4sRLRcXFxant6ejoF9ChTXl6uRv3HGgsXLsSZM2c+dzHGFOHewUhTMD6UpqYmJCQkfNRzjDU+9j35FPj9fjx58gRdXV2fuyiEkD8Y//Zo4HfzY/bv9m+VDe+brf7/fp9MO+uoH3992I/peUH0ci40Ic6MRQENWN25zXORly1bBk3T8OrVq49y/p6eHnXuW7duuTpGjmYtWLDAsi8jI0Pl9+LFCwDAtGnTKKBHmUuXLkEIgYkTJ37uoowqBQUFEEJQQI8yn+sd7OvrQ3x8PGJiYj7pecnnZ2hoCA0NDSM+vq2tDTU1NeNagJeVlWHHjh2fuxgfjN/vR25uLurr6z/5uYPBIJqbm3Hr1i20tLRY9l+7dg2HDh0Km0dDQwPWrFmDt2/ffqxijjsyDgXw14ffW8ZhPzIOBXTmV/bXh+23/fXhAP63LX70DHzuqyHkD8xYFdDA+9FEIQQSExOVm/atW7cghMCpU6csx7x8+RLFxcXYv38/ysvLbUcsgsEgKisrsW7dOhw/fhxVVVW2PyBy1Pjly5euyhtOQC9atEhdi2w8hWu89/T0oKKiAnl5eTh//ryaP22mqqoK27ZtQ3Z2No4ePYpnz56N+HobGhpQUFCAI0eO4ObNm66uWfLgwQNs3rwZ+/btQ1VVlWXOOhD53oRCIdy4cQNnz54FADx79gwHDx5Efn6+4/W3t7fj7NmzWLduHU6fPo1z585FJaBbWlpw4cIFAMMN059++glnz541BCrq6+tDSUkJCgoK0NzcbJuPm+fOiaamJuTm5iI7Oxu7d+9GTU2NYf/p06fVs5OTk4OLFy86NsDb29tRUVFhsN9++w3AcOAi/XZzGRsaGlBYWIi9e/fiypUrhkZRV1cXzp49q6y1tRXA8FQH/XZzo762thbnzp1DKBRCRUUFcnNzHe+luSyRnsVI9QYMP/vl5eW4ceMG+vv7cerUKeTn56tpIU7vYDAYxNWrV23P7fbddHon3r59i4kTJ6rYDRcvXsTFixcdp6roaW5uxrlz57Bp0yaUl5djYMC+hRTuXkrcvm/37t3DyZMnDSbze/bsmWG7fi6vm3fit99+w759+wAAb968wZkzZ5Cbm4tHjx5Z0n7oPens7ER+fj5aWlowODiIK1euYNu2bbhx44ZtHfr9flRXV2PPnj3Yv38/Hj9+bJvO7fMgGRoaGlG8josXL8Lr9Rria8THx9t+az8W8jfRbJ+6w1K+P6M9pUU/dUtaTEwMcnJyPqjTwwnZUX/06FHXx5ifAbMtXrw4Yh43b95EXFycJVaLfqAiJycHHo8nbD7r16+HEAJlZWURz1lfX+8q3Xjn3xwIYPqBAP6NyabnDYvl3CsBBILAgcoAZh+xppP2v26igCYkLGNZQANAVlaW+sDv2rULfr8fcXFxSEtLs6Q9evQoNE1Deno6JkyYoFympYAAhoWA1+vFzJkzUVxcjLlz50IIgfPnz1vyS0xMhBDCtYt4OAEtyyOEUOLMqfF+48YNeL1epKamYsqUKWr+tPnHZ8mSJRBCYM+ePdizZw+8Xi80TTP0Zru53sHBQSxcuBBerxczZsyAz+eDEALp6eno7++PeN3p6elISEjAmTNnsGXLFgghsGTJEkOaSPfmxx9/VA2DyZMnY/Xq1YYf99jYWPT19RnyrKyshKZpSEtLw759+1RduWnQlZaWIjU1VTVCjxw5Yjifx+NBfX09Nm7caGmgmBu/bp47J86cOQMhBLKyslBQUKCOLygoADDcwJoyZYpquMbHxyM1NVXtN9PS0mKY/jBt2jT1PAQCARU3ICUlRTX0u7u7MWfOHAghkJGRgXnz5kHTNGiapub/9/X14fDhwypf2elw9+5dLFiwQG1/8OABACA3N1cF6UpPT1fPnRAC3377rWN9uH0WI9VbZ2cnvv32W/VMff/994YGo3yXzO9gc3OzIUBhbm6uoXxu381w78SRI0cQHx+vypKamoqpU6dGjC6dl5cHTdOwcuVK7Ny5Uz0TJSUlKo2bewlE9749efLE8G5t2bIF7969AwB0dHSoe7t161YloCO9E2VlZYY6KCoqsrxn8ln60Hvy6NEjpKSkqHwPHz6snitpJ06cMOT5/PlzJCYmIjExEbm5ucrVf9KkSYaODrfPg56hoaGoRxzz8/NVHRYUFKCqqgqHDh1SdVJdXR1VfiNFPq/Hjx832MWLFz/J+SXPnj2LupPXDVJAL1u2DAUFBcjPz0dmZqb6Tejp6RnV841EQBcVFal6nz17NoQYnuYmt0Va1WNwcBAxMTHwer3Yu3cvqqqqsGPHDmiaBp/Pp76zbgR0T08PLl++7Krzb8mSJfD5fK6vc7zyl/uC+GpvAH+5L4C/3BsY/v/eAP7qUAD/56UABoaA5jch9A8C+yuGXbr/cm8Af7kvqOyrvQFM+I4CmpCwjHUB3dvba2jszJ07F5qmWUZQ5SidjJgdDAYxdepUyNFrKYJlY1b+EIZCIaSkpNgGCsvIyIjqg+8koPWN0/z8fLXdTkDLYGT6H9QdO3aohpl0/66uroYQxmBZhYWFEEIgOztbbXNzvVlZWYiNjVWjSp2dnapxHU7s6MuhbzD+8MMPhjpwc29aWloMImvatGmoq6tDeXm5aiTqReP9+/chhMBXX31l6OCQeUyaNClsuR88eGDwCkhOTkZtbS3a29uRnJxsEDc1NTXo6OhQDeQ5c+ZEdW1OdHV1KREkxUpLS4sSynqkGJXCNRzd3d2qzrZv327Yd+fOHQjxfhoBANWR8PPPP6ttlZWVqg5KS0vVdvmM68vR19dnET2VlZWGTqMZM2Zg48aNiImJwblz5xzL7uZZdFNvb968wdmzZw0jZhs2bEBmZiZiY2PR2NgIwPoOvn37Fjdv3lTXqRdr0b6b4d6JixcvKkHkhry8PAgh8MsvvxjyFELA5/Mp4er2Xkb7vr1+/VrV5fHjxw1l2759uyHmgJt34u3bt9i7d686f1xcHCoqKlBXV6c6LjMzM0flnvT39+OXX34xCOaCggI8fvxYiSP9d76vr0+JYjlqrl+VQdaL2+fBTLQCuru7G5qmIT4+3tKJ+OLFC2iahoSEBPUMvHr1ClVVVQgEArh//37YUfHm5mYUFxejtLQUbW1tEcsihMDKlSsd97e0tFjEfH9/P6qqqtQ7/ejRI1RVVVlMPi+dnZ22+6urq9U1NjU1GYLJ3bx5E0+fPkVXVxfKysrw66+/2kY27+3txdWrV3HhwgW0tbWhr68PVVVV6vdRCmhzh4DsSDVfW0tLC0pLS1FcXGzr/QUMf68qKipw+vRpy4oedgL67du3qKqqwpMnTxzrWXL06FEIIWw9ypyQ7QRzp1FeXh48Ho+asiYFdDAYRG1tLYqKiiwj/u3t7aiqqlKdf42Njbh79y7evXuHq1evqm/gjRs3kJ6eDk3TUFVV9VFG88cKabnBYdsdGLbcAP7qYBBb/1MAr3uAioYQ5hwN4P+tD+JVN3Dg5yDmH3uf/l/9bv/ThgAFNCHhGOsCGhh2U9Y3fsy9tQMDA/B6vUhOTkZra6syfQNNNpjlSII+j/Pnz9u6g69ZswaTJ092XU7ZwIuJicHixYuRkpKiGqOaplmCodkJaDlXuqWlRV3H7du3Ldd+48YNCCEwdepUdaxsuOvLHOl6pRBdu3atoe5mzpypet3DIet43rx5qhe6paUFCxcuBBDdvTl//rxqzOqFp+xlX716tdomxaxZjMmRyUgCGhhudMl7o3cvLSsrgxACXq/X0LNeUlJi6LSI5trs6Ovrg8fjgc/nU+cJBoPqWH2ZpIAuLi6OeF3A+4a8x+Mx5JOTk2N4Zi5cuOBYX9L7Q18PUtyYhbxZQAPAzp07Vf3KEctwuH0Wo6k3ORpv57ECOHuBzJgxwyLW3L6bkd4JIDoB3d7eDk3TDPdNbo+NjcWMGTMARH8vo3nfAGDDhg2G518SGxurOuSieSfa2trUtqdPn6r8pChITEw0nOdD7okspxDGZbAaGxtVWilO165dCyEE7ty5Yzj/zp074fV6UVVVFfW59UQroKXg0Xdk6dm6dSuEECpPGS9B770lhMCKFSsMx+Xm5hr2C2HviaUnkoCWeeqfp6dPnxq+XWZvB2nyudJP3TJbb28vgOEpUfr4AT6fDzNmzDB0mMXExBiE2oMHDyyeB2vWrIEQQolxJwH93XffQQiB9vZ2tW3Xrl2W8n3//feG4yoqKixLXKanp6vrMAvozs5OxMfHw+v1Ok4Z0DMSAS3bCZs2bQqbTgpo+f2Vtnv3bpXm7NmzhvNnZmYiJiZG1bPsWDO7nc+cOdN1eccb/3JnAP9yZ1D3bxBL/u8gXnYBVxpCmJY3vC19fwCldSE86wAOVIZUWnncP1sbpIAmJBwj1LZflIAGoD7imqZZepblnGj5o2ln0t3r1KlTKu3cuXMd57QCwIEDBzB//nzXZdQL6NWrV2Pt2rU4cOAAysrKbOcqmhvvehHgdB379+9Xx799+xZ+vx9+vx8lJSVISkqyNMojXa9+xMTufHFxcWFdS589e6byT0xMtLjVRXNviouLIcSw+6ge2fu/aNEiAMONDJmnedREBhFzI6Dv3r1rEGbm7eYAT+bt0VybE/39/arhfuPGDcyfP1/lqV/iSApovbtuOPSjtHLELBAIwOPxGMTvwoULIYQwiDuJvuNKzo2LRkDLhryTeDUTzbPott7kCOOuXbtsz+kkoKU4kmItmncz0jsBvBfQbtYrlwLK7E1gJtp76fZ9k8hRfiGEmndbXV0NTdPU9y2ad8LpPZajxeb370PuCQDlwq8XiYFAQOUh5/XLxn8475Foz60nWgG9adMmCCHw5s0b2/1SEMl3Ur53iYmJqKmpQUtLi6o7GaNACv05c+bgyZMnqK2txaRJk6BpmkEkmhFCYOnSpeju7jaY7JRxI6DNyLgVTvubmpqgaRqWL1+uttkJaCEE9u7di87OTiXC165dq9IkJSVB0zQcPHgQbW1thiUmzQJ69erVKC4uRn5+PrKysqBpGjZv3qzykh3YaWlpqKmpQV1dnfqWXLlyBcB7T6DY2FiUlJSgpaUF69atgxAC69atA2AU0J2dnUhISHAtnoGRCehQKKTaKgkJCTh48KDtkmo5OTkQYtg75d69e2oqhMfjUffbTkALMTx9pLa21uAxQRdud/zvPwaVJf8YQvKPQaTtCeI/nApi1hHjvozDQSwsCOKvDgUtx8WtCaI78gw8QsYv40VAy8ahpmmWfbLBEK5nXNLf349Zs2YZekN37Nhh6+5VVFSEDRs2uC5juDnQdpgb77Lh7XZpm4GBATX3ed68eTh48KBFQEe6XvmD9yFz2Mw98fPmzVOuXtHcG6cGvVzbWTbor1+/bit8gfcCOjk5OeL5nAS0XMLM3IC/d++eYXs01xaO0tJSJCQkIDk5WY1+f6iABoBVq1YZRFpFRQU0TTN0iEh3dX1DU9Lb26vKIs8bjYCWnTduBXS0z6Kbevv6669HRUBH+26GeyeA6AS0HBHdu3dv2HTR3ku375ue6dOnG/bNnz/fMLIZzTvhJKCvXbvmSkBHe0/sBLReCLe2tqrpCHa/M3qiPbeeaAW0HEl24tGjRxBCKMEu74H+HZXfTLkk4+LFiyGEMLh2V1RUQAjhGF8BgOGZ1pv0BIpWQD948ABCDI8E29HX14e4uDhMnDjR4A1kJ6DN3hypqanq2X7+/DmEGB6V1yO/D2YBbTafz4eSkhL1uymn/+jdtl+/fg0hBGbPng3gvbg012dcXJz6zZECevv27Uo8u3HdljgJ6La2Njx58sRg+vnbb9++xerVqw0j9hMnTjS4xUsBrfeikl4u0pXdSUDbTRmggHZH0g9BnYXwL34I4V9sDeFfGLYP2/D2kCG9tL/4WwpoQsJCAQ2cOHECQghMmTLFdX75+fmGH4/169db0lRVVeHYsWOu8/xQAS3n1AkhVMRxJwKBAL766isIIVBeXg7gfa+4nVuo0/XOmzdPieoPQT9HUQpYv98f1b1x26AvLS1V5zGPEn1KAT2S586MFFr60Y1wAtrJjdOOFy9eqLyuXr2K+fPnY9myZYY00sV57ty5luNDoZA6vqKiAsDHFdDRPItu6220BHQ076bE6Z0AohPQ2dnZrr4r0d7LkQhoOZ9axqEQwrjEYDTvxIcK6GjviRsB/fbtW/V3uFG9kTwPkmgFtLwfTksFOY1A60eS5XXJ+esyqJrX6zWYEFY3ZD1CDE8bKi0tNZi8f9EI6O7ubsTExCAlJcWxDjMyMuDxeCzLVdoJaHPgyuzsbPVtlx4YsgNBIoPXmQV0aWkpgsEg/H4/7ty5o95BOfUpJSXFdgm6hIQENfVAxigwr+IhhWlfX59huUwhhGWaVyScBLTs6NKb3ZSCQCCA27dvq04aTdPUqLFdEDE55UHObbYT0E7TUiig3fHPN4fwzzcFlf0vm0O/W/D9vs0h/HO1PaT+1lvMyhAFNCHhoIB+34Aw95ZKampq1CjJtm3b1Ajc69evVXAbIYRlnqbf749qOaIPFdB+v1+VRR9sTPLmzRukp6cjFAqpRtXSpUvVfjsBHel69YGI7K718OHDYdceLi4uVlGph4aG1DxJIYYDHkVzb9w26OWohRDGYEnApxXQ0VybHVKMmBscoyWggfcjAhMnToSmaZYlb+QotT4QlUTWg74RKAW0ee75aAhot89iNPU2WgI6mncz0jsBRCeg9RHi7QI95eXl4d69e1Hfy5EI6FAopOYSx8XFWaZKRPNOfKiAjuaeAO4ENAA1ZzUnJ8eSZ3t7O9atWxf1ufWM9hxo+d6Y50B3dHSoNGYBPXXqVGiahgsXLljs/v37jmURwt0caP37K589vYAOhUJIT0+H1+s1lFPPnj17IISwjSptJ6C/+eYbQxq9gK6trbX9Dsg4DZHmQPv9fng8HqSmpgIYrj+Px2O5vz6fT70Tsi7MAbPkN2loaEgJ6AkTJmDSpEkQQtgux+eEk4B+8OABrl27ZrBIy3HK50zGM6CA/jwkbAwh4bugzkKYtC2EeceD+Nf7ft+3MYSEjSH8H3tCmHsshH+VG1LbpP3TbApoQsIyXgS0jBhrJ6D7+/tVoycxMdHQW93U1ASfz6dGSaZMmWJoiAQCATV/yhw1tb6+3hD5MxKyB99uBMgO2XjXz5WTPccej8fgTtXT04Pk5GQVOVO6a06bNk2lkT/Y+oZFpOutr69XDcGFCxcaGj4lJSWIjY0Nu5TVjh07DFG/Aaj5qKdPn47q3vz000+2DXo5b0w26P1+v7qGSZMmGVyS5VJLboSJk4Cuq6tTQkSPrCtZv9Fcmx1SqHg8HnUNehdC/fMo57fbNdbD8fDhQ5WfXZ3IaxVCoLKy0rBPLp2jF8CTJ0+GEMaRX32Hhr6xKxvybkfo3T6L0dSb7ED48ccfbc9p9w4C7wNW6Rvcbt/NSO8EAFy9ehVCDI8ARkIf6CopKUm5R/b19eHAgQNISkpCMBiM+l66fd/MHDhwQJ1HXo8kmndCuryaBfSVK1dsBfSH3BPAXkAPDAxYBLT0hBDCGHCsvr4eSUlJyuMnmnPriVZAy3gGCQkJrqJwuxHQsrNFX453797h2rVrltFePZEEtBzRvX79utomvUX0Anrbtm1hxaIcMXaaRx6tgJau+UlJSeq7Mjg4qDoEIwno9vZ2CCGUgJaB0PQdkr/99huEeL8Os5yHbV52Tc6LBoxzoDs6OpQnQLh56HpGMgdafhPNHVwyqOCRI0cAfBwBHWlqBAHi1oUsNv1ACHUtwH+6F0Jabgj/w/oQpuwO4ac7Ifx/z4H1xdbj/uw/htBFAU2IM+NBQAcCAcOaoXZzhOQPiRTZ06ZNU8vobNu2TaWbMmUKEhISlDtcf38/NE2zRIXUB8xxM+r36tUrg1Bxs3a0FNz6oD9ylFOafn1R+eMNvJ8XKYTAN998g3nz5hkiXa5YsQLnzp1zdb0y6q4UjXL5Lqfefz1y/Uh9QywtLQ1er1cJb7f3RgojfVAimZ8QxlFlORdLiOGo4ydOnMD27dsNdTdjxgzLiKueY8eOqbT6hqneRVwfuEcGu9Gnd3ttdly+fFkd+9VXX2H58uUGl9/Zs2dj69atAN53IHm9Xhw9ehQTJkxwtUY38D4Su9McWvks+Xw+NXo7NDSE5ORkaJpmCDCzcuVKVb4NGzYgKyvL8NwlJyerZVBkI9087zocbp7FaOpN3gunUXC7dxB4P9KuD1zk9t108048fvxY5bNo0SKsWLEirPumFLXSZPmEMK5LHs29jOZ909Pd3W17nMTtOyFHmoUQuHHjhtqunz+u9wr6kHvS39+v0uiDsek7Xq5duwZgeP6ofrqLnF8rhLFz1O25zYxkHWhZp/Hx8SgsLERVVRWOHDmiOitkZHDAnYBubm6GEMOdFEeOHEFZWRkmT54MTdPCjlRGEtBSECYlJaGwsBAbNmxQZZQCWs61nj9/vmGZKimmW1tb4fF4EB8fj2vXrhnSyCkQ0Qpo4P2Sjl6vF0uWLIHH41Hvv1lAZ2dno7CwEAUFBfj222+V14Wc+yvbBx6PBz/++CNyc3PVd0q+Y/p2y9KlS3Hy5En1DMuOGXMUbtmpa15v3ImRCGhZ/3Fxcdi/fz+qq6tVhPlI60B/iICWnXhbt24N6+Uw3vmL1SGL/c+bgW9OAy+7gAt3Qpi0PYTTt4Dnb4Dv/h8geafpuDWA9xsKaELCMkJt+8UI6CVLlliWQJCiySykDx06ZEm3Y8cOw/wq6Xrl8XgwY8YMeL1eTJo0yRKduqOjQ+WhX3vVjpycHEODS/5I282rBoZ712WDTNqUKVOUKLt+/brlmufNm2cQcy0tLWoU2uPxYMmSJejq6lLbkpKS0Nzc7Op6h4aGlFuZvvxugjnt2LEDHo8HmqYhPT0dCQkJ8Pl8ljqLdG+kG6JeIDx48EDN85aWnp6u8iwqKjIsERIfH6+WG5k1axbKysocXfC3b99uODYhIQFVVVUWoeLxeFBeXo7t27cb7nFcXJxqtLp57uwIBoOG0a709HQ0NjYql1+fz6dc1GUQIHlvzOuJhkMKf71rsxk5cq9pGjIyMhAfH4/4+HjLKMWbN2/UqK0QAikpKaitrUVcXBwSExORm5uLR48eGdbSltdit9a6GTfPopt6O378uKHTTd5jWW9O7+ClS5csZZ88eXJU76abdyIUChme7WXLloXtdAuFQoaowfJ69C7z0dzLkbxvepYsWWLr4iyJ9E6UlZUZ3j+fz4dz585ZOsHi4+NRVFT0Qffk+fPnhmdB0zSsW7cOly9fNpTB6/Xi0qVLAIbnOJvPuWHDBss77eZ5MDMSAQ0Me2GYl0SKi4uzLLclp07oBbTs9NB7sFRXVxs6niZPnqw6EZwQQmDVqlVh0xw7dky9Wx6PR5VHCmh9J5z5XgPvpzfYmazXJUuWRBTQK1eutHh4HDp0CMnJyUhISMCKFSvUlB8poO/cuWM5pxzhNwcDu379uhLWQgx3RpinFLW0tKhOFZnXvn37lLeA3TrQ0pXa7MVix/HjxyFEdAJansPuWdJ7DqxevdpRQEsvDOlxIDtdFixY4CigOzs7lScVl7Fy5s//Fvin0nJ+t78N4b9fE8KiU0B7L/DkNdDeA6w4B/yP3w+n/fO/DeHPv31/7H/7H0Loirx6JCHjFzHGBXS0+P1+3Lt3D/X19bajXnJE482bN7h3715YUdHR0RFx3tDH5OnTp7h165YheqaZly9fWhp1+giY0VxvX18fbt++jUePHrkaQQeGXSCDwSDevXuHtPsrLAAAIABJREFUhoYGNDc3Ox4b6d6MlCdPnigX0J6eHrVUy6fkQ67tzZs3FtdMuyimfX19aGxsdD2lQJKdna3WCg7H0NAQ7t69i7KysrDLuwHD7rf6ZyncczUS3DyLbuvtYxDu3YzmnXj8+HFYsWUmGAyiqakpYn1Hcy9HQk9PT9jvEvDx3ncn3Hwvo6WrqwsNDQ0RRwOjOfdIBbSktbUVd+/ejeq5CUdnZ6erddqjxa0b8qeiqqrK4pEkvTDs5uu7pauryzHAm2RgYMA2fsHnxO/347ffflNLnUX7uzJSBgYGXI2uj1f+NDuEP10B/NkK4E9XhPCnK0L4s+zh///53wIL/i+gow9YWgj8xarhdHL/n6njgD9ZBApoQsJBAU0IceL169fQNM3g4kkI+XwMDQ0Z3O7Jp0FOKdm1axcuX76MjRs3qikGhPxR+CfLgP/uPw7bP1n23vR/y/+rf232/8N/zxFoQsJCAU0I0XP69GksWbIEBQUFmDJlilpWhRDy+fH7/Whqavpk3hJkmHfv3inXb+m2PG3atKjdnwn5mPzJUuBPlgD/+Pd//2Tp+///46XvTb/vHy/5/e/f0/w3i4G/yKGAJiQsFNCEED3m+fjRLItCCPm4BAIBNDc3o7a29nMXZdzS3d3tepoSIZ+Sf7jYav/I4f/y73+k+/8/+A/AP1gI/M2REPoGPo1bPiFfJBTQhBA9J06cQHx8PJKTk3H16tXPXRxCiI5QKITu7m7U1taivr4eHR0dFHOEEADAf70I0BbqbNHvpv/bvF//978H/tnqIErvAv7wcUwJGd9QQBNCCCFfDoFAAJ2dnXjw4AFu3bqF//yf/zN++eUXVFZW0mi0cWx/72+Av/c3wN+fB/V/s/39edb9/9W/A/58uR8z9w+i8PoQ+oc4+kxIWCigCSGEkC+LQCCAvr4+dHZ24tWrV2htbaXRaOPcymsHh61u8P3/zVZn3X+5bghV/2UQD1740dlLjxZCIkIBTQghhHyZhEIhhEIhBINBGo1Gi9rkN+RTLUVGyJiAApoQQgghhBBCCHEBBTQhhBBCCCGEEOICCmhCCCGEEEIIIcQFFNCEEEIIIYQQQogLKKDHPrdu3aLRaFEYsedz3xca7UszQgghYxAK6LEPf8QJcQ/fF2dYN4S4h+8LIYSMUSigxz78ESfEPXxfnGHdEOIevi+EEDJGGcsCOhQKYXBw0GBODA0NWdL6/f5PVtaPCX/ECXGP0/vi9/st34hwFggEPnHJ31NTU4OTJ09avnm9vb0oKSlBYWHhiPLlt4QQ9/B9IYSQMcpYFtAdHR1ISUmBEEJZQUGBbdrFixdD0zSVzuPxYMeOHZ+srB8T/ogT4h6n9yUvLw8+n8/wPQlnmzdv/sQlHyYYDKpv2cmTJwEAL168QGpqqirb9OnTR5Q3vyWEuIfvCyGEjFHGsoCWlJSUGBq2NTU1tulaW1shhEBMTAz6+vo+cSk/HvwRJ8Q94d6XQCCA2NhYCCGgaRqam5vR2dmJzs5OtLe3o7GxEQUFBRBCYP369Z+w1EZSUlKgaRpu376ttnV1dWHGjBkU0IR8Ivi+EELIGGU8COjhIrwX0F6vF+3t7bbpEhMTkZWV9YlL93Hhjzgh7on0vkyfPh1CCPh8Psc0a9aswbfffjvaRYuKoaEhy7Y9e/ZQQBPyieD7QgghY5TxJKBjYmKUiE5OTrad4zx16lSsWrXqM5Tw48EfcULcE+l9ycjIiCignzx54ujp8jnZv3//qAvo3t5erF27FvX19VHl1dLSgl27dqG1tXVEZSFGHj9+jF27dqGzs/NzF4X8Dn97CSFkjDKeBHRZWRkmTZqkRPSyZcss6dLT07F27VrL9qamJuTm5iI7Oxu7d+92bBzfvXsX1dXVAIDGxkbk5+ejsrLSkKatrQ0nTpxASUkJurq6bPNpaGhAQUEBjhw5gps3b9qmOX36NAoLCxEKhcJeu5sf8dWrV0P8QSKk5+bmWuaTJiQkYPHixY6eA4SMFh8qoIuKivDw4UPL9paWFly4cAHA8Dfgp59+wtmzZw2Bvvr6+lBSUoKCggI0Nzdb8vD7/Th37hw2bNiAVatWobCwED09PZZ0wWAQV69etXw7nAR0b28v8vLy8Ouvv4a9dru6uXbtGoQQWLFiRdhjzVRXV0MIYXAzH22ePXuGY8eOYe7cufD5fIiLi0NGRgZOnDiBYDD40c77OSgrK4MQAo2NjZ+7KOR3KKAJIWSMMp4E9NWrV9He3g6v1+sYVMxOQJ85cwZCCGRlZaGgoAATJkywHLtz507ExcVBCIFFixZh8eLFFgHY3t6u3D+lxcXFGRrAg4ODWLhwIbxeL2bMmKGCFqWnp6O/v1+lu3HjhspjJI1eMytWrPjDCOhdu3ZBCIF9+/bh+PHj2L17N+bOnavmnd69e/dzF5GMYT5UQMfHx+Pq1avq79LSUhXAKz4+HkeOHDF8AzweD+rr67Fx40ZLx9G9e/dUPgMDA0hISIDH40FhYSFWrlypvi3d3d0AgObmZixfvhwejwdCCOTm5hrK5iSgt2/frs45MDAQVd0Eg0FcuXIFb9++DVtvZj62gJb5JyYmYsOGDbh69SouXLiADRs2QNM0JCYm4smTJx/l3J8DCug/HhTQhBAyRhlvAhoYHiV2CipmFtBdXV0qoq0MLNbS0qIaw5LLly9j4sSJhtHtZ8+eoaGhQTVmhRDIzs7G06dP0djYqIT88ePHVT5ZWVmIjY1VjdHOzk6VTj+nsrm5WeX56NGjsNf+IQK6ra0NRUVFuH//vmXfzZs38fTpU3R1daGsrAy//vqr7Wj40NAQrl+/jsLCQty+fTviyI8U0FIUSO7cuQNN0zBhwgRLHg8ePMDZs2dx+fJlRxfG5uZmFBcXo7S0FG1tbWHLQMYvbgW0pmnYu3evsm3btmHq1KmGbw0w/GwuWrTIMH2ktrYW7e3tSE5OVttTU1NRU1ODjo4OTJkyBUIIzJkzR+Xzww8/WL4DCxYsgBACpaWlAIC3b9/i5s2barqKWwH9008/QQiB2NjYsMv32dXN0NAQqqqqIroO9/X1oaKiAhcuXMCrV68cBXRLSwtKS0tRXFyMZ8+e2eYV6V3+9ddfIYTAypUrbY+XdT9hwgTL9Trl/ezZM1y/ft3Q4dnf34/r16/jxYsXhjwaGxtx7tw5vHz50rB9YGAAVVVVePPmDZ48eYKzZ88qwRsMBlFXV4effvrJ4pnU2NiIu3fvIhQKob6+HmfPnjV0rgDOAnok372uri5UVFSgpKQEvb29tmnCfXNfvXqFqqoq+P1+3LlzB0VFRcp7SNbBpUuXxsxSkU5QQBNCyBhlPApoACgsLFQNV31QMbOA7uvrg8fjgc/nUz/2wWBQHasP1PPjjz+q0WI9OTk5EEIgIyPDsD07O9vQIL5//z6EEFi7di1aW1uVzZw5U41U6enp6bGITDtGKqBlxF5pMTExaGpqUvt9Ph9mzJhhWP4rJiYGDQ0NKs3z58+RkJBgyCclJSVsuZ0ENPB+pOz69esAhhtjs2bNMuSvaZoSFBI7t/Dz589HrBcy/nAroOW7Li01NVV1lum/NcBwZ5N8NvXfDCl6vF6vQUzIlQMmTJigtu3evdsiirds2QIhrEtmyXfXrYAGhkVPJEFjVzdtbW0QQuDUqVOOxzU2NlqWAFu+fLlFQMt3X2/ff/+9IS8373JsbCwyMzMRCoXQ0tKCrKwspKWl4cyZM8jOzsb169fR2toKTdNw6NAhV3nX1dVBCIHMzEyVftWqVRBCoK6uDsCw+NfH2pAdJnJN8GfPnkEIgfnz5xvS7Ny50/BcCSFw4sQJdZ7MzEwkJiZavslZWVmq09JOQI/ku1dZWWno9DVfs5tvroxEn5mZaUhXUlKiotjL48wdAWMJCmhCCBmjjFcBDbwXtrKR4/f7bV24+/v71ejzjRs3DI2f169fq3Qywq1+1Ah434gxR/eW6RctWgQA2LFjh2pUxMTEWCwuLs4wX9ItIxHQZWVl0DQNZ8+ehd/vR11dHTRNM4zoyAbx3r170dnZifLyctUBIElLS4Omabhw4QK6urpw+PBhCCGwevVqx7KEE9D19fWGxqXstFixYgWeP3+OsrIyxMfHQ9M0dW9u376t7suTJ09QW1uLSZMmQdM0zqkmFj7EhVt2uJm/NdLrxdwJJrfHxMS42i6f6a6uLhw8eFB5pyxdutS2jNEIaDeMVEAnJydD0zT8/PPP8Pv9uHr1qup4kwJaTktJS0tDTU0N6urqMG3aNAghcOXKFQDu3uX29nYIIVRQs8TERHg8HmRlZSlhKL1+FixYoL7XbvKW35vKykolqLdv366u8+uvv4bP50NdXR2GhoZw+vRpCCFw8eJFAO8FtMfjwbVr1/DixQtMnjwZQggkJSXh4cOHaGpqQlxcHBITE1W+UohOmTIFbW1t6Ovrw7JlywyC2CygR/Ld6+npgcfjQVxcHJqamtDV1aU6boqLiw11EO6bKwV0cnIympqaUFdXp+p+4cKFaGtrQ1VVVcTfgi8dCmhCCBmjjGcBHQgE1NxEIYbdrp2CiJWWliIhIQHJycmqoeJWQB86dMhWQOfl5Rm2y0aSbGyNFqM1BzozM9PQoJdBefSkpqYiNjYWwPCIlhDCspzPxIkTw0YwDiegOzo6IITAli1bAAAxMTGWvIqLiyGEwNGjRwFAzUfXuxlWVFRACOsceEI+dA70999/jxs3bhi2OQnohoYGW6F879492+1tbW1YtmwZvF4v1q9fj6VLl/7hBfSLFy8ghMC8efMM22VcAymgpZu73m379evXEEJg9uzZANy9y8XFxdA0DcFgEM+fP4cQAj///DOA9yJdCug9e/YgISHBdd6BQAATJ05ETEwMJkyYgKSkJDW67ITP51PfeCmgv/vuO7Vfus/rv/ubN2+GEALv3r0D8P63QV//XV1dEOK9x5NZQI/ku3f27FkIIZCfn2/Yfu7cORUM0803VwpofQBN+azqyzN58mRDR8FYgwKaEELGKONZQAPDc4zNroVmAS0Fnd5NMhoBLUddIwnoefPmQQiBHTt2fOjlGhiJgB4aGkJRURG++uorxMTEqNEDfcPJ5/NhyZIlhnyys7OVSJBzHDVNg9frVSbrzsldNJyAlsLixIkTCAQCtvUqG5ZyObKUlBQIIQxlkOUwu4cSMhrLWAFAKBRSz/hoCOj29nb4fD7ExMTg8ePHAN5PafgjC2j5HTh9+rRhuwzOKAV0SkqKpR4AICEhQYksN+/y9u3bkZSUBOC9OJWirb+/3yCgc3JyMGvWLNd5A8PLRclvmDn+RGdnJ/Ly8jBp0iT4fD41yi5doKWAltHYAeDKlSsQwhgwTv5mSM+nzMxM1SmgZ+LEiaoT0yygR/Ldk/PszXO3JW6/uVJAd3R0qDTr1q2DpmmG4zIyMgzTFMYaFNCEEDJGGU8Cury83HafnHtsJ6ArKyshhLCMtH4MAS0bLz6fzzBPUp/PmTNnortwuPsRl/OxJbKhnZGRgWPHjqG0tBRTp061COhvvvnGko8UCTU1NRBCYPHixbhw4YLFnEZuwgnonTt3Qoj3c6CFEJg5c6YhjQywtnHjRgDDa3tLN3Kz2QVHI+Ob0RLQ27dvV8JpNAS0DDj2008/Gc7xRxfQ8jtw8OBBw3bpmSMF9NSpU+HxeCyBCH2+/7+9e/+J6mz4hX/9A/PrJDuZ95dJ3nl3eJ6QZ7PDe3M/hL0JCSHehBgeAzGkpqa+Gmy00bqttdEqWtHaqr0rt9J6IBW3GLRqlWAoVtDqrYDy1jMFkYMgIIfhNMx5vvuHea5rZs2JBYLo8P0kV1rXrFmz1gxrZn3XdTIjIyNDrTPduXzt2jX1Psvm3LJ2t66uTlNTmpGRocK03u8JeUNACBE21kJ+fj4MBgM2bdqEyspK1NTUwGQyzUmADq6RlhITE1UADQ3Qs/nek92NYs3prec7lwHajwGaiChOLYYA7XA4Yl7gAcDly5cjBuji4mJ14Sv7H8sLQiGEZvTVaAH66NGjmloISV7MygAt+/cK4e8nFhyi5eArwVNZnTt3DhUVFdM2IQz9Eb9+/TqWLVumGWwmLS0NJpNJ8+/gUcbdbjfMZvOMArSslcjPz9es09LSEtbENVi0AP3w4cOwUbhTU1NhMBg0tdmnTp2CEAIXLlwAEBjoJ/iicGpqCrdu3cLAwEDU/aDFabqLXjkVXawALW/KVVZWAogeoGU/2tBtye8CGaDdbrf6bjh69KhaT476HXpzTg429f3332uWy++i0HNycnISpaWl+P3332Meu94A7fP51DlqtVohhEBubq7meXLfZYCWc9EHT1PX3t6ubsIB+s5l+b0j59GWfYzl61ksFqSmpqomxS9fvtS97cnJSZjNZjVwnNFoVCHRZrNBCP9MC1JbW9uc1UCH3gSWoXXVqlUAwgO03u+94O9OuS/B/brdbje2bNmimn3r+c5lgPZjgCYiilOLIUDLEW1DR8EOtWvXrrAA/dtvv6kL12XLluGzzz7TjLK6cuVKfPPNNwCAlStXQgihmg9KsnY3OJACgT5qmZmZapnchryoXrFihWpiHjzfc/A80NP1mQ79EZc3AGR/7r1790IIbR9F+V6UlZWhqqpKDeYzkwANABs3blQXkNevX1c1HLGaTssAfezYMZSXl6OkpEQ1bzcYDPjjjz/UuvLGR3JyMsrLy7F161Y1CJu8ASEvNC0WC06ePImamhpkZWXBYDBEbapIi1esi1632605/2tqavD8+XN0dHTg0aNHqKurw65du1TT3f7+fgDATz/9pJ4jQxHgH1tBLrdarWr5hQsXwtZPTU1VIXzHjh3IyclRr2MymfDpp5+itbVVs+5nn32m2X/Z7zi0xjt4HuhY01HpCdA+nw/JyclITExUN/dkANy1axdu3ryJoqIi9XoyQMvpAY1GIw4ePIiSkhL13SdH/9d7LicnJ6u+wVarFUVFRfj4449RXV2NtrY2rF27FqtWrdLcyNOz7fXr18NgMKC3txe9vb0wGAwoKChQ25DjO/zyyy8oLy9XMxDMVYA2m824cOECrl69irS0NAgRmIYxNEDrOR7Zd1ne6PF6vUhJSYHBYMCJEydQU1OjWjPIGxt6vnMZoP0YoImI4lQ8B+iRkRF1ISlLQkIC7ty5E3F9r9eL3NxcTYD2er0qvAnhH7Clra0Nu3fvVhc0dXV1YVOQ5OTk4NWrV6ofmixJSUno6elRgVSWrKwsDA4OwuVyYe3atZrHTCZTWEiWF5tCCDx79izm+xDpR/zHH3/UBIG0tDRNrcTAwIBmH5ctW4bNmzdPG6C3bt2qqcm22+3qRoF8vzZv3hxzupxIU68kJSWp0VtD/fTTT5ppV7KystDZ2alZ586dO5rjzcrKwq1bt2K+b7Q4RbvoPXr0qKYP/3RFdvs4cOCA5u8zOTkZt2/f1oRIGRxra2tx4MABzdRwiYmJuH37Nm7cuKH+hi0WCw4fPozu7m61T6tXr8b169c1c0vLv/Wuri5kZGRolqempqpQJPsKB0/Xp/e9iRSgk5KSYLFY1LYmJyc135FJSUlqwCoZAAGgoaFBM82RxWJRA4BJes7l58+fw2g0YuPGjVHnMY4k1rZl0C0tLdX8TQgRaFZ/9+5dpKenq+cXFRUhLS1NBWj5vR0coOXAXsEBuqysDEJoBxFLTEzEN998o/42DAaDpkuPnAUhuGXRdO/VpUuXIIR2ULH+/n5VWy9/G2Qzd2m679yzZ8+GBWh5YynYhx9+yEHEiIjo/RPPAXo2Jicn1QA9waxWq6bmCEDMmpo3ZbPZcP/+fbx48SJs4BhpYmICExMT024r1o94a2srOjo6wvodBu9H6HHPhsfjmffm0oODg5om7pGMjIyE9SMkCvYuX/T6fD5NtxHAXyuu53tgOq9fv57VPNCyH3dwKPR6vRG/t+x2u6amPZqxsTGMjo7GXGe6c7m9vV0NnLV27VqUlJTg+PHj2Llzp6Yfud5tezyeiO+P2+0OO1ar1TrtezkTMkAD/vdWtmzQK9Z7FW0/HQ7HtL9xer5zF7N3+buEiIjeAAN0/OOPOJF+PF+iC31vbty4gZSUFAgRedC/heZ0OtHU1ISSkhIUFBSgoKAARUVFmm4g74PgAE3vD36XEBHFKQbo+McfcSL9eL5EF/renD59Ghs3bmR3iHlWWloa1l2G3n38LiEiilMM0PGPP+JE+vF8iY7vDZF+PF+IiOIUA3T84484kX48X6Lje0OkH88XIqI4xQAd//gjTqQfz5fo+N4Q6cfzhYgoTjFAxz/+iBPpx/MlOr43RPrxfCEiilMM0PGPP+JE+vF8iY7vDZF+PF+IiOIUA3T8u3fvHgsLywwKRbbQnwsLy/tWiIgoDjFAExEREREREenAAE1ERERERESkAwM0ERERERERkQ4M0EREREREREQ6MEATERERERER6cAA/X5Y6JFEWVjet0LxaaH/rlhY3oVCREQLiAH6/cAfTCL9eL7EL362tNjxHCAiWmAM0O8H/mAS6cfzJX7xs6XFjucAEdECY4B+P/AHk0g/ni/xi58tLXY8B4iIFthiDdA2mw3Nzc1oamrC69ev1fLBwUE8f/5c/bu3txcnTpzQrLMQ+INJpN98nS9utxtOp1N3ifUcl8sFr9cb9bler3dO9nl4eBgNDQ148OABxsfH1fLW1laMjIzMyWtIQ0NDKC8vx9TU1JxuNxi/C2mx4zlARLTAFlOAdjqdKCoqgsVigRACQggYDAb132XLlsFisWD79u3qOfn5+RBCYM2aNQu23wB/MIlmYr7Ol+TkZPXdoac8e/Ys7DtHft/k5ubi/v37SE1Njfp8s9mM5cuXo66ubkb7OTAwgJUrV8JoNIZt02Qy4YMPPoDBYEBtbe2cvC/V1dWa4xgdHZ2T7UbC70Ja7HgOEBEtsMUSoJ8+fYqkpCQIIZCQkICbN2/CZrMBADo6OrB9+3Z18bdx40b1vK+//hpCCPz4449h23Q6nZoanfnEH0wi/ebrfDEYDDAajSgvL8ezZ88wMjKiKXv37lXfI1u2bFHP8/l8SElJUY91d3drtrt69Wr1WG1tLVpaWnDp0iUsX7484vdSLFeuXFE3BvPz8/Hw4UO43W643W48evQIOTk5apuXLl2ak/fF4XCgrq5ObVd+t84HfhdSvBkdHcXLly/R2tqKly9fTnsDiucAEdECWwwB+tWrV+qCcsmSJVFD79mzZyGEQGFhoWa5y+WKuP769etx/vz5Od/fSPiDSaTffJwvNptN1SpH0tLSogJkYmIiHA6H5vG1a9eq2udQZWVl6rk9PT1quc/nw5YtW9Rjv/zyS8x9rKmpUevu2LEDPp8vbB2Px4N169ZBCIGKigo9h66LfH+EEGHHPpf4XUjxZGBgAH19fZicnITX68Xk5CT6+vowMDAQ9Tk8B4iIFthiCNAFBQXqwq6rqyvmuhkZGfjggw+m3WZFRQWEEO9EgHa5XGhra0NzczOsVutb2Z9Y3G43SkpK8Pjx44XeFVqk5uMCs62tDampqREfczgcqoWLEAJPnz4NW2fDhg1RA/S5c+fUc3t7ezWPBQfzdevWRd0/m80Gk8mkWtl4PJ6o646OjsJgMOD48eNR15mpqakptZ/RbjrOhek+28HBQTQ3N8dsHeTz+dDd3Y379++/0fgWIyMjePDggervTjQTo6Oj6O3tDbvR5fP50NvbG7UmmgGaiGiBxXuAvn37tq6LT6murg4rVqzQLHvy5AkuX76s/h18sfvFF1/g6tWraGlpQVNTE+rr6zVFDgTU3t6ulrW2tmq2VVlZGbGmKFi0H8zy8nJVuy7LRx99hMnJyWmPdabq6urQ3NysWfbq1StcuHBB02RzYmICQgiUlZXN+T4Q6TEfF5hywK9IgmuJjxw5EnGd2QbokZER9Vism3v79u1T6507d27a49m1axdOnDihWTY+Po4bN27gyJEjOHv2LJ48eRL1+VNTU6itrUVxcTFOnDihCfqhAXpiYgL19fX44YcfcPHixYiDl3V3d+Pw4cPo7OyMud/RPttXr14hOztb8124cuXKsObkHR0dmub0Qgjk5eVhbGxMs97Y2BhWrFgBIQS+++47zWM2mw3Lli3TbOOHH36Iud8ffvghhBBRb8LQ4hPcXNvhcGDjxo2q9YZs1h0JAzQR0QKL9wB98OBBdYFTVVWl+3lOpxPffPMNEhMTIYTAsmXLAPgvBHNyclRoTUpKQnZ2NioqKlQTcFnKyspUgH78+LEaZOfixYsAgMbGRrXu3bt3Y+5PpB/M1tZWCCGQlpaGiooK1NfXY9OmTRBChN0EmAsJCQlYu3atZtmlS5fCmp0yQNNCe5sXmNeuXVPncXZ2dtSbYbMN0MHNsvfu3Rt1P4L7Ns9mdO3a2loYjUYkJibis88+UwOm5eXlhTUnffnyJZKSkpCYmIiSkhIUFhZqvvvcbrdat7GxESaTCdnZ2WofDQYDampqNNuU4XfJkiUx9zPSZ+vxeJCWlgYhBD7//HPcunULn3/+OYQQWL58uWbd3NxcGAwGlJWV4cGDB+rGQ3DXnbt378JsNqvjOXTokGYbMlgfO3YMzc3NWLlyZczfmKqqKnXcDNAkPXv2TF0jFBcXY9myZSguLgbgv2EXrbsIAzQR0QKL9wD90UcfqYughw8f6n6e0+nEvXv3kJeXpwnQkry4DK6ZBoDvvvtOXSiF1nzk5uZiw4YN6t89PT1q3168eBFzfyL9YH788ccQQqCjo0OzfMWKFTCZTJqLWJfLhYaGBlRWVuL+/fsRp8hxu91oampCVVWVpgbbbrfj9u3b6iL49u3b6OvrQ2trK/bs2QMhBCorK9HQ0AAgeoAeHR3F9evXceHCBbS1tcU8XqI38bYuMAcHB9VI1waDAf39/VHXnU2Afv78uaZZ9sTERNT/csf0AAAgAElEQVTtB+/HTN29exdCCGRkZKgbAG63W4XalJQU1STcbrfDbDbDZDJpuoyUl5eHBejOzs6w74JDhw6p/Xz16pVa/tlnn0EIgfXr18fc10ifbXNzMyINtCZvKMrv/t7eXgghsHXrVs166enpMJlM6t9GoxEZGRmqVj04QL98+RJCCOzcuVMtc7vdsFgsyMjICNu3sbExGI1G5OfnIz8/nwGalEePHgEAmpqasHz5ckxOTmL58uVoamrSPB6KAZqIaIHFe4AObqo3NDQ04+f/+OOPMQP0lStXNMttNpuqnT527JhaLpthhjaBnpiY0DWSd6QfzP3790MIgdu3b8d87suXL8Om3wkdTO23334Lawoup/Pq7u7WLBdC4Pjx41i1apVmmbxwjxSgb9y4Ebb9L774YtrjJpqNt3GB6fP5sHTpUt0tXPQG6I8++ggrV65UrV+EEMjMzAy7URYseACvxMTEGR+LfK2bN29qlgff5Dt58iSAQAAOvhkIAH19fWEBWtbU9vb2or+/H/39/bh//76mlU6w0Nr3SCJ9tvL9u3btmmZ5fX09hBA4evQoAH9NtdFoREFBgVrH4/HAbDZj6dKlallZWRk8Hg8mJyfDAvTp06chRHg/9127dkEIETYH9vr169XNFQZoCjbdTf1ojzNAExEtsHgP0LIGWQiBlpaWGT//5MmTMQN0pItmWStrsVhUrc3JkydndWErRfrB7OrqUseWl5eH8+fPR7xJsHTpUhgMBly+fBljY2M4ceIEhBD48ssvAfiDQEJCApYsWYLBwUGMjY2pPp3Dw8NqO7Ntwj0xMQGj0YiUlBQ0Njair68Pn3zyCYQQczYPLVGwt3GBWVpaqs4/PeMr6A3QH3/8MbZt24Zvv/0WFRUVmjETYpE3qIxG44yOIzj49vX1hT2elZWF4G4hMmzLrihS8CBiHo8HXq9X/dtisUQspaWlM9pXIPJnK2vQQ2/K7dixA7JZtyRrypcuXYpdu3apm6y//fZb2HYjBWh549Jut2vWlQNLBrcmamho0HwXMkBTMAZoIqL3VLwH6KKiInURV11dPePnzyZADw8Pq9eUNdTp6ekoKSmZ3UEg+g9me3s7PvjgA03N7po1a1RNzsDAAIQQ2LZtm+Z56enpMJvNUV9P1jpXVlaqZbMN0BcuXIAQQtPncXx8HEKETxlGNBfm+wLz6dOnmnCoZ97j2faB1kv2ARZChA2IFUvwQIuhoRAAtm3bBiH84z14PB61bnt7u2a94ADt9XrVd0hycvKsjieaSJ+t0+lEQkICDAYD9u3bh+bmZnz99dfqpkLw90xLS0vYIGLLly/H4OBg2HYjBWjZ1DxUdXU1hBCq+a3b7UZiYiLS0tJUs3gGaArGAE1E9J6K9wAtA54QAps2bZrx86cL0NFC+aeffgoh/AN8yX6AbzJdynQ/mDabDTU1NWqQHjkQz507d9RFu8lkUiW0qWV7ezt27dqF5ORkmEwmdeEZPE/sbAO0rLEJfn25D5mZmbN+T4iimc8LTLvdrmleHdotQ3K73eju7lb/nu8AvXHjRrWN0LEZYpH9h4UIH08BAL799lsIIZCeno7R0VG1bmNjo2a90AAtv/dkjfRcifbZtra2aqYSE0Ko5tZFRUUAAn2gs7Ky0NjYqEYSN5vNMJvNYQPARQrQX3/9NYQIn+ta1kDLGwslJSUQQmhGMmeApmAyIIf2gb5//77m8VAM0ERECyzeA7Tb7dZcVD1//nza5wTX3sw2QAdfPObk5CAvL++NjmMmP5hycLGenh51cbxhwwZcvnw5rHg8HrhcLhiNRpjNZuzZswcXLlzA+fPn5yxAHz58GEII/Pjjj2Gv//vvv7/R+0IUyXxeYMqBqYQQ+Pbbb6OuV11djZUrV6p/z3eADu6vbLFYpp2L2efzYXx8XIXE0PNdkv2Y5eBe8uba7t27NesFB2ifzwe3263+XV5eHrZdq9WKvLy8aafwCxXrs/V6vXj+/Dmam5vhdrvR0dEBIYSaruvIkSMQQoTNUV9WVhbxpkCkAC2bgId2Cfrqq68ghFCtEQwGAwwGAz7++GNV5M3JwsJC/PHHHzM6boo/jx49UjeXiouL8R//8R9qpH2Px8NBxIiI3lXxHqAB/91deSGXlpYWtSbY6/Vi7969mr7Kx44dg+wvF0w2l4x0YSjJeT+jNfUG/BfOFRUV09bQRPrBNJvNSEhICKsJkTVRra2tGBsbgxAC+fn5mnVaWlrUxeL169fD9vHUqVMRA3ToPLQyQAdfTIYG6NraWgghwvo7NjQ0zKpfOtF05usCM3hKqYyMjKjnrdfrRXp6Ovbs2aOWrV27NmqADh7BOtZgYdORswAIIfDJJ59EDdFjY2PIz89Xo1YXFBSoYwolW4vIpsly8ECj0agJ+8HzQMu5bZcvX67WlbVqgP87IjMzE6dPn1bLuru78d133017kzPSZzs6Oor8/HycOnVKs3z79u2amxJ79+6FEAK3bt3SrCcHRrt69apmeaQALceeCL6B4PF4kJCQgLS0NLUsOzsbmZmZmiJvPmRmZk47+CPFv/b2djVuidPpxMaNG9Vc80NDQ2HdJCQGaCKiBbYYAjTgn4czeJCd8+fPq4uqyclJVFVVIT09HcnJyZo5T3fu3AnZ/y+YvIg0mUwoKytDSkpKWP/BBw8eqAvmSBeywfNAh164hYr0g7l7925Vw3327FncuHEDX375JYQQ+PDDD9V6MlAXFhbi+vXrqmmhnG9SNsvMzs5GbW0tDhw4oKbECQ7Qq1atgsFgwNmzZ9V79+LFC/V68qI0NEB7PB4kJibCYDBg9+7dqK+vV7VxkQbuIXpT83GBOTAwoM4LIQQaGhrw6tUrTXn8+DGqq6uRnp6uOX98Pp+m321XV5dm25s3b572ZpsebrdbzWsshEBqairq6+tVoH39+jWOHTsGs9mMVatWqS4cfX196vvx8OHDant1dXWa2mcgMI2TEAJmsxnHjh3DiRMnNM3a09PTcfHiRTx58kTTpDp4Lujs7GzNvssps6brMx3ts5Utb44cOYJ79+6psLxmzRq1zqNHjyCEf6Ty06dP48GDBygpKYHBYEBKSkrY9H6RAjQQuDFQVlaGP/74A2vWrIEQ4QOrhcrLy2MTblKGhobQ0tIS9nfn9XrR0tISdeYQBmgiogW2WAI04L8ALigoCJtOSYbqgwcPqvmP+/v71UWSLElJSarZnRxdVYboaE2tEhISsGXLloiPyf54Qgg8e/Ys5r5H+sH0eDxqlNngkpubqxlN1263q8AqL3o3b96smSf61KlTsFgsmhsMoQG6oaEBZrMZQvinsZIKCwvV84DI01j19PRgyZIlah+Sk5NVs0qiuTYfF5jy73wmpaGhATt27FDnjSwGgwFLlixBU1NT2BRzsib4TeZKb25uRmpqasR9SkpKwrlz58KaTvf09CAzMxOypY78rty/f3/YBf7Tp081gdlkMqnm0VlZWSgvL1ehvaGhQTPughACq1ev1swhDQRuIqxevTrmsUX7bIeHh1Vzc1kKCwvDbl5evXo17PNITU2N2BpGTg8WGqAnJyc1U5iF3niIhgGaQrW2tuLx48cYGBiAx+PBwMAAHj9+HHP0fQZoIqIFtpgCtOTz+dDd3Y3a2lpcu3YNLS0t0/YXjMRms6GtrS1qH77BwUEIET5faLCJiQlMTExM+1qxfjBtNhuePn2Khw8faqadCiV/nGOZbq5sn8+HqampsAtql8ul6z2cmprCyMjItOsRvQleYPq53W48e/YMNTU1qKurC6v5jqS/vx/Xrl3DvXv3Io7KHWxoaEhN2+Tz+WL23+7q6sK9e/dift+9evVq2v2b7rN1OBx4+PBhzJHRPR4POjo60NTUpOs1oxkaGsKDBw/CutEQ6eXxeNDV1YXGxkbU1dWhsbERXV1dMbt18fuNiGiBLcYA/bYUFRXN2SjT/MEk0o/nS/ziZ0vxyO12w+l0alqGRcNzgIhogTFAz53+/n5s2bIF+/fvV6N319bWzsm2+YNJpB/Pl/jFz5YWO54DREQLjAF67pSWlmr6xL3p1FXB+INJpB/Pl/jFz5YWO54DREQLjAF67sh5TRMSErBp0yZMTU3N2bb5g0mkH8+X+MXPlhY7ngNERAuMAfr9wB9MIv14vsQvfra02PEcICJaYAzQ7wf+YBLpx/MlfvGzpcWO5wAR0QJjgH4/3Lt3j4WFZQaF4tNC/12xsLwLhYiIFhADNBEREREREZEODNBEREREREREOjBAExEREREREenAAE1ERERERESkAwM0ERERERERkQ4M0EREREREREQ6MEATERERERER6cAAPTtOpzNicbvdMZ9nt9tRU1ODtra2t7Sn8cdut6OqquqN3kN+Du+foSEfysudmJpa6D2ZvUjHYLMBp0458eSJR/d2rlxxobY29ncNEREREc0DBuiZ83g8WLZsGYxGI4QQqpjNZmzdujXic0ZGRpCbm6vWvXz58lve6/dfW1sbcnJy1HtYXV09423wc3j/VFe7kJo6DiFGIMQIRkd9C71LMxbrGEpLHRBiBCaTVde2Hj/2qO10dnrna5eJiIiIKBIG6NkbGRlRQcxiscDjiV6D5Ha78ezZM5hMJga3WfJ6vejq6lI3Lmpra3U9z2q1qs9moT6HoaH3L/S9KxwOoK7OrUKjzbbQezRzsY5BLl+xYjLseU4nMD6uXTY05IPRaIXZPPpevhdERERE77XFFKD7x4ADv3rxt7978S87vPjXKOVfdvjXOfCrF/1jsbdpNpshhEBeXp6ufViyZAkD9BtKTU2FEALXr1+fdl273Y6kpCT09fVplr/Nz+H5cy+Sk6f5Q6KYbDao8OlwLPTezE6sY3C5Ij9n/Xobzp8Pf9DjAbysfCYiIiJ6+xZTgD7wqxf/tsuLlGIv/n2fF6lRyr/v86/zb7v8ITqWhIQECCFQUFCgax+ys7MZoN+QDND19fXTrrt27VoIIcIC9Nv6HGw2IClpDBbL6Ly+TrybmgqEz2hh810302OoqHBCiJGIAZqIiIiIFshiCtB/+7s/GEcLzqn7vPjLV0785Ssn/lrsRkqxvyY6ljcJ0F6vF3fu3MHBgwdRW1sLV4Sr6tHRUZw8eRLbt29HcXExampq4PMFmgPX1dXhzJkzqpw/f1491tTUpJaHNnduaWlBRUUFTp48iaamJl37DgA2mw3l5eUYGBjA4OAgjhw5grq6uhlv+/nz5ygpKcGWLVtw+PBhNDc3R1zP5/OhoaEB33//PQ4ePIg//vhDV4D2er3YtGmTamJ/5swZXL16Fa9fvwYw88/B7Xbj3r17KCsrQ3l5Odrb26d9r0ZHfUhP9/d7NRqtuHrVhatXXQgeZ25iAqivd+OHHxy4eNGFkZHwpt42G1Be7sTAgA+Dgz4cOeJAXV1gIw8eeHDnjv/fbW1elJc7cfOmdoCp1699OH3aiaoqF8bGwl/D6wVu3nSjqMiOU6ecuH3bjd5efc3Ob99249tv7diyZQplZU50d4efM+3tXhw96q92tVp9OH/ehZISB168iHx+TU0BtbVuFBfbceKEEy0t3hkH6LExH2pr3di/347KSmfE9xbwN5G+ccONI0ccOHs2+mBe83kM/f0+nDzpVP8+d86l1v3iiylcvepCS0vgdWw2oLLSib6+8GOar+N59syLffvsOHrUgdu33XjwQP+gZ0RERERxYzEF6H/ZEbvm+S9fOVF2044nPW785Ssn/n2fvzl3LLMN0Hv27FH9cGVZtWqVZt22tjYYDAZkZGTg4sWLKCgogBAC69atU+vcvXtXNSMXQqCmpkbz/KSkJBgMBhWgnU4n1q9fD5PJhIKCAk0TdLvdHnW/nz59itWrV8NgMEAIgfLycvX/QghYrVbd2z5//rw6joqKCqSkpEAIgYqKCs1r2u12fPjhhzAYDNi3bx+Kioo0A7fduHEj6v42NjYiKytLrZuZmYns7Gw8evRoxp9Df38/0tLSkJycjPz8fHXcX3/9ddTXB4CTJ51IShpTQSg7ewK5uRNwOuU+emAyWZGdPYGcnAkIMQKDYQQ1Ne7/fM+9WL3aBoPB//zycqf6fyFGsHevHYmJ/u1/8okNGzbY1GNCjCA5eQyDgz4sXz6pWZ6YOIaJicB+jo35YDJZ8cEHk7hyxYVVq/zrX7w4fVLduNH/mv/4hwP/+IcDJpMVBsMIHj/2h6uaGrfmPbh0yaXZFyFG8OyZ9hx7+dKLpKQxJCaOoaTEgcJC7XFNM9A9AH+oNxqtWLFiEkeOONQ+fPmldgjv2lr/eomJY/jssykkJ/vXy8ubwMCAb96PobLSiSVLJtRywH9TJSdnQn3WSUljyM6eQEWFEw0NHqxcGfg8Q0PsfB1PXt4EkpPHcP68C19/bYcQI9i4kR2wiYiIaBFaTAH6X3dED89/LXbjo+P+C8Kf74zgL185kbrP3yc6ltkGaCEESkpK0Nvbi+PHj6tlL1++VOvKfrrBoViG0tHRQJPg33//XT3/+fPnYa9XVFSk/r1u3TokJCSo54+MjKgAuW3btqj73d7ejpKSEk3QPHr0KLKzs5Geng6Px6Nr22NjYyqA2v5zBKTe3l4IIZCUlKR5zQ8//BBCCE3tdFtbm3r9mzdvxnyvx8fH1brDw8Nh74uez8HtdiMhIQErV65UNf/37t2LeMMikqtXXSq0Buvs9NdGlpUFah0PHXKoEP3qlQ/t7V6UlDg0weboUQeysyeQnj6O2lq3quEWYgSbN0+hu9uLlhYvjEarWr5lyxS6urxoa/PCZPIvP3Uq8LoyEMlQ7fMBS5ZMoLLSiVju3PEPfpWSEji2ykqnek3AXwt/5EjgGBITx1Bf78ajRx41KnVhYSCI2e2A2TwKk8kKqzVQu1pe7tQdoB8+9I9SvWdP4KaN3FchRtDR4T+n7971r5eRMQ7ZqMPtBrKzJ9RxeTzzewx//OHBN9/YNQFakuH38uXAjYzubi9++y1wLMEBer6OR7538sYOAOzfb8fHHzNAExER0SLEAO0Pz/9znx3Pep0YGncheWsH/lrsntcAXVJSolkeaWRpOd1ScCiWtaq3b9/WPD89PT0sBL969UoTBp8+fQohBHbu3In+/n5VPvjgAwghYDQaY+67z+dTwfG7777TPKZ32zabDUajEWazWc2Z7fV61XZl8+mmpiYIIZCQkBC2HxaLZcYBemREG070fg4nTpyAEAK//fab5rjkjYGVK1fG3IdoAXrFCn8tYm+vD/39/nL/fmB6Ihmsfb5Av9nvvgsfPevgQbuqYQz2xRdTiDSy85Yt/uXbtgVqYvPyJsLC/MWLLpw9GztANzb69zc3N/DaMmxlZQWGjn792qeOoasrcD6VlfkDZWpqYF15E2HDBm046+sLbGO6AJ2WNg6j0YrgBhU+H5CfP4nExDEMD/vTpay9D23u3tMTeC3ZrHo+j+Hp00DT7mAyQF+5Et4SQNZOBwfo+ToeGbZXr7ap/e7t9WH9egZoIiIiWoQWY4D+a7Eb/+PrQF/nv3zlREmt/2Lw//vHCyTtmFTher4C9OnTpzXLZTA+c+aMWub1elXw6+zsRFFRkQqEv/zyi+b5P//8M4QQMBgMcP5nG+H9+/dj6dKlap1Dhw6pdSwWS1hJTExUz41G1oCH9lmeybbtdruqfW5sbMSaNWvUcQ0NDQEANm/eDCEENm7cGLYPsg/077//HnNf9QTo6T4HOe90pGOyWCy6A3RSUiBAe72BUGyxjEYspaWBsGw2j0KIETQ3h/c5/cc//OHmo4+0QVnWXK9bZ4u4/iefBJafPRuoGV21ahI9Pfqn3Bod9cHt9td0VlW5kJY2HnbDYGQkENZevw5s+/ff3eo9kGQIDG0+HjwAV4zZ4tDb63+t7OyJ6CtBG2Yj9SPOyhrX3ICYz2NobY0doKuqwgO0bGEgA/R8Hk93d2D/UlPH0dTEvs9ERES0iC3GAP2Xr5xoH/Dgyv/vwH/faUP+Pybh8fpw6e4Q/p//NaCpnX5bAVouDw7QAPD48WPk5eXBYrHg5MmTqqY5NEC7XC5Ve/rzzz/D6/XCbDajurparVNYWAghBK5evaprXyOJFqBnuu3q6mokJycjMzMTNTU1YQFavh+nTp0Ke64M0Ldu3Yr5GsEB2mq1ah7T+znI4x0PnYxXp0gBWgYSvVNbzSZAHz8eOUD/8EP4crsd+PBDbT/pQ4cc8OnI0Q4HVN/n1attOHbMoTtA37qlDWseTyBgtrdrz7vg8Blr+ibZvDm0Rj7U7duBZtCRuv5v2zal+dzm8xjmIkDP1/FI33+v7UqwerUtbH5qIiIiokVhsQboY7X+0ZhLfp3E7y12DE+4kbq9UzXdfhcC9N27dyGEQG5urqqxleuFBmgA+OqrryAHzKqrq4PJZFLNpAFg9erVEELg0KFDuvY1kmgBeibb/v777yGEwL59+9Sy0ACdlJQEIQQOHDgQ9vzZBOjgPuOA/s9BNtW+d+/etMcVSaQALfs/T1ebKs0mQJ844dQdoKXQQcp27Yo+qBzgD4vLlvmbf9fW+v/OZLPu2QTo0dHAeo2N2mPVG6Crq10RA2Co5uZAc3nZJzrYt9/6m8anp4/P+zFMF6Crq6cP0PN1PMGamjywWEbV8zIzx3UN6EZEREQUVxZjgP5rsRv/94ZuXLwzpB775Hgn/tuXE2H9oxcqQA8PD6vBtgYHB8PWixSg5WBcQggkJiZiz549msf3798PIQTMZnPEqZpOnDihmQYrkmgBWu+2b968qfYvWGiAliOOp6enh21LBujQfuCh5iJAy4HcQkfmBvx9wgsLC9HR0RF1HyIFaLc7EKTKy8ObzFutPuTlTaga4PkO0N9+a1cjgw8N+ZCbGxgVeko7aLVGcbE/lH36aWClNwnQQKBv7+7d2vAeHD5j1YwHh9HgQa+kO3fcqKhwYnIysL2KivDPQPZRl/185/MY5iJAz+fxXLniUlNhuVzA7t2BQc9+/50JmoiIiBaZxRSgg6exStnjwr9u6kBj6wQuNw7jv/6vvrDwrGcaq+CpmvSQgSy0abLse1teXg4AuHXrlgp/cuqliYkJ1Uz73LlzEbcvg6cQAr29vZrHHj9+rB5bv369JuhWVVUhISEh5lRWwccbOr+z3m0XFxdDDiom+0Q3Nzer57569QoAUF5erpZdu3ZNbcvlcqla4eDm6ZE4HA61jRcvXmge0/s5/PDDD2obwWHb7Xbjyy+/xOrVq2PuQ12dP5CYTNom5HJqKaPRivv3A8F4YgLIzBzH6dOBECQDdKS+p9EC9NGj/uXBoykDQGlpeIDOyZnQhDSPJ/Car15FT6uZmf5+tfn5gdeWfa+DA9jQUOSwdv16eFiTU2gZjVbNPNTBcyiPjkbfJ7c7sO9Go1UFTI/H37zbYhlFf7//+QUF/tfKyAhviyxHK5fv+Xwew7NnkQO07E8e6SaLDOnBN1Xm63gOHXKoUdWlNWv803KdOxf4u3G73fj555+nHdyPiIiI6L22mAL03/7uRUpxICD/v7sd+C9r2vB/fdwR1nQ7dZ9/3b/9PXqAHh4eVuHKYrFomktHI0eQLi4ujrh87969AACr1aq2nZSUhB07dqg5nYUQSE1NxSeffBK2fTmlVW5ubsTXX7lypdqu2WzGihUrVCi+e/duzH0fGxtTzw0dhVvvtn/77Te1zrJly/DZZ5+pY5ejWn/zzTfweDyqGbcQ/jmXz549q0Yml++5fL+ikWE7IyMDpaWlqqWA3s/B4XBo5tlOSUlBQUEBDAYDjEZjWN/qUB0dgXD0ySc2fP75FL77zoEnTwJNboUY0cwFHTwA1thYIOhEGoVbzgmclqYNTXK07eCabwBqrujMzMD6OTn+OX5lqLPb/QHtgw+0oTzUzp2BmshNm6awerVNBTUhRvD551O4cMGlajVDmzUH96uVNd0vXwbeL7N5FMeOOXDihFMNzCWbIceaozp4mif5Hsga2+Aw2tfnU0H08OHAeytvegSPMj2fxxC8vyMjgTArg7jJZEVZmRMpKWOw2wGbLVDbHNw/er6O59Ahh2ZubwBYunQCJpN2pPPKykp1nnR2dkb9fIiIiIjea4spQB/41Yt/2+UPxv++L/KUVrLmOaXYv+6BX8MDtNfrRU5OjgqzshiNRqxfvz7ia/f392sCoRACq1evRk9PDxITEzXLd+zYAQA4cuSIeo309HTU1NTg6tWrEMI/2nXoFEyAv1lxQkJC1PmJXS4X1q5dq3k9k8k07eBf58+fV2FUluzsbEwFtfHVs22v16v6S8ua+7a2NuzevVsF7xs3bgDw30TIy8tT6xoMBmzatAnJyclISEjAwYMH0dXVFXO/Dx8+rJ6fmZmJP//8c8afQ39/P9LS0jSPpaWloaWlJeZr+z+PQD9hIfxzNcv+rw0NHk3gFMI/OJOcO/j8eVfY49nZE5ia8o/kLZvlypKTM4FXr3xYsmRCszwpaQw9PT7k52vXz8oax+Cgv8m20WiF0WhFQcEkTCYrMjLGpx2Nu7fXp2qhjUYrNm60YWwssCwtbRz/+3+7NHNSm82juHDBhQMH7GH7KGtrnz71asKmyWRVUyllZY2jvNwZsxYaAG7ccKuaaLl/wfMpSz092v0tKJiEwTCC/fvt6nOqqXHP2zFs3GjTbNtksuLMGaf6+whe/uiRB8ePOzTbNRj8f1PzeTyHDjlgNFphMPgHZ0tOHoPZPBrWfLu+vl6dH6HzrhMRERHFjcUUoPvH/CH6b3/3N83+1yjlX3b41znwqxf9+gZKnjcOhyPsYnRycjJiP2Opv78f3lgjLcE/H/P9+/fx4sWLadedKT3btlqtamA0KXSqqeDttbS0qBr+np6eGe3P69evZ/ycSIaHh9HQ0ICBgYEZP7ejw6uCcaiuLi/u3fNgIvbA0fNG3gOxWn148sSDoSH901gB/prP0GIu6EwAAAsCSURBVMHQgmtSZ2toyIcXL/x/Pz4fNM2h9Xr1yofOzun/vvv7fbh2zY179zwRR7GerTc9BpsNaGvz6hoRPdhcHo/D4b9hMzXlb4be0+OLOpBbd3e3GseAiIiIKC4tpgBNRERERERENGsM0ETzI7g5LAtLvBYiIiKiRYUBmoiIiIiIiEgHBmgiIiIiIiIiHRigiYiIiIiIiHSItwDt8/ngcDgwNDSErq4utLa24s8//2R5j0prayu6urowNDQEh8MB30yHICYiIiIiIpoP8RagHQ4Hurq60NbWhvHx8Xl9LZo/4+PjaGtrQ1dXFxwOx0LvDhERERERUfwF6KGhIbS2ts7ra9Db09raynlliYiIiIjo3RBvAbqzsxOjo6Pz+hr09oyOjqKzs3Ohd4OIiIiIiCj+AvTTp0/ndfuhOjo68P3332NkJP7mQ7148SIuX7680Lvx1j9TIiIiIiKiiOItQD969GjOtmUwGCCEUMVgMCAzMxP3799X69TU1EAIgba2tjl73XdFVlYWli5dutC7MaefKRERERER0azFW4B++PDhnG1LCIGsrCycOXMG5eXlKCwsVKH6+fPnABig34a5/EyJiIiIiIhmjQE6OiEEtm7dqll29+5dCCGwadMmANED9OvXr3Hp0qWozY/dbjeamppw/vx59PX1RVynp6cHV65cQXV1NV6/fq1rn8fGxlBfX49z586F1dw6HA7cvn0bVqsV7e3tqKys1Lx2W1sbzp8/j3v37sHtdkcM0C6XCw0NDaisrMT9+/fh9Xp1b3+2GKCJiIiIiOidwAAdXaQA7fP5YDAYkJOTAyBygC4oKNA0/bZYLKrGGgBevnyJ5ORkzTrp6emaftQlJSWax4UQuHjxYsz9ra+vh9Fo1DwnLy8Pk5OTAIDu7m4IIZCTk6Mer6urAwAUFRVpnpeRkYHU1FRNgI6030uWLFHThcXa/ptggCYiIiIioncCA3R0kQL0kydPIITAunXrAIQH6JqaGhgMBvz8889wu9149OgRDAaDZjtLly6FwWDA9evX4XA4cO3aNQghsHnzZgDA/fv3IYTARx99hM7OTjx8+BAZGRkwGAwYHByMuK/j4+MwGo1ISEhAVVUVent7VSguKioCEAi4BoMBFRUVGB4ehsfjwe3btyGEwMqVKzE6Ogqr1YoVK1ZACKEJ0HK/L1++jLGxMZw4cQJCCHz55Zcxt/+mGKCJiIiIiOidwAAdnRACK1asQENDA+7cuYODBw8iISEBQgg0NjYC0NcHurCwEBaLBQDQ398PIQRWrVqlWefOnTuorKwEAGzYsAFCCE2NdH19PYQQqKioiPgaP//8c8THExMTYTQaAQQCrgy80rp16yCE0EwX1dHRoQnQAwMDEEJg27Ztmuemp6fDbDbH3P6bYoAmIiIiIqJ3AgN0dKFNqIUQMBqNuHTpklonNEC7XC5cunQJy5Ytg8ViUU2qZci8c+cOhBA4d+5c1NddsmQJhBAwmUyaIoRAcXFxxOfs378fQoiwPsdffPEFhBCw2Wwq4IZOTbVkyRIV8INZLBYVoOV+GwyGsH0SQsDtdkfd/ptigCYiIiIioncCA3R0QgisXbsWnZ2d6OzsjDiQV2iALi0tVTXXP/30E6qrq5Gbm6sC9IMHDyCEQGlpadTXzc3NVU2lQ0u0Qclkn+mWlhbN8rVr10IIAZfLFTXg5ubmwmg0agYE83q9MBqNKkA3NzdDCIENGzZE3C+Px8MATURERERE8Y0BOrpIfaBDhQbotLQ0JCUlqcfdbjfMZrMK0BMTExBCIDs7W7Od0tJS1Vd5+/btEELg8ePH6vGpqSncunULAwMDEfejtrYWQgiUlJRolst+0QCiBtytW7dCCIE//vhDLZOBWQbosbExCCGQn5+veW5LS4tqzs4ATUREREREcY0BOrrZBOhdu3ZBCIGysjJUVVUhPz9f04QbCATW7du3o66uDrt374YQAkeOHAHgn75Kjt598uRJ1NTUICsrCwaDIeq0UB6PB0lJSRBC4NNPP8WZM2eQmpoKIQTOnDkDIHrAlf2dExMTUV1djaqqKiQmJoYNIrZx40YIIVBYWIjr16+rWm/ZrJwBmoiIiIiI4hoDdHSRBs0KJWt+ZYAeGBhQoVkIgWXLlmHz5s2aAO10OvH555+rdSwWC3bs2AGXy6XWuXPnDiwWi1onKysLt27dirkvvb29mimkDAYDjh49Cp/Ppx6PFnBra2tVf22DwYCdO3ciPz8fubm5ah273a4GOJM3BTZv3gy32z3t9t8EAzQREREREb0T4i1AP3r0aF63r5fNZoPNZou5jtfrjdokWxoZGcHU1NSMXtvhcETsr63H4OCgCsTReDyeafd7Lr0rnykRERERES1y8Rag29raMDw8PK+vQW/P8PBwzCnCiIiIiIiI3pp4C9B9fX148ODBvL4GvT0PHjyI2u+biIiIiIjorYq3AG232/Hw4UM0NzezJvo9Njw8jObmZjx8+BB2u32hd4eIiIiIiCj+ArTP58P4+Dj+/PNP/POf/8S1a9fw66+/srxH5dq1a/jnP/+JP//8E+Pj42oQNCIiIiIiogUVbwFa8vl8cLlccDgcsNvtLO9RcTgccLlcDM5ERERERPRuidcATURERERERDSnGKCJiIiIiIiIdGCAJiIiIiIiItKBAZqIiIiIiIhIBwZoIiIiIiIiIh0YoImIiIiIiIh0YIAmIiIiIiIi0oEBmoiIiIiIiEgHBmgiIiIiIiIiHRigiYiIiIiIiHRggCYiIiIiIiLSgQGaiIiIiIiISAcGaCIiIiIiIiIdGKCJiIiIiIiIdGCAJiIiIiIiItKBAZqIiIiIiIhIBwZoIiIiIiIiIh0YoImIiIiIiIh0YIAmIiIiIiIi0oEBmoiIiIiIiEgHBmgiIiIiIiIiHRigiYiIiIiIiHRggCYiIiIiIiLSgQGaiIiIiIiISAcGaCIiIiIiIiIdGKCJiIiIiIiIdGCAJiIiIiIiItKBAZqIiIiIiIhIBwZoIiIiIiIiIh0YoImIiIiIiIh0YIAmIiIiIiIi0oEBmoiIiIiIiEgHBmgiIiIiIiIiHRigiYiIiIiIiHRggCYiIiIiIiLSgQGaiIiIiIiISAcGaCIiIiIiIiIdGKCJiIiIiIiIdGCAJiIiIiIiItKBAZqIiIiIiIhIBwZoIiIiIiIiIh0YoImIiIiIiIh0YIAmIiIiIiIi0oEBmoiIiIiIiEgHBmgiIiIiIiIiHRigiYiIiIiIiHRYkADNwsLCwsLCwsLCwsLCwvK+FwZoFhYWFhYWFhYWFhYWFhYdhQGahYWFhYWFhYWFhYWFhUVHYYBmYWFhYWFhYWFhYWFhYdFR5iVAExERERERES1SDNBEREREREREOjBAExEREREREenAAE1ERERERESkAwM0ERERERERkQ4M0EREREREREQ6MEATERERERER6cAATURERERERKQDAzQRERERERGRDgzQRERERERERDowQBMRERERERHpwABNREREREREpAMDNBEREREREZEODNBEREREREREOjBAExEREREREenAAE1ERERERESkAwM0ERERERERkQ4M0EREREREREQ6MEATERERERER6cAATURERERERKQDAzQRERERERGRDgzQRERERERERDowQBMRERERERHpwABNREREREREpAMDNBEREREREZEODNBEREREREREOjBAExEREREREenAAE1ERERERESkAwM0ERERERERkQ7/BwDhd1yvd49TAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Image(gui_driver.get_screenshot_as_png())" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "The form is now fully filled out. By clicking on the `submit` button, we can place the order:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "submit = gui_driver.find_element_by_name('submit')\n", "submit.click()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "We see that the order is being processed, and that the Web browser has switched to the confirmation page." ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/html": [ "
127.0.0.1 - - [10/May/2019 14:52:23] INSERT INTO orders VALUES ('tshirt', 'Jane Doe', 'j.doe@example.com', 'Seattle', '98104')\n",
       "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
127.0.0.1 - - [10/May/2019 14:52:23] \"GET /order?item=tshirt&name=Jane+Doe&email=j.doe%40example.com&city=Seattle&zip=98104&terms=on&submit=Place+order HTTP/1.1\" 200 -\n",
       "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "print_httpd_messages()" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Image(gui_driver.get_screenshot_as_png())" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Navigating\n", "\n", "Just as we fill out forms, we can also navigate through a Web site by clicking on links. Let us go back to the home page:" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "gui_driver.back()" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "image/png": "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ItKBAZqIiIiIiIhIBwZoIiIiIiIiIh0YoImIiIiIiIh0YIAmIiIiIiIi0oEBmoiIiIiIiEgHBmgiIiIiIiIiHRigiYiIiIiIiHRggCYiIiIiIiLSgQGaiIiIiIiISAcGaCIiIiIiIiIdGKCJiIiIiIiIdGCAJiIiIiIiItKBAZqIiIiIiIhIBwZoIiIiIiIiIh0YoImIiIiIiIh0YIAmIiIiIiIi0oEBmoiIiIiIiEgHBmgiIiIiIiIiHRigiYiIiIiIiHRYkADNwsLCwsLCwsLCwsLCwvK+FwZoFhYWFhYWFhYWFhYWFhYdhQGahYWFhYWFhYWFhYWFhUVHYYBmYWFhYWFhYWFhYWFhYdFR5iVAExERERERES1SDNBEREREREREOjBAExEREREREenAAE1ERERERESkAwM0ERERERERkQ4M0EREREREREQ6MEATERERERER6cAATURERERERKQDAzQRERERERGRDgzQRERERERERDowQBMRERERERHpwABNREREREREpAMDNBEREREREZEODNBEREREREREOjBAExEREREREenAAE1ERERERESkAwM0ERERERERkQ4M0EREREREREQ6MEATERERERER6cAATURERERERKQDAzQRERERERGRDgzQRERERERERDowQBMRERERERHpwABNREREREREpAMDNBEREREREZEODNBEREREREREOjBAExEREREREenAAE1ERERERESkAwM0ERERERERkQ7/BwDhd1yvd49TAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Image(gui_driver.get_screenshot_as_png())" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "We can query the web driver for all elements of a particular type. Querying for HTML anchor elements (``) for instance, gives us all links on a page." ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "button": false, "new_sheet": false, "run_control": { "read_only": false }, "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "links = gui_driver.find_elements_by_tag_name(\"a\")" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "We can query the attributes of UI elements – for instance, the URL the first anchor on the page links to:" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "'http://127.0.0.1:8801/terms'" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "links[0].get_attribute('href')" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "What happens if we click on it? Very simple: We switch to the Web page being referenced." ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "links[0].click()" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/html": [ "
127.0.0.1 - - [10/May/2019 14:52:23] \"GET /terms HTTP/1.1\" 200 -\n",
       "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "print_httpd_messages()" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA9AAAAE7CAYAAAA1smmAAAAgAElEQVR4nOyd208UydvH6x/o27maKy644IILEhITQmJMiDGEGLKBGCJZs8aNbnTjIa6rWV1x1/PxddHFE2TFiMGzEghhPaEED0g8gEyEXRRF8cBwGIaZYWb6+170r2r6UD30wAAuPp+ksm53TXV1dVVT336eeoqBIAiCIAiCIAiCIIhxYTNdAYIgCIIgCIIgCIL4L0ACmiAIgiAIgiAIgiAcQAKaIAiCIAiCIAiCIBxAApogCIIgCIIgCIIgHEACmiAIgiAIgiAIgiAcQAKaIAiCIAiCIAiCIBxAApogCIIgCIIgCIIgHEACmiAIgiAIgiAIgiAcQAKaIAiCIAiCIAiCIBxAApogCIIgCIIgCIIgHJCYgGaMEiVKlChRokSJEiVKlChRml2JBDQlSpQoUaJEiRIlSpQoUaLkIJGApkSJEiVKlChRokSJEiVKlBwkEtCUKFGiRIkSJUqUKFGiRImSgzQtApogCIIgCIIgCIIg/muQgCYIgiAIgiAIgiAIB5CAJgiCIAiCIAiCIAgHkIAmCIIgCIIgCIIgCAeQgCYIgiAIgiAIgiAIB5CAJgiCIAiCIAiCIAgHkIAmCIIgCIIgCIIgCAeQgCYIgiAIgiAIgiAIB5CAJgiCIAiCIAiCIAgHkIAmCIIgCIIgCIIgCAeQgCYIgiAIgiAIgiAIB5CAJgiCIAiCIAiCIAgHkIAmCIIgCIIgCIIgCAeQgCYIgiAIgiAIgiAIB5CAJgiCIAiCIAiCIAgHkIAmCIIgCIIgCIIgCAeQgCYIgiAIgiAIgiAIB5CAJgiCIAiCIAiCIAgHkIAmCIIgCIIgCIIgCAeQgCYIgiAIgiAIgiAIB5CAJgiCIAiCIAiCIAgHkIAmCIIgCIIgCIIgCAeQgCYIgiAIgiAIgiAIB5CAJgiCIAiCIAiCIAgHzDYBHYlEEA6Hk5JUVZ3Suk43Xq8Xx44dw5UrVxAOh2e6OrZEo1HbZ/JfJF6fTDaqqiat/8/WcUBYiff8I5FI0q+nqip6enpQV1eHM2fO4MaNG+jr65PmbWhowN9//530OkwH8d5l8cZ/U1MTDhw4gFevXiWlHv/88w/279+PBw8eJKU8giAIgviqmU0C+t27d2CMJS21trZOWV2nm3v37hnuze12w+/3z3S1pKxdu9b2mTx58mSmq5cwS5Yssb2fZIuT2trapI4Bxhiam5uTWkfiyyPe8//hhx+Sco1wOIzS0lJkZ2dDURTptVwuF3Jzc3HkyBG8e/cOT58+BWMM33zzTVLqMN0cOHAgbtv29vZafpOXl2fIU1ZWNqk67N+/31DeokWLJlUeQRAEQXz1zCYBHQgE0NDQgF27dsWdtHz77bfYunUr1qxZg0WLFiE7O3vWC+iCggLL/Z0+fXqmqyWlvb0dS5culT6T+/fvz3T1Eqa1tRULFiyYMQGtKAqKioqwYcMGaR0URcGGDRtQWFgoFTYkoGc/jx49wpkzZ+ByuaZEQD979gyZmZmGcvPy8vDHH3+gpaUFt2/fxvbt2y15ePqvCugPHz7gxo0bWLZsmSMB/ezZM0set9sd9z3R2dmJw4cPIxAIWM6FQiHpM+3q6kr6vRIEQRDEV8NsEtB6jh07Jp2wZGVlSfO/efMGP//886wV0Onp6Za2WL9+/UxXy5ZAIDCrrKFtbW3TIqBramoM5e/fvx+hUEicl02m09PTxflAIIBffvnFcL6pqSmpdSS+XLZu3WrpHytWrJhweZFIBL/++qulzI0bN0rzh8Nh6Yee/6qA5oyOjkrH/9u3bw35rl27Js33+fNnabk+nw9paWlgjMHr9VrOf/78WVre9evXp+Q+CYIgCOKrYLYK6NbWVunEYdWqVXF/V1JSMisF9M6dOy1t8aW7Q/OJ4WwQ0HYfBJItoK9fvy7KLi0ttZwfT0Bz9CKGBPTXwx9//JFUAb1u3TpLeUVFRYhGo3F/d/bs2VkloAG5m7xZQI+MjFi8QPLz823LXLx4scgnE9AAkJOTYyhPURQEg8Gk3htBEARBfFXMVgHd0dExIQEdDoeFtXY2CWiv14v169dDURSkpKTgzz//nOkqjYvMav5fdOEGpk9AcwvWggULpOedCmhVVZGSkgLGGO7du5fUOhJfLqWlpZb+MVEX7tOnT0v7/Lt37xz9fs+ePbNeQMvWQNfW1iIrKwuMMRQXF6Ozs1Na3tGjRw1l2Qno9vZ2FBUVgTGGuXPn/mcDshEEQRDEFwMJaODcuXOGScXu3btnnYDmjI2NjWv9+VIgAZ04V69etbU+A84FNBCzQt+9ezepdSS+XJIloIeHh6Xr6e2W0MiIRCIiPsXXJKA58azE5qUa8QS0k/IIgiAIgkiAr11AR6NRKIqCn376SRxrb28HYwzt7e3TUtf/El6vFx6PB6Ojown9LhwOo7u7Gx6PZ9yJHmc8Ad3f34+urq4JfRAIBoN49uwZenp6Ev4tZ3BwEK2trejv7x8373QJ6CtXroAxhhcvXkjPJyKg79y5A8aYZesbVVXx+vVrdHZ2GtZXT4SBgQF0dHRM6BmOjo6io6MDb968sW3HSCSCV69eoaury/G2YcFgEB6PB729vYYtvN68eTPpyPV+vx+dnZ14+fIlhoaGJlUWJxqNwuPx4P379wltORaNRtHZ2YnBwUFxLFkCmn+ENKf9+/cnVM6DBw8cC+hIJILOzk50dHQkbYu4ib7vBgYG0NnZaXgeiQpoO+wi7Tt9rzolGe9IM2/evEF3d/cXMRYJgiAIYsJ87QKar5XWC2gAws2wpKQEmZmZlpSVlSUmAcXFxdI8mZmZaGtrE2V6PB7bfHbpwIEDk/ptTU2N7XkeSMbr9SI7O1ua5/DhwwiHwzh06BDmzp1raMu5c+fi6dOnts9geHgYO3fuFK7A+qQoChYvXozdu3cbkr48mYC+efMmfvvtN0O0XkVRkJubi+fPn8ftE6FQCNu2bUNGRoalLrm5ubh9+/Z43Qp9fX1YtmyZ5Z7cbjeKi4tt920dT0A3NzfHfZavX78et26AJirN6yr1JCKgI5GIYYJ///59LFiwwGJZLCoqgsfjMfz24MGDtvfS09OD3t5eLFy4UJThcrmE1dxuzGVmZmJoaAhPnz5Fbm6u5T42b94sIhH7fD5s2bLFkmft2rUYGBiQ3m9TU5M0CvTcuXOxcuVKMMZQU1Pj6Dno6e7uxqZNm6Rtz5i2K8CtW7csvxuvHZ48eYLly5cbylUUBXv27IlrbXz58iXy8/MNz3Hu3Lmorq5OmoCWjV3GJubVs2rVKuzZs8f2fFVVleXdxK3dx44ds3xUmKr3naqq2L9/v+HeXS4Xli9fbhvMSz++lixZIq1Tbm6uyFNdXS0thzGGjIwM8ZvW1ta4/cdOFE/kHRnvb0xjYyM+fvyIjRs3WmJaLF26FB8+fJDWY6rGIkEQBEEkha9dQPO1YWYBzbl06RJSU1OlZfEv4OfOncM333wjzaO33jU1NUknebm5uXC73dLf79q1a1K/ff78OebNmyc9X1FRAQAYGhqy3WZl9erVoo1kSVEUfPr0ydJuzc3NFqG1d+9enDx50nYPWMYY/vrrL1GG3SQ8XrKLLtvZ2WmYkKWmpuLIkSPYtm2b4fclJSW21pH6+nqDWMnJyUFFRQW+/fZbQ3tcuXLF8tvxBHRXVxd27dplEVnZ2dnYs2cPhoeHpXVKlEQENCccDuO3334z/Ka0tBR//vmnQSjo12o2NDSIdZzmdPfuXdsx1d7ejqtXr9puZxRPQDCmRXceGBjAnDlzbPPMnTvXYrGuqqoy5FmyZAnKyspQWFhoOJ7opP3x48eGvrFnzx5UV1dj48aNlnrt3r3b8NurV69ahIy+HvHG0datW6X1+fvvv+P+TpYSFdBv3ryxLWsiFlc7hoeHDXusK4qCbdu24ciRI4Z+np+fb7DOTsX7zu/3W/qKPtn1d317bNu2TfpsXC6XyLN8+XJHz6y1tRWXL1+2va5sXfVE35FtbW2Wvat5On78uDQYJE/Z2dmWDxxTNRYJgiAIImmwr1RAR6NRg7XFTkAD9lsQ6V3IwuGwdPKjF9D19fXi+LFjx4T7aygUkk50XC6XcPOczG8BuXDiApqzfv1624lORkYGVq9eLT23efNmQzmvX7+2tIU+D3cz1qeCggIsXrwYd+7cEfnsBHRJSQmePXuGI0eOSM+braF9fX2W+ugjkJvFjCzqcENDg6V9+fOPRCIWwXbu3DnD7526cOfn54tzp06dSsgl1wkTEdAHDhww5N+5c6c49/vvv4vjbrfbYP2227onXrp06RIAzT3eLo/L5cLatWttxQE/npWVZfvxqKqqStTz48ePhv7x+++/G+5fvyVeIpP23t5eQ7nmfiWLUF1fX2/I09/fH7e9vvvuO9t7NFvaPR6PJY/b7UZFRQUePnxoKwATFdC3bt2yra9sr+KJEI1GLR9o9Ov+6+rqDOfS0tIwNjZmKCNZ7zsAho9oPC1ZsgRNTU04c+aM7UcL8weFiooKaX/njI2NSSN1M8bw5s0bjIyMGP4udXZ2Sq9rFtDJeEfG++CZl5dn+NihTw0NDaKMqRqLBEEQBJFU2FcmoNPS0lBQUGBxwY0noKPRqLQs8xqs+fPnW/LoBfSlS5ekE7BDhw5Jyz916lRSfgvA4C7Lk1lAm7eO4Wnv3r0ijznyK2MMCxcuNJSj3wqMJ73r38jIiOW82foGyCdk5nxr16615Fm0aJEhT3FxseH8/PnzDeefPXsW97mNjo5a+ou5HuZ2MX/AcCKg9+7dK37b0dFhaY9kkKiA7u3tteR/9uyZOH/79m3DuSVLlhh+b2dBPXLkCPbv3285rhfgMoGcmZkpLIDhcFhq3VIUBY2NjaIc7vJpN97Pnz9vOHf48GHDPUSjUfGBJJFJu9mSxhjDv//+K86bP8owxrBhwwZLOTIPk5SUFLx//x6A1rdkz9XsLr1o0SJLnvPnz4vz4XBY+rwS3caqsrJS+swZS967v7y83FK2XpyrqmoRhOb118l63z1//tySJy0tzTC27fZ3Ni+3kG2/qBfQHNnztlsDLbuuWUBP9h0JAN9//730WvoghAUFBZbz+vE2VWORIAiCIJIK+8oEtF2KJ6C1W7D+xiygZesy9ZMMvq2Lfp3shw8fpNaE9PR0g5vcZH4LQOpibhbQ586ds+QxR81tbm6WThb1yNxvX758achjrrdMxDmJwv3w4cO4E8S7d+9azplFSigUsuTJyMgQ1t/t27dbzpsnb+NdZzwBzcWkoii2AcCSQaICesWKFZb8+r7V3d1tOKcoiiEgmKwvZGRkiPNlZWVQFAUul8sicGTP37wPuMyqVVJSYsgjE3R6EWT+4KMoisETAoj1+0Qm7bLr6n///v17y/mcnBxLObIYAnqrHQAsWLDAkke/lODp06eW8ykpKRYPiMOHD1vyJSqgZWUwplm7k4HX67W8P/R9iiOzzOu30ErW+04mCisrKy31kbWJWUDLntNUC+hkvCMB+btiy5YthnL0W5PxtGbNGnF+qsYiQRAEQSQV9pUJ6KVLl8Lj8aC6utpg2ZkOAf3mzRuDZQywX9N28+ZNQ77J/BaYuIA27yfc1dU17sRYZhU0WzxkE0Czi6UTAf3x40dpG1y+fBkAsHnzZsu5I0eOWNpHZuV78+YNAEjX05qDCb169cqSJyUlRZyPJ6D1LtJmgZhsEhXQ5megKIrh/KdPn+K2jUxAm9fnRqNRaRRt2fPXu5UCwK+//mrJY/YOaGxstOTRB2Yyu6jzVFhYaLiXgYEBSx+Nh8/ns7SdXuR8+PDBck2zOAPkAto8DmQfEs6ePSvO//HHH5bzRUVFlmslI4jYqVOnpO1p7jsTRWa5LygosOSTrXPWu+4n630nu1eZB4ksn9mFeyYEdDLekYBcQOut+QDw119/WfJ8//334vxUjUWCIAiCSCrsKxPQ+iBiPp9PTE6nQ0CbkbnrMWZ1EUzGb5MloP/55x9LHr1QBOQWGbMFWjZJNK/3dboPtKwd+MTNies6IBf9DQ0Ntu775g8CdkKe9xE7Ac3dtnlaunSp9Pkli0QEtN29p6WliSRzs9Zb32QC2i7QmxknAnrr1q2WPGYBLbOw6QX0vXv3pPfJU35+Prq7ux22sJGenh4cOnQIe/bsEe7b4XAYN27cwNKlS6Vta8aJgP7uu+8sefRicc2aNZbzmzZtslwrGQL6+vXrtm2ZjDX9Mgu3eekAIL9nvUU0Ge87u3Hv8/ks9ZHl+xIE9GTfkRwnApp7UunT8uXLxfmpHIsEQRAEkTTYVyyggdgkaroFtKqqtlGKzWIzGb+dTgEtc12tra0V5/v6+iznnQalkQlo2brNlStXApCLD72w4MiE3h9//IHXr19L29m8DYzZ2sgTX4dqJ6BlyRyALJkkIqDtoinPmTMHWVlZtkk/qZa1q1PXy+kS0ABsowjHGy+J0tTUhJUrV8aNgj1VAlp2f+YATUByBHRLS4vt/SVj72uZ541ehHE2bdpkyZefny/OJ+N99+jRI+l9yjwqZPm+BAE92XckJxkCGpiesUgQBEEQk4J95QLa7/eDsekX0LLJG2MM69evH/feJvLb6RTQkUjEsiZTbxmXTdJv3LhhqbNTAS2bcG3btg2A3O1QNvmSfZDYtWuXrYDWB4MCYv3InJqamgAkJqAVRbGUnywSEdBv3751dO/x+K8IaL/fL7XEOemn49HQ0IDs7GxDOb/88oslABtjUyegZf1bH02dkwwBbbcjAWPGgFITRRasSmaBlu0Drg+OlYz3ncydnDG5pV2W70sQ0JN9R3KSJaCnciwSBEEQRFJgX7mABjQL5nQK6JGREekEyLxGUsZEfzudAhrQRPS+ffssZZnXJbrdbiEyzTgV0HPnzrXk41ZcWSCh06dPO7rWlStXpMFzGGP4559/DL+3226IR4y2E9BdXV3S5zlnzpwpWeOXiIC2u/dr1645vt5/RUBzLl68aLuvOmPyYFV2hMNhqbWUxzKQjaWpEtCyIGO//vqr5VrJENCAfFsnxoyCa6LIgvp99913lnyybcL0AauS8b67f/++9D5HR0ct9ZHl+xIE9GTfkZxkCWhOMsciQRAEQSQVRgIar1+/NkRnlSEra6ICWrbNE2MMR48eNeTbunUrDh48mJTfTreABjQRrd9CSFEUpKSkYOHChdi0aRMqKyvR398vb3A4F9CyfC0tLQDk6yBPnDhhKUMmUvh+0rK1f+YgQTJrrT5oUrwgYjJLJGOalTLZJBpETNYu3LrvhP+CgH7w4AGqq6vF/4+NjaGystJ2n+lgMOio/jt27IjbdtMpoGXjgC9z0JMsAW0Xo2HOnDkJl9XZ2Wn4yHb58mVLubKAaDJBd/LkSXF+KtdAm4Ux8OUK6GS8I+3aO1EBPVVjkSAIgiCSCiMB7QhZWcPDw4Y8TgS0edsfnlJTUw3bA/X09IAxhuLi4qT8droF9KNHj8TaZJfLZZhoOcWJgB4bG4v7bGR78f7222+GMmR7xrpcLmEBllkRzVuryCa+hYWF4vx421j9/PPP0vOyiOqTIVEBLXOPd7lc0sl6NBrF4cOHDdtw/RcENBcQ5nsaGxuTlj+elwhHZj2rr68X56dTQMuE8bx58yzXkkXrnoiABuRRsBlLzPW2o6ND9Fn+0UoW8X7u3LmW38reefo9zJP1vpO5q5t3TACmXkDzj5Gqqho+7squqxfQyXhHAskR0FM1FgmCIAgiqbBZKqDtLCDLli2bUHmySax+W43BwUHpV3J98CwAKCwslNarrq7OkI9bbvX7cU7mt/n5+ZbfmQW0bCLlZEJp3tblxYsXhvMTjSwtE1B///23IY8siM+hQ4fE+UgkYhFx+g8LgDxYlj6StMy6XF5ePm7b6Sepo6Oj0mfHP3wEg0Hp/bpcLuEGPlnsomrLJuica9euSX9jfqahUEhspaS38skCvF28eNFRfWWW/6kU0GVlZdI204/9eG2lx+55671CZFv6OBXQ5u3OZAJav41Vb2+vtD76PhqJRKTLIWRbRDlhaGhI+vzT0tIcCZ+bN28K0WZ2N1+/fv24fdjcbuY+m6z3ncxV3OxSfvPmTWn76wU9IP+75VRAP378GABw5MgRw5IeJ899su9IQP6hcc+ePYY8MgGt38ZqKsYiQRAEQSQdNksF9J9//imdOKSnpyMajSZcniyoSV5eHpqbm1FeXm7rYrZkyRKxpYmdq65+0haNRg2TQy4GJ/PbaDQqnXDpt3QBgJ9++smSx2xtuXHjhiWPeX/XH3/80ZInKysLhYWFKC4uxnfffYfvv/8e69atw+nTp/H06VPpM5EJSrNlxGz1SEtLM1jjAXlU4M+fP4vzZ86csdTVHATo0KFDljx6zFsSbd682XDe7oOOPiDXs2fPpHny8vKSsv3P48ePpeWb62HG7sNNamoqNm/ejOXLlwuho3elDQaD0t/t27dv3LraucZevXrVkG/16tVxJ+QAUFNTY8mjdyXWu7By1389+rE9XqwETiQSkdZfURSsXbtWum8zP9/Q0CAEst3aenOUZFmAJ/NevrLlH/n5+fj06RNGR0el22rxOnV1dTm6bzMfPnyQjuM5c+bYltnV1WVY+mEeSwAwPDxseafpo7+bvXUURcGHDx8MZSTrfdff3y+1QtfX10NVVTQ1NdkGVdu4cSMCgYAo68SJE9J85m2xZM/b7Xbjhx9+MIwBO08sfVsByXlHyj6WmNc3yz546T/QTMVYJAiCIIikw2aRgA4EAqivr8fOnTulkwaeFi5ciOrqajQ2NjoW07KJVCLp1atX0okkY5plpKSkBN9++61lUsjXg030t+/fv7d1D3a73aiurkYwGMTx48elIpsxbbubgYEBPHz4UBpwhjGG1atXC6tGcXFxwu2Tm5trmLCZ71lft9raWrx+/RoHDx40lJGenm7rKm62Ni1atAidnZ1obm42lJ2dnS1dvxgOh7FhwwZDGTt37kRvb6+l7JUrVxomxY8fP7Ztt2XLluH58+eIRqO4efOm7TMwT7SdMjo6ioaGBhw9elRqyeQpLS0NJ06cQENDgyUA0vv376XWYHPKyckRE32PxyMm8+akKArKysoMrt562trabINQZWVloampCYFAAKdOnZIKE0VRUFFRgWg0itraWqkbOWOadezdu3eWNaCbN2/G48ePcffuXcM5l8uV0DZMMq8PfZJZe3n69ttv8fTpUxQVFUnPZ2Zm4tatW/D7/ZaPOzylpKSgqqpKvON8Pp/t9ndOktma6JSxsTEcPnxY+qyKioqwd+9eHD9+HBs3brQsg5Ftp8RpbW019On09HQ0Nzfj5cuXyMnJMTw3/RrqZL/vAKC6unrC7cqYFnSspqbGdpwtX77csHXe5s2bbctSFAX9/f14+vSpbTTruXPnWpYXTfQd+f79e9vYHPqxeP78edugYIcPH8bAwMCUjUWCIAiCSCpsFglouy2H4qXbt287Lv/EiRPSSeCCBQvQ2dkpJn+KomD+/Pn44YcfsH37dlRUVGBoaGhCE6vGxkaoqjrh3549e3bcfLI1heZ07969cYXx9u3bAQB1dXUTqm9KSorBqsEFNJ+AydZx8vTrr78iFArFfX6dnZ2YM2eObRm//PKLxXptpr6+3nbirSiKIQAOR7btjj7l5+fbuvzq05s3bxz3VY7dVlTxkmwv8WAwGHeSvGfPHsPet+aPDbKUl5cnrbOT9nIy1oPBoK1nCE/Hjh0TE/Pi4mLbZ5uTkyP9sBKPT58+Sfuby+XCwYMHEQ6HsXv3bsv5kpIShMPhcdshJycHL1++dNQOnFAoJPUQURQFW7duxYULF8Sx1NRULFq0CBs3bkRpaalhycpE6Ovrs7Vym+uyZcsW9PX1jVvm8PCwrTWfMe1jqXkJRLLfd5yHDx9KBeKcOXPQ1tZmEMc5OTlYsWIFduzYgb/++gvhcDhuxGnGjHsuBwIBqTjOyspCd3c3AGfjyMxE3pFO/saEQiHbscWTXiQneywSBEEQRFJhs0hATwderxc1NTWoqqpCQ0ODIVhLU1MTHj16ZBASXyORSGRCVmjGGJ4/fy7KOX/+vEXMBQIB3L9/H+fPn8e5c+fQ3t4+rug18/HjR/z99984dOgQ/vrrLzx58mRc8a1HVVV0d3fjypUr2LdvHy5cuIDOzs4JLQ34r+Hz+dDU1ISysjJUV1ejq6srKe7lM0lzc7NYl62qKp49e4YzZ87g7NmzuHLlCjwez4SfraqquHfvHo4dO4bKykq0tLRYIgc3NzejrKwMZ86cmVCwvYnQ39+P+vp6nDt3zvDO+vz5My5dupS0dfcyQqEQOjo6cPXqVezatQsbNmzAmjVrcOTIEdTX10/IsjgyMoLm5mYcO3YMR48eRVNT04xYKCORCJ4/f46qqirU1NTg48eP4lxDQwMeP36ctL8Pqqqiq6sL1dXVqKqqQltbW9LKnuw7cqJM5VgkCIIgiKRBAppINh8+fDBYmjIyMpCdnW1IWVlZUuugPgAVQRAEQRAEQRDEFwUJaCLZZGdnC0FsjkZrxuPxGAS0OWo5QRAEQRAEQRDEFwMJaCKZfP782SCIL126NO5v9NFbnax7JAiCIAiCIAiCmBFIQBPJJBwOGyLj5uTkoL+/X5rX5/PhwIEDIq9+/2aCIAiCIAiCIIgvDhLQRLKpra21RFDNzc3FypUrsW7dOixevBjz5s0TEc1dLhfKyspmutoEQRAEQRAEQRDxIQFNTAXBYBCnT5/GihUrkJ2dDZfLBUVRoCgKUlNTkZWVhZUrV+LMmTMYGRmZ6eoSBEEQBEEQBEGMDwlogiAIgiAIgiAIgnAACWiCIAiCIAiCIAiCcAAJaIIgCIIgCIIgCIJwAAlogiAIgiAIgiAIgnAACWiCIAiCIAiCIAiCcAAJaIIgCIIgCIIgCIJwAAlogiAIgiAIgiAIgnAACWiCIMxvh30AACAASURBVAiCIAiCIAiCcAAJaIIgCIIgCIIgCIJwAAlogiAIgiAIgiAIgnAACWiCIAiCIAiCIAiCcAAJaIIgCIIgCIIgCIJwAAlogiAIgiAIgiAIgnAACWiCIAiCIAiCIAiCcAAJaIIgCIIgCIIgCIJwAAlogiAIgiAIgiAIgnAACWiCIAiCIAiCIAiCcAAJaIIgCIIgCIIgCIJwAAlogiAIgiAIgiAIgnAACWiCIAiCIAiCIAiCcAAJaIIgCIIgCIIgCIJwAAlogiAIgiAIgiAIgnAACWiCIAiCIAiCIAiCcAAJaIIgCIIgCIIgCIJwAAlogiAIgiAIgiAIgnAACWiCIAiCIAiCIAiCcMBsEtCqqiIUCiWUwuEwACAajaKlpQV3796dsvoRU4ff70d9fT1KS0vR2NiIYDCYcBn//PMPLl265Chvb28vTp06hY8fPyZ8nS+Nzs5OVFRUwOfzzXRVBFPRvh6PB4cPH8aHDx8Mx69fv46GhoakXee/QCAQQE1NDTo7O2e6Kha+lLrN9N8Evx9obY3g0aMIPn5UxfFPn1R0dUVnpE7xuH59DA0N4ZmuhoFwGPB4omhuDqOnJ4pIJHa8pSUys5X7ivD5gPb2mWlvu37Z2RnFtWtj01YPvx84fTo0Y+3AUVUgFDImO8bGrHnDMzDEaRwnl8m+q/v6VFRWhnD//lfe9rNJQLe2toIxllAqLCzEunXr4HK5wBjDunXrpqx+xNTQ0dEBRVGwdetWpKWlgTGGoqIix7+vrKxEamoqGGNIT0939JvCwkIwxvD9999PtNpfDBkZGWCMYefOnTNdFUEy2/fPP/9ESkqKGPPt7e3iXFtbmzj+6tWrSV/rS6ezsxN5eXninmtra2e6SoIvqW4z9TchFAJKSgJITR0EY14w5oWixP77zTc+pKYOYvPm0WmrkxPa2iKivq9ezby4P3cuhMzMIUsbMubFvHnDmDdvGHPmDM10Nb8aDh8Owu0emHbxJeuXe/fGxld29vC01aWsLAjGvHC7B6btmjL6+1UsWOAT7cKYF1VVchW9erXfMHZcrgEcPJi4cWKi0DhOPpN5Vzc2hg3P49ix6esLXySzSUA3NzeDMYacnBzU1tbi6dOn6OzsFBOyjRs3wuPxoLm5GQcOHABjDHl5eXjz5g3y8/O/OgH9+fPn//y1QqEQ0tPTUVxcDADo6uqCoiiYP3++4/r4fD7s2LEjIQG9e/duMMZw/PjxiVf+C+GHH36YFsESCoUwPOxswpLM9g2FQoaPa3oB/fnzZ7hcLqSkpMDv90/6Wl860WgUr1+/FuLwS7K8z3Td9O+Emfib8OJFFBkZ2uQkLW0QjY1h8C7Z3R3F5s2jYuKyZs3M9dVQCDAP48+fVbhcA0hJGcRMDiOvV0VR0YiYbJ87F8KnT5r1/tMnzWrC2zAtbXDmKvoVEYkAKSmaYL140ZnF9/NnVXp8YEAV1ken5Zj75fv3Ktas8U+pgJbV89atMBjzorh4ZEqumSg1NWMGEd3aKm/Yvj4VjHmRmjp9Y5vG8dQxmXd1OAy8e6eKD1AkoGeRgL516xZcLhdGRmIvKFVVxcT5wIEDhvw7d+5ETk4OAGDv3r1flYC+cOECVq1aNS3X6urqQmZm5pSU/fTpUzDG8Ouvv4pjwWAQkTh/ZWX1uX//fkICGgDGxqbP/WuqmY57WbVqFS5cuOA4f7LrpCiKRUADQCQSQTQ681az6SQrKwuMMdy8eXOmq2JhJuomex9O59+Ed+9UYV1ZsMBnEaicc+e0iePy5TOnUlet8uPCBevYjESAmRxG0SiQlTUsrHydnfLKtLdHoChepKTQxHs6qK2NCbWsrPEFa1dXFJmZVqtiIABkZAzh/Xu5uLZD1i+vXh2bMgEdr55f2pRBL6Dd7gEhUs1kZQ1j5crpeefQOJ56JvuuLijwkYAGZpeAvnHjBpYvX244Fk9Ad3V1ISsrCwCwf//+r0ZAezweMMamRUD7/X5kZGQgNTV1Ssqvrq4GYwwlJSWTqs/Dhw8TFtCEc6qqqsAYS0hAJxs7Af01wkXq7du3Z7oqFqa7bnbvw+n8m8CtLYx58fp1/JnNvHnDWLx4ZqxYVVWagJcJ6Jnm+PGgaMPq6jgLOwFs3x6AoninqWZfNwsW+OByDYhn8/Ch/cdtv18Tn6mpVlG0YoVmNU5UQMu4fn3qBHQy6znVcMsyfzY5OcNSN/v8fN+0LRuhcfzlU1g4QgIamF0CGoDFkhRPQAMQQcTMk6XOzk6Ulpbi/Pnz8HrlA/T9+/e4fv06ysrK0NDQkLDFrK2tDX/99Rf27duH1tZWWyuYx+NBdXU1jh49ips3b2Jw0PrHJRgMora2Fs3NzVBVFU+fPsXBgwdRW1uLkC5KRHt7u3CRzMvLQ11dHZqamhK6L1VV8fDhQ1y8eBEA0NPTgxMnTqCystLQVoODg5g7dy4YY3C5XKirq0NdXZ1o83i8e/cOtbW1KC0tRU1NDd6+fWs439PTg7q6OixZsgSMMeTn54vy7Vxx49XHLKA/ffqEyspKnDx5Ev/++6+0vPb2dly7ds1y/MOHDygrK8O+ffvQ0NBgaV8ZqqqiubkZNTU14vnt3bsXx48fR09PjyX/s2fPcOnSJaiqitu3b6O0tNTQ9uFwGC0tLaioqEB5eTkePHhg2z/5tR8/fmw4ri+jsrIS//zzj2394/Xl8+fPizG4adMm1NXVwePxjNsmyWxfwF5A+/1+VFdX4/3795bfDA0NoaGhAXv27EF1dfWE3wVOxwwnGo2isbERJSUlOH36NJqamtDb22vJ5/F4UFVVhfLycjx69EhaN1VV8eDBAxw+fBgHDhzAkydPHInUrq4uXLx4USTu1VFfXy+OXb9+3fAbp++hidbNyf2ONzb0xHsfTtffhKamsJgwOrHy3LoVNriBRqNAQ0MYDx9GEAhoVurKypBhIuzxRFFVFUJ5eQiPHskFzOCgivLyEDZvHsWOHQHU14eh6jTA+fMxS+KmTaOoqxuDxxMb534/UF0dEsKhvT2Cs2dDhjQ4qJ3r6Ykajuuv4/MBt2+HcexYEJcvj8HrHV+IjIxAWPDT0gbHdfP1elWp5crjiaK6OoSjR4O4eTMs6mumt1cVAag+flRx9eoYLl4cMwRk8vs1N9mqqhDevrWW4/Np7TU2puW9dSuMiooQ+vtjeSMRoLk5jPLyEJ49s78pJ/UOBjVrcHOz9lyfPo3g4MEgamvHpIGk/H7gwoUx/PZbAJcujeH27XDcgFMyXr6MgjEvnj6NCBFt58I8OKhi7lzN8uhyDaCubgx1dVrd1q2LLV84ezaEuroxEVhvvP5v7peAVUDfuhXGgQMBnDkTQm9vLF9XVxQXL46JxPtVfX1YHLt+fUzUI149Ac0durxc3ojv3qmorR1DaWkQNTVj0j6jqsDDhxHhCt/TE8WJE0FUVoYcjRMzjHlRXx/GvHnDot7r11uFckGBD1u3BqRlOOl7TuudrHHspC2B5IzjcFjrf93dWnCzx48jOHUqZLGcezxRnDoVwt27YelHCh4QraJC67///GPVA07e9UNDKhoawtizJ4Dqanm/kI0JXodLl7Qxv3nzKKqrQ5DFliUB/T9mm4A2M56A5vDJ0tKlSzF//nzxG8YY0tLSLGs3KyoqoCgKCgoKMGfOHCG+4okMzujoKFasWAG32409e/Zg06ZNQtS9fv1a5BseHsZ3330HxhiKi4uxbNkyKIoCRVFQXV0NQJtoFxcXC3GwadMm5ObmGuq/bNkyUebq1avhdrvBGIPb7UZubi42btzo+L4OHDggfj9//nxs2bLF0lZcwJaXl4sAVYwx5ObmIj8/XzqR5kSjURw8eBCMMSxYsABr1qwR1yspKRG/bWpqQlFRkQj+lZqaiqKiIhQVFeHFixfSsuPVhwvotLQ0bNiwwXBPjDE8f/4cgLaedu/evUhPTwdjDN98843hGn/88QdcLhdOnjyJyspKuFwupKWlxe0Pv/76q6FNucjnSVEU4c5aWlqKzMxMMMZQUFCApUuXiny//PILAG2in5mZCZfLhR9//FGs5UxPT8eTJ0/Edd+/f48tW7aIAFuHDh0S5/r6+pCdnY3MzEwUFhaK/rV7925D3cfryz6fD3l5eeL3GRkZyM3NRVVVlbQtpqJ9OWYB/eDBA/EBhjGGp0+fGvI3NTXB5XKhuLgYR48eFX1ny5YthnzJHDOAJtrdbjcWL16M69evi2d8+fJlQzutWrUKbrcbRUVF4hkWFBQgEIhNdAKBAL799lsoioJdu3ahpKRECEbGGO7cuWPbXr29vVi9erXI29/fDwCora1FTk6O6JtA4u+hROvm5H6djA0z8d6H0/U34cCBgJi81tQ4/wjr9ar45ZdRuN2aMNmxI4D09FiAl/p6TfCsWuWH2z2AoqIRsRa1oMAHXTdBZ2cUiqIF5rl8eUxYxLmg9/mAvDyfmNxmZAwhN9eHqqoQHjyIYMmSmAX96VNt1vvqVRR5ebFgRbt3BzD6v7l5f7+KpUu13+zdGxAC+uHDCNzuAeTm+sRvFUW7l3g8ehQLjPPTT4lbyoaHge++GxECb9kyLXiSohitYLW1Y8jN9Yk2KC+PrcXkwq+tLYLt2wOG44x5RfTltraIuBZjXtTVjYlnqA/qVFs7ZrDcMubFmTOhhOsdjQLFxSPi2W3aNCrugadly4wfbmprx6AoXvz+ewBXrowJl1q9GHTC2rWjmDtXGye7d8faRCZEystDIgYAY17k5vqQn+9DU1ME8+fHBF5OzjByc324dy8ct///3/+FpP0SiAnozMwhQx8197feXhWrV/vFOf5xo7Z2DDk5wyI/oPVdWT2fP4+gujpkCNylJxoFDh7UrK4LFviwZo1f3FNJSUCIuQMHAuL4/PnD2LJl1FDvtLTE17Qy5sWtW2F8+qQa+qA5qJhMQDsdM4nUe7Lj2GlbJmMce70qNm4cFWP02LGg4UMEY178+KMfnZ1RQ7+Wjbe+PhXZ2cPIzBxCYWFsrO7eHRDXGu9dD2gfY12uARQXj+Do0aC47pYtWlvavasB7QNbZuYQXK4BVFeHsHHjqBgj5iVFJKD/BwloDT5ZYoxh9erV8Hg8uHnzppjQ6Sf83KLGRVU0GhUiJSsra9z1lIsWLYLL5UJfX584tmDBAjDGDC7ofAKqn0g2NjaKevKgT21tbQZh+Ntvv6G7uxvHjh0Tx/RWzI0bN0Lmmujkvnp7ew0T08LCQjx//hwNDQ3Stqqrq0MirtH79u0T98Dp6+sTk9yff/7ZkJ8Ltk2bNjkq364+XEBzkXPv3j10dHQgOzvb8FxCoRBaWlpQUFAAs8AbHh6GoiiGyXpzczNSUlLi1qmjo8MQfXjjxo3o6OjAjRs3hFBwuVzw+/1obGwUk3PGtGjj27dvR2pqKi5duoSBgQG4XC4oiiIEDxALyqUoirBk9vX1obm5WUQu5wI6HA4jLS0NS5Ysgfq/mW1LS4u4Zn19vSjXaV/mwkZmUdYzFe3LMQvonp4e3LhxQ9yXXkA/e/YMjDFs377dcC2et7u7G8DUjBn+rPi2YqqqYsGCBeKjGQCsXLkSaWlpwhvF6/WKMaJvn2+//RaMMbS2topj+sCKjY2Ncdusr69P5NX3J95uXEADib+HEqmbk/sdb2zYYfc+nK6/CXoxFc/KaGZgQMXFi2OGyLS//RbA8uV+pKUNorMzipUrtX9zq5DXG5so//JLbILKJ/d6ocrFtt6ixCOw6rf/6emJ4saNmBVdPyn7/Dm2tvv0aeOkfP/+gMGF9tUrzVpZURHLxyfDiuLFu3f24u306dgE+OjRxCd1fDJ9507s/hsbY/dUW6vdb0dHFD/+GBNUOTnDePYsgk+fVCGouPhrbY2gv18VAu277zTLa2+vapiwu90D+PtvzXKnDxSXmjqI+vowhoZUMZF3uQYmVO+2tohhEv/bbwF0d0dx7FjMXbanJ9ZH09IGDdGNh4c1y6DeOjsew8OaQOPu/h8+qOJadu7AdXWasE1PN66B5mXpRex4/b+xMWzbL7mA5s/q2rUxVFeHRJ9XFK9YD8yDaOmvDUCUrXchltUTAJ48iWDv3pgY07NvX0DUndPXFxunP/+stVVvb+yjE2NeFBaO4PnzCBoawkLE2UXTtoMLaEDzSNCLPH1QMZmAdtr3Eqn3ZMex07ZMxjgeHY19aOL5T53SLL7XrsX6l8s1gFOnNM+S+vpY+3ALczisjbclS0bEh8SWltizqK8PO3rXP3um/Wb79ti9NzfHrtfdHY37rt6zJ2D5u/DDD37Ds+SQgP4fJKA1+GTJbPHiFipudQoGg3C73cjJyUFfX59IR48eFdeJt38pn3iWlpYajjc2NsLtdovj165dA2MM8+bNs5SxcuVKcIsJd4des2YNGLNu+yOLaMsnjOvXrxfHErmvy5cvgzGGlJQUw8TQ3FZAYgK6t7dXXGt01PgHlq91Zoyho6NDHE+2gFYUxWAhr6ioAJ8E6zl+/Lilv3DRlZGRYRAbCxcuHLdehw4dAmMM2dnZhuMvXrwQ980FFM+rKIqlndatWwfGGH7//XfDcVVVhbWeRyzncHHHBfSpU6fAGMONGzcMfYELliVLlgBw3peBmIA2u/zakez2BexduPlxvYDOzs6Gy+UyWHNVVUVhYSHS09PR398/ZWOGfzyoqKgQxy5fvoxz584BiPWJrVu3Gq67ePFi8I8tAPDo0SNwa6kZ3hfGE9CBQEDci77NeVRzvYAGnL+HEqmb0/sF4o8NO2TvQ2D6/ibMmRMTNnbRh+OxcKE2sVu40Ohr9+KFJki3bg2gr08VafHiETGx4+Tna2Xo95fm1rSmptgEmQto7raqh0/u9JMyAPjtN21iZt5uJi1t0GCpKi7W6tXbG6vr48exiaReWJvRC8+rVxNbSsUnu/PmWdfDrlypTSD1WzBxK5mieA1Bofjk2LxdE492rL//aDQmtPQfTXy+2PGXL2PPYmAgJuJ4jNRE680jT3//vdH6xUWMfl9Y/iz1dVu3bnTc9fl6ysqCcLkGDG3ErV+K4pVaS50IaLNLql3/N9+LTEC7XAPQxZxFZ2dUXIcLkUBALopbW2P9wEk9+XjUC+je3thzNb+uqqtjYrKjQ2v3y5e1eqekDBqCQPF25ZZGp+gFtPma+qBiZgGdaN9zWu/JjONE2zIZ4xiAENZHjhjFJH9Xml32+Ycs/rHy1CmtbjduhA3vaS76lyyJddB4fT07exgu14DBs0hVNbGbnj5k6LuyMfHHH9rHtNLS2H1wr5Fdu4wfT0hA/w8S0Bp8smR2M+TWID4h1FviUlNTpclubR4Q2zLo4cOHceu9atUqMCYP9NXU1CTq8PLlSwDA+vXrwRjDmjVrDHnnzZsHxphYewnEJow//fSTOJbIfV2/fl06+d2+fTsYY/jxxx/FMS5YMzIy4t4voEXC5dc34/f7Rf3Ky8vF8YkKaHN9uIB2u92G49zqaD5eXl5umVyrqmqwGFdXVzuO7nzkyBFw66QZ7i7LRTEPyCUTjlx8yIJ17dq1yyI4AGDFihXQC2huDbfrB1xAO+3LQExA19TUjN8YSH77AvYCmos7LqD5h5zc3Ny45U3VmDl37pwod+nSpZb1/3yJg6Io0mump6cjFArZvhOAWKCuu3fvxr3HRAW00/dQInVzer9A/LFhh+x9CEzf3wQe0ZQxr2FNsVOWL9cmrIcPGyczeuttauqgJaWnDwmXxmgUYsL/6lUUJSUxa5l+IssnhTJXcy7EzAJaP7Hl55qbw1AUL4LB2PV5HlldU1MHUVZmP1k7ciRmST11KjEr3KpVWvutWmVVdPr16VzQckud2RrMj5sDYNkd55NY81pHfj2ztZfn7+tTJ1Tv9es1cWLeAo27neq3mOKBsBjT3EgTdQ1WVSA1dRDbthkn3g8exD6InDhhfZ5cQGdkOBfQdv2fI+uXXEDn5lqFCBc4hYWacEmWgObrwfUC+sKFMWnfALR1qjw/F2G83uatm7iHwo8/JvagzAIaADZtiolYHlTMLKAT7XtO6z2ZcZxoWyZrHPP3t9nD5ptvtOPmQGg8Px9vXIDbvff0Atqur/N3rKw/y7B7V/MPuENDKk6cCAoRv3at8YsECej/QQJaw26yxF2K+WSJT9D064YTgU8Onz17FjcfF01bt261nBsZGRH3xAWJ3YSUlyMT0Bs2bBDHErkvOzHA91KeqIDeuXMnZNZeDnfP1E90p1pAP3jwQHpcJvAA4Pbt20Ko8XuJZ33ixBPQXKjyZ8sFllkkhMNhcd0bN25Yyqmvrxfn9UGQzAKai9Tx9mx22peB5AhoYOLtCzgX0NyyXlBQELe8qRozfG0wv0fGGA4ePCjc6ZcvXw7GGOrq6uJeky8BOX36tOUcf3b37t2LW0ayBLT5PZRI3ZzeL2A/NuIhex8C0/c3QS9Wza5yTuBixzyp4pOtujpnZba1RVBQ4ENq6iDKy0MioNNkBTQALFo0Ypgof/+9X7hTApobOGNe6fZFTrh5MzZp15frBO6yKQuSNDISm3jze7abeHs8UekEu709MQHNj9sJaO7Knmi97QQ0L0cvoF+/jopnze9Vb6EeD72bqF1KTTVaIwFnAnpgwNgudv2fk6iA5pZ6vuXWRAW0uZ4yAb1zZ8BwLTPcO4WvB7YTojt2GIWoqkLa5gUFxvuVCehIBIY18uvXj1oEdKJ9z2m9JzOOE23LZI1jOwHNPX3MApq/C8+f19qGLxsYZ7oFwL6v8/Fmfr522L2rP35UsX69ttZ627YA1q7V3hnjCWin/W3WQQJaw+lk6cyZM2BMi9g6EfgaQf16RhkLFy4Et0CZ0d8Tj1Q7WQGdyH1NlYA+fPgwZGKVwyfd27ZtE8e+NAENaMG59AGUXC6XNIKynngC+vvvvwdjMVdpO5EQjUbFNSsrKy3l8HthjBlck80Cmrtqt7S0xK2z074MxAQ0X7c/HsluX8C5gK6trQW3JsZjqsYMp7Ky0vCxgPf7ZcuWgYvqePDns3//fsu5mRbQidTN6f0CMyOgJ/s34cqV2Hq5desSD5xjN6latkw7fvDg+FaC+/e1yWF+vk9YG/kkWiagZUI/noDmayP5Olq9dQqIrX9mzDtu5F0Z+nWqGRlDCe1xyt0ily61RofWTwxv3zauFZ0qAc3bcTwBnWi9ExHQgBZUaMMGY8CnGzecieiFC7UAYB5P1JK4Sz9j1uBwTgS0OcpzsgV0aalmBeWWv4kKaHM9ZQL68GHtWm63sS9x+BjklvxEBPTSpSP49ltj2rfPKHhlAhqIRbfWP3u9WE607zmt92TGcaJtOdUCmi9JGU9AcytvS8v4Lz67vs73WpdZ32XIxsSnT9ozT00dRHe31vD792vPx4mAdtLfZh0koDWcTpb0gYRklq/W1lZLoCs9xcXFYIxhzpw5lnORSATr1q1DOBzG5s2bwZi2ZpJbnjh831LGmNh6Z7ICOpH7mioB3dDQIOqgj0bO4UJH7578JQnorq4uQ92uXr0q7kcfjEpGPAHN3V/5mtB4IoFb6c37oQOxtc1mYWgW0DwImN3Hm+XLl6O7u9txXwaSI6An076AcwH98uVLUa4+YBqnubkZVVVVUzZm9u3bJ1ySP3/+LIJRMabFBtizZ494N8i2STp16hQuXLiAoqIiMMYwd+5cSx4uUsfbAkwvoD98+GC4t8kI6ETq5vR+gZkR0JP9mxAOwxDgSb8O2Y6hodjfBLtJFQ8Kk5IyCNluWqdOhXDhwhj6+2OBvviaRyC5AlpVtTXPjGnrW81rJ8Ph2KS7stLqujkwoKKgwAfTn0ID5i2ExoO3IV93mZIyaCmfT6YZi+3r+6UI6ETrnYiA1gciam+PiL2CZWtezXCh+PffcrE9OBgTSQsWGAXslyCgueWQf3jSC+gPH5IroBsaYhZX2fpyXnceiM2pEHUKY15bzwL9mm2zgE607yVS74mO40Tb8ksR0DyAo93HiOXL/ULQ2vV1fd+S7VjQ3Bw2BJiTjQn+HtC/750K6K+W2S6g9RPAXbt22ebjk7TvvvvOcJyvd+NiIhAIiAl3VlaWYVLZ1dWFlJQUsS5ZBrdWMKZFduV7q75//x4rV67E5s2bAQDPnz8X+cyBfiorKy2TxLVr10onrjyKtF5Al5SUGO4p0fviwsUsBni5ejFw69YtyASoDL/fL9yHzUGwuru7wa2NetdivuWUefJrh119+CTYvD7Ybg30iRMnLM+gpaXFIszPnj0LxhhWrlwZt15cQJsn/l1dXTCLVO4yKrN48XoxZnXBNgcL45gFtD5q8pkzZ0S+cDiMLVu2CEHhtC8DsX4os4zLSHb7AjEB3dbWJj3Oo0GHw2HDWmsurCORCG7cuIHU1FT09fVN2ZjJy8szfGiIRCKiPu/evUNbW5to91WrVhlEZU1NDdLS0hAIBMR7gjGGv//+W+QZGxsTXgbjfdDQLwvQi23+gYMxZtjX3el7KJG6Ob1fIP7YsEP2PgSm728CYNy+JTt72Ha7oGhUc1XUB1nirtoHDhi/9re1xcpctcpvENE1NWNISxtEIADcuxebeD5/ro1hny82yeITPUALVGMncrnA00fv1XP8eGx9o75MDp9YulwDePzYGFgrJ2fYsoWTmaEhVdTZ5RqwrQcAsUVUT08Uz5/H2qmx0Tj5rKzUAvzog/bYTbx5OeZ9aflzSNSFWx8VW3+cC+hE683dMc0Cmj9TvYBmzGht5S72TixcK1dqWwfF8yTggaYYMwYqu3UrFsBJTzAYE6b//mtsF7v+z5H1SzsBHY1q+V2uASGA9R939AH19JHU+SswXj07OqwC2u+PufD+/rux/t3dUdHP+J/yq1flQpQvA0lEQPO6njtnP6700aT1AjrRvpdIvSc6jhNty2SNYzsBzUWmOTI6P87fgfpI+Pp3XDgMbNkyatjyyq6vh8Oxe3e5BoQwMW7Z2gAAIABJREFUjkQ09+7U1EEROwGwjgl9H//zz5go5sEl+XaG5nuIF5fiq2C2C2h9gJdFixbZ5vvxxx/BGENOTo7hOA/mpT/OIzNzC0xhYaGw/O3bty9ufaLRqGGfX0VRhMUlNTXVEDl269at4JaXz58/A9AmmDk5OVAUBV1dXSIvt/DoAx9FIhFxnR07dojj+snrwYMHsXDhQrS0tDi+L241UxQFwWBsAHG3c31bceHLRcLPP/9sEXB69FboBw8eiON8knv+/HlDfn7N8darjlefixcviuN692Ye2Mx8nD8bvaDjfU2/vQ13S7fbm5rDBbReOPT394v21wfq4t4J5ojhgLF/FRQUiCBb7969g8vlQnp6usWKZxbQwWBQCDYu3ouKiqAoClwuFwYGBizXGq8vc/HudrtRUVGBOXPmGNrTTLLbV//c9VZsfXA6/fps/fZWvB5cJOk/AkzFmMnLy0NmZqbYsikQCEBRFCxevFjk0e9fnZKSguLiYvHM7t+/D0Ab//ptpXbv3o1z584ZLNqpqanYuXNn3Lbj3gOpqanYtWsXCgsLhchlTPN24NuYOX0PJVo3J/cLxB8bdti9D6frbwKnpia2TYnLNYALF8aEFXJkRDs/d662V6jeEsbX9skis+r3/ExJGURxcWwv6Pv3tcmTPsJzRsYQfv11FBkZQ6IuWVnDYoLLt6NxuwdQURHCnDlDCASMQXrs9rLm1jl98DA93MLDk34vaKfBcV68MO65evBgEB5PFNEoEAppe/UuXarts/rgQWxivnVrzFrPA+mMjWnCXVGMXgF//RUTTvrgWtyNkjHj+tdLl8Ys+bu6YmJK70Lr9caehd7Kr98C6t69WP5E6s0tTPq2jERiz23Hjtj7mDEvVqzwC+sit7aePBl/wsyXAoxnqT53LtaGCxf6hKsuFzpcVP388ygOHdKuyV1d580bRllZEEVFmsUuXv+365f8WSlK7KNROAz8/LP2kcEcZZ57XqSmDmLXrgAKC0cM+yYvX+4XAsWunvp14foAY3rLqb5PcnGp/9jELbbmMcRdqnNyHCyk/R88qnRxsdXyqWfbNu2a5vXOifS9ROs90XGcSFsmYxxHo7HnXVJibB9e/w0bjNZb7onDx1swCIO7/Jw5QygqGhEfcvR1iNfXzXEHMjKGxIcI/QdPuzHB93p3uQbw66+jyMvzib8BbvcA1q4dFctu+D3Lgsh9VcxWAe31esVkTp9SU1NRVlZmyMvdCXnKysqC1+s1TOYYM7obnjx50lL2wYMHhRUuHn6/XwSG0ot7Lkz0cLdbRVFQXFyMjIwMZGRkGFwFzfXMz8/Hq1evkJ6ebjjO1xt6vV6DQNKvYR3vvrhVRt9WHR0d+OabbwzHuaBVVdVwbv369eNGTm5ubhYT9Pz8fOTm5kJRFIM77Z07dyz3l5OTYxBXMmT1+b//+z9DOSkpKWhubrbca0pKCu7fv49FixYZjmdkZODJkydoaWkRIisnJ0fU29zfZHABnZKSgpSUFFFOWloaHj9+DECzBpr7dEpKimUN8ujoKFavXi36+5IlS+ByuVBUVCQNDGYW0IC2/y+3GvKUnZ0Nj8dj+K3Tvqxff+12u8V+uWb6+vqS3r5lZWXid3wsbdiwASdPnjT0IUVRDFsZ3blzxzBOXC6XdB/rZI+Z/Px8uFwu8czcbjfmzZtniMY9NjYmnpu+Xc2BtgYGBsS2WPwe161bh8zMTKSlpeHAgQPS5RJ6njx5Ij6MMKZZZPl+zQUFBaiqqsLQ0FDC76FE6jbe/TodGzJk78Pp/pvA+fBBFZMn/WSIT2wOHAiIbXc6OoyTTMa0IFxcEGjtZoyozCdD5sBiR48GxTXnzh1GfX1YuNMqSmxrE30UZbd7AM+fR3DyZBDp6bF6KIoWeEjGmjV+bNpkv877wYOIQZgw5sWyZX5LQKZ4hELa5J5PHs1pzRo/3ryx/g3i28koiiYqMjKGkJExhM7OWN79+43lZmYOoakpbAgEx59VQ0MY+/cHDM8yPX0IBw8GxSSat+OJE0FcvTpmqfO+fQE0NIQNE2yXa8AQwdpJvbkliaf8fB9evYoanhtjXuzfr03qFUUrLz19CIsWaf1x+XK/YVsfMydOBA1lZWcPS7dlW7t21HKfbrcmFFQ1Fr2YMa0f8ekC32aHC64HDyJx+3+8fhkMasKQu6a73QNQFO1jkWwv9idPIkJgMKbtBcy3vCoo8KGqKiRcic31HBhQsWaN33DPbveAwT25uTks+n1+vg+5uZp40bvj8iUZPGVlDaOjI2poL16feHi9quFeGNMsw83N8ocbjWr9RxYwzEnfm2i9JzqOnbRlMsbx+fMhsdUfb4OVK/3o7LSOq4ICH96+tbb7ihWxtd/cE0Q/fviuDE7e9QBw5471XXHtWuxdH29M3LkTFuMhNXUQf/wRRE9PVLTlsmV+3LoVttxbXp4v4Sj9s4YJatsvXkBPB+FwGO3t7Whra3Ns7dATCoXQ0dEB/zi9b2xsDE+fPkV9fb1lS5uJEg6H4fF4DNYw/bnJ3JeM7u5u6QcCO1RVRVdXF+rq6uDxeBKahE5FfZwQiUQQCoUQDofx77//orOzU7pmU4Z+DfTY2Bg8Ho+w6k2U4eFhNDU14c6dO4ao22a4MDl+/LjlXH9/Px48eGBwS5XhpC/7/X50dnZa1vQ7ZTLtOxnevXuHV69exc2TzDHDLfcDAwNob28X3icy/H4/Hj9+jH///Tfuhym/3w+PxyPcrSfyHnn9+rXwGohGo3H7VCIkUjen95so8d6HiZaTjH6gqprbbENDGH//HYbHE5WuY3aK3w88fhzBv/9GbQPzBIMwuO0CmuXbfF2/X9svdyLD2OfT0ni8fh1FS0vEUd54fP6s4u7dMOrrw3jyJGLY81fG2Jjm2llfH8bbtxN7T80Eya736KjWB9+9U/HiRXTcdks23d1R6UeTjx/VpD+XwUEVHR1ROBmur19HxT67+q3fzEyknqqqeSbU1Y3B44lOKJjeVDEyArEO18x0jJlEx/GX3Jbx6O9X8eBBxOBhNBHevVPx6lXifx/5mNcTDjt7Z3+VkIAmiJknXhCxqYa7V1+6dGnar00QBEEQBEEQ/ylIQBPEzMPX8sq2bUo2r1+/RlVVlbDe5uXlgTHmaCsogiCSi8w9kRIlSpQoUZoNadZCApogZpZwOIzCwkLwNcvJcpu3g6+PTk9Px59//gnG4keoJwiCIAiCIAjif5CAJoiZIxwOY968eUhNTRUpMzMTJ0+enLJrvnz5EkVFRUhNTcWiRYtQXl4+ZdciCIIgCIIgiFkFCWiCIAiCIAiCIAiCcAAJaIIgCIIgCIIgCIJwwGwW0Dz0/d9/h/HpkxaafXBQRWurMaZ9NAq0tERw926cTQ6/IHw+oL3dWVz+kRGgpmYM1dXGdbW9vSpOnQrh40djyPqxMaCxMYynT2cm7n9vr/X5OCEY1LZpSWQ/unBY22vQnKZhZ6QvntbWCM6eDTna2mM6sevPZuyerdP7uX59DA0N/433AUEQBEEQBDGNzEYBHYnAsCE63zA9PX0Ic+YMoagotoncunWj4vy6daNTXrdkcPhwEG73AMJx5vfv3qnIzY1tVL9okXHjvMLCETDmxfffa4qzszOKwsIRsVn84cOT2w91Ivh8QErKINxu5/szv3kTRX6+D4riFRvRL1zow/v34++jV1ISEBvH86QoXuTnf8Ubw0P7oMT7wdmzX4aCHq8/mzl2LIiUFOuz/fbb8Tc0bWuLiN9MZC9FgiAIgiAIYhYzGwX0H38EwZgXWVnD6OnRJsCvXkWFaMzOHhZ5uQD7rwjoSARCGFy8GN9UOjSkoqhoRCo4du/WPjAcPx4U5b59qyItbXDGBPSyZX4w5nUsoP1+ICNjCIriRVdX7Dkrihdz5gxh1MHjVFVgzpwhIZh4f5koAwMqIjNjvJ8wnz9bPzYsWKB9lHj8+Mu5mXj9WUYkAtGfGfOis9PZs/38WYXLNYCUlMGv+kMKQRAEQRAEIWE2CmhuUb52zSgww2EgP99nEWh79wb+MwK6tnZMCIKsrOFx8x85ErQVHDJX5e+/98+IgL50KXZfTgX08uVaXX/6yfjcNm8eBWNerFnjTP2sWOEXFsrJEAhogt6J9ftL4cKFMaxaJW+nL9GVPV5/lrFo0YjwQkmESESzxBMEQRAEQRCEgdkmoAcHVSHESkutIvDlyygY8xomx/v3/3cE9IIFPvGBgDEvHj6MbyEsK0tMcHAxOZ0C+u1bFYriRWVlyLGA9vkg2uDlS6PS6e6OCkHsxAq9enVyBDRvu/+KgPZ4tHayE9BfIon25+JiTUCnpAxOcc0IgiAIgiCIr4LZJqAjkZiwUhQvbt+2LhTeuHHU4JppFtCdnVGUlgZx/vwYvF6rGBocVFFeHsLmzaPYsSOA+vowVIlmevYsgkuXxqCqwO3bYZSWBg3lvX+v4vr1MZSVBdHQEB7X4sfF/9OnESGii4vjC4l4gqO9PWKx0psF9MePKm7fDhuSOfCYxxNFVVUI5eUhPHqUmMtvNArk5Axj06ZRvH2rOhbQFy/GLNaytudreM33JyOegP7nnyj+/FNri4EBFRcujKG0NIh//42J9mhUW0vP63P2bAh1dWOGdgqHtUB1FRUhVFaG8M8/VvOm3w9UVobw4YOKT59UHD0axK1bWv9VVeDhw4hw2+/pieLEiSAqK0MT6qPt7bE+lJfnQ13dGJqaYmMlGgVu3QpLn+fwMHDnThhHjwZx7lzINqCd16uisjKE3l4VoRBw82YY+/YFbD/6dHVp427DhlH88UdQGkxuugS03w9UV4ekH0OGhlQ0NISxZ08A1dXy9gfGHxeJPtNoVAvwV1ISwOnTITQ1hdHba8znpJ8RBEEQBEEQk2C2CWgAWLPGbwgetGNHIG70XS6gly4dwfz5w4bfpqUNYljnKd3Zqa2xnTdvGJcvj4k1mStXxhR5aWkQmZnautqCAh+WLh0R5f3yiybSKypCUBTtPF+Dm54+FHfCu3btKObO1SrD1zAz5sXbt/YWT7PgCIU0l/X0dO2a33zjM+Q3C+i+PhU//KAdy8gYwrZtAbGWNBQCVq3yw+0eQFHRiFibXVDgQyBg397mts/IGEIohIQE9I4dAdFmMvj97dkzfkVkArq+PoyMjNja6CtXxgz9gjEvOjq0dnj4MGLoNzk5w8jN9eH5c0009fWpyM4eRmbmkCFQ2+7dWt1evIhi2TK/OF5ZGRL/ZsyL7dtH4XZrYnf+/GFs2TJq6aP6D0JO+ujq1X5Rpts9gNxcHzZu1D5i/PRTLLCe2YujoSEMl2sA6elD+OmnUUM///BB64f//hvFggWxgF+nToUsAb3OnDEOyAsXxkQdq6pCYkxUVRnzTbWAfvAggiVLYuPVHI2+qUm7/+LiERw9GhR9ZMuWmKuDk3Fx4EAgoWc6NKTC7R7A4sUjuH59TLxTLl+OfSAar58RBEEQBEEQSWA2Cmi/Hygo8BkmpKmpg7bbVHEBzZgXq1f74fFEcfNmWIgI/SSeC4P6+lhZfII8OKgJiMbGsCEwVVHRCLZv1yI+X7o0hvPnNbHABVY0ChHILCtrWLr2cnhYs6xfuKBNmD98iLmqb95s76csE9AtLRHRPuMJ6OfPNUvl778HLMGxVq70Iy1tUNy316sKUcA/FMSjtTUCRfHC49FuOBEB/eOPftFeMnhE7tWrx3dPlgnowUHNAszbOD19CLdvh/H8eQRZWVrZy5fHyubPhzEv+vuNlue0tEEsWTIiLMAtLbEoz/X1Yfzzj2Z51ffXP/8MIjfXh7lzh9HToxo+whQWjuD584gQsxPpo4DmiaH3vOD3/ehRREQn1wvo+/e1es+bNyzuJRyGiI49Z84QIhFtLfjdu2HD/VRVhdDdHRXr1vWCdmhIFWKPi8beXlV8tNEz1QK6pyeKGzdiddcL6GfPIv/7oBETpM3Nsbzd3Vo/djIuensTe6b8g5nvf8NVVbXnzLfzctLPCIIgCIIgiCQwGwU0oE0wzaKEMS82bRq1bP/EBbRZTHJLlN66xIUuj/oMQFgf9S6whw4FhSjTr8MNBgG3ewA5OcPo61NF0os1WbTgsrIgXK4Bg5s3r5+ieG2jBdsJjuPHg+MK6Fu3wlAUL86ds5rvX7zQ3Mm3bg0Y7mPxYmdBm/x+IDV1EMeOxQRaIgKaC6P58+UCOidHeyZLlowvtOxcuD9+jH2keP069kwqKkIW8a4X0Hr321OntLw3boQN7cQFFa+fqsZ+f+iQdf355ctjQgjqP7BMpo9yAb1+vfVjB7da6wU0t+o3NhoHEH9ujHlRXh7rKzwCtn4rrM7OqMjL+6zfDxH1mo/NaDTWHvo+P10u3FzQ6wV0dvYwXK4Bg3eFqmpbwqWnD6G/X01oXCTyTPkHr4qKkOH3fGw67WcEQRAEQRDEJJmtAprz9q2KhQuN1uilS42TSS6gly0zqlBu9eF7JQPaxJ4LpFevoob9pq9ejc30q6q0Ce3ChUaBqrcKpaYOSpN5vaSqamJz2zajK+aDB7GyTpyQB/2yExzl5aG4Apq75v71l9z3/eDB2AcC2T2kpw/FdZtfudKPvDyfYV1uIgJ6/XpN/HGXdjPcSvz77xNz4Qa058zbV7+emVtXU1NjosxOQOfl+eI+a72w4VZi2drf69c1sZWWZhSC27dr/e/HHxPvo1xAm6OYAzHhyQX0+/extpCtC+YCXb8mnwtuvZuxPkZBX1+snEAAQlA/fBgR0eAZ8xq22ZouAc2twFxAc4t4bq4v7u8SGReJPNNz50KG95d52UYi/YwgCIIgCIKYBLNdQHN4hGee9BNQOwG9b59VQANAW5vmAp2aOvj/7d37b1Vlov/x9Q/sX/tDAz/YTJiEySETZppDTr9NSHMIMYQwHLML6TkcGf2iMAc9KqN4wQsHRLQVELDAcBuFEQWKIlKs3ISBKWCtgC0gRSgCpVBo6b2wu/fn+8M+z7PX6r70KQL6xfcreRK69trrttcm+7Oem9asuamRI9uSwon5wds3QJtg/cIL7iN++5uUpitDhtxI2fT7dgO0KSNGpA7Cpinujh0Dn+vIBND/+Z9urVzZY4vp1xwKNdtlLS2p+3ebub5zczP3ge5vrmxp4AH6wIHMAdp/zCYUt/U/49htBWhzzfxhS3K7R02Anjmz/wB98GDiHkzVv33WrPi2/E2uUwVof82yP0BL8SnacnNbNWpUmyoqEvv7OQRo8x0MhzMH6IF8LwbymXZ3Sw8/nGjy7XnNWriwxz6AGsh9BgAAgB/hfgvQb73VraNHU4/ya2p2PK9ZpaWJGtuBBGjTD3T8+HZbY2b6gLoE6PXr48vHjs38Q9xv3Lh2jR/frlOnokllzpzEOaXq53i7AXrmzMRAUn3DmSRNmdJpf8QPlHmI4FJM/+i+zKBe6aaeMseeboRovzsdoP39jE0T2qqq/o/jTgVo13t0IAG6ujrR2sH09fUz3xV/i4CBBOjFi+P36fz5iXR+LwN0JKLAZ9w3QJv51/2feSoD+V4M9KGIpKQB5kyrlIHcZwAAAPgR7rcA/fzzXRo1KnU1jGmG6XnBgbdcA/T164nBjpqaEj+2BxKg/YMOperrXF3dq+efTxybmbpq167UgwD5571+8MHkUH67AXrx4p7AQFB9R0N+661uG0xSTb+1evVNO+BZXy0tMe3ZE0kqZmqqUKjZLkvXt7u9PdFPtW9z1oaGxDXpccj3dzNAmwG9+nYbkOJN86dO7bSB9E4E6IHcowMJ0B0dSnsv+Nf3zyntGqD3749fz74jqt/LAL1wYU9gULi+Adp8D9M9qKqsjGjDhpsD+l4MJECXlCRmErh2LWb7uXtefIyFgdxnAAAA+BHutwC9alX8B/amTcm/XvfsiaT8EWx+9D7ySPDHp+kDbX6UmuDkeYkRtNvbEz+2/fs0tax9a5q7uxPr5+W12al/pPg8uDk5N3T6dOKH7vTp8elw+o6A7Td9eqLZ9fHjwRWXLYtfj8LC4LmtXNmTMuCbJqhmFG5zbTyvWYcPJ7ZdU5OokXziic5AWPjss1saOvSG81RWhhlZPF0f6IMHI9q06ZYdaMpM/dN3xG8zJVKqvr2pmIcGfQP0tWupA7S5j/wBuqcnEfj8c0SvWJEYHM4/dVMkEj9+/0MbE6BTzRm8dWvqsGX6N5uwNZB71Lw3Vegyg4iZ+8C/rKAg+QGVqQH1H3uqAO2/TiZAm8CYldViQ6K/xruhIXHt093P6Uyc2H+ANqNr+4/TPIQwDzMikcTnk5XVYoN1b2+8efeQITfU2Bgb0PfC9TOV4n2cy8uDfcnN8TQ0xAZ0n0nx+c3Xrk0/hzUAAADSuN8CtD8kFxd32z6BJ05EbT/QMWPaA4HUTInUt+b6iSeCy1taEoFq+PBWvfpql4YPb7U/tvPy2uyP3pdf7rKhrG8fYjOKs3m9sLDDTntVUpJInf5pgzLxDzA0blx7oC+0mSqnb9PT117rtufhZwbfmjYtfh7RaGKAolAoOIqzf77cnJwbmjQpMeftoUMDb0qaKUD7R3o2ozpfvx6zIc08OGhriweLnJwbgZrLdGIxBaYc84+27Q+jR44kzsc0Nza1f4YJkQUFbVq+vEdFRR3q6VFgDuQRI1pVVBSfozcrq8X2l25tTZxfqlG4/f3D/bXqZoC827lH/eMCLFzYo3Hj2m0TYHMf+B9CXL6cqN1esiRxEHv3RmxgNLq7E0H57bcT97Q/GB84EL+X/H38H3qoXc8912Wn0fK8+AjSxcXxbaS7n1OJRBTYTmVlRPX1UdXVRVVd3auKikhggDUTJjs7E8f+2WeJ0Np3LILhw1vtg4l16xJfctfvhetnKsW/g7m5rbZ1Q3d3POT/x3/EHyS43meGuS59x3cAAABAP+63AH32bNTWqplAY37kel6znn++y86lKiVq1UzJy2tTc3OwiaTnJfp2lpb22BAxcmR8sKMdOxJNj995p8dOoeT/EW3mazVMTbm/LFzYY4O9qSE2JT+/LWUgfOaZrsD5mQB65kxUBQVtSee2Z0/E1sr5g8CmTYmBpkwpKurQpUsx2/zXfy0iEenWreRBxwYNarmtgcWkRIBOVVvob6q+c2cixDc3x+wUPyYUjB3b7tRc9dVXuwKhw3yGDz7Yro8/vhW4rjk58Tm8/XOGm2t36VL8czEDm5nwY0JLY2PMzkvt/zxN/+7Nm2/Ze9WUMWPabTj3twIwn+PJk1E99FDwczEDXPV3j5pm2c3NscD5b9x4UwcORJLu39Gj22xT+osXY/b1/Pw2G9LeeqvbPri5cCGq4cNbA9d09uxu7d4dCVzTQYNatGtXRNFoou+wOY+6ukT//pycG9q69VbK+9k/zZTfsmU9Sdc0U8nPj3+/V63qsQ9lzLH7p/naty8SuGZZWS369NPg/e7yvRjoZzp+fLuyslqUldWioqL4/20FBW2B7gv93Wd+5rueaQ55AAAApHC/BejeXgWaMTc1xXTgQETHj/em7U87UD098dpPv44OpezzmEkkItXW9qqmpjfjlE8/d52d0tdf9+rs2WjKkcDvlObmWKCG2O/mzXgrg9bWn7ZJ6tWrsaQ+2cb16zEdPtwbaLZ/t7jeo5GIdOpU1KmvuF9jY0y7dkVUVdU74Kb66bS0xJK+oz/XJsYNDTHV12e+2e/k98I8TGlpiam2tjdj6wqX+8x8X2I/z8sLAADw83W/BWgAAAAAAO6K+ylAuzbXpFAoFEq8AAAAYADupwANAAAAAMBdQ4AGAAAAAMABARoAAAAAAAcEaAAAAAAAHBCgAQAAAABwQIAGAAAAAMABARoAAAAAAAcEaAAAAAAAHBCgAQAAAABwQIAGAAAAAMABARoAAAAAAAcEaAAAAAAAHBCgAQAAAABwQIAGAAAAAMABARoAAAAAAAcEaAAAAAAAHBCgAQAAAABwQIAGAAAAAMABARoAAAAAAAcEaAAAAAAAHBCgAQAAAABwQIAGAAAAAMABARoAAAAAAAcEaAAAAAAAHBCgAQAAAABwQIAGAAAAAMDB/RSgY7GYbt68OaASiUTu2vGk09HRoc8++0wbN2685/v+paqrq+N6/4Jd+O6adn9w/J7vt7vjlg5tP61NC/6hb/ac1c3ue///DQAAAO6g+ylAV1dXy/O8AZXCwsK7djx9NTQ0aMyYMXbfEydOvGf7/qUqLi7WkCFD5Hmehg8f/lMfDu6xv83brz/+ZonC2cV6/HfL7um+z9Vc1YTBJVr90i49+k/vKpxdrNmFH93TYwAAAMAddj8F6MrKSnmep1GjRqm8vFzHjh1TXV2dDawvvPCCTp06pcrKSi1YsECe52ns2LF37XhSaW1tVVFREQH6Huns7NS8efPkeZ5GjBjxUx8O7rHujlt6b/ZehbOL9V///Jd7tt9bPb2a8ttSzZkYb/Vw4fQ1TRhcoj//61/v2TEAAADgLrifAvTevXuVlZWljo4OuywWi9kAvWDBgsD6b7zxhkaNGnXXjiedd999lwB9D+3cuVOe5yk/P/+nPhT8BI58XqdwdrGe/D+r7tk+66obFM4u1qoXd9plN7sjivbG7tkxAAAA4C64nwL07t27NXXq1MCyTAH6zJkzysvLu2vHk87y5csJ0PfQrl275HmeRo4c+VMfCn4CJkD/d/7qe7bP3R8cVzi7WKtf2nXP9gkAAIB74H4K0JIUjUYDf2cK0JLsIGKRSERVVVVau3at1qxZo8OHD+vWrVvO+62rq9OaNWskSRcuXNDKlStVUlKi6urqpHUzBegzZ85o6dKlmjlzppYsWZLy/eZ4Kysr9e6772r58uU6d+5cyvXa29v15ZdfasWKFfr444/V3NzsfE43btzQmjVr9PLLL2vevHmqqKhQLBasQevp6VF5ebkqKysVi8V07NgxLVy4UOXl5bp586bzvlyvfzQa1c6vG80aAAAXxElEQVSdO3XkyBF1d3frww8/1Lp16wKDwTU1NamsrEyzZ8/Wpk2btGXLlrQB+vLly9q2bZuWL1+unTt3ptzn5cuXtWLFCknSqVOntHDhQp0+fdr53MrLy1VWVqaysjLV1NRIki5evGiXlZWV6fvvvw+8p7OzU5s3b9acOXO0ZcsWffnll0nX03/N1q1bl7SN/rS1tWnfvn0qLS3Vhx9+qNra2sDrZ86cCRxjb2+vJKmiosIu27ZtW9Jxr1u3TleuXFFTU5NKS0u1d+/efo8lciuqk4cv6rO/VGnbiq9U+48fFLnZm7ReNBrT4R2nVVt5QT1dt7Rz/THtWFOt3kjie99ypUN7P6rR6pd2afeG49r7UU3aAH3tUpv+/vEJfbzkkA7vOJ1yn9cutenjpYclSfW1V/XhWwd0/mRTyvO4fK5Fldu+0+v/vlnh7GK9NPZvqtz2nSq3fafujuC9VV97Vbv+dkxl71Sq6oszam/uHvD5drbd1K6/HVPkZq+6O27p653fa/vKKt1o6kxsozemb/9+XttWfKUzRy+nPG4AAAA4ut8CdF/9BWgpHn5zc3OVlZWlJ598UuPHj5fneRo2bJiOHj2acfsbN25Ubm6uPM9TKBTS008/nTRQWUlJSeA96QL05s2b5Xmepk+frg0bNmjEiBHyPE8bNmwIrHfhwgXl5eUpLy9PS5cuVTgclud5KigoCATJI0eOaNCgQRozZozGjh1rj7GioqLf61ZXV6dQKKSCggJ9/PHHtt/29OnTJcWD7KRJkxQKheR5nl588cXAAGme52nKlCn97sfsq7/r39zcrFmzZmnQoEHyPE/z5s3TsGHD7L7MOe3fv1+hUEjjxo3TsmXL7HmnCtBr165VKBRSOBy213rYsGE2iFZUVASu2/vvv2+3NZD+1BUVFcrKypLneZoxY4akeChfuHCh3d7KlSvt+uXl5QqFQpo7d64++eQT5eXlyfM8Xb161a7T2Nio/Px85ebmqrCw0H4Ob775ptMx7dy5U1lZWRo2bJiee+45ew+Hw2FduXJFknTp0iU99dRT9hivX79uj2/UqFH2ukjSiRMnNGXKFHsc69ats//2PE8tLS1pj+XCd9c07ffLVfTAAi2ctk0vjf2bwtnFmvLbUn1XdUmS1Hq9Syue+0KTfrVI4exivTd7r6b8tlTh7GKFs4t1aHv8gcY3e85qwuASvTBmvbYsPqTnH1xn1+kboLevrNKEwSV6+Q8f6L/++S92nxfr4ud5aPtp+/4Jg0tUvvpru610/amP76/X7MKP7MBlf/zNEs0u/EizCz/SuW/j17XjRo/emFSmcHax5kzcqDcnb9GEwSWaMLjEjhTe3/l+UnrEbiOcXazKbd/ZdU354v2jOrj1lIoeWBBY/vnab5zuEQAAAKTwSw/QLS0tysrKUigUsgFBkt58800bEC5dupR2+01NTZo9e7bdx7hx43To0CEdO3ZMo0ePtsuPHTtm35MqQLe2ttrA0dkZrz26dOlS0ujRnZ2dNhSb2tLOzk77XhO26+vr5Xme1q5da99rAlsoFFJDQ0PG6/bggw8Ggqkk5eTkyPM83bhxQ5JUU1Oj4cOH23OcM2eOzp07pxUrVthlP/zwQ8b9uF7/lpYWlZWVBULZnDlzNHXqVA0dOlR1dXU6ceKEPM/TQw89FGiJ8Oijj9oHDMamTZvkeZ6+/fZbSfEHAia45+XlKRqNqrq62r7X8zzl5uaqtLRUubm5mjlzZsbz6uvJJ58MBGjDhGN/gB46dGggoLe1tQXuw0gkoqFDh2ry5Mm2RUBVVVXSw4R0Dh06ZK+HeX8kErEPQEaMGGFrmxsbG5MCtBTvLuEP0N9//72WLl0aeICybNkyjRkzRiNHjrTb66utuUtFDyzQhMElgVrTdXO/tMG16WKr2pq7tPejGk0YXGKD4NpX9qj4kU/06D+9qwvfXdO5b68onF2sWeP+pmg00VLijf+MB82nR65JHP+GeBNrUyMbjcZscH/iX1YqGo3p1JFL9r3h7GJN+/1ylb1TqWm/X67SZ3ZkvMYrnq1QOLtYK55N/ixmjn5f4exiVe8+a5d9s+es3c8/Pj3V7/ke31+vbSu+sq9N+tUiHfm8Tu3N3frLzC/s8j/+ZokObT+t9pZuvfdafDC1ogdSP0gEAACAg196gJ4xY4Y8z9PcuXOT3memP5o0aVLGfXz99dd2H62trXZ5T0+PrTH905/+ZJenCtCdnZ3KyspSTk6OrUWORqN2uyYsv/baa/I8L6lmfNGiRRo0aJAOHjwoSZo0aZI8z9OlS5fU2NioxsbGwHH6g3UqJkyeOXPGLjMPBMw+JNka98ceeyzwflPjunPnTmUy0Os/btw4+6CiL1NbvGXLlsByU7NvArT5XEaNGmWvTWNjo0pLS+31qaurkxT8bL/++uuM55KJ+dz6BmhzPv4AbR4SHD+emLd4xowZOn/+vCRp9erV8jxPu3fvDhy/udcmT56c8VhMzf3+/fsDyy9evGjP1XRH6O7uThmgzZRxJkBLwe/aokWLnK7Lkie3K5xdrL++uiewPBaTrcU1I1lL0gtj1iucXawXxqxP2papLd77UU1g+Z4N3wYC9M3uiCb9apFmFKzV9YZ2W8reqbTB88J31yRJJ49ctMtOHrnodE5S+gD99y0nksK8seDxT20YjtyK9nu+0WjMHpu/aXZn20273N/UvK25yy7vanfvXgEAAACfX3qANiFt8+bNSa/Nnz9fnucpKysr4z6OHTuWFCaMN954I6n2M10T7u7ublv7fOTIET322GP22K9di/+gN7XAfft6+/mD95AhQ1KW5cuXZzynaDRq+0vX19cHatm3bt1q13v22WfleZ6efvrpwPsLCgrkeZ7Kysoy7meg13/q1KnyPE+LFy8OrNvc3GyPz9/UWUoMImY+A39tbbrr89VXX0mKN5c36/4YAwnQ06ZNs/t888037T1hmAcF6Y49U4C+fPmy3fbly8n9Yc1DEvPQYiABWkrcn+n67vdlQvKeDd8mvbZuzpdJNabFj3yicHaxNr59MLBu67VOGw6bGzsCr5lBxExoPXn4YqCGNlU5ceiCJOnK+Rt23YFIF6AXTo2H5IVTP016z/H99UnBN935GqaG2jQ7N8x2mi62plz/ekP7gM4HAAAA/+uXHKAjkYh9bffu3UnvraiosK9nGnwrU4DeuHGjPM/T0KFD7bJMg4iVl5crNzdXo0aNCuz/2rVr6uzsTLsfvx9++ME2Of4xampqFA6HNWTIEK1Zs0YjR450DtCmj2ymAH0719+Ey74B+vDhw2kfdpgAbaYs27BhgzwvPi94f/y1sj/GQAL0+fPnbZ9kc07+mnwTUtva2gZ8HAcPHrTb7e5OHrRq1qxZ8rxEt4G7GaB7I1Eb9L6qOJP0+qHtp+3rrde7JEkl/zd1oKz9xw9pmyebAD2jYK0k6Yv3jyqcXazlf+5/LIArP9zZAD2jYG3a0bm72hM1xwc+OSkp/fka6QK0WZ4uQDddGvi9AwAAAP2yA7S/pnbdunVJ7zWhLF3YMDIFaBPWxo8fb5elC9CLFy+W53maP3++XeYP0Ddu3LB/Z+qXbfo/e56Xtu9pf0w/2fHjx9saUNNH9k4F6Nu5/ukCdHl5uV23b+183wC9fv16eZ6nsWPH9nsdfooALcWbmc+cOdPu2/+QwTTVrqqqGvBxmODreV7KkdtLSkrkeYkB1+5mgPY3Qd6xJnl9E4rD2cXq6Yp3YUgXKA9uPWXX9fd/lpID9Odrv1E4u1jPP5h8z/V1pwO0aZL9xn8mfy9isUTN8de74gPZ3W6ANgOHEaABAADusF9ygJZkR1/uO3+0lOhrOmTIkIz7yBSg586dK88L9vFNFaD3798vz4uPAu3Xtwm36Vv84osvJu3LDGjmr9lNFUxbWloUDoeTpqQyrl+/bvvhNjUl+lDe6QAtDfz6pwvQJ0+etOe8b9++wGt9A3RlZaVd1/R19quurtbzzz8v6c4H6KeeeiqwPFWAfv311+2/a2trbTN30wTdDPD26KOPJu0nFotp6tSpaac16+josOfTd3R3KdF3/oknnpAUDNBmdG7pzjXhNqNfFz/ySdJr25Z/ZZtZG+kC5bmaqzZ8+gfnkpID9LcHzif1dfb77qtLWvbM55LufIA2A3w9/Ot31Pfrd/5E4hyu/W/AJUADAAD8zNzvAdofAPw1u8bKlSvt632bxJoRmPsbEMkE6L41vpFIxAYKf7/cZcuWyfM8FRYW2mXz5s2zzXXNfL/+2kIzavaUKVPssg8++MC+v6amRvn5+bap78SJE+32/INftbe3a9SoUVq/PnlQIuPAgQN2H2aU6vb2dhveN23aZNd95plnUgbo/Px8pwA90Otv+kCnao5vrnVBQUFgzmQTxP3Nks255OXlBYLhmTNnlJOTY+d59veBTvXAoba2VosXL+53tHEzqvjo0aPtstbWVg0dOlSe56m4OBHQ+tb2mib55kGCf5Rz/+cYiUT0yiuv9Dt9mJmSzN8v3zC126YPuP9hjH/wuDVr1tjl/qnTzGdg3t+fraVHbGjsuNETeM2MgP1R8QG7zPQJ3vDm3wPrRm5F9fCv37F9nW/1JL6HJog//rtlkqSerls2YD7xLyt1/XKiP/CF09f08K/fsX2Q/X2g0zxvSqn0mR0KZxcnjdZ95uhlu71v9gSD/o411UkDhqU7X6O/JtyXz7WkXN43QB88eFCbNm0KfJYAAABI4X4P0P4Bo1L1OY5Go7Zvbzgcts1/Gxoa7Dy5ZgTsdPwB+pVXXlEkElEkEtH06dPlefHpfPxMMPTXrJppgTwvPg3Tc889Z2sePS8+snJxcbGuXr0amMopJyfHjqrsr5Gsra2163ieF5gLesyYMRnPp6Wlxb5v+PDhevXVVzV8+HC737y8PD355JOSEjXN/m329vba98+bNy/jvgZ6/U2NdapRuD/99FO739GjR2v9+vV6++23A9ehqKhIx44d09q1a+2yUCikwsJCu23/vN07d+606/UdhTsajdprEgqFMjbz37Fjh93O008/rZkzZyonJ8cG+ZycHPtgwvM8TZs2zQZ28yBl1apVkuLNu01Q9bz4tFNFRUUKhULKysrKOOeyFB9IzBz3kiWJ2t29e/cGap8N0x97yJAhmj9/vgoLC23QNq0HGhsb1draape5jsIdjcb03/mrFc4u1st/+MA2v2661KaiBxZoym9LFbmZCMOmxjrVqNRmhOtwdrH+/K9/1edrv9GG+X+3y8LZxZpd+JHqqhu0fWWVXTZhcIle/bcNdtsfvJEYnfzwjkQ/7IGMwm2aar/8hw+SXlv90i5bC91yNd49InKzVzMK1mrC4BJdOJ2oFc90vhdOX0s0+d75vV3eej0x2vbBrafs8uuX2+3yo1+es8v9rSz8D+UAAACQwv0aoJubm22485dUI1B3dXXpqaeesq9PnjxZWVlZKioqchqoyR+gR48erVAoZMPMe++9Z9dramqyo1ObkpeXp2PHjikajQZql8PhsOrq6jRnzhwbsEzT5Pr6+qRzmzNnTlJ/58OHDweCjud5mjJlSr8BS5JKS0ttyBo5cqQqKipsCAyFQlq6dKmd6sqU8ePHq76+3gZ6U95+++2M+3K5/idPngzMOe158UHSTA258cknn9hQah4AmGb0Dz/8sCoqKmwgX7VqVdL9sXDhQnsdX3zxxcDDilAoZJt2G2YeZ8/ztHfv3oznOWvWLLu94cOHq6ysTM8884xycnI0e/Zs2+zZ3D/Dhg3TxIkTFQqFNHXq1EDtYGNjo63lNyU/P1+nTp1Kt/uAixcv2nsoPz/fBvC33norqQ/50aNHA+f5yCOPqK6uzt6nGzZs0Pvvv590r40ZM0ZdXV39Hkt35y2986fPbHPt1/99s4oeWKDZhR/ZWulzNVf1+O+WBcLwtN8vD0zfJEn7Ntfa2mVT6/zXV/conF2s14s26dD20zaQf7rsSGB74exiffjWAUV74yF+xbMVgXmYJwwusU2706nefVZTflsa2OaMgrX64v3gtHOmVnzC4BLNmbhRj/9umR7/3TLbpLy/8z20/bQe/ad37WuTfrVIW0uPaH9Z8PzNA4Ejn9fZGnoz2NrW0iOSFBhbob9p5wAAAH7x7tcAfTva2tp08OBB7du3L+Oo2335+0DHYjGdPXs2MH/yQLS0tCRNW5TuWFpbW3Xq1Kl+m12eP39eVVVVam8f2NQ1PT09gabEUrwPbX818rfrdq9/KvX19bbZfHt7e2B+br9IJKLa2lrV1NQEmn276u3tVV1dnUKhkO2nnkl3d7fq6+vt383NzUlNw7u6uhSLxdTQ0KATJ06oo6Oj72as69ev6/Dhw4Fm6APR2NioXbt2qaqqKmMNuhS/j8w6/mnO7pSOGz06vr9e1bvP2lG3b9flsy12OqvOtptqb0l9br2RqM5+e0XfH28MNPu+FyI3e1VX3aBD20/ryg837um++2pubrbzjAMAACADAvSPl2kQMdz/5s6da+dNBgAAAHAfI0D/eP7BvvDLsmjRIk2ePDmp1QDc9G1CTbm3BQAAAANEgP7xli5dagO0v3ku7n93uhkzAAAAgJ8xAvSPM3PmTA0ZMsSWYcOGJY1iDAAAAAC4DxCgAQAAAABwQIAGAAAAAMABARoAAAAAAAcEaAAAAAAAHBCgAQAAAABwQIAGAAAAAMABARoAAAAAAAcEaAAAAAAAHBCgAQAAAABwQIAGAAAAAMABARoAAAAAAAcEaAAAAAAAHBCgAQAAAABwQIAGAAAAAMABARoAAAAAAAcEaAAAAAAAHBCgAQAAAABwQIAGAAAAAMABARoAAAAAAAcEaAAAAAAAHBCgAQAAAABwQIAGAAAAAMABARoAAAAAAAcEaAAAAAAAHBCgAQAAAABwQIAGAAAAAMABARoAAAAAAAcEaAAAAAAAHBCgAQAAAABwQIAGAAAAAMABARoAAAAAAAcEaAAAAAAAHBCgAQAAAABwQIAGAAAAAMABARoAAAAAAAcEaAAAAAAAHBCgAQAAAABwQIAGAAAAAMABARoAAAAAAAcEaAAAAAAAHBCgAQAAAABwQIAGAAAAAMABARoAAAAAAAcEaAAAAAAAHBCgAQAAAABwQIAGAAAAAMDBTxKgKRQKhUKhUCgUCoVC+f+9EKApFAqFQqFQKBQKhUJxKARoCoVCoVAoFAqFQqFQHAoBmkKhUCgUCoVCoVAoFIdyVwI0AAAAAAC/UARoAAAAAAAcEKABAAAAAHBAgAYAAAAAwAEBGgAAAAAABwRoAAAAAAAcEKABAAAAAHBAgAYAAAAAwAEBGgAAAAAABwRoAAAAAAAcEKABAAAAAHBAgAYAAAAAwAEBGgAAAAAABwRoAAAAAAAcEKABAAAAAHBAgAYAAAAAwAEBGgAAAAAABwRoAAAAAAAcEKABAAAAAHBAgAYAAAAAwAEBGgAAAAAABwRoAAAAAAAcEKABAAAAAHBAgAYAAAAAwAEBGgAAAAAABwRoAAAAAAAcEKABAAAAAHBAgAYAAAAAwAEBGgAAAAAABwRoAAAAAAAcEKABAAAAAHBAgAYAAAAAwAEBGgAAAAAABwRoAAAAAAAcEKABAAAAAHBAgAYAAAAAwAEBGgAAAAAABwRoAAAAAAAcEKABAAAAAHBAgAYAAAAAwAEBGgAAAAAABwRoAAAAAAAcEKABAAAAAHBAgAYAAAAAwAEBGgAAAAAABwRoAAAAAAAcEKABAAAAAHBAgAYAAAAAwAEBGgAAAAAABwRoAAAAAAAcEKABAAAAAHBAgAYAAAAAwAEBGgAAAAAABwRoAAAAAAAcEKABAAAAAHBAgAYAAAAAwAEBGgAAAAAABwRoAAAAAAAcEKABAAAAAHBAgAYAAAAAwAEBGgAAAAAABwRoAAAAAAAcEKABAAAAAHBAgAYAAAAAwAEBGgAAAAAABwRoAAAAAAAcEKABAAAAAHBAgAYAAAAAwAEBGgAAAAAABwRoAAAAAAAcEKABAAAAAHBAgAYAAAAAwAEBGgAAAAAABwRoAAAAAAAcEKABAAAAAHBAgAYAAAAAwAEBGgAAAAAABwRoAAAAAAAcEKABAAAAAHBAgAYAAAAAwMH/A4OTWE/+pKT8AAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Image(gui_driver.get_screenshot_as_png())" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Okay. Let's get back to our home page again." ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "gui_driver.back()" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "print_httpd_messages()" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "image/png": "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YmICY2NjMJlMLK9RGRsbw8TEBIMzERERERG9Wrw1QBMRERERERG9UAzQRERERERERDowQBMRERERERHpwABNREREREREpAMDNBEREREREZEODNBEREREREREOjBAExEREREREenAAE1ERERERESkAwM0ERERERERkQ4M0EREREREREQ6MEATERERERER6cAATURERERERKQDAzQRERERERGRDgzQRERERERERDowQBMRERERERHpwABNREREREREpAMDNBEREREREZEODNBEREREREREOjBAExEREREREenAAE1ERERERESkAwM0ERERERERkQ4M0EREREREREQ6MEATERERERER6cAATURERERERKQDAzQRERERERGRDgzQRERERERERDowQBMRERERERHpwABNREREREREpAMDNBEREREREZEODNBEREREREREOjBAExEREREREenAAE1ERERERESkAwM0ERERERERkQ4M0EREREREREQ6MEATERERERER6cAATURERERERKQDAzQRERERERGRDgzQRERERERERDowQBMRERERERHpwABNREREREREpAMDNBEREREREZEODNBEREREREREOjBAExEREREREenAAE1ERERERESkAwM0ERERERERkQ4M0EREREREREQ6zEuAZmFhYWFhYWFhYWFhYWF53QsDNAsLCwsLCwsLCwsLCwuLjsIAzcLCwsLCwsLCwsLCwsKiozBAs7CwsLCwsLCwsLCwsLDoKHMSoImIiIiIiIgWKAZoIiIiIiIiIh0YoImIiIiIiIh0YIAmIiIiIiIi0oEBmoiIiIiIiEgHBmgiIiIiIiIiHRigiYiIiIiIiHRggCYiIiIiIiLSgQGaiIiIiIiISAcGaCIiIiIiIiIdGKCJiIiIiIiIdGCAJiIiIiIiItKBAZqIiIiIiIhIBwZoIiIiIiIiIh0YoImIiIiIiIh0YIAmIiIiIiIi0oEBmoiIiIiIiEgHBmgiIiIiIiIiHRigiYiIiIiIiHRggCYiIiIiIiLSgQGaiIiIiIiISAcGaCIiIiIiIiIdGKCJiIiIiIiIdGCAJiIiIiIiItKBAZqIiIiIiIhIBwZoIiIiIiIiIh0YoImIiIiIiIh0YIAmIiIiIiIi0oEBmoiIiIiIiEiH/x9EYEKzpp8vWAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Image(gui_driver.get_screenshot_as_png())" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Writing Test Cases\n", "\n", "The above calls, interacting with a user interface automatically, are typically used in *Selenium tests* – that is, code snippets that interact with a Web site, occasionally checking whether everything works as expected. The following code, for instance, places an order just as above. It then retrieves the `title` element and checks whether the title contains a \"Thank you\" message, indicating success." ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "def test_successful_order(driver, url):\n", " name = \"Walter White\"\n", " email = \"white@jpwynne.edu\"\n", " city = \"Albuquerque\"\n", " zip_code = \"87101\"\n", " \n", " driver.get(url)\n", " driver.find_element_by_name(\"name\").send_keys(name)\n", " driver.find_element_by_name(\"email\").send_keys(email)\n", " driver.find_element_by_name('city').send_keys(city)\n", " driver.find_element_by_name('zip').send_keys(zip_code)\n", " driver.find_element_by_name('terms').click()\n", " driver.find_element_by_name('submit').click()\n", " \n", " title = driver.find_element_by_id('title')\n", " assert title is not None\n", " assert title.text.find(\"Thank you\") >= 0\n", "\n", " confirmation = driver.find_element_by_id(\"confirmation\")\n", " assert confirmation is not None\n", "\n", " assert confirmation.text.find(name) >= 0\n", " assert confirmation.text.find(email) >= 0\n", " assert confirmation.text.find(city) >= 0\n", " assert confirmation.text.find(zip_code) >= 0\n", " \n", " return True" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "test_successful_order(gui_driver, httpd_url)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "In a similar vein, we can set up automated test cases for unsuccessful orders, canceling orders, changing orders, and many more. All these test cases would be automatically run after any change to the program code, ensuring the Web application still works." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Of course, writing such tests is quite some effort. Hence, in the remainder of this chapter, we will again explore how to automatically generate them." ] }, { "cell_type": "markdown", "metadata": { "button": false, "new_sheet": false, "run_control": { "read_only": false }, "slideshow": { "slide_type": "subslide" } }, "source": [ "## Retrieving User Interface Actions\n", "\n", "To automatically interact with a user interface, we first need to find out which elements there are, and which user interactions (or short *actions*) they support." ] }, { "cell_type": "markdown", "metadata": { "button": false, "new_sheet": false, "run_control": { "read_only": false }, "slideshow": { "slide_type": "subslide" } }, "source": [ "### User Interface Elements\n", "\n", "We start with finding available user elements. Let us get back to the order form." ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "gui_driver.get(httpd_url)" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "image/png": "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V65cwfLly1VYlvtaVFQU4uLikJ6ejgMHDrgaCoyIiIiIyBEDNBEREREREZELDNBERERERERELjBAExEREREREbnAAE1ERERERETkAgM0ERERERERkQsM0EREREREREQuMEATERERERERucAATUREREREROQCAzQRERERERGRCwzQRERERPkW9TsAACAASURBVERERC4wQBMRERERERG5wABNRERERERE5AIDNBEREREREZELDNBERERERERELjBAExEREREREbnAAE1ERERERETkAgM0ERERERERkQsM0EREREREREQuMEATERERERERucAATUREREREROQCAzQRERERERGRCwzQRERERERERC4wQBMRERERERG5wABNRERERERE5AIDNBEREREREZELDNBERESfl2AwCJ/Ph/7+fvT19eH9+/csLCwTvFTWB4dVHr4O4L80Ag1tAXT3B8f69Eb0+zfeAvTAwIBtCQQChukGBwct04y0t2/f4smTJ2Gn8/l8tss8ODgY8nONjY3Izc3Fzz//PFKLTABqa2uRn58/1otBnwGnY7CiogJnzpz5JOcVGp7xtE38fj86Ozvx9u1bNDQ0oL6+Hq9fv8arV69YWFgmcPmL7EF8sd+Hv8ge/FD2Dxr/bVNmHBzE/JOD2FbkR/HDoRAdDDJIEzkaTwG6ra0NHo8HQghDmTp1Kh48eGCYduXKlYZpPR4PHj16NGLL0tvbC03TIITAw4cPQ067bt062+WWJTExEd988w3a2toAAKWlpYiPj1fv5+TkjNhyT2Q7duxAdHQ0hBCIi4sb68Wh37FQx2AgEFDH/pkzZ8ZwKUkaT9skGAyip6cHL1++xPPnz9Hd3c0LXSICACzI9RnLaR8Wml+zKf8x14e//Ucf0o8O4u9O+/DLswD8gfDfRzRhjacADQw9gf7666/Vha2mafD5fLbT7tu3D0IILFmyBH6/f0SXo6KiQi2Dm6eZL168UNMnJyejvr4eZWVlOHjwoLrw0zQNtbW18Pl8ePPmjQp7DNAjo7e3F99++y2EEJg0adJYL86IGxgYQFdX11gvxrgQ7hhMTk6Gpmm4f//+J12Od+/efdL5jyejtU0+tUAggObmZtTV1Y31ohDR78z8U37MP+lTJeOkDxn/+Nu/T/1W/nHov+p1/fT/6MNfHfZh21U/+gZ5Y47I0XgL0MDQ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\n", "text/plain": [ "" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Image(gui_driver.get_screenshot_as_png())" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Using `find_elements_by_tag_name()` (and other similar `find_elements_...()` functions), we can retrieve all elements of a particular type, such as HTML `input` elements." ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "button": false, "new_sheet": false, "run_control": { "read_only": false }, "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "ui_elements = gui_driver.find_elements_by_tag_name(\"input\")" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "For each element, we can retrieve its HTML attributes, using `get_attribute()`. We can thus retrieve the `name` and `type` of each input element (if defined)." ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Name: name | Type: text | Text: \n", "Name: email | Type: email | Text: \n", "Name: city | Type: text | Text: \n", "Name: zip | Type: number | Text: \n", "Name: terms | Type: checkbox | Text: \n", "Name: submit | Type: submit | Text: \n" ] } ], "source": [ "for element in ui_elements:\n", " print(\"Name: %-10s | Type: %-10s | Text: %s\" % (element.get_attribute('name'), element.get_attribute('type'), element.text))" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "button": false, "new_sheet": false, "run_control": { "read_only": false }, "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "ui_elements = gui_driver.find_elements_by_tag_name(\"a\")" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Name: | Type: | Text: terms and conditions\n" ] } ], "source": [ "for element in ui_elements:\n", " print(\"Name: %-10s | Type: %-10s | Text: %s\" % (element.get_attribute('name'), element.get_attribute('type'), element.text))" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### User Interface Actions\n", "\n", "Similarly to what we did in the [chapter on Web fuzzing](WebFuzzer.ipynb), our idea is now to mine a _grammar_ for the user interface – first for an individual user interface *page* (i.e., a single Web page), later for all pages offered by the application. The idea is that a grammar defines _legal sequences of actions_ – clicks and keystrokes – that can be applied on the application." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "We assume the following actions:\n", "\n", "1. `fill(, )` – fill the UI input element named `` with the text ``.\n", "1. `check(, )` – set the UI checkbox `` to the given value `` (True or False)\n", "1. `submit()` – submit the form by clicking on the UI element ``.\n", "1. `click()` – click on the UI element ``, typically for following a link." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "This sequence of actions, for instance would fill out the order form:\n", "\n", "```python\n", "fill('name', \"Walter White\")\n", "fill('email', \"white@jpwynne.edu\")\n", "fill('city', \"Albuquerque\")\n", "fill('zip', \"87101\")\n", "check('terms', True)\n", "submit('submit')\n", "```" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Our set of actions is deliberately defined to be small – for real user interfaces, one would also have to define interactions such as swipes, double clicks, long clicks, right button clicks, modifier keys, and more. Selenium supports all of this; but in the interest of simplicity, we focus on the most important set of interactions." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" }, "toc-hr-collapsed": false }, "source": [ "### Retrieving Actions\n", "\n", "As a first step in mining an action grammar, we need to be able to retrieve possible interactions. We introduce a class `GUIGrammarMiner`, which is set to do precisely that." ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "class GUIGrammarMiner(object):\n", " def __init__(self, driver, stay_on_host=True):\n", " self.driver = driver\n", " self.stay_on_host = stay_on_host\n", " self.grammar = {}" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Our first task is to obtain the set of possible interactions. Given a single UI page, the method `mine_input_actions()` of `GUIGrammarMiner` returns a set of *actions* as defined above. It first gets all `input` elements, followed by `button` elements, finally followed by links (`a` elements), and merges them into a set. (We use a `frozenset` here since we want to use the set as an index later.)" ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "class GUIGrammarMiner(GUIGrammarMiner):\n", " def mine_state_actions(self):\n", " return frozenset(self.mine_input_element_actions()\n", " | self.mine_button_element_actions()\n", " | self.mine_a_element_actions())" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "#### Input Element Actions\n", "\n", "Mining input actions goes through the set of input elements, and returns an action depending on the input type. If the input field is a text, for instance, the associated action is `fill()`; for checkboxes, the action is `check()`." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "The respective values are placeholders depending on the type; if the input field is a number, for instance, the value becomes ``. As these actions later become part of the grammar, they will be expanded into actual values during grammar expansion." ] }, { "cell_type": "code", "execution_count": 51, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "from selenium.common.exceptions import StaleElementReferenceException" ] }, { "cell_type": "code", "execution_count": 52, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "class GUIGrammarMiner(GUIGrammarMiner):\n", " def mine_input_element_actions(self):\n", " actions = set()\n", " \n", " for elem in self.driver.find_elements_by_tag_name(\"input\"):\n", " try:\n", " input_type = elem.get_attribute(\"type\")\n", " input_name = elem.get_attribute(\"name\")\n", " if input_name is None:\n", " input_name = elem.text\n", "\n", " if input_type in [\"checkbox\", \"radio\"]:\n", " actions.add(\"check('%s', )\" % html.escape(input_name))\n", " elif input_type in [\"text\", \"number\", \"email\", \"password\"]:\n", " actions.add(\"fill('%s', '<%s>')\" % (html.escape(input_name), html.escape(input_type)))\n", " elif input_type in [\"button\", \"submit\"]:\n", " actions.add(\"submit('%s')\" % html.escape(input_name))\n", " elif input_type in [\"hidden\"]:\n", " pass\n", " else:\n", " # TODO: Handle more types here\n", " actions.add(\"fill('%s', <%s>)\" % (html.escape(input_name), html.escape(input_type)))\n", " except StaleElementReferenceException:\n", " pass\n", "\n", " return actions" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Applied on our order form, we see that the method gets us all input actions:" ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "{\"check('terms', )\",\n", " \"fill('city', '')\",\n", " \"fill('email', '')\",\n", " \"fill('name', '')\",\n", " \"fill('zip', '')\",\n", " \"submit('submit')\"}" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gui_grammar_miner = GUIGrammarMiner(gui_driver)\n", "gui_grammar_miner.mine_input_element_actions()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "#### Button Element Actions\n", "\n", "Mining buttons works in a similar way:" ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "class GUIGrammarMiner(GUIGrammarMiner):\n", " def mine_button_element_actions(self):\n", " actions = set()\n", " \n", " for elem in self.driver.find_elements_by_tag_name(\"button\"):\n", " try:\n", " button_type = elem.get_attribute(\"type\")\n", " button_name = elem.get_attribute(\"name\")\n", " if button_name is None:\n", " button_name = elem.text\n", " if button_type == \"submit\":\n", " actions.add(\"submit('%s')\" % html.escape(button_name))\n", " elif button_type != \"reset\":\n", " actions.add(\"click('%s')\" % html.escape(button_name))\n", " except StaleElementReferenceException:\n", " pass\n", "\n", " return actions" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Our order form has no `button` elements. (The `submit` button is an `input` element, and was handled above)." ] }, { "cell_type": "code", "execution_count": 55, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "set()" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gui_grammar_miner = GUIGrammarMiner(gui_driver)\n", "gui_grammar_miner.mine_button_element_actions()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "#### Link Element Actions\n", "\n", "When following links, we need to make sure that we stay on the current host – we want to explore a single Web site only, not all of the Internet. To this end, we check the `href` attribute of the link to check whether it still points to the same host. If it does not, we give it a special action `ignore()`, which, as the name suggests, will later be ignored as it comes to executing these actions. We still return an action, though, as we use the set of actions to characterize a state in the application." ] }, { "cell_type": "code", "execution_count": 56, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "class GUIGrammarMiner(GUIGrammarMiner):\n", " def mine_a_element_actions(self):\n", " actions = set()\n", "\n", " for elem in self.driver.find_elements_by_tag_name(\"a\"):\n", " try:\n", " a_href = elem.get_attribute(\"href\")\n", " if a_href is not None:\n", " if self.follow_link(a_href):\n", " actions.add(\"click('%s')\" % html.escape(elem.text))\n", " else:\n", " actions.add(\"ignore('%s')\" % html.escape(elem.text))\n", " except StaleElementReferenceException:\n", " pass\n", "\n", " return actions" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "To check whether we can follow a link, the method `follow_link()` checks the URL:" ] }, { "cell_type": "code", "execution_count": 57, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "from urllib.parse import urljoin, urlsplit" ] }, { "cell_type": "code", "execution_count": 58, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "class GUIGrammarMiner(GUIGrammarMiner):\n", " def follow_link(self, link):\n", " if not self.stay_on_host:\n", " return True\n", " \n", " current_url = self.driver.current_url\n", " target_url = urljoin(current_url, link)\n", " return urlsplit(current_url).hostname == urlsplit(target_url).hostname " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "In our application, we would not be allowed to follow a link to `foo.bar`:" ] }, { "cell_type": "code", "execution_count": 59, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "gui_grammar_miner = GUIGrammarMiner(gui_driver)" ] }, { "cell_type": "code", "execution_count": 60, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "False" ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gui_grammar_miner.follow_link(\"ftp://foo.bar/\")" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Following a link to `localhost`, though, works well:" ] }, { "cell_type": "code", "execution_count": 61, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gui_grammar_miner.follow_link(\"https://127.0.0.1/\")" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "When adapting this for other user interfaces, similar measures would be taken to ensure we stay in the same application." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Running this method on our page gets us the set of links:" ] }, { "cell_type": "code", "execution_count": 62, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "{\"click('terms and conditions')\"}" ] }, "execution_count": 62, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gui_grammar_miner = GUIGrammarMiner(gui_driver)\n", "gui_grammar_miner.mine_a_element_actions()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "#### All Together\n", "\n", "Let us now apply `mine_state_actions()` on our current page to retrieve all elements. We see that we get the union of all three sets." ] }, { "cell_type": "code", "execution_count": 63, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "frozenset({\"check('terms', )\",\n", " \"click('terms and conditions')\",\n", " \"fill('city', '')\",\n", " \"fill('email', '')\",\n", " \"fill('name', '')\",\n", " \"fill('zip', '')\",\n", " \"submit('submit')\"})" ] }, "execution_count": 63, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gui_grammar_miner = GUIGrammarMiner(gui_driver)\n", "gui_grammar_miner.mine_state_actions()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "We assume that we can identify a user interface *state* from the set of interactive elements it contains – that is, the current Web page is identified by the set above. This is in contrast to [Web fuzzing](WebFuzzer.ipynb), where we assumed the URL to uniquely characterize a page – but with JavaScript, the URL can stay unchanged although the page contents change, and UIs other than the Web may have no concept of unique URLs. Therefore, we say that the way a UI can be interacted with uniquely defines its state." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Models for User Interfaces" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### User Interfaces as Finite State Machines\n", "\n", "Now that we can retrieve UI elements from a page, let us go and systematically explore a user interface. The idea is to represent the user interface as a *finite state machine* – that is, a sequence of *states* that can be reached by interacting with the individual user interface elements." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Let us illustrate such a finite state machine by looking our Web server. The following diagram shows the states our server can be in:" ] }, { "cell_type": "code", "execution_count": 64, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "from graphviz import Digraph" ] }, { "cell_type": "code", "execution_count": 65, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "from IPython.display import display" ] }, { "cell_type": "code", "execution_count": 66, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "from GrammarFuzzer import dot_escape" ] }, { "cell_type": "code", "execution_count": 67, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "%3\n", "\n", "\n", "\n", "\\<start\\>\n", "\n", "<start>\n", "\n", "\n", "\n", "\\<Order Form\\>\n", "\n", "<Order Form>\n", "\n", "\n", "\n", "\\<start\\>->\\<Order Form\\>\n", "\n", "\n", "\n", "\n", "\n", "\\<Terms and Conditions\\>\n", "\n", "<Terms and Conditions>\n", "\n", "\n", "\n", "\\<Order Form\\>->\\<Terms and Conditions\\>\n", "\n", "\n", "click('Terms and conditions')\n", "\n", "\n", "\n", "\\<Thank You\\>\n", "\n", "<Thank You>\n", "\n", "\n", "\n", "\\<Order Form\\>->\\<Thank You\\>\n", "\n", "\n", "fill(...)\n", "submit('submit')\n", "\n", "\n", "\n", "\\<Terms and Conditions\\>->\\<Order Form\\>\n", "\n", "\n", "click('order form')\n", "\n", "\n", "\n", "\\<Thank You\\>->\\<Order Form\\>\n", "\n", "\n", "click('order form')\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dot = Digraph(comment=\"Finite State Machine\")\n", "dot.node(dot_escape(''))\n", "dot.edge(dot_escape(''), dot_escape(''))\n", "dot.edge(dot_escape(''), dot_escape(''), \"click('Terms and conditions')\")\n", "dot.edge(dot_escape(''), dot_escape(''), \"fill(...)\\lsubmit('submit')\")\n", "dot.edge(dot_escape(''), dot_escape(''), \"click('order form')\")\n", "dot.edge(dot_escape(''), dot_escape(''), \"click('order form')\")\n", "display(dot)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Initially, we are in the `` state. From here, we can click on `Terms and Conditions`, and we'll be in the `Terms and Conditions` state, showing the page with the same title. We can also fill out the form and place the order, having us end in the `Thank You` state (again showing the page with the same title). From both `` and ``, we can return to the order form by clicking on the `order form` link." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### State Machines as Grammars\n", "\n", "To systematically explore a user interface, we must retrieve its finite state machine, and eventually cover all states and transitions. In the presence of forms, such an exploration is difficult, as we need a special mechanism to fill out forms and submit the values to get to the next state. There is a trick, though, which allows us to have a single representation for both states and (form) values. We can *embed the finite state machine into a grammar*, which is then used for both states and form values." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "To embed a finite state machine into a grammar, we proceed as follows:\n", "\n", "1. Every _state_ $\\langle s \\rangle$ in the finite state machine becomes a _symbol_ $\\langle s \\rangle$ in the grammar.\n", "2. Every _transition_ in the finite state machine from $\\langle s \\rangle$ to $\\langle t \\rangle$ and actions $a_1, a_2, \\dots$ becomes an _alternative_ of $\\langle s \\rangle$ in the form $a_1, a_2, dots$ $\\langle t \\rangle$ in the grammar." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "The above finite state machine thus gets encoded into the grammar\n", "\n", "```\n", " ::= \n", " ::= click('Terms and Conditions') | \n", " fill(...) submit('submit') \n", " ::= click('order form') \n", " ::= click('order form') \n", "```" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Expanding this grammar gets us a stream of actions, navigating through the user interface:\n", "\n", "```\n", "fill(...) submit('submit') click('order form') click('Terms and Conditions') click('order form') ...\n", "```\n", "\n", "This stream is actually _infinite_ (as one can interact with the UI forever); to have it end, one can introduce an alternative `` that simply expands to the empty string, without having any expansion (state) follow." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Retrieving State Grammars\n", "\n", "Let us build a method that retrieves a grammar from the _current state_ of a user interface. We first define a constant `GUI_GRAMMAR` that servers as template for all sorts of input types. We will use this to fill out forms." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "\\todo{}: Have a generic interface `BaseGrammarMiner` with `__init__()` and `mine_grammar()`" ] }, { "cell_type": "code", "execution_count": 68, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "from Grammars import new_symbol" ] }, { "cell_type": "code", "execution_count": 69, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "from Grammars import nonterminals, START_SYMBOL\n", "from Grammars import extend_grammar, unreachable_nonterminals, opts, crange, srange\n", "from Grammars import syntax_diagram, is_valid_grammar" ] }, { "cell_type": "code", "execution_count": 70, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "class GUIGrammarMiner(GUIGrammarMiner):\n", " START_STATE = \"\"\n", " UNEXPLORED_STATE = \"\"\n", " FINAL_STATE = \"\"\n", "\n", " GUI_GRAMMAR = ({\n", " START_SYMBOL: [START_STATE],\n", " UNEXPLORED_STATE: [\"\"],\n", " FINAL_STATE: [\"\"],\n", "\n", " \"\": [\"\"],\n", " \"\": [\"\", \"\"],\n", " \"\": [\"\", \"\", \"\"],\n", " \"\": crange('a', 'z') + crange('A', 'Z'),\n", " \n", " \"\": [\"\"],\n", " \"\": [\"\", \"\"],\n", " \"\": crange('0', '9'),\n", " \n", " \"\": srange(\". !\"),\n", "\n", " \"\": [\"@\"],\n", " \"\": [\"\", \"\"],\n", " \n", " \"\": [\"True\", \"False\"],\n", "\n", " # Use a fixed password in case we need to repeat it\n", " \"\": [\"abcABC.123\"],\n", " \n", " \"\": \"\",\n", " })" ] }, { "cell_type": "code", "execution_count": 71, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "start\n" ] }, { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "state" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "unexplored\n" ] }, { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "end\n" ] }, { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "text\n" ] }, { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "string" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "string\n" ] }, { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "character\n", "\n", "string\n", "character" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "character\n" ] }, { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "letter\n", "\n", "digit\n", "\n", "special" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "letter\n" ] }, { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "e\n", "\n", "d\n", "\n", "c\n", "\n", "b\n", "\n", "a\n", "\n", "f\n", "\n", "g\n", "\n", "h\n", "\n", "i\n", "\n", "j\n", "\n", "\n", "o\n", "\n", "n\n", "\n", "m\n", "\n", "l\n", "\n", "k\n", "\n", "p\n", "\n", "q\n", "\n", "r\n", "\n", "s\n", "\n", "t\n", "\n", "\n", "y\n", "\n", "x\n", "\n", "w\n", "\n", "v\n", "\n", "u\n", "\n", "z\n", "\n", "A\n", "\n", "B\n", "\n", "C\n", "\n", "D\n", "\n", "\n", "I\n", "\n", "H\n", "\n", "G\n", "\n", "F\n", "\n", "E\n", "\n", "J\n", "\n", "K\n", "\n", "L\n", "\n", "M\n", "\n", "N\n", "\n", "\n", "S\n", "\n", "R\n", "\n", "Q\n", "\n", "P\n", "\n", "O\n", "\n", "T\n", "\n", "U\n", "\n", "V\n", "\n", "W\n", "\n", "X\n", "\n", "\n", "Y\n", "\n", "Z" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "number\n" ] }, { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "digits" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "digits\n" ] }, { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "digit\n", "\n", "digits\n", "digit" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "digit\n" ] }, { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "0\n", "\n", "1\n", "\n", "\n", "2\n", "\n", "3\n", "\n", "\n", "4\n", "\n", "5\n", "\n", "\n", "6\n", "\n", "7\n", "\n", "\n", "8\n", "\n", "9" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "special\n" ] }, { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", ".\n", "\n", " \n", "\n", "!" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "email\n" ] }, { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "letters\n", "@\n", "letters" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "letters\n" ] }, { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "letter\n", "\n", "letters\n", "letter" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "boolean\n" ] }, { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "True\n", "\n", "False" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "password\n" ] }, { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "abcABC.123" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "hidden\n" ] }, { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "<\n", "\n", "\n", "s\n", "\n", "\n", "t\n", "\n", "\n", "r\n", "\n", "\n", "i\n", "\n", "\n", "n\n", "\n", "\n", "g\n", "\n", "\n", ">" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "syntax_diagram(GUIGrammarMiner.GUI_GRAMMAR)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "The method `mine_state_grammar()` goes through the actions mined from the page (using `mine_state_actions()`) and creates a grammar for the current state. For each `click()` and `submit()` action, it assumes a new state follows, and introduces an appropriate state symbol into the grammar – a state symbol that now will be marked as ``, but will be expanded later as the appropriate state is seen." ] }, { "cell_type": "code", "execution_count": 72, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "class GUIGrammarMiner(GUIGrammarMiner):\n", " def new_state_symbol(self, grammar):\n", " return new_symbol(grammar, self.START_STATE)\n", "\n", " def mine_state_grammar(self, grammar={}, state_symbol=None):\n", " grammar = extend_grammar(self.GUI_GRAMMAR, grammar)\n", "\n", " if state_symbol is None:\n", " state_symbol = self.new_state_symbol(grammar)\n", " grammar[state_symbol] = []\n", "\n", " alternatives = []\n", " form = \"\"\n", " submit = None\n", "\n", " for action in self.mine_state_actions():\n", " if action.startswith(\"submit\"):\n", " submit = action\n", " \n", " elif action.startswith(\"click\"):\n", " link_target = self.new_state_symbol(grammar)\n", " grammar[link_target] = [self.UNEXPLORED_STATE]\n", " alternatives.append(action + '\\n' + link_target)\n", " \n", " elif action.startswith(\"ignore\"):\n", " pass\n", "\n", " else: # fill(), check() actions\n", " if len(form) > 0:\n", " form += '\\n'\n", " form += action\n", "\n", " if submit is not None:\n", " if len(form) > 0:\n", " form += '\\n'\n", " form += submit\n", "\n", " if len(form) > 0:\n", " form_target = self.new_state_symbol(grammar)\n", " grammar[form_target] = [self.UNEXPLORED_STATE]\n", " alternatives.append(form + '\\n' + form_target)\n", " \n", " alternatives += [self.FINAL_STATE]\n", "\n", " grammar[state_symbol] = alternatives\n", " \n", " # Remove unused parts\n", " for nonterminal in unreachable_nonterminals(grammar):\n", " del grammar[nonterminal]\n", "\n", " assert is_valid_grammar(grammar)\n", " \n", " return grammar" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Let us show `mine_state_grammar()` in action. Here's the grammar for the home page:" ] }, { "cell_type": "code", "execution_count": 73, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "gui_grammar_miner = GUIGrammarMiner(gui_driver)\n", "state_grammar = gui_grammar_miner.mine_state_grammar()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "From the start state (``), we can go and either click on \"terms and conditions\", ending in ``, or fill out the form, ending in ``." ] }, { "cell_type": "code", "execution_count": 74, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "[\"click('terms and conditions')\\n\",\n", " \"fill('zip', '')\\nfill('city', '')\\nfill('email', '')\\nfill('name', '')\\ncheck('terms', )\\nsubmit('submit')\\n\",\n", " '']" ] }, "execution_count": 74, "metadata": {}, "output_type": "execute_result" } ], "source": [ "state_grammar[GUIGrammarMiner.START_STATE]" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Both these states are yet unexplored:" ] }, { "cell_type": "code", "execution_count": 75, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "['']" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ "state_grammar['']" ] }, { "cell_type": "code", "execution_count": 76, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "text/plain": [ "['']" ] }, "execution_count": 76, "metadata": {}, "output_type": "execute_result" } ], "source": [ "state_grammar['']" ] }, { "cell_type": "code", "execution_count": 77, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "['']" ] }, "execution_count": 77, "metadata": {}, "output_type": "execute_result" } ], "source": [ "state_grammar['']" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "To better see the state structure, the function `fsm_diagram()` shows the resulting state grammar as a finite state machine. (This assumes that the grammar actually encodes a state machine.)" ] }, { "cell_type": "code", "execution_count": 78, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "from collections import deque" ] }, { "cell_type": "code", "execution_count": 79, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "from fuzzingbook_utils import unicode_escape" ] }, { "cell_type": "code", "execution_count": 80, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "def fsm_diagram(grammar, start_symbol=START_SYMBOL):\n", " def left_align(label):\n", " return dot_escape(label.replace('\\n', r'\\l')).replace(r'\\\\l', '\\\\l')\n", "\n", " dot = Digraph(comment=\"Grammar as Finite State Machine\")\n", "\n", " symbols = deque([start_symbol])\n", " symbols_seen = set()\n", " \n", " while len(symbols) > 0:\n", " symbol = symbols.popleft()\n", " symbols_seen.add(symbol)\n", " dot.node(symbol, dot_escape(unicode_escape(symbol)))\n", " \n", " for expansion in grammar[symbol]:\n", " nts = nonterminals(expansion)\n", " if len(nts) > 0:\n", " target_symbol = nts[-1]\n", " if target_symbol not in symbols_seen:\n", " symbols.append(target_symbol)\n", "\n", " label = expansion.replace(target_symbol, '')\n", " dot.edge(symbol, target_symbol, left_align(unicode_escape(label)))\n", " \n", " \n", " return display(dot)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Here's our current grammar as a state machine. We see that it nicely reflects what we can see from our Web server's home page:" ] }, { "cell_type": "code", "execution_count": 81, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "%3\n", "\n", "\n", "\n", "start\n", "\n", "<start>\n", "\n", "\n", "\n", "state\n", "\n", "<state>\n", "\n", "\n", "\n", "start->state\n", "\n", "\n", "\n", "\n", "\n", "state-1\n", "\n", "<state-1>\n", "\n", "\n", "\n", "state->state-1\n", "\n", "\n", "click('terms and conditions')\n", "\n", "\n", "\n", "state-2\n", "\n", "<state-2>\n", "\n", "\n", "\n", "state->state-2\n", "\n", "\n", "fill('zip', '<number>')\n", "fill('city', '<text>')\n", "fill('email', '<email>')\n", "fill('name', '<text>')\n", "check('terms', <boolean>)\n", "submit('submit')\n", "\n", "\n", "\n", "end\n", "\n", "<end>\n", "\n", "\n", "\n", "state->end\n", "\n", "\n", "\n", "\n", "\n", "unexplored\n", "\n", "<unexplored>\n", "\n", "\n", "\n", "state-1->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-2->unexplored\n", "\n", "\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fsm_diagram(state_grammar)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Given the grammar, we can use any of our grammar fuzzers to create valid input sequences:" ] }, { "cell_type": "code", "execution_count": 82, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "from GrammarFuzzer import GrammarFuzzer" ] }, { "cell_type": "code", "execution_count": 83, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "fill('zip', '3')\n", "fill('city', 'm ')\n", "fill('email', 'Bsoo@ZL')\n", "fill('name', '.')\n", "check('terms', False)\n", "submit('submit')\n", "\n" ] } ], "source": [ "gui_fuzzer = GrammarFuzzer(state_grammar)\n", "while True:\n", " action = gui_fuzzer.fuzz()\n", " if action.find('submit(') > 0:\n", " break\n", "print(action)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "These actions, however, must also be _executed_ such that we can explore the user interface. This is what we do in the next section." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Executing User Interface Actions" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "To execute actions, we introduce a `Runner` class, conveniently named `GUIRunner`. The aim of its `run()` method is to execute the actions as given in an action string. The way we do this is fairly simple: We introduce four methods named `fill()`, `check()`, `submit()` and `click()`, and run `exec()` on the action string to have the Python interpreter invoke these methods." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Running `exec()` on third-party input is dangerous, as the names of UI elements may contain valid Python code. We restrict access to the four functions defined above, and also set `__builtins__` to the empty dictionary such that built-in Python functions are not available during `exec()`. This will prevent accidents, but as we will see in the [chapter on information flow](InformationFlow.ipynb), it is still possible to inject Python code. To prevent such injection attacks, we use `html.escape()` to quote angle and quote characters in all third-party strings." ] }, { "cell_type": "code", "execution_count": 84, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "from Fuzzer import Runner" ] }, { "cell_type": "code", "execution_count": 85, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "class GUIRunner(Runner):\n", " def __init__(self, driver):\n", " self.driver = driver\n", " \n", " def run(self, inp):\n", " def fill(name, value):\n", " self.do_fill(html.unescape(name), html.unescape(value))\n", " def check(name, state):\n", " self.do_check(html.unescape(name), state)\n", " def submit(name):\n", " self.do_submit(html.unescape(name))\n", " def click(name):\n", " self.do_click(html.unescape(name))\n", " \n", " exec(inp, {'__builtins__': {}},\n", " {'fill': fill, 'check': check, 'submit': submit, 'click': click})\n", " \n", " return inp, self.PASS" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "To identify elements in an action, we first search them by their name, and then by the displayed link text." ] }, { "cell_type": "code", "execution_count": 86, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "from selenium.common.exceptions import NoSuchElementException\n", "from selenium.common.exceptions import ElementClickInterceptedException, ElementNotInteractableException" ] }, { "cell_type": "code", "execution_count": 87, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "class GUIRunner(GUIRunner):\n", " def find_element(self, name):\n", " try:\n", " return self.driver.find_element_by_name(name)\n", " except NoSuchElementException:\n", " return self.driver.find_element_by_link_text(name)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "The implementations of the actions simply defer to the appropriate Selenium methods, introducing explicit delays such that the page can reload and refresh." ] }, { "cell_type": "code", "execution_count": 88, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "from selenium.webdriver.support.ui import WebDriverWait" ] }, { "cell_type": "code", "execution_count": 89, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "class GUIRunner(GUIRunner):\n", " # Delays (in seconds)\n", " DELAY_AFTER_FILL = 0.1\n", " DELAY_AFTER_CHECK = 0.1\n", " DELAY_AFTER_SUBMIT = 1\n", " DELAY_AFTER_CLICK = 1" ] }, { "cell_type": "code", "execution_count": 90, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "class GUIRunner(GUIRunner):\n", " def do_fill(self, name, value):\n", " element = self.find_element(name)\n", " element.send_keys(value)\n", " WebDriverWait(self.driver, self.DELAY_AFTER_FILL)" ] }, { "cell_type": "code", "execution_count": 91, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "class GUIRunner(GUIRunner):\n", " def do_check(self, name, state):\n", " element = self.find_element(name)\n", " if bool(state) != bool(element.is_selected()):\n", " element.click()\n", " WebDriverWait(self.driver, self.DELAY_AFTER_CHECK)" ] }, { "cell_type": "code", "execution_count": 92, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "class GUIRunner(GUIRunner):\n", " def do_submit(self, name):\n", " element = self.find_element(name)\n", " element.click()\n", " WebDriverWait(self.driver, self.DELAY_AFTER_SUBMIT)" ] }, { "cell_type": "code", "execution_count": 93, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "class GUIRunner(GUIRunner):\n", " def do_click(self, name):\n", " element = self.find_element(name)\n", " element.click()\n", " WebDriverWait(self.driver, self.DELAY_AFTER_CLICK)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Let us try out `GUIRunner`. We create a runner on our Web server, and let it execute a `fill()` action:" ] }, { "cell_type": "code", "execution_count": 94, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "gui_driver.get(httpd_url)" ] }, { "cell_type": "code", "execution_count": 95, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "gui_runner = GUIRunner(gui_driver)" ] }, { "cell_type": "code", "execution_count": 96, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "(\"fill('name', 'Walter White')\", 'PASS')" ] }, "execution_count": 96, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gui_runner.run(\"fill('name', 'Walter White')\")" ] }, { "cell_type": "code", "execution_count": 97, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 97, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Image(gui_driver.get_screenshot_as_png())" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "A `submit()` action submits the order. (Note that our Web server does no effort whatsoever to validate the form.)" ] }, { "cell_type": "code", "execution_count": 98, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "text/plain": [ "(\"submit('submit')\", 'PASS')" ] }, "execution_count": 98, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gui_runner.run(\"submit('submit')\")" ] }, { "cell_type": "code", "execution_count": 99, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "image/png": "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AAAAWCBAAwAAAABggQANAAAAAIAFAjQAAAAAABYI0AAAAAAAWCBAAwAAAABggQANAAAAAIAFAjQAAAAAABYI0AAAAAAAWCBAAwAAAABggQANAAAAAIAFAjQAAAAAABYI0AAAAAAAWCBAAwAAAABggQANAAAAAIAFAjQAAAAAABYI0AAAAAAAWCBAAwAAAABggQANAAAAAIAFAjQAAAAAABYI0AAAAAAAWCBAAwAAAABggQANAAAAAIAFAjQAAAAAABYI0AAAAAAAWCBAAwAAAABggQANAAAAAIAFAjQAAAAAABYI0AAAAAAAWCBAAwAAAABggQANAAAAAIAFAjQAAAAAABYI0AAAAAAAWCBAAwAAAABggQANAAAAAIAFAjQAAAAAABYI0AAAAAAAWCBAAwAAAABggQANAAAAAIAFAjQAAAAAABYI0AAAAAAAWCBAAwAAAABggQANAAAAAICFHyRAUygUCoVCoVAoFAqF8q9eCNAUCoVCoVAoFAqFQqFYFAI0hUKhUCgUCoVCoVAoFoUATaFQKBQKhUKhUCgUikW5LwEaAAAAAIBHFAEaAAAAAAALBGgAAAAAACwQoAEAAAAAsECABgAAAADAAgEaAAAAAAALBGgAAAAAACwQoAEAAAAAsECABgAAAADAAgEaAAAAAAALBGgAAAAAACwQoAEAAAAAsECABgAAAADAAgEaAAAAAAALBGgAAAAAACwQoAEAAAAAsECABgAAAADAAgEaAAAAAAALBGgAAAAAACwQoAEAAAAAsECABgAAAADAAgEaAAAAAAALBGgAAAAAACwQoAEAAAAAsECABgAAAADAAgEaAAAAAAALBGgAAAAAACwQoAEAAAAAsECABgAAAADAAgEaAAAAAAALBGgAAAAAACwQoAEAAAAAsECABgAAAADAAgEaAAAAAAALBGgAAAAAACwQoAEAAAAAsECABgAAAADAAgEaAAAAAAALBGgAAAAAACwQoAEAAAAAsECABgAAAADAAgEaAAAAAAALBGgAAAAAACwQoAEAAAAAsECABgAAAADAAgEaAAAAAAALBGgAAAAAACwQoAEAAAAAsECABgAAAADAAgEaAAAAAAALBGgAAAAAACwQoAEAAAAAsECABgAAAADAAgEaAAAAAAALBGgAAAAAACwQoAEAAAAAsECABgAAAADAAgEaAAAAAAALBGgAAAAAACwQoAEAAAAAsECABgAAAADAAgEaAAAAAAALBGgAAAAAACwQoAEAAAAAsECABgAAAADAAgEaAAAAAAALBGgAAAAAACwQoAEAAAAAsECABgAAAADAAgEaAAAAAAALBGgAAAAAACwQoAEAAAAAsECABgAAAADAAgEaAAAAAAALBGgAAAAAACwQoAEAAAAAsECABgAAAADAAgEaAAAAAAALBGgAAAAAACwQoAEAAAAAsPD/AQ90SVIKUpEoAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "execution_count": 99, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Image(gui_driver.get_screenshot_as_png())" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Of course, we can also execute action sequences generated from the grammar. This allows us to fill the form again and again, using values matching the type given in the form." ] }, { "cell_type": "code", "execution_count": 100, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "gui_driver.get(httpd_url)" ] }, { "cell_type": "code", "execution_count": 101, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "gui_fuzzer = GrammarFuzzer(state_grammar)" ] }, { "cell_type": "code", "execution_count": 102, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "while True:\n", " action = gui_fuzzer.fuzz()\n", " if action.find('submit(') > 0:\n", " break" ] }, { "cell_type": "code", "execution_count": 103, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "fill('zip', '21')\n", "fill('city', 'F')\n", "fill('email', 'KskZy@Rm')\n", "fill('name', '1')\n", "check('terms', True)\n", "submit('submit')\n", "\n" ] } ], "source": [ "print(action)" ] }, { "cell_type": "code", "execution_count": 104, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "(\"fill('zip', '21')\\nfill('city', 'F')\\nfill('email', 'KskZy@Rm')\\nfill('name', '1')\\ncheck('terms', True)\\nsubmit('submit')\\n\",\n", " 'PASS')" ] }, "execution_count": 104, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gui_runner.run(action)" ] }, { "cell_type": "code", "execution_count": 105, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 105, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Image(gui_driver.get_screenshot_as_png())" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Exploring User Interfaces\n", "\n", "So far, our grammar retrieval and execution of actions is limited to the current user interface state (i.e., the current page shown). To systematically explore a user interface, we must explore all states, notably those ending in `` – and whenever we reach a new state, again retrieve its grammar such that we may be able to reach other states. Since some states can only be reached by generating inputs, test generation and user interface exploration _take place at the same time._ \n", "\n", "Consequently, we introduce a `GUIFuzzer` class, which generates inputs for all forms and follows all links, and which updates its grammar (i.e., its user interface model as a finite state machine) every time it encounters a new state. " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Exploring states and updating the grammar at the same time is a fairly complex operation, so we need to introduce quite a number of methods before we can put this to use. The `GUIFuzzer` constructor sets three important attributes:\n", "\n", "1. `state_symbol`: This holds the symbol of the current state (e.g. ``).\n", "2. `state`: This holds the set of actions for the current state, as returned by the `GUIGrammarMiner` method `mine_state_actions()`.\n", "3. `states_seen`: This maps the states seen (as in `state`) to the respective symbols.\n", "\n", "Let us show these three attributes after initialization." ] }, { "cell_type": "code", "execution_count": 106, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "from Grammars import is_nonterminal" ] }, { "cell_type": "code", "execution_count": 107, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "from GrammarFuzzer import GrammarFuzzer" ] }, { "cell_type": "code", "execution_count": 108, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "class GUIFuzzer(GrammarFuzzer):\n", " def __init__(self, driver, \n", " stay_on_host=True,\n", " log_gui_exploration=False, \n", " disp_gui_exploration=False, \n", " **kwargs):\n", " self.driver = driver\n", " self.miner = GUIGrammarMiner(driver)\n", " self.stay_on_host = True\n", " self.log_gui_exploration = log_gui_exploration\n", " self.disp_gui_exploration = disp_gui_exploration\n", " self.initial_url = driver.current_url\n", "\n", " self.states_seen = {} # Maps states to symbols\n", " self.state_symbol = GUIGrammarMiner.START_STATE\n", " self.state = self.miner.mine_state_actions()\n", " self.states_seen[self.state] = self.state_symbol\n", " \n", " grammar = self.miner.mine_state_grammar()\n", " super().__init__(grammar, **kwargs)" ] }, { "cell_type": "code", "execution_count": 109, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "gui_driver.get(httpd_url)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "The initial state symbol is always ``:" ] }, { "cell_type": "code", "execution_count": 110, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "''" ] }, "execution_count": 110, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gui_fuzzer = GUIFuzzer(gui_driver)\n", "gui_fuzzer.state_symbol" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "The current state is characterized by the available UI actions:" ] }, { "cell_type": "code", "execution_count": 111, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "frozenset({\"check('terms', )\",\n", " \"click('terms and conditions')\",\n", " \"fill('city', '')\",\n", " \"fill('email', '')\",\n", " \"fill('name', '')\",\n", " \"fill('zip', '')\",\n", " \"submit('submit')\"})" ] }, "execution_count": 111, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gui_fuzzer.state" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "`states_seen` maps this state to its symbol:" ] }, { "cell_type": "code", "execution_count": 112, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "text/plain": [ "''" ] }, "execution_count": 112, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gui_fuzzer.states_seen[gui_fuzzer.state]" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "The `restart()` method gets us back to the initial URL and resets the state. This is what we use with every new exploration." ] }, { "cell_type": "code", "execution_count": 113, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "class GUIFuzzer(GUIFuzzer):\n", " def restart(self):\n", " self.driver.get(self.initial_url)\n", " self.state = GUIGrammarMiner.START_STATE" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "When producing a sequence of actions from the grammar, we want to know which final state we are to be in. We can retrieve this path from the _derivation tree_ produced – it is the last symbol being expanded." ] }, { "cell_type": "code", "execution_count": 114, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "while True:\n", " action = gui_fuzzer.fuzz()\n", " if action.find('click(') >= 0:\n", " break" ] }, { "cell_type": "code", "execution_count": 115, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "from GrammarFuzzer import display_tree" ] }, { "cell_type": "code", "execution_count": 116, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "%3\n", "\n", "\n", "\n", "0\n", "<start>\n", "\n", "\n", "\n", "1\n", "<state>\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "\n", "\n", "\n", "2\n", "click('terms and conditions')\n", "\n", "\n", "\n", "1->2\n", "\n", "\n", "\n", "\n", "\n", "3\n", "<state-1>\n", "\n", "\n", "\n", "1->3\n", "\n", "\n", "\n", "\n", "\n", "4\n", "<unexplored>\n", "\n", "\n", "\n", "3->4\n", "\n", "\n", "\n", "\n", "\n", "5\n", "\n", "\n", "\n", "4->5\n", "\n", "\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 116, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tree = gui_fuzzer.derivation_tree\n", "display_tree(tree)" ] }, { "cell_type": "code", "execution_count": 117, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "class GUIFuzzer(GUIFuzzer):\n", " def fsm_path(self, tree):\n", " \"\"\"Return sequence of state symbols\"\"\"\n", " (node, children) = tree\n", " if node == GUIGrammarMiner.UNEXPLORED_STATE:\n", " return []\n", " elif children is None or len(children) == 0:\n", " return [node]\n", " else:\n", " return [node] + self.fsm_path(children[-1])" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "This is the path in the finite state machine towards the \"fuzzed\" state:" ] }, { "cell_type": "code", "execution_count": 118, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "text/plain": [ "['', '', '']" ] }, "execution_count": 118, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gui_fuzzer = GUIFuzzer(gui_driver)\n", "gui_fuzzer.fsm_path(tree)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "This is its last element:" ] }, { "cell_type": "code", "execution_count": 119, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "class GUIFuzzer(GUIFuzzer):\n", " def fsm_last_state_symbol(self, tree):\n", " \"\"\"Return current (expected) state symbol\"\"\"\n", " for state in reversed(self.fsm_path(tree)):\n", " if is_nonterminal(state):\n", " return state\n", " assert False" ] }, { "cell_type": "code", "execution_count": 120, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "''" ] }, "execution_count": 120, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gui_fuzzer = GUIFuzzer(gui_driver)\n", "gui_fuzzer.fsm_last_state_symbol(tree)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "As we run (`run()`) the fuzzer, we create an action (via `fuzz()`) and retrieve and update the state symbol (`state_symbol`) we are supposed to be in after running this action. After actually running the action in the given `GUIRunner`, we retrieve and update the current state, using `update_state()`." ] }, { "cell_type": "code", "execution_count": 121, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "class GUIFuzzer(GUIFuzzer):\n", " def run(self, runner):\n", " assert isinstance(runner, GUIRunner)\n", " \n", " self.restart()\n", " action = self.fuzz()\n", " self.state_symbol = self.fsm_last_state_symbol(self.derivation_tree)\n", "\n", " if self.log_gui_exploration:\n", " print(\"Action\", action.strip(), \"->\", self.state_symbol)\n", "\n", " result, outcome = runner.run(action)\n", " \n", " if self.state_symbol != GUIGrammarMiner.FINAL_STATE:\n", " self.update_state()\n", "\n", " return self.state_symbol, outcome" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "When updating the current state, we check whether we are in a new or in a previously seen state, and invoke `update_new_state()` or `update_existing_state()`, respectively." ] }, { "cell_type": "code", "execution_count": 122, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "class GUIFuzzer(GUIFuzzer):\n", " def update_state(self):\n", " if self.disp_gui_exploration:\n", " display(Image(self.driver.get_screenshot_as_png()))\n", "\n", " self.state = self.miner.mine_state_actions()\n", " if self.state not in self.states_seen:\n", " self.states_seen[self.state] = self.state_symbol\n", " self.update_new_state()\n", " else:\n", " self.update_existing_state()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Finding a new state means that we mine a new grammar for the newly found state, and update our existing grammar with it." ] }, { "cell_type": "code", "execution_count": 123, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "class GUIFuzzer(GUIFuzzer):\n", " def set_grammar(self, new_grammar):\n", " self.grammar = new_grammar\n", " \n", " if self.disp_gui_exploration and rich_output():\n", " display(fsm_diagram(self.grammar))" ] }, { "cell_type": "code", "execution_count": 124, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "class GUIFuzzer(GUIFuzzer):\n", " def update_new_state(self):\n", " if self.log_gui_exploration:\n", " print(\"In new state\", unicode_escape(self.state_symbol), unicode_escape(repr(self.state)))\n", "\n", " state_grammar = self.miner.mine_state_grammar(grammar=self.grammar, \n", " state_symbol=self.state_symbol)\n", " del state_grammar[START_SYMBOL]\n", " del state_grammar[GUIGrammarMiner.START_STATE]\n", " self.set_grammar(extend_grammar(self.grammar, state_grammar))" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "If we find an existing state, we need to _merge_ both states. If, for instance, we find that we are in existing `` rather than in the expected ``, we replace all instances of `` in the grammar by ``. The method `replace_symbol()` takes care of the renaming; `update_existing_state()` sets the grammar accordingly." ] }, { "cell_type": "code", "execution_count": 125, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "from Grammars import exp_string, exp_opts" ] }, { "cell_type": "code", "execution_count": 126, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "def replace_symbol(grammar, old_symbol, new_symbol):\n", " \"\"\"Return a grammar in which all occurrences of `old_symbol` are replaced by `new_symbol`\"\"\"\n", " new_grammar = {}\n", " \n", " for symbol in grammar:\n", " new_expansions = []\n", " for expansion in grammar[symbol]:\n", " new_expansion_string = exp_string(expansion).replace(old_symbol, new_symbol)\n", " if len(exp_opts(expansion)) > 0:\n", " new_expansion = (new_expansion_string, exp_opts(expansion))\n", " else:\n", " new_expansion = new_expansion_string\n", " new_expansions.append(new_expansion)\n", " \n", " new_grammar[symbol] = new_expansions\n", " \n", " # Remove unused parts\n", " for nonterminal in unreachable_nonterminals(new_grammar):\n", " del new_grammar[nonterminal]\n", "\n", " return new_grammar" ] }, { "cell_type": "code", "execution_count": 127, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "class GUIFuzzer(GUIFuzzer): \n", " def update_existing_state(self):\n", " if self.log_gui_exploration:\n", " print(\"In existing state\", self.states_seen[self.state])\n", "\n", " if self.state_symbol != self.states_seen[self.state]:\n", " if self.log_gui_exploration:\n", " print(\"Replacing expected state %s by %s\" %\n", " (self.state_symbol, self.states_seen[self.state]))\n", " \n", " new_grammar = replace_symbol(self.grammar, self.state_symbol, \n", " self.states_seen[self.state])\n", " self.state_symbol = self.states_seen[self.state]\n", " self.set_grammar(new_grammar)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "This concludes our definitions for `GUIFuzzer`. We can now put it to use, enabling its logging mechanisms to see what it is doing." ] }, { "cell_type": "code", "execution_count": 128, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "gui_driver.get(httpd_url)" ] }, { "cell_type": "code", "execution_count": 129, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "gui_fuzzer = GUIFuzzer(gui_driver, log_gui_exploration=True, disp_gui_exploration=True)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Running it the first time yields a new state:" ] }, { "cell_type": "code", "execution_count": 130, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Action fill('zip', '98')\n", "fill('city', 'S')\n", "fill('email', 'qj@F')\n", "fill('name', 'Z')\n", "check('terms', True)\n", "submit('submit') -> \n" ] }, { "data": { "image/png": "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AFggQAMAAAAAYIEADQAAAACABQI0AAAAAAAWCNAAAAAAAFggQAMAAAAAYIEADQAAAACABQI0AAAAAAAWCNAAAAAAAFggQAMAAAAAYIEADQAAAACABQI0AAAAAAAWCNAAAAAAAFggQAMAAAAAYIEADQAAAACABQI0AAAAAAAWCNAAAAAAAFggQAMAAAAAYIEADQAAAACABQI0AAAAAAAWCNAAAAAAAFggQAMAAAAAYIEADQAAAACABQI0AAAAAAAWCNAAAAAAAFggQAMAAAAAYIEADQAAAACABQI0AAAAAAAWCNAAAAAAAFggQAMAAAAAYIEADQAAAACABQI0AAAAAAAWCNAAAAAAAFggQAMAAAAAYIEADQAAAACABQI0AAAAAAAWCNAAAAAAAFggQAMAAAAAYIEADQAAAACABQI0AAAAAAAWCNAAAAAAAFggQAMAAAAAYIEADQAAAACABQI0AAAAAAAWCNAAAAAAAFggQAMAAAAAYIEADQAAAACABQI0AAAAAAAWCNAAAAAAAFggQAMAAAAAYIEADQAAAACABQI0AAAAAAAWCNAAAAAAAFggQAMAAAAAYIEADQAAAACABQI0AAAAAAAWCNAAAAAAAFggQAMAAAAAYIEADQAAAACABQI0AAAAAAAWCNAAAAAAAFggQAMAAAAAYIEADQAAAACABQI0AAAAAAAWCNAAAAAAAFggQAMAAAAAYIEADQAAAACABQI0AAAAAAAWCNAAAAAAAFggQAMAAAAAYIEADQAAAACABQI0AAAAAAAWCNAAAAAAAFggQAMAAAAAYIEADQAAAACABQI0AAAAAAAW/j+rCbHUp1rVLgAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "In new state frozenset({\"click('order form')\"})\n" ] }, { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "%3\n", "\n", "\n", "\n", "start\n", "\n", "<start>\n", "\n", "\n", "\n", "state\n", "\n", "<state>\n", "\n", "\n", "\n", "start->state\n", "\n", "\n", "\n", "\n", "\n", "state-1\n", "\n", "<state-1>\n", "\n", "\n", "\n", "state->state-1\n", "\n", "\n", "click('terms and conditions')\n", "\n", "\n", "\n", "state-2\n", "\n", "<state-2>\n", "\n", "\n", "\n", "state->state-2\n", "\n", "\n", "fill('zip', '<number>')\n", "fill('city', '<text>')\n", "fill('email', '<email>')\n", "fill('name', '<text>')\n", "check('terms', <boolean>)\n", "submit('submit')\n", "\n", "\n", "\n", "end\n", "\n", "<end>\n", "\n", "\n", "\n", "state->end\n", "\n", "\n", "\n", "\n", "\n", "unexplored\n", "\n", "<unexplored>\n", "\n", "\n", "\n", "state-1->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-2->end\n", "\n", "\n", "\n", "\n", "\n", "state-3\n", "\n", "<state-3>\n", "\n", "\n", "\n", "state-2->state-3\n", "\n", "\n", "click('order form')\n", "\n", "\n", "\n", "state-3->unexplored\n", "\n", "\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "None" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "('', 'PASS')" ] }, "execution_count": 130, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gui_fuzzer.run(gui_runner)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "The next actions fill out the order form." ] }, { "cell_type": "code", "execution_count": 131, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Action click('terms and conditions') -> \n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "In new state frozenset({\"ignore('Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.')\", \"click('order form')\"})\n" ] }, { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "%3\n", "\n", "\n", "\n", "start\n", "\n", "<start>\n", "\n", "\n", "\n", "state\n", "\n", "<state>\n", "\n", "\n", "\n", "start->state\n", "\n", "\n", "\n", "\n", "\n", "state-1\n", "\n", "<state-1>\n", "\n", "\n", "\n", "state->state-1\n", "\n", "\n", "click('terms and conditions')\n", "\n", "\n", "\n", "state-2\n", "\n", "<state-2>\n", "\n", "\n", "\n", "state->state-2\n", "\n", "\n", "fill('zip', '<number>')\n", "fill('city', '<text>')\n", "fill('email', '<email>')\n", "fill('name', '<text>')\n", "check('terms', <boolean>)\n", "submit('submit')\n", "\n", "\n", "\n", "end\n", "\n", "<end>\n", "\n", "\n", "\n", "state->end\n", "\n", "\n", "\n", "\n", "\n", "state-1->end\n", "\n", "\n", "\n", "\n", "\n", "state-4\n", "\n", "<state-4>\n", "\n", "\n", "\n", "state-1->state-4\n", "\n", "\n", "click('order form')\n", "\n", "\n", "\n", "state-2->end\n", "\n", "\n", "\n", "\n", "\n", "state-3\n", "\n", "<state-3>\n", "\n", "\n", "\n", "state-2->state-3\n", "\n", "\n", "click('order form')\n", "\n", "\n", "\n", "unexplored\n", "\n", "<unexplored>\n", "\n", "\n", "\n", "state-4->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-3->unexplored\n", "\n", "\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "None" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "('', 'PASS')" ] }, "execution_count": 131, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gui_fuzzer.run(gui_runner)" ] }, { "cell_type": "code", "execution_count": 132, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Action click('terms and conditions')\n", "click('order form') -> \n" ] }, { "data": { "image/png": "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V65cwfLly1VYlvtaVFQU4uLikJ6ejgMHDrgaCoyIiIiIyBEDNBEREREREZELDNBERERERERELjBAExEREREREbnAAE1ERERERETkAgM0ERERERERkQsM0EREREREREQuMEATERERERERucAATUREREREROQCAzQRERERERGRCwzQRERERPkW9TsAACAASURBVERERC4wQBMRERERERG5wABNRERERERE5AIDNBEREREREZELDNBERERERERELjBAExEREREREbnAAE1ERERERETkAgM0ERERERERkQsM0EREREREREQuMEATERERERERucAATUREREREROQCAzQRERERERGRCwzQRERERERERC4wQBMRERERERG5wABNRERERERE5AIDNBEREREREZELDNBERESfl2AwCJ/Ph/7+fvT19eH9+/csLCwTvFTWB4dVHr4O4L80Ag1tAXT3B8f69Eb0+zfeAvTAwIBtCQQChukGBwct04y0t2/f4smTJ2Gn8/l8tss8ODgY8nONjY3Izc3Fzz//PFKLTABqa2uRn58/1otBnwGnY7CiogJnzpz5JOcVGp7xtE38fj86Ozvx9u1bNDQ0oL6+Hq9fv8arV69YWFgmcPmL7EF8sd+Hv8ge/FD2Dxr/bVNmHBzE/JOD2FbkR/HDoRAdDDJIEzkaTwG6ra0NHo8HQghDmTp1Kh48eGCYduXKlYZpPR4PHj16NGLL0tvbC03TIITAw4cPQ067bt062+WWJTExEd988w3a2toAAKWlpYiPj1fv5+TkjNhyT2Q7duxAdHQ0hBCIi4sb68Wh37FQx2AgEFDH/pkzZ8ZwKUkaT9skGAyip6cHL1++xPPnz9Hd3c0LXSICACzI9RnLaR8Wml+zKf8x14e//Ucf0o8O4u9O+/DLswD8gfDfRzRhjacADQw9gf7666/Vha2mafD5fLbT7tu3D0IILFmyBH6/f0SXo6KiQi2Dm6eZL168UNMnJyejvr4eZWVlOHjwoLrw0zQNtbW18Pl8ePPmjQp7DNAjo7e3F99++y2EEJg0adJYL86IGxgYQFdX11gvxrgQ7hhMTk6Gpmm4f//+J12Od+/efdL5jyejtU0+tUAggObmZtTV1Y31ohDR78z8U37MP+lTJeOkDxn/+Nu/T/1W/nHov+p1/fT/6MNfHfZh21U/+gZ5Y47I0XgL0MDQ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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "In existing state \n", "Replacing expected state by \n" ] }, { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "%3\n", "\n", "\n", "\n", "start\n", "\n", "<start>\n", "\n", "\n", "\n", "state\n", "\n", "<state>\n", "\n", "\n", "\n", "start->state\n", "\n", "\n", "\n", "\n", "\n", "state-1\n", "\n", "<state-1>\n", "\n", "\n", "\n", "state->state-1\n", "\n", "\n", "click('terms and conditions')\n", "\n", "\n", "\n", "state-2\n", "\n", "<state-2>\n", "\n", "\n", "\n", "state->state-2\n", "\n", "\n", "fill('zip', '<number>')\n", "fill('city', '<text>')\n", "fill('email', '<email>')\n", "fill('name', '<text>')\n", "check('terms', <boolean>)\n", "submit('submit')\n", "\n", "\n", "\n", "end\n", "\n", "<end>\n", "\n", "\n", "\n", "state->end\n", "\n", "\n", "\n", "\n", "\n", "state-1->state\n", "\n", "\n", "click('order form')\n", "\n", "\n", "\n", "state-1->end\n", "\n", "\n", "\n", "\n", "\n", "state-2->end\n", "\n", "\n", "\n", "\n", "\n", "state-3\n", "\n", "<state-3>\n", "\n", "\n", "\n", "state-2->state-3\n", "\n", "\n", "click('order form')\n", "\n", "\n", "\n", "unexplored\n", "\n", "<unexplored>\n", "\n", "\n", "\n", "state-3->unexplored\n", "\n", "\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "None" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "('', 'PASS')" ] }, "execution_count": 132, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gui_fuzzer.run(gui_runner)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "At this point, our GUI model is fairly complete already. In order to systematically cover _all_ states, random exploration is not efficient enough, though." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Covering States\n", "\n", "During exploration as well as during testing, we want to _cover_ all states and transitions between states. How can we achieve this?" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "It turns out that _we already have this._ Our `GrammarCoverageFuzzer` from the [chapter on coverage-based grammar testing](GrammarCoverageFuzzer.ipynb) strives to systematically _cover all expansion alternatives_ in a grammar. In the finite state model, these expansion alternatives translate into transitions between states. Hence, applying the coverage strategy from `GrammarCoverageFuzzer` to our state grammars would automatically cover one transition after another." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "How do we get these features into `GUIFuzzer`? Using _multiple inheritance_, we can create a class `GUICoverageFuzzer` which combines the `run()` method from `GUIFuzzer` with the coverage choices from `GrammarCoverageFuzzer`." ] }, { "cell_type": "code", "execution_count": 133, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "from GrammarCoverageFuzzer import GrammarCoverageFuzzer" ] }, { "cell_type": "code", "execution_count": 134, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "from fuzzingbook_utils import inheritance_conflicts" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Since the `__init__()` constructor is defined in both superclasses, we need to define our own constructor that serves both:" ] }, { "cell_type": "code", "execution_count": 135, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "['__init__']" ] }, "execution_count": 135, "metadata": {}, "output_type": "execute_result" } ], "source": [ "inheritance_conflicts(GUIFuzzer, GrammarCoverageFuzzer)" ] }, { "cell_type": "code", "execution_count": 136, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "class GUICoverageFuzzer(GUIFuzzer, GrammarCoverageFuzzer):\n", " def __init__(self, *args, **kwargs):\n", " GUIFuzzer.__init__(self, *args, **kwargs)\n", " self.reset_coverage()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "With `GUICoverageFuzzer`, we can set up a method `explore_all()` that keeps on running the fuzzer until there are no unexplored states anymore:" ] }, { "cell_type": "code", "execution_count": 137, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "class GUICoverageFuzzer(GUICoverageFuzzer): \n", " def explore_all(self, runner, max_actions=100):\n", " actions = 0\n", " while GUIGrammarMiner.UNEXPLORED_STATE in self.grammar and actions < max_actions:\n", " actions += 1\n", " if self.log_gui_exploration:\n", " print(\"Run #\" + repr(actions))\n", " try:\n", " self.run(runner)\n", " except ElementClickInterceptedException:\n", " pass\n", " except ElementNotInteractableException:\n", " pass\n", " except NoSuchElementException:\n", " pass" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Let us use this to fully explore our Web server:" ] }, { "cell_type": "code", "execution_count": 138, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "gui_driver.get(httpd_url)" ] }, { "cell_type": "code", "execution_count": 139, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "gui_fuzzer = GUICoverageFuzzer(gui_driver)" ] }, { "cell_type": "code", "execution_count": 140, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "gui_fuzzer.explore_all(gui_runner)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Success! We have covered all states:" ] }, { "cell_type": "code", "execution_count": 141, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "%3\n", "\n", "\n", "\n", "start\n", "\n", "<start>\n", "\n", "\n", "\n", "state\n", "\n", "<state>\n", "\n", "\n", "\n", "start->state\n", "\n", "\n", "\n", "\n", "\n", "state-1\n", "\n", "<state-1>\n", "\n", "\n", "\n", "state->state-1\n", "\n", "\n", "click('terms and conditions')\n", "\n", "\n", "\n", "state-2\n", "\n", "<state-2>\n", "\n", "\n", "\n", "state->state-2\n", "\n", "\n", "fill('zip', '<number>')\n", "fill('city', '<text>')\n", "fill('email', '<email>')\n", "fill('name', '<text>')\n", "check('terms', <boolean>)\n", "submit('submit')\n", "\n", "\n", "\n", "end\n", "\n", "<end>\n", "\n", "\n", "\n", "state->end\n", "\n", "\n", "\n", "\n", "\n", "state-1->state\n", "\n", "\n", "click('order form')\n", "\n", "\n", "\n", "state-1->end\n", "\n", "\n", "\n", "\n", "\n", "state-2->state\n", "\n", "\n", "click('order form')\n", "\n", "\n", "\n", "state-2->end\n", "\n", "\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fsm_diagram(gui_fuzzer.grammar)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "We can retrieve the expansions covered so far, which of course cover all states." ] }, { "cell_type": "code", "execution_count": 142, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "text/plain": [ "{' -> False',\n", " ' -> True',\n", " ' -> ',\n", " ' -> ',\n", " ' -> ',\n", " ' -> 0',\n", " ' -> 1',\n", " ' -> 2',\n", " ' -> 3',\n", " ' -> 5',\n", " ' -> 6',\n", " ' -> 8',\n", " ' -> 9',\n", " ' -> ',\n", " ' -> ',\n", " ' -> @',\n", " ' -> ',\n", " ' -> A',\n", " ' -> C',\n", " ' -> D',\n", " ' -> E',\n", " ' -> F',\n", " ' -> H',\n", " ' -> I',\n", " ' -> K',\n", " ' -> L',\n", " ' -> N',\n", " ' -> R',\n", " ' -> S',\n", " ' -> T',\n", " ' -> U',\n", " ' -> V',\n", " ' -> X',\n", " ' -> Y',\n", " ' -> Z',\n", " ' -> a',\n", " ' -> b',\n", " ' -> c',\n", " ' -> d',\n", " ' -> e',\n", " ' -> f',\n", " ' -> j',\n", " ' -> m',\n", " ' -> n',\n", " ' -> o',\n", " ' -> q',\n", " ' -> r',\n", " ' -> y',\n", " ' -> z',\n", " ' -> ',\n", " ' -> ',\n", " ' -> ',\n", " ' -> .',\n", " ' -> ',\n", " ' -> ',\n", " ' -> ',\n", " \" -> click('order form')\\n\",\n", " ' -> ',\n", " ' -> ',\n", " \" -> click('order form')\\n\",\n", " \" -> click('order form')\\n\",\n", " ' -> ',\n", " ' -> ',\n", " ' -> ',\n", " \" -> click('terms and conditions')\\n\",\n", " \" -> fill('zip', '')\\nfill('city', '')\\nfill('email', '')\\nfill('name', '')\\ncheck('terms', )\\nsubmit('submit')\\n\",\n", " ' -> ',\n", " ' -> ',\n", " ' -> ',\n", " ' -> '}" ] }, "execution_count": 142, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gui_fuzzer.covered_expansions" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Still, we haven't seen all expansions covered. A few digits and letters remain to be used." ] }, { "cell_type": "code", "execution_count": 143, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "text/plain": [ "{' -> 4',\n", " ' -> 7',\n", " ' -> B',\n", " ' -> G',\n", " ' -> J',\n", " ' -> M',\n", " ' -> O',\n", " ' -> P',\n", " ' -> Q',\n", " ' -> W',\n", " ' -> g',\n", " ' -> h',\n", " ' -> i',\n", " ' -> k',\n", " ' -> l',\n", " ' -> p',\n", " ' -> s',\n", " ' -> t',\n", " ' -> u',\n", " ' -> v',\n", " ' -> w',\n", " ' -> x',\n", " ' -> ',\n", " ' -> !',\n", " \" -> click('order form')\\n\"}" ] }, "execution_count": 143, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gui_fuzzer.missing_expansion_coverage()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Running the fuzzer again and again will eventually cover these expansions too, leading to letter and digit coverage within the order form." ] }, { "cell_type": "markdown", "metadata": { "button": false, "new_sheet": false, "run_control": { "read_only": false }, "slideshow": { "slide_type": "slide" } }, "source": [ "## Exploring Large Sites\n", "\n", "Our GUI fuzzer is robust enough to handle exploration even on nontrivial sites such as [fuzzingbook.org](https://www.fuzzingbook.org). Let us demonstrate this:" ] }, { "cell_type": "code", "execution_count": 144, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "gui_driver.get(\"https://www.fuzzingbook.org/html/Fuzzer.html\")" ] }, { "cell_type": "code", "execution_count": 145, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "image/png": "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u8BERERERETkuZyRJ20FaqUgbQrQtsKzXHBW2qCmpia72CoGERERERERDW+DyZi2wrRckJbKyZIBWio8SwVnNRvS2Nioir3FICIiIiIiouHDGdlSKlBLBWm5EC2oDc9KwVm8wg0NDXZTWwwiIiIiIiIafgabM9UEaaUQLdgKz5ZnnS2Ds5AzSKIAACAASURBVJoNqa+vJyIiIiIiIhoSagK1XJC2PBttGaIFe8KzUnCWWvm6ujqbNBoNERERERERkSpKGVNNqJYK0mpCtFmAlrts2zI8y4VmtaG4traWiIiIiIiIaFDUhm25MG0rRFtezm0K0FJnn+0Jz5ah2bgxNTU1RERERERERENKKmCLg7S9IdqYmQXLs89qwrNUcJYKzNXV1SZVVVU2iT9LREREREREJGZPppQK1LaCtNoQLcidfZYKz3q9noiIiIiIiMinyIVoyQBt6+yz+MyzuzeKiIiIiIiIyNksz0TLnYWWDNBS4bm+vt7tG0VERERERETkbFKXc0udhTYFaKWzzwzQRERERERE5ItsBWhxiBbUnn2uq6tz+0YREREREREROZtxYDGls9CKAdo4OplGo3H7RhERERERERE5m0ajMRuZWzFAG09NG0cdszz7zABNREREREREvkj8eCtjFjZmY2NWNgVo8f3PUpdvG5/z7O6NIiIiIiIiInI243OipS7jFt8HLShdvm08+1xTU+P2jSIiIiIiIiJytpqaGquz0FKXcTNAExERERER0bA2qAAtdfk2AzQRERERERH5opqaGsnLuG0GaKkBxBigiYiIiIiIyJfZCtDG+6BNAdrWCNzGy7erq6vdvlFEREREREREzlZdXW26jNvWSNxWAVru/mcGaCIiIiIiIvJF4gAtdR80AzQRERERERGR3o4ALfcMaMsAXVVV5faNIiIiIiIiInK2qqoq+wK00iOsGKCJiIiIiIjIFykFaONI3AzQRERERERENKw5LUAbH2HFAE1ERERERES+yBiga2trGaCJiIiIiIiI5DBAExEREREREanglACt0WgYoImIiIiIiMiniQO0RqNhgCYiIiIiIiKSYneAtgzRlgG6urra7RtFRERERERE5GzV1dVWAdoyPDNAExERERER0bDHAE1ERERERESkAgM0ERERERERkQoM0EREREREREQqMEATERERERERqcAATURERERERKQCAzQRERERERGRCgzQRERERERERCowQBMRERERERGpwABNREREREREpAIDNBEREREREZEKDNBEREREREREKjBAExEREREREanAAE1ERERERESkAgM0ERERERERkQoM0EREREREREQqMEATERERERERqcAATURERERERKQCAzQRERERERGRCgzQRERERERERCowQBMRERERERGpwABNREREREREpAIDNBEREREREZEKDNBEREREREREKjBAExEREREREanAAE1ERERERESkAgM0ERERERERkQoM0EREREREREQqMEATERERERERqcAATURERERERKQCAzQRERERERGRCgzQRERERERERCowQBMRERERERGpwABNREREREREpAIDNBEREREREZEKDNBEREREREREKjBAExEREREREanAAE1ERERERESkAgM0ERERERERkQoM0EREREREREQqMEATERERERERqcAATURERERERKQCAzQRERERERGRCgzQRERERERERCowQBMRERERERGpwABNREREREREpAIDNBEREREREZEKDNBEREREREREKjBAExEREREREanAAE1ERERERESkAgM0eZW28jJkrV2O5Hkh+OHF5xAfEoysNaFozMly+7oReZLmonyUHNiHnE0f4NKbryJ+5iREjX8CEYFjEBk0FlHjn0D0c08h4eUpLl0PHrO+wVPak16vhyY1CZeXLUbCrKn44cXnkDhnGnI//gidmlq314mIiHzfsArQOq0WDVczXYpf4K5TFRuJiIDRsm4eP+L2dRwu2itv231sNF3LQXNxAdrKy9BRXYmelha3b4cvu/TmqzaPF6Oo8U+4bB14zDpXZ50GraUlQ66vp8cj2pNer0fOpg9klx0ZNBZ3CvLcvp+IiMi3DasA3VyYr6oDMBgpr81y+3b6qujnnrJZ+8igsejr7nL7eg4HKQtmO+2YiZ7wNOJDgnFl5du4ff4Uejs73L59viBu+kS3Bx4es84VMynA5d9hUkqP7PeI9tRaWqK4/KRXZrp9PxERkW8bVgG6MibC5R2NxDkvun07fVFnnUZV/Xn2YWj88OJzrjuOAscga+1ydN9pcvt2erPIZ/zdGnh4zDpf1Pgn3BKgC7/a6fb2pNfrUX7ymOLyI4PGun0/ERGRbxtWAbo4PIwB2ks1ZF9RVf/qhFi3r+tw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\n", "text/plain": [ "" ] }, "execution_count": 145, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Image(gui_driver.get_screenshot_as_png())" ] }, { "cell_type": "code", "execution_count": 146, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "book_runner = GUIRunner(gui_driver)" ] }, { "cell_type": "code", "execution_count": 147, "metadata": { "button": false, "new_sheet": false, "run_control": { "read_only": false }, "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "book_fuzzer = GUICoverageFuzzer(gui_driver, log_gui_exploration=True) # , disp_gui_exploration=True)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "We explore the first few states of the site, defined in `ACTIONS`:" ] }, { "cell_type": "code", "execution_count": 148, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "ACTIONS = 5" ] }, { "cell_type": "code", "execution_count": 149, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Run #1\n", "Action click('chapter on information flow') -> \n", "Run #2\n", "Action click('"Introduction to Software Testing"') -> \n", "In new state frozenset({\"ignore('fuzzingbook_utils')\", \"ignore('Pezz\\xc3\\xa8 et al, 2008.')\", \"click('Cite')\", \"ignore('MIT License')\", \"click('ExpectError')\", \"click('Timer')\", \"ignore('')\", \"ignore('Imprint')\", \"ignore('Beizer et al, 1990.')\", \"ignore('Use the notebook')\", \"ignore('Shellsort')\", \"ignore('Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License')\", \"ignore('random')\", \"ignore('Last change: 2019-03-13 21:14:41+01:00')\", \"click('use fuzzing to test programs with random inputs')\", \"ignore('Newton\\xe2\\x80\\x93Raphson method')\", \"click('')\", \"click('Generating Software Tests')\", \"ignore('Python tutorial')\", \"ignore('Myers et al, 2004.')\", \"click('Timer module')\"})\n", "Run #3\n", "Action click('runtime verification') -> \n", "Run #4\n", "Action click('Generating Software Tests') -> \n", "In new state frozenset({\"click('I\\nWhetting Your Appetite')\", \"click('Appendices')\", \"click('V\\nDomain-Specific Fuzzing')\", \"click('Cite')\", \"click('chapter on information flow')\", \"click('IV\\nSemantical Fuzzing')\", \"ignore('MyPy')\", \"click('Sitemap')\", \"click('About this book')\", \"click('VI\\nManaging Fuzzing')\", \"click('Index (beta)')\", \"click('Intro_Testing')\", \"click('chapter on testing')\", \"ignore('subprocess')\", \"click('More Chapters Coming!')\", \"ignore('Last change: 2019-05-03 15:34:23+02:00')\", \"ignore('Use the notebook')\", \"ignore('LLVM Address Sanitizer')\", \"ignore('XKCD comic')\", \"ignore('Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License')\", \"ignore('Imprint')\", \"click('chapter on oracles')\", \"click('')\", \"click('Generating Software Tests')\", \"click('runtime verification')\", \"ignore('tempfile')\", \"ignore('HeartBleed bug')\", \"click('reduce failing inputs for efficient debugging')\", \"ignore('fuzzingbook_utils')\", \"click('use mutations on existing inputs to get more valid inputs')\", \"click('II\\nLexical Fuzzing')\", \"ignore('MIT License')\", \"click('ExpectError')\", \"ignore('Takanen et al, 2008.')\", \"click('use grammars to specify the input format and thus get many more valid inputs')\", \"ignore('Miller et al, 1990.')\", \"ignore('')\", \"ignore('HeartBleed announcement page')\", \"ignore('random')\", \"click('Introduction to Testing')\", \"ignore('assignment')\", \"ignore('os')\", \"click('"Introduction to Software Testing"')\", \"ignore('Python tutorial')\", \"ignore('typing')\", \"click('III\\nSyntactical Fuzzing')\", \"ignore('red-black tree')\", \"click('discussed above')\"})\n", "Run #5\n", "Action -> \n" ] } ], "source": [ "book_fuzzer.explore_all(book_runner, max_actions=ACTIONS)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "After the first `ACTIONS` actions already, we can see that the finite state model is quite complex, with dozens of transitions still left to explore. Most of the yet unexplored states will eventually merge with existing states, yielding one state per chapter. Still, following _all_ links on _all_ pages will take quite some time." ] }, { "cell_type": "code", "execution_count": 150, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "%3\n", "\n", "\n", "\n", "start\n", "\n", "<start>\n", "\n", "\n", "\n", "state\n", "\n", "<state>\n", "\n", "\n", "\n", "start->state\n", "\n", "\n", "\n", "\n", "\n", "state-1\n", "\n", "<state-1>\n", "\n", "\n", "\n", "state->state-1\n", "\n", "\n", "click('Cite')\n", "\n", "\n", "\n", "state-2\n", "\n", "<state-2>\n", "\n", "\n", "\n", "state->state-2\n", "\n", "\n", "click('chapter on information flow')\n", "\n", "\n", "\n", "state-3\n", "\n", "<state-3>\n", "\n", "\n", "\n", "state->state-3\n", "\n", "\n", "click('Intro_Testing')\n", "\n", "\n", "\n", "state-4\n", "\n", "<state-4>\n", "\n", "\n", "\n", "state->state-4\n", "\n", "\n", "click('chapter on testing')\n", "\n", "\n", "\n", "state-5\n", "\n", "<state-5>\n", "\n", "\n", "\n", "state->state-5\n", "\n", "\n", "click('chapter on oracles')\n", "\n", "\n", "\n", "state-6\n", "\n", "<state-6>\n", "\n", "\n", "\n", "state->state-6\n", "\n", "\n", "click('')\n", "\n", "\n", "\n", "state-7\n", "\n", "<state-7>\n", "\n", "\n", "\n", "state->state-7\n", "\n", "\n", "click('Generating Software Tests')\n", "\n", "\n", "\n", "state-8\n", "\n", "<state-8>\n", "\n", "\n", "\n", "state->state-8\n", "\n", "\n", "click('runtime verification')\n", "\n", "\n", "\n", "state-9\n", "\n", "<state-9>\n", "\n", "\n", "\n", "state->state-9\n", "\n", "\n", "click('reduce failing inputs for efficient debugging')\n", "\n", "\n", "\n", "state-10\n", "\n", "<state-10>\n", "\n", "\n", "\n", "state->state-10\n", "\n", "\n", "click('use mutations on existing inputs to get more valid inputs')\n", "\n", "\n", "\n", "state-11\n", "\n", "<state-11>\n", "\n", "\n", "\n", "state->state-11\n", "\n", "\n", "click('ExpectError')\n", "\n", "\n", "\n", "state-12\n", "\n", "<state-12>\n", "\n", "\n", "\n", "state->state-12\n", "\n", "\n", "click('use grammars to specify the input format and thus get many more valid inputs')\n", "\n", "\n", "\n", "state-13\n", "\n", "<state-13>\n", "\n", "\n", "\n", "state->state-13\n", "\n", "\n", "click('Introduction to Testing')\n", "\n", "\n", "\n", "state-14\n", "\n", "<state-14>\n", "\n", "\n", "\n", "state->state-14\n", "\n", "\n", "click('&quot;Introduction to Software Testing&quot;')\n", "\n", "\n", "\n", "state-15\n", "\n", "<state-15>\n", "\n", "\n", "\n", "state->state-15\n", "\n", "\n", "click('discussed above')\n", "\n", "\n", "\n", "end\n", "\n", "<end>\n", "\n", "\n", "\n", "state->end\n", "\n", "\n", "\n", "\n", "\n", "unexplored\n", "\n", "<unexplored>\n", "\n", "\n", "\n", "state-1->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-2->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-3->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-4->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-5->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-6->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-7->end\n", "\n", "\n", "\n", "\n", "\n", "state-23\n", "\n", "<state-23>\n", "\n", "\n", "\n", "state-7->state-23\n", "\n", "\n", "click('I\n", "Whetting Your Appetite')\n", "\n", "\n", "\n", "state-24\n", "\n", "<state-24>\n", "\n", "\n", "\n", "state-7->state-24\n", "\n", "\n", "click('Appendices')\n", "\n", "\n", "\n", "state-25\n", "\n", "<state-25>\n", "\n", "\n", "\n", "state-7->state-25\n", "\n", "\n", "click('V\n", "Domain-Specific Fuzzing')\n", "\n", "\n", "\n", "state-26\n", "\n", "<state-26>\n", "\n", "\n", "\n", "state-7->state-26\n", "\n", "\n", "click('Cite')\n", "\n", "\n", "\n", "state-27\n", "\n", "<state-27>\n", "\n", "\n", "\n", "state-7->state-27\n", "\n", "\n", "click('chapter on information flow')\n", "\n", "\n", "\n", "state-28\n", "\n", "<state-28>\n", "\n", "\n", "\n", "state-7->state-28\n", "\n", "\n", "click('IV\n", "Semantical Fuzzing')\n", "\n", "\n", "\n", "state-29\n", "\n", "<state-29>\n", "\n", "\n", "\n", "state-7->state-29\n", "\n", "\n", "click('Sitemap')\n", "\n", "\n", "\n", "state-30\n", "\n", "<state-30>\n", "\n", "\n", "\n", "state-7->state-30\n", "\n", "\n", "click('About this book')\n", "\n", "\n", "\n", "state-31\n", "\n", "<state-31>\n", "\n", "\n", "\n", "state-7->state-31\n", "\n", "\n", "click('VI\n", "Managing Fuzzing')\n", "\n", "\n", "\n", "state-32\n", "\n", "<state-32>\n", "\n", "\n", "\n", "state-7->state-32\n", "\n", "\n", "click('Index (beta)')\n", "\n", "\n", "\n", "state-33\n", "\n", "<state-33>\n", "\n", "\n", "\n", "state-7->state-33\n", "\n", "\n", "click('Intro_Testing')\n", "\n", "\n", "\n", "state-34\n", "\n", "<state-34>\n", "\n", "\n", "\n", "state-7->state-34\n", "\n", "\n", "click('chapter on testing')\n", "\n", "\n", "\n", "state-35\n", "\n", "<state-35>\n", "\n", "\n", "\n", "state-7->state-35\n", "\n", "\n", "click('More Chapters Coming!')\n", "\n", "\n", "\n", "state-36\n", "\n", "<state-36>\n", "\n", "\n", "\n", "state-7->state-36\n", "\n", "\n", "click('chapter on oracles')\n", "\n", "\n", "\n", "state-37\n", "\n", "<state-37>\n", "\n", "\n", "\n", "state-7->state-37\n", "\n", "\n", "click('')\n", "\n", "\n", "\n", "state-38\n", "\n", "<state-38>\n", "\n", "\n", "\n", "state-7->state-38\n", "\n", "\n", "click('Generating Software Tests')\n", "\n", "\n", "\n", "state-39\n", "\n", "<state-39>\n", "\n", "\n", "\n", "state-7->state-39\n", "\n", "\n", "click('runtime verification')\n", "\n", "\n", "\n", "state-40\n", "\n", "<state-40>\n", "\n", "\n", "\n", "state-7->state-40\n", "\n", "\n", "click('reduce failing inputs for efficient debugging')\n", "\n", "\n", "\n", "state-41\n", "\n", "<state-41>\n", "\n", "\n", "\n", "state-7->state-41\n", "\n", "\n", "click('use mutations on existing inputs to get more valid inputs')\n", "\n", "\n", "\n", "state-42\n", "\n", "<state-42>\n", "\n", "\n", "\n", "state-7->state-42\n", "\n", "\n", "click('II\n", "Lexical Fuzzing')\n", "\n", "\n", "\n", "state-43\n", "\n", "<state-43>\n", "\n", "\n", "\n", "state-7->state-43\n", "\n", "\n", "click('ExpectError')\n", "\n", "\n", "\n", "state-44\n", "\n", "<state-44>\n", "\n", "\n", "\n", "state-7->state-44\n", "\n", "\n", "click('use grammars to specify the input format and thus get many more valid inputs')\n", "\n", "\n", "\n", "state-45\n", "\n", "<state-45>\n", "\n", "\n", "\n", "state-7->state-45\n", "\n", "\n", "click('Introduction to Testing')\n", "\n", "\n", "\n", "state-46\n", "\n", "<state-46>\n", "\n", "\n", "\n", "state-7->state-46\n", "\n", "\n", "click('&quot;Introduction to Software Testing&quot;')\n", "\n", "\n", "\n", "state-47\n", "\n", "<state-47>\n", "\n", "\n", "\n", "state-7->state-47\n", "\n", "\n", "click('III\n", "Syntactical Fuzzing')\n", "\n", "\n", "\n", "state-48\n", "\n", "<state-48>\n", "\n", "\n", "\n", "state-7->state-48\n", "\n", "\n", "click('discussed above')\n", "\n", "\n", "\n", "state-8->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-9->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-10->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-11->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-12->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-13->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-14->end\n", "\n", "\n", "\n", "\n", "\n", "state-16\n", "\n", "<state-16>\n", "\n", "\n", "\n", "state-14->state-16\n", "\n", "\n", "click('Cite')\n", "\n", "\n", "\n", "state-17\n", "\n", "<state-17>\n", "\n", "\n", "\n", "state-14->state-17\n", "\n", "\n", "click('ExpectError')\n", "\n", "\n", "\n", "state-18\n", "\n", "<state-18>\n", "\n", "\n", "\n", "state-14->state-18\n", "\n", "\n", "click('Timer')\n", "\n", "\n", "\n", "state-19\n", "\n", "<state-19>\n", "\n", "\n", "\n", "state-14->state-19\n", "\n", "\n", "click('use fuzzing to test programs with random inputs')\n", "\n", "\n", "\n", "state-20\n", "\n", "<state-20>\n", "\n", "\n", "\n", "state-14->state-20\n", "\n", "\n", "click('')\n", "\n", "\n", "\n", "state-21\n", "\n", "<state-21>\n", "\n", "\n", "\n", "state-14->state-21\n", "\n", "\n", "click('Generating Software Tests')\n", "\n", "\n", "\n", "state-22\n", "\n", "<state-22>\n", "\n", "\n", "\n", "state-14->state-22\n", "\n", "\n", "click('Timer module')\n", "\n", "\n", "\n", "state-15->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-23->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-24->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-25->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-26->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-27->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-28->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-29->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-30->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-31->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-32->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-33->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-34->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-35->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-36->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-37->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-38->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-39->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-40->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-41->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-42->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-43->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-44->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-45->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-46->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-47->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-48->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-16->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-17->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-18->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-19->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-20->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-21->unexplored\n", "\n", "\n", "\n", "\n", "\n", "state-22->unexplored\n", "\n", "\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Inspect this graph in the notebook to see it in full glory\n", "fsm_diagram(book_fuzzer.grammar)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "We now have all the basic capabilities we need: We can automatically explore large Web sites; we can explore \"deep\" functionality by filling out forms; and we can have our coverage-based fuzzer automatcially focus on yet unexplored states. Still, there is a lot more one can do; the [exercises](#Exercises) will give you some ideas." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "We are done, so we clean up. We shut down our Web server, quit the Web driver (and the associated browser), and finally clean up temporary files left by Selenium." ] }, { "cell_type": "code", "execution_count": 151, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "httpd_process.terminate()" ] }, { "cell_type": "code", "execution_count": 152, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "gui_driver.quit()" ] }, { "cell_type": "code", "execution_count": 153, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "import os" ] }, { "cell_type": "code", "execution_count": 154, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "for temp_file in [ORDERS_DB, \"geckodriver.log\", \"ghostdriver.log\"]:\n", " if os.path.exists(temp_file):\n", " os.remove(temp_file)" ] }, { "cell_type": "markdown", "metadata": { "button": false, "new_sheet": true, "run_control": { "read_only": false }, "slideshow": { "slide_type": "slide" } }, "source": [ "## Lessons Learned\n", "\n", "* _Selenium_ is a powerful framework for interacting with user interfaces, especially Web-based user interfaces.\n", "* A _finite state model_ can encode user interface states and transitions.\n", "* Encoding user interface models into a _grammar_ integrates generating text (for forms) and generating user interactions (for navigating)\n", "* To systematically explore a user interface, cover all _state transitions_, which is equivalent to covering all _expansion alternatives_ in the equivalent grammar." ] }, { "cell_type": "markdown", "metadata": { "button": false, "new_sheet": false, "run_control": { "read_only": false }, "slideshow": { "slide_type": "slide" } }, "source": [ "## Next Steps\n", "\n", "From here, you can learn how to\n", "\n", "* [fuzz in the large](FuzzingInTheLarge.ipynb). running a myriad of fuzzers on a same system" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Background\n", "\n", "Automatic testing of graphical user interfaces is a rich field – in research as in practice.\n", "\n", "Coverage criteria for GUIs as well as how to achieve them were first discussed in \\cite{Memon2001}. Memon also introduced the concept of *GUI Ripping* \\cite{Memon2003} – the process in which the software's GUI is automatically traversed by interacting with all its user interface elements.\n", "\n", "The CrawlJax tool \\cite{Mesbah2012} uses dynamic state changes in Web user interfaces to identify candidate elements to interact with. As our approach above, it uses the set of interactable user interface elements as a state in a finite-state model.\n", "\n", "The [Alex framework](https://learnlib.github.io/alex/) uses a similar approach to learn automata for web applications. Starting from a set of test inputs, it produces a mixed-mode behavioral model of the application." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Exercises\n", "\n", "As powerful our GUI fuzzer is at this point, there are still several possibilities left for further optimization and extension. Here are some ideas to get you started. Enjoy user interface fuzzing!" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Exercise 1: Stay in Local State\n", "\n", "Rather than having each `run()` start at the very beginning, have the miner start from the current state and explore states reachable from there." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Exercise 2: Going Back\n", "\n", "Make use of the web driver `back()` method and go back to an earlier state, from which we could again start exploration. (Note that a \"back\" functionality may not be available on non-Web user interfaces.)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Exercise 3: Avoiding Bad Form Values\n", "\n", "Detect that some form values are _invalid_, such that the miner does not produce them again." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Exercise 4: Saving Form Values\n", "\n", "Save _successful_ form values, such that the tester does not have to infer them again and again." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Exercise 5: Same Names, Same States\n", "\n", "When the miner finds a link with a name it has already seen, it is likely to lead to a state already seen, too; therefore, one could give its exploration a lower priority." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Exercise 6: Combinatorial Coverage\n", "\n", "Extend the grammar miner such that for every boolean value, there is a separate value to be covered." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Exercise 7: Implicit Delays\n", "\n", "Rather than using _explicit_ (given) delays, use _implicit_ delays and wait for specific elements to appear. these elements could stem from previous explorations of the state." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Exercise 8: Oracles\n", "\n", "Extend the grammar miner such that it also produces _oracles_ – for instance, checking for the presence of specific UI elements." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Exercise 9: More UI Elements\n", "\n", "Run the miner on a Web site of your choice. Find out which other types of user interface elements and actions need to be supported." ] } ], "metadata": { "ipub": { "bibliography": "fuzzingbook.bib", "toc": true }, "kernelspec": { "display_name": "Python 3", "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.6.8" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": true, "title_cell": "", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": true }, "toc-autonumbering": false }, "nbformat": 4, "nbformat_minor": 2 }