{ "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.8.10" } }, "nbformat": 4, "nbformat_minor": 2, "cells": [ { "cell_type": "markdown", "metadata": { "lang": "en" }, "source": [ "# Isometric transformations\n", "\n", "In the world of vector (or matrix) calculus, we speak of orthogonal automophism rather than of isometric transformation as we\n", "will see it at the end." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "%matplotlib inline\n", "%config InlineBackend.figure_format = 'retina'\n", "\n", "np.set_printoptions(precision=3, linewidth=150, suppress=True)\n", "plt.style.use(['seaborn-whitegrid','data/cours.mplstyle'])" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 0. 0.5 0.866 1. 0.866 0.5 0. -0.5 -1. -1. -1. -0.5 0. ]\n", " [-1. -0.866 -0.5 0. 0.5 0.866 1. 1. 1. 0.5 0. -0.5 -1. ]]\n" ] } ], "source": [ "angle = np.array([θ for θ in np.linspace(-np.pi/2,np.pi/2,7)])\n", "shape1 = np.concatenate([np.array([np.cos(angle), np.sin(angle)]), \\\n", " np.array([[-0.5, -1, -1, -1], [1, 1, 0.5, 0]]), \\\n", " np.array([[-0.5, 0], [-0.5, -1]])], axis=1)\n", "print(shape1)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "image/png": { "height": 300, "width": 606 } }, "output_type": "display_data" } ], "source": [ "plt.plot(shape1[0], shape1[1], '-or')\n", "plt.axis('equal');" ] }, { "cell_type": "markdown", "metadata": { "lang": "en" }, "source": [ "## Rotation matrix centered at (0,0)\n", "\n", "R=\n", "$\n", "\\begin{bmatrix}\n", "cos(θ) & -sin(θ) \\\\\n", "sin(θ) & cos(θ) \\\\\n", "\\end{bmatrix}\n", "$\n", "\n", "### Properties\n", "\n", "* Performs a rotation with center (0,0) and angle θ\n", "* Determinant = 1\n", "* orthogonal matrix $\\rightarrow$ no shape deformation or enlargement (orthogonal automorphism)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 0.707 -0.707]\n", " [ 0.707 0.707]]\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABLwAAAJZCAYAAACjhiwxAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABYlAAAWJQFJUiTwAAB7t0lEQVR4nO3deXxU1f3/8TfZSAKBCI3s0SiLISyCIosUrDUQUNRCW1GjLBJDv35/IgguCCgqQlBACspWRNAqUFzYihCBQhBQJCIVEPkqAgkVYzSSjazz++M2CUMWJsmd3Flez8eDB5lz7j3zCXPmJvPm3nPr2Ww2mwAAAAAAAAAP4WN1AQAAAAAAAICZCLwAAAAAAADgUQi8AAAAAAAA4FEIvAAAAAAAAOBRCLwAAAAAAADgUQi8AAAAAAAA4FEIvAAAAAAAAOBRCLwAAAAAAADgUQi8AAAAAAAA4FEIvAAAAAAAAOBRCLwAAAAAAADgUQi8AAAAAAAA4FH8rC7AExw8eNDqEgAAAAAAADzSDTfcUO19OMMLAAAAAAAAHoUzvExUk8TRTMeOHZMkRUZGWloH3B9zCWZiPsFMzCeYhbkEMzGfYCbmE8ziCXOpNlfUcYYXAAAAAAAAPAqBFwAAAAAAADwKgRcAAAAAAAA8CoEXAAAAAAAAPAqBFwAAAAAAADyKSwReNptNq1atUpcuXdShQwd9+umnNRrn1KlTmjx5sn73u9+pU6dO6tmzp8aOHav9+/dXuk9eXp6WL1+uoUOHqlu3brr++uv1hz/8QcuXL1deXl5NvyUAAAAAAABYxM/qAn766Sc9/fTT2r17d63GOXjwoMaMGaOcnBz16NFD/fr107lz57Rnzx7t3LlTU6dOVWxsrN0+OTk5euihh5ScnKwWLVooJiZGkpSUlKTZs2drx44dWr58uQIDA2tVGwAAAAAAAOqOpYHX3r17NXHiRKWnpys2Nlbbtm3Tjz/+WO1xcnNzNWnSJOXk5CghIUF33313aV9ycrJGjBihWbNmqWfPnmrXrl1p38KFC5WcnKz+/ftrwYIFql+/viQpKytLY8aM0eeff67XX39dEyZMqPX3CgAAAAAAgLph6SWN77//vgoKCrRw4UJNnTpV/v7+NRpny5YtSk1NVd++fe3CLknq3r27hg8froKCAq1cubK0PScnR++++678/Pw0ffr00rBLkho2bKhnn31WkvT222/rwoULNaoLAAAAAAAAdc/SwKtr16764IMPFB0dXatxtm3bJkmllyReauDAgZKkxMTE0rY9e/YoJydHXbp0UYsWLcrtExkZqTZt2ig7O1uffPJJreoDAAAAAABA3bE08HrggQfUunXrWo9z9OhRSVLHjh0r7I+KipIkZWRkKCUlRZJ05MgRu76q9isZHwAAAAAAAK7PJe7SWBv5+fk6d+6cJFV4ppYkBQUFKTQ0VJJxJ0dJpcFX8+bNKx27ZLzvv//epGoBAAAAAADgbJbfpbG2srKySr9u0KBBpdsFBwcrIyND2dnZdvtdbh9JpftczrFjxxzazllyc3Ndog64P+YSzMR8gpmYTzALcwlmYj7BTMwnmMXb55Lbn+GVl5dX+nVVi94HBARIKnvBSxaid2QfFq0HAAAAAABwH25/hldgYGDp1wUFBXZ3W7xYfn6+JOPyxov/LigoqHTskn0ufo6qREZGOrSds5SktlbXAffHXIKZmE8wE/OpvMJCKTFROn5cysqSGjaUOnSQBgyQfH2trs51MZccxxy7POYTzMR8glk8YS4dPHiwxvu6feB18SWJ2dnZlQZeJZcwhoSE2O1X1eWKl+4DAADgKtLSpKVLpSVLpDNnyveHh0vx8VJcnBQWVvf1wf0xxwAA7sztL2kMCAhQq1atJEmpqakVbpOZmanz589LkiIiIuz+Pnv2bKVjl4xXsi0AAIAr2LtXioyUpkypOIiQpNOnpWeeMbbbt69u64P7Y44BANyd2wdektSpUydJ0uHDhyvsP3TokCQpLCys9K6Ml9tHkr788ktJUpcuXcwqFQAAoFb27pV+/3spPd2x7dPTpVtvJZCA45hjAABP4BGBV0xMjCRpy5YtFfZv2rRJknT77beXtvXp00eNGjXSkSNHdPr06XL77N+/X2lpaWrSpIl69erlhKoBAACqJy1NuvNOqbr307lwQRoyxNgfqApzDADgKdwq8EpMTFRMTIzi4uLs2qOjoxUREaEDBw5ozZo1dn27du3Shg0bFBwcrFGjRpW2BwQEaOTIkSouLtbUqVPt7sSYkZGhGTNmSJLi4+Pl5+f2S50BAAAPsHSp42fdXCo9XVq2zNx64HmYYwAAT2FZkpORkaHXXnutXJsk/f3vf9fHH39c2h4bG6urrrpKmZmZOnnyZLmx/P39NXfuXI0aNUrTpk3Txo0b1bZtW6WkpGjv3r3y8fHRzJkzSy9nLBEXF6cvvvhCSUlJiomJUZ8+fVRUVKTdu3fr559/1sCBA/XAAw+Y/80DAABUU2GhsXh4bbz6qtS5M3fWk6TTp40bGFXwq6XXKiqS5s+v3RiLF0tPPskcAwBYz7LAKysrS6tWraqwb+vWrXaPb7vtNl111VVVjtexY0etX79eixYtUlJSkg4dOqRGjRopOjpaY8eOrfA2nAEBAVq8eLFWr16tDz74oPSSyPbt22vChAkaNmyYfHzc6iQ4AADgoRITK1883FEll6tBksKtLsAjnTkjbdsmDRpkdSUAAG9nWeDVunVrHT9+vFr7DB06VEOHDq20v3nz5po+fXq1xvTz81NsbKxiY2OrtR8AAEBdquavTYBlvvmGwAsAYD1OXwIAAHADWVlWVwA4JjPT6goAALDwDC8AAAA4rkEDc8aJjJSuvtqcsdxZ1n8TxIYNG1pcies4eVL6+uvajxMSUvsxAACoLQIvAAAAF3fokPTGG+aMNWcOl5tJ0rFjxoJoFa3z6q22bJEGD679OM2a1X4MAABqi0saAQAAXFRamhQfL91wg/TVV7UfLzxcGjCg9uPAM0VHS23a1H6csWOlv/5VKiio/VgAANQUgRcAAICLyc+X5s2T2rWTli6ViovNGTc+XvL1NWcseB4/P2OO1Navv0rjxkldu0qX3HwdAIA6Q+AFAADgQrZskbp0kSZMMIKDS/n712zcpk2luLja1QbP9/DDxlwxw7FjUkyMNGSIdOKEOWMCAOAoAi8AAAAX8PXXxvpJgwdLx4+X72/XTtq4UfrXv6TAwOqNHRho7BsWZkqp8GBhYcZcqckc+5//kSq6B8CmTVJUlDRpUsUhLgAAzkDgBQAAYKGMDONsrs6djbO7LtWokfTKK8YaXnfcIfXpI23f7vhZOE2bSjt2SL17m1o2PFjv3jWbY6+9ZpzJNXq0VK+e/TYFBcY8bt9eWr5cKioyv24AAC5G4AUAAGCBoiJjfa527Yz1ugoL7fvr1ZPGjJG++UZ6/HEpIKCsr08f43KxGTMqX2Q8PFx66SVjO8IuVFdN51jz5kag9dlnxhiX+vFHY17fdJO0Z4/z6gcAwM/qAgAAALzNv/4lPfaY9OWXFff/9rfS/PlSt26VjxEWJk2eLD35pLRtmxGMZWZKISHGWTQDBrBAPWqnNnPsxhuNQGv1aumJJ6SUFPv+5GRjnt9zjzR7thGeAQBgJgIvAACAOvL998Y6RuvWVdwfHi69/LL0pz+VvySsMr6+0qBBxh/AGWo6x+rVk+69V7rzTmNeJyRIFy7Yb7NmjbR+vRGqPfGEFBxsXt0AAO/GJY0AAABOlpUlTZkiXXddxWFXUJA0fbpxadif/+x42AW4gwYNpOeeM27McM895fsvXDDmf4cO0rvvSjZbnZcIAPBABF4AAABOUlwsvf228UF+xgwpL6/8NvfdZ9yVcdo0zm6BZ7vqKuMSx927K75cNyXFeD/89rfSwYN1Xx8AwLMQeAEAADjBZ59JN98sPfCAdPZs+f4bbjDWOPr73ytfFBzwRL/9rXTggLRsmXTlleX7P/lE6tFDeugh6Ycf6r4+AIBnIPACAAAw0dmz0siRUs+e0v795fubNZPeeKMsEAO8ka9v2V1IJ06U/P3t+202433Svr2xqH1FZ0cCAFAVAi8AAAATXLggzZxpfEBfubJ8f0CAsTD3N99Io0ZJPvwWBqhxY2NB+6++ku64o3x/ZqbxvomKkjZsYH0vAIDj+FULAACgFmw26YMPpI4dpcmTpezs8tvcdZd05Ig0a5bUqFHd1wi4uvbtpY0bpY8+kiIjy/d/+63xPho40HgvAQBwOQReAAAANfTvf0u33SYNHSqdPFm+PypKSkyUPvxQatu2zssD3M7AgdKXX0rz50uhoeX7ExOlrl2l//f/pJ9/rvPyAABuhMALAACgmn76Sfqf/5Guv17asaN8/xVXSAsXSocOGYEYAMf5+0uPPiqdOCH95S/lL/8tKjLeX+3aSa+9JhUWWlMnAMC1EXgBAAA4qKBA+utfjQ/aixZJxcX2/b6+0v/+r/FB/ZFHJD8/a+oEPMFvfiO9/rr0xRfS735Xvv/nn4332/XXSx9/XOflAQBcHIEXAACAA7ZuNS6lGjdOysgo33/bbcalWAsWSE2b1nl5gMfq0kXavl16/30pIqJ8/5EjUnS0dPfdxlpfAABIBF4AAABV+uYbacgQKSZGOnasfP+110rr10vbthlrdgEwX7160h/+IB09Kr30ktSgQflt1q83bh7x1FPG3R0BAN6NwAsAAKACv/4qTZokdeokbdpUvr9hQykhwTi75M47jQ/kAJwrMFB6+mkjiB4xonx/fr7xvmzfXnrzzfKXHQMAvAeBFwAAwEWKiqTly40PzK+8YqzbdbF69aTRo411up54Qqpf35o6AW/WsqURaH36qdSzZ/n+H36QRo0y+vburfPyAAAugMALAADgv5KSpB49pDFjpB9/LN/fp4/02WdGINa8ed3XB8DeTTcZgdZbbxkh2KU+/1y6+Wbp/vullJS6rw8AYB0CLwAA4PVOn5aGD5f69TPuCHep1q2ld96R9uyRbryx7usDUDkfHyk2Vjp+XJoypeKzLt95R+rQQXrhBSk3t+5rBADUPQIvAADgtbKzpWefNT4Ir1lTvj8w0Oj/+mvp3ntZpwtwZQ0bGoHWsWPSH/9Yvj8nR5o2TbruOmntWslmq/saAQB1h8ALAAB4HZtNevdd44Pv889LFy6U3+aee4wzRp57ruI7wgFwTRER0j/+If3rX1LXruX7T5823t/9+1d8RicAwDMQeAEAAK9y8KD0299K991X8Zo+3bpJu3dLq1dL4eF1Xx8Ac/Tvb7zflyyRfvOb8v1JSdINN0gPP1zxmn0AAPdG4AUAALzCDz8Yd1fs0UP65JPy/VdeKf3tb9KBA0YgBsD9+foagdaJE9L48ZKfn32/zSYtWya1ayfNmSPl51tTJwDAfAReAADAo+XlSbNnS+3bSytWlF+3x99fmjhR+uYb6aGHjA/IADxLaKg0d670739LgwaV7z9/3jgOdOokbd7M+l4A4AkIvAAAgEey2aT166WoKOnJJ6XMzPLbDBkiHTkivfyy1Lhx3dcIoG5dd530z38aoVaHDuX7T5yQ7rhDGjzYWPweAOC+CLwAAIDHOXJEGjBAuvtu6dtvy/dHRkoffSRt2GBcygTAuwweLB0+bJz1VVHY/dFHUufO0mOPSb/8UuflAQBMQOAFAAA8xs8/S//v/xl3Zvv44/L9oaHS/PnSl19KAwfWeXkAXEhAgLGu1zffGOt81atn319UZBwv2rWTFi82HgMA3AeBFwAAcHuFhdJrrxkfTBcuLP/B1MdH+p//MS5XevRRY90uAJCMG1YsWSIlJxt3drxUerr0l79I3btLO3fWfX0AgJoh8AIAAG7t44+l66+X/vd/jTO8LnXrrdKhQ0Yg9pvf1HV1ANzF9dcbgdY//iFddVX5/sOHjePJsGHSyZN1Xh4AoJoIvAAAgFv6v/8z1uiKjjbW7LpURIT0wQdGINa5c52XB8AN1asn/fGPxoL1L7wgBQeX3+b99411AJ95RsrKqvsaAQCOIfACAABuJTvbR089Zdx9cf368v0NGkgzZ0pHjxqB2KXr8gDA5QQFSVOmGOt7xcaW78/Lk156SWrfXlq1SiourvsaAQBVI/ACAABuobhYev/9xoqJuVYJCVJ+fvltRowwPqA+9ZQUGFj3NQLwLK1aSW+9Je3dK/XoUb7/P/8xjjv33nu1vvySgw4AuBICLwAA4PL27pVuukmaMqWl0tP9yvX36iV9+qn05ptSy5Z1Xx8Az9a7t7R/v3GMad68fP+//x2ke++N0IMPSqmpdV4eAKACBF4AAMBlpaRI998v3XyzdPBg+f6WLaW335Y++cQIxADAWXx8ys4iffppKSCg/DZvvSV16GBc7njhQt3XCAAoQ+AFAABcTk6O9PzzxgfHd94p31+/vrG+zvHjRiDmw280AOpISIgRaB07Jv3hD+X7s7ONBe0jI6X33pNstrqvEQBA4AUAAFyIzSatXWt8UHz2WSP4utTAgef19dfGHdQaNqz7GgFAkq65xrhj4/btUrt25U/n+v57446Pt94qffll3dcHAN6OwAsAALiEL76Q+veX7rlHOn26fH/XrtLKlac0b16qrr66zssDgArdeqv03nsnNW3af9SkSfn+f/1L6t5dGjtWSkur8/IAwGsReAEAAEv9+KMUFyfdcIOUlFS+/ze/kZYsMdbw6tGjglO+AMBifn7S8OEZOnFCevRRydfXvr+42DiOtWsnvfqqVFBgSZkA4FUIvAAAgCXy86U5c4wPgH/7W/l1bvz8pPHjpRMnpIcfLv8BEgBcTZMm0vz50uHD0oAB5ft//dU4rnXpIn30Ud3XBwDehMALAADUKZtN2rRJ6tRJmjhROn++/DaDB0tffSXNnSuFhtZ5iQBQKx07GoHWxo1S27bl+7/+Who0SLr9duPmGwAA8xF4AQCAOnPsmPEhb8gQ48ytS3XoIG3ebPzp0KHu6wMAs9SrJ91xhxHev/yycXfHS/3zn0b4//jjUkZGnZcIAB6NwAsAADjdL79Ijz0mde4sbd1avr9xY2nePOnf/zbO7gIAT1G/vnE264kT0kMPGUHYxQoLjbNZ27eXli6VioqsqRMAPA2BFwAAcJrCQmnRImOdrvnzy3+Q8/GR4uOND4KPPSb5+1tSJgA4XbNmxnqFn38u9e1bvj8tzTge3nCDtGtX3dcHAJ6GwAsAADjFzp1S9+7S//yPlJ5evr9/fyk5WVq8WAoLq/v6AMAK3btLu3dLq1dLbdqU7//yS+mWW6Q//1k6darOywMAj0HgBQAATPXdd9KwYdKttxqXKF7q6quldeuMQKxr1zovDwAsV6+edM89xuL1zz0nBQWV3+Yf/5Cuu06aNk3Kzq7zEgHA7RF4AQAAU2RlSc88Y9yd7P33y/cHB0svvigdPWoEYpeuYwMA3iY4WHr2WeNOjffeW77/wgXphReMm3j8/e/GXW4BAI4h8AIAALVSXCytWmUsuPzSS1JeXvltHnhA+uYbIxCr6EwGAPBmbdpI77wjJSUZlzxeKjVVio2Vbr5ZOnCg7usDAHdE4AUAAGps/36pd29pxAjpP/8p33/TTdK+fUYg1qpV3dcHAO6kb18j0Fq+3Fjk/lL79hnH1VGjKj7mAgDK+FldwKlTp7RkyRLt27dPaWlpatCggbp166aRI0eqV69eDo3xwAMP6LPPPnNo2+3bt6t169aSpFtvvVWpqalVbt+1a1etXbvWobEBAPAWqanS009Lb71VcX+LFtKsWcYZCT789xoAOMzHRxo9WvrjH6UZM6R586SCAvtt3nzTWAvxmWeMO9wGBlpRKQC4NksDr4MHD2rMmDHKyclRjx491K9fP507d0579uzRzp07NXXqVMXGxl52nIEDB+q6666rtL+goECrV6+Wv7+/GjZsWK5/6NChFbZLUiv+OxoAgFK5udLcucalizk55fvr15cef9wIwyr50QoAcECjRlJCgjRmjDRxorRhg31/VpZxrF22TJozR7rrLtZGBICLWRZ45ebmatKkScrJyVFCQoLuvvvu0r7k5GSNGDFCs2bNUs+ePdWuXbsqx7pcKLZ48WLZbDaNHj1aoaGh5fofeeSR0rO+AABAeTabsRD9xInS999XvM3QodLLL0vXXFOnpQGAR2vXTlq/XkpMNM7mOnrUvv+776Q//EH6/e+lV1+VOnWyokoAcD2WXWSwZcsWpaamqm/fvnZhlyR1795dw4cPV0FBgVauXFmr50lJSdHixYvVsmVLjR07tlZjAQDgjb78Uvrd74zLayoKuzp3lnbskN57j7ALAJwlOto4Hi9YIF1xRfn+7dulrl2lRx6R0tPrvj4AcDWWBV7btm2TJMXExFTYP3DgQElSYmJirZ7nxRdfVG5urp566ikFcVsoAAAclpYmjR1r3DFs167y/U2bSosWScnJRiAGAHAuPz/pf/9XOnHCCLZ8fe37i4ul1183zgpbsKD82l8A4E0sC7yO/vdc3I4dO1bYHxUVJUnKyMhQSkpKjZ4jKSlJO3fu1E033VQaoAEAgKoVFBiXxbRrJy1ZYnyAupivrzRunPGBa+xY4wMYAKDuNG0qLVwoHTpkXMp4qV9+kR59VLr+euNSSADwRpb8ipqfn69z585Jklq0aFHhNkFBQQoNDVVGRoZOnTpV7TW2bDab5s6dK0maMGHCZbf99NNPlZycrMzMTIWGhuqmm27S9ddfX63nBADA3W3ZIk2YIH39dcX9Awcai9ZX8v9VAIA61KmTEWht2GAcu7/7zr7/6FFpwABpyBBjYfvLLI0MAB7FksArKyur9OsGDRpUul1wcLAyMjKUnZ1d7efYsWOHjh49qj59+qhbt25Vbjty5MgKzyLr0aOH5syZo2bNmjn0nMeOHat2nWbKzc11iTrg/phLMBPzyT2cPBmghIRm2r274lsrXnVVnp566kf165elevUkq15O5hPMwlyCmayeT+3bS++/X0+rVjXR4sVNlZNjf63jxo3Sli02Pfjgzxo79ic1bFhcyUhwBVbPJ3gOb59LllzSmJeXV/q1v79/pdsFBARIKnuRquONN96QZIRZl9OyZUutWrVKX3zxhQ4ePKhXX31VLVq00IEDBxQXF6cCLn4HAHio8+d9lJBwpe6665oKw66GDYs0adI5rV//nfr3z+KW9wDgogICbBozJl1btnynP/who1x/YWE9vfFGUw0adK3ee6+xiorqvkYAqEuWnOEVGBhY+nVBQYHq169f4Xb5+fmSVO3F5k+cOKHPP/9cLVq0UL9+/SrdbtGiRSosLFRkZKR8fMqyv0GDBikqKkpDhgzR8ePHtXnz5nJ3kqxIZGRkteo0W0lqa3UdcH/MJZiJ+eSaioqk5culZ56RfvqpfH+9etKYMdKLL/rqyiubSXLsbGdnYz7BLMwlmMmV5lNkpNSvn3TggLHe4r599v3p6X6aOrWlPvigpebPl/r2taZOVM6V5hPcmyfMpYMHD9Z4X0vO8Lr4MsaqLlcsufQxJCSkWuN/+OGHkqTBgwerXhX/Fd2hQwdFRUXZhV0lwsPDNXjwYEnSnj17qvX8AAC4sl27pBtukOLjKw67fvtb6eBBaelS6cor674+AEDt9eghffKJ9Pe/S61ale9PTjaO9/feK50+Xff1AYCzWRJ4BQQEqNV/j7qpqakVbpOZmanz589LkiIiIqo1fuJ/b0Vyyy231LxIqXSh/J9//rlW4wAA4Aq+/17685+lW26RvvyyfH94uLRmjRGIXWb5SwCAG6hXT7rvPun4cWnqVOmiC21KrV4tXXed9NxzUk5OnZcIAE5j2Y3EO3XqpNTUVB0+fFidO3cu13/o0CFJUlhYmJo3b+7wuGfOnNGpU6cUGBjo0F0Wi4uLKzzDS5J++eUXSVLjxo0dfn4AAJypsNC4I9fx41JWltSwodShg3EXLl/fivfJzpZmzZJeeUW6cKF8f1CQ9PTT0sSJxtcAAM/SoIH0/PPSQw9JTzwhrV1r35+bK02fLr3xhjR7tnTPPap0zcaa/BwCACtYFnjFxMRo69at2rJli+6///5y/Zs2bZIk3X777dUatyQou/baa0sXva/ImjVrNHfuXHXp0kXLli0r15+Xl6ft27dLkrp3716tGgAAMFtamnGJ4ZIl0pkz5fvDw41LFOPipLAwo81mk955R3rySamSE6p1331GGNamjfNqBwC4hquuMs7kfeQRY32v/350KnXmjHGJ48KF0vz5xuXvJWrycwgArGTJJY2SFB0drYiICB04cEBr1qyx69u1a5c2bNig4OBgjRo1qrQ9MTFRMTExiouLq3TcEydOSJKuvvrqKp+/T58+ysrK0u7du/XOO+/Y9RUVFSkhIUFnz55VkyZNHFqwHgAAZ9m711iEeMqUij9kSMb6K888Y2y3b5+xWPHNN0uxsRWHXTfcIO3ZY6ztQtgFAN6lXz/p88+NAKuicOqTT4w1wB56SPrhh5r9HAIAq1l2hpe/v7/mzp2rUaNGadq0adq4caPatm2rlJQU7d27Vz4+Ppo5c6bd5YyZmZk6efJkleP+8MMPkqQmTZpUuV2bNm00efJkvfDCC5o+fbrWrVunzp07q6CgQJ999pnOnDmjxo0ba8GCBdVeNB8AALPs3Sv9/vcVX4pYkfR0YxHiym4336yZNHOmNGKEVMkV/QAAL+Dra5yN9ec/Sy+8YJzRVVhY1m+zGZc4rl4t5efb91UlPV269VZpxw6pd2/n1A4AjrD0V92OHTtq/fr1Gj58uM6ePat169bp6NGjio6O1rp16xQTE1PtMTMzMyVJwcHBl932/vvv17vvvqvBgwcrPT1d7733nrZs2aKgoCCNGTNGGzdu1I033ljtGgAAMENamnTnnY6HXSUqCrsCAoxLG7/5Rho1irALAGBo3NhY4/Grr6SKVpPJyXE87Cpx4YI0ZIjxcwwArGLZGV4lmjdvrunTpzu07dChQzV06NAqt1m0aFG1nr9bt27qxq2oAAAuaOlS43/Ka+uuu4wPM23b1n4sAIBn6tBB2rRJ+ugjafx46euvazdeerq0bJk0ebI59QFAdfH/uwAAuKDCQmNh4Nrw9zc+uHz4IWEXAMAxMTHS4cPSnDmV36nRUYsXV36JPQA4G4EXAAAuKDGx8oWBHVVQIBUXm1MPAMB7+Psbi8/bbLUb58wZads2c2oCgOoi8AIAwAUdP27OON98Y844AADvws8hAO6OwAsAABeUlWXOOP+9lwsAANXCzyEA7o7ACwAAF9SwoTnjhISYMw4AwLvwcwiAuyPwAgDABXXoYM447dubMw4AwLvwcwiAuyPwAgDABUVHS23a1G6M8HBpwABz6gEAeBd+DgFwdwReAAC4ID8/KS6udmPEx0u+vubUAwDwLn5+xs+R2uDnEAArEXgBAOCCCgulzz+v+f5Nm9Y+MAMAeLeHHzZ+ntQEP4cAWI3ACwAAF1NYKN13n7RhQ832DwyUNm6UwsLMrQsA4F3CwoyfJ4GB1dsvIICfQwCsR+AFAIALKQm7/vEP+3YfB39iN20q7dgh9e5tfm0AAO/Tu7e0fXv1zvTq0EHq1ct5NQGAIwi8AABwEZWFXddcY1zeOGNG5QsIh4dLL70kHTtG2AUAMFefPsbPl6p+Dl3s3/+WVq92fl0AUBU/qwsAAABVh107dxqBVrdu0pNPStu2Sd98I2VmSiEhxi3fBwxgYWAAgPOEhUmTJ1f+c+i116TNm8u2f+IJ6c47pQYNrKsZgHcj8AIAwGKOhF0lfH2lQYOMPwAA1LXKfg5de60RhBUUGI9TUqTZs6Xp0+u+RgCQuKQRAABLVSfsAgDAVbVvL40bZ982e7Z0+rQ19QAAgRcAABYh7AIAeJIpU6Qrryx7fOGCcWkjAFiBwAsAAAsQdgEAPE3jxsYNVC62Zo2UlGRNPQC8G4EXAAB1jLALAOCpRo40brJysXHjpKIiS8oB4MUIvAAAqEOEXQAAT+brK82fb9/2xRfSihXW1APAexF4AQBQRwi7AADe4Le/le65x77tmWekX3+1ph4A3onACwCAOkDYBQDwJrNnS4GBZY9//FF68UXr6gHgfQi8AABwMsIuAIC3CQ+XnnzSvm3+fOmbb6ypB4D3IfACAMCJCLsAAN7qiSek1q3LHhcUSI8/bl09ALwLgRcAAE5C2AUA8GbBwcaljRfbtEnautWaegB4FwIvAACcgLALAABp+HDp5pvt28aPN872AgBnIvACAMBkhF0AABjq1TPW7qpXr6zt2DFp0SLragLgHQi8AAAwEWEXAAD2brhBGjXKvu3ZZ6WffrKmHgDegcALAACTEHYBAFCxGTOkkJCyxxkZ0rRplpUDwAsQeAEAYALCLgAAKte8uTRlin3bkiXS4cPW1APA8xF4AQBQS4RdAABc3rhx0rXXlj0uLpYee0yy2SwrCYAHI/ACAKAWCLsAAHBM/frS3Ln2bTt3Sh9+aEk5ADwcgRcAADVE2AUAQPUMGSJFR9u3Pf64dOGCNfUA8FwEXgAA1ABhFwAA1VevnjRvnuTrW9Z28qTRBgBmIvACAKCaCLsAAKi5qCjpL3+xb5sxQzp71pp6AHgmAi8AAKqBsAsAgNqbPl1q0qTscXa2NHmydfUA8DwEXgAAOIiwCwAAczRpIj3/vH3bypXSZ59ZUw8Az0PgBQCAAwi7AAAwV3y8cXnjxR59VCoutqYeAJ6FwAsAgMsg7AIAwHx+ftKrr9q3ffqp9M47lpQDwMMQeAEAUAXCLgAAnOe226S77rJve/JJKSvLmnoAeA4CLwAAKkHYBQCA873yihQQUPb47FkpIcG6egB4BgIvAAAqQNgFAEDdaNtWGj/evu3ll6Xvv7ekHAAegsALAIBLEHYBAFC3nnlGat687HFenjRpknX1AHB/BF4AAFyEsAsAgLoXEiLNnGnftm6d9K9/WVIOAA9A4AUAwH8RdgEAYJ0HH5RuvNG+7bHHpKIiS8oB4OYIvAAAEGEXAABW8/GR5s+3b/vyS2n5cmvqAeDeCLwAAF6PsAsAANfQp4/xM/lizzwjZWRYUg4AN0bgBQDwaoRdAAC4loQEKTi47PFPP0nPP29dPQDcE4EXAMBrEXYBAOB6WreWnnrKvm3BAunrr62pB4B7IvACAHglwi4AAFzXxIn2P4sLC6UJE6yrB4D7IfACAHgdwi4AAFxbUJD08sv2bVu2SP/8pzX1AHA/BF4AAK9C2AUAgHv405+k3/7Wvm3CBCk/35p6ALgXAi8AgNcg7AIAwH3UqyfNn2/8XeL4cem116yrCYD7IPACAHgFwi4AANxPt27SmDH2bdOnSz/+aE09ANwHgRcAwOMRdgEA4L5efFFq1Kjs8a+/SlOnWlcPAPdA4AUA8GiEXQAAuLcrr5SmTbNvW7ZMOnTIknIAuAkCLwCAxyLsAgDAM/y//ye1a1f22GaTHnvM+BsAKuJndQGnTp3SkiVLtG/fPqWlpalBgwbq1q2bRo4cqV69ejk0xqeffqoHH3zwsts999xzuvfee+3a8vLy9Pbbb2vz5s06efKkbDabIiIidMcddyg2Nlb169ev0fcFALAWYRcAAJ4jIECaN0+6446ytl27pPfek/74R+vqAuC6LA28Dh48qDFjxignJ0c9evRQv379dO7cOe3Zs0c7d+7U1KlTFRsb6/B4zZo108CBAyvt79Chg93jnJwcPfTQQ0pOTlaLFi0UExMjSUpKStLs2bO1Y8cOLV++XIGBgTX7BgEAliDsAgDA8wweLMXESB99VNY2caJ0++1SUJB1dQFwTZYFXrm5uZo0aZJycnKUkJCgu+++u7QvOTlZI0aM0KxZs9SzZ0+1u/jc1SpcddVVeuaZZxyuYeHChUpOTlb//v21YMGC0rO5srKyNGbMGH3++ed6/fXXNWHChGp9bwAA6xB2AQDgmerVk+bOlRITpaIio+3UKWnOHGnKFGtrA+B6LFvDa8uWLUpNTVXfvn3twi5J6t69u4YPH66CggKtXLnSKc+fk5Ojd999V35+fpo+fbrdpYsNGzbUs88+K0l6++23deHCBafUAAAwF2EXAACeLTJS+t//tW+bOVNKTbWmHgCuy7LAa9u2bZJUehnhpUouTUxMTHTK8+/Zs0c5OTnq0qWLWrRoUa4/MjJSbdq0UXZ2tj755BOn1AAAMA9hFwAA3uHZZ6WmTcse5+RITz1lXT0AXJNlgdfRo0clSR07dqywPyoqSpKUkZGhlJQU05//yJEjds9TVQ0ltQIAXBNhFwAA3uOKK6QXX7Rve/ttad8+a+oB4JosWcMrPz9f586dk6QKz66SpKCgIIWGhiojI0OnTp1S69atHRo7MzNTO3bs0Hfffafi4mK1adNG/fv3V7Nmzey2KwnRmjdvXulYJbV9//33Dj03AKDuEXYBAOB94uKkRYukw4fL2saNk/bvl3wsO60DgCuxJPDKysoq/bpBgwaVbhccHKyMjAxlZ2c7NO6JEyfUv3//ctv7+/vr4Ycf1qOPPlquhss9vySHn//YsWMObecsubm5LlEH3B9zCWZy5nwqLJQmTWqlrVsb2bW3aZOvpUtPKTu7UExjz8LxCWZhLsFMzCdrjB8frFGjrip9fOCAlJBwVnff/auFVdUe8wlm8fa5ZEn2nZeXV/q1v79/pdsFBARIKnuRLicrK0uxsbHaunWr/v3vf+tf//qXxowZI5vNptdee03Lli0r3bZkIXpHnp9F6wHA9VQVdq1YcUotWxZaVBkAAKgLPXvmKDr6vF3b3LlXKjubU7wAWHSGV2BgYOnXBQUFdndIvFh+fr4k4/LGqkRFRWndunUKDQ1VmzZtSttbtGihSZMmKSQkRPPmzdOiRYsUGxuroKCg0jELCgoqHbfk+S+utyqRkZEObecsJamt1XXA/TGXYCZnzKeSyxi3brVvNy5jDFB4eDvTnguuheMTzMJcgpmYT9ZZvFjq2FEqOafip5/89P77HfTSS9bWVRvMJ5jFE+bSwYMHa7yvJdH3xZcRVnW5YMllhyEhIVWO17BhQ3Xu3Nku7LrY6NGjFRgYqOzsbH3xxRd2NZjx/ACAusOaXQAAoMQ110iPP27fNmeO9N131tQDwHVYEngFBASoVatWkqTU1NQKt8nMzNT588bpqREREbV+vrCwMElSenq63Zhnz56tdL+S2mr7/AAAcxB2AQCASz39tHTxvdDy86WJE62rB4BrsOzi5k6dOkmSDl98W42LHDp0SJIUFhZW5Z0US9hsNtlstkr7MjIyJEmNGzd26Pkl6csvv5QkdenS5bLPDwBwLsIuAABQkYYNpVmz7Ns++EDavt2aegC4BssCr5iYGEnSli1bKuzftGmTJOn222+/7FgjR45Uly5dKh1r9+7dyszMlJ+fn7p27SpJ6tOnjxo1aqQjR47o9OnT5fbZv3+/0tLS1KRJE/Xq1cuh7wkA4ByEXQAAoCqxsdJNN9m3PfaY8TsEAO9kWeAVHR2tiIgIHThwQGvWrLHr27VrlzZs2KDg4GCNGjWqtD0xMVExMTGKi4uz2/7GG29Ufn6+Zs2ape+//96u79y5c5oxY4YkadiwYaVneAUEBGjkyJEqLi7W1KlT7e7EmJGRUbpPfHy8/PwsWdsfACDCLgAAcHk+PtL8+fZtX30lLVtmTT0ArGdZkuPv76+5c+dq1KhRmjZtmjZu3Ki2bdsqJSVFe/fulY+Pj2bOnGl3OWNmZqZOnjxZbqy4uDjt379fBw4c0B133KFbbrlFV155pdLS0pSUlKTc3FzddNNNeuqpp8rt98UXXygpKUkxMTHq06ePioqKtHv3bv38888aOHCgHnjgAaf/WwAAKkbYBQAAHNWrl/TAA9Jbb5W1TZ0q3XOP1KSJdXUBsIalpy517NhR69ev16JFi5SUlKRDhw6pUaNGio6O1tixYx2+dWb9+vX15ptvau3atdq0aZM+/fRTZWdnKyQkRF27dtVdd92lu+66S76+vnb7BQQEaPHixVq9erU++OCD0ksi27dvrwkTJmjYsGHy8bHsJDgA8GqEXQAAoLpmzpTef1/KzjYep6dL06eXP/sLgOez/Fq95s2ba/r06Q5tO3ToUA0dOrTCPj8/P91333267777qvX8fn5+io2NVWxsbLX2AwA4D2EXAACoiVatjLs2TplS1vbaa1J8vNSxo3V1Aah7nL4EAHAphF0AAKA2JkyQrr667HFRkTR+vGSzWVYSAAsQeAEAXAZhFwAAqK2gIOmVV+zbtm2TNm+2ph4A1iDwAgC4BMIuAABglqFDpVtusW8bP17Kz7ekHAAWIPACAFiOsAsAAJipXj3p1Veli+9B9n//J/31r5aVBKCOEXgBACxF2AUAAJyha1cpLs6+7fnnpXPnrKkHQN0i8AIAWIawCwAAONMLL0iNG5c9zsyUnnnGunoA1B0CLwCAJQi7AACAs4WFSc89Z9/2xhtScrIl5QCoQwReAIA6R9gFAADqyiOPSNddV/bYZpPGjTP+BuC5CLwAAHWKsAsAANQlf39p3jz7tj17pLVrrakHQN0g8AIA1BnCLgAAYIWYGGnwYPu2SZOknBxr6gHgfAReAIA6QdgFAACsNHeu5OdX9vjMGenll62rB4BzEXgBAJyOsAsAAFitQwfp0Uft2xISjOALgOch8AIAOFVhoTRpUivCLgAAYLmpU407N5bIzZWefNK6egA4D4EXAMBpSsKurVsb2bUTdgEAACuEhkozZti3vfuusYg9AM9C4AUAcIqSyxgJuwAAgCsZPVq6/nr7tnHjpOJiS8oB4CQEXgAA07FmFwAAcFW+vtL8+fZtycnSm29aUg4AJyHwAgCYirALAAC4un79pD/9yb5t8mTp/Hlr6gFgPgIvAIBpKgu72rTJJ+wCAAAuZfZsKTCw7PG5c+XX9wLgvgi8AACmqCrsWrHiFGEXAABwKVdfLU2aZN82b5504oQl5QAwGYEXAKDWqrqMccWKU2rZstCawgAAAKrw5JNSq1ZljwsKpIkTrasHgHkIvAAAtXK5NbsIuwAAgKtq0EBKSLBv27BBSky0ph4A5iHwAgDUGAvUAwAAd3fffVLv3vZtjz1m/J4DwH0ReAEAaoSwCwAAeIJ69aT58+3bjh6VFi+2ph4A5iDwAgBUG2EXAADwJD16SCNH2rdNmyalp1tSDgATEHgBAKqFsAsAAHiil16SGjYse/zLL9Kzz1pXD4Da8bO6AACAayksNBZqPX5cysoyfvHr0EEaMECy2Qi7AACAZ2rRQnrmGenpp8vaFi2Sxo6VOnWyri4ANUPgBQCQJKWlSUuXSkuWSGfOlO8PD5caNZK++sq+nbALAAB4iscek5Ytk777znhcXGy0JSYaa30BcB9c0ggA0N69UmSkNGVKxWGXJJ0+TdgFAAA8W2CgNGeOfdv27dKGDdbUA6DmCLwAwMvt3Sv9/vfVX5S1ZUvCLgAA4Hnuusv43ehiEyZIeXnW1AOgZgi8AMCLpaVJd94pXbhQ/X1zc6WgIPNrAgAAsFK9etKrr0o+F31a/u47ow2A+yDwAgAvtnRpzW+3/csvxhoXAAAAnqZTJ2Ox+ou9+KL0n/9YUw+A6iPwAgAvVVhoLFBfG4sXS0VF5tQDAADgSp5/XrriirLHWVnGXRwBuAcCLwDwUomJlS9Q76gzZ6Rt28ypBwAAwJU0bSpNn27ftmKFdOCANfUAqB4CLwDwUsePmzPON9+YMw4AAICrGTtW6tjRvm3cOMlms6YeAI4j8AIAL5WVZc44mZnmjAMAAOBq/P3LL1a/b5/07ruWlAOgGgi8AMBLNWxozjghIeaMAwAA4Iqio6UhQ+zbnnhCys62ph4AjiHwAgAv1aGDOeO0b2/OOAAAAK5qzhzjbK8SqanS7NnW1QPg8gi8AMBLRUdLbdrUbozwcGnAAHPqAQAAcFXt2kmPPWbfNnu2dOqUJeUAcACBFwB4KZtNaty4dmPEx0u+vubUAwAA4MqmTJGuvLLs8YULxqWNAFwTgRcAeKGCAun++6Wvvqr5GE2bSnFx5tUEAADgyho1kmbOtG9bu1bavduaegBUjcALALxMSdj1j3/UfIzAQGnjRikszLy6AAAAXN3IkVL37vZt48ZJRUWWlAOgCgReAOBFKgu7WraUrrjCsTGaNpV27JB69za/PgAAAFfm4yPNn2/fduiQtGKFJeUAqAKBFwB4icrCrmuukfbtk44fl2bMqHwh+/Bw6aWXpGPHCLsAAID36ttXGj7cvm3yZOnXX62pB0DF/KwuAADgfFWFXTt3GmGWZPyy9uST0rZt0jffSJmZUkiI1L69cTdGFqgHAACQEhKk9eul3FzjcVqa9MIL0iuvWFsXgDIEXgDg4RwNu0r4+kqDBhl/AAAAUF54uPGfhM89V9Y2f75xQ58OHSwrC8BFuKQRADxYdcMuAAAAOGbSJPulIAoLpccft64eAPYIvADAQxF2AQAAOE9wsDR7tn3b5s3SRx9ZUw8AewReAOCBCLsAAACc7557pJtvtm8bP974XQyAtQi8AMDDEHYBAADUjXr1jLW76tUra/v6a+n1162rCYCBwAsAPAhhFwAAQN264QZp9Gj7tmefNe7cCMA6BF4A4CEIuwAAAKwxY4YUElL2+NdfpWnTrKsHAIEXAHgEwi4AAADrNGsmTZ1q37Z0qXT4sDX1ACDwAgC3R9gFAABgvUcfldq2LXtcXCw99phks1lWEuDV/KwuAABQc4RdAAAArqF+fWnuXOnOO8vadu6U1q2TGjaUjh+XsrKMrzt0kAYMkHx9rasX8HQEXgDgpgi7AAAAXMsddxhB1rZtZW333isVFZXfNjxcio+X4uKksLC6qxHwFlzSCABuiLALAADA9dSrJ82bJ/lc9Em7orBLkk6flp55RoqMlPbtq5v6AG9i+Rlep06d0pIlS7Rv3z6lpaWpQYMG6tatm0aOHKlevXpVa6xvv/1Wy5cv1/79+/Xjjz8qICBAERERiomJ0YMPPqj69evbbX/rrbcqNTW1yjG7du2qtWvXVvv7AgBnIewCAABwXRkZRvDlqPR06dZbpR07pN69nVYW4HUsDbwOHjyoMWPGKCcnRz169FC/fv107tw57dmzRzt37tTUqVMVGxvr0Fhbt27VxIkTlZ+fr+uuu069e/fWr7/+qk8++USvvPKKPvroI61atUoNGjQot+/QoUPVsGHDCsdt1apVrb5HADATYRcAAIDrSksz1vCq7Kyuyly4IA0ZIh075py6AG9kWeCVm5urSZMmKScnRwkJCbr77rtL+5KTkzVixAjNmjVLPXv2VLt27aoc69y5c3rqqaeUn5+vJ598UqNHjy7tO3v2rP785z/rq6++0t/+9jeNGzeu3P6PPPKIWrdubdr3BgDOQNgFAADg2pYuNc7Yqon0dGnZMukPfzC3JsBbWbaG15YtW5Samqq+ffvahV2S1L17dw0fPlwFBQVauXLlZcf68MMPlZOTo65du9qFXZLUsmVLPfTQQ5KkbRevHAgAboSwCwAAwLUVFkpLltRujMWLq392GICKWRZ4lYRPMTExFfYPHDhQkpSYmHjZsfr27asXX3xR48ePr7D/mmuukST98MMPNSkVACxF2AUAAOD6EhOlM2dqN8aZM9Inn5RfhgdA9Vl2SePRo0clSR07dqywPyoqSpKUkZGhlJSUKi85jIqKKt2+Ij/++KMk6YorrqhpuQBgCcIuAAAA93D8uDnjnDoVICnbnMEAL2ZJ4JWfn69z585Jklq0aFHhNkFBQQoNDVVGRoZOnTpV4zW2bDab1q1bJ6nys8lsNps+/fRTJScnKzMzU6Ghobrpppt0/fXX1+g5AcAMhF0AAADuIyvLnHGysy27EAvwKJYEXlkXHQkqumtiieDgYGVkZCg7u+bp9rJly3To0CGFhoYqLi6uwm1GjhyplJSUcu09evTQnDlz1KxZM4ee65jFt9TIzc11iTrg/phL1isokJ54opW2bm1k196mTb6WLj2l7OxCt7mLD/MJZmI+wSzMJZiJ+QRJys6+QlLzWo/j75+n3Nxc5hNqzduPTZZEx3l5eaVf+/v7V7pdQECApLIXqbreeOMNzZ07V/7+/po/f74aN25c4XYtW7bUqlWr9MUXX+jgwYN69dVX1aJFCx04cEBxcXEqKCio0fMDQE1UFXatWHFKLVsWWlQZAAAAKnP11fmmjHPVVXmX3wjAZVlyhldgYGDp1wUFBapfv36F2+XnGweMoKCgao1vs9mUkJCgFStWKCAgQHPmzFGvXr3Kbbdo0SIVFhYqMjJSPj5l2d+gQYMUFRWlIUOG6Pjx49q8eXO5O0lWJDIyslp1mq0ktbW6Drg/5pJ1Si5j3LrVvt24jDFA4eHtrCmsFphPMBPzCWZhLsFMzCdIUrt20owZtVu4Pjxc+t3vCuTrG8R8Qq15wrHp4MGDNd7XkjO8Lr6MsarLFUsufQwJCXF47Ly8PI0bN04rVqxQo0aNtGzZMg0YMKDCbTt06KCoqCi7sKtEeHi4Bg8eLEnas2ePw88PADXFml0AAADuy89Pio+v3Rjx8ZKvrzn1AN7OksArICBArVq1kiSlpqZWuE1mZqbOnz8vSYqIiHBo3Pz8fMXHx2vr1q1q3bq1Vq9eXeGZXY4qWSj/559/rvEYAOAIwi4AAAD39/DDUtOmNdu3aVOpkmWnAdSAZbd/6NSpkyTp8OHDFfYfOnRIkhQWFqbmzS+/8F9xcbEmTZqkffv2KTIyUqtXr9a1117r0H6V+eWXXySp0rW/AMAMhF0AAACeISxM2rhRumgVH4cEBhr7hYU5py7AG1kWeMXExEiStmzZUmH/pk2bJEm33367Q+MtXLhQH330ka699lqtWLFCYZc5UqxZs0Y9e/ZUfCXnnObl5Wn79u2SpO7duztUAwBUF2EXAACAZ+ndW9q+3fEzvZo2lXbsMPYDYB7LAq/o6GhFRETowIEDWrNmjV3frl27tGHDBgUHB2vUqFGl7YmJiYqJiVHcJed5fvvtt1qyZIn8/f21cOFCXXHFFZd9/j59+igrK0u7d+/WO++8Y9dXVFSkhIQEnT17Vk2aNHFowXoAqC7CLgAAAM/Up4907JixiH1lwVd4uPTSS8Z2hF2A+Sy5S6Mk+fv7a+7cuRo1apSmTZumjRs3qm3btkpJSdHevXvl4+OjmTNn2l3OmJmZqZMnT5Yba+nSpSosLFSbNm307rvvVvm8jzzyiEJDQ9WmTRtNnjxZL7zwgqZPn65169apc+fOKigo0GeffaYzZ86ocePGWrBgQbUWzQcARxB2AQAAeLawMGnyZOnaa6Xhw8vau3SRZs2SBgxggXrAmSwLvCSpY8eOWr9+vRYtWqSkpCQdOnRIjRo1UnR0tMaOHevwrTPPnj0rSTpz5oxWrVpV5bYjRoxQaGioJOn+++9Xx44dtWrVKiUnJ+u9996Tv7+/WrdurTFjxujBBx9Us2bNavU9AsClCLsAAAC8x6WhVrt20qBB1tQCeBNLAy9Jat68uaZPn+7QtkOHDtXQoUPLtb/11ls1fv5u3bqpW7duNd4fAKqDsAsAAAAAnM+yNbwAwNsQdgEAAABA3SDwAoA6QNgFAAAAAHWHwAsAnIywCwAAAADqFoEXADgRYRcAAAAA1D0CLwBwEsIuAAAAALAGgRcAOAFhFwAAAABYh8ALAExG2AUAAAAA1iLwAgATEXYBAAAAgPUIvADAJIRdAAAAAOAaCLwAwASEXQAAAADgOgi8AKCWCLsAAAAAwLUQeAFALRB2AQAAAIDrIfACgBoi7AIAAAAA10TgBQA1QNgFAAAAAK6LwAsAqomwCwAAAABcG4EXAFQDYRcAAAAAuD4CLwBwEGEXAAAAALgHAi8AcABhFwAAAAC4DwIvALgMwi4AAAAAcC8EXgBQBcIuAAAAAHA/BF4AUAnCLgAAAABwTwReAFABwi4AAAAAcF8EXgBwCcIuAAAAAHBvBF4AcBHCLgAAAABwfwReAPBfhF0AAAAA4BkIvABAhF0AAAAA4EkIvAB4PcIuAAAAAPAsBF4AvBphFwAAAAB4HgIvAF6LsAsAAAAAPBOBFwCvRNgFAAAAAJ6LwAuA1yHsAgAAAADPRuAFwKsQdgEAAACA5yPwAuA1CLsAAAAAwDsQeAHwCoRdAAAAAOA9CLwAeDzCLgAAAADwLgReADwaYRcAAAAAeB8CLwAei7ALAAAAALwTgRcAj0TYBQAAAADei8ALgMch7AIAAAAA70bgBcCjEHYBAAAAAAi8AHgMwi4AAAAAgETgBcBDEHYBAAAAAEoQeAFwe4RdAAAAAICLEXgBcGuEXQAAAACASxF4AXBbhF0AAAAAgIoQeAFwS4RdAAAAAIDKEHgBcDuEXQAAAACAqhB4AXArhF0AAAAAgMsh8ALgNgi7AAAAAACOIPAC4BYIuwAAAAAAjiLwAuDyCLsAAAAAANVB4AXApRF2AQAAAACqi8ALgMsi7AIAAAAA1ASBFwCXRNgFAAAAAKgpAi8ALoewCwAAAABQG35WFwDA+xQWSomJ0vHjUlaW1LCh1KGDNGCAVFxM2AUAAAAAqB3LA69Tp05pyZIl2rdvn9LS0tSgQQN169ZNI0eOVK9evZw+Vl5ent5++21t3rxZJ0+elM1mU0REhO644w7Fxsaqfv36ZnybACSlpUlLl0pLlkhnzpTvDw+XGjWSvvrKvp2wCwAAAABQHZYGXgcPHtSYMWOUk5OjHj16qF+/fjp37pz27NmjnTt3aurUqYqNjXXaWDk5OXrooYeUnJysFi1aKCYmRpKUlJSk2bNna8eOHVq+fLkCAwNN/94Bb7N3r3TnnVJ6euXbnD5dvo2wCwAAAABQXZYFXrm5uZo0aZJycnKUkJCgu+++u7QvOTlZI0aM0KxZs9SzZ0+1a9fOKWMtXLhQycnJ6t+/vxYsWFB6NldWVpbGjBmjzz//XK+//romTJhg6vcOeJu9e6Xf/166cKF6+7VsSdgFAAAAAKg+yxat37Jli1JTU9W3b1+7gEqSunfvruHDh6ugoEArV650ylg5OTl699135efnp+nTp9tdutiwYUM9++yzkqS3335bF6r7KR1AqbQ048yumryNcnOloCDzawIAAAAAeDbLAq9t27ZJUullhJcaOHCgJCkxMdEpY+3Zs0c5OTnq0qWLWrRoUW6fyMhItWnTRtnZ2frkk08uWwOAii1dWvVljFX55Rdp2TJz6wEAAAAAeD7LAq+jR49Kkjp27Fhhf1RUlCQpIyNDKSkppo915MgRu76q9isZH0D1FBYaC9TXxuLFUlGROfUAAAAAALyDJYFXfn6+zp07J0kVnl0lSUFBQQoNDZVk3H3R7LFKgq/mzZtXOnbJeN9//32l2wCoXGJixXdjrI4zZ6T/nsQJAAAAAIBDLFm0Pisrq/TrBg0aVLpdcHCwMjIylJ2dbfpYJftdbh9JVT7/xY4dO+bQds6Sm5vrEnXA/Zk1l3bvvkJS5aGyo5KSftDVV/9S63FgDY5NMBPzCWZhLsFMzCdUJSUlRFLr0seZmed17Fhqpdszn2AWb59LlpzhlZeXV/q1v79/pdsFBARIKnuRzByrZCF6R/Zh0XqgZnJyzDnEZGdbdvU1AAAAAMANWXKGV2BgYOnXBQUFdndIvFh+fr4k45JEs8cq+bugoKDSsUv2ufg5qhIZGenQds5SktpaXQfcn1lzKSLCjGqka665UpGRV5ozGOocxyaYifkEszCXYCbmE6ry3+WjS4WENFJkZKNKt2c+wSyeMJcOHjxY430tOW3i4ssIHblcMSQkxPSxSvar7fMDqFyHDuaM0769OeMAAAAAALyDJYFXQECAWrVqJUlKTa342uXMzEydP39ekhRRxWkiNR2r5O+zZ89WOnbJeFU9P4DKRUdLbdrUbozwcGnAAHPqAQAAAAB4B8sWxunUqZMk6fDhwxX2Hzp0SJIUFhZW5Z0UazrW5faRpC+//FKS1KVLlyqfH0DF/Pyk+PjajREfL/n6mlMPAAAAAMA7WBZ4xcTESJK2bNlSYf+mTZskSbfffrtTxurTp48aNWqkI0eO6PTp0+X22b9/v9LS0tSkSRP16tXrsjUAqNjDD0tNm9ZsX19f6c47za0HAAAAAOD5LAu8oqOjFRERoQMHDmjNmjV2fbt27dKGDRsUHBysUaNGlbYnJiYqJiZGcXFxtR4rICBAI0eOVHFxsaZOnWp3J8aMjAzNmDFDkhQfHy8/P0vW9gc8QliYtHGj5OC9H+wUFUl/+pP0ww/m1wUAAAAA8FyWJTn+/v6aO3euRo0apWnTpmnjxo1q27atUlJStHfvXvn4+GjmzJl2lzNmZmbq5MmTpowlSXFxcfriiy+UlJSkmJgY9enTR0VFRdq9e7d+/vlnDRw4UA888IDT/y0AT9e7t7R9u3G2Vnp69fb9+mvpd7+Tdu6ULnN1MwAAAAAAkiwMvCSpY8eOWr9+vRYtWqSkpCQdOnRIjRo1UnR0tMaOHVutW2fWZKyAgAAtXrxYq1ev1gcffFB6SWT79u01YcIEDRs2TD4+lp0EB3iUPn2kY8ekZcukxYulM2fKbxMeLo0ZI+3eLX38cVk7oRcAAAAAoDosv1avefPmmj59ukPbDh06VEOHDjVlrBJ+fn6KjY1VbGxstfYDUH1hYdLkydKTT0rbtknffCNlZkohIVL79sbdGH19pbw8adgwafPmsn0JvQAAAAAAjrI88ALgfXx9pUGDjD8VqV9feu89Qi8AAAAAQM1wvR4Al1QSel16o9aS0IuF7AEAAAAAlSHwAuCyCL0AAAAAADVB4AXApRF6AQAAAACqi8ALgMsj9AIAAAAAVAeBFwC3QOgFAAAAAHAUgRcAt0HoBQAAAABwBIEXALdC6AUAAAAAuBwCLwBuh9ALAAAAAFAVAi8AbonQCwAAAABQGQIvAG6L0AsAAAAAUBECLwBujdALAAAAAHApAi8Abo/QCwAAAABwMQIvAB6B0AsAAAAAUILAC4DHIPQCAAAAAEgEXgA8DKEXAAAAAIDAC4DHIfQCAAAAAO9G4AXAIxF6AQAAAID3IvAC4LEIvQAAAADAOxF4AfBohF4AAAAA4H0IvAB4PEIvAAAAAPAuBF4AvAKhFwAAAAB4DwIvAF6D0AsAAAAAvAOBFwCvQugFAAAAAJ6PwAuA1yH0AgAAAADPRuAFwCsRegEAAACA5yLwAuC1CL0AAAAAwDMReAHwaoReAAAAAOB5CLwAeD1CLwAAAADwLAReACBCLwAAAADwJAReAPBfhF4AAAAA4BkIvADgIoReAAAAAOD+CLwA4BKEXgAAAADg3gi8AKAChF4AAAAA4L4IvACgEoReAAAAAOCeCLwAoAqEXgAAAADgfgi8AOAyCL0AAAAAwL0QeAGAAwi9AAAAAMB9EHgBgIMIvQAAAADAPRB4AUA1EHoBAAAAgOsj8AKAaiL0AgAAAADXRuAFADVA6AUAAAAArovACwBqiNALAAAAAFwTgRcA1AKhFwAAAAC4HgIvAKglQi8AAAAAcC0EXgBgAkIvAAAAAHAdBF4AYBJCLwAAAABwDQReAGAiQi8AAAAAsB6BFwCYjNALAAAAAKxF4AUATkDoBQAAAADWIfACACch9AIAAAAAaxB4AYATEXoBAAAAQN0j8AIAJyP0AgAAAIC6ReAFAHWA0AsAAAAA6g6BFwDUEUIvAAAAAKgbBF4AUIcIvQAAAADA+fysfPJTp05pyZIl2rdvn9LS0tSgQQN169ZNI0eOVK9evao93rfffqvly5dr//79+vHHHxUQEKCIiAjFxMTowQcfVP369e22v/XWW5WamlrlmF27dtXatWurXQsAVKYk9Bo2TNq8uay9JPTauVNq3ty6+gAAAADA3VkWeB08eFBjxoxRTk6OevTooX79+uncuXPas2ePdu7cqalTpyo2Ntbh8bZu3aqJEycqPz9f1113nXr37q1ff/1Vn3zyiV555RV99NFHWrVqlRo0aFBu36FDh6phw4YVjtuqVasaf48AUBlCLwAAAO9QVGT/+MQJacsWacAAydfXmpoAb2BJ4JWbm6tJkyYpJydHCQkJuvvuu0v7kpOTNWLECM2aNUs9e/ZUu3btLjveuXPn9NRTTyk/P19PPvmkRo8eXdp39uxZ/fnPf9ZXX32lv/3tbxo3bly5/R955BG1bt3alO8NABxF6AUAAOC50tKkpUulefPs2w8flgYPlsLDpfh4KS5OCguzpkbAk1myhteWLVuUmpqqvn372oVdktS9e3cNHz5cBQUFWrlypUPjffjhh8rJyVHXrl3twi5JatmypR566CFJ0rZt20ypHwDMwppeAAAAnmfvXikyUpoyRUpPr3ib06elZ54xttu3r27rA7yBJYFXSfAUExNTYf/AgQMlSYmJiQ6N17dvX7344osaP358hf3XXHONJOkHPjkCcEGEXgAAAJ5j717p97+vPOi6VHq6dOuthF6A2SwJvI4ePSpJ6tixY4X9UVFRkqSMjAylpKRcdryoqCj96U9/Uu/evSvs//HHHyVJV1xxRU3KBQCnI/QCAABwf2lp0p13ShcuVG+/CxekIUOM/QGYo84Dr/z8fJ07d06S1KJFiwq3CQoKUmhoqCTjTo61YbPZtG7dOkmVn1Fms9n06aefatGiRZo9e7aWLl2qQ4cO1ep5AaC6CL0AAADc29Kljp/Zdan0dGnZMnPrAbxZnS9an5WVVfp1RXdMLBEcHKyMjAxlZ2fX6vmWLVumQ4cOKTQ0VHFxcRVuM3LkyArPJOvRo4fmzJmjZs2aOfRcx44dq1WttZWbm+sSdcD9MZesNWNGPWVltdKuXSGlbV9/Ld18c55WrDilsLCiKvZ2PcwnmIn5BLMwl2Am5hMkqbBQWriwrST/Go+xYEGBoqNz5evLfELtefuxqdaB1/jx4x3+x2vWrJlmzZpV+tjfv/IDQUBAgKSyF6gm3njjDc2dO1f+/v6aP3++GjduXOF2LVu21EsvvaTOnTuruLhYSUlJSkhI0IEDBxQXF6f33nuvyloBwEwBATbNn5+qcePsQ6/vvquvUaOucsvQCwAAwNPt3dtAP/xQu8+NP/zgr/37G+nmm8+bVBXgvWodeKWmpurkyZMObZufn6/AwMDSxwUFBapfv36l20rG5Y3VZbPZlJCQoBUrViggIEBz5sxRr169ym23aNEiFRYWKjIyUj4+ZVd3Dho0SFFRURoyZIiOHz+uzZs3l7ubZEUiIyOrXauZSoJHq+uA+2MuuYatW6Vhw6TNm8vavvuuvuLj22vnTql5c+tqqw7mE8zEfIJZmEswE/MJkvG7mxn+85+GCgoqYD6h1jzh2HTw4MEa71vrwGvt2rXV2r4kyJKk7OzsSgOvkksfQ0JCKuyvTF5eniZNmqStW7eqUaNGWrBgQYVhlyR16NCh0nHCw8M1ePBgvf/++9qzZ49DgRcAmKlkTa9LQ6+SNb3cKfQCAADwdBet3lMr2dmW3FsO8Dh1/k4KCAhQq1atJBlnh1UkMzNT588bp3BGREQ4PHZ+fr7i4+O1detWtW7dWqtXr6407HJE69atJUk///xzjccAgNpgIXsAAAD30LChOeM0aFBszkCAl7MkOu7UqZMk6fDhwxX2l9whMSwsTM0dPH2huLhYkyZN0r59+xQZGanVq1fr2muvdWi/yvzyyy+SVOnaXwBQFwi9AAAAXF8VFxBVy1VX5V9+IwCXZUngFRMTI0nasmVLhf2bNm2SJN1+6ae7KixcuFAfffSRrr32Wq1YsUJhYWFVbr9mzRr17NlT8fHxFfbn5eVp+/btkqTu3bs7XAcAOAOhFwAAgGuLjpbatKndGOHh0s03Z5tTEODlLAm8oqOjFRERoQMHDmjNmjV2fbt27dKGDRsUHBysUaNG2fUlJiYqJiZGcXFxdu3ffvutlixZIn9/fy1cuFBXXHHFZWvo06ePsrKytHv3br3zzjt2fUVFRUpISNDZs2fVpEkT1u8C4BIIvQAAAFyXn59UyfkUDouPl3x9zakH8Ha1XrS+Jvz9/TV37lyNGjVK06ZN08aNG9W2bVulpKRo79698vHx0cyZM8tdzpiZmVnhHSGXLl2qwsJCtWnTRu+++26Vz/3II48oNDRUbdq00eTJk/XCCy9o+vTpWrdunTp37qyCggJ99tlnOnPmjBo3bqwFCxZUe+F8AHAWFrIHAABwXQ8/LM2bJ6WnV3/fpk2luDjpp5/MrwvwRpYEXpLUsWNHrV+/XosWLVJSUpIOHTqkRo0aKTo6WmPHjq3WbTPPnj0rSTpz5oxWrVpV5bYjRoxQaGioJOn+++9Xx44dtWrVKiUnJ+u9996Tv7+/WrdurTFjxujBBx9Us2bNavw9AoAzEHoBAAC4prAw6fXXpXvuqd5+gYHSxo3G/gRegDksC7wkqXnz5po+fbrD2w8dOlRDhw4t1/7WW2/VuIZu3bqpW7duNd4fAKxA6AUAAOCa3n67ets3bWqEXb17O6cewFtZsoYXAKD2WNMLAADAtWzdaoRXF2vatOJtw8Oll16Sjh0j7AKcwdIzvAAAtcOZXgAAAK6hoEAaP96+rU8fadcuKTFR+uYbKTNTCgmR2reXBgxggXrAmQi8AMDNEXoBAABYb9Ei42yti82fb9y9cdAg4w+AusMljQDgAbi8EQAAwDo//SQ9+6x926hR0o03WlMPAAIvAPAYhF4AAADWePZZKSOj7HHDhsb6XACsQ+AFAB6E0AsAAKBu/fvf0uLF9m1TprCkBGA1Ai8A8DCEXgAAAHXDZpPGjZOKi8varr1Weuwxy0oC8F8EXgDggQi9AAAAnO/DD40bBF1szhzjdzEA1iLwAgAPRegFAADgPBcuSBMn2rfddpt0553W1APAHoEXAHgwQi8AAADnePVV6bvvyh77+krz5kn16llWEoCLEHgBgIcj9AIAADDX2bPSiy/at40dK3XqZE09AMrzs7oAAIDzlYRew4ZJmzeXtZeEXjt3lt1JqLBQSkyUjh+XsrKM22p36CANGGD8zyUAAIC3mzxZys4ue3zFFdL06dbVA6A8Ai8A8BKXC73+8Q9p/XppyRLpzJny+4eHS/HxUlycFBZWd3UDAAC4ks8+k1autG97/nmpaVNr6gFQMS5pBAAvUtXljddfL02ZUnHYJUmnT0vPPCNFRkr79jm9VAAAAJdjs0njxtm3RUUZlzMCcC0EXgDgZSoLvYqKHNs/PV269VZCLwAA4H3eeUfav9++7dVXJT+unQJcDoEXAHihktDrtttqtv+FC9KQIVJamrl1AQAAuKqsLOmJJ+zb7ryz5r9PAXAuAi8A8FL160t9+9Z8//R0adky8+oBAABwZQkJxt0ZS/j7S3PmWFcPgKoReAGAlyoslJYvr90Yixc7fikkAACAu/r+e+nll+3bxo+X2ra1pBwADiDwAgAvlZhY+QL1jjpzRtq2zZx6AAAAXNUTT0h5eWWPmzUzbuYDwHUReAGAlzp+3JxxvvnGnHEAAABc0a5d0j/+Yd82c6bUqJE19QBwDIEXAHiprCxzxsnMNGccAAAAV1NUJI0bZ992ww3SiBHW1APAcQReAOClGjY0Z5yQEHPGAQAAcDXLl0tffmnfNn++5MMnacDl8TYFAC/VoYM547Rvb844AAAAriQjo/w6XffeK918syXlAKgmAi8A8FLR0VKbNrUbIzxcGjDAnHoAAABcyQsvSD/9VPY4KEhKSLCuHgDVQ+AFAF7Kz0+Kj6/dGPHxkq+vOfUAAAC4iuPHpb/+1b7tqadq/5+FAOoOgRcAeLGHH5aaNq3Zvr6+0p13mlsPAACAK5gwQSosLHscHi5NnGhdPQCqj8ALALxYWJi0caMUGFj9fYuKpD/9SfrhB/PrAgAAsMo//2n8udjs2VJwsDX1AKgZAi8A8HK9e0vbt9fsTK+vv5Z+9ztCLwAA4BkKCoyzuy7Wt6/05z9bUw+AmiPwAgCoTx/p2DFpxozK16YID5eef1667Tb7dkIvAADgKV57zVi/q0S9etL8+cbfANyLn9UFAABcQ1iYNHmy9OST0rZt0jffSJmZUkiI1L69cTdGX18pL08aNkzavLls35LQa+dOqXlz674HAACAmkpLk557zr7toYek7t0tKQdALRF4AQDs+PpKgwYZfypSv7703nuEXgAAwLNMnSr9+mvZ40aNpBdftK4eALXDJY0AgGorCb1uv92+ncsbAQCAOzp0SFq61L5t6lSpWTNLygFgAgIvAECNEHoBAABPYLNJjz1m/F2iXTvp0UctKwmACQi8AAA1RugFAADc3fvvS7t22bfNnSsFBFhTDwBzEHgBAGrlcqFXWpqvNYUBAABcRm6uNHGifdvAgeV/rwHgfgi8AAC1VlXoNWrUVYReAADAJc2dK33/fdljX19p3jypXj3LSgJgEgIvAIApKgu9vvuuvkaNuorLGwEAgEtJTZVeesm+7ZFHpMhIa+oBYC4CLwCAaaoKvVjTCwAAuJKnnpJycsoeN20qPfecZeUAMBmBFwDAVCxkDwAAXN3+/dLbb9u3vfCCdMUV1tQDwHwEXgAA0xF6AQAAV1VcLI0bZ9/WubMUF2dNPQCcg8ALAOAUJaFX//6Zdu2EXgAAwEpvvy199pl926uvSn5+lpQDwEkIvAAATlO/vjR/fiqhFwAAcAlZWcbaXRf7wx+kW2+1ph4AzkPgBQBwqoAAm+bPT+XyRgAAYLmZM6X//KfscUCA9Mor1tUDwHkIvAAAThcQYGNNLwAAYKnvvpPmzLFve/xx6ZprrKkHgHMReAEA6gQL2QMAACtNmiTl5ZU9btFCevpp6+oB4FwEXgCAOkPoBQAArLBjh/T++/Zts2ZJISHW1APA+Qi8AAB1itALAADUpcJC6bHH7NtuukmKjbWkHAB1hMALAFDnCL0AAEBd+dvfpH//277t1VclHz4NAx6NtzgAwBKEXgAAwNl++UWaMsW+LTZW6t3bmnoA1B0CLwCAZQi9AACAM02fLqWnlz0ODjbW7gLg+Qi8AACWIvQCAADOcPSotHChfdvkyVKrVtbUA6BuEXgBACxH6AUAAMxks0kTJkhFRWVtV11ltAHwDgReAACXQOgFAADM8s9/Slu32re98ooUFGRNPQDqHoEXAMBlEHoBAIDays+Xxo+3b+vfXxo2zJp6AFiDwAsA4FIIvQAAQG0sWCCdOFH22MdHevVVqV49y0oCYAECLwCAyyH0AgAANXHunPT88/ZtcXHS9ddbUg4AC/lZ+eSnTp3SkiVLtG/fPqWlpalBgwbq1q2bRo4cqV69ejk8zqeffqoHH3zwsts999xzuvfee+3a8vLy9Pbbb2vz5s06efKkbDabIiIidMcddyg2Nlb169ev9vcFAKi9ktBr2DBp8+ay9pLQa+dOqXlz6+oDAACuZ8oU6fz5sseNG0svvGBdPQCsY1ngdfDgQY0ZM0Y5OTnq0aOH+vXrp3PnzmnPnj3auXOnpk6dqtjY2GqN2axZMw0cOLDS/g4dOtg9zsnJ0UMPPaTk5GS1aNFCMTExkqSkpCTNnj1bO3bs0PLlyxUYGFj9bxAAUGuEXgAAwFFffCEtX27f9uyzUliYNfUAsJYlgVdubq4mTZqknJwcJSQk6O677y7tS05O1ogRIzRr1iz17NlT7dq1c3jcq666Ss8884zD2y9cuFDJycnq37+/FixYUHo2V1ZWlsaMGaPPP/9cr7/+uiZw71oAsAyhFwAAuBybTRo3zvi7RIcO0iOPWFcTAGtZsobXli1blJqaqr59+9qFXZLUvXt3DR8+XAUFBVq5cqXTasjJydG7774rPz8/TZ8+3e7SxYYNG+rZZ5+VJL399tu6cOGC0+oAAFwea3oBAICq/OMfUlKSfdu8eVJAgDX1ALCeJYHXtm3bJKn0EsJLlVyWmJiY6LQa9uzZo5ycHHXp0kUtWrQo1x8ZGak2bdooOztbn3zyidPqAAA4htALAABUJCdHmjTJvm3wYGnQIGvqAeAaLAm8jh49Kknq2LFjhf1RUVGSpIyMDKWkpDilhiNHjtg9V1V1lNQLALAWoRcAALjUK69Ip0+XPfbzk+bOta4eAK6hztfwys/P17lz5ySpwjOrJCkoKEihoaHKyMjQqVOn1Lp1a4fHz8zM1I4dO/Tdd9+puLhYbdq0Uf/+/dWsWTO77UqCtOZVLPxSUt/333/v8PMDAJyLNb0AAECJM2ekWbPs2/7f/zPW7wLg3eo88MrKyir9ukGDBpVuFxwcrIyMDGVnZzs89okTJ9S/f/9y+/j7++vhhx/Wo48+Wq6Oy9UgyeEajh075nCtzpCbm+sSdcD9MZdgJmfNpxkz6ikrq5V27Qopbfv6a+nmm/O0YsUphYUVmfp8cA0cn2AW5hLMxHyyzqRJLZWb27j08RVXFOqee77VsWPFFlZVO8wnmMXb51KtA6/x48c7/I/XrFkzzboofvf3969024D/ri5Y8gI5IisrS6NHj9bQoUPVsmVLpaen6+2339abb76p1157TUFBQYqLi5Ok0oXoHamBResBwPUEBNg0f36qxo2zD72++66+Ro26itALAAAPl5wcpM2bG9u1jRuXpkaN3DfsAmCeWgdeqampOnnypEPb5ufnKzAwsPRxQUGB3d0RL91WMi5vvJyoqCitW7dOoaGhatOmTWl7ixYtNGnSJIWEhGjevHlatGiRYmNjFRQUVDpuQUFBlfVKsqu5KpGRkQ5t5ywlwaPVdcD9MZdgJmfPp61by1/e+N139RUf357LGz0QxyeYhbkEMzGf6l5xsfTAA/ZtXbtKU6a0kK9vxUvnuAvmE8ziCXPp4MGDNd631oHX2rVrq7V9SYgkGZcKVhZ4lVxyGBISUmH/xRo2bKjOnTtX2j969GgtWrRI2dnZ+uKLL9SnT5/SSxmrulyxOjUAAKzBml4AAHiflSulSz8Hz58v+fpaUw8A11Pnd2kMCAhQq1atJBlnh1UkMzNT58+flyRFRESY8pxhYWGSpPT0dLtxz549W+l+JfWZUQMAwHm4eyMAAN7j/Hnp6aft2/74R6l/f2vqAeCa6jzwkqROnTpJkg4fPlxh/6FDhyRJYWFhVd5F8WI2m002m63SvoyMDElS48aNHapBkr788ktJUpcuXRyqAQBgHUIvAAC8w0svSefOlT2uX196+WXr6gHgmiwJvGJiYiRJW7ZsqbB/06ZNkqTbL/3UUomRI0eqS5culY63e/duZWZmys/PT127dpUk9enTR40aNdKRI0d0+vTpcvvs379faWlpatKkiXr16uVQHQAAaxF6AQDg2f7v/6R58+zbJk2Srr7aknIAuDBLAq/o6GhFRETowIEDWrNmjV3frl27tGHDBgUHB2vUqFF2fYmJiYqJiSm902KJG2+8Ufn5+Zo1a5a+//57u75z585pxowZkqRhw4aVnuEVEBCgkSNHqri4WFOnTrW7E2NGRkbpPvHx8fLzq/VSZwCAOkLoBQCA55o4UbpoWWi1aiU99ZR19QBwXZYkOf7+/po7d65GjRqladOmaePGjWrbtq1SUlK0d+9e+fj4aObMmeUuZ8zMzKzwjpBxcXHav3+/Dhw4oDvuuEO33HKLrrzySqWlpSkpKUm5ubm66aab9NQlR8K4uDh98cUXSkpKUkxMjPr06aOioiLt3r1bP//8swYOHKgHLr31BwDA5bGQPQAAnufjj6X16+3bZs2S/ns/MgCwY9mpSx07dtT69eu1aNEiJSUl6dChQ2rUqJGio6M1duzYat02s379+nrzzTe1du1abdq0SZ9++qmys7MVEhKirl276q677tJdd90l30tu2REQEKDFixdr9erV+uCDD0oviWzfvr0mTJigYcOGycfHkpPgAAC1ROgFAIDnKCyUHnvMvq1XL+m++ywpB4AbsPRavebNm2v69OkObz906FANHTq0wj4/Pz/dd999uq+aRzw/Pz/FxsYqNja2WvsBAFwfoRcAAJ5hyRLpyBH7tvnzJc5PAFAZDg8AAI/Gml4AALi39HRp6lT7thEjpJtusqYeAO6BwAsA4PEIvQAAcF/PPSf98kvZ44YNpZkzLSsHgJsg8AIAeAVCLwAA3M+RI9KiRfZtkydLLVpYUw8A90HgBQDwGoReAAC4D5tNGj9eKioqa4uIMNoA4HIIvAAAXoXQCwAA97Bxo5SYaN82Z44UGGhNPQDcC4EXAMDrEHoBAODa8vKkCRPs2269Vbr7bkvKAeCGCLwAAF6J0AsAANc1f7707bdlj318pFdflerVs6wkAG6GwAsA4LUIvQAAcD0//CC9+KJ9W3y81LmzNfUAcE8EXgAAr0boBQCAa3nmGSkzs+xxaKj0/POWlQPATRF4AQC8HqEXAACu4fPPpRUr7NumT5d+8xtr6gHgvgi8AAAQoRcAAFaz2aRx44y/S0RGSn/5i3U1AXBfBF4AAPwXoRcAANZZvVrau9e+bd48yd/fmnoAuDcCLwAALkLoBQBA3cvJkZ54wr7tjjukgQOtqQeA+yPwAgDgEoReAADUrdmzpZSUssf+/tKcOdbVA8D9EXgBAFABQi8AAOrG6dNSQoJ927hxUvv21tQDwDMQeAEAUAlCLwAAnO+JJ6QLF8oeX3mlNGWKdfUA8AwEXgAAVIHQCwAA50lKktassW976SWpcWNr6gHgOQi8AAC4DEIvAADMV1RkXLp4sW7dpJEjLSkHgIch8AIAwAGEXgAAmOvNN6UvvrBvmz9f8vW1pBwAHobACwAABxF6AQBgjl9/lSZPtm+75x7pt7+1ph4AnofACwCAaiD0AgCg9l58Ufrxx7LHgYHS7NnW1QPA8xB4AQBQTYReAADU3IkTxqWLF3vySSk83Jp6AHgmAi8AAGqA0AsAgJp5/HGpoKDscevW0hNPWFcPAM9E4AUAQA0RegEAUD1bt0obN9q3zZ4tBQdbUw8Az0XgBQBALRB6AQDgmIICafx4+7abb5aGD7emHgCejcALAIBaIvQCAODyFi2Sjh0re1yvnrGWV7161tUEwHMReAEAYAJCLwAAKvfTT9Kzz9q3jRol3XCDNfUA8HwEXgAAmITQCwCAij37rJSRUfY4JESaMcOycgB4AQIvAABMROgFAIC9f/9bWrzYvm3KFKl5c2vqAeAdCLwAADAZoRcAAAabTRo3TiouLmu79lqjDQCcicALAAAnIPQCAED68ENp5077trlzjZ+TAOBMBF4AADgJoRcAwJtduCA9/rh9W3S0NGSINfUA8C4EXgAAOBGhFwDAW736qnTyZNljX19p3jypXj3LSgLgRQi8AABwMkIvAIC3OXtWevFF+7a//EWKirKmHgDeh8ALAIA6QOgFAPAmkydL2dllj5s0kaZPt64eAN6HwAsAgDpC6AUA8AaffSatXGnf9vzzRugFAHWFwAsAgDpE6AUA8GQ2mzRunH1bVJQUH29NPQC8F4EXAAB1jNALAOCp3nlH2r/fvu3VVyU/P0vKAeDFCLwAALAAoRcAwNNkZUlPPGHfdtdd0m23WVMPAO9G4AUAgEUIvQAAniQhwbg7Y4mAAOmVV6yrB4B3I/ACAMBChF4AAE/w/ffSyy/bt40fL7Vta0k5AEDgBQCA1Qi9AADubtIkKS+v7HHz5tIzz1hXDwCwdCAAAC6gJPQaNkzavLmsvST02rnT+PBQWCglJkrHjxtrpTRsKHXoIA0YIPn6Wlc/4C5K3kO7d1+hnBwfRUTwHgKq48IFafZs6YsvpMxMKSREuuIKad06++1eesnoAwCrEHgBAOAiqgq9fvtbo/2dd6QzZ8rvGx5u3PI9Lk4KC6u7mgF3kZYmLV0qLVlS8h5qbtfPewio2rFj0qOPGv8BU1RU9bY33CCNGFE3dQFAZbikEQAAF1LZ5Y3/93/GYsAVhV2SdPq0celIZKS0b5/z6wTcyd69xntjyhTeQ0BNLFkiRUVJH398+bBLkn7/e8mHT5oALMZhCAAAF1NZ6OWI9HTp1lv5wA6U2LvX+PCdnu7Y9ryHAHtLlkhjx0o2m+P7zJ5tnFEJAFYi8AIAwAXVry8tXiz5+1d/3wsXpCFDjEu4AG+WlibdeafxnqgO3kOA4dgx6S9/qdm+Y8ca+wOAVQi8AABwUStXSgUFNds3PV1atszcegB3s3Sp42d2XYr3EGCs2VWdM7suZrNJ48aZWw8AVAeL1gMA4IIKC43LSGrjtdek++/3rDvP/fCD8asLd/7C5RQWSq+/XrsxPPE9BOfwxGPThQvGAvW1sWOHlJ8vBQSYUxMAVAeBFwAALigxsfLFtR119qx09dWmlONC2lldALyIZ76H4BwcmypSVCTNmiVNm2Z1JQC8EZc0AgDggo4ft7oCAABq79AhqysA4K0IvAAAcEFZWVZXAABA7Z0/b3UFALwVlzQCAOCCGjY0Z5zGjc0byxUUFhqr+Pv51eD2lfAqWVnSr7/WfhxPew/BOTzx2JSeXv07nFakUaPajwEANUHgBQCAC+rQwZxx3n1XGjTInLFcwbFj/ydJioyMtLgSuLotW6TBg2s/jqe9h+Acnnhsev556dlnaz/O9dfXfgwAqAkuaQQAwAVFR0tt2tRujPBwacAAc+oB3A3vIaB2nnii9nco9fWVnnrKnHoAoLosPcPr1KlTWrJkifbt26e0tDQ1aNBA3bp108iRI9WrVy+Hx3nggQf02WefObTt9u3b1bp1a0nSrbfeqtTU1Cq379q1q9auXetwLQAAmMHPT4qPl6ZMqfkY8fG1/7ACuCveQ0DtBAZKv/ud9PHHNR/j1lulgADzagKA6rAs8Dp48KDGjBmjnJwc9ejRQ/369dO5c+e0Z88e7dy5U1OnTlVsbKxDYw0cOFDXXXddpf0FBQVavXq1/P391bCCRRiGDh1aYbsktWrVyrFvCAAAkz38sDRvnrGOSnU1bSrFxZlfE+BOeA8BtfPXv0pRUZLNVv1969WT5s83vyYAcJQlgVdubq4mTZqknJwcJSQk6O677y7tS05O1ogRIzRr1iz17NlT7dq1u+x4lwvGFi9eLJvNptGjRys0NLRc/yOPPFJ61hcAAK4iLEzauNH4H/LqLBwcGGjsFxbmvNoAd8B7CKidyEhp8WLjbMfqWrzY2B8ArGLJGl5btmxRamqq+vbtaxd2SVL37t01fPhwFRQUaOXKlbV+rpSUFC1evFgtW7bU2LFjaz0eAAB1qXdvaft242wTRzRtKu3YYewHgPcQUFsPP2yEV/XqObZ9vXrSkiXGfgBgJUsCr23btkmSYmJiKuwfOHCgJCkxMbHWz/Xiiy8qNzdXTz31lIKCgmo9HgAAda1PH+nYMWnGjMoX4Q4Pl156ydiOD+qAPd5DQO3Ex0tHjhg3g6hsXTtfX+MmD0eOEHYBcA2WXNJ49OhRSVLHjh0r7I+KipIkZWRkKCUlpcaXGyYlJWnnzp266aabSkM0AADcUViYNHmy9OST0rZt0jffSJmZUkiI1L698SGDxbWByl36HkpK+kHZ2T665poreQ8BDoiMNN47+fnSrFnSoUPS+fNSo0bS9dcbd2NkgXoArqTOA6/8/HydO3dOktSiRYsKtwkKClJoaKgyMjJ06tSpGgVeNptNc+fOlSRNmDDhstt++umnSk5OVmZmpkJDQ3XTTTfp+uuvr/bzAgDgTL6+0qBBxh8A1VfyHrr66l8kSZGRV1pcEeBeAgKkadOsrgIALq/OA6+srKzSrxs0aFDpdsHBwcrIyFB2dnaNnmfHjh06evSo+vTpo27dulW57ciRI5WSklKuvUePHpozZ46aNWtWoxoAAAAAAABQ92odeI0fP17Hjh1zaNtmzZpp1qxZpY/9/f0r3Tbgv+fD5ubm1qiuN954Q5IRZl1Oy5Yt9dJLL6lz584qLi5WUlKSEhISdODAAcXFxem9996rstYSjv47OEvJv5XVdcD9MZdgJuYTzMR8glmYSzAT8wlmYj7BLN4+l2odeKWmpurkyZMObZufn6/AwMDSxwUFBapfv36l20qq0ULzJ06c0Oeff64WLVqoX79+lW63aNEiFRYWKjIyUj4+Zev3Dxo0SFFRURoyZIiOHz+uzZs3l7ubJAAAAAAAAFxTrQOvtWvXVmv7kiBLkrKzsysNvEoufQwJCal2TR9++KEkafDgwapXxf1zO3ToUGlfeHi4Bg8erPfff1979uxxKPCKjIysbqmmKkltra4D7o+5BDMxn2Am5hPMwlyCmZhPMBPzCWbxhLl08ODBGu/rc/lNzBUQEKBWrVpJMs4Oq0hmZqbOnz8vSYqIiKj2cyQmJkqSbrnllpoV+V8li+X//PPPtRoHAAAAAAAAdafOAy9J6tSpkyTp8OHDFfYfOnRIkhQWFqbmzZtXa+wzZ87o1KlTCgwMdOgui8XFxZX2/fKLcfeexo0bV6sGAAAAAAAAWMeSwCsmJkaStGXLlgr7N23aJEm6/fbbqz12SVh27bXXli58X5E1a9aoZ8+eio+Pr7A/Ly9P27dvlyR179692nUAAAAAAADAGpYEXtHR0YqIiNCBAwe0Zs0au75du3Zpw4YNCg4O1qhRo+z6EhMTFRMTo7i4uErHPnHihCTp6quvrrKGPn36KCsrS7t379Y777xj11dUVKSEhASdPXtWTZo0YcF6AAAAAAAAN1LrRetrwt/fX3PnztWoUaM0bdo0bdy4UW3btlVKSor27t0rHx8fzZw5s9zljJmZmZe9I+QPP/wgSWrSpEmV27Vp00aTJ0/WCy+8oOnTp2vdunXq3LmzCgoK9Nlnn+nMmTNq3LixFixYUKOF8wEAAAAAAGANSwIvSerYsaPWr1+vRYsWKSkpSYcOHVKjRo0UHR2tsWPH1vguApmZmZKk4ODgy257//33q2PHjlq1apWSk5P13nvvyd/fX61bt9aYMWP04IMPqlmzZjWqAwAAAAAAANawLPCSpObNm2v69OkObz906FANHTq0ym0WLVpUrRq6deumbt26VWsfAAAAAAAAuC5L1vACAAAAAAAAnIXACwAAAAAAAB6lns1ms1ldhLs7ePCg1SUAAAAAAAB4pBtuuKHa+3CGFwAAAAAAADwKZ3gBAAAAAADAo3CGFwAAAAAAADwKgRcAAAAAAAA8CoEXAAAAAAAAPAqBFwAAAAAAADwKgRcAAAAAAAA8ip/VBaB6vv32Wy1fvlz79+/Xjz/+qICAAEVERCgmJkYPPvig6tevX63xTp06pSVLlmjfvn1KS0tTgwYN1K1bN40cOVK9evVy0ncBV2Kz2fTWW2/plVdeUV5enlatWqWePXtWa4xPP/1UDz744GW3e+6553TvvffWtFS4ATPmUwmOT97LrNeeY5P3MfO4wTHIu5nx+nMMwsXM+h2JYxOk2s8nbzk+EXi5ka1bt2rixInKz8/Xddddp969e+vXX3/VJ598oldeeUUfffSRVq1apQYNGjg03sGDBzVmzBjl5OSoR48e6tevn86dO6c9e/Zo586dmjp1qmJjY538XcFKP/30k55++mnt3r3blPGaNWumgQMHVtrfoUMHU54HrsnM+cTxyXs547Xn2OQdzJw7HIO8m9mvP8cgmPU7EscmSOb+zu3xxycb3MIPP/xgu/76623t27e3LV++3K4vNTXVdvPNN9vat29ve/XVVx0aLycnx/a73/3O1r59e9sHH3xg13fw4EFbp06dbFFRUbZvvvnGrG8BLuaTTz6x9e7d29a+fXvb888/b+vbt6+tffv2tv3791d7rP3799vat29vi42NdUKlcAdmzieOT97L7NeeY5P3MHPucAzybma+/hyDYLOZ9zsSxybYbObNJ285PrGGl5v48MMPlZOTo65du2r06NF2fS1bttRDDz0kSdq2bZtD423ZskWpqanq27ev7r77bru+7t27a/jw4SooKNDKlStNqR+u5/3331dBQYEWLlyoqVOnyt/f3+qS4MbMnE8cn7wXrz1qysy5wzz0brz+MJtZvyMxNyHxGa66CLzcRN++ffXiiy9q/PjxFfZfc801kqQffvjBofFKgrGYmJgK+0tOa0xMTKxuqXATXbt21QcffKDo6GirS4EHMHM+cXzyXrz2qCkz5w7z0Lvx+sNsZv2OxNyExGe46mINLzcRFRWlqKioSvt//PFHSdIVV1zh0HhHjx6VJHXs2LHS55OkjIwMpaSkqHXr1tUpF27ggQcesLoEeBAz5xPHJ+/Fa4+aMnPuMA+9G68/zGbW70jMTUh8hqsuAi8PYLPZtG7dOkmVJ/4Xy8/P17lz5yRJLVq0qHCboKAghYaGKiMjQ6dOneKACYdlZmZqx44d+u6771RcXKw2bdqof//+atasmdWlwQ1wfPJezn7tOTZ5LjPnDscg7+bM159jEGqDYxOcyZOPTwReHmDZsmU6dOiQQkNDFRcXd9nts7KySr+u6o6OwcHBysjIUHZ2til1wvOdOHFC/fv3Lzdn/P399fDDD+vRRx+1qDK4C45P3suZrz3HJs9m5tzhGOTdnPX6cwxCbXFsgrN4+vGJwMsC48eP17FjxxzatlmzZlUuPPjGG29o7ty58vf31/z589W4cePLjpmXl1f6dVWL3AUEBEiScnNzHaoV1jBzPtVWVlaWRo8eraFDh6ply5ZKT0/X22+/rTfffFOvvfaagoKCHAplYR2r5xPHJ89R3bk0a9as0sdmv/YcmzybmccNjkHezVmvP8cg1BbHJjiLpx+fCLwskJqaqpMnTzq0bX5+foXtNptNCQkJWrFihQICAjRnzhz16tXLoTEDAwNLvy4oKFD9+vWrfO6goCCHxoU1zJhPtRUVFaV169YpNDRUbdq0KW1v0aKFJk2apJCQEM2bN0+LFi1SbGwsc8qFWT2fOD55jurOJWe89hybvIOZc4djkHcz+/XnGASzcGyC2bzl+ETgZYG1a9fWav+8vDxNmjRJW7duVaNGjbRgwQKHwy7J/jTY7OzsSg+YJafOhoSE1KpeOFdt55MZGjZsqM6dO1faP3r0aC1atEjZ2dn64osv1KdPnzqsDtVh9Xzi+OQ5qjuXLg5QzXrtOTZ5BzOPGxyDvJvZrz/HIJiFYxPM5i3HJx+rC0D15OfnKz4+Xlu3blXr1q21evXqaoVdknGqa6tWrSQZ/wNfkczMTJ0/f16SFBERUbui4fUCAgIUFhYmSUpPT7e4Grgyjk/ey4rXnmOTZzBz7nAM8m51/fpzDIKjODahrnnK8YnAy40UFxdr0qRJ2rdvnyIjI7V69Wpde+21NRqrU6dOkqTDhw9X2H/o0CFJUlhYmJo3b16j54B3sdlsstlslfZlZGRIkkPrzMG7cXzyXs547Tk2eQcz5w7HIO9m9uvPMQhm4dgEs3nD8YnAy40sXLhQH330ka699lqtWLGiNHGtiZiYGEnSli1bKuzftGmTJOn222+v8XPAe4wcOVJdunSpdD7t3r1bmZmZ8vPzU9euXeu4Orgbjk/ey+zXnmOT9zBz7nAM8m5mvv4cg2Amjk0wk7ccnwi83MS3336rJUuWyN/fXwsXLtQVV1zh0H6JiYmKiYkpd2eF6OhoRURE6MCBA1qzZo1d365du7RhwwYFBwdr1KhRpn0PcH+Vzacbb7xR+fn5mjVrlr7//nu7vnPnzmnGjBmSpGHDhrn1/xDAXByfcKmavvYcm1CTucMxCBUxcy5xDEJNcGyCmbz9+MSi9W5i6dKlKiwsVJs2bfTuu+9Wue0jjzyi0NBQSca13BXdJcvf319z587VqFGjNG3aNG3cuFFt27ZVSkqK9u7dKx8fH82cOZPTYT1URkaGXnvttXJtkvT3v/9dH3/8cWl7bGysrrrqKkmVz6e4uDjt379fBw4c0B133KFbbrlFV155pdLS0pSUlKTc3FzddNNNeuqpp5z3TcEyZs8njk/eq6avPccm1GTucAxCRcycSxyDUJPfkTg2oTJmzidvOT4ReLmJs2fPSpLOnDmjVatWVbntiBEjSgOvqnTs2FHr16/XokWLlJSUpEOHDqlRo0aKjo7W2LFjFRkZaUbpcEFZWVmVzqOtW7faPb7ttttKA4rK1K9fX2+++abWrl2rTZs26dNPP1V2drZCQkLUtWtX3XXXXbrrrrvk6+tr2vcA12H2fJI4PnkzM197jk3excy5wzHIu5n1+nMMgtm/I3Fs8m5mzidvOT7Vs1W2ShkAAAAAAADghljDCwAAAAAAAB6FwAsAAAAAAAAehcALAAAAAAAAHoXACwAAAAAAAB6FwAsAAAAAAAAehcALAAAAAAAAHoXACwAAAAAAAB6FwAsAAAAAAAAehcALAAAAAAAAHoXACwAAAAAAAB6FwAsAAAAAAAAehcALAAAAAAAAHoXACwAAAAAAAB6FwAsAAAAAAAAehcALAAAAAAAAHoXACwAAAAAAAB6FwAsAAAAAAAAehcALAAAAAAAAHuX/A2l9NFDyp00jAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "image/png": { "height": 300, "width": 606 } }, "output_type": "display_data" } ], "source": [ "θ = np.pi / 4\n", "\n", "R = np.array([[np.cos(θ), -np.sin(θ)], [np.sin(θ), np.cos(θ)]])\n", "print(R)\n", "\n", "shape2 = R @ shape1\n", "\n", "plt.plot(shape2[0], shape2[1], '-ob')\n", "plt.axis('equal');\n", "\n", "np.save(\"mouse.npy\", shape2) # pour le prochain cours" ] }, { "cell_type": "markdown", "metadata": { "lang": "en" }, "source": [ "Orthogonal matrix so (by definition) $R.R^T = \\textrm{Id}$" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[1., 0.],\n", " [0., 1.]])" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "R @ R.T" ] }, { "cell_type": "markdown", "metadata": { "lang": "en" }, "source": [ "So the transpose is the rotation of angle -θ which is logical since sine is an odd function." ] }, { "cell_type": "markdown", "metadata": { "lang": "en" }, "source": [ "## Axial Symmetry\n", "\n", "The horizontal symmetry, which transforms (a,b) into (a,-b), is\n", "\n", "Sx =\n", "$\n", "\\begin{bmatrix}\n", "1 & 0 \\\\\n", "0 & -1 \\\\\n", "\\end{bmatrix}\n", "$\n", "\n", "We therefore see that to have an axial symmetry with respect to a straight line which passes through (0,0) it suffices to\n", "\n", "* rotate to put the axis of symmetry horizontal\n", "* apply horizontal symmetry\n", "* do the reverse rotation\n", "\n", "Thus the axial symmetry with respect to the straight line which passes through (0,0) and which has an angle of alpha is:\n", "\n", "$S = R_{-α}^{-1}\\; Sx\\; R_{-α} = R_α\\;Sx\\; R_{-α}$\n", "\n", "Note that the order of the matrices is the reverse since we apply the points **x** to the right of $S$." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[-0.766 0.643]\n", " [ 0.643 0.766]]\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "image/png": { "height": 246, "width": 383 }, "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "def Rα(α):\n", " return np.array([[np.cos(α), -np.sin(α)], [np.sin(α), np.cos(α)]])\n", "\n", "Sx = np.array([[1, 0],[0,-1]])\n", "\n", "θ = 70 * (2 * np.pi)/360 # 70 degrés\n", "\n", "shape2 = Rα(θ) @ Sx @ Rα(-θ) @ shape1\n", "\n", "print(Rα(θ) @ Sx @ Rα(-θ))\n", "\n", "plt.plot(shape1[0], shape1[1], \":\")\n", "plt.plot(shape2[0], shape2[1])\n", "plt.plot([-np.cos(θ),np.cos(θ)],[-np.sin(θ),np.sin(θ)],\"-.\") # axe de symétrie\n", "plt.axis('equal');" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 0., 1.],\n", " [ 1., -0.]])" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "θ = np.pi / 4\n", "Rα(θ) @ Sx @ Rα(-θ)" ] }, { "cell_type": "markdown", "metadata": { "lang": "en" }, "source": [ "I don't know if there is a simpler direct formula to have the axial symmetry with respect to any line that passes through (0,0)." ] }, { "cell_type": "markdown", "metadata": { "lang": "en" }, "source": [ "## Translation\n", "\n", "We cannot express the translation with a matrix product because it is not a linear map:\n", "\n", "$T(2\\;\\textbf{x}) \\ne 2\\; T(\\textbf{x})$\n", "\n", "It is also not an isometric transformation because the distance from a point to (0,0) changes after a translation.\n", "\n", "From a vector point of view a translation is an addition:\n", "\n", "$T(\\textbf{x}) = \\textbf{x} + \\textbf{v}_t$\n", "\n", "There is a trick to express the translations in the form of a matrix product: we change the representation of the points:\n", "\n", "$\\textbf{x} = (x_1, x_2)$ becomes $\\textbf{x} = (x_1, x_2, 1)$\n", "\n", "Thus the translation by the vector $(v_1, v_2)$ is\n", "\n", "$T(X) = \n", "\\begin{bmatrix}\n", "1 & 0 & v_1\\\\\n", "0 & 1 & v_2 \\\\\n", "0 & 0 & 1 \\\\\n", "\\end{bmatrix}\n", "\\begin{bmatrix}\n", "x_1 \\\\\n", "x_2 \\\\\n", "1 \\\\\n", "\\end{bmatrix}\n", "$\n", "\n", "We can verify that $T$ is indeed a linear application since $T(2\\;\\textbf{x}) = 2\\; T(\\textbf{x})$ but on arrival\n", "the new point does not follow the $(x_1, x_2, 1)$ convention." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Translate matrix:\n", " [[1. 0. 1.]\n", " [0. 1. 2.]\n", " [0. 0. 1.]]\n", "Shape1 3d:\n", " [[ 0. 0.5 0.866 1. 0.866 0.5 0. -0.5 -1. -1. -1. -0.5 0. ]\n", " [-1. -0.866 -0.5 0. 0.5 0.866 1. 1. 1. 0.5 0. -0.5 -1. ]\n", " [ 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. ]]\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "image/png": { "height": 246, "width": 376 }, "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "v = np.array([1,2])\n", "\n", "T = np.identity(3)\n", "T[0:2,2] = v\n", "print(\"Translate matrix:\\n\", T)\n", "\n", "shape1_3d = np.concatenate([shape1, np.ones((1, len(shape1[0])))], axis=0)\n", "print(\"Shape1 3d:\\n\", shape1_3d)\n", "\n", "shape2 = T @ shape1_3d\n", "\n", "plt.plot(shape1[0], shape1[1], \":\")\n", "plt.plot(shape2[0], shape2[1])\n", "plt.axis('equal');" ] }, { "cell_type": "markdown", "metadata": { "lang": "en" }, "source": [ "The inverse matrix of our translation matrix is ​​the one that puts the orange shape back in its original place, so that applies the $-\\textbf{v} = (-1,-2)$ transaction.\n", "\n", "$T^{-1} = \n", "\\begin{bmatrix}\n", "1 & 0 & -1\\\\\n", "0 & 1 & -2 \\\\\n", "0 & 0 & 1 \\\\\n", "\\end{bmatrix}\n", "$\n", "\n", "which is not the transpose of T so T is not orthogonal.\n", "\n", "The catch is that there are 2 types of isometries:\n", "\n", "* vector isometry or orthogonal automorphism which requires that $\\forall\\, \\textbf{x}, \\;||\\textbf{f}(\\textbf{x})|| = ||\\textbf{x}||$ as well as the conservation of angles\n", "* the geometric isometry that wants $\\forall\\, \\textbf{a}, \\textbf{b}, \\; ||\\textbf{f}(\\textbf{a}) - \\textbf{f}(\\textbf{b})|| = ||\\textbf{a} - \\textbf{b}||$.\n", "\n", "The translation is indeed a geometric isometry but not vectorial hence the fact that we prefer to speak\n", "orthogonal automorphism rather than isometry to avoid confusion." ] }, { "cell_type": "markdown", "metadata": { "lang": "en" }, "source": [ "## Exercise 1.1\n", "\n", "Write in the form of a matrix product the axial symmetry with respect to an axis which does not pass through (0,0).\n", "We will take the axis which passes through (2,0) and which has an angle of π/3 with respect to the horizontal.\n", "\n", "Is it an orthogonal automorphism? Show it." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ] }