From e5fcd5b317b7c5ea0e601ff7b73897668eb593a4 Mon Sep 17 00:00:00 2001 From: ajnebro Date: Sat, 22 Jun 2024 10:25:03 +0200 Subject: [PATCH] Update notebooks --- notebooks/NSGAIINotebook.ipynb | 177 +++++++++++++-------- notebooks/SolvingConstrainedProblems.ipynb | 37 ++--- 2 files changed, 129 insertions(+), 85 deletions(-) diff --git a/notebooks/NSGAIINotebook.ipynb b/notebooks/NSGAIINotebook.ipynb index 58c5e7e5..73175dee 100644 --- a/notebooks/NSGAIINotebook.ipynb +++ b/notebooks/NSGAIINotebook.ipynb @@ -11,16 +11,16 @@ }, { "cell_type": "code", + "execution_count": 3, "metadata": {}, + "outputs": [], "source": [ "from jmetal.algorithm.multiobjective.nsgaii import NSGAII\n", - "from jmetal.operator import PolynomialMutation, SBXCrossover\n", - "from jmetal.operator import BitFlipMutation, SPXCrossover\n", + "from jmetal.operator.mutation import PolynomialMutation, BitFlipMutation\n", + "from jmetal.operator.crossover import SBXCrossover, SPXCrossover\n", "from jmetal.util.solution import get_non_dominated_solutions\n", "from jmetal.util.termination_criterion import StoppingByEvaluations" - ], - "outputs": [], - "execution_count": null + ] }, { "cell_type": "markdown", @@ -32,19 +32,19 @@ }, { "cell_type": "code", + "execution_count": 4, "metadata": { "ExecuteTime": { "end_time": "2024-06-21T10:22:36.351862Z", "start_time": "2024-06-21T10:22:36.348342Z" } }, + "outputs": [], "source": [ "from jmetal.problem import ZDT1\n", "\n", "problem = ZDT1()" - ], - "outputs": [], - "execution_count": 5 + ] }, { "cell_type": "markdown", @@ -55,12 +55,14 @@ }, { "cell_type": "code", + "execution_count": 6, "metadata": { "ExecuteTime": { "end_time": "2024-06-21T10:22:39.183018Z", "start_time": "2024-06-21T10:22:39.177335Z" } }, + "outputs": [], "source": [ "max_evaluations = 25000\n", "algorithm = NSGAII(\n", @@ -71,9 +73,7 @@ " crossover=SBXCrossover(probability=1.0, distribution_index=20),\n", " termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations),\n", ")" - ], - "outputs": [], - "execution_count": 6 + ] }, { "cell_type": "markdown", @@ -84,41 +84,30 @@ }, { "cell_type": "code", + "execution_count": 8, "metadata": { "ExecuteTime": { "end_time": "2024-06-21T10:22:49.745973Z", "start_time": "2024-06-21T10:22:42.260470Z" } }, - "source": [ - "algorithm.run()\n", - "front = get_non_dominated_solutions(algorithm.get_result())" - ], "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "[2024-06-21 12:22:42,261] [jmetal.core.algorithm] [DEBUG] Creating initial set of solutions...\n", - "[2024-06-21 12:22:42,265] [jmetal.core.algorithm] [DEBUG] Evaluating solutions...\n", - "[2024-06-21 12:22:42,266] [jmetal.core.algorithm] [DEBUG] Initializing progress...\n", - "[2024-06-21 12:22:42,267] [jmetal.core.algorithm] [DEBUG] Running main loop until termination criteria is met\n", - "[2024-06-21 12:22:49,545] [jmetal.core.algorithm] [DEBUG] Finished!\n" - ] - }, - { - "ename": "AttributeError", - "evalue": "'NSGAII' object has no attribute 'get_result'", - "output_type": "error", - "traceback": [ - "\u001B[0;31m---------------------------------------------------------------------------\u001B[0m", - "\u001B[0;31mAttributeError\u001B[0m Traceback (most recent call last)", - "Cell \u001B[0;32mIn[7], line 2\u001B[0m\n\u001B[1;32m 1\u001B[0m algorithm\u001B[38;5;241m.\u001B[39mrun()\n\u001B[0;32m----> 2\u001B[0m front \u001B[38;5;241m=\u001B[39m get_non_dominated_solutions(\u001B[43malgorithm\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mget_result\u001B[49m())\n", - "\u001B[0;31mAttributeError\u001B[0m: 'NSGAII' object has no attribute 'get_result'" + "[2024-06-22 10:23:06,510] [jmetal.core.algorithm] [DEBUG] Creating initial set of solutions...\n", + "[2024-06-22 10:23:06,516] [jmetal.core.algorithm] [DEBUG] Evaluating solutions...\n", + "[2024-06-22 10:23:06,518] [jmetal.core.algorithm] [DEBUG] Initializing progress...\n", + "[2024-06-22 10:23:06,519] [jmetal.core.algorithm] [DEBUG] Running main loop until termination criteria is met\n", + "[2024-06-22 10:23:09,500] [jmetal.core.algorithm] [DEBUG] Finished!\n" ] } ], - "execution_count": 7 + "source": [ + "algorithm.run()\n", + "front = get_non_dominated_solutions(algorithm.result())" + ] }, { "cell_type": "markdown", @@ -129,59 +118,82 @@ }, { "cell_type": "code", + "execution_count": 9, "metadata": { "ExecuteTime": { "end_time": "2024-06-21T10:22:49.756076Z", "start_time": "2024-06-21T10:22:49.755388Z" } }, + "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np" - ], - "outputs": [], - "execution_count": null + ] }, { "cell_type": "code", + "execution_count": 10, "metadata": { "ExecuteTime": { "end_time": "2024-06-21T10:22:49.762278Z", "start_time": "2024-06-21T10:22:49.762108Z" } }, + "outputs": [], "source": [ "objectives = [solution.objectives for solution in front]\n", "\n", "x = [_[0] for _ in objectives]\n", "y = [_[1] for _ in objectives]" - ], - "outputs": [], - "execution_count": null + ] }, { "cell_type": "code", + "execution_count": 11, "metadata": { "ExecuteTime": { "end_time": "2024-06-21T10:22:49.765093Z", "start_time": "2024-06-21T10:22:49.765015Z" } }, + "outputs": [], "source": [ "referenceFront = np.loadtxt(\"../resources/reference_front/ZDT1.pf\", delimiter=' ')\n", "referenceFront = referenceFront[referenceFront[:, 0].argsort()]" - ], - "outputs": [], - "execution_count": null + ] }, { "cell_type": "code", + "execution_count": 12, "metadata": { "ExecuteTime": { "end_time": "2024-06-21T10:22:49.767425Z", "start_time": "2024-06-21T10:22:49.767339Z" } }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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vKYq11+agBpzk56erri4OI9jffr0UXp6eon3HDt2TIWFhR6viuZwONzBRjo1V3/o0KG04ACAScLCwtS0aVNFRkbqtttuU1xcnFatWuU+73K5NGXKFLVs2VI1a9ZUx44d9c4770iSsrOzZbFY9J///Ed///vfZbFY3C03W7Zs0Q033KA6deooIiJCAwYM0L59+9zv26tXLw0fPlyPPPKIGjdu7P6Pd1nuGzFihMaMGaNGjRqpadOmevrppz1+pv3792vo0KGKiIhQeHi42rVrp08++cR9fu3atbrqqqtUs2ZNRUZGasSIESoqKvL5fF577TW1b99ektSqVStZLBZlZ2fr6aefVqdOnbRw4UK1bNlS4eHhkk4FoVtvvVV16tRRvXr11K9fPxUUFLjfr/i+f/7zn2rRooXq16+vu+66SwcPHpR0qjXtq6++0osvvuhuVcvOzi7PH2m5BFS4yc/PV0REhMexiIgIFRYW6siRIz7vmTJliurXr+9+RUZGVnhdmZmZ7mBTzOl0Kisrq8K/FwCYxTAMFRUVmfI689/Y8tiyZYu+/fZbjxaIKVOm6PXXX9eCBQv0888/69FHH9W9996rr776SpGRkcrLy1O9evU0e/Zs5eXlKT4+Xvv371fv3r3VuXNn/fDDD1q5cqUKCgrUr18/j++3ePFihYaG6ptvvtGCBQvKdV/t2rX1/fffa/r06XrmmWfcgczlcumGG27QN998ozfeeENbt27V1KlTZbPZJJ1qZbr++ut1xx13aPPmzVq6dKnWrl2r4cOH+3wm8fHx+uKLLyRJ69atU15envvzMSsrS++++67ee+89ZWRkyOVy6dZbb9Uff/yhr776SqtWrdKuXbsUHx/v8Z47d+7UBx98oE8++USffPKJvvrqK02dOlWS9OKLLyo2NlZDhgxRXl6ex/erFEYVIcl4//33S70mJibGmDx5ssex5cuXG5KMw4cP+7zn6NGjxoEDB9yvPXv2GJKMAwcOVFTpxp49ewyLxWJIcr9sNpuxZ8+eCvseAOBvR44cMbZu3WocOXLEMAzDOHTokMe/c/58HTp0qMx1Dxo0yLDZbEbt2rWNsLAwQ5JhtVqNd955xzCMU58LtWrVMr799luP+xISEoz+/fu7v65fv77x6quvur+eNGmScd1113ncU/yZsn37dsMwDKNnz55G586dPa4p631/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Y1arVXFxcUpPT/d5T3p6usf1ktSnT58Srz927JgKCws9XgAAoOzsdruSk5Pd3VU2m00LFy7U888/L4vF4vMeM7upTA03+/btk9PpVEREhMfxiIgI5efn+7wnPz+/XNdPmTJF9evXd7987b0BAABKd/q4nOzsbCUkJCgpKUm5ubn68ssvNWXKFK97nE6nsrKy/F6r6WNuKtu4ceN04MAB92vPnj1mlwQAQEA6cyp58bFrrrlG9957r9eUcpvNptatW/u7THPDTePGjWWz2VRQUOBxvKCgQE2bNvV5T9OmTct1fVhYmOrVq+fxAgAAFctX19Urr7xiyvYNpoab0NBQdenSRatXr3Yfc7lcWr16tWJjY33eExsb63G9JK1atarE6wEAgH/46royQ4gp3/U0SUlJGjRokLp27aru3btr9uzZKioq0uDBgyVJAwcO1AUXXODuyxs5cqR69uyp559/XjfddJOWLFmiH374QcnJyWb+GAAAQKdacMzebNP0cBMfH6/ff/9dTz31lPLz89WpUyetXLnSPWg4NzfXow/viiuu0Jtvvqknn3xSTzzxhGJiYvTBBx+oXbt2Zv0IAACgCjF9nRt/Y50bAAACT8CscwMAAFDRCDcAACCoEG4AAEBQIdwAAICgQrgBAABBhXADAACCCuEGAAAEFcINAAAIKoQbAAAQVEzffsHfihdkLiwsNLkSAABQVsWf22XZWKHahZuDBw9KkiIjI02uBAAAlNfBgwdVv379Uq+pdntLuVwu/fbbb6pbt64sFkuFvndhYaEiIyO1Z88e9q2qRDxn/+A5+wfP2X941v5RWc/ZMAwdPHhQzZs399hQ25dq13JjtVorfSv2evXq8RfHD3jO/sFz9g+es//wrP2jMp7z2VpsijGgGAAABBXCDQAACCqEmwoUFhamiRMnKiwszOxSghrP2T94zv7Bc/YfnrV/VIXnXO0GFAMAgOBGyw0AAAgqhBsAABBUCDcAACCoEG4AAEBQIdyU07x589SiRQuFh4erR48eWrduXanXv/3227r44osVHh6u9u3ba8WKFX6qNLCV5zmnpKToqquuUsOGDdWwYUPFxcWd9c8Fp5T397nYkiVLZLFYdNttt1VugUGivM95//79GjZsmJo1a6awsDC1adOGfzvKoLzPefbs2broootUs2ZNRUZG6tFHH9XRo0f9VG1g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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "plt.plot(referenceFront[:,0], referenceFront[:,1], color=\"black\")\n", "plt.scatter(x, y, color=\"black\", marker = '.')\n", @@ -190,9 +202,7 @@ "plt.ylabel(\"f2\")\n", "plt.title(problem.name())\n", "plt.legend([\"Reference front\" , \"NSGAII\"])" - ], - "outputs": [], - "execution_count": null + ] }, { "cell_type": "markdown", @@ -203,20 +213,20 @@ }, { "cell_type": "code", + "execution_count": 13, "metadata": { "ExecuteTime": { "start_time": "2024-06-21T10:22:29.043412Z" } }, + "outputs": [], "source": [ "# The OneZeroMax problem consists of maximizing the number of zeros and the number of ones in a binary string\n", "from jmetal.problem.multiobjective.unconstrained import OneZeroMax\n", "\n", "bit_string_length = 512\n", "problem = OneZeroMax(bit_string_length)" - ], - "outputs": [], - "execution_count": null + ] }, { "cell_type": "markdown", @@ -227,11 +237,13 @@ }, { "cell_type": "code", + "execution_count": 14, "metadata": { "ExecuteTime": { "start_time": "2024-06-21T10:22:29.045286Z" } }, + "outputs": [], "source": [ "max_evaluations = 25000\n", "algorithm = NSGAII(\n", @@ -242,9 +254,7 @@ " crossover=SPXCrossover(probability=1.0),\n", " termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations),\n", ")" - ], - "outputs": [], - "execution_count": null + ] }, { "cell_type": "markdown", @@ -255,17 +265,29 @@ }, { "cell_type": "code", + "execution_count": 16, "metadata": { "ExecuteTime": { "start_time": "2024-06-21T10:22:29.046837Z" } }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[2024-06-22 10:23:28,265] [jmetal.core.algorithm] [DEBUG] Creating initial set of solutions...\n", + "[2024-06-22 10:23:28,300] [jmetal.core.algorithm] [DEBUG] Evaluating solutions...\n", + "[2024-06-22 10:23:28,301] [jmetal.core.algorithm] [DEBUG] Initializing progress...\n", + "[2024-06-22 10:23:28,302] [jmetal.core.algorithm] [DEBUG] Running main loop until termination criteria is met\n", + "[2024-06-22 10:23:34,189] [jmetal.core.algorithm] [DEBUG] Finished!\n" + ] + } + ], "source": [ "algorithm.run()\n", - "front = get_non_dominated_solutions(algorithm.get_result())" - ], - "outputs": [], - "execution_count": null + "front = get_non_dominated_solutions(algorithm.result())" + ] }, { "cell_type": "markdown", @@ -276,28 +298,51 @@ }, { "cell_type": "code", + "execution_count": 17, "metadata": { "ExecuteTime": { "start_time": "2024-06-21T10:22:29.048263Z" } }, + "outputs": [], "source": [ "objectives = [solution.objectives for solution in front]\n", "\n", "x = [_[0] for _ in objectives]\n", "y = [_[1] for _ in objectives]" - ], - "outputs": [], - "execution_count": null + ] }, { "cell_type": "code", + "execution_count": 18, "metadata": { "ExecuteTime": { "end_time": "2024-06-21T10:22:29.094980Z", "start_time": "2024-06-21T10:22:29.051241Z" } }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkcAAAHHCAYAAAC1G/yyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABMbklEQVR4nO3de3zU1Z3/8fcwkBAQIrkQAhMM4AVXqbi0KpRRUtJiawt0mCBgVLasSLU2Aev9wqWoFFTI4hWq6C4QIJeCq7Ya2Ew3VuxPW1JExBZNlAwhAlGCiKDD+f3BznSG3GZym5nk9Xw85lFnvud85wzfJvPJ93zO51iMMUYAAACQJHUL9wAAAAAiCcERAACAH4IjAAAAPwRHAAAAfgiOAAAA/BAcAQAA+CE4AgAA8ENwBAAA4IfgCAAAwA/BEQAAgB+CIwBt5r333lN2drYGDRqk2NhYDRw4UNddd53ee++9dn1fl8sli8XS7MPlcrXrOBrywgsv+N7/jTfeqHfcGKO0tDRZLBb9+Mc/7vDxAaive7gHAKBzKC4u1vTp05WQkKBZs2ZpyJAhqqys1HPPPafCwkJt2LBBP/3pT9vlvS+88EL913/9V4PHvvjiC+Xm5iouLk7nn39+u7x/MHr27Kn169dr7NixAa//8Y9/VFVVlWJjY8M0MgBnIjgC0Goffvihrr/+eg0dOlT/+7//q+TkZN+xnJwc2e12XX/99dq5c6eGDh3a5u+fkpKi7OzsBo9lZ2frxIkTWr9+vQYOHNjq9/rmm2906tQpxcTEhNTvRz/6kQoKCvQf//Ef6t79n796169fr1GjRunQoUOtHhuAtsG0GoBWW7Zsmb788kutWrUqIDCSpKSkJD377LM6duyYli5dKklasGCBLBaL9u7dq5kzZ+rss89WfHy8/u3f/k1ffvllvfOvXbtWo0aNUlxcnBISEjRt2jTt27ev2XE9//zzWrdunX7+85/L4XAEHPv888+Vm5urtLQ0xcbG6txzz9VvfvMbnTp1ytemsrJSFotFjz76qFasWKFhw4YpNjZWu3fvliT9z//8j+x2u3r37q2zzz5bkyZN0vvvv9/gWKZPn67Dhw+rpKTE99rJkydVWFioGTNmNNjn0Ucf1ZgxY5SYmKi4uDiNGjVKhYWFAW3WrFkji8Wi559/PuD1hx9+WBaLRa+++mqz/04AzmAAoJUGDhxo0tPTm2yTnp5ubDabMcaY+fPnG0nm0ksvNQ6Hwzz11FPm3//9340kc+eddwb0W7x4sbFYLObaa681Tz31lFm4cKFJSkoy6enp5rPPPmv0/Xbv3m169eplvvWtb5njx48HHDt27Jj51re+ZRITE829995rnnnmGXPDDTcYi8VicnJyfO0qKiqMJPMv//IvZujQoWbJkiVm+fLl5uOPPzYlJSWme/fu5vzzzzdLly71jatfv36moqLCd441a9YYSebtt982Y8aMMddff73v2ObNm023bt2M2+0255xzjrnmmmsCxmmz2cwtt9xinnjiCfP444+byy67zEgyL7/8ckC7H//4xyY+Pt588sknxhhjdu7caWJiYsysWbOavCYAGkZwBKBVPv/8cyPJTJo0qcl2EydONJJMXV2dLzj62c9+FtDmpz/9qUlMTPQ9r6ysNFar1Tz00EMB7d59913TvXv3eq97ffnll+biiy82vXr1Mu+//36947/+9a9N7969zd///veA1++++25jtVp9QYY3OOrbt6/59NNPA9qOHDnS9O/f3xw+fNj32t/+9jfTrVs3c8MNN/he8w+OnnjiCdOnTx/z5ZdfGmOMycrKMhkZGcYY02Bw5G3ndfLkSXPxxReb733vewGvV1dXm4SEBPP973/fnDhxwlx66aVm8ODB5siRIw3++wBoGtNqAFrl6NGjkqQ+ffo02c57vK6uzvfanDlzAtrY7XYdPnzY16a4uFinTp3S1KlTdejQId9jwIABOu+881RaWtrge+Xk5GjXrl1auXKlhg8fXu94QUGB7Ha7+vXrF3DezMxMeTwe/e///m9A+ylTpgRMF1ZXV6u8vFwzZ85UQkKC7/Vvfetb+v73v9/oVNbUqVN1/Phxvfzyyzp69KhefvnlRqfUJCkuLs7335999pmOHDkiu92uv/71rwHtBgwYoCeffFIlJSWy2+0qLy/X888/r759+zZ6bgCNIyEbQKt4gx5vkNSYhoKowYMHB7Tp16+fpNOBQN++ffWPf/xDxhidd955DZ6zR48e9V7buHGjVq9erenTp+tnP/tZg/3+8Y9/aOfOnfXyo7w+/fTTgOdDhgwJeP7xxx9Lki644IJ6fS+88EK99tprOnbsmHr37h1wLDk5WZmZmVq/fr2+/PJLeTweOZ3OBscgSS+//LIWL16s8vJynThxwve6xWKp13batGlau3atXnnlFc2ePVvjx49v9LwAmkZwBKBV4uPjlZqaqp07dzbZbufOnRo0aFDA3Qyr1dpgW2OMJOnUqVOyWCz6/e9/32Dbs846K+D5hx9+qNmzZ2vYsGF69tlnGx3LqVOn9P3vf1933nlng8fPXPLvfwentWbMmKGbbrpJBw4c0A9/+EOdffbZDbYrKyvTxIkTdeWVV+qpp55SamqqevTooTVr1mj9+vX12h8+fFjvvPOOJGn37t06deqUunVjcgBoCYIjAK324x//WKtXr9Ybb7xRr46PdPqLvrKyUjfffHNI5x02bJiMMRoyZEizNYpOnjypa6+9Vl999ZU2bNjQ5DTfsGHD9MUXXygzMzOk8Xidc845kqQPPvig3rE9e/YoKSmp3l0jr5/+9Ke6+eab9dZbb2njxo2NvkdRUZF69uyp1157LaAG0po1axpsf+utt+ro0aN65JFHdM8992jFihWaN29eKB8LwP/hzwoArXbHHXcoLi5ON998sw4fPhxwrLa2VnPmzFGvXr10xx13hHReh8Mhq9WqhQsX+u4meRljAt7rzjvv1F/+8hc98sgj+va3v93keadOnart27frtddeq3fs888/1zfffNNk/9TUVI0cOVIvvviiPv/8c9/ru3bt0uuvv64f/ehHjfY966yz9PTTT2vBggX6yU9+0mg7q9Uqi8Uij8fje62yslKbN2+u17awsFAbN27UkiVLdPfdd2vatGm6//779fe//73JzwGgYdw5AtBq5513nl588UVdd911GjFiRL0K2YcOHVJ+fr6GDRsW0nmHDRumxYsX65577lFlZaUmT56sPn36qKKiQr/73e80e/Zs/epXv9Lvf/975eXlaeDAgUpOTtbatWsbPN+YMWM0dOhQ3XHHHXrppZf04x//WDNnztSoUaN07NgxvfvuuyosLFRlZaWSkpKaHNuyZcv0wx/+UKNHj9asWbN0/PhxrVy5UvHx8VqwYEGTfW+88cZmP/s111yjxx9/XFdffbVmzJihTz/9VE8++aTOPffcgCnMTz/9VD//+c+VkZGhX/ziF5KkJ554QqWlpZo5c6beeOMNpteAUIV1rRyATmXnzp1m+vTpJjU11fTo0cMMGDDATJ8+3bz77rsB7bxL+Q8ePBjwunfZu3+dIGOMKSoqMmPHjjW9e/c2vXv3NsOHDze33nqr+eCDDwLO19xjzZo1vnMePXrU3HPPPebcc881MTExJikpyYwZM8Y8+uij5uTJk8aYfy7lX7ZsWYOfd+vWrea73/2uiYuLM3379jU/+clPzO7duxv8TG+//XaT/3YNLeV/7rnnzHnnnWdiY2PN8OHDzZo1a3yf1cvhcJg+ffqYysrKgL5btmwxksxvfvObJt8XQH0WY864Vw0AANCFca8VAADAD8ERAACAH4IjAAAAPwRHAAAAfgiOAAAA/BAcAQAA+KEIZIhOnTql/fv3q0+fPg1u/ggAACKPMUZHjx7VwIEDmy2MSnAUov379ystLS3cwwAAAC2wb98+2Wy2JtsQHIXIu5nlvn37AnYXBwAAkauurk5paWlNbkrtRXAUIu9UWt++fQmOAACIMsGkxJCQDQAA4IfgCAAAwA/BEQAAgB9yjgAAaGMej0dff/11uIfR5cTExDS7TD8YBEcAALQRY4wOHDigzz//PNxD6ZK6deumIUOGKCYmplXnITgCAKCNeAOj/v37q1evXhQL7kDeIs3V1dUaPHhwq/7toyY4euihh/TKK6+ovLxcMTExDUblDf1D5Ofna9q0ab7nLpdL8+bN03vvvae0tDTdf//9mjlzZjuOHADQFXg8Hl9glJiYGO7hdEnJycnav3+/vvnmG/Xo0aPF54mahOyTJ08qKytLP//5z5tst2bNGlVXV/sekydP9h2rqKjQNddco4yMDJWXlys3N1f//u//rtdee62dRw8A6Oy8OUa9evUK80i6Lu90msfjadV5oubO0cKFCyVJL7zwQpPtzj77bA0YMKDBY88884yGDBmixx57TJJ04YUX6o033tDy5cs1YcKENh0vAKBrYiotfNrq3z5q7hwF69Zbb1VSUpIuu+wyPf/88zLG+I5t375dmZmZAe0nTJig7du3d/Qw6/F4PHK5XMrPz5fL5Wp11AsAAFomau4cBWPRokX63ve+p169eun111/XLbfcoi+++EK//OUvJZ1OlEtJSQnok5KSorq6Oh0/flxxcXH1znnixAmdOHHC97yurq7Nx11cXKycnBxVVVX5XrPZbMrLy5PD4Wjz9wMAAI0L652ju+++WxaLpcnHnj17gj7fAw88oO9+97u69NJLddddd+nOO+/UsmXLWjXGRx55RPHx8b5HWlpaq853puLiYjmdzoDASJKqqqo0ZcoUFRQUtOn7AQBwppkzZ8pisWjJkiUBr2/evDlgqmr16tW65JJLdNZZZ+nss8/WpZdeqkceeSSgT11dnR544AFddNFFiouLU2Jior7zne9o6dKl+uyzz+q9d35+vqxWq2699dZ6x1wulywWi28R1pnP20tYg6Pbb79d77//fpOPoUOHtvj8l19+uaqqqnx3fgYMGKCampqANjU1Nerbt2+Dd40k6Z577tGRI0d8j3379rV4PGfyeDzKyckJmPo707XXXqsFCxYwzQYAXUS40ix69uyp3/zmNw0GMJL0/PPPKzc3V7/85S9VXl6uP/3pT7rzzjv1xRdf+NrU1tbqiiuu0Jo1a/SrX/1Kf/7zn/XXv/5VDz30kHbs2KH169fXO+9zzz2nO++8U/n5+frqq6/a7fOFIqzTasnJyUpOTm6385eXl6tfv36KjY2VJI0ePVqvvvpqQJuSkhKNHj260XPExsb6+re1srKyeneMzmSM0cKFC/XEE09o1apVTLMBQCcWzjSLzMxM7d27V4888oiWLl1a7/hLL72kqVOnatasWb7XLrroooA29957rz755BP9/e9/18CBA32vn3POOfrBD35Q72ZARUWF3nzzTRUVFam0tFTFxcWaMWNGG3+y0EVNQvYnn3yi8vJyffLJJ/J4PCovL1d5ebkvYv3v//5v/fa3v9WuXbu0d+9ePf3003r44Yd12223+c4xZ84cffTRR7rzzju1Z88ePfXUU9q0aZPmzp0bls9UXV0ddNvDhw9rypQpKi4ubscRAQDCpbE0C7fbLafT2e6//61Wqx5++GGtXLmywT/cBwwYoLfeeksff/xxg/1PnTqljRs3Kjs7OyAw8nfmarI1a9bommuuUXx8vLKzs/Xcc8+1/oO0BRMlbrzxRiOp3qO0tNQYY8zvf/97M3LkSHPWWWeZ3r17m0suucQ888wzxuPxBJyntLTUjBw50sTExJihQ4eaNWvWhDSOI0eOGEnmyJEjrf5MpaWlDX6mph5paWnmm2++afV7AwDa1vHjx83u3bvN8ePHQ+77zTffGJvN1ujvfovF0q6//2+88UYzadIkY4wxV1xxhfnZz35mjDHmd7/7nfGGCvv37zdXXHGFkWTOP/98c+ONN5qNGzf6vmcPHDhgJJnHH3884Nz/+q//anr37m169+5tpk2b5nvd4/GYtLQ0s3nzZmOMMQcPHjQxMTHmo48+8rXxfk9+9tlnDT4/U1PXIJTv76i5c/TCCy/IGFPvMW7cOEnS1VdfrR07dujo0aP64osvVF5erptvvrneBnTjxo3Tjh07dOLECX344YdhrY5tt9tls9lC6rNv3z6VlZW104gAAOHQXJqFMabDfv//5je/0Ysvvqj3338/4PXU1FRt375d7777rnJycvTNN9/oxhtv1NVXX61Tp041er7f/e53Ki8v14QJE3T8+HHf6yUlJTp27Jh+9KMfSZKSkpL0/e9/X88//3z7fLAQRE1w1BlZrVbl5eWF3M/tdlMTCQA6kWDTLEJJx2ipK6+8UhMmTNA999zT4PGLL75Yt9xyi9auXauSkhKVlJToj3/8o5KTk3X22Wfrgw8+CGg/ePBgnXvuuerTp0/A688995xqa2sVFxen7t27q3v37nr11Vf14osvNhlsdQSCozBzOBzatGmTrFZr0H1yc3OVkZGhGTNmKCMjQ+np6eQiAUAUS01NbdN2rbVkyRL993//d7NFkv/lX/5FknTs2DF169ZNU6dO1dq1a7V///4m+x0+fFhbtmzRhg0bfDnE5eXl2rFjhz777DO9/vrrbfZZWqJTFYGMVllZWbJYLMrKygqq/aFDhwKee2sibdq0KehzAAAihzfNwu12N1jexWKxyGazyW63d8h4RowYoeuuu07/8R//4Xvt5z//uQYOHKjvfe97stlsqq6u1uLFi5WcnOxb9f3www/L5XLpsssu06JFi/Ttb39bvXv31s6dO7V9+3ZdfPHFkqT/+q//UmJioqZOnVovSftHP/qRnnvuOV199dUd8lkbwp2jCOF0OlVUVNToTs7B7Bczffp0FRYWtvXQAADtzD/N4szf997nK1asCGmWobUWLVoUML2VmZmpt956S1lZWTr//PM1ZcoU9ezZU9u2bfN9dyUmJur//b//pxtuuEHLli3TZZddphEjRmjBggW69tprtXr1akmnayb99Kc/bfC7bcqUKXrppZfq3QjoSBbTUIiKRtXV1Sk+Pl5HjhxR37592/z8Ho9HDz30kPLy8lRbW+t7PTk5WQcPHgzqHEVFRdRDAoAO9tVXX6miokJDhgxRz549W3SOhuocpaWlacWKFfxeD0JT1yCU72+CoxC1d3Dk5fF4VFZWpurqaqWmpsrtdis7Ozuovmlpaaqo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SQk4Z0pKig4cONDoe544cUJ1dXUBDwAAOgur1aoHH3xQRUVFstlsQffzbj1SVlbWjqMLj7AGR3fffXeDSdT+jz179vja33HHHdqxY4def/11Wa1W3XDDDb7oNSkpSfPmzdPll1+u73znO1qyZImys7O1bNmyVo3xkUceUXx8vO+RlpbWqvMBABCJvFW1S0tLtX79et1///1B9euMidphzTk6ePCgDh8+3GSboUOHKiYmpt7rVVVVSktL05tvvqnRo0c32PfJJ5/U4sWLVV1dLUkaPHiw5s2bp9zcXF+b+fPna/Pmzfrb3/7W4DlOnDihEydO+J7X1dUpLS2NnCMAQKfmcrmUkZERUp9I3pctlJyj7h00pgYlJycrOTm5RX1PnTolSQGBy5nKy8uVmprqez569Ght27YtIDgqKSlpNLiSpNjYWMXGxrZojAAARCu73S6bzSa3261g76O43W45nc6oStRuSFiDo2D9+c9/1ttvv62xY8eqX79++vDDD/XAAw9o2LBhvsDmxRdfVExMjC699FJJpzPwn3/+ef32t7/1nScnJ0dXXXWVHnvsMV1zzTXasGGD3nnnHa1atSosnwsAgEjlXe7vdDplsViCCpCMMbJYLMrNzdWkSZNktVo7YKRtLyqCo169eqm4uFjz58/XsWPHlJqaqquvvlr3339/wF2dX//61/r444/VvXt3DR8+XBs3bgyohTRmzBjfPOq9996r8847T5s3b9bFF18cjo8FAEBE8249kpOTo6qqqqD6eBO1XS6XrFarqqurlZqaKrvdHjXBUtTWOQoX6hwBALoa/61Hdu/ercWLFzfbJyEhQbW1tb7n4c5HCuX7m+AoRARHAICurCWJ2lL4C0d2+iKQAAAgPLyJ2qHsyyZFV+FIgiMAABA0/33ZWhIg7du3TytXrozoAIngCAAAhMSbqD1o0KCA1xMSEoLqP3fu3IjevJacoxCRcwQAwGn+idqpqanyeDz19jBtTEfnIEVNEUgAABC9rFarxo0b53vu8XiCLhzpPX7TTTcpPj5e48aNi5il/kyrAQCANtGSfKTa2lplZmZG1DQbwREAAGgzjeUjNce79UgkBEgERwAAoE05HA5VVlZq+fLlQffxTrPNmTNH69atk8vlCtuKNhKyQ0RCNgAAwfF4PEpPTw9p81p/bVlVmyKQAAAg7FpTE0kK31QbwREAAGg3Lc1BksJXVZvgCAAAtCtvDtLWrVuDLhTp5a2qXVZW1k6jq4/gCAAAtDur1arx48dr9erVslgsIU+zVVdXt9PI6iM4AgAAHaal02ypqantNKL6CI4AAECH8k6zlZaWau3atUpKSmq0rcViUVpamux2e4eNj+1DAABAh/PfeiQuLk5Op1OSApb8e6feVqxY0aFbi3DnCAAAhFVjU202m63DNqb1RxHIEFEEEgCA9uHxeFRWVqbq6mqlpqbKbre32R2jUL6/mVYDAAARwX+qLZyYVgMAAPBDcAQAAOCH4AgAAMAPwREAAIAfgiMAAAA/BEcAAAB+CI4AAAD8EBwBAAD4ITgCAADwQ4XsEHl3W6mrqwvzSAAAQLC839vB7JpGcBSio0ePSpLS0tLCPBIAABCqo0ePKj4+vsk2bDwbolOnTmn//v3q06ePLBZLuIfTrLq6OqWlpWnfvn1slBsFuF7Rg2sVPbhW0aW9rpcxRkePHtXAgQPVrVvTWUXcOQpRt27dZLPZwj2MkPXt25dfClGE6xU9uFbRg2sVXdrjejV3x8iLhGwAAAA/BEcAAAB+CI46udjYWM2fP1+xsbHhHgqCwPWKHlyr6MG1ii6RcL1IyAYAAPDDnSMAAAA/BEcAAAB+CI4AAAD8EBwBAAD4ITjqRCZOnKjBgwerZ8+eSk1N1fXXX6/9+/f7jldWVspisdR7vPXWWwHnKSgo0PDhw9WzZ0+NGDFCr776akd/lE6vuWslSTt37pTdblfPnj2VlpampUuX1jsP16r9VVZWatasWRoyZIji4uI0bNgwzZ8/XydPngxow89W+AVzrSR+tiLFQw89pDFjxqhXr146++yzG2zT0M/Vhg0bAtq4XC7967/+q2JjY3XuuefqhRdeaP3gDDqNxx9/3Gzfvt1UVlaaP/3pT2b06NFm9OjRvuMVFRVGktm6dauprq72PU6ePOlr86c//clYrVazdOlSs3v3bnP//febHj16mHfffTccH6nTau5aHTlyxKSkpJjrrrvO7Nq1y+Tn55u4uDjz7LPP+tpwrTrG73//ezNz5kzz2muvmQ8//NBs2bLF9O/f39x+++2+NvxsRYZgrhU/W5HjwQcfNI8//riZN2+eiY+Pb7CNJLNmzZqAn6vjx4/7jn/00UemV69eZt68eWb37t1m5cqVxmq1mj/84Q+tGhvBUSe2ZcsWY7FYfL+gvb/Ad+zY0WifqVOnmmuuuSbgtcsvv9zcfPPN7TnULu/Ma/XUU0+Zfv36mRMnTvja3HXXXeaCCy7wPedahc/SpUvNkCFDfM/52YpcZ14rfrYiz5o1a5oMjn73u9812vfOO+80F110UcBr1157rZkwYUKrxsS0WidVW1urdevWacyYMerRo0fAsYkTJ6p///4aO3asXnrppYBj27dvV2ZmZsBrEyZM0Pbt29t9zF1VQ9dq+/btuvLKKxUTE+NrN2HCBH3wwQf67LPPfG24VuFx5MgRJSQk1Hudn63Ic+a14mcr+tx6661KSkrSZZddpueff17Grzxje10rgqNO5q677lLv3r2VmJioTz75RFu2bPEdO+uss/TYY4+poKBAr7zyisaOHavJkycH/BI/cOCAUlJSAs6ZkpKiAwcOdNhn6CqaulaNXQfvsabacK3a1969e7Vy5UrdfPPNvtf42YpMDV0rfraiy6JFi7Rp0yaVlJRoypQpuuWWW7Ry5Urf8cauVV1dnY4fP97i9yU4inB33313gwlp/o89e/b42t9xxx3asWOHXn/9dVmtVt1www2+KDspKUnz5s3T5Zdfru985ztasmSJsrOztWzZsnB9vE6lLa8V2l+o10uS3G63rr76amVlZemmm27yvc7PVvtqy2uF9tWSa9WUBx54QN/97nd16aWX6q677tKdd97ZIT9X3dv9HdAqt99+u2bOnNlkm6FDh/r+OykpSUlJSTr//PN14YUXKi0tTW+99ZZGjx7dYN/LL79cJSUlvucDBgxQTU1NQJuamhoNGDCg5R+ii2jLa9XYdZDkuxZcq9YJ9Xrt379fGRkZGjNmjFatWtXs+fnZajttea342WpfoV6rUF1++eX69a9/rRMnTig2NrbRa9W3b1/FxcW1+H0IjiJccnKykpOTW9T31KlTkqQTJ0402qa8vFypqam+56NHj9a2bduUm5vre62kpKTR4Ar/1JbXavTo0brvvvv09ddf+/KQSkpKdMEFF6hfv36+NlyrlgvlerndbmVkZGjUqFFas2aNunVr/qY7P1ttpy2vFT9b7as1vweDUV5ern79+vk2pR09enS9Mgttcq1alc6NiPHWW2+ZlStXmh07dpjKykqzbds2M2bMGDNs2DDz1VdfGWOMeeGFF8z69evN+++/b95//33z0EMPmW7dupnnn3/ed54//elPpnv37ubRRx8177//vpk/fz5LWNtYMNfq888/NykpKeb66683u3btMhs2bDC9evWqt9yYa9X+qqqqzLnnnmvGjx9vqqqqApYUe/GzFRmCuVb8bEWOjz/+2OzYscMsXLjQnHXWWWbHjh1mx44d5ujRo8YYY1566SWzevVq8+6775p//OMf5qmnnjK9evUyDz74oO8c3qX8d9xxh3n//ffNk08+yVJ+/NPOnTtNRkaGSUhIMLGxsSY9Pd3MmTPHVFVV+dq88MIL5sILLzS9evUyffv2NZdddpkpKCiod65NmzaZ888/38TExJiLLrrIvPLKKx35UTq9YK6VMcb87W9/M2PHjjWxsbFm0KBBZsmSJfXOxbVqf2vWrDGSGnx48bMVGYK5VsbwsxUpbrzxxgavVWlpqTHmdN2qkSNHmrPOOsv07t3bXHLJJeaZZ54xHo8n4DylpaVm5MiRJiYmxgwdOtSsWbOm1WOzGEMGKAAAgBer1QAAAPwQHAEAAPghOAIAAPBDcAQAAOCH4AgAAMAPwREAAIAfgiMAAAA/BEcAuixjjGbPnq2EhARZLBaVl5eHe0gAIgDBEYAu6w9/+INeeOEFvfzyy6qurlZdXZ1+8pOfaODAgbJYLNq8eXO4hwggDAiOAHRZH374oVJTUzVmzBgNGDBAx44d0yWXXKInn3wy3EMDEEbdwz0AAAiHmTNn6sUXX5QkWSwWnXPOOaqsrNQPf/jDMI8MQLgRHAHokvLy8jRs2DCtWrVKb7/9tqxWa7iHBCBCEBwB6JLi4+PVp08fWa1WDRgwINzDARBByDkCAADwQ3AEAADgh+AIAADADzlHAPB/vvjiC+3du9f3vKKiQuXl5UpISNDgwYPDODIAHYngCAD+zzvvvKOMjAzf83nz5kmSbrzxRr3wwgthGhWAjmYxxphwDwIAACBSkHMEAADgh+AIAADAD8ERAACAH4IjAAAAPwRHAAAAfgiOAAAA/BAcAQAA+CE4AgAA8ENwBAAA4IfgCAAAwA/BEQAAgB+CIwAAAD//H90Au3LbwNNLAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "plt.scatter(x, y, color=\"black\")\n", "\n", @@ -305,42 +350,40 @@ "plt.ylabel(\"f2\")\n", "plt.title(problem.name())\n", "plt.legend([\"NSGAII\"])" - ], - "outputs": [], - "execution_count": null + ] }, { "cell_type": "code", + "execution_count": null, "metadata": { "ExecuteTime": { "start_time": "2024-06-21T10:22:29.053211Z" } }, - "source": [], "outputs": [], - "execution_count": null + "source": [] }, { "cell_type": "code", + "execution_count": null, "metadata": { "ExecuteTime": { "start_time": "2024-06-21T10:22:29.054167Z" } }, - "source": [], "outputs": [], - "execution_count": null + "source": [] }, { "cell_type": "code", + "execution_count": null, "metadata": { "ExecuteTime": { "start_time": "2024-06-21T10:22:29.055103Z" } }, - "source": [], "outputs": [], - "execution_count": null + "source": [] } ], "metadata": { @@ -359,7 +402,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.18" + "version": "3.12.4" } }, "nbformat": 4, diff --git a/notebooks/SolvingConstrainedProblems.ipynb b/notebooks/SolvingConstrainedProblems.ipynb index 5cef31d2..b8a863b9 100644 --- a/notebooks/SolvingConstrainedProblems.ipynb +++ b/notebooks/SolvingConstrainedProblems.ipynb @@ -106,7 +106,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 2, @@ -131,13 +131,14 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 4, "id": "1398092f", "metadata": {}, "outputs": [], "source": [ "from jmetal.algorithm.multiobjective import NSGAII\n", - "from jmetal.operator import PolynomialMutation, SBXCrossover\n", + "from jmetal.operator.mutation import PolynomialMutation\n", + "from jmetal.operator.crossover import SBXCrossover\n", "from jmetal.util.comparator import DominanceWithConstraintsComparator\n", "from jmetal.util.termination_criterion import StoppingByEvaluations\n", "from jmetal.util.solution import get_non_dominated_solutions\n", @@ -154,7 +155,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 5, "id": "9536cae3", "metadata": {}, "outputs": [ @@ -162,11 +163,11 @@ "name": "stderr", "output_type": "stream", "text": [ - "[2024-01-22 12:11:43,773] [jmetal.core.algorithm] [DEBUG] Creating initial set of solutions...\n", - "[2024-01-22 12:11:43,779] [jmetal.core.algorithm] [DEBUG] Evaluating solutions...\n", - "[2024-01-22 12:11:43,784] [jmetal.core.algorithm] [DEBUG] Initializing progress...\n", - "[2024-01-22 12:11:43,788] [jmetal.core.algorithm] [DEBUG] Running main loop until termination criteria is met\n", - "[2024-01-22 12:11:49,456] [jmetal.core.algorithm] [DEBUG] Finished!\n" + "[2024-06-22 10:24:21,788] [jmetal.core.algorithm] [DEBUG] Creating initial set of solutions...\n", + "[2024-06-22 10:24:21,795] [jmetal.core.algorithm] [DEBUG] Evaluating solutions...\n", + "[2024-06-22 10:24:21,797] [jmetal.core.algorithm] [DEBUG] Initializing progress...\n", + "[2024-06-22 10:24:21,797] [jmetal.core.algorithm] [DEBUG] Running main loop until termination criteria is met\n", + "[2024-06-22 10:24:26,498] [jmetal.core.algorithm] [DEBUG] Finished!\n" ] } ], @@ -176,17 +177,17 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 6, "id": "78bb9892", "metadata": {}, "outputs": [], "source": [ - "front = get_non_dominated_solutions(algorithm.get_result())" + "front = get_non_dominated_solutions(algorithm.result())" ] }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 7, "id": "ed4066c2-8f24-41e0-95d8-7ca534b2be67", "metadata": {}, "outputs": [], @@ -196,7 +197,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 8, "id": "92332a74-a845-4448-a8ea-79743ef7787b", "metadata": {}, "outputs": [], @@ -209,23 +210,23 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 9, "id": "0e7af84a-5604-4d17-82b7-ddc0e8862bb9", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 22, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkcAAAHHCAYAAAC1G/yyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/SrBM8AAAACXBIWXMAAA9hAAAPYQGoP6dpAABG9klEQVR4nO3de3hU1dn38d8wmABFEnOOmUCgWi1K0dpi0XdsUlJReVp0GEApLVCrRUAJKChPKUSqomBLUjygVsW2GoEkHmqtFTBjo0TridpqtcUmksQEkiAEFQgO+/3DZ6Yz5DQ7yZwy3891zVVn77V31rBL5mate93LYhiGIQAAAEiSBoS7AwAAAJGE4AgAAMAHwREAAIAPgiMAAAAfBEcAAAA+CI4AAAB8EBwBAAD4IDgCAADwQXAEAADgg+AIQL9jsVhUWFjYo2tzcnI0e/bsPu0PgOhCcAQg4vz973+X0+nUiBEjNGjQIGVlZem73/2u1q9fH+6uAYgBFvZWAxBJduzYoby8PA0fPlyzZs1SRkaGamtr9corr+iDDz7Qrl27ur3H4cOHNXDgQA0cOND0zz9y5IgGDBigE044oSfdB9APEBwBiCiTJk3Sa6+9pn/9619KTEz0O7d3716lpaV1eN2xY8fU1tamQYMGhaCXAPozptUARJQPPvhAZ5xxRrvASJJfYGSxWLRgwQI9+uijOuOMMxQfH6/nnnvOe84356iwsFAWi0W7du3S7NmzlZiYqISEBM2ZM0efffaZ38/wzTl6/fXXZbFY9Mgjj7Try5///GdZLBY988wzkqQPP/xQ8+bN02mnnabBgwcrOTlZU6dOVU1Njd91R48e1c0336xTTz1VgwYNUnJysv7f//t/2rp1aw/+tAAEg/kxZwAIohEjRqiqqkr/+Mc/dOaZZ3bZ9oUXXtDmzZu1YMECpaSkKCcnp8v206ZN08iRI7V69Wq9+eab+s1vfqO0tDTdcccdHbb/xje+oVGjRmnz5s2aNWuW37lNmzbppJNO0sSJEyVJr732mnbs2KHLL79cNptNNTU1uvfee5Wbm6t3331XQ4YMkfRFoLZ69Wr95Cc/0bhx49Ta2qrXX39db775pr773e8G+KcEIJgIjgBElBtuuEEXX3yxzjrrLI0bN052u10TJkxQXl5euzyg999/X3//+981evTogO599tln68EHH/S+b2lp0YMPPthpcCRJ06dP15133qmPP/5YJ510kiSpra1NTzzxhBwOh7dPkyZNktPp9Lv2e9/7nsaPH6+ysjL98Ic/lCT98Y9/1CWXXKL7778/oD4DCD2m1QBElO9+97uqqqrS97//ff3tb3/TmjVrNHHiRGVlZenpp5/2a/vtb3874MBIkubOnev33m63q6WlRa2trZ1eM336dB09elTl5eXeY88//7z279+v6dOne48NHjzY+99Hjx5VS0uLTjnlFCUmJurNN9/0nktMTNQ777yjf//73wH3G0BoERwBiDjf/OY3VV5ero8//lh//etftWzZMh08eFBOp1Pvvvuut93IkSNN3Xf48OF+7z0jQR9//HGn14wdO1ann366Nm3a5D22adMmpaSk6Dvf+Y732KFDh7RixQplZ2crPj5eKSkpSk1N1f79+3XgwAFvu1WrVmn//v36yle+ojFjxmjJkiV6++23TX0OAMFFcAQgYsXFxemb3/ymbrvtNt177706evSotmzZ4j3vO1oTCKvV2uHx7hbtTp8+XRUVFWpubtaRI0f09NNPa8qUKX6lAq699lrdeuutmjZtmjZv3qznn39eW7duVXJyso4dO+Ztd8EFF+iDDz7QQw89pDPPPFO/+c1v9PWvf12/+c1vTH0WAMFDzhGAqPCNb3xDktTQ0BDynz19+nTdfPPNKisrU3p6ulpbW3X55Zf7tSktLdWsWbP0y1/+0nvs8OHD2r9/f7v7JSUlac6cOZozZ44++eQTXXDBBSosLNRPfvKTYH8UAAFg5AhARKmoqOhwJOfZZ5+VJJ122mmh7pK++tWvasyYMdq0aZM2bdqkzMxMXXDBBX5trFZru36vX79ebrfb71hLS4vf+6FDh+qUU07RkSNHgtN5AKYxcgQgolx77bX67LPPdNlll+n0009XW1ubduzYoU2bNiknJ0dz5swJS7+mT5+uFStWaNCgQbryyis1YID/vy3/53/+R7/73e+UkJCg0aNHq6qqStu2bVNycrJfu9GjRys3N1fnnHOOkpKS9Prrr6u0tFQLFiwI5ccB0AWCIwAR5c4779SWLVv07LPP6v7771dbW5uGDx+uefPmafny5R0WhwyF6dOna/ny5frss8/8Vql5FBcXy2q16tFHH9Xhw4d1/vnna9u2bd46SB7XXXednn76aT3//PM6cuSIRowYoVtuuUVLliwJ1UcB0A22DwEAAPBBzhEAAIAPgiMAAAAfBEcAAAA+CI4AAAB8EBwBAAD4IDgCAADwQZ0jk44dO6aPPvpIJ554oiwWS7i7AwAAAmAYhg4ePKiTTz65XRHX4xEcmfTRRx8pOzs73N0AAAA9UFtbK5vN1mUbgiOTTjzxRElf/OEOGzYszL0BAACBaG1tVXZ2tvd7vCsERyZ5ptKGDRtGcAQAQJQJJCWGhGwAAAAfBEcAAAA+CI4AAAB8kHMEAEAfc7vdOnr0aLi7EXPi4uK6XaYfCIIjAAD6iGEYamxs1P79+8PdlZg0YMAAjRw5UnFxcb26D8ERAAB9xBMYpaWlaciQIRQLDiFPkeaGhgYNHz68V3/2BEcAAPQBt9vtDYySk5PD3Z2YlJqaqo8++kiff/65TjjhhB7fh4RsAAD6gCfHaMiQIWHuSezyTKe53e5e3YfgCACAPsRUWvj01Z8902oRwu12q7KyUg0NDcrMzJTdbpfVag13twAAiDkERxGgvLxcCxcuVF1dnfeYzWZTcXGxHA5HGHsGAEDsYVotzMrLy+V0Ov0CI0mqr6+X0+lUeXl5mHoGAIgVs2fPlsVi0e233+53/Mknn/SbqnrggQc0duxYDR06VImJiTr77LO1evVqv2taW1v185//XGeccYYGDx6s5ORkffOb39SaNWv08ccft/vZJSUlslqtmj9/frtzLpdLFovFWxrh+PfBQnAURm63WwsXLpRhGO3OeY4VFBT0OrEMABA93G63XC6XSkpK5HK5QvYdMGjQIN1xxx0dBjCS9NBDD6mgoEDXXXeddu7cqZdffllLly7VJ5984m2zb98+fetb39LDDz+sG264Qa+++qrefPNN3XrrrXrrrbf02GOPtbvvgw8+qKVLl6qkpESHDx8O2uczI2an1e6++26tXbtWjY2NGjt2rNavX69x48aFtA+VlZXtRox8GYah2tpaVVZWKjc3N3QdAwCERTjTLPLz87Vr1y6tXr1aa9asaXf+6aef1rRp03TllVd6j51xxhl+bf73f/9Xu3fv1r/+9S+dfPLJ3uMjRozQhRde2G4woLq6Wjt27FBZWZkqKipUXl6uGTNm9PEnMy8mR442bdqkxYsXa+XKlXrzzTc1duxYTZw4UXv37g1pPxoaGvq0HQAgeoU7zcJqteq2227T+vXrO/yHe0ZGhl555RV9+OGHHV5/7Ngxbdq0STNnzvQLjHwdv5rs4Ycf1qRJk5SQkKCZM2fqwQcf7P0H6QMxGRz96le/0lVXXaU5c+Zo9OjR2rBhg4YMGaKHHnoopP3IzMzs03YAgOgUKWkWl112mc466yytXLmy3bmVK1cqMTFROTk5Ou200zR79mxt3rxZx44dkyQ1NTVp//79Ou200/yuO+ecczR06FANHTpUV1xxhff4sWPHtHHjRs2cOVOSdPnll+ull15SdXV1ED9hYGIuOGpra9Mbb7yh/Px877EBAwYoPz9fVVVVIe2L3W6XzWbrsi5DcnKy7HZ7CHsFAAg1M2kWwXbHHXfokUce0T//+U+/45mZmaqqqtLf//53LVy4UJ9//rlmzZqliy66yBsgdeSJJ57Qzp07NXHiRB06dMh7fOvWrfr00091ySWXSJJSUlL03e9+N+QDFR2JueCoublZbrdb6enpfsfT09PV2NjYrv2RI0fU2trq9+orVqtVxcXFHf5LwaOlpUVPPfVUn/1MAEDkiaQ0iwsuuEATJ07UsmXLOjx/5plnat68efr973+vrVu3auvWrXrxxReVmpqqxMREvf/++37thw8frlNOOUUnnnii3/EHH3xQ+/bt0+DBgzVw4EANHDhQzz77rB555JEug61QiLngyKzVq1crISHB+8rOzu7T+0+ePLnLPXgsFgsr1gCgn4u0NIvbb79df/jDH7qdURk9erQk6dNPP9WAAQM0bdo0/f73v9dHH33U5XWef/g//vjj2rlzp/f11ltv6eOPP9bzzz/fZ5+lJ2IuOEpJSZHVatWePXv8ju/Zs0cZGRnt2i9btkwHDhzwvmpra/u0P5WVlWppaen0fCiHUgEA4dFdmoXFYlF2dnbI0izGjBmjH/zgB/r1r3/tPXbNNdfoF7/4hV5++WV9+OGHeuWVV/SjH/1IqampGj9+vCTptttuU1ZWlsaNG6eHHnpIb7/9tj744AM98cQTqqqq8u788Lvf/U7JycmaNm2azjzzTO9r7NixuuSSS8KemB1zwVFcXJzOOeccbd++3Xvs2LFj2r59u/fh+oqPj9ewYcP8Xn0pkoZSAQDh4UmzkNqv6PK8LyoqCum2UqtWrfKb3srPz9crr7yiqVOn6itf+YqmTJmiQYMGafv27d4ZkOTkZP31r3/Vj370I61du1bjxo3TmDFjVFhYqOnTp+uBBx6Q9EXNpMsuu6zDYHDKlCl6+umn1dzcHJoP2gGL0VXCSz+1adMmzZo1S/fdd5/GjRunoqIibd68We+99167XKTjtba2KiEhQQcOHOiTQMnlcikvL6/bdhUVFdQ6AoAIdvjwYVVXV2vkyJEaNGhQj+7RUZ2j7OxsFRUVsZ1UALp6Bma+v2OyCOT06dPV1NSkFStWqLGxUWeddZaee+65bgOjYPAMpdbX13eYmG2xWGSz2VixBgAxwOFwaPLkyWxEHmYxGRxJ0oIFC7RgwYJwd8M7lOp0OmWxWPwCpHANpQIAwsdqtTJTEGYxl3MUiRwOh0pLS5WVleV3PCUlRQsXLlRSUhKr1QAACBGCowjhcDhUU1OjiooKFRQUKDU1VU1NTSoqKlJeXp4yMjK0aNGikG5CCABALCI4iiBWq1X79u1TcXGxmpqa/M41Nzd7A6WcnJyg77EDAOiZGFznFDH66s+e4CiCdLW3jq9QbUIIAAjcCSecIEn67LPPwtyT2NXW1iZJvc7TjdmE7EjU3d46HoZheCtnT548mWRtAIgAVqtViYmJ2rt3ryRpyJAhXe6dib517NgxNTU1aciQIRo4sHfhDcFRBDFT6NG3cjarGgAgMnh2WvAESAitAQMGaPjw4b0OSgmOIkhP9syhcjYARA6LxaLMzEylpaXp6NGj4e5OzImLi9OAAb3PGCI4iiDdFYTsSFeb1gIAwsNqtZLyEMVIyI4gvnvrBOqSSy7R0qVLg9QjAABiD8FRhPEUhLTZbAG1d7vdWrt2LQESAAB9JCY3nu2Nvt54tjNut1uVlZV66qmn9Lvf/U4tLS1dtrdarfrss88UFxcXtD4BABCtzHx/M3IUoTx766xbt07Lli3rtr3b7dY999wTgp4BANC/ERxFgZqamoDalZaWegtgAQCAniE4igJf/vKXA2r38ssva8iQIeQfAQDQCwRHUWDevHkBLwklQRsAgN4hOIoCcXFxWrx4salrfvWrXzHFBgBAD1AEMkqsWbNG0hdBj9vt7ra92+3W4sWLdf755yszM1N2u52CZAAABICl/CaFail/Z9ra2vSd73xHL7/8sqnrbDabiouL5XA4gtQzAAAiF0v5+7G4uDg5nU7T19XX18vpdKq8vDwIvQIAoP9g5MikcI8cSV+MHg0ZMiSg6TVfFotFNptN1dXVTLEBAGIKI0f9XE8StCXJMAzV1tbK5XL1facAAOgnCI6i1Jo1a7RkyZIejQBddtllKi0tDUKvAACIfkyrmRQJ02q+2tradM899+iDDz6QYRi6++67A752yZIl3lVwAAD0Z2a+vwmOTIq04MiX2+1WTk6O6uvrFehj3bx5s6ZOnRrkngEAEF7kHMUoq9Wq4uJiU9fMnz/fdGI3AAD9GcFRP+NwOFRaWqqkpKSA2jc1NamysjLIvQIAIHpQIbsfcjgcSkhIUH5+fkDt6+vr5XK51NDQQDVtAEDMI+fIpEjOOfLldruVmZmppqambtumpKSoubnZ+55q2gCA/oacI8hqteqee+4JqK1vYCRRTRsAENsIjvoxp9OpJUuWmL7OMAwZhqGf/vSnev7551VSUiKXy0XiNgAgJjCtZlK0TKv52rJli+bNm+c3QpSamhrQlJsvptsAANGKOkdBFI3BkfRFDlJlZaU36bq+vl4zZ840dQ+LxSJJKi0tJUACAEQVgqMgitbg6Hgul0t5eXmmr2PzWgBANCIhG92y2+2y2Wze0aBAeTavpTYSAKC/IjiKUT2ppu2roaGhD3sDAEDkIDiKYZ5q2ikpKaav3bNnD6vYAAD9EjlHJvWXnCNfbW1tstlsAa9es1qtfgERq9gAAJGOnCOYEhcXpw0bNshisQSUg3T8SBFFIwEA/QnBEST9d4otKyur0zadrU7zFI286qqrtH37dqbZAABRjWk1k/rjtJov33pIaWlpkqS9e/dqz549WrRoUUD3YJoNABBpzHx/DwxRnxAlrFarcnNz2x0vKSkJ+B6eaTaKRQIAohHTaghIZmZmwG09g5EFBQVMsQEAog4jRwiIp2hkfX29ApmJ9RSLXL9+vdLT05WZmSm73U5VbQBAxGPkCAHxLRpppqr2okWLNGPGDOXl5SknJ4cVbQCAiEdwhIAFsqKtKyz5BwBEA4IjmOJwOFRTU6Nt27YpKSnJ1LWeJf9z585VW1tbkHoIAEDvEBzBNKvVqgkTJuiBBx4IuHCkr6amJmVlZTGCBACISARH6LHeTLM1NzczxQYAiEgUgTSpvxeB7AnfwpFmikVaLBbZbDZVV1ezig0AEFRmvr8JjkwiOOqa2+1WTk5OwEv+JamioqLDwpMAAPQVNp5F2Pgu+Q9UQ0NDkHoDAIB5BEfoc55cpNTU1IDam6m+DQBAsDGtZhLTaoFra2tTVlaWmpubOzzfUc6Rb/4SVbUBAH2FaTVEhLi4ON13330dLvf3vC8qKvIGP+Xl5crJyVFeXh5VtQEAYUNwhKDqbLm/zWZTaWmpHA6HpC8CI6fTqbq6Or92VNUGAIQa02omMa3WM11Nl3lWuB0fGHmw5B8A0Ftmvr8HhqhPiHFWq7XT5fqVlZWdBkbSF9uO1NbWqrKykiX/AICgIzhC2AW6lL+hoYGEbQBA0BEcIewCXcr/73//u930m81mU3FxsTd3CQCA3iLnyCRyjvped1W1LRaLkpKStG/fvk6rbm/evFlTp04NdlcBAFGKpfyIKr5VtTta8u8JiLqK46+44gqVlpYGr5MAgJhBcISI0NWS/5tvvlktLS1dXu92uzV16lSW/AMAeo3gCBHD4XCopqZGFRUVeuyxx1RRUaHq6mqdeuqpAd+joKBAbrc7iL0EAPR3JGQjonS05N/M3mu1tbUqLCzUhAkTWMkGAOgRRo4Q8ex2u2w2W8Dtb7nlFuXl5SktLU2rVq1iJAkAYArBESKeb8K2Gfv27dPKlSuVnp5OLhIAIGD9KjjKycnxbnLqed1+++1+bd5++23Z7XYNGjRI2dnZWrNmTZh6CzMcDoc2b97co2mylpYW9mcDAASsXwVHkrRq1So1NDR4X9dee633XGtrqy688EKNGDFCb7zxhtauXavCwkLdf//9YewxAjV16lQ9/vjjPbrWMAyStQEAAel3wdGJJ56ojIwM7+tLX/qS99yjjz6qtrY2PfTQQzrjjDN0+eWX67rrrtOvfvWrMPYYZjidTpWVlZnKQfLwJGu7XC6CJABAp/pdcHT77bcrOTlZZ599ttauXavPP//ce66qqkoXXHCB4uLivMcmTpyo999/Xx9//HGH9zty5IhaW1v9Xggv3yX/y5cvN3WtJ1k7JyeHaTYAQIf6VXB03XXX6fHHH1dFRYV++tOf6rbbbtPSpUu95xsbG5Wenu53jed9Y2Njh/dcvXq1EhISvK/s7OzgfQAEzLPkv7CwsEejSHV1dZoyZYoWLVrESBIAwE/EB0c33XRTuyTr41/vvfeeJGnx4sXKzc3V1772Nc2dO1e//OUvtX79eh05cqTHP3/ZsmU6cOCA91VbW9tXHw19oKcr2TyKiooYSQIA+In4IpDXX3+9Zs+e3WWbUaNGdXj83HPP1eeff66amhqddtppysjI0J49e/zaeN5nZGR0eI/4+HjFx8eb7zhCxuFwqKysTFdffXW324x0pr6+Xk6nU6WlpXI4HH3cQwBANIn44Cg1NVWpqak9unbnzp0aMGCA0tLSJEnjx4/Xz372Mx09elQnnHCCJGnr1q067bTTdNJJJ/VZnxF6DodDkydP1q233qri4mLt27fP1PWeTW2vuuoqJSQkKDc3l+raABCjIn5aLVBVVVUqKirS3/72N/3nP//Ro48+qkWLFmnmzJnewGfGjBmKi4vTlVdeqXfeeUebNm1ScXGxFi9eHObeoy9YrVatWLFCe/fu7VGytvRF4cj8/Hym2QAghlkMzz+Zo9ybb76pefPm6b333tORI0c0cuRI/fCHP9TixYv9psXefvttzZ8/X6+99ppSUlJ07bXX6sYbbwz457S2tiohIUEHDhzQsGHDgvFR0EfcbrdycnJUX18vs/83t1gsksQ0GwD0E2a+v/tNcBQqBEfRpby8XE6nU5J6FCDZbDZVV1czxQYAUc7M93e/mVYDOuJwOFRaWqqsrCzT1xqGodraWlVWVgahZwCASEVwhH7Pt2hkQUGBpP9OmwWioaEhSD0DAEQigiPEBE/RyHXr1qmsrMzUSFJmZmYQewYAiDQER4g5npGkbdu2KSkpqdN2FotF2dnZstvtIewdACDcIr7OERAMVqtVEyZM0AMPPNBhwrZn2q2oqMgvGdvtdquyslINDQ3KzMz0Bk7HHyOBGwCiF8ERYponYXvhwoWqq6vzHrfZbCoqKvJbxl9eXt6uXXJysiT5Vea22WwqLi6mBAAARCmW8pvEUv7+qaMRId/RH09JgED+ulAjCQAiD3WOgojgKPZ4ikn6jhh1hxpJABBZqHME9KHKykpTgZFEjSQAiGYER0A3elPn6KmnnurDngAAQoHgCOhGb+ocFRUVsYEtAEQZgiOgG3a7XTabzVRVbV8FBQVyu9193CsAQLCwlB/ohtVqVXFxsZxOpywWi+kNbGtra+VyuWS1WqmFBABRgNVqJrFaLXZ1VOdo6NCh+uSTT7q9NikpSfv27fO+pxYSAIQWS/mDiOAoth1fD8ntdis/P9/0faiFBAChRXAURARH8OWpgVRfX296uo1aSAAQOtQ5AkLEk48kyXTCtqcWksvlCkLPAAA9RXAE9JJnf7asrCy/455917ozbdo0lvsDQARhWs0kptXQmd7kI1ksFvKPACCIzHx/s5Qf6CNWq1W5ubne9263WzabLeB8pLlz5+rQoUPKyspiqT8AhBHTakCQ+OYjdccwDDU1NWnmzJnKy8tTTk4OU20AECYER0AQefKRkpKSTF1XX18vp9NJgAQAYUBwBASZw+HQ5s2bTV3jmYZj6xEACD2CIyAEcnNzTe/P5lnqX1hYKJfLRZAEACFCcASEQG/qId1yyy3Ky8tTWlqaVq1aRZAEAEFGcASESGf1kAK1b98+rVy5Uunp6eQiAUAQERwBIeRwOFRTU6OKigr9/ve/V0pKiul7tLS0kKwNAEFEnSMgxHzrIQ0ePFhOp1OSTO3NZhgGdZEAIEgYOQLCqDdTbdRFAoDgIDgCwsx3qm358uU9ugd1kQCg77C3mknsrYZgcrvdysnJUV1dXY+uT0pK0ubNm5Wbm8s0GwD4MPP9zcgREEHMbDnSkX379ik/P59pNgDoBYIjIMI4HA6VlZUpOTm5x/dgmg0Aeo7gCIhADodDe/bs0c0332x6Xzbpi9VsnhVtbW1tQeghAPRfBEdAhLJarVqxYoX27t3rrYuUmppqqsJ2U1OTsrKyGEECABOocwREuI7qIlksloDrIjU3N8vpdKq0tFQOhyOIPQWA/oGRIyCK9KYuUkFBAfuyAUAACI6AKOOpi7Rt27aA85EMw1Btba0qKyuD3DsAiH4ER0AUslqtmjBhgh544AFTOUgNDQ1B7BUA9A8ER0AU80yzpaamBtQ+MzPT+99ut1sul0slJSVyuVxMuQHA/yE4AqKcw+FQXV2dUlJSOm1jsViUnZ0tu90uSSovL1dOTo7y8vI0Y8YM9mcDAB8ER0A/EBcXp/vuu08Wi6XdNJvnfVFRkaxWq8rLy+V0OtttUULhSAD4AsER0E90tpLNZrN5l/G73W4tXLiwwzIAFI4EgC+w8axJbDyLSOd2u1VZWamGhgZlZmbKbrd7N6F1uVzKy8vr9h6pqanasGEDdZEA9Btmvr8pAgn0M75FI48X6Gq1pqYmCkcCiFlMqwExxHe1WiAoHAkgFhEcATHEbrfLZrMFVBuJwpEAYhXBERBDrFariouLTV1D4UgAsYbgCIgxnlVtXdVF8uWZiqNoJIBYQXAExCCHw6H6+vouK2v7Fo6kaCSAWEJwBMSouLg4bdiwodvCkU899RRFIwHEFIIjIIZ1Vzhy8uTJXRaNlFjRBqD/oQikSRSBRH/UWeHIQItGLl++XBMmTPArOAkAkcTM9zfBkUkER4glJSUlmjFjRsDtbTabiouLNXny5E6rdANAOFAhG0CfMFs0sr6+XlOmTFFycrJaWlq8xz1BE9W2AUQDco4AdMpM0Ujpv3lIvoGRRPI2gOhCcASgU75FIwMNkDpC8jaAaEJwBKBLna1oM4vtSABEC4IjAN1yOByqqalRRUWFli9f3qt7sR0JgEhHcAQgIFarVbm5uSosLDSVh3Q8s0neABBqBEcATOlpHpLvdiQAEMkIjgCY1lkeUnJysqT2QZPvdiTUOwIQ6QiOAPSIbx7SY489poqKCu3Zs0dlZWWdbkfiW+fI7XbL5XKppKRELpeLVWwAIgYVsk2iQjbQvc62I/EoLy/XwoUL/TazpVAkgGBi+5AgIjgCeqe8vFxOp7PdZraeqbfjR5gAoC+Y+f6Ommm1W2+9Veedd56GDBmixMTEDtvs3r1bkyZN0pAhQ5SWlqYlS5bo888/92vjcrn09a9/XfHx8TrllFO0cePG4HcegKQvRpQWLlzYLjCSKBQJIHJETXDU1tamqVOn6pprrunwvNvt1qRJk9TW1qYdO3bokUce0caNG7VixQpvm+rqak2aNEl5eXnauXOnCgoK9JOf/ER//vOfQ/UxgJhWWVnpN5V2PApFAogEUbPx7M033yxJnY70PP/883r33Xe1bds2paen66yzztIvfvEL3XjjjSosLFRcXJw2bNigkSNH6pe//KUk6atf/apeeuklrVu3ThMnTgzVRwFiVqAFICkUCSCcombkqDtVVVUaM2aM0tPTvccmTpyo1tZWvfPOO942+fn5ftdNnDhRVVVVnd73yJEjam1t9XsB6JlAC0CmpaWxkg1A2PSb4KixsdEvMJLkfd/Y2Nhlm9bWVh06dKjD+65evVoJCQneV3Z2dhB6D8QGu93eZXVti8Wi5ORkzZ49W3l5eZoxY4by8vKUk5Oj8vLyEPcWQKwKa3B00003yWKxdPl67733wtlFLVu2TAcOHPC+amtrw9ofIJp1VV3bYrHIMAy1tLS0y0uqr6+X0+kkQAIQEmHNObr++us1e/bsLtuMGjUqoHtlZGTor3/9q9+xPXv2eM95/tdzzLfNsGHDNHjw4A7vGx8fr/j4+ID6AKB7nurax9c5ysrK0qFDh9TS0tLuGsMwZLFYVFBQoMmTJ1NlG0BQhTU4Sk1NVWpqap/ca/z48br11lu1d+9epaWlSZK2bt2qYcOGafTo0d42zz77rN91W7du1fjx4/ukDwAC43A4NHnyZL9CkW63u11OoC/flWx2u73LIpMA0BtRs1pt9+7d2rdvn3bv3i23262dO3dKkk455RQNHTpUF154oUaPHq0f/vCHWrNmjRobG7V8+XLNnz/fO/Izd+5c3XXXXVq6dKl+/OMf64UXXtDmzZv1xz/+MYyfDIhNVqtVubm53vclJSUBXffUU0/phz/8YYfVtY8PuAiaAPSIESVmzZplSGr3qqio8LapqakxLr74YmPw4MFGSkqKcf311xtHjx71u09FRYVx1llnGXFxccaoUaOMhx9+2FQ/Dhw4YEgyDhw40AefCoBHRUVFh3/HA3lZLBZDkpGcnOx33GazGWVlZeH+aAAigJnvb7YPMYntQ4DgcLvdysnJUX19fYcVtC0WiwYMGGBqWT9bkgDw6JfbhwDo3wJZyWa23pHBliQAesBUcHTo0CG99NJLevfdd9udO3z4sH7729/2WccAxB7PSrasrCy/4zabTQUFBT26p8GWJABMCjg4+te//qWvfvWruuCCCzRmzBh9+9vf9ivxf+DAAc2ZMyconQQQOxwOh2pqalRRUaHHHntMFRUVqq6u1uTJk3t1X7YkARCogIOjG2+8UWeeeab27t2r999/XyeeeKLOP/987d69O5j9AxCDPCvZrrjiCuXm5spqtXZbXbs7gW5dAgABB0c7duzQ6tWrlZKSolNOOUV/+MMfNHHiRNntdv3nP/8JZh8BoMucpEA0Nzf3dZcA9FMBB0eHDh3SwIH/LYtksVh077336nvf+56+/e1v61//+ldQOggAHp3lJCUlJXV77bx589TW1hasrgHoRwIuAnn66afr9ddf11e/+lW/43fddZck6fvf/37f9gwAOtCT6tqS1NTUpKysLN13330s6wfQpYBGjt5++219//vf77SC7V133aUrrriiw9okANDXjs9J2rt3b0DXNTc3s4EtgG4FVATSarWqoaFBaWlpGjVqlF577TUlJyeHon8RhyKQQORxuVzKy8sLqK3FYpHNZlN1dTVbiwAxxMz3d0DTaomJiaqurlZaWppqamp07NixPukoAPQFz0q2zqpr+/LUPXK5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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkcAAAHHCAYAAAC1G/yyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABI5ElEQVR4nO3de3hU1b3/8c8wkAAVEnOBDJlgwOsPpWpttdiOJympaDkt7SRctQWPhSJekqCiHC0XHxQLVYjUK1XxVA2XJF6qlgoxY9NjtN6oFwoVGySJSQiJJKhAcNi/PzwznSG32UkmM5N5v55nnjp7r72zhl0yX9b6ru+yGIZhCAAAAJKkAaHuAAAAQDghOAIAAPBBcAQAAOCD4AgAAMAHwREAAIAPgiMAAAAfBEcAAAA+CI4AAAB8EBwBAAD4IDgC0O9YLBYtW7asW9emp6drzpw5vdofAJGF4AhA2Hn//feVk5OjU045RYMHD1Zqaqp++MMfat26daHuGoAoYGFvNQDh5LXXXlNmZqZGjx6t2bNnKyUlRVVVVXr99df18ccfa8+ePV3e48iRIxo4cKAGDhxo+ucfPXpUAwYM0KBBg7rTfQD9AMERgLAyefJkvfnmm/rnP/+p+Ph4v3P79+/XiBEj2r3u+PHjam1t1eDBg/uglwD6M6bVAISVjz/+WGeffXabwEiSX2BksVh03XXX6amnntLZZ5+t2NhYbd261XvON+do2bJlslgs2rNnj+bMmaP4+HjFxcXpqquu0pdffun3M3xzjt566y1ZLBY98cQTbfry5z//WRaLRS+88IIk6ZNPPtGCBQt05plnasiQIUpMTNTUqVO1d+9ev+uOHTum5cuX6/TTT9fgwYOVmJio73//+9q2bVs3/rQABIP5MWcACKJTTjlFFRUV+uCDD3TOOed02vaVV17R5s2bdd111ykpKUnp6emdtp82bZrGjBmjlStX6p133tHvf/97jRgxQr/5zW/abf/tb39bY8eO1ebNmzV79my/c5s2bdLJJ5+sSZMmSZLefPNNvfbaa5oxY4bsdrv27t2rBx98UBkZGdq5c6eGDh0q6etAbeXKlfrlL3+pCy+8UC0tLXrrrbf0zjvv6Ic//GGAf0oAgongCEBYuemmm3T55ZfrvPPO04UXXiiHw6GJEycqMzOzTR7Q7t279f7772vcuHEB3fv888/Xo48+6n3f2NioRx99tMPgSJKmT5+u3/72t/rss8908sknS5JaW1v1zDPPyOl0evs0efJk5eTk+F374x//WBMmTFBxcbF+/vOfS5JefPFF/ehHP9IjjzwSUJ8B9D2m1QCElR/+8IeqqKjQT37yE/3973/XqlWrNGnSJKWmpur555/3a/sf//EfAQdGkjR//ny/9w6HQ42NjWppaenwmunTp+vYsWMqKSnxHnv55Zd18OBBTZ8+3XtsyJAh3v8+duyYGhsbddpppyk+Pl7vvPOO91x8fLw+/PBDffTRRwH3G0DfIjgCEHa+853vqKSkRJ999pn+9re/afHixTp06JBycnK0c+dOb7sxY8aYuu/o0aP93ntGgj777LMOrzn33HN11llnadOmTd5jmzZtUlJSkn7wgx94jx0+fFhLlixRWlqaYmNjlZSUpOTkZB08eFDNzc3ednfccYcOHjyoM844Q+PHj9fNN9+s9957z9TnABBcBEcAwlZMTIy+853v6K677tKDDz6oY8eOacuWLd7zvqM1gbBare0e72rR7vTp01VWVqYDBw7o6NGjev7555Wdne1XKuD666/XnXfeqWnTpmnz5s16+eWXtW3bNiUmJur48ePedpdccok+/vhjPfbYYzrnnHP0+9//Xt/61rf0+9//3tRnARA85BwBiAjf/va3JUm1tbV9/rOnT5+u5cuXq7i4WCNHjlRLS4tmzJjh16aoqEizZ8/WPffc4z125MgRHTx4sM39EhISdNVVV+mqq67S559/rksuuUTLli3TL3/5y2B/FAABYOQIQFgpKytrdyTnpZdekiSdeeaZfd0l/b//9/80fvx4bdq0SZs2bZLNZtMll1zi18Zqtbbp97p16+R2u/2ONTY2+r0/6aSTdNppp+no0aPB6TwA0xg5AhBWrr/+en355Zf62c9+prPOOkutra167bXXtGnTJqWnp+uqq64KSb+mT5+uJUuWaPDgwbr66qs1YID/vy3/8z//U3/4wx8UFxencePGqaKiQtu3b1diYqJfu3HjxikjI0MXXHCBEhIS9NZbb6moqEjXXXddX34cAJ0gOAIQVn77299qy5Yteumll/TII4+otbVVo0eP1oIFC3T77be3WxyyL0yfPl233367vvzyS79Vah4FBQWyWq166qmndOTIEX3ve9/T9u3bvXWQPG644QY9//zz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jpEj9BnPsv+u8o+kr6fYDMPQ3LlzVVpayjQbAKDPEByhz3iW/UtdJ2h7NDU1KSsri2k2AECfIThCn3I6nSoqKlJqaqqp6zzTbARIAIBgIzhCn/MkbK9ZsybgazzTbPPmzWOaDQAQVARHCAmr1arrr78+4Bwkj8bGRqbZAABBRXCEkOlODpIH02wAgGAhOEJIdTcHybeidmtrq1wulwoLC+VyuZhyAwD0CHurmcTeasHhdrvlcrk0bdo0NTU1mbo2KSlJBw4c8L5nE1sAwInYWw0Rx2q1auLEiVq/fr0sFoupaTbfwEhiyg0A0DMERwgr3Z1m88UmtgCAniA4QtjxLPXfvn27EhISunUPzya25eXlvdw7AEB/R3CEsNSTaTZf1EQCAJjVr4Kj9PR07xep53X33Xf7tXnvvffkcDg0ePBgpaWladWqVSHqLQLR0TRbcnJyQNevWLGCmkgAAFP61Wq19PR0XX311Zo7d6732LBhw/SNb3xD0teZ6meccYaysrK0ePFivf/++/qv//ovrV27VvPmzQvoZ7BaLTTcbrfKy8tVW1srm82miy++WKeeeqpqamrU1f+FPaNORUVFrGADgChl5vt7YB/1qc8MGzZMKSkp7Z576qmn1Nraqscee0wxMTE6++yztWPHDt17770BB0cIDavVqoyMDL9jBQUFysnJkcVi6TRAMgxDFotFeXl5mjJliqxWa5B7CwCIZP1qWk2S7r77biUmJur888/X6tWr9dVXX3nPVVRU6JJLLlFMTIz32KRJk7R792599tlnoeguesDMyjYStAEAgepXwdENN9ygjRs3qqysTL/61a901113adGiRd7zdXV1GjlypN81nvd1dXXt3vPo0aNqaWnxeyF8eFa23X777QG1r62tDXKPAACRLuyDo1tvvbVNkvWJr127dkmSFi5cqIyMDH3zm9/U/Pnzdc8992jdunU6evRot3/+ypUrFRcX532lpaX11kdDL/GsbAuEzWaT9O+K3Gw5AgA4UdgnZDc0NKixsbHTNmPHjvWbKvP48MMPdc4552jXrl0688wz9Ytf/EItLS169tlnvW3Kysr0gx/8QE1NTTr55JPb3OPo0aN+wVVLS4vS0tJIyA4zbrdb6enpHSZoWywW2e12VVZW6rnnnlNubq6qq6u959lyBAD6t36VkJ2cnBzwsu0T7dixQwMG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+w1JxquvvmoYRmC/81566SVjwIABRl1dnbfNgw8+aAwfPtw4evRo336AMMTIkQmtra16++23lZWV5T02YMAAZWVlqaKiIoQ9gyR99NFHGjVqlMaOHasrrrhC+/btkyS9/fbbOnbsmN9zO+usszR69GieW4hVVlaqrq7O79nExcXpoosu8j6biooKxcfH69vf/ra3TVZWlgYMGKA33nijz/sc7Vwul0aMGKEzzzxT11xzjRobG73neFah0dzcLElKSEiQFNjvvIqKCo0fP14jR470tpk0aZJaWlr04Ycf9mHvwxPBkQkHDhyQ2+32+z+TJI0cOVJ1dXUh6hUk6aKLLtKGDRu0detWPfjgg6qsrJTD4dChQ4dUV1enmJgYxcfH+13Dcws9z59/Z3+n6urqNGLECL/zAwcOVEJCAs+vj1122WX6n//5H5WWluo3v/mNXn31VV1++eVyu92SeFahcPz4ceXl5el73/uezjnnHEkK6HdeXV1du3/vPOei3cBQdwDoDZdffrn3v7/5zW/qoosu0imnnKLNmzdryJAhIewZ0H/MmDHD+9/jx4/XN7/5TZ166qlyuVyaOHFiCHsWva699lp98MEHfjmW6DlGjkxISkqS1Wptk/FfX1+vlJSUEPUK7YmPj9cZZ5yhPXv2KCUlRa2trTp48KBfG55b6Hn+/Dv7O5WSktJmwcNXX32lpqYmnl+IjR07VklJSdqzZ48knlVfu+666/TCCy+orKxMdrvdezyQ33kpKSnt/r3znIt2BEcmxMTE6IILLlBpaan32PHjx1VaWqoJEyaEsGc40eeff66PP/5YNptNF1xwgQYNGuT33Hbv3q19+/bx3EJszJgxSklJ8Xs2LS0teuONN7zPZsKECTp48KDefvttb5tXXnlFx48f10UXXdTnfca/VVdXq7GxUTabTRLPqq8YhqHrrrtOzzzzjF555RWNGTPG73wgv/MmTJig999/3y+Y3bZtm4YPH65x48b1zQcJZ6HOCI80GzduNGJjY40NGzYYO3fuNObNm2fEx8f7Zfyj7914442Gy+UyKisrjf/93/81srKyjKSkJGP//v2GYRjG/PnzjdGjRxuvvPKK8dZbbxkTJkwwJkyYEOJeR4dDhw4Z7777rvHuu+8akox7773XePfdd41PPvnEMAzDuPvuu434+HjjueeeM9577z1jypQpxpgxY4zDhw9773HZZZcZ559/vvHGG28Yf/3rX43TTz/dmDlzZqg+Ur/V2bM6dOiQcdNNNxkVFRVGZWWlsX37duNb3/qWcfrppxtHjhzx3oNnFXzXXHONERcXZ7hcLqO2ttb7+vLLL71tuvqd99VXXxnnnHOOcemllxo7duwwtm7daiQnJxuLFy8OxUcKOwRH3bBu3Tpj9OjRRkxMjHHhhRcar7/+eqi7FPWmT59u2Gw2IyYmxkhNTTWmT59u7Nmzx3v+8OHDxoIFC4yTTz7ZGDp0qPGzn/3MqK2tDWGPo0dZWZkhqc1r9uzZhmF8vZz/17/+tTFy5EgjNjbWmDhxorF7926/ezQ2NhozZ840TjrpJGP48OHGVVddZRw6dCgEn6Z/6+xZffnll8all15qJCcnG4MGDTJOOeUUY+7cuW3+YcizCr72npEk4/HHH/e2CeR33t69e43LL7/cGDJkiJGUlGTceOONxrFjx/r404Qni2EYRl+PVgEAAIQrco4AAAB8EBwBAAD4IDgCAADwQXAEAADgg+AIAADAB8ERAACAD4IjAAAAHwRHAKKWYRiaN2+eEhISZLFYtGPHjlB3CUAYIDgCELW2bt2qDRs26IUXXlBtba1aWlr04x//WKNGjZLFYtGzzz4b6i4CCAGCIwBRy7M58cUXX6yUlBR98cUXOvfcc3X//feHumsAQmhgqDsAAKEwZ84cPfHEE5Iki8WiU045RXv37tXll18e4p4BCDWCIwBRqaCgQKeeeqoeeeQRvfnmm7JaraHuEoAwQXAEICrFxcVp2LBhslqtSklJCXV3AIQRco4AAAB8EBwBAAD4IDgCAADwQc4RAPyfzz//XHv27PG+r6ys1I4dO5SQkKDRo0eHsGcA+hLBEQD8n7feekuZmZne9wsXLpQkzZ49Wxs2bAhRrwD0NYthGEaoOwEAABAuyDkCAADwQXAEAADgg+AIAADAB8ERAACAD4IjAAAAHwRHAAAAPgiOAAAAfBAcAQAA+CA4AgAA8EFwBAAA4IPgCAAAwAfBEQAAgI//Dwrj/By4Bh0UAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -284,7 +285,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.18" + "version": "3.12.4" } }, "nbformat": 4,