Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a notebook that shows a basic binaural synthesis #24

Merged
merged 33 commits into from
Mar 14, 2024

Conversation

pingelit
Copy link
Member

@pingelit pingelit commented Mar 4, 2024

Open questions:

  • the interactive part seems to break the build process. Am I doing something wrong? @mberz ?

@mberz
Copy link
Member

mberz commented Mar 4, 2024

Please refer to nbsphinx's docs section on how to use interactive widgets in nbsphinx.
https://nbsphinx.readthedocs.io/en/0.9.3/code-cells.html#Interactive-Widgets-(HTML-only)

@mberz
Copy link
Member

mberz commented Mar 4, 2024

On the issue, that the tests are failing on CircleCI:
Please run

pytest --nbmake docs/gallery/interactive/*.ipynb

locally and check what is causing the issue. On my machine it seems that the interpreter is "stuck" somewhere and does not continue, maybe pausing and waiting for user interaction or similar.

@mberz
Copy link
Member

mberz commented Mar 4, 2024

The nbmake issue seems to be unrelated to, but caused by something else...

@mberz
Copy link
Member

mberz commented Mar 4, 2024

Please merge the most recent state of the main branch for a workaround to the issue.

@pingelit
Copy link
Member Author

pingelit commented Mar 4, 2024

Please refer to nbsphinx's docs section on how to use interactive widgets in nbsphinx. https://nbsphinx.readthedocs.io/en/0.9.3/code-cells.html#Interactive-Widgets-(HTML-only)

The problem is the interactive_output. I guess this is too complicated for a pre-rendered html document. I will keep the example commented out. We could add a comment saying that this would have to be run in binder?

Copy link
Member

@sikersten sikersten left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the effort! Great example!

docs/gallery/interactive/binaural_synthesis.ipynb Outdated Show resolved Hide resolved
docs/gallery/interactive/binaural_synthesis.ipynb Outdated Show resolved Hide resolved
docs/gallery/interactive/binaural_synthesis.ipynb Outdated Show resolved Hide resolved
docs/gallery/interactive/binaural_synthesis.ipynb Outdated Show resolved Hide resolved
docs/gallery/interactive/binaural_synthesis.ipynb Outdated Show resolved Hide resolved
docs/gallery/interactive/binaural_synthesis.ipynb Outdated Show resolved Hide resolved
docs/gallery/interactive/binaural_synthesis.ipynb Outdated Show resolved Hide resolved
docs/gallery/interactive/binaural_synthesis.ipynb Outdated Show resolved Hide resolved
docs/gallery/interactive/binaural_synthesis.ipynb Outdated Show resolved Hide resolved
docs/gallery/interactive/binaural_synthesis.ipynb Outdated Show resolved Hide resolved
pingelit and others added 2 commits March 4, 2024 20:04
Co-authored-by: sikersten <70263411+sikersten@users.noreply.github.com>
@pingelit
Copy link
Member Author

pingelit commented Mar 4, 2024

Thanks for the review!

Copy link
Member

@mberz mberz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have a couple minor comments (haven't really focussed on the text)

I'd very much suggest making this notebook statically rendered to circumvent having commented out code in the example gallery. This feels rather unfinished and counterintuitive for people who are novice with pyfar or python in general.

"metadata": {},
"source": [
"Here we are loading the included HRIR dataset from the FABIAN dummy head by [Brinkmann _et al._](https://depositonce.tu-berlin.de/items/3b423df7-a764-4ce1-9065-4e6034bba759).\n",
"`pyfar` includes a [method to load specific HRIRs from the dataset](https://pyfar.readthedocs.io/en/stable/modules/pyfar.signals.files.html#pyfar.signals.files.head_related_impulse_responses) but the example shown here is the general approach for loading a SOFA file.\n",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"`pyfar` includes a [method to load specific HRIRs from the dataset](https://pyfar.readthedocs.io/en/stable/modules/pyfar.signals.files.html#pyfar.signals.files.head_related_impulse_responses) but the example shown here is the general approach for loading a SOFA file.\n",
"pyfar includes a [method to load specific HRIRs from the dataset](https://pyfar.readthedocs.io/en/stable/modules/pyfar.signals.files.html#pyfar.signals.files.head_related_impulse_responses).\n",

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the sentence does not make sense without this. Or should we then add the suggestion by sikersten?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, see my comment on Simons review comment ;)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think I shouldn't work after hours 😅🤦

"metadata": {},
"outputs": [],
"source": [
"sources.show()"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The output of this is heavily distorted. I can with no good conscience agree that one can well make out that it is the horizontal and vertical planes. It does look like they are not orthogonal, but rotated.
Please add

Suggested change
"sources.show()"
"ax = sources.show()",
"ax.set_box_aspect([",
"np.ptp(coordinates.x),",
"np.ptp(coordinates.y),",
"np.ptp(coordinates.z)])"

or use the scatter plot implemented in spharpy

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for pointing this out .. due to pyfar/pyfar#555 this does not work yet.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nevermind.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can also use

import matplotlib.pyplot as plt
ax = plt.gca()

as workaround

"\n",
"index, _ = sources.find_nearest(desired_direction)\n",
"\n",
"sources.show(index)"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same comment as above

Suggested change
"sources.show(index)"
"ax = sources.show(index)",
"ax.set_box_aspect([",
"np.ptp(coordinates.x),",
"np.ptp(coordinates.y),",
"np.ptp(coordinates.z)])"

docs/gallery/interactive/binaural_synthesis.ipynb Outdated Show resolved Hide resolved
docs/gallery/interactive/binaural_synthesis.ipynb Outdated Show resolved Hide resolved
requirements.txt Outdated
Comment on lines 27 to 28
ipympl No newline at end of file
ipympl
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there something missing here? Looks like a falsely managed merge conflict?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep

"source": [
"from IPython.display import Audio\n",
"\n",
"castanets = pf.signals.files.castanets()\n",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it just me, or are these not 100% anechoic? I feel like there's a reflection in there.

@mberz
Copy link
Member

mberz commented Mar 5, 2024

I've implemented a hot fix for the scaling of the scatter plot within pyfar, so we can get rid of the manual axis scaling in the future.

pyfar/pyfar#554

@pingelit pingelit self-assigned this Mar 5, 2024
@pingelit
Copy link
Member Author

pingelit commented Mar 7, 2024

Thanks for the reviews. I think I got most things now.

Copy link
Member

@hoyer-a hoyer-a left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, the interactive example is great!
Just some minor propositions and typos.

"Humans can localize the distance and angular position of sound sources by extracting and interpreting acoustic cues from the acoustic pressure signals arriving at the left and right ear.\n",
"This is possible because incoming sound is altered depending on its direction of incidence due to reflections, diffraction, and resonances caused by the outer ear (pinna), head, and torso.\n",
"The ear signals are termed _binaural_ signals.\n",
"If binaural signals perfectly reproduced at the ears of a listener, for example via headphone playback, this will evoke an auditory illusion of a virtual sound source that can be placed at an arbitrary position in space.\n",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If binaural signals perfectly reproduced at the ears of a listener, for example via headphone playback, this will evoke an auditory illusion of a virtual sound source that can be placed at an arbitrary position in space.

Something went wrong with this sentence

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's okay. What would be your suggested change?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"If binaural signals are perfectly reproduced"

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah yes, fixed this in my latest commit. Thank you for the clarification.

"This is possible because incoming sound is altered depending on its direction of incidence due to reflections, diffraction, and resonances caused by the outer ear (pinna), head, and torso.\n",
"The ear signals are termed _binaural_ signals.\n",
"If binaural signals perfectly reproduced at the ears of a listener, for example via headphone playback, this will evoke an auditory illusion of a virtual sound source that can be placed at an arbitrary position in space.\n",
"Such a reproduction of binaural signals is termed _binaural synthesis_, and the examples below show how this can be realized with a special filters and anechoic audio content.\n",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"Such a reproduction of binaural signals is termed _binaural synthesis_, and the examples below show how this can be realized with a special filters and anechoic audio content.\n",
"Such a reproduction of binaural signals is termed _binaural synthesis_, and the examples below show how this can be realized with special filters and anechoic audio content.\n",

},
{
"data": {
"image/png": "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Lu0naMxAi3ZxkdnQQgghhGgjnSpvvnHjRq688srA87lz5wJw6qmncu+991JQUBAIHAF69uzJk08+yRNPPMG7775Lamoqd955Z7ssmwOh6yzqLcksSrAohBBCiDbSqYLF0aNHs3LlykZfv/feexs85+23327FVjWdrgYvyt38Lf8C3dASLAohhBCilXWqbujOLmTMYku6of3bBno8LW2SEEIIIcR+SbDYhkK2+6tuSWZRtvsTQgghmiMjIwNFUVizZk2Tz3n99deJj49vtTZ1dBIstqHQ7f5aPmYRj0dWrBdCCCF8Lr744sCSMWazmX79+vGvf/2LmpraHdR69+5NdnY2w4cPj/i1p0+fHtE6O4pONWax01Mjk1kkqDsbTYMutL6XEEII0RJTp07ltddew+1288cff3DRRRehKApz5swBvGsMpqWltXMrI8vlcmGxWFqtfskstqHgzGKL1lkMzlDKuEUhhBAiwGq1kpaWRu/evZk+fTpTpkzhu+++C7zeUDf0559/zqBBg7DZbBx//PG88cYbKIpCSUlJSN3ffvsthxxyCNHR0UydOpXs7GzAO8H2jTfe4LPPPgtkNhctWtRg+zweDw899BD9+vXDbrdz2GGH8eGHHwZe1zSNyy67LPD6kCFDeOqpp0Lq8GcxZ8+eTY8ePRgyZEjLPrQDkJRUGwqeDd2ibujgWdCaCrTeXxNCCCGErust+n+rJRSbvdk7s2zYsIGlS5fSt2/fRsvs2rWLc845h//7v//j8ssvZ/Xq1dxyyy31ylVVVfHYY4/x5ptvYjAYuOCCC7jllluYP38+t9xyC5s2baKsrIzXXnsNgMTExAav99BDD/HWW28xb948Bg0axC+//MIFF1xASkoKEydOxOPx0KtXLz744AOSkpJYunQpV1xxBd27d+fcc88N1PPDDz8QGxsbEgi3FgkW25AeoW5oySwKIYRoS3pNNdtOHNUu1x60cBWK3dHk8l9++SXR0dGoqorT6cRgMPDss882Wv7FF19kyJAhPProowAMGTKEDRs2MHv27JBybrebefPmMWDAAACuvfZa/vOf/wAQHR2N3W7H6XTut4vb6XTy4IMP8v333wfWfO7fvz+LFy/mxRdfZOLEiZjNZu67777AOf369eO3337j/fffDwkWo6KiePnll1u1+9lPgsU2FKlu6NAxi2rj5YQQQoiD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mueff541a9awbds2qqqqGDp0KGPHjm2N9nUZgcxiUDc0eGdEG6NjgjKLB+iGljGLQgghhGhDYQeLfocffjiHH354BJvStQXPhlYsltrjbpf3QRODxbqvy2xoIYQQQrSmJgWL7777bpMrPO+885rdmK4seLs/RVHAaAJNrTdWMdxu6LqLdAshhBBCRFKTgsW333475HlxcTE1NTXExMQA3h1dbDYbiYmJrR4svv/++7z55psUFhYyaNAgZs2axfDhwxss+8UXX3DfffeFHLNYLCxdurRV29iQ4O3+wBs06poaCA79ez4fsBu63mxoCRaFEEII0XqaFCx+/vnngcfffPMNH3zwAXfddRfp6ekAZGRkMHv2bM4666xWaaTfwoULmTt3LrfddhvDhw/nnXfe4brrruOjjz4iMTGxwXOioqL46KOPAs8VRWnVNjYmOLMI3u5o3VkTWCqn6ZlFGbMohBBCiLYT9pjFF154gTlz5gQCRYD09HRuuukmbr31VqZNmxbJ9oWYP38+06dP5/TTTwfgtttuY/HixXz++edcfPHFDZ6jKArJycktvraqqoHlgppDczm9D4xGbz1G70evOp0YVDVkB5f9XcfjCg0mtRa2q7NQVRVN0w6K99qRyX3oGOQ+dAxyHzoGuQ/h08LslQw7WCwoKGjwIpqmteoOLm63m82bN3PJJZcEjhkMBsaMGcO6desaPa+6uppTTz0VXdcZMmQI11xzDQMGDAj7+t9//z0Oh+PABRsRv24dqUB2fgGrFyygv6phAhb/vAjn5m30KSrCBpQWFbJ+wYJG6+m2O4O4oOc7t21j+X7KdxWapvHHH38AYDQa27k1By+5Dx2D3IeOQe5DxyD3IXxOpzOs8mEHi2PGjOHBBx/krrvuYujQoQBs2rSJhx9+mDFjxoRbXZOVlJSgaVq97ubExEQyMjIaPKdv377cddddDBo0iIqKCt566y0uvfRS3n//fbp16xbW9adMmUJcXNyBCzaipDyXwh+gR+/eHDFtGrvfeAK1sozxR4/FNnQEe95/ETcQY7fvNzubu/oXKtYDigK6Tr/0vhzVitncjsL/F+PUqVMxmZo9iV+0kNyHjkHuQ8cg96FjkPsQvsrKSh5++OEmlw/7U7377ru55557uPDCCwM3RdM0jj76aO66665wq2tVI0eOZOTIkYHnhx12GOeccw4f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aebe0Gn/fiDCLRJCCCGEqNVpgsW4uLj9LsDdo0cPVq5cGXielpbGSy+91BZNa5HYk05H93iwjxjV3k0RQgghhKin0wSLXVXCOX8n4Zy/t3czhBBCCCEa1CnGLAohhBBCiPYhwaIQQgghhGiUBItCCCGEEKJREiwKIYQQQohGSbAohBBCCCEaJbOhD0DXdcC7j6JsUN5+NE3D6XTKfWhnch86BrkPHYPch45B7kP4KisrgdoY50AUvaklD1K5ubmccsop7d0MIYQQQoiI+uqrr+jWrdsBy0mweAAej4f8/HwcDgeKorR3c4QQQgghWkTXdaqqqkhJScFgOPCIRAkWhRBCCCFEo2SCixBCCCGEaJQEi0IIIYQQolESLAohhBBCiEZJsCiEEEIIIRolwaIQQgghhGiUBItCCCGEEKJREiwKIYQQQohGSbAohBBCCCEaJcGiEEIIIYRoVJcPFt9//31OO+00xo8fz0UXXcSGDRv2W/7777/n7LPPZvz48cyYMYPFixeHvK7rOvPmzeOkk05iwoQJXH311ezZsyekTGlpKXfeeScTJ05k0qRJ/Oc//6Gqqiri760zaY/78Morr3DppZcyYcIEJk2aFOm31Cm19X3IysriP//5D6effjoTJkzgjDPO4MUXX8TtdrfK++ss2uPfw4033sgpp5zC+PHjOemkk7jrrrvIz8+P+HvrbNrjXvi5XC7OP/98Ro8ezZYtWyL2njqj9rgPp512GqNHjw75ev311yP91roGvQv79ttv9aOPPlr/7LPP9B07dugPPPCAPmnSJL2wsLDB8mvWrNHHjBmjv/HGG/rOnTv1559/Xh87dqy+bdu2QJnXXntNnzhxov7TTz/pW7du1W+88Ub99NNP12tqagJlrrvuOv1vf/ubvn79en316tX69OnT9dtvv73V329H1V73Yd68efpbb72lP/HEE/rEiRNb+212eO1xH5YsWaLfe++9+m+//aZnZmbqixYt0k844QR97ty5bfGWO6T2+vfw1ltv6evWrdOzsrL0NWvW6Jdccol+ySWXtPr77cja6174Pfroo/p1112nH3nkkfrmzZtb7X12dO11H0499VT9v//9r56fnx/4qqqqavX32xl16WDx73//u/7www8Hnmuapk+dOlV/7bXXGiz/73//W/+///u/kGMXXXSRPnv2bF3Xdd3j8egnnnii/r///S/wenl5uT5u3Dj9m2++0XVd13fu3KkfeeSR+p9//hkos2TJEn306NF6Xl5ehN5Z59Ie9yHY559/LsGi3v73we+NN97QTz/99Oa/kU6uo9yHRYsW6aNHj9bdbnfz30wn1573YvHixfrZZ5+t79ix46APFtvrPpx66qn6/PnzI/dGurAu2w3tdrvZvHkzY8eODRwzGAyMGTOGdevWNXjOunXrGDNmTMixcePGsX79egD27dtHYWFhSJno6GiGDx8eKLNu3TpiYmIYNmxYoMyYMWMwGAwHTKt3Re11H0SojnQfKioqiI2Nbcnb6bQ6yn0oLS3lm2++YeTIkZhMppa+rU6pPe9FYWEhs2fP5j//+Q82my2Sb6vTae9/E2+88QZ/+ctfOP/88/nf//6HqqqRemtdSpf9LVFSUoKmaSQmJoYcT0xMJCMjo8FzCgsLGyxfWFgYeB0gKSlpv2USEhJCXjeZTMTGxgbKHEza6z6IUB3lPmRmZvLee+9xww03NONddH7tfR+efvpp3n//fWpqahgxYgRz585tydvp1NrrXui6zn333cdZZ53FsGHDyMrKisTb6bTa89/EjBkzGDp0KHFxcaxdu5bnnnuOgoICbrrpppa+rS6ny2YWhRAdS15eHtdddx1TpkzhzDPPbO/mHJT+/ve/M3/+fJ599lkMBgP33HMPuq63d7MOKu+99x6VlZVccskl7d2Ug94FF1zA6NGjGTRoEOeccw433HAD7733Hi6Xq72b1uF02WAxPj4eo9FIUVFRyPGioqJ6f234JSUl7be8/3vdv9brlikuLg55XVVVysrKGr1uV9Ze90GEau/7kJ+fz5VXXsnIkSO54447WvReOrP2vg/x8fH07duXo48+mgcffJAlS5YctEM32uterFixgvXr1zN+/HjGjh0b+MPp73//O/fcc0/L31gn097/JoINHz4cTdMO+mxvQ7pssGg2mxk6dCjLly8PHPN4PKxYsYKRI0c2eM7IkSNZsWJFyLFly5YxYsQIAHr27ElSUlJImYqKCjZs2BAoM3LkSMrLy9m0aVOgzMqVK/F4PAwfPjxi76+zaK/7IEK1533Iy8vjn//8J0OHDuWee+7BYOiyv3YOqCP9e/BnFA/WLEp73YtZs2bx9ttvM3/+fObPn89TTz0FwIMPPsjVV18d0ffYGXSkfxNbt27FYDDU6+IWdP2lc8aNG6d/8cUX+s6dOwPT8QsKCnRd1/W77rpLf+aZZwLl/dPx33zzTX3Xrl36vHnzGpyOP2nSJH3RokX6tm3b9JtuuqnBpXPOP//8wNI5Z5555kG/dE573Ifs7Gx98+bN+ksvvaQfe+yx+ubNm/XNmzfrlZWVbffmO5D2uA+5ubn69OnT9auuukrPzc0NWaLiYNUe92H9+vX6u+++q2/evFnPysrSly9frl9yySX6GWecoTudzrb9ADqQ9vrdFGzfvn0H/Wzo9rgPa9eu1efPn69v2bJFz8zM1L/++mt9ypQp+t133922b76T6LITXABOPPFEiouLmTdvHoWFhQwePJhnnnkmkIbOyckJyXIcdthhzJ49m+eff57nnnuO3r1789hjjzFw4MBAmYsuuoiamhoefPBBysvLOfzww3n66aexWq2BMvfffz+PPPIIV199NYqiMHnyZGbNmtV2b7yDaa/7MG/ePL788svA85kzZwaOjx49urXfdofTHvdh2bJlZGZmkpmZycknnxzSnpUrV7bBu+542uM+2Gw2fvrpJ1566SWqq6tJTk5m3LhxXHbZZVgslrb9ADqQ9vrdJEK1x32wWCwsXLiQl156CbfbTY8ePTj//PMD/0+IUIquy+hmIYQQQgjRsIN38JAQQgghhDggCRaFEEIIIUSjJFgUQgghhBCNkmBRCCGEEEI0SoJFIYQQQgjRKAkWhRBCCCFEoyRYFEIIIYQQjZJgUQghwnTvvfdy8803t/l1v/jiCyZNmtTm1xVCHNxkUW4hhAhyoN19/vGPfzBz5kx0XScmJqaNWuVVU1NDVVWV7F0rhGhTEiwKIUSQgoKCwOPvvvuOefPm8dFHHwWOORwOHA5HezRNCCHaRZfeG1oIIcKVnJwceBwdHY2iKCHHwNsNXV5ezuOPPw7AFVdcwcCBAzEajXz55ZeYzWauuuoqpk6dyiOPPMIPP/xAYmIis2bNYsKECYF6tm/fztNPP83q1aux2+2MHTuWm2++mfj4+Abb9sUXX/D444+zaNEiAF588UV+/vlnZs6cybx58ygrK2P8+PHceeedREVFNVhHdnY2jzzyCGvWrAnsiXv99ddzzDHHtOBTE0J0ZTJmUQghIuCrr74iLi6ON954g3PPPZeHH36YW2+9lZEjR/LWW29x9NFHc/fdd1NTUwNAeXk5V111FUOGDOHNN9/k6aefpqioiH//+99hXXfv3r0sWrSIuXPn8uSTT7Jq1Spef/31RsvPmTMHl8vFf//7X959912uu+46yZQKIfZLMotCCBEBgwYN4vLLLwfgkksu4Y033iA+Pp4zzzwTgMsvv5wPP/yQbdu2MWLECN577z2GDBnCNddcE6jj7rvv5pRTTmH37t307du3Sdf1eDzce++9gUziySefzIoVKxotn5OTw+TJkxk4cCAAvXr1atb7FUIcPCRYFEKICBg0aFDgsdFoJC4uLhCQASQlJQFQVFQEwLZt21i5ciXHHntsvbr27t3b5GCxR48eIV3OycnJFBcXN1r+vPPO46GHHuL3339n7NixTJ48OaTtQghRlwSLQggRASZT6K9TRVFCjimKAoB/TmF1dTXHHnss119/fb266o6RDPe6Ho+n0fLTp0/n6KOPZvHixSxbtozXXnuNG264gfPOO6/J1xRCHFwkWBRCiHYwZMgQfvzxR7p3714v4GttaWlpnHPOOZxzzjk8++yzfPrppxIsCiEaJRNchBCiHZx77rmUlZVxxx138Oeff7J3715+++037rvvPjRNa7XrPv744/z222/s27ePzZs3s3LlSvr169dq1xNCdH6SWRRCiHaQkpLCK6+8wjPPPMO1116Ly+Wie/fujBs3DoOh9f6O1zSNOXPmkJeXR1RUFOPGjeOmm25qtesJITo/WZRbCCGEEEI0SrqhhRBCCCFEoyRYFEIIIYQQjZJgUQghhBBCNEqCRSGEEEII0SgJFoUQQgghRKMkWBRCCCGEEI2SYFEIIYQQQjRKgkUhhBBCCNEoCRaFEEIIIUSjJFgUQgghhBCNkr2hD8Dj8ZCfn4/D4UBRlPZujhBCCCFEi+i6TlVVFSkpKU3ai16CxQPIz8/nlFNOae9mCCGEEEJE1FdffUW3bt0OWK5TB4uvvfYaP/30ExkZGVitVkaOHMl1111Henp6oIzT6eTJJ59k4cKFuFwujj76aP7973+TlJTUpGs4HA7A+4FGRUU1q52apvHdd99xwgknYDQam1VHe+oI7W+rNrTWdSJVb0vqae654Z7XEX5euoLO/Dl2lLZ35t8bHeF3RnPPb6tzRKhwPsPKykpOOeWUQIxzIJ06WFy1ahV//etfGTZsGJqm8dxzz3HttdfywQcfYLfbAXjiiSdYvHgxDz/8MNHR0TzyyCPMmjWLV199tUnX8Hc9R0VFER0d3ax2qqqK1WolKioKk6nzfeQdof1t1YbWuk6k6m1JPc09N9zzOsLPS1fQmT/HjtL2zvx7oyP8zmju+W11jgjVnM+wqcPrOvUdeeaZZ0Ke33vvvZxwwgls2rSJUaNGUVFRwWeffcYDDzzAUUcdBcA999zDOeecw/r16xkxYkR7NFsIIYQQotPo1MFiXRUVFQDExsYCsGnTJlRVZezYsYEy6enppKWlsW7durCCRU3TUFW1We1SVbVF57e3jtD+tmpDa10nUvW2pJ7mnhvueR3h56Ur6MyfY0dpe2f+vdERfmc09/y2OkeECucz1DQtrLq7TLDo8Xh4/PHHOeywwxg4cCAAhYWFmM1mYmJiQsomJiZSWFgYVv3fffcdVqu1WW3TNI0//vgDoFOOxegI7W+rNrTWdSJVb0vqae654Z7XEX5euoLO/Dl2lLZ35t8bHeF3RnPPb6tzRKhwPkOn0xlW3V0mWJwzZw47duzg5ZdfbpX6TzjhhGZPcPFH+VOnTu2UYzE6Qvvbqg2tdZ1I1duSepp7brjndYSfl66gM3+OHaXtnfn3Rkf4ndHc89vqHBEqnM+wsrKShx9+uMl1d4k7MmfOHBYvXsxLL70UMgU8KSkJt9tNeXl5SHaxqKioybOh/YxGY4t+gP3nd9Z/BB2h/W3Vhta6TqTqbUk9zT033PM6ws9LV9CZP8eO0vbO/HujI/zOaO75bXWOCNXUzzDc7G2n3sFF13XmzJnDokWLeOGFF+jZs2fI64cccggmk4nly5cHjmVkZJCTk8PIkSPburlCCCGEEJ1Opw7f58yZwzfffMPjjz+Ow+GgoKAAgOjoaGw2G9HR0ZxxxhnMnTuXuLg4oqKiePTRRxk5cqTMhBZCCCGEaIJOHSx++OGHAPzzn/8MOX7PPfdw2mmnAXDTTTdhMBj417/+hcvlYty4cdx6661t3lYhhBBCiM6oUweLK1euPGAZq9XKrbfeKgGiEEIIIUQzdOoxi0IIIYQQonVJsCiEEEIIIRolwaIQQgghhGiUBItCCCGEEKJREiwKIYQQQohGderZ0EIIIYQQXZmuaVQs+YnK5b8CCubuPbH06oulV1/MvfpisNpavQ0SLAohhBBCdDC6plH+0zcUvv48rt07Gi1n6dMP29ARmAcPw+gxt0pbJFgUQgghRKfm3LmV8h8XgNGEuXsvYiZPw2CxtHezmk2rKGfvrCuo2bAaAEN0LHHTpmNwROHKysS9dzeuzAw8FeW49uzCtWcXLPycdJuDqgHpxI6ZENH2SLAohBBCiE5JLS4i9/F7qfh5Ycjxojfn0e2W+3AcMaadWtZ8nqqKQKBoiIom4bxLSTjnQozRMSHldF1HKy6kZsuf1GxeT/mihbh2biX3vptxzF+AKT4hYm2SCS5CCCGE6HRqtm1i9z/O8QaKikL0sVOIO+2vGBOTce3ZReaNl1D+6w/t3cyweGqq2XvrVd5AMTqW3k//j+SLr64XKAIoioIpMZnocRNJvuRaer7wDs6UNDxlJRS8/GRE2yXBohBCCCE6lbIfvmbPVX9Dzc3C3KsvfV/9lJ4PPkvav+6n31tfEzN5Gmga2ffcQOXyxe3d3CbxOJ3su+0aqteswOCIotcTr2AbPKzJ5xssVvL+Mh2AsoVf4HHWRKxtEiwKIYQQolPQ3S7ynn+U7HtvQnfW4BhzDH1feh/bwCGBMsaYWLrf9Sgxx09Fd7vJuu9m3Pm57djqA/O4XGTdeT1VK5ei2B30euy/2A8ZEXY91b37Y0pNQ6+uonJZ5IJkCRaFEEII0eG59uxi91V/o/idVwBI+Ntl9HrkRYwxcfXKKiYT3e96BOvgYXjKSsmZ/W90j6etm9wkuuom+96bqPz9ZxSrjV5z5mEfMap5lSkKUcedCED5om8j1kYJFoUQQgjRYem6TsmXH5Jx2Vk4t/yJISaOHg88TerVs1CMxkbPU8wWetzzGIrNTtUfv1Hy2btt2OqmUYuL2Puvf1Lx6/coFgs9H36+xZNyHEcfC0DNxrWRaCIgs6GFEEKIiNE9HtxZmWilxXgqytEqytHdLsypaZh79sWU0g3FIHmapvI4a8h95G7KFn4OgGPUWNLumIM5Na1J51v69CflypvJe/IBCl56kphJUzElJLZmk5usau1Ksu+7GTU/F8Vqo8f9TxE1enyL67WkDwTAnb0Xj9OJwWptcZ0SLAohhBDNpOs6rj07iVu9lJxl31OzdgVaSVGj5RWLBXP3Xph79sHSsw/mHr1rH3fviWLuvGsDRporay9Zd12Pc+tGMBpJvvz/SPzbZfvNJjYkfvrfKP3qI5zbNlHw4uOk/Xt2K7W4aVxZmRS++ixl334GgKXvAHrc/yTWfoMiUr8xMRlDdAyeinLcezOwDhhy4JMOQIJFIYQQIgyurEyq/vidqtXLqFq1DK0wn25Ape91xWLFlJSMIToWQ3QMismEO3sf7pwsdJcL1+6duHbvDJQPMBgwpaZh6dEHU4/eJJRXUuEwYeuTjqVnbwyO6Hpt0VUVT2U5HqcT3eUEjwdjXDyG6Niwg6qOQtd1yhZ+Qd4T9+GpqsQYl0CP+5/EccTYZtWnGI10u/Eu9lx9PqVffUTM5GlEjTkmwq2uz+N0UrNlA6aEJExJKbgyd1HyybuUfvMpaCoAcaecQ+r1t2FwREXsuoqiYOnTn5qNa3Ht2SXBohBCCNHadF3HtWsb5Yu+9S58vGtbyOuK2UJl9970/Ms0okePw37IiAYzhLqmoeZl49q3B/e+Pbj2ZeLO2oN77x5cWZno1VWoOVmoOVmw6ndSgNyfv669jt2BwRGFMcobNKolRXjKShtutKJgSk7FOuxw4k02XIcOwdR/cMQ+k1ahqVQu/pGSd14JjLezjxhF97sfxZzWs0VV20eMIv6s8yn5+G1yHrqd9Dc+xxgbH4FG16frOsXvvUbBq8+iV1c1WMYx5hiSL/+/Zs14bgpLX2+w6Ny9k/orNIZPgkUhhBCiAWpBHqVffUTZws+926n5GU3YDz0MxxFjcYwag2noCL794UdGTJuGydT4f6uK0ejtgu7eC+qMTfPvxuENIvfgzMxg98plpOgaqm8MpF5dhVZdhVaYX79ykzkwNs1TWQG6jpqfi/rzt6QCmT9+TuzU6aRccQOm5G6R+HhaTNc0qtasoGbjWqr+XMvA5UvIcTsBb3Y28YIrSLrwnyj7+UzDkXLVLCpXLMWdmUHOQ3fQY/YzER8/qus6+c8/QvG7rwFgTEjCU1mB7nKi2OxEjT2WxBkXN3+2cxNZ+vYH2O+e0uGQYFEIIYTw0XWdqlXLKPn0HSp+/SHQXahYLESNOYboiScRPeF4jDGxgXNUVW3xdf27cZgSk7GPGIWqqixLG8ARvgBUq6zwTpqprPAFgx6M8YkY45MwxsSGBFS624VWVoprzy4q164k84cFRGVso2zBJ5Qv+pbkS68lYcYlKIrS4nY3h6e6ipJP3qH4k/neLKqPAW9wFTftTBJmXIwpMTmi1zXY7PS4+1H2XDOTisU/UPj6cyRfel3E6tdVldzH7qH0q48ASLnmVhJmXAweD7rbhWIyRyzwPRBLr74AuLP2RqQ+CRaFEEIc9LTyUkoXfErpZ++GZBHtI0YRd/oMYo77S4NjBtuKMSo60P18IIrZgikpBVNSCpYRo/g9qTfH9+1J4fNzqPlzLfnPPYJz13bSZt2HYjK3cstr6bpOxS/fkff0Q6h52QAYYuOIGj0B86ChrK5SOf7iyzFbWm+Sj23oCLrdfC85D91O4WvPYR9+RETGL3qcTrL/cwsVv3wHBgNptz5A3MlneV80GlGM9hZfIxzGBG+gvb/JVuGQYFGIDk5XVXRXDboOHgCPhq7r7d2siNJ1HTwe0D3oHh10D2haA8d1FLMZxWzxfpclSEQL6LpOzab1lHz6DuU/fO2dIAIYHFHEnnQG8WfMiMjkgI7ANmwkfV54l5JP3ibvqdmUff0xan4OPe5/uslBaEsVvvIMhW88D4C5e0+SLrqamCmnYLDaUFUV54IFbfJvOu7kswL3PfvB20h//XNM8QnNrs+dvZese26iZtM6FLOZ7vfOJea4KRFscfj8ywOpxYWRqS8itQhxkPAHbh6nE91Z+113OWsf+4+7ao9r1VUkb9pEwbbV4Hb7jteg+8p5nDXoLldInR5fvWhaSBsGAzsf+zeYzN6AyWhCMXm/MJm8XR3G4OfeYxhN9CwuJnvxVxjMZhSjuU4ZE4rRDIrvfWoqqBqa20Va5h5yln2H4vGgq250VQVNRde02udq7fN+5WVkvPaYN+BT3d7vHg80FBS2ZFcFo8n7GZjMKBZL6PfgoNLsPWaIicGc2h1Tahrmbt0xpXbHnJqGITa+3brkWpunugp3Thbu7L24c/ahlRRh7tkXa/9BWPoOwNCKWZyOylNdRdn3X1Hy6TveZVl8rAOHEj/9PGJPOLVds4itRVEUEs6aibl7L7LuuZGqFUvZN+sKej35eqv/HFQs/jEQKCbO/AdJF1+Nwda22bZgKdf8i6rVy3Ht3kHuY3fT4/6nw/odoKsqFUsXUbbgYyp++xk0zbtY+P1PEXXk0a3Y8qYxxnuDRb26Co+zBoPV1qL6JFgUnVZzAzfdF6T5g7HAY6cTzVlN79wcMj9+BYLKNxa4hSMRaGTeYvOobm+gFsYpUUDVri1hXyoWqNzU9PJmoPmfVBg0b1CrU92iahSbHXNqGqYGAklTanfvMihRMR02k6lVVuDatQ3nzm24szK9y7T4g8P9ZRaMRiy90rEOGIy1/2As/QdjHTAYc1rPDvteW8K5azsln75D2befecf94R2LGHP8NOKnn4ft0MO77B8NwaLHTaTPM2+SecPFVK9fRd4T99Ht1gda7b279u0he/atAMSfcyEpV97cKtcJh8Fmp/tdj7D7yvOo+Pk7yr7+mLhTzm7SuRWLfyTvuTm49+4OHLMffhTdb3/IO3mpAzBEx4DJDKobraQIQ7ceLapPgkXRYrrH4w26fF8el8uXMQt+Hhy4OUOCvMYCt+CMm6emhn6lxex66aFAQNiSwG1/7ICrCeUUixXFakOxWDBYbShWGwar/5jV+9hiQ7FawWwhIyub/kOHYrLZUXzlDP46rDYMFkvtY//rVmvgOqCgOmv47ptv+MukiRjx7imKL7MX/IXmRne7g56rqE4n61avYsSwQ1A8em2wGVRGV1Vv9i+QaTThMRjYvHUbw0aMwOjL2mE0Bl7HN2hb8R3TFAO/L1/B+GOOwWi1BV7DaPT+Z2QwgGJAMSigGBp8HihnMIaW03VfFtOFx+UG1eV9n27fd9XtzdAGf/e/7nKhlZXgzstBzc3GnZeNmpeDVlyIXlONa8+u0BmvdRmNGGPjMcYlYIyLxxif4Hsc9OU7phiNeCrK0Mq9X/7HnvIytPJS784e5aV4ysvQNc07viy5G6aUVN/3biiJyZhKitBdLvANivc4a3Dt3olz57ZAcOjctQ01N6vxduP9j8PcvRfmtJ4YY+Nx7c3AuWMrnooyXLt34Nq9g/IfF9T+bNsdWPsNwtp/MNYB3u+WfoM7zM4XYdFUyn/8mvLP36d67crAYXOvvsSfMYO4aWdijGt+F2RnZRtyKD3ufYK9//onpV99hHXAEBL++vdWuVbekw/gqSjHNvxwUq+e1SrXaA7bkENJvvx6CuY9Tu5Ts7EfMQZLj977Pce5eyf77rjWt55lArEnn0XcyWdhTR/QRq1uGkVRMMUnoBbkeXsTJFgUuq57/2MMDtiCgrVAwOZ/7qzz3OX0BmR1nvvr8Tid9M7PJfPD/3r/060TCKK62+R9mvGN2WuAYvEHVdYGAjdfMOcL3LyvW30BnS0kcPOYzaze8Cejjx6PyeFoOAC02rzdmmFkXlRVZeWCBRx1gKU1DsRgNOKxO7yzJsOsR1VVytwGYsNsg6qqlCxYQFwTz1NVlZq9uViHHNqi99ogRUGxWMBiweCITJUepxM1Pwc1Lxt3rjeA9AeS3ufZ3iyUpqEVF+4/U9dM7n17GjzeH9j50kPeRZYd0bhzsxrttjeldMOSPhBL73Tf8iw9A9+NMXH1yuu+pVWcO7fi3LHVF3xuxZWxHb26ipqNa+vtLWtMTMY2eBj2w8fgGDUW26BD2mx2Z7jc2Xsp+vRd+n/6LnlV3iwiRiPREyYTP/08HEeO65LZ03BEjT2WlKv/Rf6zD5P37MNYBw/DcdjoiF7DnbOPymW/AtD9toc63A41ieddSuVvP1O9diW5j95Dryde2W+GtfDVZ8HjwXHUeHo+8ExEF9OONGNCki9YLG5xXR3zX3mEvf/++7z55psUFhYyaNAgZs2axfDhwyNWv67r3uyFq4EAzelEra7CsWsLlYutKJraSEDnC858wVzI86DXa4+5Qs5tbU3NtmEw1GbJ/AFcIMsWFMwFB26+jFrdwE3xZeYMVisek5nf/ljFhOOPx2yvE8SFGbjtj6qqVDoVHGMmRD7QER2SwWrF0qtvYKmJhnhcLjxlxaglJWilxbVfJcV1npeglZWgq26MMXEYomMwxsQGPa49ZoiJwxgTAwYjakGe7yvXuzZeQR7u/BxcuTkYNBWttASttAQAY1w8ln6DsPYfhLXfYCz9B2HtN7DBgHB/FEXx7lecmkb00ccFjuuqimvvbm/g6AsknTu3evc7Liqg8vdfqPz9F+9n54jCPnI0jiPG4Bg1BuvA9g0edU2j8vdfKPn0XSqX/QK6jgkwJqcSf9pfiTvtXMwpHWONwY4i4dyLcG7bRNm3n5E39376vvxRRO9h6Vcfga7jGHU0lj79IlZvpChGI2n/nk3GRadTtXIpZQs+qZ3FXIdz51bKf/Jm4FOu/leHDhQBjL5JO5GY5BL2T0RJSQnx8fEA5OTk8Omnn+J0OjnuuOM44ogjWtygSFu4cCFz587ltttuY/jw4bzzzjtcd911fPTRRyQmNr1LJfPGS7CHBHqhmbkD6QXkfNCCN9JUilKbTQsK1hRf8BY4ZvU/twUe174eGujpJhOr1q1n9PjxmOyOeoGg9zzfsVb6j0JVVZxZ+Vj7DZIgTrQ5g8WCIblbmy5mrKoqC77+mhMnjIeSQrSKciy90zEmJLXquDrFZMKaPsDbrTZ5WuC4p6oS567tVP+5hurVy6laswJPRRmVv/9M5e8/e8+1O7ANORTrkOFE16i4jzgMY8/erT4OUC0qoPTLDyn54v2Qdfvso8exo9cgjrnmRsztOJmiI1MUhdTr/k3F0kU4d2yh9MsPiZ9+XkTq1jWN0q8/BiDutHMiUmdrsPTqS9Kl11Ew7zHynp1D1NHHNbjGY8XiH0HXiT5mMraBQ9uhpeExxicBkVk+p8n/627fvp0bb7yR3NxcevfuzYMPPsj1119PdXU1iqLw9ttvM2fOHCZNmtTiRkXS/PnzmT59OqeffjoAt912G4sXL+bzzz/n4osvbnI9NZvWY2jK7ztFCQnQDBYrWCyUVzuJS0n2juFqMICzBMam1Q3YvFk5S8PBWaCM9zlGU8R/MauqSmWVhuPIcRKoCdGWFAVjXDympMguTtwcBkcU9kMPw37oYXDuReiahnPHFqpWL6dq9TKq167EU1FO9ZoVVK9ZQQ9gz2dvYkxIwjZ0ONZBh2Dp0x9r335Y+vRr0WxjXVWp2fInVat8+zOvXhEYDmOIjSPu5LOIP30Ghu69WLtgQZuuJdgZGeMSSL7sOvKefICCl58k5i/Tws5UN6Rq5VLUvBwMsXFEH3tCBFraehJnXEz5D1/j3LaRvCcfoMd/nqxXxpXpHdNsO2RkG7eueUy+GdFacRsGi08//TQDBw7k/vvv5+uvv+bGG29kwoQJ3HnnnQA8+uijvP766x0qWHS73WzevJlLLrkkcMxgMDBmzBjWrVsXVl3d7nqU6NjYeoFecFCoWKzeiQF1gjVVVfnmm2+YOnVqqwVbgVFMrTDpQ1VVNE2LyC4FHb0NrXWdptSr6zpuTceteXCqOi7Vg0vz+L7rmAwKdhOUOzWcrvDHiTb3vYV7Xkf4eekKOsPnaOo/mNj+g4k9+wJ0TcO1ZyfOTeup3rSe/OVLsRfmohUXUvnbz1T+9nPIucbkblj69MPcszfGpBSMCd7dS4y+L8ViwVNWGuji95SWoJUUUbNpHdVrV6JXVYbUZx12GHGnn0vUpJMCy4R05t8bkaqzqfVEn3oOxZ++iztjO/kvP03ydbc1ux3+c8q+/BCAmBNOw2M04tlPHR3h5z1l1n3svfI8yn/6hrJlv+I4clzI687MDACMPXp3yH+XdT9DJdYb8LuLCuq1VwszVmhy5PLnn38yb948Bg0axODBg/nkk0/461//isE3VmzGjBlhZeraQklJCZqm1etuTkxMJCMjI6y6Zq11Y7JUoiiVKIBB8W5NpCgEnoc8BgyKjqKA7tHJ3LOPX7O/w2g0NHie/1jwa4riqyOozrplDEroa7Xn+cs1fn7d8xp7T5qm8ccffwBgNBrDvQ0tpuugahor/1iF2wOKwRhYoFrXwaODTp3vgdcVPMFlGzon6LiqediybQcbihaiGIx4dNB00Dzg1kH1+L8UVB3cnuDXFO9rIeXArSu4NZ2yCpX7/liEpoeeX3tOUzPCDv5v6a9YDDo2E9iNOjYj2Exgq/PYHvTYonjI3LWTraULiTIbsJm8Ze1GMBm897oh4d7/9v556So67eeo2NGGHMkfFTB65EgcRbnYsjOxFORiKcrDUpSHqbICrSCX6oJcqlf93qzLaDY7Vb0HUN13IFV9B+JK6ub9h/zjT7Vl2ugzbI3rRKrOcOqxj51M74ztlHzyDmvj03AlpzWrHZqmsWb5Mob89jMGYG1MCq4FCw54Tkf4eU89bCzxq5ey9aWnyZ5eEvJa/53bMQHLMzJxHuD9tIe6n2Hs3izSgOxtW/ijTnudzgMPnwvW5GCxrKyMpCRv/7fD4cButxMTExN4PSYmhqqqqrAu3pl8t9eE3qKs4CB+2Rax5rQpb1B5DK8uMWAwKBgUxRekKhgN3jEv/ucGhfplFAUdHc2j+4IvHV3H91xH83izapqu4/HUf90TWEjwGFjcFu94BGxojXpjofLApfwMClhMBqwmA2ajgqrpVDg1VN8H4vIouFxQRjjDDoazYG39oyaDQrTVSJTVSILDTFK0heRoM8lRFhIdJmp6GjGnj6JbnJ2kaDPJ0Rbs5oZ/ofv/gm3NTPrBoDN/jv62n9RI27XyUtyZGbj2ZKBmZ6IVF6IWFaIVFQS+dLcLQ2ycd0mi2HgMcQkYY+OwpA/AfsRYLAOGeJdkakI7WvszbI3rRKrO8OqZRk7WDip//YFD1i6h+6P/DWSgwmmHqqpE79iIQVMxde/F5L9fesDhUR3l5905ZAB7LzuLmJ2bGDFubGBxa62ijIxHvL/AJ804H4M9QssxRFDdz7DCYST32w9JjnJw2LRpIWUrKyt5+OGHm1x3WHek7s3u6IuXxsfHYzQaKSoK7a8vKioKBL5NdfmxvTFaHHg8vqBG9wY4/uDGs59jmuYhOyeHlJRu6Ip35QtP0OuekCBKD7weuI7v9eBjHo8voPLX4zsncCzonODXa481/b17yypomi/N1kEFB6xGg4KiKBgNtc9rXw89rviCXoOioACVFeXEx8ViNBgCZSwmQ0jgZg15bgg8t5gMWIxKvddMis76tas5esxoHFazr5wBi6l+Wf9zYwODZN1uN1989Q3jJ/2FGg0qajTKnSoVNSoVTo0Kp0qlU/M9Vymv8R7zPlbJyivCaIvyldWocnn/I1A9OiXVKiXVKvtKGvqL08rrW/8MORJlNZISbSE56Cslxhtc7i0wE59RRrc4O8nRFhKjLA2+H7F/RqMRk8nU6YJF2H/bTQlJWBOSYOSRDZ7r3+bxQMFgS9sRSa1xnUjVGU49qdf+m4xlv1L9x+/U/P4L9nETm9WOmIytAESPOw6zuWljRjvCz7tp8DBsQ4dTs3kDlT98TeKMiwFwZ+/ztjEpBUtMbLu170CCP0NztDehp1dX1/tMw83ehnVH7r33Xiy+LYGcTicPPfQQdrt3hpmrDZZvCZfZbGbo0KEsX748MJbS4/GwYsUKzj333LDqun3aIKKjmzcgW1VVFizYy7RpIzvML33dF1gGAlpfFs9/TAsKaN2qyvc//MjEScdjMBjrBbnBga/mCa7XW4+m6yFZRoMhOGgjELwpgaDOF8gpCopBwaiAx6Px0w8/cOIJJ2CxmEIDPsV7biT+ePHeqwVMmzYmovdKVVWM+zwcPySpRfUqioLZCMnRlmats+h9b7UTlTSPTqWzNtCsqNEornJTUOEKfOWV1bBp1z4UezyFlW7yy524NJ1Kp0als5qMwoZ2TzHz4sY1gWcGxdvmbrFW0uKsdIux0i3WWu95aqwFs/HgXvtO+P4td6au9y7E0qM3CTMuoejNF8l/9mF6NWPrOl3XidqxGYCocZMi3MLWF3vy2dRs3kDZt5/XBot7MwD2u8RWR6PYvUv7eKrD6NJqRJP/tzn11FNDnp988sn1ypxyyiktblCkzZw5k3vvvZdhw4Zx6KGH8vbbb1NdXc1pp53W3k1rV4ovwDI0oQtTVY0kWKFnvK3dgl1VVYkyQ6y9c2ZZOiqjQSHWbibW3vhf/t4gczfTph2FyWRC173d4fnl3mAyv9wZCCzzK1zklznZuicHjzWGwgoXRVVuPDrklbvIK3exfl/5ftuUHG2mW4yV1AaCybQ4K70TbKTGWDFIplKIVpF0wRWULfgEd1YmBU8/BEPDW6jblbEdc3kJisWK44gxrdTK1hNz7GTynrgP547NeKqrMNgduHxb+3WmYNHg8HaVeyIwRLDJ/+vec889Lb5YezjxxBMpLi5m3rx5FBYWMnjwYJ555pmwu6GFEF6KohBjMxFjM9E/pf64HW9wmcm0aWMxmUyomoeCSje5Zc7ar1InueXexzm+x3llLlSPTkGFm4IKN39mVzTaBotRoUe8jd6Jdnol2OidEPQ90UaPOBsWk2QohWgOgyOK1OtvJ+vuGyj/6kN6rVuFdsx4TMmpTTq/6nfvji32I8YEZqZ3JqbkbpiSU1EL8qjZthnHyFG4Mr3BorkzBYu+cZVtmlnszGbMmMGMGTPauxlCHJRMRgNpsVbSYq37Lefx6BRWusgtc3kDynJfIBkUZGaXOskurcGl6WQUNtYF7p3ZnRZrpVeCnd4JNu/3RBsp0RbsFiMO31eUxRjyXAJMIbxijp9Kj9nPkv3Av3Bk7iTz8rNJvvga4k4564Bb9lX5dvhxHD2xLZraKmxDh1Ox+EdqNq/HMXIU7s6YWfQFi3pNNbrH06KdzpoULM6a1fSNvx999NFmN0YIcfAyGBRSYqykxFgZ3jOm0XJuzUN2qZPMomr2Ftewt7iazKDv+4prcKoeX2DpZEVG09tgMighwaPDbMBh9Y6dUzUd1eOd1e8OPPag+p5rHj1Qxm420DfJTnqSg/RkB+lJdtKTHfRLstMt1trhJwcKARBz3BSML7zDjpsux1KYT+7j91L09n/pftej2EeMavAcrbyMmg2rAXCMPaYtmxtR1iH+YNG7NIZaXAB492DvLAIztnUd3VmD0oIZ3E0KFoMndui6zk8//UR0dDTDhg0DYNOmTZSXlzN58uRmN0QIIZrCbDTQJ9FOn8SGt2/zeHTyK1y1QWRRbTBZXKVS5fLOAq/2fa9y1S5HpHp0ymu8M8dbosqlUVjpZtWesnqv+QPJvkneIHJgahSH9YplWI8YrJLZFB2Mpe8Adl98E+PcZRTP/y/u7H3su/1a+r7yMebUtHrlq1YuBY+GMykVc/de7dDiyLAfMgIA5xZvsKj7NkJQLPvvIelIFKvN282i64Gxl83VpGAxeLzi008/zQknnMBtt90WmHqtaRoPP/xws2cLCyFEpBgMSmCm9ZFN7DFyax5v4OjUqHJrQQGl97h/pr7J/2VUMBkMmAwKRqP3mNmoBMqU1ahkFFSzu7DK111eRUZBNZnF1VS7PWzOqWRzTug4IotR4dAeMRzeJ45RfWIZ0SM6rCWuhGgtuslE3GkzSTj1HPZcMxPn9s1k3f1/9HnmzXpd0hVLFwFQ2f+Qdmhp5FgHHwqAa88utMoKdLd3xZcDdcF3JIrBgGKzo1dX4alu2SSXsMcsfv7557z88ssha/QYjUZmzpzJZZddxv/93/+1qEFCCNHWzEYDcXYDcfuZFR6uET3rr8Xm1jxkFtV4g0dfALk5p4I1mWUUV7lZnVnG6swyXlviLW81Wnh1zypG9Y1nZK8YUqKtxDlMxNvNxDvMRFuN0qUt2ozBEUWPB55m9+XnUPPnWvKenUO3G+8KvK57PFQu805uqew/tL2aGRGmhERMaT1Qc7JwbtmArvozi50nWAQw2KPQ2iNY1DSNjIwM0tPTQ45nZGTg8XgaPkkIIQRmo4H+KY56s8h1XWd3UTWr95Syek8ZqzNLWZtZRrXbw9KdJSzdWdJgfUaDQrzdRJzDTILdTJzDRGqMlR7xNnrEWeke750Z3iPeSoLDLIGlaDFLzz50v+sR9t16JSUfzyfutL9iG+gNDGu2/IlWXIjiiKK6V3r7NjQCLD37ouZkoRbmo7s6X2YRvMvnaEXgqWrZjOiwg8XTTjuN+++/n7179zJ8+HAANmzYwOuvv37Qr10ohBDNoSiKdzJMkoMzj+gOQI3TxWsfLyQ6fSRr91awKaeCkip34Mvlm1RTWOmmsNJ9wGvYTAa6x9vonWBjwsBEphySzIieMRJAirBFj59EzF9OpvyHryl8/Tl6PvAMAJW//wyAY/R4MHb+xVb8WUSP0wmadxxzpwsWfQtz622dWbzhhhtISkpi/vz5FBR4ZwclJydz4YUXcsEFF7SoMUIIIbxMRgO9onWmHdWDC8eF/qrWdZ1qt4fSKjfFVW5Kqt2UVqsUVbrJK3eSXVJDVqmTrJIasktrKKhwU6N62FVQxa6CKn7ZVsRDC7bTLdbKX4YmM+WQZCYOTtzv4uxCBEu66GrKf1xAxc/fUbNtE7ZBh1D5m2/JnLHHtnPrIiMQLFbWrvlqsHSufyO1C3O3cWbRYDBw0UUXcdFFF1FR4f0AZWKLEEK0HUVRAsv7dI8/8KLHNW6NnDJv8Lg1t5IfNxfw89YicsucvL18H28v34fJoDCmXzxTDklmwoBERvSKka0XRaOs/QZ6s4vff0Xhq8+SfMUN1GxeD/iCxeUr27mFLeef+eyprN11qvNlFv0Lc7dxZjGYBIlCCNHx2czGQDf3+AGJXDy+N07Vw+87i/l+UwHfb8pne14VS3cUs3RHMeBd4ufIvnGM7ZfA2P7xjO4bT4yt83ctishJuuhqyn/4morFP1Cx+AcArIOHYUpKaeeWRYY/MPRUBO0mZepkmcWOECwKIYTonKwmAxMHJzFxcBL3nzGEjMIqfthUwE9bClm+q4TiKjeLtxezeLs3eDQoMKxHDMN7xJASbSExykxStMX75XvcLcaK3WI8wJVFV2FNH0DcqedQ+sUHYDJj6dmH5Euube9mRYzBn1ms8gaLirnzTRJTJFgUQggRKelJDi47pg+XHdMHj0dnW14ly3aVsGxXMct2lrC7qJoN+8rZsK+80ToUBfonOzgkLQpzhRHjxgJG9IqjV4Kt0/0nK5qm2y33kXzpdRjjE1FM3pBCVVu2qH1H4c8sahXlIc87E8ksCiGEaBUGg8KQtGiGpEXz93HeXThySmv4fVcJuwqqKKp0U1jhorDSRWGFm8JKF0WVLqpcHnbkV7Ejvwow8cmudQDE2U2M6RfPScNSOOnQFNLiDjzOUnQOisGAKTm1vZvRKgITXAKZxU4YLDq8s6HbfIKLEEKIg09anI3ph9ff3i1YXrmTjVkVrN9byncrt1CixLItr4rSapXvNhbw3cYCbvlwE4f3jmXqoSmceGgKw3vI8j2iY6qdDV0Z8rwz8WcW23zpHIDly5ezYsUKioqK6i3EHbw1oBBCiINHaoyV1CFWjhkQR3rVn0ybNhYPBjblVPDj5gIW/pnPH3tKWZNZxprMMh7+ZgepMRZG9orl0B4xDO8Zw4geMaQnOzAaJIAU7avubOhOmVlsr27ol156iZdffplDDjmE5ORk+YtQCCFEoywmA4f1iuWwXrHcOKU/uWVOvtuYz7d/5vPz1kLyyl2+GdkFgXMcFgN9Ex1YzQbMRgMWo4LZ5P0eZzcH9v7uFmshNcZKn0Q7vRPt7fguRVdUGyx23m5oxeb9d9HmweJHH33EPffcwymnnNKiCwshhDj4dIu1csHRvbjg6F5UuzTW7ytnQ1YZG/aV82dWORuzKqhyediUU3HgyoIM7hbFKSNSOWVkN0bKzjQiAgITXPzBYifshlZ8S/3oLZx0FHawqKoqhx12WIsuKoQQQtgtRsb0i2dMv/jAMVXzsLOgiqwSJy7Ng6rpuDQPbtWDU/VQUuUmt9xFbpkz8LW7sJqtuZVszd3F3O930TvBxskjUpk5pnv7vTnR6Rl8waF/vF+nzCya/cHigbcE3Z+wg8UzzjiDb775hssvv7xFFxZCCCHqMhkNDO4WzeBuTd/0obTazfcbC/hyfS4/bi4gs7iGF3/Zw0u/7uHIZBM9R5QzKj2hFVstuqK6mUR/4NWZBIJFdxsHiy6Xi08++YTly5czcOBATKbQKm666aYWNUgIIYQIR5zdzNlHdufsI7tT7dJYtLWQd5bvY8GGfFbmGznp6RVMHprEDVP6M66/BI2iafxjFmufd8LMon/HmbbOLG7bto3BgwcDsGPHjtBGyRgRIYQQ7chuMTJteCrThqeyYW8Jt83/jeV5Rn7cXMiPmwsZ3TeOqyb15eThqZhk72uxH3W7nTt1N3RbZxZffPHFFl1QCCGEaAtD06K5YpjK3IsnMO+XvbyzfB8rd5dy2Rvr6Jto5x/H9WHmmJ5Ey57XogH1MoudMVg0tdOYRSGEEKIzSU9y8NhfhzHrpAG8tiST15Zmsruomjs/3cLsr7Yxwre0z+G9vd+tZgMF5S4KKlzkV7jI9z32f5VWu0mKstAz3kbPeBtpsWZ25huI3V5MfLQVu9nA3uIaduRXsT2vksziasqqVSpqVMqdKgZFoU+inb5JdvomOeiTaCc9yfs8wdH59h/uqmTMYq0mBYuzZs3innvuITo6mlmzZu237KOPPtqiBgkhhBCtoVuslX9PG8j1f+nH+yuzmPfzbnbkV7F8VwnLd5W0sHYzz2xY3eTSGYXVsK3+8aQoM8cPSeb4IQloLfv/XbSQoV6w2Akzi+Y2XDonOjo68JdOdHTTZ6gJIYQQHY3DYuTi8b35+9G92JZXydq9ZazNLGPN3jI27CvD44GUGAvJ0Rbfd2vQYwuxNhP5FS6ySmrIKqlhX0k1e7ILMNiiKa/RqHJp9Ii3MiAliv4pDvolOYh3mImxmYixGXFpOnsKq9ldWMXuomp2F3q/csqcFFa6+XBVNh+uykbBwlfF67hqYjrjByRIxrGNdaUJLm3SDR28hZ9s5yeEEKIrMBgUhqRFMyQtmnNH9wBA13UgvAmbqqqyYMECpk07ut4KIY1paFZ2tUtjzd4yvtuYz3cb89mcU8m3fxbw7Z8FHNojhumHd2NAShT9kh3YLd6u7r3FNZRWu7GZDdjMRlKiLRwzMBG7xdjk9reWjMIqft9VRmGlG6MC543pSXJ06wVcJVVudhdWg0JEFmZv7gSXzKJqHBYjSa34Xpuq3Sa4CCGEEF1Ve2bv7BYj4/onMK5/ArdP7c8rH37DVkM/Pvgjmz+zvDvcNEWU1cjJw1M558juHDsgrpVbXZ/m0flmj5Erf1mGS9MDx5/8YRf/OmkAl07oHfGZ6G8szeS2Tzbj9l1vyiHJPHrOIfRKaP42kOFOcNmRX8mlr69lY3YFZqPC7dMGcs3x6e2bETb5FhaXCS5CCCFE19MjSueyaUO485TBvLcyi3V7y9iZX8XOgiqcqkbPeDu9EmwkRVmoUTWqXR4251Swr6SGD/7I5oM/sjmidyx/SVSY1kZt3lNUzTXz1/P7LhOgc2SfOAZ2iwps53jHp1v4bWcxL104EnOEAsbvNubzr4824dEhNcZCcZWb7zcVMOWJ3/n2hrH0TXI0q9663c51xzAGK6hwcd5Lq8gorEZRwK3p3PflNgwGhasnpTfr+pFwUGcWs7KyePnll1m5ciWFhYUkJydz8sknc+mll2IOmq20bds25syZw8aNG0lISODcc8/loosuaseWCyGEEOFJiDJz5cS+TSrr8eis3F3KR6uyeXfFPlZnlrE608LK6jXMu2Bkq3WNah6dd5bv487PtlDp1LAadWZPP4S/j++NoihoHp3//baXOz/dzJfr8rj8jXX89+8jsZhaFjDuK67hH2+uw6PDzLE9mXvuMLblVXLF/9bxZ3YFF726hq+uH0OUNfxwJ5zM4r8/3kRGYTV9Em18df1Y3l+Rxf1fbWPON9s5dWQ3+iQ2P8PZEsGLcuu63uwsZ6dckTQjIwNd17n99tt57733uOmmm/joo4947rnnAmUqKiq49tpr6d69O2+++SbXX389L730Eh9//HE7tlwIIYRoPQaDwph+8cw5+xBW3HEsl03ohUnRWbS1iFOeWU5GYVVEr/dnVjn3fr6Fw//zCze+v5FKp8aY9DjuO8rFzLE9AsGJ0aBwyYTevH7J4VhNBr7ekMd172wIjBFtrleXZFLp1DiyTxyPnH0IiqIwuFs0b/9jFCkxFv7MruDfH29uVt1NHbO4JrOUz9bkoijw+iWHkxZr5brJ6Yzrn0CVy8O9/9/efYdHVaUPHP9OSe8kgYQACSUEEKkRCCxSBDYi3bIuiIooIL2KLNKUjixNpEhXVhdFfoqsFBFQUTqKIC2hlxCSQHqbmfv7Y5ghQxKSmbQJvJ/nySNz7z3nvnNncn1zzj3nbD1n0/mLg8V0P0Xoii5SspiZmVmU4jZr2bIlU6ZMoUWLFlSpUoU2bdrwyiuvsGfPHvMx27dvJzs7m8mTJ1OzZk3+/ve/8/LLL7Nx48YyiVkIIYQoTRU9nJjevTZTnsomyNuJ6NtpdF50iD+uJhWpXkVR+PS3a7T98DfafvgbS/deJiYpEx9XB6Z2rc3Xg5pQMZ+GtI71/NnwRiO0ahVfH49h4e6LNseRpTPwn0PXABjWPsSilbKytzOrX2uISgVfHL7Br9EJVtf/4LyKKse851mcsS0KgBebBvJkkKfxWJWK2b3qAPDdiVucu5Vi9fmLQ873UJSuaKvbZQ0GA2vWrGHz5s0kJCSwefNmqlSpwrJlywgMDKRHjx42B1MUKSkpeHp6ml+fOHGCxo0bW3RLR0REsH79epKSkiyOLQy9Xo/OxnmKdDpdkcqXNXuIv7RiKKnzFFe9RanH1rLWlrOH78ujoDxfR3uJvTzfN4rznhHgrOP/BjXi9fWnOHUzhZdWHuW3dyLwdCk4BXgwDp3ewLtbzrHx0A0AHDUqOtbz44UmAbQP88VRqy4w9qdreTOjR23Gf32Wmf+Lora/C8+E+Vj9fr/9/RZxKdkEeDryTJhPrrJPVfPglWaV+fTgDd756jS7Rj5l9XOSKgdHlOwsAAxqba5znL6Zwt5z8WjUKsZ2CLHYX7uiC5FP+LH9VBwLf7jA4n/Us+rc1srruivc73bOzshAc69rXa/XW1W31cni6tWr+e677xg+fDjTp083b69Zsyaff/55mSSLV69e5b///S8jR440b4uPj6dy5coWx1WoUMG8z9pkcdeuXTg5ORV8YB70ej1Hjx4FQKMp++kMrGUP8ZdWDCV1nuKqtyj12FrW2nL28H15FJTn62gvsZfn+0ZJ3DMG19LwQaIDManZjF3zIz1rFJww5CyvQ8PyU1r+iNegQqFXDT1tK+txc7iGcuUau68UPnZ/4JkgLbuvaxiy8QSTm2Rw8ZR173fhcQdATbMKaezauSPPY55ygC0Ojpy9lcrYVT8QWc26JKmmWo0pmpNnzpDk8L3F/g1ntYCGxr46Th7cy8kHz++sYjuOfHX0JrWVK9T0Klq3+8Pkd91DVSpUisLuHdvRuxtzH2t7hq1OFrdt28bEiRNp1qwZs2bNMm+vXbs2ly5dsrY6C0uWLGH9+vUPPearr74iJCTE/Do2NpZhw4bRoUMHevbsWaTzP0zHjh1xc3Ozqawpy4+MjCz0HFz2xB7iL60YSuo8xVVvUeqxtay15ezh+/IoKM/X0V5iL8/3jZK6ZziGxPLWpyfZfdOJma9FFDjvYc7y0/53gT/ir+GsVfNx7yd4tr5/kWLv0MlAt4+P8vvVZLbcDqBfk6aFfr8xiZmc3bMflQqm9H6ayt7O+R6rD7zBqC/P8N1VJ8b/ozmVvZ0xGBSibqdxKT6dBkEeBHhZNgbFJmeSpVPQfeKGPjMDgAZNw/F45v648uQMHUP37wf0TOgVTsuauefOBDjDX3x5NIbPr3jRu1llLsWn4+fuSI9GlQirZFtekZf8rvuFhe+hZGXS7umncagUCEBqaiqzZ88udN1WfwNv375N1apVc203GAxFbi5/5ZVX6Nq160OPCQoKsohl0KBBNGjQgIkTJ1oc5+vrS0KC5TMKpte+vr5Wx6bRaIr0C2sqX95u+ib2EH9pxVBS5ymueotSj61lrS1nD9+XR0F5vo72Ent5vm+UxD2je6NAlu69wu9Xk1iy5wozetYpVPnLd7JY9+t1AFa/3pBO9fJOFK2JXauFFa80pP2/f+PAxUSqqBzpVsj3+8uFWwA0rOJJNb+HryzXu3lVPj8Sw6GLdxn15Rn6/60as74/z5mYVMA4L+WULrXp2yKIbL3C3B3RLN17CUWBLekKpneqdXKyiG3rnzGkZempXcmN1rX98h1pPL1HHfaeTeBCXDrT/xdt3v7JL1f5dshTNKhiXU/nw+R13VUODihZmWgUg3m7ta3VVg9wqV69OseP517/cvfu3YSFhVlbnQUfHx9CQkIe+mN6BjE2NpaBAwdSp04dpkyZglpt+VYaNGjA8ePHLRLYgwcPEhwcbHUXtBBCCPEoUKlUTOwcCsC6X69yNSG9UOWm/y8KnUGhQ12/AhNFa9Twd2XmvYR122UNd9MKNwhj31lj40/bsIIbf9RqFXOfr4tWreKn8wm8tvZ3zsSk4uqoploFZ1Iz9byz+TThM37hyWn7+GiPMVHUqFWkkzPpsmyF/eKwMXnu0zzooVPSVHBz5PsRzRjVoTpdG1ZiZIfqNKnmSWqmnj6rjpOaWbLP1JqX/CvCABerk8U333yTuXPnsm7dOgwGA3v27GH69OmsWbOGN9980+ZArGFKFAMCAhg5ciR37twhLi6OuLg48zGRkZE4ODjw/vvvEx0dzc6dO/n888/p06dPqcQohBBC2KM2tSvwt1o+ZOkVFvxwocDjz95Vsf1UHBq1iqldaxd7PC+HV6ZOgBvpehWr918r8HiDQWHfuXgA2tYuXE/hE5U9+L8h4XSuXxFHjYoXmwZyfNLTHP5Xa2b0CMPP3YHrdzNITNdRxceZDW80YufI5mSpciSLOSbljopN5fClRDRqFc83CSzw/MG+rvyrcyhrXmvIxM6hfDmwKdUqOBOTlMlXR28W6j3kJSo2lRdXHGXt/qv5HmOemLsIU+dY3bbdtm1bFixYwCeffIKLiwvLly+nTp06LFiwgBYtWtgciDUOHjzI1atXuXr1Kp07d7bYd+TIEQDc3d356KOPmDNnDn379sXb25s333yTXr16lUqMQgghhD1SqVSM7VSTX6KOsOV4DDN61Ml3LWlFUdgUZUwV+rYIIizg4V2+tlCrVYzuUJ0Bn53kk1+u8nbbEDxd8p6mBuCvmyncTsnC1VFNeIh3oc/TvLoPzav7YDAoqNX3WwIHPB1M3xZV+OF0HN6uWlrVrGDef9vVGe41vuZsWdx0xDgavH0dXyp5Wj/41dPFgbdaBzPpm7N88vMVXo2oYvWE2beTM+m17Ag3EzPZezYeDyc1eUVSHKu42PQgROPGjfn4449tPmlRde3atcBnGwFCQ0NZtWpVKUQkhBBClB8RNXwI8nbm+t0MfjgdR9eGlfI87uClRC4mq3F2UPPO32uWWDzP1fensquBG2k6PvnlKmM61sj3WFOrYsuaFXCyYQWYnImiiYujJs9rULGCO8Tfe5FjKr6tJ4zPTL7YtOBWxfz0blaZ2dujOHsrlV+j79CqVgWryn9x+AY3E++Pap638wLvPZnHgdqityyWyxVchBBCCGE7tVpFr8YBAGw+ln836Jp73cLPNw7A38O26eMKG8+zwcZpbb5+SDwAe+8li20K2QVdFJ6e90crX00yxhcVm0pUbBoOGhUd6tr+/KaniwPdGxo/g2/+uJXnMYqikK035Lnvh9PGR+8mdq6FVq3iQlw6t/N4BLXUWhbbtWtX6ObRH3/80eZghBBCCFE6ejYJYMmeS/xwOo6k9OxcXb837mbwv5O3AejfqkqJx9PQ14BKBedupXLzbgaBeUyHoygKRy8nAtCqVt5T1RQnTY7nFI/FpBMGfH8y9t75K+DhXLSR6t0aVuI/h67z3YlbzOpZB02OVs8snYG+a46z92w8ETV8WN63AQH3uryT0rM5dPEuAD0aB7D7TBwHLtzlZELuNsCc60PbqlAti2PGjGH06NGMHj2aN954A4AWLVowYMAABgwYYH5WsX///jYHIoQQQojSU7+yB7UruZGpM7Dtz9hc+9f9ehW9QSHM20DdwOJ/VvFB7g7QsIoHAPvOx+d5zOWEdJIzdDhqVNQpgecnH6RyvN+aeuiacV3t7+8l0PnNM2mNp2tXwNtFy+3kLH6LvmPerigKozad4scz8RgU2B99h9nfR5n3/3Q+AZ1BoVZFV0J8XWkX5gfw0GSxxEdDd+nSxfzzxx9/MHDgQGbOnMnLL7/Myy+/zMyZMxk4cCDHjh2zORAhhBBClB6V6n5X9NfHYyz2ZWTr2fCbsQv6mSDrVj0piqdDjc/tmabGedDJ68kA1Al0t3rpPlvkTBYPXk0lJjGDI5fvAhD5RMUi1++gUdOlgfFZyU8P3B8JPndHNJuO3ESjVtGvpbFV97+Hb3A53piwHr9iXN+7ZQ3j9Wpe3RuA66l5JIvmbugsm+O0+kofOHCAli1b5tresmVLDh06ZHMgQgghhChdPRsbB2j8fD6B2OT7gyX+e/gG8anZVPZ2orFf3s/MlYQ2pmTxfDyKkntpvD/vJYtPBpXOfMnqHN3QsekK07aeR1HgqRCvh64aY43XWxkXOvn2j1vEJGawePdFPtxpnNJo3gt1mftCPdrUroDOoPD5vTW5/7xuTBafvNcSW7WCCwAJGcaphXJSlcUAFy8vL/bt25dr+759+/Dy8rI5ECGEEEKUrhr+rjSu6oneoDDne+PqIjfvZvD+d+cBGPR0NUqhAc+sabAXro5qbidncfpmSq79piSpfmWPUoknZ8tillrLV/cG3/RoFFBs52hYxZPm1b3RGRQ6LjjIB9uM1/7dZ2vRt4WxVdGU1O8+YxzUcvKGKWk2XodALyfUKtApKm6nWLYglsnUOQMHDmT69OkcPXqUJ554AoBTp07x66+/8t5779kciBBCCCFK3/jIWvxz1TE2HLjGE0Hu7D4dR1KGjibVPHmjZRV27jhZarE4adVE1KjA7jNx7DsXT70HkkJTN7SpRa2kqXJMl6NXG1MmlQq6FWOyCDDxuVD+seIoMUmZaNQqJj0XypB2Ieb9z9Qxjvz+/WoSp24kczs5C7UK6gYar4ODRk2AlxM37mZy7U4GQRXuj+Iuk5bFrl27snr1atzc3NizZw979uzBzc2N1atXF2ruQyGEEELYj2fq+jHpOeMSgOM3n2HnX3E4alQserm+xejc0tKmtrEr+rcLdyy2x6VkcTMxE5UKnggs/ZbFHuHGVr5WNX3Mo5KLS0QNH46+15oPuoexY2Rzi0QRIMDLmfr3WhEX774IQE1/N1xzTKZe5V63+LU7GZbvoawm5a5fvz7Tp0+3+aRCCCGEsB9D24Vw+mYKX95bem5Mp5rUCXBHpyvZdYvzYlol5lKc5aSBplbF6n6uuBdxyprCMi3xp3JwYFr3Oni7OvJKi6ASOZe/hxOD2gTnu79jXT9OXk82D0Zq8EDrapC3M5DItbuWySLFMBra6qsdExPz0P0BAcXbNCuEEEKIkqVSqfj3S/VIy9KjUasY1j6kzGIJvjdY43JCOoqimOd5Ng/qCCqdVkW437KocnDEz92RGT3rlNq5H9S9UQALfrhoft2toWW+VcXH2LJ4/W4+LYuluTZ0165dHzpBt4yIFkIIIcofZwcN6/o1KuswqFLBBZUK0rL0xKdm4+dubN07dW9QR2kNbgFQ50gWy1q9B+a67FDXz+K1KVm0i27ojRs3WrzW6XScPXuWjRs3MnjwYJsDEUIIIYRw0qoJvDdY43J8mjlZNLWYhfi5llospiRR5Vj2yaJKpeKD7mFM+uYsw9qH4PjAutiVvYyJbUzSA6Ohi2GAi9XJYu3atXNtq1evHv7+/mzYsIH27dvbHIwQQgghRLUKLty4m8mVhHSaBnsDxgEuAP7upZe43X9mseyTRYABravRpJoXTarlnmfSzck42CUty3IS9eJoWSy22ZOCg4P566+/iqs6IYQQQjymqpmeW4y/P8jldvK9ZNHj8U0W1WoVzap7o81j8ksXB2OymJ79QLJYDGtDW92ymJKSe5LMuLg4VqxYQbVq1WwORAghhBACIMTX2NVsShYzdQYS040js/3di3famocxD3Cxg27ogpim0UkvgZZFq5PFdu3a5RrgoigKlSpVYubMmTYHIoQQQggB91sWryQYk8X4e13QWrUKL5fSmTYHwLFqiMV/7ZmLo7G1MT3LcnlGVVlMnbN8+XKL12q1Gh8fH6pUqYJWW3ofoBBCCCEeTdV8LZNFUxe0n7sj6lKcKNypeig1Nv2AxrdiqZ3TVqZu6AydAYNBMV+nMpk6R6VS0aBBg1yJoU6n49ixYzRp0sTmYIQQQgghQu61LF69k4FObyA2ORMo3ecVTRwCq5T6OW2RczWXtGw97k73lie815VuyEjPs1xhWD3AZdCgQSQlJeXanpKSwqBBg2wORAghhBACoJKnE05aNXqDwo3EzPsjocsgWSwvnHNMpZPzuUW1u3HktCE195iTwrI6Wcw5m3pOiYmJuLi42ByIEEIIIQQYR/2aJpm+Ep9u0Q0t8qZWq3BUKwCkZ99/blHjbpzE3JCabHPdhe6GHjduHGDshp46dSqOOUYG6fV6oqKiaNCggc2BCCGEEEKYBPu6EH07jUvxady+17JY0aP0RkKXR44ayDLAraRMPvjuPL2aBNDmXrKoT87dK1xYhU4W3d2Ny8woioKrqyvOzs73K9FqefLJJ+nZs6fNgQghhBBCmATnGBEdVwZzLJZHTmpIAT747jy/XbjD//0ew7UhwQAYUkqhZXHKlCkABAYG0rdvX+lyFkIIIUSJMS3rF3U7jaR040he6YZ+OEeNAqg4ePGOedv9ZxaT832UsCBWj4YeMGCA1ScRQgghhLBG/crG7tMTV5PMS9lJy+LD3ZtqEYNyf1uagzHpVrKzUbIyUTk551Hy4QqVLPbp04dly5bh6elJ7969H5qVbty40eoghBBCCCFyalDF2CJ2OSHdPC1Maa7eUh45aXJvu5qmwkGtBoMBQ0oy6pJKFtu0aWMe0NK2bVurTyKEEEIIYQ1vVwdCfF24FJ9O2r2pYKRl8eEc80gWr9zJINTNA0NyIvqUZLS+/lbXW6hkMWfXs3RDCyGEEKI0NKjiyaV760OrVODr5lDGEdk309Q5OV1JSKeOuzFZNKTYNiLa6nkWTbKzs7l16xYxMTEWP6UtKyuL3r17Ex4eztmzZy32nT9/njfffJOWLVvy3HPPsX79+lKPTwghhBC2aXivKxqggqsDWo3NactjIa9u6EvxaahNcy3aOCLa6gEuly9f5oMPPuDEiRMW200jbA4dOmRTILZavHgxfn5+nDt3zmJ7SkoKQ4cOpVmzZkyYMIGoqCjef/99PDw86NWrV6nGKIQQQgjrNax6P1mULuiC5dUNfTUh3Zws6ksrWZw2bRparZYFCxbg5+dn0xDs4rJ//34OHDjA3Llz+fXXXy32bd++nezsbCZPnoyDgwM1a9bk3LlzbNy40aZkUa/Xo9PpbIpTp9MVqXxZs4f4SyuGkjpPcdVblHpsLWttOXv4vjwKyvN1tJfYy/N9wx7uGbaWL84yTwS4mv/t6+ZQ5t8pe6bT6XBQGQBjxlg3wI3TMancTctG7WacKzs78a75WlvD6mTx3LlzfPbZZ4SEhFhbtFjFx8czY8YMPvzwQ4sJwk1OnDhB48aNcXC4/3xDREQE69evJykpCU9Pz1xlHmbXrl04Odk2Ckuv13P06FEANJo80n47Zw/xl1YMJXWe4qq3KPXYWtbacvbwfXkUlOfraC+xl+f7hj3cM2wtX9xl/J0duZ2hIjs5nu+//76woT929Ho9CbFxQDUA3PRJgIaYuDvcuJuIF3D62BHuOHiQmZlpVd1WJ4s1atTg7t271hYrVoqiMG3aNHr16kW9evW4ceNGrmPi4+OpXLmyxbYKFSqY91mbLHbs2BE3Nzeb4jX9JRQZGYlWa/UlL3P2EH9pxVBS5ymueotSj61lrS1nD9+XR0F5vo72Ent5vm/Ywz3D1vLFXWZL/Em2noilQe1gnn22dmFDf+zodDq2XfmBY5eMr1s9WYMjP15G6+xGtbC6JJ48SmhQZXyffZbU1FRmz55d6Lqt/uYMGzaMxYsXM3jwYGrVqpXrQzUtC2iLJUuWFDgI5auvvuLAgQOkpqbSr18/m89lLY1GU6RfWFP58nbTN7GH+EsrhpI6T3HVW5R6bC1rbTl7+L48CsrzdbSX2MvzfcMe7hm2li/OMr2bB/Hn9WS6NAgo8++TvXPW3h8AFFrJ+JxiWpYBbYAXAEpqClqt1upWZquv+uDBgy3+a1IcA1xeeeUVunbt+tBjgoKCOHz4MH/++SctW7a02Pfqq68SGRnJtGnT8PX1JSEhwWK/6bWvr6/NMQohhBCi9HSo60+HidbPDfg4UqvuT51Tq6Lxec/ULD0aH2Peo78bD0DWlYtW1Wt1srh8+XJrixSaj48PPj4+BR43btw43n77bfPruLg4hg4dysyZM6lfvz4ADRo04OOPP0an05n/Ejl48CDBwcFWd0ELIYQQQti7tOz7g44rexnHc6TlSBZT9u0i+vl2JMXHAYUfh2F1sti0aVNrixS7gIAAi9eursbsuUqVKlSqVAkwPvfwySef8P777/Paa68RHR3N559/zujRo0s9XiGEEEKIkpaRY5CzaT1tvUFB8fYzb9fF3gQFSjRZPH/+fJ7bVSoVjo6OBAQEmJcGLEvu7u589NFHzJkzh759++Lt7c2bb74pcywKIYQQ4pHUPkjPT7eceLFpoHk9bYAs94J7bR/G6mSxd+/eD51bUavV0rFjR/71r3/ZPNWMtSpXrsyRI0dybQ8NDWXVqlWlEoMQQgghRFnyc4G/prbGzdnYaOekVZOpM5Dh5l2keq1OFufNm8eSJUvo27ev+fnAkydPsnHjRt566y30ej0fffQRy5YtY+TIkUUKTgghhBBCFJ5TjhHRro4aMnUG0lRF6/G1Ollcs2YNY8eOJSIiwrytVq1aVKpUiWXLlrFhwwZcXFxYsGCBJItCCCGEEGXE1VHDnbRs0rL0uBZ8eL6sXpE7OjqawMDAXNsDAwOJjo4GoHbt2sTFxRUhLCGEEEIIURSmQS6pmdYt7/cgq5PF4OBg1q1bR3Z2tnmbTqdj3bp1BAcHAxAbGytzGQohhBBClCHTIJe0rKIli1Z3Q48fP57Ro0fTuXNnQkNDAYiKikKv17Nw4UIArl+/zgsvvFCkwIQQQgghhO3c7iWLqVl6HKoEk33tsk31WJ0sNmzYkG+//Zbvv/+eK1euAPDMM88QGRlpXjv5ueeesykYIYQQQghRPFzN3dA6gmZ9zO2lc0k9sM/qemxaZNHNzU1aDoUQQggh7FjObminkJoEzf6Yc22fsLoem1fkvnDhAjExMRbPLgK0adPG1iqFEEIIIUQxcXM0pnmp955ZVGk0Dzs8X1Yni9euXWPcuHFERUWhUqlQFOOi1aaJug8dOmRTIEIIIYQQoviU2QCX+fPnU7lyZZYtW0a3bt1Yv349iYmJj/28inq9Plcrq4lOp0Or1ZKRkYFWa3Njbpmxh/hLKgYHBwc0Nv6lJYQQQtgz09Q5aUWcOsfq/+ueOHGC5cuX4+3tjUqlQqVS0ahRI4YOHcq8efP4z3/+U6SAyhtFUYiJieHu3bsPPaZixYpcuXLloUsl2it7iL8kY/D29iYgIKBcfjZCCCFEflxzjIYuCquTRYPBgKurcR5wb29v4uLiCAkJITAwkMuXbRuSXZ6ZEsWKFSvi6uqaZ8KhKArJycl4eHiUy4TEHuIviRgURSEtLY3Y2FiAPCebF0IIIcqrvLqh3dt0Im3vTqvqsTpZrFmzJufPnycoKIj69euzYcMGtFotW7ZsISgoyNrqyjW9Xm9OFB82CbmiKGRmZuLs7Fxuk8Wyjr+kYnBxcQGME8lXrFix2OoVQgghypr7vW7olEydeVvlqfNxjToHr7xW6HqsXsGlf//+GAwGAAYNGsT169d566232L9/P+PGjbO2unLN9IyiqaVVlE+mzy+/Z06FEEKI8sjLxQGAu2n3k0WV1gGHKsFW1WN1y2JERIT531WrVmXz5s0kJibi6elZLlvNisPj+r4fFfL5CSGEeBR5uxrTvMT0ojWGFMuwUi8vr+KoRgghhBBCFJP7LYullCxOmzatUMdNmTLF5mBE+aAoCgMHDuSrr77izp07HD9+nEaNGpV1WEIIIYTIwdvVmCwmpusKOPLhCp0sfvfddwQGBhIWFmaeiFuUT6+//jp3797l//7v/2wqv337dtatW8fevXupUaMGfn5+qFQqtmzZQo8ePYo1ViGEEELYxtvFmOZl6gykZ+lxcSzhFVxeeOEFduzYwfXr1+nWrRvPPvusdD8/pqKjowkMDKRly5ZlHQpgHJji4OBQ1mEIIYQQdsXdSYtaBQbF+NyirclioUdDjx8/nu3bt/Pqq6/y008/8dxzz/Huu+/y22+/SUvjPYqikJqpy+NHT1qWntRMfT77i/5TnJ/ByZMnefbZZ3F3d6dSpUq8+uqrxMfHA8ZWyWHDhpknxw4JCSEkJASAnj17mrfl5+rVq7z00kt4e3tToUIFunfvzqVLl8z7Dx8+TMeOHfHz88PLy4s2bdpw7NgxizpUKpV5BSE3NzdmzJhRbO9dCCGEeFSo1ar7zy0WoSvaqgEujo6OREZGEhkZyc2bN9m6dSuzZ89Gr9ezadOmx34KmbQsPSETfiyTc1+a1R43p6KPV7p79y7t27fnzTffZMGCBaSnpzN+/Hj69evHvn37WLRoETVr1mTlypUcPnzYvFRexYoVWbt2LZGRkfkun5ednc3f//53IiIi+Pnnn9FqtUyfPp3IyEhOnDiBo6MjycnJvPbaayxZsgRFUZg/fz6dO3fm3LlzFnVNnTqV2bNns3DhwnK5hKIQQghRGrxdHbiTll2kQS42/1/WtNQfYJ53UZR/H330EY0bN2bmzJnmbatXr6ZatWqcO3eOsLAwPDw80Gg0BAQEWJQ1LZuXn//+978YDAZWrVpl/u6sXbsWb29v9u7dS6dOnWjfvr1FmZUrV+Lt7c2+ffto3bq1eXvv3r3p169fcbxlIYQQ4pFlem6xKNPnWJUsZmVl8eOPP/Ltt9/yxx9/8Le//Y1x48bRsmVL1Gqr5/d+5Lg6arg0q32u7YoCSUmJeHp6UVJT+rna+BzCg/744w/27NmDu7t7rn3R0dGEhYUVqe6oqCg8PDwstmdkZBAdHQ3ArVu3eO+999i7dy+xsbHo9XrS0tK4cuWKRZnw8HCb4xBCCCEeF16uuSfmtlahk8XZs2ezc+dOKlWqRLdu3Zg5cybe3t42n/hRpFKp8uwKVhQFnaMGNyeN3U8AnZKSQteuXZkzZ455m2ld5tq1axe57qZNm7Jx48Zc+/z9/QF47bXXiI+PZ9GiRQQHB+Pk5ERERARZWVkWx7u5uRUpFiGEEOJx4G1+ZrEUWhY3b95MQEAAQUFBHDt2LNegA5N58+bZHIwoe02aNGHz5s2EhISYnwVUFIXExMSHJmgODg7o9fp895vq/u9//0vFihXx9PTM85j9+/fz8ccf07lzZ8A4ICYuLs7GdyOEEEI83syruBThmcVC9x0/99xzhIeH4+Hhgbu7e74/onxITEzk999/t/i5evUqQ4YMISEhgX/+858cPnyY6OhoduzYwZAhQx6aDIaEhLB7925iYmK4c+dOnsf06dMHPz8/unfvzs8//8zFixfZu3cvw4cP59q1awCEhoby6aefcvr0aQ4ePEifPn1wcXEpkWsghBBCPOpKdTT01KlTbT5JSfnll1/45JNPiIqKwtHRkSZNmjB//nzz/piYGGbNmsWRI0dwdXWlS5cuDBkyREbPAnv37qVx48YW2/r378+qVavYv38/48ePp1OnTmRmZhIcHEy7du0e+lzq/PnzGT16NJ988glBQUEW0+GYuLq68tNPPzF+/Hh69epFcnIyQUFBPPPMM+aWxtWrVzNgwACaNGlC1apVmTlzJmPHji3W9y6EEEI8Lkp9gIs92b17NzNmzGDw4ME89dRT6PV68yAJAL1ez4gRI/D19WXNmjXExcUxZcoUtFotQ4YMKcPIy966detYt25dvvtDQ0P5+uuvza9N3dCm5y1HjhzJyJEjLcp07dqVrl27FnjugIAA1q9fn+/+xo0bc/jwYYttL7zwgjkGUzxCCCGEKJipZTEpXYfBoKBWWz92olwmizqdjvnz5zN8+HCL5eVq1Khh/veBAwe4ePEiH3/8Mb6+voSFhTFo0CCWLFnCgAEDZMUPIYQQQjzy3J2Nqd72U7epOfFHPugehrPKulbGcpksnjlzhtjYWNRqNb179yY+Pp6wsDCGDx9OrVq1APjzzz+pVasWvr6+5nIRERHMnj2b6Oho6tSpY9U59Xo9Op1lf79OZ1w5xfSTn8IcY8/sIf6SjMFUr+nzzeuzLiqdTlcs9RalHlvLWluuuN7r4648X0d7ib204iiJ89jDPcPW8qVVRljK7xq6Od5vSUzJ1DNq01+odBlUs6LucpksXr9+HTBO2Dxq1CgqV67MZ599xsCBA/n666/x8vIiPj6eChUqWJQzJY6mpeussWvXLpycnCy2abVaKlasSHJyMpmZmfmWVRSFtLQ0ALufOicv9hB/ScaQlZVFeno6P//8M5mZmRw9ehQg35VobKHX64ul3qLUY2tZa8sV13t93JXn62gvsZdWHCVxHnu4Z9havrTKCEv5XcOoRBXgWKS67SpZXLJkyUOfZwP46quvzK1Lb7zxBs888wwAU6ZMoXPnzvzwww88//zzxR5bx44dc00dk5GRwZUrV/Dw8MDZ2TnfsqZ4vby8ym2yCGUbf0nGkJGRgYuLC61btzYPfoqMjCzWgVCmv/SKWm9R6rG1rLXliuu9Pu7K83W0l9hLK46SOI893DNsLV9aZYSl/K7h2ZgUZh47VKS67eoTeeWVVwocJBEUFGSedy/nM4qOjo4EBQURExMDGFsRT506ZVHW1KKYs2u6sDQaTa4vsFarNS97WFACU9jj7JU9xF9SMZjq1Gq1aLVa82dd3Des4qq3KPXYWtbaciV1DR835fk62kvspRVHSZzHHu4ZtpYvrTLCUl7X0Mc9/8aswrKrT8THxwcfH58Cj6tTpw6Ojo5cunSJRo0aAcaM+ubNmwQGBgLw5JNPsmbNGhISEszd0QcPHsTNzc0iyRRCCCGEeFR5OBc91bOrZLGw3N3def7551m5ciUBAQEEBATw6aefAtChQwcAWrRoQfXq1Zk8eTLDhw8nPj6eZcuW8dJLL+HoWLS+eyGEEEKI8sDNUYNKBUUZH1ouk0WAESNGoNFomDx5MpmZmTzxxBMsW7bMPLmzRqNh4cKFzJo1i379+uHi4kKXLl0YOHBgGUcuhBBCCFE61GoV7k5akjNKYQUXe6PVavOcHDqnwMBAFi9eXHpBCSGEEELYGU0RH/Uv9NrQ4vFy6dIlVCoVv//+e6HLrFu3Dm9v7xKLSQghhBDW0xdximJJFh9Dr7/+unkEsIODA9WrV+edd94hIyPDfEzVqlW5efMm9evXL/Zz51x1RwghhBAly1DEBS3KbTe0KJrIyEjWrl1LdnY2R48e5bXXXkOlUjFnzhzA+MxnQEAA8OisxZyVlSWDm4QQQjx2ivq/cWlZLEaKomBIT8vzR8lIz3dfcfxYm9A5OTkREBBA1apV6dGjBx06dGDXrl3m/Xl1Q3/77beEhobi7OxMu3btWL9+PSqVirt371rUvWPHDurWrYu7uzuRkZHcvHkTgKlTp7J+/Xq++eYbc8vm3r1784zPYDAwa9YsqlevjouLC40aNeKbb74x79fr9fTv39+8PywsjEWLFlnUYWrFnDFjBpUrVyYsLMyqaySEEEI8CgwGaVm0G0pGOuc7Ncl3f2wJnjt05zFULq42lT158iS//vorwcHB+R5z+fJlXnzxRUaMGMGbb77J8ePHGTt2bK7j0tLS+PDDD/n0009Rq9W88sorjB07lo0bNzJ27FhOnz5NUlISa9euBci1JKPJrFmz+Oyzz1i+fDmhoaHs27ePgQMHEhwcTNu2bTEYDFSpUoUvv/wSX19ffv31VwYMGEBgYCAvvfSSuZ7du3fj6elpkQgLIYQQjxPphhY2+e6773B3d0en05GZmYlareajjz7K9/i1a9cSFhbGvHnzAAgLC+PkyZPMmDHD4rjs7GyWL19OzZo1ARg6dCjvv/8+YJwf08XFhczMTHMXd14yMzOZOXMmP/zwAxEREQBUr16dPXv2sHLlStq2bYuDgwPTpk0zl6levTq//fYbmzZtskgW3dzcWLVqlXQ/CyGEeGwVsWFRksXipHJ2IXTnsVzbFUUhKSkJT0/PElsuT+XsYtXx7dq1Y9myZaSmprJgwQK0Wu1D19SOiooiPDzcYluzZs1yHefq6mpOFME4fVFsrHVtqlFRUaSlpdGxY0eL7VlZWTRu3Nj8eunSpaxZs4YrV66Qnp5OVlaWeUUfkyeffFISRSGEEI+10R1rMHdHtM3lJVksRiqVKs+uYEVRUGVlo3ZxtZu1od3c3KhVqxYAa9asoWHDhqxevZr+/fsXqV4HBweL1yqVyurnKVNSUgDYtm0bQUFBgPEaJicn4+fnB8AXX3zB2LFjmT9/PhEREXh4eDBv3jwOHjxoUZebm5utb0UIIYR4JIzuWINWtXzovvSITeUlWRSo1Wr+9a9/MXr0aHr37o2LS+5Wylq1avHjjz9abDt8+LDV53J0dESv1z/0mHr16uHk5MSVK1do06YNYEwWExMT8fLyAmD//v20bNmSwYMHm8tFR9v+V5MQQgjxqNKoVUTU8LG5vIyGFgC8+OKLaDQali5dmuf+fv36cebMGcaPH8+5c+fYtGkT69atA7CqtTQkJIQTJ05w9uxZ4uLiyM7OznWMh4cHY8eOZdSoUaxfv57o6GiOHTvGypUrWb9+PQChoaEcOXKEHTt2cO7cOSZNmmRT8iqEEEI8DorSsynJogCMyycOHTqUuXPnkpqammt/cHAwX375JV9//TUNGjRg2bJlTJw4ETBOw1NYb731FmFhYYSHh+Pv78/+/fvzPO6DDz5g0qRJzJo1i7p16/Lss8+yc+dOqlevDsDAgQPp1asX//jHP2jevDnx8fEWrYxCCCGEKB7SDf0YMrUIPujdd9/l3XffBYzP+pmeNTT9t1u3bnTv3t18/IwZM6hSpQrOzs6AcV7D119/3aLOHj16WDyz6O/vz86dOwuMUaVSMWLECEaMGGGOIWc3tJOTE2vXrjVPwWMya9asAt+nEEIIIQpPkkVRaB9//DHNmjXD19eX/fv3M2/ePIYOHVrWYQkhhBCiBEmyKArt/PnzzJgxg4SEBKpVq8aYMWOYMGFCWYclhBBCiBIkyaIotAULFrBw4cKyDkMIIYQQpUgGuAghhBBCiHxJslgMrJ10WtgX+fyEEEKI/EmyWASm1UrS0tLKOBJRFKbP78HVZ4QQQgghzywWiUajwdvb27z2satr3sv5KYpCVlYWGRkZdrPcnzXsIf6SiEFRFNLS0oiNjcXb2xuNRoNOpyuWuoUQQohHhSSLRRQQEABgThjzoigK6enpuLi4lNtksazjL8kYvL29zZ+jEEII8aga1i6EJXsuWV1OksUiUqlUBAYGUrFixTyXrgPQ6XT8/PPPtG7dGq22/F1ye4i/pGJwcHBAo9EUW31CCCGEvZrUJZROT/jTbeHPVpUrf5mLndJoNPkmHTqdDp1Oh7Ozc7lNFss6fnuIQQghhCjPVCoVQd7OVpeTAS5CCCGEEI8JB431j3JJsiiEEEII8ZjQaqxP/SRZFEIIIYR4TNjSsigPfxXANGFzamqqzXXo9XoyMzNJTU0tl4Mp7CH+0oqhpM5TXPUWpR5by1pbzh6+L4+C8nwd7SX28nzfsId7hq3lS6uMsFTYa5iVrUelywQKvyiFSpHlKx7q1q1bPPfcc2UdhhBCCCFEsdq2bRuVKlUq8DhJFgtgMBi4fft2vhNuCyGEEEKUJ6ZFKfz9/VGrC34iUZJFIYQQQgiRLxngIoQQQggh8iXJohBCCCGEyJcki0IIIYQQIl+SLAohhBBCiHxJsiiEEEIIIfIlyaIQQgghhMiXJItCCCGEECJfkiwKIUpM165d+c9//lPWYZRr4eHh7N27t6zDKNfK+zV8XH+Pbty4QXh4OGfPni3rUMq1I0eOEB4eTnJyss11SLJoo7Vr1/Lqq6/y9NNP07FjR8aMGcOlS5csjsnMzGTOnDk888wztG7dmnHjxhEfH29xTExMDCNGjKBVq1Z07NiRRYsWodPpSvGd2I9169YRHh7O/Pnzzdvs/RrGxsYyadIknnnmGVq1asU//vEP/vrrL/N+RVFYvnw5f//732nVqhWDBw/mypUrFnUkJiby3nvv0aZNG9q2bcv7779PWlpaqcRfVMeOHWPUqFFERkaW+/8hl4XC3EeEdfK6j9i7gu4j5VVB94fC3B8fd8WVaxSVJIs2OnbsGC+++CJr165l6dKl6HQ6hg4dSnp6uvmYf//73/z000/Mnj2blStXEhcXx7hx48z79Xo9I0aMIDs7mzVr1jB16lS2bt3KihUryuItlalTp07x9ddfExoaarHdnq9hUlIS/fv3R6vVsmjRIjZt2sSoUaPw9PQ0H7N+/Xq++OILJkyYwLp163B2dmbYsGFkZmaaj5k0aRIXLlxg6dKlLFy4kOPHjzNjxowSj784pKenExoayvjx48s6lHKpMPcRUXj53UfsWWHuI+VVQfeHwtwfH3fFkWsUC0UUi4SEBKVp06bK0aNHFUVRlOTkZKV58+bKrl27zMdcvHhRadq0qXLixAlFURTll19+UZ566iklLi7OfMyXX36pPP3000pWVlbpvoEylJqaqvTs2VM5cOCA8tZbbykffvihoij2fw0XL16s9O/fP9/9BoNB6dSpk7JhwwbztuTkZCUiIkLZvn27oiiKcuHCBaVp06bKqVOnzMfs379fCQ8PV2JjY0su+BLQtGlTZc+ePRbbunTpomzcuNH8esuWLUqbNm2UgwcPlnJ05cOD9xFFyX1dly9frnTq1Ek5d+5cGURov/K7jyiKfV/Dgu4jivJo/B49+BkU5v54/fp1pWnTpsqZM2cURVEUnU6nTJ06VenVq5dy8+bNUo3fXtiSaxw+fFhp2rSpkpSUpCiKoqSnpyvDhg1T+vXrZ95WEGlZLCYpKSkA5r8GT58+jU6no3nz5uZjQkJCCAgI4MSJEwD8+eef1KpVC19fX/MxERERpKamEh0dXYrRl605c+bQqlUri2sF9n8Nf/rpJ+rWrcv48ePp2LEjvXv3ZsuWLeb9169fJz4+nmbNmpm3ubu7U79+ff78808ATpw4gYeHB/Xq1TMf06xZM9RqNSdPnizR+Evb+vXrWbJkCR999JHFNRH3PXgfyUlRFObOncu2bdtYtWpVuWo9Kw353UdyssdrWNB95EGPyu9RYe6POWVlZfHuu+9y7tw5Vq1aRUBAQGmGazdsyTVySk5OZvDgwRgMBj7++GM8PDwKdV5tMcT+2DMYDMyfP5+GDRtSq1YtAOLj43FwcMj1QVSoUMH8LEF8fDwVKlSw2G9Keor7eQN7tWPHDs6cOcOGDRty7bP3a3j9+nU2b95Mnz596NevH3/99RcffvghDg4OdOnSxXz+nIlsXvH7+PhY7NdqtXh6ej5S34HFixfzv//9j5UrV1KzZs2yDscu5XUfMdHpdEyaNImzZ8+yatUqKlasWEZR2qeH3UdM7PUaFnQfyelR+j0qzP3RJD09nZEjR5KVlcWKFStwd3cvtTjtia25hkl8fDwTJkygatWqzJgxAwcHh0KfW5LFYjBnzhyio6NZtWpVWYdSrsTExDB//nyWLl2Kk5NTWYdjNYPBQL169RgyZAgAderUITo6ms2bN+e6yT/ONm7cSHp6Ohs2bKBKlSplHY7deth9ZMGCBTg4OLBu3Tq8vb1LPzg7Vtj7iL1ew8LeRx7n36OJEydSsWJFli1bhrOzc1mHU2aKmmsMGTKEevXqMWvWLDQajVVlpRu6iObMmcMvv/zC8uXLqVSpknm7r68v2dnZuYaqJyQkmP+S8vX1JSEhwWJ/fn9tPYrOnDlDQkICr7zyCs2bN6d58+YcO3aML774gubNm1OhQgW7voZ+fn5Ur17dYlv16tWJiYmxOP+Df909GP+dO3cs9ut0OpKSkh6Z70CjRo3Q6/X88MMPZR2K3crvPmLSrFkzbt++zW+//VYG0dm3gu4jer0esN9rWNB9xORR+z0qzP3RpGXLlpw/fz7P7unHRVFyDZNWrVpx/PhxLl68aPX5JVm0kaIozJkzh71797Js2TKCgoIs9tetWxetVsuhQ4fM2y5dukRMTAwNGjQA4MknnyQqKsoi2Tl48CBubm7UqFGjdN5IGXrqqaf44osv2Lhxo/mnXr16REZGmv9tz9ewYcOGXL582WLb5cuXCQwMBCAoKAhfX18OHz5s3p+SksLJkyd58sknAWjQoAHJycmcPn3afMyRI0cwGAzUr1+/ROMvLU888QSLFy9m7dq1fPrpp2Udjl0p6D5i0qZNG6ZPn8706dPZsWNHKUdp3wq6j5haUOz1GhZ0HzF51H6PCnN/NHnhhRcYOnQoo0eP5ujRo6UdapkqjlzDZNiwYXTp0oW3336bCxcuWBWHdEPbaM6cOWzfvp358+fj6upKXFwcYHxA19nZGXd3d7p3786CBQvw8vLCzc2NefPm0aBBA/MvQosWLahevTqTJ09m+PDhxMfHs2zZMl566SUcHR3L8u2VCjc3t1zPZjk7O+Pt7W3ebs/XsHfv3rzxxhusWbOGjh07curUKbZs2cLEiRMBUKlU/POf/2T16tVUrVqVoKAgli1bhr+/P23btgWMLQgtW7Zk+vTpTJgwAZ1Ox9y5c+nUqRP+/v4lGn9xSEtL4+rVq+bX169f5+zZs3h5eVk8gN6wYUMWLVrE8OHD0Wg09O7duyzCtTsF3UdyateuHdOmTWPKlCloNBo6dOhQFiHbncLcR0zs8RoWdB/Jqbz9HhV0fyjo/pjTyy+/jMFgYNSoUSxevJhGjRqV3hspQ8WRa+Q0cuRI9Ho9b7/9NitWrCAkJKRQcUiyaKOvvvoKgIEDB1psnzJlCl27dgVg9OjRqNVq3nnnHbKysoiIiLCYb0qj0bBw4UJmzZpFv379cHFxoUuXLrnqfJzZ8zV84okn+PDDD/noo49YtWoVlStXZsyYMTz77LPmY1577TUyMjKYOXMmycnJNGrUiMWLF1s8W/XBBx8wd+5cBg8ejEqlon379sU/R1YJ+euvvxg0aJD59YIFCwDo0qULU6dOtTi2UaNGLFy4kBEjRqBWq3n55ZdLM1S7VJj7SE4dOnRAURSmTJmCWq2mffv2pRLno8TermFh7iM5laffo4LuD4W5P+bUu3dvDAYDI0aMYPHixTRs2LBU3kdZKo5c40FjxozBYDAwaNAgVqxYQXBwcIFxqBRFUYrwPoQQQgghxCNMnlkUQgghhBD5kmRRCCGEEELkS5JFIYQQQgiRL0kWhRBCCCFEviRZFEIIIYQQ+ZJkUQghhBBC5EuSRSGEEEIIkS9JFoUQQgghRL4kWRRCiEfc1KlTGTNmTFmHIYQop2QFFyFEuTN16lS+++67XNu3bNlC1apVyyAi+5aSkoKiKHh4eNhcx4oVK9i3bx//+c9/LLbfuHGDbt26sXHjRsLCwooaqhDCDsna0EKIcqlly5ZMnjzZYpuPj0+u47Kzs3FwcCitsOySu7t7WYcghCjHJFkUQpRLDg4O+Pn55do+YMAAatasiVar5X//+x+1atVixYoVREVFsXjxYo4fP46LiwvNmzdnzJgxeHt7A5Cens6sWbPYs2cPrq6u9O3bl59++omwsDBzF254eDgffvghbdu2NZ+vbdu2jBkzhq5duwIQExPDwoULOXDgAGq1mkaNGjF27FgqV64MGFtFk5OTadSoEZ999hk6nY5OnToxZswYtFrjLTkrK4vly5ezY8cOEhISqFSpEq+//jrdu3enZ8+ePP/88/Tt29ccw9mzZ+nTp0++Laumc86fP998jUJDQ3F0dOSbb77BwcGBXr16MXDgwCJ/Lvm1+i5fvpzw8PAi1y+EKH3yzKIQ4pGzbds2tFotq1evZsKECSQnJ/P2228TFhbGp59+yuLFi0lISODdd981l1m0aBHHjh1j/vz5LF26lKNHj3L27FmrzqvT6Rg2bBiurq6sWrWK1atX4+rqyrBhw8jOzjYfd+TIEa5du8aKFSuYOnUqW7duZevWreb9U6ZMYceOHYwdO5Yvv/ySf/3rX7i6uqJSqejWrZvFsQBbt26lSZMmVnXBf/fdd7i4uLBu3TqGDRvGqlWrOHDggFXvNy9jx45l+/bt5p9//vOfVKhQgZCQkCLXLYQoG9KyKIQol3755Rdat25tft2yZUvmzJkDQNWqVRkxYoR536pVqwgLC2PIkCHmbZMnT+a5557j8uXL+Pv788033/DBBx/QrFkzwNhC1rlzZ6ti2rlzJwaDgUmTJqFSqQBj4te2bVuOHj1KixYtAPD09OSdd95Bo9EQEhLC3/72Nw4dOkTPnj25fPkyu3btYunSpTRv3hyAKlWqmM/RtWtXVqxYwcmTJ6lfvz46nY7t27czcuRIq2INDQ1lwIABAFSrVo1NmzZx+PBhc4x5iYqKsrjmAA8+9u7u7m7u9v7xxx/5+uuvWbp0aZ6twEKI8kGSRSFEudS0aVMmTJhgfu3i4mL+d926dS2OPX/+PEeOHMmV6ABcu3aNzMxMsrOzqV+/vnm7l5cXwcHBVsV0/vx5rl27xtNPP22xPSsri2vXrplf16hRA41GY37t5+dHVFQUAOfOnUOj0dC0adM8z+Hv70+rVq349ttvqV+/Pj/99BPZ2dl06NDBqlhDQ0MtXvv5+ZGQkPDQMsHBwfz73/+22BYbG5tn9/WZM2eYPHky48aNo1GjRlbFJoSwL5IsCiHKJRcXl3y7XXMmjmB8HrF169YMHz4817F+fn5cvXq1UOdUqVS5WtJ0Op3532lpadSpU4fp06fnKptz8I3p2cSc9RoMBgCcnJwKjKNHjx5MnjyZ0aNHs3XrVjp27Iizs3Oh3sPDYihocgwHB4dc1zxn0msSFxfHmDFj6NGjBz169LAqLiGE/ZFkUQjxyAsLC+PHH38kMDAwV5IExm5erVbLyZMnCQgIACApKYkrV65YtPD5+PgQFxdnfn3lyhUyMjLMr+vUqcOuXbvw8fGxeQRyrVq1MBgMHD161NwN/aBWrVrh4uLCV199xa+//sonn3xi07lKQmZmJmPGjCE4OJhRo0aVdThCiGIgA1yEEI+8l156iaSkJCZOnMipU6e4du0av/32G9OmTUOv1+Pq6kr37t1ZtGgRhw8fJioqiqlTp6JWW94iw8PD2bRpE2fOnOGvv/5i1qxZFsnns88+i7e3N2PGjOH48eNcv36dI0eOMG/ePG7dulWoWCtXrkyXLl14//332bt3r7mOXbt2mY/RaDR06dKFpUuXUq1aNRo0aFA8F6oYzJw5k1u3bjFu3Dju3LlDXFwccXFxFgN8hBDli7QsCiEeef7+/qxevZolS5YwdOhQsrKyCAwMJCIiwpwQjhgxgrS0NEaNGoWbmxt9+vQhJSXFop5Ro0Yxbdo03nrrLfz9/RkzZgynT58273d2dmblypUsWbKEcePGkZaWhr+/P82aNcPNza3Q8b777rssXbqU2bNnk5iYSEBAAP369bM4pnv37qxdu9Y8ZY+9OHbsGHFxcbz44osW22XqHCHKL1nBRQgh8jFgwACLeRbtyfHjx3n77bfZtm0bvr6+ZR2OEOIRJi2LQghRjmRlZXHnzh1WrlxJhw4dJFEUQpQ4eWZRCCHKkR07dtC1a1eSk5PzHN0thBDFTbqhhRBCCCFEvqRlUQghhBBC5EuSRSGEEEIIkS9JFoUQQgghRL4kWRRCCCGEEPmSZFEIIYQQQuRLkkUhhBBCCJEvSRaFEEIIIUS+JFkUQgghhBD5+n80sDT0iFmdXAAAAABJRU5ErkJggg==",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe add an indication for 0° azimuth in the plots for orientation.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sikersten and I came to the conclusion that we want the code to be as simple as possible. I feel like adding an indication for that would go against this. But it might also help with the context.

"source": [
"In the plot, the selected direction is marked with a red dot.\n",
"\n",
"With an HRIR selected, we can plot it in the time and frequency domain."
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"With an HRIR selected, we can plot it in the time and frequency domain."
"With an HRIR selected, we can plot it in the time and frequency domain. As expected, time differences and frequency dependent level differences can be seen in the plots"

"The binaural synthesis is done by convolving a mono, anechoic signal with an HRIR.\n",
"The following code shows how to do this with pyfar.\n",
"\n",
"First,the audio signal is loaded and plotted in the time domain.\n",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"First,the audio signal is loaded and plotted in the time domain.\n",
"First, the audio signal is loaded and plotted in the time domain.\n",

@mberz mberz mentioned this pull request Mar 7, 2024
29 tasks
Copy link
Member

@sikersten sikersten left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would have a few suggestions to slightly shorten the code. Otherwise approved :)

docs/gallery/static/binaural_synthesis.ipynb Outdated Show resolved Hide resolved
docs/gallery/static/binaural_synthesis.ipynb Outdated Show resolved Hide resolved
docs/gallery/static/binaural_synthesis.ipynb Outdated Show resolved Hide resolved
@pingelit
Copy link
Member Author

pingelit commented Mar 8, 2024

Regarding the plots with the source positions, sikersten and I decided to remove the styling and rather wait for the fix in pyfar.

Copy link
Member

@sikersten sikersten left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! Minor comments left:

  • pyplot and sofar imports are obsolete
  • Formulation "level diffrences can be seen in the the plots." could be shortened to "are visible."
  • binaural_audio = pf.dsp.normalize(binaural_audio) is obsolete

@mberz mberz merged commit f391f6d into main Mar 14, 2024
5 of 6 checks passed
@f-brinkmann f-brinkmann deleted the feature/binaural-synthesis branch March 15, 2024 17:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants