539 lines (538 with data), 141.0 kB
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"# This cell is added by sphinx-gallery\n",
"# It can be customized to whatever you like\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"import pennylane as qml\n",
"from pennylane import numpy as np\n",
"from pennylane.templates import RandomLayers\n",
"import tensorflow as tf\n",
"from tensorflow import keras\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"n_epochs = 30 # Number of optimization epochs\n",
"n_layers = 1 # Number of random layers\n",
"n_train = 120 # Size of the train dataset\n",
"n_test = 30 # Size of the test dataset\n",
"\n",
"SAVE_PATH = \"imageqnn/\" # Data saving folder\n",
"PREPROCESS = True # If False, skip quantum processing and load data from SAVE_PATH\n",
"np.random.seed(0) # Seed for NumPy random number generator\n",
"tf.random.set_seed(0) # Seed for TensorFlow random number generator"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"mnist_dataset = keras.datasets.mnist\n",
"(train_images, train_labels), (test_images, test_labels) = mnist_dataset.load_data()\n",
"\n",
"# Reduce dataset size\n",
"train_images = train_images[:n_train]\n",
"train_labels = train_labels[:n_train]\n",
"test_images = test_images[:n_test]\n",
"test_labels = test_labels[:n_test]\n",
"\n",
"# Normalize pixel values within 0 and 1\n",
"train_images = train_images / 255\n",
"test_images = test_images / 255\n",
"\n",
"# Add extra dimension for convolution channels\n",
"train_images = np.array(train_images[..., tf.newaxis], requires_grad=False)\n",
"test_images = np.array(test_images[..., tf.newaxis], requires_grad=False)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"dev = qml.device(\"default.qubit\", wires=8)\n",
"# Random circuit parameters\n",
"rand_params = np.random.uniform(high=2 * np.pi, size=(n_layers, 4))\n",
"\n",
"@qml.qnode(dev, interface=\"autograd\")\n",
"def circuit(phi):\n",
" # Encoding of 4 classical input values\n",
" for j in range(4):\n",
" qml.RY(np.pi * phi[j], wires=j)\n",
"\n",
" # Random quantum circuit\n",
" RandomLayers(rand_params, wires=list(range(8)))\n",
"\n",
" # Measurement producing 4 classical output values\n",
" return [qml.expval(qml.PauliZ(j)) for j in range(8)]"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"def quanv(image):\n",
" \"\"\"Convolves the input image with many applications of the same quantum circuit.\"\"\"\n",
" out = np.zeros((14, 14, 4))\n",
"\n",
" # Loop over the coordinates of the top-left pixel of 2X2 squares\n",
" for j in range(0, 28, 2):\n",
" for k in range(0, 28, 2):\n",
" # Process a squared 2x2 region of the image with a quantum circuit\n",
" q_results = circuit(\n",
" [\n",
" image[j, k, 0],\n",
" image[j, k + 1, 0],\n",
" image[j + 1, k, 0],\n",
" image[j + 1, k + 1, 0]\n",
" ]\n",
" )\n",
" # Assign expectation values to different channels of the output pixel (j/2, k/2)\n",
" for c in range(4):\n",
" out[j // 2, k // 2, c] = q_results[c]\n",
" return out"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Quantum pre-processing of train images:\n",
"120/120 \n",
"Quantum pre-processing of test images:\n",
"30/30 \r"
]
}
],
"source": [
"if PREPROCESS == True:\n",
" q_train_images = []\n",
" print(\"Quantum pre-processing of train images:\")\n",
" for idx, img in enumerate(train_images):\n",
" print(\"{}/{} \".format(idx + 1, n_train), end=\"\\r\")\n",
" q_train_images.append(quanv(img))\n",
" q_train_images = np.asarray(q_train_images)\n",
"\n",
" q_test_images = []\n",
" print(\"\\nQuantum pre-processing of test images:\")\n",
" for idx, img in enumerate(test_images):\n",
" print(\"{}/{} \".format(idx + 1, n_test), end=\"\\r\")\n",
" q_test_images.append(quanv(img))\n",
" q_test_images = np.asarray(q_test_images)\n",
"\n",
" # Save pre-processed images\n",
" np.save(SAVE_PATH + \"q_train_images.npy\", q_train_images)\n",
" np.save(SAVE_PATH + \"q_test_images.npy\", q_test_images)\n",
"\n",
"\n",
"# Load pre-processed images\n",
"q_train_images = np.load(SAVE_PATH + \"q_train_images.npy\")\n",
"q_test_images = np.load(SAVE_PATH + \"q_test_images.npy\")"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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trZWa9euVW5ursHKAAAAAABuMrrH9NChQ/r0008b7peUlGjLli1q3769unTpooKCAs2cOVM5OTnKycnRzJkz1a5dO11//fUGqwYAAAAAuCmsPaZFRUX6+uuvg+LffPONioqKbK+zceNGnXPOOTrnnHMkSZMmTdI555yj3/72t5Kku+++WwUFBRo/frwGDBigPXv26PXXX1dSUlI4ZQMAAAAAolBYg+mMGTNCfo/p66+/1owZM2yvM3ToUFmWFXRbsmSJpG9PfFRYWKiysjIdOXJEa9euVe/evcMpGQAAAAAQpcIaTJs6M+4HH3yg9u3bN7soAAAAAED8cPQd09NOO00+n08+n089evRoNJzW1dXp0KFDGjt2rOtFIjyFhYUh4/379w+KDRkyJGTupZdeGjL++uuvh10XEMuaOuv3ww8/HDIe6kyjNTU1IXNHjx4dMr5x48agmJfOVNqlSxfTJSAK/OAHP7Cdu3Xr1ghW4h2h/l1q6soG//d//xcUa+rfKiAeZGdnh4y/8MILzV770UcfDRl/4403mr12LHM0mM6fP1+WZemWW27RjBkzGl3yIDExUdnZ2Ro0aJDrRQIAAAAAvMvRYDpmzBhJ317KJTc3V23atIlIUQAAAACA+BHW5WK6du0a8oLvx3FYFgAAAADArrAG0+zs7JAnPzqurq4u7IIAAAAAAPElrMF08+bNje4fPXpUmzdv1rx58/TAAw+4Uhia7/DhwyHjP/vZz4Jif//730PmPvXUUyHjob6cHeoELZL02GOPhYxblhUyDkSz49dd/q5QJzlqyr//+7+HjK9duzasmoB4s2HDBtMlRFxycnJQbMSIESFzf/rTn4aM5+Xl2f559913X1CssrLS9vMBr2mq384++2zba6xZsyZk/He/+11YNXldWINp3759g2IDBgxQenq6HnroIY0aNarZhQEAAAAA4kNY1zFtSo8ePeLiU0wAAAAAgHvC2mNaXV3d6L5lWSorK1NhYaFycnJcKQwAAAAAEB/CGkxPPfXUoJMfWZalzMxMLV++3JXCAAAAAADxIazB9LsnvmnVqpU6duyoM888U61bh7UkAAAAACBOhTVFDhkyxO060II+++yzoNhNN90UMvfpp58OGb/xxhttxSTp5JNPDhlftmxZUOz7ro8LRIN58+aFjDd1Ca1QZ9qNh7PvtmoVfAqD+vp6A5XAi9q3bx+xtUOd4LGp/r700ktDxjMyMoJiiYmJIXNvuOGGkPFQPfTNN9+EzH3vvfdCxgOBQFCsqR0ImzZtChkH4sHIkSODYrNnz3a0xttvvx0UGzNmTMjcqqoqR2vHi7B3b+7YsUOPPvqotm/fLp/Pp549e2rixInq2bOnm/UBAAAAADwurLPyPv/88+rdu7c2bdqkvn376uyzz9bf//539enTR//zP//jdo0AAAAAAA8La4/p3XffrSlTpqioqKhRfPr06brnnnv0H//xH64UBwAAAADwvrD2mJaXl2v06NFB8Z/+9KcqLy9vdlEAAAAAgPgR1mA6dOhQvfXWW0Hxt99+WxdddFGziwIAAAAAxI+wDuW98sordc8992jTpk264IILJEnvvvuu/ud//kczZszQ6tWrG+Ui+q1cuTJkfOfOnSHjoc5Meskll4TMnTlzZsh4VlZWUOyBBx4Imbtnz56QcSCSLr/88qBYv379QuZalhUy/q//HsaTUGfgbervaMuWLRGuBrGgqTPOhnrfPPHEEyFzf/Ob3zS7jrPPPjso1tRZeY8dOxYy/vXXXwfFtm3bFjL3v/7rv0LGN27cGBRr6ozeX375Zcj47t27g2Jt27YNmfvJJ5+EjANekp2dHTL+wgsvNHvtf/zjH0GxpnoToYU1mI4fP16StGjRIi1atCjkY9K3/5DX1dU1ozwAAAAAgNeFNZhyLToAAAAAgFvC+o4pAAAAAABuCWuPqSStWbNGa9as0b59+4L2oDb1fQkAAAAAAL4rrMF0xowZKioq0oABA9S5c+cmTwqA2Pfxxx+HjP/nf/5nUOyKK64Imfv000+HjN9+++1BsZycnJC5w4cPb6pEIGJCnSQkMTExZO6+fftCxlesWOFqTSb5/f6gWGFhoe3n//Wvfw0ZnzJlSrglwUP+9RwV/+qLL74IiuXm5kasjl27dgXFVq1aFTJ3+/btIePvvvuumyWd0M9//vOQ8Y4dOwbFQp2gBYgX99xzT8i4G19TnD17drPXiHdhDaZPPPGElixZohtvvNHtegAAAAAAcSas75jW1tZG9NNKAAAAAED8CGswve222/Tss8+6XQsAAAAAIA6FdSjvkSNHtHjxYv3lL3/R2WefrTZt2jR6fN68ea4UBwAAAADwvrAG0w8//FD9+vWT1PTJcQAAAAAAsCOswfSNN95wuw7EmMrKyqDYM888EzL397//fch469bBb7+LL744ZO7QoUODYm+++WaT9QEtLRAIhIyXlZW1cCXNF+rsu5J07733BsUmT54cMnf37t1Bsblz54bMPXTokIPqEG8efPBB0yVEvUsuucR27gsvvBDBSoDocHwH2nfl5eU1e+2XXnopZHzHjh3NXjveORpMR40adcIcn8/HP3oAAAAAANscDaYpKSmRqgMAAAAAEKccDaZPP/10pOoAAAAAAMSpsC4XAwAAAACAWxhMAQAAAABGhXVWXsSPs88+O2T8Jz/5SVDsvPPOC5kb6uy7Tdm2bVvI+Lp162yvAZiwevVq0yU41tRZC5s60+4111wTFGvq7IRXX3112HUBiJyVK1eaLgGIuNdffz1k/LTTTrO9xrvvvhsyftNNN4VTEmxgjykAAAAAwCgGUwAAAACAUQymAAAAAACjGEwBAAAAAEZx8qM49IMf/CAoNnHixJC5o0aNChlPS0trdh11dXVBsbKyspC59fX1zf55gFM+n89WTJJGjhwZMn7nnXe6WVLYfvnLXwbFpk2bFjI3JSUlZPyPf/xjUGz06NHNKwwAAJedfvrpIeNO/j+5aNGikPFDhw6FVRNOjD2mAAAAAACjGEwBAAAAAEYxmAIAAAAAjGIwBQAAAAAYZXQwnTVrls477zwlJSWpU6dOGjlypHbs2NEox7IsFRYWKj09XW3bttXQoUO1detWQxUDAAAAANxm9Ky8a9eu1YQJE3Teeefp2LFjmjp1qvLy8rRt2zadfPLJkqQ5c+Zo3rx5WrJkiXr06KH7779fw4cP144dO5SUlGSy/KjR1Blyr7vuupDxUGfgzc7OdrOkRjZu3Bgy/sADDwTFVq9eHbE6AKcsy7IVk5ruwwULFgTF/uu//itk7oEDB0LGL7jggqDYjTfeGDK3b9++IeMZGRlBsV27doXMfe2110LGmzpDIYDoFOos4j169AiZ++6770a6HCAinn766aBYq1bN3/e2fv36Zq8BZ4wOpq+++mqj+08//bQ6deqkTZs26eKLL5ZlWZo/f76mTp3acNmSpUuXKjU1Vc8++6xuv/12E2UDAAAAAFwUVd8xraqqkiS1b99eklRSUqLy8nLl5eU15Pj9fg0ZMqTJTzECgYCqq6sb3QAAAAAA0StqBlPLsjRp0iRdeOGF6t27tySpvLxckpSamtooNzU1teGx75o1a5ZSUlIabpmZmZEtHAAAAADQLFEzmE6cOFEffvihnnvuuaDHvvsdCcuyQn5vQpKmTJmiqqqqhltpaWlE6gUAAAAAuMPod0yP+8UvfqHVq1dr3bp1jU7QcfxkIuXl5ercuXNDfN++fUF7UY/z+/3y+/2RLbgFNLV9//Zv/xYUW7hwYcjcnj17ulrTv3rvvfeCYg899FDI3JdeeilkvL6+3tWaAJMSEhJCxsePHx8Uu/rqq0PmNvXVg5ycnPAL+/+F+vrDG2+8ETL3t7/9bbN/HgDzQp2szY2TwgAm9OvXL2T80ksvDYo19X/M2trakPHHHnssKPbll1/aLw6uMPqvk2VZmjhxol588UX99a9/VdeuXRs93rVrV6Wlpam4uLghVltbq7Vr1yo3N7elywUAAAAARIDRPaYTJkzQs88+q5deeklJSUkN3xtNSUlR27Zt5fP5VFBQoJkzZyonJ0c5OTmaOXOm2rVrp+uvv95k6QAAAAAAlxgdTB9//HFJ0tChQxvFn376ad10002SpLvvvlvffPONxo8fr4MHD2rgwIF6/fXXuYYpAAAAAHiE0cG0qQvV/yufz6fCwkIVFhZGviAAAAAAQIvjG/AAAAAAAKOi4qy88aJ9+/ZBsSeffDJkblNnHuvWrZubJTUIdcZOSZo7d27I+GuvvRYU++abb1ytCTDtnXfeCYpt2LAhZO55551ne93jZxz/rqbOxh3KgQMHQsaXL18eMn7nnXfaXhuAdw0aNChkfMmSJS1bCODQqaeeGjLe1O/UUPbs2RMyftddd4VTElzGHlMAAAAAgFEMpgAAAAAAoxhMAQAAAABGMZgCAAAAAIxiMAUAAAAAGMVZeZtp4MCBQbHJkyeHzD3//PODYmeccYbrNR339ddfh4wvWLAgKDZz5syQuYcPH3a1JiCW7N69Oyg2atSokLm33357yPi9997b7Dp+97vfBcUef/zxkLmffvpps38eAG/w+XymSwAA29hjCgAAAAAwisEUAAAAAGAUgykAAAAAwCgGUwAAAACAUZz8qJmuuuoqWzGntm3bFjL+v//7v0GxY8eOhcydO3duyHhlZWXYdQHxrqysLGS8sLDQURwA3PLKK6+EjP/Hf/xHC1cCRM4nn3wSMr5+/fqg2IUXXhjpchAB7DEFAAAAABjFYAoAAAAAMIrBFAAAAABgFIMpAAAAAMAoBlMAAAAAgFE+y7Is00VEUnV1tVJSUkyXgThUVVWl5ORk02XEHHoWptCz4aFnYQo9Gx56FqacqGfZYwoAAAAAMIrBFAAAAABgFIMpAAAAAMAoBlMAAAAAgFEMpgAAAAAAoxhMAQAAAABGMZgCAAAAAIxiMAUAAAAAGMVgCgAAAAAwisEUAAAAAGAUgykAAAAAwCgGUwAAAACAUQymAAAAAACjGEwBAAAAAEYxmAIAAAAAjPL8YGpZlukSEKd474WHvzeYwnsvPPy9wRTee+Hh7w2mnOi95/nBtKamxnQJiFO898LD3xtM4b0XHv7eYArvvfDw9wZTTvTe81ke/9ikvr5ee/fuVVJSkmpqapSZmanS0lIlJyebLs111dXVbF8UsCxLNTU1Sk9PV6tWnv/sx3X0rHfEyvbRs81Dz3pHrGwfPds89Kx3xMr22e3Z1i1YkxGtWrVSRkaGJMnn80mSkpOTo/rFay62z7yUlBTTJcQsetZ7YmH76Nnw0bPeEwvbR8+Gj571nljYPjs9y8dMAAAAAACjGEwBAAAAAEbF1WDq9/s1ffp0+f1+06VEBNsHr/H6a872wWu8/pqzffAar7/mbF9s8fzJjwAAAAAA0S2u9pgCAAAAAKIPgykAAAAAwCgGUwAAAACAUQymAAAAAACj4mYwXbRokbp27aqTTjpJ/fv311tvvWW6pLCtW7dOV1xxhdLT0+Xz+bRq1apGj1uWpcLCQqWnp6tt27YaOnSotm7daqZYh2bNmqXzzjtPSUlJ6tSpk0aOHKkdO3Y0yonl7YN99GxsvKfpWRznlZ71cr9K9Cz+iZ6NDfHUs3ExmK5YsUIFBQWaOnWqNm/erIsuukj5+fnatWuX6dLCcvjwYfXt21cLFy4M+ficOXM0b948LVy4UBs2bFBaWpqGDx+umpqaFq7UubVr12rChAl69913VVxcrGPHjikvL0+HDx9uyInl7YM99GzsvKfpWUje6lkv96tEz+Jb9GzsvJ/jqmetOHD++edbY8eObRTr2bOn9etf/9pQRe6RZK1cubLhfn19vZWWlmbNnj27IXbkyBErJSXFeuKJJwxU2Dz79u2zJFlr1661LMt724fQ6NnYfU/Ts/HJqz3r9X61LHo2XtGzsft+9nLPen6PaW1trTZt2qS8vLxG8by8PK1fv95QVZFTUlKi8vLyRtvr9/s1ZMiQmNzeqqoqSVL79u0leW/7EIyeje33ND0bf+KpZ734fqZn4w89G9vvZy/3rOcH04qKCtXV1Sk1NbVRPDU1VeXl5Yaqipzj2+SF7bUsS5MmTdKFF16o3r17S/LW9iE0elYN92Nte+nZ+BRPPeu19zM9G5/o2djdVq/3bGvTBbQUn8/X6L5lWUExL/HC9k6cOFEffvih3n777aDHvLB9+H7x9hp7YXvp2fgWT6+xV7aVno1v8fQae2Vbvd6znt9j2qFDByUkJAR9YrBv376gTxa8IC0tTZJifnt/8YtfaPXq1XrjjTeUkZHREPfK9qFp9Oy3Ym176dn4FU8966X3Mz0bv+jZ2NzWeOhZzw+miYmJ6t+/v4qLixvFi4uLlZuba6iqyOnatavS0tIabW9tba3Wrl0bE9trWZYmTpyoF198UX/961/VtWvXRo/H+vbhxOjZ2HpP07OIp571wvuZngU9G1vv57jq2ZY915IZy5cvt9q0aWP94Q9/sLZt22YVFBRYJ598svX555+bLi0sNTU11ubNm63Nmzdbkqx58+ZZmzdvtr744gvLsixr9uzZVkpKivXiiy9aH330kXXddddZnTt3tqqrqw1XfmLjxo2zUlJSrDfffNMqKytruH399dcNObG8fbCHno2d9zQ9C8vyVs96uV8ti57Ft+jZ2Hk/x1PPxsVgalmW9dhjj1lZWVlWYmKide655zacYjkWvfHGG5akoNuYMWMsy/r2tNHTp0+30tLSLL/fb1188cXWRx99ZLZom0JtlyTr6aefbsiJ5e2DffRsbLyn6Vkc55We9XK/WhY9i3+iZ2NDPPWsz7Isy/39sAAAAAAA2OP575gCAAAAAKIbgykAAAAAwCgGUwAAAACAUQymAAAAAACjGEwBAAAAAEYxmAIAAAAAjGIwBQAAAAAYxWAKAAAAADCKwRQAAAAAYBSDKQAAAADAKAZTAAAAAIBRDKYAAAAAAKMYTAEAAAAARjGYAgAAAACMYjAFAAAAABjFYAoAAAAAMIrBFAAAAABgVGvTBURafX299u7dq6SkJPl8PtPlIA5YlqWamhqlp6erVSs++3GKnkVLo2ebh55FS6Nnm4eeRUuz27OeH0z37t2rzMxM02UgDpWWliojI8N0GTGHnoUp9Gx46FmYQs+Gh56FKSfq2ZgYTBctWqSHHnpIZWVl6tWrl+bPn6+LLrrI1nOTkpIkffsXkZycHMkyAUlSdXW1MjMzG957cIaeRUujZ5uHnkVLo2ebh55FS7Pbs1E/mK5YsUIFBQVatGiRBg8erCeffFL5+fnatm2bunTpcsLnHz9EITk5meZDi+LwmPDQszCFng0PPQtT6Nnw0LMw5UQ9G/UH5s+bN0+33nqrbrvtNp111lmaP3++MjMz9fjjj5suDQAAAADggqgeTGtra7Vp0ybl5eU1iufl5Wn9+vUhnxMIBFRdXd3oBgAAAACIXlE9mFZUVKiurk6pqamN4qmpqSovLw/5nFmzZiklJaXhxpe7AQAAACC6RfVgetx3j0e2LKvJY5SnTJmiqqqqhltpaWlLlAgAAAAACFNUn/yoQ4cOSkhICNo7um/fvqC9qMf5/X75/f6WKA8AAAAA4IKo3mOamJio/v37q7i4uFG8uLhYubm5hqoCAAAAALgpqveYStKkSZN04403asCAARo0aJAWL16sXbt2aezYsaZLAwAAAAC4IOoH02uuuUYHDhxQUVGRysrK1Lt3b7388svKysoyXRoAAAAAwAVRP5hK0vjx4zV+/HjTZQAAAAAAIiCqv2MKAAAAAPA+BlMAAAAAgFEMpgAAAAAAoxhMAQAAAABGMZgCAAAAAIxiMAUAAAAAGMVgCgAAAAAwisEUAAAAAGAUgykAAAAAwCgGUwAAAACAUa1NFwAAMGPkyJERW3vVqlURWxsAAHgPe0wBAAAAAEYxmAIAAAAAjGIwBQAAAAAYxWAKAAAAADCKwRQAAAAAYBSDKQAAAADAKAZTAAAAAIBRDKYAAAAAAKMYTAEAAAAARrW2k7RgwQLHC998881KSkpy/DwAAAAAQHyxNZgWFBQoIyNDCQkJthYtLS3V5ZdfzmDaDEeOHLGd+5e//MXR2g8//LDt3LVr1zpa24mTTjrJdq6Tv4/s7GzbuSUlJbZzgVjgpK8CgYCjtVu3tvUrQ5K0a9cu27ldunRxVAfiy2effWY7t3v37hGsxNuc/N/g5z//ue3c5OTkcMoB4lKrVvYPZrUsKyK5Jtn+X8bGjRvVqVMnW7kMpAAAAAAAu2yN5dOnT9cpp5xie9Hf/OY3at++fdhFAQAAAADih609ptOnT3e06JQpU8IqBgAAAAAQf+x/Yehf1NXVqaKiQj6fT6effrrt754CAAAAAPBdji4Xs3LlSg0ePFjt2rVTenq6OnfurHbt2mnw4MFatWpVhEoEAAAAAHiZ7cH0ySef1LXXXquzzz5bK1as0Ntvv6233npLK1as0Nlnn61rr71WTz31VCRrBQAAAAB4kO1DeR966CEtWrRIt956a9BjI0eO1HnnnacHHnhAP/vZz1wtEAAAAADgbbb3mO7Zs0cXXnhhk4/n5uZq7969rhQFAAAAAIgftgfTXr16afHixU0+/tRTT6lXr16uFAUAAAAAiB+2D+WdO3eufvzjH+vVV19VXl6eUlNT5fP5VF5eruLiYn3xxRd6+eWXI1krAAAAAMCDbA+mQ4YM0ccff6zHH39c7777rsrLyyVJaWlpuvzyyzV27FhlZ2dHqs6407FjR9u5hw4dilgdXbp0sZ27a9cuR2t/8803TssB4pLP5zNdgiTp+eeft52blZVlO9eyrHDKQZzo27ev7dxI/j70usmTJ9vOveuuuyJYCeAd27Ztc5Tv5Pfh119/7bScqOfoOqbZ2dl68MEHI1ULAAAAACAOObqOKQAAAAAAbmMwBQAAAAAYxWAKAAAAADCKwRQAAAAAYBSDKQAAAADAKNcG05deeknLli1zazkAAAAAQJxwbTC95557dPPNN7u1HAAAAAAgTji6jun3+eSTT9xaCgAAAAAQR/iOKQAAAADAqLD2mFZWVur999/Xvn37VF9f3+ix0aNHu1JYvKupqYnY2j6fz3buF198EbE6gHiVkJAQsbW/+2/y93n44Ycdrf3v//7vTsux5csvv7Sdm5qaGpEaEL0OHz5sugQACEuvXr0c5ffs2dN2btu2bZ2WE/UcD6Z/+tOfdMMNN+jw4cNKSkpqNOT4fD4GUwAAAACAI44P5f3Vr36lW265RTU1NaqsrNTBgwcbbl999ZWrxRUWFsrn8zW6paWlufozAAAAAABmOd5jumfPHt1xxx1q165dJOoJ0qtXL/3lL39puB/JQ+AAAAAAAC3P8WB62WWXaePGjerWrVsk6gnSunVr9pICAAAAgIfZGkxXr17d8Ocf//jHmjx5srZt26Y+ffqoTZs2jXKvvPJKVwvcuXOn0tPT5ff7NXDgQM2cOfN7h+JAIKBAINBwv7q62tV6AAAAAADusjWYjhw5MihWVFQUFPP5fKqrq2t2UccNHDhQy5YtU48ePfTll1/q/vvvV25urrZu3arTTz895HNmzZqlGTNmuFYDAAAAACCybJ38qL6+3tbNzaFUkvLz83X11VerT58+uvTSS/XnP/9ZkrR06dImnzNlyhRVVVU13EpLS12tCQAAAADgrrCuY2rKySefrD59+mjnzp1N5vj9fvn9/hasCgAAAADQHI4vF3PHHXdowYIFQfGFCxeqoKDAjZqaFAgEtH37dnXu3DmiPwcAAAAA0HIcD6YvvPCCBg8eHBTPzc3V888/70pRx911111au3atSkpK9N577+knP/mJqqurNWbMGFd/DgAAAADAHMeH8h44cEApKSlB8eTkZFVUVLhS1HG7d+/Wddddp4qKCnXs2FEXXHCB3n33XWVlZbn6cwAAAAAA5jgeTM8880y9+uqrmjhxYqP4K6+84vq1TZcvX+7qevhWjx49bOd+/PHHtnN79+4dTjmAJ5x33nkRW/vYsWO2c30+n+3cyZMnh1OO6y644ALbuSUlJRGsBPCWH/3oR7Zzk5OTI1gJ4B1paWkRW3v79u0RWzsWOB5MJ02apIkTJ2r//v0aNmyYJGnNmjWaO3eu5s+f73Z9AAAAAACPczyY3nLLLQoEAnrggQd03333SZKys7P1+OOPa/To0a4XCAAAAADwtrAuFzNu3DiNGzdO+/fvV9u2bXXKKae4XRcAAAAAIE406zqmHTt2dKsOAAAAAECcsnW5mHPPPVcHDx60veiFF16oPXv2hF0UAAAAACB+2NpjumXLFn3wwQdq3769rUW3bNmiQCDQrMIAAAAAAPHB9qG8l1xyiSzLspXr5HIFAAAAAID4ZmswDee6cRkZGY6fAwAAAACIP7YG06ysrEjXAQAAAACIU7ZOfgQAAAAAQKQ063IxiE07duywnZuQkGA7t76+3lEdTk6QlZiY6GhtoKVt3LjRdq7d7+sDiA779u1zlD9t2jTbuU899ZTtXCe/kyWprq7Odq6Tqy8AXvPOO+/Yzv3yyy9t59bW1oZTTtxijykAAAAAwCgGUwAAAACAUY4H027duunAgQNB8crKSnXr1s2VogAAAAAA8cPxYPr555+H/M5CIBDQnj17XCkKAAAAABA/bJ/8aPXq1Q1/fu2115SSktJwv66uTmvWrFF2drarxQEAAAAAvM/2YDpy5EhJks/n05gxYxo91qZNG2VnZ2vu3LmuFgcAAAAA8D7bg+nxS4F07dpVGzZsUIcOHSJWFAAAAAAgfji+jmlJSUkk6gAAAAAAxCnHg2lRUdH3Pv7b3/427GIAAAAAAPHH8WC6cuXKRvePHj2qkpIStW7dWt27d2cwBQAAAAA44ngw3bx5c1CsurpaN910k6666ipXikL0CHVpoKb87//+r6O1/X6/7VzLshytDbhh7dq1tnMTExMjWIm3/eMf/zBdAqKYkxMrDhw4MCI13HPPPY7yn3zyyYjkOuXz+Wzn/uvVFoB4k5ubG5F127RpE5F1vcrxdUxDSU5OVlFRkaZNm+bGcgAAAACAOOLKYCpJlZWVqqqqcms5AAAAAECccHwo74IFCxrdtyxLZWVleuaZZzRixAjXCgMAAAAAxAfHg+kjjzzS6H6rVq3UsWNHjRkzRlOmTHGtMAAAAABAfOA6pgAAAAAAo5r1HdPS0lLt3r3brVoAAAAAAHHI8WB67NgxTZs2TSkpKcrOzlZWVpZSUlJ077336ujRo5GoEQAAAADgYY4P5Z04caJWrlypOXPmaNCgQZKkd955R4WFhaqoqNATTzzhepEAAAAAAO9yPJg+99xzWr58ufLz8xtiZ599trp06aJrr72WwRQAAAAA4IjjQ3lPOukkZWdnB8Wzs7OVmJjoRk0AAAAAgDjieDCdMGGC7rvvPgUCgYZYIBDQAw88oIkTJ7paHAAAAADA+xwfyrt582atWbNGGRkZ6tu3ryTpgw8+UG1trS655BKNGjWqIffFF190r1IYUVFRYTv33nvvjWAlQHQbPXq06RIc279/v6P8Tp062c61LMtpOUBIkyZNikguAO9q06ZNxNaur6+P2NrxzvFgeuqpp+rqq69uFMvMzHStIAAAAABAfHE8mD799NORqAMAAAAAEKccf8d02LBhqqysDIpXV1dr2LBhbtQEAAAAAIgjjgfTN998U7W1tUHxI0eO6K233nKlKAAAAABA/LB9KO+HH37Y8Odt27apvLy84X5dXZ1effVVnXHGGe5WBwAAAADwPNuDab9+/eTz+eTz+UIestu2bVs9+uijrhYHAAAAAPA+24NpSUmJLMtSt27d9P7776tjx44NjyUmJqpTp05KSEiISJEAAAAAAO+yPZhmZWVJ4to9AAAAAAB3Ob5czLJly7738Vi8yDwAAAAAwBzHg+mdd97Z6P7Ro0f19ddfKzExUe3atWMwBQAAAAA44ngwPXjwYFBs586dGjdunCZPnuxKUXDm6NGjjvJPO+0027mHDx92Wo5t7733XsTWBlra73//e9u5M2fOdLT2tm3bbOeOGDHCdq7P53NUx65duxzlAwBgwrFjxyK2ttPfnbDP8XVMQ8nJydHs2bOD9qYCAAAAAHAirgymkpSQkKC9e/c6es66det0xRVXKD09XT6fT6tWrWr0uGVZKiwsVHp6utq2bauhQ4dq69atbpUMAAAAAIgCjg/lXb16daP7lmWprKxMCxcu1ODBgx2tdfjwYfXt21c333yzrr766qDH58yZo3nz5mnJkiXq0aOH7r//fg0fPlw7duxQUlKS09IBAAAAAFHI8WA6cuTIRvd9Pp86duyoYcOGae7cuY7Wys/PV35+fsjHLMvS/PnzNXXqVI0aNUqStHTpUqWmpurZZ5/V7bffHvJ5gUBAgUCg4X51dbWjmgAAAAAALcvxobz19fWNbnV1dSovL9ezzz6rzp07u1ZYSUmJysvLlZeX1xDz+/0aMmSI1q9f3+TzZs2apZSUlIZbZmamazUBAAAAANwX9ndMKyoqdODAATdraaS8vFySlJqa2iiempra8FgoU6ZMUVVVVcOttLQ0YjUCAAAAAJrP0WBaWVmpCRMmqEOHDkpNTVWnTp3UoUMHTZw4UZWVlREp8LunZLYs63tP0+z3+5WcnNzoBgAAAACIXra/Y/rVV19p0KBB2rNnj2644QadddZZsixL27dv15IlS7RmzRqtX7/e0TUyv09aWpqkb/ec/ushwvv27QvaiwoAAAAAiF22B9OioiIlJibqs88+CxoMi4qKlJeXp6KiIj3yyCOuFNa1a1elpaWpuLhY55xzjiSptrZWa9eu1YMPPujKzwAAAAAAmGf7UN5Vq1bp4YcfDrm3Mi0tTXPmzNHKlSsd/fBDhw5py5Yt2rJli6RvT3i0ZcsW7dq1Sz6fTwUFBZo5c6ZWrlypjz/+WDfddJPatWun66+/3tHPAQAAAABEL9t7TMvKytSrV68mH+/du/f3npQolI0bN+qHP/xhw/1JkyZJksaMGaMlS5bo7rvv1jfffKPx48fr4MGDGjhwoF5//fWYvYZpXV2d7dxTTz3Vdu6hQ4fCqMae7zsD8ncNGjQoYnUAJlxwwQURWbdTp04RWVeSbrvtNtu5Tz31VMTqAADATTt37ozY2pZlRWxt2Gd7MO3QoYM+//xzZWRkhHy8pKREp59+uqMfPnTo0O99I/h8PhUWFqqwsNDRugAAAACA2GH7UN4RI0Zo6tSpqq2tDXosEAho2rRpGjFihKvFAQAAAAC8z/Ye0xkzZmjAgAHKycnRhAkT1LNnT0nStm3btGjRIgUCAT3zzDMRKxQAAAAA4E22B9OMjAy98847Gj9+vKZMmdJwCK7P59Pw4cO1cOFCZWZmRqxQAAAAAIA32R5MpW8v4fLKK6/o4MGDDV9APvPMM9W+ffuIFAcAAAAA8D5Hg+lxp512ms4//3y3awEAAAAAxCHbJz8CAAAAACASGEwBAAAAAEYxmAIAAAAAjGIwBQAAAAAYFdbJj/BPkyZNsp37yCOP2M497bTTbOf++te/tp0rSbNmzXKUD8Qrv99vO/f4JbQAAID7srOzTZeACGOPKQAAAADAKAZTAAAAAIBRDKYAAAAAAKMYTAEAAAAARjGYAgAAAACMYjAFAAAAABjFYAoAAAAAMIrBFAAAAABgFIMpAAAAAMAoBlMAAAAAgFEMpgAAAAAAo1qbLiDWzZs3LyK5AAAAzWFZlukSANe0adPGdi7v/djEHlMAAAAAgFEMpgAAAAAAoxhMAQAAAABGMZgCAAAAAIxiMAUAAAAAGMVgCgAAAAAwisEUAAAAAGAUgykAAAAAwCgGUwAAAACAUa1NFxBplmVJkqqrqw1Xgnhx/L12/L0HZ+hZtDR6tnnoWbQ0erZ56Fm0NLs96/nBtKamRpKUmZlpuBLEm5qaGqWkpJguI+bQszCFng0PPQtT6Nnw0LMw5UQ967M8/nFTfX299u7dq6SkJPl8voZ4dXW1MjMzVVpaquTkZIMVRgbbZ45lWaqpqVF6erpateJoeafoWbavpdGzzROqZ6P59XaL17cxmrePnm2eeOxZr2+fFN3baLdnPb/HtFWrVsrIyGjy8eTk5Kh78dzE9pnBJ7jho2fZPhPo2fB9X89G6+vtJq9vY7RuHz0bvnjuWa9vnxS922inZ/mYCQAAAABgFIMpAAAAAMCouB1M/X6/pk+fLr/fb7qUiGD74DVef83ZPnhJPLzeXt9Gr28fGvP66+317ZO8sY2eP/kRAAAAACC6xe0eUwAAAABAdGAwBQAAAAAYxWAKAAAAADCKwRQAAAAAYFRcDqaLFi1S165dddJJJ6l///566623TJfkisLCQvl8vka3tLQ002WFbd26dbriiiuUnp4un8+nVatWNXrcsiwVFhYqPT1dbdu21dChQ7V161YzxSKi6NnYQM/iOHo2NtCzOI6ejQ1e79m4G0xXrFihgoICTZ06VZs3b9ZFF12k/Px87dq1y3RprujVq5fKysoabh999JHpksJ2+PBh9e3bVwsXLgz5+Jw5czRv3jwtXLhQGzZsUFpamoYPH66ampoWrhSRRM/GDnoWEj0bS+hZSPRsLPF8z1px5vzzz7fGjh3bKNazZ0/r17/+taGK3DN9+nSrb9++psuICEnWypUrG+7X19dbaWlp1uzZsxtiR44csVJSUqwnnnjCQIWIFHo2NtGz8YuejU30bPyiZ2OTF3s2rvaY1tbWatOmTcrLy2sUz8vL0/r16w1V5a6dO3cqPT1dXbt21bXXXqt//OMfpkuKiJKSEpWXlzd6Lf1+v4YMGeKZ1xL0rJfQs/GBnvUOejY+0LPe4YWejavBtKKiQnV1dUpNTW0UT01NVXl5uaGq3DNw4EAtW7ZMr732mp566imVl5crNzdXBw4cMF2a646/Xl59LfEtetY76Nn4QM96Bz0bH+hZ7/BCz7Y2XYAJPp+v0X3LsoJisSg/P7/hz3369NGgQYPUvXt3LV26VJMmTTJYWeR49bVEY159nelZ77yWaMyrrzM9653XEo159XWmZ2PrtYyrPaYdOnRQQkJC0KcG+/btC/p0wQtOPvlk9enTRzt37jRdiuuOn1EtXl7LeEXPegc9Gx/oWe+gZ+MDPesdXujZuBpMExMT1b9/fxUXFzeKFxcXKzc311BVkRMIBLR9+3Z17tzZdCmu69q1q9LS0hq9lrW1tVq7dq0nX8t4Rc96Bz0bH+hZ76Bn4wM96x1e6Nm4O5R30qRJuvHGGzVgwAANGjRIixcv1q5duzR27FjTpTXbXXfdpSuuuEJdunTRvn37dP/996u6ulpjxowxXVpYDh06pE8//bThfklJibZs2aL27durS5cuKigo0MyZM5WTk6OcnBzNnDlT7dq10/XXX2+wariNno0d9CwkejaW0LOQ6NlY4vmeNXdCYHMee+wxKysry0pMTLTOPfdca+3ataZLcsU111xjde7c2WrTpo2Vnp5ujRo1ytq6davpssL2xhtvWJKCbmPGjLEs69vTYk+fPt1KS0uz/H6/dfHFF1sfffSR2aIREfRsbKBncRw9GxvoWRxHz8YGr/esz7Isq2VHYQAAAAAA/imuvmMKAAAAAIg+DKYAAAAAAKMYTAEAAAAARjGYAgAAAACMYjAFAAAAABjFYAoAAAAAMIrBFAAAAABgFIMpAAAAAMAoBlMAAAAAgFEMpgAAAAAAoxhMAQAAAABGMZgCAAAAAIxiMAUAAAAAGMVgCgAAAAAwisEUAAAAAGAUgykAAAAAwKjWpguItPr6eu3du1dJSUny+Xymy0EcsCxLNTU1Sk9PV6tWfPbjFD2LlkbPNg89i5ZGzzYPPYuWZrdnPT+Y7t27V5mZmabLQBwqLS1VRkaG6TJiDj0LU+jZ8NCzMIWeDQ89C1NO1LOeH0yTkpIkffsXkZycbLgaxIPq6mplZmY2vPfgDD2LlkbPNg89i5ZGzzYPPYuWZrdnY2IwXbRokR566CGVlZWpV69emj9/vi666CJbzz1+iEJycjLNhxbF4THhoWdhCj0bHnoWptCz4aFnYcqJejbqD8xfsWKFCgoKNHXqVG3evFkXXXSR8vPztWvXLtOlAQAAAABcEPWD6bx583Trrbfqtttu01lnnaX58+crMzNTjz/+uOnSAAAAAAAuiOrBtLa2Vps2bVJeXl6jeF5entavXx/yOYFAQNXV1Y1uAAAAAIDoFdWDaUVFherq6pSamtoonpqaqvLy8pDPmTVrllJSUhpunHUMAAAAAKJbVA+mx333i7KWZTX55dkpU6aoqqqq4VZaWtoSJQIAAAAAwhTVZ+Xt0KGDEhISgvaO7tu3L2gv6nF+v19+v78lygMAAAAAuCCq95gmJiaqf//+Ki4ubhQvLi5Wbm6uoaoAAAAAAG6K6j2mkjRp0iTdeOONGjBggAYNGqTFixdr165dGjt2rOnSAAAAAAAuiPrB9JprrtGBAwdUVFSksrIy9e7dWy+//LKysrJMlwYAAAAAcEHUD6aSNH78eI0fP950GQAAAACACIjq75gCAAAAALyPwRQAAAAAYBSDKQAAAADAKAZTAAAAAIBRDKYAAAAAAKMYTAEAAAAARjGYAgAAAACMYjAFAAAAABjFYAoAAAAAMKq16QIAAO4pLy+3ndu5c+eIrZ2amupobQAAEN/YYwoAAAAAMIrBFAAAAABgFIMpAAAAAMAoBlMAAAAAgFEMpgAAAAAAoxhMAQAAAABGMZgCAAAAAIxiMAUAAAAAGMVgCgAAAAAwqrWdpAULFjhe+Oabb1ZSUpLj5wEAAAAA4outwbSgoEAZGRlKSEiwtWhpaakuv/xyBtNmOHTokO3cW2+91dHa/+///T+n5UTEhRdeaDv3b3/7m+3cHTt22M7NycmxnQuYsnv3btu5mZmZtnNbtXJ20ExaWprtXMuyHK0NNGX9+vW2c3NzcyNYibf179/fdu6mTZsiWAngHS+99JKj/JEjR9rO/fTTT23ndu/e3VEdptgaTCVp48aN6tSpk61cBlIAAAAAgF22Pi6fPn26TjnlFNuL/uY3v1H79u3DLgoAAAAAED9s7TGdPn26o0WnTJkSVjEAAAAAgPjDWXkBAAAAAEa5Nphu375d3bp1c2s5AAAAAECccG0wra2t1RdffOHWcgAAAACAOGH7rLyTJk363sf379/f7GIAAAAAAPHH9mD6u9/9Tv369VNycnLIx51cdxMAAAAAgONsD6Y5OTn65S9/qZ/+9KchH9+yZYujizMDAAAAACA5+I5p//79tWnTpiYf9/l8sizLlaIAAAAAAPHD9h7TuXPnKhAINPl43759VV9f70pRXlVXV2c7NykpKYKV2NevXz/buR988IGjtd966y2H1QDe8KMf/chR/iuvvBKROpz+m92zZ0/bucOHD7edW1xc7KgOxJf777/fdu7LL78cwUpiz/f9v+27OnfuHMFKgPh09dVXO8pv37697dzu3bs7LSfq2R5M09LSIlkHAAAAACBOuXa5GAAAAAAAwsFgCgAAAAAwisEUAAAAAGAUgykAAAAAwCgGUwAAAACAUa4Npi+99JKWLVvm1nIAAAAAgDjh2mB6zz336Oabb3ZrOQAAAABAnLB9HdMT+eSTT9xaCgAAAAAQR/iOKQAAAADAqLD2mFZWVur999/Xvn37VF9f3+ix0aNHu1KYFyUkJNjO/e7f6/e59tprHdVx66232s7Ny8tztDYQr/bv328795VXXnG09oABA2znPvnkk7Zzzz77bEd1tG5t/1dGq1Z87onQKioqTJcQN3r06GE79+23345gJYB3/Od//qft3Lq6OkdrHzhwwGk5nuJ4MP3Tn/6kG264QYcPH1ZSUpJ8Pl/DYz6fj8EUAAAAAOCI44+0f/WrX+mWW25RTU2NKisrdfDgwYbbV199FYkaAQAAAAAe5ngw3bNnj+644w61a9cuEvU0UlhYKJ/P1+iWlpYW8Z8LAAAAAGg5jg/lveyyy7Rx40Z169YtEvUE6dWrl/7yl7803HfyPU0AAAAAQPSzNZiuXr264c8//vGPNXnyZG3btk19+vRRmzZtGuVeeeWV7hbYujV7SQEAAADAw2wNpiNHjgyKFRUVBcV8Pp/js0+dyM6dO5Weni6/36+BAwdq5syZ37u3NhAIKBAINNyvrq52tR4AAAAAgLtsfce0vr7e1s3toXTgwIFatmyZXnvtNT311FMqLy9Xbm7u955KedasWUpJSWm4ZWZmuloTAAAAAMBdUX2hufz8fF199dXq06ePLr30Uv35z3+WJC1durTJ50yZMkVVVVUNt9LS0pYqFwAAAAAQBseD6R133KEFCxYExRcuXKiCggI3amrSySefrD59+mjnzp1N5vj9fiUnJze6AQAAAACil+PB9IUXXtDgwYOD4rm5uXr++eddKaopgUBA27dvV+fOnSP6cwAAAAAALcfxYHrgwAGlpKQExZOTk1VRUeFKUcfdddddWrt2rUpKSvTee+/pJz/5iaqrqzVmzBhXfw4AAAAAwBzH1zE988wz9eqrr2rixImN4q+88orr1zbdvXu3rrvuOlVUVKhjx4664IIL9O677yorK8vVnxONfD6f7dzly5c7WrtVK/ufR1iW5WhtIF516tTJdu6HH37oaO0ePXrYzvX7/Y7WjhT+7UBTbrvtNkf5w4YNi1Al3rdr1y7buWeccUYEKwGi2zfffGM793/+539s54a6igma5ngwnTRpkiZOnKj9+/c3/LJYs2aN5s6dq/nz57tanNOBCwAAAAAQexwPprfccosCgYAeeOAB3XfffZKk7OxsPf744xo9erTrBQIAAAAAvM3xYCpJ48aN07hx47R//361bdtWp5xyitt1AQAAAADiRFiD6XEdO3Z0qw4AAAAAQJyydRacc889VwcPHrS96IUXXqg9e/aEXRQAAAAAIH7Y2mO6ZcsWffDBB2rfvr2tRbds2aJAINCswgAAAAAA8cH2obyXXHKJ7dP/O7nUCQAAAAAgvtkaTEtKShwvnJGR4fg5AAAAAID4Y2swzcrKinQdAAAAAIA4ZevkRwAAAAAAREqzLheD6OD0O71/+9vfIrL23LlzHdUxadIkR/lAS3NytEiPHj1s5/bp0yeccoC4NGDAgIisW1FRYTv3ueeec7T2+++/bzv3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6j2mkjRp0iTdeOONGjBggAYNGqTFixdr165dGjt2rOnSAAAAAAAuiPrB9JprrtGBAwdUVFSksrIy9e7dWy+//LKysrJMlwYAAAAAcEHUD6aSNH78eI0fP950GQAAAACACIjq75gCAAAAALyPwRQAAAAAYBSDKQAAAADAKAZTAAAAAIBRDKYAAAAAAKMYTAEAAAAARjGYAgAAAACMYjAFAAAAABjFYAoAAAAAMIrBFAAAAABgVGvTBSC61dXV2c6dOXOmo7Vffvll27lJSUm2c4uLi23nWpZlOxeIBfv377ed26lTp4jVQW8BsWX79u22c8844wzbucnJyeGUA8QlJ/+Xnjp1qu3cWPmdzB5TAAAAAIBRDKYAAAAAAKMYTAEAAAAARjGYAgAAAACMYjAFAAAAABjFYAoAAAAAMIrBFAAAAABgFIMpAAAAAMAoBlMAAAAAgFGt7SQtWLDA8cI333yzkpKSHD8PAAAAABBfbA2mBQUFysjIUEJCgq1FS0tLdfnllzOYNoPdv2tJqq+vj2AlkfOnP/3Jdu6pp55qO/f5558PoxogepWUlNjO7datW8TqWLt2re1cn89nO9eyrHDKQZy47777bOdOmzYtgpV4W1FRke3cJ554IoKVAPFr6tSppkswytZgKkkbN25Up06dbOUykAIAAAAA7LL1HdPp06frlFNOsb3ob37zG7Vv3z7sogAAAAAA8cPWHtPp06c7WnTKlClhFQMAAAAAiD+clRcAAAAAYJSjwfSDDz7Q/fffr0WLFqmioqLRY9XV1brllltcLQ4AAAAA4H22B9PXX39d559/vpYvX64HH3xQZ511lt54442Gx7/55hstXbo0IkUCAAAAALzL9mBaWFiou+66Sx9//LE+//xz3X333bryyiv16quvRrI+AAAAAIDH2b5czNatW/XMM89I+vb6dJMnT1ZGRoZ+8pOf6LnnntP5558fsSIBAAAAAN5lezD1+/2qrKxsFLvuuuvUqlUrXXvttZo7d67btQEAAAAA4oDtwbRfv35644031L9//0bxa665RvX19RozZozrxQEAAAAAvM/2YDpu3DitW7cu5GPXXXedJGnx4sXuVAW9/fbbtnN37NjhaO2bb77Zdm59fb3t3O/uUT+R0047zVE+4BXl5eWO8rt162Y7t0ePHrZz/+///s9RHf/2b//mKB9ww+zZs23nTps2LYKVeNvy5ctt5z733HMRrATwjpNOOilia1uWFbG1TbE9mF511VW66qqrmnz8uuuuaxhQAQAAAACwy9F1TAEAAAAAcBuDKQAAAADAKAZTAAAAAIBRDKYAAAAAAKMYTAEAAAAARrk2mL700ktatmyZW8sBAAAAAOKEa4PpPffc4+j6mAAAAAAASA6uY3oin3zyiVtLAQAAAADiCN8xBQAAAAAYFdYe08rKSr3//vvat2+f6uvrGz02evRoVwqLd4MGDYpIriRHh1z7fD7buaeddpqjOgAvqampsZ3buXNnR2t36NDBdu6OHTscrR0NLrvsMtu5r732WgQrQTT6+uuvTZcQs44ePWq6BMBz6urqbOcGAgFHa2/fvt1pOZ7ieDD905/+pBtuuEGHDx9WUlJSo8HF5/MxmAIAAAAAHHF8KO+vfvUr3XLLLaqpqVFlZaUOHjzYcPvqq69cLa6wsFA+n6/RLS0tzdWfAQAAAAAwy/Ee0z179uiOO+5Qu3btIlFPkF69eukvf/lLw/2EhIQW+bkAAAAAgJbheDC97LLLtHHjRnXr1i0S9QRp3bo1e0kBAAAAwMNsDaarV69u+POPf/xjTZ48Wdu2bVOfPn3Upk2bRrlXXnmlqwXu3LlT6enp8vv9GjhwoGbOnPm9Q3EgEGj0RePq6mpX6wEAAAAAuMvWYDpy5MigWFFRUVDM5/M5OlPViQwcOFDLli1Tjx499OWXX+r+++9Xbm6utm7dqtNPPz3kc2bNmqUZM2a4VgMAAAAAILJsnfyovr7e1s3NoVSS8vPzdfXVV6tPnz669NJL9ec//1mStHTp0iafM2XKFFVVVTXcSktLXa0JAAAAAOCusK5jasrJJ5+sPn36aOfOnU3m+P1++f3+FqwKAAAAANAcji8Xc8cdd2jBggVB8YULF6qgoMCNmpoUCAS0fft2xxenBwAAAABEL8eD6QsvvKDBgwcHxXNzc/X888+7UtRxd911l9auXauSkhK99957+slPfqLq6mqNGTPG1Z8DAAAAADDH8aG8Bw4cUEpKSlA8OTlZFRUVrhR13O7du3XdddepoqJCHTt21AUXXKB3331XWVlZrv4cAAAAAIA5jgfTM888U6+++qomTpzYKP7KK6+4fm3T5cuXu7oevlVTU2M7t23btrZzFy1a5KiOm2++2VE+EM2Sk5Nt537f9+RDOfPMM52WE1P+7//+z3QJQEx44403HOUPGzbMdu4rr7zitBwgLrVubX986t27t6O1e/bs6bQcT3E8mE6aNEkTJ07U/v37G/7BW7NmjebOnav58+e7XR8AAAAAwOMcD6a33HKLAoGAHnjgAd13332SpOzsbD3++OMaPXq06wUCAAAAALwtrMvFjBs3TuPGjdP+/fvVtm1bnXLKKW7XBQAAAACIE826jmnHjh3dqgMAAAAAEKdsXS7m3HPP1cGDB20veuGFF2rPnj1hFwUAAAAAiB+29phu2bJFH3zwgdq3b29r0S1btigQCDSrMAAAAABAfLB9KO8ll1wiy7Js5fp8vrALAgAAAADEF1uDaUlJieOFMzIyHD8HAAAAABB/bA2mWVlZka4DAAAAABCnbJ38CAAAAACASGnW5WIQm5xcd3b37t22czt06OCojr/+9a+2c5955hlHawNu2LhxY0TWPfPMMyOybqwaOnSo6RLgEZ06dYrIuvv373eU36qV/c/9f/azn9nO/d3vfueojtat7f83b8SIEY7WBrwkUufH+eijjyKyrlexxxQAAAAAYBSDKQAAAADAKMeDabdu3XTgwIGgeGVlpbp16+ZKUQAAAACA+OF4MP38889VV1cXFA8EAtqzZ48rRQEAAAAA4oftb8WvXr264c+vvfaaUlJSGu7X1dVpzZo1ys7OdrU4AAAAAID32R5MR44cKenbs1aNGTOm0WNt2rRRdna25s6d62pxAAAAAADvsz2Y1tfXS5K6du2qDRs2OL40CAAAAAAAoTi+jmlJSUkk6gAAAAAAxCnHg2lRUdH3Pv7b3/427GIAAAAAAPHH8WC6cuXKRvePHj2qkpIStW7dWt27d2cwBQAAAAA44ngw3bx5c1CsurpaN910k6666ipXikL0OP30023nWpblaG2fz2c718kHHjk5OY7qAJpy+PBh27lt27aNYCXR4Te/+Y3t3JNOOsl27tNPPx1OOYgTTn+34J+OHTtmugTAiP3790ds7QsvvDBia8c7x9cxDSU5OVlFRUWaNm2aG8sBAAAAAOKIK4OpJFVWVqqqqsqt5QAAAAAAccLxobwLFixodN+yLJWVlemZZ57RiBEjXCsMAAAAABAfHA+mjzzySKP7rVq1UseOHTVmzBhNmTLFtcIAAAAAAPGB65gCAAAAAIxq1ndMS0tLtXv3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lctACgAAAACwy9Z3TKdPn65TTjnF9qK/+c1v1L59+7CLAgAAAADED1t7TKdPn+5o0SlTpoRVDAAAAAAg/nBWXgAAAACAUY4G09///vcaM2aMnn76aUnSihUrdNZZZ6lbt26O96oCAAAAACA5OPnR/Pnzde+99+qyyy7T1KlTtXfvXj3yyCP65S9/qfr6es2dO1dnnHGGfv7zn0eyXgAAAACAx9geTJ988kktXrxY119/vTZv3qzzzz9fTzzxhG699VZJUkZGhh577DEGUwAAAACAI7YP5f3iiy904YUXSpLOOeccJSQk6IILLmh4/KKLLtJnn33mfoUAAAAAAE+zPZi2a9dOhw8fbrjfsWPHoEvIHDt2zL3KAAAAAABxwfZg2rNnT3344YcN90tLS5WVldVw/5NPPlF2drarxQEAAAAAvM/2d0wffPBBnXzyyU0+vmvXLt1+++2uFOVVH3/8se3cjz76yHZunz59HNVhWZbt3MTERNu5GzZscFTHf//3fzvKB7yitrbWUf7Ro0dt5z722GO2cwsKChzVce2119rOvf/++x2tDcB9X375pe1cficD9gwePNh2rpPfm5J011132c5dt26do7Vjge3B9EQvwvjx45tdDAAAAAAg/ji6jikAAAAAAG5jMAUAAAAAGMVgCgAAAAAwisEUAAAAAGAUgykAAAAAwCjXBtOXXnpJy5Ytc2s5AAAAAECccG0wveeee3TzzTe7tRwAAAAAIE7Yvo7piXzyySduLQUAAAAAiCN8xxQAAAAAYJTPsizL6ZMqKyv1/vvva9++faqvr2/02OjRo10rzg3V1dVKSUkxXUZEvfzyy47yBw8ebDvX6393kVRVVaXk5GTTZcScWO1ZJ0eN/OAHP3C09k033WQ7d+nSpY7WjpSjR4/azm3Tpk0EK7GPng2P05594oknHK1/0UUX2c7t1auXo7W9zsl/8Tp16mQ7d//+/eGU4zp6Njyx+ns2WtTW1trOdfr7zefzOS0nppyoZx0fyvunP/1JN9xwgw4fPqykpKRGf4E+ny/qBlMAAAAAQHRzfCjvr371K91yyy2qqalRZWWlDh482HD76quvIlEjAAAAAMDDHA+me/bs0R133KF27dpFop5GCgsL5fP5Gt3S0tIi/nMBhIeeBWILPQvEFnoWXub4UN7LLrtMGzduVLdu3SJRT5BevXrp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\n",
"text/plain": [
"<Figure size 1000x1000 with 20 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"n_samples = 4\n",
"n_channels = 4\n",
"fig, axes = plt.subplots(1 + n_channels, n_samples, figsize=(10, 10))\n",
"for k in range(n_samples):\n",
" axes[0, 0].set_ylabel(\"Input\")\n",
" if k != 0:\n",
" axes[0, k].yaxis.set_visible(False)\n",
" axes[0, k].imshow(train_images[k, :, :, 0], cmap=\"gray\")\n",
"\n",
" # Plot all output channels\n",
" for c in range(n_channels):\n",
" axes[c + 1, 0].set_ylabel(\"Output [ch. {}]\".format(c))\n",
" if k != 0:\n",
" axes[c, k].yaxis.set_visible(False)\n",
" axes[c + 1, k].imshow(q_train_images[k, :, :, c], cmap=\"gray\")\n",
"\n",
"plt.tight_layout()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"def MyModel():\n",
" \"\"\"Initializes and returns a custom Keras model\n",
" which is ready to be trained.\"\"\"\n",
" model = keras.models.Sequential([\n",
" keras.layers.Flatten(),\n",
" keras.layers.Dense(10, activation=\"softmax\")\n",
" ])\n",
"\n",
" model.compile(\n",
" optimizer='adam',\n",
" loss=\"sparse_categorical_crossentropy\",\n",
" metrics=[\"accuracy\"],\n",
" )\n",
" return model"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/30\n",
"30/30 - 1s - loss: 2.3649 - accuracy: 0.2500 - val_loss: 1.8431 - val_accuracy: 0.4333 - 1s/epoch - 49ms/step\n",
"Epoch 2/30\n",
"30/30 - 0s - loss: 1.2757 - accuracy: 0.6000 - val_loss: 1.2380 - val_accuracy: 0.5667 - 128ms/epoch - 4ms/step\n",
"Epoch 3/30\n",
"30/30 - 0s - loss: 0.7925 - accuracy: 0.8167 - val_loss: 1.3174 - val_accuracy: 0.6000 - 120ms/epoch - 4ms/step\n",
"Epoch 4/30\n",
"30/30 - 0s - loss: 0.5940 - accuracy: 0.8667 - val_loss: 1.0964 - val_accuracy: 0.6333 - 124ms/epoch - 4ms/step\n",
"Epoch 5/30\n",
"30/30 - 0s - loss: 0.4327 - accuracy: 0.9250 - val_loss: 0.8925 - val_accuracy: 0.7000 - 121ms/epoch - 4ms/step\n",
"Epoch 6/30\n",
"30/30 - 0s - loss: 0.3264 - accuracy: 0.9583 - val_loss: 0.8982 - val_accuracy: 0.7667 - 115ms/epoch - 4ms/step\n",
"Epoch 7/30\n",
"30/30 - 0s - loss: 0.2766 - accuracy: 0.9833 - val_loss: 0.9798 - val_accuracy: 0.6667 - 104ms/epoch - 3ms/step\n",
"Epoch 8/30\n",
"30/30 - 0s - loss: 0.2145 - accuracy: 0.9833 - val_loss: 0.7631 - val_accuracy: 0.7667 - 93ms/epoch - 3ms/step\n",
"Epoch 9/30\n",
"30/30 - 0s - loss: 0.1765 - accuracy: 1.0000 - val_loss: 0.8005 - val_accuracy: 0.7333 - 96ms/epoch - 3ms/step\n",
"Epoch 10/30\n",
"30/30 - 0s - loss: 0.1391 - accuracy: 1.0000 - val_loss: 0.7733 - val_accuracy: 0.8000 - 92ms/epoch - 3ms/step\n",
"Epoch 11/30\n",
"30/30 - 0s - loss: 0.1291 - accuracy: 1.0000 - val_loss: 0.7831 - val_accuracy: 0.8000 - 93ms/epoch - 3ms/step\n",
"Epoch 12/30\n",
"30/30 - 0s - loss: 0.1142 - accuracy: 1.0000 - val_loss: 0.7168 - val_accuracy: 0.7667 - 97ms/epoch - 3ms/step\n",
"Epoch 13/30\n",
"30/30 - 0s - loss: 0.0936 - accuracy: 1.0000 - val_loss: 0.7462 - val_accuracy: 0.8000 - 93ms/epoch - 3ms/step\n",
"Epoch 14/30\n",
"30/30 - 0s - loss: 0.0842 - accuracy: 1.0000 - val_loss: 0.7150 - val_accuracy: 0.8000 - 94ms/epoch - 3ms/step\n",
"Epoch 15/30\n",
"30/30 - 0s - loss: 0.0729 - accuracy: 1.0000 - val_loss: 0.7118 - val_accuracy: 0.8000 - 95ms/epoch - 3ms/step\n",
"Epoch 16/30\n",
"30/30 - 0s - loss: 0.0675 - accuracy: 1.0000 - val_loss: 0.7013 - val_accuracy: 0.8000 - 92ms/epoch - 3ms/step\n",
"Epoch 17/30\n",
"30/30 - 0s - loss: 0.0614 - accuracy: 1.0000 - val_loss: 0.7175 - val_accuracy: 0.8000 - 92ms/epoch - 3ms/step\n",
"Epoch 18/30\n",
"30/30 - 0s - loss: 0.0565 - accuracy: 1.0000 - val_loss: 0.7120 - val_accuracy: 0.8333 - 92ms/epoch - 3ms/step\n",
"Epoch 19/30\n",
"30/30 - 0s - loss: 0.0514 - accuracy: 1.0000 - val_loss: 0.7069 - val_accuracy: 0.8000 - 94ms/epoch - 3ms/step\n",
"Epoch 20/30\n",
"30/30 - 0s - loss: 0.0455 - accuracy: 1.0000 - val_loss: 0.6693 - val_accuracy: 0.8000 - 92ms/epoch - 3ms/step\n",
"Epoch 21/30\n",
"30/30 - 0s - loss: 0.0421 - accuracy: 1.0000 - val_loss: 0.7304 - val_accuracy: 0.8333 - 94ms/epoch - 3ms/step\n",
"Epoch 22/30\n",
"30/30 - 0s - loss: 0.0392 - accuracy: 1.0000 - val_loss: 0.6774 - val_accuracy: 0.8000 - 95ms/epoch - 3ms/step\n",
"Epoch 23/30\n",
"30/30 - 0s - loss: 0.0376 - accuracy: 1.0000 - val_loss: 0.7197 - val_accuracy: 0.8000 - 92ms/epoch - 3ms/step\n",
"Epoch 24/30\n",
"30/30 - 0s - loss: 0.0341 - accuracy: 1.0000 - val_loss: 0.6945 - val_accuracy: 0.8000 - 136ms/epoch - 5ms/step\n",
"Epoch 25/30\n",
"30/30 - 0s - loss: 0.0320 - accuracy: 1.0000 - val_loss: 0.7042 - val_accuracy: 0.8000 - 94ms/epoch - 3ms/step\n",
"Epoch 26/30\n",
"30/30 - 0s - loss: 0.0289 - accuracy: 1.0000 - val_loss: 0.6936 - val_accuracy: 0.8000 - 88ms/epoch - 3ms/step\n",
"Epoch 27/30\n",
"30/30 - 0s - loss: 0.0285 - accuracy: 1.0000 - val_loss: 0.6919 - val_accuracy: 0.8000 - 92ms/epoch - 3ms/step\n",
"Epoch 28/30\n",
"30/30 - 0s - loss: 0.0260 - accuracy: 1.0000 - val_loss: 0.6842 - val_accuracy: 0.8000 - 93ms/epoch - 3ms/step\n",
"Epoch 29/30\n",
"30/30 - 0s - loss: 0.0251 - accuracy: 1.0000 - val_loss: 0.6947 - val_accuracy: 0.8000 - 92ms/epoch - 3ms/step\n",
"Epoch 30/30\n",
"30/30 - 0s - loss: 0.0240 - accuracy: 1.0000 - val_loss: 0.6814 - val_accuracy: 0.8000 - 92ms/epoch - 3ms/step\n"
]
}
],
"source": [
"q_model = MyModel()\n",
"\n",
"q_history = q_model.fit(\n",
" q_train_images,\n",
" train_labels,\n",
" validation_data=(q_test_images, test_labels),\n",
" batch_size=4,\n",
" epochs=n_epochs,\n",
" verbose=2,\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In order to compare the results achievable with and without the quantum\n",
"convolution layer, we initialize also a \\\"classical\\\" instance of the\n",
"model that will be directly trained and validated with the raw MNIST\n",
"images (i.e., without quantum pre-processing).\n"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/30\n",
"30/30 - 1s - loss: 2.1562 - accuracy: 0.2833 - val_loss: 1.8494 - val_accuracy: 0.4667 - 640ms/epoch - 21ms/step\n",
"Epoch 2/30\n",
"30/30 - 0s - loss: 1.5351 - accuracy: 0.6083 - val_loss: 1.5674 - val_accuracy: 0.6000 - 94ms/epoch - 3ms/step\n",
"Epoch 3/30\n",
"30/30 - 0s - loss: 1.1580 - accuracy: 0.7667 - val_loss: 1.3660 - val_accuracy: 0.7000 - 94ms/epoch - 3ms/step\n",
"Epoch 4/30\n",
"30/30 - 0s - loss: 0.8907 - accuracy: 0.9167 - val_loss: 1.2344 - val_accuracy: 0.7333 - 93ms/epoch - 3ms/step\n",
"Epoch 5/30\n",
"30/30 - 0s - loss: 0.7248 - accuracy: 0.9250 - val_loss: 1.1322 - val_accuracy: 0.8333 - 91ms/epoch - 3ms/step\n",
"Epoch 6/30\n",
"30/30 - 0s - loss: 0.5926 - accuracy: 0.9333 - val_loss: 1.0696 - val_accuracy: 0.7667 - 93ms/epoch - 3ms/step\n",
"Epoch 7/30\n",
"30/30 - 0s - loss: 0.5014 - accuracy: 0.9583 - val_loss: 0.9993 - val_accuracy: 0.8000 - 94ms/epoch - 3ms/step\n",
"Epoch 8/30\n",
"30/30 - 0s - loss: 0.4238 - accuracy: 0.9583 - val_loss: 0.9717 - val_accuracy: 0.8333 - 92ms/epoch - 3ms/step\n",
"Epoch 9/30\n",
"30/30 - 0s - loss: 0.3650 - accuracy: 0.9667 - val_loss: 0.9321 - val_accuracy: 0.8333 - 117ms/epoch - 4ms/step\n",
"Epoch 10/30\n",
"30/30 - 0s - loss: 0.3210 - accuracy: 0.9833 - val_loss: 0.9070 - val_accuracy: 0.8667 - 87ms/epoch - 3ms/step\n",
"Epoch 11/30\n",
"30/30 - 0s - loss: 0.2832 - accuracy: 0.9917 - val_loss: 0.8885 - val_accuracy: 0.8333 - 91ms/epoch - 3ms/step\n",
"Epoch 12/30\n",
"30/30 - 0s - loss: 0.2525 - accuracy: 0.9917 - val_loss: 0.8917 - val_accuracy: 0.8333 - 92ms/epoch - 3ms/step\n",
"Epoch 13/30\n",
"30/30 - 0s - loss: 0.2238 - accuracy: 0.9917 - val_loss: 0.8729 - val_accuracy: 0.8333 - 94ms/epoch - 3ms/step\n",
"Epoch 14/30\n",
"30/30 - 0s - loss: 0.2013 - accuracy: 1.0000 - val_loss: 0.8592 - val_accuracy: 0.8333 - 92ms/epoch - 3ms/step\n",
"Epoch 15/30\n",
"30/30 - 0s - loss: 0.1820 - accuracy: 1.0000 - val_loss: 0.8561 - val_accuracy: 0.8333 - 92ms/epoch - 3ms/step\n",
"Epoch 16/30\n",
"30/30 - 0s - loss: 0.1654 - accuracy: 1.0000 - val_loss: 0.8474 - val_accuracy: 0.8333 - 93ms/epoch - 3ms/step\n",
"Epoch 17/30\n",
"30/30 - 0s - loss: 0.1512 - accuracy: 1.0000 - val_loss: 0.8426 - val_accuracy: 0.8333 - 92ms/epoch - 3ms/step\n",
"Epoch 18/30\n",
"30/30 - 0s - loss: 0.1398 - accuracy: 1.0000 - val_loss: 0.8469 - val_accuracy: 0.8333 - 92ms/epoch - 3ms/step\n",
"Epoch 19/30\n",
"30/30 - 0s - loss: 0.1273 - accuracy: 1.0000 - val_loss: 0.8337 - val_accuracy: 0.8333 - 92ms/epoch - 3ms/step\n",
"Epoch 20/30\n",
"30/30 - 0s - loss: 0.1177 - accuracy: 1.0000 - val_loss: 0.8292 - val_accuracy: 0.8333 - 94ms/epoch - 3ms/step\n",
"Epoch 21/30\n",
"30/30 - 0s - loss: 0.1091 - accuracy: 1.0000 - val_loss: 0.8314 - val_accuracy: 0.8333 - 94ms/epoch - 3ms/step\n",
"Epoch 22/30\n",
"30/30 - 0s - loss: 0.1013 - accuracy: 1.0000 - val_loss: 0.8313 - val_accuracy: 0.8333 - 92ms/epoch - 3ms/step\n",
"Epoch 23/30\n",
"30/30 - 0s - loss: 0.0949 - accuracy: 1.0000 - val_loss: 0.8358 - val_accuracy: 0.8333 - 93ms/epoch - 3ms/step\n",
"Epoch 24/30\n",
"30/30 - 0s - loss: 0.0879 - accuracy: 1.0000 - val_loss: 0.8295 - val_accuracy: 0.8333 - 93ms/epoch - 3ms/step\n",
"Epoch 25/30\n",
"30/30 - 0s - loss: 0.0827 - accuracy: 1.0000 - val_loss: 0.8275 - val_accuracy: 0.8333 - 92ms/epoch - 3ms/step\n",
"Epoch 26/30\n",
"30/30 - 0s - loss: 0.0770 - accuracy: 1.0000 - val_loss: 0.8296 - val_accuracy: 0.8333 - 89ms/epoch - 3ms/step\n",
"Epoch 27/30\n",
"30/30 - 0s - loss: 0.0732 - accuracy: 1.0000 - val_loss: 0.8242 - val_accuracy: 0.8333 - 89ms/epoch - 3ms/step\n",
"Epoch 28/30\n",
"30/30 - 0s - loss: 0.0682 - accuracy: 1.0000 - val_loss: 0.8263 - val_accuracy: 0.8333 - 91ms/epoch - 3ms/step\n",
"Epoch 29/30\n",
"30/30 - 0s - loss: 0.0646 - accuracy: 1.0000 - val_loss: 0.8295 - val_accuracy: 0.8333 - 95ms/epoch - 3ms/step\n",
"Epoch 30/30\n",
"30/30 - 0s - loss: 0.0612 - accuracy: 1.0000 - val_loss: 0.8269 - val_accuracy: 0.8333 - 95ms/epoch - 3ms/step\n"
]
}
],
"source": [
"c_model = MyModel()\n",
"\n",
"c_history = c_model.fit(\n",
" train_images,\n",
" train_labels,\n",
" validation_data=(test_images, test_labels),\n",
" batch_size=4,\n",
" epochs=n_epochs,\n",
" verbose=2,\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAk0AAAN6CAYAAACT8n35AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAADaB0lEQVR4nOzdd3RUxcPG8e9uegKBhCBNhdBFRKq0UJROaCLKK4gioCggAlJFQUFsKCAiKkpVFBVFRQKhSBOpgoIF6TV0CCE9m73vHyvrLyaQG3ZTeT7neCR3596ZnWyyT2buzlgMwzAQERERkeuy5nYDRERERPIDhSYRERERExSaRERERExQaBIRERExQaFJRERExASFJhERERETFJpERERETFBoEhERETFBoUlERETEhHwRmi5evEirVq3YunXrNcusX7+ejh07UrNmTdq1a8fatWtzsIUiIiJS0OX50PTLL7/QvXt3jh07ds0yR44c4ZlnnuHZZ59lx44dPPPMMwwZMoQzZ87kYEtFRESkIMvToWnJkiUMHz6coUOHZlqubt26tGzZEk9PT9q3b0+9evX44osvcqilIiIiUtDl6dAUFhbGqlWraN++/XXLHThwgMqVK6c5VrFiRfbu3ZudzRMREZGbiGduN+B6ihcvbqpcXFwcfn5+aY75+voSHx+fHc0SERGRm1CeHmkyy8/Pj8TExDTHEhMTCQgIMH0NwzDc3SwREREpQPL0SJNZlStX5o8//khz7MCBA1SvXt30NS5ejMNqtbi7aQB4eFgJDPQjJiaB1FR7ttRRkKn/XKP+c5360DXqP9eo/1yXWR8GBZkbZCkQoalTp07MnTuXiIgIWrduzcqVK9m2bRtjx441fQ273cBuz97RptRUOzabXvA3Sv3nGvWf69SHrlH/uUb95zpX+zDfTs/VqlWL77//HoAKFSrw3nvv8eGHH1KvXj1mzpzJu+++S2hoaC63UkRERAqKfDPS9Pfff6f5eteuXWm+btKkCU2aNMnJJomIiMhNJN+ONImIiIjkJIUmERERERMUmkRERERMUGgSERERMUGhSURERMQEhSYRERERExSaRERERExQaBIRkRtiGLB5swdLlniyebMH+WELzxMnjud2E27I2bNnSUhIyO1m3PQUmkREJMuWLfOkfv0AOnf2p39/Pzp39qd+/QCWLcueNZPHjBnO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vXtz+fJld1dXoFxd0PLWQrcxaeCdgDbcFRERySvcHpomTZqEzWajc+fOzmNz584lISGBN998093VFRgJtgTWHF0FQLvQcFq1SsXXN305bbgrIiKSO9w+Pbdp0ybmz5+fZkHLatWq8eKLL/LEE0+4u7oCY8OJdcTb4gBoX74jP/3kQWKiYyjppZcSKV3ayLcb7oqIiBQEbg9NqampGW6h4unpSVJSkrurKzCubtAb7BtM/VINGTXF8a0pUsTgiSdS8PLKzdaJiIiI26fn6tevz9tvv82VK1ecx2JjY5k+fTr16tVzd3UFgs1uI/JIBACty7XDYniyfLkjNLVqZVNgEhERyQPcPtI0evRoevToQdOmTQkNDQXgyJEjFC1alNmzZ7u7ugJh26ktXEy8CDg26N2xw4Pz5x15tn173bskIiKSF7g9NN12220sX76cZcuWsW/fPjw9PXn44Yfp2LEjvhnd2SzOBS39PQNodtu9vD7P8W3x9TW4916FJhERkbzA7aEJHHvPde/ePTsuXeAYhkHEPxv03nd7S3w9/IiIcHxbmje3ERCQm60TERGRq9wempKTk/niiy/4+++/SU1NTXN8z549rFy50t1V5mt7zv/GidjjALQv34E//7Ry9Kim5kRERPIat4emV199lW+++YY777yT3377jVq1anH06FEuXLhA79693V1dvnd1QUtPqyctb2/NxzMc3xIPD4PWrRWaRERE8gq3f3pu9erVvP7663z++efceuutTJw4kbVr19KiRQtSUlLcXV2+t/yfqbnGpZtQ1DfIOTXXsGEqwcG52TIRERH5X24PTdHR0dSsWROAypUr8+eff+Ll5UX//v1Zu3atu6vL1w5dPshfF/8EHAtaHj1q4fffPRxfa2pOREQkT3F7aAoJCeHChQsA3H777ezbtw+AoKAgzp8/7+7q8rWrN4CDY+uUq2szAbRtq9AkIiKSl7g9NDVr1ozx48fz999/U7t2bZYuXcqePXtYuHAhJUuWdHd1+drVVcDrlKhHyYBSzqm5u+9O5dZbM96sV0RERHKH20PT8OHDKVmyJDt27KBFixZUqlSJBx98kE8++YTBgwe7u7p860zcaX45sx2AdqEdOHfOwrZtmpoTERHJq9z+6bm//vqLadOm4e3tDcCsWbP4888/CQkJ4ZZbbnF3dfnWiiMRGDhGk8LLd2DlMk/sdsdOvApNIiIieY/bR5oGDx7M/v370xyrVq2aAtN/XJ2aqxJUlQpFKzmn5ipUsFO5cvoNj0VERCR3uT00FStWLM1mvZJeTNJlfjq5AXAsaBkbC+vXO6bm2rVLwWLJzdaJiIhIRtw+PRcWFkb//v1p1qwZZcuWxcfHJ83jgwYNcneV+c6qo5Gk2B1rVrUP7ciPP3qSnKypORERkbzM7aFp1apVFCtWjN9//53ff/89zWMWi0WhCVh+eBkAZQrdSo3iNXn/n6m5EiXs1K6tqTkREZG8yO2h6ccff3T3JQuURFsia46tAhxrM6WkWFi1yvFtaNfOhtXtE6YiIiLiDnqLzmEbTqwlLiUWcKwC/tNPHly5oqk5ERGRvM7tI01Vq1bFcp07mf/66y93V5mvXF0FPNg3mAalGjFqiuNbEBho0KhRam42TURERK7D7aHp1VdfTROabDYbR44cYcmSJYwePdrd1eUrqfZUIo9EANC6XDuseLJiheNb0KqVjX+WthIREZE8yO2hqWvXrhker1q1Kt999x2dOnVyd5X5xtZTm7mQ6NiXr11oB3bssHLunGOGVFNzIiIieVuO3dNUu3ZtduzYkVPV5Uk/HHQsaOnv6U/z2+4jIsILAF9fg/vuU2gSERHJy3IsNC1btowiRYrkVHV5jmEYLPsnNN17e0t8Pfycq4A3b24jICA3WyciIiKZcfv03H333ZfmnibDMIiLiyMmJoahQ4e6u7p849fTv3L8yjEA2od24K+/rBw54sis7dpplElERCSvc3touv/++9N9es7Ly4vatWtTr149d1eXb3y791sAPK2etCrbhtnvObreajVo3VqfmhMREcnr3B6annnmGex2O9HR0QQHBwOwa9cuqlev7u6q8pUle5cA0Kh0E4r6Bjmn5ho2TKVYMSM3myYiIiImuP2epqNHj9K6dWs++ugj57H+/fvTpUsXTp065e7q8jzDMPj67y/Zc3YP4FgF/NgxC3v2ODbo1afmRERE8ge3h6ZJkyZRsWJF+vbt6zy2YsUKbr31Vl577TV3V5enLTu0lPoLa/JEZB/nsZm/TuftiGXOr3U/k4iISP7g9um5nTt38tVXXxESEuI8FhwczPDhw+nZs6e7q8uzlh1aSt/IXtiNtBvwHr9yjM+NHlDVmxrenbj1Vk3NiYiI5AduH2ny9PTk0qVL6Y4nJCS4u6o8yzAMXv75hXSByclih1Yjadc+JWcbJiIiIjfM7aGpWbNmvPLKKxw9etR57Pjx47z66qs0adLE3dXlSVtO/cyRmMPXL1TsALc22pAzDRIRERGXuX16btSoUfTp04e2bdsSGBgIQExMDHfeeedNs/fc6ThzN7x7F4vK5paIiIiIu7g9NAUHB/P111+zZcsW/v77bzw9PalYsSINGzZMt35TQVUyoJSpcqVMlhMREZHc5/bQBLBt2zYMw6BPH8enxiZNmoSXl9dNs7hlg1KNKBcYet0putI+FahfqmEOtkpERERc4fZ7mr7//nueeOIJ9u/f7zx25swZHn/8cVavXu3u6vIki8XC+EavYLVco3vtVl5pPuGmGXkTEREpCNwemmbNmsXzzz/P448/7jw2ffp0xowZw7vvvuvu6vKs8PIdmd3mE0KLlE/7wIWKND+3iA4VOuZOw0REROSGuD00HT9+PMNPyTVt2pQjR464u7o8Lbx8R7b02MUPD6xgTMVFMGcDvLuPp5uH53bTREREJIvcHppKlSrF1q1b0x3fuXMnxYsXd3d1eZ7FYqFRmTAubuwOx5oQGAiNG2uDXhERkfzG7TeC9+zZk0mTJnH8+HHuvvtuLBYLe/bsYd68eQwaNMjd1eULdjt8953j3y1b2vD2zt32iIiISNa5PTT16tWL5ORk5s+fz4cffgjALbfcwnPPPUfnzp3dXV2eZxgwd64np087vtYGvSIiIvmT26fnAPr27cuGDRvYvHkzO3bs4IMPPmDv3r00bdo0O6rLs5Yt86R+/QBGjPBxHps40Ydly7JlpQcRERHJRtn27p2UlMTatWtZtGgRe/bswWq10qpVq+yqLs9ZtsyTvn19sdvTLitw9KiVvn19mT07kfBwjTqJiIjkF24PTYcOHWLRokV89913XL58GYvFwgMPPMBTTz3Frbfe6u7q8iTDgJdf9kkXmK6y2y1MmOBD+/Y2tFSTiIhI/uCW6TmbzUZERASPPvoo4eHhLFq0iHvuuYcpU6bg4eFB7969b5rABLBliwdHjly/aw8ftrJ1q0cOtUhERERc5ZaRpubNmxMbG0uDBg147bXXaNmyJYUKFQJgxIgR7qgiXzl92tzwkdlyIiIikvvcMtJ05coVgoODKVmyJAEBAXh5ebnjsvlWyZKGW8uJiIhI7nPLSNOmTZuIiIjg66+/ZtGiRfj7+3PffffRrl27m3J/tQYNUilXzn7dKbrQUDv162uRSxERkfzCLSNNhQoV4qGHHuKLL75g2bJldO/enS1btjBw4EBSU1OZN2/eTbWFisUC48cnYbVmPJJktRqMG5ekm8BFRETyEbev01ShQgVGjRrF+vXree+992jRogXffvst7du3p1+/fu6uLs8KD7cxe3YioaH2NMdDQ+1abkBERCQfyrZ1mjw8PGjRogUtWrTg4sWLfPfdd3zzzTfZVV2eFB5uo317G9u3exIb60fhwgnUratlBkRERPKjHFmaOjg4mMcff5zHH388J6rLUywWaNTITlAQXLpkx6YBJhERkXwpW7ZRERERESlo8nRounDhAgMGDKBu3brUr1+fSZMmYctkqGbfvn3cfffdbN26NYdaKSIiIjeDPB2ahgwZgr+/Pxs3bmTx4sVs3ryZefPmXbN8QkICzz33HImJiTnXSBEREbkp5NnQdPToUbZt28aIESPw8/PjtttuY8CAASxcuPCa57z88su0bNkyB1spIiIiN4s8G5r2799P0aJFKVGihPNYhQoViIqKIiYmJl35b7/9lqNHjzJo0KCcbKaIiIjcJHLk03M3Ii4uDj8/vzTHrn4dHx9PYGCg8/jBgweZOnUqn3/+OR4eN7YJrtVqwWrNnrUAPDysaf4vWaP+c436z3XqQ9eo/1yj/nOdu/owz4Ymf39/EhIS0hy7+nVAQIDzWFJSEkOHDuX555+ndOnSN1xfcHBAtm/5Ehjol3khuSb1n2vUf65TH7pG/eca9Z/rXO3DPBuaKlWqRHR0NOfPnyckJARwjCiVLFmSwoULO8vt2bOHI0eOMHbsWMaOHes8/tRTT9G5c2deeuklU/VdvBiXrSNNgYF+xMQkkJpqz/wESUP95xr1n+vUh65R/7lG/ee6zPowKCggg7PSy7OhqVy5ctSpU4dXX32VCRMmcOnSJWbOnEm3bt3SlKtbty67d+9Oc6xKlSp88MEH1K9f33R9druB3Z7xXnHukppqx2bTC/5Gqf9co/5znfrQNeo/16j/XOdqH+bpCdLp06djs9lo0aIFDz30EE2aNGHAgAEA1KpVi++//z6XWygiIiI3izw70gQQEhLC9OnTM3xs165d1zzv77//zq4miYiIyE0qT480iYiIiOQVCk0iIiIiJig0iYiIiJig0CQi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W7duTj0dERERKeBybaTpm2++ISoqiuXLl7NixYo0j+3atYtatWrx8ssv06lTJx577DHi4+MZNGgQFy5c4LbbbuONN95whqJu3bpx5coVBg4cyMWLF7nrrrv48MMP8fLyyo2nJiIiIgWQxdBiRgCcO3cl267t6WklKCiAS5fiNLR6A9R/rlH/uU596Br1n2vUf67LrA+LFy9s6jraRkVERETEBIUmERERERMUmkRERERMUGgSERERMUGhSURERMQEhSYRERERExSaRETkhhgGbN7swZIlnmze7EF+WMDmxInjud2EG3L27FkSEhJyuxk3PYUmERHJsmXLPKlfP4DOnf3p39+Pzp39qV8/gGXLsmfN5DFjhjNhwotpjkVGRhAWVpcPPpiR5vhHH71P3769AGjVqgm//bYLgPfee4f582c7y4WF1WXnzh3Z0l53unDhAm3atOHSpUvZXldExFK6deuY7fXkVwpNIiKSJcuWedK3ry9HjqR9CzlyxErfvr7ZEpwaNw5LF3A2blzHXXfVYMOGtWmO79ixjcaNmwCwatVG7r67FgDR0dkfOrJDUlIS8fHxud0MIZc37BURkbwhJgb278/872jDgOef98Fut2T4uN1uYexYH0qUsGP5p4hjh3mIibGSmvpv2UqV7AQGmmtfgwZhvPHGJI4ePULZsuVITk5m69YtTJs2k4ED+zmPx8bGsnfvnwwbNgpwjCZNn/4Bu3f/ysqVywHYt+9v5s//HIDt27cyffoUTp48TrlyoYwZM47y5Stm2IalS79lwYK5REdfpGHDMOx2O6Gh5enbtz+TJr0EwNixLznLX627du26HDlymJkz3+HAgf1ER0dTunRpnn56MI0bN+HUqSgefLATo0e/wLx5s7lyJYY77riT558fT7FiIfTo0Q2AHj26MWbMOI4cOcyuXb8wY8YsZ13dunWkT58nad++I4MGPUmtWnXYsWMb+/f/TZkytzFq1Fi++moRmzZtJDAwkGHDRtGoUVim/f7DD9/xzTdfcfr0KVJSUqhVqzZjxozH39+fzp3bMmzYKFq3bgtASkoKnTu3ZeLE16lTpx6rV0fyySdzOX36FGXK3MZTTw3innsaADBo0JOUKlWanTt3YBgGn376Jf7+AeZeDLlII00iIje5mBioU6cQ7doFZPpf+/YBnDp1/beOqCgr7dv/e07r1n40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aIKDg9OV/fzzz5k3bx5nz57llltu4dFHH6Vnz56A46OederUwTCMNPPpmzZtcn6cU0RERMQVuRaaEhMT6devHw899BAffvghcXFxjBo1iueff54PPvggTdnVq1czZcoUPvroI+6++25+/fVXnnzySUJCQmjTpg0HDhwgJSWFnTt34u3tnUvPSERERAqyXLunKSoqiqpVqzJw4EC8vb0JCgqie/fubN++PV3ZM2fO8MQTT1CzZk0sFgu1atWifv36zrJ79uyhSpUqCkwiIiKSbXJtpKl8+fJ8/PHHaY5FRkZy5513pit7dRruqgsXLrB9+3bGjBkDOEJTUlISDzzwACdPnqRChQo899xz1K59/c0D/5fVasFqzZ5Fsjw8rGn+L1mj/nON+s916kPXqP9co/5znbv6ME/cCG4YBtOmTWPt2rV8+umn1y177tw5+vfvT/Xq1enQoQMAvr6+1KhRg2effZYiRYqwcOFC+vbty/fff89tt91mqg3BwQHZvrJoYKBftl6/oFP/uUb95zr1oWvUf65R/7nO1T7M9cUtY2NjGTNmDH/88Qfvv/8+VapUuWbZX3/9lWeffZa6devy2muvXXc6Ljw8nIcffphHHjG3c/SFC7HZOtIUGOhHTEzazSrFHPWfa9R/rlMfukb95xr1n+sy68OgoABT18nVkaZjx47xxBNPULp0aRYvXpzhp+auWrx4Ma+88gqDBw+mT58+aR6bOnUqbdq0oVq1as5jycnJWVocy243sNuzNz+mptoL/Gqu2Un95xr1n+vUh65R/7lG/ec6V/sw10LT5cuXeeyxx2jQoAGTJk1Ks/Hif0VGRvLSSy/x/vvv06RJ+n2F9u3bx44dO5g2bRpFihRh1qxZxMbG0qpVq+x8CiIiInITybW7yr755huioqJYvnw5derUoVatWs7/AGrVqsX3338PwIwZM0hNTWXw4MFpyo0bNw6A1157jdtvv53OnTtTv359tm3bxty5cylatGhuPT0REREpYHL9nqa8Qhv25l3qP9eo/1ynPnSN+s816j/XuWvDXn1+UURERMQEhSYRERERExSaRERERExQaBIRERExQaFJRERExASFJhERERETFJpERERETFBoEhERETFBoUlERETEBIUmERERERMUmkRERERMUGgSERERMUGhSURERMQEhSYRERERExSaRERERExQaBIRERExQaFJRERExASFJhERERETFJpERERETFBoEhERETFBoUlERETEBIUmERERERMUmkRERERMUGgSERERMUGhSURERMQEhSYRERERExSaRERERExQaBIRERExQaFJRERExASFJhERERETFJpERERETFBoEhERETFBoUlERETEBIUmERERERMUmkRERERMUGgSERERMUGhSURERMQEhSYRERERExSaRERERExQaBIRERExIVdD0969e3n88ce55557aNy4MSNHjuTixYsZll2/fj0dO3akZs2atGvXjrVr16Z5/KOPPqJp06bUrFmTXr16cejQoZx4CiIiInKTyLXQlJiYSL9+/ahVqxY//fQTP/zwA9HR0Tz//PPpyh45coRnnnmGZ599lh07dvDMM88wZMgQzpw5A8CSJUv45JNPmD17Nlu3buXOO+9k8ODBGIaR009LRERECqhcC01RUVFUrVqVgQMH4u3tTVBQEN27d2f79u3pyi5ZsoS6devSsmVLPD09ad++PfXq1eOLL74A4Msvv6RHjx5UqlQJHx8fnnvuOaKioti6dWtOPy0REREpoHItNJUvX56PP/4YDw8P57HIyEjuvPPOdGUPHDhA5cqV0xyrWLEie/fuzfBxLy8vypUr53xcRERExFWeud0AAMMwmDZtGmvXruXTTz9N93hcXBx+fn5pjvn6+hIfH2/qcTOsVgtWq+UGWp85Dw9rmv9L1qj/XKP+c5360DXqP9eo/1znrj7M9dAUGxvLmDFj+OOPP/j000+pUqVKujJ+fn4kJiamOZaYmEhAQICpx80IDg7AYsme0HRVYKBf5oXkmtR/rlH/uU596Br1n2vUf65ztQ9zNTQdO3aMJ554gtKlS7N48WKCg4MzLFe5cmX++OOPNMcOHDhA9erVAahUqRL79+/n3nvvBSAlJYUjR46km9K7nosX47J1pCkw0I+YmARSU+3ZUkdBpv5zjfrPdepD16j/XKP+c11mfRgUZG6QJddC0+XLl3nsscdo0KABkyZNwmq99pBZp06dmDt3LhEREbRu3ZqVK1eybds2xo4dC8ADDzzAu+++S9OmTQkNDWXq1KmEhIRQt25d0+2x2w3s9uz9tF1qqh2bTS/4G6X+c436z3XqQ9eo/1yj/nOdq32Ya6Hpm2++ISoqiuXLl7NixYo0j+3atYtatWrx8ssv06lTJypUqMB7773HW2+9xdixYylTpgzvvvsuoaGhAHTr1o0rV64wcOBALl68yF133cWHH36Il5dXbjw1ERERKYAshhYzAuDcuSvZdm1PTytBQQFcuhSnvxJugPrPNeo/16kPXaP+c436z3WZ9WHx4oVNXUe34ouIiIiYoNAkIiIiYoJCk4iIiIgJCk0iIiIiJig0iYiIiJig0CQiIiJigkKTiIiIiAkKTSIiIiImKDSJiIiImKDQJCIiImKCQpOIiIiICQpNIiIiIiYoNImIiIiYoNAkIiIiYoJCk4iIiIgJCk0iIiIiJig0iYiIiJig0CQiIiJigkKTiIiIiAkKTSIiIiImeOZ2Awo6wzD4+eRPXDl5icIEUe+WhlgsltxuloiIiGSRQlM2WnZoKS///AJHYg47j5ULDGV8o1cIL98xF1smIiIiWaXpuWyy7NBS+kb2ShOYAI7EHKZvZC+WHVqaSy0TERGRG6HQlA0Mw+Dln1/AbtgzfNxu2Jmw+UUMw8jhlomIiMiNUmjKBltO/ZxuhOm/Dl8+xNZTm3OoRSIiIuIqhaZscCr2lLlycebKiYiISO5TaMoGF4+WcWs5ERERyX0KTdkg+EoYXKxw/UIXKhJ8pXHONEhERERcptCUDUqVAlZOBvs1utduhVVvOsqJiIhIvqDQlA0aNEilXGJn+HIxXKiY9sFL5eDLxYQmdaZ+/dRcaZ+IiIhknUJTNrBYYPz4JKz7usC7+2Dxwn8f3DAW674ujBuXhBYGFxERyT8UmrJJeLiN2bMTCQ014Pceznuc/O9ewezZiYSH23K5hSIiIpIVCk3ZKDzcxpYtcVStmgoH2gLgWXk1bdol5nLLREREJKsUmrKZxQJ33WXA/nYAxCRf5pczO3K5VSIiIpJVCk05oGxZOxxpDjZvAH48tjJ3GyQiIiJZptCUA8qWNSAlAI42BeDHY2tyuUUiIiKSVQpNOaBcuX827v3nvqbfzu3iXPy5XGyRiIiIZJVCUw4oW9Zw/OOf0ASw7rhGm0RERPIThaYcUKqUgZcXcK4agcatAPx4bHXuNkpERESyRKEpB3h4QLlyABZuudIacIw02Q17bjZLREREskChKYeUL+/4v9cRxxTdhcQL/HZ2Vy62SERERLLCM7cbAHDx4kW6d+/OK6+8Qv369dM93q9fP3755Zc0x+Lj4+nevTsTJkzAbrdTp04dDMPA8j97k2zatAl/f/9sb78ZoaGO/8fubonH3R6kGqn8eHw1tUrUyd2GiYiIiCm5Hpp++eUXRo8ezbFjx65Z5uOPP07z9eLFi5kx4//bu/OwqMr+f+DvMwswoAiICqYIuGDuO6Cm6ZO54IJbVmq59bVHUx/TnlY10TTLstL8PZlkZZbmQmlqppVLCribVrikiBsqIvsyyzm/P6YBR5Y5zMIM+H5dFxcyc86cmw8H5u193+c+K/DCCy8AAC5cuACdTofjx4/Dzc3Noe21lqmn6folH3SqF47E1EP4JWUPZnV62bkNIyIiIlmcOjwXFxeH2bNnY+bMmbL3uXjxIhYsWIClS5eibt26AIDTp08jLCzMZQMTUByaDAYBHWs9BgA4dvMIMgruOrFVREREJJdTe5q6d++OQYMGQaVSyQ5O8+fPR3R0NDp16lT02OnTp1FYWIjhw4fj2rVraNy4MWbNmoUOHTrIbotCIUChECxvaAWlUlE0PAcATaR+AGIgSiIOXN+Loc2GO+S41YVSqTD7TBXD+tmONbQN62cb1s929qqhU0NTnTp1KrT90aNHcerUKSxdutTscQ8PD7Rp0wYzZsxArVq1sG7dOkycOBFbt25Fw4YNZb22n5+X2XwoezP1NAGAV0446nnVw83cm/gtdS8mhD/jsONWJ97eGmc3oUpj/WzHGtqG9bMN62c7W2vo9DlNFbFhwwb079+/RNh65ZVXzL6eOHEitmzZgn379mHMmDGyXjs9PdehPU0+PhrUqiUhM1PA2SQ9enX5F9YnfY2d53ciPT3HoYGtqlMqFfD21iArKx8GA5dpqCjWz3asoW1YP9uwfrazVENfXy9Zr1NlQpNer8fPP/+Mjz/+uMRzy5YtQ9++fdGiRYuix7RaLdzd3WW/vihKEEXJLm0tS3CwiFOnlLh0SUDf4cbQlJqbit9vnkZL/1YOPXZ1YDCI0Ov5B8NarJ/tWEPbsH62Yf1sZ2sNq8wA6dmzZ1FYWFjqPKVz587hrbfewu3bt6HVarFixQrk5OSgT58+Tmhp2Uy3U7l8WYGeDXpDgLF36ZcrXB2ciIjI1blsaGrfvj22bt1a9PWVK1dQq1atUnuPFi9ejKCgIAwZMgTh4eE4fPgw1qxZAx8fn0pssWWNGhnTbUqKgNqa2ujwzxpNv1ze7cxmERERkQwuMzx39uxZs69PnDBfLbtfv37o168fSuPj44PFixc7rG32Ehxs7GlKS1MgJwfo1fAxHLt5FImp8cjRZqOGW00nt5CIiIjK4rI9TdWRaXgOMA7R9Q4yrtekF/U4cG2/s5pFREREMjA0VSLT8BwApKQo0L5uR/i4+wAAfknhvCYiIiJXxtBUiRo2lCAIpsngApQKJR5t2BsA8GvKHkiSY6/eIyIiIusxNFUiNzfgoYeKr6ADgN5Bxiv8UrIv40LGeae1jYiIiMrH0FTJgoJMV9AZS9+r4b+KnvslhVfRERERuSqGpkpWvFaTcY2mel4BaOXfBgDnNREREbkyhqZKVrxWkwKmKUy9Gxqvoou/fhD5+nxnNY2IiIjKwdBUyUzDcwUFAm7dMvY2mZYeKDAUIP76b05rGxEREZWNoamS3bvsQHKysfydA8JRQ21c2PJnrg5ORETkkhiaKllQ0L0LXBp7mtRKNXo0eBQA70NHRETkqhiaKlnduhI0GmNwMl1BBxQP0f2dcQHJmZec0jYiIiIqG0NTJROE4iE601pNANArqHjpgV+v/Fzp7SIiIqLyMTQ5gWmILiVFKHqsYc0gNPMNA2BcHZyIiIhcC0OTE5TW0wQAvf4Zott/dR+0Bm2lt4uIiIjKxtDkBKbQdOOGgMLC4sf/9c8tVfL0uUi8Ee+MphEREVEZGJqcwLRWkyQJuHq1eIguIrArNCoNAK4OTkRE5GoYmpzAdCsVwHyIzkPlgW71HwHA0ERERORqGJqcwNTTBBQvcGliWnrgr/Q/cCPneqW2i4iIiMrG0OQEXl6Av3/xPejuZQpNAJceICIiciUMTU5iGqIzrQpuEurTBMHeIQCAn1N4SxUiIiJXwdDkJGUtOwAU9zbtu/Ir9KK+UttFREREpbM6NB0/fhzp6ekAgO+++w6TJ0/GJ598AkmSLOxJgHlour9kptCUpc3EsZtHK7tpREREVAqrQtP69esxevRonD17FufOncOrr74KnU6HNWvW4OOPP7Z3G6slU2jKzhaQkWH+XNeHHoGbwg0A8CuH6IiIiFyCVaHpiy++wBtvvIHIyEjs3LkTTZs2xWeffYZ33nkHW7ZssXcbqyXTrVSAkkN0NdQ1EF6/KwAuPUBEROQqrApNV69eRe/evQEABw8eRI8ePQAATZo0QVpamv1aV42ZepqAklfQAcWrg5+8fQK3825XWruIiIiodFaFptq1a+PWrVtIS0vDmTNn0K1bNwBAUlIS/P397drA6qp+fQkqlbG36f61mgDzpQf2cukBIiIip1NZs1NUVBRmz54NjUaDgIAAdOnSBTt27MCCBQswYsQIe7exWlIqgQYNJCQnC0hJEUo8H+bbHPW9HsL13GvYcPYbqBQqBHgFIiKwKwSh5PZERETkWFaFplmzZiEgIABXrlzB6NGjoVQqcefOHTzxxBOYPn26vdtYbTVqJCI5WVHqsgOCIKCJT1Ncz72G/Vd/xf6rvwIAgr1DMK/rQkSFDqrs5hIRET3QrApNCoUCY8eONXvs/q/JsvLWatp+cRsOXNtX4vHkrEuYuGssYvuuZXAiIiKqRFbNadJqtfjf//6Hy5cvAwBef/11tG/fHhMnTsTdu3ft2sDqzHQF3dWrAgyG4sclScL8Q29AQulrXomSiJj4OVwTi4iIqBJZFZqWLl2KNWvWICcnBwcPHkRcXBwmT56MnJwcvPPOO/ZuY7UVHGzsadLrBVy/XjxPKeHGISRnXSp330uZF5F4I96h7SMiIqJiVoWmH3/8Ee+//z5atmyJn3/+GV26dMHzzz+PN954A3v37rVzE6uve5cduHeILjX3hqz95W5HREREtrMqNGVkZKBx48YAjOs0mZYc8PX1RUFBgf1aV80FBd27VlNxT1OAV6Cs/eVuR0RERLazKjQFBQXh9OnT+PPPP3H58mU88sgjAIA9e/agQYMGdm1gdebjA3h7G+cl3dvTFBHYFcHeIeXuG1IrFOGBkY5sHhEREd3DqtA0adIkvPjii3jqqacQERGB5s2b4+OPP8Y777yDiRMn2ruN1ZYglH4FnSAImNd1IRRC6T8ehaDA3MgFXK+JiIioElm15EB0dDSaN2+Oq1evFt1CpXXr1li9ejW6du1q1wZWd0FBIk6fVpZYdiAqdBBi+65FTPwcXMq8WPS4p8oTHz/2KZcbICIiqmRWhSYAaN68ORo0aICkpCSo1Wp06NABNWrUsGfbHgiNGpmG50r2GkWFDsKAkIFIuHEIK09+hF3JO1GgL0Cnep0ru5lEREQPPKtCkyRJeOedd/DVV19Br9dDkiS4ublh1KhReO211zhsVAGmyeBpaQrk5AD3505BEBBZvxvqedbDruSdECHim6Sv8J+Os53QWiIiogeXVXOaVq1ahc2bN+Pll19GXFwctmzZglmzZuH7779HbGysvdtYrZnWagKAK1fK/nGE+jRBt/rGCfdf/fUlREksc1siIiKyP6t6mjZs2IB58+YhKiqq6LEWLVrAz88Py5cvx6RJk+zWwOrOfK0mAQ8/XPa2Y1o8i4PXDyAlKxn7r+7Fow17V0ILiYiICLCyp+nOnTto3bp1icfbtm2LGzcqvuBieno6+vTpg8TExDK3mTRpElq3bo327dsXfezfv7/o+U8//RQ9evRAu3btMHbsWFy8eLHM13IlDRpIEATjvKaUlPJ/HFGhg+Hr7gsA+OrPLxzeNiIiIipmVWgKDg7GwYMHSzz+22+/oX79+hV6rWPHjmHUqFFISUkpd7szZ84gNjYWJ06cKPowXbkXFxeHtWvXIjY2FomJiWjZsiWmT59eJe7N5u4OBAaWXKupNB4qD4wMexIAsPPSD0jLT3N4+4iIiMjIqtA0fvx4LF68GO+++y5+/vln/PLLL3jnnXewZMkSjB07VvbrxMXFYfbs2Zg5c2a52125cgWZmZlo0aJFqc9/++23ePrpp9G0aVO4u7tj1qxZuH79erk9V66ktLWayjKmxTgAgE7UYUPS145sFhEREd3DqtAUHR2NF198Ed9//z2mTp2KKVOm4Pvvv8eMGTMwZswY2a/TvXt37N69GwMGDCh3u9OnT8PLywszZ85EREQEBg4ciE2bNhU9f+HCBTRr1qzoa7VajeDgYCQlJVX8m3OCoCDT8Jzlqw6b+z2MTvW6AADW/fVFlehNIyIiqg6sXqdp3LhxGDduHNLT0yFJEmrXro3Dhw/j0UcflX3T3jp16sjaTqvVol27dpg5cyaaNm2KxMRETJs2DV5eXujfvz9yc3Oh0WjM9vHw8EBeXp7s70ehEKBQOGapBKVSYfb5fiEhxcNzSqUCllZseLb1eBy9eRgXMs7jyK14dH2ou13b62os1Y/Kx/rZjjW0DetnG9bPdvaqodWhycTPz6/o34WFhbh586atL1lCdHQ0oqOji77u3r07oqOjsXPnTvTv3x8ajabEjYILCgrg5eUl+xh+fl4OX1/K21tT6uMtWxo/5+cL0Gq9EBBQ/uuM7zwWrx94GVmFWVh//itEtepr55a6prLqR/KwfrZjDW3D+tmG9bOdrTW0OTRVhk2bNhX1KplotVq4u7sDAJo2bYrz58+jV69eAACdTofk5GSzITtL0tNzHdrT5O2tQVZWPgyGkusr1a6tAGD8QZ46lQ93d8trMI1o9gQ+O70am/7YhJiIxfDx8LV3s12GpfpR+Vg/27GGtmH9bMP62c5SDX195XWyVInQlJOTg/fffx+NGjVC8+bNsX//fvzwww9FC2kOHz4cy5cvR48ePRASEoJly5bB398fnTp1kn0MUZQgio6dH2QwiNDrS/6wGjYsPu7Fi0CHDpZ/KUY3fxafnV6NAkMB1v/5DSa1ed6ubXVFZdWP5GH9bMca2ob1sw3rZztba+iyoal9+/aYP38+Bg8ejGeffRZ5eXl44YUXcOfOHTRs2BBLliwpCkUjRoxAdnY2pk6divT0dLRu3RqffPIJ1Gq1k78LeerWleDhIaGgQJB1BR0AtK7TFm3rtMep2yew9s8vMLH1ZN6+hoiIyIFkh6YVK1ZY3Oby5ctWN+Ts2bNmX584caLo34IgYMqUKZgyZUqp+wqCgAkTJmDChAlWH9+ZBMF4D7pz55QWF7i815gWz+LUvhP4K/0PHL91FB15I18iIiKHkR2atmzZImu7wMBAqxvzIGvUSMK5c8Zbqcg1rOkIzDv4GvL0efjqzy8YmoiIiBxIdmj65ZdfHNmOB15QkPwFLk1qunkjuslwfJ20FnHnNyGm2yLUdPN2VBOJiIgeaFz0wUWYVgW/fl2AVit/vzEtngUA5OnzsOX8JgtbExERkbUYmlxEo0bGK+gkScDVq/KH6DrW64yH/Yy3l+FNfImIiByHoclFmIbngIoN0QmCUNTbdOr2CZy+fcrubSMiIiKGJpdhGp4DKhaaAGBEs1FwVxoX+lz75+f2bBYRERH9g6HJRdSoAfj7V3wyOAD4evhhYOgQAMDm8xuRq8u1e/uIiIgedAxNLiQoyDivKSWl4otUjm0xDgCQrc3Ctr+/s2OriIiICGBocimmIbqK9jQBQGT9bmjs0wQAh+iIiIgcgaHJhdgSmgRBwJiHxwEAjqQmIin9L3s2jYiI6IHH0ORCTMNzmZkCMjIqvv+o5k9DrTDeb28dlx8gIiKyK4YmF3LvFXQVuQedib/GH/1DBgIAvj37DQr0BXZrGxER0YOOocmF2LLsgIlpzaa7hXex49I2u7SLiIiIGJpcSv36EpRK4xBdRW7ce68eDR5FkHcwAGDtH5/bqWVERETE0ORCVCqgQQNTaLLuR6MQFBjdfCwA4OD1A7iYccFu7SMiInqQMTS5GNPtVKwNTQDw1MNjoBSUAICv/vrSLu0iIiJ60DE0uZjgYGNosmYiuEmAVyD6NOoLAFiftA5ag9YubSMiInqQMTS5mEaNjMNzV64IMBisfx3ThPC0/Nv46PgyxJ3fhPjrByFJkj2aSURE9MBRObsBZM40PKfTCUhNFfDQQ9aFnN5BfeDr7ou7hXfxzpG3ih4P9g7BvK4LERU6yC7tJSIielCwp8nF2GPZAQDYlbwTGYUZJR5PzrqEibvGYvtFLkdARERUEQxNLsY8NFm37IAkSZh/6A1IKL2XSpRExMTP4VAdERFRBTA0uRhfX6BGDduWHUi4cQjJWZfK3eZS5kUk3oi36vWJiIgeRAxNLkYQbLtxLwCk5t6w63ZERETE0OSSbA1NAV6Bdt2OiIiIGJpcUlCQcXguJcW6OU0RgV0R7B1S7jYhtUIRHhhp1esTERE9iBiaXJCpp+nWLQXy8iq+vyAImNd1IRRC6T9eAQLmRi6AIFgXyoiIiB5EDE0uyLQqOGD9yuBRoYMQ23ctQmqFlnjOz8MPjzbsbXX7iIiIHkQMTS7INDwHWD9EBxiDU/xTJ7Co6S5M8vkSowPnAgDuFNzBB8eW2txOIiKiBwlXBHdBDRvev8CldfdT2b5dhfnz3ZGc/Pg/j0jQTEpEfoNdWHnyIzwR9hSa+jazvcFEREQPAPY0uSAPDyAgwLYr6LZvV2HiRA8kJ9+7v4D8LcsBvRt0og6vHniJC1wSERHJxNDkokyTwa0ZnpMkYP58d4hiKfumNwUOvgwA2H/1V2z9O86mdhIRET0oGJpcVKNG1q8KnpCgvK+H6T4HXgXuBgMA5hx8FTnabGuaSERE9EBhaHJRQUHFw3MVHUFLTbXQO6XXADs/Mm6bewNLjy6xpolEREQPFIYmF2UansvLE5CWVrEhunr1ZKSsc4PQpdYAAMCq31ciKf2vCreRiIjoQcLQ5KJMw3MAcPmy/NAkScAvvygtbhcSImLFwLfhofSAXtTj5f0vclI4ERFRORiaXJSppwmQv8ClJAGLFrnho4/cTY+Uup1CIWHu3EIE1wrGfzrOBgDEXz+ITec22NRmIiKi6oyhyUXVqyfB3V3+ZHBJAt56yw0ffmgMTGFhBnzwQQFCQkSz7dzdJcTGFiAqSg8AmNJuetGq4W8eegNZhZn2/DaIiIiqDYYmF6VQ3DsZvPzhOVNgMvUwhYUZsGVLPp5+Wo+EhFx8/30ehg/XAgAKCwW0bFm8WKaHygOLHzGuDn47/xaWHH7LEd8OERFRlcfQ5MJMt1Mpb3hOkoCFC4sDU/PmxsBUp45xX0EAIiMNmDtXC0EwPrZ5s9rsNXoHPYaBoUMAALFnVuF02u92/16IiIiqOoYmF2aa11TW8JwkAQsWuGH58uLAtHlzcWC6V2CghO7djT1MGzeqSyxjsKDbYniqPCFKIl7ZPwuiJJZ4DSIiogcZQ5MLM4Wma9cE6HTmz5kC04oVxsD08MNlByaTkSONL3LxogInTpj/6B+q2QAvdjKuFH4kNREbkr6217dBRERULbhEaEpPT0efPn2QmJhY5jbffPMN+vbti/bt26Nv375Yt25d0XOiKKJ9+/Zo164d2rdvX/SRl5dXGc13GNPwnCgKuHq1eF6TJAExMe5mgWnTpvIDEwBERenh4WHcZtMmdYnnn287Fc18wwAAMfFzcLcg3S7fBxERUXXg9NB07NgxjBo1CikpKWVus2fPHrz//vtYsmQJjh8/jrfffhsffPABdu3aBQC4cOECdDodDh8+jBMnThR9eHp6Vta34RD3LjtgGqIzBaaPP3YDIK+HyaRmTaBfP+NVc999pyrRe+WmdCuaFH6n4A4WJS6wx7dBRERULTg1NMXFxWH27NmYOXNmudvdvHkTzz33HNq1awdBENC+fXuEh4fjyJEjAIDTp08jLCwMbm5uldHsSnNvaPr+exUOHVLizTdLBiZ/f/mLUpqG6NLSFNi3r+QimI806ImhTYYDAL784zOcvHXclm+BiIio2lA58+Ddu3fHoEGDoFKpyg1Oo0ePNvv6zp07OHLkCF599VUAxtBUWFiI4cOH49q1a2jcuDFmzZqFDh06yG6LQiFAoajY7UrkUioVZp/lOnhQCYVCgigKWLfODevWFYfCFi1EfPddAfz9BQDy2/3YYxJq15Zw546AzZvd0K9fYYltFvZ4G7sv/4QcXTZe3v8i3uy2ELfybyLQKxCR9btBEBxTp7JYWz8yYv1sxxrahvWzDetnO3vV0KmhqU6dOhXe5/bt25g8eTJatWqFgQMHAgA8PDzQpk0bzJgxA7Vq1cK6deswceJEbN26FQ0bNpT1un5+Xg4PA97eGtnbxsUB48YBYhkXsb30kgJNm3pZ1Y6nngJWrAB27FBBpVKhZk3z5319myCm13y8+NOLOHHrOIbEDSh6rrFvY7zb510MfXioVce2RUXqRyWxfrZjDW3D+tmG9bOdrTUUJBe54VhYWBi+/PJLhIeHl7nNyZMnMWPGDHTq1AmLFy8udzguKioKTz31FMaMGSPr+Hfu5Di0p8nbW4OsrHwYDJYv5ZckoFMnDS5dKjsRh4aKOHIkH9bkvKNHFXj8ceOJs3JlIZ58Ul9im+/Px2H8zrGl7q8QFPh8wFcY2HhwxQ9uhYrWj8yxfrZjDW3D+tmG9bOdpRr6+srrhHBqT1NFbNq0CQsXLsT06dMxYcIEs+eWLVuGvn37okWLFkWPabVauLu73/8yZRJFCaLo2PxoMIjQ6y2f8PHxynIDE2BcNuDgQQEREYZytytN27YiQkJEXLqkwIYNSowYoTV7XpIkzD84t8z9RUnEvN/eQN+gqEodqpNbPyod62c71tA2rJ9tWD/b2VrDKjFAumvXLrz55ptYvnx5icAEAOfOncNbb72F27dvQ6vVYsWKFcjJyUGfPn2c0FrbpabKCyJyt7ufIAAjRhgnhB84oCzxOgk3DiE561K5r3Ep8yISb8RbdXwiIqKqyGVDU/v27bF161YAwIoVK2AwGDB9+nSzdZjmzjX2hixevBhBQUEYMmQIwsPDcfjwYaxZswY+Pj5O/A6sFxAgr8dL7nalGT7cGJpEUcCWLeYdjqm5N2S9htztiIiIqgOXGZ47e/as2dcnTpwo+ve2bdvK3dfHxweLFy92SLucISLCgOBgEcnJZWfakBAR4eEVH5ozCQ2V0LGjAceOKbFpkxpTphQv2hTgFSjrNeRuR0REVB24bE/Tg0wQgHnzCqFQlN6TpFBImDu30KpJ4PcyDdGdOaPEX38VnwoRgV0R7B1S7r4htUIRHhhpWwOIiIiqEIYmFxUVpUdsbAFCQswnrIWEiIiNLUBUVMkr3ioqOloPlcoYzDZvLu50FAQB87ouhEIo+/ToVr97pa/XRERE5EwMTS4sKkqPhIRcfP99HlatysfWrXlISMi1S2ACgNq1JfzrX8Yhvs2b1WZrQkWFDkJs37UIqRVqto9aYbxn3Yaz3+BIatn3CiQiIqpuXGZOE5VOEIDISOvnLlkyYoQOu3apcO2aAgkJSnTtWnysqNBBGBAyEAk3DuFmbioCvALh6+6Hflt6I1eXg4m7nsGekQdQ17Ouw9pHRETkKtjT9IB7/HE9atQwDtFt2lQyQwuCgMj63RDddDgi6ndFWO3m+Kj3SgDGq+cm/zQeetE+PV9ERESujKHpAafRAIMGGUPP1q1qFBRY3mdQ42g83/YFAMDB6wewKDHGkU0kIiJyCQxNVHQVXVaWgN275Y3YzomYj8j63QAAK058gO0Xy18WgoiIqKpjaCJ07WpAYKBxFnhpQ3SlUSvVWPX456jnGQAAmPbz8/g747zD2khERORsDE0EpRIYNsw4RLdnjwrp6fL2q+dZD5/2/QIqhQo5umyM/3EMcnW5DmwpERGR8zA0EYDiITqdTsDWrWrZ+0UERuLNyIUAgKT0vzBr7zRIkmNvfExEROQMDE0EAGjZUkSLFsblBuQO0Zk81+bfiG4yDACw5fwmxJ7+xO7tIyIicjaGJipi6m06fFiF5GT5q30LgoD3e61AmG9zAMDcQ6/h8A0ufElERNULQxMVGTZMD0EwDq1t2SJ/iA4Aaqhr4LN+X8FLXQN6UY9JPz2DW3m3HNFMIiIip2BooiL160vo3r14iK6iU5Oa+jbDR73/H4DihS91Bh3irx9E3PlNiL9+kPOdiIioyuJtVMjMiBE6HDigwoULSpw6pUC7dqLlne4xqPEQTGk3HStPfoSD1w/g4TWhyNJmFj0f7B2CeV0XIip0kL2bTkRE5FDsaSIzUVF6eHiYbqtSsSE6kzci3iya33RvYAKA5KxLmLhrLBfDJCKiKoehicx4ewN9+xrXbNqyRQW9FbeVUwpK5OnzynxelETExM/hUB0REVUpDE1UgukqurQ0BfbvV1Z4/4Qbh3AlO6XcbS5lXkTijXir2kdEROQMDE1UQu/eBvj5GecyffttxYfoUnNv2HU7IiIiV8DQRCWo1UB0tHFcbudOFXJyKrZ/gFegXbcjIiJyBQxNVCrTEF1+voAdOyp2kWVEYFcEe4eUu42nygsta7eyun1ERESVjaGJStWxo4jgYOMQ3erVasTFqRAfr5S1dpMgCJjXdSEUQtmnV54+F/0298b5u+fs1WQiIiKHYmiiUgkC0LatcaHLkydVmDxZgyFDPBEe7oXt2y33PEWFDkJs37UIqRVq9niwdwi6BnYHAJzPOIe+m3px+QEiIqoSuLgllWr7dhW2bSt5eiQnKzBxogdiYwsQFVX+egRRoYMwIGQgEm4cws3cVAR4BSI8MBIA8NmZVZhz8FXk6LIx/sfRmN7+RbwaPgdKRcWv1iMiIqoM7GmiEiQJmD/fHaJY+k17RVFATIy77KG6yPrdEN10OCLqd4UgCBAEARNbT0bckB2o5xkAAPjoxPt48odhuJN/x57fChERkd0wNFEJCQlKJCeXf2pcuqRAYqJtvULhgRHYM3J/Ue/Tvqu/os/GHjh164RNr0tEROQIDE1UQmpq6T1M1m5XnnpeAdgy+Ac81/p5AMDVnCsYGPc4vvnrKwCAJEk4dO03rD+zHoeu/cZVxImIyGk4p4lKCAiQF0zkbmeJWqnGW4+8g3Z1O2D2vhnI1+djxq9TEHdhMy5l/o3LWclF2/KGv0RE5CzsaaISIiIMRcsNlCUkRER4uMGuxx0Z9iS2D9uDIO9gAMDeKz+bBSaAN/wlIiLnYWiiEgQBmDevEApF6T1JCoWEuXMLIdg+OldCK//W+Gn4r9CoNGVuwxv+EhGRMzA0UamiovSIjS1ASEjJHqfFiy0vN2CLs3eTkK/PL3cb3vCXiIgqG0MTlSkqSo+EhFx8/30eliwpgCAYe3ZSUx172vCGv0RE5IoYmqhcggBERhowfrwOjz1mnMP0zTdq6B3X0cQb/hIRkUtiaCLZRo823sQ3NVWBX3913Mrdcm74q1F5opV/G4e1gYiI6H4MTSRbnz561KljnOP01Vdqhx1Hzg1/8/V5GPZ9FG7l3XJYO4iIiO7F0ESyqdXAqFHG3qafflLh5k0HXD73j/Ju+BsR2BUAcPL2CURteQx/Z5x3WDuIiIhMGJqoQkxDdAaDgA0bHNfbBBiDU8LTJ/DD8B+xfvh6bB++C4mjT+K76B2Y3v5FAMDlrGREbemDo6mHHdoWIiIihiaqkMaNJURGGmeBr1unlnXTXlsIgoCuD3XHqFajEPlQNwiCAIWgwBuRb+LtHu9BISiQXpCOYd8PxM5L2x3bGCIieqAxNFGFmXqbLl1SID7ecRPCLZnQ6jms6bcOHkoPFBgKMP7H0fjszKdOaw8REVVvDE1UYQMH6uHtbexicuSEcDn6h0Rh85Bt8PPwgyiJeGX/LCyInwdRKv82MERERBXlEqEpPT0dffr0QWJiYpnb7Nu3D4MGDUK7du3Qv39//Prrr2bPf/rpp+jRowfatWuHsWPH4uLFi45u9gPL0xMYPtzY2/TDDypkZjq3PZ0DwrF92O6ie9YtP7EMU/f8H7QGLSRJQvz1g4g7vwnx1w/y1itERGQ1p4emY8eOYdSoUUhJSSlzm+TkZEybNg0zZszA0aNHMW3aNPznP//BzZs3AQBxcXFYu3YtYmNjkZiYiJYtW2L69Ol8g3Qg0xBdQYGAzZud29sEAI19mmLHsD1oV6c9AGDz+W/RZ2NPdP6qDYZ81x+Td0/AkO/6I3xdO97sl4iIrOLU0BQXF4fZs2dj5syZFrfr1KkTHnvsMahUKgwYMACdO3fGhg0bAADffvstnn76aTRt2hTu7u6YNWsWrl+/Xm7PFdmmTRsRrVsbVwhft875oQkA6nrWRVz0DjwW9DgA4K/0P5CSfdlsm+SsS5i4ayyDExERVZhTQ1P37t2xe/duDBgwoNztLly4gGbNmpk91qRJEyQlJZX6vFqtRnBwcNHz5Bim3qbTp5X4/Xend1oCALzUXvii/zeoqa5Z5jaiJCImfg57IomIqEJUzjx4nTp1ZG2Xm5sLjUZj9piHhwfy8vJkPS+HQiFAoXDMYo1KpcLsc3UxapQBb74poaBAwNdfu6FDB61DjlPR+h2+eQTZuuxyt7mUeRFHbyUg8qFuNrfP1VXX868ysYa2Yf1sw/rZzl41dGpokkuj0aCgoMDssYKCAnh5ecl6Xg4/Py8IguNWuAYAb2+N5Y2qEF9fYORIYO1aYNMmNZYvV8PT03HHk1u/7Gt3ZW138OY+PN6iN1SKKvFrYLPqdv45A2toG9bPNqyf7WytYZV4t2jWrBn++OMPs8cuXLiAVq1aAQCaNm2K8+fPo1evXgAAnU6H5OTkEkN65UlPz3VoT5O3twZZWfkwGKrXpfCjRimwdq0GWVnAF18U4skn9XY/RkXrVxO+sl530W+L8OmxTxHddBiGhY1El4DwEsHZdPXdjdwbCPQKRGT9bg4P1/ZWnc+/ysIa2ob1sw3rZztLNfT1ldfJUiVC0+DBg7FmzRrs2LEDjz/+OH766SccPnwYr7/+OgBg+PDhWL58OXr06IGQkBAsW7YM/v7+6NSpk+xjiKIEUXTsHBeDQYReX71O+M6dRYSGirh4UYEvv1RixAjHDNEB8uvXqU4kVFmNoff+u+yNJAUgiLidfxuf/v4JPv39EzSsGYQhTYZhaNMRaFW7NXZc+gHzD72B5KxLRbsFe4dgXteFiAodZI9vqVJVx/OvsrGGtmH9bMP62c7WGrrsAGn79u2xdetWAEDjxo3x8ccf45NPPkHnzp2xcuVKLF++HCEhIQCAESNGYNy4cZg6dSoiIiLw559/4pNPPoFa7RpXdVVnggA8/bRxQnhCggoXLji/FyYxUQX9jncBsYzTW1QAG7/Ba6EbMLTJcHiqjGOKV7JTsOLEB/jXt93R7ovmmPDjGLPABPDqOyKiB5kg8RIiAMDt2+VPHLaFSqWAr68X7t7NrZb/S7h5U0C7dl4wGAS88EIh5s61b29TResXF6fC5MkaoHkc0Oe/QO0LxU/eaQLsfgdIGopVq/IRHa1Hji4HPyXvRNz5TfglZQ90os7iMUJqhSLh6RNVYqiuup9/lYE1tA3rZxvWz3aWalinTtlXXN/LZXuaqOqoV0/C448b5zKtX6+GznLmcKiAgH/+H5A0FFh+DlizD9i4Hvhsv/HrpKFm29VQ18CwpiOxdsAGnBl3Hi+0+4/FY1zKvIjEG/GO+haIiMgFMTSRXYwZY0xKaWkK/PSTc6fKNWggQqUydaAKwOUewB+jgJRHjF8DCAkRER5uKLGvr4cfWtdpI+s4yZm8VQ8R0YOEoYnsolcvAwIDjV2ezlwh/MYNAcOGeUKvL3vYTKGQMHduIcoaWQvwCpR1rNd++y8+OLYU2dosa5pKRERVDEMT2YVKBTz1lLG36ZdflLh2rfLn+ty8aQxMly8bT+snntAiJMR87FoQJKxcWYCoqLKXRogI7Ipg7xCLx8vR5WBRYgw6rW2NZUffZXgiIqrmGJrIbp580hiaRFHA+vWV29uUliZgxAgN/v7beEq/8kohVqwoREJCLr7/Pg8vvVQIAJAkAZYufRAEAfO6LoRCKP3XQyEo8ErnN9D9oR4AgLuFd7H48AJ0XNsK7x99xyw8mdZ5iju/CfHXD/LWLUREVRivnvsHr56zj+HDNThwQIWGDUUcOZILhR1iuaX6pacDw4Z54s8/lQCAF18sxCuvmF/BJ4pAly5eSElRoFcvPTZsyLd43O0XtyEmfg4u3TN3KaRWKOZGLihapyn++kEsPfI2DlzbV7SNj7sPJredikY1G+GdI4udvs7Tg3T+OQpraBvWzzasn+3sdfUcQ9M/GJrso+hyfwDffpuHRx8tOdm6osqrX2YmMHy4J37/3RiYXnihEHPmaEudr7RkiRvee88dCoWEkydzi6+yK4ckSUi4cQg3c1MR4BWI8MDIUpcZSLh+CO8efRsHru61+JoKQYHYvmsrLTg9SOefo7CGtmH9bMP62Y5LDpBL6t9fD19fYxhx9ITw7Gxg1KjiwDR5srbMwAQAI0cWDx9u3izvCj9BEBBZvxuimw5HRP2uZa7LFFG/KzYP3oqtQ3fhkYceLfc1RUlETPwcDtUREVUxDE1kVx4exeFk504V7txxzITwnBzgySc9cfy4MTCNH69FTEzZV8QBQGiohM6djT1f336rtji3yRoRgZGY3flli9tdyryIhOuH7N8AIiJyGIYmsjvTbVW0WgGbNtl/zaa8PGDMGA2OHDEGpjFjtFi8uPzAZPLEE8a2/fWXEmfOOOb0T829IWu7cT8+jVcPzMb+q3uhM5S+IignkhMRuQ6GJrK7Fi1EdOxo7NFZt86+PToFBcAzz2hw6JAxjD3xhA5LlxbKnnA+ZIgObm7GBn37rWOGD+Wu83S38C5iT6/CiK2D0fLzxnjh58nYcfEH5OnyABgnooeva4ch3/XH5N0TMOS7/ghf1473vSMichKGJnIIU29TUpISx45Zf5pJEnDokALr1wN79yowbpwG+/cbA9PQoTp8+GFBha7Q8/EB+vY1rtG0ebMK+rKXa7KanHWe6mrqYnDoUHipawAAMgoz8O3ZbzDux6fx8JoQ9N3UizcMJiJyMQxN5BBDh+rg6Wns0Xn/fTfExakQH6+sUK/T9u0qhId7YeBADZ56Chg2TINffjEGpoEDdVixogBKZcXbZhqiS0tTYO9eK17AAjnrPC3puQyr+32Bv8ZfxNdRGzHm4Wfhr/EHAOTr83Hi1jFIKL1YlTmRnMODRETFGJrIIWrUADp2NHbj7NmjxuTJGgwZ4onwcC9s3255ntP27SpMnOiB5OTSTlEJQ4boobZydK13bwNq1zZecrpxo2OG6KJCByG271qE1Ao1ezykVqjZcgMeKg881qgv3u+1HKefPY+t0T9iUOOhFl//UuZFrD79CfL15a83JUkSDl37DevPrMeha79VKPRweJCIyBzXafoH12myL1PoEcWSs7MVCgmxscZbmUiS8Uq4u3cFs4/XXnPHnTtlZ/qQEBEJCbmyJn+X5vXX3fHpp27w8JBw5kwOvL2tex1L5K7zdK+485swefcEWa+vVqjRpk47dAmIQHhgJLoERhT1WG2/uA3zD71h1eKa2y9uw8RdYyFKJc/Xyl5nyhU8iL/D9sT62Yb1sx0Xt7Qzhib7kSQgPNyrjF4iI7Vagre3hMxModyb65Zn69Y8RERYt3jmqVMK9OnjBQBYtqwAo0eXfvWaM8RfP4gh3/W3ev8mPk0R6FUfv13bX+oQX2mhRy/qkafLRb4+H7m6XAzbOhDXc66VeYyQWqFIePqExQBYXTxov8P2xvrZhvWznb1Ck/2vB6cHXkKCstzABAA6nWDzGk6pqdbv36aNiGbNDDh3Tolvv1W5VGgyTSS/fxL4vYK9Q/D+o8txODUBiTficfTmkaJ73l3IOI8LGefL3FeURDz307Pwc6+NAkMB8vV50IkV+/4vZV7EprMbMCJsVLnBydTTlpp7AwFegYgILHuBUCIiV8fQRHYnN8z066dDly4G+PlJ8PEBfH0l+PhIuHhRwPjxnhb3l3MblLIIAvDEE3osXKhEfLwKly8LaNTINTpdTRPJyxsem9d1Ibo36IHuDYw3DTaIBvyV/icSb8Rjx8WtOHBtf7nH0It63Mq/aVM7p/7yf5hz6BV0CYxEeEAkIupHorV/W7gp3QDYNjxIROSKODz3Dw7P2U98vBJDhlgOPWUNr8kZ3rN1ThMAXLsmoEMHL0iSgJdfLsSsWVrLO1UiOTcMLo3cOVGPN+qPtnXbQaPyhEalgZfaCxqVBpezLmFhwnyr2qxRadChbif4aWrjh7+3QoLtc6JcobfqQfsdtjfWzzasn+04p8nOGJrsxx6hR+5EclsNH67BgQMqu4QwR7BmIrncOVFbo39ERP2upR4zfF27cocHg2o2wuvh83D4ZgISbyTgj7TTZS6RUBq5c6Ls0Vtlj9D1oP0O2xvrZxvWz3YMTXbG0GRf9gg927erEBPjjkuXisNXSIiIuXML7RKYAGDDBhWmTdP8c7xcdO5c9X8+ckKPpdBS0avnsgozcfTmYSTeiMdPyT/ijztnLLazS0AEutbvjua1H8bDfi3R2KdJ0dCeNW0o6/uwxxDhg/g7bE+sn21YP9sxNNkZQ5P92SP0SBJw5IgKOTka1KyZj06d9HbtDcrJAVq1qoG8PAHPPqvFu+8W2u/FnchegcORw4P3UylUaOLTFM39HkaY78NY88dq3More96VvYNfWSRJwpFb8cjGXdSELzrXtdzbZ0+uMDxpqwf1b6C9sH62Y2iyM4Ymx5Ak49V0N28KCAiQEB5uqHDocXT9pk71wMaNatSqZVyzyd3d7odwCmtDz70cOTzYzLc5ruVcRa4uR1ZbShPdZDga+zSBRuUJT5XGOD9LrYG7wgOvHJiFm3mpZe4rZ4jQ2cOD1WUy/YP8N9AeWD/bMTTZGUOT63J0/fbtU2LkSOPE9djYfAwa5IAb0jmJqZckBxmoCV90qhvh8F6KigwPAsDVnCv4684fSEr/C3/d+RNJ6X8hKf1PGCTr1uCqiCfCnkKXgAjUr1EfgV4PoX6N+vBx94UgCE4fHqxOC4w6828ge+oIYGiyO4Ym1+Xo+hkMQIcOXrhxQ4F+/XT48ssCux/DmZxx/tn6hv/b1f0YtnWgxePU9qgNg2RAvj4fhQb7DK1qVBoEeAbiRu51FBjKPheCajbCvlEJ8FR7lvombG0NDKIB2dos9N7YHVezr5R5fLmT6Z0dGmwd3nR2T11Vr5+zObt+JgxNdsbQ5Loqo34LFrhh+XJ3qFQSfv89F/7+1efXwlnnny3Dg9ZMZjeIBuQb8lGgL8DBa/vx3E/jLLbRU+WFPH2uvG+oDGqFGt5u3vB2rwVvt1rwdq+Fmuqa2H91L3J0Zf9d8VR5oUO9TsjVZSNbW/xRkfbM7PASBjYejMY+TeGpLrnMh7NDg63Hd3ZPXVWvnz24Qvsr4wpYhqYKYmhyXZVRv6QkBXr0MN5WZdGiAkya5DorhNvKFYZGKjInysSWN72KhK5cXQ5u5N7A9ZxruJF7HddzruHgtd9w4NpeWe10BQIEBHk3QnO/h9HMtzma+YYhLf82FiTMq7LDi5X183fkhQTODn2A80KPvdpfWVfAMjRVEEOT66qs+vXp44lTp5Ro396AXbvyHHacylaVzz9beqts+aMtdzL7lLbTUdvTH9mFWcjSZiKzMBPZ2ixczPy73FvZmLTxb4smvs1Q080bNd1qoqa6Jmq61URqbio+OvG+xf1tUUdTB+/2/BC13GsZj+3mDW8347/dlG42DS8W6AvQc0MEUrIvl3n8BjUa4puozRAEwexNXIAASZLwxA/RuJZztcz9/TX+eL7tNOTqspGlzUK21vg5R5uNGzk38Hem5fr3avgvNPdrgdqa2qjt4Q8/02cPXzz5w/By2+/I0GWP0GdqgzNCjz3bb695fQxNdsbQ5Loqq36ffqrG6697AAB++y0XzZpVj59VVT//bO2tsiZ02fpHvzIWGA2pFYq4wdtxLuMszqUn4ezdJJz953NmYYbFY5fHXeEOnaSHWM5kfLVCjQDPQGhFLbSGQhT+81EZE/hdRY8Gj+KhGg2gVrjBTamGWuEGd6U7VAoVYk9/gruFd8vc18fdF+NaToBW1EFn0KLQoIVO1KLQUIjU3Bs4dP03i8ef0Oo5tKvbAT7uvvBx94GPh/FzLXcf/JKyx+rAIYoiwr9uh8tZyWUeu55nABZ0W4x8fT7y9HnI0+chX2f8fCnzb+y8tN1i+/8V9DiCvIPgrvSARuUBd6UHPFQauCvd4aH0wKLE+bidf7vM/Sty43CGJjtjaHJdlVW/27cFtG3rBb1ewIwZhXj9dde6rYq1HvTzz9rQ5ez/aVt7fEmS8MUfsfjv/hfLPHZ1oRSU8HH3QQ23mkW9ZN5u3sjX52Pf1V8t7h/sHYoCQz7S8+9AK1aP33e53BRuaFgzCDpJD62h8J/gq4XOoK1StSjrPx73s1do4g17if5Rp46Ef/3LgF27VNi4UY1XX9VCUfadYGQxrVOVmmpcpyoiouLrVJFtBEFAZP1uFd4vKnQQYvuutaqnSs5Nl+dGLig3vFl7fEEQEOb3sJxvEaseX4MmPs2Qrc1CljYLWYWZyNJmIfFGPL67sNni/r0bPoYW/q3gpnSDu8Id7ioPuCvdcCX7Clae/Mji/vO7voXmfi2KvjbdiuevO39gfvwci/tvGfwDIh8q+bOtaGiVJAk5umzcyb+DOwVpOHjtABYmvGnx+E19msFN6W4MHaIWOoMOWlGLXF0u8vWWh/hrqmuixj/DoW4KN7gp3eGmVKNAX4i/0v+wuL8ttKIWf2desNvruSncoFF7wlNlvCDhRu51i/s08g6BSqFEgb4ABfp8FBgKUaDPr1BvZWruDavbbA32NP2DPU2uqzLrt22bChMnGm+rsnlzHh55xPqhhu3bVZg/393sHnzBwSLmzbPfbWDk4PlnG1vWunLWAqNVZXixrOM7eyJ3VanfwSePIkeXjbuFd5FZmIGMwgxkFmbg15Sf8XXSWovHf+ShR9Hcr3lRWDN+dsf17KuIPbPK4v6f91uHRxr0hEblCZWiuA/G1vrpRT32X/kVT24fbrENld3TxND0D4Ym11WZ9SsoMN5WJStLwKhROixfbt2aTZV1w2E5eP7ZzpYa2jInyxZVdXjRXvubXsMZFxI4u37ODr22tt9ebbiXvUKTjYMPRNWLhwcwZIhxuYFt21TItWIJH0kC5s93LzUwAYAoCoiJcQf/u/JgMA0PRjcdjoj6lbewn2l4L6RWqNnjIbVCLb5hmYYXFULpbxEVGV605vj22N/0GglPn8D30Tuxqs8abI3+EQlPn5C9b1WtX0RgVwR7h5T5vOl1wgMjXbL99mqDI7Cn6R/saXJdlV2/xEQlBg0yjst//HE+Ro6sWI9QfLwSQ4aUXGjwflu35iEiwrFXGplueJydbbzhcefO9r3h8YOiKv8OO+Pqw/uPb8utfJzVU2eP4zuzfs7uqbu3/bb8/OzRBoDDc3bH0OS6Krt+kgR06eKFy5cV6NlTj40b8yu0/5YtKjz/vMbidvPmFWDqVMctoukqc6qqgwf5d9geoYX1c079XCH02ENl1JChqYIYmlyXM+r37rtuePdddwiChJMncxEYaPnXRKcD4uJUeOcdN6SkKGUdJyzMgCFD9IiO1qFJk5LHsPbqO1eaU1Ud8HfYNqyfbarinDpXw9BkZwxNrssZ9UtOFtClSw0AwJw5hZg2rex1S/LygG++UWPlSjdcuSJ3mqAEwPwPV6tWBkRH6zFkiA6NGklW9xRJEhAe7mW23/1CQkQkJORyqE4m/g7bhvWzDetnO67TRORAwcESwsP1SExU4fPPVXjoIRGBgeY9PRkZwGefueHTT9W4c6c4oISGiujZU48vvlCX2dPzwQcF0GoFfPedCgcPKiFJAs6cUeLMGSUWLnRHaKgBly4pIEnm+ycnKzBxogdiYwvQpYsBV68KuHpVgZQU4+erVxVIShJw+XL54e3SJQUSE5UOn1NFRFSdMDQRleHhh0UkJgJXriiL5igFB4uYMaMQ588r8cUXauTmFoeatm0NmD5diwED9FAqgR49DIiJccelS8UBJiRExNy5xT1Fzzyjw82bAn74QYW4OBUOHzb+Sl68WPbwnigKmDDBo0SgqqjUVHYzERFVBIfn/sHhOdfljPqVNyfo/qG1Rx7RY/p0LXr0KDnfyDQn6eZN45yk8PDy5yRduybgo4/UWLPGvULtVSgk1K8voUEDER4ewN69lv8/VBlX71UX/B22DetnG9bPdtVieO7OnTuYM2cODh8+DKVSicGDB+Pll1+GSmXerEmTJuHYsWNmj+Xl5WHUqFGIiYmBKIro2LEjJEkym+B28OBBeHpavvSb6F6W1lkyBiYJAwYYw1KHDmX/ERMEIDJSfjB56CEJEREi1qyxvO24cVpER+vRoIFx6FCtLm6/pTlNgIRjxxQWQ5yteBsZIqpOnBqa/vOf/6BevXo4cOAA0tLS8O9//xuff/45Jk2aZLbd6tWrzb7etGkTVqxYgRdeeAEAcOHCBeh0Ohw/fhxubm6V1n6qnhISlBYCBwAIeP55XbmByVoBAfI6f4cN05faUyQIwLx5hRZ7yubP98C5c0q8+24BHPFrwyUPiKi6cdqK4JcvX8bhw4fx0ksvQaPRoGHDhpgyZQrWrVtX7n4XL17EggULsHTpUtStWxcAcPr0aYSFhTEwkV3InevjqDlBEREGBAeXH8ZCQkSEh5fdgxUVpUdsbAFCQsxfJyRExJIlBQgLM+77zTdqjBihQVqafb8X0/Dm/eHTNJF9+3ZOpySiqsdpf7nOnz8PHx8f1KtXr+ixxo0b4/r168jKyoK3t3ep+82fPx/R0dHo1KlT0WOnT59GYWEhhg8fjmvXrqFx48aYNWsWOnToILs9CoUAhcIxb4JKpcLsM1VMZdfvoYfkb6dSOaZNMTFajBtX+hChQiFh/nwt1Oryjz1kiIjBg/ORmKhCVpY7atUqRJcuxhXBR40qwHPPuWP3bhUSElTo188TX39dgBYtbJ/iKElATEz5t5FZsMAdgweLVWaojr/D1jMO0aqQmQnUqqVCeDhXpa8onn+2s1sNJSf57rvvpJ49e5o9dvnyZalZs2bSjRs3St3nyJEjUtu2baVbt26ZPb548WLp1VdflVJTU6X8/Hxp9erVUrt27aSUlBTZ7RFFscLfA1VPoihJjRtLkvHPfekfTZoYt3OkLVuMx7n/uFu22Of19XpJevHF4teuWVOSfvjB9tfdt6/82pk+9u+3/Vjk2rZsKfm71Lix/c5hosrmtJ4mT09P5Oeb357C9LWXl1ep+2zYsAH9+/dHnTp1zB5/5ZVXzL6eOHEitmzZgn379mHMmDGy2pOenuvQniZvbw2ysvJhMPDKh4pyRv3mzVOW29Mzd24hMjIce+XZo48CiYlAfLwCqanCP+tEGXtn7t6V/zrl1e+NN4BGjVSYPdsN2dkCBg0y9mJNnWpdb4AkAbt3qwFYHio/dqwArVpVjav3+DtccT/8UPrv0N9/AyNGSPj880IMHFg1fv7OxvPPdpZq6Otbeu64n9NCU9OmTZGRkYG0tDT4+/sDAP7++28EBASgZs2Sl/7p9Xr8/PPP+Pjjj0s8t2zZMvTt2xctWrQoekyr1cLdXf5l26IoQRQdu/qCwSDyclEbVGb9+vUTERsrlbnOUr9+eugraS5zly7F37PBhveYsur31FNaBAcbMH68B9LTFZg71x1//aXAu+8WQK2Wd/VbaqqAjRvV2LhRhaQkebeQmT3bHb/+qseYMTr06GGAogqMPFhzDj6IVxBKEjB3rqbcIdp589zQt6/jV6WvTvXne4jtbK2h00JTcHAwOnbsiEWLFiEmJgZ3797FypUrMWLEiFK3P3v2LAoLC0udp3Tu3DkcPXoUH3zwAWrVqoVVq1YhJycHffr0cfS3QdVYVJQeAwboK7TOUlUVGWnAjz/mYexYDc6eVeKbb9Q4dkyB/HzB7NYw9179lpcH7NypwrffqrFvn9LsDVIQJIuLbxoMArZuVWPrVjWCgkQ8/bQOTz6pQ/365v95sfVNz5lvmva4grAqvunLuQK1Mlal5xWcZG9OXdwyLS0NMTExSExMhEKhQHR0NGbPng2lUon27dtj/vz5GDx4MADgxx9/RExMDA4dOlTidTIyMrBkyRLs27cP+fn5aN26NV577TU0b95cdlu4uKXrYv1sU5H6ZWcDkydrsGdP2f+fUigkdOumx4kTKuTkmL97d+mix6hRenh4SJg2rewbBsfEFOLKFQU2blQhPV1h9txjjxkwerQOffrosWuXbW969nrTtOYctMdNk6tq6IqLU2HyZI3F7Vatykd0tGPCS3W6aTX/BtqON+y1M4Ym18X62aai9dPrgebNayArS947a1CQiJEjdXjiCR1CQor/nGzfrrJ4G5nCQmNv1dq1ahw4YB7UatUSkZUllNpjJedNz15vmpIEHDmiQna2BjVr5qNzZ8vzvexx02RXCV3WOHRIiehoywsLO2pVele6abU9Qiv/BtquWqwITkSu58gRpazA9NhjOkybpkN4eOnzkeQMb7q7A9HRekRH65GcLODrr9X45hs1bt5UIDOz7Dc8URQwa5Y7bt0S4OUlQaMBPD2LP3t4AHPmlL/sQUyMOwYMKD8AlQwdmnJDhyQZb4WzYYNa1vBU794aBAVJ8PWVUKsW4OsrwcfH+GFr+8sKXffe9NkRwSknB/j8c7XF7ZRKCZmZdj88APnDgwcPKtG9O4cHST72NP2DPU2ui/WzTUXr5+yhFb0eWLFCjUWLPOz+2vd7+21jcKhbVyoRPuT09HTqZMDJkwqcPKnEqVNKnDypQFpa5c1oj4zUIyREhLc34OMjoVYtCd7exs8vveSBGzcqt6fl3DkFJkwwrjRvZH6fxtKMHKnDW28VwMfHPm2QJGNgXrXK8hWcXl4SBg7UIypKh549DdCUctpb21PkzJ5Oe7TfXpx9fBMOz9kZQ5PrYv1sU9H6xccrMWSI84ZWAPnBzV40GglBQSIaNTJ+DgoSsWKFG27dKjt0KJUSDAbb/vp36aKHUglkZAi4e1dAZqaA/PzKe0ex589wyxYVXnzRA3l5xvYPHarD44/r8c47JYdohwzRYf16NVJTjY/Xqydi6dIC9O1rW1v27VPirbfccfKkvCs47+XpKaF3bz2iovTo00cPb2/re4okCejSxQuXL9sWWm3tqXJ2T5ezj38vhiY7Y2hyXayfbSpaP1eYDyI3uG3alIfWrQ3IzxeQnw/k5QnIyxNw7JgCb77p+J4qEw8PCa1aiWjXzoB27Qxo21bE2LEaq2qYnw/8/LMSEyZY/v5btNBDkoxhKzNTQG5uxX4g9ugtLCwE5s51x5o1xp4dtdo40X/CBB0EobinJCfH2FPSqZOxpyQjA5gzxwMbNhQP5Y0cqcPChQXw9a1YG06eVGDhQnfs318840SlkqDXl12PevVE/OtfxosN7twx/zmp1RKaNxdx5oyizDl1K1cWoGVLEVeuGK8wvXrV+PnKFQUuXhRw967lHseHH9ajVSsJjRqJ/3xICAkRUbeuhB07bOupsmdPlzN72mxpw70YmuyMocl1sX62cdaVX7awNbjJ2T8oSMTKlflISVHg8mXTh4CUFAWuXRNgaVgJAJ55Rovx43UICxOhum+GqC01tPb71+mArCwBe/cq8O9/Ww5dzz6rxdy5hShlaTxZrlwR8NxzGhw/buzZadBAxOrV+SVuZF3eObh7txKzZnkU9TrVrSvivfeKe53Ke8O8cEHA22+7Y+vW4uDl7y/ixRe18PeX8Pzzluuv1wOHDyuxY4cK27ercO2a8xcM8/CQYDAAOl3Z52BgoIjY2Hy4uwMqlTHoqdWAWg0olUBUlCdSUpzT02WvnjZb2nA/hiY7Y2hyXayfbaytn5yr3xzJ1uBmy/779ikxcqTtQ5S21NDRocukVi0JEyZo8dxzOvj7y387+OUXJf79bw3u3jW2r3dvPVauzIefX8ltLZ2DGRnA3LkeWL++OPyMGKHDo4/qsXRpyTfM6dMLceKEEl9/rS4aIq1RQ8LUqVpMnqxFjRrGbStaf0kCfv9dgVWr1Ni4sWI3gPfzE9GwoYQGDUQoFMC2bZYnw3fpokd2toDLlxVFw5qV6amntOjUSUS9eiLq1ZNQr54Ef38JKpXl82/16gJ07GjA5csKJCcL9/znQ8D58wpZPW0dOujRpYuI5s0NaNZMRFiYaBbg7fmfN4YmO2Nocl2sn21sqZ/pf/nOWtzT1uBm7f72HKK0pYaOCl2CIKFpU/GeCdvGeV2jR+swZYoWDRoUvy3c39PTubMBS5e6YdkyN0iSAEGQ8N//ajFzprbMVd3lnoP39zqVPZG8+HE3Nwnjx+swY4a21NBnTf3lzqmbNq0QTzyhx0MPiUVBzXTMipw/kgSkpQm4fNkYoHbsUMkKXY6gUEjw85OQlSVAqy27UHIWsLVG/frG8NSsmYjNm1XlXlhRkWkCDE12xtDkulg/21T1+tka3Kzd39lDlCaODF2JiUp89JEbdu82nws0YoQe06Zpce6cosTQiIeHhIICYwNq1xbxv/8VoGfP8idwV+QcLG2uU+kkjBqlx3//W4iGDe37NmaPiyFsOX/kHn/Jknw0by5Bp8M9HwL+/FOB996zfBsxd3cJhYX2CT6ensVzs9RqeT1trVrpkZpq2xWnci9mYGiyM4Ym18X62Yb1s56zhyjtQU7o+uMPBZYvd8N336nueZM3vTWU/qbauLEBmzfnl7jtTWmq2hWc9uppdFZPp9z94+NzkZsL3Lwp4OZNxT+fBfz2m8osSJdl0iQthg/XISjIOKxnaktF25+WJuDsWYXZx+nTCmRnWw5Tci9m4OKWREQOZlqgs7Srv6oKQTDeW7A8LVsae4z++18BH3/shvXr1eVOQgaM9w4MDHTM/7lTU+UVWO52FSUIwLx5heX2FM2dW2jxPLD2/pW2Hl/u/goFULMmULOmhCZNis+Rdu1EWaFp8GA9OnYsGUAq2n5/fwn+/gZ061bcBrnBOSCgcvt9nH+ZABGRCxMEoGtXEaNGAZGRYpUKTBUVGirhvfcK8ckn+Ra3TU423nDXEeS+ETryDTMqSo/Y2AKEhJiHgpAQsUJDs6bQGh2tr9Cl8rYe35b9IyIMCA4uv0cwJEREeHjZYdzW9tujDY7AniYiIjJjqZfJxFE9PaY3TEvDO45+w7S2p8jex7e2p9NZPV22Ht+ebbA3hiYiIjLj7J4eV3rDlDO86ejjd+0qwtcXuHtXhL6CU+msbb+pp8jWOX221M9ebbAnhiYiIjLjCj09rviG+aBxdk+bq7ThXgxNRERkxlV6elztDfNB5OyeNldpgwknghMRUQn2mghtK2snUhM5AnuaiIioVOzpITLH0ERERGVypaERImfj8BwRERGRDAxNRERERDIwNBERERHJwNBEREREJANDExEREZEMgiRJlXuLYCIiIqIqiD1NRERERDIwNBERERHJwNBEREREJANDExEREZEMDE1EREREMjA0EREREcnA0EREREQkA0MTERERkQwMTQ50584dTJkyBZ06dUJ4eDjeeust6PV6ZzerStmxYwdatGiB9u3bF3289NJLzm6Wy0tPT0efPn2QmJhY9NipU6cwcuRItG/fHr1798bGjRud2ELXVlr95s2bh1atWpmdixs2bHBiK11TUlISxo8fjy5duqBbt27473//i/T0dAA8B+Uor348By2Lj4/HyJEj0aFDB3Tr1g0LFixAQUEBADudfxI5zJgxY6RZs2ZJeXl5UkpKihQVFSV9+umnzm5WlfL2229Lr7zyirObUaUcPXpUeuyxx6RmzZpJCQkJkiRJUkZGhtSlSxfpq6++knQ6nXTo0CGpffv20qlTp5zcWtdTWv0kSZKGDh0qbdmyxYktc335+flSt27dpA8//FAqLCyU0tPTpeeee06aPHkyz0EZyqufJPEctOTOnTtS69atpc2bN0sGg0G6efOmNHDgQOnDDz+02/nHniYHuXz5Mg4fPoyXXnoJGo0GDRs2xJQpU7Bu3TpnN61KOX36NFq1auXsZlQZcXFxmD17NmbOnGn2+E8//QQfHx+MHj0aKpUKkZGRGDRoEM/H+5RVP61Wi3PnzvFctOD69eto3rw5pk6dCjc3N/j6+mLUqFE4cuQIz0EZyqsfz0HL/Pz8cOjQIQwbNgyCICAjIwOFhYXw8/Oz2/nH0OQg58+fh4+PD+rVq1f0WOPGjXH9+nVkZWU5sWVVhyiK+OOPP7B371706tULPXr0wJw5c5CZmensprms7t27Y/fu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\n",
"text/plain": [
"<Figure size 600x900 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"plt.style.use(\"seaborn\")\n",
"fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(6, 9))\n",
"\n",
"ax1.plot(q_history.history[\"val_accuracy\"], \"-ob\", label=\"With quantum layer\")\n",
"ax1.plot(c_history.history[\"val_accuracy\"], \"-og\", label=\"Without quantum layer\")\n",
"ax1.set_ylabel(\"Accuracy\")\n",
"ax1.set_ylim([0, 1])\n",
"ax1.set_xlabel(\"Epoch\")\n",
"ax1.legend()\n",
"\n",
"ax2.plot(q_history.history[\"val_loss\"], \"-ob\", label=\"With quantum layer\")\n",
"ax2.plot(c_history.history[\"val_loss\"], \"-og\", label=\"Without quantum layer\")\n",
"ax2.set_ylabel(\"Loss\")\n",
"ax2.set_ylim(top=2.5)\n",
"ax2.set_xlabel(\"Epoch\")\n",
"ax2.legend()\n",
"plt.tight_layout()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"References\n",
"==========\n",
"\n",
"1. Maxwell Henderson, Samriddhi Shakya, Shashindra Pradhan, Tristan\n",
" Cook. \\\"Quanvolutional Neural Networks: Powering Image Recognition\n",
" with Quantum Circuits.\\\"\n",
" [arXiv:1904.04767](https://arxiv.org/abs/1904.04767), 2019.\n",
"\n",
"About the author\n",
"================\n"
]
}
],
"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.9.13"
}
},
"nbformat": 4,
"nbformat_minor": 4
}