{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "provenance": [], "toc_visible": true }, "kernelspec": { "name": "python3", "display_name": "Python 3" }, "language_info": { "name": "python" } }, "cells": [ { "cell_type": "markdown", "source": [ "**Let's Build a Synthesizer in Python!**\n", "\n", "\n", " \n", " \n", "
\n", " \"Open\n", " \n", " \n", "
\n", "
\n", "\n", "In this notebook we will have fun with sound in Python: we will synthesize sounds (sine, square, triangle, noise), play chords and melodies, apply sound effects (e.g., fade-in/out, echo, vibrato, low/high-pass filter, stereo panning), and read/write audio files in Python.\n", "\n", "**Note:** The goal is to learn the fundamentals of sound processing by implementing everything from scratch, but in a real project you will want to use specialized libraries such as [librosa](https://librosa.org/)." ], "metadata": { "id": "LBsijuUkyup-" } }, { "cell_type": "markdown", "source": [ "# Sounds Waves\n", "Let's start by generating a sine wave of frequency 440 Hz. That's the standard A4 (A on the 4th octave on a piano) which is often used to tune instruments." ], "metadata": { "id": "Ij7Ver1uyxlr" } }, { "cell_type": "code", "execution_count": 1, "metadata": { "id": "oqRZF-8X_Dnb" }, "outputs": [], "source": [ "import numpy as np\n", "\n", "sample_rate = 44_100\n", "\n", "def sine_wave(frequency, amplitude, duration):\n", " time = np.linspace(0, duration, round(sample_rate * duration))\n", " return amplitude * np.sin(2 * np.pi * frequency * time)" ] }, { "cell_type": "markdown", "source": [ "Let's plot the first 500 samples:" ], "metadata": { "id": "TLwREAtRy_0J" } }, { "cell_type": "code", "source": [ "import matplotlib.pyplot as plt\n", "\n", "wave_A4 = sine_wave(frequency=440, amplitude=1, duration=1)\n", "\n", "def plot_wave(wave, title):\n", " plt.figure(figsize=(5, 2))\n", " plt.plot(wave)\n", " plt.xlabel(\"Time (samples)\")\n", " plt.ylabel(\"Amplitude\")\n", " plt.title(title)\n", " plt.grid()\n", " plt.show()\n", "\n", "plot_wave(wave_A4[:500], \"Sine wave\")" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 256 }, "id": "U3IeB6OsmW_T", "outputId": "2e6e0c27-490a-4dbc-a2fc-c3eeab1f8488" }, "execution_count": 2, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "Nice! Now, let's play this note using IPython's builtin `Audio` class which can play a given waveform at the given sample rate:" ], "metadata": { "id": "CMqtVqSizFVq" } }, { "cell_type": "code", "source": [ "from IPython.display import Audio\n", "\n", "def play_wave(wave):\n", " return display(Audio(wave, rate=sample_rate))" ], "metadata": { "id": "G8iEkkDY_-LH" }, "execution_count": 3, "outputs": [] }, { "cell_type": "markdown", "source": [ "**WARNING**: this sound may be loud, make sure to adjust the volume so you don't damage your ears or speakers (or wake up your neighbors)." ], "metadata": { "id": "4txo7FUlZFdQ" } }, { "cell_type": "code", "source": [ "play_wave(wave_A4)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 75 }, "id": "pKXTaeRWzQKE", "outputId": "fd3660d3-a4b2-4ba6-9351-ab9909b49112" }, "execution_count": 4, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " " ] }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "We made an A4 note! That's a start. Now let's generate other notes. Going up one octave corresponds to doubling the frequency. Similarly, going up by one semi-tone corresponds to multiplying the frequency by $r = \\sqrt[12]{2}$ (see this [cool video](https://www.youtube.com/watch?v=1Hqm0dYKUx4) for more details). Indeed, there are 12 semi-tones per octave, and $r^{12} = 2$. This is called _equal temperament_." ], "metadata": { "id": "NK3gY1CCzVx8" } }, { "cell_type": "code", "source": [ "def get_frequency(note, octave):\n", " return 2 ** (octave - 4 + note / 12) * 440" ], "metadata": { "id": "Ls7bDhWyA6Nr" }, "execution_count": 5, "outputs": [] }, { "cell_type": "code", "source": [ "frequencies = [\n", " get_frequency(note, octave)\n", " for octave in range(2, 6)\n", " for note in range(12)\n", "]\n", "all_notes = np.concatenate([\n", " sine_wave(freq, amplitude=0.1, duration=0.15)\n", " for freq in frequencies\n", "])\n", "play_wave(all_notes)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 75 }, "id": "2hI6NeW8X9j-", "outputId": "1b609408-538e-4513-90fe-08b4e9d176a5" }, "execution_count": 6, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " " ] }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "This worked but what's this clicking sound between each note? Well that's because the `sine_wave()` function generates a wave that starts and ends brutally, and depending on the frequency it may even end with a non-zero amplitude. This is what the transition between two notes looks like (notice the brutal bounce):" ], "metadata": { "id": "tKDnFviuZYpJ" } }, { "cell_type": "code", "source": [ "plot_wave(all_notes[5800:7400], \"Bad transition\")" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 256 }, "id": "6ttsvu0nZZ3t", "outputId": "3389d2c9-7c8e-48cd-b90f-98761c1f9a05" }, "execution_count": 7, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "There are various solutions (e.g., we could continue each wave where the previous one left off, or implement a cross-fade effect), but let's simply fade in and fade out each note (for 10ms in and 10ms out):" ], "metadata": { "id": "A1AAT0v3ZyZm" } }, { "cell_type": "code", "source": [ "def fade(wave, fade_duration=0.010):\n", " num_fade_samples = round(sample_rate * fade_duration)\n", " fade_in = np.linspace(0, 1, num_fade_samples)\n", " new_wave = wave.copy()\n", " new_wave[:num_fade_samples] *= fade_in # fade in\n", " new_wave[-num_fade_samples:] *= 1 - fade_in # fade out\n", " return new_wave" ], "metadata": { "id": "X8-MVseNZT0F" }, "execution_count": 8, "outputs": [] }, { "cell_type": "code", "source": [ "all_notes_with_fadeout = np.concatenate([\n", " fade(sine_wave(freq, amplitude=0.1, duration=0.15))\n", " for freq in frequencies\n", "])\n", "play_wave(all_notes_with_fadeout)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 75 }, "id": "kEuRI5aocG2s", "outputId": "55221fc6-68ec-4b73-9360-336271b74432" }, "execution_count": 9, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " " ] }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "This sounds _much_ better! Now if we look at the note transition, is nice and smooth:" ], "metadata": { "id": "ZQ55DVG-dJ_a" } }, { "cell_type": "code", "source": [ "plot_wave(all_notes_with_fadeout[5800:7400], \"Smooth transition\")" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 256 }, "id": "rGn1UI6HaQa2", "outputId": "fda41ac3-2925-4aa3-fb78-4b669ce431b1" }, "execution_count": 10, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "# Chords\n", "\n", "Ok, now let's play our first chord: we just need to sum the waves of all the notes, that's all. Let's play an A major chord (A + C# + E)." ], "metadata": { "id": "Tiv9rzM8deCC" } }, { "cell_type": "code", "source": [ "wave_A3 = sine_wave(get_frequency(0, 3), 0.5, 1)\n", "wave_Cs3 = sine_wave(get_frequency(4, 3), 0.5, 1) # Cs = C sharp\n", "wave_E3 = sine_wave(get_frequency(7, 3), 0.5, 1)\n", "wave_A4 = sine_wave(get_frequency(0, 4), 0.5, 1)\n", "chord = wave_A3 + wave_Cs3 + wave_E3 + wave_A4\n", "play_wave(fade(chord))" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 75 }, "id": "HnKMHbrfAebH", "outputId": "6ee18c2f-e217-437d-b3d5-7f14916bdf2a" }, "execution_count": 11, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " " ] }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "The pattern looks much more complex now:" ], "metadata": { "id": "kxra7PSKdL-t" } }, { "cell_type": "code", "source": [ "plot_wave(chord[:3000], \"Chord\")" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 256 }, "id": "ljrKB3kyc0Kr", "outputId": "e32b313e-7be1-4467-d532-9764dbc5fac1" }, "execution_count": 12, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "iVBORw0KGgoAAAANSUhEUgAAAckAAADvCAYAAACZvS/uAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAeSBJREFUeJztvXmcU9X9//+6WWcymcy+wrAvKrsiiCCiIAotSj+tH7V+rVpr3aharLX007p0w9raVv20tu7tr3WprdtH0YJsiqKyw7AJw8DA7Fsmk307vz9uzslNcm9yk0kyGTjPx8OHTHKTnHNyc97nvQuEEAIOh8PhcDgxaAZ7ABwOh8Ph5CpcSHI4HA6HowAXkhwOh8PhKMCFJIfD4XA4CnAhyeFwOByOAlxIcjgcDoejABeSHA6Hw+EowIUkh8PhcDgKcCHJ4XA4HI4CXEhyOKcBgiBgxYoVgzqGBQsWYMGCBYM6Bg4n3XAhyeHkOA0NDbjtttswZswY5OXlwWKxYO7cuXjiiSfgcrkGe3gczmmNbrAHwOFwlHnvvfdw9dVXw2g04lvf+hYmT54Mr9eLLVu24P7778f+/fvxzDPPDPYwOZzTFi4kOZwcpbGxEddeey1GjhyJDRs2oKamhj1311134ejRo3jvvfeyNh6Hw4GCgoKsfR6HkwtwcyuHk6M89thjsNvteP755yMEJGXcuHG45557Ih576623MHnyZBiNRkyaNAkffPBBzOt27dqFJUuWwGKxwGw2Y+HChfjss88irnnppZcgCAI2b96MO++8E5WVlRg+fDh7/plnnsHYsWORn5+PWbNm4eOPP07TrDmc3ELgrbI4nNxk+PDhMBqNaGhoSHitIAiYNm0aOjo6cOedd6KwsBBPPvkk2tra0NTUhLKyMgDA/v37MXv2bFgsFtx5553Q6/X4y1/+gpaWFmzevBmzZ88GIArJm2++Geeccw4qKirwjW98Aw6HAw888ACef/55fOc738GFF16Ia6+9FseOHcNLL72E0tJS1NXVYdOmTZlcFg4nuxAOh5Nz9PX1EQDkqquuUnU9AGIwGMjRo0fZY3v27CEAyFNPPcUeW758OTEYDKShoYE91tLSQgoLC8n8+fPZYy+++CIBQObNm0f8fj973Ov1ksrKSjJ9+nTi8XjY48888wwBQC6++OIUZsvh5C7c3Mrh5CA2mw0AUFhYqPo1ixYtwtixY9nfU6dOhcViwbFjxwAAgUAAa9euxfLlyzFmzBh2XU1NDb75zW9iy5Yt7HMpt956K7RaLft7+/bt6OjowO233w6DwcAev+mmm1BUVJTcJDmcIQAXkhxODmKxWAAA/f39ql8zYsSImMdKSkrQ29sLAOjs7ITT6cTEiRNjrjv77LMRDAZx8uTJiMdHjx4d8feJEycAAOPHj494XK/XRwheDud0gQtJDicHsVgsqK2tRX19verXSDU+KWQAYQf5+fkpv5bDOR3gQpLDyVG++tWvoqGhAVu3bk3L+1VUVMBkMuHw4cMxzx06dAgajQZ1dXVx32PkyJEAgCNHjkQ87vP50NjYmJZxcji5BBeSHE6O8sMf/hAFBQX4zne+g/b29pjnGxoa8MQTT6h+P61Wi8WLF+Ptt9/G8ePH2ePt7e14+eWXMW/ePGbmVWLmzJmoqKjAn//8Z3i9Xvb4Sy+9BKvVqnosHM5QgRcT4HBylLFjx+Lll1/GNddcg7PPPjui4s6nn36K119/HTfddFNS7/mLX/wC69atw7x583DnnXdCp9PhL3/5CzweDx577LGEr9fr9fjFL36B2267DZdeeimuueYaNDY24sUXX+Q+Sc5pCReSHE4Oc+WVV2Lv3r34zW9+g7fffhtPP/00jEYjpk6discffxy33nprUu83adIkfPzxx1i1ahVWr16NYDCI2bNn4+9//zvLkUzEd7/7XQQCAfzmN7/B/fffjylTpuCdd97BT3/601SmyOHkNLyYAIfD4XA4CnCfJIfD4XA4CnAhyeFwOByOAlxIcjgcDoejABeSHA6Hw+EowIUkh8PhcDgKDBkhuXr1apx//vkoLCxEZWUlli9fLls5hMPhcDicdDFkUkCuuOIKXHvttTj//PPh9/vx4x//GPX19Thw4IDqbunBYBAtLS0oLCyEIAgZHjGHw+FwchFCCPr7+1FbWwuNJr6uOGSEZDSdnZ2orKzE5s2bMX/+fFWvOXXqVMLalBwOh8M5Mzh58iSGDx8e95ohW3Gnr68PAFBaWqp4jcfjgcfjYX/T80BjY2NSffqk+Hw+bNy4EZdccgn0en1K7zFU4HM9PTlT5nqmzBPgc02W/v5+jB49WpUcGJKaZDAYxJVXXgmr1YotW7YoXvfwww/jkUceiXn85ZdfhslkyuQQORwOh5OjOJ1OfPOb30RfX1/Cov5DUkjecccdeP/997Fly5a4qnK0Jmmz2VBXV4eurq6EC6OEz+fDunXrcNlll50RJzY+19OPM2WuZ8o8AT7XZLHZbCgvL1clJIecuXXFihV499138dFHHyW0JRuNRhiNxpjH9Xr9gG+kdLzHUIHP9fTkTJnrmTJPgM81mdeqZcikgBBCsGLFCrz55pvYsGEDRo8ePdhD4gwido8f9c19gz0MDodzmjNkhORdd92Fv//973j55ZdRWFiItrY2tLW1weVyDeq4Pj3ahac3NcDrDw7qOM40bnj+c3z1qS14bVvTYA/ljOIvmxsw65cf4tOjXYM9FA4nKwwZIfn000+jr68PCxYsQE1NDfvvtddeG7QxefwB3PGPnfj1B4fw0qeNgzaOM42TPU7sarICAN7c1Ty4gzmD8PgDWP3+IXT0e/CHD48M9nDOKA639ePR9w+hxTq4SsGZyJDxSeZifNGuJiv6XD4AwMdHuvDd+WMHeURnBse6HOzfR9rtgziSM4umbif799FOOwghvChHlrj/X3uw91QfjrT34/mbzh/s4ZxRDBlNMhc50R3erI91OuJcyUknTZJ173Z44fD4B3E0Zw4nJEKyx+FFj8M7iKM5c+h3+7D3lOh/X3+oIycVhtMZLiQHQFNPeNNo6XPB4w8M4mjOHKSbNQCc7HUqXMlJJ8e7Iw+CbTb3II3kzCL6fm+3eRSu5GQCLiQHQFNP2D9ACNBi5ZtGNmiN2pz5ppEdou/vdi4ks8Kp3kg/ZLOVHwqzCReSAyB6k+iy8806G1idkWa+br7uWaE3at3b+vi6Z4PmqGAdvu7ZhQvJARC9WXf185s3G/Q6xGCpYpOYENxt576xbEB9kAaduG1wc2t2iI5o5Rp8duFCcgD0hDbrutJ8AFyTzBZUoxlfaQYAdDn4umcDeiicUCWuey8P3MkK0evMhWR24UIyRQgh4U2jUqwk38k1mqxAheS40LpzTTI79ITWfVSZ2L/VGkp/4mQWer+PqRDXvYNbrLIKF5IpYvf44Q+KodjjQidr7hvLPC5vAG6fWN1obGjT4KkI2YGauUeXh4Skk697Nuh1ius+hq/7oMCFZIrQGzdPr0FVYR4AsMICnMxBT9V6rYDaYtHMbePrnnG8/iDsoXxUKiT5/Z4d6DqPLOPrPhhwIZkiVEiWmgyw5IsBJDY3T2rPNFRIFpsMKAqtez9f94xDtReNANSVmkKP8c06G/QyM3do3bmQzCpcSKaIVWaz5ie8zGNziQLRkqdDYZ5YVdHm5uueaegaF+bpURKKKuZmv8wTDBK2r4yiGjw/nGQVLiRTxO4Rq+sU5ulgCW3W/VxIZhxags5s1MGSF9Lg+bpnHHq/m406FOUbAAD9Hj8CQV4iLZPY3D7QKnQjS8PmVl6aLntwIZkiEZs1M7fyzTrTOLziuhdI1t3hDcAf4K3KMondHb7fqeWEELGuKCdzUJO2yaBFRaHYQN4fJHB4eQnMbMGFZIrQm7RAsmnwE17mocEjBcawuVX6OCczhNddC4NOA5NBC4D7JTMNPRSajTrk6TWskAN37WQPLiRTRLppUI3GFyAsPYGTGagGX2jUQa/VIF8vbtbUV8nJDMxyEjJxFxjFAwo/nGQWt088jOcbtBAEgR3IuT84e3AhmSJOqkkadCgwaKEJtdXjJtfMQn1jdJO25PPgnWxgZ+4F8VBSGFp/3qYss9B9hh4GWfwDj+jOGlxIpohDYvYTBIFpk9wMklmob4wJSR68kxWY5cQgrjtdf2oO5GQGlzesSQKi2RXgh5NswoVkijgk0X4AmBmEb9aZxRGt0bA0EL5pZJKwuVVcb3rfc40ms7h8kZokN3NnHy4kU8QZOkGbjNQMwjXJbGD3RmmS/HCSFeySaG5Aokl6eJRlJnF5uZAcbLiQTBEa3RreNMSbmN+8mUVq5gYk5idu9sso9ph1F+93bvbLLC4fN7cONlxIpogjykdDb14nz1/KKI5ojcbA1z0bRK87Nbv28806o0SbW81Mk+T3e7bgQjJFoqMsC/gJLytEr7uJa/BZQdncytc9k0QH7jBzK/cFZw0uJFPEyXxj4s1rMnBfQTaIDtxhmiRf94wSfTgxG7iQzAax0a3czJ1tuJBMEWnFHSB883KzX2aJ9kmGUxH4umeS8LqHNmtubs0KitGt3AefNbiQTAFCZHxjPOosK9BNw6SPDJhy8k0joyhFWXKNJrNErzsP3Mk+XEimgC8I0OYHMVGW/ObNGIQQJiTz9OKtGzZzc00yk3j8PMpyMGCHwqh15z7J7MGFZAp4JOVZTfpInyTfNDKHNxBkbYPyonw03CeZWahGk6eL3Kx5MYHMEj4U8jzJwWJICcmPPvoIy5YtQ21tLQRBwFtvvTUo46BKS75eC02oaGsBc6hzjSZTSIvH082aHU64TzJjEELg9otrHx1lyfNTM4tTIbqVr3v2GFJC0uFwYNq0afjjH/84qOOgezW9cQGe1J4NaEcEjQDotZGHE+6TzBy+AGHNlaM1SX4ozCxuhTxJvu7ZQ5f4ktxhyZIlWLJkyWAPA96QkMzThc8Y3AySeaQbhiCIQjJs5uabRqZw+8Nrm2cQ73ka3cp9Y5klJgWEr3vWGVJCMlk8Hg88Hg/722azAQB8Ph98vtRqffp8PqZJ5uk17H2MIXnp8PhTfu9cg84jV+bT7xS/S6N03bWihuPwpP6dArk310yS7FzpumsEQAgG4PMFYRDEdfcGgnC6PdBrc88odTp8p9RCohcIfD4fjJrwujtcHtaE+XSYq1rSMddkXntaC8nVq1fjkUceiXl87dq1MJlMKb+vLyBqMR6nA2vWrAEAdLgAQIc+h5s9drqwbt26wR4CAOBEPwDoAL+XrbHdJz7m8gXx7ntrWF/PVMmVuWYDtXPtcgOADjqB4P333wcAiC5Kcft4+70PYMrhnWQof6d9di0AAds/+xQt+4BA1LoX6COvz9W5bm0XcKhPwPKRQZQY0/OeA5mr0+lUfW0O39oDZ9WqVVi5ciX722azoa6uDosXL4bFYknpPX0+H/a8+iEAoKq8BEuXzgIAdPR78Mvdm+ENCliyZAkzBw5lfD4f1q1bh8suuwx6vT7xCzLM5409QP12FBeasXTpXACiCfZ/tq8HACxYtJj5bJIl1+aaSZKd65ft/cCurTDnG7B06SXs8R9tXwdfgGDuxZeipigvk0NOidPhO121Yz2AABYvXIARpeLB/kc7PoTXH8Tciy9BbXE+gNyea7fdg3sf2wxCgJrqGjz5tWkDer90zJVaFdVwWgtJo9EIozH22KLX6wd0I0kDd+j7FBWIQjFIgAC0zNF+OjDQ9UoXPiKusXTddTodtBoBgSCBLygMeJy5MtdsoHauPiKa9PL1uojrC4w6WJ0+eIPI6TWTzvNkjxOWPD2KTLk7Xoo0L7jQZGRzKDBo4fUH4ZG53zN9//7j8xP4vz0t+OlXz8Gk2iJVr/m0sZ2lbm052g1Bo4UuDeb5gcw1mdflniNhCMB8krqwIDRJhOJQCN6xe/y4+cUvcOvftrOAmFzHExXpBwCCILBE66Gw7gDg9QdxqM0GQneOHMcdVcCBUjDEgqY+P9aNBb/dhCue+AhWp3ewh5MQjz+cFyy95wcrJ7vf7cP/vFmPz4714LEPDqt+3eG2/vB7ePxo7HJkYngZIyUhabVa8dxzz2HVqlXo6ekBAOzcuRPNzc1pHVw0drsdu3fvxu7duwEAjY2N2L17N5qamjL6udEwISlJAdFoBBQYhk7x4Ve/aMLGw51Yd6AdH9S3DfZwVBGdWE0Zau2y7vj7Dlzxh4/xhw+PDPZQVKG07qYhdL8DwN8+O4FAkKC1zz0k7nmX5H6WCsnBasu37XgP+/fOE70IBtUd8ho67RF/f9luV7gyN0laSO7duxcTJkzAr3/9a/z2t7+F1WoFALzxxhtYtWpVuscXwfbt2zFjxgzMmDEDALBy5UrMmDEDDz74YEY/NxqvjCYJDK00kK0N3ezfH33ZOYgjUQ8tJhCzWQ+hzgitfS6sP9QBAHh+S6PqjWYwkdPgAcA0xIrLb5ds8luPdce5MjdwhtbdoNVEmCcH634/FKURnuxVF/xyrFPUHOtKRf/p4fb+eJfnHEkLyZUrV+Kmm27CkSNHkJcXdtYvXboUH330UVoHF82CBQtACIn576WXXsro50bjC4q+sRjz0xBqvHywNey4lt78uYyS2W8oNbzefryX/dvu8ePLjtxfe9aJwhApJM2DWMhh90krXtvWxIocJMLm9qHdFk4HOzwE7nlWClDBzJ3t+/1EV6RQPNnjSvgaQkTNHQDmjSsPvU59ZGkukLSQ3LZtG2677baYx4cNG4a2ttw3YaQDFrgTbfYbIhqNze1DS+jGBURziNrNJl0QQrC/pQ8d/e7EF4dIZPYbChr80Y5IU9NQ2KypBm/URa/74Pgk+90+/L/nPscD/96HJ9erM1lHb8zHOh3wB4IKV+cGblbcPDK+crDu9+Pdkb5ENZqk3eNnv9vpdcUAgGZrYuGaSyQtJI1Go2z47JdffomKioq0DCrXYeZWBd9Yrm/Wzb3iTVps0sOg08DjD7LHssWzHx/DV57cgsW//wid/Z7EL0B4s445nLCTdW6vOwAcjfLPNHTkvn8muuoLZbB88F809rDf2IcH21W9hgrJqcOLkKfXwBsI4lSW7/lkia7bSglbrLK77k2SNZT+HQ/62zYbdRhXaQaArO81AyVpIXnllVfiZz/7GatYIAgCmpqa8MADD+DrX/962geYi8jVbgXSe/MGgyRj0Y9tIS2ytigftaH8tpa+7N24gSDBnzY1AACsTh/e3HVK1esUoyyZLzj3za10s549uhQA0DAEIv1oWTppGUZA6pPMspCU+BYPttpURWdT0+DIsgIMC+UWtuS4RqMYqDYIzRQCQYI2m7hvnD9KvHc7bIkPtx0hIVlRaMSwYjHPs83mznktXkrSQvLxxx+H3W5HZWUlXC4XLr74YowbNw6FhYX45S9/mYkx5hxUSBp1mdms65v7MOPn6/D1pz/NyCmd+ghqivJQU5Qfeix7G8a+5j5YneGyUJ82qAuiiC72TKGbhmsIaJL0gEI3mlzfqAHAraDRDJYvWKp9B4k6Hxc18Q0rzmcJ+Llu9qMavClGg8++Jtnn8rF0FKoRdjsSC8lOiZCsLDRCrxVzmttVWo9ygaSLCRQVFWHdunXYsmUL9u7dC7vdjnPPPReLFi3KxPhyEronxJpb09Pb8A8ffok+lw87m6x4Y1czbrhg5IDeL5q2kECsKc5jG1yLVb1vcKBsOSJG09YU5aG1z429p/pUvY4KSWOMT3Lwoizf2dOCFqsL35k3OmGCtD8QRJdd3Byof6Y1i+ueKrmWAhJt5jve7cT4qsK4r6HrLmo0VJPM7bV3+cR1jYkqHoT7vSckEIvy9aiyiAVa6JrGg2qSlYVGaDQCqovycLLHheZeF/secp2UK+7MmzcP8+bNS+dYhgzKgTshTXIAJzyn14+PjnSxvzcd6ki7kGxhmmQ+O61mU5Ok8/v23NH45ZqD6HF4YXV6UWwyxH2dSyEFJF2HE0KAbcd7MbbKgipL4jJrB1ttuOfVXSBEDNP/9rzRca/vdngRJIBWI2DyMNGv09Evmp7SUYFEDXtOWnH733dA79fiokt9KFVReUQp9WYwoiwJIUxITqq1YH+LDSe6E5usu+1i8YByswEOD9UkczvK0uVVWPdBCBDscYiWn9ICA8oKRCFJ1zQeUk0SEF08J3tczHQ7FFAlJJ988knVb3j33XenPJihQjgFRGmzTn3TONhqg9cfttfvOWUFISSttWC76anabIQvKH5WtjQau8ePnSfENIjLJ1XjuS3H0G7z4ES3M6GQVDK3mtJk5v6wRcC7n21DudmAdd+/GCUF8cez4VAHM0FtPNyRUEi2hzaGCnPY9OQLiKanbJyqCSH4wet7QuZ2AX///CTuXjQx4etcCr5gmq+XzUC1zn4P3L4gNIJost7fYmPrGg9qGiwrMMIfEL+03Nck5c2tgxFV3OMQBWKJSY/ywrCQTLQ39YZeVxb6LVWHYiDasngoHyiqhOTvf//7iL87OzvhdDpRXFwMQKzAYzKZUFlZeUYISS8L3JH3SQ7khHegRYwcvnBsGb5o7EGX3Ys2m5v5DtNBn0s8FVry9axrRpcjO2W6Pmvohj9IMLLMhBFlJowsK0C7zYPj3Q5MC5kglVAujzbwfD2vP4iNLeL7dtm9eHt3M26aG1/oSZPTdzUlPszQPL0qi2h6qrLk4VSvC63W7JievmjswRGJP+/Dgx2qhKTS4cQ8CFGW1ApSZcljRdW7VGg0dJMvMxugCd0+6fYHd9jcWPHKLhBC8Lv/no660tQ7DQFhH7uSDz6b694bKuMnapKiwPMGguj3+GHJU7ZG9HvEvaYwdA0Vkq19uX1AkaLKxtPY2Mj+++Uvf4np06fj4MGD6OnpQU9PDw4ePIhzzz0XP//5zzM93pxArnYrkJ5ovwOtYt7cjBHF7EeW7lqHVEgW5UtPhdlxpH8c8kfSxOLhJeqDKBQ1yTT4aPY198HhDwu4LUcTBxNJy2vZPX50JlhDeqouDW0ytaGDT0uWNox/bhejiOeNKwMA7G/th8efeM0SrnsaNJpTvc4IC4oS1DdWZjYwE16iFKJAkEQISXrgbLO50xpB/vjaL/FFYw+2He/Fqjf2Dfj9lIo4FAyKTzJ87+bpteyA1JVg7ftDzaHp9TUWqkmeZkJSyk9/+lM89dRTmDgxfAKdOHEifv/73+MnP/lJWgeXq7Do1piT9cBDs2klnLNrLBhZJgrJE92JfSf1zX04rlKY9rnEG7coX4/yJPwL6YD6Iy8aL+bUVhaKPxo1uZKKvjGq0QxAg98dCh4qDTXo233SGncD9fqDzI9LNdvjXfG/J+nhBAAqLeo2+XTg9Prxfn0rAOB7l4xFvpYgECRo6Eh8zyj7JNOj0fxx41HM+/VG/NfTn8CXIDWA3qdlBUaUm9Wtn9XlA62VUWoyoDq0UTu9AfSnyVTs9Qfxf3tb2N9bjnZFVLUCxCjcY1F5svGgPsloIUnN3AP1wScDM7eGDnj0Hqb3tBJUSBbmib/RahZNfxoLydbWVvj9sV9OIBBAe7u6xN6hjlLgTlijSf3mpUEJY8rNGFVWACC20kU0O070YNn/bsHiP3wk9v6LAyEENrpZm/QoM4s3vcsXyHggwLFOOxq7HNBpBFwY0maoNtChQlC4WHRrtJk7dDgZwMl6V5MVAHD9rDpoBDFyL97me6rXiSAR/UUzR4rpHIm+J5s7UkjSTV5NlGCyWJ1ebD/ew4TOf/a3wekNYFSZCTPqilATsgQmul+AONGtxoFrkn0uH54IVc2pb7YlLDzeI/Fx0Xsn0fr1hARrsUkPnVaDfIOWfQfp0mgOtdng9AZQlK/HksnVAICXPw83Xth4qAMLfrsJlz6+GesOqNsnlaJbCwahCwizgoTiBiyh9bO544+h3x1pbq0pOgM0yYULF+K2227Dzp072WM7duzAHXfcccakgYQr7sjXEE315rV7/GwTqCvNxyiqSSbQUF7bdhKEiKfZt3fH78Ti9gXhDW2cRfl6mAxaNo9Ma5MbQoW9Z48pZX6MSmoyU5GYnMjsNxCNZn/IFzx7dCmGhUzA8czcJ0KHmRGlJtQWiz/89gQ/fKkvGIBqc2GytPa5sPDxzfjGn7fia3/6BG19bvzjM3HDXj5jGARBQEWeqFqdUlFaTKmGKLOcDGDdNx3uiDCzrk9QQadbYvajh4wepzducnqPM9LMDYBpk+narHeftAIQ3STXzxaj0d/a1Qyn1w+3L4CfvFXPSj8+sf5LVe/JKh0pRbdm09zqjNQkLSHN0JZAk6RBXVSTpEKSRnUPBZIWki+88AKqq6sxc+ZM1tR41qxZqKqqwnPPPZeJMeYcShV3wnljqd28NCm6xKRHYZ4eNaFgjtYE0XtfNIYDSLY19sa5MrxRa0OtvQRBCGs0KpKDU4UQgn/tEH1il51dxR6vZJpk4s3KnaEKJG5fAM2hzXJcpToNnpbWGl6Sz0zGibRhmytakxQ3nHRrkk+uP8qESX2zDResXo/tJ3ph0Glw3awRAICSUC/yZhURnrTijuLhZACa5OZQB5rJwywAgD0JcmbpQa7UbEBpgQGCIKbu9MTpDxlt5gakUZbpEZL7QuOeOrwYF44tw8gyE/o9fry7pxV//fQ4mq0uGELFR+qbbehQEZGr5JNMx6EQEF07K1/bjTX7WhNeG61JFjFNMjlza5nZCJ1GQJAgoQ8/V0haSFZUVGDNmjU4dOgQXn/9dbz++us4ePAg1qxZg8rKykyMMafwB4IIkFAKiC7aJzkwcys1tdKAHXrajaeh2Nw+HJf4LL/s6I/rS5NuGDQSs8yceb/kO3tacKitH3l6Db42Yzh7vNKiTsAAmavd2tjlACGASUtQatJjdHlB6HFlLSuc/5XHfIuJBD01TVEtOhPmVn8gyHyPj319KsZUFLDn7lwwluV/lhhpGoSKgCmvwuEktO7eQFBV0I0cVAO7JZQ+09jliOvnYoE7BQZoNQJby3gaTX/UugMSTTJN+Xo0bmBsRQE0GgHXni8eRh77z2FWhP0XyydjYqjowb7mxAU0nIqapLjuvgBJed29/iC+/dI2vLGrGXe/siuhr5Rp4+Yoc6tL+TfnDwTZHKi5VRuK6gaGjl8y5QzmCRMm4Morr8SVV16JCRMmpHNMOY1bclMq+WhSPVmfjBaSodNup92j2KWDBusUGnUQBLEWanecdA65U3V5yIQSL8L13b0tuOH5z7GzKb6mGs3+lj5c+8xW3PPqbgDiZlhkCn829Yk6vYGIJrNyKGmSJhZAEkipPyPtd1eZL9YiHhnSJOMlqVPBVm42SLTh+MJOydza1Z++w8mhtn5YnT5Y8nT4+nnD8cYdF+L+yyfi99dMwz0Lx7PrSkKWR1VC0h8/gARI7YBic/vY2s8fX8FMcdGdUqSEoyzFtaP3sbTMYTT9USY/IP2pCCd6xHlQK8Q159ehxKRHl90DhzeACVVm/NeMYZhUK2rM9c2xTSKicStqkgNbdwD4YH8bm7s/SPDGzvhuml5aTID6JPMSa5JSyw5VIID0a/GZJumKO9/+9rfjPv/CCy+kPJihgEdSTDm6dqs56mRt0CV3BmFCskQUkuVmI7QasdZhl90jWwWG+s3OqilEa58bp3pdON7lYFpKNNEbNRAWVEoajdXpww9e3wO3L4hmqwvrV16sqrhBZ78H33z2c/S5fNAI4sZx76LIA1WhUcfm2OfyxWwIFF8gCH9IACoVOAfERrXSH6QaaOf0ynzx/YcVJ9YywkLSGNaGE/hVbWztdey1gJjoHgwSaDQDLxix55QVADCtrhhajYBikwF3XTIu5rriJDRJJd+YXquBQaeB1x+EwxtAcZJpgfUhE+Ww4nyUmY0YVVaA1j43jnc5cN7IEtnXdEel0aiJsgyb/GLNrWoKESTC6fWzHFgqJEsLDPjDtTPwwL/2oihfjz9ePwM6rQYTq0VNskFFlKuSuVW67naPP2ERDjnW7hcDpGhpyE8auvADyOfMevwB5ltkPsnQPRxv3akANeo0EXvhaS8ke3sjNQmfz4f6+npYrVZceumlaRtYrkJP1UadJmZTiz5ZG3TJ3bwnQ36uESFNUqsRUGE2os3mRlufO66QHF1eAAGCmJwe5+aT0yTLmNlPXqP5pKGbmTqPdTpwrMuBsRXmhPN54ZNG9Ll8OKu6EM/dOBPDS2J3UUEQUJyvR7fDC6vLy35A0Ug7PURrkkadBhpBLHbt9PiTFpLHooRklYqgjnCZM2M4+KjfE7egADughDZrejjxBcQDQqIKP2rYEzJfThteHPe6otDX7whp8EqHE0II80lGRxUDYhqI1x9MKR2B+h+n1Ykl+kaVF2Drse64Gry0vBwgRqwC8TdrOzO3ZkaTpG6SYpM+wkpy8YQKfPbjhRHX0t+2ml6MSuZWQLLuKQTvEELw2TExD/j7l03AD/+1F/ubxW4q0b8tIKxFiuZtcQ3VmLnDQTuRxQZq0mzqzjRJC8k333wz5rFgMIg77rgDY8eOTcugchmlSD9g4Ce8sLk1XH2luihPFJI2N6bJvibcAogKsnibu6y5NYFvbNvxyIPRriZrQiEZDBK8tUs04dyzcLysgKQUmUQhSX+MctC5CUKsBi8IAgqMOvS7/SlF/B0LHTQqQ/KZJpt39Itmbq2Mhic1t5ZKKpA4vMqabHQKiFGnhSVPB5vbjy67R1ZIvrHzFD4+0oV7Fo7HqPKCmOejoRV1zqqJX/DbqAUri9ft8GC4Qf778fiDrPSe3GZtMujQ6/SltO71LaKQpHVsR5eHimco5AW7vAGmXZUWRPrG4plbmS9YGrhjSZ8mSX+DI1RU2KG/AzW9LN1xhCRb9xQOJ0c67Oiye5Gn1+Cq6bX41ZqDsDp9aOi0Y1JtUcz14ZJ0BnYAVJMCEh20QxlqVXfSUlVZo9Fg5cqVMeXrTkc8fvnEakqBxD+WDIQQdrqskwiURD9mGiwiLdOlTpMM37i0zFSPgi/zy9DGWxI6JR9qTexPaei0o7XPjXy9FpecFT+gq5iZzJR9c6wDiE4jq6mlmjtGCGGtl6pCmmRFYaSZWw6qdZcXGpGv1zJzUq/CGnr8ASbopZs1rXgkF+l3pL0f972+B2/uasZP365XNR8aQELNfkoIQljQKH3vAODxKfvgAUmJtBQ2a5psf06N6KcbUSqOWamZL62/atBq2EGkWJW5lebqhe95+lvpcXhV9aOMR6ek00Ui6AFYrEEb/3OVarcCA2tTtjXUmm7myFIYdVqMCx14GzrlNfhwSbrwfcuiW5Ncd2Do1W9NW+uBhoYG2SIDpxsssVqnICRZse3k1qLL7oXbF4QggPW7AxLb76nwrLIYw9falG++6DQEIGz2U9osabrD4nPEJOnDKhLQaYCP2Alefq0oVOOOpw0o5UhSWBWSJDeNjn4xsEKrEVAe0iS1GoFteHIHDrcv7KMpNxshCAI7QCht1jQKUBBEPyylIo6p+719rUyL23K0C31x1od+Nv0O1WidNAgjXqAXvd91GgF6mU4lqd7vLm+ABZ1RIZko31RaGo0elFT5JGUCd4ry9cwioaZ5cDyk/ulEFOXr2fefSJtUKuIAhO/3VDTJTxvEqldzxooFPWh/SKWAqZ4oPzAgyZOME7hD74loy4qaw3wukbS5deXKlRF/E0LQ2tqK9957DzfeeGPaBparhNMQ5M8XBSnmjtHapVWFeRFO7kQVacJFs/PYDyZpn2SB8kYdCIZ9BxdNKMdr20+qKpO3I9Tp41yFAAwp1K9kjbPRxdswAGk9y+Q2DRpdObw4HzpN+POrLGJAQ1ufC4gqvE41B4NWwzaLEpMB7TYPO3VHQ9e90KiL8GWXswjX2O+X+o0AMRdw18leLJiorJVToVNRaFTll2WaZJzUH7Xrnuzh5HB7P4IksnJOdVSieXT7sOigHSA5n2ShMXzPC4KAmqI8HO92orXPhRFlkaZSh0csAlCmQvAlIyQFQUClxYj+Tj86+t1MQEUTDJLwXiOjSaZ6vweDBJ+H8qqpkBzLNEl5IdkrU4xBTQqITdHcKioB7TZ32gLWMknSmuSuXbsi/tu7dy8A4PHHH8cf/vCHdI8v5/Cw0mhKmmRq7YOkyelS4qUXuH0BtjlUWfLYDzqe+UzeJ0k1SU9MCoXVKwbEGHQazBghCrwWq0sxJYVCQ9ynJ+jsAQDF+Wo0SfkcSUqqDYCPdYkbw6jyyE0y3mlX6o+kGg3drHsV5sD8kabIIAaqScqZW4+G6qqODeU6JmpOTYsfjCpL7BsDwuazePeLUtoNha17kpu1tEYxXcPygnCiudz9zuq2msObdTgFRHkOcj5JQBKgFeXKaLe5sfDxzTj/lx+yKNB4SO8HNZQnCJQDwgUcAHlza6qFSw602mB1+lBg0GJKyBdMa0SfVDJz28M+SYolKXNr5LpXFhohCAj5w7NTM3ogJK1Jbty4MRPjGDIo9dajFKTYPoiWBxsWLSRZekHsZk3NRHl6UaMpY/mOyQlJGjASJKI2Jz0xdnvEDWx4cT6qLXks2KPN5lZs70QIYVG3SidlKWFtQIVPUvFwkpoG3xjSJMeUFwASuV/FfMGxm7XUH0kpYSZj+TnYoiJbKazqTpRQ6HP62OZ7+aRq/GlTQ8JuMNQkr7btFv2e1ZhbE97vSa4780eG8gYBsPZhzVYxQrs2ah7SQgKU5FJA5M1+0a6Mv392ggnOpzYcxeJJ1XHnQvNcy1X4JKXXxctLluYMy7l2Ut1nqKl19pgyZj6ne45SOpCcJknX0hsIKkbF2t3y5la9VoMKsxEd/R609bmZJSFXSVqTvPTSS2G1WmMet9lsZ1QKSEKzX7KapDW+JilX37NdErQjCAIzm9o9fsUWSHJ5knqthm02PVGl6XpCfw4ryYdWI7ANWOnUCYgnc5dP9POpifhjWlic6NZEm3WqGg2NbI3WvuJV0ZEzr1G/qtIcotM/KEqRxQ0hDbfaksdO/McSCEmqfVXKpArJQX2S0d+5lIS+YENqlpOwJhkZhUv9knI++O6oQgIAUEStEEn6JAGgqkhek3x3b7hM277mvriaNpCcuRWQ+qGV152ar+VSzYDUSzHSFnBzQ63qgPChSoyLiH0/aXQrxWwQi5cA4UNINP0yqTeUsKUm94N3khaSmzZtgtcbe9O43W58/PHHaRlULsPMTwqFAkwpFh+mTvxhURnZVEh2O7wxbYRY0E6odqglXwdd6Ael9MOW0yQBaUGByNf1uMX3o1WAEp06gbB2NqLUJBvsEY2aOpCJNutUfWNUOxsTFehC11QuqINqfVLzWtjcqqBJusPtyaSEO1lEvo4GUYyrNGN0yNza2GmPW3KwI4koSwAoYeZWFeuukEeZSuPlYJDgUKhv6tk1lojnwq2UYu+vnjjmViWznz8IVrpNMV9PIpDbbW40djmgEcLCY5ukubYcnUkKSaoJx6u05I4T2QqkVorR4w9gW8gfOTfUhQcQ15BG5cv1dZXTJDUagRVP6Vf43SrlSQKSgMSoA8rJHqeq3rLZRLWQ3Lt3L/M/HjhwgP29d+9e7Nq1C88//zyGDRuWsYHmCol8Y6l2AlHySZaYDEzwRZ88qSmQaj2CIDDTqZLJVUlIKvWVpJokHVeVimLexxQEjxJmFRGSiXxjBSmsuy8QZOkG0T7JKks4iCQaOc2BRrcmNLfmR56qlXoi0iCKsRUFLJ3D5vbH9dtSk7xa81WRitJirJekQjR3Kg2vj3ba0e/xI18fTj+gxPMFy0VZUh+vzeWXPUC4QsOKjioG5DdqWoxhQlUhZo8RW6AdiRPN7fYFmMZUoVJIlqto8eVKqMHT34z6df/4yy64fAFUFhpZDVlA3Dfo4bdZJuKWHqJKo/J4qWaurEmKrzPLapKxfSU3HhbbiV3ym03YcSL+wSSbqPZJTp8+HYIgQBAEWbNqfn4+nnrqqbQOLhdJ5BtLpVs7IUTRJ6nRCKgoNKK1z40Om4fdXEB4U5RW4ikrMKCz3yOrSbp9AXaqVtIku2PMrSGfZCh3syIkkOMlYVPtTE0aAiARknESkxMdTgpSSAFp6nEiECQwGbSoihIslWyecXyScuZWpcAdhcMJ/e5ofV5auIA2Qx5baUaeXovSAgN6HF609rkVK/OE8/XUmVvVBF+w4hlKGk0KeZI08nlaXVFMBKtSMA0AdMVJRfAGgvD4gzGHKBp8aTboYsyWcpWVWFm/4cUYGTo4HYlTS5aagA1aTcwBSAk1he2datc9CU3yrVAbva9OrY3JNR5WnI8v2+3ymqTMugMhDbHPrXi4VYpuBWJT2wgh+NV7BxEIEgRA8NSGo3jp5lmq55ZJVGuSjY2NaGhoACEEX3zxBRobG9l/zc3NsNlsCeu6poM//vGPGDVqFPLy8jB79mx88cUXGf9MKeEu7fJLZ04hf6nPFa5YIhd0oRThKs2RpMRLEJe2yYp2ptPXRZv9uqM0STVtoagpVo0/EgibY+J1iQ8fTpR8kslrkrSIwKiygphNg2rMfS5fjJ+GmdeSCNxR9kkaoBGAQJBEBHIcY5qkqGmFu1Yom6Lo/VBpUafRWBJoAoA0Lzj+uiej0ewMCUm5+qzxOt/IBe4UGHSgsk9O2FNNUm6jjq6sBIQjiKfVFWN8pahtHWlXFpL0YFImiXRORLmCayNi3AnMrckexpu6nayh9X+dG2vxU9IkCSFhn6SiJqlgbpWpmUuJDprac6ov4jDyydGuARd5SBeqheTIkSMxatQoBINBzJw5EyNHjmT/1dTUQKuNnzCeDl577TWsXLkSDz30EHbu3Ilp06bh8ssvR0dHR8Y/m6LUW49iSiF/ifojy81GWXNiRaG86U+aI0lhba/iCElLni7mBx1OHwlv1F5/EH2ht2HmVkviJsnUhKJUhzUa+mOLp0kmzNdLQZM8GPKLyZVws+TrWLJ5tClULuQ/Ub6eUgqITqth5lG6bl5/kDV1ptHB4U1Fft0dnnBJPrU+Sar5xNMkE/kkk9VoCCHYGsr/lBWSRSENXsbMHfZJhuen0QhsE5YzG7v94n0ut1FLDyhddjH9iZpbpw4vYqk3Yis1eV9w2D+tPkKTHqjiReTGK0kHJLfuHn8Ad7+6C/4gwUXjy1kZQCn0wNAS5Qt2eAOsSXtpVJlNMysooGBu9YTMrTI5u/TzqLvjnd0tAICrpteistAIXyD8XQw2quwD77zzDpYsWQK9Xo933nkn7rVXXnllWgYmx+9+9zvceuutuPnmmwEAf/7zn/Hee+/hhRdewI9+9KOMfa4UqklG1w+lpOKTbJKp2SqFRVpGCSZpdCslXGIudjNV8kcC4Q1f6pNstblBIMCo0zB/C9Uk5TYxCj0dVquMsqRr5vIF4AsEZYN9EudJJl/55UCrqDWcExU8AoSTvk/2uNBuc7PAJSC8MUp9ULQ8mlKUpZImCYjBKu02D6vPe6LbgUCQwGzUMYGXqJQX1exNBq3qAu9SDV6pRm04UC1REQd1h5Mv2+041Ss2IL5gTFnM8+z+skUWi3f7Auwzos1+lnwd+lw+9MkktlNNUs4UqtNqUFmYxxoIODx+2Nx+GHVitw6qXbp8AVid8gXok82RBMK/P7vHr3i/M3NrwuIZidf9V+8dxO6TVhTl6/HL5VNkr6FRxa1RTbipqTVPr4k5KLH7J4XoVuoTbba60Of0Ye0BUcv9ypQaeP1BvF/fhj2nrJgtc49kG1W/puXLl6OtrQ2VlZVYvny54nWCICAQyIyK7PV6sWPHDqxatYo9ptFosGjRImzdulX2NR6PBx5PWFjYbGLYuc/ng88Xv8SXEs7Q6Uivgex70EYgdo9f9WccaRPHNao0X/Y15SHto63PFfE8Na+VmbTs8aI8cQBd/e6Y9+ruFzdYS54u5rni0Os6Ja870SlqWsOK81jJwdJ88boOmxterzdGI/UHgkzjLS+I/Rw5jNrwKd1qdzOtTIojtO6GBOvu8Kj/bve3iOs+sbKAvUb62kqzKCRbeh3wDRN/1B5/MBypmqdh15v04jrYXD54PN4Y/xctKVdgEGLGVxnaYFt6HfD5fDgcEt5jyk1s3StC1zRbnbLza+m1h64zJiwPSV+fJ1n3nn5X/HXXxY4bkKy7W926v73rFADgwjGl0Ask5jX0/vL6g+joczKB2BE6eOm1AvK1ka+jATk9dhd8vnAgkM/nYz7JAoNWdnyVFgPabG6c6rHDFTqInVNTCAQD0EIUfl12L0509cNsiD1MtYcOLaUFetX3nVRed/e7IszHFLs7JJx0mvj7TGjd5e5fAPi0oRt/3XoCAPDbb0xGjUV+nBWhSOfWqD2mo088wJeYDDGvKzCIwr3P4Yl5jhDCLEN5uthxmfTA8OI8nLK68dq2EzjV60KeXoMLRhVj3ynRHH+kvV92rEpzTYZkXqtKSAaDQdl/Z5Ouri4EAgFUVVVFPF5VVYVDhw7Jvmb16tV45JFHYh5fu3YtTKYkm9+FaGrWANDgeMOXWOM4HPP8gV4BgBatnT1Ys2aNqvfcclR8T2/3KaxZczLm+fZ28T33NzRhzZrjAAB3AHB4xK9v16ebcSD0o2lpE689eOwk1qw5EfE+X3SKz3nt1pixHe0DAB2a2nvZc1tDn2v029ljogtEB5cviDf/731EHxKtHiBIdNAIBF98tB5qK07pNVr4ggL+74N1KJNRQI8eE9eoqfEo1qw5EvP8QStd915V6+70A6d6xcGf3PcZekK30Lp169g1AYf4mZs+3wXSRNj8AHF+n2z8kM1P3F91CBLgjXffhylqXVq7tQAE7N+1Dc6jkc+5e8XP+WTXAZR212PtqdC6e8LfU0eH+Fh9wymsWdMUM5+dXeLzOp9D9X23ecN6GDRaeIMC3vlgHatdK+XgcXFsLU3HsWbNsZjnT9jFeXf12RN+rtMPvLBTXIdRaFe83qzTwu4X8O81H2JYKPbrZOhz8jVBvP/++xHX+0Lf00dbt8N5NNIs6g6IX1B/T4f85znF127YuhNdbgGABoW+8D1kIuJ4/2/DJzhRGmty3dEovr6vTf57USJfq4UrIOCdDz5ElYwBaVeL+H32dLbJjpuue3fUukvvXwD43/3i+OZWBeE8ug1rou49SpdbfL/mHgfee28Ny4Gk+5nW74oZR2doL9x76AjWuCP3Qm8A8AfFH8GnmzcgT0YhLtNocAoa/Op98bXjzX5s/PA/sIXu5e1fnorZw6REzzUZnM7EpTUpSVfcGUqsWrUqotaszWZDXV0dFi9eDIsl9lSohkWLvFjznw9x2aKFKMiP9UNUHO/FXw5tgy6vAEuXzlP1ni/85XMAfbj8whlYMjm2uofxUAdeO7YbyC/G0qUXAAhFkH7xCcxGHb62bDG7Vqhvw+uNe2G0lGHp0vMj3qdj6wng6GGMravF0qVTI5470mHHUwc+hVcwYOnSSwAAB9ceBo6dwNSxw7F06WR27c/2bIDd48f0ORdjTEVkBOuuk1Zg5xeotuTjq1+Zr2r+APDzfZvQZffi/AsvwlnVsT7C9a/vAzpaMXXS2Vg6d1TM81UnevHng+rXfcPhTmDbLowsNeHqq+bB5/Nh3bp1uOyyy6DXi6fqHeQQdnc3oaJuHJYuHg8gVG5v52eoMOfhq1+5OOI9f7rzQ7h8QcyatyAmaOmh3RsB+LD4kvkYH1WF6ORHjfi47QjM5cOwdOkUbPzXPuBkK+ZPn4ClF48BABQ1dOPlhh3wGwqxdOncmPm0f3oCOHIYE0dWY+lSuaZqYaRzLan/FO39Hpx3wTxMqo39TXz2zgGg9RQmTRyPpZfGtsJr6HTgd/s+AdHqsXTp5XE/94n1R+EOHMOESjNWXT9HsWbnnxu34mBbP8ZPOx8LJlQAAD460gXs24na0kIsXXphxPXv9e3GkQMdGHvWJCydPSJinmteWA8AmDhmBJYuPSfms3biEPZubYKldgwaT/UBsGLZ3KlYOr0WAPC+bQ+a9rejeuw5WDpnZMzr//PaHqCtHbOmnY2lF8Y+r8RvDn2MU70uTJ91IWbIlG48trEBONGAcaPqsHTppJjnj3bY8bt9n7J1l7t/W/vcOLL1IwgC8Kv/d3FMBSMpHn8QP9/1IXxEwJwFi8Lt33a3AIfqMaqmHEuXnhfxmhObj2F9y1GU18SOsaPfA3yxGYIAfO2rS2SDmhxVzdjz1n7293cum46lU6oxurUffz2yFT1+PZYsWRzzWrm5Jgu1KqpBlZB88sknVb/h3XffrfraZCgvL4dWq0V7e3vE4+3t7aiuli8bZTQaYTTGCjK9Xp/y4gKAQQsU5Btl36MolG/o8AZUfYa0hNuEmiLZ19SWiIKo0+5hz3c7RbN2lSVyHOWF4g/B6vTFvJfdI1oBigsMMc9VF4ufYXX5AI0Weq0GLaGonbrSgojrKy1G2Dv96Hb5MTHqfbocoomlpjg/qTUuzNOLFT8CkH2dJxQ8YMqLHTsAFBWIapDTp27dtx23AgAuHFcWcb303qgJFXbodHjZY1a3uO7lhbHff1G+AS6fG05f5BwIISyopLwwdl2GhQRqh138nGOhAvLjq8P3w/BQG6mOfo/s/LpD5tyqIvXrrtfrYcnXo73fA6ePKKy7qD0V5Mn/Zuj97kxwv/c5ffjrVlHTuveyCTAalX14NcX5ONjWjy6HP7zuLrrueTGfQ9NvHDJzoO6yIpP873XysGIATdh5sg+HQ26PGSPD9wT1RbfbvPLr7kh+3cUx63Gq1wWHV37dvSGDXYFR/n4vNofu96h1l96/Hx0Vg2HOHVGCkRXxlQK9Pmxa7nT4URXaD/pC93uZOXb9iuPsde6A6OYyG3UwGOS/669MG4bfrP0SvU4fxlYUYOm0YdBrNRhfLQYW9bn8cPmFmGA3ubkmSzKvUyUk1faJFAQhY0LSYDDgvPPOw/r165lfNBgMYv369VixYkVGPjMVwl1A1AWQdDu8sLn9EATlHoA0mKHL7mUBFtTvF50TR4ML5Cq/xAvcKc7XQyOI9Vt7HV5UhmpoAkCdTKm8Y50O2VJ5yUa2UmiwiVI4ecI8ySTXfctRsYalXPAIhaXeSAKm4vUOLDbp0WZzwxpVg9bu8YPWg48usg0A1ZZwFaNgkLCUA2ndW1pqrt/th8sbiAmioNHGanMkKZYE1Y48LOUpfsCUL0Dg9QcjOthIeenT4+j3+HFWdSGuSFALlUZQS/MXaf6uXIAMDYaKlwIiFzAFADNGFAMIFxGoKDSyqFYg3LZOqQoMDdxRW0iAQov6K0W40vzUfEP81Bu67nI6OY0ivmRihaox1RTlo8vuRVufm0XA0jSVsoLY+cUrJhAO2lEWRkX5evzztjn48GAHrppeywKY8g1alBUY0O3w4pTViSJTbDRuNlElJBsbGzM9DlWsXLkSN954I2bOnIlZs2bhD3/4AxwOB4t2zQVY5RdvQFUbmPpmMUhjdHmB4kYkdpsQQ9V7HF5UFBplcySBcORfr9MXER0IKCe0A2IofWmBEV12D7rsopA8FdoYogsc0JQU2XqyoXHVqIxspSSq3pGwdisNifclXvcj7f041NYPvVbAxROUNxC5qjs0R1Kuqo1Fodg2DfQx6DSy3/HoUNGFk70uNHY74PIFYNBqIurJFhp1yNdr4fIF0NHvxsioA1WyJenYmGkYv0LLo0SVXwokwtrp9cOgixViHn8A/99nxwEAd14yLuFvQm7du2XSP9gc4gh6Oi25PEkAGFNuRolJz4pAXDyhIuI3U6NQPo0iV+xeDYm6l7gSpIBI8ycdHj/Mhtg13RfK+aTdexJRXZSHfc19ESUBae5umczhxGxUzm+2xykkIGV8VSHGV8W6V4aV5KPb4UVzrwuTagdXSA6o6TIhJG4tyXRzzTXX4Le//S0efPBBTJ8+Hbt378YHH3wQE8wzmND8JSC8wcSD3shTZXKXKDqthkXA0Y1DLkcSCOfrBYIkJn8pniYJSJOcPfD4A2zjHVYc+Rnxiq4PVJNUSuHwqKzdSkhkmyE5XvhEPPRdPKGSmerkqJKpukPnLCckWRpIVNUdGtmqdKqushhRYNAiECT48IDoThhbaY6oRkNTUqLHQ2GWBZWFBCiJumjQzVqpiINOq2HpUErf3ZYjXeiye1FlMcr63KOplqmE0yVTt5UST9C74xQTAMTD4X/PrGN/Xy/xaQKS3ocyxQ28/iBbt2TyJIFwvqxc2gogOZwY5Met12qY1i6Xk211ellq2WSVQqY29JttidDgaXWp2HWPV0yAlaRTmY4UzbAEGnw2SUlIPv/885g8eTLy8vKQl5eHyZMn47nnnkv32GRZsWIFTpw4AY/Hg88//xyzZ8/OyueqJV+vZZFhanIl94Y0ySnDi+NeVxFV6Uap44NRp2Wn+96oggKJhGS1pDL/qV4XCAEMGhIToh6vETTN45OWz1ODOUFBAXcCs1+eXsPWPV6uZFO3E69vF9MQbgsFxShRKVN1p1MmR5KiVFCAFRJQKFsmCALGhCrrrNkndqCYWBXbYqyK5RDKtE1LsiQdJV4iPpC4eAYgbdskfzhZf0gs9nH5pGpVBe/D3TnC91e8ThtxNclQdGs8s9/KxRPwP0vPxgs3zYzRuqgm2S6pykOhJmCtRmAHJLUwTVKhPVwiDR4Ia/Fy607Tm0aWmRR9etHUhARTq1VGk0zR3JpIk1SCCUmZWrLZJmkh+eCDD+Kee+7BsmXL8Prrr+P111/HsmXL8P3vfx8PPvhgJsY4pBAESXX8BELSHwjii1BV/kTNiZn2Fto4lMytgLJfMpGQpDfmqV4XmkLBI+V5iIkuC5fJi92sU9UkCxNokonMrYIgSPySyprkkxuOwB8kmD+hAuePKo07JrmqO2FNMnZ+SlqZXHuyaGjE656QZUGuKkqlQt1cdyjZHUje3JrQzJ0gqR1I3PB68+FOAMAlZ1WqGhMrTWeTajSJfZJy2jCdVry6qkadFrfOH4NLz4q1SJWbjdBqBFaVRwrt4lFWYEhoQo5GrQav5JME4hf1PxH6/Y6tiD1sKSFXXD6+Bk+LCchoknE6gKiBlcnLAU0yaTH/9NNP49lnn8V1113HHrvyyisxdepUfO9738PPfvaztA5wKGLJ16Pf449bdgoQiyn3uXwoytdj2vD4JpFowSRX3JxSYjLgVK9LUUgqbda0iPmp3nCCc3lerDm9UsEnGQySsE8yWSGZoHpHoi4ggLhZ2z1+xZKAJ3uceHOXWOT5+4vGJxyTIIhNgJt6nOjoF6vuxPNJFivUb1VquCxl1uhSvBEaGyAfUMSKoUetO/3boNXIFgSIRyJN0hMqiK9Ulg6I36asw+ZGs9UFjQDMSnAooVAh2ePwwuMPwKjThn2SMhpNvELt4dqtqW3WWo2AylCDgdY+d8TvLdk+klKo5tmnUBA/rEkqb9Hx1r3ZGmqYoLIBNxDbmYMQIjmcKGuSbl8wpnJQvA4gahjS5lafz4eZM2fGPH7eeeclrPRxppCoxx3l3zvFTXHBxIqYbgjRhJsAi+W62qJ6SUopYaXp5DUaJU2S1mc91etktUPLZX7/SuZWseclgUZQ366JYlYduJO62e/vn59AIEgwd1yZ6mAGejihfsB4PkmlwJ1E6w4A8yUBRMOK82P6LEaOJVKT7JCMSW2RbYpaTTK+uVW58TItGD6u0sy+n0QUm/TM39YRKk/XHSdAJtyPNPLzCSFxC5yrRakkoFyhe7Uk6qEa1iTjHArjrDs1U0YH3cVDWnQ8GCRwegPMzSEfuBNe0+j7Z6DmVhpV3GKNtVZlm6SF5A033ICnn3465vFnnnkG119/fVoGNdShpp14muTRDjv+vUP0jX1z1gjF6yiVkibAnXYP3L4gNAJQUxwrJEtlehu6fQGmFSj5KMJCMmxuLZPVJI2h9/fBIwmSoYEWFYVGVb4nKeHAnfipCGo2aznzEyGE+fuun60+6btKYvpzev1sQ0omcIdu3vFMfrXF+fjZVZMwvtKMX/3XFNk6quGxRGuSqQXtAImLyyd3OJETklYAwNQEPncpogYfSgOxuWFz+1mRbbkSbtJC7dJAQrcviCBRLnCuFqUel6mmfwBS7Te1qGIgfuPlcBN39UKyuigPgiC2Het2eNnBJF+vZSknUnRaDTO1R5tc7SpSQOJBhSQNIhxMUhLzzz//PNauXYsLLhCrv3z++edoamrCt771rYgKN7/73e/SM8ohhtLJluIPBHHfP3fD4w9i/oQKzBqd2AwlNbee7AkHx8gJI2r2k7bLolqtRgDzmUZDE6fbbG5m3qw2xQrJYpMeeq0AX4Cgy+5lP0QaOq62sLmUcGH42B9EIEjYJhnf3Krs1zzY2o+TPS7k67W4ZKI63xgQqcHTTbLAoI1IfaAoBu6o0CQB4FtzRuFbc0apGIu8JpmsPxKQ+JUUDieuBF1AAKlPMva7+zKU8ylXRD4e1ZY8nOxxoa3PzRpaF+bpZL9/Ogd/kMDlC7D7gPrFNAJkvy/1YxHv77ZoIdlPtVv1xc2jx5zIJ6nUKkv6nNy6UzNldBP3eOi1YiODjn4P2vrc8AWVtUhKYZ4OTm8gVpOM0wFEDSUmPYw6DTz+INr7PBghSYfKNknPoL6+Hueeey4AoKGhAYBYDae8vBz19fXsumTNPqcT8ZKbAeD5LY3Yc6oPljwdHvv6VFVrRSP+Wqxu1qBZ6QdQKhO4I/VHKgUZlJuNqCwUfyQ0b2y4zL0pCAIqzEa09LnR2e9hQpKagJMN2gHC2ohcsJO0r1y8k3V43WPf44tGMbF61ujSuBt+NJWSiFJ6Oh9eYpL9zpSCMdT4JJMZS3Q3mI4UCwkA8c2twSBhTbqV+kkC8TUaarYfVZ7cJifV4KnWVasQMW0yaFlwjc3lZ0KSrnuhTGu4ZMiMJknbTMU/nMQ7FJoVNHhfIMhM8smYWwFxrh39HrT0iYUtgPiuE7NRh3Z40m5uFQQBtcX5aOxyoKXPNbSE5MaNGzMxjtOKeJFrNrcPT64XC3T/9KvnqBYoY8vFKLU2m5v1QaxTaGpcItN4WY1fDACmDCtiIfujy0zI08nXOKwoFIVkh8Q/Rv0HyaZ/APFbjEnzTZValAHx/Tw7mqwAgJkyPQzjwfpn9nuYn0fpcEKrqMSaW9Wtvdqx9Hv8cHrDwiBcfSn5zTqeL1iabxo3cIeZyiM1GkIImrrFkosjSuWrSSkhjXCl94acawEQN1RLng69Th9sbh/7TbEIyxS1GTYWhYICAwncofeC0yvfHi4Zn2S0JtnW50aQiMUrymUCneJRU5SPPaf60Gp1wR8SkvFMtoUKEa5hITkwM3djlyOiuMFgMKBiAhx54gXuvLmzGQ5vAOMrzfjGecPVv6dJz05079eLvrXo4uIUap7qlWzWdONOlM8lDSCJV86KVd2RhMWHcyRTN7fK+caoJmnUaeKG2sfzBe88IbbfkWv0Gw+q0TRbXUyDVzqd0+/d5QtE+FHUpICowWzUMRObVJsM58ym4pMMb3LRhUFckgAopX6SgKTaUdQBp8fhhcMbgCAkZ/YDpILJw5Lb4xXolotwpfeSeYAavDSgRcpAhKTUDBm9T/gDQeZeMKnwSUYfLKX+yGRTU+hBpLXPzQ698bRRJUvEQIsJAJJG0IMcvJP0DNxuN5566ils3LgRHR0dMa2zdu7cmbbBDVWUohwB4P/2iEWHvzl7RNImoHEVZnT2e1gOlFwEJBDuIC4tJkCbARfFqTADAF8/bzje2dMClzeAm+eOxM4tDbLXsQhXyWZNN7OaJIIFKFSjkdMk3Sr8YoCyBt9l96DZ6oIgANMS5KNGQw8iTd1OVohe6WQtmvXEqj99Lh8qC7UR4xmouZWmpDR2OdBuc2NUqJwdDeSJLiyhBrrJ+QIEHn8wwrznUnk4UWoATE2t1Za8uGZDOSpZ1R0Xsx7Uxjl8yfn4WN/POAFTaqiSVACSlnqkkc6p+CR1Wg3MRh3soUbP0nJ7bn94T43vC5Zfd+qPTCZoh1IrSQOhpvZ476OUK2n3DMzcCkgaQQ+yJpn0DG655RasXbsW3/jGNzBr1qwz2veohJLZr8/pw84mUaNZnKDIsxyTai2saDEATFIQknLFBGika0mCPDqzUYd/3yG2IorXmLRSJg2E3szxNjMlWBqB1x9Tc5ZV24mjzQDKGvzRDjF4ZHhJvuo0BEq1JQ+FRh36PX78Z38bgMjC41I0GgFF+XpYnT70OX0RFXsAJJ3DKEdFoVEUkpJ1p/6nlAKmDGHBbnP7IoSZ2sOJiVV+iTzg0Ajp6LZhahgZes2xTge7F+JpNHK/OfrvgR5OqJD0BoLocXhRZjbC6w8yS00qvmBxXCEhGXW/0nUUhPjuBfqbiV735hQiWylUkzzV62TmViVfMBBPkxy4kGR5m0NNk3z33XexZs0azJ0b29OOI6Kk0Xza0IUgEaurpHIDz59Qgee2iHVHx1eaFTWHEqpJSoqcqzW3qqVS4qsDxCCPthSr7QBAYahYMiGin0YqzNREWALKEYMNnaGuGklUH6EIgoBxVWbsarKyTh5nxYnUZEJSMga1/mA1sOLfIcHo8QeY71musEQiNBqxQlS/x49+tx+VklrTag8nSpHJtHboyBSCLiZUFUIQxNzb7lBVqvHSwUURTgMJb9b036kmtFMMOg3KzWLx/9Y+N8pC/wYAvVZIePBUHrMeLX3umMO02xtOd4qnhDBN0hOtScZ3C8SDrvGhtn72WLzvjwlJiQXIHwiyXOUB+SSLY2vJDgZJ+ySHDRuGwkLlm5Wj7BvbHcoZU5PyIceFY8tY+bo7FsQ2wKXIFTmnWmW8gt7JQCP6aI4eLSQgCKlt1nl6DahFL9rkyopsxzlVA8qaZEOHaCZNpkSXlGmSHL9ikz6uphydK+n2hROy1dbQjEdVlAZPzd0GrSblzVopV1Lt4cSkEHR1YgCaZL5By7RJQNSq4n1/chHl4XZNA+8tH+2X7JDU8E3VmqbkllGTIwkoa5Kp5EhSxlYUwKDTwOkNwOkVu9HQLjVyyAXuSIX2QHyStcwnGTa3fnasG9/+6w7851T2LJhJC8nHH38cDzzwAE6cOJGJ8ZwWME0yKsqRtsWaEqfjRzx0Wg1eu+0CfLZqIf7rXOWgnzx9bJFzaxpNfkDYZ0Q1SWpqrUyhkAAQqnmrkAai2idpks9PPUo1SQUzaSIWnh3Oq1wQ1UopmuiNj27aWo0w4ChLIDI1Aojs/pHqZq1UElBN3VZAWmg7ytzaE4psVeiTmghpi6SxFea4379ckXOaq5cOIcmK/9N1t4ULZ6SKUsoSXcfE6y5/OEklR5Ki02pwVnVYCRoX1Y0mGnrAkv7m6Hdg1GkU+4uqgWqSfS4fW5OGTjs+PtqNJnsOC8mZM2fC7XZjzJgxKCwsRGlpacR/nHB9SZvbz5zfhBDUN4vpFHLFq9Vi1GlVmTOLTZF+ybBPMk2aJC24bvcgGCQDSv+gKKWBsJwxlT7JGHNryCc5NkUhOXdsOZZNq8W04UW4e2H8mq+sfmtoDFZXeKNOh/8+ush5W594SEnFH0lRankU1mjibxNKASTM3JqCJgkAl0oKosfr+wnIt8ui/x6IyY9SE1WariNOoXu1KOVK0nWPV0gAkKSASNY9GCTMh5eKuRUA5o0rZ/+eO065KTkgbZYeXnf7AIubUyx5evb+dH+hlhNLes76qkj6iHXdddehubkZv/rVr1BVVcUDd2Qoyg9XpOl2eFBTlI+TPS70uXwwaDWYINNkNN2UFhjQbHVJhCSNbk2TJllohEZAqOqOh51eaxVy2dRgztMBfbFmP1aSLgmfJPXFOr1+NrZUfJKA6Ld76roZqq4tjhLU4aCd9BxOKqNaprXFKXSvFqXgCzVF5QH59B23L8CiblMxtwLAsmm1+M/+NnTaPfju/PhtzWQ1yTSaW6ujCgp0DiDthqLkHlBrOQl3vQmve6fdA28gCK1GSPngdN2sEfj3zlNwegK4LkHJTCoI7Rla95qiPBzpsKO1z4VxlWaWcmZJz89JFUnP4tNPP8XWrVsxbdq0TIzntECjEVBuFjsHdPaLQrK+RTS1TqwuHJAJQi3RRc6pkEyXJqnXajCsRBT+x7udOB5KjxiZomkNkCalK/jGEmzWdNMJhIozFxh1ONYpjqu0wMDWJJOETe2Rh5OB5khSaEGBjpiWaQM5nMhHY7tVrjs14Ut7I1ItsjBPl7KJ36DT4JlvxTZTkEM+BSQ90a2ApK+kLdInmUoBB4pSoJlTrZlbRpOkGle1JS9h0wQl6kpN2Hz/JfAHSUKfokXmgDXQDiBSaorzRSEZrUkaYstlZoqkV/Gss86CyzX47UtyHWaODP2Y9jUr9wnMBCVRRc7p/9MV3QoAo0IC8Xi3A8dDlVVGD0BImhWEJCsmkMDsl6fXwBDaGOjGQyNbxyoUXkg3YYERpUmmLapY3KztHrHY+sme+CUK1aCkSTKfZAKNhh4+3L4gew1N/xhZJl/CL93ImS7VFJZXCz2EUE0yLT5JhRrPVEgmqjcrPVTSQhADyZGUkqfXqgq6kfNnp/NwQoPkWkJmbhoomE1za9JC8tFHH8V9992HTZs2obu7GzabLeI/jkg4+lMUkvVMSCZX6DlVSiRFzr3+IDttpkuTBMKh4Se6HSzRflScSLhEJPJJJtJoBEFgQoqmRVB/ZKpBO8kSHbhDDyfpSP8AxDUqYFV33ExjS9WkCcQRkio6rwDiZk4PJz2h+Z5Iw7iSIWy6lGo0A8/Vo1BfOy0okA5hFPajRmmSoftfrvOGFPpbDgQJO1g2D9AfmSxy/uz+NB5OonMlqXuhKIuaZNKzuOKKKwAACxcujHic+oACgcFta5IrSDVJMWhnYJGtySItck79klqNkJYNg0I1yYOt/SxMO164eCKUipyrKfZMqQgVaKe+i4bOgaV/JEt0CogtzVHFgFjs/linAy1Wd4TGlir0xB/dpiyZw0lJgR7tNg96HWJXmFRrtqaKRcZknE6Nhvr3nN4AbC6pBp/6uisFmjlV+iTz9FqYDFo4vQH0hO43qnENVJNUC91PHN4AAkECrUZIW0F/QJor6YLHH/Zzl6auwCdNWguc79u3b0CDOZ2QRn+e6nWh1+mDXitgYnV2ckxLJBoVteOXmw1J13KMB40W3RAqiF5lMQ7I/KSkSarpJUmJNnMfHWBka7LQAB1bVHRrujRJQBT4xzod2Ha8hx0oBrJZK2mSHnY4SWxwKjEZ0G7zMA1+IIUEUkFau5UQsbUazU9NRwBJvkGLYpNYKOJAq41ZZgZi5pYLNgLUtcmilJgMcHpdLNUr25qk1O9od/tRZNIz83E6DuTSMnlUm8zXa1CQvrN+QpL+qIsvvjji7/7+frzyyit47rnnsGPHDqxYsSJtgxvKUN9Ri9XF/JETqwthTJDGkC7Cpel8LNgg1fJZSsyIqoM6ZVix7HVqUSpyHs7XS7xZS83c/kAQjSGNJtXI1mShwpClgDjTLyQnVJmx7kA73gs1ka4tykuq/Vc0yuZWdZokENueLdvmVqq1BImo1UjbqyVbilCJakserE4fth8XKwBVFBqTrkkrRTlPkgrJxOMOR7GL91miTjXpxqjTwqDTwOsPwub2iUIyA5pkq9WFk7TBQHE+BMEb72VpJeUwy48++gg33ngjampq8Nvf/haXXnopPvvss3SObUgzJmR2PNblwN5T1NRanLXPp0XOu+2etETiyVFsMkQkHs9LkFOVCHoqjW65RFs2qTW3AqKQPNnrgtcfRJ5ekzXzk7TxMiEk3HMwjWtPS4dRLXnSAE34tCRgTJ6kysAdILI9WyBIcCrUGDxbQjJPr4FeK1pJbC4f26jztKIJMB3QCNctR7sApJ7/SQkXv5CPblWlSUoOJ4SES7hl634HYiNcwz7JdATuiPNweAMszzybcwOSFJJtbW149NFHMX78eFx99dWwWCzweDx466238Oijj+L888/P1DiHHNLuEbtCRc2nDs+OPxIId+JosbojqrKkm2/PGw1ANOVeOX3YgN4rHK0nv1mr0ZakZu4j7WL9yXGV5rSameMhTUOxe/zhThEptFNSIvo+mlw7QCGZDk1S0nmmzeaGNxCEXivEbW+VTsSekmGhQ/18+Wk03NCgtM9DtWSVuvCohQoXrz8YofnS6jJqhGSppC2e0x8WsNladyC2NB3zBachcCffoEVdqTgX2kEpWyZ8imohuWzZMkycOBF79+7FH/7wB7S0tOCpp57K5NiGNNWWPJgMWviDhP2opDVAMw1N6nf5AjgcKlY8kOogSvz3zDq8s2Iu3r9nPjO5pUqhQqFs2jooUcUdIGxSbrW6cCSkaU2IUxg73eTptazGrNXpG1DPQSVGlxdEaGgXx+n7qYZCJlxSKyYAhDWaLocXjaFgqbpSU9q0ODVYJOUgqW/UnMZUgelR7oWBCskCg47VK5ZGuCZnbhXvq16HD92hxjADNQMnC6v9G/KP07lQC8VAmVQjHgIPtIqa5FlZiuugqBaS77//Pm655RY88sgj+MpXvgKtNntfwlBEEISIL7PcbMzql2vUaZl5dVvIhzKQ0mXxmDq8OC3mRKXoVncSmiQ9ZTb1OJk5clxVdvyRFCoQ22xu5isqN6cv9UYQBNy3eAK0GgFXTKrGtAFaKJTK0rmTCJiipshWq4v5gQeSM5sK0rzDsJBMX6pAdMPuC8YMrAynRiNIDijhtU8mcKe0gGqSXnS7RYk7UDNwskRbImxpNLcCwDm1kYeRs3NVSG7ZsgX9/f0477zzMHv2bPzv//4vurq6Mjm2Ic/FE8K1Jy+fVJU1kx+FOu+77OKGMZD0jGygFN0a9kkmvl2pkOyye/FFSIPPpiYJhEuY0bQfrUZIa34qAFw1fRjqH74cT/+/cwecrE83OY8/yGoNA8ml3lA/UbPVxTTJbN9v0rxDKiTTGQU5vMSE+aEasjNHlmBMGoLB5NJAqLlVzaGQapJddi+6QppktvzAlGifdn8aza0AsEBiKSk26XF2TY4KyQsuuADPPvssWltbcdttt+HVV19FbW0tgsEg1q1bh/7+/sRvcoZx04WjcFZ1Ic6pseCuS8Zl/fOjS8Rlq+pMqiSObk28aRTm6ZnWRhO+p0WZyTIN1ar2hQK2SgvSm3pDyTfE7zeoFmllFWm1o2R8wTTloLnXxaovDaSwRCpIUypoUYN0mlsB4H+/OQNPXDsdL96cnvgLuT6YyQTuULdKs9XFNMm6QdIkbW6x8g+dSzqiWwExt5y2F7xl7uismvCBFKJbCwoK8O1vfxtbtmzBvn37cN999+HRRx9FZWUlrrzyykyMEQDwy1/+EhdeeCFMJhOKi4sz9jnppMikxwf3zseaey7KqiOdIg3wKDTq0hphmQlodKtiFxCVfhap72hEqSnr86ZCcvuJ3oi/cxWdVsM2ZKnJVW3tViCsSTq8AXx+rBtA9go4UKQpFT12qkmmtzKLJU+Pq6YPS0tnEfp+QKS5NRmfJBWIp6wudLkjH8sW0tJ0Hn8Q3kAw9Hh6NElBEPD3W2bjw5XzseLS7CsbA6q0PXHiRDz22GM4deoUXnnllXSNSRav14urr74ad9xxR0Y/53Ti3BFhH8rsMaU537GFFmy2e8O1KIHkfGMAMFfS6mfxOVVpHKE6aCmtdJSMyxZyEa6uJIoJ5OnDPnCaaD8pSyUYKdL6rb0Z0iTTjVyz6GQ0SXY48QRwPNRjcVSWoz/NEp82nYdGCHcpSQcGnQbjKgsHZQ9LSzsKrVaL5cuX45133knH28nyyCOP4Pvf/z6mTJmSsc843Zg6vAiXTKyAQafBzXNHD/ZwEkJ9G4SENwoguShLALh6Zh3OH1WCycMsuDVBi6VMEF3tZGgIyViNxqGyhihlqiR6e0x5QdrMbWopkeQGd9nT75PMBHI+SVcSKSB5ei2zlPiCogA5a4BRt8kizZOkZu5iU2ZcDINBjt9CA8Pj8cDj8bC/aQF2n88Hn8+n9LK40Nel+vps85frp8PrD8Ko1yY95mzPVQsCjSBWTem1u2DQ5IEQwjQanRBUNRajBnj5lrDPSM1r0jnXceWRQnJ4sTGn7he5uZpDWrzV7oHPJxZCoAcVo5aoGv+MOgs+PNgOQCwske05V4bUxmarizVHLjaoG/tgYTaKekqvQ7LuofvdoFE39lFlJpaPW1eSD6PK16ULk14Uhn0uLzr6ROtJiUmfsTGk47eazGtPayG5evVqPPLIIzGPr127FibTwE7369atG9DrhxLZnKtRo4UrIGDNug2oygf8QSAQFG/TTzZtQJoC5hRJx1wJAfQaLTvZ9x3bizXtewf8vulGOle3TQNAg0++2AHfcQJ/EPAnue7FPqDYoEWAAHXuY1iz5liGRi7PcRsA6HC0pQdWLwAIKDbm9m+19ZQAQIsDRxqxJtgAbwAgRFzsjzeuh1GF8cTiFb87AKjVObBmzZrMDViGI93iHE62dmL9lnYAWsBtz/g4BvK9Op1O1dcOqpD80Y9+hF//+tdxrzl48CDOOuuslN5/1apVWLlyJfvbZrOhrq4OixcvhsWSmknC5/Nh3bp1uOyyy6DX57jDY4AMxlwfPfARXH1unDd7LqYOLxJ9S59vAgBc9ZUrUm4km4h0z3WDcx/e2duKqkIjbv76ZVmPyIuH3Fz/078Hh/raMXriOVg6Z6SYQhFa9+VfXaJ6/Fd9JQgQAmMWk9kpLVYXntz/MXq94lh1GgGFeuT0b7X7syasOXkIRRU1WLp0GrodXuCLTQCAq76yRJXJcnyHHZv/uBWBYBB3LT0Pc8YNrLhEsliOduPFL3dAbyrEiAnDgSOHMH5ENZYunZaRz0vHbzWZto6DKiTvu+8+3HTTTXGvGTMmdZ+S0WiE0Rgb2ajX6wf8o0nHewwVsjlXmo7gCYif6w2KZhGjToP8vMxHqaZrrg9dOQkjygqwfMYw5BnTmyOZLqRzLQr581w+ErHueXpNUuMfzJ/EsFItM9cDYq1ijeDL6d9qqVmMfO73+KHX6+GTrLtR5bqfM6wE/759Nj7ZsgVzxlVkfa4lZtoIPIC+UPpHeaEx4+MYyPeazOsGVUhWVFSgoiK7px5ObsMi5UJBI6xLe5o6OWSLMrMRP7h84mAPQzVmo8K6pzFCMdPotBrUFOWz/FgxytM+uINKQHSepCMUtGNO8n4/p8aC44OUBk2Dj3ocXlETRrjIwenAkPkFNDU1oaenB01NTQgEAti9ezcAYNy4cTCbs5uPxckc0VV3whGWvAxiJokuUk2LCgy1w8mUYUVMSE6oMgPoGNwBJSA6T7Kf9WLMTc1XDlru0uULoLFLLCRRNsA6zrlEZhw8GeDBBx/EjBkz8NBDD8Fut2PGjBmYMWMGtm/fPthD46QRVnVnCGs0QxFp1RQguU4UucSMEcXhf2e50lIqWKJSQOghJVlNcjDJN2hZk/cdoQIaVRmqEz0YDBkh+dJLL4EQEvPfggULBntonDRSECUkmSapJsyPkzLSqilAuBPLUNMkv37ecEyqtWDW6FIsPCv3XTnUVGkL9R8Na5JDa91pAQ1PqPZvtpo+Z4Oh9U1wTnui67dyTTI7RHcCcQxRc2u52Yj37r4IwNDIZabm1iARKxXZhqiQrC3OY62sgNNLSA4ZTZJzZhDjkxyiZr+hRnRZOmpuLeDrnlHy9BrotWKah83lY4dDc5p6MWaLYZLa1AUGLdOQTwe4kOTkFDHRrUPU7DfUsEQF7jiSKLLNSR1BENja97l8bP2HmiYpbUB9Tq0l5+tEJwMXkpycooBrkoMC6y7vjvQFm7kvOONI/ZJD1Sc5c1Sp7L9PB4bWN8E57SlUim7lmmRGoYE7Dm8AgSBhgTsmvu4Zp5D1wfQPWU1yXKUZKy4Zh/qWPnx7CDRTSIah9U1wTnvC0a3iJs3zJLNDRONltx92z9BLRRiq0C4afS4fOxwOpTxJylAqnpEM3NzKySlYT8nQiZpHt2YHg04Do07cDmxuH8vbO50CMHIVi8TcStd9qGmSpzNcSHJyCtpTkpr77DxPMmtIcyWtTi4kswXzSbp9YmF5AKWnUcWaoQ4XkpycgmmSIeFIT9bZbuB7JmKR5EpyTTJ7sNJ0Lj96Q4cTLiRzBy4kOTkFTQFxeP0IBglsfLPOGtJcSb7u2YMWObc6vbA6uSaZa3AhyckpaKAIIYDTF2CbtYVv1hmHmVs9XJPMJlSTbOpxsjZfJSYuJHMFLiQ5OUW+XuwJCIhRlrRMF9+sMw/VJHsdPlZMgK975qFrTDtoFObpoM9Qc3FO8vBvgpNTCIKA4tApusvuYb5JvllnHiokW0KtpgCuwWcD2jGD9mKsMJ8+vRhPB7iQ5OQc1B9zvNvBHuMh8ZmHmltP9jrFv406aDWnT3mxXKWuNLIYeG3x6VMc/HSAC0lOzsGEZMj8VGDQcvNTFqDrfqitX/zbzP1i2aCqMI8VOQfEjhqc3IHvPJycozy0OR8LCUlu8ssOdHM+0S1qkqdT49xcRqMRUFdiYn+PLCsYxNFwouFCkpNzUI3mWKcoJLk/MjvUFkWa+biQzB5Thxexf08ZVhTnSk624UKSk3OUFoiBC4faxCauFYU8kCEbRPvCqvi6Z43LJ1UDAEpMepw3smSQR8ORwqMhODkHNbe6fUEAQGUh12iyQZUlD4Ig5qgCQHURX/dssWRKDf727VmoLc7nHW9yDP5tcHKOaDNflYVrNNnAoNOgrsSEph7RJzmhqnCQR3RmMX9CxWAPgSMDN7dyco4RpaaIv7lvLHtMqytm/55Ua1G+kMM5Q+BCkpNzRAvJGm72yxq3XjQaFYVG3DJvNMp4UjuHw82tnNyjwKhDaYGBtQ06u4ZrNNli6vBibPufRYM9DA4nZ+CaJCcnuWBMKQCx6sswXoGEw+EMElyT5OQk919+Fow6LZZNq4GGl0bjcDiDBBeSnJxkdHkBfn/N9MEeBofDOcPh5lYOh8PhcBTgQpLD4XA4HAW4kORwOBwORwEuJDkcDofDUeCMCtwhoaKUNpst5ffw+XxwOp2w2WzQ60/v7hR8rqcnZ8pcz5R5AnyuyUJlAJUJ8TijhGR/v9hMtq6ubpBHwuFwOJzBpr+/H0VF8VuTCUSNKD1NCAaDaGlpQWFhIQQhtdw7m82Guro6nDx5EhbL6V0Jhs/19ORMmeuZMk+AzzVZCCHo7+9HbW0tNJr4XsczSpPUaDQYPnx4Wt7LYrGc9jcjhc/19ORMmeuZMk+AzzUZEmmQFB64w+FwOByOAlxIcjgcDoejABeSSWI0GvHQQw/BaDz92wjxuZ6enClzPVPmCfC5ZpIzKnCHw+FwOJxk4Jokh8PhcDgKcCHJ4XA4HI4CXEhyOBwOh6MAF5IcDofD4SjAhWSS/PGPf8SoUaOQl5eH2bNn44svvhjsISXFww8/DEEQIv4766yz2PNutxt33XUXysrKYDab8fWvfx3t7e0R79HU1ISvfOUrMJlMqKysxP333w+/35/tqcTw0UcfYdmyZaitrYUgCHjrrbcinieE4MEHH0RNTQ3y8/OxaNEiHDlyJOKanp4eXH/99bBYLCguLsYtt9wCu90ecc3evXtx0UUXIS8vD3V1dXjssccyPbUYEs31pptuivmer7jiiohrhsJcV69ejfPPPx+FhYWorKzE8uXLcfjw4Yhr0nXPbtq0Ceeeey6MRiPGjRuHl156KdPTi0DNXBcsWBDzvd5+++0R1+T6XJ9++mlMnTqVFQOYM2cO3n//ffZ8zn2fhKOaV199lRgMBvLCCy+Q/fv3k1tvvZUUFxeT9vb2wR6aah566CEyadIk0trayv7r7Oxkz99+++2krq6OrF+/nmzfvp1ccMEF5MILL2TP+/1+MnnyZLJo0SKya9cusmbNGlJeXk5WrVo1GNOJYM2aNeR//ud/yBtvvEEAkDfffDPi+UcffZQUFRWRt956i+zZs4dceeWVZPTo0cTlcrFrrrjiCjJt2jTy2WefkY8//piMGzeOXHfddez5vr4+UlVVRa6//npSX19PXnnlFZKfn0/+8pe/ZGuahJDEc73xxhvJFVdcEfE99/T0RFwzFOZ6+eWXkxdffJHU19eT3bt3k6VLl5IRI0YQu93OrknHPXvs2DFiMpnIypUryYEDB8hTTz1FtFot+eCDD3JqrhdffDG59dZbI77Xvr6+ITXXd955h7z33nvkyy+/JIcPHyY//vGPiV6vJ/X19YSQ3Ps+uZBMglmzZpG77rqL/R0IBEhtbS1ZvXr1II4qOR566CEybdo02eesVivR6/Xk9ddfZ48dPHiQACBbt24lhIibs0ajIW1tbeyap59+mlgsFuLxeDI69mSIFhzBYJBUV1eT3/zmN+wxq9VKjEYjeeWVVwghhBw4cIAAINu2bWPXvP/++0QQBNLc3EwIIeRPf/oTKSkpiZjrAw88QCZOnJjhGSmjJCSvuuoqxdcM1bl2dHQQAGTz5s2EkPTdsz/84Q/JpEmTIj7rmmuuIZdffnmmp6RI9FwJEYXkPffco/iaoTrXkpIS8txzz+Xk98nNrSrxer3YsWMHFi1axB7TaDRYtGgRtm7dOogjS54jR46gtrYWY8aMwfXXX4+mpiYAwI4dO+Dz+SLmeNZZZ2HEiBFsjlu3bsWUKVNQVVXFrrn88sths9mwf//+7E4kCRobG9HW1hYxt6KiIsyePTtibsXFxZg5cya7ZtGiRdBoNPj888/ZNfPnz4fBYGDXXH755Th8+DB6e3uzNBt1bNq0CZWVlZg4cSLuuOMOdHd3s+eG6lz7+voAAKWlpQDSd89u3bo14j3oNYP5246eK+Uf//gHysvLMXnyZKxatQpOp5M9N9TmGggE8Oqrr8LhcGDOnDk5+X2eUQXOB0JXVxcCgUDEFwMAVVVVOHTo0CCNKnlmz56Nl156CRMnTkRrayseeeQRXHTRRaivr0dbWxsMBgOKi4sjXlNVVYW2tjYAQFtbm+wa0OdyFTo2ubFL51ZZWRnxvE6nQ2lpacQ1o0ePjnkP+lxJSUlGxp8sV1xxBf7rv/4Lo0ePRkNDA3784x9jyZIl2Lp1K7Ra7ZCcazAYxL333ou5c+di8uTJbBzpuGeVrrHZbHC5XMjPz8/ElBSRmysAfPOb38TIkSNRW1uLvXv34oEHHsDhw4fxxhtvxJ0HfS7eNdmc6759+zBnzhy43W6YzWa8+eabOOecc7B79+6c+z65kDzDWLJkCfv31KlTMXv2bIwcORL//Oc/s74RcDLHtddey/49ZcoUTJ06FWPHjsWmTZuwcOHCQRxZ6tx1112or6/Hli1bBnsoGUdprt/97nfZv6dMmYKamhosXLgQDQ0NGDt2bLaHmTITJ07E7t270dfXh3/961+48cYbsXnz5sEelizc3KqS8vJyaLXamCir9vZ2VFdXD9KoBk5xcTEmTJiAo0ePorq6Gl6vF1arNeIa6Ryrq6tl14A+l6vQscX7/qqrq9HR0RHxvN/vR09Pz5Cf/5gxY1BeXo6jR48CGHpzXbFiBd59911s3Lgxot1duu5ZpWssFkvWD49Kc5Vj9uzZABDxvQ6FuRoMBowbNw7nnXceVq9ejWnTpuGJJ57Iye+TC0mVGAwGnHfeeVi/fj17LBgMYv369ZgzZ84gjmxg2O12NDQ0oKamBueddx70en3EHA8fPoympiY2xzlz5mDfvn0RG+y6detgsVhwzjnnZH38ahk9ejSqq6sj5maz2fD5559HzM1qtWLHjh3smg0bNiAYDLLNaM6cOfjoo4/g8/nYNevWrcPEiRNzxtQqx6lTp9Dd3Y2amhoAQ2euhBCsWLECb775JjZs2BBj/k3XPTtnzpyI96DXZPO3nWiucuzevRsAIr7XoTDXaILBIDweT25+n8nHIZ25vPrqq8RoNJKXXnqJHDhwgHz3u98lxcXFEVFWuc59991HNm3aRBobG8knn3xCFi1aRMrLy0lHRwchRAy/HjFiBNmwYQPZvn07mTNnDpkzZw57PQ2/Xrx4Mdm9ezf54IMPSEVFRU6kgPT395Ndu3aRXbt2EQDkd7/7Hdm1axc5ceIEIURMASkuLiZvv/022bt3L7nqqqtkU0BmzJhBPv/8c7JlyxYyfvz4iLQIq9VKqqqqyA033EDq6+vJq6++SkwmU9ZTQOLNtb+/n/zgBz8gW7duJY2NjeTDDz8k5557Lhk/fjxxu91Daq533HEHKSoqIps2bYpIe3A6neyadNyzNGXg/vvvJwcPHiR//OMfs54CkmiuR48eJT/72c/I9u3bSWNjI3n77bfJmDFjyPz584fUXH/0ox+RzZs3k8bGRrJ3717yox/9iAiCQNauXUsIyb3vkwvJJHnqqafIiBEjiMFgILNmzSKfffbZYA8pKa655hpSU1NDDAYDGTZsGLnmmmvI0aNH2fMul4vceeedpKSkhJhMJvK1r32NtLa2RrzH8ePHyZIlS0h+fj4pLy8n9913H/H5fNmeSgwbN24kAGL+u/HGGwkhYhrIT3/6U1JVVUWMRiNZuHAhOXz4cMR7dHd3k+uuu46YzWZisVjIzTffTPr7+yOu2bNnD5k3bx4xGo1k2LBh5NFHH83WFBnx5up0OsnixYtJRUUF0ev1ZOTIkeTWW2+NOcwNhbnKzREAefHFF9k16bpnN27cSKZPn04MBgMZM2ZMxGdkg0RzbWpqIvPnzyelpaXEaDSScePGkfvvvz8iT5KQ3J/rt7/9bTJy5EhiMBhIRUUFWbhwIROQhOTe98lbZXE4HA6HowD3SXI4HA6HowAXkhwOh8PhKMCFJIfD4XA4CnAhyeFwOByOAlxIcjgcDoejABeSHA6Hw+EowIUkh8PhcDgKcCHJ4XA4HI4CXEhyOAPkpptuwvLlywft82+44Qb86le/GrTPV8uCBQtw7733puW9Dhw4gOHDh8PhcKTl/TgcJbiQ5HDiIAhC3P8efvhhPPHEE3jppZcGZXx79uzBmjVrcPfddw/K5w8W55xzDi644AL87ne/G+yhcE5zeD9JDicOra2t7N+vvfYaHnzwQRw+fJg9ZjabYTabB2NoAICnnnoKV1999aCOYbC4+eabceutt2LVqlXQ6fhWxskMXJPkcOJQXV3N/isqKoIgCBGPmc3mGHPrggUL8L3vfQ/33nsvSkpKUFVVhWeffRYOhwM333wzCgsLMW7cOLz//vsRn1VfX48lS5bAbDajqqoKN9xwA7q6uhTHFggE8K9//QvLli2LePxPf/oTxo8fj7y8PFRVVeEb3/gGe+6DDz7AvHnzUFxcjLKyMnz1q19FQ0MDe/748eMQBAH//Oc/cdFFFyE/Px/nn38+vvzyS2zbtg0zZ86E2WzGkiVL0NnZyV5H1+CRRx5BRUUFLBYLbr/9dni9XsXxezwe/OAHP8CwYcNQUFCA2bNnY9OmTez5EydOYNmyZSgpKUFBQQEmTZqENWvWsOcvu+wy9PT05GyzXs7pAReSHE4G+Otf/4ry8nJ88cUX+N73voc77rgDV199NS688ELs3LkTixcvxg033ACn0wkAsFqtuPTSSzFjxgxs374dH3zwAdrb2/Hf//3fip+xd+9e9PX1YebMmeyx7du34+6778bPfvYzHD58GB988AHmz5/Pnnc4HFi5ciW2b9+O9evXQ6PR4Gtf+xqCwWDEez/00EP4yU9+gp07d0Kn0+Gb3/wmfvjDH+KJJ57Axx9/jKNHj+LBBx+MeM369etx8OBBbNq0Ca+88greeOMNPPLII4rjX7FiBbZu3YpXX30Ve/fuxdVXX40rrrgCR44cAQDcdddd8Hg8+Oijj7Bv3z78+te/jtCYDQYDpk+fjo8//ljFN8LhpEhKvUM4nDOQF198kRQVFcU8fuONN5KrrrqK/X3xxReTefPmsb/9fj8pKCggN9xwA3ustbWVACBbt24lhBDy85//nCxevDjifU+ePEkAxLTzorz55ptEq9WSYDDIHvv3v/9NLBYLsdlsqubU2dlJAJB9+/YRQghpbGwkAMhzzz3HrnnllVcIALJ+/Xr22OrVq8nEiRMj1qC0tJQ4HA722NNPP03MZjMJBAJsXe655x5CCCEnTpwgWq2WNDc3R4xn4cKFrC/glClTyMMPPxx3/F/72tfITTfdpGquHE4qcE2Sw8kAU6dOZf/WarUoKyvDlClT2GNVVVUAwLqr79mzBxs3bmQ+TrPZjLPOOgsAIsyhUlwuF4xGIwRBYI9ddtllGDlyJMaMGYMbbrgB//jHP5i2CgBHjhzBddddhzFjxsBisWDUqFEAgKamJsXx07FGj1/aGR4Apk2bBpPJxP6eM2cO7HY7Tp48GTP2ffv2IRAIYMKECRFz3rx5M5vv3XffjV/84heYO3cuHnroIezduzfmffLz8yPmx+GkG+7t5nAygF6vj/hbEISIx6hgo2ZOu92OZcuW4de//nXMe9XU1Mh+Rnl5OZxOJ7xeLwwGAwCgsLAQO3fuxKZNm7B27Vo8+OCDePjhh7Ft2zYUFxdj2bJlGDlyJJ599lnU1tYiGAxi8uTJMb5DubFGPxZtok0Gu90OrVaLHTt2QKvVRjxHTarf+c53cPnll+O9997D2rVrsXr1ajz++OP43ve+x67t6enB2LFjUx4Hh5MIrklyODnAueeei/3792PUqFEYN25cxH8FBQWyr5k+fToAMWdQik6nw6JFi/DYY49h7969OH78ODZs2IDu7m4cPnwYP/nJT7Bw4UKcffbZ6O3tTdsc9uzZA5fLxf7+7LPPYDabUVdXF3PtjBkzEAgE0NHRETPf6upqdl1dXR1uv/12vPHGG7jvvvvw7LPPRrxPfX09ZsyYkbY5cDjRcCHJ4eQAd911F3p6enDddddh27ZtaGhowH/+8x/cfPPNCAQCsq+pqKjAueeeiy1btrDH3n33XTz55JPYvXs3Tpw4gb/97W8IBoOYOHEiSkpKUFZWhmeeeQZHjx7Fhg0bsHLlyrTNwev14pZbbsGBAwewZs0aPPTQQ1ixYgU0mthtZsKECbj++uvxrW99C2+88QYaGxvxxRdfYPXq1XjvvfcAAPfeey/+85//oLGxETt37sTGjRtx9tlns/c4fvw4mpubsWjRorTNgcOJhgtJDicHqK2txSeffIJAIIDFixdjypQpuPfee1FcXCwrZCjf+c538I9//IP9XVxcjDfeeAOXXnopzj77bPz5z3/GK6+8gkmTJkGj0eDVV1/Fjh07MHnyZHz/+9/Hb37zm7TNYeHChRg/fjzmz5+Pa665BldeeSUefvhhxetffPFFfOtb38J9992HiRMnYvny5di2bRtGjBgBQExxueuuu3D22WfjiiuuwIQJE/CnP/2Jvf6VV17B4sWLMXLkyLTNgcOJRiCEkMEeBIfDSQ2Xy4WJEyfitddew5w5cwZtHDfddBOsViveeuutrHye1+vF+PHj8fLLL2Pu3LlZ+UzOmQnXJDmcIUx+fj7+9re/xS06cDrS1NSEH//4x1xAcjIOj27lcIY4CxYsGOwhZB0a5MPhZBpubuVwOBwORwFubuVwOBwORwEuJDkcDofDUYALSQ6Hw+FwFOBCksPhcDgcBbiQ5HA4HA5HAS4kORwOh8NRgAtJDofD4XAU4EKSw+FwOBwF/n+Xc09l/zyYRgAAAABJRU5ErkJggg==\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "# Melodies\n", "\n", "We're ready to play a melody! To enter it, it's more convenient to use the names of the notes, so let's write a helper function for that:" ], "metadata": { "id": "9aY7psYHfKkb" } }, { "cell_type": "code", "source": [ "def get_frequency_by_name(name):\n", " if name == \".\":\n", " return 0 # silence\n", " if \"b\" in name:\n", " note = \"A Bb B C Db D Eb E F Gb G Ab\".split().index(name[:-1])\n", " else:\n", " note = \"A A# B C C# D D# E F F# G G#\".split().index(name[:-1])\n", " octave = int(name[-1:])\n", " return get_frequency(note, octave)" ], "metadata": { "id": "xutEKeaANnow" }, "execution_count": 13, "outputs": [] }, { "cell_type": "code", "source": [ "def get_melody_wave(melody, waveform=sine_wave, tempo=120):\n", " frequencies = [get_frequency_by_name(note) for note in melody.split()]\n", " duration = 60 / tempo / 4\n", " return np.concatenate([\n", " fade(waveform(freq, 1.0, duration))\n", " for freq in frequencies\n", " ])" ], "metadata": { "id": "pQFeV2lHCYt2" }, "execution_count": 14, "outputs": [] }, { "cell_type": "markdown", "source": [ "Now let's play the melody:" ], "metadata": { "id": "sCoZyIqFWrGJ" } }, { "cell_type": "code", "source": [ "melody = (\n", " \"C3 E3 G3 C4 E4 G3 C4 E4 \"\n", " \"C3 E3 G3 C4 E4 G3 C4 E4 \"\n", " \"C3 D3 A4 D4 F4 A4 D4 F4 \"\n", " \"C3 D3 A4 D4 F4 A4 D4 F4 \"\n", " \"B3 D3 G3 D4 F4 G3 D4 F4 \"\n", " \"B3 D3 G3 D4 F4 G3 D4 F4 \"\n", " \"C3 E3 G3 C4 E4 G3 C4 E4 \"\n", " \"C3 E3 G3 C4 E4 G3 C4 E4 \"\n", ")\n", "\n", "melody_wave = get_melody_wave(melody)\n", "play_wave(melody_wave)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 75 }, "id": "IEkrHZOROmum", "outputId": "31b59079-3a41-4e6c-f6c8-fefdbc79878e" }, "execution_count": 15, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " " ] }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "In case you're wondering, this is Bach's Well-Tempered Clavier, Book 1: Prelude No. 1 in C Major, BWV 846." ], "metadata": { "id": "DX2LyPVMdtcA" } }, { "cell_type": "markdown", "source": [ "# Bass Sound With Square Waves\n", "\n", "We can also generate different types of sounds, for example a square wave:" ], "metadata": { "id": "w79Ror2Xe3xf" } }, { "cell_type": "code", "source": [ "def square_wave(freq, amplitude, duration):\n", " num_samples = round(sample_rate * duration)\n", " if freq == 0: # in case we just want silence\n", " return np.zeros(num_samples)\n", " t = np.linspace(0, duration, num_samples)\n", " phase = freq * t\n", " is_positive_half = (phase - np.floor(phase)) < 0.5\n", " return amplitude * (2 * is_positive_half - 1)" ], "metadata": { "id": "mZ40s3h_Db3K" }, "execution_count": 16, "outputs": [] }, { "cell_type": "code", "source": [ "square_wave_A2 = fade(square_wave(get_frequency(0, 2), 0.2, 1.0))\n", "play_wave(square_wave_A2)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 75 }, "id": "f6DdyqsqK98v", "outputId": "e1ed2efa-bc11-4404-8fc6-475c8dc1cfe1" }, "execution_count": 17, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " " ] }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "Here's what the square wave looks like:" ], "metadata": { "id": "ecb7oZqieHAT" } }, { "cell_type": "code", "source": [ "plot_wave(square_wave_A2[500:2500], \"Square wave\")" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 256 }, "id": "l3TeYLADd9Ag", "outputId": "71ee5e5d-0df0-41c7-cc99-68de4699a5b5" }, "execution_count": 18, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "Let's use it to define a funky little bass:" ], "metadata": { "id": "WA6FNNirVOV0" } }, { "cell_type": "code", "source": [ "bass = (\n", " \"C2 . C2 C2 C1 . . C1 \"\n", " \"C2 . C2 C2 C1 . . C1 \"\n", " \"D2 . D2 D2 D1 . . D1 \"\n", " \"D2 . D2 D2 D1 . . D1 \"\n", " \"G1 . G1 G1 . G1 . G1 \"\n", " \"G1 . G1 G1 . G1 . G1 \"\n", " \"C2 . C2 C2 C1 . . C1 \"\n", " \"C2 . C2 C2 C1 . C1 C1 \"\n", ")\n", "\n", "bass_wave = get_melody_wave(bass, waveform=square_wave)\n", "play_wave(bass_wave)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 75 }, "id": "--FnKbqVSVDd", "outputId": "cf9df213-bac5-4da7-e80a-4b9bd82f5615" }, "execution_count": 19, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " " ] }, "metadata": {} } ] }, { "cell_type": "code", "source": [ "plot_wave(bass_wave[:80_000], \"Funky Bass Line\")" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 256 }, "id": "4CddrlrbfAp8", "outputId": "7cfd44a0-4595-485b-89b6-babe66fe6143" }, "execution_count": 20, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "# Sound Effect — Echo\n", "\n", "How about we add some echo?" ], "metadata": { "id": "TyusKiyLXc5Q" } }, { "cell_type": "code", "source": [ "from math import ceil, log\n", "\n", "def apply_echo(wave, freq, decay, min_amplitude=0.01):\n", " repeats = ceil(log(min_amplitude) / log(decay))\n", " echo_interval_samples = round(sample_rate / freq)\n", " samples_with_echo = len(wave) + repeats * echo_interval_samples\n", " output = np.zeros(samples_with_echo)\n", " amplitude = 1.0\n", " for i in range(0, samples_with_echo - len(wave), echo_interval_samples):\n", " output[i:i+len(wave)] += wave * amplitude\n", " amplitude *= decay\n", "\n", " return output" ], "metadata": { "id": "WRuWBayafwcU" }, "execution_count": 21, "outputs": [] }, { "cell_type": "code", "source": [ "bass_with_echo = apply_echo(bass_wave, 1.333, 0.5)\n", "play_wave(bass_with_echo)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 75 }, "id": "QmtgqYWngWnq", "outputId": "1d20e55f-bafc-4c91-d9a6-789de7caa3c4" }, "execution_count": 22, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " " ] }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "We can see the echo added on top of the bass:" ], "metadata": { "id": "nVKlxcyZegx7" } }, { "cell_type": "code", "source": [ "plot_wave(bass_with_echo[:80_000], \"Bass with echo\")" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 256 }, "id": "A26RYPTZeRIQ", "outputId": "e0b89d67-cf8c-483e-c601-129572666f9d" }, "execution_count": 23, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "iVBORw0KGgoAAAANSUhEUgAAAc0AAADvCAYAAACQVo+UAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAARd1JREFUeJzt3XlYE9f+P/D3ZCUQQpBNUcQNQXFfUCtqq7hXa3trvdZr1a761arV21rvbV16f1a72cVWe6tVu2qXa72t4kJd6nKtdUfUorYoFkVUZIckJOf3B2UkEiAJOUkmfF7Pw/NMhsnMZybJfOacOXOOwBhjIIQQQkidZJ4OgBBCCJEKSpqEEEKInShpEkIIIXaipEkIIYTYiZImIYQQYidKmoQQQoidKGkSQgghdqKkSQghhNiJkiYhhBBiJ0qahDQAixYtgiAIDi178+ZNzlHVbf369RAEAUePHvV0KIQAoKRJGrjKk3LVv/DwcNx3333Ytm2bp8Pj6tVXX8XmzZs9HQYhkkJJkxAAr7zyCj777DN8+umneOGFF3Djxg2MGDECW7Zs8XRoLvHSSy+htLTUah4lTUIcp/B0AIR4g+HDh6NHjx7i6yeeeAIRERHYsGED7r//fg9G5hoKhQIKBf3cCakvKmkSYoNer4dGo6mWaN58803cc889CAkJgUajQffu3fHtt99We39KSgoSExOh1+uh1WoRGxuLf/zjH1bLrFixAvHx8fD390dwcDB69OiBL7/8ssaYGGMIDQ3FnDlzxHkWiwV6vR5yuRx5eXni/Ndeew0KhQJFRUUAqt/TFAQBxcXF+OSTT8Rq6cmTJ1ttLy8vD5MnT4Zer0dQUBCmTJmCkpKSOo8dABw+fBjDhg1DUFAQ/P39MWDAABw8eLDacllZWXjiiScQGRkJtVqNli1bYtq0aTAajVbLGQwGzJkzB2FhYQgICMCDDz6IGzduVFvfypUrER8fD7VajcjISEyfPt3quBBSX3TpSQiA/Px83Lx5E4wx5OTkYMWKFSgqKsLf/vY3q+XeffddjB49GhMmTIDRaMTGjRsxduxYbNmyBSNHjgQAnDlzBvfffz86deqEV155BWq1GhcvXrRKGqtXr8bMmTPx8MMPY9asWSgrK0NqaioOHz6MRx991GaMgiCgb9++2LdvnzgvNTUV+fn5kMlkOHjwoBjD/v370bVrV2i1Wpvr+uyzz/Dkk08iISEBTz/9NACgdevWVss88sgjaNmyJZYuXYrjx49jzZo1CA8Px2uvvVbrsdy9ezeGDx+O7t27Y+HChZDJZFi3bh0GDhyI/fv3IyEhAQBw9epVJCQkIC8vD08//TTi4uKQlZWFb7/9FiUlJVCpVOI6n332WQQHB2PhwoW4dOkS3nnnHcyYMQNfffWVuMyiRYuwePFiJCUlYdq0aUhPT8eqVatw5MgRHDx4EEqlsta4CbELI6QBW7duHQNQ7U+tVrP169dXW76kpMTqtdFoZB06dGADBw4U57399tsMALtx40aN233ggQdYfHy8w/G+8cYbTC6Xs4KCAsYYY++99x6Ljo5mCQkJbN68eYwxxsxmM9Pr9ey5554T37dw4UJ29889ICCATZo0qdo2Kpd9/PHHreY/+OCDLCQkpNb4LBYLi4mJYUOHDmUWi0WcX1JSwlq2bMkGDx4sznvssceYTCZjR44csbkexu58PklJSVbre+6555hcLmd5eXmMMcZycnKYSqViQ4YMYWazWVzu/fffZwDY2rVra42bEHtR9SwhAD744AOkpKQgJSUFn3/+Oe677z48+eST2LRpk9VyGo1GnL59+zby8/PRr18/HD9+XJyv1+sBAP/9739hsVhsbk+v1+OPP/7AkSNHHIqzX79+MJvN+N///gegokTZr18/9OvXD/v37wcApKWlIS8vD/369XNo3XebOnVqtW3funULBQUFNb7n5MmTuHDhAh599FHcunULN2/exM2bN1FcXIxBgwZh3759sFgssFgs2Lx5M0aNGmV1L7nS3Y/HPP3001bzKo/D5cuXAQA//vgjjEYjZs+eDZnszmntqaeegk6nw9atW506BoTcjZImIQASEhKQlJSEpKQkTJgwAVu3bkX79u0xY8YMq/trW7ZsQe/eveHn54dGjRohLCwMq1atQn5+vrjMuHHj0LdvXzz55JOIiIjAX//6V3z99ddWCXTevHnQarVISEhATEwMpk+fbvOe3926desGf39/MUFWJs3+/fvj6NGjKCsrE/+XmJhYr2PSvHlzq9fBwcEAKi4WanLhwgUAwKRJkxAWFmb1t2bNGhgMBuTn5+PGjRsoKChAhw4dXBJLZfKMjY21Wk6lUqFVq1bi/wmpL0qahNggk8lw33334dq1a2Ii2L9/P0aPHg0/Pz+s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\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "# Multiple Tracks\n", "\n", "Hey, why don't we play the melody and bass together?" ], "metadata": { "id": "mvHkaeILVRnE" } }, { "cell_type": "code", "source": [ "melody_and_bass = bass_with_echo.copy()\n", "melody_and_bass[:len(melody_wave)] += melody_wave\n", "play_wave(melody_and_bass)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 75 }, "id": "X4ZeCF9CTCXB", "outputId": "e700f9d6-8083-4a99-d574-c0a677dd29d9" }, "execution_count": 24, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " " ] }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "That was pretty nice! Now we can apply some sound effects." ], "metadata": { "id": "hVU0FofJYUhg" } }, { "cell_type": "markdown", "source": [ "You can try other types of sounds if you want, such as triangle waves:" ], "metadata": { "id": "n6vC6A33flIB" } }, { "cell_type": "code", "source": [ "def triangle_wave(freq, amplitude, duration):\n", " t = np.linspace(0, duration, round(sample_rate * duration))\n", " phase = freq * t\n", " phi_frac = phase - np.floor(phase)\n", " phi_scaled = phi_frac * 2\n", " abs_dev = np.abs(phi_scaled - 1)\n", " wave = 2 * abs_dev - 1\n", " return amplitude * wave\n", "\n", "triangle_bass_wave = get_melody_wave(bass, triangle_wave)\n", "play_wave(triangle_bass_wave)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 75 }, "id": "HwK2J_VJCo1n", "outputId": "a7412c82-de38-4589-d6bb-e903d0d224e6" }, "execution_count": 25, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " " ] }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "# Sound Effect — Vibrato" ], "metadata": { "id": "YoueA_ktWrb7" } }, { "cell_type": "markdown", "source": [ "There's an endless world of sound effects we can implement. For example, let's implement a vibrato effect:" ], "metadata": { "id": "Yuf5Me2cXYoc" } }, { "cell_type": "code", "source": [ "def apply_vibrato(wave, freq, depth):\n", " duration = len(wave) / sample_rate\n", " amplitude = sine_wave(freq, 1, duration)\n", " return wave * (1 + depth * amplitude)\n", "\n", "for depth in [0.2, 0.4, 0.6, 0.8, 1.0]:\n", " chord_with_vibrato = apply_vibrato(chord, 6, depth)\n", " play_wave(chord_with_vibrato)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 307 }, "id": "KF3QnF1mEB1-", "outputId": "b372c445-166b-4282-d07b-81c92813deef" }, "execution_count": 26, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " " ] }, "metadata": {} }, { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " " ] }, "metadata": {} }, { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " " ] }, "metadata": {} }, { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " " ] }, "metadata": {} }, { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " " ] }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "# Texture & Noise\n", "\n", "We can give our sounds a bit of texture by adding some noise:" ], "metadata": { "id": "3HgTrxg0XW2i" } }, { "cell_type": "code", "source": [ "def noise(duration):\n", " return np.random.uniform(-1, 1, round(sample_rate * duration))\n", "\n", "play_wave(wave_A4 + 0.2 * noise(1))" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 75 }, "id": "oHkv_12dXIs3", "outputId": "47fe6c93-c4c1-47a5-eabc-4b02e68608a5" }, "execution_count": 27, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " " ] }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "# Sound Effect — Low-Pass Filter\n", "Apply a low-pass filter using a Fast Fourier Transform (FFT) to eliminate the high-frequencies (if you don't know about the Fourier Transform, please watch this [great video by 3blue1brown](https://www.youtube.com/watch?v=spUNpyF58BY)):" ], "metadata": { "id": "UpsWyWvXH5zi" } }, { "cell_type": "code", "source": [ "music_clip = melody_and_bass[:2 * sample_rate]\n", "for cutoff_frequency in (4000, 2000, 1000, 500):\n", " frequencies = np.fft.rfft(music_clip) # real domain to complex frequency domain\n", " frequencies[cutoff_frequency:] = 0\n", " low_pass_filtered = np.fft.irfft(frequencies) # back to real domain\n", " play_wave(low_pass_filtered)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 249 }, "id": "zUIGPNkrFVUg", "outputId": "609c8e76-a207-40eb-8874-3068f66fe7fb" }, "execution_count": 28, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " " ] }, "metadata": {} }, { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " " ] }, "metadata": {} }, { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " " ] }, "metadata": {} }, { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " " ] }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "You can easily convert this code to a high-pass filter by zeroing out the low frequencies instead of the high frequencies (i.e., replace `frequencies[cutoff_frequency:] = 0` with `frequencies[:cutoff_frequency] = 0`). Try it!" ], "metadata": { "id": "0e3_wQf6JHRs" } }, { "cell_type": "markdown", "source": [ "What if we want to change the filter over time? Well, one option is to chop the wave into small segments and apply an FFT-based low-pass filter to each segment, using a different cutoff frequency for each segment.\n", "\n", "Alternatively, we can work directly in the time domain (without using any FFT) by applying an exponential moving average, which dampens the high frequencies:\n", "\n", "$\\text{output}(t) = \\alpha \\times \\text{output}(t - 1) + (1 - \\alpha) \\text{input}(t)$\n", "\n", "This is called a 1-pole low-pass filter. $\\alpha$ controls the cutoff frequency:\n", "\n", "$\\alpha = e^{-2\\pi \\dfrac{\\text{cutoff frequency}}{\\text{sample rate}}}$\n", "\n", "If you want a high-pass filter instead, just subtract the low-pass filtered wave from the original wave." ], "metadata": { "id": "lmFhIeqXIQ44" } }, { "cell_type": "markdown", "source": [ "Let's apply a high-pass filter with a sliding cutoff frequency:" ], "metadata": { "id": "dmChC5vPLTzD" } }, { "cell_type": "code", "source": [ "music_clip = melody_and_bass[:5 * sample_rate]\n", "t = np.linspace(0, 1, len(music_clip))\n", "cutoff_frequency = np.linspace(0.1, 1, len(music_clip)) * 1000\n", "low_pass_filtered = np.zeros_like(music_clip)\n", "alpha = np.exp(-2 * np.pi * cutoff_frequency / sample_rate)\n", "for i in range(1,len(music_clip)):\n", " low_pass_filtered[i] = (alpha[i] * low_pass_filtered[i-1]\n", " + (1 - alpha[i]) * music_clip[i])\n", "\n", "high_pass_filtered = music_clip - low_pass_filtered\n", "play_wave(high_pass_filtered)\n" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 75 }, "id": "ioSemYwfGvyD", "outputId": "994bf1e6-12d3-4c8f-bb05-abc5c42e31b2" }, "execution_count": 29, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " " ] }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "# Stereo & Panning\n", "\n", "If you stack two waveforms, you get a stereo waveform. For example, let's pan the sound from left to right:" ], "metadata": { "id": "10Df6rCBXd_-" } }, { "cell_type": "code", "source": [ "left_wave = high_pass_filtered.copy()\n", "right_wave = high_pass_filtered.copy()\n", "pan = np.linspace(0, 1, len(left_wave))\n", "left_wave *= 1 - pan\n", "right_wave *= pan\n", "\n", "stereo = np.stack([left_wave, right_wave])\n", "play_wave(stereo)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 75 }, "id": "C4zMbHHxXAT2", "outputId": "bbad58f3-8717-45bc-9236-b9a30bae6682" }, "execution_count": 30, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " " ] }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "Let's update our plot function to support stereo:" ], "metadata": { "id": "aG3DuA1zadSa" } }, { "cell_type": "code", "source": [ "def plot_sound(stereo, title):\n", " if stereo.ndim == 1:\n", " stereo = stereo.reshape(1, -1)\n", " plt.figure(figsize=(5, 2))\n", " alpha = 1\n", " for channel in stereo:\n", " plt.plot(channel, alpha=alpha)\n", " alpha = 0.7\n", " plt.xlabel(\"Time (samples)\")\n", " plt.ylabel(\"Amplitude\")\n", " plt.title(title)\n", " plt.grid()\n", " plt.show()" ], "metadata": { "id": "Zg7loQQ8YrVM" }, "execution_count": 31, "outputs": [] }, { "cell_type": "markdown", "source": [ "And let's try it out on the panning sound:" ], "metadata": { "id": "N3mLkZ4WaiZr" } }, { "cell_type": "code", "source": [ "plot_sound(stereo, \"Stereo Sound\")" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 256 }, "id": "nkp4axHQahbY", "outputId": "a930d598-e928-4e79-9152-adb72307351a" }, "execution_count": 32, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "iVBORw0KGgoAAAANSUhEUgAAAckAAADvCAYAAACZvS/uAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAWf1JREFUeJzt3Xd4VFX6B/DvnZpMkknvJIGEEDqBAKEpAQKhLAiKovBDuoqAsqCubSm6NuyiIgqKrlJEAV2lCoQivYZQAgFCIJCQ3tvMnN8fQyYZpveZ5P08Dw/Jveee+87NzLy3nMIxxhgIIYQQooHn6AAIIYQQZ0VJkhBCCNGBkiQhhBCiAyVJQgghRAdKkoQQQogOlCQJIYQQHShJEkIIITpQkiSEEEJ0oCRJCCGE6EBJkhDi8pYsWQKO4xwdBmmGKEkSose5c+cwfvx4REVFwc3NDeHh4Rg6dCiWL1+uVu7tt9/Gli1bHBOklVRUVGDx4sXo3LkzPDw84O/vj/j4eDz//PO4ffu2o8MjxCE4GruVEO0OHTqEQYMGITIyElOmTEFISAhu3ryJI0eO4OrVq8jMzFSV9fT0xPjx47FmzRrHBWyB+vp6JCYm4tKlS5gyZQri4+NRUVGB8+fP43//+x82btyIpKQkR4ep05IlS7B06VLQ1xmxNoGjAyDEWb311lvw9vbG8ePH4ePjo7bu7t27Nt9/TU0NRCIReDzb3/DZsmULTp8+jZ9++gkTJ07UiKOurs7mMRDijOh2KyE6XL16FZ06ddJIkAAQFBSk+pnjOFRWVuL7778Hx3HgOA5Tp05Vrc/JycH06dMRHBwMsViMTp064dtvv1WrLzU1FRzHYf369Xj99dcRHh4OiUSCsrIyAMDRo0cxfPhweHt7QyKRYODAgfj777814jp9+jRGjBgBqVQKT09PDBkyBEeOHDHqtQJA//79Nda5ublBKpWqLduzZw8eeOABeHh4wMfHBw899BAuXryoVmbq1Klo3bq1Rn3anh9yHIe5c+diy5Yt6Ny5s+o4bd++XWP7gwcPolevXnBzc0NMTAxWrlxp8PURYi66kiREh6ioKBw+fBjp6eno3LmzznL//e9/MXPmTPTu3RtPPfUUACAmJgYAkJeXhz59+qiSQGBgILZt24YZM2agrKwM8+fPV6vrzTffhEgkwgsvvIDa2lqIRCLs2bMHI0aMQEJCAhYvXgwej4fvvvsOgwcPxoEDB9C7d28AwPnz5/HAAw9AKpXipZdeglAoxMqVK5GUlIR9+/YhMTFR72sFgB9++AGvv/663kYwf/31F0aMGIHo6GgsWbIE1dXVWL58Ofr3749Tp05pTYzGOHjwIDZt2oRnn30WXl5e+Oyzz/DII48gOzsb/v7+AJTPiIcNG4bAwEAsWbIEMpkMixcvRnBwsFn7JMQgRgjRaufOnYzP5zM+n8/69u3LXnrpJbZjxw5WV1enUdbDw4NNmTJFY/mMGTNYaGgoKygoUFv++OOPM29vb1ZVVcUYY2zv3r0MAIuOjlYtY4wxhULBYmNjWUpKClMoFKrlVVVVrE2bNmzo0KGqZWPHjmUikYhdvXpVtez27dvMy8uLPfjgg3pfa1VVFYuLi2MAWFRUFJs6dSpbvXo1y8vL0ygbHx/PgoKCWGFhoWrZ2bNnGY/HY08++aRq2ZQpU1hUVJTG9osXL2b3f/UAYCKRiGVmZqrVCYAtX75c7TW6ubmxGzduqJZduHCB8fl8jToJsQa63UqIDkOHDsXhw4cxZswYnD17FsuWLUNKSgrCw8Px+++/G9yeMYZff/0Vo0ePBmMMBQUFqn8pKSkoLS3FqVOn1LaZMmUK3N3dVb+fOXMGV65cwcSJE1FYWKjavrKyEkOGDMH+/fuhUCggl8uxc+dOjB07FtHR0artQ0NDMXHiRBw8eFB161Ybd3d3HD16FC+++CIAYM2aNZgxYwZCQ0Mxb9481NbWAgDu3LmDM2fOYOrUqfDz81Nt37VrVwwdOhRbt2417uBqkZycrLoCb6hTKpXi2rVrAAC5XI4dO3Zg7NixiIyMVJXr0KEDUlJSzN4vIfpQkiREj169emHTpk0oLi7GsWPH8Morr6C8vBzjx4/HhQsX9G6bn5+PkpISfP311wgMDFT7N23aNACaDYDatGmj9vuVK1cAKJPn/XWsWrUKtbW1KC0tRX5+PqqqqhAXF6cRR4cOHaBQKHDz5k298Xp7e2PZsmXIyspCVlYWVq9ejbi4OHz++ed48803AQA3btwAAJ37aUjg5mia+Br4+vqiuLgYgPJ4VldXIzY2VqOctngIsQZ6JkmIEUQiEXr16oVevXqhXbt2mDZtGjZu3IjFixfr3EahUAAA/u///g9TpkzRWqZr165qvze9imxax/vvv4/4+HitdXh6eqqu9KwlKioK06dPx7hx4xAdHY2ffvoJ//nPf0yqQ9dzTblcrnU5n8/XupxRtw7iQJQkCTFRz549AShvPTbQlhACAwPh5eUFuVyO5ORks/bVcPtRKpXqrSMwMBASiQQZGRka6y5dugQej4eIiAiT9+/r64uYmBikp6cDaGzgo2s/AQEB8PDwUG1bUlKiUa7hatRUgYGBcHd3V11dN6UtHkKsgW63EqLD3r17tV7FNDx3a3qLz8PDQyMh8Pl8PPLII/j1119VSaap/Px8gzEkJCQgJiYGH3zwASoqKnTWwefzMWzYMPz222/IyspSrc/Ly8PatWsxYMAAjW4cTZ09exYFBQUay2/cuIELFy6oXmtoaCji4+Px/fffq73e9PR07Ny5EyNHjlQti4mJQWlpKdLS0lTL7ty5g82bNxt83drw+XykpKRgy5YtyM7OVi2/ePEiduzYYVadhBhCI+4QokPnzp1RVVWFcePGoX379qirq8OhQ4ewYcMGRERE4PTp06o+lKNGjcK+ffvwxhtvICwsDG3atEFiYiLy8vKQmJiI/Px8zJo1Cx07dkRRURFOnTqFv/76C0VFRQCU/SQHDRqEjRs3Yvz48WpxpKamYsSIEQgKCsK0adMQHh6OnJwc7N27F1KpFP/73/8AKLuAJCYmwsfHB88++ywEAgFWrlyJnJwcg11APvjgAyxevBhjxoxBnz594OnpiWvXruHbb7/F3bt38csvv2DcuHEAGruAtG3bFjNmzFB1AZHJZDh58qTquWphYSGioqIQHByM5557DlVVVVixYgUCAwNx6tQptRMQjuMwZ84cfP7552pxtW7dGklJSaqRjNLS0pCYmIigoCA8++yzkMlkWL58OYKDg5GWlka3Zon1Oa5hLSHObdu2bWz69Omsffv2zNPTk4lEIta2bVs2b948ja4Rly5dYg8++CBzd3dnANS6g+Tl5bE5c+awiIgIJhQKWUhICBsyZAj7+uuvVWUauoBs3LhRayynT59mDz/8MPP392disZhFRUWxxx57jO3evVut3KlTp1hKSgrz9PRkEomEDRo0iB06dMjga7127RpbtGgR69OnDwsKCmICgYAFBgayUaNGsT179miU/+uvv1j//v2Zu7s7k0qlbPTo0ezChQsa5Xbu3Mk6d+7MRCIRi4uLYz/++KPOLiBz5szR2D4q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\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "# Read/Write Audio Files\n", "\n", "If you want to save your art, you can use the `soundfile` library:" ], "metadata": { "id": "mvXxH3jNTfiP" } }, { "cell_type": "code", "source": [ "import soundfile as sf\n", "\n", "sf.write(\"stereo.wav\", stereo.T, sample_rate)" ], "metadata": { "id": "20PBvOvjTda6" }, "execution_count": 33, "outputs": [] }, { "cell_type": "code", "source": [ "loaded_wave, sample_rate = sf.read(\"stereo.wav\")\n", "play_wave(loaded_wave.T)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 75 }, "id": "tLeu5PNhTvXU", "outputId": "11167477-ba53-4d8e-80e4-5c297501d44f" }, "execution_count": 34, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " " ] }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "**Notes**:\n", "* The channel dimension is expected to be last, which is why we transpose the array (`.T`) before saving and after loading.\n", "* You can replace `.wav` with `.mp3` (or other formats supported by `soundfile`).\n", "* Once you have saved a file, you can download it to your computer: click the folder icon in the left sidebar, then right-click on your file and select _Download_." ], "metadata": { "id": "LU_8nBluUO1n" } }, { "cell_type": "markdown", "source": [ "Now it's your turn to play around with sound effects. Here are a few ideas for you:\n", "\n", "* Make retro videogame sounds:\n", " * Laser zap: descending frequency sweep + high-pass + fast decay\n", " * Jump: upward pitch sweep + square wave\n", " * Coin pickup: very fast arpeggio (e.g., C6 E6 G6)\n", " * Explosion: filtered noise + exponential decay\n", " * Footsteps: short bursts of filtered noise with alternating filters\n", "\n", "* Generate natural sounds:\n", " * Wind: white noise + low-pass + slow cutoff oscillation\n", " * Ocean: noise + band-pass sweep + random amplitude modulation\n", " * Rain: lots of very short clicks at random intervals\n", " * Fire crackle: noise + random gain spikes\n", "\n", "* Build instruments\n", " * Kick drum: sine at 80Hz + pitch drop + exponential decay\n", " * Snare: noise + high-pass + short decay\n", " * Hi-hat: noise + band-pass at 8kHz\n", " * Clap: bursts of filtered noise + slight delays\n", " * Bell: carrier 440Hz, modulator 660Hz\n", "\n", "* Play around with FFT-domain manipulations\n", " * Randomly reorder FFT bins\n", " * Amplify or reduce magnitudes\n", " * Low-pass the phase instead of the magnitude\n", " * Zero out every other FFT bin\n", "\n", "* Try various envelopes (beyond simple fade-in/out)\n", "\n", "* Record sample sounds (e.g., your voice) and modify them in interesting ways.\n", "\n", "* Use all that to generate some transe music similar to [Switch Angel](https://www.youtube.com/watch?v=GWXCCBsOMSg)\n", "\n", "Have fun! 🎵😊" ], "metadata": { "id": "w8DuVw5zY_BJ" } } ] }