Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save MazamGanendra/106b0f7c8e23eb4885cd9f3be15f8d7f to your computer and use it in GitHub Desktop.
Save MazamGanendra/106b0f7c8e23eb4885cd9f3be15f8d7f to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "325a9280",
"metadata": {},
"outputs": [],
"source": [
"# MAZAM GANENDRA\n",
"# 21181192"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "afe76d17",
"metadata": {},
"outputs": [],
"source": [
"# Slide 9A ( Bilangan acak dan metode Monte Carlo: Pengenalan dan pemanfaatansederhananya dalam fisika )\n",
"\n",
"# Bilangan acak\n",
"# • Bilangan acak adalah sebuah bilangan yang dipilih seakanakan secara kebetulan dari suatu distribusi \n",
"# tertentu sehingga seleksi suatu himpunan besar bilangan-bilangan ini menghasilkan distribusi yang \n",
"# mendasarinya.\n",
"# • Hampir selalu, bilangan-bilangan tersebut juga perlu saling bebas, sehingga tidak terdapat korelasi \n",
"# di antara bilanganbilangan berurutan.\n",
"\n",
"# Bilangan pseudo-acak (pseudo random)\n",
"# • Himpunan nilai atau elemen yang acak secara statistik, akan tetapi diturunkan dari sebuah titik awal \n",
"# yang diketahui dan umumnya diulang-ulang lagi dan lagi.\n",
"# • Menyediakan nilai-nilai yang diperlukan bagi proses-proses yang membutuhkan keacakan, seperti \n",
"# menghasilkan sinyal uji.\n",
"# • Disebut ‘pseudo’ acak karena algoritmanya dapat mengulangipembangkitan kembali urutan bilangan-bilangan\n",
"# acak, dansebenarnya tidaklah sepenuhnya acak.\n",
"\n",
"# Bilangan acak sebenarnya\n",
"# • Untuk kualitas tinggi bilangan acak sebenarnya (true random numbers) dapat dibangkitkan menggunakan\n",
"# efek-efek fisika seperti derau termal dalam sebuah dioda atau dari suatu sumber cahaya.\n",
"\n",
"# Algoritma\n",
"# • Algoritme khusus tersedia untuk membangkitan bilangan pseudo-acak, yang memiliki sifat statistik \n",
"# terbandingkan, tetapi nilainya tidak dapat diprediksi karena bergantung padasejumlah nilai-nilai awal \n",
"# (seed).\n",
"# • Sering suatu iterasi ri+1 = f(ri) digunakan untuk menghitung deret bilanga pseudo-acak.\n",
"# • Dengan bilangan bulat 32 bit terdapat 2 32 bilangan berbeda, karenanya periode bilangan tidak dapat \n",
"# mecapai 2 32\n",
"\n",
"# Metode Marsaglia-Zamann\n",
"# • Kombinasi dua generator akanmenghasilkan periode yang lebih panjang.\n",
"# • Beberapa kandidat generatoruntuk dikombinasikan diberikan pada tabel di samping ini\n",
"\n",
"# Bilangan acak dengan distribusi tertentu\n",
"# • Asumsikan telah terdapat pembangkit bilangan acak dalam rentang [0, 1] \n",
"# seperti dalam C: rand()/(double)RAND_MAX.\n",
"\n",
"# Dadu setiap sisi berpeluang sama (fair die)\n",
"# • Dadu bersisi enam dapat disimulasikan dengan memilih suatu bilangan acak"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "1b291151",
"metadata": {},
"outputs": [],
"source": [
"# -- Integrasi Monte Carlo --\n",
"\n",
"# Metode Monte Carlo\n",
"# • Permasalahan fisis seringkali melibatkan integral berdimensi tinggi, seperti misalnya pada integral\n",
"# lintasan (path integrals) dan rata-rata termodinamika (thermodynamics averages).\n",
"# • Jenis integral ini tidak dapat dievaluasi dengan metode standar: persegi, trapesium, Simpson atau\n",
"# Euler, Runge-Kutta.\n",
"\n",
"# Menghitung nilai π\n",
"# • Luas suatu satuan lingkaran (r = 1) diberikan oleh r2π = π.\n",
"# • Nilai π ini dapat dihitung dengan integral numerik.\n",
"\n",
"# Menghitung integral fungsi g(x)\n",
"# • Dengan ξ bilangan acak dalam rentang [a, b] dengan distribusi\n",
"\n",
"# Menghitung integral fungsi g(x) (lanj.)\n",
"# • Sebagai konsekuensi rata-rata secara acak N kali nilai dari nilai fungsi akan menghampiri integral.\n",
"# • Kadang interval [a, b] diubah menjadi [0, 1] untuk memudahkan perhitungan yang g(x) harus diubah\n",
"# menjadi h(x), denganhasilnya nanti perlu dikembalikan ke rentang [a, b]."
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "0ee42f40",
"metadata": {},
"outputs": [],
"source": [
"# -- Beberapa contoh --\n",
"# 1. Sistem proteksi fisis dengan Monte Carlo\n",
"# 2. Model mainan untuk proses fisi nuklir\n",
"# 3. Difusi bebas 1d dan 2d dengan Box-Müller\n",
"# 4. Piranti lunak Mcell (Monte Carlo Cell)\n",
"# 5. Simulasi fasa wujud zat"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "16a0d682",
"metadata": {},
"outputs": [],
"source": [
"# Slide 9B ( Monte Carlo Integration )\n",
"\n",
"# Monte Carlo method\n",
"# • It is statistical method of understanding complex physical or mathematical systems.\n",
"# • It is using randomly generated numbers as input into those systems to generate a range of solutions.\n",
"# • The likelihood of a particular solution can be found by dividingthe number of times that solution was\n",
"# generated by the total number of trials.\n",
"# • By using larger and larger numbers of trials, the likelihood of the solutions can be determined more \n",
"# and more accurately.\n",
"# • The Monte Carlo method is used in a wide range of subjects, including mathematics, physics, biology, \n",
"# engineering, and finance.\n",
"# • And it is also used in problems in which determining an analytic solution would be too time-consuming."
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "480154f5",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"6 7 6 8 4 6 8 7 3 5 5 2 7 7 8 2 7 6 7 8 7 4 8 6 5 2 7 5 5 4 3 4 6 5 2 3 5 8 3 2 5 5 7 7 6 8 7 6 2 2 5 4 6 2 2 6 3 7 8 5 4 5 7 4 7 5 3 2 5 4 8 6 4 5 2 3 6 5 3 8 4 8 5 8 3 5 4 7 5 2 6 4 5 7 4 7 4 8 6 6 \n",
"\n",
"\n",
"100\n"
]
}
],
"source": [
"# Random numbers\n",
"import random as rnd\n",
"import matplotlib.pyplot as plt\n",
"N = 100\n",
"a = 2\n",
"b = 8\n",
"x = []\n",
"for i in range(N):\n",
" j = rnd.randint(a, b)\n",
" x.append(j)\n",
" print(j, end=' ')\n",
"print('\\n\\n')\n",
"\n",
"print(len(x))"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "f8c5d410",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 400x300 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Linear function\n",
"def f(x):\n",
" y = 3*(x-2) +4\n",
" return y\n",
"\n",
"y = [f(i) for i in x]\n",
"\n",
"plt.figure(figsize=(4, 3))\n",
"plt.plot(x, y)\n",
"plt.xticks(range(a, b + 2))\n",
"plt.yticks(range(0, 26,4))\n",
"plt.xlabel('x')\n",
"plt.ylabel('y')\n",
"plt.title(\"Monte Carlo Simulation of Linear Function\")\n",
"plt.grid()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "ff78001d",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAHFCAYAAAAHcXhbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABtyklEQVR4nO3deXhM59sH8O9kz2QVZCMklthiC4ooiTWWqqW0llpaLWprih+illiaELW01mpraauqC6ooUiRFLLEEQQkStKSxZd9M5rx/eDM1kjBnMiez5Pu5rrnanHmec+45zszc85xnkQmCIICIiIjISJnpOwAiIiKismAyQ0REREaNyQwREREZNSYzREREZNSYzBAREZFRYzJDRERERo3JDBERERk1JjNERERk1JjMEBERkVFjMmOENm3aBJlMBplMhujo6GLPC4KAOnXqQCaTISgoSNJYYmNjERYWhrS0NEn2f/PmTUyYMAG+vr6wtbWFXC5Ho0aNMGvWLPzzzz86PVZYWBhkMplO93ny5En069cPNWrUgLW1Ndzc3NC2bVtMmTJFrVxQUJDk/1aliY6OLvVaepnLly8jLCwMycnJxZ4bOXIkvL29yxyflB49eoRBgwbB1dUVMpkMffv2lfR4V65cwciRI1XXQ9WqVfHaa6/hwIEDkh73ZaT6twoPD8fOnTuLbS/LNfe85ORk1efh84+WLVuWef9l8aLPR32+502Rhb4DIO05ODjg66+/LvaGiImJwY0bN+Dg4CB5DLGxsZg3bx5GjhwJZ2dnne579+7dGDRoEKpUqYIJEyagefPmkMlkuHjxIjZs2IA9e/bg3LlzOj2mLu3Zswevv/46goKCEBkZCQ8PD9y7dw+nT5/GDz/8gKVLl6rKrlmzRo+Rau/y5cuYN28egoKCin0Zzp49Gx9++KF+AtPQggULsGPHDmzYsAG1a9eGi4uLZMfavn07hgwZglq1amH27NmoV68e/v33X2zcuBHBwcGYNWsWFixYINnx9SE8PBwDBgwoliT6+/vj+PHjaNiwoc6ONXHiRAwZMkRtm729vc72r40XfT4a63veUDGZMWJvvfUWtmzZgtWrV8PR0VG1/euvv0bbtm2RkZGhx+jKJikpCYMGDYKvry8OHz4MJycn1XOdOnXCpEmTsGPHDp0cKycnB3K5XCf7elZkZCR8fHywf/9+WFj891YbNGgQIiMj1crq8kPdUNSuXVvfIbxUQkICateujaFDh0p6nBs3bmDYsGFo3LgxoqOjYWdnp3pu4MCB+OCDD7Bw4UL4+/ujX79+ksaircLCQigUClhbW5d5X46OjmjTpo0OovpPjRo1dL5PKZnie16feJvJiA0ePBgAsHXrVtW29PR0/PLLL3j33XdLrPPo0SOMGzcO1apVg5WVFWrVqoWPP/4Y+fn5auVkMhkmTJiAb7/9Fg0aNIBcLkfTpk2xe/duVZmwsDD873//AwD4+PiUeOtr27ZtaNu2Lezs7GBvb4/g4GCNWlOWLVuG7OxsrFmzRi2ReTa+/v37q/6OiopCnz59UL16ddjY2KBOnToYM2YMHjx4oFav6FbS2bNnMWDAAFSqVOmFX7pKpRKRkZGoX78+rK2t4erqiuHDh+Pvv/9+6Wt4+PAhqlSpopbIFDEzU3/rPd/kXNR0vmTJEixevBje3t6wtbVFUFAQrl27hidPnmDGjBnw9PSEk5MT+vXrh9TU1GLnKCwsrNixvb29MXLkyBfGfvr0aQwaNEh1XG9vbwwePBi3bt1Sldm0aRMGDhwIAOjYsaPq33/Tpk0ASr51kZeXh9DQUPj4+MDKygrVqlXD+PHjizXDe3t747XXXsO+ffvg7+8PW1tb1K9fHxs2bHhh3EVedp0Xnd8//vgDV65ceeFt2yLbtm1Dt27d4OHhAVtbWzRo0AAzZsxAdnb2S+NZvnw5cnJysHLlSrVEpsjSpUvh7Oys1jJT2m3PotvMz97aExPbpk2bUK9ePVhbW6NBgwb45ptvipUpOj+RkZFYuHAhfHx8YG1tjcOHDyMvLw9TpkxBs2bN4OTkBBcXF7Rt2xa//vqr2j5kMhmys7OxefNm1fktusZLu8108uRJ9O7dG5UrV4aNjQ1q166NkJCQF5xZzZR2S+f5a7TodX/66adYtmwZfHx8YG9vj7Zt2+LEiRPF6r8o3pd9PpYUky4/nysatswYMUdHRwwYMAAbNmzAmDFjADxNbMzMzPDWW29hxYoVauXz8vLQsWNH3LhxA/PmzUOTJk1w5MgRREREID4+Hnv27FErv2fPHsTFxWH+/Pmwt7dHZGQk+vXrh6tXr6JWrVp477338OjRI6xcuRLbt2+Hh4cHgP9+cYSHh2PWrFl45513MGvWLBQUFGDJkiVo3749Tp069cJfJgcOHICbm5vGv7Ru3LiBtm3b4r333oOTkxOSk5OxbNkyvPrqq7h48SIsLS3Vyvfv3x+DBg3C2LFjX/hl9MEHH2D9+vWYMGECXnvtNSQnJ2P27NmIjo7G2bNnUaVKlVLrtm3bFl999RUmTZqEoUOHwt/fv1gcL7N69Wo0adIEq1evRlpaGqZMmYLevXujdevWsLS0xIYNG3Dr1i1MnToV7733Hnbt2iVq/6VJTk5GvXr1MGjQILi4uODevXtYu3YtWrVqhcuXL6NKlSro1asXwsPDMXPmTKxevRr+/v4ASm+REQQBffv2xcGDBxEaGor27dvjwoULmDt3Lo4fP47jx4+r/eo/f/48pkyZghkzZsDNzQ1fffUVRo0ahTp16qBDhw6lxq7Jde7h4YHjx49j3LhxSE9Px5YtWwC8+NdyYmIievbsiZCQENjZ2eGvv/7C4sWLcerUKRw6dOiF5zMqKuqF17NcLke3bt3w448/IjU1Fa6uri/cn7axbdq0Ce+88w769OmDpUuXIj09HWFhYcjPzy+WYAPA559/Dl9fX3z66adwdHRE3bp1kZ+fj0ePHmHq1KmoVq0aCgoK8Mcff6B///7YuHEjhg8fDgA4fvw4OnXqhI4dO2L27NkAoNaC/Lz9+/ejd+/eaNCgAZYtW4YaNWogOTlZ4/5ESqUSCoVCbZu5ublW/eBWr16N+vXrqz5DZ8+ejZ49eyIpKUn14+pl8b7s8/F5uv58rnAEMjobN24UAAhxcXHC4cOHBQBCQkKCIAiC0KpVK2HkyJGCIAhCo0aNhMDAQFW9devWCQCEH3/8UW1/ixcvFgAIBw4cUG0DILi5uQkZGRmqbSkpKYKZmZkQERGh2rZkyRIBgJCUlKS2z9u3bwsWFhbCxIkT1bZnZmYK7u7uwptvvvnC12hjYyO0adPm5SejBEqlUnjy5Ilw69YtAYDw66+/qp6bO3euAECYM2dOsXpFzxW5cuWKAEAYN26cWrmTJ08KAISZM2e+MI4HDx4Ir776qgBAACBYWloKAQEBQkREhJCZmalWNjAwUO3fKikpSQAgNG3aVCgsLFRtX7FihQBAeP3119Xqh4SECACE9PR01TYAwty5c4vFVbNmTWHEiBGqv4uuocOHD5f6WhQKhZCVlSXY2dkJn332mWr7Tz/9VGrdESNGCDVr1lT9vW/fPgGAEBkZqVZu27ZtAgBh/fr1ajHa2NgIt27dUm3Lzc0VXFxchDFjxpQapyCIu84DAwOFRo0avXB/JSm6xmJiYgQAwvnz519YXpPrefr06ar3tSAUvx6LFL3/n3/PvSy2wsJCwdPTU/D39xeUSqWqfHJysmBpaan2b1V0/dWuXVsoKCh4YdwKhUJ48uSJMGrUKKF58+Zqz9nZ2alda0VKuuZq164t1K5dW8jNzX3h8Z5XFGtJj6ioKEEQir+/ijx/jRbtq3HjxoJCoVBtP3XqlABA2Lp1q6h4S/t8LCkmKT6fKxLeZjJygYGBqF27NjZs2ICLFy8iLi6u1FtMhw4dgp2dHQYMGKC2veiWw8GDB9W2d+zYUa0TsZubG1xdXdVuNZRm//79UCgUGD58OBQKhephY2ODwMBAnYxieFZqairGjh0LLy8vWFhYwNLSEjVr1gTwdATJ8954442X7vPw4cMAUOyWzCuvvIIGDRoUO1/Pq1y5Mo4cOYK4uDgsWrQIffr0wbVr1xAaGorGjRsXuwVWkp49e6r9Ym7QoAEAoFevXmrlirbfvn37pfvURFZWFqZPn446derAwsICFhYWsLe3R3Z2donnUxNFLQTPn8+BAwfCzs6u2Pls1qwZatSoofrbxsYGvr6+L73+xF7nmrp58yaGDBkCd3d3mJubw9LSEoGBgQBKvsbEEgQBALRqSdAktqtXr+Lu3bsYMmSI2jFq1qyJgICAEvf7+uuvl9ia+NNPP6Fdu3awt7dXvd++/vprrc/DtWvXcOPGDYwaNQo2NjZa7ePDDz9EXFyc2qN169Za7atXr14wNzdX/d2kSRMAUF17uoj3eeX5+WyKeJvJyMlkMrzzzjv4/PPPkZeXB19fX7Rv377Esg8fPoS7u3uxD0tXV1dYWFjg4cOHatsrV65cbB/W1tbIzc19aVz//vsvAKBVq1YlPl9Sk/azatSogaSkpJceB3javNytWzfcvXsXs2fPRuPGjWFnZwelUok2bdqUGG9Rk++LFJ2Pksp6enpq/KHRsmVL1RDRJ0+eYPr06Vi+fDkiIyOLdQR+3vOja6ysrF64PS8vT6OYXmbIkCE4ePAgZs+ejVatWsHR0REymQw9e/bU6N+/JA8fPoSFhQWqVq2qtl0mk8Hd3V1n15/Y61wTWVlZaN++PWxsbLBw4UL4+vpCLpfjzp076N+//0tj0uR6LuoD4+XlJUlsRa/b3d292D7c3d1LHF5f0rW/fft2vPnmmxg4cCD+97//wd3dHRYWFli7dq3GfZqed//+fQBA9erVtapfVFdXQ7Gfv/aKbn8WnUtdxPu88vx8NkVMZkzAyJEjMWfOHKxbtw6ffPJJqeUqV66MkydPQhAEtTdMamoqFArFC/t/iFW0r59//lnVQiJGcHAwVq5ciRMnTry030xCQgLOnz+PTZs2YcSIEart169fL7WOJr9+iz4s7t27V+xD6+7du1qdL0tLS8ydOxfLly9HQkKC6PpiWFtbF+s4COClX+bp6enYvXs35s6dixkzZqi2F/WV0FblypWhUChw//59tYRGEASkpKSUmvhqcxxdX+eHDh3C3bt3ER0drWrxAKDx/ErdunXDqlWrSr2ec3JyEBUVhUaNGqn6yxT94s/Pz1frS/R8i56msRVdzykpKcWOX9I2oOT3yXfffQcfHx9s27ZN7fmSrjVNFV0PmnSs14aNjQ3S09OLbdekdbQkUsRbnp/Ppoi3mUxAtWrV8L///Q+9e/dW+zJ/XufOnZGVlVVsEqui0QydO3cWfeznf7EUCQ4OhoWFBW7cuKFqmXj+8SIfffQR7OzsVB00nycIgmpodtEb//kho1988YXo1/OsTp06AXj64f2suLg4XLly5aXn6969eyVuL2qK9/T0LFN8L+Pt7Y0LFy6obTt06BCysrJeWE8mk0EQhGLn86uvvkJhYaHattL+/UtSdL6eP5+//PILsrOztbr+SjuOrq/zsl5jISEhkMvlmDhxYokdzqdOnYrHjx+rjdwpGmXz/L/hb7/9plVs9erVg4eHB7Zu3aq6pQU8vXUSGxur0esoOp6VlZXaF25KSkqx0UxFMWlybfj6+qpul5clKSqNt7c3rl27prbvhw8finrdz9I0XrHvD11ftxUJW2ZMxKJFi15aZvjw4Vi9ejVGjBiB5ORkNG7cGEePHkV4eDh69uyJLl26iD5u48aNAQCfffYZRowYAUtLS9SrVw/e3t6YP38+Pv74Y9y8eRPdu3dHpUqV8O+//+LUqVOws7PDvHnzSt2vj48PfvjhB7z11lto1qyZatI84OlEbRs2bIAgCOjXrx/q16+P2rVrY8aMGRAEAS4uLvjtt98QFRUl+vU8q169ehg9ejRWrlwJMzMz9OjRQzWaycvLCx999NEL6wcHB6N69ero3bs36tevD6VSifj4eCxduhT29vaSTyg3bNgwzJ49G3PmzEFgYCAuX76MVatWlTjU/VmOjo7o0KEDlixZgipVqsDb2xsxMTH4+uuvi0385efnBwBYv349HBwcYGNjAx8fnxKbwLt27Yrg4GBMnz4dGRkZaNeunWo0U/PmzTFs2DCdvG4prvOAgABUqlQJY8eOxdy5c2FpaYktW7bg/PnzGtWvXbs2vvnmGwwdOhStWrXC5MmTVZPmbdiwAb///jveeecdvPfee6o6PXv2hIuLC0aNGoX58+fDwsICmzZtwp07d7SKzczMDAsWLMB7772Hfv364f3330daWhrCwsJKvPVUmtdeew3bt2/HuHHjMGDAANy5cwcLFiyAh4cHEhMT1coWzavz22+/wcPDAw4ODqhXr16J+129ejV69+6NNm3a4KOPPkKNGjVw+/Zt7N+/XzXaTFvDhg3DF198gbfffhvvv/8+Hj58iMjIyBeOrnoZTeIt7fOxpAlNpbhuKxR99Twm7T07mulFnh/NJAiC8PDhQ2Hs2LGCh4eHYGFhIdSsWVMIDQ0V8vLy1MoBEMaPH19sn8+PhBEEQQgNDRU8PT0FMzOzYiMUdu7cKXTs2FFwdHQUrK2thZo1awoDBgwQ/vjjD41e640bN4Rx48YJderUEaytrQVbW1uhYcOGwuTJk9VGCFy+fFno2rWr4ODgIFSqVEkYOHCgcPv27WIjeopGiNy/f7/YsUoaPVJYWCgsXrxY8PX1FSwtLYUqVaoIb7/9tnDnzp2Xxr5t2zZhyJAhQt26dQV7e3vB0tJSqFGjhjBs2DDh8uXLamVLG820ZMkStXJFo0B++uknte0lXRP5+fnCtGnTBC8vL8HW1lYIDAwU4uPjNRrN9PfffwtvvPGGUKlSJcHBwUHo3r27kJCQUOK//4oVKwQfHx/B3NxcACBs3LhREITiI0UE4emIpOnTpws1a9YULC0tBQ8PD+GDDz4QHj9+rFauZs2aQq9evYqd09JGpTxP0+tczGim2NhYoW3btoJcLheqVq0qvPfee8LZs2fVXvPLJCQkCMOHDxeqV68uWFhYCAAEmUwmfP311yWWP3XqlBAQECDY2dkJ1apVE+bOnSt89dVXxUbIiIntq6++EurWrStYWVkJvr6+woYNG0od1fP89Vdk0aJFgre3t2BtbS00aNBA+PLLL0t8/8THxwvt2rUT5HK5AED1b1faCLrjx48LPXr0EJycnARra2uhdu3awkcfffTCc/qyWIts3rxZaNCggWBjYyM0bNhQ2LZtm6jX/fxniabxlvb5WNK1LMXnc0UhE4Rn2huJiKjcHDx4ED179kT//v2xZcuWl3aMJ6KS8Z1DRKQnnTt3xqZNm7Bt2zaMHj0a/G1JpB22zBAREZFRY8sMERERGTUmM0RERGTUmMwQERGRUWMyQ0REREbN5CfNUyqVuHv3LhwcHLRawI2IiIjKnyAIyMzMhKen50unLTD5ZObu3buiF24jIiIiw3Dnzp2XLupp8slM0bTRd+7cKdPU1URERFR+MjIy4OXlVeLyD88z+WSm6NaSo6MjkxkiIiIjo0kXEXYAJiIiIqPGZIaIiIiMGpMZIiIiMmom32dGU4WFhXjy5Im+wyAqlaWlJczNzfUdBhGRwanwyYwgCEhJSUFaWpq+QyF6KWdnZ7i7u3POJCKiZ1T4ZKYokXF1dYVcLueXBBkkQRCQk5OD1NRUAICHh4eeIyIiMhwVOpkpLCxUJTKVK1fWdzhEL2RrawsASE1NhaurK285ERH9vwrdAbioj4xcLtdzJESaKbpW2b+LiOg/FTqZKcJbS2QseK0SERVXoW8zERERkXYKCgpx4K8UpKTnw93JGt3qu8PKSj+3v9kyY6JkMhl27twp+XG8vb2xYsUKyY9Tkk2bNsHZ2VnSY4wcORJ9+/aV9BhERMbm2+PJ6PjpIUz8Ph4L91zBxO/j0fHTQ/j2eLJe4mEyY4RSU1MxZswY1KhRA9bW1nB3d0dwcDCOHz+uKnPv3j306NFDj1GWrDwSkGfJZDLVw8HBAS1btsT27ds1rv/ZZ59h06ZNoo9ZHokkEZE+fHs8GXN/vYR/Mgog/P82AcA/GQWY++slvSQ0TGZ0QKkUcOdRDv5KycCdRzlQKoWXVyqDN954A+fPn8fmzZtx7do17Nq1C0FBQXj06JGqjLu7O6ytrSWNw1hs3LgR9+7dQ1xcHJo2bYqBAweqJX4v4uTkVK7JFxGRISsoKMSC3ZegLOV5JYAFuy+hoKCwPMNiMlNW11MzsTb6BpZHXcPnBxOxPOoa1kbfwPXUTEmOl5aWhqNHj2Lx4sXo2LEjatasiVdeeQWhoaHo1auXqtyzrQPJycmQyWT48ccf0b59e9ja2qJVq1a4du0a4uLi0LJlS9jb26N79+64f/++ah9BQUEICQlRO37fvn0xcuTIUuNbtmwZGjduDDs7O3h5eWHcuHHIysoCAERHR+Odd95Benq6qrUkLCwMAFBQUIBp06ahWrVqsLOzQ+vWrREdHa22702bNqFGjRqQy+Xo168fHj58qNE5K5porn79+li3bh1sbGywa9cuAMDFixfRqVMn2NraonLlyhg9erQqXqD4baagoCBMmjQJ06ZNg4uLC9zd3VWvAXh62w0A+vXrB5lMpvr7/Pnz6NixIxwcHODo6IgWLVrg9OnTGsVPRGQofjl3By/LUwoKn5YrT0xmyuB6aiY2HktGwt10OMstUauKPZzllki4m46Nx5IlSWjs7e1hb2+PnTt3Ij8/X1TduXPnYtasWTh79iwsLCwwePBgTJs2DZ999hmOHDmCGzduYM6cOWWKz8zMDJ9//jkSEhKwefNmHDp0CNOmTQMABAQEYMWKFXB0dMS9e/dw7949TJ06FQDwzjvv4NixY/jhhx9w4cIFDBw4EN27d0diYiIA4OTJk3j33Xcxbtw4xMfHo2PHjli4cKHo+CwtLWFhYYEnT54gJycH3bt3R6VKlRAXF4effvoJf/zxByZMmPDCfWzevBl2dnY4efIkIiMjMX/+fERFRQEA4uLiAKi3BgHA0KFDUb16dcTFxeHMmTOYMWMGLC0tRcdPRKRPH++4pFG59TGJEkeijqOZtKRUCtif8C8eZRegrqu9asisg40l7K0tkJiahQOX/kWtKvYwM9PdcFoLCwts2rQJ77//PtatWwd/f38EBgZi0KBBaNKkyQvrTp06FcHBwQCADz/8EIMHD8bBgwfRrl07AMCoUaNE9w953rMtOT4+PliwYAE++OADrFmzBlZWVnBycoJMJoO7u7uq3I0bN7B161b8/fff8PT0VMW6b98+bNy4EeHh4fjss88QHByMGTNmAAB8fX0RGxuLffv2aRxbfn4+lixZgoyMDHTu3BlbtmxBbm4uvvnmG9jZ2QEAVq1ahd69e2Px4sVwc3MrcT9NmjTB3LlzAQB169bFqlWrcPDgQXTt2hVVq1YF8F9rUJHbt2/jf//7H+rXr6+qR0RkTB5l5JZ6e+l5tx8XSBrL89gyo6V/0nJx434WPJxsis39IZPJ4OFkg+upWfgnLVfnx37jjTdw9+5d7Nq1C8HBwYiOjoa/v/9LE5Fnk52iL+rGjRurbSuaLl9bhw8fRteuXVGtWjU4ODhg+PDhePjwIbKzs0utc/bsWQiCAF9fX1XLk729PWJiYnDjxg0AwJUrV9C2bVu1es//XZrBgwfD3t4ecrkcy5Ytw6effooePXrgypUraNq0qSqRAYB27dpBqVTi6tWrpe7v+aTRw8Pjpedt8uTJeO+999ClSxcsWrRI9bqIiIxF4JJDGpct7ymxmMxoKbtAgTxFIeRWJTdu2VqZI19RiOwChSTHt7GxQdeuXTFnzhzExsZi5MiRqtaC0jx7W6MoAXt+m1L5X95tZmYGQVDvzPyimWdv3bqFnj17ws/PD7/88gvOnDmD1atXv7SeUqmEubk5zpw5g/j4eNXjypUr+OyzzwCgWBxiLF++HPHx8bh37x4ePXqEKVOmqPZZ2iR0L5qc7vnbQ8+ft5KEhYXh0qVL6NWrFw4dOoSGDRtix44dIl8JEZF+ZGTlI1PExOP1q5bvzPpMZrRkZ2UBGwtz5JSSrOQWFMLawhx2pSQ7utawYcMXtn5oo2rVqrh3757q78LCQiQkJJRa/vTp01AoFFi6dCnatGkDX19f3L17V62MlZUVCgvVe481b94chYWFSE1NRZ06ddQeRbdqGjZsiBMnTqjVe/7v0ri7u6NOnTpwdXVV296wYUPEx8ernbdjx47BzMwMvr6+Gu27JJaWlsVeI/D01thHH32EAwcOoH///ti4caPWxyAiKk8zd8aLKr/hnVekCaQUTGa0VM3ZFrWr2uNeel6xVgNBEHAvPQ91XO1RzdlWp8d9+PAhOnXqhO+++w4XLlxAUlISfvrpJ0RGRqJPnz46PVanTp2wZ88e7NmzB3/99RfGjRuHtLS0UsvXrl0bCoUCK1euxM2bN/Htt99i3bp1amW8vb2RlZWFgwcP4sGDB8jJyYGvry+GDh2K4cOHY/v27UhKSkJcXBwWL16MvXv3AgAmTZqEffv2ITIyEteuXcOqVatE9ZcpydChQ2FjY4MRI0YgISEBhw8fxsSJEzFs2LBS+8towtvbGwcPHkRKSgoeP36M3NxcTJgwAdHR0bh16xaOHTuGuLg4NGjQoEzxExGVl90JD0SVd3W2e3khHWIyoyUzMxmC/dzgYmeFxNQsZOY9gUKpRGbeEySmZsHFzgrdGrnptPMv8HQ0U+vWrbF8+XJ06NABfn5+mD17Nt5//32sWrVKp8d69913MWLECAwfPhyBgYHw8fFBx44dSy3frFkzLFu2DIsXL4afnx+2bNmCiIgItTIBAQEYO3Ys3nrrLVStWhWRkZEAno7+GT58OKZMmYJ69erh9ddfx8mTJ+Hl5QUAaNOmDb766iusXLkSzZo1w4EDBzBr1qwyvT65XI79+/fj0aNHaNWqFQYMGIDOnTuX+TwuXboUUVFR8PLyQvPmzWFubo6HDx9i+PDh8PX1xZtvvokePXpg3rx5ZToOEVF5yMoW15m3TxPtfwxqSyaUpTOCEcjIyICTkxPS09Ph6Oio9lxeXh6SkpLg4+MDGxsbrfZ/PTUT+xP+xY37WchXPL21VMfVHt0auaGOq4MuXgKRii6uWSIiMYauO4pjyekal78wqwsc7cs+aeuLvr+fx6HZZVTH1QG1guzxT1ousgsUsLOyQDVnW523yBAREZU3hUIpKpGxkkEniYxYTGZ0wMxMBi+X8u25TUREJLUTyeL6ymz5oJVEkbwY+8wQERFRiUZ8FSeqfIvqVSWK5MWYzBAREVExfz/MgJjlIj/qWFNvXSyYzBAREVExvVfGiir/QUf9TTfBZIaIiIjUKBRKPM7TvF3GycoMVlbmEkb0YkxmiIiISM3BK/deXugZYzrWkigSzTCZISIiIjWTvo8XVf7dtrWlCURDTGaIiIhIJSfnCfJFTKdbWW4OGxv9zvTCZMYEJScnQyaTIT4+Xt+hiOLt7Y0VK1bobH9BQUEICQnR2f6IiCqCBXsviSr/+6T2EkWiOSYzRkYmk73wMXLkSH2H+FKbNm2Cs7Nzse1xcXEYPXp0ucZSUFCAyMhING3aFHK5HFWqVEG7du2wceNGPHkiYr17IiIToFQK+PH0P6LqlPeikiXhDMBG5t69/zplbdu2DXPmzMHVq1dV22xtbfH48WN9hIbCwkLIZDKYmWmXI1etWr6TLRUUFCA4OBjnz5/HggUL0K5dOzg6OuLEiRP49NNP0bx5czRr1kyrfT958gSWlpa6DZiISGLXUtNFzS2z+u0mksUiBltmjIy7u7vq4eTkBJlMVmxbkZs3b6Jjx46Qy+Vo2rQpjh8/rrav2NhYdOjQAba2tvDy8sKkSZOQnZ2tev7x48cYPnw4KlWqBLlcjh49eiAxMVH1fFELy+7du9GwYUNYW1vj1q1bKCgowLRp01CtWjXY2dmhdevWiI6OBgBER0fjnXfeQXp6uqo1KSwsDEDx20xpaWkYPXo03NzcYGNjAz8/P+zevRsA8PDhQwwePBjVq1eHXC5H48aNsXXrVlHncsWKFfjzzz9x8OBBjB8/Hs2aNUOtWrUwZMgQnDx5EnXr1i0xLuDpCuFFcQNPW8zWrVuHPn36wM7ODvPnz0f16tWxbt06tXpnz56FTCbDzZs3AQDp6ekYPXo0XF1d4ejoiE6dOuH8+fOiXgcRka6M+OqkqPLB9atJFIk4TGaeIwgCcgoU5f6QYvHyjz/+GFOnTkV8fDx8fX0xePBgKBQKAMDFixcRHByM/v3748KFC9i2bRuOHj2KCRMmqOqPHDkSp0+fxq5du3D8+HEIgoCePXuq3X7JyclBREQEvvrqK1y6dAmurq545513cOzYMfzwww+4cOECBg4ciO7duyMxMREBAQFYsWIFHB0dce/ePdy7dw9Tp04tFrtSqUSPHj0QGxuL7777DpcvX8aiRYtgbv50HoO8vDy0aNECu3fvRkJCAkaPHo1hw4bh5EnN34hbtmxBly5d0Lx582LPWVpaws5OXNPp3Llz0adPH1y8eBHvvfceBg0ahC1btqiV+f7779G2bVvUqlULgiCgV69eSElJwd69e3HmzBn4+/ujc+fOePTokahjExGVVVZ2Af7NUmhcvr6bHBYWhpFG8DbTc3KfFKLhnP3lftzL84Mht9LtP8fUqVPRq1cvAMC8efPQqFEjXL9+HfXr18eSJUswZMgQVQfZunXr4vPPP0dgYCDWrl2LO3fuYNeuXTh27BgCAgIAPP3y9/Lyws6dOzFw4EAAT2+nrFmzBk2bNgUA3LhxA1u3bsXff/8NT09PVRz79u3Dxo0bER4ertaiVJo//vgDp06dwpUrV+Dr6wsAqFXrv3kMqlWrppYETZw4Efv27cNPP/2E1q1ba3R+EhMTERQUpFFZTQwZMgTvvvuu6u+hQ4di2bJluHXrFmrWrAmlUokffvgBM2fOBAAcPnwYFy9eRGpqKqytn64y++mnn2Lnzp34+eefy73/EBFVbON/OC2q/Pej2kgUiXhMZkxYkyb/3cv08PAAAKSmpqJ+/fo4c+YMrl+/rtZyIAgClEolkpKSkJiYCAsLC7XEoHLlyqhXrx6uXLmi2mZlZaV2nLNnz0IQBFUCUiQ/Px+VK1fWOPb4+HhUr1692H6KFBYWYtGiRdi2bRv++ecf5OfnIz8/X1RriiAIkMl0t45Iy5Yt1f5u3rw56tevj61bt2LGjBmIiYlBamoq3nzzTQDAmTNnkJWVVey85Obm4saNGzqLi4joZRQKJWISNe9vaSUDXBxtJYxIHCYzz7G1NMfl+cF6Oa6uPdsBtehLW6lUqv47ZswYTJo0qVi9GjVq4Nq1ayXu8/kEwNbWVu1vpVIJc3NznDlzRnVLqIi9vb3GsdvavvhNsnTpUixfvhwrVqxA48aNYWdnh5CQEBQUFGh8DF9fX7XErDRmZmbFbgOWNNKppERq6NCh+P777zFjxgx8//33CA4ORpUqVQA8PVceHh6q/kTPKmm0FxGRVP68+q+o8uve9pcoEu0wmXmOTCbT+e0eQ+Tv749Lly6hTp06JT7fsGFDKBQKnDx5UnWb6eHDh7h27RoaNCh9MbHmzZujsLAQqampaN++5LkHrKysUFj44v7yTZo0wd9//41r166V2Dpz5MgR9OnTB2+//TaAp4lBYmLiC2N73pAhQzBz5kycO3euWL8ZhUKhaumpWrWq2iiyjIwMJCUlaXyMWbNm4cyZM/j555+xdu1a1XP+/v5ISUmBhYUFvL29NY6biEjXxn1/VlT5DvXcJIpEO3rvufPPP//g7bffRuXKlSGXy9GsWTOcOXNG9bwgCAgLC4OnpydsbW0RFBSES5fETehDxU2fPh3Hjx/H+PHjER8fj8TEROzatQsTJ04E8LQPTZ8+ffD+++/j6NGjOH/+PN5++21Uq1YNffr0KXW/vr6+GDp0KIYPH47t27cjKSkJcXFxWLx4Mfbu3Qvg6eigrKwsHDx4EA8ePEBOTk6x/QQGBqJDhw544403EBUVhaSkJPz+++/Yt28fAKBOnTqIiopCbGwsrly5gjFjxiAlJUXUOQgJCUG7du3QuXNnrF69GufPn8fNmzfx448/onXr1qqRW506dcK3336LI0eOICEhASNGjCjW6lQaHx8fBAQEYNSoUVAoFGrnrkuXLmjbti369u2L/fv3Izk5GbGxsZg1axZOnxZ375qISFtpmXkQsaYkGrjaGkzH3yJ6jebx48do164dLC0t8fvvv+Py5ctYunSpWhN7ZGQkli1bhlWrViEuLg7u7u7o2rUrMjMz9Re4CWjSpAliYmKQmJiI9u3bo3nz5pg9e7aqbw0AbNy4ES1atMBrr72Gtm3bQhAE7N2796Xzp2zcuBHDhw/HlClTUK9ePbz++us4efIkvLy8AAABAQEYO3Ys3nrrLVStWhWRkZEl7ueXX35Bq1atMHjwYDRs2BDTpk1TtejMnj0b/v7+CA4ORlBQENzd3dG3b19R58Da2hpRUVGYNm0avvjiC7Rp0watWrXC559/jkmTJsHPzw8AEBoaig4dOuC1115Dz5490bdvX9Surfk6JEOHDsX58+fRv39/tdtnMpkMe/fuRYcOHfDuu+/C19cXgwYNQnJyMtzcDOtXDxGZrrc3HH95oWdsea+tRJFoTyZIMSZYQzNmzMCxY8dw5MiREp8XBAGenp4ICQnB9OnTATztSOrm5obFixdjzJgxLz1GRkYGnJyckJ6eDkdHR7Xn8vLykJSUBB8fH9jY2JT9BRFJjNcsEemSQqFEnVm/a1zeEkDiol7SBfSMF31/P0+vLTO7du1Cy5YtMXDgQLi6uqJ58+b48ssvVc8nJSUhJSUF3bp1U22ztrZGYGAgYmNjS9xnfn4+MjIy1B5ERERU3OG/xN2eX9C/oUSRlI1ek5mbN29i7dq1qFu3Lvbv34+xY8di0qRJ+OabbwBA1Qfi+SZ3Nze3UvtHREREwMnJSfUourVBRERE6sZtOSeqfP9mNSSKpGz0mswolUr4+/sjPDwczZs3x5gxY/D++++rjfgAUGwukBfNDxIaGor09HTV486dO5LFT0REZKweZeTiiYiOJnWr2MDKSvfTiOiCXpMZDw8PNGyo3mTVoEED3L59GwBUM8Q+3wqTmppaagdJa2trODo6qj2IiIhIXbfl0aLK/zSmnTSB6IBek5l27dqprfgMANeuXUPNmjUBPB3W6u7ujqioKNXzBQUFiImJUc19ogt67ANNJAqvVSLShZycJ3iQq9S4vDkAZwfDHXSg19nhPvroIwQEBCA8PBxvvvkmTp06hfXr12P9+vUAnt5eCgkJQXh4OOrWrYu6desiPDwccrkcQ4YMKfPxi4YY5+TkvHTGWSJDUDQnz8uGxxMRvciS38X1lVk9rKlEkeiGXpOZVq1aYceOHQgNDcX8+fPh4+ODFStWYOjQoaoy06ZNQ25uLsaNG4fHjx+jdevWOHDgABwcHMp8fHNzczg7OyM1NRUAIJfLdbpWD5GuCIKAnJwcpKamwtnZWeNJ+4iISrIx7r6o8l3qeUoUiW7odZ6Z8vCyceqCICAlJQVpaWnlHxyRSM7OznB3d2fSTURaS8vMQ7NPDmpcvrGHHL992FHCiEomZp4Z01+E6CVkMhk8PDzg6upa4uKBRIbC0tKSLTJEVGZ9Vv8pqvy37xrejL/Pq/DJTBFzc3N+URARkUnLy1PgVpq4H+6G3PG3iGGtFEVERESS2XDihqjyo1+tKVEkusVkhoiIqIKI3HddVPmQTvUkikS3mMwQERFVAMn300SVb+Auh1xuHNNAMJkhIiKqALouOyaq/C+jX5UoEt1jMkNERGTisrILRK3DVEVuZjStMgCTGSIiIpM3+ptYUeUPhARJE4hEmMwQERGZMIVCidhb2aLquDga1xI/TGaIiIhM2J/X/hVVfkirahJFIh0mM0RERCZsyo/xosrP7N5QmkAkxGSGiIjIROXkPMHjPKXG5R0tAXs7KwkjkgaTGSIiIhP10c9nRZWP/l8niSKRFpMZIiIiE6RQKLH/8gONy1uZGV/H3yJMZoiIiExQTGKKqPJrhzeXKBLpMZkhIiIyQWM2nxNVPrCOu0SRSI/JDBERkYl5kJ4DhYjytSpbw8LCeFMC442ciIiISvTmF+LWYfpxdIBEkZQPJjNEREQmRKFQ4uajAo3LWwCo4iSXLqBywGSGiIjIhKw4eEVU+ROhHSWKpPwwmSEiIjIRCoUSqw4na1xeBuNvlQGYzBAREZmMozdTRZUP7298SxeUhMkMERGRiZi2LV5U+Tea1ZAmkHLGZIaIiMgEZGUXIDW7UOPyvlVsYGVlLmFE5YfJDBERkQkY98NpUeV/HNNOokjKH5MZIiIiI6dQKPFn4mONy1dztIKzg42EEZUvJjNERERGbs6vF0SVPzjZ+IdjP4vJDBERkRErKCjE93H/aFzeycoMNjYWEkZU/pjMEBERGbFtccmiyo/pVEuaQPSIyQwREZERm/3bX6LKv9umtkSR6A+TGSIiIiN1+0G6qPLNqtmZ3C0mgMkMERGR0er46VFR5b8fZTrDsZ/FZIaIiMgIZWTlQ/Mp8oDKtoBcbilZPPrEZIaIiMgIjfr2pKjyUR91kigS/WMyQ0REZGQUCiXibmWKquPiaCtRNPrHZIaIiMjIhO0SN0neJ/0bSBSJYWAyQ0REZEQKCgrx3SnNJ8kDgIHNakoUjWFgMkNERGREfjpzW1R5J2uYzOrYpWEyQ0REZERm/XpZVPnfP+wgUSSGg8kMERGRkUhNy4YgoryFDPB0cZAsHkOh12QmLCwMMplM7eHu7q56XhAEhIWFwdPTE7a2tggKCsKlS5f0GDEREZH+9FgRI6r8hdndJIrEsOi9ZaZRo0a4d++e6nHx4kXVc5GRkVi2bBlWrVqFuLg4uLu7o2vXrsjMFDccjYiIyNgVFBTiYZ7m7TLO1qY7Sd7z9J7MWFhYwN3dXfWoWrUqgKetMitWrMDHH3+M/v37w8/PD5s3b0ZOTg6+//57PUdNRERUvkZvPiGq/LJB/hJFYnj0nswkJibC09MTPj4+GDRoEG7evAkASEpKQkpKCrp1+6+JzNraGoGBgYiNjS11f/n5+cjIyFB7EBERGbO8PAWib6SJqtOhrps0wRggvSYzrVu3xjfffIP9+/fjyy+/REpKCgICAvDw4UOkpKQAANzc1P8x3NzcVM+VJCIiAk5OTqqHl5eXpK+BiIhIaquPXBVVfno3b1hY6L29otzo9ZX26NEDb7zxBho3bowuXbpgz549AIDNmzeryshkMrU6giAU2/as0NBQpKenqx537tyRJngiIqJysvJgsqjyY4IaShOIgTKotM3Ozg6NGzdGYmKialTT860wqampxVprnmVtbQ1HR0e1BxERkbHKyMoXVb5WJSuYmZX+o98UGVQyk5+fjytXrsDDwwM+Pj5wd3dHVFSU6vmCggLExMQgICBAj1ESERGVnyYL/xBV/ocxFe870kKfB586dSp69+6NGjVqIDU1FQsXLkRGRgZGjBgBmUyGkJAQhIeHo27duqhbty7Cw8Mhl8sxZMgQfYZNRERULm4/SBddx9XZToJIDJtek5m///4bgwcPxoMHD1C1alW0adMGJ06cQM2aTxfEmjZtGnJzczFu3Dg8fvwYrVu3xoEDB+DgYPqzGRIREXVZelRU+VMzgqQJxMDJBEEQMzOy0cnIyICTkxPS09PZf4aIiIxGTs4TNJx/QFSd5EW9JIqm/In5/jaoPjNERET01OgtcaLKL+zXQKJIDB+TGSIiIgNTUFCIozcei6rzZvOaEkVj+JjMEBERGZhf4m+JKt+ulhOsrMwlisbwMZkhIiIyMLN3XBFV/su3W0sUiXFgMkNERGRA0jLzoBAxNKems3WFWR27NExmiIiIDEjrRQdFlf9tQnuJIjEeTGaIiIgMRGpaNvILNS8vA+Boby1ZPMaCyQwREZGBaL0oWlT5Y9M6SBOIkWEyQ0REZAAeZeRC7Cy2ni6cER9gMkNERGQQ/MMPiSr/26S2EkVifJjMEBER6VlqWrboOo3cK0kQiXFiMkNERKRnI746Lqr8sBZuMDOTSRSN8WEyQ0REpGdXHuSLKv9x72bSBGKkmMwQERHp0bbTSaLK13WxhI2NhUTRGCcmM0RERHqiUCgx/efLoursGB8kTTBGjMkMERGRnsz+NV5UeQ97M9jbWUkTjBFjMkNERKQHBQWF2Bp3T1SdqI86SxSNcWMyQ0REpAc/x98WVd7eHGyVKQWTGSIiIj0I2yGur0z0tI4SRWL8mMwQERGVs6zsAhSIXLugipNcmmBMAJMZIiKictYqIkpU+RPTAyWKxDQwmSEiIipHqWnZyFWIq+NeyV6aYEwEkxkiIqJy1HVZtKjysdM6SBOICWEyQ0REVE7y8hRIL9C8vLkM8HRxkC4gE8FkhoiIqJx0WnpYVPnd49tJFIlpYTJDRERUDtIy83A3U0SzDIB6nk4SRWNamMwQERGVg76rokWVH9uhBszMZNIEY2KYzBAREUmsoKAQyemFoupM7tJQomhMD5MZIiIiiXVd9oeo8kNeqQYrK3OJojE9TGaIiIgklJGVj1tp4iaWmf96E4miMU1MZoiIiCQ06Itjosp3rFcJFhb8ehaDZ4uIiEgiBQWFuHw/V1Sd1W+1kiga08VkhoiISCLfnb4pqnxVOxnkckuJojFdTGaIiIgkMn/XNVHlo0I6SRSJaWMyQ0REJIET11NFlfewt4Szg41E0Zg2JjNEREQ6plQKGPRVnKg6h6eyVUZbTGaIiIh0LPTneFHlHSwAGxsLaYKpAJjMEBER6VBengLbzt4VVSdqSqBE0VQMTGaIiIh0KHxvgqjy5gDcK9lLE0wFwWSGiIhIR5RKAd+c+kdUnbiZ7CtTVgaTzEREREAmkyEkJES1TRAEhIWFwdPTE7a2tggKCsKlS5f0FyQREdELfH0sUVR5Sxng4mgrUTQVh0EkM3FxcVi/fj2aNFFfiyIyMhLLli3DqlWrEBcXB3d3d3Tt2hWZmZl6ipSIiKhkCoUSn+wRl8wcmca+Mrqg92QmKysLQ4cOxZdffolKlSqptguCgBUrVuDjjz9G//794efnh82bNyMnJwfff/+9HiMmIiIqbvPJ66LKy8C+Mrqi92Rm/Pjx6NWrF7p06aK2PSkpCSkpKejWrZtqm7W1NQIDAxEbG1vq/vLz85GRkaH2ICIikpJSKWDBb+JaZc6wr4zO6HVQ+w8//ICzZ88iLq74xEIpKSkAADc3N7Xtbm5uuHXrVqn7jIiIwLx583QbKBER0QucSb4vqrzcnH1ldElvLTN37tzBhx9+iO+++w42NqVP3yyTydT+FgSh2LZnhYaGIj09XfW4c+eOzmImIiIqycD14mb7jZ3RWaJIKia9tcycOXMGqampaNGihWpbYWEh/vzzT6xatQpXr14F8LSFxsPDQ1UmNTW1WGvNs6ytrWFtbS1d4ERERM/45VyyqPIWANdg0jG9tcx07twZFy9eRHx8vOrRsmVLDB06FPHx8ahVqxbc3d0RFRWlqlNQUICYmBgEBAToK2wiIiIVhUKJKdvETRlydDpHMOma3lpmHBwc4Ofnp7bNzs4OlStXVm0PCQlBeHg46tati7p16yI8PBxyuRxDhgzRR8hERERqYq7/K7oORzDpnkGvajVt2jTk5uZi3LhxePz4MVq3bo0DBw7AwcFB36ERERFh1Kazosqf5QgmScgEQRD0HYSUMjIy4OTkhPT0dDg6Ouo7HCIiMhHHElMw9OszGpe3NgOuhveSMCLTIub7W+/zzBARERkbpVIQlcgAwPEZbJWRCpMZIiIikU6LnFemqr0F55WRUJmTmYyMDOzcuRNXrlzRRTxEREQG702R88ocmcp5ZaQkOpl58803sWrVKgBAbm4uWrZsiTfffBNNmjTBL7/8ovMAiYiIDMmcHedEla8kN4ONjUGPtzF6opOZP//8E+3btwcA7NixA4IgIC0tDZ9//jkWLlyo8wCJiIgMRV6eAt+cvCuqzv5JHSSKhoqITmbS09Ph4uICANi3bx/eeOMNyOVy9OrVC4mJ4hbZIiIiMibDN5a+0HFJLAC4OttJEwypiE5mvLy8cPz4cWRnZ2Pfvn2qVa0fP378wjWWiIiIjFlengKnbmWKqnOK88qUC9E38UJCQjB06FDY29ujRo0aCAoKAvD09lPjxo11HR8REZFBmLZd3FBsWzOujF1eRCcz48aNwyuvvII7d+6ga9euMDN72rhTq1atCtVnRqkU8E9aLrILFLCzskA1Z1uYmZW+mjcRERkvhUKJXRceiKpzPJQjmMqLVt2rW7ZsiSZNmiApKQm1a9eGhYUFevWqOLMaXk/NxI64W/jp3F1k5xfCztocA5t7ol+rmqjjyqUWiIhMzaSt4oZiezlbcmXsciS6z0xOTg5GjRoFuVyORo0a4fbt2wCASZMmYdGiRToP0NBcT83EgLWxWH3kFlKzniD7iRKpWU+w+sgtDFgTi+up4u6nEhGRYcvLU2DvJXGtMgcns1WmPIlOZkJDQ3H+/HlER0erdfjt0qULtm3bptPgDI1SKWDw+hNIy1WU+HxangL918RCqTTp5a6IiCqUkRtPiCpf2VYGKytziaKhkohOZnbu3IlVq1bh1VdfhUz2Xx+Rhg0b4saNGzoNztAk/PMI97MKXlgmI0+BDUevl1NEREQkpbw8BU7cShdVZw/nlSl3opOZ+/fvw9XVtdj27OxsteTGFM3ddUmjcgv3XoNCoZQ4GiIiktrob46LKm8pA9wr2UsUDZVGdDLTqlUr7NmzR/V3UQLz5Zdfom3btrqLzADdeZSncdlFBxIkjISIiKRWUFCIP29miKpzblZXiaKhFxE9mikiIgLdu3fH5cuXoVAo8Nlnn+HSpUs4fvw4YmJipIjRYDjaWuBB9hONyn715x3M6OYHCwsuTE5EZIxaLdwvqnwVuTns7awkioZeRPQ3bUBAAI4dO4acnBzUrl0bBw4cgJubG44fP44WLVpIEaPBeO9VH1HlB6w9IlEkREQkpdS0bKQXiBvM8cdHQZLEQi+n1TwzjRs3xubNm3Udi8Eb4F8DM3de1rh8/D9ZyMouYKZORGRk2iyKFlXeTS7jvDJ6JDqZKZpXpjQ1atTQOhhDZ2VljtY17HHydpbGdTotO4xTs4MljIqIiHQpNS0bYodwxEzrJkkspBnRyYy3t/cLRy0VFhaWKSBDt3FkABrOP6Bx+dRsBTKy8uFoby1hVEREpCtBkdGiyg9u4QEbG61udJCOiD77586dU/v7yZMnOHfuHJYtW4ZPPvlEZ4EZKrncElXlMtzP0fxeavslB3F+Xk8JoyIiIl3Iyi5AjshmmU/eaC5NMKQx0clM06ZNi21r2bIlPD09sWTJEvTv318ngRmyqI86odknBzUun54vIC0zj/dTiYgMnN+CKFHl32/nxUWGDYDOxg37+voiLk7cQlzGytnBBg1c5aLqtBSR/BARUfn79oT42dundG0oQSQkluhkJiMjQ+2Rnp6Ov/76C7Nnz0bdunWliNEg7QkJElVegaedyoiIyPAoFErM3nlVVJ3XGlVmXxkDITqZcXZ2RqVKlVQPFxcXNGzYEMePH8fatWuliNEgmZnJsHJoE1F1XhE51I+IiMrHoHVHRddZMfgVCSIhbYhOKQ8fPqz2t5mZGapWrYo6derAwqJiZai9GlXHRFwQVWfd4WsY29FXooiIiEisrOwCnP47U1Sd2b1rc4Z3AyITBEHcFIdGJiMjA05OTkhPT4ejo6PO93/qVireXCuur9C1+d25PDwRkYEIitiH5HRx04okL+olUTRURMz3t0ZNKbt27dL44K+//rrGZU3BKzVdYQlAsxWbnpr602l8PrS1VCEREZGGcnKeiE5kTs0IkiYY0ppGyUzfvn012plMJjP5SfNKcjy0I1pGHH55wf+36+IDfFpQyNYZIiI96/F5tKjyFgBcne0kiYW0p9ENP6VSqdGjIiYyAFDFSS6689FHP56WJBYiItJMVnYBbqUViKoTy1YZg8TeSzoi9gLfk/AABQUVM/kjIjIEHT49JKq8jRlbZQyVVsOPsrOzERMTg9u3b6OgQD2rnTRpkk4CMzbaXOAdIv/AiVlchJKIqLz9duFvPMoV94Myfg4/rw2VVmsz9ezZEzk5OcjOzoaLiwsePHgAuVwOV1fXCpvMAMBpkX1nUrIUeJSRCxdHWwmjIiKiZykUSkz8/ryoOgOaunKCPAMm+jbTRx99hN69e+PRo0ewtbXFiRMncOvWLbRo0QKffvqpFDEajSpOcriIXH7JP1xcMycREZXNZ9EJoutEvtVSgkhIV0QnM/Hx8ZgyZQrMzc1hbm6O/Px8eHl5ITIyEjNnzpQiRqNyYmZ30XWmbjsjQSRERPQ8pVLAyj/uiKrz0/uvcDFJAyc6mbG0tIRM9vQf1c3NDbdv3wYAODk5qf6/IrOyMkeAj5OoOj+fS0FOjpiZaoiISBudlvwhqryVDGhVu6pE0ZCuiE5mmjdvjtOnnw4r7tixI+bMmYMtW7YgJCQEjRs31nmAxuirYeInxBvydawEkRARUZFHGblIfixuKPaJ0E4SRUO6pHEyo1AoAADh4eHw8PAAACxYsACVK1fGBx98gNTUVKxfv16aKI2MXG6JAc08RNWJ/ycLeXkKiSIiIqKACHF9FM0BDtAwEhonMx4eHpg6dSrkcjk6duwIAKhatSr27t2LjIwMnD17Fk2bNpUsUGPz6SB/iL3DGvTpQUliISKq6DKy8pEnciXCuJlslTEWGiczkydPxm+//YbGjRujbdu2+Prrr5GVlSVlbEbv3MedRZVPyVIgLTNPomiIiCquNhHi+soAbJUxJhonM6Ghobh69Sqio6NRv359hISEwMPDA++88w6OHTum1cHXrl2LJk2awNHREY6Ojmjbti1+//131fOCICAsLAyenp6wtbVFUFAQLl26pNWx9MHZwQb2luLaZ/w/YesMEZEunUl6gByRE65HT2knTTAkCdEdgNu3b4+NGzciJSUFK1aswPXr19G+fXvUq1cPkZGRovZVvXp1LFq0CKdPn8bp06fRqVMn9OnTR5WwREZGYtmyZVi1ahXi4uLg7u6Orl27IjMzU2zYenN0mrhmSiWAdYeuShMMEVEFo1QKeOOLk6LreVd11n0wJBmZIAgi7yIWt2fPHgwfPhxpaWllXmzSxcUFS5YswbvvvgtPT0+EhIRg+vTpAID8/Hy4ublh8eLFGDNmjEb7y8jIgJOTE9LT0+Ho6Fim2LQVtPgAkh+LG3p9bX53rqpNRFRGn+y6gC9jxc0rkzC7K+ztrCSKiDQl5vtb64Umc3JysHHjRnTo0AGvv/46KleujE8++UTb3aGwsBA//PADsrOz0bZtWyQlJSElJQXdunVTlbG2tkZgYCBiY0sfxpyfn4+MjAy1h779MaWL6DpdPz0gQSRERBVHQUGh6ESmTQ1HJjJGSHQyc+TIEbz77rtwd3fHhAkT4OPjg8OHD+PatWuYMWOG6AAuXrwIe3t7WFtbY+zYsdixYwcaNmyIlJQUAE8n5nuWm5ub6rmSREREwMnJSfXw8vISHZOuWViYYXR7cXHcylAiIytfooiIiExfwIJ9out8P/ZVCSIhqWmczISHh8PX11fVCXfJkiW4d+8eNm/ejA4dOmgdQL169RAfH48TJ07ggw8+wIgRI3D58mXV80WzDRcRBKHYtmeFhoYiPT1d9bhzR1xWLpVpwX6i67y26ogEkRARmb60zDw8EDmx+rfv+HPZAiOl8RKgy5cvx9tvv41Ro0bBz0/8F3NprKysUKdOHQBAy5YtERcXh88++0zVTyYlJUU1SR8ApKamFmuteZa1tTWsra11Fp+uWFiYYc2gZhj3Q7zGdW6n5SMn5wnkckvpAiMiMkHNtRgZ2r6euMlOyXBo3DJz9+5dLF++XC2RcXR0xM2bN3UakCAIyM/Ph4+PD9zd3REVFaV6rqCgADExMQgICNDpMctLz2bV4O0srlNvo/nsO0NEJMbaw1chdmRLwuyuksRC5UPjZObff/8ttq2sA6FmzpyJI0eOIDk5GRcvXsTHH3+M6OhoDB06FDKZDCEhIQgPD8eOHTuQkJCAkSNHQi6XY8iQIWU6rj4dmCzuDSMAGLLuqDTBEBGZmIKCQizef11Unep2YKdfI6fxbSY/Pz+sXLkSw4YN09nB//33XwwbNgz37t2Dk5MTmjRpgn379qFr16df+NOmTUNubi7GjRuHx48fo3Xr1jhw4AAcHBx0FkN5s7IyR4dalfDnzcca14lNTkdGVj4c7Q3v9hkRkSEJWhL18kLP+eN/wRJEQuVJ43lm1qxZgxkzZqBr165Yv369aoHJBQsWoEqVKlLHqTVDmGfmeTk5T9BQ5O0jW3Pgyie9JIqIiMj4pWXmoZnIvjLvvlINc/o3kyYgKhNJ5pkZN24czp8/j8ePH6NRo0bYtWsX1q5da9CJjKGSyy0R3EDcecstfLp8PRERlayVFp1+mciYBq1mAF61ahU++ugjNGjQABYW6neqzp49q7PgdMEQW2aAp1Ns15q5V1QdMwA3F7F1hojoeTvP3UHItgui6pyYHgj3SvYSRURlJeb7W+M+M0Vu3bqFX375BS4uLujTp0+xZIY0Y2Ymw8+jW2PAes3XDFECiNiTgNBeuhsaT0Rk7BQKpehEBgATGRMiKhP58ssvMWXKFHTp0gUJCQmoWrWqVHFVCC1rVYGdOZAtYjmrL47cwked68PGhkkkEREAtA3fL7rO2ZniFgEmw6Zxn5nu3btj+vTpWLVqFbZv385ERkfiPu728kLP6bRE/BuXiMgUPUjPwf0cpag61Rws4OJoK1FEpA8a/7wvLCzEhQsXUL16dSnjqXDkckvUr2yFvx4WaFznbjY4VJuICEDLiMOi68RM5wR5pkbjlpmoqCgmMhLZObGj6DpNFv4hQSRERMYjOvGu6DrL3mwMCwvRayyTgeO/qAGwsbHAsFc8RddbcuCiBNEQERk+pVLAyK/PiaojA9Dfv4Y0AZFeMZkxEAv6NxddZ/Wh2ygoENF7mIjIRAR/Kn6m35MzgnQfCBkEJjMG5JQWb7QOi/fpPhAiIgOWlpmHxEdPRNVxtAJcne0kioj0jcmMAXF1toOTlUxUnZTsp29sIqKKoqUWM/2entVdgkjIUDCZMTBxs8QveCZ2LRIiImOVmpYNhcg6H3WrBSsrc0niIcPAZMbAWFmZY1rXOqLrhWw5IUE0RESG5ZVF0aLKW8mADzs1kCYYMhhMZgzQuM71RNfZefEhcnLE3UMmIjImref9LrpOwjzeXqoImMwYqMtzxM8M3Hz+AQkiISLSv9S0bPybK26m3yGtPHh7qYJgMmOg5HJLdKwtbpXvfADbz92WJiAiIj0Se3sJAOb3aabzOMgwMZkxYF+PelV0ncnbLkKhEPfrhYjIkA1cdUh0nRWDOdNvRcJ/aQNmZibD9g/aiK73+uoYCaIhIip/GVn5iPs7V1QdCwB9m3Km34qEyYyB869ZGVXk4v6ZLt/LQUZWvkQRERGVH23WoTs1s5MEkZAhYzJjBI5OE7/CKxeiJCJjN/E78VNOeDuZw8XRVoJoyJAxmTECNjYWeK+d+BXLe2qxdgkRkSHIyXmC3xIeiq4XHcqh2BURkxkjMat3U1iKW+kAlx8UcKkDIjJKLT4RP9XE6dCOEkRCxoDJjBE5N0v87SYudUBExiY1LRu5heLqyGVAFSe5NAGRwWMyY0Ts7azQrX5l0fVGbeJSB0RkPLSZU+b0bPETjZLpYDJjZNaPFD9U++BfD5GVXSBBNEREujXsC/FTS7zepArkcksJoiFjwWTGCJ2aESS6jt8CdgYmIsOWlV2AI0lZout9PqS1BNGQMWEyY4Rcne1goUW9b2Ov6zwWIiJd0eZH119hwRJEQsaGyYyROjuri+g6s3dd5VIHRGSQukaKT2RGtq0OGxttftqRqWEyY6Qc7a3Rrpaz6HrtFnEyPSIyLI8ycpH4SHy/vrA+TSWIhowRkxkjtmV0O1iJrPNv1hM8SM+RJB4iIm34h4tfSPLyHI5eov8wmTFylxf2EF2nZcRhCSIhIhKv11LxrcW9m1bl6CVSw2TGyFlYmGHxwAai6/VdGa3zWIiIxEjLzMOl++IXxV05+BUJoiFjxmTGBLzVohasRP5Lxv+TjbO3xK97QkSkK9rMUK7N1BRk+pjMmIgLc8QPT+y/9gSUSkGCaIiIXiwgXPzaS65yGVyd7SSIhowdkxkTYWNjgffbeYmu13TuXgmiISIqXWpaNu5mPBFd79ScnhJEQ6aAyYwJ+bh3E9GT6WU+ARbsvihJPEREJdFq7SWuiE0vwGTGxJz+uLPoOl8fvY28PIUE0RARqevxqfjJ8TzkXBGbXozJjIlxdrBBI0/xb/pGYfsliIaI6D9nbz/ElQfiJ8c7PqeXBNGQKWEyY4L2TBLfHFsIYMrW07oPhogIgFIpoP+aE6LrnZgeKEE0ZGr0msxERESgVatWcHBwgKurK/r27YurV6+qlREEAWFhYfD09IStrS2CgoJw6dIlPUVsPC5osXbTL+f/RU6O+E55REQv4zdb/GCDStaAeyV7CaIhU6PXZCYmJgbjx4/HiRMnEBUVBYVCgW7duiE7O1tVJjIyEsuWLcOqVasQFxcHd3d3dO3aFZmZmXqM3PA52lujZTVb0fUazhc/XJKI6EWOJaYgp1B8vXPzeHuJNCMTBMFgJhq5f/8+XF1dERMTgw4dOkAQBHh6eiIkJATTp08HAOTn58PNzQ2LFy/GmDFjXrrPjIwMODk5IT09HY6OjlK/BIPjPWOP6Dr9mrph+eCWEkRDRBWNUimg1kzxrTJnZ3aCi6P4H2RkOsR8fxtUn5n09HQAgIuLCwAgKSkJKSkp6NbtvwXFrK2tERgYiNjYWL3EaGy0WYxtB283EZGOaJPI1Ktqy0SGRDGYZEYQBEyePBmvvvoq/Pz8AAApKSkAADc3N7Wybm5uqueel5+fj4yMDLVHRSaXW6K3XyXR9Xi7iYjKakXUZa3q7Z/SSceRkKkzmGRmwoQJuHDhArZu3VrsOZlMpva3IAjFthWJiIiAk5OT6uHlJX5WXFOz8u0ArerV1eIWFRERABQUFGLFwSTR9RJmd5UgGjJ1BpHMTJw4Ebt27cLhw4dRvXp11XZ3d3cAKNYKk5qaWqy1pkhoaCjS09NVjzt37kgXuBG5GS5+GvAnAObvuqD7YIjI5PnO2Se6ThffSrC3s5IgGjJ1ek1mBEHAhAkTsH37dhw6dAg+Pj5qz/v4+MDd3R1RUf/NGFlQUICYmBgEBJTc2mBtbQ1HR0e1BwFmZjJse6+V6HobYu9wdmAiEqWeFq26MgBfvatdKzKRXpOZ8ePH47vvvsP3338PBwcHpKSkICUlBbm5uQCe3l4KCQlBeHg4duzYgYSEBIwcORJyuRxDhgzRZ+hGqXUdVziIXbwJQH3ODkxEGlp96Arytah3dX53ncdCFYdek5m1a9ciPT0dQUFB8PDwUD22bdumKjNt2jSEhIRg3LhxaNmyJf755x8cOHAADg4OeozceJ0L66FVvd4rDuk4EiIyNQUFhVhy4KboeqHdfWFlZS5BRFRRGNQ8M1Ko6PPMlGTXhTuY9L34vjDxH3eGs4ONBBERkSnQZl4rJwvg/EJOjkfFGe08M1Q+Xm/iBT8tFqNs9slBCaIhIlMwaN1Rreqdmy9+cALR85jMVFC7tViMEgB8OFybiJ4Tf+cRTiSni663d+KrMDMreZoNIjGYzFRgf4UFi64jAJj7yxndB0NERkmpFNB39XHR9QY1dUbDak4SREQVEZOZCszGxgJjO3iLrrc5LoXDtYkIAFBHi+UKAGDR4HY6joQqMiYzFdyMno3gW0X8Gigcrk1EQZF/QKlFvesLtRtVSVQaJjOEA1O1Wwel0Wz2nyGqqE7ffIDkR+JnlPl8UFNYWPCrh3SLVxQB0G517ewnwJjNJyWIhogMmVIpYMB68e/9Rq7WeL1Z9ZcXJBKJyQwBeLq69gB/d9H19l95gKzsAgkiIiJDVUvLfjJ7JnfRcSRETzGZIZVP32wBWy0m4fRbEPXyQkRkElqE/a5VvfiPO+s4EqL/MJkhNefnarc+Si3OP0Nk8n6Ju4WHeeK7/Dar5sDZw0lSTGZIjZWVOea+1kB0PSWAEV8f031ARGQQFAolpvySILqeNYCdEzvoPiCiZzCZoWLeebUWOtV1Fl0vJjENF/55pPuAiEjv6szS7vbS1UVcd4mkx2SGSrRhVDtYa3F1vL7yOJRKk167lKjCqTdTu9vIF2axwy+VDyYzVKorC7VbAE7bkQ5EZHhGfR2LfC1mxnvFyx6O9ta6D4ioBExmqFRmZjLsmhCgVV12CCYyfnsv3sXBxMei65kB+HF8oO4DIioFkxl6oSbVK6GjFv1nlABGbRS/+BwRGQaFQolxW85pVfcm+8lQOWMyQy+1cZR2C8IdvPoIv5+/q+NoiKg8aNvhV5vZxInKiskMaSRZy19aH2w9B4VCm6XoiEhfvLW8Tdy/iSvkcksdR0P0ckxmSGM3w7XrEKztLzwiKn9t5mv3frUEsGxIK90GQ6QhJjOkMTMzGXaOb6tV3drsEExk8NbFXENKjnYtqYnsJ0N6xGSGRGnm5YI2NR1E1ysEEBB+QPcBEZFOFBQUYtHviVrV1fY2NJGuMJkh0X74oAPstFiQ8m7GE/xy9pbuAyKiMvOds0+repwYjwwBkxnSyqVPtPslNuXHBHYIJjIw2nb4bVfLiRPjkUFgMkNa+yssWKt67BBMZDi0TWQcrc2wZfSrOo6GSDtMZkhrNjYWGNHGQ6u62n6AEpHutF6g3Q8LGYAL83roNhiiMmAyQ2Uyr68/LGXa1W0QyoSGSF/WRl/Dv9na3fJNYodfMjBMZqjMEiO0+2DLFYCmc7koJVF5KygoxOJ9HLlEpoPJDOmEth9w6fkCh2wTlTNtRy5dm99dx5EQ6QaTGdIZbROauxlPMG3bWR1HQ0Ql0ba/2swedWBlpcWcDETlgMkM6ZS2Cc2P5+4h4Z803QZDRGq0TWSqO1lhdGA9HUdDpDtMZkjnEmZ31areayuPQakUdBwNEQHaJzIWAI6GaveeJiovTGZI5+ztrNCprrNWdWvNZIdgIl2rW4apEK6zwy8ZASYzJIkNo9ppfXFxDhoi3fGftxdPtKzLkUtkLJjMkGRuluGDkAkNUdm1Xbgfj3K1u3V7eU43HUdDJB0mMySpsvyyY0JDpL1OSw7iXpZCq7pDXvGCXG6p44iIpMNkhiTHhIaofEXsTsDNh3la1Q1uUAXh/ZvoOCIiaTGZoXJxM7yn1nVrMaEh0tjlf9LxxdFbWtXt7FsJX4xoreOIiKTHZIbKhZmZDAdCOmhVVwmg3sdMaIheRqkU0HPlUa3q2lkAX78boOOIiMoHkxkqN77uDlgzpLlWdfMLgQ4R+3UcEZFpKcvUBpcWcuQSGS8mM1SuejbxxJv+HlrVvZ2uwBufH9JxRESmoSz9yzgEm4ydXpOZP//8E71794anpydkMhl27typ9rwgCAgLC4OnpydsbW0RFBSES5cu6SdY0pnIN/1Rx8VKq7pn7uai0SzeciJ6FhMZquj0msxkZ2ejadOmWLVqVYnPR0ZGYtmyZVi1ahXi4uLg7u6Orl27IjMzs5wjJV37Y1pXaLtkXbYCaMg+NEQAmMgQAYBMEASDWAxHJpNhx44d6Nu3L4CnrTKenp4ICQnB9OnTAQD5+flwc3PD4sWLMWbMGI32m5GRAScnJ6Snp8PR0VGq8ElLZfkgrlXJEoemc2IvqriYyJApE/P9bbB9ZpKSkpCSkoJu3f77srK2tkZgYCBiY2NLrZefn4+MjAy1Bxmusnyg3nz8BLU5bJsqKCYyRP8x2GQmJSUFAODm5qa23c3NTfVcSSIiIuDk5KR6eHl5SRonlV1ZPlgLwYn1qOIpyzVfljmfiAyVwSYzRWQymdrfgiAU2/as0NBQpKenqx537tyROkTSgbL+UvRhQkMVRFkSmb0TX4WZWemfn0TGymCTGXd3dwAo1gqTmpparLXmWdbW1nB0dFR7kHEoS0IjgDMFk+krSyIzsVMdNKzmpMNoiAyHwSYzPj4+cHd3R1RUlGpbQUEBYmJiEBDAWSpNVVkSGiV4y4lMk0KhLNO1Pfu1+pjSrZ4OIyIyLHpNZrKyshAfH4/4+HgATzv9xsfH4/bt25DJZAgJCUF4eDh27NiBhIQEjBw5EnK5HEOGDNFn2CSxst5yYkJDpmT/pXuoM+t3revP7lkPo16trcOIiAyPXodmR0dHo2PHjsW2jxgxAps2bYIgCJg3bx6++OILPH78GK1bt8bq1avh5+en8TE4NNt4lTUp4YgNMnaLf7+MtTFJWtcf8ooXV8AmoyXm+9tg5pmRCpMZ48aEhiqqMZtPYP+Vh1rXDw32xZiOdXUYEVH5Mol5ZogA3nKiiunVT34vUyLToU5lJjJUoTCZIYPHhIYqkvof78HfmUqt6/doUAXfvNdGhxERGT4mM2QUdJHQKBTaf0EQlQfvGXuQV6h9/THtvbF2RGvdBURkJJjMkNEoa0JTZ9bv+OlMsm6CIdKxsrYgTuxUB6G9GukoGiLjwg7AZHTK+qHvYg2cnceOwWQYFAplmYZeA8BfYcGwsbHQUUREhoEdgMmklbWF5lE++9GQYdhz/p8yJzLJi3oxkaEKj8kMGaXkRb3KfPEyoSF9enN1NMZvjS/TPjj1ANFTTGbIaN1c1AuWZdyH94w9yMou0Ek8RJqqNWMPTt3JLtM+mMgQ/YfJDBm1xEW94GRTtsvYb0EU3tt0QkcREb2Y94w9KOu4OiYyROqYzJDROx/WA+1qOZdpH3/89RC+vO1EEkrLzNPJrU0mMkTFcTQTmYyMrHw0WfhHmffDLwvStZ7L/sDl1Pwy7cPGHPjrE16bVHFwNBNVSI721jpJRLxn7IFSadI5PpUj7xl7ypzINHK1ZiJD9AJMZsjk6CKhqTVzL87cfKCDaKiiysl5opPbSj0aVcWeyV10EBGR6eJtJjJZuvgi8Xa2QPSMYB1EQxXJpO9OYFeC9gtFFln7djP08Kumg4iIjA9vMxFBN3PRJKcp4D1jDzKyynabgCoO7xl7dJLIXF/Yg4kMkYaYzJBJu7moF3yr2JR5P00W/oG31sToICIyVSmPs3Q2EWPyol6wsODHM5GmeJuJKoRHGbnwDz+kk31dntMNcnlZp+sjU9Ji3u94mFv2VdllAJI4mo4IAG8zERXj4mirsyHXDecfQMh3x3WyLzJuRZ18dZHINPaQM5Eh0hJbZqjC0eWaTAmzu8Lezkpn+yPjMeGb49h9+ZFO9hX/cWc4O5T9diiRKWHLDNELJC/qhdY1HXSyL78FURj+1TGd7IuMQ0ZWPrxn7NFZIpO8qBcTGaIyYssMVVjnkx+hzzrd3S66Nr87rKzMdbY/Mjx9lkfh/L+6WZjU1c4Cp2Zz2D9RadgyQ6SBpt4uuBneU2f7852zD5/+flFn+yPDkZqWDe8Ze3SWyIQG12YiQ6RDbJkhAtBl8e+4/rjsnTiLHP1fe1SvzOvN2OXkPEGz+QegmxTmKbbgEWlGzPc3kxmi/5eWmYdmnxzU6T5Ph3ZEFSe5TvdJ5WPC5ljsvvJYZ/urbCPDmTDdtQQSmTomM89gMkNi6XK0EwA4WAFxM4NhY2Oh0/2SNG6mPkanZbE63ef3Y1ogwMddp/skMnVMZp7BZIa0MXHLCfx2sexT0j/rjaZVsHRwa53uk3Tn7qNMBET+qdN9WgC4Ft4TZmYyne6XqCJgMvMMJjOkrZycJ2g4/4DO9/vHR21Rx81F5/sl7eTkPEGj+Qeg6w/Chf3r4+1Xaut4r0QVB5OZZzCZobJ6c82fOHU7U+f7PTE9EO6V7HW+X9JMRlY+ui0/hJRs3XX8LnJ9YQ+urURURkxmnsFkhnQhIysfTRb+Icm+o6e0g3dVZ0n2TcWlZeahQ+RBZDzR/b5fb1QJnw8L0P2OiSogJjPPYDJDujRm01Hs/ytdkn1/854fOtSpKcm+SZqOvc/iAqREusVk5hlMZkjXpJh75Flj23kipGtjjn7Skfg7Kei7+oxk+w/rXRcj2/lKtn+iiorJzDOYzJBUUtOy8cqiaMn2LwOwP6QNfN0rS3YMU1VQUIivjl1D5P6bkh2jshVwcg77xhBJhcnMM5jMkNQ6R/6BG4/yJT3G+nf80KVuDQ7xfYm/7j1A989OSn6cszM7wcXRVvLjEFVkTGaewWSGysOjjFz4hx+S/DiO5sDeyVwq4VkP0nMwbEMsrvwrbUIJsLM2UXliMvMMJjNUnh6k56BlxOFyO96+D1ujvkeVcjueocjKLsCUbcew/1pOuRyvhgPw58e9yuVYRPQUk5lnMJkhfZB65ExJto/zh38Nj3I9ZnlKvp+GXsuPQYJpYUplbw78OZ23lIj0gcnMM5jMkD6F/xSL9Wd0t1ihplp62uCrd9rB2cGm3I+tK3l5CizdF48vT/yrl+MnzO4KezsrvRybiJjMqGEyQ/pWUFCIVxfsQ6oEk7RpytEC2B3yKmpUcdJfEC+Rl6fA8j8u4oujd/Uax6HJAajlWkmvMRARkxk1TGbIUGRk5ePtr47gQor0HVU1UdUW2DFBP52J0zLz8ME3sTh+J7fcj12SyrYyxEztwpYYIgPCZOYZTGbI0CgUSnxz8irm/ybdHCi6UNvZAlvHvgpXZzvRdZVKAceu38PIDedQKEFsumJrDpwM7QJHe2t9h0JEzzG5ZGbNmjVYsmQJ7t27h0aNGmHFihVo3769RnWZzJAhS/gnFa+tjNN3GBVOdXtg94edjbpPEZGpE/P9bfDzpW/btg0hISFYs2YN2rVrhy+++AI9evTA5cuXUaNGDX2HR1QmftVckbyoF1IeZ6HN4hh9h2PyZvWojeFt68LKylzfoRCRDhl8y0zr1q3h7++PtWvXqrY1aNAAffv2RURExEvrs2WGjMmD9BwM/+ooLt/XY29hE7R7Yiv4VXPVdxhEJILJtMwUFBTgzJkzmDFjhtr2bt26ITa25Dk88vPzkZ//XwfLjIwMSWMk0qUqTnLsndINAG9BlVUnHzlWDA1gfxiiCsCgk5kHDx6gsLAQbm5uatvd3NyQkpJSYp2IiAjMmzevPMIjklTRLSilUsDWM3/h418Mu8OwIfCUA9snBsK9kr2+QyGicmTQyUwRmUx9cT1BEIptKxIaGorJkyer/s7IyICXl5ek8RFJycxMhqGtGmBoqwbIyMrH/348hf3X2OL4rF0TWqJJdbeXFyQik2TQyUyVKlVgbm5erBUmNTW1WGtNEWtra1hbs1mZTJOjvTW+ePe/kXzX/32E11ceR45Cj0HpgZ+rFTaNaocqTnJ9h0JEBsCgkxkrKyu0aNECUVFR6Nevn2p7VFQU+vTpo8fIiAxDHTcXXF74dAHE1LRsDFwZjVvZ+o1JCpYA9oS0ga97ZX2HQkQGyKCTGQCYPHkyhg0bhpYtW6Jt27ZYv349bt++jbFjx+o7NCKD4upsh5jZ/63snJGVj2k/n8G+v8p/baiysgCwu4KuCE5E4hl8MvPWW2/h4cOHmD9/Pu7duwc/Pz/s3bsXNWvW1HdoRAbN0d4a60YGqG1TKJTYfOIvLNidpKeoiqtqBfwa0gGeLg76DoWIjJTBzzNTVpxnhkhz11IeInjFCej6Q4HzvBCRWCYzzwwRlS9f98pIWtTr5QWJiAyImb4DICIiIioLJjNERERk1JjMEBERkVFjMkNERERGjckMERERGTUmM0RERGTUmMwQERGRUWMyQ0REREaNyQwREREZNZOfAbhotYaMjAw9R0JERESaKvre1mTVJZNPZjIzMwEAXl5eeo6EiIiIxMrMzISTk9MLy5j8QpNKpRJ3796Fg4MDZDKZvsPRu4yMDHh5eeHOnTtceFNCPM/lg+e5fPA8lw+eZ3WCICAzMxOenp4wM3txrxiTb5kxMzND9erV9R2GwXF0dOSbpRzwPJcPnufywfNcPnie//OyFpki7ABMRERERo3JDBERERk1JjMVjLW1NebOnQtra2t9h2LSeJ7LB89z+eB5Lh88z9oz+Q7AREREZNrYMkNERERGjckMERERGTUmM0RERGTUmMwQERGRUWMyQ8jPz0ezZs0gk8kQHx+v73BMSnJyMkaNGgUfHx/Y2tqidu3amDt3LgoKCvQdmtFbs2YNfHx8YGNjgxYtWuDIkSP6DsnkREREoFWrVnBwcICrqyv69u2Lq1ev6jsskxcREQGZTIaQkBB9h2I0mMwQpk2bBk9PT32HYZL++usvKJVKfPHFF7h06RKWL1+OdevWYebMmfoOzaht27YNISEh+Pjjj3Hu3Dm0b98ePXr0wO3bt/UdmkmJiYnB+PHjceLECURFRUGhUKBbt27Izs7Wd2gmKy4uDuvXr0eTJk30HYpR4dDsCu7333/H5MmT8csvv6BRo0Y4d+4cmjVrpu+wTNqSJUuwdu1a3Lx5U9+hGK3WrVvD398fa9euVW1r0KAB+vbti4iICD1GZtru378PV1dXxMTEoEOHDvoOx+RkZWXB398fa9aswcKFC9GsWTOsWLFC32EZBbbMVGD//vsv3n//fXz77beQy+X6DqfCSE9Ph4uLi77DMFoFBQU4c+YMunXrpra9W7duiI2N1VNUFUN6ejoA8PqVyPjx49GrVy906dJF36EYHZNfaJJKJggCRo4cibFjx6Jly5ZITk7Wd0gVwo0bN7By5UosXbpU36EYrQcPHqCwsBBubm5q293c3JCSkqKnqEyfIAiYPHkyXn31Vfj5+ek7HJPzww8/4OzZs4iLi9N3KEaJLTMmJiwsDDKZ7IWP06dPY+XKlcjIyEBoaKi+QzZKmp7nZ929exfdu3fHwIED8d577+kpctMhk8nU/hYEodg20p0JEybgwoUL2Lp1q75DMTl37tzBhx9+iO+++w42Njb6Dscosc+MiXnw4AEePHjwwjLe3t4YNGgQfvvtN7UP/8LCQpibm2Po0KHYvHmz1KEaNU3Pc9EH0927d9GxY0e0bt0amzZtgpkZf0doq6CgAHK5HD/99BP69eun2v7hhx8iPj4eMTExeozONE2cOBE7d+7En3/+CR8fH32HY3J27tyJfv36wdzcXLWtsLAQMpkMZmZmyM/PV3uOimMyU0Hdvn0bGRkZqr/v3r2L4OBg/Pzzz2jdujWqV6+ux+hMyz///IOOHTuiRYsW+O677/ihpAOtW7dGixYtsGbNGtW2hg0bok+fPuwArEOCIGDixInYsWMHoqOjUbduXX2HZJIyMzNx69YttW3vvPMO6tevj+nTp/O2ngbYZ6aCqlGjhtrf9vb2AIDatWszkdGhu3fvIigoCDVq1MCnn36K+/fvq55zd3fXY2TGbfLkyRg2bBhatmyJtm3bYv369bh9+zbGjh2r79BMyvjx4/H999/j119/hYODg6pPkpOTE2xtbfUcnelwcHAolrDY2dmhcuXKTGQ0xGSGSEIHDhzA9evXcf369WJJIhtFtffWW2/h4cOHmD9/Pu7duwc/Pz/s3bsXNWvW1HdoJqVo6HtQUJDa9o0bN2LkyJHlHxBRKXibiYiIiIwaeyESERGRUWMyQ0REREaNyQwREREZNSYzREREZNSYzBAREZFRYzJDRERERo3JDBERERk1JjNEZPRkMhl27typ7zCISE+YzBCRzhQWFiIgIABvvPGG2vb09HR4eXlh1qxZqm0FBQWoUqUKFi5cWOK+IiIiUKVKFRQUFEgaMxEZPyYzRKQz5ubm2Lx5M/bt24ctW7aotk+cOBEuLi6YM2eOapuVlRXefvttbNq0qcSlHTZu3Ihhw4bBysqqXGInIuPFZIaIdKpu3bqIiIjAxIkTcffuXfz666/44YcfsHnz5mKJyahRo3Djxg38+eefatuPHDmCxMREjBo1CnFxcejatSuqVKkCJycnBAYG4uzZs6UePzo6GjKZDGlpaapt8fHxkMlkSE5OVm2LjY1Fhw4dYGtrCy8vL0yaNAnZ2dmq59esWYO6devCxsYGbm5uGDBgQNlODBFJhskMEencxIkT0bRpUwwfPhyjR4/GnDlz0KxZs2LlGjdujFatWmHjxo1q2zds2IBXXnkFfn5+yMzMxIgRI3DkyBGcOHECdevWRc+ePZGZmal1fBcvXkRwcDD69++PCxcuYNu2bTh69CgmTJgAADh9+jQmTZqE+fPn4+rVq9i3bx86dOig9fGISGICEZEErly5IgAQGjduLDx58qTUcmvXrhXs7OyEzMxMQRAEITMzU7CzsxO++OKLEssrFArBwcFB+O2331TbAAg7duwQBEEQDh8+LAAQHj9+rHr+3LlzAgAhKSlJEARBGDZsmDB69Gi1/R45ckQwMzMTcnNzhV9++UVwdHQUMjIytHjlRFTe2DJDRJLYsGED5HI5kpKS8PfffwMAxo4dC3t7e9UDAAYPHgylUolt27YBALZt2wZBEDBo0CAAQGpqKsaOHQtfX184OTnByckJWVlZuH37ttaxnTlzBps2bVKLJTg4GEqlEklJSejatStq1qyJWrVqYdiwYdiyZQtycnLKeEaISCpMZohI544fP47ly5fj119/Rdu2bTFq1CgIgoD58+cjPj5e9QAAJycnDBgwQHWraePGjRgwYAAcHR0BACNHjsSZM2ewYsUKxMbGIj4+HpUrVy51lJOZ2dOPNeGZTsVPnjxRK6NUKjFmzBi1WM6fP4/ExETUrl0bDg4OOHv2LLZu3QoPDw/MmTMHTZs2VeuHQ0SGw0LfARCRacnNzcWIESMwZswYdOnSBb6+vvDz88MXX3yBsWPHwtXVtVidUaNGISgoCLt378axY8cQHh6ueu7IkSNYs2YNevbsCQC4c+cOHjx4UOrxq1atCgC4d+8eKlWqBACqxKmIv78/Ll26hDp16pS6HwsLC3Tp0gVdunTB3Llz4ezsjEOHDqF///4anwsiKh9smSEinZoxYwaUSiUWL14MAKhRowaWLl2K//3vf2qjiZ4VGBiIOnXqYPjw4ahTp45aZ9s6derg22+/xZUrV3Dy5EkMHToUtra2pR6/Tp068PLyQlhYGK5du4Y9e/Zg6dKlamWmT5+O48ePY/z48YiPj0diYiJ27dqFiRMnAgB2796Nzz//HPHx8bh16xa++eYbKJVK1KtXr4xnh4ikwGSGiHQmJiYGq1evxqZNm2BnZ6fa/v777yMgIEB1u6kk7777Lh4/fox3331XbfuGDRvw+PFjNG/eHMOGDcOkSZNKbN0pYmlpia1bt+Kvv/5C06ZNsXjx4mIT8zVp0gQxMTFITExE+/bt0bx5c8yePRseHh4AAGdnZ2zfvh2dOnVCgwYNsG7dOmzduhWNGjXS9tQQkYRkQmmfLERERERGgC0zREREZNSYzBAREZFRYzJDRERERo3JDBERERk1JjNERERk1JjMEBERkVFjMkNERERGjckMERERGTUmM0RERGTUmMwQERGRUWMyQ0REREaNyQwREREZtf8D/16A9kKn9B0AAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Quadratic function\n",
"import numpy as np\n",
"\n",
"def quadratic(x, a, b, c):\n",
" return a * x**2 + b * x + c\n",
"\n",
"a = 2 # Coefficient of x^2\n",
"b = 3 # Coefficient of x\n",
"c = 1 # Constant term\n",
"\n",
"x_min = -5\n",
"x_max = 5\n",
"num_samples = 10000 # Number of random samples\n",
"\n",
"x_values = np.random.uniform(low=x_min, high=x_max, size=num_samples)\n",
"y_values = quadratic(x_values, a, b, c)\n",
"\n",
"theoretical_x = np.linspace(x_min, x_max, 100) # 100 points for smooth curve\n",
"theoretical_y = quadratic(theoretical_x, a, b, c)\n",
"\n",
"plt.scatter(x_values, y_values, alpha=0.5, label=\"Simulated Points\")\n",
"plt.plot(theoretical_x, theoretical_y, label=\"Theoretical Curve\")\n",
"plt.xlabel(\"X-Values\")\n",
"plt.ylabel(\"Y-Values\")\n",
"plt.title(\"Monte Carlo Simulation of a Quadratic Function\")\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "4b0f9878",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Estimated integral: 2.5268902515977848e-05\n",
"Analytical solution (optional): 0.25\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHFCAYAAAAOmtghAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABbdklEQVR4nO3dd1hT5/8//mcgQNgoshQEHChuhTqruAqOr9WqFWvrqFpr3drauldrHZ1u7XC11tqhvq1SFRd1T7QqWBVRtEIRVECZIffvD3/kY2TlQAYJz8d15brKyX3f55WTNHl6zn3OkQkhBIiIiIjMhIWxCyAiIiLSJYYbIiIiMisMN0RERGRWGG6IiIjIrDDcEBERkVlhuCEiIiKzwnBDREREZoXhhoiIiMwKww0RERGZFYYbKtXGjRshk8kgk8lw5MiRQs8LIVCnTh3IZDJ07NhRr7WcOHEC8+bNw+PHj/Uy/q1btzBu3DgEBATA1tYWdnZ2aNiwIWbNmoV///1Xp+uaN28eZDKZzsYreJ/OnTsnuW9mZibmzZtX5PtbUUVERGDevHlFPufn54dhw4YZtB6poqOjERISAmdnZ8hkMnz99dcltk9PT8fChQsRHBwMJycn2NjYwM/PD8OHD8eFCxfKVINMJsO4ceNKbXfkyJFi//+X6vbt2+rvkxcfwcHB5R6/PEr6funYsaPev99Id+TGLoBMh6OjI77//vtC/4NHRUUhLi4Ojo6Oeq/hxIkTmD9/PoYNGwYXFxedjr17924MHDgQ1apVw7hx49C8eXPIZDJcvnwZ69evx549exAdHa3TdVYUmZmZmD9/PgCYzBd4REQEVq1aVWTA2bFjB5ycnAxflATDhw/H06dP8fPPP6NKlSrw8/Mrtm1cXBxCQ0ORnJyM0aNHY/78+XBwcMDt27fxyy+/ICgoCI8fP4azs7Neam3RogVOnjyJBg0a6GzM8ePHY9CgQRrLHBwcdDZ+WZT0/bJ69WrjFEVlwnBDWgsPD8eWLVuwatUqjR+O77//Hm3atEF6eroRqyuf+Ph4DBw4EAEBATh8+LDGj0Tnzp0xYcIE7NixQyfryszMhJ2dnU7GMie63C7NmzfXyTj6dOXKFbzzzjvo3r17ie3y8/Px2muvISUlBSdPnkSjRo3Uz4WEhGDo0KH4888/YWVlpbdanZyc0Lp1a52OWbNmTZ2PqU+6DHakfzwsRVp74403AABbt25VL0tLS8Pvv/+O4cOHF9nn4cOHGDNmDGrUqAFra2vUqlULM2fORE5Ojka7gt3jP/zwAwIDA2FnZ4emTZti9+7d6jbz5s3D1KlTAQD+/v5FHirbtm0b2rRpA3t7ezg4OCAsLEyrvS1ffvklnj59itWrVxf5r1+ZTIa+ffuq/46MjETv3r3h7e0NhUKBOnXq4N1330VKSopGv4JDTxcuXED//v1RpUoV1K5du9g6VCoVli5divr168PGxgbu7u4YMmQI7t27V+prKMqwYcPg4OCAmzdvokePHnBwcICPjw/ef/999Xtw+/ZtuLm5AQDmz5+v3q7PH9a5ceMGBg0aBHd3d9jY2CAwMBCrVq0qtL6rV68iNDQUdnZ2cHNzw9ixY7Fnz55C71PHjh3RqFEj/PXXX2jbti3s7OzUn6Ft27YhNDQUXl5esLW1RWBgIKZNm4anT59qvK6C9T9/WOP27dsAij4slZCQgLfeekvjNXzxxRdQqVTqNgWHTD7//HN8+eWX8Pf3h4ODA9q0aYNTp05ptc2vXLmC3r17o0qVKlAoFGjWrBk2bdqkfr7g8KFSqcSaNWvUtRdn586duHz5MqZPn64RbJ7XvXt3dTAcNmxYkXuBSjoMum7dOgQEBMDGxgYNGjTAzz//rPF8cYelTp8+jV69esHV1RUKhQK1a9fGpEmTin0t2iruENCLr03q+1VSvaV9vxRVky6/30jHBFEpNmzYIACIs2fPisGDB4uWLVuqn1uzZo2wt7cX6enpomHDhiIkJET9XFZWlmjSpImwt7cXn3/+udi/f7+YPXu2kMvlokePHhrrACD8/PxEy5YtxS+//CIiIiJEx44dhVwuF3FxcUIIIe7evSvGjx8vAIjt27eLkydPipMnT4q0tDQhhBALFy4UMplMDB8+XOzevVts375dtGnTRtjb24urV6+W+BoDAgKEh4eH1ttkzZo1YtGiRWLXrl0iKipKbNq0STRt2lTUq1dP5ObmqtvNnTtXABC+vr7io48+EpGRkWLnzp0azz1v1KhRAoAYN26c2Lt3r1i7dq1wc3MTPj4+4sGDByXW9Pz7VGDo0KHC2tpaBAYGis8//1wcOHBAzJkzR8hkMjF//nwhhBDZ2dli7969AoAYMWKEervevHlTCCHE1atXhbOzs2jcuLHYvHmz2L9/v3j//feFhYWFmDdvnnpd9+/fF66urqJmzZpi48aNIiIiQgwePFj4+fkJAOLw4cPqtiEhIaJq1arCx8dHrFixQhw+fFhERUUJIYT4+OOPxVdffSX27Nkjjhw5ItauXSv8/f1Fp06d1P1v3rwp+vfvLwCo6z158qTIzs4WQgjh6+srhg4dqm6fnJwsatSoIdzc3MTatWvF3r17xbhx4wQA8d5776nbxcfHqz+L3bp1Ezt37hQ7d+4UjRs3FlWqVBGPHz8u8T24du2acHR0FLVr1xabN28We/bsEW+88YYAIJYsWaKu5eTJkwKA6N+/v7r24hR8JmJjY0tcd4GhQ4cKX1/fQsuL+rwBED4+PqJBgwZi69atYteuXaJbt24CgPj111/V7Q4fPlzoPdy7d6+wsrISTZo0ERs3bhSHDh0S69evFwMHDiyxvoJtvGTJEpGXl6fxUKlUQohnn4/nv0uKe21S3q/S6i3t++XFmnT9/Ua6xXBDpXr+R7PgS+7KlStCCCFeeuklMWzYMCGEKBRu1q5dKwCIX375RWO8JUuWCABi//796mUAhIeHh0hPT1cvS0pKEhYWFmLRokXqZZ999pkAIOLj4zXGTEhIEHK5XIwfP15jeUZGhvD09BQDBgwo8TUqFArRunXr0jdGEVQqlcjLyxN37twRAMT//vc/9XMFPyhz5swp1O/FH5vY2FgBQIwZM0aj3enTpwUAMWPGjBLrKC7cFPUe9OjRQ9SrV0/994MHDwQAMXfu3ELjhoWFCW9vb/WXfIFx48YJhUIhHj58KIQQYurUqUImkxUKkmFhYUWGGwDi4MGDJb6mgm0bFRUlAIhLly6pnxs7dmyhH+sCL4abadOmCQDi9OnTGu3ee+89IZPJxD///COE+L8fy8aNGwulUqlud+bMGQFAbN26tcR6Bw4cKGxsbERCQoLG8u7duws7OzuNH1sAYuzYsSWOJ4RQh42C4FYaqeHG1tZWJCUlqZcplUpRv359UadOHfWyosJN7dq1Re3atUVWVpZWdRUo2MZFPSIjI4UQ0sONNu+XNvUW9/1SVE36+H4j3eFhKZIkJCQEtWvXxvr163H58mWcPXu22ENShw4dgr29Pfr376+xvOBwwcGDBzWWd+rUSWNSsoeHB9zd3XHnzp1S69q3bx+USiWGDBkCpVKpfigUCoSEhOj8LKCCiZ0+Pj6Qy+WwsrKCr68vACA2NrZQ+379+pU65uHDhwGg0OGUli1bIjAwsND20pZMJkOvXr00ljVp0kSr7ZqdnY2DBw/itddeg52dnca27dGjB7Kzs9W7/6OiotCoUaNCcxMKDme+qEqVKujcuXOh5bdu3cKgQYPg6ekJS0tLWFlZISQkBEDR21Ybhw4dQoMGDdCyZUuN5cOGDYMQAocOHdJY3rNnT1haWqr/btKkCQCUus0OHTqELl26wMfHp9B6MjMzcfLkyTLVr09dunSBh4eH+m9LS0uEh4fj5s2bxR4OvX79OuLi4jBixAgoFIoyrXfixIk4e/asxqNVq1ZlGqu090sX9b7IkN9vJB0nFJMkMpkMb7/9NpYvX47s7GwEBASgffv2RbZNTU2Fp6dnoeP87u7ukMvlSE1N1Vju6upaaAwbGxtkZWWVWtd///0HAHjppZeKfN7CouQcX7NmTcTHx5e6HuDZvJjQ0FDcv38fs2fPRuPGjWFvbw+VSoXWrVsXWa+Xl1ep4xZsj6LaVq9evcxfgnZ2doW+0G1sbJCdna1VTUqlEitWrMCKFSuKbFMwzyg1NRX+/v6Fnn/+h/N5Rb3OJ0+eoH379lAoFPjkk08QEBAAOzs73L17F3379tXqs1Dc6yhqHkr16tXVzz/vxc+ijY0NAJS6/tTU1GLfv6LWo42aNWsCeDbpvX79+pL7l8bT07PYZampqfD29i70/IMHDwCgyOe05e3trbNTv0t7v3RR74sM+f1G0jHckGTDhg3DnDlzsHbtWixcuLDYdq6urjh9+jSEEBpfAMnJyVAqlahWrZrOaioY67ffflPvQZEiLCwMK1aswKlTp0o9g+PKlSu4dOkSNm7ciKFDh6qX37x5s9g+2lzPpuDLLzExsdCX8P3793W6vbRVpUoVWFpaYvDgwRg7dmyRbQoCjaurqzpkPi8pKanIfkVtk0OHDuH+/fs4cuSIem8NgHJf18jV1RWJiYmFlt+/fx8AdLZt9bGesLAwfPPNN9i5cyemTZtWanuFQlFoQiuAQpPdCxT1/hQsK+oHGYB6AnpZJ7qXRqFQIC0trdDy4l5DafRRryG/30g6HpYiyWrUqIGpU6eiV69eGj/uL+rSpQuePHmCnTt3aizfvHmz+nmpivsXdFhYGORyOeLi4hAcHFzkoySTJ0+Gvb09xowZU+SXqhBCfSp4wRdZQS0F1q1bJ/n1PK/gEM2PP/6osfzs2bOIjY0t0/bSVnHb1c7ODp06dUJ0dDSaNGlS5HYt+AEMCQnBlStXEBMTozHGi2felETKttV2bwrw7LMWExNT6GJ3mzdvhkwmQ6dOnbSusbT1FAS0F9djZ2dXplOfe/fujcaNG2PRokW4cuVKkW327duHzMxMAM/OFEtOTtYImrm5udi3b1+RfQ8ePKjRNj8/H9u2bUPt2rWL3dMREBCgPjxdVJAqLz8/P1y/fl1j7NTUVJw4caJM42lbr9TPlK6/30h3uOeGymTx4sWlthkyZAhWrVqFoUOH4vbt22jcuDGOHTuGTz/9FD169EDXrl0lr7dx48YAgGXLlmHo0KGwsrJCvXr14OfnhwULFmDmzJm4desWunXrhipVquC///7DmTNnYG9vr75IXVH8/f3x888/Izw8HM2aNVNfxA8AYmJisH79eggh8Nprr6F+/fqoXbs2pk2bBiEEqlatij/++AORkZGSX8/z6tWrh1GjRmHFihWwsLBA9+7dcfv2bcyePRs+Pj6YPHlyucYviaOjI3x9ffG///0PXbp0QdWqVVGtWjX4+flh2bJlePnll9G+fXu899578PPzQ0ZGBm7evIk//vhDPV9l0qRJWL9+Pbp3744FCxbAw8MDP/30E65duwag9EODANC2bVtUqVIFo0ePxty5c2FlZYUtW7bg0qVLhdoWfBaWLFmC7t27w9LSEk2aNIG1tXWhtpMnT8bmzZvRs2dPLFiwAL6+vtizZw9Wr16N9957DwEBAeXZfGpz587F7t270alTJ8yZMwdVq1bFli1bsGfPHixdurRMF9mztLTEjh07EBoaijZt2uC9995Dp06dYG9vjzt37uC3337DH3/8gUePHgF4dj2qOXPmYODAgZg6dSqys7OxfPly5OfnFzl+tWrV0LlzZ8yePRv29vZYvXo1rl27VmooXbVqFXr16oXWrVtj8uTJqFmzJhISErBv3z5s2bJF8ut83uDBg7Fu3Tq89dZbeOedd5CamoqlS5eW68KM2tRb3PdLURco1cf3G+mQMWczk2ko6iycorx4tpQQQqSmporRo0cLLy8vIZfLha+vr5g+fXqhMz9QzJkjL571IoQQ06dPF9WrVxcWFhaFzuDYuXOn6NSpk3BychI2NjbC19dX9O/fXxw4cECr1xoXFyfGjBkj6tSpI2xsbIStra1o0KCBmDJlisYZFDExMeKVV14Rjo6OokqVKuL1118XCQkJhc44KjhDpajTuIs6eyU/P18sWbJEBAQECCsrK1GtWjXx1ltvibt375Zae3FnS9nb22u17gMHDojmzZsLGxsbAUBju8fHx4vhw4eLGjVqCCsrK+Hm5ibatm0rPvnkE40xrly5Irp27SoUCoWoWrWqGDFihNi0aVOhM51CQkJEw4YNi3wdJ06cEG3atBF2dnbCzc1NjBw5Uly4cEEAEBs2bFC3y8nJESNHjhRubm5CJpNpnOVS1Ofmzp07YtCgQcLV1VVYWVmJevXqic8++0zk5+drvE4A4rPPPitU14vvbXEuX74sevXqJZydnYW1tbVo2rSpRt3Pj6fN2VIFHj9+LD7++GPRokUL4eDgIKysrETNmjXFW2+9JY4fP67RNiIiQjRr1kzY2tqKWrVqiZUrVxZ7ttTYsWPF6tWrRe3atYWVlZWoX7++2LJli0a7os6WEkKIkydPiu7duwtnZ2dhY2MjateuLSZPnlzi6yhpGz9v06ZNIjAwUCgUCtGgQQOxbdu2Ys+W0vb90qbe4r5fijqDSx/fb6QbMiGEMGCWIqJKZtSoUdi6dStSU1OL3KtCRKRrPCxFRDqzYMECVK9eHbVq1cKTJ0+we/dufPfdd5g1axaDDREZDMMNEemMlZUVPvvsM9y7dw9KpRJ169bFl19+iYkTJxq7NCKqRHhYioiIiMwKTwUnIiIis8JwQ0RERGaF4YaIiIjMSqWbUKxSqXD//n04OjpqdUl8IiIiMj4hBDIyMlC9evVSLwpa6cLN/fv3C92xl4iIiEzD3bt3S70JaqULNwWX0b579265LuVNREREhpOeng4fH58ib4fxokoXbgoORTk5OTHcEBERmRhtppRwQjERERGZFYYbIiIiMisMN0RERGRWKt2cG23l5+cjLy/P2GUQFcnKygqWlpbGLoOIqEJiuHmBEAJJSUl4/PixsUshKpGLiws8PT15vSYiohcw3LygINi4u7vDzs6OPxxU4QghkJmZieTkZACAl5eXkSsiIqpYGG6ek5+frw42rq6uxi6HqFi2trYAgOTkZLi7u/MQFRHRczih+DkFc2zs7OyMXAlR6Qo+p5wbRkSkieGmCDwURaaAn1MioqLxsBQRERHpRG5uLnZcSkLi4yx4udjitaaesLa2NngdRt1z89dff6FXr16oXr06ZDIZdu7cWWqfqKgoBAUFQaFQoFatWli7dq3+C61Ejhw5AplMVuLZYhs3boSLi4vBajKUYcOGoU+fPsYug4jIJK05fB0vLz2MGdsvY9nBm5i14zI6fBaFNUduGLwWo4abp0+fomnTpli5cqVW7ePj49GjRw+0b98e0dHRmDFjBiZMmIDff/9dz5WahqSkJIwfPx61atWCjY0NfHx80KtXLxw8eFCn6wkPD8f169fL3H/jxo2QyWSFHt99950Oqyze7du3IZPJcPHiRY3ly5Ytw8aNGw1SAxGROflsbyw+23cDyU+UyBeAAJCnApIycvFV5HWDBxyjHpbq3r07unfvrnX7tWvXombNmvj6668BAIGBgTh37hw+//xz9OvXT09Vmobbt2+jXbt2cHFxwdKlS9GkSRPk5eVh3759GDt2LK5du6azddna2qrP1ikrJycn/PPPPxrLnJ2dyzVmeRl7/UREpuheSjpWHblV7PO5+cDaqDiMaOtrsENUJjWh+OTJkwgNDdVYFhYWhnPnzhV7xkhOTg7S09M1HuZozJgxkMlkOHPmDPr374+AgAA0bNgQU6ZMwalTpwAUvcfi8ePHkMlkOHLkiMZ4x48fR9OmTaFQKNCqVStcvnxZ/VxRh6V27dqF4OBgKBQKVKtWDX379i2xXplMBk9PT42Hra1tkWPv3LlTY/LsvHnz0KxZM/zwww/w8/ODs7MzBg4ciIyMDHUblUqFJUuWoE6dOrCxsUHNmjWxcOFCAIC/vz8AoHnz5pDJZOjYsSOAwoelcnJyMGHCBLi7u0OhUODll1/G2bNn1c8XHMI7ePAggoODYWdnh7Zt2xYKbURE5koIgT6rjpfaLi0rH7+f/9cAFT1jUuEmKSkJHh4eGss8PDygVCqRkpJSZJ9FixbB2dlZ/fDx8ZG0TiEEMnOVRnkIIbSq8eHDh9i7dy/Gjh0Le3v7Qs+XZX7M1KlT8fnnn+Ps2bNwd3fHq6++WmyA3LNnD/r27YuePXsiOjpa/WOvT3Fxcdi5cyd2796N3bt3IyoqCosXL1Y/P336dCxZsgSzZ89GTEwMfvrpJ/Vn58yZMwCAAwcOIDExEdu3by9yHR9++CF+//13bNq0CRcuXECdOnUQFhaGhw8farSbOXMmvvjiC5w7dw5yuRzDhw/X06smIqpYNh29gZQslVZtT995WHojHTG5s6VePP21IAAUd1rs9OnTMWXKFPXf6enpkgJOVl4+GszZV4ZKyy9mQRjsrEt/i27evAkhBOrXr6+zdc+dOxevvPIKAGDTpk3w9vbGjh07MGDAgEJtFy5ciIEDB2L+/PnqZU2bNi1x/LS0NDg4OKj/dnBwQFJSktb1qVQqbNy4EY6OjgCAwYMH4+DBg1i4cCEyMjKwbNkyrFy5EkOHDgUA1K5dGy+//DIAwM3NDQDg6uoKT0/PIsd/+vQp1qxZg40bN6oPnX777beIjIzE999/j6lTp2q8/pCQEADAtGnT0LNnT2RnZ0OhUGj9eoiITI1SqcS8CO3n0tgY8GKjJhVuPD09C/0AJicnQy6XF3tFYRsbG9jY2BiiPKMpLeCVRZs2bdT/XbVqVdSrVw+xsbFFtr148SLeeecdSeM7OjriwoUL6r8tLKTtRPTz81MHG+DZLQgKbkcQGxuLnJwcdOnSRdKYz4uLi0NeXh7atWunXmZlZYWWLVsW2g5NmjTRqAN49rmsWbNmmddPRFTRLdlzRVL70EA3PVVSmEmFmzZt2uCPP/7QWLZ//34EBwfDyspKL+u0tbJEzIIwvYytzbq1UbduXchkMsTGxpZ4KnNBgHj+cJeUq9sWF57KMrnYwsICderUKXL5i4fjiqrxxfdbJpNBpVKVuZ4XFRcYhRCFlj1fS8FzBbUQEZkjpVKJ705qP4fGAkBIfY9S2+mKUefcPHnyBBcvXlRPcI2Pj8fFixeRkJAA4NkhpSFDhqjbjx49Gnfu3MGUKVMQGxuL9evX4/vvv8cHH3ygtxplMhnsrOVGeWi7J6Zq1aoICwvDqlWr8PTp00LPF1yzpuBwTGJiovq5F0+HLlAwCRkAHj16hOvXrxd72KtJkyY6O93czc0NGRkZGq+juBqLU7duXdja2hZbU8Fs/fz8/GLHqFOnDqytrXHs2DH1sry8PJw7dw6BgYGS6iEiMjeHY+5Du1mhz/RsVA1yueH2pxh1z825c+fQqVMn9d8Fc2OGDh2KjRs3IjExUR10gGdnuURERGDy5MlYtWoVqlevjuXLl1f608ABYPXq1Wjbti1atmyJBQsWoEmTJlAqlYiMjMSaNWsQGxsLW1tbtG7dGosXL4afnx9SUlIwa9asIsdbsGABXF1d4eHhgZkzZ6JatWrF7hWaO3cuunTpgtq1a2PgwIFQKpX4888/8eGHH0p+Ha1atYKdnR1mzJiB8ePH48yZM5KvPaNQKPDRRx/hww8/hLW1Ndq1a4cHDx7g6tWrGDFiBNzd3WFra4u9e/fC29sbCoWi0Gng9vb2eO+99zB16lRUrVoVNWvWxNKlS5GZmYkRI0ZIfl1EROZk/M+XS2/0nM9fb6afQoph1HDTsWPHEs8IKupHLSQkRGOuBj3j7++PCxcuYOHChXj//feRmJgINzc3BAUFYc2aNep269evx/DhwxEcHIx69eph6dKlhU6vB4DFixdj4sSJuHHjBpo2bYpdu3YVe32Cjh074tdff8XHH3+MxYsXw8nJCR06dCjT66hatSp+/PFHTJ06Fd988w26du2KefPmYdSoUZLGmT17NuRyOebMmYP79+/Dy8sLo0ePBgDI5XIsX74cCxYswJw5c9C+fftCp8IDz7aBSqXC4MGDkZGRgeDgYOzbtw9VqlQp02sjIjIHaWlpyJZw5L2Vj6PB577KhLbnG5uJ9PR0ODs7Iy0tDU5OThrPZWdnIz4+Hv7+/jzThSo8fl6JyBjafbwH/xaeAVGsf+Z31Um4Ken3+0UmdZ0bIiIiMp7c3FxJwaadr+H32gAMN0RERKSlab9FS2q/YURrPVVSMoYbIiIiKpVSqcT2v4u+G0BR/BwtDXYvqRcx3BAREVGpPvz5jKT2P7zTUk+VlI7hhoiIiEqUl5eH7Vcead3ezhLwdjPemaUMN0RERFSidzdL22uzZUSQTm8JJBXDDRERERUrJycHh248ltSnmb/hbrVQFIYbIiIiKtbyyGuS2s/oXNOoe20AhhsiIiIqhhACq47dk9Tn7U5F34fQkBhuSCf8/Pzw9ddfG7uMCofbhYhM2aX4/yS179vEHVZWVnqqRnsMN2Zi2LBhkMlkkMlkkMvlqFmzJt577z08eqT97HZT9PTpU3z00UeoVasWFAoF3Nzc0LFjR+zevdvYpRERmTQhBN5af15SnyUGvkFmcYx640xzJoTA48w85ChVsJFbwMXOSu/HILt164YNGzZAqVQiJiYGw4cPx+PHj7F161a9rteYRo8ejTNnzmDlypVo0KABUlNTceLECaSmphq7NCIik/bvg8d4otS+fUtv+wqx1wbgnhu9SE7PxuFrD7D77/vYc/k+dv99H4evPUByerZe12tjYwNPT094e3sjNDQU4eHh2L9/v/r5/Px8jBgxAv7+/rC1tUW9evWwbNkyjTGGDRuGPn364PPPP4eXlxdcXV0xduxY5OXl/d/rS05Gr169YGtrC39/f2zZsqVQLQkJCejduzccHBzg5OSEAQMG4L///m/35rx589CsWTOsX78eNWvWhIODA9577z3k5+dj6dKl8PT0hLu7OxYuXFjia/7jjz8wY8YM9OjRA35+fggKCsL48eMxdOhQdZsff/wRwcHBcHR0hKenJwYNGoTk5GT180eOHIFMJsO+ffvQvHlz2NraonPnzkhOTsaff/6JwMBAODk54Y033kBmZqa6X8eOHTFu3DiMGzcOLi4ucHV1xaxZs0q8031aWhpGjRoFd3d3ODk5oXPnzrh06ZL6+UuXLqFTp05wdHSEk5MTgoKCcO7cuRK3ARGRPvy/VScktd80opWeKpGOe250LDk9G0f+eYC0rFy4OyqgsLJEdl4+4h5kIOVJDjrWc4O7k/7v4Hzr1i3s3btXI0WrVCp4e3vjl19+QbVq1XDixAmMGjUKXl5eGDBggLrd4cOH4eXlhcOHD+PmzZsIDw9Hs2bN8M477wB4FoDu3r2LQ4cOwdraGhMmTNAIC0II9OnTB/b29oiKioJSqcSYMWMQHh6OI0eOqNvFxcXhzz//xN69exEXF4f+/fsjPj4eAQEBiIqKwokTJzB8+HB06dIFrVsXfX8ST09PREREoG/fvnB0dCyyTW5uLj7++GPUq1cPycnJmDx5MoYNG4aIiAiNdvPmzcPKlSthZ2eHAQMGYMCAAbCxscFPP/2EJ0+e4LXXXsOKFSvw0Ucfqfts2rQJI0aMwOnTp3Hu3DmMGjUKvr6+6m31PCEEevbsiapVqyIiIgLOzs5Yt24dunTpguvXr6Nq1ap488030bx5c6xZswaWlpa4ePFihfmXEBFVHk+ePMHjHO3bt6hhC1tbW/0VJJWoZNLS0gQAkZaWVui5rKwsERMTI7Kysso0tkqlEgdj/hPfRN0U+68kisirSerH/iuJ4puom+JgzH9CpVKV92UUMnToUGFpaSns7e2FQqEQAAQA8eWXX5bYb8yYMaJfv34a4/j6+gqlUqle9vrrr4vw8HAhhBD//POPACBOnTqlfj42NlYAEF999ZUQQoj9+/cLS0tLkZCQoG5z9epVAUCcOXNGCCHE3LlzhZ2dnUhPT1e3CQsLE35+fiI/P1+9rF69emLRokXF1h8VFSW8vb2FlZWVCA4OFpMmTRLHjh0r8TWfOXNGABAZGRlCCCEOHz4sAIgDBw6o2yxatEgAEHFxcepl7777rggLC1P/HRISIgIDAzXez48++kgEBgaq//b19VVvl4MHDwonJyeRnZ2tUU/t2rXFunXrhBBCODo6io0bN5ZYf4Hyfl6JiIrT7fMDwvej3Vo/cnNz9V5TSb/fL+JhKR16nJmHfx9nwt1RUWh+jUwmg7ujAv8+zsTjzLxiRiifTp064eLFizh9+jTGjx+PsLAwjB8/XqPN2rVrERwcDDc3Nzg4OODbb79FQkKCRpuGDRvC0tJS/beXl5d6z0xsbCzkcjmCg4PVz9evXx8uLi7qv2NjY+Hj4wMfHx/1sgYNGsDFxQWxsbHqZX5+fhp7Wzw8PNCgQQNYWFhoLHt+r9CLOnTogFu3buHgwYPo168frl69ivbt2+Pjjz9Wt4mOjkbv3r3h6+sLR0dHdOzYEQAKve4mTZporNfOzg61atUqsZbWrVtrvNdt2rTBjRs3kJ+fX6jW8+fP48mTJ3B1dYWDg4P6ER8fj7i4OADAlClTMHLkSHTt2hWLFy9WLyciMpTc3FzEPtB+GkUHf+cKt4eZ4UaHcpQq5OaroLCyLPJ5hZUlcvNVyFGq9LJ+e3t71KlTB02aNMHy5cuRk5OD+fPnq5//5ZdfMHnyZAwfPhz79+/HxYsX8fbbbyM3N1djnBc/pDKZDCrVs5rF/z+fpKTJ0UKIIp9/cXlR6ylp3cWxsrJC+/btMW3aNOzfvx8LFizAxx9/jNzcXDx9+hShoaFwcHDAjz/+iLNnz2LHjh0AUOLrLmstJVGpVPDy8sLFixc1Hv/88w+mTp0K4NmhsatXr6Jnz544dOgQGjRooK6XiMgQ+q8+Jqn9N0ODS29kYJxzo0M2cgtYW1ogOy8f9jaFN212Xj6sLS1gIzdMppw7dy66d++O9957D9WrV8fRo0fRtm1bjBkzRt1G6p6BwMBAKJVKnDt3Di1bPrvj6z///IPHjx+r2zRo0AAJCQm4e/eueu9NTEwM0tLSEBgYWP4XVooGDRpAqVQiOzsbN27cQEpKChYvXqyuRZcTdE+dOlXo77p162rs+SrQokULJCUlQS6Xw8/Pr9gxAwICEBAQgMmTJ+ONN97Ahg0b8Nprr+msZiKi4mRlZeHvpCyt2we620Ch0P88Uqm450aHXOysUMPFDskZ2YXOmBFCIDkjGzVc7OBiZ5jddx07dkTDhg3x6aefAgDq1KmDc+fOYd++fbh+/Tpmz56Ns2fPShqzXr166NatG9555x2cPn0a58+fx8iRIzUmknXt2hVNmjTBm2++iQsXLuDMmTMYMmQIQkJCNA5n6eo1rlu3DufPn8ft27cRERGBGTNmoFOnTnByckLNmjVhbW2NFStW4NatW9i1a5fGIavyunv3LqZMmYJ//vkHW7duxYoVKzBx4sQi23bt2hVt2rRBnz59sG/fPty+fRsnTpzArFmzcO7cOWRlZWHcuHE4cuQI7ty5g+PHj+Ps2bMGCYRERADQc/lRSe2XDax4e20AhhudkslkaFTDCc621rid+hRPc5TIVwk8zVHidupTONtZo1ENJ4Pec2PKlCn49ttvcffuXYwePRp9+/ZFeHg4WrVqhdTUVI29ONrasGEDfHx8EBISgr59+6pPbS4gk8mwc+dOVKlSBR06dEDXrl1Rq1YtbNu2TZcvDQAQFhaGTZs2ITQ0FIGBgeq5Rr/88gsAwM3NDRs3bsSvv/6KBg0aYPHixfj88891tv4hQ4YgKysLLVu2xNixYzF+/HiMGjWqyLYymQwRERHo0KEDhg8fjoCAAAwcOBC3b9+Gh4cHLC0tkZqaiiFDhiAgIAADBgxA9+7dNQ4tEhHpS1ZWFm490n5OqJ0cqOPppMeKyk4mXtzFYObS09Ph7OyMtLQ0ODlpvinZ2dmIj4+Hv79/uXazJadn48q/6fj3cSZy81WwtrRADRc7NKrhZJDTwMkwOnbsiGbNmhnt9gq6+rwSEQHA0G+PIiouXev2M0JrYVRnw+1ZLun3+0Wcc6MH7k4KdHK0MfgViomIiMpCqVRKCjYAMLxDXT1VU34MN3oik8lQxd7a2GUQERGVatbvFyW1f7+zL+TyihshKm5lRBXc81dbJiIyVXl5efg5Wtrdv8d2baCnanSDE4qJiIgqsSURVyS179OoqsbFViuiil2dkVSyOdZkovg5JaLyys/Px3cn70vqs6hfM/0Uo0MMN88puCLt83d+JqqoCj6nFe2y50RkOtYejJHUvpGHomLdILMYnHPzHEtLS7i4uKjvH2RnZ8cznKjCEUIgMzMTycnJcHFxKfJqyEREpcnPz8dnhxJKb/ic7WPb66ka3WK4eYGnpycAlHizRqKKwMXFRf15JSKSatJWabei6dOwGqytTeMsYIabF8hkMnh5ecHd3R15efq5ezdReVlZWXGPDRGVWU5ODv64kiKpz+dvBOmpGt1juCmGpaUlfzyIiMgsLT9wTVL799pVr9DXtXkRJxQTERFVIkIIrDp6T1KfD3o00VM1+sFwQ0REVIlE30qS1L65l63JHclguCEiIqokhBDo++0FSX02D39JT9XoD8MNERFRJXHuxr+S2lsBcHR01E8xesRwQ0REVAkIIfD6+kuS+pya2lpP1egXww0REVElEP+vtOu3yQG4urrqpxg9Y7ghIiKqBLqvlHbRvuiZHfRUif4x3BAREZm5J0+eIEdCe1uZac61KcBwQ0REZOY6f/mXpPZnZpjuXhuA4YaIiMisZWZmIjlTaN3e3sK099oADDdERERmLeTzI5Lan5nZUS91GBLDDRERkZmKT0zFAwl7bTwUgL29vR4rMgyGGyIiIjMkhEC35ack9Tn8YSc9VWNYDDdERERmKCEpFTna77SBl70MdnZ2+ivIgBhuiIiIzFCftacltT8wJURPlRgeww0REZGZuZP8GI8kXNjGxco85toUYLghIiIyI0IIvLr8uKQ+xz4yn702AMMNERGRWfn7zgOkKbVv76EAHBwc9FeQETDcEBERmQkhBN7dLO0eUlHTuuipGuNhuCEiIjITMfceIUnCdW28HCygUCj0WJFxMNwQERGZASEERm6UdobU/okv66ka42K4ISIiMgP3U9OQ+FSldXt3O0uTv4dUcRhuiIiIzECfVScltY+aal5nSD2P4YaIiMjEnY9LwoMs7ffa+LpYw9bWVo8VGZfRw83q1avh7+8PhUKBoKAgHD16tMT2W7ZsQdOmTWFnZwcvLy+8/fbbSE1NNVC1REREFYtKpUK/b89L6hMxvq2eqqkYjBputm3bhkmTJmHmzJmIjo5G+/bt0b17dyQkJBTZ/tixYxgyZAhGjBiBq1ev4tdff8XZs2cxcuRIA1dORERUMUzaLO1wlJ+L3KyuRlwUo4abL7/8EiNGjMDIkSMRGBiIr7/+Gj4+PlizZk2R7U+dOgU/Pz9MmDAB/v7+ePnll/Huu+/i3Dlp5/QTERGZg5ycHOy69lhSn32TO+qjlArFaOEmNzcX58+fR2hoqMby0NBQnDhxosg+bdu2xb179xAREQEhBP777z/89ttv6NmzZ7HrycnJQXp6usaDiIjIHIzdckFS+5qOctjY2OipmorDaOEmJSUF+fn58PDw0Fju4eGBpKSkIvu0bdsWW7ZsQXh4OKytreHp6QkXFxesWLGi2PUsWrQIzs7O6oePj49OXwcREZEx5OXl4cD1h5L67Jlg3nNtChh9QrFMJtP4WwhRaFmBmJgYTJgwAXPmzMH58+exd+9exMfHY/To0cWOP336dKSlpakfd+/e1Wn9RERExjBne7Sk9jVsYbbXtXmR3FgrrlatGiwtLQvtpUlOTi60N6fAokWL0K5dO0ydOhUA0KRJE9jb26N9+/b45JNP4OXlVaiPjY1NpdgFR0RElYdSqcTW6AeS+kTNDNNTNRWP0fbcWFtbIygoCJGRkRrLIyMj0bZt0bvNMjMzYWGhWbKlpSWAZ3t8iIiIKoMZv0vba9O/mTvkcqPtzzA4ox6WmjJlCr777jusX78esbGxmDx5MhISEtSHmaZPn44hQ4ao2/fq1Qvbt2/HmjVrcOvWLRw/fhwTJkxAy5YtUb16dWO9DCIiIoPJy8vDL9HJkvp82repnqqpmIwa48LDw5GamooFCxYgMTERjRo1QkREBHx9fQEAiYmJGte8GTZsGDIyMrBy5Uq8//77cHFxQefOnbFkyRJjvQQiIiKDekfizTFf9neCtbW1nqqpmGSikh3PSU9Ph7OzM9LS0uDk5GTscoiIiLSWk5ODenMPSOrzz/yuZjH3VMrvt9HPliIiIiLt9F75l6T2/y+wqlkEG6kYboiIiExAVlYWrj3IldRn2Vst9VRNxcZwQ0REZAKaLzgkqf3HPeuozyiubBhuiIiIKriHDx8iW8IMWQsAb7arq7d6KjqGGyIiogquxVJpd/7e+nazQteFq0wq7ysnIiIyASdiE0pv9BwLAK3q1dBPMSaC4YaIiKiCUqlUGLTpsqQ+B8YH66ka08FwQ0REVEHN/v2C5D7+1d31UIlpYbghIiKqgHJzc7Hl/H+S+kSOewkymUxPFZkOhhsiIqIK6O31pyS1d5IDdb251wZguCEiIqpwcnJycPx2hqQ+5+a8oqdqTA/DDRERUQXT8+vDkto3r25b6W6OWRKGGyIiogokMzMTNx/lS+rz0ztt9FSNaWK4ISIiqkD6rZZ2wb7gGvawtbXVUzWmieGGiIiogsjJyUFsSrakPltHt9NTNaaL4YaIiKiCCJx7QFL7oS95wMrKSk/VmC6GGyIiogpg1+lrUEnsM6dPc73UYuoYboiIiIwsPz8fE3bESeozPbQ2LC0t9VSRaWO4ISIiMrIvIv6W1F4OYGRIXf0UYwYYboiIiIxIqVRi9fH7kvqsGtiQe21KwHBDRERkRBv+uiGpvYMFENbMTz/FmAmGGyIiIiNRqVRYuP+WpD5nZ3fWUzXmg+GGiIjISF79+pCk9oFuNrxgnxYYboiIiIwgPjEVV5JzJPXZOa69nqoxLww3REREBiaEQLdlpyT1ebVhNdjY2OipIvPCcENERGRgqyJjIW2fDfDVoGC91GKOGG6IiIgMKC8vD58fipfUZ214A576LQHDDRERkQENWHNMUns5gG7N/fVTjJliuCEiIjKQrKwsRN/PlNTnwgxOIpaK4YaIiMhAeq88Lqm9vSXg5OSkp2rMF8MNERGRAdxNScf1VGnTiE9N66Cnaswbww0REZGeCSHQ8+ujkvr4O8vh6Oiop4rMG8MNERGRnq2MjEW6UlqfyKld9FNMJcBwQ0REpEd5eXn4QuKp3x90rgm5XK6niswfww0REZEe9Vt5RHKfMV0b6r6QSoThhoiISE+ysrLw93+5kvr8MrwZLCz481we3HpERER68vJSaXf99nWxQsuAGnqqpvJguCEiItKDX0/FITVLWp+DH3TWTzGVDMMNERGRjimVSkzdeU1Sn+4BzpxErCMMN0RERDo29oczkvt8/eZLeqikcmK4ISIi0qGcnBzs++eRpD4j2tSAjY2NniqqfBhuiIiIdKjlpwcktZcDmN27mV5qqawYboiIiHTk5xPXkSbt9lE4N62dfoqpxBhuiIiIdECpVGLarhuS+jhbAy4uLvopqBJjuCEiItKBGb9ekNzn9AzeP0ofGG6IiIjKKS8vD79ceiCpT89AVygUCj1VVLkx3BAREZVT72WHJfdZMbilHiohgOGGiIioXO789wgxKXmS+vw6ojnvH6VH3LJERERlJIRAyFcnJPXxd5HjpbrV9VQRAQw3REREZTbyu6OS+xz6KFQPldDzGG6IiIjKICsrCwfjMiT1+eq1upDJZHqqiAow3BAREZVB4PxDkvu8GlxbD5XQixhuiIiIJPrgp1OS+6wJbwBLS0s9VEMvYrghIiKSIDs7G7/9nSqpT3V7Gbo399dTRfQihhsiIiIJ+q86JrnPidk99FAJFYfhhoiISEvZ2dm48kDanTH/ntFeT9VQcYweblavXg1/f38oFAoEBQXh6NGST6vLycnBzJkz4evrCxsbG9SuXRvr1683ULVERFSZNZl3UFJ7hQxwcnLSUzVUHLkxV75t2zZMmjQJq1evRrt27bBu3Tp0794dMTExqFmzZpF9BgwYgP/++w/ff/896tSpg+TkZCiVSgNXTkRElc1HP59FrsQ+52aG6KUWKplMCCGMtfJWrVqhRYsWWLNmjXpZYGAg+vTpg0WLFhVqv3fvXgwcOBC3bt1C1apVy7TO9PR0ODs7Iy0tjWmaiIi0kp2djfoS99rUqiLHoY/C9FRR5SPl99toh6Vyc3Nx/vx5hIZqXqkxNDQUJ04UfSnrXbt2ITg4GEuXLkWNGjUQEBCADz74AFlZWcWuJycnB+np6RoPIiIiKVp9Ki3YAMC+KZ31UAlpw2iHpVJSUpCfnw8PDw+N5R4eHkhKSiqyz61bt3Ds2DEoFArs2LEDKSkpGDNmDB4+fFjsvJtFixZh/vz5Oq+fiIgqh22nbiJN4vGoDzt6w8rKSj8FUamMPqH4xctQCyGKvTS1SqWCTCbDli1b0LJlS/To0QNffvklNm7cWOzem+nTpyMtLU39uHv3rs5fAxERmSelUomPdv4jqY81gDHdmuqnINKK0fbcVKtWDZaWloX20iQnJxfam1PAy8sLNWrUgLOzs3pZYGAghBC4d+8e6tatW6iPjY0NbGxsdFs8ERFVCq0/2Se5z5UFr+ihEpLCaHturK2tERQUhMjISI3lkZGRaNu2bZF92rVrh/v37+PJkyfqZdevX4eFhQW8vb31Wi8REVUup67dQ0q2tD7jXvaGtbW1fgoirRn1sNSUKVPw3XffYf369YiNjcXkyZORkJCA0aNHA3h2SGnIkCHq9oMGDYKrqyvefvttxMTE4K+//sLUqVMxfPhw2NraGutlEBGRmVGpVBi48ZKkPpYAPvh/PBxVERj1Ojfh4eFITU3FggULkJiYiEaNGiEiIgK+vr4AgMTERCQkJKjbOzg4IDIyEuPHj0dwcDBcXV0xYMAAfPLJJ8Z6CUREZIZeWXpAcp9Ls3hNm4rCqNe5MQZe54aIiEpy5vq/GLD+oqQ+Dd2tsWcK59rok0lc54aIiKiiUalUkoMNAPwxqYvui6EyY7ghIiL6/838+YzkPlsGN4SFBX9OKxK+G0RERHh25fytf6dK6uMgB9o19NNPQVRmDDdEREQAGs2JLL3RCy7N76aHSqi8GG6IiKjSG7jmL8l3/P52UGNYWlrqpR4qH4YbIiKq1OKTHuLUnQxJffyc5XilSU09VUTlxXBDRESVlhACr3x9UnK/yA94x++KjOGGiIgqra8i/oZSYp8PO/vwjt8VHMMNERFVSvcfPsHyo/ck9bECMCa0iX4KIp1huCEiokpHCIG2S6Mk97syv6seqiFdY7ghIqJKp+/yw5L7DHvJAzY2NnqohnSN4YaIiCqV+KSHiE7MktxvXr9gPVRD+sBwQ0RElYYQAp3KcHbUPzwcZVIYboiIqNLoXYbDUSNb1+DhKBPDcENERJXC2ZtJ+Fvi4SgHS2BWn2b6KYj0huGGiIjMnkqlwuvfnZfc79zsLnqohvSN4YaIiMzeyPXS59m83rgaFAqFHqohfWO4ISIis3bo6r84dPOxpD7WAD57s5Ve6iH9Y7ghIiKzlZ+fj+E/XJTc7+95PBxlyhhuiIjIbL224ojkPuFN3Xk4ysQx3BARkVn6/Uw8/k7KltTHzhJY8sZLeqqIDIXhhoiIzI5SqcT722Mk97s0L1QP1ZChaR1u7t2TdudUIiIiY2k8a5/kPnO714WVlZUeqiFD0zrcNGrUCD/88IM+ayEiIiq3advOQuqdo/ydZHg7JEAv9ZDhaR1uPv30U4wdOxb9+vVDamqqPmsiIiIqk4u3H+Dn6GTJ/SI/5OEoc6J1uBkzZgwuXbqER48eoWHDhti1a5c+6yIiIpJEpVKhz9ozkvt99lp9yOVyPVRExiLp3fT398ehQ4ewcuVK9OvXD4GBgYU+EBcuXNBpgURERNpoueBPyX0auFri9Va19VANGZPkqHrnzh38/vvvqFq1Knr37s20S0RERrfuwFWkSDvrGwAQMbWb7osho5OUTL799lu8//776Nq1K65cuQI3Nzd91UVERKSVvLw8LDpwW3K/yzM76L4YqhC0DjfdunXDmTNnsHLlSgwZMkSfNREREWmt5cf7Jfdp7G4NR0dHPVRDFYHW4SY/Px9///03vL299VkPERGR1j78+TQe5Urv98eUV3RfDFUYWoebyMhIfdZBREQkycXbD/DLxRTJ/W5+EqaHaqgi4e0XiIjI5JT5tO8+PO27MmC4ISIik9NwhvTTvn2d5Xi9NU/7rgwYboiIyKRM/OGk5NsrAMDhjzjPprJguCEiIpMRHZ+M/119KLnftuHNYWHBn7zKgu80ERGZBJVKhdfWnZXcz8/JAq0CquuhIqqoGG6IiMgktJwnfZ4NAByZ0V3HlVBFx3BDREQV3qQtp5FShuvZxC3k7RUqI4YbIiKq0BIepGHnZenXs/l2UBNYWlrqoSKq6BhuiIiowhJCoMMXxyT3a+5li1ea+OihIjIFDDdERFRh1Z4eIbmPJYAdEzvrvhgyGQw3RERUIb2+/BBUZeh3nfNsKj2GGyIiqnAOXLmHs/elX6pv3RsNOc+GGG6IiKhiyc/Px8gfL0nuV89VjrCmfroviEwOww0REVUotWfuldzHEsC+qbzbNz3DcENERBVG4Iw9ZeoXu4D3jaL/w3BDREQVwqp9fyOrDDOIp3SuBWtra90XRCaL4YaIiIwuLy8Pnx2+K7nfS9UVmBAaqIeKyJQx3BARkdHVnb1fch8FgF8ndNF9MWTyGG6IiMioak0r2zybmE95Q0wqGsMNEREZzRurD5fpQn3bR70ECwv+hFHR+MkgIiKjWLjrb5xMyJTc75U6LmhRy10PFZG5YLghIiKDOxKbiG9PSJ9A7GwFfDuynR4qInPCcENERAaVn5+PYZsulKnvpY976rgaMkcMN0REZFBluQIxAFznhfpIS0YPN6tXr4a/vz8UCgWCgoJw9OhRrfodP34ccrkczZo102+BRESkM20WRJSp36SOvrxQH2nNqOFm27ZtmDRpEmbOnIno6Gi0b98e3bt3R0JCQon90tLSMGTIEHTpwusbEBGZim8OxSAxU0ju19BdgUndGumhIjJXMiGE9E+ajrRq1QotWrTAmjVr1MsCAwPRp08fLFq0qNh+AwcORN26dWFpaYmdO3fi4sWLWq8zPT0dzs7OSEtLg5OTU3nKJyIiLd1/+ARtl0ZJ7ldVAVyYx3k2JO3322h7bnJzc3H+/HmEhoZqLA8NDcWJEyeK7bdhwwbExcVh7ty5+i6RiIh0QAhRpmADMNhQ2ciNteKUlBTk5+fDw8NDY7mHhweSkpKK7HPjxg1MmzYNR48ehVyuXek5OTnIyclR/52enl72oomISDL/6WWbZ3PzkzAdV0KVhdEnFMtkMo2/hRCFlgHPTh0cNGgQ5s+fj4CAAK3HX7RoEZydndUPHx+fctdMRETaaTyjbLdW+KJvA63/EUv0IqOFm2rVqsHS0rLQXprk5ORCe3MAICMjA+fOncO4ceMgl8shl8uxYMECXLp0CXK5HIcOHSpyPdOnT0daWpr6cfeu9ItGERGRdK0X7EFGGe6t0KlOFfRr6a/7gqjSMFostra2RlBQECIjI/Haa6+pl0dGRqJ3796F2js5OeHy5csay1avXo1Dhw7ht99+g79/0f8j2NjYwMbGRrfFExFRiV5feRhJ0u+sgNpOwIaRbXVfEFUqRt3nN2XKFAwePBjBwcFo06YNvvnmGyQkJGD06NEAnu11+ffff7F582ZYWFigUSPNUwHd3d2hUCgKLSciIuNZvj8WZ++VIdkAODiDE4ip/IwabsLDw5GamooFCxYgMTERjRo1QkREBHx9fQEAiYmJpV7zhoiIKo7c3Fx8eehWmfreXsxgQ7ph1OvcGAOvc0NEpD9+08o2gThuYTdYWlrquBoyJyZxnRsiIjIvZQ02373ZhMGGdIrhhoiIyq2swaZjbWd0bcxLdJBuMdwQEVG5dFhYtmDjYgVsfOdlHVdDxHBDRETlMPSbo0jIKFvfix9zAjHpB8MNERGVybRt5xB1q2y3tOGZUaRPDDdERCTZ4oir+Dn6vzL1jV/UQ8fVEGliuCEiIkku3UnB2r9ul6nv8akdirx/IJEuMdwQEZHWVCoVeq85Xaa+kzv5ooaro44rIiqM4YaIiLRWa8afZerXqqYDJobxVjlkGAw3RESklbJey6Z+VStsGxOi42qIisdwQ0REpQooY7CxALD3w1DdFkNUCoYbIiIqUaMZe5Bbxr63eMo3GYFR7wpOREQVW71pe5BTxr68lg0ZC/fcEBFRkRrPKnuw4bVsyJgYboiIqJDun0UiQ1m2vkfff5nXsiGjYrghIiINH209i9jUss2yGdzKGz5uzjquiEgahhsiIlL78s/L2HYpuUx92/s74ePXmuq4IiLpOKGYiIgAAJN/Oosdf5ct2DTxVOCHd9vruCKismG4ISIijN50EntjH5apbw0HGXZN6qLjiojKjoeliIgquZm/XihzsLGzAI7P4plRVLEw3BARVWLL9l7FlvOJZeprAyDmU17Lhioehhsiokrq671X8dWR22XqqwDwDy/SRxUU59wQEVVCc3ZcxObT/5a5/zUGG6rAuOeGiKiS2fDXjXIFG95WgSo6hhsiokrkUMx9zI+4Xub+DDZkChhuiIgqiR3n7mD45ugy92ewIVPBOTdERJXA139ewddRd8rcn8GGTAnDDRGRmRu+/iQOXS/bdWwABhsyPTwsRURkxiZuOc1gQ5UOww0RkZn6eOdF/O9ySpn7M9iQqeJhKSIiMzRpy2nsZLChSorhhojIzIQu+RPXH6nK3J/Bhkwdww0RkRlpMGMPMsueaxhsyCxwzg0RkZlgsCF6huGGiMgMNJ/JYENUgIeliIhMXOMZe5DBYEOkxnBDRGTC6k7bg7xy9GewIXPEw1JERCaqAYMNUZG454aIyMTk5+ej9sy95RqDwYbMGffcEBGZkCOxiQw2RKXgnhsiIhPx6R+X8c3xhHKNwWBDlQHDDRGRCXh34wnsu/aoXGMw2FBlwXBDRFTBhSz8E3fKc643GGyocmG4ISKqwPym7SlXf1sZELuIwYYqF04oJiKqoMobbOo6MthQ5cQ9N0REFYxKpUKtGX+Wawy/KtaI/OgVHVVEZFq454aIqAI5ezOx3MGmW2BVHGGwoUqMe26IiCqI3ssO4VJiVrnGiJrcFr4eVXRUEZFpYrghIqoAGs3agyfK8o0Rv6gHZDKZbgoiMmEMN0RERlbeicMAT/Umeh7n3BARGUlubm65g42zJYMN0Yu454aIyAiW7YvBV4fjyzVG42pW+OODUB1VRGQ+GG6IiAys91cHcem/7HKN0cTLDrsmdtJRRUTmheGGiMiAGszYg8zy3UkBkzv6YWK3hropiMgMMdwQERmAUqlEnVn7yj3O9QWvwNraWgcVEZkvhhsiIj37/Uw83t8eU+5xOHGYSDtGP1tq9erV8Pf3h0KhQFBQEI4ePVps2+3bt+OVV16Bm5sbnJyc0KZNG+zbV/5/CRER6cvQb44x2BAZmFHDzbZt2zBp0iTMnDkT0dHRaN++Pbp3746EhIQi2//111945ZVXEBERgfPnz6NTp07o1asXoqOjDVw5EVHJlEolak/bg6hbaeUax8WKwYZIKpkQQhhr5a1atUKLFi2wZs0a9bLAwED06dMHixYt0mqMhg0bIjw8HHPmzNGqfXp6OpydnZGWlgYnJ6cy1U1EVJJfT8Vh6s5r5R6nQy0nbB7VXgcVEZk+Kb/fRptzk5ubi/Pnz2PatGkay0NDQ3HixAmtxlCpVMjIyEDVqlX1USIRkWS9vojE5Qe55R7nyKQ28PPkdxtRWRgt3KSkpCA/Px8eHh4ayz08PJCUlKTVGF988QWePn2KAQMGFNsmJycHOTk56r/T09PLVjARUQmys7NRf97Bco8jA3CL94giKhejTyh+8X9gIYRW/1Nv3boV8+bNw7Zt2+Du7l5su0WLFsHZ2Vn98PHxKXfNRETPm7D+iE6CTVgdR8Qv7slgQ1RORgs31apVg6WlZaG9NMnJyYX25rxo27ZtGDFiBH755Rd07dq1xLbTp09HWlqa+nH37t1y105EVMB/2h7suv603ON80TcQ60Z20EFFRGS0cGNtbY2goCBERkZqLI+MjETbtm2L7bd161YMGzYMP/30E3r2LP0MAhsbGzg5OWk8iIjKq+Cml7o4I2P3uLbo17KWDkYiIsDIF/GbMmUKBg8ejODgYLRp0wbffPMNEhISMHr0aADP9rr8+++/2Lx5M4BnwWbIkCFYtmwZWrdurd7rY2trC2dnZ6O9DiKqXBbtOId1p/8r9zjWAK592h0WFkafIUBkVowabsLDw5GamooFCxYgMTERjRo1QkREBHx9fQEAiYmJGte8WbduHZRKJcaOHYuxY8eqlw8dOhQbN240dPlEVMlkZmaiwYLDOhlrSLA7FvR/SSdjEZEmo17nxhh4nRsiKot3vjuKyJu6Odty49AW6BjopZOxiCoLk7jODRGRKcjKykLg/EM6Gy9uYTdYWlrqbDwiKozhhoioGO98cxiRtzJ1MlZ1O+DEHN5GgcgQGG6IiF6Ql5eHurP362y8dW80QlhTX52NR0QlY7ghInrOsj/O4avj5T8TqgAPQxEZHsMNERGAJ0+eoNEnUTobb2iwG+b3b6mz8YhIeww3RFTpvfrZn/g7VaWz8f6Z3xU2NjY6G4+IpGG4IaJKS1c3uyzg5yzHkelhOhuPiMqG4YaIKh2VSoUJW85i99UUnY257e2maFXPW2fjEVHZMdwQUaXy1+VbGLIlVmfj2cqAqwt5CwWiioThhogqhYyMDDRe+JdOxxzQpBqWDmql0zGJqPwYbojIrAkh8MriCNxM0+241+Z1gUKh0O2gRKQTDDdEZLYu30xAr+8u63TMDzt6Y0y3pjodk4h0i+GGiMzOw4cP0WLpSZ2OWc0KODknFFZWVjodl4h0j+GGiMxGXl4eGs/ej2wdj/vLiBZoWZd38SYyFQw3RGTy8vPzMfPn0/j58iOdjutpB5yYxTOhiEwNww0RmbR9l+7g3a1XdD5u5LiXUNfbXefjEpH+MdwQkUnSx7waAOhTzwFfDesAmUym87GJyDAYbojIpDx58gRBn0QhR8fjWgG4wntCEZkFhhsiMgmPHj1CiyUnIPQw9ifda+GtkEA9jExExsBwQ0QVWnZ2NhrPO4g8PYxdxQo4OzcMcjm/ConMCf+PJqIKKTMzE92/OoI7GfrYVwNcmv4ynJ2d9TI2ERkXww0RVShpaWlo//kxpOtjVw2A9QPqoHOLevoZnIgqBIYbIqoQ0tLS0GLRMeTraXwPBXByDq9ZQ1QZMNwQkVGlpqYi6LNTel3HxWnt4OLiotd1EFHFwXBDREaRmZmJBgsO63UdDDVElRPDDREZjBACf1+LQ+9N/+h1PfvGBKFeTU+9roOIKi6GGyLSu+zsbHy66xI2X0jR63refskDc/oG8erCRJUcww0R6U1GRgbClh3F/Sf6OZ27wBst3DG/T1NYW1vrdT1EZBoYbohI5/R95lOBOk7Avo+6wdLSUs9rIiJTwnBDRDrx9OlTzNr+N3Zcfaj3dVkBuDi7I+zt7fW+LiIyPQw3RFQujx49QtslJ5BlgHXZyoBT03hlYSIqGcMNEUmWk5OD1fuvYNnxJIOsz8ESODU9BA4ODgZZHxGZNoYbItJacnIy2n95FjkGWl9NB2DPxA5wdHQ00BqJyBww3BBRiZ4+fYqp284h4voTg62zvbcVvh/VkWc/EVGZMNwQUSGZmZmY9et5bI9NN+h6BzZywsfhrWFlZWXQ9RKReWG4ISIAzwLN9F/P4n+xhttDU2DDoAbo0LAmT+kmIp1guCGqxJRKJfZG38G4368ZZf0nJ7aAl5eXUdZNROaL4YaoklEqlfjzwi28v/0Gco2wflcFcGgyT+cmIv1huCGqBDIyMjB600kcv5dntBp61bXH0kGtYGtra7QaiKhyYLghMlNPnz7FzO2XsPPqI6PWsX90M9T1rc6bWRKRwTDcEJkJlUqFi3H3Mf6nS/jXEJcLLoGnLbBnXGu4uroatxAiqpQYbohM2IMHD9BnzRn8m2nsSp75LjwAnZrU4llPRGRUDDdEJkSlUuH89QSM+uEqHun7lttaql/VAj+NbIWqVasauxQiIgAMN0QVWk5ODtZEXsW6Y4kGuTGlFKcmBcHT09PYZRARFcJwQ1SBZGVlYeHOaPx4ybiTgIszsKEj5vZ/iWc8EVGFxnBDZESpqakY8M0pxKUZu5LiNfewwYa3g+Hi4mLsUoiItMJwQ2Qgubm52PTXP1h5JAFpSmNXU7LOfgosf6sVHBwcjF0KEZFkDDdEevD48WO8vfEcopNyjF2K1v5fgD2WhL8Ee3t7Y5dCRFQuDDdE5XT//n30XBONR8a7+G+Z1bAHdo5uCTc3N2OXQkSkMww3RFr6999/EbbyIp4IY1dSPsE17PDd4OacQ0NEZovhhug56enpGLn+JM4kVfBJMRLYAJjSsQbe7twA1tbWxi6HiEjvGG6oUlGpVDgTG493frqGjApyETx9aO5miY0j2/DO20RUKTHckFl5/PgxRmy6gPOJFe2Sd/o3o4Mb3n6lOaysrIxdChGRUTHcUIWXk5ODZRHRWH061dilVCjd6jri8/AWPF2biOgFDDdkMA8fPsSb359FbKr5zGcxFDmA4JoOWDuoKScCExGVguGG1FJTU/HaylNIqHxHdCqkdj62WDM4GE5OTsYuhYjIpDDc6EheXh52nInHmmO3EW+KFzwho2rmqcDX4U3g61kNMpnM2OUQEZk0C2MXsHr1avj7+0OhUCAoKAhHjx4tsX1UVBSCgoKgUChQq1YtrF271kCVFu/HU7fRcO5+fPjHDQYbKpUdgGmdauD6gldwe3FP3F7cEzsndYGflxuDDRGRDhh1z822bdswadIkrF69Gu3atcO6devQvXt3xMTEoGbNmoXax8fHo0ePHnjnnXfw448/4vjx4xgzZgzc3NzQr18/I7yCZ8Fm9s6rMPHrupGeWADo18gF8/s2h52dnbHLISKqFGRCCKP9Lrdq1QotWrTAmjVr1MsCAwPRp08fLFq0qFD7jz76CLt27UJsbKx62ejRo3Hp0iWcPHlSq3Wmp6fD2dkZaWlp5Z7LkJeXhy6fHUJCOifIEuBuDewe9xLc3d2NXQoRkdmR8vtttD03ubm5OH/+PKZNm6axPDQ0FCdOnCiyz8mTJxEaGqqxLCwsDN9//z3y8vKKvL5HTk4OcnL+7+aF6enpOqj+mf2xD3CXwabScbIE9o1rAS8vL2OXQkRERTBauElJSUF+fj48PDw0lnt4eCApKanIPklJSUW2VyqVSElJKfLHZtGiRZg/f77uCn/Of+nZPBxlpuQAxr7siTGvNIKNjY2xyyEiIgmMfrbUixMohRAlTqosqn1RywtMnz4dU6ZMUf+dnp4OHx+fsparwcNJARnAgGOibAFEjmsKb29vY5dCREQ6ZLRwU61aNVhaWhbaS5OcnFxo70wBT0/PItvL5XK4uroW2cfGxkZv//IODXSDj5Occ24qIBsAE0M8MbJLY94skoiokjFauLG2tkZQUBAiIyPx2muvqZdHRkaid+/eRfZp06YN/vjjD41l+/fvR3BwsFHup2NlZYVRnevxbCkD8nMEfh/dutgwS0REZNTDUlOmTMHgwYMRHByMNm3a4JtvvkFCQgJGjx4N4NkhpX///RebN28G8OzMqJUrV2LKlCl45513cPLkSXz//ffYunWr0V7DW639AAALdl1FrspoZZic8a3dMK57U85nISIinTNquAkPD0dqaioWLFiAxMRENGrUCBEREfD19QUAJCYmIiEhQd3e398fERERmDx5MlatWoXq1atj+fLlRrvGTYG3WvshPKiG2Vyh2EMBLO4biA4NfWFpaWnscoiIiCQx6nVujEGX17khIiIiw5Dy+2302y8QERER6RLDDREREZkVhhsiIiIyKww3REREZFYYboiIiMisMNwQERGRWWG4ISIiIrPCcENERERmheGGiIiIzIpRb79gDAUXZE5PTzdyJURERKStgt9tbW6sUOnCTUZGBgDAx8fHyJUQERGRVBkZGXB2di6xTaW7t5RKpcL9+/fh6OgImUym07HT09Ph4+ODu3fv8r5VesTtbBjczobB7Ww43NaGoa/tLIRARkYGqlevDguLkmfVVLo9NxYWFvD29tbrOpycnPg/jgFwOxsGt7NhcDsbDre1YehjO5e2x6YAJxQTERGRWWG4ISIiIrPCcKNDNjY2mDt3LmxsbIxdilnjdjYMbmfD4HY2HG5rw6gI27nSTSgmIiIi88Y9N0RERGRWGG6IiIjIrDDcEBERkVlhuCEiIiKzwnAj0erVq+Hv7w+FQoGgoCAcPXq0xPZRUVEICgqCQqFArVq1sHbtWgNVatqkbOft27fjlVdegZubG5ycnNCmTRvs27fPgNWaLqmf5wLHjx+HXC5Hs2bN9FugmZC6nXNycjBz5kz4+vrCxsYGtWvXxvr16w1UremSup23bNmCpk2bws7ODl5eXnj77beRmppqoGpN019//YVevXqhevXqkMlk2LlzZ6l9jPI7KEhrP//8s7CyshLffvutiImJERMnThT29vbizp07Rba/deuWsLOzExMnThQxMTHi22+/FVZWVuK3334zcOWmRep2njhxoliyZIk4c+aMuH79upg+fbqwsrISFy5cMHDlpkXqdi7w+PFjUatWLREaGiqaNm1qmGJNWFm286uvvipatWolIiMjRXx8vDh9+rQ4fvy4Aas2PVK389GjR4WFhYVYtmyZuHXrljh69Kho2LCh6NOnj4ErNy0RERFi5syZ4vfffxcAxI4dO0psb6zfQYYbCVq2bClGjx6tsax+/fpi2rRpRbb/8MMPRf369TWWvfvuu6J169Z6q9EcSN3ORWnQoIGYP3++rkszK2XdzuHh4WLWrFli7ty5DDdakLqd//zzT+Hs7CxSU1MNUZ7ZkLqdP/vsM1GrVi2NZcuXLxfe3t56q9HcaBNujPU7yMNSWsrNzcX58+cRGhqqsTw0NBQnTpwoss/JkycLtQ8LC8O5c+eQl5ent1pNWVm284tUKhUyMjJQtWpVfZRoFsq6nTds2IC4uDjMnTtX3yWahbJs5127diE4OBhLly5FjRo1EBAQgA8++ABZWVmGKNkklWU7t23bFvfu3UNERASEEPjvv//w22+/oWfPnoYoudIw1u9gpbtxZlmlpKQgPz8fHh4eGss9PDyQlJRUZJ+kpKQi2yuVSqSkpMDLy0tv9ZqqsmznF33xxRd4+vQpBgwYoI8SzUJZtvONGzcwbdo0HD16FHI5vzq0UZbtfOvWLRw7dgwKhQI7duxASkoKxowZg4cPH3LeTTHKsp3btm2LLVu2IDw8HNnZ2VAqlXj11VexYsUKQ5RcaRjrd5B7biSSyWQafwshCi0rrX1Ry0mT1O1cYOvWrZg3bx62bdsGd3d3fZVnNrTdzvn5+Rg0aBDmz5+PgIAAQ5VnNqR8nlUqFWQyGbZs2YKWLVuiR48e+PLLL7Fx40buvSmFlO0cExODCRMmYM6cOTh//jz27t2L+Ph4jB492hClVirG+B3kP7+0VK1aNVhaWhb6V0BycnKhVFrA09OzyPZyuRyurq56q9WUlWU7F9i2bRtGjBiBX3/9FV27dtVnmSZP6nbOyMjAuXPnEB0djXHjxgF49iMshIBcLsf+/fvRuXNng9RuSsryefby8kKNGjXg7OysXhYYGAghBO7du4e6devqtWZTVJbtvGjRIrRr1w5Tp04FADRp0gT29vZo3749PvnkE+5Z1xFj/Q5yz42WrK2tERQUhMjISI3lkZGRaNu2bZF92rRpU6j9/v37ERwcDCsrK73VasrKsp2BZ3tshg0bhp9++onHzLUgdTs7OTnh8uXLuHjxovoxevRo1KtXDxcvXkSrVq0MVbpJKcvnuV27drh//z6ePHmiXnb9+nVYWFjA29tbr/WaqrJs58zMTFhYaP4EWlpaAvi/PQtUfkb7HdTrdGUzU3Cq4ffffy9iYmLEpEmThL29vbh9+7YQQohp06aJwYMHq9sXnAI3efJkERMTI77//nueCq4Fqdv5p59+EnK5XKxatUokJiaqH48fPzbWSzAJUrfzi3i2lHakbueMjAzh7e0t+vfvL65evSqioqJE3bp1xciRI431EkyC1O28YcMGIZfLxerVq0VcXJw4duyYCA4OFi1btjTWSzAJGRkZIjo6WkRHRwsA4ssvvxTR0dHqU+4ryu8gw41Eq1atEr6+vsLa2lq0aNFCREVFqZ8bOnSoCAkJ0Wh/5MgR0bx5c2FtbS38/PzEmjVrDFyxaZKynUNCQgSAQo+hQ4cavnATI/Xz/DyGG+1J3c6xsbGia9euwtbWVnh7e4spU6aIzMxMA1dteqRu5+XLl4sGDRoIW1tb4eXlJd58801x7949A1dtWg4fPlzi921F+R2UCcH9b0RERGQ+OOeGiIiIzArDDREREZkVhhsiIiIyKww3REREZFYYboiIiMisMNwQERGRWWG4ISIiIrPCcENERERmheGGiExafn4+2rZti379+mksT0tLg4+PD2bNmmWkyojIWHiFYiIyeTdu3ECzZs3wzTff4M033wQADBkyBJcuXcLZs2dhbW1t5AqJyJAYbojILCxfvhzz5s3DlStXcPbsWbz++us4c+YMmjVrZuzSiMjAGG6IyCwIIdC5c2dYWlri8uXLGD9+PA9JEVVSDDdEZDauXbuGwMBANG7cGBcuXIBcLjd2SURkBJxQTERmY/369bCzs0N8fDzu3btn7HKIyEi454aIzMLJkyfRoUMH/Pnnn1i6dCny8/Nx4MAByGQyY5dGRAbGPTdEZPKysrIwdOhQvPvuu+jatSu+++47nD17FuvWrTN2aURkBAw3RGTypk2bBpVKhSVLlgAAatasiS+++AJTp07F7du3jVscERkcD0sRkUmLiopCly5dcOTIEbz88ssaz4WFhUGpVPLwFFElw3BDREREZoWHpYiIiMisMNwQERGRWWG4ISIiIrPCcENERERmheGGiIiIzArDDREREZkVhhsiIiIyKww3REREZFYYboiIiMisMNwQERGRWWG4ISIiIrPCcENERERm5f8DWiFKBOpgpkIAAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Cubic function\n",
"def cubic_function(x):\n",
" return x**3\n",
"\n",
"a = 0\n",
"b = 1\n",
"iterations = 10000\n",
"\n",
"x_samples = np.random.uniform(a, b, iterations)\n",
"y_samples = cubic_function(x_samples)\n",
"area_rectangle = (b - a) * (b - a)\n",
"\n",
"estimated_integral = (area_rectangle * np.mean(y_samples)) / iterations\n",
"analytical_solution = (b**4 - a**4) / 4\n",
"\n",
"print(\"Estimated integral:\", estimated_integral)\n",
"print(\"Analytical solution (optional):\", analytical_solution)\n",
"\n",
"plt.plot(np.linspace(a, b, 100), cubic_function(np.linspace(a, b, 100)), label=\"Cubic Function\")\n",
"plt.scatter(x_samples, y_samples, alpha=0.3, label=\"Random Samples\")\n",
"plt.xlabel(\"X\")\n",
"plt.ylabel(\"Y\")\n",
"plt.title(\"Monte Carlo Integration of Cubic Function\")\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "6b3a56d2",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Estimated integral of sin^2(x) from 0 to 3.141592653589793 using 10000 samples: 1.5710872622291194\n",
"Analytical solution: 0.0\n"
]
},
{
"data": {
"image/png": "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iIi0CsMNERERaRWGGyIiItIqDDdERESkVRhuiIiISKsw3BAREZFWYbghIiIircJwQ0RERFqF4YaIiIi0CsMNERERaRWGGyIiItIqDDdERESkVRhuiIiISKsw3BAREZFWYbghIiIircJwQ0RERFpF0nATEBCAbt26wc7ODjKZDHv27CnyvKdPn4aOjg48PT1LrT4iIiKqeCQNN8nJyfDw8MCKFSuKNV98fDwGDRqEdu3alVJlREREVFHpSPninTt3RufOnYs930cffYT+/ftDoVAUa28PERERab8K1+dm48aNuHfvHmbOnCl1KURERFQOSbrnprju3LmDqVOn4uTJk9DRKVrp6enpSE9P19xPSEgorfKIiIioHKgwe25UKhX69++P2bNnw8XFpcjz+fn5wdTUVHNzcHAoxSqJiIhIajIhhJC6CACQyWTYvXs3evToke/jL168gLm5ORQKhWaaWq2GEAIKhQKHDh3C//73vzzz5bfnxsHBAfHx8TAxMSnx5SAiIqKSl5CQAFNT0yJ9f1eYw1ImJia4evVqrmkrV67E0aNHsWPHDtSoUSPf+ZRKJZRKZVmUSEREROWApOEmKSkJd+/e1dwPCwtDcHAwLCws4OjoiGnTpuHx48fYvHkz5HI5GjZsmGv+qlWrQl9fP890IiIiqrwkDTeBgYFo27at5v6kSZMAAIMHD8amTZsQFRWF8PBwqcojIiKiCqjc9LkpK8U5ZkdERETlQ3G+vyvM2VJERERERcFwQ0RERFqF4YaIiIi0CsMNERERaRWGGyIiItIqDDdERESkVRhuiIiISKsw3BAREZFWYbghIiIircJwQ0RERFqF4YaIiIi0CsMNERERaRWGGyIiItIqDDdERESkVRhuiIiISKsw3BAREZFWYbghIiIircJwQ0RERFqF4YaIiIi0CsMNERERaRWGGyIiItIqDDdERESkVRhuiIiISKsw3BAREZFWYbghIiIircJwQ0RERFqF4YaIiIi0CsMNERERaRWGGyIiItIqDDdERESkVRhuiIiISKsw3BAREZFWkTTcBAQEoFu3brCzs4NMJsOePXsKbb9r1y506NAB1tbWMDExgY+PD/7++++yKZaIiIgqBEnDTXJyMjw8PLBixYoitQ8ICECHDh1w4MABXLp0CW3btkW3bt0QFBRUypUSERFRRSETQgipiwAAmUyG3bt3o0ePHsWar0GDBujbty9mzJhRpPYJCQkwNTVFfHw8TExMXqNSIiIiKmvF+f7WKaOaSoVarUZiYiIsLCwKbJOeno709HTN/YSEhLIojYiIiCRSoTsUL168GMnJyejTp0+Bbfz8/GBqaqq5OTg4lGGFREREVNYqbLjZsmULZs2ahW3btqFq1aoFtps2bRri4+M1t4iIiDKskoiIiMpahTwstW3bNgwfPhy///472rdvX2hbpVIJpVJZRpURERGR1CrcnpstW7ZgyJAh+O2339C1a1epyyEiIqJyRtI9N0lJSbh7967mflhYGIKDg2FhYQFHR0dMmzYNjx8/xubNmwFkB5tBgwbh+++/R/PmzREdHQ0AMDAwgKmpqSTLQEREROWLpHtuAgMD4eXlBS8vLwDApEmT4OXlpTmtOyoqCuHh4Zr2a9asQVZWFj755BPY2tpqbp9++qkk9RMREVH5U27GuSkrHOeGiIio4inO93eF63NDREREVBiGGyIiItIqDDdERESkVRhuiIiISKsw3BAREZFWYbghIiIircJwQ0RERFqF4YaIiIi0CsMNERERaRWGGyIiItIqDDdERESkVRhuiIiISKsw3BAREZFWYbghIiIircJwQ0RERFqF4YaIiIi0CsMNERERaRWGGyIiItIqDDdERESkVRhuiIiISKsw3BAREZFWYbghIiIircJwQ0RERFqF4YaIiIi0CsMNERERaRWGGyIiItIqDDdERESkVRhuiIiISKsw3BAREZFWYbghIiIircJwQ0RERFqF4YaIiIi0iqThJiAgAN26dYOdnR1kMhn27NnzynlOnDgBb29v6Ovro2bNmli9enXpF0pEREQVhqThJjk5GR4eHlixYkWR2oeFhaFLly5o3bo1goKC8MUXX2D8+PHYuXNnKVdKREREFYWOlC/euXNndO7cucjtV69eDUdHRyxduhQAUK9ePQQGBmLRokXo1atXKVVJREREFYmk4aa4zp49C19f31zTOnbsiPXr1yMzMxO6urp55klPT0d6errmfkJCQqnXSUQlL0ulxoO4FNyMTsC9mGREvkhFZHwqYhLSkZSeheSMLKSkqwAZoCuXQUchRxWlDqyq6MHCSA/VTA1Q08oINayMULtqFThZGkImk0m9WERUCipUuImOjoaNjU2uaTY2NsjKykJsbCxsbW3zzOPn54fZ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UOTZCxETE5Mn5eaoVq1avu11dHRgaWlZarVK4XXWT36aN2+OO3fulHR5FU5l2nZKirZvO+PGjcPevXtx7NgxVK9evdC2lXH7Kc76yY82bz96enqoXbs2GjduDD8/P3h4eOD777/Pt622bDsMN0Wkp6cHb29v+Pv755ru7++PFi1a5DuPj49PnvaHDh1C48aNoaurW2q1SuF11k9+goKCYGtrW9LlVTiVadspKdq67QghMHbsWOzatQtHjx5FjRo1XjlPZdp+Xmf95Edbt5/8CCGQnp6e72Nas+1I1JG5Qtq6davQ1dUV69evFzdu3BATJkwQRkZG4sGDB0IIIaZOnSoGDhyoaX///n1haGgoJk6cKG7cuCHWr18vdHV1xY4dO6RahFJV3PXz3Xffid27d4vbt2+La9euialTpwoAYufOnVItQqlJTEwUQUFBIigoSAAQS5YsEUFBQeLhw4dCCG47xV0/lWnb+fjjj4Wpqak4fvy4iIqK0txSUlI0bSrz9vM666cybT/Tpk0TAQEBIiwsTFy5ckV88cUXQi6Xi0OHDgkhtHfbYbgpph9++EE4OTkJPT090ahRo1ynGw4ePFi0adMmV/vjx48LLy8voaenJ5ydncWqVavKuOKyVZz1M3/+fFGrVi2hr68vzM3NRatWrcSff/4pQdWlL+fU05dvgwcPFkJw2ynu+qlM205+6wWA2Lhxo6ZNZd5+Xmf9VKbtZ9iwYZrPZGtra9GuXTtNsBFCe7cdmRD/9BQiIiIi0gLsc0NERERaheGGiIiItArDDREREWkVhhsiIiLSKgw3REREpFUYboiIiEirMNwQERGRVmG4ISIiIq3CcENERERaheGGiIiItArDDRFVeE+fPkW1atUwb948zbTz589DT08Phw4dkrAyIpICry1FRFrhwIED6NGjB86cOYO6devCy8sLXbt2xdKlS6UujYjKGMMNEWmNTz75BIcPH0aTJk0QEhKCixcvQl9fX+qyiKiMMdwQkdZITU1Fw4YNERERgcDAQLi7u0tdEhFJgH1uiEhr3L9/H5GRkVCr1Xj48KHU5RCRRLjnhoi0QkZGBpo2bQpPT0/UrVsXS5YswdWrV2FjYyN1aURUxhhuiEgrTJ48GTt27EBISAiqVKmCtm3bwtjYGPv375e6NCIqYzwsRUQV3vHjx7F06VL8/PPPMDExgVwux88//4xTp05h1apVUpdHRGWMe26IiIhIq3DPDREREWkVhhsiIiLSKgw3REREpFUYboiIiEirMNwQERGRVmG4ISIiIq3CcENERERaheGGiIiItArDDREREWkVhhsiIiLSKgw3REREpFUYboiIiEir/D9mVvcgqtowuAAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Sine squared function\n",
"\n",
"def f(x):\n",
" return np.sin(x)**2\n",
"\n",
"a = 0\n",
"b = np.pi\n",
"N = 10000\n",
"\n",
"x = np.random.uniform(a, b, size=N)\n",
"y = f(x)\n",
"\n",
"integral_estimate = (b - a) * np.mean(y)\n",
"print(\"Estimated integral of sin^2(x) from\", a, \"to\", b, \"using\", N, \"samples:\", integral_estimate)\n",
"analytical_integral = (1 - np.cos(2*b)) / 2 - (1 - np.cos(2*a)) / 2\n",
"print(\"Analytical solution:\", analytical_integral)\n",
"\n",
"x_axis = np.linspace(a, b, 1000)\n",
"plt.plot(x_axis, f(x_axis), label=\"sin^2(x)\")\n",
"plt.axhline(y=integral_estimate, color='r', linestyle='--', label=\"Estimated Integral Area\")\n",
"plt.xlabel(\"x\")\n",
"plt.ylabel(\"f(x)\")\n",
"plt.title(\"Monte Carlo Integration of sin^2(x)\")\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "fd3feaab",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAHWCAYAAAD6oMSKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACDo0lEQVR4nO3dd1hT1xsH8G/YOwrIkiEoAm7FvScO3LW16s9qHa21tlq1rdY6665aa+uo1tHhautoHVVpRVy4caLgQAEFEVT2TM7vDyQ1AgqYcCF8P8+T5zEn59775iaS9557hkwIIUBERERE5Z6e1AEQERERkWYwsSMiIiLSEUzsiIiIiHQEEzsiIiIiHcHEjoiIiEhHMLEjIiIi0hFM7IiIiIh0BBM7IiIiIh3BxI6IiIhIRzCxI6JScerUKbz55ptwdHSEkZERHBwcMGDAAAQHBxdrP7NmzYJMJitRDEeOHIFMJsORI0dKtH1RtW/fHu3bt39lvezsbPzwww9o0qQJrK2tYWZmBjc3N/Tp0we7du1S1bt79y5kMhk2bdqkvaCLoazFQ0T/YWJHRFr33XffoVWrVoiOjsbixYvxzz//YMmSJbh//z5at26N77//vsj7GjVqVLGTwTyNGjVCcHAwGjVqVKLtNW3o0KH46KOP0KFDB/z666/Ys2cPvvzySxgYGODgwYOqeo6OjggODoa/v7+E0RJReSDjWrFEpE0nTpxA27Zt0aNHD+zatQsGBgaq13JyctCvXz/s378fR48eRatWrQrdT1paGszMzEoj5NeW11r3spbBiIgIeHh4YMaMGZg9e3a+15VKJfT0yua19927d+Hu7o6NGzdi+PDhUodDRM8pm381iEhnLFiwADKZDKtXr1ZL6gDAwMAAq1atgkwmw8KFC1XlebdbL1y4gAEDBqBy5cqoXr262mvPy8zMxKRJk+Dg4AAzMzO0bdsW58+fR7Vq1dQSj4JuxQ4fPhwWFha4desWevToAQsLC7i4uGDSpEnIzMxUO87s2bPRrFkzWFtbw8rKCo0aNcL69etRkuvjhIQEALmtcQV5Pqkr7Nbnn3/+iXr16sHY2BgeHh749ttvCzw/MpkM48aNwy+//AIfHx+YmZmhfv362Lt3r1q9W7du4d1334WnpyfMzMxQtWpV9OrVC1euXCn2+yMiaRi8ugoRUckoFAoEBgaicePGcHZ2LrCOi4sLfH19cfjwYSgUCujr66te69+/P95++22MGTMGqamphR7n3Xffxfbt2/HZZ5+hY8eOCA0NRb9+/ZCUlFSkOLOzs9G7d2+MHDkSkyZNwtGjR/HVV19BLpdjxowZqnp3797F+++/D1dXVwC5/QY/+ugj3L9/X61eUfj4+KBSpUqYPXs29PT04Ofnh2rVqhV5+wMHDqB///5o27Yttm/fjpycHCxZsgQPHz4ssP6+fftw9uxZzJkzBxYWFli8eDH69euHsLAweHh4AAAePHgAGxsbLFy4EFWqVMHjx4/x008/oVmzZggJCYGXl1ex3iMRSUAQEWlJbGysACDefvvtl9YbOHCgACAePnwohBBi5syZAoCYMWNGvrp5r+W5du2aACA+//xztXpbt24VAMSwYcNUZYGBgQKACAwMVJUNGzZMABC//fab2vY9evQQXl5ehcasUChEdna2mDNnjrCxsRFKpVL1Wrt27US7du1e+p6FEGLfvn3C1tZWABAAhI2NjXjzzTfFX3/9pVYvIiJCABAbN25UlTVp0kS4uLiIzMxMVVlycrKwsbERL/5pByDs7e1FUlKSqiw2Nlbo6emJBQsWFBpfTk6OyMrKEp6enuKTTz55aTxEVDbwViwRSU48u5X54i3EN95445XbBgUFAQDeeusttfIBAwbku/VbGJlMhl69eqmV1atXD/fu3VMrO3z4MDp37gy5XA59fX0YGhpixowZSEhIQFxcXJGO9bwePXogMjISu3btwuTJk1G7dm3s3r0bvXv3xrhx4wrdLjU1FefOnUPfvn1hZGSkKrewsMj3PvJ06NABlpaWquf29vaws7NTe485OTmYP38+atWqBSMjIxgYGMDIyAg3b97E9evXi/3+iKj0MbEjIq2xtbWFmZkZIiIiXlrv7t27MDMzg7W1tVp5Yf3PnpfXV83e3l6t3MDAADY2NkWK08zMDCYmJmplxsbGyMjIUD0/c+YM/Pz8AADr1q3DiRMncPbsWUybNg0AkJ6eXqRjvcjU1BR9+/bF119/jaCgINy6dQu1atXCypUrce3atQK3efLkCYQQ+d4zkP885CnoXBgbG6vFPXHiREyfPh19+/bFnj17cPr0aZw9exb169cv8fsjotLFPnZEpDX6+vro0KEDDhw4gOjo6AL72UVHR+P8+fPo3r27Wv86IH8LXkHy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H97e3mrHqlWrFi5cuICvvvoKX375JeLi4lCpUiV4enqiR48eL41TJpNh9+7dmDVrFjZu3Ih58+bB1tYWQ4cOxfz58/Mlx0U1fvx4XLt2DV988QUSExMhhMg3p+CrdOjQAWfOnMG8efMwYcIEPHnyBDY2NqhVq1a+ATBEVLbJRHH/AhARldDJkyfRqlUrbN68Od+oUyIien1M7IhIKwICAhAcHAxfX1+Ympri0qVLWLhwIeRyOS5fvqw2+IKIiDSDt2KJSCusrKxw6NAhLF++HMnJybC1tUX37t2xYMECJnVERFrCFjsiIiIiHcHpToiIiIh0BBM7IiIiIh3BxI6IiIhIR3DwxCsolUo8ePAAlpaWkMlkUodDREREOkAIgeTkZDg5OWls0naAid0rPXjwAC4uLlKHQURERDooKioKzs7OGtsfE7tXyFsjMSoqClZWVhJHQ0RERLogKSkJLi4uGl+LmYndK+TdfrWysmJiR0RERBql6W5eHDxBREREpCOY2BERERHpCN6KJSLSACEEYhIzAACOchOOoiciSTCxIyLSgPn7r2PdsQgAwMedPDGxS02JIyKiioi3YomINCAvqQOAFf/elDASIqrImNgRERER6QgmdkREREQ6gokdERERkY5gYkdERESkI5jYEREREekIJnZEREREOoKJHREREZGOYGJHREREpCOY2BERERHpCCZ2RERERDqCiR0RERGRjmBiR0RERKQjmNgRERER6QgmdkREREQ6gokdERERkY5gYkdERESkI5jYEREREekIJnZEREREOoKJHREREZGOYGJHREREpCOY2BERERHpCCZ2RERERDqiXCR2CxYsgEwmw4QJE1RlQgjMmjULTk5OMDU1Rfv27XHt2jW17TIzM/HRRx/B1tYW5ubm6N27N6Kjo0s5eiIiIqLSUeYTu7Nnz2Lt2rWoV6+eWvnixYuxbNkyfP/99zh79iwcHBzQpUsXJCcnq+pMmDABu3btwrZt23D8+HGkpKSgZ8+eUCgUpf02iIiIiLSuTCd2KSkpGDJkCNatW4fKlSuryoUQWL58OaZNm4b+/fujTp06+Omnn5CWloYtW7YAABITE7F+/XosXboUnTt3RsOGDfHrr7/iypUr+Oeff6R6S0RERERaU6YTuw8//BD+/v7o3LmzWnlERARiY2Ph5+enKjM2Nka7du1w8uRJAMD58+eRnZ2tVsfJyQl16tRR1SEiIiLSJQZSB1CYbdu24cKFCzh79my+12JjYwEA9vb2auX29va4d++eqo6RkZFaS19enbztC5KZmYnMzEzV86SkpBK/ByIiIqLSVCZb7KKiojB+/Hj8+uuvMDExKbSeTCZTey6EyFf2olfVWbBgAeRyuerh4uJSvOCJiIiIJFImE7vz588jLi4Ovr6+MDAwgIGBAYKCgrBixQoYGBioWupebHmLi4tTvebg4ICsrCw8efKk0DoFmTp1KhITE1WPqKgoDb87IiIiIu0ok4ldp06dcOXKFVy8eFH1aNy4MYYMGYKLFy/Cw8MDDg4OCAgIUG2TlZWFoKAgtGzZEgDg6+sLQ0NDtToxMTG4evWqqk5BjI2NYWVlpfYgIiIiKg/KZB87S0tL1KlTR63M3NwcNjY2qvIJEyZg/vz58PT0hKenJ+bPnw8zMzMMHjwYACCXyzFy5EhMmjQJNjY2sLa2xuTJk1G3bt18gzGIiIiIdEGZTOyK4rPPPkN6ejrGjh2LJ0+eoFmzZjh06BAsLS1Vdb755hsYGBjgrbfeQnp6Ojp16oRNmzZBX19fwsiJiIiItEMmhBBSB1GWJSUlQS6XIzExkbdliahQ1absU3t+d6G/RJEQUXmgrfyiTPaxIyIiIqLiY2JHREREpCO0nthlZGRo+xBEREREBC0ldkqlEl999RWqVq0KCwsL3LlzBwAwffp0rF+/XhuHJCIiIqrwtJLYzZ07F5s2bcLixYthZGSkKq9bty5+/PFHbRySiIiIqMLTSmL3888/Y+3atRgyZIja1CL16tXDjRs3tHFIIiIiogpPK4nd/fv3UaNGjXzlSqUS2dnZ2jgkERERUYWnlcSudu3aOHbsWL7y33//HQ0bNtTGIYmIiIgqPK2sPDFz5kwMHToU9+/fh1KpxM6dOxEWFoaff/4Ze/fu1cYhiYiIiCo8rbTY9erVC9u3b8f+/fshk8kwY8YMXL9+HXv27EGXLl20cUgiIiKiCk9ra8V27doVXbt21dbuiYiIiOgFXHmCiIiISEdorMWucuXKkMlkRar7+PFjTR2WiIiIiJ7RWGK3fPly1b8TEhIwd+5cdO3aFS1atAAABAcH4+DBg5g+fbqmDklEREREz5EJIYSmd/rGG2+gQ4cOGDdunFr5999/j3/++Qe7d+/W9CG1JikpCXK5HImJibCyspI6HCIqo6pN2af2/O5Cf4kiIaLyQFv5hVb62B08eBDdunXLV961a1f8888/2jgkERERUYWnlcTOxsYGu3btyle+e/du2NjYaOOQRERERBWeVqY7mT17NkaOHIkjR46o+tidOnUKBw4cwI8//qiNQxIRERFVeFpJ7IYPHw4fHx+sWLECO3fuhBACtWrVwokTJ9CsWTNtHJKIiIiowtPaBMXNmjXD5s2btbV7IiIiInqBVhK7yMjIl77u6uqqjcMSERERVWhaSeyqVav20smKFQqFNg5LREREVKFpJbELCQlRe56dnY2QkBAsW7YM8+bN08YhiYiIiCo8rSR29evXz1fWuHFjODk54euvv0b//v21cVgiIiKiCk0r89gVpmbNmjh79mxpHpKIiIiowtBKi11SUpLacyEEYmJiMGvWLHh6emrjkEREREQVnlYSu0qVKuUbPCGEgIuLC7Zt26aNQxIRERFVeFpJ7AIDA9We6+npoUqVKqhRowYMDLQ2dR4RERFRhaaVLEsmk6Fly5b5kricnBwcPXoUbdu21cZhiYiIiCo0rQye6NChAx4/fpyvPDExER06dNDGIYmIiIgqPK0kdkKIAicoTkhIgLm5uTYOSURERFThafRWbN78dDKZDMOHD4exsbHqNYVCgcuXL6Nly5aaPCQRERERPaPRxE4ulwPIbbGztLSEqamp6jUjIyM0b94co0eP1uQhiYiIiOgZjSZ2GzduBJC7VuzkyZN525WIiIioFGllVOzMmTO1sVsiIiIiegmNJXaNGjXCv//+i8qVK6Nhw4YFDp7Ic+HCBU0dloiIiIie0Vhi16dPH9Vgib59+2pqt0RERERURBpL7J6//cpbsURERESlT6vre2VlZSEuLg5KpVKt3NXVVZuHJSIiIqqQtJLYhYeHY+TIkTh58qRaed7ExQqFQhuHJSIiIqrQtJLYvfvuuzAwMMDevXvh6Oj40oEURERERKQZWknsLl68iPPnz8Pb21sbuyciIiKiAmhlrdhatWohPj5eG7smIiIiokJoJbFbtGgRPvvsMxw5cgQJCQlISkpSexARERGR5mnlVmznzp0BAJ06dVIr5+AJIiIiIu3RSotdYGAgAgMDcfjwYbVHXllRLFiwAE2aNIGlpSXs7OzQt29fhIWFqdURQmDWrFlwcnKCqakp2rdvj2vX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",
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from scipy.fftpack import fft, fftshift\n",
"\n",
"t = np.linspace(0, 1, 1000) # Time samples\n",
"f = 2 # Frequency of the signal\n",
"y = np.sin(2*np.pi*f*t) # Generate the sine wave\n",
"\n",
"fft_data = fft(y)\n",
"fft_abs = np.abs(fft_data)\n",
"freqs = np.fft.fftfreq(len(y)) * f # Calculate frequencies\n",
"fft_shifted = fftshift(fft_abs)\n",
"freqs_shifted = fftshift(freqs)\n",
"\n",
"plt.subplot(2, 1, 1)\n",
"plt.plot(t, y)\n",
"plt.xlabel(\"Time (s)\")\n",
"plt.ylabel(\"Signal\")\n",
"plt.title(\"Original Signal\")\n",
"\n",
"plt.subplot(2, 1, 2)\n",
"plt.plot(freqs_shifted, fft_shifted)\n",
"plt.xlabel(\"Frequency (Hz)\")\n",
"plt.ylabel(\"Magnitude\")\n",
"plt.title(\"Magnitude of the FFT\")\n",
"plt.xlim(-f, f) # Set frequency axis limits\n",
"\n",
"plt.tight_layout()\n",
"plt.show()"
]
}
],
"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.11.4"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment