{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# iPython Profiler\n", "\n", "IPython provides access to a wide range of functions to measure times and create profiles. The following magic IPython commands are explained here:\n", "\n", "| Command | Description |\n", "| -------------- | --------------------------------------------------------------------------------- |\n", "| `%time` | Time to execute a single statement |\n", "| `%timeit` | Average time it took to execute a single statement repeatedly |\n", "| `%prun` | Run code with the profiler |\n", "| `%lprun` | Run code with the line-by-line profiler |\n", "| `%memit` | Measure the memory usage of a single statement |\n", "| `%mprun` | Executes the code with the line-by-line memory profiler |\n", "\n", "The last four commands are not contained in IPython itself, but in the modules [line_profiler](https://github.com/pyutils/line_profiler) and [memory_profiler](https://github.com/pythonprofilers/memory_profiler).\n", "\n", "
\n", "\n", "**See also:**\n", "\n", "* [Penn Machine Learning Benchmarks](https://github.com/EpistasisLab/pmlb)\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## `%timeit` and `%time`\n", "\n", "We saw the `%timeit` line and `%%timeit` cell magic in the introduction of the magic functions in IPython magic commands. They can be used to measure the timing of the repeated execution of code snippets:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "320 ns ± 1.66 ns per loop (mean ± std. dev. of 7 runs, 1,000,000 loops each)\n" ] } ], "source": [ "%timeit sum(range(100))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that `%timeit` executes the execution multiple times in a loop. If the number of loops is not specified with `-n`, `%timeit` automatically adjusts the number so that sufficient measurement accuracy is achieved:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "71.2 ms ± 826 μs per loop (mean ± std. dev. of 7 runs, 10 loops each)\n" ] } ], "source": [ "%%timeit\n", "total = 0\n", "for i in range(1000):\n", " for j in range(1000):\n", " total += i * (-1) ** j" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sometimes repeating an operation is not the best option, for example when we have a list that we want to sort. Here we may be misled by repeated surgery. Sorting a presorted list is much faster than sorting an unsorted list, so repeating it distorts the result:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "214 μs ± 2.9 μs per loop (mean ± std. dev. of 7 runs, 1,000 loops each)\n" ] } ], "source": [ "import random\n", "\n", "\n", "L = [random.random() for i in range(100000)]\n", "%timeit L.sort()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Then the `%time` function might be a better choice. `%time` should also be the better choice for long-running commands, when short system-related delays are unlikely to affect the result:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 15.8 ms, sys: 314 μs, total: 16.1 ms\n", "Wall time: 16.4 ms\n" ] } ], "source": [ "import random\n", "\n", "\n", "L = [random.random() for i in range(100000)]\n", "%time L.sort()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sorting an already sorted list:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 4.17 ms, sys: 1 μs, total: 4.17 ms\n", "Wall time: 4.18 ms\n" ] } ], "source": [ "%time L.sort()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note how much faster the pre-sorted list is to be sorted, but also note how much longer the timing with `%time` takes compared to `%timeit`, even for the pre-sorted list. This is due to the fact that `%timeit` is doing some clever things to keep system calls from interfering with the timing. This prevents, for example, the garbage collection of Python objects that are no longer used and that could otherwise affect the time measurement. Because of this, the `%timeit` results are usually noticeably faster than the `%time` results." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Profiling for scripts: `%prun`\n", "\n", "A program is made up of many individual instructions, and sometimes it is more important to measure those instructions in context than to measure them yourself. Python includes a built-in [Code-Profiler](https://docs.python.org/3/library/profile.html). However, IPython offers a much more convenient way to use this profiler in the form of the magic function `%prun`.\n", "\n", "As an example, let’s define a simple function that does some calculations:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "def sum_of_lists(N):\n", " total = 0\n", " for i in range(5):\n", " L = [j ^ (j >> i) for j in range(N)]\n", " total += sum(L)\n", " return total" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " " ] }, { "data": { "text/plain": [ " 674 function calls (663 primitive calls) in 0.283 seconds\n", "\n", " Ordered by: internal time\n", "\n", " ncalls tottime percall cumtime percall filename:lineno(function)\n", " 1 0.128 0.128 0.137 0.137 3519952779.py:1(sum_of_lists)\n", " 14 0.072 0.005 0.076 0.005 socket.py:626(send)\n", " 2 0.033 0.016 0.097 0.048 iostream.py:276()\n", " 5 0.017 0.003 0.017 0.003 {built-in method builtins.sum}\n", " 1 0.012 0.012 0.012 0.012 {method 'execute' of 'sqlite3.Connection' objects}\n", " 2 0.008 0.004 0.008 0.004 {method 'recv' of '_socket.socket' objects}\n", " 2/1 0.007 0.003 0.000 0.000 {method 'control' of 'select.kqueue' objects}\n", " 1 0.006 0.006 0.143 0.143 :1()\n", " 5 0.000 0.000 0.000 0.000 attrsettr.py:66(_get_attr_opt)\n", " 3 0.000 0.000 0.112 0.037 base_events.py:1947(_run_once)\n", " 15 0.000 0.000 0.000 0.000 enum.py:1581(__or__)\n", " 66 0.000 0.000 0.000 0.000 enum.py:1574(_get_value)\n", " 2 0.000 0.000 0.097 0.048 zmqstream.py:583(_handle_events)\n", " 2 0.000 0.000 0.059 0.029 socket.py:703(send_multipart)\n", " 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}\n", " 143/139 0.000 0.000 0.000 0.000 {built-in method builtins.isinstance}\n", " 5 0.000 0.000 0.000 0.000 attrsettr.py:43(__getattr__)\n", " 29 0.000 0.000 0.000 0.000 enum.py:691(__call__)\n", " 1 0.000 0.000 0.020 0.020 history.py:833(_writeout_input_cache)\n", " 2 0.000 0.000 0.000 0.000 socket.py:774(recv_multipart)\n", " 1 0.000 0.000 0.000 0.000 inspect.py:3116(_bind)\n", " 5/2 0.000 0.000 0.097 0.049 events.py:87(_run)\n", " 1 0.000 0.000 0.013 0.013 selector_events.py:129(_read_from_self)\n", " 4/2 0.000 0.000 0.097 0.048 {method 'run' of '_contextvars.Context' objects}\n", " 29 0.000 0.000 0.000 0.000 enum.py:1145(__new__)\n", " 5 0.000 0.000 0.000 0.000 :1390(_handle_fromlist)\n", " 1 0.000 0.000 0.020 0.020 history.py:845(writeout_cache)\n", " 2/1 0.000 0.000 0.005 0.005 selectors.py:540(select)\n", " 7 0.000 0.000 0.000 0.000 enum.py:1592(__and__)\n", " 1 0.000 0.000 0.000 0.000 kernelbase.py:302(poll_control_queue)\n", " 3 0.000 0.000 0.000 0.000 zmqstream.py:663(_rebuild_io_state)\n", " 3 0.000 0.000 0.000 0.000 zmqstream.py:686(_update_handler)\n", " 6 0.000 0.000 0.000 0.000 typing.py:426(inner)\n", " 3 0.000 0.000 0.000 0.000 queue.py:115(empty)\n", " 1 0.000 0.000 0.000 0.000 queues.py:209(put_nowait)\n", " 1 0.000 0.000 0.000 0.000 decorator.py:199(fix)\n", " 2 0.000 0.000 0.059 0.029 iostream.py:278(_really_send)\n", " 2 0.000 0.000 0.000 0.000 {method '__exit__' of 'sqlite3.Connection' objects}\n", " 1 0.000 0.000 0.000 0.000 inspect.py:2930(apply_defaults)\n", " 2 0.000 0.000 0.097 0.048 iostream.py:157(_handle_event)\n", " 6 0.000 0.000 0.000 0.000 traitlets.py:676(__get__)\n", " 1 0.000 0.000 0.000 0.000 traitlets.py:1527(_notify_observers)\n", " 3 0.000 0.000 0.000 0.000 base_events.py:848(_call_soon)\n", " 1 0.000 0.000 0.000 0.000 queues.py:186(put)\n", " 10 0.000 0.000 0.000 0.000 {built-in method builtins.hasattr}\n", " 2 0.000 0.000 0.000 0.000 traitlets.py:3631(set)\n", " 1 0.000 0.000 0.000 0.000 {method 'send' of '_socket.socket' objects}\n", " 1 0.000 0.000 0.020 0.020 history.py:55(only_when_enabled)\n", " 2 0.000 0.000 0.000 0.000 traitlets.py:689(set)\n", " 2 0.000 0.000 0.000 0.000 traitlets.py:3474(validate)\n", " 2 0.000 0.000 0.000 0.000 traitlets.py:718(_validate)\n", " 1 0.000 0.000 0.000 0.000 _base.py:537(set_result)\n", " 1 0.000 0.000 0.000 0.000 inspect.py:3255(bind)\n", " 1 0.000 0.000 0.000 0.000 asyncio.py:225(add_callback)\n", " 3 0.000 0.000 0.000 0.000 threading.py:303(__enter__)\n", " 1 0.000 0.000 0.143 0.143 {built-in method builtins.exec}\n", " 2 0.000 0.000 0.000 0.000 traitlets.py:3624(validate_elements)\n", " 4 0.000 0.000 0.000 0.000 base_events.py:768(time)\n", " 6 0.000 0.000 0.000 0.000 traitlets.py:629(get)\n", " 5 0.000 0.000 0.000 0.000 {built-in method builtins.getattr}\n", " 16 0.000 0.000 0.000 0.000 {built-in method builtins.len}\n", " 1 0.000 0.000 0.000 0.000 queues.py:225(get)\n", " 2 0.000 0.000 0.097 0.048 zmqstream.py:556(_run_callback)\n", " 2 0.000 0.000 0.000 0.000 queues.py:322(_consume_expired)\n", " 1 0.000 0.000 0.000 0.000 queues.py:173(qsize)\n", " 4 0.000 0.000 0.000 0.000 typing.py:1443(__hash__)\n", " 1 0.000 0.000 0.000 0.000 concurrent.py:182(future_set_result_unless_cancelled)\n", " 6 0.000 0.000 0.000 0.000 {built-in method builtins.next}\n", " 2 0.000 0.000 0.000 0.000 traitlets.py:727(_cross_validate)\n", " 3 0.000 0.000 0.000 0.000 events.py:36(__init__)\n", " 2 0.000 0.000 0.097 0.048 zmqstream.py:624(_handle_recv)\n", " 1 0.000 0.000 0.000 0.000 traitlets.py:1512(_notify_trait)\n", " 2 0.000 0.000 0.000 0.000 typing.py:1665(__subclasscheck__)\n", " 2 0.000 0.000 0.000 0.000 {method 'set_result' of '_asyncio.Future' objects}\n", " 2 0.000 0.000 0.000 0.000 iostream.py:213(_is_master_process)\n", " 1 0.000 0.000 0.020 0.020 decorator.py:229(fun)\n", " 1 0.000 0.000 0.000 0.000 inspect.py:2877(args)\n", " 2 0.000 0.000 0.000 0.000 traitlets.py:708(__set__)\n", " 2 0.000 0.000 0.000 0.000 traitlets.py:2304(validate)\n", " 3 0.000 0.000 0.000 0.000 zmqstream.py:542(sending)\n", " 2 0.000 0.000 0.000 0.000 base_events.py:819(call_soon)\n", " 7 0.000 0.000 0.000 0.000 {method 'append' of 'collections.deque' objects}\n", " 8 0.000 0.000 0.000 0.000 {method 'popleft' of 'collections.deque' objects}\n", " 1 0.000 0.000 0.000 0.000 traitlets.py:1523(notify_change)\n", " 3 0.000 0.000 0.000 0.000 queue.py:267(_qsize)\n", " 3 0.000 0.000 0.000 0.000 selector_events.py:740(_process_events)\n", " 24 0.000 0.000 0.000 0.000 typing.py:2366(cast)\n", " 1 0.000 0.000 0.000 0.000 futures.py:393(_call_set_state)\n", " 5 0.000 0.000 0.000 0.000 {method 'get' of 'dict' objects}\n", " 1 0.000 0.000 0.000 0.000 threading.py:315(_acquire_restore)\n", " 2 0.000 0.000 0.000 0.000 iostream.py:216(_check_mp_mode)\n", " 1 0.000 0.000 0.097 0.097 asyncio.py:200(_handle_events)\n", " 7 0.000 0.000 0.000 0.000 {method '__exit__' of '_thread.lock' objects}\n", " 1 0.000 0.000 0.000 0.000 queues.py:317(__put_internal)\n", " 1 0.000 0.000 0.000 0.000 history.py:839(_writeout_output_cache)\n", " 10 0.000 0.000 0.000 0.000 inspect.py:2787(kind)\n", " 5 0.000 0.000 0.000 0.000 {method 'upper' of 'str' objects}\n", " 1 0.000 0.000 0.000 0.000 queues.py:312(_put)\n", " 2 0.000 0.000 0.000 0.000 {built-in method _abc._abc_subclasscheck}\n", " 5 0.000 0.000 0.000 0.000 {method 'append' of 'list' objects}\n", " 3 0.000 0.000 0.000 0.000 threading.py:306(__exit__)\n", " 1 0.000 0.000 0.000 0.000 threading.py:312(_release_save)\n", " 1 0.000 0.000 0.000 0.000 queues.py:256(get_nowait)\n", " 1 0.000 0.000 0.000 0.000 threading.py:428(notify_all)\n", " 1 0.000 0.000 0.000 0.000 base_events.py:872(call_soon_threadsafe)\n", " 1 0.000 0.000 0.000 0.000 inspect.py:2900(kwargs)\n", " 2 0.000 0.000 0.000 0.000 :121(__subclasscheck__)\n", " 1 0.000 0.000 0.000 0.000 {method 'values' of 'mappingproxy' objects}\n", " 1 0.000 0.000 0.000 0.000 _base.py:337(_invoke_callbacks)\n", " 1 0.000 0.000 0.000 0.000 ioloop.py:742(_run_callback)\n", " 3 0.000 0.000 0.000 0.000 {method 'acquire' of '_thread.lock' objects}\n", " 1 0.000 0.000 0.000 0.000 queues.py:177(empty)\n", " 2 0.000 0.000 0.000 0.000 typing.py:1374(__instancecheck__)\n", " 2 0.000 0.000 0.000 0.000 traitlets.py:3486(validate_elements)\n", " 5 0.000 0.000 0.000 0.000 zmqstream.py:538(receiving)\n", " 1 0.000 0.000 0.000 0.000 threading.py:631(clear)\n", " 3 0.000 0.000 0.000 0.000 {method 'items' of 'mappingproxy' objects}\n", " 1 0.000 0.000 0.000 0.000 selector_events.py:141(_write_to_self)\n", " 1 0.000 0.000 0.000 0.000 unix_events.py:83(_process_self_data)\n", " 1 0.000 0.000 0.000 0.000 threading.py:398(notify)\n", " 1 0.000 0.000 0.000 0.000 {method '__enter__' of '_thread.RLock' objects}\n", " 4 0.000 0.000 0.000 0.000 {built-in method time.monotonic}\n", " 4 0.000 0.000 0.000 0.000 {built-in method builtins.hash}\n", " 2 0.000 0.000 0.000 0.000 {built-in method builtins.issubclass}\n", " 3 0.000 0.000 0.000 0.000 {built-in method builtins.max}\n", " 1 0.000 0.000 0.000 0.000 {built-in method _thread.allocate_lock}\n", " 2 0.000 0.000 0.000 0.000 {built-in method _contextvars.copy_context}\n", " 4 0.000 0.000 0.000 0.000 inspect.py:3070(parameters)\n", " 2 0.000 0.000 0.000 0.000 {built-in method builtins.iter}\n", " 1 0.000 0.000 0.000 0.000 base_events.py:1932(_add_callback)\n", " 2 0.000 0.000 0.000 0.000 iostream.py:255(closed)\n", " 2 0.000 0.000 0.000 0.000 {method 'extend' of 'list' objects}\n", " 2 0.000 0.000 0.000 0.000 {built-in method posix.getpid}\n", " 2 0.000 0.000 0.000 0.000 {method '__enter__' of '_thread.lock' objects}\n", " 2 0.000 0.000 0.000 0.000 {method 'cancelled' of '_asyncio.Future' objects}\n", " 1 0.000 0.000 0.000 0.000 {method 'done' of '_asyncio.Future' objects}\n", " 1 0.000 0.000 0.000 0.000 threading.py:318(_is_owned)\n", " 1 0.000 0.000 0.000 0.000 zmqstream.py:694()\n", " 1 0.000 0.000 0.000 0.000 queues.py:309(_get)\n", " 3 0.000 0.000 0.000 0.000 base_events.py:550(_check_closed)\n", " 5 0.000 0.000 0.000 0.000 base_events.py:2045(get_debug)\n", " 4 0.000 0.000 0.000 0.000 inspect.py:2775(name)\n", " 1 0.000 0.000 0.000 0.000 {built-in method _asyncio.get_running_loop}\n", " 1 0.000 0.000 0.000 0.000 inspect.py:2869(__init__)\n", " 1 0.000 0.000 0.000 0.000 queues.py:59(_set_timeout)\n", " 1 0.000 0.000 0.000 0.000 {method 'release' of '_thread.lock' objects}\n", " 1 0.000 0.000 0.000 0.000 {method '_is_owned' of '_thread.RLock' objects}\n", " 1 0.000 0.000 0.000 0.000 {method '__exit__' of '_thread.RLock' objects}\n", " 1 0.000 0.000 0.000 0.000 locks.py:224(clear)\n", " 1 0.000 0.000 0.000 0.000 base_events.py:754(is_closed)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%prun sum_of_lists(1000000)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the notebook the output looks something like this:\n", "\n", "```\n", "14 function calls in 9.597 seconds\n", "\n", " Ordered by: internal time\n", "\n", " ncalls tottime percall cumtime percall filename:lineno(function)\n", " 5 8.121 1.624 8.121 1.624 :4()\n", " 5 0.747 0.149 0.747 0.149 {built-in method builtins.sum}\n", " 1 0.665 0.665 9.533 9.533 :1(sum_of_lists)\n", " 1 0.065 0.065 9.597 9.597 :1()\n", " 1 0.000 0.000 9.597 9.597 {built-in method builtins.exec}\n", " 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The result is a table that shows the execution time for each function call, sorted by total time. In this case, most of the time is consumed with list comprehension within `sum_of_lists`. This gives us clues as to where we could improve the efficiency of the algorithm." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Profiling line by line: `%lprun`\n", "\n", "Profiling with `%prun` is useful, but sometimes a line-by-line profile report is more insightful. This isn’t built into Python or IPython, but there is a package available, [line_profiler](https://github.com/rkern/line_profiler), that enables this. This can be provided in your kernel with\n", "\n", "``` bash\n", "$ spack env activate python-374\n", "$ spack install py-line-profiler ^python@3.7.4%gcc@9.1.0\n", "```\n", "\n", "Alternatively, you can install `line-profiler` with other package managers, for example\n", "\n", "``` bash\n", "$ uv add line_profiler\n", "```\n", "\n", "Now you can load IPython with the `line_profiler` extension:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "%load_ext line_profiler" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `%lprun` command profiles each function line by line. In this case, you must explicitly specify which functions are of interest for creating the profile:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "%lprun -f sum_of_lists sum_of_lists(5000)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The result looks something like this:\n", "\n", "```\n", "Timer unit: 1e-06 s\n", "\n", "Total time: 0.015145 s\n", "File: \n", "Function: sum_of_lists at line 1\n", "\n", "Line # Hits Time Per Hit % Time Line Contents\n", "==============================================================\n", " 1 def sum_of_lists(N):\n", " 2 1 1.0 1.0 0.0 total = 0\n", " 3 6 11.0 1.8 0.1 for i in range(5):\n", " 4 5 14804.0 2960.8 97.7 L = [j ^ (j >> i) for j in range(N)]\n", " 5 5 329.0 65.8 2.2 total += sum(L)\n", " 6 1 0.0 0.0 0.0 return total\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The time is given in microseconds and we can see which line the function spends most of its time on. We may then be able to modify the script in such a way that the efficiency of the function can be increased.\n", "\n", "More information about `%lprun` and the available options can be found in the IPython help function `%lprun?`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Create a storage profile: `%memit` and `%mprun`\n", "\n", "Another aspect of profiling is the amount of memory that an operation uses. This can be evaluated with another IPython extension, the `memory_profiler`. This can be provided in your kernel with\n", "\n", "``` bash\n", "$ spack env activate python-311\n", "$ spack install py-memory-profiler\n", "```\n", "\n", "Alternatively you can install `memory-profiler` with other package managers, for example\n", "\n", "``` bash\n", "$ uv add memory_profiler\n", "```" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The memory_profiler extension is already loaded. To reload it, use:\n", " %reload_ext memory_profiler\n" ] } ], "source": [ "%load_ext memory_profiler" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "peak memory: 205.31 MiB, increment: 70.73 MiB\n" ] } ], "source": [ "%memit sum_of_lists(1000000)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see that this feature occupies approximately 100 MB of memory.\n", "\n", "For a line-by-line description of memory usage, we can use the `%mprun` magic. Unfortunately, this magic only works for functions that are defined in separate modules and not for the notebook itself. So we first use the `%%file` magic to create a simple module called `mprun_demo.py` that contains our `sum_of_lists` function." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Overwriting mprun_demo.py\n" ] } ], "source": [ "%%file mprun_demo.py\n", "from memory_profiler import profile\n", " \n", "@profile\n", "def my_func():\n", " a = [1] * (10 ** 6)\n", " b = [2] * (2 * 10 ** 7)\n", " del b\n", " return a" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Filename: /Users/veit/cusy/trn/Python4DataScience/docs/performance/mprun_demo.py\n", "\n", "Line # Mem usage Increment Occurrences Line Contents\n", "=============================================================\n", " 3 150.2 MiB 150.2 MiB 1 @profile\n", " 4 def my_func():\n", " 5 157.9 MiB 7.6 MiB 1 a = [1] * (10 ** 6)\n", " 6 310.5 MiB 152.6 MiB 1 b = [2] * (2 * 10 ** 7)\n", " 7 310.5 MiB 0.0 MiB 1 del b\n", " 8 310.5 MiB 0.0 MiB 1 return a\n", "\n", "\n", "\n" ] }, { "data": { "text/plain": [ "Filename: /Users/veit/sandbox/py313/.venv/lib/python3.13/site-packages/memory_profiler.py\n", "\n", "Line # Mem usage Increment Occurrences Line Contents\n", "=============================================================\n", " 1185 150.2 MiB 150.2 MiB 1 @wraps(wrapped=func)\n", " 1186 def wrapper(*args, **kwargs):\n", " 1187 150.2 MiB 0.0 MiB 1 prof = get_prof()\n", " 1188 310.5 MiB 160.2 MiB 1 val = prof(func)(*args, **kwargs)\n", " 1189 310.5 MiB 0.0 MiB 1 show_results_bound(prof)\n", " 1190 310.5 MiB 0.0 MiB 1 return val" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from mprun_demo import my_func\n", "%mprun -f my_func my_func()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here the `Increment` column shows how much each row affects the total memory consumption: Note that when we calculate `b` we need about 160 MB of additional memory; however, this is not released again by deleting `b`.\n", "\n", "More information about `%memit`, `%mprun` and their options can be found in the IPython help with `%memit?`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## pyheatmagic\n", "\n", "[pyheatmagic](https://github.com/csurfer/pyheatmagic) is an extension that allows the IPython magic command `%%heat` to display Python code as a heatmap with [Py-Heat](https://github.com/csurfer/pyheat).\n", "\n", "It can be easily installed in the kernel with\n", "\n", "```\n", "$ uv add py-heat-magic\n", "Installing py-heat-magic…\n", "…```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Loading the extension in IPython" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "%load_ext heat" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Display the heat map" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAwAAAAMfCAYAAABhAbDAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdeVxO2R/A8c+TtGiVaCHKmrWiJIWQfWzDWIaxDmPsY2/Gvkx22Y2xG/vWYAyDUSgiZN9FWbIrRYvq90fTw6NF+eF56Pt+ve5ruveee873nud5zD33nHuuIiUlJQUhhBBCCCFErqCl7gCEEEIIIYQQn440AIQQQgghhMhFpAEghBBCCCFELiINACGEEEIIIXIRaQAIIYQQQgiRi0gDQAghhBBCiFxEGgBCCCGEEELkItIAEEIIIYQQIhfRVncAH1tycjJ3797FyMgIhUKh7nCEEEII8YVLSUnh+fPnWFtbo6WlvnutcXFxJCQkqK38rOjo6KCnp6fuMHKtL74BcPfuXWxsbNQdhhBCCCFymYiICIoUKaKWsuPi4iior0+MWkp/N0tLS8LCwqQRoCZffAPAyMgIgIhrZzD+728hhBBCiI8l+vlzbEpWUl6DqENCQgIxwE+ArtqiyFg8MCsykoSEBGkAqMkX3wBIG/ZjbGSEsbE0AIQQQgjxaWjC0GNdNK8BINTvi28ACCGEEELkVgo0b8YX9TeLhKZ9J4QQQgghhBAfkTQAhBBCCCGEyEVkCJAQQgghxBdKgeYNudG0eHIjje8BOHjwIE2bNsXa2hqFQoGfn5+6QxJCCCGEEOKzpfENgNjYWBwcHJg/f766QxFCCCGEEOKzp/FDgBo1akSjRo3UHYYQQgghxGdHC82726tp8eRGGt8AyKn4+Hji4+OV69HR0WqMRgghhBBCCM3yxTXCfHx8MDExUS42NjbqDkkIIYQQQgiN8cU1ALy9vYmKilIuERER6g5JCCGEEEIttDR0Eer1xQ0B0tXVRVdXXnothBBCCCFERqQRJoQQQgghRC6i8T0AMTExXLt2TbkeFhZGaGgoZmZmFC1aVI2RCSGEEEJoNnkRmMiIxjcAQkJCqF27tnJ90KBBAHTu3JkVK1aoKSohhBBCCCE+TxrfAPD09CQlJUXdYQghhBBCCPFF0PgGgBBCCCGEeD+aOOuOpsWTG8lnIIQQQgghRC4iDQAhhBBCCCFyERkCJIQQQgjxhZJZgERGpAdACCGEEEKIXEQaAEIIIYQQQuQiMgRICCGEEOILJbMAiYzIZyCEEEIIIUQuIg0AIYQQQgghchEZAiSEEEII8YWSIUAiI/IZCCGEEEIIkYtofAPAx8cHFxcXjIyMKFSoEC1atODy5cvqDksIIYQQQojPksY3AAICAujTpw9Hjx5l7969JCYmUr9+fWJjY9UdmhBCCCGERlNo6CLUS+OfAdi9e7fK+ooVKyhUqBAnTpygZs2aaopKCCGEEEKIz5PG9wC8LSoqCgAzMzM1RyKEEEIIIcTnR+N7AN6UnJzMwIEDcXd3p0KFChmmiY+PJz4+XrkeHR39qcITQgghhNAoMguQyMhn9Rn06dOHc+fOsX79+kzT+Pj4YGJiolxsbGw+YYRCCCGEEEJots+mAdC3b1927tzJgQMHKFKkSKbpvL29iYqKUi4RERGfMEohhBBCCCE0m8YPAUpJSaFfv35s27YNf39/7Ozsskyvq6uLrq7uJ4pOCCGEEEJzKdC8u70yC5D6aXwDoE+fPqxdu5Y///wTIyMjIiMjATAxMUFfX1/N0QkhhBBCCPF50bRGYToLFy4kKioKT09PrKyslMuGDRvUHZoQQgghhBCfHY3vAUhJSVF3CEIIIYQQnyVNfPGWpsWTG2l8D4AQQgghhBDiw5EGgBBCCCGEELmIxg8BEkIIIYQQ70deBCYyIp+BEEIIIYQQuYg0AIQQQgghhMhFcs0QoOSwv0k2lPcGCCGEEOLjSo55qe4QlGQWIJER6QEQQgghhBAiF5EGgBBCCCGEELlIrhkCJIQQQgiR28gsQCIj8hkIIYQQQgiRi0gD4B3yVOiK3/6TOTpm3Hw/rGoOeK9jP6bFm/wpVncQ2hW7MXv1Px807/1HL1C+6c8kJSV/sDxv3nlEngpdCb0UnmmaC9fvULTuIGJfxH+wcoUQQgghvmQyBOgDu3j9LuMX/smW2f2o5lCC/Mb51B0SANExL+k/6Q9mDGvH1/WcMfnAMyKNmLmRn39oSp48n7ZNWa5EYVwrlWDWqj2M7NXsk5YthBBCaDoZAiQyovGfwcKFC6lUqRLGxsYYGxvj5ubG33//re6wMnU94gEAzes4YWlugq5OXjVHlCr83mMSXyXRuKYDVgVNyaev+8HyPnzyCtcjHtCqnvMHyzMnurTwYNGGA7x6laSW8oUQQgghPica3wAoUqQIkydP5sSJE4SEhFCnTh2aN2/O+fPnP3hZV29F4tnZh3yVe1Ch2S/sDUpfRsS9x7QdvAAzt96YV+9Li36zuXnnEZA69Kd539kAaFfsRp4KXTMsx//YJfJU6MpfAadxbDmKfJV7UP3bCZy7elsl3Za9IVRs/gv6Tj0oXn8IM1fsVu6bv3YflVqMVK777T9JngpdWbThgHJb/e+nMWrOFlb4Hcah5SgASjYcRp4KXbl55xFdf1lCy/5zVMr8afJa6nSZrFyv02UyA35dw/AZGzGv3hfrWgMYN99P5ZgNfwfj5VYePd3XjZ3r4Q9o0W82VjUHYOzSC9e249h35P0+s0s37uHRYSL5KvegUouRBBy/pLK/XvXyPImKISDk8nvlL4QQQgiRm2h8A6Bp06Y0btyYUqVKUbp0aSZNmoShoSFHjx79oOUkJyfTeuA8dPJqc2TtKBaM7oT3rI0qaRITX9Hoh5kY5dMjYKU3h1b/jGE+PRr3mkFC4isGd23I0ondAbjj78sdf98syxw+YyPThrYjeP1ozPMb0bzvbBITXwFw4vxN2g1eQNtGrpzeNoHRvVswet42VvgdBqCmcxkuXL/LwyfRABwMuYx5fkPlxXFi4iuOnL5GLRd72jasyj9LhgJwdN0o7vj7YmNplu26WbU9EAN9HY6sG8nkQW2YsGi7SuPo8ImrOJe3VTkm5kUcjWpUYu/SoZzYPJYGHhVp3nc24fceZ7vc1/W0gZ+6NOTEpnFUcyhB876zefwsRrlfJ682jvZFOXziinLbuPl+FK8/JMdlCSGEEF8ShYYuQr00vgHwpqSkJNavX09sbCxubm4ZpomPjyc6OlplyY59Ry5wKSySFb9+j4N9UWo6l2HigNYqaTbsPkZySjK/j+9KxdI2lC1hzbKJ3Qm/9wT/Y5cwzKeHqVHqmH9LcxMszU2yLHPUj82oV708FUvbsOLX77n/OJpt/z00PGvVHuq4lmNkr2aUtrWkSwsP+rSvy4zlqcOfKpQqgpmJgfKud8DxSwzq3JCD/60fOxtGYmIS1R1Loq+nQwFTQwAKmhljaW6So7H6lUoXYXTvFpQqZkmn5u44l7fl3+ALyv237j3CqmB+lWMc7IvyQ5vaVChVhFLFLBnf72tK2BRix4FT2S43TZ9v69KqnjNlS1izYFQnTAz1Wbb1oEoaq4Km3HqjcWGe35ASNoVyXJYQQgghxJfus3gI+OzZs7i5uREXF4ehoSHbtm2jXLlyGab18fFh3LhxOS7j0o272FiaYV3o9YWsm0MJlTRnLkdwLfwBJlV/VNkeF5+oHPufE26OJZV/m5kYUsbWkks37irjaVbbSSV9daeSzF79D0lJyeTJo0WNKqUJOH4Jr2rluXD9Lj+2q8O0ZX9z6cY9DoZcxqWC3QcZ61+xtI3KumVBEx48ft2wehmXqDL8B1J7AMbN92PXwTPce/SMV6+SeRmfQPi9Jzkuv5rD63rS1s5DlfJ2XLxxTyWNvp4OL16+ngmoz7de9PnWK8dlCSGEEEJ86T6LBkCZMmUIDQ0lKiqKzZs307lzZwICAjJsBHh7ezNo0CDlenR0NDY2NunSvY+YF/FUKWfL6ik90+0rmN/og5SRE54u9vy+OYBDJ6/gVLYoxob61HAujf/xSwSEXKKmc5ksj9dSKEhJSVHZlpjBg7R5tfOorCsUCpLfOM48vyFPo2NV0gydtoF9R84zdUhbShYthL6eDm1+mk/Cf0OcPrQnUbGUsCn4UfIWQgghPlcyC5DIyGfxGejo6FCyZEmqVKmCj48PDg4OzJ49O8O0urq6yhmD0pbssC9uTUTkE+49fKbcdvTMdZU0TuWKcfXWfQqZGVOyqIXKYmKU8+k+j55+nf/TqFiu3IrEvri1Mp7AU9dU0gedukZpW0vl8J205wA27zlOLRd7ILVRsP/oBYJOXVNuy0xBMyMiH0apbDudxZz7mXG0L8bF63dVYw29SucWHrT0qkLF0jZYmptw8+6jHOcNEPzG5/DqVRInL9ykbHErlTTnr97G0b7Ye+UvhBBCCJGbfBYNgLclJycTH/9hX/zk5VaO0sUs6PLzEk5fCufQiSuMmr1VJU2HJtUwz29Iy35zOHTiCmG3H+J/7BIDfl3D7cicD22ZuGg7+49e4NzV23QduQRzUyNa1K0MwKDODfg3+AITF23nys1IVv55mPnr9jOoS0Pl8ZXK2JDfOB/rdh1VXuzXcrHnz39PEp/4CnenUlmWX9u1LCHnb7Lqz0Cu3opk7LxtnLt2J8fn0cC9AoEnr6psK1nUgm37ThB6KZzTl8LpMOw3kpNTMskhawvW/cu2fSe4dOMefSet5mn0C7q2rKHcf/POI+48eIaX2+seoflr91Gv+9T3Kk8IIYQQ4kum8Q0Ab29vDh48yM2bNzl79ize3t74+/vToUOHD1qOlpYWW2b3Iy4+gWrtJ9BzzHImDPhaJU0+fV38V3pjY2VG64FzKd/sZ3qMXkZcQiLG7/FirV8HtuanyWtxaTOO+4+i+XPeAHTypo7KqlzOlvUzerPh72AqtRjJ2Hl+jOvTgi4tPJTHKxQKPKqUTv1v5dSL/Uqli2BsoI9zeVsM8mU9/r+Be0VG/tCUETM34tpuPM9fxPFds+o5Po9vv6rG+et3uBz2elz+jGHtyW+cD4+Ok2jedzYN3CtQuazqHfrsztTz60+tmbp0F06tRhN48ip+8/pj/saQq/W7jlKvenmKWZsrtz16GvNez2UIIYQQXxItDV2EeilS3h4ErmG6d+/O/v37uXfvHiYmJlSqVInhw4dTr169bB0fHR2NiYkJT48ueK+L9I/B/9gl6nabwuOg+ZhqyJuC/1/Dpm8gOvYli8Z0yfYxXX7+HYVCwfJJ3793uQmJryjTeAR/TPkB98pZ93gIIYQQn0J0zEvyV+tNVFRUtocif/AY/rv+WQhoxtXPay+BH0Gt9ZPbafxDwEuXLlV3CCIbfu7ZlIXr/yU5ORktrXe37VNSUgg4fpmDq7z/r3LD7z1mRI8mcvEvhBBCCJFNGt8AEJ8HU+N8ePf8KtvpFQoFYXun/9/lpj2ELYQQQoj0NPHFW5oWT24kDQA18KxqT9K55eoOQwghhBBC5ELyHIYQQgghhBC5iPQACCGEEEJ8oTRx1h1Niyc3yjUNAC27RmgZf/q39QohhBAid9GKfq7uEITIkjTChBBCCCGEyEVyTQ+AEEIIIURuo0Dz7vbKLEDqp2nfCSGEEEIIIcRHJA0AIYQQQgghchFpAAgAFPrm+G3f9cHz9azfjIFDfvng+X5In0OMudHNW+Eo9M0JPX32k5b7sX4LmuK7bj/y69RZyvVqNRuwZduOdx536fJVqtVsgJ5pYRxdPT9ihO82duIUtccgxOdCoaGLUC9pAHxgK1avw7N+MyD1wnLF6nXKfbZlnPA/eBj/g4exLeOU7WMU+uas37g1XVnlK7uj0DdXSf8umvY/Tk2IZ+v6lUwYM0KtMbzNtowTvnMXqTuMXOle2HkaNair7jA+itNnzrFrzz769+6h3DZyxCBGjBpPcnJylseOmTAZA4N8XD59lP270v979LFk1CAbMrDPJ4nhff/NzugYIYTQJNIA+AzYFCnM8rcu8o8GhxB5/wEGBgZqikrzJSYmZiudmVl+jIxkilh1SUlJ4dWrV+oOQ8nS0gJdXV11h/FRzF34O9983QxDQ0PltkYNvHgeE8vfe/Zleez1sJt4VHelWDEbChQw+9ihZsnQ0FDtMQghxOfss2oATJ48GYVCwcCBA9UdyifVoV1rAg4FERFxR7lt2ao1dGjbGm3tPCppnz2L4vsfB1DQpgzGhWyp07AFp8+cA1LvWo2bNI3TZ86h0DdP13vw6PFjWrbpRD4zG0pVcGH7zr9V8g44FEhVj3romlhjZVeOESPHq1y4xcbG0ql7bwzNi2FlV44ZvvOzPK+s4gkPv03zbzpiaF4M40K2tOnQnfv3H2SaV9pwkQ2btlGrXlP0TAuzZv1mHj9+QvtOPShcvAL5zGyo6FyDdRu2qBz79hCgBb8to1QFF/RMC2NRrCyt23dV7ktOTsZnmi929pXRz18Eh6q12Lx1e5bnuXrtRpzd62JUsBiWtuX4tnNPHjx4mGl6z/rNuBUewU/DRirrJc2WbTsoX9kdXRNrbMs4vbOO03pYfluyApuSlchnZkObDt2JiopWOafxv06jSImK6JpY4+jqye5/9iv3t27flb4DhyvXBw75BYW+OZcuXwUgISEBgwJF2fdvQLbqyP/gYRT65vy9Zx9VqtdB18Saw0FHMz2HS5evUt2zEXqmhalQxYOAQ4FZnnNGd4xNLYsrv1sJCQn0HTgcK7ty6JkWplhpR3ym+WZ4fNr3aqvfTmo3aE4+MxscqtbiyNHjKvn/vmyVsn5btunEzNkLMLUsnmmMafmu37g1y3PL6je3c9ceTC2Lk5SUBEDo6bMo9M0ZMXK88vjvfxxAx669AEhKSmLzth00bdxApYw8efLQuIEX6zdty7JOT5w8zfhfp6PQN2fsxCnKz/HZsyhlurQYbt4KB1J/46aWxdmz91/KOrphaF6Mhs3acO9epEr+y1auUX6vrezKKb9vaXfQW7bthELfXLn+ds/hu77D2f0chfgSaWnoItTrs/kMjh8/zm+//UalSpXUHconZ1GoIA3q1WblmvUAvHjxgg2b/ejW+dt0ab/p0I0HDx/xt996TgTtp7JjJeo2/ponT57StnULBg/oTfly9twLO8+9sPO0bd1Ceey4SdNo06o5Z44H0LhBPTp07cWTJ08BuHPnHo1btMfF2YnTxwJYOHs6S1euYeLkGcrjh/48loBDQfy5aTX/7NiM/6FAToaeyfS8MosnOTmZ5m2+48mTZwT88yd7d27hxs2btP3u+3fW1YhRExjQ5wcuhgbRwKs2cXHxVHFy4K9t6zh34hA9u3Xiu+69OXb8ZIbHh5w4Rf/B3owfNYLLp4+y+88N1PRwU+73mebLqjUbWDR3OudPHuanfr3o2O3HLC9KExMTmTDam9PHAvDbsIqbtyLo0rNfpum3rl9JkcLWjB89QlkvACdOhtKmY3fafdOSsyEHGTtyGKPGT37nELBr18PYuOVPdmxZw+7tGzh1+gy9BwxV7p897zdmzF7AdJ9xnDkeQAOv2jRr3ZGr164DUKtGdfzfOL+Aw0GYmxfA/+BhAI6HnCIxMZHq1VxyVEcjRk1g8oTRXAwNolKF8pnGP/TnsQwe0JtTRw/g5upM01YdePz4SZbnnJU58xez/a/dbFy9lMunj7Jm+SJsi9pkecwvYycxZGAfQoMPULpkCdp37qm8EA8MCqZXvyEM6NOT0OAD1KvryaQ3xthnJatze9dvroa7G8+fx3Dqv99YwKG0z+WNz+pQEJ413QE4c/Y8UVHROFd2TBdHVWcnDgVm3gi7F3ae8uXsGTygN/fCzjNkYJ9snR/Aixcvme47n9VLF3Bw73bCI24zxHuMcv/CxcvoM3A4Pbt14mzIQbZv+oOSJewAOH54LwDLF8/lXth55frb3vUdTpPV5yiEELnJZ/EegJiYGDp06MDvv//OxIkT1R1Olrp8154u37UHwP8f1TvDNy+fyvDvrI5J063TtwweMYZfhg9i87YdlChui6NDRZU0hwOPcizkJA/CLymHMEyfPB6/HX+zedt2enbvjKGhAdra2lhaWmQYe/u2rQD4dfwvzFmwmGMhJ2lYvy4LFi/Dpog182ZNQaFQYF+mFHfvRTJ85DhG/zyUFy9esHTFGv5YtpC6tWsCsPL3+RQpmXmDTV9fP8N49u735+y5C4RdPImNTWEAVi1ZQPnK7hwPOYmLc+VM8xzY9we+bvGVyrYhP/VV/t2vdw/27PuXjVv8qOqSPp/wiDsYGOTjq8b1MTIyolgxG5wcU88hPj6eX6f6su+vLbj9d7Fb3M6Ww0FH+W3JSmrVcM8wpm6dOyj/Lm5ny5wZv+LiUY+YmBiVoRhpzMzykydPHowMDVXqZeac1Lod5T0EgNKlSnLh4mWmzZqn/P5kJC4ujlVLFlC4sBUAc2dOpknL9syYPB5LSwum+85n+OD+tGvzNQBTJo3hQMBhfOf9xnzfqXjWdGfAkJ95+PAR2traXLh4mVHeg/E/GEivHl3xPxSISxUn8uXLl6M6Gj9qOPXqemYad5q+vb6nVcumACycM53d//zL0hV/MGxw/3cem5HwiDuUKlkcD/dqKBQKihXL+uIfUsecN2lUH4Bxo4ZTvrI7166HYV+mFHMX/k6jBnWV37PSpUoSdPQYO//+5/86t3f95kxMjHF0qID/wUCcqzjhfzCQn/r1YtykacTExBAV9Zxr18OoVaM6ALfCb5MnTx4KFSqYLg5rK0sibt8hOTkZLa3094UsLS3Q1tbG0NAgw387spKYmMiiudMpUdxOec7jfaYr90+cPJPBA3ozoO8Pym1pv/GCBVN7v0xNTLIs913f4TRZfY4ZeZ9/szM7RgghNMln0QPQp08fmjRpgpeX1zvTxsfHEx0drbJ8CZo0qk9MbCwHDwexbOUaunXqkC7N6bPniYmJpUDh0hiaF1MuYTdvcf3GzXeWUalCOeXfBgYGGBsb8eDhIwAuXrqCm6sLCsXrZ/fd3aoSExPL7dt3uX7jJgkJCbi6VFHuNzPLT5nSJXN8rhcvXcGmSGHlxT9AubJlMDU14eJ/w04y8/bdzaSkJCb4TKeicw3MrEtiaF6MPXsPEP7GcKo31atbi2JFbShezpnvuv3ImnWbePHiBZB6J/3FixfU+6q1Sv2uWrMxy/o9cTKUpq2+pWgpB4wKFqNW/eYAmcaQmYuXr+DuVlVlm7tbVa5eu6EcBpKRojZFlBf/AG6uLiQnJ3P56jWio59z915khvlevHQFgArly2Jmlp+AQ0EcCjyCk0NFvmpUn4DDQYDqXeac1JFz5ew9IOlWzVn5t7a2Ns6VHd/5PchKl+/aEXrmHGUqudJ/kDf/7DvwzmPe/G1Y/Xch+uBh6jCuy1evU/WtRunb65nJ6tze9ZsDqOWR2juTkpLCoaCjfN38K8ral+ZwUDABhwKxtrKkVMkSALx8+RJdXV2V/NLo6+uTnJxMfHx8tuLOiXz58ikv/iG1/tKGwD148JC79yKpW7vGe+efne9wmqw+RyG+VOqe7UdmAdJMGt8DsH79ek6ePMnx49kbq+nj48O4ceM+clSfnra2Nt+1/4YxE6YQfPwk2zasSpcmJiYWK0sL/P/5M90+UxOTd5aRN29elXWFQvHOmUE0jYFBPpX1aTPnMXv+YnynTaRi+XIYGORj4NBfSEhIyPB4IyMjTh75F/+Dgfyz7wCjJ0xh7KSpHD+8j5iYWAD+2raWwtZWKsfp6mT80GhsbCwNmrWhgVdt1ixfRMGC5oRH3KZB028yjUHTKBQKarq74X8wEF1dHTxrulOpYnni4xM4d/4iQUePK4eE5KSO3v6sPmS8KSkpKtsSE18P86js5EDYxZP8vWcf+w4E0KZjd7xq12LzuuWZ5vnmbyPtAloTfhueNd1Ztmotp8+cI29ebezLlMKzhjv+BwN5+uyZ8u4/gLl5AV68eEFCQgI6Ojoq+Tx58hQDAwP09fWzXXZaT8GbdZ3Rg/d586r+b+bNz0dfXy/b5X0Imvo5CiHEp6bRPQAREREMGDCANWvWoKeXvf9ReHt7ExUVpVwiIiI+cpSfTrfOHQg4FETzrxqSP79puv2VnSoRef8B2tralCxRXGUxNy8AgI6OTpZ3izNT1r40R4KPq/zPPvDIMYyMDClSxJoSxW3JmzcvwcdPKPc/ffqMK1evZ5SdUkbxlLUvTcTtOyoPPV+4eJlnz6IoZ186R3EHHg2m+VeN6Ni+DQ6VKlDczvadMWlra+NVpxZTfx3LmeMB3LwVwb/+hyhXtjS6urqER9xJV79v9la86dLlqzx+/ITJE0ZTw8MN+zKlsnXHUUcnb/p6KVOawCPHVM/vyDFKlypBnjyqD4O/KTziNnfv3lOuHz0WgpaWFmVKlcTY2AhrK8sM8y1nX0a5nvYcgP+hQDxruqOlpUVNdzemzZpHfHy88u7r+9TRuxwNDlH+/erVK06cOk3ZTIZsQOqwkXuR95XrV69dV/bipDE2NqLtNy35fYEvG1YvYYvfDuXzLjlVplQJjp9QHerx9npmsjq3d/3m4PVzALPmLqKWR+rFvmfN1AaA/8FAZc8MgGOlCkDqb+lt5y5cwumtIYXvUtA8dXjOm3Ud+t+EA9llZGSEbbGi7D9wKNM0efOm/y28KbvfYSGEEK9pdA/AiRMnePDgAZUrv+5OT0pK4uDBg8ybl3rh8faFj66u7hc7hV9Z+9I8un2FfPkyvkvnVacWbq4utGjTiamTxlC6VAnu3o3kr917admsMc5VnLAtakPYzXBCT5+lSGFrjIwMs1VfvXt2w3feb/T7aQR9f/yey1euMmbiFAb1/xEtLS0MDQ3p3qUDQ38eS4EC+SlUsCC/jJ2EllbWHX0ZxeNVpxYVK5SjQ9cf8J02iVevkug9cCi1alTHuUrO5tUuVaI4m7ftIOjIMfLnN2XmnAXcf/Aw0wuDnbv2cCPsFjU93MhvasquPXtJTk6mTOmSGBkZMWRgH34aNpLk5GQ8qrsSFRVN4JFjGBsb0blju3T5FbUpgo6ODnMX/k6vHl04d/4iE3xmZFDyW/VSrCgHA4/Q7puv0dXVwdy8AIMH9MbFox4TfKbTtnULjgSHMG/RUhbMnpplXnp6enTu0ZfpPuOIjn5O/8HetGnVXDmmeuhPfRkzcQol7GxxdKjA8lXrCD1zjjUrXr+HwLOmOz8NG4mOjg4e1V2V24Z4j8GlipNyOtr3qaN3mf/bMkqVLEFZ+9LMmruQp8+eqTxX8bY6tTyYt2gJbq7OJCUlMXzkeJU7vzNnL8DK0gInx0poaSnYtPVPLC0LYWr67l6yjPT7sQc16zVl5uwFNG3SgH/9D/H3P/szHGqTk3N7128OIH9+UypVLM+a9ZuZN2syADU93GjTsTuJiYkqPQAFC5pT2akSh4OC0z0/dCjwCPW9PHN03iVL2GFTpDBjJ05l0rifuXL1OjNmL8hRHgBjRw6jV78hFCpoTqMGdXn+PIbAI8fo99+7CmyL2bDf/yDublXR1dXN8OZHdr7D73Lnzj3qNm7JqiULMnw+SIjPlSbOuqNp8eRGGv0Z1K1bl7NnzxIaGqpcnJ2d6dChA6GhoVne9fxSFShglmk3vUKhYJffOmq6u9G1Zz9KV3SlXace3AqPwKJQIQBatWxKw3p1qN2wBQVtyrAugxeMZaRwYSt2+a3jWMhJHKrWolf/IXTv3IGRIwYr00z7dSw13KvRtFVHvJq0wsPNlSpODlnmm1E8CoWCPzeuJn9+U2rWa4ZXk68pbmvLhtVLsllLr40cMZjKjpVo0OwbPBs0x9LCghZNG2ea3tTEhK1/7qROo5aUdarOoiUrWbdyMeXL2QMwYYw3o0YMxmeaL2Udq9OweVv+2r0XO9uiGeZXsKA5KxbPZdPW7ZRzcmfy9DlM93n3ELXxo0Zw81YEJco7U9AmtbFS2cmBjX8sZf2mbVSoUoPR4yczftTwLB8AhtQLta+bN6Fxi3bUb/oNlSqUZ8Hsacr9/fv0ZFD/Hxk8YjQVnWuye++/bN/8h3LsOEDFCuUwNTXBsVIF5YPLnjXdSUpKUrnL/D519C6TJ4xi8vTZOFStxeGgYLZv/kPZo5WRGZPHY1OkMDW8mvJtlx8YMrCPSqPZyMiQqbPm4ezuhYtHPW7eimDXtvUZPvyaHe7VXVk0dzoz5yzEoaonu//5l5/69UJP790N66zOLTu/OUh9DiD1c/AAUp+9KVe2DJaWhShTWrWn5PsuHVmzfrPKtjt37hF09Dhdv0s/q1hW8ubNy7qVi7l05SqVXGoxZcYcJo75OUd5AHTu2A7faRNZsHgZ5St78NXX33L12g3l/hmTx7N3vz82pRxwqlY7wzyy8x1+l8RXiVy+co0XL1+8O7EQQi3mz5+Pra0tenp6uLq6cuzYsSzTb9q0CXt7e/T09KhYsSK7dqlOEZ2SksLo0aOxsrJCX18fLy8vrl5VfcbsyZMndOjQAWNjY0xNTenevTsxMTHK/XFxcXTp0oWKFSuira1NixYtsowpMDAQbW1tHB0dc3TuH5oi5e3BshrO09MTR0dHfH19s5U+OjoaExMTou6HYWwsL3sSucvYiVPw2/E3ocH+6g4lV+nReyCXLl/j0P6dGe6/eSscO/vKnDp6IN3d+I/p5cuXlKlUjQ2rlyhnaRr+yziePnvG4vnZm7pUCPFu0dHPMbGwIyoqCmNjYzXFkHr9sxL4OE9cvb8XQGfIUf1s2LCBTp06sWjRIlxdXfH19WXTpk1cvnyZQv/d5HxTUFAQNWvWxMfHh6+++oq1a9cyZcoUTp48SYUKqUMip0yZgo+PDytXrsTOzo5Ro0Zx9uxZLly4oBx63qhRI+7du8dvv/1GYmIiXbt2xcXFhbVr1wKpz/oNGTKEypUrs2XLFvT09PDz88vwHJ49e0aVKlUoWbIk9+/fJzQ0NKdV98FodA+AEEJ8DqbPmsfpM+e4dv0Gcxf8zso/NtC5Y1t1h5WOvr4+q5bO59Hjx8pthQqaM2G0txqjEkJ8TOp+4deHehHYzJkz6dGjB127dqVcuXIsWrSIfPnysWzZsgzTz549m4YNGzJ06FDKli3LhAkTqFy5MvPmzQNS7/77+voycuRImjdvTqVKlVi1ahV3795VXsBfvHiR3bt3s2TJElxdXfHw8GDu3LmsX7+eu3dTZ2MzMDBg4cKF9OjRA0tLyyzPoVevXnz77be4ubllme5T+OwaAP7+/tm++y+EEJ/CsZBT1PuqNRWda7JoyQrmzPiV77t+p+6wMuRZ04OmTRoq1wcP7IOFRfq7Z0II8bG9PW17ZlMRJyQkcOLECZXp4LW0tPDy8uLIkSMZHnPkyJF008c3aNBAmT4sLIzIyEiVNCYmJri6uirTHDlyBFNTU5ydX0/Z7OXlhZaWFsHBwTk61+XLl3Pjxg3GjBnz7sSfgEY/BCyE+P+MHTmcsSOHqzuML97GNUtzlN62WFFSXj76SNEIIcTnwcZG9UWMY8aMYezYsenSPXr0iKSkJCwsVF8IaGFhwaVLlzLMOzIyMsP0kZGRyv1p27JK8/bwIm1tbczMzJRpsuPq1auMGDGCQ4cOoa2tGZfemhGFEEIIIYT44DTxxVtp8URERKg8A/AlzuKYlJTEt99+y7hx4yhdOmdTmX9M0gAQQgghhBCfnLGxcbYeAjY3NydPnjzcv39fZfv9+/czHXdvaWmZZfq0/96/fx8rKyuVNGkz9FhaWvLgwQOVPF69esWTJ0/eOd4/zfPnzwkJCeHUqVP07dsXSH0BYUpKCtra2vzzzz/UqVMnW3l9SJ/dMwBCCCGEECL30NHRoUqVKuzfv1+5LTk5mf3792f6QK2bm5tKeoC9e/cq09vZ2WFpaamSJjo6muDgYGUaNzc3nj17xokTr19y+u+//5KcnIyrq2u2Yjc2Nk43pX2vXr0oU6YMoaGh2c7nQ8s1PQA3mtbDSDv3vTdACCGEEJ/W81eZv736U/tSXgQ2aNAgOnfujLOzM1WrVsXX15fY2Fi6du0KQKdOnShcuDA+Pj4ADBgwgFq1ajFjxgyaNGnC+vXrCQkJYfHixUDqu5MGDhzIxIkTKVWqlHIaUGtra+Vc/mXLlqVhw4b06NGDRYsWkZiYSN++fWnXrh3W1tbK2C5cuEBCQgJPnjzh+fPnyuk9HR0d0dLSUk47mqZQoULo6eml2/4p5ZoGgBBCCCGE+Dy1bduWhw8fMnr0aCIjI3F0dGT37t3Kh3jDw8NVXuhYvXp11q5dy8iRI/n5558pVaoUfn5+Khfdw4YNIzY2lp49e/Ls2TM8PDzYvXu38h0AAGvWrKFv377UrVsXLS0tWrVqxZw5c1Ria9y4Mbdu3VKuOzk5AalTjWqqz+5FYDmV9iKMU1VLSg+AEEIIIT6656+ScDp2TSNeBLYWzXwR2Lfk7EVg4sOSHgAhhBBCiC/UlzIESHxY8hkIIYQQQgiRi0gDQKhd3qJ2FNt+CEU+gw+ab4nAS+SrUTfT/VomptjuDCRPQYtM0wghhBBCfGmkAaAh8nfrS5EV29QdhlqY9fqJqM1/kPIi9pOWmxz1jOd//4lZ936ftFwhhBDiU1Fo6CLUS+MbAGPHjkWhUKgs9vb26g4r+7Tzfvoy83w+DztrW1hhUN2T57vU0/iJ3rUVw/pN0TIyUUv5QgghhBCfmsY3AADKly/PvXv3lMvhw4fVHVKm0u7kGzVtTdFN+yh+4DQAWoZGFBwxAdudQdj9E4L1nBXolCwDgFHjlph174tuqbKUCLxEicBLGDVuibZlYUoEXkKn1OsGj5ahESUCL6HnVBUAPaeqqUNdqtWgyNItFPc/g16lKljPXUWBgb9g1nsItn8fpdj2Q+Tv1jfL2Av+4oOlzzzyd+2jjNN86FjVRkzevBQY+Au2OwOx+/c01gvWoGv/ekqtwks3Y9K+m3Ld0mcexQPOotBPnYMgT0ELSgReQrtwUQAM6jQi/tplkh69ftOelrEphcbOoJhfAHb7T1Fk1XYMvZq8x6cB2gUKYjV9MXb/hlJ0414MPBuo7E8Mu0bSowcY1PJ6r/yFEEIIIT43n8UsQNra2tl+5bImyFu4KIa16hP5cz9ITn0ZiMVEX1Li47k3pCfJMc8xbt4W69krCG/XkJh9u9CxK0W+ah7cHZB68Zwc85w8ZubZLtOs12Aez59K4t0IkqOjATBq1IKo9Su406MtuhUcKfSLD3FnT/LyeFCm+eg7u5GcEM+dfp3Ia1mYQr/8SnLUM54s9gWgQO+hGHrW58HEESRG3sW0w/dYzVpCeJsGJD+PIu7UcfSdqhK1bhkAeg7OJD9/jl6lyrwMPoy+kwuvHkTy6k54ankOVYi/dE4lBoWODvGXz/Nsze8kx8aQr7onhUZNIfFOOPEXz2a7TgDMegzg8aIZPJr9K4YNm2ExbgYRna6SeOuGMk3cxTPoOTjzfOeWHOUthBBCaDqFIvWlV5pEkZICX/Qk9Jrvs+gBuHr1KtbW1hQvXpwOHToQHh6u7pCypMibl/sTh5Nw9SIJ16+gV6kyumUrETlyAPGXzpF4+xaP508lOSYag9oNSEmIJ/nlC1KSkkh68oikJ49ISYjPUZlPlszh5fEgXt2JIPl5FAAJ1y/zdPl8Em/fImb3n8RfOod+lWpZ5pOSmMjDX38hMewaL44E8GTJHEy++Q4UChR6+pi0bMfj+dN4cfQQiTev83DyKFLi4zFu2gqAl6eOoVepMmhpoVOyDCmJCTzfuwP9/3os9J2q8jL0uLI8bUtrlbv/AEmPHhC1bhkJVy/x6u5tojf/wYvgwxjWaZSjOgGIObCb5zs2kxhxk6e/zyH+8jlMWnd8q7yH5LW0ziQHIYQQQogvi8b3ALi6urJixQrKlCnDvXv3GDduHDVq1ODcuXMYGRmlSx8fH098/OuL5+j/7oZ/SomRd0l+9lS5rlPSHi39fNjtOqqSTqGrR97CNh+kzLfvogMkXLussp70+CF58hfIMp+Ea5dIiY9TrsedC0UrnwHahazQMjREkVeHuDMn38j0FXEXzpC3WInU9KdD0MpngG7pcuhVcOJl6HFenjxG/u96AKDnWJVna5cqD1fo6qVv7Ghpkb/TDxjUaYR2wUIotPOi0NEhNu5lturiTXHnQtOt65Yqq7ItJT4Oha4eQgghhBC5gcY3ABo1en3Xt1KlSri6ulKsWDE2btxI9+7d06X38fFh3LhxnzLEdFLeulDV0s9H0uOH3OnbKV3a5JgsGigpyf/98UbXnXbGH9nbZQKkJL16a0MKaH3cTp/kmOckXEt9RkGvgiMvjwcSFxqC7vhZ5LWxRaeoLXFv9AAkPXua7gFc02+7Y/JNJx7N/pWEG1dIfvkS8wE/o8j7cR6o1jI2IemNBpsQQgjxpUibQEWTKCD1mkSozWcxBOhNpqamlC5dmmvXrmW439vbm6ioKOUSERHxiSNML/7KhdTx/ElJvLoTrrIkRz0DIOVVImipzt6T9PQJANrmBZXb3r57/aHplLRHoaOrXNcr70jyi1hePbhH4p0IUhISUof4pMmjjV7ZiiTcvK7c9DL0OPqVq6Lv4MzLk8dIfh5Fwq3r5O/ci1ePHpAYcVOZNuHqRXRsS6jEoFexMrGH9hPzzw4Srl3m1d0I8trYvtf56JV3eGvdUSVWAJ3ipYi/euG98hdCCCGE+Nx8dg2AmJgYrl+/jpWVVYb7dXV1MTY2VlnU7eXxIOLOh2I5eR76Vd3RtiyMbgUnzHoOVM6g8+reHfJaFUanlD1aJqaQNy8pCfHEnQvFtGMP8hYrjp6jC2Y9BnzUWBV581LQexJ5bUuQz60m+bv3JWrLGkhJISXuJVF+6yjQZyj6rh7ktS1BwRETUOjp8Xzn5tfne/IY+ap6kJL0isTwsNRtp45hWO8rXp46rlLei+DD6FZwVOmZSLx9C32X6uhWcCJvseIUHDaOPGZZD13KjGHthhg1+Zq8Nrbk794P3bIVU88n7Xx19dAtU56XxwLfK38hhBBCiM+NxjcAhgwZQkBAADdv3iQoKIiWLVuSJ08e2rdvr+7QcuTekB94GRpCoZ9/pej6v7EYNwNtS2tePXkEQIz/Hl4EH8Z6zkrsdh3FqN5XADz49WcUebQpsmwL5gO8efL77I8a58uQIyTevkXh+X9gMX4WLw4f4MnSucr9TxbOIMb/HyxGTaXIsq3kLVyUez99T/Lz10OZ4k6fAC0tlYd9X548hkJbm7hTx1TKe3H0ICQloe9cXbnt6YqFJFy5gPWsJVjPW8WrJ494cWi/ynFGjVtSIvDSO8/nydK5GHo1ocjKPzFq2Jz7YweT+EYPgEGNury6fy81ZiGEEOILo9BSoKVhi0JLs4Yk5UaKlBTNHoTVrl07Dh48yOPHjylYsCAeHh5MmjSJEiVKvPtgUh8CNjEx4VTVkhhpfz4vyFKHgr/4kMfQiEjvrN8X8KEZf/0tBh51uDfo+2wfk797P/QdXbjbL/1zFTlRePF6ojb9Qczenf9XPkIIIUSa56+ScDp2jaioKLWNREi7/tmsrYWBhj0DEJuSQutXyWqtn9xO4x8CXr9+vbpDEB9Z9J8b0DI0QpHPgJQXsdk6Jl+1GjyaOeH/KlfLxJRY/71y8S+EEEKIXEXjGwAiF0hK4tmq33J0yJ0ebf7vYpOjnqlMSSqEEEJ8aTR2FiChVtIAEEoPJ3mrOwQhhBBCCPGRafxDwEIIIYQQQogPR3oAhBBCCCG+UAotDRwCpNHTz+QO0gMghBBCCCFELpJregCK79iLsbGRusMQQgghxBcuOvo5WNipOwwhMpVrGgBCCCGEELmNzAIkMiJDgIQQQgghhMhFpAEghBBCCCFELiJDgIQQQgghvlAyC5DIiPQACCGEEEIIkYtIA0AIIYQQQohcROMbAHfu3KFjx44UKFAAfX19KlasSEhIiLrDEkIIIYTQeGmzAGnaItRLo58BePr0Ke7u7tSuXZu///6bggULcvXqVfLnz6/u0IQQQgghhPgsaXQDYMqUKdjY2LB8+XLlNjs7ebGGEEIIIYQQ70ujhwBt374dZ2dnvvnmGwoVKoSTkxO///57lsfEx8cTHR2tsgghhBBC5EYKLYVGLkK9NLoBcOPGDRYuXEipUqXYs2cPP/74I/3792flypWZHuPj44OJiYlysbGx+YQRCyGEEEIIodkUKSkpGjsbq46ODs7OzgQFBSm39e/fn+PHj3PkyJEMj4mPjyc+Pl65Hh0djY2NDVH3wzA2NvroMQshhBAid4uOfo6JhR1RUVEYGxurKYZoTExM2G6kh4GGPXQbm5JCs+dxaq2f3E6jnwGwsrKiXLlyKtvKli3Lli1bMj1GV1cXXV3djx2aEEIIIYTG08RZdzQrmtxJo4cAubu7c/nyZZVtV65coVixYmqKSAghhBBCiM+bRjcAfvrpJ44ePcqvv/7KtWvXWLt2LYsXL6ZPnz7qDk0IIYQQQojPkkYPAXJxcWHbtm14e3szfvx47Ozs8PX1pUOHDuoOTQghhBBC42lpKdDSsCFAWhr79GnuodENAICvvvqKr776St1hCCGEEEII8UXQ6CFAQgghhBBCiA9L43sAhBBCCCHE+5FZgERGpAdACCGEEEKIXEQaAEIIIYQQQuQiMgRICCGEEOILpVAoUGhp1qAbRbK6IxDSAyCEEEIIIUQuIg0AIYQQQgghchEZAiSEEEII8YXSyFmANCucXEl6AIQQQgghhMhFpAEghBBCCCFELiJDgIQQQgghvlAKLQ2cBUjdAQjpARBCCCGEECI30fgGgK2trfIBljeXPn36qDs0IYQQQgghPjsaPwTo+PHjJCUlKdfPnTtHvXr1+Oabb9QYlRBCCCGE5pNZgERGNL4BULBgQZX1yZMnU6JECWrVqqWmiIQQQgghhPh8aXwD4E0JCQn88ccfDBo0KNPWbHx8PPHx8cr16OjoTxWeEEIIIYQQGk/jnwF4k5+fH8+ePaNLly6ZpvHx8cHExES52NjYfLoAhRBCCCE0SNosQJq2CPX6rBoAS5cupVGjRlhbW2eaxtvbm6ioKOUSERHxCSMUQgghhBBCs302Q4Bu3brFvn372Lp1a5bpdHV10dXV/URRCSGEEEII8Xn5bBoAy5cvp1ChQjRp0kTdoQghhBBCfBZkFiCRkc9iCFBycjLLly+nc+fOaGt/Nm0WIYQQQgghNM5n0QDYt28f4eHhdOvWTd2hCCGEEEII8Vn7LG6n169fn5SUFHWHIYQQQgjxWVFogZaGzbqjQK7p1O2z6AEQQgghhBBCfBjSABBCCCGEECIX+SyGAAkhhBBCiJzTzFmANCue3Eh6AIQQQgghhMhFck0PQMqLu6TkMVR3GEIIIYT4wqW8iFF3CEJkKdc0AIQQQgghchuFlgKFxs0CpFnx5EYyBEgIIYQQQohcRBoAQgghhBBC5CIyBEgIIYQQ4gslswCJjEgPwDtomTvgt+vfHB0zdspCLMvWfq9jPwdL/9hKg9Y/fNA8/Q8fR8vcgWdR0Zmm2b0/ECfPNiQnJ3/QsoUQQgghchNpAHxgF6/cYPy0RSyaMYq75/fTqK6HukP6oOLi4hnts4DRQ3t98rIb1nUnr7Y2azb/9cnLFkIIIYT4Umh0AyApKYlRo0ZhZ2eHvr4+JUqUYMKECaSkpKg7tExdD4sAoHmj2lhamKOrq6PmiD6szdv3YmxkgLurk1rK79y+GXMXr1NL2UIIIcTnRqGlmYtQL43+CKZMmcLChQuZN28eFy9eZMqUKUydOpW5c+d+lPKuXr9Fra+6ol/YhfLVW7LX/0i6NBF3ImnbfSj5i3tQoGQNWnQcwM3wO0Dq0J9mHfoDkKegI1rmDhmWkzbc5a9/DuJQszX6hV1wa9CRcxevqqTbsmMfFdxbomftjJ1TI2bMX6ncN2/JOip6fK1c99v1L1rmDixavlG5rd7XPRn56zzl+sJlGynp3ARdqyrYuzZj9cYdKuVpmTuwcNlGGrftTb4iVSlRpTGbt+9VSbNh226+alBLZdvxk+eo3+oHCpauhamdO55Nu3Hy9MUMz/1dAoNDs6yTpg1qERJ6XtnQEkIIIYQQOaPRDYCgoCCaN29OkyZNsLW1pXXr1tSvX59jx4598LKSk5Np1WUQOjp5ObrnDxZOH8mIcb4qaRITE2n4zY8YGubj4M7lHN61EkODfDRq05uEhESG9OnMsrnjAbh7fj93z+/PssxhY2cxffxgju1dS8EC+WnWoT+JiYkAnAi9QNvuQ2nbsiFnDm5mzLBejJ68gBXr/gSgVnVnLly+wcNHTwAICDyBeYH8BASGKGM9EnIaT3dnALb9tZ+Bv0xhUO9OnD20hZ6dW9Ot3xgOHFKty9GT5/P1V16E+m/k29aNad9jOBev3FDuPxwcirNjOZVjnsfE0qltUw79tYIje1ZTsnhRmrTvw/PnsTn5CN5ZJwBFi1hhUagAh46eVG7r2ncUtZt1z3FZQgghhBC5kUY3AKpXr87+/fu5cuUKAKdPn+bw4cM0atTog5e1L+Aol67eZOX8iThUKEPN6lWYNLK/SpoN2/aQnJzMEt+xVCxXirKli7Ns7njC70TiH3gcQ8N8mJoYAWBpYY6lhXmWZY4e+gP1PN2oWK4UK+ZP5P7DJ2z7K/Wh4VkLV1O3ZlVGDfmB0iVt6dK+OX26t2P6vBUAVChbErP8JgQEnQAgIOg4g3p/p1w/dvIciYmvqO6S2gsxY/4qOrdrTu9ubSld0pZBvTvx9Vd1mTF/lUpMrZvV4/vvvqZ0SVsmePfF2bEcc39PHXLzLCqaqOjnWFsWUjmmTk1XOrb5CvtSdpQtXZzFs0bz4kUcAUEhOf0YsqyTNNYWBbkVcU+5bmlhTtEiljkuSwghhPjSpc0CpGmLUC+NngZ0xIgRREdHY29vT548eUhKSmLSpEl06NAh02Pi4+OJj49XrkdHZz6rzJsuXgnDprAF1lavL27dXCqppDl9/grXwiIwtnVT2R4XF8/1sNtQO1tFvZH/6yFCZvlNKFOyGBevhP0Xzw2aNVLN0L2qI7N/+4OkpCTy5MlDTbfK+Acex6uWKxcu36B3t7ZMm7uCS1fDCAg6gYtTBfLl01fm16NTK5X8qld1ZM7iNZnGBFDN2YHT5y4B8PJlar3qvfVcw/0Hjxn56zwCAkN48OgJSclJvHgRR/idyJxVyDvqJI2+vh4vXr5UrvuMGpDjcoQQQgghciuNbgBs3LiRNWvWsHbtWsqXL09oaCgDBw7E2tqazp07Z3iMj48P48aN+yjxxMS+oIpDWf5Y5JNuX0Hz/B+lzKzUcnfm91VbOHTkJE4V7TE2MqSmWxX8Dx/nYFAINatX+aDlFTAzRaFQ8PStqTq79B3J4ydR+P46jGI2Vujq6FC9UScSEhIzyen/8+RpFAULmH2UvIUQQgghvnQaPQRo6NChjBgxgnbt2lGxYkW+++47fvrpJ3x80l+Ap/H29iYqKkq5RERk72HRsqXtiLhzn3uRD5XbjoacUUlTuVJZrt4Ip1BBM0oWL6qymBgb5fj83sz/6bNorly/RdnSdv/FU5ygY6dU0gceC6V0iWLkyZMHeP0cwObte6n131j/Wu7O7D8YTOCxUOX4/7T8AoNDVfILOhZKudLFM40JIPjEGez/S6Ojk5dyZYpz4fINlTSBwaH069mexvVqUN6+JLq6Ojx6/DSn1ZGu/LfrBP7rbbkZgVMl+/fKXwghhMhNFAoFCi0NW2QIkNppdAPgxYsXaGmphpgnT54sXwSlq6uLsbGxypIdXrWqUbpEUbr0Hcnpc5c5dOQkIyfNU0nToXVjzM1MadFxAIeOnCTs1m38Dx+nv/dkbt+9n+PzmzD9N/YfDObcxat07TsKc7P8tGhcB4BBvTux/+AxJkz/jSvXbrJy/XbmL13P4D6vez4qlS9NflNj1m75G093FwA83Z3x23WA+PhE3Ks6KtMO6duZlev/ZOGyjVy9fouZC1axded+lfwgdZrPZWu2ceXaTcZMXsCxk+fo+3075f76tasTGKzaMClVvCh/bNzJxSs3CD5xho4/eKOvr5fj+nhXnUBqA0FXRwc359fDs7wnzKZz71/eqzwhhBBCiNxGoxsATZs2ZdKkSfz111/cvHmTbdu2MXPmTFq2bPnBy9LS0mLrylm8jIvHtX4Hegwcy8Rf+qqkyZdPn4AdyylaxIpWXQZRrnpLvh84lri4BIyNDHJcps+oAQz8eQrOddsT+eAR29fMQUcnLwCVHcqyYek0NmzbTcUarRgzeQHjhvemS/vmyuMVCgU1qlVGoVDg8d+8/JXKl8bYyABnx3IYGORTpm3RuA6+k4YzY8FKKnh8zeKVm1k2dxyeHi4qMY0d/iMbtu3GodY3rN64g7WLJ1OuTAnl/u4dW7Jr32Giop8rty2ZPZanz55TpU47Ov34C/16fkshc9UhOtmdqSerOgFYt/Vvvm3dWPlsA0Dk/UeE38758wZCCCGEELmRIkWD36r1/PlzRo0axbZt23jw4AHW1ta0b9+e0aNHo6OTvRdsRUdHY2JiwrOwQIyNDD9yxNnjf/g4dVp8z5PrhzA1yV4PxaegZe7A1lWzVO64Z6RNtyE4VSqL98DsT73p2bQbnh4ujB3+43vH9+jxU+yrNef4vrXYFSvy3vkIIYQQH1P08xhM7dyJiorK9kiEDx7Df9c/gSUtMMyjWfd7Y5KScb92X631k9tp9EPARkZG+Pr64uvrq+5QxBumjv2JHXsCsp0+Kvo5129GsHPdvHcnzsLN8LvMn/qzXPwLIYQQQvwfNLoBIDSTbdHC9OvxbbbTmxgbEXF277sTvoOzU3mcncr/3/kIIYQQQuRm0gBQA08PF5IfnVZ3GOloYkxCCCGEeH9pM+9oEkWKZsWTG2nWoDAhhBBCCCHERyUNACGEEEIIofHmz5+Pra0tenp6uLq6cuzYsSzTb9q0CXt7e/T09KhYsSK7du1S2Z+SksLo0aOxsrJCX18fLy8vrl69qpLmyZMndOjQAWNjY0xNTenevTsxMTHK/XFxcXTp0oWKFSuira1NixYt0sWxdetW6tWrR8GCBTE2NsbNzY09e/a8f0V8ANIAEEIIIYT4QikUCo1ccmrDhg0MGjSIMWPGcPLkSRwcHGjQoAEPHjzIMH1QUBDt27ene/funDp1ihYtWtCiRQvOnTunTDN16lTmzJnDokWLCA4OxsDAgAYNGhAXF6dM06FDB86fP8/evXvZuXMnBw8epGfPnsr9SUlJ6Ovr079/f7y8vDKM5eDBg9SrV49du3Zx4sQJateuTdOmTTl16lSG6T8FjZ4G9ENImwYr6n4Yxu/xtl4hhBBCiJyIjn6OiYWdRkwDeqSMlUZOA+p2+V6O6sfV1RUXFxfmzUudUTA5ORkbGxv69evHiBEj0qVv27YtsbGx7Ny5U7mtWrVqODo6smjRIlJSUrC2tmbw4MEMGTIEgKioKCwsLFixYgXt2rXj4sWLlCtXjuPHj+Ps7AzA7t27ady4Mbdv38ba2lqlzC5duvDs2TP8/PzeeT7ly5enbdu2jB49Olvn/6Fp1jdCCCGEEEKINyQkJHDixAmVO+xaWlp4eXlx5MiRDI85cuRIujvyDRo0UKYPCwsjMjJSJY2JiQmurq7KNEeOHMHU1FR58Q/g5eWFlpYWwcHB730+ycnJPH/+HDMzs3cn/khkFiAhhBBCiC+UJs8CFB0drbJdV1cXXV3ddOkfPXpEUlISFhYWKtstLCy4dOlShmVERkZmmD4yMlK5P21bVmkKFSqksl9bWxszMzNlmvcxffp0YmJiaNOmzXvn8f+SHgAhhBBCCPHJ2djYYGJiolx8fHzUHdJHt3btWsaNG8fGjRvTNS4+JekBEEIIIYQQn1xERITKMwAZ3f0HMDc3J0+ePNy/f19l+/3797G0tMzwGEtLyyzTp/33/v37WFlZqaRxdHRUpnn7IeNXr17x5MmTTMvNyvr16/n+++/ZtGlTpg8MfyrSAyAAUOib47d917sT5pBn/WYMHPLLB8/3Q/ocYsyNbt4KR6FvTujps5+03I/1WxBCCHVQ92w/Wc0CZGxsrLJk1gDQ0dGhSpUq7N+/X7ktOTmZ/fv34+bmluExbm5uKukB9u7dq0xvZ2eHpaWlSpro6GiCg4OVadzc3Hj27BknTpxQpvn3339JTk7G1dU1R5/DunXr6Nq1K+vWraNJkyY5OvZjkAbAB7Zi9To86zcDUi8sV6xep9xnW8YJ/4OH8T94GNsyTtk+RqFvzvqNW9OVVb6yOwp9c5X07zJ24hQcXT1zelofjSbEs3X9SiaMST+DgDrZlnHCd+4idYeRK90LO0+jBnU/SVn+Bw8zduKUHO/7nHzM3/jYiVPo0qMv8Prf1zQKfXNu3gpX+ff1XccIITTXoEGD+P3331m5ciUXL17kxx9/JDY2lq5duwLQqVMnvL29lekHDBjA7t27mTFjBpcuXWLs2LGEhITQt2/q71+hUDBw4EAmTpzI9u3bOXv2LJ06dcLa2lo5l3/ZsmVp2LAhPXr04NixYwQGBtK3b1/atWunMgPQhQsXCA0N5cmTJ0RFRREaGkpoaKhy/9q1a+nUqRMzZszA1dWVyMhIIiMjiYqK+vgVlwmNbwA8f/6cgQMHUqxYMfT19alevTrHjx9Xd1iflE2Rwix/6yL/aHAIkfcfYGBgoKaoNF9iYmK20pmZ5cfISKaIVZeUlBRevXql7jCULC0tMr0L9aEs+n05Dx48VK4nJCQww3c+iYmJWe7TJAkJCV90eUIIzdK2bVumT5/O6NGjcXR0JDQ0lN27dysf4g0PD+fevXvK9NWrV2ft2rUsXrwYBwcHNm/ejJ+fHxUqVFCmGTZsGP369aNnz564uLgQExPD7t270dPTU6ZZs2YN9vb21K1bl8aNG+Ph4cHixYtVYmvcuDFOTk7s2LEDf39/nJyccHJ6faN38eLFvHr1ij59+mBlZaVcBgwY8LGq6500vgHw/fffs3fvXlavXs3Zs2epX78+Xl5e3LlzR92hfTId2rUm4FAQERGvz3nZqjV0aNsabe08KmmfPYvi+x8HUNCmDMaFbKnTsAWnz6S+9GLF6nWMmzSN02fOodA3T9d78OjxY1q26UQ+MxtKVXBh+86/VfIOOBRIVY966JpYY2VXjhEjx6tcuMXGxtKpe28MzYthZVeOGb7zszyvrOIJD79N8286YmheDONCtrTp0J379zN+2Qe8Hi6yYdM2atVrip5pYdas38zjx09o36kHhYtXIJ+ZDRWda7BuwxaVY98eArTgt2WUquCCnmlhLIqVpXX7rsp9ycnJ+Ezzxc6+Mvr5i+BQtRabt27P8jxXr92Is3tdjAoWw9K2HN927qlygfc2z/rNuBUewU/DRirrJc2WbTsoX9kdXRNrbMs4vbOO0+6+/rZkBTYlK5HPzIY2HboTFfV65oXk5GTG/zqNIiUqomtijaOrJ7v/ed0l2rp9V/oOHK5cHzjkFxT65ly6nPq2xISEBAwKFGXfvwHZqiP/g4dR6Jvz9559VKleB10Taw4HHc30HC5dvkp1z0bomRamQhUPAg4FZnnOGQ3hMbUsrvxuJSQk0HfgcKzsyqFnWphipR3xmeab4fFp36utfjup3aA5+cxscKhaiyNHVW9C/L5slbJ+W7bpxMzZCzC1LJ5pjDZFCtOsdUe2/bmL8xcuU6dhy9SyFYos92UkPj6e/oO8KVTUHj3TwnjUacLxkJPK/Wn1/dff/1DJpSZ6poWpVrMB585fVMnncOBRatT9Cv38RbApWYn+g7yJjY1V7rct48QEn+l06t4b40K29OwzCIDhv4yjdMWq5DOzoXjZKowa56NsrPw/v/G07+6S5auxs6+MnmnhTOtTCJG5tFmANG15H3379uXWrVvEx8cTHBysMgzH39+fFStWqKT/5ptvuHz5MvHx8Zw7d47GjRur1o1Cwfjx44mMjCQuLo59+/ZRunRplTRmZmasXbuW58+fExUVxbJlyzA0NFRJc/PmTVJSUtItb8aW0f634/2UNLoB8PLlS7Zs2cLUqVOpWbMmJUuWZOzYsZQsWZKFCxeqO7xPxqJQQRrUq83KNesBePHiBRs2+9Gt87fp0n7ToRsPHj7ib7/1nAjaT2XHStRt/DVPnjylbesWDB7Qm/Ll7LkXdp57Yedp27qF8thxk6bRplVzzhwPoHGDenTo2osnT54CcOfOPRq3aI+LsxOnjwWwcPZ0lq5cw8TJM5THD/15LAGHgvhz02r+2bEZ/0OBnAw9k+l5ZRZPcnIyzdt8x5Mnzwj450/27tzCjZs3afvd9++sqxGjJjCgzw9cDA2igVdt4uLiqeLkwF/b1nHuxCF6duvEd917c+z4yQyPDzlxiv6DvRk/agSXTx9l958bqOnxenyhzzRfVq3ZwKK50zl/8jA/9etFx24/ZnlRmpiYyITR3pw+FoDfhlXcvBVBl579Mk2/df1KihS2ZvzoEcp6AThxMpQ2HbvT7puWnA05yNiRwxg1fvI7h4Bdux7Gxi1/smPLGnZv38Cp02foPWCocv/seb8xY/YCpvuM48zxABp41aZZ645cvXYdgFo1quP/xvkFHA7C3LyAcujE8ZBTJCYmUr2aS47qaMSoCUyeMJqLoUFUqlA+0/iH/jyWwQN6c+roAdxcnWnaqgOPHz/J8pyzMmf+Yrb/tZuNq5dy+fRR1ixfhG1RmyyP+WXsJIYM7ENo8AFKlyxB+849lY3fwKBgevUbwoA+PQkNPkC9up5Mmjory/yaNKrPnh2b+Gf/AXbt2cfcmT4MHtgHbW3tLPdlZNjP49jit4OVv8/j5JF/KVnCjgbN2ih/u2mG/jyWGZPHc/zwXgoWLEDTVh2UF+rXb4TRsHlbWrX4ijPHA9iwegmHjxyl70+qQ+Om+87HoWJ5Th09wCjvwQAYGRmyYvE8LpwKZPb0Sfy+fDWz5qT++/z//savXQ9ji99Otq5fQWiwf5Z1KoQQIvs0+k3Az58/x9jYmH379lG37usxuR4eHmhra+Pv75/umPj4eOLj45Xr0dHR2NjYfLZvArYt48TAvj9gZ1uUwSPGcPXcMVav3YjvvEWcPHIAU8vi+E6bRJfv2nM48ChNvm7Pg/BLKkMYSpZ3YdigvvTs3pmxE6fgt+PvdP8zVeibM3LEYCaMSR0/Fxsbi6F5Mf7+cwMN69fllzGT2OK3g4uhR5R3Ihf8tozhI8cRdT+MFy9eUKBwaf5YtpBvWjUH4MmTpxQpWYme3TrhO31ShueXUTx79/vTqHlbwi6exMYm9a7fhYuXKV/ZnWOH/sHFuXK6fG7eCsfOvjK+0yYxoO8PWdbpV1+3x750KaZPHg+k3nF3rFQR3+mT2Oq3k64/9OP2tTPphgXFx8djZl2KfX9twe2/i12A738cwIsXL1m7UrVLMDMhJ07h4lGP5w9vpruLkCbtcx/Yr5dyW4cuP/Dw0WP+2blZuW3Yz2P5a/dezp/MuAEyduIUJk6eya3LoRQunDrLwe5/9tOkZXvuXD+LpaUFhYtXoE+v7vw87CflcVU96uHi7MR836mcPXcBh6q1uH/rItra2ljalmOU92DOnb/I+tVLmDRlJrt27yPwwK5s1ZH/wcPUbtACv42raN60cbqY06R9ppMnjGb4kP5A6uwLdvaV6ffj9wwb3D/D4xT65mzbsIoWzV7n/ebvpP8gb85fvMS+XVszvKv+5vFpMSxZ6Ev3Lh2B19/Fi6FHsC9TinbffU9MbCw7t75uiHXs2oudf//Ds8gbGca4+5/9jJs0jarOlbl7L5LI+w9o3bIpfX/8nr37/TPdlyePao9fbGws+a1KsmLxXL5t1xpIbXCmfX+GDuqnrO/1q36n7TepvQlpv80Vi+fSpnULvv9xAHny5OG3eTOVeR8OPEqt+s2IfRyOnp4etmWccHKoyLaNqzL9zACmz5rH+s3bCAlM7UV639/42IlT+HWqL3eun6VgQfOMihJCY2nSm4CPVSiikW8CrnrutlrrJ7fTrG/EW4yMjHBzc2PChAncvXuXpKQk/vjjD44cOaIyzutNPj4+KnPK2thkfWfvc9GkUX1iYmM5eDiIZSvX0K1Th3RpTp89T0xMLAUKl8bQvJhyCbt5i+s3br6zjEoVyin/NjAwwNjYiAcPHwFw8dIV3FxdVC6Y3N2qEhMTy+3bd7l+4yYJCQm4ulRR7jczy0+Z0iVzfK4XL13Bpkhh5YUBQLmyZTA1NeHif8NOMuNc2VFlPSkpiQk+06noXAMz65IYmhdjz94DhEdkPISsXt1aFCtqQ/FyznzX7UfWrNvEixcvgNS7kS9evKDeV61V6nfVmo1Z1u+Jk6E0bfUtRUs5YFSwGLXqpzaQMoshMxcvX8HdrarKNne3qly9doOkpKRMjytqU0R58Q/g5upCcnIyl69eIzr6OXfvRWaY78VLVwCoUL4sZmb5CTgUxKHAIzg5VOSrRvUJOBwEQMChIDxrugM5qyPnyk5kh1u1129g1NbWxrmy4zu/B1np8l07Qs+co0wlV/oP8uaffQfeecybvw0ry9Txpg8epg7junz1OlXfapS+vf62sJu3+HPTalo2b0z5cmXY//dWEhMTSU5OznLf267fuEliYiLubq+7wfPmzUtV58rp6sjN9XWDLO23efFy6md8+sx5Vqxer/KZNWjW5r94wpXHOVdxTBfDhk3bcK/dGEvbchiaF2PkOJ93frez+xsvVrSIXPwLIcRHoPHvAVi9ejXdunWjcOHC5MmTh8qVK9O+fXuVKZne5O3tzaBBg5TraT0AnzttbW2+a/8NYyZMIfj4SbZtSH8XLiYmFitLC/z/+TPdPlMTk3eWkTdvXpV1hUKR4UWHJjMwyKeyPm3mPGbPX4zvtIlULF8OA4N8DBz6S6YPFBoZGXHyyL/4Hwzkn30HGD1hCmMnTeX44X3ExKSOh/5r21oKW1upHKerk/FDo7GxsTRo1oYGXrVZs3wRBQuaEx5xmwZNv/lsHmpUKBTUdHfD/2Aguro6eNZ0p1LF8sTHJ3Du/EWCjh5nyMA+ADmqo7c/qw8Z79sdm4mJr59VqezkQNjFk/y9Zx/7DgTQpmN3vGrXYvO65Znm+eZvI60R/P/8Nn7s2Q2AC5cuA6lT3A35qe87930sMbGx/NC9M/379Ei3r6hNEeXfBvlUP7MjR4/ToWsvxo0aTgOv2piYGLN+0zZmzF7wQeKSSQ6E+P+9Oe2mptC0eHIjjW8AlChRgoCAAGJjY4mOjsbKyoq2bdtSvHjGD9hl9hrpL0G3zh2Y7juftq1bkD+/abr9lZ0qEXn/Adra2tgWK5phHjo6OlneLc5MWfvSbPHbQUpKivKHG3jkGEZGhhQpYo2ZmSl58+Yl+PgJihZNvWB4+vQZV65ep5ZH9UzzzSiesvalibh9h4iIOyrDA549i6KcfemMsslU4NFgmn/ViI7tU1+3nZyczJWr1ylnXybTY7S1tfGqUwuvOrUY88tQTC1L8K//IerVrYWuri7hEXeoVcM9W+VfunyVx4+fMHnCaOW5hJw89c7jdHTypq+XMqUJPHJM9fyOHKN0qRLphoa8KTziNnfv3sP6vwvyo8dC0NLSokypkhgbG2FtZUngkWMq5xR45JjKXexaNarz+/LV6OrqMGnsL2hpaVHT3Y1ps+YRHx+v7EEoV7Z0juvoXY4Gh1Dzv+/Qq1evOHHqNH17dc80fcGC5tyLfP3yl6vXrit7cdIYGxvR9puWtP2mJa1bNqPhf2Pmzczy5zi+MqVKcPyE6mf69npmPGt64FnTI8f70pQobouOjg6BR4IpViz1RkdiYiLHT5xi4FtD4Y4eC0n32yxbJvX3VNmxEhcuXaZkicwfXM5I0NFjFCtqwy/DX990uRUeoZLmY//GhRBC5JzGNwDSGBgYYGBgwNOnT9mzZw9Tp05Vd0ifXFn70jy6fYV8+fQz3O9VpxZuri60aNOJqZPGULpUCe7ejeSv3Xtp2awxzlWcsC1qQ9jNcEJPn6VIYWuMjAyz1WDq3bMbvvN+o99PI+j74/dcvnKVMROnMKj/j2hpaWFoaEj3Lh0Y+vNYChTIT6GCBfll7CS03vGkf0bxeNWpRcUK5ejQ9Qd8p03i1askeg8cSq0a1XGukr1hI2lKlSjO5m07CDpyjPz5TZk5ZwH3HzzMtAGwc9ceboTdoqaHG/lNTdm1Zy/JycmUKV0SIyMjhgzsw0/DRpKcnIxHdVeioqIJPHIMY2MjOndsly6/ojZF0NHRYe7C3+nVowvnzl9kgs+MDEp+q16KFeVg4BHaffM1uro6mJsXYPCA3rh41GOCz3Tatm7BkeAQ5i1ayoLZWf8W9PT06NyjL9N9xhEd/Zz+g71p06o5lv8NZRn6U1/GTJxCCTtbHB0qsHzVOkLPnGPNitfvIfCs6c5Pw0aio6ODR3VX5bYh3mNwqeKkvFP7PnX0LvN/W0apkiUoa1+aWXMX8vTZM7p1Tj8ELk2dWh7MW7QEN1dnkpKSGD5yvMod/JmzF2BlaYGTYyW0tBRs2vonlpaFMDV9dy9ZRvr92IOa9Zoyc/YCmjZpwL/+h/j7n/2f5A6XgYEBP/boytCfx2Jmlp+iNkWYOnMuL16+VD6zkGa8z3QKFDDDolDqb9O8gJnyOYnhg/tTrVZD+g4czvddO2JgkI8LFy+zd38A83wzfxdBqZLFCY+4zfqNW3FxduKvv/ey7a0ZmD7kb7xT994UtrbCZ8Ko/6PWhBBCaPQzAAB79uxh9+7dhIWFsXfvXmrXro29vb3yxQ+5TYECZujrZ9wAUCgU7PJbR013N7r27Efpiq6069SDW+ERWBQqBECrlk1pWK8OtRu2oKBNGdZl8IKxjBQubMUuv3UcCzmJQ9Va9Oo/hO6dOzByxGBlmmm/jqWGezWatuqIV5NWeLi5UsXJIct8M4pHoVDw58bV5M9vSs16zfBq8jXFbW3ZsHpJNmvptZEjBlPZsRINmn2DZ4PmWFpY0CKLB09NTUzY+udO6jRqSVmn6ixaspJ1KxdTvpw9ABPGeDNqxGB8pvlS1rE6DZu35a/de7GzzbjHpWBBc1Ysnsumrdsp5+TO5OlzmO4z7p1xjx81gpu3IihR3pmCNqmNlcpODmz8YynrN22jQpUajB4/mfGjhtPlu/ZZ5lWyhB1fN29C4xbtqN/0GypVKM+C2dOU+/v36cmg/j8yeMRoKjrXZPfef9m++Q9KlSyhTFOxQjlMTU1wrFRB+eCyZ013kpKSlOP/0+S0jt5l8oRRTJ4+G4eqtTgcFMz2zX9gbl4g0/QzJo/Hpkhhang15dsuPzBkYB+VRrORkSFTZ83D2d0LF4963LwVwa5t69HSer9/Dt2ru7Jo7nRmzlmIQ1VPdv/zLz/164We3qfpiZw8cRStWjTlu+69qexWh2vXw9izfWO6XsLJE0YxYMjPVKlel8jIB+zYsgYdHR0AKlUsT8A/f3Ll2nVqeH2FU7U6jJ4wBWvrrF913+yrRvzUrxd9B43A0dWToKPHGPXGvwnwYX/j4RG3VXp3hBDvptDS0shFqJdGzwIEsHHjRry9vbl9+zZmZma0atWKSZMmYZKNMe3w+in4z3UWICH+H5nN+iQ+rh69B3Lp8jUO7d+p7lCUswA9vXf9vXs5hBA5o0mzAIU4FNPIWYCcT9+SWYDUSOOHALVp04Y2bdqoOwwhhMjU9FnzqFfXEwODfPy9Zz8r/9jwzqFZQgghhLpofANACCE03bGQU0ydNY/nz2MobleMOTN+5fuu36k7LCGE+L/evPuxKFI0K57cSOOHAP2/ZAiQEEIIIT4lTRoCdMLJViOHAFU5dVOGAKmRZn0jhBBCCCGEEB+VDAESQgghhPhSKRSpiybRtHhyoVzTAHjYuwNxeXPN6QohhBBCTZ6/8fZxITSRDAESQgghhBAiF5Fb4kIIIYQQXyiFQgNnAUrWrHhyI+kBEEIIIYQQIheRBoAQQgghhBC5iDQAxCdhsf4gu24/UncYQgghRO6ipUChpaVRCxo2JCk3kgaAhph29iZ1dp9QdxjZEh4TR/+jl3O8TwghhBBCqJ80AD6yhKTkT1peSkoKr5I/zsudN9+8z83nL1XKWnb1Ls8SErPcJ4QQQgghNIdaGwAHDx6kadOmWFtbo1Ao8PPzU9mfkpLC6NGjsbKyQl9fHy8vL65evaqeYLMp7U7+H9fv4bwjmKKbDgMQlfCKn45dody2I5TYHMjX/57m/NMYANbfiGT6+XDOP4vFYv1BLNYfZP2NSMJj4rBYf5Bz/6VLy8di/UEC7z8DIPD+MyzWH2T/3SfU23MSm02HCX4YRcv9p/n5xDXGh96gzNYgKvgdYdrZm1nGfurxc745cIayW4MouSWQFvtPc+bJc+X+YoZ69Au+zMrr97j7Mp52Aee49yIeHS2tLPelefAygfYBZym26TAuO46xI+LhB6p1IYQQQmREoVBo5CLUS60NgNjYWBwcHJg/f36G+6dOncqcOXNYtGgRwcHBGBgY0KBBA+Li4j5xpDkTFvOSv24/YrlHefY3rAzA94EXeBSXwNpaFdjboDKV8hvR+sAZnsYn0rxoQX4sU4QyJvk427waZ5tXo3nRgjkqc+KZMEY62HG4kTPlTA0A2HjzPvm08/B3PSdGOxRnxvlwAiKfZppHzKtXtLWzYLuXI7u8nLAz0ufbg+eI+e+FJi7mJmytU4kTj6IJevCMnqUL84uDHfm082S5L82UszdpUsScfxtUplWxQvwQdJErUS9yWr1CCCGEEOL/oNb3ADRq1IhGjRpluC8lJQVfX19GjhxJ8+bNAVi1ahUWFhb4+fnRrl27TxlqjiQmpzDXtQzmejoABD+M4tST55xv4YZuntQ211in4vx95xE7Ih7RqaQVBtpaaCsUFNLXeTOnbJc5rEIxalnmV9lWzsSAIRWKAVDcSJ+lV+9y8P6zdOnS1LBQ3T7DpRSltjwk6EEU9QsX4MTjaMaH3sDZ3ARtLQWLr9wh5HE0A8oV5fyzmEz36f13zk2LFqRjCSsARlSyJeD+U5ZevcMU51LZPk8hhBBCCPH/0dgXgYWFhREZGYmXl5dym4mJCa6urhw5ciTTBkB8fDzx8fHK9ejo6I8e69uK5NNVXvwDnH8WS+yrJOy3Bamki0tK5lbMy7cPfy+OZkbptqX1BKSx0NfhUVxCpnk8iEtg8pmbBD14xqP4RJJSUnj5Kpk7L1LrM+z5S2ZXLYOWQsH0lwnMdi3N8mv3ePkqKct9aQ0A5wLGKuU5FzDm3LOYdHEIIYQQ4gPRUmjerDuaFk8upLENgMjISAAsLCxUtltYWCj3ZcTHx4dx48Z91Nje5c1hLwCxr5Kw0NNhWx2HdGmNdTL/CNJ+H28+0puYnPFDxW+XCaCtpTrCSwGkZPF8cP+jl3makMjEyiUpYqCLrpYWTfaFkvBfma1tUz+L8JjUIVgKhYJupazfuU8IIYQQQmiOL24WIG9vb6KiopRLRESEukOiUn5DHsQlkEehwM5IX2UpoJsXgLxaWiS9dXWetu/+y9d37c8/i/1ocR57FM33pQrjZW2GvYkBOloKHsenH4ZU1FCPOdXKZJhHVvtOPI5Ot17aON//H7gQQgghhMg2je0BsLS0BOD+/ftYWVkpt9+/fx9HR8dMj9PV1UVXV/djh5cjNS1McS5gTJfD5xntYEdxo3zcj4tn790nNC5ijqOZETYGeoTHxnHuaQxW+XQx1M6DvnYeqhQwYu7FcIoa6PEoPgGfMzc/WpzFjfTZdPM+DmZGPH/1ivGhN9DP8+HaiDsiHuFgZoSruTFbbj3g1JPnzKpa+oPlL4QQQghVypdvaRCF1seZrlxkn2Z9I95gZ2eHpaUl+/fvV26Ljo4mODgYNzc3NUaWcwqFgrW1KlCtoAkDjl2h+q7j/BB0idux8RT87y7/Vzbm1LE04+t/z1Bu2xG23XoAgG/VMrxKhvr/nGTUyet4V7L9aHHOqlqaqMRX1PvnJH2PXub70oUx/y++D2FohWL43XpA7d0n2HjzPovcylLGxODdBwohhBBCiA9GkZKS1ajwjysmJoZr164B4OTkxMyZM6lduzZmZmYULVqUKVOmMHnyZFauXImdnR2jRo3izJkzXLhwAT09vWyVER0djYmJCddaVccor8Z2eAghhBDiC/E88RUltwQRFRWFsbHxuw/4CNKuf0Krl8Eog+cE1en5qyQcgy6rtX5yO7VeEYeEhFC7dm3l+qBBgwDo3LkzK1asYNiwYcTGxtKzZ0+ePXuGh4cHu3fvzvbFvxBCCCFEbqaJL97StHhyI7U2ADw9PcmqA0KhUDB+/HjGjx//CaMSQgghhBDiy6WxzwAIIYQQQgghPjwZFC+EEEII8YVSaClQaNiLtzQtntxIegCEEEIIIYTIRaQBIIQQQgghRC6Sa4YAFVywBmNjI3WHIYQQQogvnF70c9hip+4wUmkpUhdNomnx5ELSAyCEEEIIIUQuIg0AIYQQQgghcpFcMwRICCGEECK3USi0UCg0636vQpH5O6DEp6FZ3wghhBBCCCHERyUNACGEEEIIIXIRGQIkhBBCCPGFkheBiYyotQfg4MGDNG3aFGtraxQKBX5+fir7t27dSv369SlQoAAKhYLQ0FC1xCmEEEIIIcSXQq0NgNjYWBwcHJg/f36m+z08PJgyZconjkwIIYQQQogvk1qHADVq1IhGjRpluv+7774D4ObNm58oIiGEEEKIL4cMARIZkYeAhRBCCCGEyEW+uIeA4+PjiY+PV65HR0erMRohhBBCCCE0yxfXA+Dj44OJiYlysbGxUXdIQgghhBBqogUKDVu+vMvPz84X9wl4e3sTFRWlXCIiItQdkhBCCCGEEBrjixsCpKuri66urrrDEEIIIYQQQiOptQEQExPDtWvXlOthYWGEhoZiZmZG0aJFefLkCeHh4dy9exeAy5cvA2BpaYmlpaVaYhZCCCGE+FzILEAiI2odAhQSEoKTkxNOTk4ADBo0CCcnJ0aPHg3A9u3bcXJyokmTJgC0a9cOJycnFi1apLaYhRBCCCGE+JyptQfA09OTlJSUTPd36dKFLl26fLqAhBBCCCGE+MJ9cc8ACCGEEEKIVDIESGTki5sFSAghhBBCCJE5aQAIIYQQQgiRi8gQICGEEEKIL5RCoUCh0KwhN5oWT24kPQBCCCGEEELkItIAEEIIIYQQIheRIUBCCCGEEF8qLQVoadj9Xq1kdUeQ62nYN0IIIYQQQgjxMUkDQAghhBBCiFxEhgAJIYQQQnyh5EVgIiPSAyCEEEIIIUQuIg0AIYQQQgghchG1NgAOHjxI06ZNsba2RqFQ4Ofnp9yXmJjI8OHDqVixIgYGBlhbW9OpUyfu3r2rvoCFEEIIIT4jaS8C07RFqJdaGwCxsbE4ODgwf/78dPtevHjByZMnGTVqFCdPnmTr1q1cvnyZZs2aqSFSIYQQQgghvgxqfQi4UaNGNGrUKMN9JiYm7N27V2XbvHnzqFq1KuHh4RQtWvRThCiEEEIIIcQX5bOaBSgqKgqFQoGpqWmmaeLj44mPj1euR0dHf4LIhBBCCCE0j0JLC4WGvQhM0+LJjT6bTyAuLo7hw4fTvn17jI2NM03n4+ODiYmJcrGxsfmEUQohhBBCCKHZPosGQGJiIm3atCElJYWFCxdmmdbb25uoqCjlEhER8YmiFEIIIYQQQvNp/BCgtIv/W7du8e+//2Z59x9AV1cXXV3dTxSdEEIIIYTmkheBiYxodAMg7eL/6tWrHDhwgAIFCqg7JCGEEEIIIT5ram0AxMTEcO3aNeV6WFgYoaGhmJmZYWVlRevWrTl58iQ7d+4kKSmJyMhIAMzMzNDR0VFX2EIIIYQQQny21NoACAkJoXbt2sr1QYMGAdC5c2fGjh3L9u3bAXB0dFQ57sCBA3h6en6qMIUQQgghPk8KReqiSTQtnlxIrQ0AT09PUlJSMt2f1T4hhBBCCCFEzn0WswAJIYQQQgghPgyNfghYCCGEEEK8P5kFSGREegCEEEIIIYTIRaQBIIQQQgghRC6Se4YAJURDgjxULIQQQoiPLOG5uiNQUii0UGhp1v1ehUKz4smN5BMQQgghhBAiF5EGgBBCCCGEELlI7hkCJIQQQgiRyygUChQa9uItTYsnN5IeACGEEEIIIXIRaQC8g8KkOH47/8nRMWN9fLEo6fJex34Jxvr44ujRRC1lj5o4k579f/6gea5YsxnTog5Zplm0dA1N237/QcsVQgghhPgYpAHwgV28fI1xk+fwm+8k7l0JplG9WuoOKdeIvP+Q2YtW8MuQPp+87G7ffcPJ0+c5FHTsk5cthBBCZEpLoZnLe5g/fz62trbo6enh6urKsWNZ/z9306ZN2Nvbo6enR8WKFdm1a5fK/pSUFEaPHo2VlRX6+vp4eXlx9epVlTRPnjyhQ4cOGBsbY2pqSvfu3YmJiVHuj4uLo0uXLlSsWBFtbW1atGiRYSz+/v5UrlwZXV1dSpYsyYoVK96rDj4UaQB8YNfDbgHQvEk9LC0Koqurq+aIco8lqzZQvWplihUt/MnL1tHR4dvWzZizaOUnL1sIIYT40m3YsIFBgwYxZswYTp48iYODAw0aNODBgwcZpg8KCqJ9+/Z0796dU6dO0aJFC1q0aMG5c+eUaaZOncqcOXNYtGgRwcHBGBgY0KBBA+Li4pRpOnTowPnz59m7dy87d+7k4MGD9OzZU7k/KSkJfX19+vfvj5eXV4axhIWF0aRJE2rXrk1oaCgDBw7k+++/Z8+ePR+odnJOrQ2AgwcP0rRpU6ytrVEoFPj5+ansHzt2LPb29hgYGJA/f368vLwIDg7+aPFcvR5GzUZt0StkT7mq9dn776F0aSJu36VN576YFnXArJgTzdv35Oat26nx+vjStG0PALRMS6AwKZ5hOf6HjqIwKc5fe/6lUvVG6BWyp1rdrzl34bJKui1//k151wboFrTHtmINZsxdotw3b/EqKlRrqFz32/kPCpPiLFq6RrnNq1lHRk6YoYzN0aMJy1ZvpGh5dwytK9B70CiSkpKY6vsblqWqUqiEC5OmzVeJITziDs3b98TQugLGRSrRpnNf7j94qJJm8syFWJR0wahwRbr3GU5cXHy6c16ycgNlXeqhV8gee2cvFvy+WrmvW59hVKreiPj41OMSEhJw8viKTj8MBuDmrdsoTIqzfvMOqtdrjV4heypUa0jAYdXvwvotO2naqI7Ktt37AvBo8A2mRR0oYFuZr9p05/qNWxl+Lu/it/MfSjnVRq+QPQ1adibi9l2V/U0b1WX73/t5+TIukxyEEEII8T5mzpxJjx496Nq1K+XKlWPRokXky5ePZcuWZZh+9uzZNGzYkKFDh1K2bFkmTJhA5cqVmTdvHpB699/X15eRI0fSvHlzKlWqxKpVq7h7967yevTixYvs3r2bJUuW4OrqioeHB3PnzmX9+vXcvZt6DWBgYMDChQvp0aMHlpaWGcayaNEi7OzsmDFjBmXLlqVv3760bt2aWbNmffiKyia1NgBiY2NxcHBg/vz5Ge4vXbo08+bN4+zZsxw+fBhbW1vq16/Pw4cPM0z//0hOTubrjj+ikzcvwfu3sWjWRIaPmaqSJjExkQZfd8HI0IBDf28g8J9NGBrko2GrLiQkJDCkXw+WL0g95t6VYO5dybqxMnTUZGZM/JnjB/woaG5G07Y9SExMBODEqbO06dKPdq2+4uyRXYwdMYBRk2ayYs1mAGq5V+XCpas8fPQYgIDAYMwLmOH/30VxYmIiR46fwtPDVVne9bBw/t4bwO4tK1i3dDZLV2+iyTfduX03koBd65kybhgjJ84gOCRUWSfN2//Ak6fPCPhrHXv9VnHjZjhtu/ZX5rlx61+MnTybX0cPIcT/T6wsC7HgjUYIwJqNfoz+dRaTRg3m4rG9/Dp6CKMmzWLl2i0AzJkyhtjYl4wYm1p3v4yfwbOoaOZNG6taX6MnM7hvd04d2ombixNN2/Xg8ZOnADx58owLl67i7FRJ5ZjY2BcM6tOdkAN/sn/7H2hpadGyYy+Sk5Oz/Gze9uJFHJOmz2fVbzMI3LOJZ1HRtOs2QCWNs1NFXr16paw/AM8m7eny49AclSWEEEJ8MFqpLwLTpIX/XkwWHR2tsqTdCHxbQkICJ06cULnDrqWlhZeXF0eOHMnwmCNHjqS7I9+gQQNl+rCwMCIjI1XSmJiY4Orqqkxz5MgRTE1NcXZ2Vqbx8vJCS0srRzek3xWLOqh1GtBGjRrRqFGjTPd/++23KuszZ85k6dKlnDlzhrp1637QWPYdCOTSlRvs2boSaysLAH4dM4RGrboq02zY+hfJycksmTdZOYXV8gVTMS3qiP+hYOrXrYGpiTEAlhYF31nmmOH9qVenBgArF06nSLnqbNvxD22+bsLM+UupW6s6o4b1A6B0yeJcuHSNaXN+p0uH1lQoVwaz/KYEHA6mdYvG+B8KZnDf7sxetAKAYydOk5j4iuquVZTlJScns2z+FIyMDClnX4raNapx+eoNdm1ehpaWFmVKFWeK728cOHgEV2dH9vsHcvbCZcLOBGBTxBqAVb/NoLxrA46fOI1LFQd8Fy6n+3dt6N6pLQATRw1mn38gcW/8iMf8OpsZk37m62apPRZ2tjZcuHyN35avo/O3rTA0NOCP32dSq3F7jAwN8V24nAM712BsbKRSX317fEer5qnfl4WzJrB7/0GWrtrIsIE/EH77LikpKVhbFlI5Ji19mmXzp1CwuDMXLl2lQrky7/yM0iQmJjJv+jhcnR1TP69F0ynrUo9jJ05TtUrqA8L58uljYmzErYg7yuOKFrHGKhvfBSGEECK3sbGxUVkfM2YMY8eOTZfu0aNHJCUlYWFhobLdwsKCS5cuZZh3ZGRkhukjIyOV+9O2ZZWmUCHV6wptbW3MzMyUabIjs1iio6N5+fIl+vr62c7rQ/ls3gOQkJDA4sWLMTExwcEh8xlZ4uPjVVqQ0dHR2cr/4pVr2BS2Ul78A7i5OKmkOX32Itdu3MKocEWV7XFx8f+N/a+RrbKU+Vd9nb+ZmSllShbn4pVrqfFcvk7zJqqtRfdqVfBduJykpCTy5MlDzeou+B8OxsvTgwuXr9H7+45Mnb2YS1euE3A4GJfKlciX7/WXyrZoEYyMDJXrFoXMyZNHC603XhFuUcicB//1Kly8ch2bwlbKi3+AcvalMDUx5uKV67hUceDi5Wv06qbaUHOr6sSBQ0eB1Dvw18Nu0b3vCHq8MTvPq1evMHnjAt+tamWG9PueCVPnMnzgD3i4uWRQX5WVf2tra+PsVFFZXy//G6+np6f6zMXV62GMnjSL4JDTPHryVHnnP/z23Rw1ALS1tXGp/Lp3wb50idR6uHxN2QAA0NfX48WLl8r1Vb/NyHYZQgghRG4SERGBsbGxcl2em/x0NL4BsHPnTtq1a8eLFy+wsrJi7969mJubZ5rex8eHcePGfZRYYmJjqeJYgTW/px+zVdDc7KOUmRXPGtVYvGI9h44cx6lSOYyNjajpXhX/Q0cJCDxGLfeqKunz5lX9uBUKBXnz5k23LafDY7ISExsLwO9zfsW1iqPKvjx58ij/Tk5OJjD4BHny5OHae4zRNy+QH4Cnz6IoaF5Aub1p2x4UsynM73N+xdrKguTkZCpUa0hCQuJ7nM27PXn6TC3fBSGEECIjmvwiMGNjY5UGQGbMzc3JkycP9+/fV9l+//79TMfdW1paZpk+7b/379/HyspKJY2jo6MyzdsPGb969YonT55kWm5OYjE2NlbL3X/4DGYBSntiOigoiIYNG9KmTZtMn/gG8Pb2JioqSrlERERkq5yypUsScece9yJf5330eKhKmsoOFbh6/SaFChagZAlblcXE5N1f4Le9mf/Tp1FcuR5G2dIlU+MpU4LAoydU0gcePUHpknbKC+da7q5cuHSVTX67lGP9PT1c2ecfSGDwCTw9quU4pjeVLV2CiDv3VB52vXDpKs+ioilXJi3Okipj3t8+L4tCBbG2suDGzYh0dWZn+7rrb1paz8Wudezef5Dlf2xKF8/R46eUf7969YoToWeV9VXCrhjGxoZcuHRNmebxk6dcvnqDkUP7UNfTnbJlSvL0WdR71cWrV68IOXVWuX756g2eRUVT9r96ALh+4xZxcfE4VSr/XmUIIYQQIj0dHR2qVKnC/v37lduSk5PZv38/bm5uGR7j5uamkh5g7969yvR2dnZYWlqqpImOjiY4OFiZxs3NjWfPnnHixOvrsX///Zfk5GRcXV3JrnfFog4a3wAwMDCgZMmSVKtWjaVLl6Ktrc3SpUszTa+rq6tsUWa3ZQngVdud0iXt6NxrCKfPXuRQ0DF+mTBdJU2HNs0xL5Cf5t/+wKGgY4TdjMD/0FH6DxvH7Tv3cnxu46fOZb9/IOcuXKZL76GYF8hPi6/qATC47/fsDwhiwtS5XLl2g5VrtzDv91UM6ff6ZVOVKtiT39SEtZu241kj9WLf06Mafn/tJT4+AfdqVTIsN7u8antQsVwZOvT4iZOh5zh24jSdfhhMLQ9XnP8bDjOgVxeW/bGJ5X9s4sq1G4z5dRbnL6nOoTvOeyA+MxcyZ9EKrly7wdnzl1j+xyZmzkud1ejU6fOM/tWXJXMn417NmZmTfmHAiAncCAtXyWf+ktVs27GHS1eu02fwGJ4+i6bbd98A/z0MVMudw0dClOnzm5pQwCw/i1es59r1m/wbEMSgnye9V13kzZuXfkPHEhwSyolTZ+ny41CquTipDP85dOQ4xW2LUqJ4MeW2Tj8Mxnvs1IyyFEIIIUQ2DRo0iN9//52VK1dy8eJFfvzxR2JjY+naNfVZzU6dOuHt7a1MP2DAAHbv3s2MGTO4dOkSY8eOJSQkhL59+wKpvRADBw5k4sSJbN++nbNnz9KpUyesra2Vc/mXLVuWhg0b0qNHD44dO0ZgYCB9+/alXbt2WFu/Hh594cIFQkNDefLkCVFRUYSGhhIaGqrc36tXL27cuMGwYcO4dOkSCxYsYOPGjfz0008fv+IyofENgLclJydn+pT4/0NLS4ttaxbyMi6OqnVa8n0/byaNGqKSJl8+fQ7+vYGiRaz5umNvylatR/e+I4iLi8f4jbH12TV57FAGjJhAlVrNibz/kB3rf0dHRweAyo4V2LhiLuu37KRCtUaM/nUW43/+iS4dWiuPVygU1KjugkKhwKNa6hPqlSrYY2xkiLNTRQwM8v0fNZKa/5/rfiO/qQk1G7fDq/l3FLctyoblc5Rp2rb6ilFD+zJs9BSq1GrOrYi7/PjWMwHfd27Lkrk+LP9jMxXdGlOrcXtWrN2CXTEb4uLi6dhzEF2+bUXTRqkPdvfs2p7aNarx3Q+DSUpKeqO+hjF51iIc3Jtw+GgI29ctxryAmUo567fuVA5h0tLSYv2y2ZwIPUcFt4b89PNEpk3w5m3ZmaknXz49hg/8gW+7D8S9wTcYGuRTqQeAdZt30KNzW5Vt4bfvcu/+h5+1SgghhMgOhZZCI5ecatu2LdOnT2f06NE4OjoSGhrK7t27lQ/XhoeHc+/e65ux1atXZ+3atSxevBgHBwc2b96Mn58fFSpUUKYZNmwY/fr1o2fPnri4uBATE8Pu3bvR09NTplmzZg329vbUrVuXxo0b4+HhweLFi1Via9y4MU5OTuzYsQN/f3+cnJxwcnr9nKednR1//fUXe/fuxcHBgRkzZrBkyRIaNGiQ43r4UBQpKSkp6io8JiaGa9dSh2w4OTkxc+ZMateujZmZGQUKFGDSpEk0a9YMKysrHj16xPz581m7di0nTpygfPnsDbOIjo7GxMSEqIjT6WaVURf/Q0ep/dW3PL0ViqlpzocO5TY3b93GrlJNTh3aiWOlcpmmS0lJwbVOS37q0432rZtlO/9iFTwY5z1QpXGVU+cvXqFO0w5cObH/vYaDCSGE+HJERz/HxMaBqKiobI9E+PAxpF7/3OpUF2MdzXrkMzrhFcVW7Vdr/eR2av1GhISEULt2beX6oEGDAOjcuTOLFi3i0qVLrFy5kkePHlGgQAFcXFw4dOhQti/+Re6iUChYPPtXzr71QrWsnL94BRNjIzq1//r/Kvte5ANWLZohF/9CCCGE0HhqbQB4enqSVQfE1q1bP2E04kvgWKlclr0EbytftjRngv7+v8v1qu3xf+chhBBCfHAKReqiSTQtnlxIs/qEcgnPGtVIibqh7jA+G7bFikh9CSGEEEJ8IJ/dQ8BCCCGEEEKI9yc9AEIIIYQQXyiFFu81687HpJDbz2onH4EQQgghhBC5SO7pAdAxBh3NmAZUCCGEEF8wHc264y7E23JPA0AIIYQQIrdR/LdoEk2LJxeSIUBCCCGEEELkItIAEEIIIYQQIheRIUBCCCGEEF8qeRGYyID0AAgAFPrm+G3f9cHz9azfjIFDfvng+X5In0OMudHNW+Eo9M0JPX32k5b7sX4L6vI+9Th24hQcXT0/XlC53IeqX/mchBDvSxoAH9iK1evwrN8MSL2wXLF6nXKfbRkn/A8exv/gYWzLOGX7GIW+Oes3bk1XVvnK7ij0zVXSv4um/Q9DE+LZun4lE8aMUGsMb7Mt44Tv3EXqDiNXuhd2nkYN6qo7DPGFyKhBOWRgH/bvSv9v+qfI53287/+7MjpGCKEZ1NoAOHjwIE2bNsXa2hqFQoGfn1+maXv16oVCocDX1/eTxacpbIoUZvlbF/lHg0OIvP8AAwMDNUWl+RITE7OVzswsP0ZGMkWsuqSkpPDq1St1h6FkaWmBrq6uusP47GX395cbGRoaUqCAmcbkI75saSOANG0R6qXWBkBsbCwODg7Mnz8/y3Tbtm3j6NGjWFtbf6LINEuHdq0JOBRERMQd5bZlq9bQoW1rtLXzqKR99iyK738cQEGbMhgXsqVOwxacPnMOSL1bM27SNE6fOYdC3zxd78Gjx49p2aYT+cxsKFXBhe07/1bJO+BQIFU96qFrYo2VXTlGjByvcuEWGxtLp+69MTQvhpVdOWb4Zv25ZhVPePhtmn/TEUPzYhgXsqVNh+7cv/8g07zShjls2LSNWvWaomdamDXrN/P48RPad+pB4eIVyGdmQ0XnGqzbsEXl2LeHAC34bRmlKrigZ1oYi2Jlad2+q3JfcnIyPtN8sbOvjH7+IjhUrcXmrduzPM/Vazfi7F4Xo4LFsLQtx7ede/LgwcNM03vWb8at8Ah+GjZSWS9ptmzbQfnK7uiaWGNbxumddZzWw/LbkhXYlKxEPjMb2nToTlRUtMo5jf91GkVKVETXxBpHV092/7Nfub91+670HThcuT5wyC8o9M25dPkqAAkJCRgUKMq+fwOyVUf+Bw+j0Dfn7z37qFK9Drom1hwOOprpOVy6fJXqno3QMy1MhSoeBBwKzPKcM7pTampZXPndSkhIoO/A4VjZlUPPtDDFSjviM803w+PTvldb/XZSu0Fz8pnZ4FC1FkeOHlfJ//dlq5T127JNJ2bOXoCpZfFMY0zLd+NmP2rU/Qr9/EVwcffiytVrHA85ibN7XQzNi9GoeVsePnykPO5dnxXAseMncapWGz3Twji71+VUqOrQnxWr16WLzW/7LpXv2duOh5ykXpNWmBcpjYmFHbXqNeXkqdMqaRT65ixcvIxmrTtgUKAok6bMzDCv+Ph4howYTeHiFTAoUBTXGvXxP3gYgLi4OMpXdqdnn5+U6a/fCMOoYDGWrVyjEr/f9l3K32mDpt+o/PsIsHDxMkqUc0bH2IoylVxZvXZjuniXLF+d5b95585fpFHzthiaF8OiWFm+6/Yjjx49Vu73rN+M/oO8GfbzWMysS2JpW46xE6co96fd+W7ZthMKfXPl+ts9n++q3+zm867vR3a/z0KIL59aGwCNGjVi4sSJtGzZMtM0d+7coV+/fqxZs4a8efN+wug0h0WhgjSoV5uVa9YD8OLFCzZs9qNb52/Tpf2mQzcePHzE337rORG0n8qOlajb+GuePHlK29YtGDygN+XL2XMv7Dz3ws7TtnUL5bHjJk2jTavmnDkeQOMG9ejQtRdPnjwF4M6dezRu0R4XZydOHwtg4ezpLF25homTZyiPH/rzWAIOBfHnptX8s2Mz/ocCORl6JtPzyiye5ORkmrf5jidPnhHwz5/s3bmFGzdv0va7799ZVyNGTWBAnx+4GBpEA6/axMXFU8XJgb+2rePciUP07NaJ77r35tjxkxkeH3LiFP0HezN+1Agunz7K7j83UNPDTbnfZ5ovq9ZsYNHc6Zw/eZif+vWiY7cfs7woTUxMZMJob04fC8Bvwypu3oqgS89+mabfun4lRQpbM370CGW9AJw4GUqbjt1p901LzoYcZOzIYYwaP/mdQ8CuXQ9j45Y/2bFlDbu3b+DU6TP0HjBUuX/2vN+YMXsB033GceZ4AA28atOsdUeuXrsOQK0a1fF/4/wCDgdhbl5AedF2POQUiYmJVK/mkqM6GjFqApMnjOZiaBCVKpTPNP6hP49l8IDenDp6ADdXZ5q26sDjx0+yPOeszJm/mO1/7Wbj6qVcPn2UNcsXYVvUJstjfhk7iSED+xAafIDSJUvQvnNPZeM3MCiYXv2GMKBPT0KDD1CvrieTps7KVixjJk5h5IhBnDzyL9ra2nzb5QeG/TKO2dN+5dC+HVy7foPREyYr07/rs4qJieGrVt9Szr40J4L2M/aXYQzxHvOeNfXa85gYOndsy+H9f3E0YA+lShanccv2PH/+XCXd2EnTaNmsCWdDDtKtU4cM8+r703COBIewftXvnDkewDdfN6Nhs7ZcvXYdPT091ixfxMo/NvDnjl0kJSXRseuP1KvjSbfOr/N78eIlk6bMZNWSBQT++xfPnkXRrlMP5f5tf/7FgCG/MHhAb86dOMQP3TvTtWc/DgQcUoklq3/znj2Lok6jljg5VCQkcB+7/9zA/QcPadOxu0oeK9esx8AgH8EH9zB10hjG/zqdvfv9ATh+eC8AyxfP5V7YeeV6Tus3u/m86/uRJqvvsxAil0jREEDKtm3bVLYlJSWl1K5dO8XX1zclJSUlpVixYimzZs3KUb5RUVEpQErU/bCUlJePPrulWFGblFlTJ6b4bVyVUqK4XUryi4cpK5fMT3FyrJiS8vJRiomJccryxXNTUl4+Sjm0b2eKsbFRStyzOyp5lChul/LbvBkpKS8fpYz5ZWiKQ6UK6coBUkaOGKxcj3l0KwVI+fvPDSkpLx+l/Dzsp5QypUumJL94qEwz33dqiqGhQUpS7IOU5w9vpujo6KRs/GOpcv/jO1dT9PX1U/7H3n3H13T+ARz/3OwhQ8gkiT1DYouovRUprVmrRmmCCEpQYkZtapW2RmuVWkWDIvYMMSO2WDFKciXIvL8/UvfnNkMS4V7yfb9e59Wc8zzneb7n3ETP957nPGeQz9cZHl968ezcul6lr6+virx8Rr3twqlDKkB1/MDOdNu5cemUClDNnjbpjee0ZfPGqiGDvlGv1/2kljrGP1YvU1laWqiUD9P+vryMvqsyMzNTHd77l8b2Xj26qDq1b5vlz/TEwV0qQPXs0c03fu6vb+vcoZ2qccN6GtuGDfZVlStbOtPzq6+vr7pz9Zx621+b16r09PRU929cUKlePFY5OTqoJo0bpbFftSqVVN98/ZVK9eKx6uyJ/SqFQqF6GHlJ9eTeVZWRkZFqwtgAVYfPvVWqF49VEwNHqmrVrJ7lc7R3xyYVoNr0+4pMz9Orz3TKhDHqbYnPolSFCzmpvp84JsP9ANXGtZptv/53MqB/H1WDep9o/C5ntP+rGH5aODvN72J42BGV6sVjVYfPvVUtmzfWaKNLx89VVlaWbzy219tdvXyxClDt/muDelvQ+O9UpUuVUK+/6bP6cd4MVYECNqoXT++oyxfOnaYCVKeP7lWpXjxWLV38Q5rYNq5doQIy/bt8fUmOe6iysMin+vOPlRrnzc8347911YvHqlsRYSp9fX3V3WvnNLY3rF9HFTDMT70+ddJYVcGCBVS+/XqrHB3sVY/vXFaXLV38gwpQHd23Q70tPOyIClAd25/670OtmtVVfb7qqtHHF23bqFo0a6QRb2b/5k0YG6Bq0qi+Rhu3r5xVAaqIs0dVqhep/3bUrlUzzecxfMjATH8fc3p+39TOm34/svL7LEvuLDEPbqRee8TE5MYlUo68uv653beJKsa3pU4tt/s20fr5yet0+iHg77//HgMDAwYOHJjlfeLj41EqlRrLx6Bl8ybExsWx/+Bhflm+Mt1v186cu0BsbBwFCpUiX0FX9XLj5i2uXb/5xj4qupVT/2xubo6lpQUP/x1+EH7pMp41qqF4beCel2d1YmPjuHPnHteu3yQhIYEa1aqoy21s8lO6VIlsH2v4pcs4Fy6Es3Mh9bZyZUtjbW1F+L/DTjJStbKHxnpycjITgqZToeon2DiVIF9BV3bs2kvkf4YLvNK4YV1cXZwpVq4qXb/qz8rV63j+/DmQ+k368+fPafzp5xrnd8XK3zM9v6GnwmjVrjMuJd2xsHWlbpM2ABnGkJHwiMt4eVbX2OblWZ0rV6+TnJyc4X4uzoUpVMhRve5ZoxopKSlEXLmKUvmMe/ej0m03/NJlANzKl8XGJj/7DhzmwKEjVHKvwKfNm7Dv4GEA9h04TL06XkD2zlHVyll7MNCzZlX1zwYGBlSt7PHG34PM9OjakbCz5yldsQYD/QPY+ffeN+7z+t+Go4M9AA8fpQ7jirhyjepVK2vU/+96Vtq1t7cFoEJ5zW2v/gaz8lmFX7pMRbdymJiYqMs9a1TLUiyZefDgIX2+8aOkWzWs7ItiaVeU2Ni4NL/D//37+69zFy6SnJxMqYo1NX4/9h04zLXrN9T1hvj5UKpEceYt+olffpybZpy7gYEB1ar+//enTOmS//778O95iLiMl2cNjX1Sz5Pm701m/+adOXuBvfsOasRZxiP1buDrv8sVK5TTaNPR0V7dRlZl9fxmJiu/H+qYM/l9FkLkDTr7HoDQ0FDmzJnDqVOnNC463yQoKIhx48a9w8i0w8DAgK6dvmDshO85duIUG9euSFMnNjYORwd7QnZuTlNmbWX1xj7+O8RKoVCQkpKS86C1wNzcTGN92sx5zJm/mNnTJlKhfDnMzc3wGzaKhISEdPe3sLDg1JE9hOw/xM6/9zJmwvcETprKiYN/ExsbB8C2jaso5OSosZ+xUfoPjcbFxdG0dXuaNqrPyqWLsLUtSOTtOzRt9UWGMegahUJBHS9PQvYfwtjYiHp1vKhYoTzx8QmcvxDO4aMnGOrnA5Ctc/Tfzyo341WpVBrbEhP/P7yhciV3boSf4q8df/P33n20/7IXjerXZf3qpRm2+frfxqt/j3LjbyO9dv+7Lbf/BvX09NI5P5k/sNu9jy///POEOdMn4+rijLGxEZ71mqf5HX7TpASxsXHo6+sTevhv9PU1n1/K99q+Dx8+4vLVa+jr63Pl6nWaNXk3szJl9m9ebFwcrVo05ftJY9Ls9+qiGcDQ4D9tkP3PLKvnN7e8q99nIcSHQ2fvABw4cICHDx/i4uKCgYEBBgYG3Lp1iyFDhlCkSJEM9wsICCAmJka93L59+/0F/Y591b0L+w4cps2nzcif3zpNeeVKFYl68BADAwNKFC+msRQsWAAAIyOjTL8tzkjZMqU4cuyExoXDoSPHsbDIR+HCThQvVgRDQ0OOnQhVlz99Gs3lK9fSa04tvXjKlinF7Tt3NR7quxgeQXR0DOXKlMpW3IeOHqPNp835slN73Cu6UaxokTfGZGBgQKMGdZk6OZCzJ/Zx89Zt9oQcoFzZUhgbGxN5+26a8/v63YrXXYq4wj//PGHKhDF8UtuTMqVLZumbNiMjw7TnpXQpDh05rnl8R45TqmTxNBdTr4u8fYd79+6r148eP4menh6lS5bA0tICJ0eHdNstV6a0ev3VcwAhBw5Rr44Xenp61PHyZNqsecTHx6u/dczJOXqTo8dOqn9OSkoi9PQZypYumWF9W9uC3I96oF6/cvWa+i7OK5aWFnT44jOWLJjN2l9/4o9Nf6rHfmdX6ZLFORF6WmPbf9dzQ1Y+q7JlSnH2/EVevnypLj96/KRGfduCBXj2LJa4uDj1trB/JwrIyKEjxxjo05cWzRpTvlwZjI2MNR6GzapKHhVITk7m4cPHaX4/HF67qP6q3yAqlC/L8iXzGD56fJpvsJOSkjgZGqZej7h8hejoGMqWTv33IfVv5dh/juE45cpm/d+Pyh4VuRB+iSKuLmlizc7sa4aGaf+W/ysr5/dN7WT1b1nkPdqe7UdmAdJNOnsHoGvXrjRq1EhjW9OmTenatSs9e/bMYC8wNjb+aKfwK1umFI/vXMbMzDTd8kYN6uJZoxre7bsxddJYSpUszr17UWwL3sVnrVtQtUolirg4c+NmJGFnzlG4kBMWFvmydL6+6fsVs+f9yIDBI/Dt35uIy1cYO/F7/Af2R09Pj3z58tGrRxeGjQykQIH82NnaMipwEnp6mf+VpxdPowZ1qeBWji49v2b2tEkkJSXzjd8w6n5Si6pVsjefdMnixVi/8U8OHzlO/vzWzJy7gAcPH2X4P8St23dw/cYt6tT2JL+1Ndt37CIlJYXSpUpgYWHBUD8fBn87mpSUFGrXqkFMjJJDR45jaWlB9y87pmnPxbkwRkZG/LBwCf369OD8hXAmBM1Ip+f/nBdXF/YfOkLHL9pibGxEwYIFGDLoG6rVbsyEoOl0+NybI8dOMm/RzyyYMzXTtkxMTOjex5fpQeNQKp8xcEgA7du1UV9wDRvsy9iJ31O8aBE83N1YumI1YWfPs3LZ/99DUK+OF4O/HY2RkRG1a9VQbxsaMJZqVSqpL4hyco7eZP6Pv1CyRHHKlinFrB8W8jQ6WuOB0P9qULc28xb9hGeNqiQnJzN89HiNbzxnzlmAo4M9lTwqoqenYN2GzTg42GFt/ea7ZOkZ0L8PdRq3YuacBbRq2ZQ9IQf4a+fubN25zKo3fVadO7RjVOBk+nwzmIBhfty8Fcn0/8wUVaNaFczMzBg5ZhIDffpw7HjoGx8kL1miWOpsVpU9UCqfMWzkWExN0/93KDOlSpagS8fP6dbbhxlTxlPJowKPHv3D7pD9VHQrR8vmTZi/6GeOHDvB2eP7cXYuxLbgXXTp+TVH9+3AyMgISL0YHuA/grkzgjAw0Md38AhqVq9K9WqV1eep/Ze9qORegUYN6vLnth1s2LyVv7f/kVl4Gny+/oolS3+lU7e+fOvvi41Nfq5eu8GadRv5aeHsTJPu1xVxdWZ3yH68PKtjbGyc7pc3WTm/WWknK3/Lb3L37n0atviMFT8tUJ9PIcTHR6t3AGJjYwkLCyMsLAyAGzduEBYWRmRkJAUKFMDNzU1jMTQ0xMHBgdKl8+63GQUK2GT4P16FQsH2Taup4+VJz74DKFWhBh279eFW5G3s7ewAaPdZK5o1bkD9Zt7YOpdmdTovGEtPoUKObN+0muMnT+FevS79Bg6lV/cujB4xRF1n2uRAPvGqSat2X9KoZTtqe9agSiX3TNtNLx6FQsHm338lf35r6jRuTaOWbSlWpAhrf/0pi2fp/0aPGEJlj4o0bf0F9Zq2wcHeHu9WLTKsb21lxYbNW2nQ/DPKVqrFop+Ws3r5YsqXKwPAhLEBfDdiCEHTZlPWoxbN2nRgW/AuihZxSbc9W9uCLFv8A+s2bKFcJS+mTJ/L9KA3D1Eb/90Ibt66TfHyVbF1Tv19r1zJnd9/+5k16zbiVuUTxoyfwvjvhtOja6dM2ypRvCht27SkhXdHmrT6gopu5VkwZ5q6fKBPX/wH9mfIiDFUqFqH4F172LL+N0qWKK6uU8GtHNbWVnhUdCNfvnxAagKQnJysHv//SnbP0ZtMmfAdU6bPwb16XQ4ePsaW9b+p72ilZ8aU8TgXLsQnjVrRucfXDPXz0UiaLSzyMXXWPKp6NaJa7cbcvHWb7RvXoKeXs38OvWrVYNEP05k5dyHu1esRvHMPgwf0w8Qk97+IeNNnlS9fPv5cv5JzF8KpVLM+owIn8/1EzVmAbGzy89svC9m+YxcVqtZh9boNBI7+NtN+f144h6dPo6ns2YCuvfoz8Ju+2NlmPG1oZpYu/oFuXdozZMQYSlesiXf7rpw4eRoX58JcirjCsJGBLJg9VX3HaMGcaTx+/ITvxgWp2zAzM2X4kIF07vE1Xg1aki+fuca/D96tWzBn+iSmz15A+cq1+fHn5Sxd/AP16tTOcpxOTo4c2rON5ORkmrT6ggpV6+A3bBTWVpbZ+l2ZMWU8u3aH4FzSnUo166dbJyvnNyvtZOVv+U0SkxKJuHyV5y+ev7myEOKDpVD9dzDoexQSEkL9+mn/IevevTvLli1Ls71IkSL4+fnh5+eX5T6USiVWVlbEPLiBpaW87EnkLYETv2fTn38RdixE26HkKX2+8eNSxFUO7N6q7VA+Ost+XY3fsFFER13XdihCZEipfIaVfVFiYmKwtLTUUgyp1z93vm6KpbFuTaOujE+k8I87tHp+8jqtDgGqV69emofRMnPz5s13F4wQQuTQ9FnzaNywHubmZvy1YzfLf1v7xqFZQgghhLbo7DMAQgjxoTh+8jRTZ83j2bNYihV1Ze6MyfTu2VXbYQkhhBDp0uoQoPdBhgAJIYQQ4n3SqSFA/XV0CNBCGQKkTTo7DagQQgghhBAi90kCIIQQQgghRB4izwAIIYQQQnykFArFO3kvydvQtXjyoryTAKQkpC5CCCGEEO+SXG8IHSdDgIQQQgghhMhD8s4dACGEEEKIvEahSF10ia7FkwfJHQAhhBBCCCHyEEkAhBBCCCGEyEMkAchlgZOm41GzkbbDEEIIIYRQjwDStUVolyQAQgghhBBC5CFaTQD2799Pq1atcHJyQqFQsGnTJo3yHj16qOevfbU0a9ZMO8EKIYQQQgjxEdBqAhAXF4e7uzvz58/PsE6zZs24f/++elm9evV7jDDnfvz5V5xLVcGsYDHad/2amBiluuxEaBiNP+1AQZfyWDmWpm7Ttpw6fVZdrlKpCJw0HZfSVTHOXwSn4pUYOHS0ujw+Pp6hAeMoVKIy5rbFqVG3JSH7D7/T45k590cqVGuAuW1xnEtV4Ru/AGJj495pn0IIIYR4S3oK3VyEVml1GtDmzZvTvHnzTOsYGxvj4ODwniLKHVev3+T3P/7kz3XLUT6Lpdc3Q/jGL4CVS1MTnWfPYunepT0/zJiISgUz5i6iRduuXDl7CAuLfPyxaRuz5i1hzbKFlC9XiqgHjzhz7qK6fV//UVy8dJk1yxfi5GjPxi1/0cy7C+eO76ZkiWLpxtTcuwsHDh/LMGZXl8JcOBmSYbmenh5zp0+gaBEXrt+4xTeDA/h29EQWzA7K2UkSQgghhBBaofPvAQgJCcHOzo78+fPToEEDJk6cSIECBTKsHx8fT3x8vHpdqVRmWPddefkynhU/zaGQkyMAP0yfSMt2XZkRNBYHBzsa1KutUX/xvGlYO5Vh38EjfNq8MZG37+Jgb0ujBp9gaGiIi3NhqletBEDk7Tss/XUtkREncHJMTYyG+vUneNdelv66lsnjAtKN6acF03nx4mWGMRsaGmZ6TH6+fdQ/F3F1ZuKY4fQbNFwSACGEEEKID4xOJwDNmjWjbdu2FC1alGvXrjFy5EiaN2/OkSNH0NfXT3efoKAgxo0b954j1eTiXEh98Q/gWaMKKSkpRFy5hoODHQ8ePGL0+O8JOXCEh48ek5yczPPnL4i8fReAL9p+yuz5SyhWvibNGtenRdOGtGrRGAMDA85duERycjKl3DWTiPj4BAoUyJ9hTK/HkxN/79lP0PR5XLp8FeWzZyQlJfPy5UueP3+OmZnZW7UthBBCiHdE8e+iS3QtnjxIpxOAjh07qn+uUKECFStWpHjx4oSEhNCwYcN09wkICMDf31+9rlQqcXZ2fuexZkf3voP458lT5kwdj6tLYYyNjfBs0IqEhEQAnAsXIiLsAH/vPcCuPfv5xi+AabMXsG/HBmJj49DX1yf0YHCaJCifuXmGfb7NEKCbt27z6efd6d+7G5MCh2OT35qDh4/T65shJCQkItf/QgghhBAfDp1OAP6rWLFiFCxYkKtXr2aYABgbG2NsbPyeI9MUefsu9+5HqYfoHD1+Cj09PUqXLA7AoaMnWDAriBbNUo/h9p27PH78RKMNU1NTWrVoQqsWTfDp24Mylepw7nw4ldzdSE5O5uGjf/jEq0aWY3qbIUChp8+SkpLCjClj0dNLfW789w1/ZrlvIYQQQgihOz6oBODOnTv8888/ODq+3XCWd83ExJjufQYxffIYlM9iGThsNO3btsLBwQ6AksWL8uvq9VSt7I7y2TOGjZqAqamJev9lv64lOSWZGlUrY2Zmym9rNmBqaoKrS2EKFLChS4e2dOszkBlBY6nk7sajx/+we+9BKlYoS8tm6b+E7G2GAJUoVoTExER+WPgLrVo05tCREyz66dcctyeEEEKI9+PVNOq6RNfiyYu0Og1obGwsYWFhhIWFAXDjxg3CwsKIjIwkNjaWYcOGcfToUW7evMnu3btp06YNJUqUoGnTptoM+41KFCtC2zYtaNG2K01ad6KiWzmNh2V/XjCDp9ExVPZqStfeAxnYvxd2tgXV5dbWlixZugqvRm2oWKMhf+89wJ/rllOggA0AS3+cRbfOnzMkYBylPT7Bu8NXnDgVhkvhQu/keNwrlmfmlEC+nzkft2r1Wbl2A0EZPGwshBBCCCF0m0KlUqm01XlISAj169dPs7179+4sXLgQb29vTp8+TXR0NE5OTjRp0oQJEyZgb2+f5T6USiVWVlbE3I/A0tIiN8MXQgghhEhDqXyGlWNpYmJisLS01FIMqdc/9/1aYmmc+Ux/75syPhHH2du0en7yOq0OAapXrx6Z5R87dux4j9EIIYQQQnxkZBYgkQ6tDgESQgghhBBCvF+SAAghhBBCCJGHfFCzAAkhhBBCiKxT6ClQ6OnWmBtdiycvkjsAQgghhBBC5CGSAAghhBBCCJGHyBAgIYQQQoiPlcwCJNIhdwCEEEIIIYTIQ7KVACQmJmJgYMD58+ffVTxCCCGEEEIIIDg4mIMHD6rX58+fj4eHB507d+bp06c5bjdbCYChoSEuLi4kJyfnuEMhhBBCCPGeKBS6uYgsGTZsGEqlEoBz584xZMgQWrRowY0bN/D3989xu9keAjRq1ChGjhzJkydPctypEEIIIYQQInM3btygXLlyAPzxxx98+umnTJ48mfnz5/PXX3/luN1sPwQ8b948rl69ipOTE66urpibm2uUnzp1KsfBiPdn8S+/ser3jZwKO8ezZ7E8vRuOtbWVtsMSQgghhBD/MjIy4vnz5wD8/fffdOvWDQAbGxv1nYGcyHYC4O3tnePO8qKEhASMjIy0HUYaz5+/oFmjejRrVI+AsUHaDkcIIYQQ74AujrjRtXh0We3atfH398fLy4vjx4+zdu1aAC5fvkzhwoVz3G62E4CxY8fmuLP/2r9/P9OmTSM0NJT79++zcePGNAlGeHg4w4cPZ9++fSQlJVGuXDn++OMPXFxcci2O3BQ4aTqb/gzGt19PJk2dy63IO6TE3iU6OoahI8ezedsO4uMTqFrJnVnfB+JesTwAZ85ewG/4WE6eOoNCoaBk8aL8+MNUqlZ2fydx+vn2ASBk/+F30r4QQgghhHg78+bN45tvvmH9+vUsXLiQQoUKAfDXX3/RrFmzHLebo/cAREdHs379eq5du8awYcOwsbHh1KlT2NvbqwPLiri4ONzd3fnqq69o27ZtmvJr165Ru3ZtevXqxbhx47C0tOTChQuYmJjkJOz35ur1m/yxaTsbVv2Evr4+AF982RdTUxP+2rgSK0sLfvz5Vxp+2p7LYQexsclPl698qeTuxsLZQejr6xN29gKGBhl/PM29u3Dg8LEMy11dCnPhZEhuH5oQQgghhHhPXFxc2Lp1a5rts2bNeqt2s50AnD17lkaNGmFlZcXNmzfp06cPNjY2bNiwgcjISFasWJHltpo3b07z5s0zLB81ahQtWrRg6tSp6m3FixfPbsjvXUJCIiuWzMXWtgAABw8f43hoGA9vnsXY2BiA6UFj2bR1B+s3baPvV18Seecuw/z6U6Z0SQBKliiWaR8/LZjOixcvMyw3NDTMpaMRQgghxAdLT5G66BJdi0fHZGdsv6WlZY76yHYC4O/vT48ePZg6dSoWFhbq7S1atKBz5845CiI9KSkpbNu2jW+//ZamTZty+vRpihYtSkBAQKbPIcTHxxMfH69ef5sHJHLK1aWw+uIf4My5i8TGxlHAubxGvRcvXnLt+k0A/Af0pbfPUH5dvZ5G9T/hi7atKF6sSIZ9FHJyfBehCyGEEEIILbK2tkaRxQclcjo1f7YTgBMnTvDjjz+m2V6oUCGioqJyFER6Hj58SGxsLFOmTGHixIl8//33BAcH07ZtW/bu3UvdunXT3S8oKIhx48blWhw5YW5mqrEeGxuHo4M9IcHr09S1tkrN3AJHDaVz+8/YFrybv3buYeykGaxZvpDPWqd/h0SGAAkhhBBCfHz27t2r/vnmzZuMGDGCHj164OnpCcCRI0dYvnw5QUE5n8Ql2wmAsbFxut+qX758GVtb2xwH8l8pKSkAtGnThsGDBwPg4eHB4cOHWbRoUYYJQEBAgMaLEZRKJc7OzrkWV05U9qhA1IOHGBgYUMQ141hKlSxOqZLFGTygL52692fpr2syTABkCJAQQggh3kSB7s26o2Ph6JzXr3HHjx/PzJkz6dSpk3pb69atqVChAosXL6Z79+456iPbCUDr1q0ZP348v//+OwAKhYLIyEiGDx9Ou3btchREegoWLIiBgYH65QevlC1bVuOVyP9lbGysHmevKxo1qINnjSp4d+jJ1ImjKVWyOPfuR7EteDeftW5O+bKlGDZqAp97f0rRIi7cuXuPE6fO0K5NiwzbfNshQFFRD4l68JCr128AcO7CJSzymePiXAgbm/xv1bYQQgghhHh7R44cYdGiRWm2V61ald69e+e43Wy/CXjGjBnExsZiZ2fHixcvqFu3LiVKlMDCwoJJkyblOJD/MjIyolq1akRERGhsv3z5Mq6urrnWz/ugUCjYvuE36tSuSc9+/pRyr03H7v25FXkHe7uC6Ovr888/T+nWZyCl3GvTvms/mjepz7jRQ99ZTIt+XkGlWk3o4zMMgDpNPqNSrSZs2bbznfUphBBCCCGyztnZmSVLlqTZ/tNPP73VCBeFSqVS5WTHgwcPcvbsWWJjY6lcuTKNGjXKdhuxsbFcvXoVgEqVKjFz5kzq16+PjY0NLi4ubNy4kQ4dOjB//nzq169PcHAwfn5+hISEULt27Sz1oVQqsbKyIuZ+BJaWFm/eQQghhBDiLSiVz7ByLE1MTEyOZ2l5+xhSr38eBrTB0kS3hgUrXyZiF7RZq+fnQ7F9+3batWtHiRIlqFGjBgDHjx/nypUr/PHHH7RokfFokczkOAHIDSEhIdSvXz/N9u7du7Ns2TIAfvnlF4KCgrhz5w6lS5dm3LhxtGnTJst9SAIghBBCiPdJEoDMSQKQPXfu3GHBggVcunQJSB0O369fv/d/B2D37t3MmjWL8PBwdSB+fn45ugvwrkkCIIQQQoj3SRKAzEkCoH3Zfgh4wYIFDBo0iM8//5xBgwYBcPToUVq0aMGsWbPw8fHJ9SCFEEIIIUT2KRQ6OAuQjsWj66Kjozl+/DgPHz5Uz5L5Srdu3XLUZrYTgMmTJzNr1ix8fX3V2wYOHIiXlxeTJ0+WBEAIIYQQQohc8Oeff9KlSxdiY2OxtLTUeEGYQqHIcQKQ7VmAoqOjadasWZrtTZo0ISYmJkdBCCGEEEIIITQNGTKEr776itjYWKKjo3n69Kl6efLkSY7bzXYC0Lp1azZu3Jhm++bNm/n0009zHIgQQgghhMhlegrdXESW3L17l4EDB2JmZpar7WZpCNDcuXPVP5crV45JkyYREhKifiXx0aNHOXToEEOGDMnV4HKT6vkDVPpx2g5DCCGEEB851fNYbYcgPhJNmzbl5MmTFCtWLFfbzVICMGvWLI31/Pnzc/HiRS5evKjeZm1tzS+//MLo0aNzNUAhhBBCCCHyopYtWzJs2DAuXrxIhQoVMDTUnNGpdevWOWo3SwnAjRs3ctS4EEIIIYTQIpkG6IPWp08fAMaPH5+mTKFQkJycnKN2sz0LkBBCCCGEEOLd+++0n7kl2wmASqVi/fr17N27N935SDds2JBrwQkhhBBCCCFyV7ZnAfLz86Nr167cuHGDfPnyYWVlpbGIrLsZeQ89u8qEnYvIsM6yNVvIX6KOej1w6iIq1e/4Vv3W9+6D3+hpb9WGEEIIIXTfqxFAuraIrNu3bx+tWrWiRIkSlChRgtatW3PgwIG3ajPbdwB+/fVXNmzYQIsWLd6qY5E1Hdo0oUXD2toOI1eEHDrJkDEzuRBxDWcne0b596ZHx5w9vCKEEEII8bH77bff6NmzJ23btmXgwIEAHDp0iIYNG7Js2TI6d+6co3azfQfAysoq16Yi2r9/P61atcLJyQmFQsGmTZs0yhUKRbrLtGl559trU1MT7GxttB0G0THPUD7L+bRmN27d5dMuA6nnVZXTe1Yz6OvO9Bk8gR17DudilEIIIYQQH49JkyYxdepU1q5dy8CBAxk4cCBr165lypQpTJgwIcftZjsBCAwMZNy4cbx48SLHnb4SFxeHu7s78+fPT7f8/v37Gssvv/yCQqGgXbt2b933uxCjfIaBQ1VOhqVOj5qSkkKBUvXwbP7/1zT/tm4bLh7NNfa7fusODT7ri7lrLTzqdeDIiTPqsv8OAUrPT79tpJxXW0yda1K2VlsW/PL7G2NNSkrGd8QUrIvXwbZMA76bsgCVSpVh/TMXLuPo1oSu/UexK+Roth9KWbR8PUVdCjFjvD9lSxXDt1dHPm/VkNk/rsxWO0IIIYTIBm2P9ZExQG/l+vXrtGrVKs321q1bv9UsndlOANq3b8/Tp0+xs7OjQoUKVK5cWWPJjubNmzNx4kQ+++yzdMsdHBw0ls2bN1O/fv1cfxlCbrGytMDDrRQhh04CcO7iVRQKBafPRRAb+xyAfUdOUddT8zyNDprPkG+6cnrPakoVd6Vzv5EkJSVlqc+V67cz9vuFTAzw4eLBP5g00ocx3y9k+Zo/M91vxdqtGBjoc2zHCmZPHMqsRb/x029p3/D8Sh3Pymxf/QNGxkZ80etbilRuychJPxBx9WaW4jx68iwN61TX2NakvidHTp5Try9bswU9u+z9DgkhhBBCfKycnZ3ZvXt3mu1///03zs7OOW43288AdO/endDQUL788kvs7e1RvKcs7sGDB2zbto3ly5e/l/5yqm6tquw7fJKhPt0IOXySxnVrcOnKTQ4eP02zBl7sO3SSYb7dNfYZ8k03Wjb+BIDAb/vh9snnXL1xmzIli76xv8Cpi5g+zp+2nzYEoKhrIS5evsHiFX/QvWPajPEV50L2zJowFIVCQekSRTgXfpXZP66kT9e26dZXKBTUrVWFurWqMC9oOJv+CuHX37cyff6vVHEvQ/cOrenUtilWlhbp7h/18B/sbQtobLO3LYDyWSwvXrzE1NQEK4t8lC5R5I3HLIQQQgiRFwwZMoSBAwcSFhZGrVq1gNRnAJYtW8acOXNy3G62E4Bt27axY8cOatd+vw+mLl++HAsLC9q2Tf8C9ZX4+Hji4+PV60ql8l2HpqFurSr8smoTycnJ7D8cSuN6ntjbFSDkUCgVy5Xi6o3b1POqqrFPxXIl1T872hcE4OHjJ29MAOLiXnDt5h16Dx5PX///jwNLSk7GyiJfpvvWqFJBI3nzrFqRmQt/Izk5GX19/Uz3NTU1oVPbZnRq24zL127R+esAvvl2Mi/j4/H7ukum+2bms5YN+KxlgxzvL4QQQghNCr3URZfoWjy6rH///jg4ODBjxgx+/z11iHfZsmVZu3Ytbdq0yXG72U4AnJ2dsbS0zHGHOfXLL7/QpUsXTExMMq0XFBTEuHHj3lNUadXxrMyz2OecOnuJ/UdPM2mULw52Bfj+h6W4ly+Fk4MtJYu5aOxjaPD/j+HVRXlKSsbj8V+JjUsdVrR4xmhqVHbTKHvTRfzbSEpKYmfIUX5bt43Nwfso5lqI78cMoku7jGeGcrArwINH/2hse/DoHywt8mFqmvlnKoQQQgiRV3322WcZDpfPqWznYDNmzODbb7/l5s2buRpIZg4cOEBERAS9e/d+Y92AgABiYmLUy+3bt99DhP9nbWVBxXIlmf/zWgwNDChTsih1PCtz+lwE23YeoG6tKrnWl71dAZwcbLl+6y4lirloLEVdC2W67/FT5zXWj4aeo2Qx50wTh1Nnwxn83XSc3ZvT3XcMBWys2bf5J87tX8cw3+7YFsyf4b41q1Zkz4ETGtv+3ncMz6oVsnCkQgghhMjr5s+fT5EiRTAxMaFGjRocP3480/rr1q2jTJkymJiYUKFCBbZv365RrlKpGDNmDI6OjpiamtKoUSOuXLmiUefJkyd06dIFS0tLrK2t6dWrF7GxmrMinj17lk8++QQTExOcnZ2ZOnVqmlhmz55N6dKlMTU1xdnZmcGDB/Py5cs3HvOJEyc4duxYmu3Hjh3j5MmTb9w/I9lOAL788kv27t1L8eLFsbCwwMbGRmN5F37++WeqVKmCu7v7G+saGxtjaWmpsbxvdb2qsPKPv6hbK/WBVpv8VpQtWZS1m3dSxzN3H3IN/LYfU+YuZe6S1Vy+dotzF6+wdPVmZi78LdP9Iu9E4f/dDCKu3mT1hmDm/bSGgX06ZVj/wNFTeDbvzo1bd5n//Qjunt3BD0HDqepRLktx9uv+Oddv3eHbcbO5dOUGC375nd8379IYMrRx2x7K1sp8iJcQQgghskHbs/3k0ixAa9euxd/fn7Fjx3Lq1Cnc3d1p2rQpDx8+TLf+4cOH6dSpE7169eL06dN4e3vj7e3N+fP//wJ06tSpzJ07l0WLFnHs2DHMzc1p2rSpxoV5ly5duHDhArt27WLr1q3s37+fvn37qsuVSiVNmjTB1dWV0NBQpk2bRmBgIIsXL1bXWbVqFSNGjGDs2LGEh4fz888/s3btWkaOHPnG4/bx8Un3y+y7d+/i4+OTpXOXnmwPAZo9e3aOO/uv2NhYrl69ql6/ceMGYWFh2NjY4OKSOkxGqVSybt06ZsyYkWv9vmt1Pasw58dV1K31/7H+db2qcObC5TTj/99W7y8/w8zUhOnzV/DtuNmYm5lSoWwJBvXN/MUQXdu35MXLeGo07Ya+vh4D+3aib7eMp1ctV6oYd87syPRb/swUdS3E1pVz8f9uBnOXrKawoz1LZn1H0wa11HVinsVmeVYhIYQQQuQdM2fOpE+fPvTs2ROARYsWsW3bNn755RdGjBiRpv6cOXNo1qwZw4YNA2DChAns2rWLefPmsWjRIlQqFbNnz2b06NHqsfQrVqzA3t6eTZs20bFjR8LDwwkODubEiRNUrZp6/fbDDz/QokULpk+fjpOTEytXriQhIYFffvkFIyMjypcvT1hYGDNnzlQnCocPH8bLy0v90q4iRYrQqVOndL/Z/6+LFy+mO8tmpUqVuHjxYg7OZCqFKrPJ39+xkJAQ6tevn2Z79+7dWbZsGQCLFy/Gz8+P+/fvY2Vlle0+lEolVlZWRF/bj+UbHowVQgghhHhbymexWBevQ0xMjFZGIsD/r3/+Gd8OSxNDrcSQEeXLRAqM+YPbt29rnB9jY2OMjY3T1E9ISMDMzIz169fj7e2t3t69e3eio6PZvHlzmn1cXFzw9/fHz89PvW3s2LFs2rSJM2fOcP36dYoXL87p06fx8PBQ16lbty4eHh7MmTOHX375hSFDhvD06VN1eVJSEiYmJqxbt47PPvuMbt26oVQqNV5mu3fvXho0aMCTJ0/Inz8/q1at4ptvvmHnzp1Ur16d69ev07JlS7p27frGuwAFChRg69ateHp6amw/fPgwLVu21IgtO7J9ByAyMjLT8lff3GdFvXr1Mn35FEDfvn01brUIIYQQQogsUvy76JJ/4/nvPPZjx44lMDAwTfXHjx+TnJyMvb29xnZ7e3suXbqUbhdRUVHp1o+KilKXv9qWWR07OzuNcgMDA2xsbDTqFC1aNE0br8ry589P586defz4MbVr10alUpGUlES/fv2yNASoSZMmBAQEsHnzZvUX4dHR0YwcOZLGjRu/cf+MZDsBKFKkSKZz/ycnJ+c4GCGEEEIIkTekdwfgYxQSEsLkyZNZsGABNWrU4OrVqwwaNIgJEybw3XffZbrv9OnTqVOnDq6urlSqVAmAsLAw7O3t+fXXX3McU7YTgNOnT2usJyYmcvr0aWbOnMmkSZNyHIgQQgghhMg7sjpZS8GCBdHX1+fBgwca2x88eICDg0O6+zg4OGRa/9V/Hzx4gKOjo0adV0OCHBwc0jxknJSUxJMnTzTaSa+f1/v47rvv6Nq1q3o2ywoVKhAXF0ffvn0ZNWoUenoZz8lTqFAhzp49y8qVKzlz5gympqb07NmTTp06YWiY86Fd2U4A0puJp2rVqjg5OTFt2rQ3vqhLCCGEEEK8HwqFItORG9qQ3XiMjIyoUqUKu3fvVj8DkJKSwu7du/H19U13H09PT3bv3q3xDMCuXbvUY+mLFi2Kg4MDu3fvVl/wK5VKjh07Rv/+/dVtREdHExoaSpUqqdO479mzh5SUFGrUqKGuM2rUKBITE9UX5Lt27aJ06dLkz586ccrz58/TXOS/mnY9K4/impub5/pw+Fx7F1vp0qU5ceLEmysKIYQQQgiRDf7+/ixZsoTly5cTHh5O//79iYuLU88K1K1bNwICAtT1Bw0aRHBwMDNmzODSpUsEBgZy8uRJdcKgUCjw8/Nj4sSJbNmyhXPnztGtWzecnJzUSUbZsmVp1qwZffr04fjx4xw6dAhfX186duyIk5MTAJ07d8bIyIhevXpx4cIF1q5dy5w5c/D391fH0qpVKxYuXMiaNWu4ceMGu3bt4rvvvqNVq1ZZenHrr7/+Su3atXFycuLWrVsAzJo1K92Hn7Mq23cAlEqlxrpKpeL+/fsEBgZSsmTJHAcihBBCCCFEejp06MCjR48YM2YMUVFReHh4EBwcrH7gNjIyUuNb9lq1arFq1SpGjx7NyJEjKVmyJJs2bcLNzU1d59tvv1UPxYmOjqZ27doEBwdjYmKirrNy5Up8fX1p2LAhenp6tGvXjrlz56rLrays2LlzJz4+PlSpUoWCBQsyZswYjW/sR48ejUKhYPTo0dy9exdbW1tatWqVpaHzCxcuZMyYMepk5dWztvnz52f27NnqKUyzK9vTgOrp6aW5daNSqXB2dmbNmjVppinSNvU0oDePYWkp04AKIYQQ4t1SKmOxLlJDJ6YBfTL5C52cBtRm5Dqtnp8PRbly5Zg8eTLe3t5YWFhw5swZihUrxvnz56lXrx6PHz/OUbvZvgOwd+9ejXU9PT1sbW0pUaIEBgbZbk4IIYQQQgiRjhs3bqhn/3mdsbExcXFxOW4321fsdevWzXFnQgghhBBCiKwpWrQoYWFhuLq6amwPDg6mbNmyOW43ywnA/v37s1SvTp06OQ5GCCGEEELkIoUiddEluhaPDvP398fHx4eXL1+iUqk4fvw4q1evJigoiJ9++inH7WY5AahXr16GZa+eCVAoFCQlJeU4GCGEEEIIIUSq3r17Y2pqyujRo3n+/DmdO3fGycmJOXPm0LFjxxy3m+VpQJ8+fZrucvfuXYYNG4axsTFlypTJcSBCk55NeTZt261ev3T5Op6NO2HqWIlKddJ/10L9Vj3wCwh6XyEKIYQQQoh3rEuXLly5coXY2FiioqK4c+cOvXr1eqs2s5wAWFlZaSwWFhasW7eO6tWrs3r1aubPn8/Zs2ffKhjxf/fCQ2je6BP1euCU+Zibm3Lp+Db+3vRLrvb16PETvujuh01RT6xcqlO/VQ8irtx4434vX8bT02ckFb28MbStyGdfDsjVuIQQQgjxlvQAPYWOLdo+KR+OFy9e8Pz5cwDMzMx48eIFs2fPZufOnW/Vbo4+gg0bNlCuXDmGDx/OoEGDuHz5Mj179sz0Vcbp2b9/P61atcLJyQmFQsGmTZs0ymNjY/H19aVw4cKYmppSrlw5Fi1alJOQPzgO9rYYGxup16/dvI1Xjcq4OjtRwMY6V/saHjiTk2EX+HP1fE7tW883vTplab/k5GRMTEwY0LcLjerWzNWYhBBCCCHyujZt2rBixQoAoqOjqV69OjNmzKBNmzYsXLgwx+1m64p937591KxZk65du9K2bVuuX7/O0KFDMTY2zlHncXFxuLu7M3/+/HTL/f39CQ4O5rfffiM8PBw/Pz98fX3ZsmVLjvr7kLw+BEjPpjyhYReYMG0hejblCZyS/vkCSEpOxvfbiVi71sC2hBffTZr7xtdM6+npUau6B141K1O8qAtfeDeldMmib4zR3NyMhTPG0Kf7FzjYF8zeAQohhBBCiEydOnWKTz5JHRGyfv16HBwcuHXrFitWrNB4IVl2ZTkBaNGiBY0bN8bDw4Nr164xefJkrKysctwxQPPmzZk4cSKfffZZuuWHDx+me/fu1KtXjyJFitC3b1/c3d05fvz4W/X7obkXHkL5MiXw9+nBvfAQhvr2yLDuijWbMdDX59jfa5gdFMCshSv4acX6TNtv06I+67fsJPjvA7kcOdyMvIueTXlCDuatz0wIIYTQDXqg0LFFxgBl2fPnz7GwsABg586dtG3bFj09PWrWrMmtW7dy3G6WP4Hg4GAA1q5dS7ly5bCxsUl3yU21atViy5Yt3L17F5VKxd69e7l8+TJNmjTJcJ/4+HiUSqXG8qFzsLfFwECffOZmONjbki+feYZ1nZ0cmDV5BKVLFqXLF5/i26czsxeuyLD+xUtX6dL3W8YF+NJn0FjWbdqhLgsNu4CeTXke//M0x7EbGhhQumRRzExN3lxZCCGEEEKolShRgk2bNnH79m127NihvgZ++PDhW71FOcvTgC5dujTHneTUDz/8QN++fSlcuDAGBgbo6emxZMmSTN81EBQUxLhx495jlLqlRlV39bSsAJ7VPJg5fznJycno6+unqT/u+wU0b/gJI/z60KS+F03a9uafp9H069mBcxcvU6ZkMQoWyJ/jeAo52RN+bGuO9xdCCCGEyKvGjBlD586dGTx4MA0bNsTT0xNIvRuQ3huCsyrLCUD37t1z3ElO/fDDDxw9epQtW7bg6urK/v378fHxwcnJiUaNGqW7T0BAAP7+/up1pVKJs7Pz+wr5g3P24mW6dWwDQGX3cmxeOY9mX/Tl8T9P2bH7ID26eGs3QCGEEELknLwI7IP2+eefU7t2be7fv4+7u7t6e8OGDTMcQp8VWU4A3rcXL14wcuRINm7cSMuWLQGoWLEiYWFhTJ8+PcMEwNjYOMcPJX8MjodqTsV69OQZShZzSffbf4BCjnYcPBIKg/sA4FWzMhtWzKVVp2+wyW+Fb+/O7zxmIYQQQgiRPgcHBxwcHDS2Va9e/a3a1NmnMBITE0lMTEwztai+vj4pKSlaikr3Rd69j/+o74m4coPVf2xj3pKVDOzXNcP6Q317Erz7ID7DJnD+4hVOnw1n3+ETGBkZ8ujxU/4MDsm0v4uXrhJ2LpwnT2OIUT4j7Fw4YefC1eV37z2gbI1P0yQmQgghhBBCO7R6ByA2NparV6+q12/cuEFYWBg2Nja4uLhQt25dhg0bhqmpKa6uruzbt48VK1Ywc+ZMLUat27p2aM2Ll/HUaNQRfX09Bn7dlb7dv8iwfrNGn/D3pp8JnDKf2s2/RE9Pj0Z1a3Js1xo2bP2bnr6jcC7kQK0a6Y8za9mhP7du31OvV677OQApTy4AkJiURMSVGzx/8TIXj1IIIYQQWfLq5Vu6RNfiyYMUqjdNEv8OhYSEUL9+/TTbu3fvzrJly4iKiiIgIICdO3fy5MkTXF1d6du3L4MHD9Z40DUzSqUSKysrom8ew9IyX24fghBCCCGEBqUyFusiNYiJiXmrmVreLobU658n0ztjaWr05h3eI+WLBGyGrtLq+cnrcnwHICEhgRs3blC8eHEMDHLWTL169TJ9SZWDg4NWZh8SQgghhBBCGypXrszu3bvJnz8/48ePZ+jQoZiZmeVqH9l+BuD58+f06tULMzMzypcvT2RkJAADBgxgypQpuRqcEEIIIYR4C9p+6VeGLwMTGQkPDycuLg6AcePGERsbm+t9ZPur+4CAAM6cOUNISAjNmjVTb2/UqBGBgYGMGDEiVwMUQgghhBAir/Dw8KBnz57Url0blUrF9OnTyZcv/WHsY8aMyVEf2U4ANm3axNq1a6lZs6bGOPzy5ctz7dq1HAUhhBBCCCGEgGXLljF27Fi2bt2KQqHgr7/+Sne4vUKheH8JwKNHj7Czs0uzPS4uLssP5gohhBBCiPdAZgH64JQuXZo1a9YAoKenx+7du9O99n4b2U4AqlatyrZt2xgwYACA+qL/p59+Ur+eWBfd+ao3FgbpvwxLCCGEECK3PEtK1nYI4iPxrt59le0EYPLkyTRv3pyLFy+SlJTEnDlzuHjxIocPH2bfvn3vIkYhhBBCCCHypGvXrjF79mzCw1NftFquXDkGDRpE8eLFc9xmth/Drl27NmFhYSQlJVGhQgV27tyJnZ0dR44coUqVKjkORAghhBBC5DKFQjcXkSU7duygXLlyHD9+nIoVK1KxYkWOHTtG+fLl2bVrV47bzdEE/sWLF2fJkiU57lQIIYQQQgiRuREjRjB48OA0U+2PGDGC4cOH07hx4xy1m6MEICUlhatXr/Lw4cM0Y5Pq1KmTo0CEEEIIIYQQ/xceHs7vv/+eZvtXX33F7Nmzc9xuthOAo0eP0rlzZ27dupXmLb4KhYLkZHnwReQe151hLPYoQlM7a22HIoQQQnx49PRSF12ia/HoMFtbW8LCwihZsqTG9rCwsLeaGSjbCUC/fv3UMwE5OjrK1J8CgNsv4pl9LYoZbq7aDkUIIYQQ4qPQp08f+vbty/Xr16lVqxYAhw4d4vvvv8ff3z/H7WY7Abhy5Qrr16+nRIkSOe5UaEdCSgpGuZx1b7z/hMpW5uopfVUqFStuP8bbMT9WhjkaYSaEEEIIIYDvvvsOCwsLZsyYQUBAAABOTk4EBgYycODAHLeb7avBGjVqcPXq1Rx3+Lr9+/fTqlUrnJycUCgUbNq0SaP8wYMH9OjRAycnJ8zMzGjWrBlXrlzJlb7zgllX79P8yCVW3/kHr/0XKfX3WQBiEpP49kIklfaeo/zus3Q8cZWLz16o97v47AUdTlyl3O6zlN99lpZHIjgb8zzdPpxNjfE/H8nK2/9w/2Ui3U5d50F8Yq4mGg/jk+gWeo1Sf5+h9oGLbIuK1igPunyPegfDKf1v+fSr90lM+f/wtDcdz4mnsXx+/Aql/j5DzX0XGHvpDs9lDmchhBAfA23P9iOzAL0VhULB4MGDuXPnDjExMcTExHDnzh0GDRr0VqNwsv0V7YABAxgyZAhRUVFUqFABQ0NDjfKKFStmua24uDjc3d356quvaNu2rUaZSqXC29sbQ0NDNm/ejKWlJTNnzqRRo0ZcvHgRc3Pz7IaeJ918nsBfD6L50aMI+v/+onxz5iYm+nosr1wcCwN9Vt55TOeTVwmpXRZrQwMGnb1FeUtTJpUrhT4KLj57gUEGb+2ram3Omqol6BJ6lZPRcfzsUYz6tpbq8m6h1zgRHZdhfIVMjPjbq0ymxzDj6n2Gl3QisEwhNtx/yoBzNymVrwwl85kAYG6gx3Q3F+yNDYh49pIRF2+TT1+PfkXtATI9nlvP4+l26jpDSzgwrbwL/yQmMSb8DmMu3WW6m0vWT7QQQgghxDtkYWGRa21lOwFo164dkPr08SsKhQKVSpXth4CbN29O8+bN0y27cuUKR48e5fz585QvXx6AhQsX4uDgwOrVq+ndu3d2Q8+TElNUzKrgSgGj1I/6xNNYziifE1rPDeN/v6UfXboQOx/GsP1BNJ0LF+TeywS+LmJHCfPUC+yi5sYZtn86Oo7Jl+9RxdocA4WCXyIfcSomDp+i9pjo6zG1vDMvU1QZ7m+Qhey1pb01nQoXAGBoCUcO/vOMZZGPmFTOGYCBxRzUdZ1NjenzPJ4/o56qE4DMjmf+jQd4O+anl2vqgzRFMWZcmUK0P3GViWULY6IvDyoJIYQQ4uOS7QTgxo0b7yKONOLj4wEwMTFRb9PT08PY2JiDBw9mmADEx8er9wVQKpXvNlAdV8jUUH3xD6nDYeKSUvDYe16j3svkFG49TwCgt6stwy9GsuH+E2oXsKClvTWuZuknATeexzPdzQU9BTy6lsj08i6suP2YlykpmOjr4WBi9NbHUNla825PZStzLrw2ZOnPqKcsjXxM5PN44pJTSFapyKevry7P7HjCn73g0rOXbLr/VF1fpYIU4PaLBPVdBiGEEOKDJLMAiXRkOwFwdX0/s7yUKVMGFxcXAgIC+PHHHzE3N2fWrFncuXOH+/fvZ7hfUFAQ48aNey8xfgjM/vMN9vPkFOyMDVlbLe1D3JYGqRfNg0s40sYxP3seKwl5/IxZV6P4oaIrzeyt0+zT1skGSJ0FCFLvBnV3sVWX58YQoMyERscx6NwtBhd3oG6BQlgY6LMl6ik/3XqorpPZ8cQlp9DZuQA9X4v5FScTwzTbhBBCCCE+dFlKALZs2ULz5s0xNDRky5YtmdZt3bp1rgRmaGjIhg0b6NWrFzY2Nujr69OoUSOaN2+e5v0DrwsICNCYFkmpVOLs7JwrMX0M3CzNeJSQiL4idbhMRoqZm1DM3ITernYMOHuTdfeepJsAvOJsapzuFKC5MQToVHQc7f5NNABOxcRR3sIUSE0ACpkYMeC1YUB3XyZk+XjcLMy4EvuSIhnc4RBCCCGE+NhkKQHw9vYmKioKOzs7vL29M6yX2y8Cq1KlCmFhYcTExJCQkICtrS01atSgatWqGe5jbGyMsbFczGWktk0+KluZ0zfsBgElnShqbsyD+CT2PFLSzM6KUvlMmHT5Hi3srXA2Neb+ywTOxDyneSYX/5nJjSFA2x9EU9HKjGrW5my6/5QzMc+ZWj71Ad2iZsbce5nAlvtPcbcyY88jJTsexqj3fZmckunx9C9qh/exy3wXfoeOhWww09fnStxLDvzzjAllC7917EIIIYRW6eKsO7oWj47z9fVl/Pjx2NjYvLlyFmUpAUhJSUn35/fFysoKSH0w+OTJk0yYMOG9x/CxUCgULKtcjGlX7zP0wm2eJCRha2xA9fz5KGhsgJ4CohOT8D8fyeP4JPIbGdDMzorBxR3e3Pg7Mri4I39GRfNd+B1sjQz5oaIrpf4dm9/YzopernaMuXSHhBQVDWwtGVjMntnXogDeeDxlLUz5vVpJpl29zxcnrqICXE2N+NQhv7YOVwghhBB53J07dyhcOPWLyFWrVvHtt99iY2NDhQoV2L59+1uPblGoMhtPk81Ax48fz+LFi7O8T2xsrPqdApUqVWLmzJnUr18fGxsbXFxcWLduHba2tri4uHDu3DkGDRpElSpV+OOPP7Lch1KpxMrKivMNKmBhoP/mHYQQQggh3sKzpGTc9pwjJiYGS0vLN+/wDry6/nmyoDeWpm9/Nz43KV8kYPPNT1o9P7ouX758FChQAC8vLzZt2sSuXbvw8vLCwsKCM2fOUKxYsbdqP9cew/7nn3/4+eefs7XPyZMnqVSpEpUqVQLA39+fSpUqMWbMGADu379P165dKVOmDAMHDqRr166sXr06t0IWQgghhPi4afuFX/IisByJjo5m3bp1VKlShZSUFFq0aEGpUqWIj49nx44dPHjw4K3az7U7AGfOnKFy5cq5+gxAbpA7AEIIIYR4n3TqDsDCPrp5B6D/ErkDkIkXL15gapo64Un+/PkJDQ3l/v37NGrUCDc3Ny5cuICzszMRERE5aj/b04AKIYQQQggh3h1ra2s8PDzw8vIiISGBFy9e4OXlhYGBAWvXrqVQoUKcOHEix+1LAiCEEEII8bGSF4F9kO7evcuRI0c4fPgwSUlJVKlShWrVqpGQkMCpU6coXLgwtWvXznH7WU4A2rZtm2l5dHR0joMQQgghhBBCpCpYsCCtWrWiVatWLFq0iP379xMeHk63bt0YOnQoXbt2pXr16uzbty9H7Wc5AXg1FWdm5d26dctREEIIIYQQQoj0WVlZ0b59e3r16sWePXswMzPL8cU/ZCMBWLp0aY470QW/7TmHvB5MCCGEEO9avLYDeJ0C3Zt1R8fC0XVnz56lUKFCALi6umJoaIiDgwMdOnTIcZvyDIAQQgghhBA66vWXfp0/fz5X2pSnMIQQQgghhMhD5A6AEEIIIcRHSqFQoNDTrTE3Cl0bkpQHyR0AIYQQQggh8hBJAHRUoEpFmTZttB3Ge1Nv7Fj6nT6t7TCEEEIIIT56kgCIbPNeuhRrV1dthyGEEEKIN1Ho6eYitEqrn0BQUBDVqlXDwsICOzs7vL29iYiI0Kjz8uVLfHx8KFCgAPny5aNdu3Y8ePBASxHnXab581Ptm280tuUvVowKnTtrKSIhhBBCCJETWk0A9u3bh4+PD0ePHmXXrl0kJibSpEkT4uLi1HUGDx7Mn3/+ybp169i3bx/37t1741uJPxb5HB3psn07o54/Z9C1a5Rr106jvNGUKQyIiGBUXByDrl2j/vjx6Bn8/7lu+4oV6b5nDwFKJQExMfQ9eRKnKlXU5S5eXvTcv59Rz58zODKS5nPmYGhmlm4sSS9fYlmoEF8GB2NZuDBV+/XDe9kyom/cyNVjrtK3L4MjIxkVF8cXa9dibGmpLnOqWpWuO3fy7aNHjIiOpkdICI6VKmnsX2/sWAbfusXoly8ZcvcuzefMUZfpGxnRZNo0/O/cYWRsLL2PHqVI3bq5Gr8QQgghhK7T6ixAwcHBGuvLli3Dzs6O0NBQ6tSpQ0xMDD///DOrVq2iQYMGQOoLycqWLcvRo0epWbOmNsJ+bxpMmMDfI0YQPGgQFbt25fM1a1hQoQKPL10CIOHZMzb16MGze/ewq1CB1kuWkPDsGYemTQOg3cqV3D99mm39+5OSnIyDhwfJiYlA6rf3XwYHs2f0aDZ/9RXmtra0mDePFvPmsfmrr9LEkvjiBbtHjaJk8+Z02rIFPQMDljdoQEpSEgAutWvz5V9/ZXo8f379NedWrcqw3KZECcq3b8/qVq0wtrSk9c8/03LBAjZ8+SUAxhYWnFm+nL8GDACFglpDhtBl+3bmlixJQmws5dq1o+bgwazv2JFHFy6Qz8EBe3d3dfst5s3Dtlw51nfsyLN79yj72Wd8GRzMggoVeHL1ajY+GSGEEOIDoadIXXSJrsWTBylUKpVK20G8cvXqVUqWLMm5c+dwc3Njz549NGzYkKdPn2Jtba2u5+rqip+fH4MHD35jm0qlEisrK0bAB/Um4ECVihMLF7LttWE3vY8c4f6pU2zz8Ul3n1pDhuDWsSOLq1UDICAmhu0DBnBmxYo0dVsvWUJKcjJb+/VTb3Px8qLHvn1MNjcnKV7zPYYGxsZ8MnIkhWrUQE9fn3snT1LY05Ndw4Zx98QJDExMsPz3LXUZiX3wgITY2HTL6o0dS53Ro5nl6sqze/cAKNG0KZ23bWNmoULEpjPsS6FQMCI6mj86d+bytm14Dh5Mla+/ZoGbmzoxecXK2ZlB168zy8WFZ/fvq7d327WLu8ePs3vUqExjF0IIIbIqHpgCxMTEYPnanez36dX1z9NffLA0060rIOXzePJ/NV+r5yev05n3AKSkpODn54eXlxdubm4AREVFYWRkpHHxD2Bvb09UVFS67cTHxxP/2sWrUql8ZzG/a3eOHNFYv33kCA4eHur18u3bU2PgQGyKF8coXz70DAyIf+14j8ycSeuffsK9a1eu//03F9at4+n16wDYu7tjX7EiFbt0+X8HCgV6+vpYFy2qvsvwiqGZGbEPHvBbs2Z4L13KyUWLCF2yBGdPT+6eOEHSy5c8uXbtrY43JjJSffH/6nj19PUpULo0sQ8eYG5nR4OJEylSrx7mdnbo6etjaGaGlYsLABfWraOmnx+Drl/nanAwV7Zv5/Kff5KSnIxdhQroGRgw4PJljT71jY15/s8/bxW3EEIIIcSHRGcSAB8fH86fP8/Bgwffqp2goCDGjRuXS1HprsI1a9Ju5Ur2jh3LtR07eBkTg1vHjtQaMkRdJ2TcOM6tWkXJli0p2bw59caNY33HjlzatAmjfPkI/fFHjs2dm6btmMjINNtePH3KiQULNLY9vX5dnVDkxhCgN/ls+XJMCxQgeNAgom/dIjk+nl5HjqBvZASA8s4dfihdmmKNGlG8cWNaLliA17BhLK1bF6N8+UhJSuLHKlVQJSdrtJvRXQkhhBDig6dQpC66RNfiyYN0IgHw9fVl69at7N+/n8KFC6u3Ozg4kJCQQHR0tMZdgAcPHuDg4JBuWwEBAfj7+6vXlUolzs7O7yz2d6lwzZqc+fVXjfWof+fKd65Vi+hbtzgwebK6PL2pOf+5coV/Zs/m6OzZtFu1iko9e3Jp0ybunzqFbblyOfrWflPPnmm23Tt5kkWv3Z1IT3rDeF5n5eKChaOjeohO4Zo1SUlO5p9/Z4Zy9vJi2zffcOXfRMOycGHMbW012kh6+ZLLW7dyeetWjs+fz4CICOwrVCDq9Gn0DAwwt7Mj8i2TTCGEEEKID5lWEwCVSsWAAQPYuHEjISEhFC1aVKO8SpUqGBoasnv3btr9OwNOREQEkZGReHp6ptumsbExxsa6NdYtp8p98QX3Tp4k8uBBKnTpQqHq1dnSqxcAT65cwcrFBbcOHbh74gSlWrakzGefqfc1MDGhybRpXFy/nqc3bmBZuDCFqlXj4h9/AHDo++/pffQoLX74gVM//URCXBy25cpRvHFjtg8YkO1Yc2MIUNLLl3gvX87OoUMxtrSk+dy5XPj9d3Xi8OTKFdy7duXeyZMYW1rSZNo0Ep8/V+/v0b07Cn197h47RuLz51T88ksSnz8n+tYtXjx5wtnffuOzFSvYOWQI90+fxtzWlqING/Lg7FmubN/+VrELIYQQQnwotJoA+Pj4sGrVKjZv3oyFhYV6XL+VlRWmpqZYWVnRq1cv/P39sbGxwdLSkgEDBuDp6fnRzwAEEDJ2LG4dO9JywQKe3b/PH5068Sg8HICIP//k6KxZtJg3D31jY65s28b+CROoFxgIgCo5GdMCBfhsxQrM7e15/vgx4Rs2EDJ2LAAPzp1jad26NJw0iZ4HDqBQKHhy7RoX1q7V1uHy5OpVwjdsoMv27Zja2HB561aNh6A39+pFq8WL+frUKZS3b7N75EiaTJ+uLn8ZHU3tESNoOnMmevr6PDh3jlWtWvHiyRMg9c5FndGjaTJjBpaFCvH88WPuHD3K5a1b3/uxCiGEEO+Fnl7qokt0LZ48SKuzACkyGAO2dOlSevToAaS+CGzIkCGsXr2a+Ph4mjZtyoIFCzIcAvRfH+osQEIIIYT4MOnULEDLB+rmLEDd58osQFqk9SFAb2JiYsL8+fOZP3/+e4hICCGEEEKIj5tOPAQshBBCCCHeAZkFSKRDBmEJIYQQQgiRh0gCIIQQQgghRB4iQ4CEEEIIIT5WMgRIpEPuAAghhBBCCJGH5Jk7ACNuncTSMp+2wxBCCCHER06pjGWKa1VthyFEhvJMAiCEEEIIkefIi8BEOuQTEEIIIYQQIg+RBEAIIYQQQog8RIYACSGEEEJ8rGQWIJEOuQOgo/Tyl2HTtr+1HYYQQgghhPjISAIg3ov7UQ/p0nsIpas2Rd+mLH4Bk7UdkhBCCCFEnqTVBCAoKIhq1aphYWGBnZ0d3t7eREREaNRZvHgx9erVw9LSEoVCQXR0tHaC/QDcu/+ApKSkLNePvH3vHUajKT4hgYIFbRg1tD/ubmXeW79CCCFEnqan0M1FaJVWE4B9+/bh4+PD0aNH2bVrF4mJiTRp0oS4uDh1nefPn9OsWTNGjhypxUi1437UI1p83gczR3eKezRi/ebgTOsvWbEO5/L1GPrd95y7EJFpXYB6n3bFs3EHFv68mqfRMbkVdrqKuBRmzpRRdOvojZW8j0EIIYQQQmu0mgAEBwfTo0cPypcvj7u7O8uWLSMyMpLQ0FB1HT8/P0aMGEHNmjW1GKl2jJk8h7atmxB2YBOdv2hFp15DCI+4lmH94YP6MDtoJJcirlOlXjuq1G3L3B9X8Ojxk3Tr79v2G62a1eeHxb/iVOYTOvT0Y9uOEJKTk9PUPXD4JBaFK2e6rPz9z1w7diGEEEII8W7o1CxAMTGp30Lb2NjkuI34+Hji4+PV60ql8q3j0pbP2zSjd7cvAJgwahB/hxzmh8W/sWDG2HTrm5gY06FtCzq0bcHDR/+wav1Wlq/axLDvptGicR26dfKmVbP6GBikfuzOhR0ZOaQfI4f043joWVas2URPnwAMDAzo/MWn9Oj0GW7lSgFQtZIbp/dvzDRee9sCuXj0QgghhHhrCr3URZfoWjx5kM4kACkpKfj5+eHl5YWbm1uO2wkKCmLcuHG5GJn2eFb30FivWc2DM+fCs7SvnW0B/Pp3x69/d/7atZ+ePgFs3r6bU/s34lGhbJr61atUpHqVisycNIKA8TOZNX8Zu0OOcPrAJgBMTU0oUcz1bQ9JCCGEEEJomc4kAD4+Ppw/f56DBw++VTsBAQH4+/ur15VKJc7Ozm8b3gfn2bNY1m/ZwW9rt7D/8EnqelWj2/hhlCtdPN36EVeu8+vaLaz8fQsxylh6d/uCXl0/V5cfOHySFu37Ztrnopnj6NK+Va4ehxBCCCGEyF06kQD4+vqydetW9u/fT+HChd+qLWNjY4yNjXMpMu06euIM3Tp6q9ePnQzDo0K5DOsnJyezc88hflu7mU3bd+NcyIGuHbxZOj8IF2enNPUf//OUNX9s47fftxAadoHG9WoRNHYI3i0bYWKieQ5lCJAQQgjxAdLFWXd0LZ48SKsJgEqlYsCAAWzcuJGQkBCKFi2qzXB0zvrNwVSt5EbtmpVZue5Pjoee46e5kzKsP3nmj8yct5T2nzVn18ZfqFWjcqbt12zUHhMTY7p19Gbjb/NwdLDLsG5uDAEK+3f4Umzccx4/fkLYuXCMDA0pV6bEW7UrhBBCCCGyTqsJgI+PD6tWrWLz5s1YWFgQFRUFgJWVFaampgBERUURFRXF1atXATh37hwWFha4uLi81cPCH4LAEQNYu2EbPkPH4Whvy6qfZmR6sdy1Q2uGDeiV5tv7jGxd+yNlShXLrXDfqHKdz9Q/h4ZdYNX6rbg6O3Hj7J73FoMQQgghRF6nUKlUKq11rkj/FtDSpUvp0aMHAIGBgek+1Pt6ncwolUqsrKyIvnUSS5l/XgghhBDvmFIZi7VrVWJiYrC0tNRSDKnXP0/Xj8DSTLeGRiufx5P/8ylaPT95ndaHAL1JYGAggYGB7z4YIYQQQggh8gCZiFUIIYQQQog8RCdmARJCCCGEEO+AQgF6OvZ9bwZDwMX7o2O/EUIIIYQQQqQ1f/58ihQpgomJCTVq1OD48eOZ1l+3bh1lypTBxMSEChUqsH37do1ylUrFmDFjcHR0xNTUlEaNGnHlyhWNOk+ePKFLly5YWlpibW1Nr169iI2N1ahz9uxZPvnkE0xMTHB2dmbq1KlpYomOjsbHxwdHR0eMjY0pVapUmnjeJ0kAhBBCCCGETlu7di3+/v6MHTuWU6dO4e7uTtOmTXn48GG69Q8fPkynTp3o1asXp0+fxtvbG29vb86fP6+uM3XqVObOncuiRYs4duwY5ubmNG3alJcvX6rrdOnShQsXLrBr1y71O6v69v3/i1GVSiVNmjTB1dWV0NBQpk2bRmBgIIsXL1bXSUhIoHHjxty8eZP169cTERHBkiVLKFSo0Ds4U1mj1VmA3odXT8HHRF3D0tJC2+EIIYQQ4iOnVD7DyqG4bswCtGEkluYmWokhI8q4l+RvOzlb56dGjRpUq1aNefPmAZCSkoKzszMDBgxgxIgRaep36NCBuLg4tm7dqt5Ws2ZNPDw8WLRoESqVCicnJ4YMGcLQoUMBiImJwd7enmXLltGxY0fCw8MpV64cJ06coGrVqgAEBwfTokUL7ty5g5OTEwsXLmTUqFFERUVhZGQEwIgRI9i0aROXLl0CYNGiRUybNo1Lly5haGiY8xOXi+QOgBBCCCGEeO+USqXGEh8fn269hIQEQkNDadSokXqbnp4ejRo14siRI+nuc+TIEY36AE2bNlXXv3HjBlFRURp1rKysqFGjhrrOkSNHsLa2Vl/8AzRq1Ag9PT2OHTumrlOnTh31xf+rfiIiInj69CkAW7ZswdPTEx8fH+zt7XFzc2Py5MkkJydn+VzlNkkAhBBCCCHEe+fs7IyVlZV6CQoKSrfe48ePSU5Oxt7eXmO7vb29+iWy/xUVFZVp/Vf/fVMdOzs7jXIDAwNsbGw06qTXxut9XL9+nfXr15OcnMz27dv57rvvmDFjBhMnTkw39vdBZgESQgghhPhYKRS6N+vOv/Hcvn1bYwiQsbFuvbAst6SkpGBnZ8fixYvR19enSpUq3L17l2nTpjF27FitxCQJgBBCCCGEeO8sLS2z9AxAwYIF0dfX58GDBxrbHzx4gIODQ7r7ODg4ZFr/1X8fPHiAo6OjRh0PDw91nf8+ZJyUlMSTJ0802kmvn9f7cHR0xNDQEH19fXWdsmXLEhUVRUJCgsbwofdFhgAJIYQQQgidZWRkRJUqVdi9e7d6W0pKCrt378bT0zPdfTw9PTXqA+zatUtdv2jRojg4OGjUUSqVHDt2TF3H09OT6OhoQkND1XX27NlDSkoKNWrUUNfZv38/iYmJGv2ULl2a/PnzA+Dl5cXVq1dJSUlR17l8+TKOjo5aufgHSQB0RuDEqXjUqK/tMIQQQgghdI6/vz9Llixh+fLlhIeH079/f+Li4ujZsycA3bp1IyAgQF1/0KBBBAcHM2PGDC5dukRgYCAnT57E19cXAIVCgZ+fHxMnTmTLli2cO3eObt264eTkhLe3N5D6LX2zZs3o06cPx48f59ChQ/j6+tKxY0ecnJwA6Ny5M0ZGRvTq1YsLFy6wdu1a5syZg7+/vzqW/v378+TJEwYNGsTly5fZtm0bkydPxsfH5z2dvbRkCNA79r5v7ahUKpKTkzEwePuPVlu3pYQQQgiRSxR6qYsuyUE8HTp04NGjR4wZM4aoqCg8PDwIDg5WP3AbGRmJ3mtvPK5VqxarVq1i9OjRjBw5kpIlS7Jp0ybc3NzUdb799lvi4uLo27cv0dHR1K5dm+DgYExM/j9t6sqVK/H19aVhw4bo6enRrl075s6dqy63srJi586d+Pj4UKVKFQoWLMiYMWM03hXg7OzMjh07GDx4MBUrVqRQoUIMGjSI4cOHZ/s85BatvgcgKCiIDRs2cOnSJUxNTalVqxbff/89pUuXBlLfvjZ27Fh27txJZGQktra2eHt7M2HCBKysrLLUx/t+D0DgxKls+vMvfPv1YtLU2dyKvE1K3AOio2MYGhDI5m3BxMfHU7WyB7O+H497RTeW/bqGnl8P1Ghn6Y9zqVenFkXLVuX0kd14uFcAIDo6hvxOJdkbvJF6dbwI2X+I+s0+Y/vG1YweF8S5C+Hs/PN3AidNo6JbOUxMjPlp2UqMDA3p17s7gaO/zTD2Hn0HEB0dQ7UqlZj/4y8YGxtzI/wkt+/cZciIsezcHYKenh6f1KrJnOkTKeLqAkDI/kN8O2o8F8IjMDQ0oHzZ0qxatghXF+d3d6KFEEIIHaVT7wHY9J1uvgfAe4JWz09ep9U7APv27cPHx4dq1aqRlJTEyJEjadKkCRcvXsTc3Jx79+5x7949pk+fTrly5bh16xb9+vXj3r17rF+/XpuhZ+rq9Rv8sWkrG1YvRV8/NRv94stemJqY8tfG1VhZWfLjz8tp2PJzLp85QofP23D+YjjBu/by99Z1AFhZWfLg4aMs9zlizASmTw6kWFFX8ltbA7B85Vr8B/Tj2L5gjhw7QY++A/HyrE7jhvUybGd3yAEsLS3Y9W8ciYmJNG3dAc/qVTmwawsGBgZM/H4mzdp05Ozx1ITAu0N3+vT8ktXLF5GQkMjxk6dQ6NqMA0IIIYQQAtByAhAcHKyxvmzZMuzs7AgNDaVOnTq4ubnxxx9/qMuLFy/OpEmT+PLLL0lKSsqVYS7vQkJCIit+moetbUEADh4+yvGTp3l466J6iqvpQePY9OdfrN/4J317dSOfuTkG+vo4ONhn1nSGxo8enubCvqJbOcaOGgZAyRLFmLfoF3aHHMg0ATA3M+OnBbPUQ39+W72OlJQUflo4S31Rv/THuVg7liRk/yGqVvYgJkbJp82bULxYUQDKlimVo2MQQgghRC5T/LvoEl2LJw/SqSvomJgYAGxsbDKtY2lpmeHFf3x8vMab5JRKZe4GmQWuLoXVF/8AZ85eIDY2jgKFS2vUe/HiJddu3MyVPqtW9kizraJbOY11Rwd7Hj58nGk7FdzKaoz7P3PuAlev3cDCrqhGvZcvX3Lt+k2aNKpPjy870rR1Bxo3qEujBnVo37YNjo45S2SEEEIIIcS7pTMJQEpKCn5+fnh5eWk8oPG6x48fM2HCBI0HK/4rKCiIcePGvasws8TczExjPTYuDkcHe0J2bExT1zqTZxlePczy+lMar08zpdGnuVmabYaGhhrrCgWkqFLS1NNo57+xx8ZRpZI7K5cuSFPXtmBqkrN08VwGftOH4F17WLt+E6PHBbFr6zpqVq+aZh8hhBBCCKFdOpMA+Pj4cP78eQ4ePJhuuVKppGXLlpQrV47AwMAM2wkICNCYekmpVOLsrN2HUSt7VCTqwUMMDAzUD87+l5GREckpmhfntgULAHA/6gGVSH0IOOzs+Xcb7H9U9qjI2j82Y2drm+lD1JU8KlDJowIBwwbhWa85q9ZukARACCGE0DYdfhOw0B6dmBfK19eXrVu3snfvXgoXLpym/NmzZzRr1gwLCws2btyY5pvt1xkbG6vfLJfVN8y9a40a1MWzRlW823dn5997uXkrksNHjzNq7GROhoYBUMTVmRs3bxF25hyPH/9DfHw8pqam1KxehSkz5hJ+6TL7Dhxm9Lgp7zX2Lh3bUbCADW3ad+PAoaPcuHmLkP2HGDhkJHfu3OPGzVsEjJnIkWMnuBV5m51/7+XKtRuULV3yvcYphBBCCCGyRqsJgEqlwtfXl40bN7Jnzx6KFi2apo5SqaRJkyYYGRmxZcsWjblZPxQKhYLtG1dTp7YnPb8eRKmKnnTs9jW3bt/G3t4WgHben9KscQPqN2+LrUtZVv+eOlzol0VzSEpKoopXY/yGjWbi2BHvNXYzMzP279yMi3Mh2nbqSdlKtenV34+XL+OxtLTAzNSUSxFXaNfpK0pV9KSv71B8+vbk697d32ucQgghhBAia7T6HoBvvvmGVatWsXnzZvXc/5D6UgVTU1P1xf/z58/ZuHEj5ubm6jq2trbo6+u/sY/3/R4AIYQQQuRtOvUegD/H6uZ7AFqNk/cAaJFWnwFYuHAhAPXq1dPYvnTpUnr06MGpU6c4duwYACVKlNCoc+PGDYoUKfI+whRCCCGEEOKjodUE4E03H+rVq/fGOkIIIYQQQois05lZgIQQQgghRC6TWYBEOnRiFiAhhBBCCCHE+yEJgBBCCCGEEHmIDAESQgghhPhoKf5ddImuxZP35J0EQKGXugghhBBCvEtyvSF0nPyGCiGEEEIIkYfknTsAQgghhBB5jYwAEumQOwBCCCGEEELkIZIACCGEEEIIkYfIECAhhBBCiI+VvAhMpEPuAAghhBBCCJGHaDUBCAoKolq1alhYWGBnZ4e3tzcREREadb7++muKFy+Oqakptra2tGnThkuXLmkpYiGEEEIIIT5sWk0A9u3bh4+PD0ePHmXXrl0kJibSpEkT4uLi1HWqVKnC0qVLCQ8PZ8eOHahUKpo0aUJycrIWIxdCCCGE+AC8GgKka4vQKq0+AxAcHKyxvmzZMuzs7AgNDaVOnToA9O3bV11epEgRJk6ciLu7Ozdv3qR48eLvNV4hhBBCCCE+dDr1DEBMTAwANjY26ZbHxcWxdOlSihYtirOz8/sMTQghhBBCiI+CziQAKSkp+Pn54eXlhZubm0bZggULyJcvH/ny5eOvv/5i165dGBkZpdtOfHw8SqVSYxFCCCGEyJO0PdRHhgDpJJ1JAHx8fDh//jxr1qxJU9alSxdOnz7Nvn37KFWqFO3bt+fly5fpthMUFISVlZV6kTsFQgghhBBC/J9OJAC+vr5s3bqVvXv3Urhw4TTlVlZWlCxZkjp16rB+/XouXbrExo0b020rICCAmJgY9XL79u13Hb4QQgghhBAfDK0+BKxSqRgwYAAbN24kJCSEokWLZmkflUpFfHx8uuXGxsYYGxvndqhCCCGEEB8gxb+LLtG1ePIerSYAPj4+rFq1is2bN2NhYUFUVBSQ+o2/qakp169fZ+3atTRp0gRbW1vu3LnDlClTMDU1pUWLFtoMXQghhBBCiA+SVocALVy4kJiYGOrVq4ejo6N6Wbt2LQAmJiYcOHCAFi1aUKJECTp06ICFhQWHDx/Gzs5Om6ELIYQQQgjxQdL6EKDMODk5sX379vcUjRBCCCHER0ZGAIl06MRDwEIIIYQQQoj3QxIAIYQQQggh8hCtDgESQgghhBDvkC6+eEvX4smD5A6AEEIIIYQQeYgkAEIIIYQQQuQhMgRICCGEEOJjJUOARDrkDoAQQgghhBB5iCQAQgghhBBC5CEyBEgIIYQQ4qMlbwITackdACGEEEIIIfIQSQCEEEIIIYTIQ2QIkBBCCCHEx0pmARLp0OodgKCgIKpVq4aFhQV2dnZ4e3sTERGRbl2VSkXz5s1RKBRs2rTp/QYqhBBCCCHER0KrCcC+ffvw8fHh6NGj7Nq1i8TERJo0aUJcXFyaurNnz0YhGaMQQgghhBBvRatDgIKDgzXWly1bhp2dHaGhodSpU0e9PSwsjBkzZnDy5EkcHR3fd5hCCCGEEB8mBbo35EbHwsmLdOoh4JiYGABsbGzU254/f07nzp2ZP38+Dg4O2gpNCCGEEEKIj4LOPASckpKCn58fXl5euLm5qbcPHjyYWrVq0aZNmyy1Ex8fT3x8vHpdqVTmeqxCCCGEEEJ8qHQmAfDx8eH8+fMcPHhQvW3Lli3s2bOH06dPZ7mdoKAgxo0b9y5CFEIIIYT48MiQG/EfOjEEyNfXl61bt7J3714KFy6s3r5nzx6uXbuGtbU1BgYGGBik5ivt2rWjXr166bYVEBBATEyMerl9+/b7OAQhhBBCCCE+CFq9A6BSqRgwYAAbN24kJCSEokWLapSPGDGC3r17a2yrUKECs2bNolWrVum2aWxsjLGx8TuLWQghhBBCiA+ZVhMAHx8fVq1axebNm7GwsCAqKgoAKysrTE1NcXBwSPfBXxcXlzTJghBCCCGE+A95EZhIh1aHAC1cuJCYmBjq1auHo6Ojelm7dq02wxJCCCGEEOKjpfUhQO9jHyGEEEIIIUQqnZkFSAghhBBC5DYFujcNkK7Fk/foxCxAQgghhBBCiPdDEgAhhBBCCCHyEBkCJIQQQgjxsZJZgEQ68k4CEP8U4pO0HYUQQgghPnbxz7QdgRCZkiFAQgghhBBC5CF55w6AEEIIIUReI0OARDrkDoAQQgghhBB5iCQAQgghhBBC5CEyBEgIIYQQ4mMl7wET6ZA7AG+gsC7Jpq27srVPYNBc7EvWzNG+b+PmrTsorEsSdvZitvet07wTq9ZtASAhIYEiFepx8vS53A5RCCGEEEJomdwByGXhEVcZ9/0PbPxtATWreZDf2vK99e1c2JH7EYcpWCB/tvbbsn03Dx79Q8d2nwJgZGTE0AG9GD52Gru3rHgXoQohhBBCCC3R6h2AoKAgqlWrhoWFBXZ2dnh7exMREaFRp169eigUCo2lX79+Wor4za7diASgTctGONjbYmxs/N761tfXx8HeFgOD7OV1c39cQc8u7dDT+/+vQ5f2rTl49CQXwq/kdphCCCGEeF9ezQKka4vQKq0mAPv27cPHx4ejR4+ya9cuEhMTadKkCXFxcRr1+vTpw/3799XL1KlT30k8V67dpE7zTpjYl6dcjWbs2nswTZ3bd+7TvsdArF0qY1OkKm069ePmrTtA6tCfVh2/BkAvfykU1iXT7SfkwDEU1iXZsfsAlT5pjamDGw1adeXho3/4a9c+ylZviqWzB517D+b58xfq/YL/3k/tZh2xdqlMgaLV+LRDH67duKUu/+8QoFf97N53mKr1PsPMsQK1mrQn4sp19T6PHv/Dnv1HaNWsgUaM+a2t8KpRhTV/bM3h2RRCCCGEELpIqwlAcHAwPXr0oHz58ri7u7Ns2TIiIyMJDQ3VqGdmZoaDg4N6sbTM/WE1KSkptO3qg5GREcf+Xs+imeMZPnaaRp3ExESatuuJRT5zDvy1mkM71pAvnxnNPu9FQkICQwf0Yun8KQDcjzjM/YjDmfYZOGUu86aN5fCOtdy+m5pYzF64jFVLZrJt7RJ27jnED4v/PwQnLu45/t/05GTIRnZvXo6eQo/PuviQkpKSaT+jJsxkxsQRnNy7AQN9fb7yDVCXHTwSipmZKWVLF0+zX/UqFTlw5KR6/VVC8SrhEUIIIYQQHx6degYgJiYGABsbG43tK1eu5LfffsPBwYFWrVrx3XffYWZmlm4b8fHxxMfHq9eVSmWW+v475BCXLl9nxx+/4ORoD8DkMUNo/nkvdZ21G7aTkqLipx8mo/j39tXS+VOwdq1CyMFjNGnwCdZWqcmJg73tG/ucOHowXjWrANCr6xcEjJvOtbDdFCviAsDnbZqy98Axhvul3lVo16aZxv6/zA/CtngNLl66ilu5Uhn2M+k7f+rWrgHAiMFf07J9H16+jMfExJhbt+9ib1tAY/jPK04Odty6fU+9bmZmQumSxTA01KlfGyGEEEJkSKYBEmnpzJVcSkoKfn5+eHl54ebmpt7euXNnXF1dcXJy4uzZswwfPpyIiAg2bNiQbjtBQUGMGzcu2/2HR1zDuZCD+uIfwLNaJY06Z86Hc/X6LSwKe2hsf/kyXj32Pzsqli+t/tnetgBmZqbqi//UbQU5HnpWvX7l2k3GTJ7NsZNnePzkKSkpKgAi79zLNAF4vR/HfxOTh4/+wcXZiRf/JgLpMTU14fmL/w9Bql7FnUsndmTzKIUQQgghhC7RmQTAx8eH8+fPc/Cg5rj7vn37qn+uUKECjo6ONGzYkGvXrlG8eNphKwEBAfj7+6vXlUolzs7OuRJjbNxzqniUZ+WSmWnKbAvYpLNH5gwNDNU/KxQKDP/z8K5CodAY3tOq49e4OjuxZO4knBzsSElR4ebZgoSExGz1A6jbLVggP0+j079L8uRpNLYFs39cQgghhBBCd+lEAuDr68vWrVvZv38/hQsXzrRujRqpQ1muXr2abgJgbGyco5l3ypYuzu27UdyPeoijgx0AR0+GadSp7F6etRu2Y1fQBktLi2z38Tb+efKUiCvXWTJnIp/UqgbAwdfG5+dUpYrliHrwiKfRMeS3ttIoO3/xCpUqlHvrPoQQQgihJbo4646uxZMHafUhYJVKha+vLxs3bmTPnj0ULVr0jfuEhYUB4OjomKuxNKrnRakSReje/1vOnAvnwOETjJqg+U1/ly9aU7BAftp07s+Bwye4cfM2IQeOMfDb8dy5ez9X4/mv/NZWFLDJz+Jla7l6/RZ79h3Bf1TQW7dbqWI5ChbIz6GjoWnKDhw5SZMGtdXrx0PPUKZaU+7ei3rrfoUQQgghhHZoNQHw8fHht99+Y9WqVVhYWBAVFUVUVBQv/h13fu3aNSZMmEBoaCg3b95ky5YtdOvWjTp16lCxYsVcjUVPT4+Nvy3gxct4qjdsR++Bo5j0nb9GHTMzU/ZvX4VLYSfadvWhbI1m9BoQwMv4BCwt8uVqPOnFt+aXWYSeOY+bZwsGj5zMtPHfvnW7+vr69OzSjpX/vgX4lSPHTxOjfMbnrz14/Pz5SyKuXCcxMemt+xVCCCGEENqhUKlUKq11nsEtoKVLl9KjRw9u377Nl19+yfnz54mLi8PZ2ZnPPvuM0aNHZ3kqUKVSiZWVFTGRp977sJ0PRdSDR5Sv2YJT+zbh6lIIgA49B+HuVoaRQ/prOTohhBDiw6JUPsPKpTIxMTHvZOryrMWQev3z9OAcLPOZaiWGjChjX5C/9iCtnp+8TqvPALwp93B2dmbfvn3vKZq8y8Help9/mEzknXu4uhQiISGBCuVKMfibntoOTQghhBBC5DKdeAhYaJ/3p43VPxsZGTF6mI8WoxFCCCGEEO+KJABCCCGEEB8rmQVIpEOrDwELIYQQQggh3i9JAIQQQgghhMhD8s4QIOP8YCyzAAkhhBDiHTPOO5dX4sMkdwCEEEIIIYTIQyQBEEIIIYQQIg+Re1RCCCGEEB8rmQVIpEPuAAghhBBCCJGHSAIgMrVpy3ZKlK+GvrkdfkNHaTWWek1aaz0GIYQQQmjH/PnzKVKkCCYmJtSoUYPjx49nWn/dunWUKVMGExMTKlSowPbt2zXKVSoVY8aMwdHREVNTUxo1asSVK1c06jx58oQuXbpgaWmJtbU1vXr1IjY2VqPO2bNn+eSTTzAxMcHZ2ZmpU6dmGNOaNWtQKBR4e3tn7+BzmSQAuWzZr6up16Q1kHrBuuzX1eqyIqUrEbL/ICH7D1KkdKVM9wnZfxCFacFMl5D9B3MU46u2o6Nj3lj36wFD+PyzVty+coYJY0fkqL/syii+DWuWv/MYbt6KRGFaEIDAid/To4+vuqxHH18CJ34PgMK0IDdvRb5xHyGEEEKrXg0B0rUlm9auXYu/vz9jx47l1KlTuLu707RpUx4+fJhu/cOHD9OpUyd69erF6dOn8fb2xtvbm/Pnz6vrTJ06lblz57Jo0SKOHTuGubk5TZs25eXLl+o6Xbp04cKFC+zatYutW7eyf/9++vbtqy5XKpU0adIEV1dXQkNDmTZtGoGBgSxevDhNTDdv3mTo0KF88skn2T7+3KbVBCAoKIhq1aphYWGBnZ0d3t7eREREpKl35MgRGjRogLm5OZaWltSpU4cXL15oIeL3p1bN6ty/cUG9tG/XhmZNGmpsq1Wz+juNITY2locPH9G0cX2cnByxsNDuNKo2Nvm1HoMQQggh3r+ZM2fSp08fevbsSbly5Vi0aBFmZmb88ssv6dafM2cOzZo1Y9iwYZQtW5YJEyZQuXJl5s2bB6R++z979mxGjx5NmzZtqFixIitWrODevXts2rQJgPDwcIKDg/npp5+oUaMGtWvX5ocffmDNmjXcu3cPgJUrV5KQkMAvv/xC+fLl6dixIwMHDmTmzJka8SQnJ9OlSxfGjRtHsWLF3t2JyiKtJgD79u3Dx8eHo0ePsmvXLhITE2nSpAlxcXHqOkeOHKFZs2Y0adKE48ePc+LECXx9fdHT+7hvXhgZGeHgYK9eTE1NMX5tW/781owcM5FCxdwwL+BCjU+aaNwRuHXrNq3adSa/Y3HMC7hQvrIX24N3cfNWJPWbegOQ37E4CtOC6X5jHbL/IBa2RQBo0Owz9R2HwInf41Gjnkbd2T8s0rij0aOPL95fdGX6rHk4Fi1HgUIl8fH7lsTERHWd+Ph4ho8ah3OJihhbOVGifDV+XvZbpvH9dwjQ06fRdOv1Dfkdi2Nm40zzNh24cvWaunzZr6uxdijGjl17KOvhSb6CrjRr3Z7796Ny9JkIIYQQIvcolUqNJT4+Pt16CQkJhIaG0qhRI/U2PT09GjVqxJEjR9Ld58iRIxr1AZo2baquf+PGDaKiojTqWFlZUaNGDXWdI0eOYG1tTdWqVdV1GjVqhJ6eHseOHVPXqVOnDkZGRhr9RERE8PTpU/W28ePHY2dnR69evbJ0bt41rc4CFBwcrLG+bNky7OzsCA0NpU6dOgAMHjyYgQMHMmLE/4d+lC5d+r3GqYt8Bw/nYvhl1qxYgpOTAxs3b6NZ6w6cO7mfkiWK4zP4WxISEtm/60/Mzc24GB5BvnzmOBcuxB+rl9GuUw8izh7F0sICU1PTNO3XqlmdiLNHKV2xJn+sXkatmtWwsclPyP5DWYpv7/6DODraszd4M1evXadD1z54VHSjz1fdAOjW6xuOHDvJ3BlBuFcsz42bkTx+/E+W4wPo0deXK1evs2Xdb1haWjB89HhaeHfk4unDGBoaAvD8+Qumz57Prz8vQE9Pjy+/6s/QgLGsXPZjDs+8EEII8QHR4VmAnJ2dNTaPHTuWwMDANNUfP35McnIy9vb2Gtvt7e25dOlSul1ERUWlWz8qKkpd/mpbZnXs7Ow0yg0MDLCxsdGoU7Ro0TRtvCrLnz8/Bw8e5OeffyYsLCzdWLVBp6YBjYlJHfNtY2MDwMOHDzl27BhdunShVq1aXLt2jTJlyjBp0iRq166tzVAz1KNrJ3p07QRAyM4tGmU3I06n+3Nm+6QnMvIOS1esJvJyGE5OjgAMHexL8K49LF2xmsnjRxN5+y7tvD+lgls5AIoVLaLe38bGGgA7W1usra3S7cPIyAg7W1t1fQcH+3TrZSS/tTXzZn2Pvr4+ZUqXpGWzxuzeu58+X3Xj8pWr/P7HZnZt+4NGDermKL4rV6+xZWswh/Zsp5Zn6lColUsX4VzSnU1btvNFuzYAJCYmsuiH6RQvlvrH6duvN+ODpmcYdxFXF1QvHgMQOHq4RtmyJfPUP7+q86Z9hBBCCJG+27dvY2lpqV43NjbWYjTvxrNnz+jatStLliyhYMGC2g5HTWcSgJSUFPz8/PDy8sLNzQ2A69evAxAYGMj06dPx8PBgxYoVNGzYkPPnz1OyZMk07cTHx2vcQlIqle/nAN6jcxcukpycTKmKNTW2x8fHU8AmPwADv+lD/4HD2Pl3CI0a1KGddysqVij/3mIsX640+vr66nVHB3vOXbgIQNiZ8+jr61P3k1o5bj/80mUMDAyoUb2KeluBAjaULlWC8IjL6m1mZmbqi/9XcTx8+CjH/QohhBAid1haWmokABkpWLAg+vr6PHjwQGP7gwcPcHBwSHcfBweHTOu/+u+DBw9wdHTUqOPh4aGu89+HjJOSknjy5IlGO+n186rs2rVr3Lx5k1atWqnLU1JSgNS7CRERERQvXvyN5yC36cxAeh8fH86fP8+aNWvU216doK+//pqePXtSqVIlZs2aRenSpTN86CMoKAgrKyv18t/bSx+D2Ng49PX1CT38N2HH9qqX8LDDzJk+GYDePbty/WIoXTt/wbnz4VT1asQPC5a8dd96enqoVCqNba+P7X/F0MBQY12hUKg/T1NTk7eOI6sMDTVzXIVCkSZ+IYQQ4uOl0NEl64yMjKhSpQq7d+9Wb0tJSWH37t14enqmu4+np6dGfYBdu3ap6xctWhQHBweNOkqlkmPHjqnreHp6Eh0dTWhoqLrOnj17SElJoUaNGuo6+/fv17gW2rVrF6VLlyZ//vyUKVOGc+fOERYWpl5at25N/fr1CQsL09p1qk4kAL6+vmzdupW9e/dSuHBh9fZXGVm5cuU06pctW5bIyMh02woICCAmJka93L59+90FriWVPCqQnJzMw4ePKVG8mMby+lAdZ+dC9OvTkw1rlzNk0DcsWforAEaGqQ+qJCcnZ7tv24IFiHrwUOMiOuzs+Uz2SKuCWzlSUlLYd+BwuuVZia9smVIkJSVx7Pj//yj/+ecJEZevUq6MPCMihBBCfEz8/f1ZsmQJy5cvJzw8nP79+xMXF0fPnj0B6NatGwEBAer6gwYNIjg4mBkzZnDp0iUCAwM5efIkvr6pE4soFAr8/PyYOHEiW7Zs4dy5c3Tr1g0nJyf1HP1ly5alWbNm9OnTh+PHj3Po0CF8fX3p2LEjTk5OAHTu3BkjIyN69erFhQsXWLt2LXPmzMHf3x8AExMT3NzcNBZra2ssLCxwc3PTeHj4fdJqAqBSqfD19WXjxo3s2bMnzUMURYoUwcnJKc3UoJcvX8bV1TXdNo2NjdW3lLJ6a+lDU6pkCbp0/JxuvX3YsGkrN27e4viJUwRNm822v3YC4Dd0FDt27eHGzVucOn2GvfsOUrZ06pApVxdnFAoFW//ayaNHj9O80CIz9erU5tGjx0yd8QPXrt9g/qKf+Wvn7jfv+Joiri50/7IjX309kE1btnPj5i1C9h/k9/WbshxfyRLFafNpc/r4DObgoaOcOXueL7/qTyEnB9q0ap7lWDZu3kYZ95pvriiEEEIIrenQoQPTp09nzJgxeHh4EBYWRnBwsPqB28jISO7fv6+uX6tWLVatWsXixYtxd3dn/fr1bNq0ST3MHODbb79lwIAB9O3bl2rVqhEbG0twcDAmJv8fqbBy5UrKlClDw4YNadGiBbVr19aY49/KyoqdO3dy48YNqlSpwpAhQxgzZozGuwJ0kVafAfDx8WHVqlVs3rwZCwsL9RPVVlZWmJqaolAoGDZsGGPHjsXd3R0PDw+WL1/OpUuXWL9+vTZD17qli39g4pQZDBkxhrv37lOwgA01q1fl0+ZNgNRvz338hnPn7j0sLS1o1rgBs6ZOBKBQIUfGfTecEd+Np2ffAXTr0kHjAdfMlC1TigVzpjJ56mwmTJlBO+9PGernw+KfV2Qr/oVzpzFyzES+GTSMf548xcW5ECO/HZyt+JYu/oFBQ0fyabvOJCQkUqe2J9s3rVHPAJQVMUolEZevZit2IYQQ4oOhw7MAZZevr6/6G/z/CgkJSbPtiy++4IsvvsgkDAXjx49n/PjxGdaxsbFh1apVmcZVsWJFDhw4kGmd1y1btizLdd8VhUqLA6IVGfwCLF26lB49eqjXp0yZwvz583ny5Anu7u5MnTo1y7MAKZVKrKysiHlwA0tLeYmUEEIIId4tpfIZVvZFiYmJ0dpIhFfXP0+PLcQyX/rTaWuLMvYF+Wv01+r5yeu0egcgq7nHiBEjNN4DIIQQQgghhMgZnZkGVAghhBBC5DKFXuqiS3QtnjxIPgEhhBBCCCHyEEkAhBBCCCGEyENkCJAQQgghxEcr+y/eevd0LZ68R+4ACCGEEEIIkYfknTsAquTURQghhBDiXZLrDaHj8k4CIIQQQgiR1yjQwReBaTsAIUOAhBBCCCGEyEMkARBCCCGEECIPkSFAQgghhBAfK3kRmEiHfAI66OatSBRm9oSdOa/tUIQQQgghxEdGEgABQGJiIsNHT6BCtbqYFyyCU7GKdOvty717URr1Wn/eFZdSlTHJ74Jj0Qp07eWjUSdw4jQUZvZpFvOCRdR16jX9LN06LT/roq6TXrnCzJ5ps+ar6xQpUzVN+ZTpc7MVS1a8KZaQ/YcyrHPi5GkAIi5fpX6zz7AvUh6T/C4UK1eN0YFBJCYmZisWIYQQQoi3pdUhQEFBQWzYsIFLly5hampKrVq1+P777yldujQAN2/epGjRounu+/vvv/PFF1+8z3A/as+fv+BU2Fm+G+GPe4XyPI2OZtDQ0bT+ohsnD+1U16tf14uR3w7CEzexVgAAYdlJREFU0cGeu/eiGBoQyOddenF47zYAhvp9Q7/e3TXabtjyc6pV8VCvb1j9CwkJ/7/w/efJE9xrNOCLtq3U2+5fP6fRxl87d9Or/2DaebfU2D7+u+H06fmlet3Cwlz9c1ZiyYo3xVKrZrU0db4bP4XdIQeo+m9fhoYGdOvcnsoeFbG2tuTM2Qv08R1CSkoKk8ePylY8QgghRNbJi8BEWlpNAPbt24ePjw/VqlUjKSmJkSNH0qRJEy5evIi5uTnOzs7cv39fY5/Fixczbdo0mjdvrqWoM3ft+k38h4/h6IlQ4uKeU7Z0KYLGj6RRg7rZbuvS5St84zecU2HnKFG8CPNnTaHuJ7XeQdRgZWXJrq3rNLbNmxlE9TrNiLx9BxfnwgAMHtBPXe7q4syIIQPw7tCDxMREDA0NyZfPnHz5/n8RfubsBS6GR7Bo7lT1Nhub/Br9rFm/ETMzU40EwMHBTqPO5q3B1K/rRbGiRTS2W1iYp6n7SlZiyYo3xWJkZKRRJzExkc3bghnQrzeKf6deK1a0iEbsri7OhBw4zIHDx7IVixBCCCHE29LqEKDg4GB69OhB+fLlcXd3Z9myZURGRhIaGgqAvr4+Dg4OGsvGjRtp3749+fLl02boGYqNjaNF00bs3rae00d206xxfVp93o3I23ey3dawkeMZMqg/p4/8jWf1qrT6vCv//PMkw/r9Bgwjn23RTJfsiFEqUSgUWFtZpVv+5MlTVq79g1o1q2FoaJhunZ+W/UapksX5xKtmhv38vHwVHT/3xtzcPN3yBw8esi34b3p175ymbMr0HyhQuAyVajZk2qz5JCUlZdhPVmJ5k8xieWXLth38889TenbtmGGdq9duELxrL3Vre+Y4FiGEEEKInNCpWYBiYmIAsLGxSbc8NDSUsLAw5s+fn265LnCvWB73iuXV6xPGjmDjn9vZsnUHvv17Zast335f0c77UwAWzp1K8K69/Lx8Fd/6+6Zbf/x33zLU75ucB/+aly9fMnz0RDq1/wxLSwuNsuGjJzBv0c88f/6CmtWrsPWP3zJsY+XaDYwYMiDDfo6fOMX5C5f4ecGsDOssX/k7Fhb5aNtGc/jPwG96U9mjAjb5rTl89CQBYydxP+oBM78fn6NYsiKjWF7387JVNG1Un8KFndKU1arfklNh54iPj6fvV10ZP2b4W8UjhBBCZEqh0MEXgelYPHmQziQAKSkp+Pn54eXlhZubW7p1fv75Z8qWLUutWhkPg4mPjyc+Pl69rlQqcz3WzMTGxhE4aRrbgv/mftQDkpKSePHiJZF37ma7Lc8aVdU/GxgYULWyO+GXrmRY387OFjs72xzF/brExETaf9kHlUrFwjlph8sM8/uGXt07cyvyDuMmT6db7wFs3fCberjLKxu3bOfZs1i6d2mfYV8/L19FBbeyVK9WOcM6v6xYTZcObTExMdHY7j/w/8ORKlYoj5GRIV8PGEbQ+FEYGxtnO5asyCiWV+7cuceOv/fy+29L0i1f++tinj2L5cy5CwwbOZ7psxdkmNAJIYQQQrwLOpMA+Pj4cP78eQ4ePJhu+YsXL1i1ahXfffddpu0EBQUxbty4dxFilgwNCGTXnn1MnxxIieJFMDU15fPOvUhISHjnffcbMIzf1qzPtE7soxuZlr+6+L91+w57tv+R5tt/gIIFC1CwYAFKlSxO2dIlcS5ViaPHT+JZo5pGvZ+WreTT5o2xt09/jH5cXBxr1m9i/HffZhjPgUNHibh8lbUrFmcaN0CNapVJSkri5q3blC5VIluxZEVWYln66xoKFMhP65ZN0y13LlwIgHJlS5OcnEJf36EMGdQffX39HMclhBBCCJEdOpEA+Pr6snXrVvbv30/hwoXTrbN+/XqeP39Ot27dMm0rICAAf39/9bpSqcTZ2TlX483MoaPH6fFlRz5r0wJIvSNwM/J2jto6ejyUOv+OEU9KSiL09Fl8+32VYf23HQL06uL/yrXr7P1rAwUKpD8U63UpqhQA4uM1E5wbN2+xd98htqxbkeG+6zb8SXx8Al92/DzDOj8vX0WVSu4aw6oyEnb2PHp6etjZFsx2LFnxplhUKhVLf11Nt87tM3wm4nUpKSkkJiaSkpIiCYAQQoh3RA/dm/Vd1+LJe7SaAKhUKgYMGMDGjRsJCQnJcMpPSB3+07p1a2xtMx/iYmxsnGb4x/tUsngxNmzeRqsWTVAoFHw3fgopKSk5amv+j0spWbwYZcuUZNYPP/I0OpqvunXKsP7bDAFKTEzk8869OBV2jq1//EZycgpRUQ8BsLGxxsjIiGPHQzkRGkbtWjXIn9+Ka9dv8t347ylerIjGcCWAX5avxtHBnuZNG2bY58/LV+HdqlmGiYZS+Yx1G7YwIyjtHZ0jx05w7MQp6tepjYWFOUeOnWTw8DF82elz8ue3znYsb5JZLK/sCTnAjZuR9O7RJU3ZyjXrMTQ0pEL5shgbG3Hy1BkCxkyiw+dtspQsCCGEEELkFq0mAD4+PqxatYrNmzdjYWFBVFTqC6WsrKwwNTVV17t69Sr79+9n+/bt2go1y2Z+P46v+vlRq8GnFCxgw3B/X5TPYjXqBE6cxrLf1nLz0slM25oyYRRTZswl7OwFShQvypZ1KyhYsMA7ifvuvfts2bYDAI+aDTTK9gZvoF4dL/7X3n1HRXW0ARz+gdKrWEAUBKUIKoIgCigau7HHRGPsJfbesXewxt5ij91ENDFqPkuwgCJib1iJXWNUVkABYb8/CKurCGiQRXmfc/bE3Tt35r0lOnOnXENDA7b++jtjJ08nLi6eolZFqFe7BqOGDVBrdKWkpLBq7SY6tGn5zifbUZevcjgsnP/9tvmdMW3cEoxSCa1aNHtrm56uHhu3bGPc5BkkJCRib2fLgN7d1OYFZCWWkIOhfFHvK25cjMCuhO0HxZJm+er1+FauSGlnx7e25c+fn6kz53P56jWUSiUlbG3o3b0TA/p0e2d+QgghhBAfg5ZSqVRqrPB3zAJfuXIlHTp0UH0fMWIEa9euJTo6Gm3t9+s2UigUmJmZEXP/arrj2TWh/fd90NLSYtXSuZknFh/VyjUbmDJ9DhdOHJIn8UIIIbKFQvEMMysHYmJiMDU11VAMqfWfJydWY2psqJEY3kURG0+BCu01en7yOo0PAcqKKVOmMGXKlI8cTc5QKpWEHAzj8L5fNR2KAHb+sY8p40dI5V8IIYQQeUaumAScl2hpafFXVKSmwxD/2rJumaZDEEIIIYTIUdIAEEIIIYT4bOXCF4GR2+LJe2QdJiGEEEIIIfIQaQAIIYQQQgiRh+SZIUDK5w9Q5o/TdBhCCCGE+Mwpn8dmnijHaJH7htzktnjyHukBEEIIIYQQIg+RBoAQQgghhBB5SJ4ZAiSEEEIIkedoaad+cpPcFk8eJFdACCGEEEKIPEQaAJ85pVJJ1wETKOhQFe1C5Tl19pLGYom+eUfjMeRW8fHP+brDQMzsfNEuVJ6nMYpszb9djxFM+SF7X3o2buoiPKq3yDDN8Amz6TM8MFvLFUIIIcR/I0OAPnO794WyeuN2/ty+nJIlilOooHmOlNux92iexjwj+KfZqt9sillx9/y+HIvhU7J6428cOnqC0F2rKWRRADNTk2zL+/S5KHbuPczC6aOyLc+sGtyrPaU8GzCge1tK2hXP8fKFECLP08qFLwLLbfHkQdID8Jm7Fn2LopaF8fV2x8qyEPnza67Nly9fPo3HkFtdi76Fi2NJyro4YmVZCK1s/Mtx3o8b+LpxbYyNDbMtz6wqVLAAdWv4smjl5hwvWwghhBDp02gDIDAwkIoVK2JiYkKRIkVo2rQpUVFRamnu379P27ZtsbKywsjIiAoVKvDLL79oKOLMpQ2LWLJqC7ZudTCyqUTLzkOIUTxTpUlJSWHC9MXYlKuNvrUXHtVbsHtfqGr7Nx0H0XvYFNX3/iOnoV2oPJeu3AAgMTEJY9tK7D1wNMNYOvYeTd/hQdy8fQ/tQuWx96gPgL1HfWYvXquW1qN6C8ZNXaT6rl2oPMt+2spX7fpjZFMJp4qN+HVXiNo+5y9dpVGr3pjZ+WJawgf/hh24duMW46YuYvXGX9m+60+0C5VHu1B5Qg5HpDsE6EDocSrV/g59ay+sXWsyfMJsXr58qdr+RePO9A0IYui4HyjoUJWirjXU4vwYOvYeTbO2/Rk/bTFFnKtjZudL90ETSUxMUqVJSEikb0AQlqWrY1CsIlUbtCfixDnV9oo1WzFj/mrV92Zt+6Nr5UlsbDwAt+8+QLtQea5ev8kXjTsza+EaDh6JRLtQeb5o3BlIvQbbdu5Xi61AySqs2rAdeDWkauuOvdRo0hkjm0q4V/uGIxGnVemTk5P55be9NKpbTS2fnzb/RsWarTAt4UNR1xq07jqch3//80HnK6N7HaBh3WpsCt79QXkLIYQQIvtptAFw4MABevXqxdGjR9mzZw9JSUnUqVOHuLhXL+xq164dUVFR/Prrr5w9e5avvvqKFi1acPLkSQ1GnrGrN26yZfv/+HXdXHZtWsjJM5foNeRVhX7OknXMWvgT08cP5PSBn6nzhQ9N2vTlyrW/APD39eRA6HFV+oNhxylUsAAhhyMAiDh5jqSkl/hWLJ9hHLOnDGX88J4Ut7bk7vl9HNuz7r2OY8L0xXzTpC6nD2yhfu0qtOkewOMnMQDcufeAao06oaeny77gHzm+bwMdv2vKy5fJDO7VnhZN6lCvph93z+/j7vl9+Hq7v5X/nXsPaNCqF14eZTl1YAsLZ4xkxbptTJr5o1q6NRt/w8jQgKN/rGXq2AFMnLGEPSFH3hn3ui2/Y1KicoafQ0dOZHjs+w6Gc+nydf7cvoz1S4MI/n0f46cvVm0fOv4Htv62l1XzJxG5fyMO9rbUa9FDdX5Sr2Hq9VIqlRw6egJzMxMOh6fetwdCj1OsaBEcStryy+pZdGnbHJ+K5bl7fh+/rJ6V+cV5zajJ8xnUqz0n/9yEU6kSfNd1uKoRdeb8ZWIUz/ByL6O2T1LSSyYE9OLUgS0Er5lN9K27dOwz5r3KhczvdQDvCmW5ffcB0TfvvHf+Qggh/iutXPoRmqTRsRi7d6s/FVy1ahVFihQhMjISf39/AMLCwli0aBHe3t4AjBo1ih9++IHIyEg8PDxyPOasePEikdULJ1GsqCUAc4OG07BVb2ZMGISVZSFmLljN0L4d+far1CfyU8cOIORwBLOXrGPBtBFU96tI/xHT+PvRY/Lnz8+FqOuMGtSVA6HH6d6xBSGhx6noURZDQ4MM4zAzNcHE2Eg19OZ9tW/VmFbNU2OcMrIP85au59iJc9Sr6ceC5ZswMzVmw49T0dHRAcDJwU61r4GBPgmJSRmWu3DFZmysrZg/NQAtLS1KO9pz9/7fDB8/mzFDuqGtndo+dSvjyNih3QFwLFWCBcs2sO9gOLWr+6Sbb+N61ankWS7DYytWtEiG23V1dVg+dzyGhgaUKe3A+GE9GTruByYG9OL58xcsXrmZlfMmUr9WFQCW/jCGPSFHWL42mCF9OlDdz4sV67aRnJzMuYtX0dXRoUWzuoSERlCvph8hocep5usFgEUBMwwN9dHV0fmg6zSoVzsa1En9/2XcsB6U9fuKqzduUdrRnr9u3yNfvnwUKWyhtk+n1s1Ufy5pV5w5U4bhXfs7YmPj32uoUGb3OoC1VWEA/rp1DzvbYu99fEIIIYTIXrlqMHZMTOrTUwuLV5UVX19fNm3aRIMGDTA3N2fz5s28ePGC6tWrp5tHQkICCQkJqu8KRfauppIVtsWtVBUiAJ+KbqSkpBB1NRpDQ33u3v8bvzeeiPt6e3DmfOrwp7IuDlgUMONAWCS6Ojp4lCtNwzr+LFy+CUjtEajm5/XRj8PN1Un1ZyMjQ0xNjHn46DGQOrG0auUKqsr/h7h0+To+Fd3Uxrv7ebsTGxfP7bsPsC1eFIByr8UBUNSysCqO9JiYGGFiYvTBcQGUL+Ok1sDyqVie2Lh4bt25T4wilqSkl/hVcldt19HRwbtCWS5euQ5AVZ8KPIuN4+SZS4RFnKKaryfV/byYOmcFkHoNB/fu8J9iTPP6dSpqmVrZfvj3Y0o72vP8eQJ6ejpvzSmIPHWB8dMWcfr8ZZ48VZCiTAHg5p17uDqXynLZGd3raQ0AA309AOKfv/iwAxRCCCFEtso1k4BTUlLo378/fn5+lC1bVvX75s2bSUpKomDBgujp6dGtWzeCg4NxcHBIN5/AwEDMzMxUHxsbm5w6hGyjpaWFv08FQkIjOPBvZd+tjBMJiYmcu3iFsIjTVPP1/OD8tbW1UCqVar8lJSW9lU5HR719qKWlRUpKakUxrVKXE9KLQ5mifEfq7BkC9F+Zm5lSvowTIaHHORgWSTU/L/x9PDl59hKXr0Zz5frNTK+hllY61+llxtcprZ6fdp0KFTQnPv6F2vyFuLh46rXogamJMWsXB3Js73q2rv4BQC1ddnn8JLURXrhggWzPWwghRCbSXgSW2z5Co3JND0CvXr04d+4chw8fVvt99OjRPH36lL1791KoUCG2bdtGixYtOHToEOXKvT3MIyAggIEDB6q+KxSKHG8E3Lx9n7v3HmL97zCTo8fPoK2tjbODHaYmxlhbFSb02Cm1p/hhx05SscKrho+/rxfLfvoFPV1dJo3sg7a2Nv4+nsyYv5qEhKS3ehDeR+GCBbj34JHqu+JZLDdu3n2vPMq5OrFm068kJSWl2wugo6NDcnJyhnmUdirJ1t/2olQqVU+oQ4+dwsTYiOLWlhnum5HsGAJ0+vxlnj9/gYGBPpB6DY2NDLEpZkUhixfo6uoQGn6KEjbWQGoDKuLkefp1a6PKw9/Xi5DDERw7eY5JI/tgUcAMF6eSTPlhGUUtC6sNmUpP4ULq1+nKtb+Ij3+/p+juZZ0BuBB1DfdypQG4dCWafx4/JXBMP2yKWQFw/OT598o3TUb3eppzl66io5OfMqWz3rMghBBCiI8nVzTBevfuzY4dO/jzzz8pXvzVWuHXrl1j/vz5rFixgpo1a1K+fHnGjh2Ll5cXCxYsSDcvPT09TE1N1T45TV9flw69R3P6XBSHjpygX8BUWjSpoxoSMbh3B6bNXcmm4N1EXYlm+ITZnDoXRb+urVV5VPfz4kLUdc5HXaNKpdS5DtX8vFj380683F0xMvrwJR2/qOrN2s07OHTkBGcvXKFDr1Hk036/W6F3l29RPIuj1ffDOH7yPFeu/cVPm38j6ko0AHa21py5cIWoK9E8+udJuj0MPTu14Nbd+/QZHsilKzfYvvNPxk1dxIAebVXj/z+EiYkRDiVtM/ykVezfJTExiS79xnEh6ho79xxi3LRF9OryLdra2hgZGdK9YwuGjpvF7n2hXIi6RtcBE4h//oLObV6Nra/u58Uff4aRP18+SjvaA6+uYVZ6cGpU8WbBso2cPHOR4yfP02PwpLd6QzJTuJAFFdxcVJOPIXXYjq6uDvN+3MD16Nv8uiuESTOXvle+aTK71wEOHTlB1coVMj3nQgghhMgZGu0BUCqV9OnTh+DgYEJCQrC3t1fbHh+fumTim5XBfPnyqYY45EYO9rY0a1CTBt/24vFTBQ3r+LNg+kjV9r5dvyNGEcvgMTN5+Ogxrs6l2L52Lo6lSqjSlHN1xNzMBKdSJVSTMqv7eZGcnPyfx/8H9O9M9F93aPRdH8xMjZkQ0Ou9ewAKWpizL/hHho6bRfUmncinnQ/3ss74eac2Vr5v+xUHQiOoWKsVsXHx7N+2DDtba7U8ihW15PcNCxg6bhbu1b7BwtyMTq2bMmrQ9//p+LJDTf9KOJS0pVqjTiQkJPLtV/UZN7SHanvQ6H6kpKTQrudInsXG4eXuyu7Niyhg/qrBWdWnAikpKWqV/ep+Xsxdsi5L13DGhEF06jsG/0YdsbYszOwpw4g8ffG9j6Vzm6/4afNv9O7SCkhtFKycN5GRk+cy78f1VHBzYfr4gTRp009tP3uP+rT/tjHjhvVIL1sg83sdYFPwbtUkbiGEEDlLS0srW98tkx1yWzx5kZbyzUHGOahnz56sX7+e7du34+zsrPrdzMwMAwMDkpKScHV1pWjRosyYMYOCBQuybds2hgwZwo4dO/jyyy8zLUOhUGBmZsbTG6GYmhh/zMMBUt8DsH3Xn5wMkRcffarSe4vxp+z58xeUrtyEjcum4ZPJ0rFp4uOfU8ipGjs3LqB6lYofXPauvYcZPGYmpw9ukRfACSHyDMWzWMzt/YiJidHISAR4rf5zZjOmJjn/IsiMKJ7FY+7WQqPnJ6/T6BCgRYsWERMTQ/Xq1SlatKjqs2lT6mo3Ojo67Ny5k8KFC9OoUSPc3NxYs2YNq1evzlLlXwiRuiTr6gWTePTPkyzv8+fhCGpU8f5PlX+AuPjnrJg3Xir/QgghRC6i8SFAmXF0dMzVb/7VpJu371HGr9k7t58PDVYtpSnytvetyDeo4696t8B/8XXj2v85DyGEEP9FbnzxVm6LJ+/R6BCgnJDTQ4By0suXL4nOYOy+na21PHkVQgghcljuGgK0JZcOAfpGhgBpkNQOP2H58+fHoaStpsMQQgghhBCfEGkACCGEEEJ8rrS0ct+Lt2QVII3LZXeEEEIIIYQQ4mPKOz0AWrqgravpKIQQQgjxudOS+obI3fJOA0AIIYQQIs+RVYDE22QIkBBCCCGEEHmINACEEEIIIYTIQ2QIkBBCCCHE50pLK/etupPb4smDpAdAiM/Y6Mlz6Np/TLbmuWp9MAXsvDNMs3jlRhq36pGt5QohhBAie0gDQGjUuKD5ePg303QYn6X7D/5m7pKfGDmoW46X3an1V5w4c4FDR47neNlCCCGEyJhGGwCBgYFUrFgRExMTihQpQtOmTYmKilJLc+3aNZo1a0bhwoUxNTWlRYsWPHjwQEMRi6xKTEz8rMv7FCz76Wd8vT0oYVMsx8vW1dWlVfOGzFuyNsfLFkII8Rot7dz5ERql0Stw4MABevXqxdGjR9mzZw9JSUnUqVOHuLg4AOLi4qhTpw5aWlrs37+f0NBQEhMTadSoESkpKZoM/Z3SnmgvWbUJ27JfYFTMg5YdBxCjeKZKk5KSwoRpC7ApUx19Kzc8/Juxe+8h1fZv2vej99CJqu/9A6agbeHCpcvXgdTKrnHxCuwNCcs0noSERPoOn4ylkx8GRctTtX5rIk6cVW0POXwMbQsXfv9fCOWrNMGgaHl8arfk3IXLavkcPhqJ/5dtMLR2x7bsF/QdPpm4uHjVdvvyNZk4fSHtewzDzNaLbgPGAjBs3AycK9bDqJgHpTxqM3ryHJKSkoDUoSQTpi3g9LlLaFu4oG3hwqr1wQDcvH2Xpq17YWLjiZmtFy07DuDBw0dvnedla7ZQ0r0WBkXdMz0XHyJtuMu23/fi5FUXg6Llqde8C7du31NLt2jFBhwq1EHP0o3S3vX5adN21bbBo6fR6Nvuqu+zF61G28JF7Zo7etZl2ZotQOb3R/TNO2hbuLDxl9/xq9sKg6LlKefbiAOhx9Ri2rR1Jw3rVVf7bffeQ1St35oCdt4UKlWZRt9259qNmx90bjI7J43qVefX3ft5/vzFB+UvhBBCiI9Dow2A3bt306FDB8qUKUP58uVZtWoVN2/eJDIyEoDQ0FCio6NZtWoV5cqVo1y5cqxevZrjx4+zf/9+TYaeoas3brJl225+3bCQXVuWcvLsBXoNnqDaPmfxGmYtWMX0CUM4fWg7dWr40aR1L65ciwbA368iBw6/qswdDDtOoYIFCPm3ghdx4hxJSS/x9fbINJahY2ew9bf/sWpBIJF//oJDSVvqff09j588VU83ZgYzJg7l2L4tFC5kQePveqoq6tdu3KT+N135qlFtTh/axsblswg9GkmfoZPU8pg5fyVuZUpz4sBWRg1OHf9tYmzEyvmBnD+yg9mBI1j208/8sGg1AC2b1Wdgr46UKe3A3YsHuXvxIC2b1SclJYWmrXvz+EkMIb+t4X9bl3P9r1t823ngW+d56297+GXNXE4eDE73+G/evouJjWeGnymzlmR4DuOfv2DKrCWsXhjE4V3reRrzjFZdBqm2B+/YQ/+AQAb26sDZ0O10bd+STr1H8uehcACq+VXk8NETJCcnA3AwLELtet65+4BrN25SvUrquPrM7o/Xr+3AXh05EbKVyhXdadyqJ/88fgLA4ydPuRB1DS/3smr7xMU/Z0DP9kTs38LebSvR1tbmq7Z93rtBndk5AfByL8vLl8mER555r7yFEEII8XHlqlWAYmJiALCwsAAgISEBLS0t9PT0VGn09fXR1tbm8OHD1KpVSyNxZubFiwRWLwyimLUlAHODRtHw2+7MmDgUK8vCzFywkqH9uvBt8wYATB03mJDDx5i9eA0Lpo+hehVv+gdM4e9Hj8mfPx8Xoq4yanAPDhw+RveO3xISeoyKHmUxNDTIMI64uHgWr9zIygVTqF/bH4ClsyewJ6QWy3/6hSF9O6vSjhnak9pf+AGwamEgNmW/IHjHXlo0q0/gD0v57uuG9O/RHgDHUnbMCRpJ9YbtWDhzLPr6qdenhn8lBvXuqBZDWkMAwM62GIN6dWRT8E6G9u2CgYE+xkaG5M+fHyvLwqp0e/4M5eyFy1w/uQeb4kUBWL0wiLK+jYg4cZaKFcoBkJiYxOpFQRQuZPHOc2BtVYSTB7ZmeJ4sCphluD0pKYl5U0dRyau86vy4Vm7AscgzeHu6MXP+Stq3akrPzt8BMNDBnvDjp5k5fwVfVK1EVR9PnsXGcfLMRTzdy3Aw7DiD+3Rm++97AQgJPUaxopY4lCwBkOn9kabX99/RvHEdABbNHMsf+w6zfO0vDO3bhZu376FUKrG2KqJ2LGnp0yyfN5kijr5cuHSVsq5OGZ6H9zknAIaGBpiZmvDXrbtZzlcIIUR2kxeBibflmgZASkoK/fv3x8/Pj7JlU59aVq5cGSMjI4YNG8aUKVNQKpUMHz6c5ORk7t27l24+CQkJJCQkqL4rFIocif91tsWLqir/AD7e7qSkpBB19QaGBgbcvfcQv0rqT+99vT04cz51/kNZF0csCphxIDQCXV0dPMq50LBudRYuXw/AwdAIqlXJeBUWgGvRt0hKSlIrS0dHB+8K5bj473Ci12NMY1HAHGcHe1WaM+ejOHM+ivU/71ClUSqVpKSkcOOv27g4lwLA842nzZA6DGXe0rVci75FbFw8L1++xNTEOMO4L16+jk0xK1XlH8C1tAPmZqZcvHxN1QAoYVM0w8o/QP78+VUV6w+VP39+VZkApZ1K/hvLdbw93bh4+Trft2+hto9vJQ/mLvkJAHMzU8qXdSbk8DF0dXXQ1dWha/tvGBc0j9jYOA6ERlDNryIACkVspvdHGp+K7moxenmU4VJU6jVLG3aT1jhLc+VaNGMD5xEeeYZH/zwhRakE4Oade+/VAMjsnKQxMNAj/vnzLOcrhBBCiI8v1zQAevXqxblz5zh8+LDqt8KFC7NlyxZ69OjB3Llz0dbWplWrVlSoUAFt7fRHLwUGBjJ+/PicCvuj0NLSwt/Xi5DQY+jp6lKtijduZZxJSEji3IXLhEWcYlDvTjkWT2xsPF07tKRv1zZvbbN9rZJu9EaPxJFjJ2nTbSjjhvembo0qmJkas3HrTmYtWJUtcRkZGmaa5ubtu5TxaZRhmoABXRkx8OOulFPNz5sDocfQ09Olmm9FLAqY4+JUisNHT3AwLIKBPTtmnsl7KFSwAABPnsaoNZIaf9eTEsWtWTp7AtZWRUhJSaGcX2MSE5Oytfw0j5/EULhgxo00IYQQQuSsXNEA6N27Nzt27ODgwYMUL15cbVudOnW4du0ajx49In/+/Jibm2NlZUXJkiXTzSsgIICBA1+NFVcoFNjY2HzU+N908/Y97t57iHXR1OEXRyNOo62tjbODPaamxlgXLUJo+Emq+b16ih927KTaE1V/34osW7MFPT1dJo3sj7a2Nv6+XsyYv4KEhMS3nhCnp5SdDbq6OoSGn1StBJOUlETEiXP0695OLe3RiNPYFrcGUiuNl69F4+KUeo4rlHflYtTV936SHnbsFCVsrBk56NUE2DeHg+jq6qjGxqdxcSrJrTv3uXX7nqoX4MKlqzyNUeDq7PBeMWTHEKCXL19y/OQ51ZPtqCs3eBqjUJ0fF6eShIafoH2rpqp9wsJP4vpvzwikzgNYuW4r+fPnp27NKqrfNm79nctXo6leJbUHIKv3B8DR46fx962oijHy1AV6fZ86DKmUvS2mJsZciLqGk4M9AP88fkLUlRssnT2Bqj5eQOrk7g+R2TmB1LkjL14k4OHm8kFlCCGEyAbyIjCRDo02AJRKJX369CE4OJiQkBDs7e3fmbZQoUIA7N+/n4cPH9K4ceN00+np6anNGdAEfX09OvQczvSJQ1E8i6VfwGRaNK2nGuc+uHcnxgXNp5SdDe7lXFi5fiunzl5i7ZJpqjyqV/Fm4MggdHV1qFK5ApBaYRwyZjoVPcpiZJT5028jI0O6d/yWoWOnY2Fuhm3xokyft5z45y/o3La5WtqJ0xdS0MIcy8IFGTV5DoUszGnaoCYAQ/t1wafOt/QeOpEubb/GyNCAC1HX2BMSxvxpo99ZvmOpEty8fY+Nv/xOxQrl+P1/B9j277j3NHa2xbhx8w6nzl6kuLUVJsZG1KruSzlXJ9p0G8IPUwJ4+TKZXkMmUM2vIl4ebw8zykh2DAHS0dGh77DJzAkaQf78+ekzdCKVvcqrKr+D+3SiZaeBeLi5UKuaD7/tDmHrjj3sCV6hysPf14tnsXHs+COEwDGpDdTqVbz5pkN/iloVVlXSIWv3B8DCZetxLFkCF6dS/LBoNU9iYujUOvW6amtrU6uaD4ePnqBpg9S5MgXMzShoYc6PqzdT1LIwN2/fI2DCrI9yTgAOHYmkpJ0NpextP6gMIYQQQnwcGm0A9OrVi/Xr17N9+3ZMTEy4f/8+AGZmZhgYpA4nWblyJS4uLhQuXJgjR47Qr18/BgwYgLOzsyZDz5CDvS3NGtWmQctuPH4SQ8M61Vkw49Xkzb7d2hKjiGXw6Gk8fPQYV+dSbF+3AMdSdqo05VydMDczxalUCYyNjYDUCmNycnKWxv+nCRo7iBSlknY9hvEsNg4v97Ls/vlHCpirP/UOHDuQ/gFTuHL9L9zLuvDrhkXo6uoC4FbGmZDf1jBq0mz8G7RBqUztXWjRrH6GZTeuX4P+PdrRZ9gkEhITaVC7GqMG92D81AWqNM0b1SH4tz3UaNyBpzEKVsyfQofvmrFt3Xz6DptMtYbt0NbSol7NqsydOjLLx52dDA30GdqvM627DuHOvQdUrezJsnmvVkBq2qAWswMDmDl/Jf0DArEvUYwV8yerVvWB1Mp3OVcnHvz9iNL/PiX39/UiJSWFav8+xU+TlfsDIHDsIKbOXsapcxdxsLdl+7qFqqE/AJ3bfk3X/mOYNn4w2traaGtrs2HZTPoNn0I5v8Y4O9gzJ2gEXzRqr5bvF43aYWdbjJULAj/4nABs/OV3urT7JmsnWQghhBA5Rkup/HcWoCYKf0cX0MqVK+nQoQMAw4cPZ9WqVTx+/Bg7Ozu6d+/OgAED3rnvmxQKBWZmZjyNjsDUNOPJp9lhXNB8tu/c985lKXObkMPHqNG4PY9vhGNuZqrpcHKdVeuDGTAikCfRxzJPnEOib96hpHstThzYinu5dw+vUSqVVK7dkv492tPq3xWFssLOrQbjhvehw3cf/obm8xevULNpR6IidmFmavLB+QghxKdIoYjF3K4iMTExmJpq5t9WVf3n4g5MTYw0EsO7KJ7FYe7SUKPnJ6/T+BCgzAQFBREUFJQD0QjxedHS0mLJD+M5+8ZL3TJy/uIVzExNaPdtk/9U9r0Hf7N6YZBU/oUQQohcKFdMAhYfJrMVbs4f+U01sVfkTe7lXDLsJXhTGRdHTh/ennnCTNSq7vuf8xBCCCHEx6HRIUA5IaeHAOWkly9fEn3zzju329kWI39+aeMJIYQQOSl3DQH6PZcOAWogQ4A0SGqHn7DsWOFGCCGEEELkLem/TUsIIYQQQgjxWZIeACGEEEKIz5W8CEykQ3oAhBBCCCGEyEOkASCEEEIIIUQeIkOAhBBCCCE+W9rkvue9uS2evEeugBBCCCGEEHmINACEEEIIIYTIQ6QBILLNF43a0T9gSpbTR9+8g7aFC6fOXvyIUQmAcUHz8fBvlmvyER8u5PAxtC1ceBqjyPGy9x04gmulBiQnJ2dbnln5e+DCpavYlKlOXFx8tpUrRJ6RtgpQbvsIjZIGgBCfGW0LF7b9vlftt8G9O7J32wqN5CM+H8PGzWDk4O7ky5cvR8t1Le1AZa/yzFq4KkfLFUKIz5VGGwCLFi3Czc0NU1NTTE1N8fHxYdeuXartL168oFevXhQsWBBjY2OaN2/OgwcPNBixyG0SExM1HcInwdjYiIIWBXJNPuLTc/hoJNdu3KJ5ozoaKb9D62YsXrmRly9faqR8IYT4nGi0AVC8eHGCgoKIjIzk+PHj1KhRgyZNmnD+/HkABgwYwG+//caWLVs4cOAAd+/e5auvvtJkyJlKGyKxZNUmbMt+gVExD1p2HECM4pkqTUpKChOmLcCmTHX0rdzw8G/G7r2HVNu/ad+P3kMnqr73D5iCtoULly5fB1IrvcbFK7A3JCzTeL5o1I4+wybRP2AKFvaVsHKuwo+rNxMXF0+nXiMwtfXE0bMuu/YcVNvvQOgxKtVqgb6VG9YuVRk+fqbaP7xxcfG07zEMExtPrF2qMnP+yrfKTu8JcgE7b1atD0431uTkZDr3GUlJ91oYWrtT2rs+cxavUUvTsVcAzdr0ZvLMxRRz9ae095eZnoOEhEQGj55G8TLVMC5egcq1WhJy+BgAL14kUNanIV37j1Glv3bjJqa2nqxY+wsAq9YHU8DOm22/78XJqy4GRctTr3kXbt2+p1bOohUbcKhQBz1LN0p71+enTdvfOh/L1mzhq7a9MSrmgZNXXX7dtV8tzbkLl/nym66Y2Hhi5VyFdt2H8uifJ6rtXzRqR9/hkxk6djoFS1amaOmqjAuar9puX74mAF+17YO2hYvq+5tDdyJOnKVOs04UdvDBvERFqjdsy4nT5987n8zu5bThHVt/+x81GrfHqJgH7lWbcuTYyYwv2n+kbeHCohUb+PKbrhhau1PKozY/b/9DLc3ZC5ep2aQDhtbuFCpVma79xxAbGwekXod8BV35+9FjAB4/eUq+gq606jxQtf+kGYuoWr818GpYzh/7DlOh2lcYWrtTs0kHHv79D7v2HMS1UgPMbL1o/f1g4uOfq/JISEik7/DJWDr5YVC0PFXrtybixFm1OHfuOYBzxXoYWrtTo3F7om/eeet4Dx+NxP/LNhhau2Nb9gv6Dp+sGi6zZuM2TGw8uXItWpW+5+DxuFT6UhWLffmaTJy+kO+6DMK4eAWKl6nGgmXr1MrYuHUntav7oq+vp/rt2o2bNG3dCyvnKpjYeOJd85ss/b2UnkuXr+NXtxUGRctTzrcRB0KPqW2vXd2Xx09iOBAa8UH5C5FnaXqojwwBypU02gBo1KgRX375JY6Ojjg5OTF58mSMjY05evQoMTExLF++nFmzZlGjRg08PT1ZuXIlYWFhHD16VJNhZ+rqjZts2babXzcsZNeWpZw8e4Fegyeots9ZvIZZC1YxfcIQTh/aTp0afjRp3Uv1D7S/X0UOHH71j9/BsOMUKliAkH//QYw4cY6kpJf4entkKZ41G7ZRqGABwvduovf3rek5eAItOvbHx9udyD9/ofYXvrTrMUxVGbhz9wENWnbHy6Mspw5uY+GMsaxY+wuTZixW5Tlk7HQOhEawbe18/vhlOQdCj3Hi9IX/dN5SUlIobm3F5pWzOX9kB6OH9GTkpNlsDt6llm7fwSNcvnqD//2ynN82LMo0395DJ3I04hQbls3k9KFtfN2kLvW/+Z4r16LR19dj7dLprNm4je0795GcnEzbbkOpXd2XTm2aq/KIf/6CKbOWsHphEId3redpzDNadRmk2h68Yw/9AwIZ2KsDZ0O307V9Szr1Hsmfh8LVYpkwbSHfNK3P6UPbqF+rGm26DeHxk6cAPI1RULNpR9zdXIjYt4VdW5by4OE/tOw0QC2PNRu2YWRoyNE9G5k6bhATpy9kz5+hABzbtwWAFfOncPfiQdX3Nz2LjaNdq6Yc2rmOI//biEPJEjRo2Z1nz+LeK5/M7uU0oybNYVDvjpw8sBWnUnZ89/3gDJ/kpjWC3vUp69PwnfumGTNlLl81qs2pg8F893VDWnUZxMWoa0BqA7be110oYGbKsb2b2bxyNvsOHKHPsEkAlHFxpKCFuaqyeehIZOr3sFeVz4OhEVSrUlGtzPFT5zNv6ihCd6/n1p17tOw0gDmL17Dux+ns2LSY//0Zyrwf16rSDx07g62//Y9VCwKJ/PMXHEraUu/r71X3xK3b92jeri8N637ByQPBdG77NQETZqmVee3GTep/05WvGtXm9KFtbFw+i9CjkfQZmnos7b5type1/GnTbSgvX77k9/+FsPynX1i7ZDqGhgaqfGbMW4Fb2dKcCPmFYf2+p39AoOq+Ajh8JBJPjzJqZcfGxVO/tj97g1dwIuQX6taoQuPvenLz9t1Mr8+bho6dwcBeHTkRspXKFd1p3Kon/zx+1fjV1dXFvWxpDh2JfO+8hRBCqMs1cwCSk5PZuHEjcXFx+Pj4EBkZSVJSErVq1VKlKV26NLa2thw5ckSDkWbuxYsEVi8Mwr2cC/6+FZkbNIqNW3dy/8HfAMxcsJKh/brwbfMGODvaM3XcYNzLlWb2v0+7q1fx5kLUNf5+9JgnT2O4EHWVvt3aqhoFIaHHqOhRVu0f74yUL1uaUYN74FjKjoABXdHX16NQwQJ8374FjqXsGDOkJ/88fsqZ81EALFyxAZtiVsyfNprSTiVp2qAW44b3ZtbClaSkpBAbG8eKtb8wfcJQalbzoZyrE6sWBvLyP04M1NHRYXxAH7w8ymJfojitv2lEh++asWXbbrV0RoaG/DhnImVcHCnj4phhnjdv32XV+mA2r5xNVR8vStnbMrhPJ6pUrsDKf3si3Mu5MHFEP77vN5r+IwL56/Zdls6eoJZPUlIS86aOwsfbA0/3MqxaGEjYsZMcizwDwMz5K2nfqik9O3+Hk4M9A3t14KuGtZk5X328fPtWTWnVvAEOJUswZXR/YmPjORaZ+sR3/o/r8CjnwpTRAyjtVBIPN1eWz5vMn4fCuXz1hioPtzLOjB3WC8dSdrT7tileHmXZdzC1UVy4kAUA5mYmWFkWVn1/Uw3/yrRp0ZjSTiVxcS7F0tkTiI9/zoGwY++VT2b3cppBvTvSoE51nBzsGTe8N3/dusvV6zffed1+nDORkwe2vvPz++Yl79w3zddN6tKl3Tc4OdgzcWQ/vNzLqCrf63/ewYsXiaxeFERZVydq+Fdm3rRR/LTpVx48fISWlhb+Pl6qRnfI4WN0+K4ZCQlJXLp8naSkJMIiTlHNV70BMHFkP/wqV8DDzZVObb7mQGgEC2eOxcPNlao+XjRvXJeQQ6l5xsXFs3jlRqaNH0L92v64lnZg6ewJGBjosfyn1N6nRSs3UsrOhpmThuHsaE/rbxrRvlVTtTIDf1jKd183pH+P9jiWssO3kgdzgkayZtN2XrxIAGDxD+O4d/9v+g6fTJe+oxk7rBee7uqVeb9KFRje/3ucHOzp07UNXzeuw+xFq1Xb/7p1F2urImr7lC9bmm4dWlLW1QnHUnZMHNmPUnY2/Lrrz0yvz5t6ff8dzRvXwcW5FItmjsXM1ITl//bCpbEuWoSbt96/cSGEEEKdxhsAZ8+exdjYGD09Pbp3705wcDCurq7cv38fXV1dzM3N1dJbWlpy//79d+aXkJCAQqFQ++Q02+JFKWZtqfru4+1OSkoKUVdvoFDEcvfeQ/wqqT+99/X2UA3xKeviiEUBMw6ERnDoSCQe5VxoWLe66ulj6pNH7yzHU66Mk+rP+fLlo2ABM8q6vPrNskghAB7+O9zh0uVr+Hi5o/VaF51fpQrExsZz++59rkXfIjExiUpebqrtFgXMcXawz3JM77Jg2Tq8vmhOEUdfTGw8+XH1Fm7eUR9qU87FEV1d3Szld/bCZZKTk3H2rq/2BPlA6HGu33hVAR3UuyNOpexY8OM6ls+d/NY49/z581OxQjnV99JOJTE3M+Xiv9fs4uXr+FWqoLaPbyUP1fY0bmWcVX82MjLE1MSYh4/+AeDMuSj+PHxMLU6Xyg0AuHbj1qvjf+16AhS1LMzDvx9n6XykefDwEd/3G42TV13MS1TErERFYuPiufnGsKaMZOVeTvP6cRe1KgygOu70FLO2xKFkiXd+StgUyzQ+n4ruat8rV3RXxXXx8nXKl3XGyMhQtd2vUgXV/6eg3hN3MCyCGlUr4++b2ihI64V785q/fpyWhQtiaGhASTsbtd/Sjvta9C2SkpLUzp+Ojg7eFcqp7ptLl6/h7Vk+w+M6cz6K1RuC1e6bel9/T0pKCjf+ug1AAXMzls2dxOIVqQ2K4f2/f+t8Va5Y/o3v7mr37/MXL9DX01NLExsbx+DR03Ct1IACdt6Y2Hhy8fL1D+oBeP248ufPj5dHGS5Fqd9HBvr6xD9/jhDifWjn0s/7W7BgAXZ2dujr61OpUiWOHTuWYfotW7ZQunRp9PX1KVeuHDt37lTbrlQqGTNmDEWLFsXAwIBatWpx5coVtTSPHz+mdevWmJqaYm5uTufOnYmNjVVLc+bMGapWrYq+vj42NjZMmzZNbfuPP/5I1apVKVCgAAUKFKBWrVqZxv6xafxNwM7Ozpw6dYqYmBh+/vln2rdvz4EDBz44v8DAQMaPH5+NEeY8LS0tVUVDT1eXalW8cSvjTEJCEucuXCYs4hSDenfKcn46+dUvs5aWFjo6+dW+Q+oQnOykpaWFUqlU+y0pg2EfG3/5nSFjpjNj4lB8KrpjYmzE9HkrVE/Z07xeactMbGw8+fLl4/j+n8mXT/0vHOPX8nn49z9cvhZNvnz5uHL9L+pRNctlvI/XzzuknqOUlNRzFBsXT6O61QkaN+it/YpaFn6VRzrXU6l8v2vXoWcA/zx5yuzAEZQobo2eni6+dVuRmJj0XvlkVfr3m/Jdyfnym64cOvruoR4lihfl3JEd2RdgOqpX8WbAiECuXIvmQtQ1qlSuwKUr1zlw+BhPnirwci/zVi/cm8eZ3rXK6Lg/RGxsPF07tKRv1zZvbbMtXlT154NHIsiXLx/3HvxNXNxzTEyM3qucQgUL8OSp+gOVwWOmszckjOkThuBQsgQG+np806H/R7uPHj+JoaS9TeYJhRCfnU2bNjFw4EAWL15MpUqVmD17NnXr1iUqKooiRYq8lT4sLIxWrVoRGBhIw4YNWb9+PU2bNuXEiROULVsWgGnTpjF37lxWr16Nvb09o0ePpm7duly4cAF9fX0AWrduzb1799izZw9JSUl07NiRrl27sn79egAUCgV16tShVq1aLF68mLNnz9KpUyfMzc3p2rUrACEhIbRq1QpfX1/09fWZOnUqderU4fz58xQrlvkDrY9B4z0Aurq6ODg44OnpSWBgIOXLl2fOnDlYWVmRmJjI06dP1dI/ePAAKyurd+YXEBBATEyM6nPr1q13pv1Ybt6+x917D1Xfj0acRltbG2cHe0xNjbEuWoTQcPVJkGHHTuLiXEr13d839enjgdBjVPfzRltbG39fL2bMX0FCQuJbT12zU2mnUhw5fkqt8h4afgITYyOKW1tRys4GHR0dwo+/qpg/eRrD5TfGfRcuZMG9f4c9AVy5Fq02AfJNocdO4uvtQc/O3+Hh5opDyRJcj373MJGs8HBzITk5mYeP/nnrKbLVa5Xqzn1GqoYyDR8/UzVWPM3Lly85fvKc6nvUlRs8jVHg4lQSABenkoSGn1DbJyz8JK6vXdNMYy3vyvmoq9jZFnsr1vdp9Ojo6JCcnHGDIPTYCfp0bcOXtatRxsURPV1dtcnGWcknq/fyh8iOIUBHj59W+x5+/DSlX7tep89Fqa0rHxp+QvX/KUA5VycKmJsyeeZi3MuWxtjYiOpVvDkQFsGBw8feqxcuPaXsbNDV1VE7f0lJSUScOKe6b0o7lSLihHoD+M3jqlDelYtRV9PtKUnrKQsLP8m0Ocv5df1CjI0M6TNsIm8KT+d8pd3fAB7lXLgQdVUtTVj4Cdq3akqzhrUp5+qEVZFC6U5SzorXj+vly5dEnrpAaeeSamnOXbyCRzmXD8pfCPFpmzVrFt9//z0dO3bE1dWVxYsXY2hoyIoV6S9NPWfOHOrVq8eQIUNwcXFh4sSJVKhQgfnzUxfOUCqVzJ49m1GjRtGkSRPc3NxYs2YNd+/eZdu2bQBcvHiR3bt3s2zZMipVqkSVKlWYN28eGzdu5O7d1J7OdevWkZiYyIoVKyhTpgzffvstffv2ZdasV/O11q1bR8+ePXF3d6d06dIsW7aMlJQU9u3b93FPWgY03gB4U0pKCgkJCXh6eqKjo6N2cqKiorh58yY+Pj7v3F9PT0+1rGjaJ6fp6+vRoedwTp+7xKEjx+kXMJkWTeupKpyDe3di2pxlbNq6k6grNxg+fianzl6iX7e2qjzS5gGcv3SVKpVThxlU86vIui078HIv814VwvfVs1Mrbt25T59hk7h0+Trbd+5jXNB8BvTsgLa2NsbGRnRq8xVDx05n/8GjnLtwmY69RqCtrT6rv0bVSiz4cT0nz1zg+Mlz9Bg0Hh0dnXeW61iyBMdPnuOPfYe5fPUGoyfPIeLEuXemzwonh3/HTfcYztbf/seNv25zLPIMgT8s5ff/hQCpw46ORJxm1YJAWn/TiKZf1qRNtyFqS4zq6OjQd9hkwo+fJvLUeTr2CqCyV3m8PVOHQQ3u04nVG7axaMUGrlyLZtaCVWzdsee9emp6df6Ox09i+K7LYCJOnOXajZv8se8wnXqNeK8XL9nZWrPv4BHuP/ibJ09j0k3jWLIEazf9ysWoa4QfP02bbkMwMNB/73yyci9/iOwYAvTz9j9YsfYXLl+9wdjAeRw7cZbeXVJX7Wn9TSP09XXp0DOAcxcu8+ehcPoOm0zblo1VQ+LSeuLWbdmhquyn9cTtO3j0rfH/78vIyJDuHb9l6Njp7N57iAuXrtK1/xjin7+gc9vUCejdO7bkyvW/GDJmOlFXbrD+5x2s3qC+itbQfl0IO3aK3kMncursRa5ci2b7zn2qlcSePYujXY9h9Onahvq1/Vm7dDqbgne9tSpSaPhJps1dxuWrN1iwbB1btv9B327tVNvr1KjyViPXsVQJgnfs5dTZi5w+d4nWXYd8cE/iwmXrCd6xh0uXr9NryESexMTQqfWrifjRN+9w594DalV/99//Qoh0aHq1n2xYBSgxMZHIyEi1eaHa2trUqlXrnfNCjxw5opYeoG7duqr0N27c4P79+2ppzMzMqFSpkirNkSNHMDc3x8vLS5WmVq1aaGtrEx4erkrj7++vNjQ5rWfiyRP1B2tp4uPjSUpKwsIi/fl1OUGjDYCAgAAOHjxIdHQ0Z8+eJSAggJCQEFq3bo2ZmRmdO3dm4MCB/Pnnn0RGRtKxY0d8fHyoXLmyJsPOlIO9Lc0a1aZBy27Ubd4FN1dnFsx4tcxk325tGdCzA4NHT8OtShP+2HeY7esW4FjKTpWmnKsT5mamqiePkNooSE5O/s9PHjNTzNqS3zctJuLEWdz9m9Jj0Dg6tWnOqMHdVWmmjx9CVR9PGn/Xk9pfdcavUgU8y6tPKpwxcRg2xazwb9CW1l0HM6hXRwzfqGS+rluHlnzVsDbfdh5I5drf8s+Tp/To3Oo/H8+K+ZNp27IJg0dPo7T3lzRr25vjJ89iW9yaS5evM3TsDBbMGIPNv8MlFswYw6N/njJ6ylxVHoYG+gzt15nWXYdQpf53GBsZsnHFq9Z90wa1mB0YwMz5Kynr25ilqzexYv5kqr/HtbIuWoTDu9aRnJKcet9UacKAEYGYmZmgrZ31/1VnTBzG3pAwbMvVoEK19JfNXTZ3Ek9iFHh+0fzfymFbirwx0Tcr+WTlXtaUccN7s2nrTspXbcpPm7az/scZuJZ2AMDQ0IDdPy/j8dMYvGu14JsO/VInAk8dpZaHv29FkpOTqe6Xeh3TeuK0tLSypRcuaOwgvmpUh3Y9huH5RXOuXr/J7p9/pIC5GQC2xa35efUctu/ci7t/U5as3MjkUeqrQrmVcSbktzVcuRqNf4M2VKjenLGB81QTdvsFTMHI0IApo1P3K+fqxORRA+g+cCx37r56r8rAXh2IPHmeCtWbM3nmYmZOGkbdmlVU21t/05Dzl64SdeXVhPSZk4ZTwNwUv3rf0bhVT+rU8KNCeVe1+MYFzVctI5uRwLGDmDp7Ge7+TQk9Gsn2dQspVPDVXJwNv/xOnS/8stT4E0J8Gt6cs5mQkJBuukePHpGcnIylpaXa7xnNC71//36G6dP+m1maN4cX5c+fHwsLC7U06eXxehlvGjZsGNbW1m81UHKSlvLNQdo5qHPnzuzbt4979+5hZmaGm5sbw4YNo3bt2kDqi8AGDRrEhg0bSEhIoG7duixcuDDDIUBvUigUmJmZ8TQ6AlNT4491KCrjguazfec+Th5Mf6178elZtT6YASMCeRKt2Qk7Iuu0LVzY+tM8mjbQ3F+unxL78jXp170d/Xu0zzDdkDHTUTyLZckPWZ9n1aHncLS0tFi5IPCD40tMTMTJqx7rls7Ar3KFzHcQQsMUiljM7SoSExOjkZEIqTH8W/+5sg/T95zz87EpnsVh7vj2g4GxY8cybty4t36/e/cuxYoVIywsTG0UyNChQzlw4IDqafzrdHV1Wb16Na1avXqQuHDhQsaPH8+DBw8ICwvDz8+Pu3fvUrToq/lSLVq0QEtLi02bNjFlyhRWr15NVFSUWt5FihRh/Pjx9OjRgzp16mBvb8+SJa+Gpl64cIEyZcpw4cIFXFzUhy0GBQUxbdo0QkJCcHNzQ1M0Ogl4+fLlGW7X19dnwYIFLFiwIIciEkII8S4jB3Vj4fINpKSkZKlXSqlUEnL4GId2rss0bUZu3r5HwMBuUvkX4oPlzhdv3bp1S62BpPfGSmNpChUqRL58+Xjw4IHa7xnNC7Wyssowfdp/Hzx4oNYAePDgAe7u7qo0Dx8+VMvj5cuXPH78WC2f9Mp5vYw0M2bMICgoiL1792q08g+5cA6AyLqbt+9m+LKkD1mK71Nz6MjxDM+BECL7mJuZMmJgtywPSdPS0iL6zH7V8LoP5VCyBN06tPxPeQghcp8352y+qwGgq6uLp6en2rzQtEm075oX6uPj89Yk2z179qjS29vbY2VlpZZGoVAQHh6uSuPj48PTp0+JjHy1Kt3+/ftJSUmhUqVKqjQHDx4kKSlJrRxnZ2cKFHg1jHHatGlMnDiR3bt3q80p0BSNDgHKCTk9BCgnvXz5MsMVN+xsi5E/v8ZXev2onj9/wZ17D9653aFkiRyMRgghhMiNQ4ByV/1H8SwWc8ea73V+Nm3aRPv27VmyZAne3t7Mnj2bzZs3c+nSJSwtLWnXrh3FihUjMDB1uGFYWBjVqlUjKCiIBg0asHHjRqZMmaK2DOjUqVMJCgpSWwb0zJkzasuA1q9fnwcPHrB48WLVMqBeXl6qZUBjYmJwdnamTp06DBs2jHPnztGpUyd++OEH1TKgU6dOZcyYMaxfvx4/Pz/VMRkbG2NsrJlr83nXDj9z+fPnz/MVXAMD/Tx/DoQQQoh3+oBVdz66D4inZcuW/P3334wZM4b79+/j7u7O7t27VRNub968qdY76evry/r16xk1ahQjRozA0dGRbdu2qSr/kDqHIC4ujq5du/L06VOqVKnC7t27VZV/SF3Cs3fv3tSsWRNtbW2aN2/O3LmvFgkxMzPjf//7H7169cLT05NChQoxZswYVeUfYNGiRSQmJvL111+rHdO75jzkBOkBEEIIIYTIRrmqB+Dq/tzZA+BQQ6PnJ6/LMz0AWgaF0DIw0XQYQgghhPjMaSW9e8lrIXKDPNMAEEIIIYTIe7TIfasA5bZ48h5ZBUgIIYQQQog8RBoAQgghhBBC5CEyBEgIIYQQ4nP1mawCJLKX9AAIIYQQQgiRh0gDQAghhBBCiDxEhgAJIYQQQny2tMl9z3tzWzx5j0avwKJFi3Bzc8PU1BRTU1N8fHzYtWuXavvSpUupXr06pqamaGlp8fTpU80FK4QQQgghxGdAow2A4sWLExQURGRkJMePH6dGjRo0adKE8+fPAxAfH0+9evUYMWKEJsMUQgghhBDis6HRIUCNGjVS+z558mQWLVrE0aNHKVOmDP379wcgJCQk54MTQgghhPjUySpAIh25Zg5AcnIyW7ZsIS4uDh8fnw/OJyEhgYSEBNV3hUKRHeEJIYQQQgjxWdD4LIyzZ89ibGyMnp4e3bt3Jzg4GFdX1w/OLzAwEDMzM9XHxsYmG6MVQgghhBDi06bxBoCzszOnTp0iPDycHj160L59ey5cuPDB+QUEBBATE6P63Lp1KxujFUIIIYT4lGjl0o/QJI0PAdLV1cXBwQEAT09PIiIimDNnDkuWLPmg/PT09NDT08vOEIUQQgghhPhsaLwH4E0pKSlqY/iFEEIIIYQQ2UejPQABAQHUr18fW1tbnj17xvr16wkJCeGPP/4A4P79+9y/f5+rV68CqfMFTExMsLW1xcLCQpOhCyGEEELkfrIKkEiHRhsADx8+pF27dty7dw8zMzPc3Nz4448/qF27NgCLFy9m/PjxqvT+/v4ArFy5kg4dOmgiZCGEEEIIIT5pWkqlUqnpID4mhUKBmZkZMQ9uYGpqoulwhBBCCPGZUyieYWZpT0xMDKamphqKIbX+8/RGKKYmxhqJ4V0Uz2Ixt/fT6PnJ6zQ+CVgIIYQQQnwsuXHVndwWT96T6yYBCyGEEEIIIT4eaQAIIYQQQgiRh8gQICGEEEKIz1YuXAVIhgBpnPQACCGEEEIIkYdIA0AIIYQQQog8RIYACSGEEEJ8tmQVIPE26QEQQgghhBAiD5EGgBBCCCGEEHmIDAESQgghhPhcaeXCVYByWzx5kPQACCGEEEIIkYdotAGwaNEi3NzcMDU1xdTUFB8fH3bt2gXA48eP6dOnD87OzhgYGGBra0vfvn2JiYnRZMhCCCGEEEJ80jQ6BKh48eIEBQXh6OiIUqlk9erVNGnShJMnT6JUKrl79y4zZszA1dWVv/76i+7du3P37l1+/vlnTYYthBBCCPGJ0Cb3DfjIbfHkPVpKpVKp6SBeZ2FhwfTp0+ncufNb27Zs2UKbNm2Ii4sjf/6stV0UCgVmZmbEPLiBqalJdocrhBBCCKFGoXiGmaU9MTExmJqaaiiG1PrP0+gITE2NNRLDuygUsZjbVdTo+cnrcs0k4OTkZLZs2UJcXBw+Pj7ppkm7UbJa+RdCCCGEEEKo03hN+uzZs/j4+PDixQuMjY0JDg7G1dX1rXSPHj1i4sSJdO3aNcP8EhISSEhIUH1XKBTZHrMQQgghxCdBVgES6dD4ICxnZ2dOnTpFeHg4PXr0oH379ly4cEEtjUKhoEGDBri6ujJu3LgM8wsMDMTMzEz1sbGx+YjRCyGEEEII8WnJdXMAatWqRalSpViyZAkAz549o27duhgaGrJjxw709fUz3D+9HgAbGxuZAyCEEEKIHJGr5gD8dTx3zgEo4SVzADRI40OA3pSSkqKqwCsUCurWrYuenh6//vprppV/AD09PfT09D52mEIIIYQQnwCtfz+5SW6LJ+/RaAMgICCA+vXrY2try7Nnz1i/fj0hISH88ccfKBQK6tSpQ3x8PGvXrkWhUKjG8xcuXJh8+fJpMnQhhBBCCCE+SRptADx8+JB27dpx7949zMzMcHNz448//qB27dqEhIQQHh4OgIODg9p+N27cwM7OTgMRCyGEEEII8WnTaANg+fLl79xWvXp1ctn0BCGEEEKIT4wMARJv0/gqQEIIIYQQQoicIw0AIYQQQggh8pBctwqQEEIIIYTIHqnvActdQ25yWTh5kvQACCGEEEIIkYdIA0AIIYQQQog8JO8MAUp+Ack6mo5CCCGEEJ+75BeajuA1sgqQeJv0AAghhBBCCJGHSANACCGEEEKIPCTvDAESQgghhMhrUpcB0nQU6nJbPHmQ9AAIIYQQQgiRh0gD4DVaxsXZ9ttu1fdLUVep/EUj9AuWwt2njgYjE5+b6vW+pv/QsZoOQwghhBB5kAwBes29aycoYG6m+j528kyMDA2JOnkAYyMjDUYmsiLkYBgdug8k+sJROnQbgJ1tccaNHKTpsNK1df2P6OjkzKpUWsbFuXH+CCGHjrBq7WZCdv+cI+UKIYTIDWQVIPE2jfYALFq0CDc3N0xNTTE1NcXHx4ddu3aptnfr1o1SpUphYGBA4cKFadKkCZcuXfpo8VhZFkFPT0/1/dqNv6jiU5EStsUpWLDARytX5D0WFgUwMTHWdBhCCCGEyIM02gAoXrw4QUFBREZGcvz4cWrUqEGTJk04f/48AJ6enqxcuZKLFy/yxx9/oFQqqVOnDsnJyR8lnteHAGkZFyfy5BkmBM1Gy7g44ybPzNayqtf7mr6DRzN01CQsbMpgVdLjrTJmzVtKOe+aGBVxxMa5Ij37jyA2Nk61fdXazZgXc2XHrr04e/hjWNiBr1t3JT7+OavXbcHOtTIFipeh7+DRaucsISGBwSMmUszRE6MijlSq3pCQg2HZenyfCzvXykyaOod23/fD2NKJEi6V+PX3//H33//QpGUnjC2dcKtUi+MnTqv2+eefJ7Tq0Itijp4YFnagnHdNNmzeppbvm0OA7FwrM2X6PDr1GISJlTO2pb1ZumJtTh2mEEIIIfIQjTYAGjVqxJdffomjoyNOTk5MnjwZY2Njjh49CkDXrl3x9/fHzs6OChUqMGnSJG7dukV0dPRHj+3etROUcXFmUN9u3Lt2gsH9umd7GavX/4yRoSHhf/7GtEkjmRA0mz37D6q2a2trM3f6BM5H7Gf1ktnsPxDK0FGT1fKIj3/O3EUr2LhqIbuD1xJy6AjNWnVh5x/72fnLGn76cQ5LVqzj5+DfVfv0HjSKI8ci2bhqIWeO7uGbZg2p16wtV65ez/ZjrN+sDcaWTu/8lPGqoUp789adDNMaWzoxZfq8bI8xMz8s+BG/yhU5GbqbBnVr0vb7frTr2o82Lb/ixOHdlLIvQbvv+6NUKgF4kfACT49y/P7LGs4d20fXjq1p+30/jh0/mWE5M+ctwcvDjZOhu+n5fTt69B9B1OVrH+24Qg6GoWVcnOi/bn20MoQQQmiYlnbu/AiNyjVzAJKTk9myZQtxcXH4+Pi8tT0uLo6VK1dib2+PjY3NR4/HyrII+fPnw9jIECvLIh+lDLcyLowdMRAAR4eSzF+ykn0hh6ldwx+A/r26qNLalbBh0pghdO8XwMLZU1S/JyUlsWj2FEqVtAPg66YN+GnjLzy4fgpjYyNcXZz4wt+HPw+G0fLrxty8dYeVP23m5qVwrItaATC4X3d27wlh5drNTBk3PFuPcdmC6Tx//u43Ir4+Dt66qCWnwv7IMD+LAubv3Fbd35foC6mNx1VLfni/QDPwZZ0adOvcBoAxAf1ZtGwNFSuU55uvGgIwbGBPfGo04cHDv7GyLEIx66JqDcY+PTrxx74DbN66A28vjwzL6dm1/b959uKH+cv482AYzk6l/lP8ytjbAHQoYUOHNi1UvxsaGuDsWAodnVzz14AQQgghcoDG/+U/e/YsPj4+vHjxAmNjY4KDg3F1dVVtX7hwIUOHDiUuLg5nZ2f27NmDrq7uO/NLSEggISFB9V2hUHzU+P8Lt7Iuat+LWlny8O9/VN/3/nmIwBnzuXT5Kopnsbx8+ZIXLxKIj3+OoaEBkFqJS6v8A1gWKYSdrQ3Gxkav/VaYh38/AuDs+UskJyfj5O6vVnZCQiIFLbJ/nkMx66JZTps/f34cStlnewz/1evXybJIYQDKlXn7t4d/P8LKsgjJyclMmT6PzVt/4869+yQmJpGQkIihgUGWy9HS0sLK8tV1+xi8vTy4dPLAR8tfCCGEELmTxhsAzs7OnDp1ipiYGH7++Wfat2/PgQMHVI2A1q1bU7t2be7du8eMGTNo0aIFoaGh6Ovrp5tfYGAg48ePz8lD+GBvPnnV0tIiJSUFgOi/btHw6w706NKWyWOHYlGgAIePHKNzz8EkJiaqGgBvriSjpaWVfr7/Dk+JjY0jX758RB7aRb586l1wrzcaskv9Zm04FHbsndtL2BTn/PH9QOoQIFevLzLMb8TgPowY0idbY8zM6+dY69+Xl7x+jtN+S0lJPcfTZy9izsLlzJ42jnJlXDAyNKD/sHEkJiVluZy0fNPuByGEEOLDyCpA4m0abwDo6uri4OAApE76jYiIYM6cOSxZsgQAMzMzzMzMcHR0pHLlyhQoUIDg4GBatWqVbn4BAQEMHDhQ9V2hUOTIkKHsFnnyDCkpKcwMHIO2dmpFffPW3/5zvh7ly5KcnMzDvx9R1a/Sf84vMzk5BCi3CD16nCYN69Dm2+YApKSkcPnqdVxLO2k4MiGEEEKIXNAAeFNKSoraEJ7XKZVKlErlO7cD6OnpqS3l+alyKGVPUlIS8xatoNGXtQk9GsHi5T/953ydHEvSumUz2nXtz8wpo/EoX5a/H/3DvpBQ3Mq60KBezWyI/pXPYQjQ+3IsZc/P234n7OhxCpibMWv+Uh48fJTrGgDHjp+k3ff92ff7xve6TkIIIYT4tGl0GnZAQAAHDx4kOjqas2fPEhAQQEhICK1bt+b69esEBgYSGRnJzZs3CQsL45tvvsHAwIAvv/xSk2HniPLlXJkVNJapPyyirHdN1m0KJnB89kzQXbl4Fu1aNWfQiIk4e1Sj6bddiIg8hW1x62zJP68bNbQvFdzLUbdpa6rX/warIkVo2rCupsN6S3z8c6KuXCMp6aWmQxFCCPGxaGnlzo/QKC1l2tqFGtC5c2f27dvHvXv3MDMzw83NjWHDhlG7dm3u3r1Lly5diIyM5MmTJ1haWuLv78+YMWNwdnbOchkKhQIzMzNi7l7E1NTkIx6NEEIIIQQoFM8ws3YhJiYGU1NTDcXwb/3nzvlcV/9RKJ5hVqyMRs9PXqfRIUDLly9/5zZra2t27tyZg9EIIYQQQgjx+ct1cwA+FRmtWBMf/xxAtVLPmy4c/xNbm2IfLbb/IqNVe+Li4jEyMkx3myZW58mKQ6Hh1P+qbbrbnj9/gYFB+qtJAcQ+uPyxwnovU6bPY8qM9F+AltE1qerrza5geZuwEELkbbIKkHibNAA+UFZWrMlo39wqo1V7DAz037ktt67O41XB7Z3XKbMGQG7RvXMbWvz70rE3ZXRNPoVjE0IIIUTOkwbAB/pcVqx50+e2GoyBgcEnf50sLApg8RFe0iaEEEKIvEkaAEIIIYQQn6vcuOpObosnD8ozDQBlwlOUCbLcoRBCCCE+LmVCrKZDECJDGn0PgBBCCCGEECJn5ZkeACGEEEKIvEdWARJvkx4AIYQQQggh8hBpAAghhBBCCJGHyBAgIYQQQojPlawCJNIhPQCfiFXrt1HA3ve99/vn8VMsnasRffMOABcuXcOmbE3i4uKzO0QhhBBCCPEJkAbAJ6Jls3pEHfvtvfebPGspjet/gZ1tMQBcS5eisld5Zi1ak90hCiGEEEKIT4BGGwCLFi3Czc0NU1NTTE1N8fHxYdeuXW+lUyqV1K9fHy0tLbZt25bzgeYCBgb6FClc8L32iY9/zoq1wXRu3Uzt9w7fNWXxis28fCnvRRBCCCE+b1q59CM0SaMNgOLFixMUFERkZCTHjx+nRo0aNGnShPPnz6ulmz17NlqfyHixcVMX4lHta1asC6aEW21MbL3pOXgSycnJTJu7gqIu1bF0rsbkmUvV9pu1cDVuVZphbOONbbla9Bw8idjYV8N03hwClFbOT5t+w969LuZ2PrTqMoRnz+JUaXbuPYSeni6VK5ZXK6t2dR8eP43hQOjxj3QWhBBCCCFEbqXRBkCjRo348ssvcXR0xMnJicmTJ2NsbMzRo0dVaU6dOsXMmTNZsWKFBiN9P9du3GL33kPs2ryY9UunsWLdVhp+24vbdx8Q8utKgsb0Z/SUeYQfP6PaR1tbmzmBAZwLDWbVgsn8eSicoeNmZVrO9p37+W3DfH7bMJ8DYccJmrNctf3QkRN4lnd5az9dXR3cy5bm0NET2XfQQgghhBDik5BrVgFKTk5my5YtxMXF4ePjA0B8fDzfffcdCxYswMrKKkv5JCQkkJCQoPquUCg+SrwZSVEqWT53IiYmRriWLsUXVbyJuhrN75sWoq2tjbOjPdPmruDPw8eo5OUGQP/ubVX729kWY+LIPvQYNJGFM0ZlWM7K+ZMwMTECoE2LRuw/GK7afvPWXYpaFUl3X2urwty8dTc7DlcIIYQQuZWWduonN8lt8eRBGm8AnD17Fh8fH168eIGxsTHBwcG4uroCMGDAAHx9fWnSpEmW8wsMDGT8+PEfK9wssbOxVlXKASwLFyRfPm20tV/d8JZFCvLw0WPV970hRwiavZxLV26geBbLy+RkXrxIID7+OYaGBlkqp6hlIR4++kf1/fmLBPT1dNPd18BAj/jnLz74GIUQQgghxKdJ400wZ2dnTp06RXh4OD169KB9+/ZcuHCBX3/9lf379zN79uz3yi8gIICYmBjV59atWx8n8Azo6Ki3q7S0QCf/m79pkZKiBCD65h0afdebcmUc+XnVLI7v38T8aSMBSExKeo9yXuUJUKigOU9j0u8BefwkhkIFC2T9oIQQQgghxGdB4z0Aurq6ODg4AODp6UlERARz5szBwMCAa9euYW5urpa+efPmVK1alZCQkHTz09PTQ09P7yNHnb0iT10gJSWFmROHqHoJNm/74z/n617OhXVbdqS77dzFqzRvXOc/lyGEEEKI3Cw3rrqT2+LJezTeA/CmlJQUEhISGD58OGfOnOHUqVOqD8APP/zAypUrNRtkNnMoaUtS0kvm/bie69G3+GnTbyxZtfk/51u3hi/nL13jydMYtd+jb97hzr2H1KpW+T+XIYQQQgghPi0abQAEBARw8OBBoqOjOXv2LAEBAYSEhNC6dWusrKwoW7as2gfA1tYWe3t7TYad7cqXdWbmpCFMm7OCclW+Yv3PvzNldP//nG85VycquLm81Zuw4Zdd1PnClxI21v+5DCGEEEII8WnRUiqVysyTfRydO3dm37593Lt3DzMzM9zc3Bg2bBi1a9dON72WlhbBwcE0bdo0y2UoFArMzMx4euMIpqbG2RT5p+P3/x1k6NiZnA0NRltbm8TEJJwqNmDd0qn4VfLQdHhCCCHEZ0ehiMXc3oeYmBhMTU01FENq/SfmwXVMTU00EsO7KBTPMLMsqdHzk9dpdA7A8uXLM0/0Gg22VT5ZDer4c+X6X9y59xCbYlbcvH2PgAFdpPIvhBBCCJFH5bo5ACL79e/eFptiqe9RcChpS7cOLTQckRBCCCHE+1mwYAF2dnbo6+tTqVIljh07lmH6LVu2ULp0afT19SlXrhw7d+5U265UKhkzZgxFixbFwMCAWrVqceXKFbU0jx8/pnXr1piammJubk7nzp2JjY1VS3PmzBmqVq2Kvr4+NjY2TJs27b1jyWnSABBCCCGE+Gxp5dLP+9m0aRMDBw5k7NixnDhxgvLly1O3bl0ePnyYbvqwsDBatWpF586dOXnyJE2bNqVp06acO3dOlWbatGnMnTuXxYsXEx4ejpGREXXr1uXFi1fvSWrdujXnz59nz5497Nixg4MHD9K1a1fVdoVCQZ06dShRogSRkZFMnz6dcePGsXTp0veKJadpdA5ATsjrcwCEEEIIkbNy1xyAG7l0DoD9e52fSpUqUbFiRebPnw+krhppY2NDnz59GD58+FvpW7ZsSVxcHDt2vFoOvXLlyri7u7N48WKUSiXW1tYMGjSIwYMHAxATE4OlpSWrVq3i22+/5eLFi7i6uhIREYGXlxcAu3fv5ssvv+T27dtYW1uzaNEiRo4cyf3799HVTX356vDhw9m2bRuXLl3KUiyaID0AQgghhBAi10pMTCQyMpJatWqpftPW1qZWrVocOXIk3X2OHDmilh6gbt26qvQ3btzg/v37amnMzMyoVKmSKs2RI0cwNzdXVf4BatWqhba2NuHh4ao0/v7+qsp/WjlRUVE8efIkS7FogsZfBPaxpXVwKJ7FaTgSIYQQQuQFaXWO3DDIQqF4pukQ3pIWk0KhUPv9XS9zffToEcnJyVhaWqr9bmlpqXrK/qb79++nm/7+/fuq7Wm/ZZSmSJEiatvz58+PhYWFWpo3l6dPy/P+/fsUKFAg01g04bNvADx7lnqT2brVyiSlEEIIIUT2efbsGWZmZhopW1dXFysrK2wc3TRSfmaMjY2xsbFR+23s2LGMGzdOMwHlMZ99A8Da2ppbt25hYmKClpa8eloIIYQQH5dSqeTZs2dYW2vuhZv6+vrcuHGDxMREjcWQEaVS+Va9LL2n/wCFChUiX758PHjwQO33Bw8eYGVlle4+VlZWGaZP+++DBw8oWrSoWhp3d3dVmjcnGb98+ZLHjx+r5ZNeOa+XkVksmvDZNwC0tbUpXry4psMQQgghRB6iqSf/r9PX10dfX1/TYfxnurq6eHp6sm/fPtXLYFNSUti3bx+9e/dOdx8fHx/27dtH//79Vb/t2bMHHx8fAOzt7bGysmLfvn2qCr9CoSA8PJwePXqo8nj69CmRkZF4enoCsH//flJSUqhUqZIqzciRI0lKSkJHR0dVjrOzMwUKFMhSLBqhFEIIIYQQIhfbuHGjUk9PT7lq1SrlhQsXlF27dlWam5sr79+/r1Qqlcq2bdsqhw8frkofGhqqzJ8/v3LGjBnKixcvKseOHavU0dFRnj17VpUmKChIaW5urty+fbvyzJkzyiZNmijt7e2Vz58/V6WpV6+e0sPDQxkeHq48fPiw0tHRUdmqVSvV9qdPnyotLS2Vbdu2VZ47d065ceNGpaGhoXLJkiXvFUtOkwaAEEIIIYTI9ebNm6e0tbVV6urqKr29vZVHjx5VbatWrZqyffv2auk3b96sdHJyUurq6irLlCmj/P3339W2p6SkKEePHq20tLRU6unpKWvWrKmMiopSS/PPP/8oW7VqpTQ2NlaampoqO3bsqHz27JlamtOnTyurVKmi1NPTUxYrVkwZFBT0VuyZxZLTPvv3AAghhBBCCCFekfcACCGEEEIIkYdIA0AIIYQQQog8RBoAQgghhBBC5CHSABBCCCGEECIPkQaAEEIIIYQQeYg0AIQQQgghhMhDpAEghBBCCCFEHiINACGEEEIIIfIQaQAIIYQQQgiRh0gDQAghhBBCiDxEGgBCCCGEEELkIdIAEEIIIYQQIg/5PyEjPN3V4oePAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%heat\n", "\n", "\n", "def powfun(a, b):\n", " \"\"\"Method to raise a to power b using pow() function.\"\"\"\n", " return pow(a, b)\n", "\n", "\n", "def powop(a, b):\n", " \"\"\"Method to raise a to power b using ** operator.\"\"\"\n", " return a**b\n", "\n", "\n", "def powmodexp(a, b):\n", " \"\"\"Method to raise a to power b using modular exponentiation.\"\"\"\n", " base = a\n", " res = 1\n", " while b > 0:\n", " if b & 1:\n", " res *= base\n", " base *= base\n", " b >>= 1\n", " return res\n", "\n", "\n", "def main():\n", " \"\"\"Test function.\"\"\"\n", " a, b = 2377757, 773\n", " pow_function = powfun(a, b)\n", " pow_operator = powop(a, b)\n", " pow_modular_exponentiation = powmodexp(a, b)\n", "\n", "\n", "if __name__ == \"__main__\":\n", " main()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Alternatively, the heatmap can also be saved as a file, for example with\n", "\n", "``` python\n", "%%heat -o pow-heatmap.png\n", "```" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3.13 Kernel", "language": "python", "name": "python313" }, "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.13.0" }, "latex_envs": { "LaTeX_envs_menu_present": true, "autoclose": false, "autocomplete": true, "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1, "eqLabelWithNumbers": true, "eqNumInitial": 1, "hotkeys": { "equation": "Ctrl-E", "itemize": "Ctrl-I" }, "labels_anchors": false, "latex_user_defs": false, "report_style_numbering": false, "user_envs_cfg": false }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": {}, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 4 }