{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Tutorial with the Diva synthesizer controlled with Dynamical Movement Primitives\n", "\n", "This tutorials shows how to run an agent learning to produce sound trajectories with a simulated vocal tract, through autonomous exploration and imitation.\n", "\n", "Requirements:\n", "- Explauto\n", "- DIVA\n", "- Matlab and [pymatlab](http://pymatlab.sourceforge.net/), or Octave and [oct2py](https://pypi.python.org/pypi/oct2py)\n", "- pyaudio\n", "\n", "DIVA is a neural model of speech acquisition and production that accounts for a wide range of acoustic, kinematic,\n", "and neuroimaging data concerning the control of speech movements, as describe on [this page](http://sites.bu.edu/guentherlab/research-projects/the-diva-model-of-speech-motor-control/). The code of the model is open-source and is avaible [here](http://sites.bu.edu/guentherlab/software/diva-source-code/). You will have to download and unzip it to run this tutorial. \n", "The DIVA model uses an [articulatory synthesizer](http://en.wikipedia.org/wiki/Articulatory_synthesis), i.e. a computer simulation of the human vocal tract allowing to generate the sound wave resulting from articulator movements involving the jaw, the tongue, the lips ... This is this articulatory synthesizer that we will use, independently of the neural model. For more information please refer to the documentation in the pdf provided in the DIVA zip archive.\n", "Also, if using Matlab, it needs to be aware of your DIVA installation path (i.e. the path of the unzipped DIVA directory). You will have to add it by [editing your search path](http://fr.mathworks.com/help/matlab/matlab_env/add-remove-or-reorder-folders-on-the-search-path.html) permanently.\n", "\n", "\n", "Content:\n", "- I. Setting up a Diva Environment\n", "- II. Generating sound trajectories with Dynamical Movement Primitives\n", "- III. Goal Babbling\n", "- IV. Imitation\n", "\n", "The four parts are code-independent in the sense that you can restart your kernel and run code from any part, you don't need to rerun from the beginning." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## I. Setting up a Diva Environment\n", "\n", "The DIVA synthesizer takes 13 articulatory positions and returns the formants of the corresponding sound (F0 to F4). For example, the first articulator globally corresponds to an open/close dimension mainly involving the jaw, as shown in the figure below extracted from the DIVA documentation (the pdf in the zip archive). It illustrates the movements induced by the 10 first articulators (left to right, top to bottom), the 3 last ones controlling the pitch, the pressure and the voicing (see the DIVA documentation for more details). All articulatory positions should be in the range $[-1, 1]$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![Alt text](diva_arts.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's define a first Explauto environment that contains the DIVA synthesizer. If you use Matlab, don't forget to tell him where is your installation of DIVA, and then specify synth=\"matlab\" in the following. If using Octave, specify the diva_path and synth=\"octave\"." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from __future__ import print_function\n", "\n", "import os\n", "import numpy as np\n", "from explauto.environment.diva import DivaEnvironment\n", "\n", "diva_cfg = dict(diva_path=os.path.join(os.getenv(\"HOME\"), 'software/DIVAsimulink/'),\n", " synth=\"octave\",\n", " m_mins = np.array([-1]*7), # motor bounds\n", " m_maxs = np.array([1]*7),\n", " s_mins = np.array([ 7.5, 9.25]), # sensory bounds\n", " s_maxs = np.array([ 9.5 , 11.25]),\n", " m_used = range(7), # articulatory parameters used from 0 to 9\n", " s_used = range(1, 3), # formants output from F0 to F3\n", " audio = True) # if sound is played\n", "\n", "environment = DivaEnvironment(**diva_cfg)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The diva configuration (diva_cfg) can be modified. For instance, here only 7 of the 10 articulatory parameters are used (the 7 most important) and the 3 others are set to 0, but you can use 10 instead of 7 parameters. Also, DIVA outputs F0 (pitch), F1, F2 and F3 but here the environment will output only F1 and F2 because we set s_used = [1, 2]. We also defined the motor bounds [-1, 1] and the sensory bounds of F1 and F2 in octaves (or log2(Hz)): e.g. the environment will always output F1 between 7.5 and 9.5." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Random sounds\n", "\n", "If your installation of DIVA and explauto are working well, you should now be able to produce some sounds with random articulatory positions:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "warning: load: '/home/sforesti/software/DIVAsimulink/diva_synth.mat' found by searching load path\n", "warning: load: '/home/sforesti/software/DIVAsimulink/diva_synth.mat' found by searching load path\n" ] }, { "data": { "text/plain": [ "(1200.0, 200.0)" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZ4AAAEVCAYAAADQC4MUAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XuYVNWd7//3ty90t1y6RUO6BWa4ihrDBIeREIdEQgJmOARHn0NwPMPE5OgxjxrkOfg7EqNhTM6YRDOIMSceZnQSz3GCNwJ2MAfnh3hkkJ/xQoIXQIWY4dIdVNLNZbqbbvr7+6Oq2q5iV3dVddWuS39ez9NPU2uvWntV01XfXmt/91rm7oiIiISlLN8dEBGRwUWBR0REQqXAIyIioVLgERGRUCnwiIhIqBR4REQkVAo8IiISKgUeEREJVUW+OxAWM7scmA+MAB5092fy3CURkUEp1BGPmY01sy1m9qaZvWFmSwfQ1kNmdtjMXg84dpmZ7TGzd8zsVgB3X+/u1wLXA1/K/FWIiMhAhD3V1gX8V3e/APgkcIOZXdC7gpmNMrPhCWWTAtr6CXBZYqGZlQM/Ar4AXABclXCOb0aPi4hIHoQaeNy9yd1fjf77GLALGJ1Q7TPAejOrAjCza4EfBrT1PHAk4DQXA++4+z53PwmsBRZaxPeAX8b6ICIi4cvbNR4zGwdMA17sXe7uj5vZeOBRM3sc+Arw+TSaHg3s7/X4ADADuAn4HFBrZpPc/YGAPi0AFgwfPvzac889N41TSiYO/+5Y0mOj/nh40mMiUpheeeWV9939I/3Vy0vgMbNhwJPAze5+NPG4u3/fzNYCPwYmuvvxgZ7T3e8D7uunTiPQOH369GtffvnlgZ5S+vHTb2zj+JGO08qHjazib/7ukjz0SEQGwsx+l0q90NOpzaySSNB5xN3XJakzC7gQ+DnwrTRPcRAY2+vxmGiZFJiZCydSMST+V7BiSBkzF07MU49EJAxhZ7UZ8CCwy93/PkmdacAaYCFwDXCWmX0njdO8BEw2s/FmNgRYDDw1sJ5LLpw7o57ZV5/HsJFVQGSkM/vq8zh3Rn2eeyYiuRT2VNslwF8Dr5nZr6Nl33D3p3vVOQNY5O57AcxsCfDlxIbM7GfApcDZZnYA+Ja7P+juXWZ2I7AJKAcecvc3cvWCZGDOnVGvQCMyyJh2ID3d9OnTXdd4RETSY2avuPv0/uppyRwREQnVoFkyR0QG7sSOwxzd9C6nWjoor6tixLxxDJ02Kt/dkiKjwCMD9mTzEe7a18TBjk5GV1WyYkIDV9aPzHe3JMtO7DhMy7q38c5uAE61dNCy7m0ABR9Ji6baStHOx2DVhbCyLvJ952M5O9WTzUdYvmc/Bzo6ceBARyfL9+znyeagRSWkmB3d9G5P0Inxzm6Obno3a+fYuG8jc5+Yy9SfTmXuE3PZuG9j1tqWwqHAU2p2PgaNX4fW/YBHvjd+PWfB5659TbR1xyeotHU7d+1rysn5JH9OtZx+s29f5enauG8jK19YSdOJJhyn6UQTK19YqeBTghR4Ss3mO6GzLb6ssy1SngMHOzrTKpfiVV5XlVZ5ula/upr2U+1xZe2n2ln96uqstC+FQ4Gn1LQeSK98gEZXVaZVLsVrxLxxWGX8R4ZVljFi3ristN98ojmtcileCjylpnZMeuUDtGJCAzVlFldWU2asmNCQk/NJ/gydNoq6Kyb3jHDK66qou2Jy1hIL6ocG30icrFyKl7LaSs2cOyLXdHpPt1XWRMpzIJa9pqy2wWHotFE5y2BbetFSVr6wMm66rbq8mqUXZbxfpBQoBZ5SM3VR5PvmOyPTa7VjIkEnVp4DV9aPPC3QKMVa0jV/wnwgcq2n+UQz9UPrWXrR0p5yKR1aMieAlswZmFiKde9st5oy454pYxV8SkhrYyOHV91LV1MTFQ0NjFp2M7ULFuS7W5JHqS6ZoxGPZF1fKdb5Djy7tm5h69qHOfbB+ww/62xmLV7C+bNm57VPxai1sZGm2+/A2yPTYl2HDtF0e2Q6V8FH+qPkAsm6Qk2x3rV1C8+suZ9j778H7hx7/z2eWXM/u7ZuyWu/itHhVff2BJ0Yb2/n8Kp789QjKSYKPEWgqXkD27bNYvOzk9i2bRZNzRvy3aU+FWqK9da1D9N1Mv5mx66THWxd+3CeelS8upqCbxBOVp5tWuGguCnwFLim5g3s3n0b7R2HAKe94xC7d99W0MGnUFOsj33wflrlklxFQ/D/ZbLybNIKB8VPgafA7dt7D93d8SsRdHe3sW/vPXnqUf+urB/JPVPGMqaqEgPGVFUWRGLB8LPOTqtckhu17GasujquzKqrGbXs5pyfWyscFD8lFxS49o7gqYtk5YUiKMU632YtXsIza+6Pm26rGFLFrMVL8tir4hRLIMhHVptWOCh+CjwFrrqqITrNdnq5pCeWvaastuyoXbAgLxls9UPraTpx+h9eWuGgeCjwFLgJE5eze/dtcdNtZWU1TJi4PJTz5+tejfU7DnL3pj0camnjnLoabpk3hcunjR5wu+fPmq1AU+S0wkHxU+ApcA31C4HItZ72jiaqqxqYMHF5T3m29d5hsuuDV2h/8Sd4dGoqrHs11u84yIp1r9HWeQqAgy1trFj3GkBWgo8UN61wUPy0ckGAwbpyQeIOk8c33Yq3nb6hW8U55zD52c0568cl332Wgy1tp5WPrqth262fzdl5RWRgtHKBpC1xh8mgoAO5v1fjUEDQ6atcUqP186RQKJ1aeiTuJGk1wR9Kub5X45y6mrTKpX/aolwKiQKP9EjcSXLIBX8J5UPiysK4V+OWeVOoqSyPK6upLOeWeVNyet5Spi3KpZAo8EiPxB0mh4ydQfWfLqH87I+CGRXnnEPDt+/MeVbb5dNGc9cVH2d0XQ1G5NrOXVd8XIkFA1Co6+fJ4KRrPNIjtsFXLKutvK6KM7/01wyd9l9D78vl00Yr0GTR6KpKDgQEmXyvnyeDkwKPxMnlDpOSPysmNATukZTv9fNkcNJUWynZ+RisuhBW1kW+73ws3z2SAlGo6+fJ4KT7eAIU5X08Ox+Dxq9DZxtNHxnCvvFDaa8qo7r8TCacd0fObjjNBe1sKVKcdB/PYLP5zp6gs/vc4XSXR7YlaO9uYffu2wByEnzeerGZ7Rv2cvxIB8NGVjFz4UTOnZH5mlna2VKk9GmqrVS0HgBg3/ihPUEnJlfbKLz1YjNbHtnN8SOR+3+OH+lgyyO7eevFzFcJ1s6WIqVPgadU1I4BoL0q+L80F9sobN+wl66T3XFlXSe72b5hb8Zt5ntnSxHJPQWeUjHnDqisobqjO/BwLrZRiI10Ui1PRT53thSRcCjwlIqpi2DBfUz4fTVlp+ITRnK1jcKwkVVplacinztbikg4lFxQSqYuomHqImjeEMo2CjMXTmTLI7vjptsqKpyZQ9bAyvmR6b85d0SCYoryubOlnG7nzp1s3ryZ1tZWamtrmTNnDlOnTs13t6TIKZ06QFGmU+dJXFbbsFPMHPJjzh3Sa8uEyhpYcF9awUcKw86dO2lsbKSz88MVDyorK1mwYIGCjwRSOrWE4twZ9R+mT6+6EFr3x1fobIukeivwFJ3NmzfHBR2Azs5ONm/erMAjA6JrPJI90ZTulMuloLW2tqZVLpIqBR7JnmhKd8rlUtBqa2vTKhdJ1aAJPGZ2uZn9g5k9amZz892fkhRN6Y5TWRMpl6IzZ84cKivjV6+urKxkzpw5eeqRlIpQA4+ZVZvZr8zsN2b2hpn97QDaesjMDpvZ6wHHLjOzPWb2jpndCuDu6939WuB64EuZvwpJKprSTe1YwCLflVhQtKZOncqCBQt6Rji1tbVKLJCsCDWrzcwMGOrux82sEvhXYKm7/3+96owC2tz9WK+ySe7+TkJbnwaOAw+7+4W9ysuBt4DPAweAl4Cr3P3N6PEfAI+4+6vJ+qmstngb921k9auraT7RTP3QepZetJT5E+bnu1siUmAKMqvNI1HuePRhZfQrMfJ9BrjezP7C3TvM7FrgCuALCW09b2bjAk5zMfCOu+8DMLO1wEIz2wV8F/hlX0FH4m3ct5GVL6yk/VRk/bSmE02sfGElQMrBR/eCFIZsL+gqkqnQ06mjI5JXgEnAj9z9xd7H3f1xMxsPPGpmjwNfITJ6SdVooHdO7wFgBnAT8DmgNjqCeiCgbwuABZMmTUrnJZW01a+u7gk6ACdbP8Hxw/O44XXn7+qe5ZZ5U/rcKTTxXpDW1lYaGxsBFHxCFFvQNXazb2xBVyCnwUfBToKEnlzg7qfc/RPAGOBiM7swoM73gXbgx8AX3f14Yp0Mznufu/+pu18fFHSidRrd/Tpl7Xyo+cSHK02fbP0EHU1X4F1nAsbBljZWrHuN9TsOJn1+X/eCSHhysaBrf3KxermUhrxltbl7C7AFuCzxmJnNAi4Efg58K82mDwJjez0eEy2TDNQP/fCv05OH54EPiTve1nmKuzftSfp83QtSGHKxoGt/8hHspDiEndX2ETOri/67hsgU2u6EOtOANcBC4BrgLDP7ThqneQmYbGbjzWwIsBh4Khv9H4yWXrSU6vLIop3eVRdY51BLW9Ln616QwpCLBV37k49gJ8Uh7BFPA7DFzHYSCRD/4u6/SKhzBrDI3fe6ezewBPhdYkNm9jNgOzDFzA6Y2VcB3L0LuBHYBOwCHnP3N3L2ikrc/AnzWfmplTQMbcAqWgLrnFNXE1gOuhekUMxcOJGKIfFv94ohZcxcODFn58xHsJPioEVCAyidOtj6HQdZse412jpP9ZTVVJZz1xUf7zfBIJOsNmXDZVfYF/oTExogEuxmX32eEgxKVKrp1Ao8ARR4klu/4yB3b9rDoZY2zqmr6TerLVNaGbk0KKttcCnI+3ik+F0+bXROAk0irYxcGuJWLxeJUuCRgtJ7ei2IsuFEip8CjxSMoOm1RMqGEyl+g2Z1ail8QdNrvSkbTqQ0aMQjBaOvaTRltYmUDgUeKRi1tbWBwae2tpZly5bloUcikguaapMB2bhvI3OfmMvUn05lxTcvYeenZ7Lr/At4+7NzaI0uBpoq3WwqMjhoxCNxTuw4zNFN73KqpYPyuipGzBvH0GmjAuv23jLhkjdOsejpI1R2RY51HTpE0+2RnUdrFyxI6dyxaTTdNCpS2hR4pMeJHYdpWfc23hm50/xUSwct694GCAw+vbdM+KvnnOqu+OPe3s7hVfeeFnj6Cm5Tp05VoBEpcQo80uPopnd7gk6Md3ZzdNO7gYGn95YJZx0NbrOrqSnucbrBLVW7tm5h69qHOfbB+ww/62xmLV7C+bNmZ9xeoZ9XpJjpGo/0ONUSvGpwsvLeWyZ8MCK4zYqGhrjHfQW3TO3auoVn1tzPsfffA3eOvf8ez6y5n11bt2TcZiGfV6TYKfBIj/K64FWDk5X33jLhny812hPGz1ZdzahlN8eVpRvcUrF17cN0nYx/ftfJDraufTjjNgv5vCLFTlNt0mPEvHFx02AAVlnGiHnjAuvPnzAfiFzreeFjzZw5ZDhXPd9N5XutVDQ0MGrZzadd3ymvqwoMMsmCWyqOffB+cPn777HmhmtyNg2W9LxJykUkQoFHesSusaSa1QaR4BMLQKlIN7ilYvhZZ0emuwLEymPTYEDWgk+y8w4/6+ystF8KWhsbObzqXrqampL+MSKDjwKPxBk6bdSALvKn0v4vfvc+q178Hb/3bj5qZSz70z/mSwM456zFS3hmzf2nTXslik2DZSvwBJ23YkgVsxYvyUr7xa61sZGm2+/A2yOZj5mk2OeStmzIHwUeCdX6HQdZ+cq/0eaREU+zd7PylX+j6o9rM95uIRZIemeXJR0BZXEaLOi8yabzin1Tu0yy9w6vurcn6MQkS7EPW+ImdcePdLDlkd0ACj4hUOCRUN29aU/cDqYAbZ2nuHvTngHt83P+rNlxH4RrbrgmlGmwxPMGSVx1u7W1lcboqg65CD5PNh/hrn1NHOzoZHRVJSsmNHBl/ciM24tl771ROZbto+dxrGIYwzcc5vqDz3DD4rlJn5eYSt9feZi2b9gbtzMqQNfJbrZv2KvAEwJltUmoDrW0pVWeqVmLl1AxJD5hIZ1psF1bt7Dmhmv4weIFrLnhmgGlSPe1qV22Pdl8hOV79nOgoxMHDnR0snzPfp5sPpJxm1vXPswblWN59uxLOVY5HMw4VjGMVTvaWL/jYNLnJabS91cepuNHgqdlk5VLdinwSKjOqatJqzxT58+azdzrbmT42R8BM4af/RHmXndjStd3gu7P+eX/XM2SH1zG1J9OZe4Tc9m4b2PKfQlzU7u79jXR1h2/nX1bt3PXvsxHGcc+eJ/tZ36SrrL4dfS6rIK7N+1J+rxRy27GqqvjyoJS7PNh2MjgLMpk5ZJdmmqTUN0ybwor1r0WN91WU1nOLfOmZP1cqUyDBQm6P8c7u5i4E3Z81mk60cTKF1YCpJTR19eq29l2sCN4P6Nk5akYftbZHKsYFnisr5Fq7DpOIWa1zVw4Me4aD0DFkDJmLpyYx14NHhrxSKgunzaau674OKPrajBgdF0Nd13x8QFd38m2ZAkIQ9vLe/7dfqqd1a+uTqm9MFfdHl1VmVZ5KmYtXsLwUycCj/U3Uq1dsIDJ9/4Xzr+ujMmffoXad1bAzscy7ku2nDujntlXn9czwhk2sorZV5+n6zsh0YhHQnf5tNEFFWgSJcuKO1EdnxTRe626voS56vaKCQ0s37M/brqtpsxYMSHz6yrnz5rN9QefYdWONrrsw4+MlEaqOx+Dxq9DZ3Rk1Lo/8hhg6qKM+5QN586oV6DJEwUeKShNzRvYt/ce2juaqK5qYMLE5TTULwy1D0H353SVdfPKlD/E1eu9Vl1/wlp1O5a9ls2sNoAbFs9l9JSD3L1pD4da2jinroZb5k3p/w+IzXd+GHRiOtsi5XkOPJI/CjxSMJqaN7B79210d0c+qNo7DrF7920ANNQvDO1emMT7cypqh/LC+IP8tuHfe+pUl1ez9KKlWT93NlxZP3LAgSZIRiPV1gPplcugMGgCj5ldDswHRgAPuvszee6SJNi3956eoBPT3d3Gvr338N7h8aHeC5OYmDBp30ZWv7qa5hPN1A+tZ+lFS7nojC62bZt12ugs2/fRFLXaMZHptaByGbTM3fuvle2TmpUDLwMH3f0/ZNjGQ8B/AA67+4UJxy4DVgPlwD+6+3d7HTsTuMfdv5qs7enTp/vLL7+cSbdkADY/OwkI+n00dv7mhqSZYcuWLct53xIljs4AyspqOFa/gqW/v/C0ayz3TBk7OINP4jUegMoaWHCfptpKkJm94u7T+6uXdlabmdWb2UVmdomZTTGzIRn0bymwK0n7o8xseELZpICqPwEuC3h+OfAj4AvABcBVZnZBryrfjB6XAlNdFXwBvLqqIdR7YVKRbHR28tAPs34fTVGbuigSZGrHAhb5rqAz6KUUeMxsupk9YGa/BQ4CLwHPA28CrWb2vJl9LTFgJGlrDJEpr39MUuUzwHozq4rWvxb4YWIld38eCLod+2LgHXff5+4ngbXAQov4HvBLd3+1v35K+CZMXE5ZWXx6bllZDRMmLk96z0su7oVJRXtHcCCpJTgVeyD30RS9qYtg2euwsiXyXUFn0OvzGo+ZTQfuAT4NvAb8AtgBvAe0ASOB8cAM4LvAd83s+8AP3L09sFG4F/h/gMAg5e6Pm9l44FEzexz4CvD5NF7TaKD3pPKBaP9uAj4H1JrZJHd/IOD1LgAWTJoUNMCSTKSzAnAsey0oq23OnPj1ziB398KkorqqgfaOQ6eVtxK8FtxA7qMRKTX9JRf8X+AfgK+5e+DUWIyZVQMLiQSVMuDbAXVi12ReMbNLk7Xl7t83s7XAj4GJ7n68n372y93vA+7rp04j0Dh9+vRrB3o+yWwF4Ib6hYHp02HeC5OKCROXB17jGVJ/EzW/t6zeR5NrSoaQsPUXeCa6e0p3yUVHOI8SGal8NEm1S4AvmtlfANXACDP73+7+n3pXMrNZwIXAz4FvATem0oeog8DYXo/HRMskZNleATise2FS0dforLOueD7IY4uKxgJlbFFRoGD7LMWvz8CTatAJeN7vk5SvAFYAREc8ywOCzjRgDZGMtd8Cj5jZd9z9myme/iVgcnS67iCwGPirTF6HDEzYKwCv35HBDY4DkGx0lqv7aHKhr0VFi+U1SPFJOavNzB4ys+VJjk2IpjdnwxnAInff6+7dwBLgdwHn/BmwHZhiZgfM7KsA7t5FZIS0iUjm3GPu/kaW+iZpCHMF4PU7DrJi3WscbGnDgYMtbaxY91qfy/ZLbhYVFelPOjeQfhlwM/szYIm79/6z9SPA3xBJBEiJuz8HPBdQvi3hcSeR60yJ9a7qo+2ngadT7YvkRpgrAOdig7kTOw5zdNO7nGrpoLyuihHzxuV0W/B8GF1VyYGAIKNkCMmldO/j+SaRzLDnzOwjOeiPlJAwVwDO9gZzJ3YcpmXd25xqifx9daqlg5Z1b3Nix+GM+9jUvIFt22ax+dlJbNs2i6bmDRm3lS0rJjRQU2ZxZYWeDCHFL90lczYDTwKNwK/MbL67v5n9bkmpCGsF4HPqajgYEGQy3WDu6KZ38c74xAjv7ObopnczGvX0tw5dvuRqUVGRvqS9Vpu7v2VmM4gEoBfM7EtAS9Z7JpKGbG8wFxvppFren77Woctn4IHiSobIhbCTUiTDRULdvcXM5gH/g8jo539ltVciaYp9UGTrA6S8riowyJTXZZYYkWylg2TlEo5YUkrsD5ZYUgqg4JNDGa9OHc0eu87MdgF3Z69LIplJtmx/a2Nj2tsvj5g3jpZ1b8dNt1llGSPmjcuob8lWOki2Pp2EIxdJKdK/dALPbAIW9nT3VWb2IjA5a70SyZLWxkaabr8Db4+s4NR16BBNt98B0GfwiV3HyVZWW7KVDiZMDLxDQUIykKQUTdFlLuXA4+7/t49jLwAvZKVHIll0eNW9PUEnxtvbObzq3n5HPUOnjcpa+nRfKx1I/mSalKIpuoHpb5HQJWm05e6uaz1SULqagq+hBJXnetvtZCsdhKUQthUvNJkmpWiKbmD6G/H8JKDMAUtSrsAjA7PzMdh8Z2Rr5NoxMOeOAS2jX9HQQNeh06+tVDTEX1sp1HTnbCn115epTJNSsn3f2GDTX+BJvG5TQeQ6z+WAlqGR7ErcrbJ1f+QxZBx8Ri27Oe4aD4BVVzNq2c1x9Qo53TkbSv31DUSypJS+ZPu+scGmz5ULouul9XwB70QPHUg8Fj0ukrnNd8ZvkQyRx5vvzLjJ2gULaPj2nVSccw6YUXHOOTR8+87Tru+Uerpzqb++sN0ybwo1leVxZQO5b2ywyTidWiTrWg+kV56i2gUL+k0kKPV051J/fWHL9n1jg40CjxSO2jGR6bWg8hwr9XTnUn99+ZDJFJ1EKPBI4ZhzR/w1HoDKmkh5juU63XnX1i1sXfswxz54n+Fnnc2sxUs4f9bsrLSdCqVzSyExd09+0CzxGlAF0A5cDLyaWD+6f07Rmz59ur/88sv57sbglOWstkKw5eFneeNfj4INx7uP0dW2lTJ7l7nX3Rhq8BHJNTN7xd2n91evvxFPF5E06UQvBpR5Cu2J9G3qoqIPNL299WIzb77QhZWNAMDKR1A5dC6dJ55h69qHFXhkUOovUNxJcOARkRRs37CXxLeZWSUVNbM49sGDA2pbS7ZIseoz8Lj7ypD6IVKSjh8J3kbByoYz/KyzM25XS7ZIMUt3B1IRSUNs99XT+DFmLU5nRap4fS3ZIlLo+gw8ZnZFug2aWYOZfTLzLomUjpkLJ1IxJPFt1sXH/nzEgK7vaMkWKWb9jXh+aGa/NrPrzazPLQrNbJaZrSGyusHUrPVQpIidO6Oe2Vef1zPyGTayis9fM5XZSz47oHaTLc2iJVukGKSyVttyIkkGP4xu+vYb4D2gAzgTmABMB2qB54HPR7dJKDpmtgBYMGnSpHx3RUrIuTPqOXdGfVbbzPZW3yJh6vM+np5KZkOAvwTmAZ8EzgGqgQ+A3UQCzqPuvjt3XQ2P7uORYqCsNik0qd7Hk1LgGWwUeCQTG/dtZPWrq2k+0Uz90HqWXrSU+RPm57tbIqHJ1g2kIpKCjfs2svKFlbSfimy/0HSiiZUvrARQ8BFJoHRqKT47H4NVF8LKusj3nY/lu0esfnV1T9CJaT/VzupXV+epRyKFS4FHiktss7jW/YB/uFlcnoNP84nmtMolfU3NG9i2bRabn53Etm2zaGrekO8u5UVrYyNvf3YOu86/gLc/O4fWxsZ8dyltCjxSXBI2i9s49AzmfvRMpr56J3OfmMvGfRvz0q36ocFZa8nKJT2xrbsjewp5z9bdpRx8ggJMa2MjTbffEdnO3Z2uQ4douv2Oogs+CjxSNHZt3YK3fLhfz8ahZ7Dy7JE0VVbgZj3XVfIRfJZetJTq8uq4suryapZetDT0vpSivrbuLkXJAkzTf/+7uG3cAby9ncOr7s1TTzOjwCNFYdfWLTyz5n6Odn64BM3qM+toL4v/Fc7XdZX5E+az8lMraRjagGE0DG1g5adWKrEgmTSv0w22rbsPr7o3MMB4S0tg/a6m4vo5KKtNisLWtQ/TdbKDf31vHHMb3qayrJvmivLAuvm6rjJ/wnwFmlTErtPFpkxj1+kg6ZYYg23r7nQDSUVDcf0csjLiMbMrzexU/zVFMnPsg/cB2H10FM80Tab1ZBX1XcG/crquUuASrtMBkceb70z6lAkTl1NWFr8cUClv3Z0skJTX1WHV8VO6Vl3NqGU3h9GtrNGIRwrfzse4bvJLDCtr42hnFf/63jj+ce/FTPr347w39Q90lX+48a2uqxSB1gPplTP4tu4etexmmm6/I266zaqr+eht3wAiU3FdTU1UNDQwatnN1C5YkK+uZqTPwGNmqa7b/mdZ6IvI6aLTMsPLI38h1w7pYG7D2wBUfDCWT9T/BU/8+/8bymoBTzYf4a59TRzs6GR0VSUrJjRwZX2fa+dKkNox0XT4gPI+NNQvLNlAkygWSJIFmGILNIn6XDLHzLqJ7EBqKbTl7h486V5ktGROAVl1YeCH1LFTNRyY+7PQto5OTGD6AAAPzklEQVR+svkIy/fsp637w/dLTZlxz5SxCj7pSrzGA1BZAwvuK6ltzwejVJfM6e8azxHgYSKrVPf19fUB9VYkmSTTL8PL20MLOgB37WuKCzoAbd3OXfuKK5uoIExdFAkytWMBi3xX0BlU+rvG8wowwd339lXJzPTuk9xIY1rmrReb2b5hL8ePdDBsZBUzF07M2nYEBzs60yqXfkxdpEAziPU34nkFmJZCO+8R2RpBJLvm3BGZhumtsiZS3stbLzaz5ZHdHD/SAcDxIx1seWQ3b72YndTq0VWVaZWLSHJ9jnjc/RvAN/prxN2fB8Kb95DBI/ZX8eY7I9NutWMiQSfhr+XtG/bSdbI7rqzrZDfbN+zNyqhnxYSGwGs8KyYEp72e2HGYo5ve5VRLB+V1VYyYN46h00b1HA9rLx0lREghGjTp1GZ2OTAfGAE86O7P5LlLkqoUpmViI51Uy9MV+7BO5UP8xI7DtKx7G++MBMJTLR20rItk4g2dNor1Ow7G7R56sKWNFeteA8hq8ElMiDjQ0cnyPfvjXo9IPvQ51WZmnzWzYdk8oZnVmdkTZrbbzHaZ2cwM23nIzA6b2esBxy4zsz1m9o6Z3Qrg7uvd/VrgeuBLA3sVUmiGjaxKqzwTV9aP5OVPfYym2Z/g5U99LOmH99FN7/YEnRjv7ObopncBuHvTnrgtqwHaOk9x96Y9WesrKCFCCld/13j+Bbgg9sDMyszseTObPIBzrgb+j7ufB/wJsKv3QTMbZWbDE8omBbTzE+CyxEIzKwd+BHwh2verzOyCXlW+GT0uJWTmwolUDIn/da4YUsbMhRND78upluBRVqz8UEtb4PFk5ZlSQoQUqv4CT+L9Owb8OTA8oG6/zKwW+DTwIIC7n3T3xFXvPgOsN7Oq6HOuBX6Y2Fb0utKRgNNcDLzj7vvc/SSwFlhoEd8Dfunur2bSfylc586oZ/bV5/WMcIaNrGL21edlLastyMZ9G5n7xFym/nRq3JYM5XXBo6xY+Tl1NYHHPzrcs7rfjBIipFCFfY1nPJEMuH8ysz8hkjW31N1PxCq4++NmNh541MweB74CfD6Nc4wGeuffHgBmADcBnwNqzWySuz+Q+EQzWwAsmDQpaIAlhe7cGfU5DTS99bXV9aXz/izuGg+AVZYxYt44AG6ZNyXuGg9AdYXzxfFrexbCjO03A2R8t366CREiYQl7W4QK4CLgx+4+DTgB3JpYyd2/D7QDPwa+6O7HB3pid7/P3f/U3a8PCjrROo3ufl1tbe1ATyclrq+trodOG0XdFZN7RjjldVXUXTG5J6vt8mmjueuKjzO6rgYDRtfV8JWPP0X58F/xt4equXl/DX97qJpfHTs5oP1mrqwfyT1TxjKmqhIDxlRVaqUFKQipjHhGm9mE6L/Le5WdtjGEu+/rp60DwAF3fzH6+AkCAo+ZzQIuBH4OfAu4MYV+xhwExvZ6PCZaJpI1/W11PXTaqLj06USXTxsdl8H2vcav8egfhtDpkdntP5wyHv3DEOAwlwygn1fWj1SgkYKTyojnCeDt6NfuaNn6XmW9v/rk7s3AfjObEi2aA7zZu46ZTQPWAAuBa4CzzOw7KfQz5iVgspmNN7MhwGLgqTSeL9KvbG91/fTRqp6gE9PpxtNHs5eVJ1Io+hvxXJODc94EPBINCvsCznEGsCi2TE90hewvJzZiZj8DLgXONrMDwLfc/UF37zKzG4FNREZoD7n7Gzl4HTKILb1oadw1HhjYlgx/6AperDdZuUgx62/lgp9m+4Tu/msg6eql7r4t4XEn8A8B9a7qo42ngacH0E2RPsW2Xlj96uqsbMlQP7SBphOn319TP1SJAFJ6Bs3KBSLZls2trrM9ghIpZAo8IgUg2yMokUKmwCNSILI5ghIpZGHfxyMiIoOcAo+IiIRKgUdEREKlwCMiIqFS4BERkVAp8IiISKgUeEREJFQKPCIiEioFHhERCZUCj4iIhEqBpxczW2Bma1pbW/PdFRGRkqXA04u2vhYRyT0FHhERCZUCj4iIhEqBR0REQqXAIyIioVLgERGRUCnwiIhIqBR4REQkVAo8IiISKgUeEREJlQKPiIiESoFHRERCpcAjIiKhUuAREZFQKfCIiEioFHh60X48IiK5p8DTi/bjERHJPQUeEREJlQKPiIiESoFHRERCpcAjIiKhUuAREZFQKfCIiEioFHhERCRUCjwiIhIqBR4REQmVAo+IiIRKgUdEREKlwCMiIqFS4OlFq1OLiOSeAk8vWp1aRCT3FHhERCRUCjwiIhIqBR4REQmVAo+IiIRKgUdEREKlwCMiIqFS4BERkVCVfOAxs/PN7AEze8LMvpbv/oiIDHZFGXjM7CEzO2xmryeUX2Zme8zsHTO7FcDdd7n79cAi4JJ89FdERD5UlIEH+AlwWe8CMysHfgR8AbgAuMrMLoge+yKwEXg63G6KiEiiogw87v48cCSh+GLgHXff5+4ngbXAwmj9p9z9C8DV4fZUREQSVeS7A1k0Gtjf6/EBYIaZXQpcAVTRx4jHzK4DrgP4oz/6o9z1UkRkkCulwBPI3Z8Dnkuh3hpgDcD06dM9t70SERm8inKqLYmDwNhej8dEy0REpICUUuB5CZhsZuPNbAiwGHgqz30SEZEERRl4zOxnwHZgipkdMLOvunsXcCOwCdgFPObub+SznyIicrqivMbj7lclKX8apUyLiBS0ohzxiIhI8VLgERGRUCnwiIhIqBR4REQkVAo8IiISKgUeEREJlQKPiIiESoFHRERCpcAjIiKhUuAREZFQKfCIiEioFHhERCRUCjwiIhIqBR4REQmVAo+IiIRKgUdEREJl7p7vPhQcM2sF3s53P4pILdCa705IXp0NvJ/F9nL1OxXG72rY74dCev9Ndvfa/ioV5Q6kIXjU3a/LdyeKhZmt0c9rcDOzl919ehbby8nvVBi/q2G/Hwrp/Wdma1Kpp6m2YI357kCR0c9Lsi1Xv1Nh/K6G/X4opPdfSn3RVJuIDFi2RzxS2jTiEZFsSGmKRQQ04hERkZBpxCMiIqFS4BERkVAp8GSJmZ1vZg+Y2RNm9rV896fQ6eclkl9mdrmZ/YOZPWpmc8M8d0kFHjOrNrNfmdlvzOwNM/vbAbT1kJkdNrPXA45dZmZ7zOwdM7sVwN13ufv1wCLgksxfRXjMbKyZbTGzN6M/r6UDaKvkf16SOv1hkTozq4v+nHab2S4zm5lhO+m+B9e7+7XA9cCXBvYq0uTuJfMFGDAs+u9K4EXgkwl1RgHDE8omBbT1aeAi4PWE8nJgLzABGAL8BrggeuyLwC+Bv8r3zyLFn1cDcFH038OBt2KvRT8vfQX8Hz8EHA74P74M2AO8A9yacKwM+N/57nshfwE/Bf5z9N9DgLqE4zl7D0aP/yD2ORDWV0mNeDziePRhZfQrMW3vM8B6M6sCMLNrgR8GtPU8cCTgNBcD77j7Pnc/CawFFkaf85S7fwG4OhuvJ9fcvcndX43++xiwCxidUE0/L4n5CZEg08PMyoEfAV8ALgCuMrMLose+CGwEng63m8XDzGqJBIwHAdz9pLu3JFTLyXvQIr4H/DL2ORCWklsyJ/pGeAWYBPzI3V/sfdzdHzez8cCjZvY48BXg82mcYjSwv9fjA8AMM7sUuAKoogjfaGY2DphGZJTYQz8viXH356O/J731fKgBmFnsD4s33f0p4Ckz2wj8c5h9LSLjgfeAfzKzPyHy2bXU3U/EKuTqPQjcBHwOqDWzSe7+wMBeSupKLvC4+yngE2ZWB/zczC5099cT6nw/+gb5MTCx1yhpIOd9DnhuoO3kg5kNA54Ebnb3o4nH9fOSPugPi4GpIDI9dpO7v2hmq4Fbgdt7V8rRe/A+4L6BtpOJkppq6y06XN1CwtQAgJnNAi4Efg58K82mDwJjez0eEy0rSmZWSSToPOLu65LU0c9L0uLuz7n71939v7j7j/LdnwJ2ADjQa2bmCSKBKE6pvQdLKvCY2UeiIx3MrIbIcHR3Qp1pRJb3WAhcA5xlZt9J4zQvAZPNbLyZDQEWA09lo/9hMzMjMre8y93/Pkkd/bykLwX3oVZM3L0Z2G9mU6JFc4A3e9cpxfdgSQUeIllaW8xsJ5Ef9r+4+y8S6pwBLHL3ve7eDSwBfpfYkJn9DNgOTDGzA2b2VQB37wJuBDYRuRj/mLu/kbNXlFuXAH8NfNbMfh39+ouEOvp5SV8K7kOtCN0EPBL93PoE8HcJx0vuPai12kQkJdEPtkuJbPr2e+Bb7v5g9I+Ve4mk7T7k7v89f72UYqDAIyIioSq1qTYRESlwCjwiIhIqBR4REQmVAo+IiIRKgUdEREKlwCMiIqFS4BERkVAp8IgMgJl92cw8ydfnonWmm9ma6EZf/25m/2Zmj0RXHE71PKPN7ISZTe9V9hMzO5Ck/ueifbg0jXNMi/bvj1J9jkgmSm51apE8+Y9EFnzsLbbm1mLgY0RWAn6DyIrOtwMvm9kn3H0//fs2sMXdX85Sf0/j7jvM7F+i5/qbXJ1HRIFHJDt+7e7vJDn2PXd/r3eBmW0DfgtcC9zRV8Nm9lHgPwF/mY2O9uN/AhvMbIW7HwrhfDIIaapNJMcSg0607HdENgBL3PE1yJeBY0QWecxIP1OCK3tVfQY4Gj2nSE4o8IhkR7mZVfT6Ku+rspmdD4wislpwfy4DtkdXGQ5qqyLxi9Pf2xuBmQlf90eP9fQheo7tBOxjJZItmmoTyY7dCY+3AX8eVDEaGB4gMuJ5sK9Go3smzQBWJakyGujsr3PRUVfPyMvMLiEyzbfK3R9NqL4DuMXMyqLL8ItklQKPSHb8JfHJBcf6qHs/8Clgvrv/oZ9264AaegWNBIeB+QHlFwOBO3+a2TgiO1luApYHVHmPyJbVI4H3++mfSNoUeESy4/U+kgt6mNl3geuAv3H3Z1Jotzr6vSPJ8c6gTLfYTrwB5SOAXxAJkn+VZETTFv1ek0L/RNKmwCMSEjO7DfhvwE3u/r9SfNoH0e9nZuH85cCjREZRM9z9RJKqI6PfNdqRnFDgEQmBmX0d+A5wm7vf31/9GHc/aWa/BSZkoRt/D8wCZrn7wT7qjQf2u3tbH3VEMqbAI5JjZraYyNbQ/wd41sw+2evwUXd/M/iZPZ4ncs1moH34OnAXUJXQhwPu3vv61IzoOUVyQunUIrl3GWDR79sTvv5HCs9/FLgwmhSQqfOi31cE9OE/xyqZ2VjgT4C1AziXSJ/M3fPdBxHpg5mVAW8D/+Tu38nxuf4b8DVgorufyuW5ZPDSiEekwEUzz+4AbjKzM3J1HjOrBpYCdyjoSC7pGo9IcfhnIjeLjuPDxUezbRywGkg1404kI5pqExGRUGmqTUREQqXAIyIioVLgERGRUCnwiIhIqBR4REQkVP8/9sttJOGAYc0AAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "\n", "for m in environment.random_motors(100):\n", " #print m\n", " formants = environment.update(m)\n", " #print formants\n", " plt.loglog(2.**formants[1], 2.**formants[0], 'o')\n", "\n", "\n", "plt.xlabel(\"F2 (Hz)\", fontsize=16)\n", "plt.ylabel(\"F1 (Hz)\", fontsize=16)\n", "plt.xlim([3000., 500])\n", "plt.ylim([1200., 200.])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The DIVAEnvironment outputs the frequency of the first and second formants (F1 and F2) in octaves - or log2(Hz) - but here we plot their frequencies in Hz, with the axes reversed and F2 on the x axis as in Praat conventions. Each dot is one sound produced with a random articulatory position (and you should have heard them if you enabled audio and turned sound on." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Trajectory of sounds\n", "\n", "The Diva Environment can also take a trajectory of sounds as input and will then output the trajectory of the corresponding formants. Here we define an articulatory trajectory where only the first articulator (the jaw) moves, from 1 to -1. We also plot the trajectory in formant space." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(1200.0, 200.0)" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "m_traj = np.zeros((1000, 7))\n", "m_traj[:, 0] = np.linspace(1, -1, 1000) # The jaw moves linearly for 1 (completely close) to -1 (completely open)\n", "\n", "s = environment.update(m_traj)\n", "\n", "plt.loglog(2.**s[0][1], 2.**s[0][0], \"ro\") # Start: red dot\n", "plt.loglog([2.**formants[1] for formants in s], [2.**formants[0] for formants in s], 'b-')\n", "\n", "\n", "plt.xlabel(\"F2 (Hz)\", fontsize=16)\n", "plt.ylabel(\"F1 (Hz)\", fontsize=16)\n", "plt.xlim([3000., 500])\n", "plt.ylim([1200., 200.])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's listen to the sound trajectory:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import IPython\n", "IPython.display.Audio(environment.sound_wave(environment.art_traj).flatten(), rate=11025)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## II. Generating sound trajectories with Dynamical Movement Primitives\n", "\n", "In order to define an arbitrary trajectory of the 7 articulators for n time steps, we would need 7 x n values. However, if we consider that a realistic vocal tract cannot produce a trajectory with quick discontinuities, so we could use a representation of trajectories with less degrees of freedom. Also, a compact representation of sound trajectories will make learning by an agent easier. The Dynamical Movement Primitives (DMPs) framework allows to represent smooth trajectories with few parameters. See [here](https://studywolf.wordpress.com/2013/11/16/dynamic-movement-primitives-part-1-the-basics/) for a nice tutorial on DMPs. In this framework, each of the 7 articulators position will be parameterized by the starting and ending point of the trajectory plus one parameter on each basis function to modify the trajectory from the starting point to the end." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "import os\n", "import numpy as np\n", "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "from explauto.environment.diva import DivaDMPEnvironment\n", "\n", "diva_cfg = dict(diva_path=os.path.join(os.getenv(\"HOME\"), 'software/DIVAsimulink/'),\n", " synth=\"octave\",\n", " m_mins = np.array([-1] * 28),\n", " m_maxs = np.array([1] * 28),\n", " s_mins = np.array([7.5]*10 + [9.25]*10),\n", " s_maxs = np.array([9.5]*10 + [11.25]*10),\n", " m_used = range(7),\n", " s_used = range(1, 3),\n", " n_dmps = 7, # parameters controlled by DMPs\n", " n_bfs = 2, # basis functions\n", " dmp_move_steps = 50, # trajectory time steps \n", " dmp_max_param = 300., # max value of the weights on basis functions\n", " sensory_traj_samples = 10, # samples of the formant trajectory to output\n", " audio = True)\n", "\n", "environment = DivaDMPEnvironment(**diva_cfg)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here we defined a Diva Environment with articulators trajectories generated through DMPs. We designed DMPs with 2 basis functions so that each articulator has 4 parameters: the starting and end position plus 2 weights for the basis functions. The total number of parameters is thus 7 x 4 = 28.\n", "\n", "Given a set of 28 motor parameters, the environment outputs a formant trajectory (with 'sensory_traj_samples' time steps).\n", "\n", "In the following we generate 28 random parameters that we feed to the environment which computes a trajectory of the 7 articulators (through DMPds), and then the correponding formant trajectory (through DIVA). We first plot the articulators trajectory generated through DMPs:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "warning: load: '/home/sforesti/software/DIVAsimulink/diva_synth.mat' found by searching load path\n", "warning: load: '/home/sforesti/software/DIVAsimulink/diva_synth.mat' found by searching load path\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZkAAAEPCAYAAACQmrmQAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXd4VFX6xz9n+iST3ntCkQ6CKCiIuvaCrGUVFbuiv7WubdcVG66ugrquDcEuit21VwSxgQIiVWogIb23Saaf3x93AgESMsBMMiHn8zz3ufeec+7MG0jmO+ectwgpJQqFQqFQhAJddxugUCgUioMXJTIKhUKhCBlKZBQKhUIRMpTIKBQKhSJkKJFRKBQKRchQIqNQKBSKkBF2IiOEeEkIUSGEWNNBvxBCPCmE2CyEWCWEGNWm71IhxCb/cWnXWa1QKBSK9gg7kQFeAU7ZS/+pQH//MRWYBSCEiAfuBcYARwD3CiHiQmqpQqFQKPZK2ImMlPJ7oGYvQyYBr0mNJUCsECINOBn4RkpZI6WsBb5h72KlUCgUihBj6G4D9oMMYHub+yJ/W0fteyCEmIo2CyIyMvKwgQMHBsUwt8/NxtqNZNgyiDXH7nWsT8K6knoSbGbSYixBeX9F1+D1ScobHFTbXeiFIDnaTILNjOhuwxSKLmT58uVVUsqkzsb1RJE5YKSUc4A5AKNHj5bLli0LyusuK1vG5V9dzuwTZ3NU+lF7HbtwQwWXv7yU1644ggmHdPr/pAhDNpU3Mv3TdfywqYrktGgeOmsoI7PVCq2idyCEKAhkXNgtlwVAMZDV5j7T39ZRe5dRai8FIC0yrdOxizZUYjHqOCIvPtRmKUJE/5QoXrviCJ6bMopau4uzZ/3M3R+uocHh7m7TFIqwoSeKzMfAJX4vs7FAvZSyFPgKOEkIEeff8D/J39ZllNnLAEiNTO107PcbKxnbJwGLUR9qsxQhRAjBKUPTmH/rMVx2VC5v/FLA8Y8t4rNVpajkswpFGIqMEOJNYDEwQAhRJIS4UghxrRDiWv+Qz4F8YDPwPPBXACllDfAAsNR/TPe3dRml9lLizHFYDda9jiusbia/ys4xapnsoMFmNnDvxCF8eN04UqLNXDfvNy5/ZSnlDY7uNk2h6FbCbk9GSnlBJ/0SuK6DvpeAl0JhVyCU2ksDmsUs2lQJoETmIGR4Ziwf/nUcry0u4NGvN/CX5xYz7+oxZMZFdLdpil6IlBLcbnwuF7L1cDqRLhc+lwtzv37ozOaQ2hB2ItOTKbOXkR2V3em4RRsqyYq3kpcY2QVWKboag17HFePzGJkdyyUv/cr5s5fw5tVjyU5QQtPbkR4PPocDX3Mz0uHA1+JAOlrwtTjwOVq0NoejzdmJz6mdpdOBz+H0i4Rz57XTic/Z5trtQjp3igl7Wbbt8/lnmPv0CenPrEQmSEgpKWkqYUzamL2Oc3l8/LylirNHZSCEcno9mBmZHcebV49lyou/cP6cxcy7eqz6YtHDkG433qYmfE1N+Bob8TY24bP77+12fHY7Xv/ZZ7fja27WBKS5Zce1r7kZX0sLsqUF6d4PpxAhEBYLOrMZYTYjLGZ0Zot2bTahs9nQJyQgTKadY0wmra/12tR6NrZpM2FITgn+P9puKJEJEo3uRpo9zZ16li3bVkOzy8sxhyR3kWWK7mRoRowmNC/8wnmzF/Pm1WPolxzV3Wb1OqTLhae2Dm9dLd7aWrx1dXhra/H4r331DXgbtMPXUI+3vgFvYyOypaXzFxcCXWTkzsNqRRcRgT4xAWNEFrqICHQWK7oIK8JqRWeNQGe1oLNaERYrOqtFExGL/2y1IszmHffCaOzRX0iVyASJ0ibNfbmzPZlFGysx6gVH9U3oCrMUYcCgtGjemjqWC57/hfNnL+GNq8cwMDW6u806KPA5HHjKy3GXl2vnsjI8lZV4q6rwVFXjqa7GU1WFr76+w9fQRUaij4lBFxODPioKU24uuuho9NEx6KJs6G1R6KKi0EfZ0Nls6GxR6G07RUVYrT1aBEKNEpkg0eq+3NlMZtHGSg7PjSfSrP7pexP9U6J4+5qxXPj8Ei6Ys4TXrxrDkPSY7jYr7JEuF+6SElzbi3AXbdfO27fjKirCU1qKt65uj2d0kZEYEhPRJyZi7tuXyDFj0CcmYIhPQB8Xhz4uFn1sLIa4OPQxMQiTqRt+st6D+qQLEoEEYpbVO1hf1sidpwYnjY2iZ9E3ycY71xzJ5DlLuPHNFXx58wSM+rCLIugWfC0tOPPzcW3ZgnPzFpxbtuDavBnX9u3g8+0YJ0wmjFlZGDMzsB46AmNKCoaUVIyp/nNKMrpIte8VTiiRCRKl9lIMOgMJ1o6Xwb7f6HddHqBcl3srOQmR3H/mEKbOXc5bvxZy8ZG53W1Sl+NracHxx3oca9bQsmY1jjVrcW3dutMLymDAlJuDeeBAok8/DWN2NqasLIyZWRiSEhE6Jcw9CSUyQaLMXkZqRCo60fEfwKKNlaREmxmQojZ+ezMnDk5hbJ94/jN/E2cemkGM1djdJoUUT20tzb/8gn3JElpW/I5z82bwegHQJyViHTqM6FNPxdy/P+Z+fTHl5CCMB/e/SW9CiUyQKLOX7XXT3+P18cOmSk4Zmqo2CXs5QgimnT6YiU//yLMLN3PnaYO626Sg4m2y07xsKc1LNGFxrl8PgC4iAuvIkdiOOxbrsGFYhg7FmBJ6F1pF9xKQyAghjgLipZSf+u8TgKeBoWj5wf4upfSGzMoeQKm9lNEpozvsX1lUT4PDozIuKwDNtfmcUZm8/NM2pozNISu+ZwdqehsbaVqwgIYvv8L+449ItxthMmEdOZKkm24kYuxYrEOHqhlKLyTQmczDwLfAp/77mcBpwHzg/4B6tLxhvRKPz0NFc8VeZzK/b9e8YFTWZUUrt500gM9WlfLwl+t55sJRnT8QZngbGmhcsIDGL7/C/tNPSLcbQ2oqcRdegO2YY7COGoXOomol9XYCFZlBwCMAQggjcC5ws5TyJSHEzcA19GKRqWqpwiu9pNk69ixbW1xPcpSZ5Cj1R6fQSI2xcM0xfXhi/iauGFfDYTk94wtIy5q11L7+Og2ff450uTCkpxF30UVEnXwS1hEj1Ma8YhcCFRkb0OC/PgKIZOes5jeg84RdBzGBuC+vKalnaIaKi1DsytQJfXjz10Ie+PQP/vfXo8J2v066XDR8/Q21r79Oy++/IyIiiD33HGImTcIyfHjY2q3ofgIVmWJgBPADcCqwRkpZ4e+LA5pDYFuPoTXavyORaXF52VzRxClDOy9mpuhdRJgM3HbSAG5/bxWfrCrlzBHp3W3SLnjr6qh54w3q3nobT2UlxpxsUv55JzFnnYU+SnlJKjonUJF5E3hICHEs2l7MvW36RgGbgmxXj6J1JtPRnsy60gZ8Eoamq1Qiij05Z1Qmr/y8jUe+WM9Jg1PCopCdz+Wi9vU3qJo9G199PZFHH03ag/8icvx4tRym2CcC/W25D21PxozmBPB4m74RwLvBNatnUWovJdoUTaSx/UjjtSVa3iS1XKZoD51OcNfpgyiua+Gln7Z2qy1SSuo/+4z8006nYsYMrMOGkffRh2Q/PwfbhAlKYBT7TKczGf9G/2nAPCnlg7v3Syn/HArDehJl9rK978cU1xMfaSItRm36K9rnqL6JnDAohVkLt3DRmJxuCdBsXrqU8hkzcaxejXngQLJefAHbuHFdbofi4KLTryVSSjfwDpAbcmt6KKX20k5EpoEh6dFqc1SxV2458RAanR5e+Wlbl76vt7GR4jvuoODiS/BUVJD273+T9/57SmAUQSHQuW8+0CUFUIQQpwghNgghNgsh/tFO/3+EEL/7j41CiLo2fd42fR93hb2w97LLTo+XjeWNDFNLZYpOGJwezUmDU3jxx3waHPtR3Go/aF6xgq1nnU3DZ5+T+Ne/0vfLL4g9688IfffvCykODgIVmRnAXUKIkIarCyH0wDNoHmyDgQuEEIPbjpFS/k1KeaiU8lDgKeCDNt0trX1SyjNDaWsrdredRldjhzEyG8oa8fik2o9RBMSNx/enweHhtZ+3hfR9pNdL5bPPUjDlYpCSnNfnknTjDeis1pC+r6L3Eah32Z+AeGCrEGIJUAq0LRwtpZSXBsGeI4DNUsp8ACHEW8AkYF0H4y9gV0+3LqezOjJrirXwoqGqdogiAIZmxHD8wGRe+HErl43LwxaCukPukhKK77iDlmXLiZ44kdR77lbuyIqQEehMZjzgBiqBvv77o3c7gkEGsL3NfZG/bQ+EEDlAHrCgTbNFCLFMCLFECNElDgmdBWKuKaknymIgK159Q1QExo3H96eu2c1ri7cF/bUb588n/89n4fxjPekzHiFj5gwlMIqQEtDXJCllXqgN2Q8mA+/tlpgzR0pZLIToAywQQqyWUm7Z/UEhxFRgKkB29oElK+gsRmZtcT1D02PUpr8iYEZkxXLsgCRe+GErlx6ZG7QqqrVvv0PZffdhGTaMjEdnYjrA332FIhDCzem9GMhqc5/pb2uPyWhBojuQUhb7z/nAd8DI9h6UUs6RUo6WUo5OSjqwbabSplL0Qk+Sdc/XcXt9/FHWyLBMtVSm2Ddu+FN/auwuXl9SEJTXq37hBcruvRfbhAnkvPaqEhhFlxGwyAghIoUQNwoh3hNCLBRC9Pe3TxZCBKue8FKgvxAiTwhhQhOSPbzE/O8XByxu0xYnhDD7rxOBcXS8lxM0yuxlJEcko9ft6Y2zqbwJl8fHEBXpr9hHDsuJ4+j+icz5Pp8W1/5X0ZBSUvHY41Q8+hjRp59O5tNPqczIii4lIJERQmQBq9BS/PcHJgCtC7nHAbcFwxgppQe4Hq1GzR/AO1LKtUKI6UKItt5ik4G3pJRtnQ8GAcuEECuBhcDDUsqQi8zeYmTWqEh/xQFw0/H9qba7eOOX/ZvNSJ+Psvvvp/r554mdfD7pMx5R9VwUXU6gi72PAU7gELTlK1ebvkUE0cNLSvk58Plubffsdn9fO8/9DAwLlh2BUmovZUTSiHb71hbXE2nSk5fQfroZhWJvjM6N56i+Ccz+Pp8pY3P2KaeZdLspufOfNHz6KQlXX0XSLbeofUFFtxDoctmJwL1SygJ2dV0GTXTa9QA72PH6vJQ3l+9lJtPA4PRodDr1x63YP248vj+VjU7e/LUw4Gekx0PRzX+j4dNPSbrlFpJvvVUJjKLbCFRkTEBjB30xgCc45vQsqh3VeHyedkXG65OsK2lQS2WKA2JsnwSOyIvnuUVbcLgD25spnzGDpm+/JWXaNBKnXh1iCxWKvROoyKwCzumg71RgeXDM6VnsiJFpJ9o/v7KJFrdXBWEqDphbTzyE8gYnsxfldzq27r33qH1tLvGXXkr8lIu6wDqFYu8EuiczE3jPP+We528bLISYBFwJdEkKl3BjbzEyatNfESzG9EngtGGpzFq0mXNHZ5IR235gb/Nvv1F6/3Qix40j+fag+OIoFAdMQDMZKeUHwF+BvwDz/c2vATcD10spvwyNeeFNub0caD/af01xA2aDjr5JatNfceD887RBSAkPf7G+3X53SQlFN9yIKT2djMcfQxiCn45GodgfAo6TkVI+h7bBfzIwBW2ZLFNKOSdEtoU9pfZSbEYbUaY903KsKa5nUFo0Bn24xbsqeiKZcRFcc0xfPllZwq9ba3bp8zU3s/2665FOJ5mznkUfo2bPivAh0DiZS4QQCVJKu5RyvpRynpTyKylloxAiXghxSagNDUdKm9pP8e/zb/qr9P6KYHLtMX1Ii7Fw/ydr8fo0J08pJSX/vAvn+vVkPP4Y5j59utlKhWJXAv2a/TJaYsz2yPP39zo6CsQsqGmm0elhaIaK9FcEjwiTgTtPG8TakgbeWablka2aNYvGL78k+bbbsE2Y0M0WKhR7EqjI7M3JPpJe6sLcUdnlNcXapv8Q5VmmCDITh6dxeG4cj361gYpFP1L15FPETDqT+Csu727TFIp26XB3UAhxKDCqTdNEIcTQ3YZZ0VK8bAqBbWFNi6eFWmdtu+7La0rqMeoFh6SoFOqK4CKE4N6JQzj3iQUU/PNB4nNySL3/fhVsqQhb9uaCMomd6WIkcFcH46rR3Jh7Fa3Fytrbk1lb3MCA1ChMBrXprwg+QzNi+FfdYmzV5XjvfU4lvFSENXsTmSeAV9CWyvKBs4EVu41xAuW7JarsFeyIkYnYVWSklKwpqefUoe3Xl1EoDpSWNWsZ8tNnzO9zJEuLrLwqpZrJKMKWDkVGSlkP1AMIIfKAUimlq6PxvY0dZZd3Wy4rqm2hrtmt9mMUIUG63ZROm4YhIQHbTTfz/cLtfLqqlIkj0rvbNIWiXQINxiwA3EKIM4UQjwohXvaXP0YIcYwQotf9hpfaSxEIkiOSd2lfqyL9FSGk+uVXcK5fT8o9dzPlhKEcmhXLPz9YTWF1c3ebplC0S6BxMnHAz8CHwNXAJUCCv/tq4B8hsS6MKW0qJSkiCaNu1/oc60ob0QkYmKo2/RXBxbl1K1VPP03USScRfeKJGPU6nrpgJAi44c3fcHl83W2iQrEHge5Mz0QrizwOTVzaLgDPB44Psl1hT1lz++7L26rspMda96n2h0LRGdLno+yeexEWCynTdvrgZMVHMOOc4awsqmfGl+2nnFEoupNAExxNAm6TUi4WQuz+6VmIJkC9iudOeI4mV9Me7QU1zeSqImWKIFP37ns0L11K2r8ewJi86xLtqcPSuHhsDi/8uJUj+yZw/KCUbrJSodiTQGcyNrTiZO1hYe/BmgclBp2BWEvsHu0F1XZyEiK6wSLFwYq7vIKKmTOJGDOGmHPar7hx1+mDGJQWza3vrqS0vqWLLVQoOiZQkdkAnNRB3zHA6uCY07Opb3ZT1+xWIqMIKpWPP450uUib3nHQpcWo55kLR+Ly+Ljpzd/xeNX+jCI8CFRkngVuFkLcBWT722KFEJcD1wPPBMsgIcQpQogNQojNQog9HAqEEJcJISqFEL/7j6va9F0qhNjkPy4Nlk2BUlBjByBHLZcpgoRj/XrqP/6YuIunYMrJ2evYPkk2HjxrKL9uq+HJb3tdEg5FmBLQnoyUco4Qog9wPzDd3/wN4ANmSCnfCIYx/v2eZ4ATgSJgqRDiYynlut2Gvi2lvH63Z+PRMhSMRstQsNz/bG0wbAuEbX43UrUnowgWFY8+hi46msSpUwMaf9bITH7aXM1TCzdzWG48xxySFGILFYq9sy/1ZP6Blon5WmAaWhGzAVLKjtLN7A9HAJullPn+wM+30JwOAuFk4BspZY1fWL4BTgmibZ1SUKXNZLLj1XKZ4sBp+ukn7D/+SOK11+5TjZjpk4YwICWKa+cuZ+m2ms4fUChCyD6Vz/MHZT4fIltAK4q2vc19ETCmnXHnCCEmABuBv0kpt3fwbEZ7byKEmApMBcjOzm5vyH6xrbqZlGgzVlP3ui97PW4aqiqpryinobKc+opymqqrcLuceN1uPC4XXo8bj8uN1+NGp9djNJsxmi0YTGaMZjMGsxlLpI2ImFgiY2KJiIkjIla7tkZFI3QqL1sokT4fFY89hjEjg7iLLtynZyNMBuZeOYbz5yzm8peX8sZVYxiRtaeTikLRFeyTyAghstDclffIyCelXBAsozrhE+BNKaVTCHEN8Crwp315AX81zzkAo0ePDlretcIae5fvx0gpqS0toXDNSravWUnp5o001lRBm3RyOr0eW3yCX0RM6I0mDEYDJmsEeoMBn9eL2+nEabfTVFuDx+nE7XTgaGrE69mzioNObyA6MYnopGSik1KISUomOjmFmKQU4tIzNBFSubQOiIbPPsO57g/SZ85EZzLt8/NJUWbmXTWW82Yv5pKXfuXNq8cyOF3VN1J0PQGJjH8/5g205SzY6bIs/dcSCMbX92J2jbnJZDfXaSlldZvbF4AZbZ49drdnvwuCTQGzrbqZ4waEfg28uaGerSuWUbhmJYVrV9FUXQWALSGRzIFDiE1NJyY5RTuSUrDFJ6DT7/t/j5QSZ7Od5vo6muvqsNfXYa+rpam2mobKChoqy9m6Yin2ul23vcyRkcSlZRCXlkF8WgZx6RnEZ2QRl5aBwWjs4N0UrficTir/8wSWwYOJPv20/X6d1BgLb1w1hvNmL2bKi7/w9tSx9FflJxRdTKAzmRfQvMpuBtYDoUqUuRTo70/IWYxWq2aXtQIhRJqUstR/eybwh//6K+Ahfwoc0Fyu7wyRnXtgd3qobHSGdCZTXVTI8s8/4o/vF+Jxu7BERZM9ZDjZZ40ge+hwYlPTgzqDEEJgibRhibQRn57Z4Ti3y0ljVSV15aXUlZZQU1JMbWkxRevW8McPC3e+nk5HbGo6iZnZJGRmkZCZTUJWDvHpGegNSnxaqX1jHu6SEtIe/NcBL0tmxUcw72ptRnPRC7/wzjVHkpuoHFMUXUegInM4cJmU8v1QGiOl9AghrkcTDD3wkpRyrRBiOrBMSvkxcKMQ4ky0apw1wGX+Z2uEEA+gCRXAdClll+16FtZonmXBjpGRUlKw8jeWf/4R21b+hsFoYtCE4xhxwqkk5/YJi70Ro8lMfHqmJkQjd+1zOxzUlpVQXbyd6u2FVBcVUlVUyOZlS5A+LZZDp9cTn55JQlYOSdm5JGbnkJiVS3RScq9bdvPW11M1ezaRRx9N5JFHBuU18xIjeeOqMZzvF5q3rxlLZpxyTlF0DSKQUjBCiD+AO6SUn4TepK5l9OjRctmyZQf8Ol+uKeXa13/j0xvGByUDs5SS9T9+xy8fvkt1USGRsXEcetLpDD/xVCKie36GZ4/bTW1pMVXbC6gq3KYd2wtoqKzYMcZkjSApJ5fE7DySsnP917mYLNZutDy0lM+cSc1LL5P34f+wDBgQ1NdeU1zPBc8vIcKkZ9aUwxiVHdf5QwpFBwghlkspR3c2LtCZzEPA34UQC6SU9gMz7eCkNUYmOwgzGXtdLV/PfpL835aSlJPHKX/9GwOOmnBQ7WcYjEZNOLJzYdwxO9qdzc1UFxVQWbCNysJtVBVu5Y8fFrKyZWcq+9iUNJJy8kjMziUpN4/knDyik1J6/KzHXVxM7dzXifnzn4MuMKCVn3h76pFMnbuMybOXMH3SECYfETzvSoWiPQINxpwrhBgIbBNCLAF2D3CUUsouj7APJwqqm4mPNBFtOTAh2PjLT3zz/DN4HA6OveRqRp06MSyWxLoKc0QE6YcMIv2QQTvapJQ0VFZQWbiNyoJ8qgq2UVm4lU1LF+/wojNZrdqMJ6d11qOdjT2oNHHFY4+DECTdeEPI3mNwejSfXD+eG99awT8+WM3q4nrunThElQpXhIxAvcsuQ9tE9wKj2HPjv9eVX96dA02M6bA3seDl2fzxw0JS+vTj1OtuJSGz1yW3bhchxA5vuX6jd4ZNuR0OqrYXUFmwlYqCrXvOeoQgNiXVLzh5JObkkpSdR0xSctgJd9OPP9Hw+eckXncdxrQ9S0gEk7hIEy9fdjgzv97A7EX5rC9rZNZFo0iO7jmCrOg5BLonUwAsA66UUtaF3KouJFh7MuMeXsDhuXE8MXlk54N3o2DV73w56z/Y62oZe/Zkxpx1HnrDPoUwKfxos55ybbmtYCuVBVup2r6N2rLSHbMeo8VKYnark0EuSVna2WKzdYvNPoeD/DMnIXQ68j76EJ3Z3GXv/emqEm5/dxVRFgOzpozisJz4LntvRc8m2HsyCcCzB5vABAunx0tJfQs5CR27+XbEuu8X8MWz/yE+LYNJ/5pGat/+IbCw96DNelKJSU6l3+Fjd7S7HQ6q/Hs9VYWaAG1c/COr5n+5Y4wtIZGkrBwSs3NJzMohISuHhIwsDPsRDLkvVM2ejbuwkOxXXulSgQE4Y3g6fZNsXDN3OX95bjGXHpXLLSceQtQBLvsqFK0EKjI/AoOAb0NoS49le00LUkJu4r4tl/3x43d8+ewTZA0exll/vwejWS1XhAqjxUJavwGk9du5oS6lpKm22r/Hs22Hp1vhmpU7Mh0IoSM2LZ3ErGwSs3J2iE9cavp+BbjujnPLFqpfeJGYSWcSOba9DEqhZ1BaNJ/cMJ5Hv9rAKz9v4/PVpdx9xmBOH5bW450pFN1PoCJzE/COEKIW+JI9N/6RUvbaAhYF1a2JMQMPctuw+Ee+ePpxMgYO5qw7lMB0B0IIouITiYpPJG/kzlm/1+OhrqxUE53t26gq1MRn0687HQ30BsOO2J7ErByS8/qSkteXiJjAc4RJKSm79z50EREk33FH0H++fSHGauSBPw/lnMMymfbhaq6ft4J3DinigUlDVOkKxQERqMi0RtW/1kG/3IfXOujYmeI/sJnMpl9+5rMnZ5B2yEDO+se9PcoDqjegNxj8GQmyGHDk+B3tbqeDmuIiv/gUUL29gOIN61j/06IdY2xx8STn9SU5rx8peX3JGjIcc0T7vxf1H/yP5mXLSH1gOoaEhJD/XIFwaFYsH103nrmLt/Ho1xs58T/f89dj+3LV0X2wmXvtn7jiAAj0t2Y6yoOsQwqr7USZDcRHdr52v3nZL3z630dI7dufs/9x30EdWHiwYTRbSOnTj5Q+/XZpd9ibqNyWT/nWLVRsy6di6xa2rliOlD4MRhN9DjuCgeOPIe/Q0TtinTy1tVTMnIl11ChiOyip3F3odYLLxuVx6rA0Hvh0HU/M38TLP23j0qNyufyoXOIC+D1XKFoJyLvsYCYY3mWXvvQrVU1OPrvx6L2Oy1+xlI9mPkhybh7nTvsX5gi1DHGw4nY4KM/fzIYlP7Jh8Q+0NNRjjozkkDHjGDjuWHSvv0njp5/S538fYO4f3s4eK7fX8ex3m/lqbTkRJj0XHpHNVUf3ITVGzcB7M4F6lymRCYLIHDtzIUPSY3jmolEdjindvIG37/sHCZnZ/GXag93mLqvoenxeLwWrf2f9j9+xaekS3I4WYpodHDvmWPpNm9bd5gXMxvJGnvtuCx+tLEEvBOcclsFFY3IYkq5KO/RGgi4yQggTcCowgD3ryUgp5QP7bGUYcKAi4/H6GHj3l0yd0Ic7ThnY7hi308Hcv9+Ex+3i4of/izVK1fXorTSt38Avf7uetTYT0mLhT5dfw9DjTuxRH9Lba5qZ831awHmIAAAgAElEQVQ+by/bjsvjY2BqFOeMymTSyHSSo9TsprcQ1DgZIUQ6mhtzLjtryMCu+zQ9UmQOlJI6Bx6fJHcvHjg/vPkqtaXF/OXuh5TA9GKaf1tByf/9H1l6PcPvvp/vvv2Ur2c/ydbfl3Hi1Buw2npGrZes+Age+PNQbj3pED5ZVcr7y4t48PM/ePjL9Uzon8jZozI5YVBKt1eIVYQHgW78zwQqgQlAIVpJ5ErgCuB8tNotvZJtre7LHXiWFa5ZyYovPmHkqRPJHjq8K01ThBENX39Nye13YExNJev5OZiyszl37FiWffo/fnxrLqWbrufU624he+iI7jY1YGIjTFw8NoeLx+awuaKJD34r4n8rirnhzRWYDTqO7JvAcQOS+dPAZLLiVWmB3kqgaWUKgduA99DquBwupVzu73sQGCqlnBRKQ0PFgS6XzV1SwN0frmHJncfvsRHqbLbz6u3XYzCauPiR/6pYmF5KzdzXKX/oIazDh5P53CwMcbum2C/P38xnTz1KbWkxR5x5DuMmX4xO1zNnAV6f5Jf8ar75o5zvNlSytUr7EtYv2cZxA5I4un8SI7NjVUaBg4BQpJUpkVL6hBB2oO1fyQLg+v2w8aCgoMqOxagjOWrPdCDfvfYCTdXVTJ4+QwlML0T6fFQ89hg1L76E7fjjyXh0Jjrrni7rKX36cfG/n2Dha8/z60fvUVm4jdNvvL1Heh/qdYKj+iVyVL9E7p0IW6vsLFxfwcINFbz6cwHP/7AVnYABqdEcnhvHYTlxjM6NJyNWufIfrAQqMkVAov96C9ry2Hz//RGAI8h29Ri2VTeTHR+BTrfrxu2W5b+wZuE3jDnrPNIPad8hQHHw4qmtpWz6dBq/+JK4Cy8g5a67EHtJQ2O0WDhp6g2k5PVjwcvPMW/abfz5jruJS03vQquDT15iJHnj87hifB52p4cVhXUs3VbD8oJa3l9exGuLCwBIiTYzOC2awenRDEqLZnBaNLkJkXv8XSl6HoGKzELgGOBDYDbwjBDiUMANnOxv65UUVNv3qJne3FDP17OfIik7lyPPvaCbLFN0B9LlombePKqenYXPbif5tluJv/LKgL3HRpx4KvHpGXz8n4eZ989bOONv/yBn2KEhtrpriDQbGN8/kfH9te+rHq+P9WWNLNtWw8qiev4obeD7TVV4fdoSvtWoZ0BqFH2TbPRJiqRvUiR9kmxkx0dgMfbM5cTeSKAiMw2IB5BSzhJCGNA2/COAGWgZAYKCEOIU4L+AHnhBSvnwbv23AFeh7Q1VAldIKQv8fV5gtX9ooZTyzGDZ1R4+n6SwppljByTtaJNS8u2Ls3A0NXHuXQ+gN6i1596AlJKmhQupeGQGroICIsePJ+Uff8fcr1/nD+9G1pDhXPTg43w4YzrvP3QPx116NYeefEaPcnMOBINex9CMmF3KlTvcXjZXNLGutIF1JQ2sL2vgh02VvP9b0Y4xOgEZcVay4yPIjI0gM85KRpyVzDjtOjnKjEEfXvWCejOBiowbKGi9kVI+BTwVbGOEEHrgGeBEtCW6pUKIj6WU69oMWwGMllI2CyH+D03kzvf3tUgpu+xrX3mjA6fHR3Yb9+VNv/zExiU/Mn7yJSTl5HWVKYpuxLFhA+UPP0zz4iWY+vQha85sbBMmHNBrxqakcsEDj/L504+y4OXZVBUWcOxlV2M0dW0pgK7GYtTvITwATU4PWyvt5Fc1kV9pJ7/KTlFtMws2VFDZ6NxlrE5AUpSZlGgLKdEWUqMtpMZYSIoyk2Qzk2gzk2AzkWAzYTaoGVGo6VRk/LOWauAs4JMQ23MEsFlKme9/77eAScAOkZFSLmwzfgkwJcQ2dci2ql0TY0qfj5/efp3ErBwOPzO88lEpgo+7uJjKp5+h/qOP0EVFkXLXXcRNPh9hDM7s1RwRwaTb7uKnt+by60fvUbxhHaded8seudN6AzazgWGZMQzLjNmjz+H2UlzXQlFtC0W1zZTVOyird1De6KSwuplft9ZQ3+Ju93WjLQYSbWbiIk3ERRiJizD5r7X7GKt2RPvPMRFGosyGg25WGUo6FRkppUcIUY5WejnUZADb29wXocXkdMSVwBdt7i1CiGVoS2kPSyk/bO8hIcRUYCpAdnb2fhtbWKO5Z7YGYm769WdqSoo4/aY7glJrRBGeeGpqqJ49m9p5b4IQxF9yCYnXXoM+NvA0/4Gi0+k5+sLLyBo8jC+f+y/zpt3KkedeyBGTzlW/Y34sRj19k2z0Teo4VZPD7aWy0Ullk5PqJhdVTU6qGp1U211UNjmpa3ZRUudgbUkDNXYXTk/HlUv0OoHNbCDaaiDKbCTKYiDa6j9bjESa9djMRmwWAzb/tdZmIMJk0M5mPZEmA/pe4NgQ6HLZ62j7IJ+H0JZ9QggxBRiN5pDQSo6UslgI0QdYIIRYLaXcsvuzUso5wBzQ4mT214Zt1c0YdIK0GAtSSpZ88DZxaRkcMnbc/r6kIozxNtmpeeUVal56CZ/DQczZZ5F03XUY09JC/t65hx7GpY8+w/wXnuWnt+eSv2Ipp153S4/3PusqLEY9WfERAQeFtri81DS7qG92U9/Serh2XDe0eGh0uGl0eGh0eNhe00yjw0OTUztanRc6t0tHhMmA1agn0qzHajIQadITYdKurf5+i9HfZtRj8Z+tRj1Wkw7Ljms9FoMei1GPxai1mw26bp91BSoy24ALhRBLgY+AUnZL/S+lfCkI9hQDWW3uM/1tuyCEOAG4CzhGSrljQVZKWew/5wshvgNGorlch4SCajtZ8REY9Dq2LP+VyoKtnPLXv/XYQDpF+0iXi9q33qZq1iy8tbVEnXQSSTfdiLlv3y61w2qL4oyb7mD96DF8++Is5t5xI8dcfCXDTzil2z9IDjasJj0ZJut+xe9IKXF6fDtEx+7UhKjZpd03u7zYnTuvm10emp1erd3locXlpbbZjcPtpcXf73D7cHn3ry6k2aDbITxmw64C9Ph5h4Y8G0OgIvOM/5wBHNZOvwSCITJLgf5CiDw0cZkMXNh2gBBiJJrL9ClSyoo27XFAs5TSKYRIBMahOQWEjILqZnISIpBS8ssHbxOdlMLAccd0/qCiRyB9Phq++ILKJ/6Le/t2IsaOJfmWv2Ed3n3pgYQQDBp/LBkDh/DVrCeY/8IzrF7wFUdfcBk5ww8OV+eejhDC/6GuJ6mdIO39xeP10ez24nB7cbh8tPivW/xi5HB7cXi8tLh8O64dLi8Ojw+n24vD7cPh8eJsc+6K5bpARaZL3KT8+z/XA1+huTC/JKVcK4SYDiyTUn6MlkfNBrzr//bW6qo8CJgthPABOrQ9mXXtvlFwbKWgupnROXEUrl5J6eYNnHDVdegNqnrgwYB9yRIqZj6KY+1azAMGkPX8HCLHjw+bGUN0YhLn3vUA635YyE/vvM57D04je+gIjr7gUlL7HdLd5ilCgEGvI1qvI7qHpeRR9WT2M3dZVZOT0f+azz1nDCby29nUlZZw5VMv7qh8qOiZODZspOKxR7F//wOGtDSSbrqRmIkT9xqt39143G5WffM5S/73Di0N9fQfcxTjzr+YhIyszh9WKPaTYOcuU+xGQbXmvpxoL2LTujUcd+nVSmB6MJ7KSiqffIq6999HZ7ORfPvtxE25CJ05/ONSDEYjo06bxNDjTmT5Zx+x9JMP2PzrEvodMZbhfzqZnOEjEToVnKjoHgIWGSHEScD/0X7RMqSUfYJoV9hT4E/xX7/4SyJiYhl2/MndbJFif/A5HNS88irVc+bgc7mIv3gKif/3fyFxRw41JmsER557ASNOOo1ln3zA6oXfsOmXn4lOSmbocScy9LgTiYpP7PyFFIogEmjRstPQAjHnAwOBL9FSyoxDywTwQ6gMDFe2VTeT4qygYutKjr7wMpVluYchfT4aPvuciscfx1NaStSJJ5B8662YcnO727QDJiI6hgkXXc5R501h89LFrP72K35+5w0Wv/smeaNGM/jo48gZPhJLpCoBrgg9gc5k7kbzMPsbWoqZaVLK34QQh6Bt0n+xt4cPRgqq7Yy3/44l0sahJ53W3eYo9oGWlSspe/AhHKtWYR48iPSHHyZyzBHdbVbQMRiNDDxqAgOPmkBdWSmrF37N2u/mk7/8V4ROR8bAweQdOpo+I0eTkJUTNk4NioOLQEVmIHAP4ENzVzYASCk3CiHuQxOhd0JhYLiS6Komon4Lo/5yESarqvrXE3BXVFD52OPUf/QRhqQk0h56iJg/T+oV+xWxqWkcfcGljDtvCqWbNrD192Xk/7aUH+a9wg/zXiEqMYnc4SNJ7TeAtH6HkJCVreK9FEEhUJHxAR4ppRRCVALZwK/+vhKga6PSwoCRNcvZarUy8pSJ3W2KohN8Lhc1r75K9aznkG43CVdfTcI116C39byiYAeKTq8nY+BgMgYOZvzkS2isqWLriuVsXbGUjb/8xOoFXwNgNFtI6dOP1H6HkNKnHwkZWcSmpR/0CToVwSdQkdkA5PqvlwE3CyF+QssRditaRoBeRb/Dx5IxaAgWm1rXDle09PvfUf7Iw7gLCrEdfzwpd9yOKSenu00LG6LiExl+/MkMP/5kpJTUlZVQtnkjpZs3UrZ5Iyu++Bivx6MNFoLoxCTi0jKIT88kLi2d6KRkbHEJRCUkYo2K7hWzQsW+EajIvIEW7AhwL5oDQGuBBy+7ReX3BlRkf3jjKiyk7MEHsS/6HlPfvmS9+AK2cSqn3N4QQhCXlkFcWgaDjj4OAK/HTdX2QmpLi6ktKaampIja0mLWfDcft6Nll+f1BgORcQlEJSQQER2LJSoKqy0KS1T0jrMlMhKTNQKjxYLJYsVktWIwmdV+0G5IKZE+Hz6vVzv7vPh8PqRXO+/S3nrdpm2Xe68P6X9+l9fweekz8nDMEWGQVkZK+Uyb6+VCiGHAqYAVmB/KyHqFYl/wtbRQ/fzzVL/wIsJoJPnvfyd+ykVBS7/f29AbjKTk9SUlb9cVcSkl9rpamqqraKypoqmmmsaaappqqmmqrqKmpIiWxgYcTY34vHtP4C50OoxmCwaTCYPJhN5owmA0YjCa0JuM6PQG9Ho9OoMBnV6PTue/1ukQOi0BpBA6hE74Z1KaYO0iXK2XUrO9NfWidimR0qe1S+n/gN/ZJv0fzrR+SEuJbP0g9/mQ/qO9a98u47z+D/zd2v0f+m2FQcr9y1O2r1z22KzwEJndkVIWAc8H2RaFYr9prUxZ/uBDuIuLiT7jDJJvvx1jSnJ3m3ZQIoTAFhePLS6eVDpOYyOlxNXSgqOpgZaGBhzNdtyOFlwtLbj8Z7dDu/a63XjdbtwuF163C4/Lpd07HTg9XnxeDz6v1394dnzg4z+3flD733inDa25fCUgQCBA+A+tqY1YCWhzvaNdp0cIoQlb671Ot1PoWq8Nhp3Xen2bfu263XZ96+v4x+hbX9t/1u92btPe9vV0On2b652v3e6z/udiklND9Buyk30SGSHEccCRaIkyi4GfpZTfhcAuhSJgXNu3U/6vB2latAhz/35kv/YqkUccfC7JPREhBOaICMwREV3ygaYIPwINxowH3gWORfs+UAvEaV1iIXCelLImVEaGJR9dB801cMGb3W1Jr8XnclHz0ktUzXoOodeT/I+/E3+RWhpTKMKJQF1BngQOBy4GrFLKJLT9mEv87f8NjXlhjNBDwc+7TMsVXYf9l1/Z+uezqHziv9iOO44+X3xOwmWXKYFRKMKMQJfLJgJ3SinntTZIKd3AG/5Zzr9CYVxYkzYCfnsV6gohTrnEdhWe6moqZsyk/qOPMGZmkjVnNrYJE7rbLIVC0QGBiowX2NRB3wZ/f+8izV8gqnSlEpkuQPp81L3/PhWPPoavuZmEa68h8dpr0VlUzjiFIpwJVGQ+As4Hvm6nbzLwYdAs6imkDNaWzEpXwuAzu9uagxpnfj5l99xL87JlRBx+OKn33dvlpY8VBxleD3hawO3Qzh6ndnidba5d4HXvPPvaXnu0w+sGn1fra23z+bSz9Pr7PCB92rX07WyXXm25Xfr2csj2r5G7tmm+2a0+2YGfL/4fxIc2gX6gIvMJ8B8hxGdoDgDlQApwHjAEuEkI8afWwVLKBcE2NOwwWiFpoCYyipDgc7monvM81bNnIyIiSHvwX8ScfbYK3OvNeN3QXA32KnDUgaMeWvzn1sPZCK4m/2EHp//a3QzuFu3wuYNvm84IOgPo9Noh9DvvhR50Ou0sdDvbhM7fvtuB8I/ZvU/sOqa1bZdr2rR1cjZYg//vsBuBisx7/nMWWhDm7rzvPws077PekVkv/VDY9LX2rUB98AWV5mXLKL3nXlz5+USfcQYpd/4DQ0JCd5ulCBUeFzSWQkMxNJRo5/piaCzRBMVeBfZKTVj2hikKLNFgivQfNojJBLNN+2JojNDOBqv/3goGi/8wgd6snQ0W0Jv8h3HnWWf037cKisEvLiqdTkcEKjLHhdSKNgghTkHzVtMDL0gpH96t3wy8BhwGVAPnSym3+fvuBK5E2yO6UUr5VUiNTRsBv78BjWUQnRbSt+oteBsaqHj0MereeQdjRgZZz8/BdvTR3W2WIhh4PVBXANWb/ceWneeGYlqj8HdgjobodIhMgtShEJGoXUcmaNfWOLDEaIc1VhuvMkeHHYGmlVkUakMAhBB6tLo1J6LlRlsqhPh4t7Q1VwK1Usp+QojJwCPA+UKIwWj7Q0OAdGC+EOIQKWXonBLSRmjn0pVKZIJA4/z5lN0/HU91NfGXX07SDdejC3HKC0WIcDugYp32t1G2SjuXrwWPY+cYSywk9IPccRCXp804otMhOkM7W6K7z35F0NivtDIh5Ahgs5QyH0AI8RYwCWgrMpOA+/zX7wFPC22RfhLwlpTSCWwVQmz2v97ikFmbMhQQUPo7DDglZG9zsOOprKTsXw/S+NVXmAcMIPPZZ7EOG9rdZin2BWcjFCyGrYtg2w+aoPj82ZvNMZA2HA6/ClKGaMKS0A8i4rvXZkWXEG4ikwFsb3NfBIzpaIyU0iOEqAcS/O1Ldns2o703EUJMBaYCZGdn77+1Zhsk9leb//uJlJL6D/5H+YwZyJYWkm6+mYQrr1ABlT0BrwcK/aKSvwiKl2veUnoTZB4B427SZvppIyA2R+1Z9mLCTWS6BCnlHGAOwOjRow8sZD9thBb5r9gnXEVFlN1zD/afF2M97DDSHngAc5+87jZLsTd8Pti+BNZ8AOs+1DbihR4yRsH4myFvAmSN0TbTFQo/4SYyxWgebK1k+tvaG1MkhDAAMWgOAIE8G3zSRsDqd6GpEmxJIX+7no70+ah9/Q0q/vMfhBCk3HM3cZMnq2JX4YqUUPKbJixrPtC8vQwWOOQUGHo29DlO7Z0o9kq4icxSoL8QIg9NICazZ0G0j4FL0fZazgUW+MtCfwzME0I8jrbx35+dJaJDR2vkf9lK6HdCyN+uJ+PMz6f0rmm0rFhB5NFHk3b/fRjT07vbLEV7eD3wx0fw81NQskJz0+1/IgyZru0/mqO620JFDyHQLMxTgTeklPZQGuPfY7ke+ArNhfklKeVaIcR0YJmU8mPgRWCuf2O/Bk2I8I97B81JwANcF1LPslZSh2nnUiUyHSE9Hqpfepmqp59GWK2kP/Iw0WeeqYIqwxGXHX6bC0ue0fLyJfSD0x/XZi3WuO62TtEDETKALMJCCC/QBLwOzJZSrgq1YV3F6NGj5bJlyw7sRf57qOY9c95rwTHqIMKxfj2l/7wLx7p1RJ10Eql3T8OQpJYVww57NSx5Fpa+oAU8Zo2Bo26EAaepQENFuwghlkspR3c2LtDlsr7ANcBlwLVCiF+B54C3pZSOvT3YK0gbobkxK3bgc7mofu45quY8jz4mhoz//pfok0/qbrMUu+PzatnE59+vpWQZeLomLtm7O3UqFPtHQF9RpJTbpJR3om2sTwaagZeAYiHEf4QQg0JoY/iTNgJqt0FLbXdbEha0rFrFtnPOoerZWcScfhp9Pv1ECUw4UvwbvHACfPo3bdn3r4th8htKYBRBZZ/mwVJKj5TyXSnl8cAAYDVwI7BGCLFICHF6KIwMe3ZE/h80q4j7hc/hoHzGTLZNvgBvYxNZs58j/ZFHMMSptfywoqUWPr0Fnv+Tls7l7Bfg0k8guXd/V1SEhn32LhNCRKFVyLwGGAasQMvMPBH4WAjxoJTynqBaGe60rS3T55igvrT0+vDUOvFUtWhHtXb22d3gk0ifBB/+s7a/poswoIs0ooswoo80avc2I4Z4K4YEC/o4C0IX3E335qVLKZ12N66CAmLPO4/k229DH6U8kMKO1e/BF3+HlhoYcy0cd6eW+0uhCBEBi4wQYjSasEz2P/cOMFVK+Yt/yMNCiLuBm4HeJTKRCRCTFZTIfyklnvJmWtZU0bK2Gne5HXw7+4VFjyHRij7GDDqhiUWbMz6Jr8WDz+7GVePAZ3cjHbs52ekFhngLhgQrhkQrxpQIjOk2jCkRCMO+bfJ6m5qoeOwx6t58C2NmJtkvv0TkkUce8L+DIsh43fD1NPjlOcg8HM74cKdnpEIRQgJ1Yf4NGAFsBaYDL0opa9oZ+g1wf/DM60GkjdhvkZFS4i5q0oRlTRWeagcIMOVEE3VMFoZETQwMCRZ0kcZ9dv2VXh++JjeeaseOmVDrrMi5pQ7p9quYXmBM1gTHlB6JMTMKU4atQ+FpWrSI0vvux1NWRvyll5J0040qoWU4Yq+Cdy/TcoqNvQ5OnA76cAuRUxysBPqbVgTcBXwp9+7z/BvQK3KDSJ8PX2Mj+hj/UkPaCFj/mZYoMMBANemTNK+spOHrbXhrnaATmPvGYJuQiXVwAvooU1BsFXod+hgz+hgz5j67Lo1In8RT3YK7xI67pAlXSROO9TU0Ly/XBugFpgwbpuxoTNlRmLKjQTZT/u9/0/DxJ5j69SX3zXlYDz00KLYqgkzJ7/D2FC0FzFmzYcTk7rZI0cvoVGSEECZgC1DVicAgpXQBBUGyLawpuuFGfA0NZL/6ipYSJW0EIKFsDeR0vlzk3FpP3Wf5uIuaMGbYiD4hB+ugeHQRXZscUugExqQIjEkRMEKLX5FS4mtw4dreiLOwEVdhA01LSuFHLUuPz1mHtyqFuEvvJu6S0zGlq7QiYcmqd+DjG7TaK1d8Cekju9siRS+kU5GRUrr8Ef//6wJ7egxRfzqO0rumUfvGPOIvnrJrbZm9iIynuoX6L7bSsqYafbSJuPMOIeLQ5KBvxB8IQgj0MWasMWasQxMBcBYUUf7w07gKGjDlHYap31g89T4qn1qFLtKIOTcaU14M5r6x2t5OGP08vQ4p4Zt74OcnIWcc/OVVlVdP0W0Eulz2O5on2fchtKVHEXP22TR8/TUVjz2G7ejxmHJzwZbSYVCmdHup/6aApp9KEDpB9AnZ2CZkojOFdyU/6fFQM/d1Kp98EoQg+eabibvoQtDp8FQ7cG2tx+k/WtZWA6CLNGDuE4u5jyY6hiSrSiHTVUgJX92lpYUZfSWc+ohWKlih6CYCFZlbgTeFEAXAZ50tm/UGhBCkTX+A/IkTKfnnXeTMfQ3Rwea/1+6m+rV1uAobiBiVQszJOeijzd1g9b7RsmYtZffcg2PdOmzHHkvqPXfvktDSmGjFmGgl8vBUADy1Dpxb6nHm1+HcUk/L6ioAdFFGzH1jsfSNxdwvFkOcpVt+nl7Bokc0gTniGk1glLgruplAReZdtJT6HwFuIUQluxbkllLKnGAbF+4YU5JJnXYXJXf8nZpXXyMhdwRsng+uZjBpXlaeGgdVL6/BU+sg/sJBRAxL7GarO8fb1ETVU09TM3cu+oR4Mp54gqiTT+p0NmKIs2AYbSFydApSSrw1DhxbNMFxbq6j5fdKAPTxFiz9YjH3jcXcNwa9LTgODr2exc/Ad/+GQy+CUx5WAqMICwIVmW/ZVVQUfqInTqThq6+pfOIJbI/eiFn6tNrmmaNxlTRR9fIapFuSdOUwzHnhHfQmpaTh008pnzEDb1W1FlR56y3oo/d9Y18IgSHBii3Biu2ItB3xP47NdTi31NG8shL7r2UAGFMjMffTZjnmvBh05vBeQgxLlr8KX/0TBp0JE59USS0VYUNAWZgPZoKRhdlTVUX+GRMxpqeQO3QhYuJjOGLPofr1P9BZDCReMQRjSmSQLA4Njo0bKZ/+AM3LlmEZOpTUe+/BOix0wXrSK3EVN+LcUodzUx3OggbwStAJTFlRmPvFYukXiykrap8DRHsda96H966EfsfD5HlgCP+lWEXPJ9hZmBV7wZCYSOo9d1N8y61UW5OwrqqldstajMlWEi8fqkXnhyk7lsZefx29zUbq/fcTe+45CH1oZxNCLzBnR2POjobjspFuL85tDTg31+HYUkfjgkIavy1EGHWY8mJ27OcY0yKV51pbNn4FH0yF7CPhvLlKYBRhx76klRkG3AscA8QBtcBC4AEp5erQmNdziD7tNBq+/obaPxpxbBqLuU80CZcMRmcJTx2XHg91771P5dNP462uJvYvfyHpbzd3WzJLYdRj6R+HpX8cMYCv2Y0zv17b09lcR/0XWwEtL1ur11qv91wr/g3evhhShsKFb+/YB1QowolA08ocDiwCWtDKH5cBqWhJMU8XQkyQUi4PmZU9hIRrbqPqpQ34atYQd9OksBQYKSVNCxZQ8ehjuLZuxTpqFCnPPoN1+PDuNm0XdBFGrEMTd8TpeOudOwTHuaWeljV+d+koE5a+bUQnvpd4rjka4L0rIDIRprwPFhUQqwhPAv0U/DewBjheStnY2ujPyDzf39+rC4b4nB7qPytFZ5E0fvMiBVPeIuvluZiys7vbtB20/P475TMfpWX5ckx5eWQ+8zS2P/2pR8wE9DFmIkelEDlqT881x+Y6mls912LNmuD0icHcNwZD7EEoOlLCZ7dAXQFc9rkmNApFmBKoyIwFLm4rMABSykYhxCuZOE0AACAASURBVCPAqwdqiBAiHngbyAW2AedJKWt3G3MoMAuIBrzAg1LK/2/vzOPjqsr//35mJjOZLJO9bbqk6cbSlrZAW1YF2QuIIAqoqGWr6BcFFRXBBfUn8tXvV0RFAQEBvyAgUigKIgXKYoECXWihe2m6pU2aPZnM/vz+ODdtmibNOpks5/163deZe+6Ze587mdzPnHOe8zyPO8cexAzl1TnN56tqv6SrVFVqntpErKqZoiuPIq92FzuWFrH10ssYe9fvyTjmmP4wo0NC69ax9w9/pOHf/8ZdWMioW2818y6egdfT6grteq5VBAlvqSO8uZbQ2qp9sdfc+elGcCbk4JuYMzTW6Kx8FFb/DT5xS5dCGFksqaSrT5nOXND6wkXtJuAlVb1dRG5y9r/Xpk0Q+JKqbhSR0cB7IvKCqtY6x7+jqk/2gS3domnZbppXVRI4ezy+KSNgzlxKR+1g+2sBts2/guJf3EbOef2bz01VCb69jKr77qPpjTdwZWRQ+PXrKJg/H1fmwPZ06y4iQtrITNJGZpJ1wmg0oUT3BI3n2hYTiSD4riM6eb59guObkIM7P31Q9OT2UbkBnrsRSj8GH/t2qq2xWDqlqyLzNnCziCxuM1yWiRGCt/rAlk8BpzqvHwKW0EZkVHVDq9e7RKQCKAJqSRGRXY3UPrsZ35Rcsk8ZZyonn453yw8Y/6eH2XHzbez69o1Et2+n4CtfSfoDTeNxGha/RNV99xFavRp3QQFFN9xA3ucu2x8xeogjLsFbnIm3OJPsk8fsE53IFiM6ofXVBJdXAOAKePGVBozwTMjBM2IAx12Lhsw8jCcdPn0vuOx6IsvAp6siczPmoV8mIv8AyjET/+cCGewXh94wUlXLnde7gZGHaiwic4GWCNEt/FxEfoRZPHqTqoY7eO8CYAFASS/mTBLhGNWPrsOVkUb+pYfvfzhNOg0Az973KHngAcpv+QGVv7mTSNk2RnznRjz5+T2+ZkdEd+6k/vnnqf3bk0TKykgrKWHUrT8m58ILcaUPgSGiXtBadLJOMqITqww6MdfqiXxUR/P7JgSO+D34xgfwlgZM0M8x2UjaAFmn8+IPYc9q+PwTEBjdeXuLZQDQ5cWYIjIDk/HyY0A+UI3xOOuyC7OILMaIU1tuAR5S1dxWbWtUtV1/WhEpxojel1X1rVZ1uzHCcy+wWVV/2plNPV2MqapUP7ae5vcrKbpmxoF5WlThf48w4+WffRBVZe/vfs/eP/wBSUsj+8wzyb30UjLmzulVzyZaUUHDv16g/rnnaF5ppp/8M2eSf8V8ss88M+lrXYYKqkq8Jrwv0GekrJ5YZbM56Ba8Y7ON6IwP4B0fwJ2ZgoCTa/8Bj3/BJB0757b+v77F0oauLsYcMCv+RWQ9cKqqlreIiKoe3k67AEZgbuto/kVETgVuVNXzO7tuT0Wm8e1yahduInD2eAKfaKc3tPCrsOF5+M7mfcMa4Y0bqXnib9Q98wyJ+nq8EyaQe8kl5Fz4qU7Xp6gqsV27CG3cSHjDRpqWLiW4bBkkEviOOILAuecSmHcO3nHjun0vloOJN0aIlDUQLqsjsrWeyM5GE5EA8BT68Y4P4B2fjW98AE9RkofY6nbAH0+CvPFw1Yt2waVlQNCnIiMiLwNfU9V17Rw7DLhbVU/rkaX7z/MroKrVxH++qn63TRsv8DzwrKr+ps2xYkegBLgDCKnqTZ1dtycio6pU/3UdieYYhVdMb/8Bs/pJ+PtVcPXLMPbYAw4lmpup/9cL1D7+OM0rVyJpaXiKi3Hn5OAOBHDn5ODKCeAO5BCvria8YQPhTZtINDXtO4d3wgQC8+YROHcevsmTu2W/pftoNE5kRyORbfWEyxqIlNWTaIoCIOluZ4gtxwyxje3DITZVePRSkzr52jegYFLfnNdi6SV9LTIJ4HhVXdbOsWOBZaraq7EZESkAngBKMNk1L1HVahGZDVyrqleLyOXAn4EPWr11vqqudISwCBBM/ptrVbWxs+v2ZrhMI4mOgzk27YVfTTZupqd8p8PzhNZvoP7ZRUR37yFeV0e8vo5EbR3x+nri9fW4s7PxHXYYvilTzHbYFHyTJ/coaKWl71BV4lUhwmX1RMrqCW+tJ1YRNAdbDbH5D8/DW5rT857Oh4vgiS/CWf8PTvx6392AxdJLkiEyx6nqO+0cuwT4k6oOStelvgiQ2SH3nAJpfpP6tge0/G0GlYvtMCbeFN0nOJGtdfuG2FyZafinFpA+vYD0SbldD/gZboDfz4WMAliwBNyDc12TZWjS6wCZInIFcIWzq8C9ItLQppkfmI7x5rK0ZdJp8J87TQiQHoT9sOIyuHA7YuKfWgBAIhwntKGa5jVVBN+vpOmd3YjPTfqR+WTOHolvUu6h/8av3AYN5XDJw1ZgLIOWQ31zE5hV9WCGoFrvt1CFWYH/331v2hBg8unwxq/ho9fgyE59ECxDDJfPTcZRRWQcVYTGEoQ21dK8Zi+hD6toXlmJb2IOgbNL8Y1v5wfIrpXw9t0w+woYN6f/jbdY+ogORUZVH8IJFyMirwBfbW/i33IIxs4FbxZsftmKzDBHPC78R+TjPyIfjSVofLuchle2U/nHVaQfkU/grPF4R2eZxok4/OObZpjs9B+n1nCLpZd0qQ+uqp9ItiFDEo/XhP/YbEcTLfsRj4vsk8aQOWcUjUt30fDqDip+uwL/jEICZ44n7aNHYNdy+PR94M/t/IQWywCmWwO9IjITOBw4aAm5qj7cV0YNKSadZtbLVG+B/ImptsYygHB53QROHUfWccU0vL6Dxjd20bxmL1meLQQmnI3rqM+k2kSLpdd0NZ9MLvBPTDRmMHM0cGBgTCsy7TH5dFNuegnmWpGxHIzL7yHnrFKyThxN/d0P0bj3HILbPASW7SZzzqiBG0vNYukCXV0xdhtQAHwcIzAXAacBjwBbgLlJsW4okD8Rcktg8yuptsQywHHvfo28xhsZceL7eEZlUbtwExW/W0F4S13nb7ZYBihdFZmzMULTEm15h6ouUdUvYZKWXZ8M44YEIjDpdONhFo+m2hrLQCVYDc98HQqm4D13AUULZpD/+SNIBGNU3vs+VY+sJdqy2NNiGUR0VWSKgS2qGgdCQHarY08B/ZssZbAx6TSINMCOg9ayWiwmdMw/boCmCrj4T+DxISJkzChi5LePJXBGCaH11ey54z2qHltnxcYyqOiqyOwGWtxcyoDW6fhs4KzOmPBxELeZl7FY2rLyUfjwGTjtBzD66AMOubxuAmeMZ9R355D18bGEPqiyYmMZVHTVu+wNzKT/P4C/AD8WkVIgBnwZWJQM44YM/lwYO9u4Mp/+w1RbYxlIVG2G579rXN1P/EaHzdxZXnLnTSD7Y2NoeH0nTUt30byqEv+MIrJPHkPa2CwbIcIyIOmqyPwEaMmS9CuME8ClmIRliwAbua8zJp0OS34BTVWQWZBqaywDgXgUnlpgUkFcdHeXMl0eJDZvGrFJG51J5nHFZMwqwuWzIWgsA4cuDZep6mZVfd15HVXVb6vqWFXNV9XPq2pVcs0cAhx2NqDwwVOptsQyUHj1l7DzXfjknZAztltvbRGb4puPI/dTkyABtQs3Uf7zZdQs3EhkV6cByC2WfsH+5OkvimfCqKNg+UMw52rjdWYZ1MRjCSLNMSKhOJpQEgk9oATIGZGBz9/Ov1nZm/D6/8CsL8C0i3psgyvdQ9YJo8k8vpjI9gaa3iqn6b0Kmt7ejWdkBv7phfinF5I2KsMOp1lSwqGiMP+oG+dRVf1ZH9gzdBGBY74Mz90Iu1bAmGNSbdGwRxNKJBQj1BQjHIwSaooSDsYIN0UJBWOEgzEiQVMXCsaMoDTHiIRiRJrjxGOJzi8iUDA6i+JJOYyalEPxpByyM8PIUwvM+ql5fRNbVkTwlQTwlQTIPX8iwZWVBFdX0vDyNhpe2oanIJ306YVkTC+08zeWfqXDfDJODpmuor1NWpYqkppPpi2hOvifw2HmpWaIxNJnJBJqhKIxSnODUzZGaG50xMMpzRYj1BglHIxyqHRK7jQXPr8HX4YHX0YaXr8Hn9+N1+/Bm+4xpd9Dms+Nyy243IKI4HIJ4jKeyVU7GynfXMfuLXVEQyaIeaa3ianefzL761fiGp/cdczxhgjNH1bRvGYv4c11kFBcWWn4JuWSPikX36QcPAX+pNpgGZr0adKyoUy/igzAwq/C2kXw7fXgy+q/6w5CEvEEzQ1RgvURmurCBOsjBOsjNNdHaG6IEGyI0txgXocaOxYMj9dFemYa6VlppmzZstLwZXhIz0zDl5lGuiMmvkwjLJ60vvvdlEgo1avfp/zp+9lWPZqt4bmMOTyPs66aRkbA22fXOaQNwSjNa6sJb6whtLmWRINZHOzO8+GblItvYg7ecdl4Cvw2lI2lU6zIdJF+F5ltb8EDZ8MFv4NjvtR/1x1AqCrhYIzGmhCNNWGaavdvjbWOoNSFaW6MHhgdzyEt3U1Gthd/thd/dhr+gJeMbC/pWWn4s9LwZzmvs42YeLwp7mSrwnsPwr9uAl8ALv4T6/YczpJH15Oe4eGsa6YzenL/RltWVWKVzYQ31RLaXEt4cx0aigEg6R6847JMCulx2XjHZuHK9tohNssBDDqREZF84HGgFNgKXKKqNe20iwOrnd1tqnqBUz8BeAzjXv0e8EVVjXR23X4XGVW46zjwZcM1Q3NxpqoSrI9QvzdE/d5m6vc201htBKWhOkRDTZhYuE3+O4GMbC+ZuT4yc31k5HjJDHjJyPGREfAesKVcNLpDqA6evR4+WGgiP1x0D2SNAGDvjkb+dc9q6qtCnHDRJGadMS5lD3JNKLGKIJHtDUR2NBDZ3kB0d5NJVQi4MjykjcrEMzKDtFGZpDmlK936Dg1X+lRknPmZQzbs7ZyMiPwSqFbV20XkJiBPVb/XTrtGVT1onElEngCeUtXHRORuYJWq/rGz6/a7yAC8eRe8cDNc+x8YNb1/r91HqCrBugi1e4LU7AlSWxGkrsIISn1lM7HogVN6/oCX7Dwf2fnpZOWnk5XnIysvnax8H5k5RlTc7q4GoBgk7HwPnrwSarebRbgnXg+uA+8x3Bzj5YfXsmVFJRNnFXHal49s3xstBSQicaLlTUR2NBDbEyS6u4no7iAa2f8DwZWVhqfQj6fAj6fIKQv9ePJ9dr3OEKevReZWDhaZAuAswAc8qKo/6YGdra+xHjhVVctFpBhYoqqHt9PuIJER8/OvEhilqjEROQG4VVXP7uy6KRGZYDX87+Fw7Hw491f9e+1uoqo01Yap2tlE1c5GqnY1UlMepHZPkGir3ognzUXOCD+BQj+BIj+BAj+BwnRyivxk56cPrt5Hb1CFbW+aHxLr/mnWv1x8P5Qcd4i3KKte2s7SpzaTO8LPJ78xi+z8g1I2DQg0ocRrw0T3NBHdEyRW2UysymwtczwtuDI8uHN9uPPS8bQqXQEv7hwf7iwv4rZDcIOVfhkuExE38Czwb1X9TY9PZM5Vq6q5zmsBalr227SLASsxIW1uV9WnRaQQeEtVJzttxgHPq2q73QQRWQAsACgpKTm2rKysN6b3jCevgk0vGgeAtIHh3aMJpWZPkIqyeirKGti7vYHqXU2Eg7F9bTJzfeSPziR3ZAZ5IzPIdbasXN/wniyOR038sTd/b1zU/fkw+0o48Trw53XpFDs31PDcH97Hl5HGBTfMIndERpKN7lsS4RixvSEjOtUh4rVh4jUhYjWm1Da9WwRcWV7cOV7cAR/u7DSzn52GO8uLK9uLOysNV1Ya4nXbOaEBRr/NyYjI+cDvVbW0C20XA6PaOXQL8FBrURGRGlU96L9TRMao6k4RmQi8DJwO1NENkWlNSnoyYEL/P/RJM0Y/87L+vz7Q3BBh16Za9nxUv09YWtxsPT43RWOzyB+TRcHoTArGZJI/Oov0zLSU2DpgCVbDir/A2/dA/U4omAInfA1mXAbe7otE5bYGFt25EpdbuOD6WRSMGRoeiKpKIhgzwlMfJl4fIV7nlPUREvVh4o1REk3tO3vgEdwZabgyjei4MtPMfoYHV9vSbzZJ9wzvHz5Jpqsi0xeDpj4gvysNVfWMjo6JyB4RKW41XFbRwTl2OuUWEVkCHA38HcgVEY+qxoCxwM7u3UY/U/oxk9DsvYf6TWSC9RF2baxl14Yadm6spXpXEwAut1A4NovD545iRGmAEaXZ5I3KxGX/QdtHFba/De8+AB88DfGwibR9/h0w+cyD5l26Q1FJNhd9+xgW3bmChb9ezie/PouRpYE+ND41iAjuzDTcmWlwCOHUuJJoihJvjJBoiBBviJIIRok3RUk4IpRoihKpCpEIRtFQvMNzISA+jxGedLcRn3QjPua127xOb3ntNsd97n11eFyDugcVjydoqgnTUBUyTjctm7N/4TePJisvuUOzXU2/XNJOtReYDtwO9EVXYBEmovPtTvlMO3bkAUFVDTtDZCcBv1RVFZFXgM9gPMzaff+AQsS4MC++FSo3QNFhfX6JRDzB7i31bH1/L2UfVO0TFY/PzehJORw2dySjp+QxoiQbd9oQm3RPBqE6WPW4EZfKtcYd+ZgvwewrYOS0PrtM/uhMLrrxWBbduYJn7ljBeV+bwZjDuzbkNtgRt+AOeHF3ce2QxpVEc5REMEYi6JTN+zdtPnA/urcZDcVINMcPcGDoEJcjVD63ER+fI0w+N+J17yvF58bldSE+D+J1OfvOMa9rf7s0d5/OQyXiCRprwtRXhWioanZKs9VXNdNUEz5o/VhGwEt2QTqFY7NJxJPvXdxb7zIBNgMXqOraXhkiUgA8AZRgctZcoqrVIjIbuFZVrxaRE4F7MI6VLuA3qnq/8/6JGIHJB1YAl6tquLPrpmy4DKCxAn59JBx3LZz98z45ZaQ5xrYPq42wrKki1BTF5RZGT8ll3JH5jJ6SS9H47KHnyZVMdi43wrLm7xANmpwvs6+E6ReDNzNpl22sCbPozhXUV4U4Z8F0So8qTNq1hiMaVzTsCFA4jobiJEIxNGzKRChuXoedunD8gFLDcRIRU5LoxsPaI0aA0owAGfExpcspxesyx9NcxFFC4QShUIxgU4xgMEpjQ5TGhgiNdRFiCSUOxBXigD/HS1ZBOoHCDLIL0vdvjjdnXy0y7mvvsvkcLDIhjBi842TMHJSkVGQAHr8cypbCt9aCx9ejU8RjCcrWVLHuzXLK1lSRiCu+TA+l0wspnVFIydR8vAPELXbQEAkaUXn3fjORn5YBR33GiEubxGLJpLkxwrO/XcXeHY2ccOEkZp2ZurU0lvZRVYjrfvGJ7BcfjST27zt1iaipa30sFowRa44ZkYskIJZAEopLtWd/b8EIV5oL8bj3v05zIZ79Zc4nJ+HJ7dlzp0/nZFT1wR5ZYemcY+bD2meNZ9KMS7r8NlVl7/ZG1r1ZzoZ39hBqjOIPeDnq1LFMnFXEqIkBXLa30n32boR37odVj5rhsaIjYN6vTLy59Jx+N8ef5eXCbx7NSw+tZelTmyjfXMvpXz4SX4Z1wBgoiIhxTPC4oAPHmERCaawO7VtPVtcQo7ay2awtq2omEdv/G97lEQIFfnKK/AQK0skpSCeQ6yM7x0tmlhe3gEYTaDTulAkjWLFW+/s2py6WOKBMNEbRWIJDBu/rq8+niz2Zw4BiVX21nWMfB8pVdWMS7Es6Ke/JJOJwz8chVA/XLevUnTkaibNuaTkfvL6Lqp2NuDzChBlFHHHCKEqm5lth6QnxGGz4F7zzJ9iyBFxpMPUCmH0VjD9xQKRlUFXef3kHS/++iax8H2dfM50R4we/Q8BQwqwpi1BbYdaR1VUEqa1opnZPkPq9zQfMf3i8LnKKMsgZYcRk3zYig8xc36Bwuunr4bLngA9V9cZ2jv0SmKqq5/fI0hSTcpEB2PoGPHgenHoznHpQkAMAQk1R1ry6g/df2UFzQ5SikmymnlTM5NkjrVtxT2msNPl93v0z1O+AwBgziX/Ml/eFfhlo7N5Sxwt/WkOwIcLHPjuFaR8fY4fP+plwc4zaPcEDN0dYYpH9a4HcaS5yRxjhOKAsyiAjZ/DHgutrF+bZwN0dHHsN481l6SmlJ8PUC+GNO2DW5yF33L5DjTUhVr60nQ9e30UsHGf89AKOObuE4sm5g/5LmjJ2vAfL7jVZSuMRmHAKzLsdDpsH7oE9dzVqYg6X3DKHxX9ey6t/3cCuTXV8/NLDSM+yPzT6kkRCaagKUbO7aZ+Q1Ow2ZbB+f0hEEcgu9JM7IoMxU/LIGeEnd1QGuSPsAuUWuvoflY2Z6G+PKND/g9VDjbN+ZoZsXvwhfPZBgvUR3l60hXVvlqMKU2aP4OizxlM4dmgszut3YhH48Gl4+24TU8ybZXosc6+BooOiFw1o/Flezv+vGbz3QhnLFm2hbPVejj5rPDNOG4vXBqzsFpFQ7AABqdndRM1uM2/SOimdL9ND3shMSqYXHBDpIqfQb93/O6Gr38gtmJX1/27n2GmYqMmW3pBbAifdQHzJr1jDqyxbKsQicaadPJpZZ5YQKBwYoWcGHQ27jfvxu3+GpgoomAzzfgkzPwfpg3dOQ1zC7HmlTJhZyNvPbOHtRVt4f8kO5pxbytSTR5tJaAuwf66kZk8TtbuNoLT0UBpr9q9yEIFAkZ+8UZmMn1ZA7igndNKoDPxZ/ZPzZyjSVZF5GPiZiGwD7nMWQ/qAq4EbgFuTZN+wYkfRfF6vGUf1S3FKpuZx8iWHkTcqeeswhjTb3zG9lg+fNs4VU86C4xbAxNN6tSJ/oFEwOotzvzqD3VvqeHPhZl57bAMrF29j7icnMmXOyEExgdxXxCLxfRPtLSLS0kNpHcw1Ld1N3sgMxhyWt09I8kZlklNkeyXJoKsT/25MrpdPYxZCVmMWPbowIV0uVdXupGseMAyEif/6qmaW/n0Tm5dXEgjEOcn1SyZ8+jJk7lUptWvQ0XZIzBeAoy83Q2L5E1NtXdJRVbZ9WM1bT29m7/ZGMnK8TD5mBFPmjGTkhMCQmMNr7Qps5kqaqd3TRM2eII3VB669zs5PJ2+UGdbaVxZnkhEY/JPuA4GkBMgUkdOAMzFh/vdioi8v6amRA4FUi8y6t8p59dH1oHDsvPHMOmMcnkc+BRUfwjeWdzmC77CmscIZEnsAGveYIbHjrjUx4XzZqbau39GEsmVVJRve3kPZmirisQTZ+elMnj2CKbNHUjgua0A/ZOPRBA3VIeqc3ER1lc373IHbugK39EpyW215ozLIGZFB2nBJL5EiBl1mzFSRKpGJRuK89tgG1i0tZ/SUXE6ffySBAmfeZfdqs3ZmzjVw7i/73bZBw87lJvrxmr9DImqCUx5/7ZAbEusN4eYYH62qZOM7FexYW00ioWQEvBSNz6aoJJsRJdkUlQTIzO2fX/eqSqQ5RmNN2Nn2Z0yt39tMQ1WIxtrwAfFFWq8paXEFzinykzsyw/ZKUkh/RmG2dJPq8iZe+NMaqsubmH1uKXPOKz1wEeWoo+DYK+Cd+0xis5FTU2brgCMehbWL4K27Yccy4yU2+0qYuwAKJ6faugGHz+/hiOOLOeL4YkKNUTavqKB8Ux2V2xvYtqZq34Jvf3Ya+aOzyMwxKa79AZP+2h/w4s/y4nIL4hJcLlOKC1wuIRZJEI3EiYXjTmn2Q41RmhsjNDdEaW5wysYITXWRg1Jvi5g8RYFCP2MPzyO70E9OYTrZhSb5XX8JoCU5dNiTEZE4cIKqLutC+mVV1UEpWP3dk1n/VjlLHl1Pms/NGVdMpWRqQfsNg9Xw26MhZxxc8c+UhDQZUDRWwvIH4Z0HoGEX5E2A475i1hUN98+mh0TDcfbuaKRyWz2VZQ3U7AnS3BAhWBc5KH12TxCB9Kw0/Nle/Nlp+LO8ZOR4TdrtlvTbeT4yc7w2UsUgpC96Mj8FdrR6PbzH1XpJLGqGx9b+xwyPnXXVNDIPFZguIx8+cz88eqkJovmFJ3scQHNQs3O5WTi55u9m4eTET5i8LVPOskNivSTN56Z4Ug7Fkw4UaVUlGo4TrIsQbIgQaoySiKtJPNa6TCger5s0rxuPz+WUZj89Mw1fhk0aZrFzMv3Sk4lG4jz/x/fZvraGY+eNZ+75E7r+y23VY7DwKzDt0yZX/HB4sO7zErsHdr5rhsRmfs4MiSUh747FYuk+fTonIyIPAD9T1Y/aOTYe+LGqXtl9M4c+kVCMf971PuWbajntS0dy5InF3TvBzMvMgsLFP4askXDOLwZEwMakULsd3vszLH8YmiohfxKc898w63N2SMxiGaR0dR5lPiZ22UEiAxRiYpdZkWlDOBjl2d+toqKsgTOvnMaUOSN7dqKTrjdC8/YfIVBs9ocKiQRsftk4OWx8wdRNORvmXA2TrJeYxTLY6c5kfUfjaqOA5j6wZUgRaoyy6LcrqdrZyDnXTGfi0UU9P5kInH2bWQPy4o9Mj2bmZX1nbCpo2AOr/mp6LjVbIbMITv6m8abLbS/bt8ViGYx0KDIichFwUauqn4jI3jbN/MDHgPeSYNugJVgfYdGdK6jd08y8a4/qm7S5LhdcdDcE98Iz/wUZBTDlzN6ftz+Jx2DTi7D8LyYYqMZh/Elw+o/giE+Cx8aHsliGGofqyZRgBKSFWUC4TZswsBT4fm8NEZF8TOiaUkzAzUtUtaZNm08Ad7SqOgK4TFWfFpEHgVOAOufYfFVd2Vu7uktTXZhn7lhBQ3WI866bwbgj8vvu5B4fXPoIPHiu8To76Xo49aaB73VWtRlW/AVW/hUad5tey4nXwdFfhMIpqbbOYrEkka7GLvsIuFBVVyXNEJP8rFpVbxeRm4A8VW0/gxf7RGkTMFZVg47I/ENVn+zOdfvSuywWjbPwf5ZTszvI+dfNZPSU3D4570GE6uCFm2HF/5n0wBf+AcYcm5xr9ZT6cvhgIax50sQRE5dxOz76i3DY2eC2+U8slsFMn3mXKwJisAAAEBVJREFUiYgXWEXyc8Z8CjjVef0QsAToUGSAzwDPq2owuWZ1DVXl1UfXU1HWwLlfPSp5AgPG0+pTd8HUi+DZb8B9Zzi9mu+ntlcTrDar8Vc/abJ9oiZ6wRk/gRmXQGB06myzWCwpoVORUdWIiJwO/CbJtoxU1XLn9W6gM1esy4Bft6n7uYj8CHgJuElV2w7vJY3VS3ay7s3dzDmvlAkzezHJ3x2mnAFfe9P0at64A9Y/Dxf8HsbN6Z/rq0LlOtj4oplrKVsKiZgJUHnK92D6xXZdi8UyzOnqcNkLwCuqenuvLiayGOON1pZbgIdUNbdV2xpVbTcEsYgUA+8Do1U12qpuN+AF7gU2q+pPO3j/AmABQElJybFlZWU9vylg18YanrljJSXTCzj32qNSs8p542LTq6nfCSOPgukXwbSL+j7EfXOtEZON/4ZNi6Fuu6kfMc04Iky7CIpnDt21PBaLBejjKMwiMg14GrjTKctp49Lc23wyIrIeOFVVyx3BWKKq7ebFFZHrgWmquqCD46cCN6rq+Z1dt7dzMg3VIf72i3fwZaTxmZtm4/OnMIRbqA5WPGLmQnYsM3XFs8yDf+oFkFvavXUnzTVQvgp2rYTylaascZZKebNg4qkw+QwjLjlj+/hmLBbLQKavRaZFQDpq3OsAmSLyK6Cq1cR/vqp+t4O2bwHfV9VXWtUVOwIlGA+0kKre1Nl1eyMy+yb69wT5zPdmk188gLJY1m6DD5+BNU/BruWmzpVm1thkj4SsUU45EmJhCFZBc7WZVwlWm9eNe/afL6cERs80ojV2DpScYF2OLZZhTF+H+u+PAJm3A0+IyFVAGXAJgIjMBq5V1aud/VJgHPBqm/c/IiJFgAArgWuTaayq8upfN1BR1sC8a48aWAIDZkHjiV83W81WM29Sv9MsgmwoNz2SbW8aMXF5wJ9vgnJmFEDBJMiYA3mlRlSKZ0FmB9GiLRaL5RDYAJk97MmsXrKD1x7bwOxzSznugkGc2jceNSJj51AsFks36GpPpteBoUTkFCeA5rBBVdn9UR2lRxUw9/wJqTand7jTrMBYLJak0aN5FBGZDHwJ+CIwHggyjAJkighnzJ9KPJqw+TIsFovlEHS5JyMiOSKyQET+A6zHuB3XAF8Fht0qOxHB43Wn2gyLxWIZ0BxSZETEJSLnisjjGLfluzE9l7ucJjeo6j2qWp9kOy0Wi8UyCDlUFOb/BT4PjABCwEJMuJfFQAC4rj8MtFgsFsvg5VBzMt/EuC0/h4loXNVyQESGt0uaxWKxWLrEoYbL7gcagPOA9SLyexGZ2z9mWSwWi2Uo0KHIqOo1mDhjXwDeBb4CvCkiazHRkW1vxmKxWCyH5JAT/6oaUtW/quo5mCRm3wfiwE2YlfW3i8jlIpKefFMtFovFMtjosguzqpar6i9VdTowF+NhNgV4GON5ZrFYLBbLAfRoxb+qvquqX8esj7kYk2DMYrFYLJYD6FXkZCeXy0Jns1gsFovlAHodu8xisVgslo6wImOxWCyWpGFFxmKxWCxJw4qMxWKxWJKGFRmLxWKxJA0rMhaLxWJJGlZkLBaLxZI0BozIiMhnReQDEUmISId5o0XkHBFZLyKbROSmVvUTRORtp/5xEfH2j+UWi8Vi6YgBIzLAGuDTwGsdNRARNyaczTxgKvA5EZnqHP5v4A5VnYzJ2HlVcs21WCwWS2cMGJFR1bWqur6TZnOBTaq6RVUjwGPAp0REgNOAJ512DwEXJs9ai8VisXSFXoWVSQFjgO2t9ncAxwEFQK2qxlrVj+noJCKyAFjg7DaKSGfi1hGFwN4evncwY+97eDFc7xuG77135b7Hd+VE/SoyIrIYk6OmLbeo6jP9ZYeq3gvc29vziMi7qtrh/NFQxd738GK43jcM33vvy/vuV5FR1TN6eYqdwLhW+2OduiogV0Q8Tm+mpd5isVgsKWTAzMl0kXeAKY4nmRe4DFikqgq8AnzGafdloN96RhaLxWJpnwEjMiJykYjsAE4A/ikiLzj1o0XkOQCnl3Id8AKwFnhCVT9wTvE94FsisgkzR3N/P5jd6yG3QYq97+HFcL1vGL733mf3LaYTYLFYLBZL3zNgejIWi8ViGXpYkbFYLBZL0rAi00M6Cm8z1BCRB0SkQkTWtKrLF5EXRWSjU+al0sZkICLjROQVEfnQCXd0vVM/pO9dRNJFZJmIrHLu+ydO/bAI2yQibhFZISL/cPaH/H2LyFYRWS0iK0XkXaeuz77nVmR6QCfhbYYaDwLntKm7CXhJVacALzn7Q40Y8G1VnQocD/yX8zce6vceBk5T1ZnALOAcETme4RO26XqMU1ELw+W+P6Gqs1qtjemz77kVmZ7RbnibFNuUFFT1NaC6TfWnMKF7YIiG8FHVclVd7rxuwDx4xjDE710Njc5umrMpwyBsk4iMBc4D7nP2h3O4qj77nluR6RnthbfpMIzNEGSkqpY7r3cDI1NpTLIRkVLgaOBthsG9O0NGK4EK4EVgM90I2zSI+Q3wXSDh7HcrXNUgRoF/i8h7Tsgt6MPv+WCLXWYZYKiqisiQ9YMXkSzg78ANqlpvftwahuq9q2ocmCUiucBC4IgUm5R0ROR8oEJV3xORU1NtTz9zsqruFJERwIsisq71wd5+z21Ppmd0FN5muLBHRIoBnLIixfYkBRFJwwjMI6r6lFM9LO4dQFVrMZE0TsAJ2+QcGorf95OAC0RkK2b4+zTgTob+faOqO52yAvOjYi59+D23ItMz2g1vk2Kb+pNFmNA9MERD+Djj8fcDa1X1160ODel7F5EipweDiPiBMzHzUUM6bJOqfl9Vx6pqKeb/+WVV/QJD/L5FJFNEslteA2dhcnv12ffcrvjvISJyLmYM1w08oKo/T7FJSUFE/gqcign9vQf4MfA08ARQApQBl6hqW+eAQY2InAy8Dqxm/xj9zZh5mSF77yIyAzPR68b8CH1CVX8qIhMxv/DzgRXA5aoaTp2lycMZLrtRVc8f6vft3N9CZ9cDPKqqPxeRAvroe25FxmKxWCxJww6XWSwWiyVpWJGxWCwWS9KwImOxWCyWpGFFxmKxWCxJw4qMxWKxWJKGFRlLyhER7cK21Wn7YMvrgYKI/LYlaq+zX9rG9rCI7BaRl0TkhpZ1CW3OscRpu7SDa/zZOb6jTf3WVtdJiMh2EXlSRHq1Sl9EckXkVhE5pjfn6QtE5EIR2eNEX7AMMqwLsyXlOFF+W7MQWAXc2qourKorRGQSEFDVFf1l36Fw7FkLnKiqLWHSS4GPgF9gFrV5gBHAx4ErgSrgbFXd0Oo8S4BjgGxgiqpuanUsA7NGSYF6VR3b6thWYB3ms3IBhwM/AfzANGcVd0/uq+UerlHV+3pyjr7CWRi7AnhGVX+cSlss3cfGLrOkHFV9q/W+iISBvW3rnbab+82wrnEDsKpFYNqwpc09PCUidwFLgb+JyCw98Ffe+5hAhJdzoMB+2ilfwIR4aUvrz2qpiGwBljjn+XU77QcVTuyse4GficgvVDWUapssXccOl1kGFW2Hy1oNTV0rIr9whqUaROT/RCRDRCaLyAsi0igm8dSX2znnTBFZJCI1ItIsIv8RkY91wRYf5kH+aFftV9WNwP8DZmDiY7XlL845W/Ml4CmgqYuXeccpJ3fUQESyROR3IrLNGc6rEJHFInJEq14MwJ9aDcfNb/X+T4vIWyISFJFaEfmbiJS0ucZW5+9wjfPZh0RkuYh8ok27OWISY1U5n/8WEflDG5OfAHLZL7iWQYIVGctQ4fvAaEycpR8BlwJ3Y4be/glchOkp/FlEprW8yZlzWIoJG3INcDFmOGuxiBzbyTWPxzz4Xu+mrc855UntHPsLMFFETnTsGw2cDjzcjfNPcMraQ7S5A7gEM7R2JvAVYCXmfsrZ/zD/Bab3dALmc0RErsUEDv0QE9frK8B04NV25ptOBb4F3IKJCRYGnheRw51zZWF6aHFgPiYR4E9pM8qiqnsxw5JtE+hZBjqqaje7DagN2Ar8XwfHHgS2ttovxcxVvNym3VNO/eWt6vIwGS9/3KruJczDy9uqzu3UPd2Jnd/DxDXztqlvsenqDt7nc47/sVXdEuAN5/VrwN3O6+8C2zA/CB8EdrTzWT2CeSh7MQ/7/2Ae2sccwvY1wK8PcbzdewCygDpMvL7W9ROACCYlQmvbIsC4VnXZmCR4f3H2ZzvXmdGF78VfgA2p/n7arXub7clYhgrPt9lvyYnxQkuFqtZgQpaPg31Rhk8B/gYkRMQjJqy7AIsxE/WHYjRmIj7STVtbktJ05HXzMHCJMxz3JUyqgUQHbQE+D0QxvYTVjl2fVSezZwe8A8wXkZtFZLaYlOJd4QQgADzS8nk5n9l2zGfe9jN7S1X3JfhTk2X0n+yfW9qI6XHdIyKXi8g4OqbSuTfLIMKKjGWoUNNmP3KI+nTndT6m1/JDzEO69XYdkCcih/ofScc82LtLy4O0vIPjf8N4h/0ImEbnQ2XPA3Mw3mmjVHWC7s9/0xFfB+7BeLu9A1SIyB2OJ9uhGOGUizn4MzsKk02yNXvaOccenAyTqloHfALYBfwB2CYia0Tk4nbe18z+v51lkGC9yyzDmVrMcNdddPAg76QHUYWZw+gu5znlGx1cs05EngFuAt5V1bWdnK9a2/du6xBVbcTMY31fRMZj5lZux4jw9w7x1iqnnA980M7xhjb77aXtHUmr5F+quhK42OkRzXbsekJEZqrqmlbvy291fcsgwYqMZdiiqk0i8jowE1jeiaC0xzrAKyJjVXVHp60BEZkC/ACz7mPJIZr+HvOr/ZFu2tRtVLUM+F8R+QJmTgf299D8bZovxQjJZFV9qAunP15ExrUMmTmOAefhOBG0sSMGvCUiPwQuAI7EzB21MAFY37W7sgwUrMhYhjvfwky0vyAi92OGsAoxQ09uVb3pEO99zSnnAu2JzERnoakbKMLM/1wF7MUkgepwJbSqvkEHPZ2+QETexCwUXQ00OrbNxCQsAzOkVQVcJiLvY9ynP1LVKhH5DnCXiBRhhurqMMNfpwBLVLW1S/ce4N8icitGuL4HZAI/c+w4H1iASYT3kXPsGxghe7OVvYL5nNu6NlsGOFZkLMMaVV0uInMwGT9/C+RgJpiXY1ygD/XerSKyDPgkxputLd93tihmbugDzDzL/c4EeCp5DePCfBPmObAF+Kaq/hbMMKGIXA3chpl/8QBXAA+q6j0ish34DsbpwIMZ/nod4wbdmlcxPbbbgLEYt+d5uj/awUbMXMsPgWKMuLwDnNmmd3gixjvwsT66f0s/YcPKWCy9wFmgeCdQrKrBFJszoHAWzb6hqm0Xl/bkXH8Epqtqp4tkLQML611msfSO/8N4Rn0t1YYMVURkFGaR7S2ptsXSfazIWCy9wJmsvgKwvZjkUQp8W1Vf66yhZeBhh8ssFovFkjRsT8ZisVgsScOKjMVisViShhUZi8VisSQNKzIWi8ViSRpWZCwWi8WSNP4/q1FODpRP0pQAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "m = environment.random_motors()[0]\n", "s = environment.update(m)\n", "\n", "traj = environment.trajectory(m)\n", "plt.plot(traj)\n", "\n", "plt.ylim([-1., 1.])\n", "plt.xlabel(\"Time (DMP steps)\", fontsize=16)\n", "plt.ylabel(\"Articulatory parameters\", fontsize=16)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "'s' contains the 10-steps trajectory of the two formants. We plot this trajectory along with some vowels:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "s [7.5991565484016919, 7.6494545876702755, 7.3853619127719208, 7.2337117004198781, 7.3091239768895031, 7.834287880233207, 8.0740746370097085, 8.158727668252741, 8.1990164056478054, 8.2250716721304276, 10.951157994477452, 10.95185630742394, 10.976002563087922, 10.991712854258902, 10.978078494223155, 10.904093554230844, 10.864241929671396, 10.848462518751733, 10.840777285749372, 10.835810055134099]\n" ] }, { "data": { "text/plain": [ "(1200.0, 200.0)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZ4AAAEVCAYAAADQC4MUAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl4VFW+7//3N5UJNGK3EDwG7ICAgqiIUVBkCqAoIOrtQ+vxdDvi5TxH7T79855jX/se773d3p/4s3Fqfu11QH36ajt1y+AMCIKnBQmCyiCKDBJoCWir2JCxvvePqsRQVFKVpGpXhs/reepJau+19/rWSqq+tdbee21zd0RERIKSlekARESka1HiERGRQCnxiIhIoJR4REQkUEo8IiISKCUeEREJlBKPiIgESolHREQClZ3pAIJiZpcCU4BjgMfc/Y0MhyQi0iUF2uMxs75mtszMNpnZRjP7aRv2Nc/MKsxsQ5x1k81si5ltNbPbANx9vrvPBGYBP2r9qxARkbYIeqitFvh/3H0IMBL4ZzMb0riAmRWaWUHMsgFx9vUEMDl2oZmFgLnARcAQ4MqYOn4ZXS8iIhkQaOJx97+4+3vR3w8Am4GimGJjgflmlgdgZjOBB+PsawXwZZxqzgG2uvs2d68GngGmW8Rs4NX6GEREJHgZO8ZjZsXAmcDqxsvd/Xkz6wc8a2bPA9cBk1qw6yJgV6Pn5cAI4GZgItDDzAa4+0NxYpoGTCsoKJg5aNCgFlTZxR06BHv3QnEx7N4d+f3MM8Es05GJSIDWrl273917JSqXkcRjZkcDfwR+5u7fxK5397vN7Bngd8BJ7v5tW+t09weABxKUWQQsKikpmVlWVtbWKrumF1+Eyy+HuXNh5MhMRyMiATKzncmUC/x0ajPLIZJ0nnL3PzVRZjQwFHgRuKOFVewG+jZ63ie6TIIwYkTk56pVmY1DRNqtoM9qM+AxYLO7z2mizJnAw8B04FrgODP7dQuqWQMMNLN+ZpYLXAEsbFvkkrQTToC+fWH16sRlRaRLCrrHMwr4MVBqZuujj4tjynQHZrj7p+4eBn4CHNF9M7M/AO8AJ5tZuZldD+DutcBNwOtETl54zt03pu8lyRFGjlSPR0SaFOgxHnd/G2j2iLO7/0fM8xrgkTjlrmxmH68Ar7QyTGmrESPg+ecjJxn07p3paESkndGUOZJ69ScVaLhNROJQ4pHUGz4csrOVeEQkLiUeSb1u3eCMM3ScR0TiUuKR9BgxAt59F+rqMh2JiLQzSjySHiNHwrffwubNmY5ERNoZJR5JD11IKiJNUOKR9Bg4EL73PZ1gICJHUOKR9DCL9HrU4xGRGEo8kj4jR8LGjXDgQKYjEZF2RIlH0mfkSHDXcJuIHEaJR9LnvPMgFILlyzMdiYi0I0o8kj4FBXD22fDmm5mORETaESUeSa/x42HNGh3nEZEGSjySXqWlUFsLb7+d6UhEpJ1Q4pH0Ou88yMnRcJuINFDikfTq3h3OPReWLct0JCLSTijxSPqNHw/vvQd//WumIxGRdkCJR9KvtDRyPc+KFZmORETaASUeSb8RIyA/X8d5RARQ4pEg5OXB+efrOI+IAEo8EpTx4+HDD2HfvkxHIiIZpsQjwSgtjfzU9DkiXZ4SjwSjpCQyhY6O84h0eUo8EozsbBg9Wsd5RESJRwJUWgpbtsCePZmOREQySIlHgjN+fOSnej0iXZoSjwTnjDPge9/TcR6RLk6JR4ITCsHYserxiHRxSjwSrNJS2L4dduzIdCQikiFKPBKs+uM8Gm4T6bKUeCRYp54KJ5wAr72W6UhEJEOUeCRYZjB5MrzxRuTOpCLS5SjxSPAuvhi+/hreeSfTkYhIBijxSPAmTozMZPDKK5mOREQyQIlHgtejB4waBa++mulIRCQDlHgkMy66CN5/H3bvznQkIhIwJR7JjIsvjvxUr0eky8nOdACSGu7O51s/pmzRn9i2rozammqyc3LpP/xsSqZdxvEnDcLMMh3md4YOhb59I8d5brghuW3cYfda+PMD8MkbUFMJOfkw8EI47xYoGh45a04kyt3Zu+Mb1i/+jJ0bvqC2Okx2bhY/GNqTMyedSGFxQft6X3QR5u6ZjqHdKSkp8bKyskyHkbS62lpemzuHrWtXU1ddTeO/qZkRys1lwFkjmPzPPyeU3Y6+a8yaBU89Bfv3R26P3Zy6GnhxFmx5BWorwcPfrbMsyM6Hky+Gyx6CUE5645YOoa4uzNLHN7H9g/3U1YRp/FFnBqGcLPqd3pMJ1w4hFNLgTyqY2Vp3L0lUrsu0tpldamaPmNmzZnZBpuNJFXePJJ2y1dRWVRH7RcLdqa2qYmvZKl6bO+eI9Rk1ZQp8+y2sWNF8Ofdo0nkZag4ennQg8rzmIHz0cqRce3qNkhHuHkk67++ntjp8xL+EO9RWh9n+/n6WPr6pfb0vuoBAE4+Z5ZvZu2b2vpltNLP/0YZ9zTOzCjPbEGfdZDPbYmZbzew2AHef7+4zgVnAj1r/KtqXz7d+zNa1q6mtrmq2XG11NVvXrubzTz8OKLIkTJgQ6em8/HLz5XavjfR0ag41X672UKTc7vdSF6N0SHt3fMP2D/ZTWxNutlxtTZjtH+ynYseBgCITCL7HUwWUuvsZwDBgspmNbFzAzArNrCBm2YA4+3oCmBy70MxCwFzgImAIcKWZDWlU5JfR9Z1C2UsvUlddnVTZuupqyl6an+aIWqB798ikoYkSz58fjAyvJaO2Et75bdtjkw5t/eJd1CVIOvXqasKsX/JZmiOSxgJNPB7xbfRpTvQR28cdC8w3szwAM5sJPBhnXyuAL+NUcw6w1d23uXs18Aww3SJmA6+6e6f5SrztvTVJDxO4O9veezfNEbXQlCmwdSt88knTZT55/cjhtaZ4GD7WPHBd3c4N+5MecXWHHR/uT29AcpjAj/GYWcjM1gMVwGJ3X914vbs/D7wOPGtmVwHXAX/fgiqKgF2NnpdHl90MTAR+aGazmohtmpk9/PXXX7egusyqrUmut9NQPsneUWB+9CNYtw4GxOvURtUk2dupV5tgSE46vdrqJL+o1JdPsnckqRF44nH3OncfBvQBzjGzoXHK3A1UAr8DLmnUS2pLvQ+4+1nuPsvdH2qizCJ3v7FHjx5trS4w2Tm5LSuf27LyadezJwwb1vxp0Dn5Ldtndre2xSQdXnZuyz7asnO6zHlW7ULGWtvdvwKWEf84zWhgKPAicEcLd70b6NvoeZ/osk6p//Czk74OwczoP/ycNEeUBgMvjJwynQzLgkFH/EtJF/ODoT2TvqTLDIpP65negOQwQZ/V1svMjo3+3g2YBHwUU+ZM4GFgOnAtcJyZ/boF1awBBppZPzPLBa4AFqYi/vaoZOplhJLsxYRycymZemmaI0qD826OXKeTjOx8OPem9MYj7d6wSX0JJdmLCeVkMWziiWmOSBoLusfzd8AyM/uASIJY7O4vxZTpDsxw90/dPQz8BNgZuyMz+wPwDnCymZWb2fUA7l4L3ETkONFm4Dl335i2V5Rhxw8YxICzRiQcQsuOXkR6/EmDAooshYrOilwcmmgILbtbpFzR8GDiknard/Ex9Du9Z8IhtOzoRaSFxQXNlpPU0swFcWjmgnZIMxdIC2nmguAlO3OBEk8cHS3xQHSutk8/pmzRi2xbt4ba6mqyc3PpP/wczp56GccP6IA9nVjukYtD6+dqqz0U6eUMmgzn3RTpGYk04u5U7DjAusWfsXND5ILS7Jwsik/rybBJJ9K7+JhMh9ipKPG0QUdMPCIimaa52kREpF1S4hERkUAp8YiISKCUeEREJFBKPCIiEiglHhERCZQSj4iIBEqJR0REAqXEIyIigVLiERGRQCnxiIhIoJR4REQkUEo8IiISKCUeEREJlBKPiIgESolHREQCpcQjIiKBUuIREZFAKfGIiEiglHhERCRQSjwiIhKo7EwHIMFxd9bv+opHVm5j2Uf7qKypIz8nROkphcwc058z+vTAzDIdpoh0cko8XURNXZifP7eeJZsqqKqtI+yR5Ydq6nh1w19486MKJg4pZM6MYeSE1BEWkfTpMp8wZnapmT1iZs+a2QWZjidI7s7Pn1vP4k17OVTzXdKpF/ZIAlq8aS8/f2497h5/RyIiKZCRxGNmITNbZ2YvtWEf88yswsw2xFk32cy2mNlWM7sNwN3nu/tMYBbwo9ZH3/Gs3/UVSzZVUFkTbrZcZU2YJZsqeL/864AiE5GuqMWJx8yON7PhZjbKzE42s9xW1PtTYHMT+y80s4KYZQPiFH0CmBxn+xAwF7gIGAJcaWZDGhX5ZXR9l/Hoyu1U1dYlVbaqto5HV25Lc0Qi0pUllXjMrMTMHjKz7cBuYA2wAtgEfG1mK8zsn2ITRhP76gNMAR5toshYYL6Z5UXLzwQejC3k7iuAL+Nsfw6w1d23uXs18Aww3SJmA6+6+3uJ4uxM3vyo4ojhtaaEHZZurkhvQCLSpTV7coGZlQD3AGOAD4GXgHXAPuAQ8H2gHzACuAu4y8zuBn7j7pVN7PY+4F+BuEnK3Z83s37As2b2PHAdMKkFr6kI2NXoeXk0vpuBiUAPMxvg7g/Feb3TgGkDBsTrYHVclTXJ9XYayifZOxIRaY1EZ7W9BTwC/JO7xx0aq2dm+cB0IkklC/hVnDJTgQp3X2tm45ral7vfbWbPAL8DTnL3bxPEmZC7PwA8kKDMImBRSUnJzLbW157k54Q41ILkk58dSmM0ItLVJRpqO8ndf5Yo6QC4e6W7P+vuZwEPN1FsFHCJme0gMgRWamb/J7aQmY0GhgIvAnckqjvGbqBvo+d9osu6rNJTCslK8vKcLIMJgwvTG5CIdGnNJh53/7w1O3X3vU0s/4W793H3YuAK4E13/8fGZczsTCKJazpwLXCcmf26BdWvAQaaWb/oiQ9XAAtb8TI6jRtG9yMvyV5MXnaIG0b3T3NEItKVJX1WW/T05VubWNffzOalKKbuwAx3/9Tdw8BPgJ1x6vwD8A5wspmVm9n1AO5eC9wEvE7kzLnn3H1jimLrkIb1PZaJQwrJz2n+z52fk8XEIYWc0adHQJGJSFdkyV4saGZhwIEXgJ+4e1WjdSOAP7t7pzg4UFJS4mVlZZkOI6WamrkAIsNredkhzVwgIm1iZmvdvSRRuZZOmfNL4FZguZld4u77WhWdBC4nlMUDV5zJ++Vf88iKbbz5UQWVtXXkZ4eYMLiQmaP7c0bfYzMdpoh0AS1NPEuBPwKLgHfNbIq7b0p9WJIOZsawvscy96rhmQ5FRLqwFo+puPvHRK6L2Qb82cwuTHlUIiLSabVqMN/dvwIuBJ4j0vu5MZVBiYhI59Xq2yJEzx670cw2A/9f6kISEZHOrCWJZzxxJvZ093vNbDUwMGVRiYhIp5V04nH3t5pZ92fgzymJSEREOrVEk4T+pAX7cnf/fRvjERGRTi5Rj+eJOMsciDfzlwNKPCIi0qxEiSf2uE02keM8lwJdehoaERFpnWYTj7t/2vh59O6eAOWx60RERJKhSblERCRQSjwiIhIoJR4REQlUotOpYxNT/TGerDjriN4/R0REpEmJzmqrJXKadKzVcZZ5EvsTETmCu/Ph/g95YuMTrCxfSVVdFXmhPMb0GcM1p17D0J5DMUvy/u3S7iVKFP+T+IlHRCQlasI13L7ydpbtWkZ1XTVhIgMnlXWVLNm5hJW7VzKuzzjuHH0nOVk5GY5WUiHpO5B2JZ3xDqQi7ZG7828r/o1lu5ZRWVfZZLn8UD7j+45n9pjZ6vm0Y8negVQnF4hIxny4/0OWly9vNulApPezvHw5G/ZvCCgySadmE4+ZXd7SHZrZ35nZyNaHJCJdxZMbn6SqtiqpslW1VTy56ck0RyRBSNTjedDM1pvZLDP7fnMFzWy0mT0MbAVOT1mEItJprShf0XBMJ5EwYVaUr0hzRBKEZOZqu5XISQYPRm/69j6wD6gCvgf0B0qAHsAKYFL0NgkdjplNA6YNGDAg06GIdAlVdcn1dupV1jY/JCcdQ7M9Hnc/6O7/E+gD/CNQBpwFXAf8CzCNyLU99wOnuvv4jpp0ANx9kbvf2KNHj0yHItIl5IXyWlQ+Pzs/TZFIkJK67sbdq4Fnow8RkZQY02cMS3YuSWq4LYssxvQZE0BUkm46q01EMubqU68mLzu5Xk9uKJerh1yd5ogkCEo8IpIxp/U8jXF9xpEfan4Irf46nqE9hwYUmaSTEo+IZIyZcefoOxnfdzzdsruRFfORlEVWQ9K5c/Sduni0k9DcaiKSUTlZOcweM5sN+zdE5mrbvZLK2krys/MPm6tNOg8lHhHJODPjtF6n8Ztxv8l0KBIADbWJiEiglHhERCRQKUk8ZvafzKwuFfsSEZHOTT0eEREJVKJbX/8kyf2cnYJYRESkC0h0VtsTRO5AmszJ87qjnIiIJJQo8XwJLAJ+naDcRUQmChUREWlWosSzFujv7p82V8jM/pK6kEREpDNLdHLBWuDMJPazj8i9eERERJqV6H48/9Xdj0m0E3df4e7jUxeWiIh0Vl1myhwzuxSYAhwDPObub2Q4JBGRLqnZHo+ZlZrZ0ams0MyONbMXzOwjM9tsZue2cj/zzKzCzDbEWTfZzLaY2VYzuw3A3ee7+0xgFvCjtr0KERFprUTHeBYDQ+qfmFmWma0ws4FtqPN+4DV3PwU4A9jceKWZFZpZQcyyAXH28wQwOXahmYWAuUTOtBsCXGlmQxoV+WV0vYiIZECixBN7/Y4B5wMFccomZGY9gDHAYxC5pba7fxVTbCww38zyotvMBB6M3Ze7ryByunesc4Ct7r4tesvuZ4DpFjEbeNXd32tN/CIi0nZBT5nTj8gZcI+b2Toze9TMjmpcwN2fB14HnjWzq4DrgL9vQR1FwK5Gz8ujy24GJgI/NLNZ8TY0s2lm9vDXX3/dgupERKQlgk482cBw4HfufibwN+C22ELufjdQCfwOuMTdv21rxe7+gLuf5e6z3P2hJsoscvcbe/To0dbqRESkCcmc1VZkZv2jv4caLYsdIsPdtyXYVzlQ7u6ro89fIE7iMbPRwFDgReAO4KYk4qy3G+jb6Hmf6DIREWkHkkk8L8RZNr+JsqEmlgPg7p+b2S4zO9ndtwATgE2Ny5jZmcDDwFRgO/CUmf3a3X+ZRKwAa4CBZtaPSMK5AviHJLcVEZE0S5R4rk1DnTcTSSa5wLY4dXQHZtRP0xOdIfua2J2Y2R+AcUBPMysH7nD3x9y91sxuInKcKATMc/eNaXgdIiLSCuauSaVjlZSUeFlZWabDEBHpUMxsrbuXJCqnG8GJiEiglHhERCRQSjwiIhIoJR4REQmUEo+IiARKiUdERAKlxCMiIoFS4hERkUAp8YiISKCUeEREJFBKPCIiEiglHhERCZQSj4iIBEqJpxHd+lpEJP2UeBrRra9FRNJPiUdERAKlxCMiIoFS4hERkUAp8YiISKCUeEREJFBKPCIiEiglHhERCZQSj4iIBCo70wGIdDXuTuUHH/DFvMf59q238KoqLC+Po8eN47jrriX/tNMws0yHKZI2SjwiAfKaGvbcdhsH3lyGV1VBOBxZXlnJgTfe4Nu33qKgdDwn3HUXlpOT4WhF0kOJpxW++eYbKioqqKmpyXQo0sHU/vWv+JQpcPHFTZb5wowv16wh+3vfCzAykabl5ORQWFjIMccck5L9KfG00DfffMPevXspKiqiW7duGhKRpIUPHqTKvaGX06ysLPJ+8AOyundPf2AizXB3Dh06xO7duwFSknx0ckELVVRUUFRURPfu3ZV0pEVq93+RXNIBCIep/eKL9AYkkgQzo3v37hQVFVFRUZGSfSrxtFBNTQ3dunXLdBjSAdUdOJDW8iLp1K1bt5QdXlDiaSTZ+/GopyOt4kn2duol2zsSCUAqP/eUeBrR/XgkrayFb7csvT2lc9LJBQFzd9bv+opHVm5j2Uf7qKypIz8nROkphcwc058z+vRQj6qF3J0P93/IExufYGX5SqrqqsgL5TGmzxiuOfUahvYc2i7aNFRQQN03yd/dNlRQkMZomufu7N3xDesXf8bODV9QWx0mOzeLHwztyZmTTqSwuKBdtGlH4+58vvVjyhb9iW3ryqitqSY7J5f+w8+mZNplHH/SoMDatbi4mJtuuolbb701kPoaM3cPvNL2rqSkxMvKyuKu27x5M4MHD27Vfmvqwvz8ufUs2VRBVW0d4UZNn2WQlx1i4pBC5swYRk4oPd92Z82aRX5+Pvfdd1/S26xatYqpU6eyd+9eQqFQWuJqrZpwDbevvJ1lu5ZRXVdNmO+Gp7LIIi87j3F9xnHn6DvJyUrPdTHJtmn44EGqduyAcJjnX32Vex57jNUvvBC/cFYWecXFGTmrra4uzNLHN7H9g/3U1YRp/BFhBqGcLPqd3pMJ1w4h1I7+TwFOOeUU7rrrLi699NK0xNUWdbW1vDZ3DlvXrqauuprGn71mRig3lwFnjWDyP/+cUHZ6+gSN23Xfvn0cddRRdI/5H2uuDRN9/pnZWncvSRSH+vIBcXd+/tx6Fm/ay6Gaw5MOQNjhUE0dizft5efPrScdXwjcnYULF7b4TblgwQKmTp3a7pKOuzckncq6ysOSDkCYMIdqD7Fs1zJuX3l7xtvUunWL9GIsi5eWLWNaaWkTBbMIFRRgGTiJxd0jSef9/dRWH550IuuhtjrM9vf3s/TxTRlv08a2bNnCZ599xgUXXJDymNrK3SNJp2w1tVVVR7Sbu1NbVcXWslW8NndOIO3aq1evI5JOUG2oxBOQ9bu+YsmmCiprmj9gXFkTZsmmCt4vT35IJllr1qyhqqqK888/H4Cvv/6aG2+8kcLCQgoKChg7dizxenoLFixg+vTpKY+nrT7c/yHLy5dTWVfZbLnKukqWly9nw/4NKY8htk0/++wzLrvsMgoKCigoKODyyy+nvLwciHyrzSkqItwtnzfefpup48cfucOsLELHFJBTVJSRoay9O75h+wf7qU3wf1pbE2b7B/up2JH6M+9i29TMeCGmZ1hcXMw999xz2LIFCxYwadKkIz5M24PPt37M1rWrqa2uarZcbXU1W9eu5vNPP055DLHtmsk2VOIJyKMrt1NVW5dU2araOh5duS3lMcyfP58pU6aQnZ2NuzNlyhR2797NSy+9xLp16xgzZgylpaX85S9/adjmk08+YceOHe3yW+STG5+kqrb5N3K9qtoqntz0ZMpjaNym4XCY6dOns3fvXpYtW8ayZcvYs2cPl156acM3WMvK4u1PPqHHscdy1oiR351AkJVFqEcP8oqLye3bF8vQiQXrF++iLkHSqVdXE2b9ks9SHkPjNm3pdu3xCxJA2UsvUlddnVTZuupqyl6an/IYkmnXoNpQiScgb35UccTwWlPCDks3p+ZCrcYWLFjQ0M1etmwZ69ev54UXXuCcc85hwIAB/OpXv6J///78/ve/b9hm/vz5TJw4kaOOOirl8bTVivIVRwyvNSVMmBXlK1IeQ+M2Xbp0KR988AFPP/00JSUllJSU8PTTT/Pee++xdOnShm0WLlzI9EsvJffEvnQbMoRuQ4fSbcgQcvv2zfhMBTs37D9ieK0p7rDjw/0pj6FxmyZr7969rFmzhmnTpqU8nlTY9t6apIfP3J1t772b8hgStWuQbajEE5DKmuR6Ow3lk+wdJWvr1q1s27aNCy+8EIC1a9dy8OBBevXqxdFHH93w2LBhA59++mnDdu11mA2gqi653k69ytrmh+RaKrZNN2/ezAknnEBxcXFDmf79+3PCCSewadOmhmULFy5st21aW92ya4cSDcm1VGybJmvRokWMHDmSXr16pTSeVKmtSa6301A+yd5RspJp1yDbUKdTByQ/J8ShFiSf/OzUHsifP38+EyZMaOi5hMNhevfuzcqVK48oWz8XU0VFBatXr+ZPf/pTSmNJlbxQXsLjO43lZ+entP7YNm1O/fGasrIyvv32W8aOHZvSWFIlOzerRcknOye1313jtamZHdFbiL2Cvj0PswFk5+QmPL5zWPnc3JTWn8z/apBtqB5PQEpPKSQryWPFWQYTBhemtP7Ybvbw4cPZu3cvWVlZDBgw4LBHYWGk7kWLFjFixIiG5+3NmD5jyEryXziLLMb0GZPS+mPbdPDgwezZs4cdO3Y0LNu2bRt79uxhyJAhDdu05vhFUH4wtCfJntNgBsWn9Uxp/fGGg3r16nXYcce9e/ce9vxvf/sbS5cubZenUNfrP/zspE8WMTP6Dz8npfUnGmYLug2VeAJyw+h+5CXZi8nLDnHD6P4pq3vfvn2sWrXqsLHbiRMnMmrUKKZPn86rr77K9u3beeedd7jjjjsaekHteZgN4OpTryYvOy+psrmhXK4ecnXK6m6qTU8//XSuuuoqysrKKCsr46qrrmL48OGURk+dbu9tOmxSX0JJ9mJCOVkMm3hiyuqO16YApaWlzJ07l7KyMtatW8c111xDfv53vdfXX3+d/v37M2DAgJTFkmolUy8jlGQvJpSbS8nU1CWAptq1saDbUIknIMP6HsvEIYXkJ3hT5+dkMXFIIWf0Sd20PYsWLeLss8+md+/eDcvMjFdeeYXS0lJmzpzJySefzIwZM9iyZQsnnHACBw8eZMmSJe36Q/K0nqcxrs848kPND6Hlh/IZ33c8Q3sOTVndTbXpggUL6NWrF+PHj2f8+PEcf/zxzJ8/HzNj27ZtfPzxx0yePDllcaRa7+Jj6Hd6z4RDaNnRi0gLi1M3u0K8NgX4zW9+Q//+/Rk3bhw//OEPueGGGw7rhbf3YTaA4wcMYsBZIxIOoWVHLyI9/qRBKau7qXZtLOg21MwFcXS2mQumT5/OqFGj+Nd//dekt3nxxRe5/fbbDzso3h7Vz1ywvHw5VbVVR8xckBvKZXzf8SmfuaA1bXrvvfeyePFiXnnllZTFkQ6ZmrmgNW1aV1dHYWEhr776Kueck9rhqVTL1MwFidq1JW2YqpkL2udAc4aY2TRgWrq6mzmhLB644kzeL/+aR1Zs482PKqisrSM/O8SEwYXMHN2fM/oem/J6R40axZVXXtmibY466ihmz56d8lhSLScrh9ljZrNh/4bIXG27V1IBNmUEAAAPPElEQVRZW0l+dv5hc7WlWmvatKioiF/84hcpjyXVQqEsJl1/KhU7DrBu8Wfs3BC5oDQ7J4vi03oybNKJ9C5OzZ0oG2tNm37xxRf8y7/8C2effXbK40m1UHY2F9/yX/j8048pW/Qi29atoba6muzcXPoPP4ezp17G8QNS19Opl6hdM9GG6vHEka4ej4hIR6a52kREpENS4hERkUAp8YiISKCUeEREJFBKPCIiEiglHhERCZQSj4iIBKrTX0BqZoOBnwI9gaXu/ruMBuQOu9fCnx+AT96AmkrIyYeBF8J5t0DRcJKepVGAyP1LKj/4gC/mPc63b72FV1VheXkcPW4cx113LfmnnZaRu3mKSHwdssdjZvPMrMLMNsQsn2xmW8xsq5ndBuDum919FjADGJWJeBvU1cAfb4Anp8HmRVBzCPDIz80L4cmpkfV1NQl31VqzZs3iZz/7Wdq3CYrX1LDn1lvZec21HFi8GK+sBHe8spIDb7zBzquvYc+tt+I17atNV61aRc+ePamrS+19l0Q6gg6ZeIAngMNmWjSzEDAXuAgYAlxpZkOi6y4BXgYyN0mWO7w4C7a8DDUHwWPueeLhyPKPXo6US8OMEu7OwoULWzT1eWu2CYq7s+e22ziw9E380CEIx7RpOIwfOsSBpW+y57bbkr4DZEtjaE37LFiwgKlTpxIKpfa+SyIdQYdMPO6+AvgyZvE5wFZ33+bu1cAzwPRo+YXufhFwVbCRNrJ7LWx5JdrLaUbtoUi53e+lPIQ1a9ZQVVXF+eefz3XXXcfUqVMPWx8OhznxxBOZM2dO3G3am8oPPuDAm8sivZxmeGUlB95cRuWHH6Y8htj2mTNnDqeffjpHHXUURUVF3HDDDXz11VdHbNfeb48gkk4dMvE0oQjY1eh5OVBkZuPM7AEz+9800+MxsxvNrMzMyvbt25f66P78ICR76+XaSnjntykPYf78+Q03IZs5cyavvfbaYTfUWrx4MZ9//jk//vGP427T3nzx+BN4VXJ3dfSqKr54/PGUxxDbPllZWdx3331s3LiRp59+mnfffZebb775sG0++eQTduzYwQUXXJDyeEQ6gs6UeOJy9+Xufou7/2d3n9tMuYfdvcTdS9Jyz/FPXj9yeK3JYMLw8WspD6HxXQjPPfdcTjnlFJ588smG9fPmzeOSSy457J7rie5cmEnfLl9+5PBaU8Jhvl3+VspjiG2fn/3sZ5SWllJcXMzYsWO5++67ee655wg3inP+/PlMnDgxqVtmi3RGnSnx7Ab6NnreJ7qsfahJsrdTrzbBkFwLbd26lW3btnHhhRc2LJs5cyaPR3sBX375JQsWLOD6669vdpv2JNneTkP5BENyLRWvfd58800mTZpEnz59KCgo4PLLL6e6uprPP/+8oYyG2aSr60yJZw0w0Mz6mVkucAWwMMMxfSen+btkHiG7W0qrnz9/PhMmTDjsW/aPf/xjdu7cydtvv81TTz1Fr169DvsQjbdNe2J5yd32uqF8fgv/BgnEts/OnTuZMmUKgwcP5vnnn2ft2rXMmzcPgOrqagAqKipYvXp1s7chFunsOmTiMbM/AO8AJ5tZuZld7+61wE3A68Bm4Dl335jJOA8z8EKwJJvbsmBQam+PHG/I7Pvf/z6XX3458+bNY968eVx99dVkZWU1u017cvS4cZCVZJtmZXH0uLEprT+2fcrKyqiurubee+/l3HPPZdCgQezZs+ewbRYtWsSIESMOu3WzSFfT/o4YJ8Hd495Oz91fIZOnTDfnvJujF4weTFw2Ox/OvSllVe/bt49Vq1bxwgsvHLFu5syZTJ48mZqaGv74xz8mtU17cdy110QuGD2UeFjS8nI57tprU1Z3vPYZOHAg4XCY++67j8svv5xVq1Zx3333HbadhtlEOmiPp0MqOgtOvjjxEFp2t0i5ouEpq3rRokWcffbZ9O7d+4h148aNo0+fPowbN47+/fsntU17kX/66RSUjk84hGb5+RSUlpJ/2mkpqzte+5x++uncf//9zJkzhyFDhvDoo49yzz33NKw/ePAgS5YsUeKRLk+JJyhmcNlDcMoUyOl+5LCbZUWWnzIlUi6FU7w0N2RWWVnJX//618NOKki0TXthZpxw110UTCjFunU7ctgtKwvrlk/BhFJOuOuulE6b01T73HLLLezevZtDhw6xdOlSZsyYgbtTXFzM66+/TnFxMYMGDUpZHCIdUYccauuwQjnwnx6NXBxaP1db7aFIL2fQZDjvpkjPKMVGjRrFlVcePjoZDofZv38/999/P926dWPGjBkJt2mPLCeHE+65h8oPP/xurrbKSiw/n6PHjeW4666jWwp7OvVa0z5HHXUUs2fPTnksIh2NpWMakY6upKTEy8rK4q7bvHkzgwcPDjii1NuxYwf9+vWjT58+PPbYY7qYUUQSSvT5Z2Zr3b0k0X7U4+miiouL0zJ3mYhIIjrGIyIigVLiaQX1FESkq0nl554STwvl5ORwKInrRkREOpNDhw6Rk5OTkn0p8bRQYWEhu3fv5uDBg+r5iEin5+4cPHiQ3bt3p2zGDZ1c0ELHHHMMAHv27KEmjXe1FBFpL3Jycujdu3fD519bKfG0wjHHHJOyP4CISFejoTYREQmUEo+IiARKiUdERAKlxCMiIoFS4hERkUBpktA4zOxr4JNMx9GB9AC+znQQklE9gf0p3F+6/qeC+F8N+v3Qnt5/A929R6JCOp06vmfd/cZMB9FRmNnDaq+uzczKkpmVuAX7S8v/VBD/q0G/H9rT+8/MHk6mnIba4luU6QA6GLWXpFq6/qeC+F8N+v3Qnt5/ScWioTYRabNU93ikc1OPR0RSIakhFhFQj0dERAKmHo+IiARKiUdERAKlxJMiZjbYzB4ysxfM7J8yHU97p/YSySwzu9TMHjGzZ83sgiDr7lSJx8zyzexdM3vfzDaa2f9ow77mmVmFmW2Is26ymW0xs61mdhuAu29291nADGBU619FcMysr5ktM7NN0fb6aRv21enbS5KnLxbJM7Njo+30kZltNrNzW7mflr4H57v7TGAW8KO2vYoWcvdO8wAMODr6ew6wGhgZU6YQKIhZNiDOvsYAw4ENMctDwKdAfyAXeB8YEl13CfAq8A+Zbosk2+vvgOHR3wuAj+tfi9pLjzh/43lARZy/8WRgC7AVuC1mXRbwfzIde3t+AE8CN0R/zwWOjVmftvdgdP1v6j8Hgnp0qh6PR3wbfZoTfcSetjcWmG9meQBmNhN4MM6+VgBfxqnmHGCru29z92rgGWB6dJuF7n4RcFUqXk+6uftf3P296O8HgM1AUUwxtZfUe4JIkmlgZiFgLnARMAS40syGRNddArwMvBJsmB2HmfUgkjAeA3D3anf/KqZYWt6DFjEbeLX+cyAonW7KnOgbYS0wAJjr7qsbr3f3582sH/CsmT0PXAdMakEVRcCuRs/LgRFmNg64HMijA77RzKwYOJNIL7GB2kvqufuK6P9JYw0fagBmVv/FYpO7LwQWmtnLwNNBxtqB9AP2AY+b2RlEPrt+6u5/qy+QrvcgcDMwEehhZgPc/aG2vZTkdbrE4+51wDAzOxZ40cyGuvuGmDJ3R98gvwNOatRLaku9y4Hlbd1PJpjZ0cAfgZ+5+zex69Ve0gx9sWibbCLDYze7+2ozux+4DfhvjQul6T34APBAW/fTGp1qqK2xaHd1GTFDAwBmNhoYCrwI3NHCXe8G+jZ63ie6rEMysxwiSecpd/9TE2XUXtIi7r7c3W9x9//s7nMzHU87Vg6UNxqZeYFIIjpMZ3sPdqrEY2a9oj0dzKwbke7oRzFlziQyvcd04FrgODP7dQuqWQMMNLN+ZpYLXAEsTEX8QTMzIzK2vNnd5zRRRu0lzWl3H2odibt/Duwys5OjiyYAmxqX6YzvwU6VeIicpbXMzD4g0tiL3f2lmDLdgRnu/qm7h4GfADtjd2RmfwDeAU42s3Izux7A3WuBm4DXiRyMf87dN6btFaXXKODHQKmZrY8+Lo4po/aS5rS7D7UO6Gbgqejn1jDgf8Ws73TvQc3VJiJJiX6wjSNy07e9wB3u/lj0y8p9RE7bnefud2YuSukIlHhERCRQnW2oTURE2jklHhERCZQSj4iIBEqJR0REAqXEIyIigVLiERGRQCnxiIhIoJR4RNrAzK4xM2/iMTFapsTMHo7e6OugmX1mZk9FZxxOtp4iM/ubmZU0WvaEmZU3UX5iNIZxLajjzGh8Jya7jUhrdLrZqUUy5O+JTPjYWP2cW1cApxKZCXgjkRmd/xtQZmbD3H0Xif0KWObuZSmK9wjuvs7MFkfrujpd9Ygo8Yikxnp339rEutnuvq/xAjP7D2A7MBP49+Z2bGa9gX8ELktFoAn8b2CBmf3C3fcEUJ90QRpqE0mz2KQTXbaTyA3AYu/4Gs81wAEikzy2SoIhwf/eqOgbwDfROkXSQolHJDVCZpbd6BFqrrCZDQYKicwWnMhk4J3oLMPx9pUd++DI9/bLwLkxj99G1zXEEK3jHeLcx0okVTTUJpIaH8U8/w/g/HgFo4nhISI9nsea22n0nkkjgHubKFIE1CQKLtrrauh5mdkoIsN897r7szHF1wH/xcyyotPwi6SUEo9IalzG4ScXHGim7G+B84Ap7v7XBPs9FuhGo6QRowKYEmf5OUDcO3+aWTGRO1m+Dtwap8g+Ires/j6wP0F8Ii2mxCOSGhuaObmggZndBdwIXO3ubySx3/zoz6om1tfEO9Ot/k68cZYfA7xEJEn+QxM9mkPRn92SiE+kxZR4RAJiZrcD/wbc7O6/T3KzL6I/v5eC+kPAs0R6USPc/W9NFP1+9Kd6O5IWSjwiATCzW4BfA7e7+28Tla/n7tVmth3on4Iw5gCjgdHuvruZcv2AXe5+qJkyIq2mxCOSZmZ2BZFbQ78GvGlmIxut/sbdN8XfssEKIsds2hrDLcD/C+TFxFDu7o2PT42I1imSFjqdWiT9JgMW/flOzOP/T2L7Z4Gh0ZMCWuuU6M9fxInhhvpCZtYXOAN4pg11iTTL3D3TMYhIM8wsC/gEeNzdf53muv4N+CfgJHevS2dd0nWpxyPSzkXPPPt34GYz656ueswsH/gp8O9KOpJOOsYj0jE8TeRi0WK+m3w01YqB+4Fkz7gTaRUNtYmISKA01CYiIoFS4hERkUAp8YiISKCUeEREJFBKPCIiEqj/CytAn9T8caGAAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "print(\"s\", s)\n", "\n", "plt.loglog([2.**f for f in s[len(s)//2:]], [2.**f for f in s[:len(s)//2]], color=\"r\")\n", "\n", "# Plot some vowels\n", "v_o = list(np.log2([500, 900]))\n", "v_y = list(np.log2([300, 1700]))\n", "v_u = list(np.log2([300, 800]))\n", "v_e = list(np.log2([400, 2200]))\n", "v_i = list(np.log2([300, 2300]))\n", "v_a = list(np.log2([800, 1300]))\n", "vowels = dict(o=v_o, y=v_y, u=v_u, e=v_e, i=v_i, a=v_a)\n", "for v in vowels.keys():\n", " p = plt.plot(2.**vowels[v][1], 2.**vowels[v][0], \"o\", label=\"/\" + v + \"/\", markersize=12)\n", "\n", "legend = plt.legend(frameon=True, fontsize=14, ncol=4, loc=\"lower center\")\n", "\n", "plt.xlabel(\"F2 (Hz)\", fontsize=16)\n", "plt.ylabel(\"F1 (Hz)\", fontsize=16)\n", "plt.xlim([3000., 500])\n", "plt.ylim([1200., 200.])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To have a closer look at DMPs, we can plot the shape of the two basis functions that are used to generate a trajectory of an articulator given one weight on each basis function plus the start and end position of the articulator." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "centers: [ 0.69314718 0.22314355]\n", "variances: [ 55.45130697 303.58021728]\n" ] }, { "data": { "text/plain": [ "[,\n", " ]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "print(\"centers:\", environment.dmp.dmp.c)\n", "print(\"variances:\", environment.dmp.dmp.h)\n", "bfs_shapes = environment.dmp.dmp.gen_psi(environment.dmp.dmp.cs.rollout())\n", "plt.plot(bfs_shapes)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here is the sound trajectory generated with the random set of parameters:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import IPython\n", "IPython.display.Audio(environment.sound_wave(environment.art_traj).flatten(), rate=11025)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And now we plot 20 trajectories generated with random DMP parameters." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/sforesti/scm/Flowers/explauto/build/lib/explauto/environment/diva/diva.py:152: RuntimeWarning: invalid value encountered in log2\n", " formants = log2(transpose(res[self.s_used,:]))\n" ] }, { "data": { "text/plain": [ "(1200.0, 200.0)" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "for m in environment.random_motors(20):\n", " s = environment.update(m)\n", " plt.loglog([2.**f[1] for f in environment.formants_traj], [2.**f[0] for f in environment.formants_traj], color=\"r\", alpha=0.5)\n", "\n", "# Plot some vowels\n", "v_o = list(np.log2([500, 900]))\n", "v_y = list(np.log2([300, 1700]))\n", "v_u = list(np.log2([300, 800]))\n", "v_e = list(np.log2([400, 2200]))\n", "v_i = list(np.log2([300, 2300]))\n", "v_a = list(np.log2([800, 1300]))\n", "vowels = dict(o=v_o, y=v_y, u=v_u, e=v_e, i=v_i, a=v_a)\n", "for v in vowels.keys():\n", " p = plt.plot(2.**vowels[v][1], 2.**vowels[v][0], \"o\", label=\"/\" + v + \"/\", markersize=12)\n", "\n", "legend = plt.legend(frameon=True, fontsize=14, ncol=4, loc=\"lower center\")\n", "\n", "plt.xlabel(\"F2 (Hz)\", fontsize=16)\n", "plt.ylabel(\"F1 (Hz)\", fontsize=16)\n", "plt.xlim([3000., 500])\n", "plt.ylim([1200., 200.])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## III. Goal Babbling\n", "\n", "In this section we run an experiment where an agent explores with the random goal babbling (GB) strategy. \n", "See this [tutorial](http://nbviewer.jupyter.org/github/sebastien-forestier/ExplorationAlgorithms/blob/master/main.ipynb) for a comparison of different exploration strategies in a setup with a simulated robotic arm grasping a ball.\n", "An agent with a goal babbling exploration strategy chooses a new goal at each exploration iteration, the goal being a target in its observation space. Here, the agent controls DMP parameters and observes formant trajectories. It will thus generates goal formant trajectories, and try to reach those trajectories (produce the sound trajectories) given its current sensorimotor model." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "import os\n", "import numpy as np\n", "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "from explauto.environment.diva import DivaDMPEnvironment\n", "from explauto.sensorimotor_model.non_parametric import NonParametric\n", "from explauto.utils import rand_bounds\n", "\n", "diva_cfg = dict(diva_path=os.path.join(os.getenv(\"HOME\"), 'software/DIVAsimulink/'),\n", " synth=\"octave\",\n", " m_mins = np.array([-1] * 28),\n", " m_maxs = np.array([1] * 28),\n", " s_mins = np.array([7.5]*10 + [9.25]*10),\n", " s_maxs = np.array([9.5]*10 + [11.25]*10),\n", " m_used = range(7),\n", " s_used = range(1, 3),\n", " n_dmps = 7, # parameters controlled by DMPs\n", " n_bfs = 2, # basis functions\n", " dmp_move_steps = 50, # trajectory time steps \n", " dmp_max_param = 300., # max value of the weights on basis functions\n", " sensory_traj_samples = 10, # samples of the formant trajectory to output\n", " audio = True)\n", "\n", "environment = DivaDMPEnvironment(**diva_cfg)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We define the sensorimotor with the Nearest Neighbor algorithm (NN). Given a target s_goal, the model infers a motor command (DMP parameters) m that could help to reach s_goal. To do so, it looks at the previous observed formant trajectory s_NN that is the closest to s_goal, and outputs the motor command m that was used to reach s_NN plus some exploration noise to explore new motor commands (Gaussian of standard deviation sigma_explo_ratio). See [here](http://nbviewer.jupyter.org/github/flowersteam/explauto/blob/master/notebook/summary_available_models.ipynb) for a tutorial on other available sensorimotor models.\n", "\n", "We perform here 2000 iterations, with first 100 iterations of motor babbling (random motor commands), and then 20% of motor babbling and 80% of random goal babbling." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "warning: load: '/home/sforesti/software/DIVAsimulink/diva_synth.mat' found by searching load path\n", "warning: load: '/home/sforesti/software/DIVAsimulink/diva_synth.mat' found by searching load path\n", "warning: load: '/home/sforesti/software/DIVAsimulink/diva_synth.mat' found by searching load path\n", "warning: load: '/home/sforesti/software/DIVAsimulink/diva_synth.mat' found by searching load path\n" ] }, { "data": { "text/plain": [ "(1200.0, 200.0)" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Parameters to change:\n", "audio = False # If sound is played\n", "iterations = 2000 # Number of iterations\n", "sigma_explo_ratio = 0.05 # Exploration noise (standard deviation)\n", "\n", "# Initialization of the sensorimotor model\n", "sm_model = NonParametric(environment.conf, sigma_explo_ratio=sigma_explo_ratio, fwd='NN', inv='NN')\n", "\n", "for i in range(iterations):\n", " if i < 100 or np.random.random() < 0.2: \n", " # Do random motor babbling in first 100 iterations and then in 20% of the iterations\n", " m = environment.random_motors()[0]\n", " else:\n", " # Sample a random goal in the sensory space:\n", " s_goal = rand_bounds(environment.conf.s_bounds)[0]\n", " # Infer a motor command to reach that goal using the Nearest Neighbor algorithm (plus exploration noise):\n", " m = sm_model.inverse_prediction(s_goal)\n", " \n", " s = environment.update(m, audio=audio) # observe the sensory effect s=(x, y): the last position of the ball\n", "\n", " sm_model.update(m, s) # update sensorimotor model\n", " \n", " plt.loglog([2.**f[1] for f in environment.formants_traj], [2.**f[0] for f in environment.formants_traj], color=\"r\", alpha=0.2)\n", "\n", "\n", "# Plot some vowels\n", "v_o = list(np.log2([500, 900]))\n", "v_y = list(np.log2([300, 1700]))\n", "v_u = list(np.log2([300, 800]))\n", "v_e = list(np.log2([400, 2200]))\n", "v_i = list(np.log2([300, 2300]))\n", "v_a = list(np.log2([800, 1300]))\n", "vowels = dict(o=v_o, y=v_y, u=v_u, e=v_e, i=v_i, a=v_a)\n", "for v in vowels.keys():\n", " p = plt.plot(2.**vowels[v][1], 2.**vowels[v][0], \"o\", label=\"/\" + v + \"/\", markersize=12)\n", "\n", "legend = plt.legend(frameon=True, fontsize=14, ncol=4, loc=\"lower center\")\n", "\n", "plt.xlabel(\"F2 (Hz)\", fontsize=16)\n", "plt.ylabel(\"F1 (Hz)\", fontsize=16)\n", "plt.xlim([3000., 500])\n", "plt.ylim([1200., 200.])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can now look at the sounds that the agent managed to produce. Let's imagine that we want the agent to produce the word /uye/, a sequence of three vowels, /u/, /y/ and /e/. In the following, we define the goal formant trajectory, and ask the agent the best motor parameters it knows to reach this formant trajectory (without adding exploration noise)." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "warning: load: '/home/sforesti/software/DIVAsimulink/diva_synth.mat' found by searching load path\n", "Distance to goal /uye/: 0.690090593555\n" ] }, { "data": { "text/plain": [ "(1200.0, 200.0)" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# goal trajectory = /uye/\n", "uye = list(np.linspace(v_u[0], v_y[0], 5)) + list(np.linspace(v_y[0], v_e[0], 5)) + list(np.linspace(v_u[1], v_y[1], 5)) + list(np.linspace(v_y[1], v_e[1], 5))\n", "plt.loglog([2.**f for f in uye[10:]], [2.**f for f in uye[:10]], \"b\")\n", "\n", "\n", "# best trajectory for uye\n", "sm_model.mode = \"exploit\"\n", "m = sm_model.inverse_prediction(uye)\n", "s = environment.update(m)\n", "plt.loglog([2.**f[1] for f in environment.formants_traj], [2.**f[0] for f in environment.formants_traj], color=\"r\", alpha=0.2)\n", "\n", "error = np.linalg.norm(np.array(s) - np.array(uye))\n", "print(\"Distance to goal /uye/:\", error)\n", "\n", "# Plot some vowels\n", "v_o = list(np.log2([500, 900]))\n", "v_y = list(np.log2([300, 1700]))\n", "v_u = list(np.log2([300, 800]))\n", "v_e = list(np.log2([400, 2200]))\n", "v_i = list(np.log2([300, 2300]))\n", "v_a = list(np.log2([800, 1300]))\n", "vowels = dict(o=v_o, y=v_y, u=v_u, e=v_e, i=v_i, a=v_a)\n", "for v in vowels.keys():\n", " p = plt.plot(2.**vowels[v][1], 2.**vowels[v][0], \"o\", label=\"/\" + v + \"/\", markersize=12)\n", "\n", "legend = plt.legend(frameon=True, fontsize=14, ncol=4, loc=\"lower center\")\n", "\n", "plt.xlabel(\"F2 (Hz)\", fontsize=16)\n", "plt.ylabel(\"F1 (Hz)\", fontsize=16)\n", "plt.xlim([3000., 500])\n", "plt.ylim([1200., 200.])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The target sound trajectory is plotted in blue, and the best trajectory reached by the agent is in red. Note that the agent did not know that it would be tested on that trajectory." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import IPython\n", "IPython.display.Audio(environment.sound_wave(environment.art_traj).flatten(), rate=11025)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## IV. Imitation\n", "\n", "In this section, we give a target sound trajectory to the agent so that it tries to imitate it. \n", "We also run 2000 iterations, where the agent generates random goals for 1000 iteration and then tries to imitate the target sound trajectory /uye/." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "import os\n", "import numpy as np\n", "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "from explauto.environment.diva import DivaDMPEnvironment\n", "from explauto.sensorimotor_model.non_parametric import NonParametric\n", "from explauto.utils import rand_bounds\n", "\n", "diva_cfg = dict(diva_path=os.path.join(os.getenv(\"HOME\"), 'software/DIVAsimulink/'),\n", " synth=\"octave\",\n", " m_mins = np.array([-1] * 28),\n", " m_maxs = np.array([1] * 28),\n", " s_mins = np.array([7.5]*10 + [9.25]*10),\n", " s_maxs = np.array([9.5]*10 + [11.25]*10),\n", " m_used = range(7),\n", " s_used = range(1, 3),\n", " n_dmps = 7, # parameters controlled by DMPs\n", " n_bfs = 2, # basis functions\n", " dmp_move_steps = 50, # trajectory time steps \n", " dmp_max_param = 300., # max value of the weights on basis functions\n", " sensory_traj_samples = 10, # samples of the formant trajectory to output\n", " audio = True)\n", "\n", "environment = DivaDMPEnvironment(**diva_cfg)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "warning: load: '/home/sforesti/software/DIVAsimulink/diva_synth.mat' found by searching load path\n", "warning: load: '/home/sforesti/software/DIVAsimulink/diva_synth.mat' found by searching load path\n", "warning: load: '/home/sforesti/software/DIVAsimulink/diva_synth.mat' found by searching load path\n", "warning: load: '/home/sforesti/software/DIVAsimulink/diva_synth.mat' found by searching load path\n" ] }, { "data": { "text/plain": [ "(1200.0, 200.0)" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Parameters to change:\n", "audio = False # If sound is played\n", "iterations = 2000 # Number of iterations\n", "sigma_explo_ratio = 0.05 # Exploration noise (standard deviation)\n", "\n", "# Goal to imitate\n", "uye = list(np.linspace(v_u[0], v_y[0], 5)) + list(np.linspace(v_y[0], v_e[0], 5)) + list(np.linspace(v_u[1], v_y[1], 5)) + list(np.linspace(v_y[1], v_e[1], 5))\n", "\n", "# Initialization of the sensorimotor model\n", "sm_model = NonParametric(environment.conf, sigma_explo_ratio=sigma_explo_ratio, fwd='NN', inv='NN')\n", "\n", "for i in range(iterations):\n", " if i < 100 or np.random.random() < 0.2: \n", " # Do random motor babbling in first 10 iterations and then in 20% of the iterations\n", " m = environment.random_motors()[0]\n", " else:\n", " if i < 1000:\n", " # Sample a random goal in the sensory space:\n", " s_goal = rand_bounds(environment.conf.s_bounds)[0]\n", " else:\n", " s_goal = uye # Imitates the uye word\n", " # Infer a motor command to reach that goal using the Nearest Neighbor algorithm (plus exploration noise):\n", " m = sm_model.inverse_prediction(s_goal)\n", " \n", " s = environment.update(m, audio=audio) # observe the sensory effect s=(x, y): the last position of the ball\n", "\n", " sm_model.update(m, s) # update sensorimotor model\n", " \n", " plt.loglog([2.**f[1] for f in environment.formants_traj], [2.**f[0] for f in environment.formants_traj], color=\"r\", alpha=0.2)\n", "\n", "\n", "# Plot some vowels\n", "v_o = list(np.log2([500, 900]))\n", "v_y = list(np.log2([300, 1700]))\n", "v_u = list(np.log2([300, 800]))\n", "v_e = list(np.log2([400, 2200]))\n", "v_i = list(np.log2([300, 2300]))\n", "v_a = list(np.log2([800, 1300]))\n", "vowels = dict(o=v_o, y=v_y, u=v_u, e=v_e, i=v_i, a=v_a)\n", "for v in vowels.keys():\n", " p = plt.plot(2.**vowels[v][1], 2.**vowels[v][0], \"o\", label=\"/\" + v + \"/\", markersize=12)\n", "\n", "legend = plt.legend(frameon=True, fontsize=14, ncol=4, loc=\"lower center\")\n", "\n", "plt.xlabel(\"F2 (Hz)\", fontsize=16)\n", "plt.ylabel(\"F1 (Hz)\", fontsize=16)\n", "plt.xlim([3000., 500])\n", "plt.ylim([1200., 200.])" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "warning: load: '/home/sforesti/software/DIVAsimulink/diva_synth.mat' found by searching load path\n", "Distance to goal /uye/: 0.359103240436\n" ] }, { "data": { "text/plain": [ "(1200.0, 200.0)" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# goal trajectory = /uye/\n", "uye = list(np.linspace(v_u[0], v_y[0], 5)) + list(np.linspace(v_y[0], v_e[0], 5)) + list(np.linspace(v_u[1], v_y[1], 5)) + list(np.linspace(v_y[1], v_e[1], 5))\n", "plt.loglog([2.**f for f in uye[10:]], [2.**f for f in uye[:10]], \"b\")\n", "\n", "# best trajectory for uye\n", "sm_model.mode = \"exploit\"\n", "m = sm_model.inverse_prediction(uye)\n", "s = environment.update(m)\n", "plt.loglog([2.**f[1] for f in environment.formants_traj], [2.**f[0] for f in environment.formants_traj], color=\"r\", alpha=0.2)\n", "\n", "error = np.linalg.norm(np.array(s) - np.array(uye))\n", "print(\"Distance to goal /uye/:\", error)\n", "\n", "# Plot some vowels\n", "v_o = list(np.log2([500, 900]))\n", "v_y = list(np.log2([300, 1700]))\n", "v_u = list(np.log2([300, 800]))\n", "v_e = list(np.log2([400, 2200]))\n", "v_i = list(np.log2([300, 2300]))\n", "v_a = list(np.log2([800, 1300]))\n", "vowels = dict(o=v_o, y=v_y, u=v_u, e=v_e, i=v_i, a=v_a)\n", "for v in vowels.keys():\n", " p = plt.plot(2.**vowels[v][1], 2.**vowels[v][0], \"o\", label=\"/\" + v + \"/\", markersize=12)\n", "\n", "legend = plt.legend(frameon=True, fontsize=14, ncol=4, loc=\"lower center\")\n", "\n", "plt.xlabel(\"F2 (Hz)\", fontsize=16)\n", "plt.ylabel(\"F1 (Hz)\", fontsize=16)\n", "plt.xlim([3000., 500])\n", "plt.ylim([1200., 200.])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The distance to the target word /uye/ is lower, which means that the agent learned to reproduce the sound trajectory more acurately by focusing on imitating it. However, with goal babbling, the agent also learned reasonable sounds for other words." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "import IPython\n", "\n", "def say(word):\n", " v1 = vowels[word[0]]\n", " v2 = vowels[word[1]]\n", " v3 = vowels[word[2]]\n", " traj = list(np.linspace(v1[0], v2[0], 5)) + list(np.linspace(v2[0], v3[0], 5)) + list(np.linspace(v1[1], v2[1], 5)) + list(np.linspace(v2[1], v3[1], 5))\n", "\n", " # best trajectory for uye\n", " sm_model.mode = \"exploit\"\n", " m = sm_model.inverse_prediction(traj)\n", " s = environment.update(m)\n", " error = np.linalg.norm(np.array(s) - np.array(traj))\n", " print(\"Distance to goal /\", word, \"/:\", error)\n", " return IPython.display.Audio(environment.sound_wave(environment.art_traj).flatten(), rate=11025)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Distance to goal / uye /: 0.359103240436\n", "warning: load: '/home/sforesti/software/DIVAsimulink/diva_synth.mat' found by searching load path\n", "warning: load: '/home/sforesti/software/DIVAsimulink/diva_synth.mat' found by searching load path\n" ] }, { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "say(\"uye\")" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Distance to goal / ieo /: 1.2177647681\n" ] }, { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "say(\"ieo\")" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Distance to goal / iee /: 0.666645731741\n" ] }, { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "say(\"iee\")" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "The agent learned to produce the word /uye/ by imitation but also learned to fairly approximates other words autonomously: /ieo/, /iee/." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.2" }, "widgets": { "state": {}, "version": "1.1.2" } }, "nbformat": 4, "nbformat_minor": 1 }