{"cells":[{"cell_type":"code","execution_count":1,"metadata":{"execution":{"iopub.execute_input":"2024-10-10T18:44:19.087376Z","iopub.status.busy":"2024-10-10T18:44:19.086856Z","iopub.status.idle":"2024-10-10T18:44:36.655672Z","shell.execute_reply":"2024-10-10T18:44:36.654011Z","shell.execute_reply.started":"2024-10-10T18:44:19.087330Z"},"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":["Note: you may need to restart the kernel to use updated packages.\n"]}],"source":["pip install catboost -qqq"]},{"cell_type":"code","execution_count":2,"metadata":{"execution":{"iopub.execute_input":"2024-10-10T18:44:36.658942Z","iopub.status.busy":"2024-10-10T18:44:36.658464Z","iopub.status.idle":"2024-10-10T18:44:38.892025Z","shell.execute_reply":"2024-10-10T18:44:38.890450Z","shell.execute_reply.started":"2024-10-10T18:44:36.658852Z"},"trusted":true},"outputs":[],"source":["# import necessary libraries\n","import numpy as np\n","import pandas as pd\n","import seaborn as sns\n","import matplotlib.pyplot as plt\n","\n","from sklearn.metrics import mean_absolute_percentage_error as mape\n","from catboost import CatBoostRegressor\n","import warnings\n","warnings.filterwarnings('ignore')\n","\n","# set the color palette\n","sns.set_palette(sns.color_palette('deep'))\n","sns.set(rc = {'figure.figsize': (10, 5)})\n","sns.set_style('whitegrid')"]},{"cell_type":"markdown","metadata":{},"source":["## 1 | Вводная Часть\n","\n","### ▎Ранжирования Книг\n","\n","\n","Сегодня посмотрим на задачу `ранжирования товаров`. По сути это процесс упорядочивания товаров по определенным критериям. \n","\n","Зачем нам это нужно; это влияние на пользовательский опыт:\n"," - Удобство поиска и фильтрации товаров\n"," - Индивидуальные рекомендации на основе поведения пользователя \n"," - Персонализированные результаты на основе истории покупок и предпочтений (рассмотрим в следующем ноутбуке)\n","\n","Подход который мы рассмотрим; Эту задачу мы можем решить с помощью машинного обучения. Имея исторические данные о приоритетах пользователей мы можем предсказывать `implicit`/`explicit` метрики оценки товара."]},{"cell_type":"markdown","metadata":{},"source":["## 2 | Amazon Best Seller Dataset\n","\n","### ▎Чтение данных\n","\n","Рассмотрим ранжирование товаров на примере датасета Amazon Top 50 Bestselling Books 2009 – 2019, Датасет содержит 550 книг\n","\n","`Признаки:` \n","1. __Name:__ Название книги \n","1. __Author:__ Автор книги \n","1. __User Rating:__ Рейтинг \n","1. __Reviews:__ Количество ревью \n","1. __Price:__ Стоимость книги \n","1. __Year:__ Год когда книга попала в бестселлеры \n","1. __Genre:__ Жанр Fiction или Non-fiction "]},{"cell_type":"code","execution_count":3,"metadata":{"execution":{"iopub.execute_input":"2024-10-10T18:44:38.894309Z","iopub.status.busy":"2024-10-10T18:44:38.893610Z","iopub.status.idle":"2024-10-10T18:44:38.954003Z","shell.execute_reply":"2024-10-10T18:44:38.952466Z","shell.execute_reply.started":"2024-10-10T18:44:38.894255Z"},"trusted":true},"outputs":[{"data":{"text/html":["
\n","\n","
\n"," \n","
\n","
\n","
Name
\n","
Author
\n","
User Rating
\n","
Reviews
\n","
Price
\n","
Year
\n","
Genre
\n","
\n"," \n"," \n","
\n","
0
\n","
10-Day Green Smoothie Cleanse
\n","
JJ Smith
\n","
4.7
\n","
17350
\n","
8
\n","
2016
\n","
Non Fiction
\n","
\n","
\n","
1
\n","
11/22/63: A Novel
\n","
Stephen King
\n","
4.6
\n","
2052
\n","
22
\n","
2011
\n","
Fiction
\n","
\n","
\n","
2
\n","
12 Rules for Life: An Antidote to Chaos
\n","
Jordan B. Peterson
\n","
4.7
\n","
18979
\n","
15
\n","
2018
\n","
Non Fiction
\n","
\n","
\n","
3
\n","
1984 (Signet Classics)
\n","
George Orwell
\n","
4.7
\n","
21424
\n","
6
\n","
2017
\n","
Fiction
\n","
\n","
\n","
4
\n","
5,000 Awesome Facts (About Everything!) (Natio...
\n","
National Geographic Kids
\n","
4.8
\n","
7665
\n","
12
\n","
2019
\n","
Non Fiction
\n","
\n"," \n","
\n","
"],"text/plain":[" Name \\\n","0 10-Day Green Smoothie Cleanse \n","1 11/22/63: A Novel \n","2 12 Rules for Life: An Antidote to Chaos \n","3 1984 (Signet Classics) \n","4 5,000 Awesome Facts (About Everything!) (Natio... \n","\n"," Author User Rating Reviews Price Year Genre \n","0 JJ Smith 4.7 17350 8 2016 Non Fiction \n","1 Stephen King 4.6 2052 22 2011 Fiction \n","2 Jordan B. Peterson 4.7 18979 15 2018 Non Fiction \n","3 George Orwell 4.7 21424 6 2017 Fiction \n","4 National Geographic Kids 4.8 7665 12 2019 Non Fiction "]},"execution_count":3,"metadata":{},"output_type":"execute_result"}],"source":["path = '/kaggle/input/bestseller/bestsellers with categories.csv'\n","df = pd.read_csv(path)\n","df.head()"]},{"cell_type":"code","execution_count":4,"metadata":{"execution":{"iopub.execute_input":"2024-10-10T18:44:38.957989Z","iopub.status.busy":"2024-10-10T18:44:38.957452Z","iopub.status.idle":"2024-10-10T18:44:38.966524Z","shell.execute_reply":"2024-10-10T18:44:38.965363Z","shell.execute_reply.started":"2024-10-10T18:44:38.957935Z"},"trusted":true},"outputs":[{"data":{"text/plain":["(550, 7)"]},"execution_count":4,"metadata":{},"output_type":"execute_result"}],"source":["df.shape"]},{"cell_type":"code","execution_count":5,"metadata":{"execution":{"iopub.execute_input":"2024-10-10T18:44:38.968418Z","iopub.status.busy":"2024-10-10T18:44:38.968043Z","iopub.status.idle":"2024-10-10T18:44:39.006952Z","shell.execute_reply":"2024-10-10T18:44:39.004922Z","shell.execute_reply.started":"2024-10-10T18:44:38.968380Z"},"trusted":true},"outputs":[{"data":{"text/html":["
\n","\n","
\n"," \n","
\n","
\n","
Name
\n","
Author
\n","
User Rating
\n","
Reviews
\n","
Price
\n","
Year
\n","
Genre
\n","
\n"," \n"," \n","
\n","
245
\n","
Oh, the Places You'll Go!
\n","
Dr. Seuss
\n","
4.9
\n","
21834
\n","
8
\n","
2012
\n","
Fiction
\n","
\n","
\n","
246
\n","
Oh, the Places You'll Go!
\n","
Dr. Seuss
\n","
4.9
\n","
21834
\n","
8
\n","
2013
\n","
Fiction
\n","
\n","
\n","
247
\n","
Oh, the Places You'll Go!
\n","
Dr. Seuss
\n","
4.9
\n","
21834
\n","
8
\n","
2014
\n","
Fiction
\n","
\n","
\n","
248
\n","
Oh, the Places You'll Go!
\n","
Dr. Seuss
\n","
4.9
\n","
21834
\n","
8
\n","
2015
\n","
Fiction
\n","
\n","
\n","
249
\n","
Oh, the Places You'll Go!
\n","
Dr. Seuss
\n","
4.9
\n","
21834
\n","
8
\n","
2016
\n","
Fiction
\n","
\n","
\n","
250
\n","
Oh, the Places You'll Go!
\n","
Dr. Seuss
\n","
4.9
\n","
21834
\n","
8
\n","
2017
\n","
Fiction
\n","
\n","
\n","
251
\n","
Oh, the Places You'll Go!
\n","
Dr. Seuss
\n","
4.9
\n","
21834
\n","
8
\n","
2018
\n","
Fiction
\n","
\n","
\n","
252
\n","
Oh, the Places You'll Go!
\n","
Dr. Seuss
\n","
4.9
\n","
21834
\n","
8
\n","
2019
\n","
Fiction
\n","
\n"," \n","
\n","
"],"text/plain":[" Name Author User Rating Reviews Price Year \\\n","245 Oh, the Places You'll Go! Dr. Seuss 4.9 21834 8 2012 \n","246 Oh, the Places You'll Go! Dr. Seuss 4.9 21834 8 2013 \n","247 Oh, the Places You'll Go! Dr. Seuss 4.9 21834 8 2014 \n","248 Oh, the Places You'll Go! Dr. Seuss 4.9 21834 8 2015 \n","249 Oh, the Places You'll Go! Dr. Seuss 4.9 21834 8 2016 \n","250 Oh, the Places You'll Go! Dr. Seuss 4.9 21834 8 2017 \n","251 Oh, the Places You'll Go! Dr. Seuss 4.9 21834 8 2018 \n","252 Oh, the Places You'll Go! Dr. Seuss 4.9 21834 8 2019 \n","\n"," Genre \n","245 Fiction \n","246 Fiction \n","247 Fiction \n","248 Fiction \n","249 Fiction \n","250 Fiction \n","251 Fiction \n","252 Fiction "]},"execution_count":5,"metadata":{},"output_type":"execute_result"}],"source":["df['Name'].value_counts()\n","df[df['Name'] == \"Oh, the Places You'll Go!\"]"]},{"cell_type":"code","execution_count":6,"metadata":{"execution":{"iopub.execute_input":"2024-10-10T18:44:39.010131Z","iopub.status.busy":"2024-10-10T18:44:39.009481Z","iopub.status.idle":"2024-10-10T18:44:39.030504Z","shell.execute_reply":"2024-10-10T18:44:39.028573Z","shell.execute_reply.started":"2024-10-10T18:44:39.010065Z"},"trusted":true},"outputs":[{"data":{"text/plain":["(351, 7)"]},"execution_count":6,"metadata":{},"output_type":"execute_result"}],"source":["df.drop_duplicates(subset=['Name', 'Author'], inplace=True)\n","df.shape"]},{"cell_type":"markdown","metadata":{},"source":["## 3 | Разведовательный Анализ\n","\n","### ▎Колонки для ранжирования\n","\n","У нас в датасете две основные колонки которые мы можем использлвать для ранжирования товаров; это explicit и implicit feedback; количество ревьюеров `Reviews` и их совокупная оценка пользователей `User Rating`; эти колонки будут нашими `таргетами` при обучении моделей"]},{"cell_type":"code","execution_count":7,"metadata":{"execution":{"iopub.execute_input":"2024-10-10T18:44:39.032751Z","iopub.status.busy":"2024-10-10T18:44:39.032256Z","iopub.status.idle":"2024-10-10T18:44:39.676398Z","shell.execute_reply":"2024-10-10T18:44:39.674962Z","shell.execute_reply.started":"2024-10-10T18:44:39.032698Z"},"trusted":true},"outputs":[{"data":{"image/png":"iVBORw0KGgoAAAANSUhEUgAAA1MAAAHfCAYAAAC1VYIWAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABSGklEQVR4nO3deVhUdf//8dfMCM4AgUuWqRiISam4tIG5ZC55o6ZpN26pLZZZLqVZ2b5ZtnlnqOktZZtmauVdKZmZ2qZZ3aXelaWG5PbLLBcQZgBn5vcHMV9HUOHAYQZ4Pq7LC+eczznnPW/W15zzOWPxer1eAQAAAADKxBroAgAAAACgKiJMAQAAAIABhCkAAAAAMIAwBQAAAAAGEKYAAAAAwADCFAAAAAAYQJgCAAAAAAMIUwAAAABgAGEKAAAAAAwgTAEAKszMmTMVHx8f6DJKbcSIERoxYkSlHCs+Pl4zZ870PS7q1cGDByvl+N26ddOUKVMq5VgAUFPUCnQBAADzvPvuu7r33nt9j202m+rXr6+OHTtq4sSJOvvss8u8T6fTqZdeekmXXnqpEhMTK7LccpkyZYqWLVvmexwWFqZ69eqpVatW6tOnj3r27CmrtfyvIX733Xf68ssvdd111ykyMrLc+6tIwVwbAFRHhCkAqAEmTJigJk2aKD8/X5s2bdKyZcv03//+V8uXL1ft2rXLtC+n06lZs2Zp3LhxxcLUrbfeqtGjR1dk6WUSGhqqqVOnSpLy8vK0d+9erV27VhMmTNCll16qOXPmKCIiwjf+5ZdfLvMxvv/+e82aNUsDBgwoU2DZsmWLbDZbmY9XFqeqbeXKlbJYLKYeHwBqGsIUANQAXbp0UUJCgiQpJSVFdevWVVpamj755BP17t27wo5Tq1Yt1aoVuF8ttWrVUv/+/f2WTZw4UfPmzdP06dP1wAMPaMaMGb51oaGhptbj8XhUUFCg2rVrlzm0VjSznysA1ETMmQKAGujiiy+WJO3evdu3LD8/Xy+88IIGDhyoiy66SO3atdOwYcP01Vdf+cbs2bNHHTp0kCTNmjVL8fHxfnOBSpozFR8fr8cee0yrV69W37591bp1a/Xp00efffZZsbo2btyogQMHKiEhQT169NBbb71VIfOwRo8erU6dOmnlypXauXOnb3lJc6beeOMN9enTR23bttUll1yigQMH6oMPPvA9v2eeeUaS1L17d9/z37Nnj99zff/999WnTx8lJCTo888/9607fs5UkUOHDun222/XhRdeqMTERE2dOlV5eXm+9Xv27FF8fLzefffdYtue2PtT1VbSnKndu3f7ztq1bdtWgwYN0rp16/zGbNy4UfHx8UpPT9ecOXN8wfy6667Tb7/9dprOA0D1xpkpAKiB9u7dK0l+l4IdPXpUS5cuVd++fZWSkqKcnBy9/fbbuummm7R06VJdcMEFqlevnh555BE98sgj6tmzp3r27ClJpw07//3vf7Vq1SoNGzZM4eHheuONNzRhwgStXbtWdevWlST99NNPuummm9SgQQONHz9eHo9Hs2fPVr169SrkOffr109ffPGF1q9fr9jY2BLHLFmyRFOnTlWvXr00cuRI5eXl6ZdfftHmzZt11VVXqWfPnsrMzNTy5ct17733+mo/vsavvvpKH374oa699lrVrVtXjRs3PmVdd9xxhxo3bqw777xTmzZt0htvvKGsrCxfMCqt0tR2vD///FNDhgyR0+nUiBEjVLduXS1btky33nqrUlNTfZ/bImlpabJYLLrxxht19OhRvfTSS5o8ebKWLl1apjoBoDohTAFADXD06FEdPHhQ+fn52rx5s2bNmqXQ0FBdccUVvjFRUVFas2aN3+VggwYNUnJyst544w09+eSTCgsLU69evfTII48oPj6+2CV1J/Prr78qPT1dTZs2lSQlJiaqf//+WrFihYYPHy5JSk1Nlc1m06JFi3w3xkhOTq6wyxBbtGghSdq1a9dJx6xbt07nnXeeUlNTS1x//vnnq2XLllq+fLl69OihJk2aFBuzc+dOffDBB2revHmp6mrSpInmzJkjSbr22msVERGhN998UzfeeKPOP//8Uu2jtLUdb968efrzzz+1cOFC35nKlJQU9evXT9OmTVP37t39btiRl5en//znP76vj8jISD3xxBPatm2br7cAUNNwmR8A1ADXX3+9OnTooMsvv1wTJkyQw+HQnDlz1LBhQ98Ym83m+0PZ4/Ho8OHDOnbsmFq3bq2ffvqpXMe/7LLLfEFKKvzDPyIiwneZodvt1oYNG9S9e3e/Owyee+656ty5c7mOXSQsLEySlJOTc9IxkZGR+v3337VlyxbDx7nkkktKHaSkwgB1vKJwWdJlkBXp008/VZs2bXxBSpLCw8M1ePBg7d27Vzt27PAbP3DgQL+gXdKlogBQ03BmCgBqgIceekixsbHKzs7WO++8o2+++abEGxIsW7ZM8+fP186dO1VQUOBbfrqzHKdzzjnnFFsWFRWlrKwsSdJff/0ll8ulc889t9i4kpYZkZubK6kwMJzMzTffrPXr1yslJUXnnnuuOnbsqL59++qiiy4q9XHK2qsTn1/Tpk1ltVp9c53Msm/fPrVt27bY8mbNmvnWH3/GqVGjRn7jii4RLfocAkBNRJgCgBqgTZs2vrv59ejRQ8OGDdOdd96plStX+sLFe++9pylTpqhHjx4aNWqU6tevL5vNpn//+9/lPvtwsluCe73ecu23LLZt2yZJfmfIThQXF6eVK1dq3bp1+vzzz7Vq1Sq9+eabGjt2rCZMmFCq49jt9nLVeeLty092O3O3212u45TVyd6jqzI/hwAQbLjMDwBqGJvNpkmTJumPP/7QwoULfcs/+ugjRUdHa9asWbr66qvVuXNnXXbZZX53lpNO/sd9edSvX1+1a9cu8e5wFXXHuPfff18Wi0UdO3Y85biwsDD17t1b06ZN09q1a9W1a1fNnTvX14eKfv4nPr/ffvtNHo/Hd4YrKipKUvEzQPv27Su2r7LU1qhRI787GxbJyMjwrQcAnBphCgBqoMTERLVp00avvfaaLyQUnT06/kzD5s2btWnTJr9tHQ6HpIq9vMtms+myyy7TJ598ov379/uW//bbb75bi5fHvHnz9MUXX6h3796KiYk56bhDhw75PQ4NDVVcXJy8Xq/vssei55+dnV3uuiT5BVpJWrBggaTC9waTpIiICNWtW1fffvut37g333yz2L7KUtvll1+uLVu26Pvvv/cty83N1ZIlS9S4ceMyzfsCgJqKy/wAoIYaNWqUbr/9dr377rsaOnSounbtqlWrVmns2LHq2rWr9uzZo7feekvNmzf3zTeSCi9ja968uT788EPFxMSoTp06Ou+888p9R7dx48bpiy++0NChQzV06FB5PB4tWLBA5513nrZu3VqqfRw7dkzvvfeepML3zdq7d6/WrFmjX375RYmJiXrsscdOuf2oUaN05pln6sILL1T9+vWVkZGhBQsW6PLLL1dERIQkqVWrVpKk559/Xr1791ZISIiuuOIK3w0uymrPnj0aM2aMOnfurE2bNun9999X3759/e7kl5KSonnz5un+++9X69at9e2335Z4VqkstY0ePVorVqzQzTffrBEjRigqKkr/+c9/tGfPHs2cOfOkl/UBAP4PYQoAaqgrr7xSTZs21fz58zVo0CANHDhQf/75pxYvXqwvvvhCzZs317PPPquVK1fq66+/9tt26tSpevzxxzVt2jQVFBRo3Lhx5Q5TrVu3Vlpamp555hm98MILOuecczRhwgRlZGT4Lj07nfz8fN19992SCs/S1KtXT61bt9bYsWPVs2fP0waEwYMH64MPPtArr7yi3NxcNWzYUCNGjNBtt93mG9OmTRvdfvvteuutt/T555/L4/Hok08+MRymZsyYoRdeeEHTp09XrVq1NHz4cN9zKDJ27FgdPHhQH330kT788EN16dJFL730ku8NlI3UduaZZ+qtt97Ss88+qwULFigvL0/x8fGaO3euunbtaui5AEBNY/EycxQAEMRuu+027dixQ6tWrQp0KQAA+OEcPgAgaLhcLr/HmZmZ+uyzz3TppZcGqCIAAE6Oy/wAAEGjR48eGjBggKKjo7V371699dZbCgkJ0U033RTo0gAAKIYwBQAIGp07d9aKFSt04MABhYaGql27dpo0adIp78AHAECgMGcKAAAAAAxgzhQAAAAAGECYAgAAAAADmDMl6fvvv5fX61VISEigSwEAAAAQQAUFBbJYLGrfvv1px3JmSpLX6xVTx4zxer3Kz8+nfyahv+ajx+aiv+aiv+aiv+aiv+aiv8aVJRtwZkrynZFKSEgIcCVVT25urrZu3armzZsrLCws0OVUO/TXfPTYXPTXXPTXXPTXXPTXXPTXuP/973+lHsuZKQAAAAAwgDAFAAAAAAYQpgAAAADAAMIUAAAAABhAmAIAAAAAAwhTAAAAAGAAYQoAAAAADCBMAQAAAIABhCkAAAAAMIAwBQAAAAAGEKYAAAAAwADCFAAAAAAYQJgCAAAAAAMIUwAAAABgAGEKAAAAAAwIujD1ySefKCUlRe3bt1enTp10++23a/fu3cXGLV26VL169VJCQoL69euntWvXBqBaAAAAADVVUIWpjRs3aty4cWrevLlmz56t++67Tz///LNuvPFGuVwu37gVK1bowQcfVHJystLS0tSuXTuNGzdOmzZtClzxAAAAQJCwWCxyOByyWCyBLqVaqxXoAo63YsUKNWrUSE8++aTvE1+vXj1dd911+uGHH3TxxRdLklJTU9WnTx/dcccdkqSkpCRt27ZNs2fPVlpaWqDKBwAAAIrxeLyyWis31DgcDrVs2fKk6wNRU3UUVGHq2LFjCg8P90vQZ5xxhiTJ6/VKknbv3q3MzEzdddddftv27t1bzzzzjPLz8xUaGlp5RQMAAACnYLVatPjjbTpwKLfSjun2euRyumR32GWz+F+M1qBumAb3bFFptVRnQRWmBg4cqPfee08LFy5Uv379dPjwYf3rX/9Sy5YtdeGFF0qSMjIyJEmxsbF+28bFxamgoEC7d+9WXFxcpdcOAAAAnMyBQ7na92dOpR3P7XErNydXYeHHZLPaKu24NU1QhamLL75Ys2bN0p133qnHHntMknTBBRfopZdeks1W+EVw5MgRSVJkZKTftkWPi9aXldfrVW5u5b1aUF04nU6/j6hY9Nd89Nhc9Ndc9Ndc9NdcNaW/RXOX3F6P3B53pR3X4/b4fTye21u4zOl0+q7+wv/xer2lnmsWVGHqu+++0913361Bgwapa9euOnz4sF588UWNHj1ab775pux2u2nHLigo0NatW03bf3WXmZkZ6BKqNfprPnpsLvprLvprLvprrure36K5Sy6nS7k5lf/C/fE3cfMtiyiMADt37qz2Ydao0k4bCqowNXXqVCUlJWnKlCm+Ze3atVPXrl313nvvafDgwYqKipIkZWdnq0GDBr5xWVlZkuRbX1YhISFq3rx5OaqvmZxOpzIzMxUTEyOHwxHocqod+ms+emwu+msu+msu+muumtLfojMcdoddYeHHKu24HrdHLpdLdrtdVpv/nCm7o/AERWxsLGemSrBjx45Sjw2qMPXrr7+qe/fufssaNmyounXrateuXZKkZs2aSSqcO1X0/6LHISEhio6ONnRsi8WisLAwg5XD4XDQPxPRX/PRY3PRX3PRX3PRX3PVlP7aLNaAzF2y2ooft+iGFNU5xJZHWW4nH1TvM9WoUSP99NNPfsv27t2rQ4cOqXHjxpKk6OhoxcTEaOXKlX7j0tPT1aFDB+7kBwAAAKBSBNWZqSFDhujJJ5/U1KlT1a1bNx0+fFhz5sxR/fr1lZyc7Bs3fvx4TZ48WU2bNlViYqLS09O1ZcsWLViwIIDVAwAAAKhJgipMjRw5UqGhoVq0aJHeeecdhYeHq127dpoxY4bq1q3rG9e3b185nU6lpaVp3rx5io2N1axZs9S+ffsAVg8AAACgJgmqMGWxWDR06FANHTr0tGNTUlKUkpJSCVUBAAAAQHFBNWcKAAAAAKoKwhQAAAAAGECYAgAAAAADCFMAAAAAYABhCgAAAAAMIEwBAAAAgAGEKQAAAAAwgDAFAAAAAAYQpgAAAADAAMIUAAAAABhAmAIAAAAAAwhTAAAAAGAAYQoAAAAADCBMAQAAAIABhCkAAAAAMIAwBQAAAAAGEKYAAAAAwADCFAAAAAAYQJgCAAAAAAMIUwAAAABgAGEKAAAAAAwgTAEAAACAAYQpAAAAADCAMAUAAAAABhCmAAAAAMAAwhQAAAAAGECYAgAAAAADCFMAAAAAYABhCgAAAAAMIEwBAAAAgAGEKQAAAAAwgDAFAAAAAAYEVZgaMWKE4uPjS/y3YsUK37ilS5eqV69eSkhIUL9+/bR27doAVg0AAACgJqoV6AKO9/DDD+vo0aN+y1577TWtWrVKHTp0kCStWLFCDz74oMaMGaOkpCSlp6dr3LhxWrhwodq1axeAqgEAAADUREEVppo3b15s2Z133qmOHTuqXr16kqTU1FT16dNHd9xxhyQpKSlJ27Zt0+zZs5WWllaZ5QIAAACowYLqMr8Tfffdd9qzZ4+uuuoqSdLu3buVmZmp5ORkv3G9e/fWhg0blJ+fH4gyAQAAANRAQR2mli9frrCwMHXv3l2SlJGRIUmKjY31GxcXF6eCggLt3r270msEAAAAUDMF1WV+xzt27Jg+/PBDdevWTWFhYZKkI0eOSJIiIyP9xhY9LlpvhNfrVW5uruHtayqn0+n3ERWL/pqPHpuL/pqL/pqL/pqrpvTXYrHI4XDI7fXI7XFX2nE9bo/fx+O5vYXLnE6nvF5vpdVUVXi9XlksllKNDdow9eWXX+rgwYPq27dvpRyvoKBAW7durZRjVUeZmZmBLqFao7/mo8fmor/mor/mor/mqu79dTgcatmypVxOl3JzKv+Fe5fLVXxZRGEE2LlzZ7UPs0aFhoaWalzQhqnly5erTp066tSpk29ZVFSUJCk7O1sNGjTwLc/KyvJbb0RISEiJN8DAqTmdTmVmZiomJkYOhyPQ5VQ79Nd89Nhc9Ndc9Ndc9NdcNaW/RWc47A67wsKPVdpxPW6PXC6X7Ha7rDb/mT12h11S4dQZzkwVt2PHjlKPDcow5XK5tHr1avXr108hISG+5c2aNZNUOHeq6P9Fj0NCQhQdHW34mBaLxXc5IcrO4XDQPxPRX/PRY3PRX3PRX3PRX3PVlP7aLFbZrLZKP67VVvy4NkthuKrOIbY8SnuJnxSkN6BYs2aNcnNzfXfxKxIdHa2YmBitXLnSb3l6ero6dOhQ6tNxAAAAAFBeQXlm6oMPPlCjRo100UUXFVs3fvx4TZ48WU2bNlViYqLS09O1ZcsWLViwIACVAgAAwIiiGzOU5SwAEGyCLkwdOXJEn3/+ua677roSv7n69u0rp9OptLQ0zZs3T7GxsZo1a5bat28fgGoBAABqLo/HK6vVWBgqujFDRStPTUBZBV2YioqK0g8//HDKMSkpKUpJSamkigAAAFASq9WixR9v04FDZb9Lndvrkcvpkt1h983hKa8GdcM0uGeLCtkXUBpBF6YAAABQdRw4lKt9f+aUeTu3x63cnFyFhR8LyI0ZgIoQlDegAAAAAIBgR5gCAAAAAAMIUwAAAABgAGEKAAAAAAwgTAEAAACAAYQpAAAAADCAMAUAAAAABhCmAAAAAMAAwhQAAAAAGECYAgAAAAADCFMAAAAAYABhCgAAAAAMIEwBAAAAgAGEKQAAAAAwgDAFAAAAAAYQpgAAAFAtRISFyOPxBroM1CC1Al0AAAAAUBEcobVktVq0+ONtOnAoN9DlSJJaNK2rK5PODXQZMAlhCgAAANXKgUO52vdnTqDLkCQ1qOMIdAkwEZf5AQAAAIABhCkAAAAAMIAwBQAAAAAGEKYAAAAAwADCFAAAAAAYQJgCAAAAAAMIUwAAAABgAGEKAAAAAAwgTAEAAACAAYQpAAAAADCAMAUAAAAABhCmAAAAAMAAwhQAAAAAGECYAgAAAAADgjJMLVu2TFdffbUSEhKUmJiom266SS6Xy7d+zZo16tevnxISEtSrVy+98847AawWAAAAQE1UK9AFnGjOnDlKS0vTmDFj1K5dOx06dEgbNmyQ2+2WJH377bcaN26c/vnPf+q+++7TV199pfvvv1/h4eH6xz/+EeDqAQAAANQUQRWmMjIyNGvWLL344ou6/PLLfct79erl+/+cOXPUpk0bPfbYY5KkpKQk7d69W6mpqYQpAAAAAJUmqC7ze/fdd9WkSRO/IHW8/Px8bdy4sVho6t27t3799Vft2bOnMsoEAAAAgOAKU5s3b1aLFi304osvqkOHDmrdurWGDBmizZs3S5J27dqlgoICNWvWzG+7uLg4SYVntgAAAACgMgTVZX4HDhzQDz/8oG3btunhhx+Ww+HQ3LlzdeONN2rVqlU6cuSIJCkyMtJvu6LHReuN8Hq9ys3NNV58DeV0Ov0+omLRX/PRY3PRX3PRX3PR31OzWCxyOBxyez1ye9xl3t7j9vh9rAhu/b1PgzWZIVA1naq/bm/hMqfTKa/XW2k1VRVer1cWi6VUY4MqTBUFmhdeeEHnn3++JKlt27bq1q2bFixYoE6dOpl27IKCAm3dutW0/Vd3mZmZgS6hWqO/5qPH5qK/5qK/5qK/JXM4HGrZsqVcTpdyc4y/IH38HZvLK9+VL0nKy8srV00VKdA1ldRfV0RhBNi5cycvFpxEaGhoqcYFVZiKjIxUnTp1fEFKkurUqaOWLVtqx44d6tOnjyQpOzvbb7usrCxJUlRUlOFjh4SEqHnz5oa3r6mcTqcyMzMVExMjh8MR6HKqHfprPnpsLvprLvprLvp7akWv3NsddoWFHyvz9h63Ry6XS3a7XVZbxcw8CbUX/gFcu3ZthYWHVcg+yytQNZ2qv3aHXZIUGxvLmakS7Nixo9RjgypMNW/eXLt27SpxXV5enpo2baqQkBBlZGSoc+fOvnVFc6VOnEtVFhaLRWFhwfFNVxU5HA76ZyL6az56bC76ay76ay76e2o2i1U2q83w9lZb+bb3q+Xv2wFYy1lTRQp0TSX112YprIkXCUpW2kv8pCC7AcUVV1yhw4cP+11ud+jQIf34449q1aqVQkNDlZiYqI8++shvu/T0dMXFxalJkyaVXTIAAACAGiqozkz16NFDCQkJmjBhgiZOnKjatWtr3rx5Cg0N1bBhwyRJt956q0aOHKlHHnlEycnJ2rhxo5YvX67nn38+wNUDAAAAqEmC6syU1WrVvHnz1K5dOz300EOaNGmSIiIitHDhQjVo0ECSdPHFF2vmzJn673//q1GjRmn58uWaOnWqkpOTA1w9AAAAgJokqM5MSVK9evX07LPPnnJM9+7d1b1790qqCAAAAACKC6ozUwAAAABQVRCmAAAAAMAAwhQAAAAAGECYAgAAAAADCFMAAAAAYABhCgAAAAAMIEwBAAAAgAGEKQAAAAAwgDAFAAAAAAYQpgAAAADAAMIUAAAAABhAmAIAAAAAAwhTAAAAAGAAYQoAAAAADCBMAQAAAIABhCkAAAAAMIAwBQAAAAAGEKYAAAAAwADCFAAAAAAYQJgCAAAAAAMIUwAAAABgAGEKAAAAAAwgTAEAAACAAYQpAAAAADCAMAUAAAAABhCmAAAAAMAAwhQAAAAAGECYAgAAAAADCFMAAAAAYABhCgAAAAAMIEwBAAAAgAGEKQAAAAAwIKjC1Lvvvqv4+Phi/5577jm/cUuXLlWvXr2UkJCgfv36ae3atQGqGAAAAEBNVSvQBZTkpZde0hlnnOF7fPbZZ/v+v2LFCj344IMaM2aMkpKSlJ6ernHjxmnhwoVq165dAKoFAAAAUBMFZZhq1aqV6tWrV+K61NRU9enTR3fccYckKSkpSdu2bdPs2bOVlpZWiVUCAAAAqMmC6jK/09m9e7cyMzOVnJzst7x3797asGGD8vPzA1QZAAAAgJomKMNU3759dcEFF6h79+7697//LbfbLUnKyMiQJMXGxvqNj4uLU0FBgXbv3l3ptQIAAAComYLqMr8GDRpo/Pjxatu2rSwWi9asWaMZM2Zo//79euihh3TkyBFJUmRkpN92RY+L1hvh9XqVm5trvPgayul0+n1ExaK/5qPH5qK/5qK/5qK/p2axWORwOOT2euT2uMu8vcft8ftYEdz6e58GazJDoGo6VX/d3sJlTqdTXq+30mqqKrxerywWS6nGBlWY6ty5szp37ux73KlTJ9WuXVuvvfaaxowZY+qxCwoKtHXrVlOPUZ1lZmYGuoRqjf6ajx6bi/6ai/6ai/6WzOFwqGXLlnI5XcrNMf6CtMvlqrCa8l2FUz7y8vLKVVNFCnRNJfXXFVEYAXbu3MmLBScRGhpaqnFBFaZKkpycrPnz52vr1q2KioqSJGVnZ6tBgwa+MVlZWZLkW29ESEiImjdvXr5iayCn06nMzEzFxMTI4XAEupxqh/6ajx6bi/6ai/6ai/6eWtEr93aHXWHhx8q8vcftkcvlkt1ul9VWMTNPQu2FfwDXrl1bYeFhFbLP8gpUTafqr91hl1Q4dYYzU8Xt2LGj1GODPkwdr1mzZpIK504V/b/ocUhIiKKjow3v22KxKCwsOL7pqiKHw0H/TER/zUePzUV/zUV/zUV/T81mscpmtRne3mor3/Z+tfx9OwBrOWuqSIGuqaT+2iyFNfEiQclKe4mfFKQ3oDheenq6bDabWrZsqejoaMXExGjlypXFxnTo0KHUp+MAAAAAoLyC6szUqFGjlJiYqPj4eEnSJ598oiVLlmjkyJG+y/rGjx+vyZMnq2nTpkpMTFR6erq2bNmiBQsWBLJ0AAAAADVMUIWp2NhYvfPOO/r999/l8XgUExOj++67TyNGjPCN6du3r5xOp9LS0jRv3jzFxsZq1qxZat++fQArBwAAAFDTBFWYeuCBB0o1LiUlRSkpKSZXAwAAAAAnF/RzpgAAAAAgGBGmAAAAAMAAwhQAAAAAGECYAgAAAAADDIepkSNHasOGDSdd/9VXX2nkyJFGdw8AAAAAQc1wmPr666/1559/nnT9wYMH9c033xjdPQAAAAAEtXJd5mexWE667rffflN4eHh5dg8AAAAAQatM7zO1bNkyLVu2zPd4zpw5WrJkSbFx2dnZ+uWXX9SlS5fyVwgAAAAAQahMYcrpdOrQoUO+xzk5ObJai5/cCgsL05AhQzR27NjyVwgAAAAAQahMYWrYsGEaNmyYJKlbt266//771b17d1MKAwAAAIBgVqYwdbw1a9ZUZB0AAAAAUKUYDlNFjh49qn379ikrK0ter7fY+ksuuaS8hwAAAACAoGM4TB08eFBTp07VqlWr5Ha7i633er2yWCzaunVruQoEAAAAgGBkOEw99NBDWrt2rUaMGKGLL75YkZGRFVkXAAAAAAQ1w2Hqyy+/1HXXXae77767IusBAAAAgCrB8Jv22u12NW7cuCJrAQAAAIAqw3CY6tevn1avXl2RtQAAAABAlWH4Mr9evXrpm2++0ahRozR48GA1bNhQNput2LhWrVqVq0AAAAAACEaGw1TRm/dK0vr164ut525+AAAAAKozw2Fq2rRpFVkHAAAAAFQphsPUgAEDKrIOAAAAAKhSDN+AAgAAAABqMsNnpu69997TjrFYLHryySeNHgIAAAAAgpbhMLVx48Ziyzwejw4cOCC326169erJ4XCUqzgAAAAACFaGw9SaNWtKXF5QUKDFixfrtdde0/z58w0XBgAAAADBrMLnTIWEhGj48OHq2LGjHn/88YrePQAAAAAEBdNuQHH++efrm2++MWv3AAAAABBQpoWp9evXM2cKAAAAQLVleM7UrFmzSlyenZ2tb775Rj/99JNGjx5tuDAAAAAACGYVHqaioqIUHR2tRx99VIMGDTJcGAAAAAAEM8Nh6ueff67IOgAAAACgSjFtzhQAAAAAVGeGz0wV+frrr7Vu3Trt27dPktSoUSN17dpVl156abn2m5OTo+TkZO3fv19vv/22EhISfOuWLl2ql156Sfv27VNsbKwmTpyoK664olzHAwAAAICyMBym8vPzdeedd2r16tXyer2KjIyUJGVlZemVV15Rz549NX36dIWEhBja/4svvii3211s+YoVK/Tggw9qzJgxSkpKUnp6usaNG6eFCxeqXbt2Rp8OAAAAAJSJ4cv8Zs+erY8//lg33HCDvvjiC3399df6+uuv9eWXX+rGG2/UqlWrNHv2bEP7/vXXX/Xmm29q/PjxxdalpqaqT58+uuOOO5SUlKTHHntMCQkJho8FAAAAAEYYDlMffPCBBgwYoLvvvltnnnmmb3n9+vV111136eqrr9b7779vaN9Tp07VkCFDFBsb67d89+7dyszMVHJyst/y3r17a8OGDcrPzzd0PAAAAAAoK8Nh6sCBA2rTps1J17dp00YHDhwo835Xrlypbdu2aezYscXWZWRkSFKxkBUXF6eCggLt3r27zMcDAAAAACMMz5lq2LChvv76aw0dOrTE9d98840aNmxYpn06nU499dRTmjhxoiIiIoqtP3LkiCT55mcVKXpctN4Ir9er3Nxcw9vXVE6n0+8jKhb9NR89Nhf9NRf9NRf9PTWLxSKHwyG31yO3p/g899PxuD1+HyuCW3/v02BNZghUTafqr9tbuMzpdMrr9VZaTVWF1+uVxWIp1VjDYerqq6/WzJkzdcYZZ+j666/XueeeK4vFoszMTL322mtauXJliXOeTmXOnDmqX7++rrnmGqNlGVZQUKCtW7dW+nGri8zMzECXUK3RX/PRY3PRX3PRX3PR35I5HA61bNlSLqdLuTnGX5B2uVwVVlO+q3DKR15eXrlqqkiBrqmk/roiCiPAzp07ebHgJEJDQ0s1znCYGjNmjHbv3q0lS5Zo6dKlsloLrxj0eDzyer0aMGCAxowZU+r97d27V/Pnz9fs2bOVnZ0tSb4zRbm5ucrJyVFUVJQkKTs7Ww0aNPBtm5WVJUm+9UaEhISoefPmhrevqZxOpzIzMxUTEyOHwxHocqod+ms+emwu+msu+msu+ntqRa/c2x12hYUfK/P2HrdHLpdLdrtdVlvFvPVpqL3wD+DatWsrLDysQvZZXoGq6VT9tTvskgqnznBmqrgdO3aUeqzhMGWz2fTUU0/p+uuv12effaa9e/dKkho3bqwuXbro/PPPL9P+9uzZo4KCAo0ePbrYupEjR6pt27aaPn26pMK5U82aNfOtz8jIUEhIiKKjo40+HVksFoWFBcc3XVXkcDjon4nor/nosbnor7nor7no76nZLFbZrDbD21tt5dver5a/bwdgLWdNFSnQNZXUX5ulsCZeJChZaS/xk8oYpvLy8vTEE0/ovPPO04gRIyRJ559/frHg9Prrr+utt97S/fffX+r3mbrgggv0+uuv+y3bunWrpk2bpkcffVQJCQmKjo5WTEyMVq5cqR49evjGpaenq0OHDqU+HQcAAAAA5VWmMLV48WItW7ZM6enppxzXtWtXPfvss2rRooWGDRtWqn1HRkYqMTGxxHWtWrVSq1atJEnjx4/X5MmT1bRpUyUmJio9PV1btmzRggULyvJUAAAAAKBcyhSmPvzwQ1155ZWnvZyuadOm+sc//qEVK1aUOkyVVt++feV0OpWWlqZ58+YpNjZWs2bNUvv27Sv0OAAAAMHC4/HKai39pUcAKkeZwtS2bdt01VVXlWps+/bttXbtWkNFFUlMTNQvv/xSbHlKSopSUlLKtW8AAICqwmq1aPHH23TgUHDcoU6SWjStqyuTzg10GUBAlSlMFRQUlHoOVEhIiPLz8w0VBQAAAH8HDuVq3585gS7Dp0Edbl4AlOk+lGeddZa2b99eqrHbt2/XWWedZagoAAAAAAh2ZQpTl112md577z399ddfpxz3119/6b333tNll11WruIAAAAAIFiVKUzdfPPNysvL03XXXafNmzeXOGbz5s26/vrrlZeXp5tuuqlCigQAAACAYFOmOVPR0dGaMWOGJk2apCFDhig6OlotWrRQeHi4cnJytH37du3atUt2u13/+te/1LRpU7PqBgAAAICAKlOYkgrfQ+r9999XWlqa1q1bp9WrV/vWnXXWWUpJSdHNN9982tunAwAAAEBVVuYwJUlNmjTRo48+Kkk6evSocnJyFB4eroiIiAotDgAAAACClaEwdbyIiAhCFAAAAIAap0w3oAAAAAAAFCJMAQAAAIABhCkAAAAAMIAwBQAAAAAGEKYAAAAAwADCFAAAAAAYQJgCAAAAAAMIUwAAAABgAGEKAAAAAAwgTAEAAACAAYQpAAAAADCAMAUAAAAABhCmAAAAAMAAwhQAAAAAGECYAgAAAAADCFMA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j2nVqlWaNGmS4uLitGnTJqWmpsrpdGrixImV+AyqjhdffFFut7tUY9PS0pSamqrJkycrPj5eCxcu1I033qj33ntP0dHRJldaNZW2vz/++KM+/vhjXXPNNWrbtq0OHTqkOXPmKCUlRcuXL1e9evUqodqqpyxfv0UOHDig2bNnq379+iZVVX2Upb9//PGHBg8erNjYWD3++OOKiIjQ9u3blZ+fb3KVVVtZenz77bcrIyNDkyZN0jnnnKPPPvtMjzzyiGw2mwYNGmRypdWUFyilxYsXe1u0aOH9/fffTzt2xowZ3muvvdZ7zz33ePv06VMJ1VV9penv888/7+3evbs3JyenEiurPk7XY7fb7W3btq03NTXVb/ndd9/t7d69e2WUWOXs2LHD265dO++iRYu8LVq08G7ZsuWkY10ul/fCCy/0Tp8+3bcsLy/Pe8UVV3gffvjhSqi26ilLf48cOeItKCjwW/b//t//88bHx3tffvlls0utksrS3+Pddddd3rvvvts7fPhw7+jRo02usuoqa38nT57sHTx4sPfYsWOVVGHVV5Ye//HHH94WLVp433nnHb/l1157rXfkyJFml1ptcZkfSq1OnTqSpIKCglOO27Vrl1555RU98MADlVBV9VGa/r799tu65pprFBYWVklVVS+n67HX69WxY8d0xhln+C0/44wz5PV6zS6vSpo6daqGDBmi2NjY04797rvvdPToUSUnJ/uWhYaGqmfPnvrss8/MLLPKKkt/IyMjVauW/wUnDRs2VL169fTHH3+YVWKVVpb+Fvn222+1evVq3XnnnSZWVj2Upb9Hjx7Vhx9+qGHDhslms1VCddVDWXpcdLn6ib/jIiIi+B1XDoQpnJLb7VZeXp5+/PFHzZ49W926dVOTJk1Ouc0TTzyh/v376/zzz6+kKquusvR3z549OnDggOrWrasxY8aodevWuvTSS/XAAw8oJyenkiuvOsrSY5vNpoEDB2rBggXasmWLcnJytH79er333nsaPnx4JVce/FauXKlt27Zp7NixpRqfkZEhSWrWrJnf8ri4OO3bt08ul6vCa6zKytrfkuzcuVN//fWX4uLiKrCy6sFIf91utx5//HGNGTNGZ511lonVVX1l7e+PP/6ogoIC1apVS8OHD1erVq3UsWNHPfvss6d9EbemKmuPzznnHHXq1Elz587Vjh07dPTo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iAi9+uqrev755/Xcc88pOztbTZo00ZQpU3j7j3KweHmXLgAAAAAoM960FwAAAAAMIEwBAAAAgAGEKQAAAAAwgDAFAAAAAAYQpgAAAADAAMIUAAAAABhAmAIAAAAAAwhTAABUkj179ig+Pl7vvvtuoEsBAFQAwhQAoELNnDlT8fHxOnjwYInr+/btqxEjRlRyVScXHx/v9+/CCy/U8OHDtW7dOsP7/OCDD/Tqq69WWI0AgOBUK9AFAAAQaB07dlT//v3l9Xq1b98+LVq0SGPGjFFaWpo6d+5c5v0tX75c27dv1/XXX++3vHHjxtqyZYtq1eLXLwBUB/w0BwBUa3l5eQoJCZHVevKLMWJiYtS/f3/f4169eql37956/fXXDYWpk7FYLKpdu3aF7Q8AEFhc5gcACLg33nhDffr0Udu2bXXJJZdo4MCB+uCDD/zG7N+/X/fee68uu+wytW7dWn369NHbb7/tN2bjxo2Kj4/XihUr9Pzzz6tz585q27atjh49WqZ64uLiVLduXe3atctv+erVqzV69Gh16tRJrVu3Vo8ePTR79my53W7fmBEjRmjdunXau3ev79LBbt26SSp5ztSUKVPUvn177d+/X7fddpvat2+vpKQkPf300377laRDhw7prrvu0oUXXqiLL75Y99xzj37++WfmYQFAgHBmCgAQUEuWLNHUqVPVq1cvjRw5Unl5efrll1+0efNmXXXVVZKkP//8U4MGDZLFYtG1116revXq6bPPPtP999+vo0ePFruc7sUXX1RISIhGjRql/Px8hYSElKmm7OxsZWVlqWnTpn7Lly1bprCwMN1www0KCwvTV199pdTUVB09elT33HOPJGnMmDHKzs7W77//rnvvvVeSFB4efsrjud1ujRo1Sm3atNHdd9+tDRs2aP78+YqOjtawYcMkSR6PR7feequ2bNmioUOHqlmzZvrkk098xwUAVD7CFAAgoNatW6fzzjtPqampJx3z/PPPy+1264MPPlDdunUlSUOHDtWkSZM0a9YsDRkyRHa73Tc+Ly9P77zzjt+yU8nLy/PdMGPfvn2aMWOG3G63evXq5Tdu+vTpfvscOnSoHnroIS1atEgTJ05UaGioOnbsqNdff11ZWVl+lw6e7vjJyckaO3asb78DBgzQ22+/7QtTq1ev1vfff6/77rtP1113nW/cDTfcUKpjAAAqHpf5AQACKjIyUr///ru2bNlS4nqv16tVq1apW7du8nq9OnjwoO9fp06dlJ2drR9//NFvm6uvvrrUQUqS3n77bXXo0EEdOnTQNddco6+++ko33XRTsaBy/D6PHj2qgwcP6uKLL5bT6VRGRkYZnnVxQ4cO9Xt80UUXac+ePb7Hn3/+uUJCQjRo0CDfMqvVqmuvvbZcxwUAGMeZKQBAQN18881av369UlJSdO6556pjx47q27evLrroIknSwYMHlZWVpcWLF2vx4sUl7uPE27A3adKkTDV0795dw4cPV0FBgf73v/9p7ty5crlcxW5asX37ds2YMUNfffVVsXlY2dnZZTrm8WrXrq169er5LYuKitKRI0d8j/ft26cGDRrI4XD4jTvxUkQAQOUhTAEAKlTR3ery8vJKXO90OtWwYUPf47i4OK1cuVLr1q3T559/rlWrVunNN9/U2LFjNWHCBHk8HklSv379NGDAgBL3GR8f7/e4LGelJKlhw4a67LLLJEmXX3656tatq8cee0yJiYm68sorJUlZWVkaPny4IiIiNGHCBDVt2lS1a9fWjz/+qOeee85XpxE2m83wtgCAwCFMAQAqVKNGjSRJO3fu1DnnnOO3zul06vfff1fHjh39loeFhal3797q3bu38vPzNX78eM2dO1e33HKL6tWrp/DwcHk8Hl/gMdvgwYP16quvasaMGerZs6csFou+/vprHT58WLNmzdIll1ziG3v8pXhFLBZLhdfUqFEjbdy4UU6n0+/s1Il3HAQAVB7mTAEAKlSHDh0UEhKiRYsWFTtbs3jxYh07dkxdunTxLTt06JDfmNDQUMXFxcnr9aqgoEA2m029evXSRx99pG3bthU73omX+FWEWrVq6YYbbtCvv/6qTz75RJJ8l/x5vV7fuPz8fL355pvFtnc4HOW67K8knTp1UkFBgZYsWeJb5vF4tHDhwgo9DgCg9DgzBQCoUPXr19fYsWM1Y8YMXXvtterWrZscDoe+//57LV++XJ06dfK975IkjRo1SmeeeaYuvPBC1a9fXxkZGVqwYIEuv/xyRURESJLuvPNObdy4UYMGDVJKSoqaN2+uI0eO6Mcff9SGDRv09ddfV/jzGDhwoFJTU5WWlqYePXqoffv2ioqK0pQpUzRixAhZLBa99957fuGqSKtWrZSenq5p06YpISFBYWFhfs/ZiB49eqhNmzZ6+umntWvXLjVr1kxr1qzxzasy42wYAODUCFMAgAp36623qnHjxlq4cKFefPFFHTt2TE2aNNH48eM1evRovxs7DB48WB988IFeeeUV5ebmqmHDhhoxYoRuu+0235gzzzxTS5cu1ezZs/Xxxx9r0aJFqlOnjpo3b67Jkyeb8hzsdruGDx+umTNnauPGjUpMTNTcuXP19NNPa8aMGYqMjFS/fv3UoUMHjRo1ym/bYcOGaevWrXr33Xf16quvqnHjxuUOUzabTf/+97/1xBNPaNmyZbJarerZs6fGjh2roUOH+uaqAQAqj8Vb0ktqAACgSli9erXGjh2rN99803cHRABA5WDOFAAAVYTL5fJ77Ha79cYbbygiIkKtWrUKUFUAUHNxmR8AAFXE448/LpfLpfbt2ys/P1+rVq3S999/r0mTJpX5dvAAgPLjMj8AAKqIorllv/32m/Ly8nTuuedq6NChGj58eKBLA4AaiTAFAAAAAAYwZwoAAAAADCBMAQAAAIABhCkAAAAAMIAwBQAAAAAGEKYAAAAAwADCFAAAAAAYQJgCAAAAAAMIUwAAAABgAGEKAAAAAAz4/+jYqi3TXkfzAAAAAElFTkSuQmCC","text/plain":["
"]},"metadata":{},"output_type":"display_data"}],"source":["# ratings distribution\n","plt.title('Rating Distribution')\n","sns.histplot(x = 'User Rating', data = df);"]},{"cell_type":"code","execution_count":8,"metadata":{"execution":{"iopub.execute_input":"2024-10-10T18:44:39.678948Z","iopub.status.busy":"2024-10-10T18:44:39.678325Z","iopub.status.idle":"2024-10-10T18:44:40.262632Z","shell.execute_reply":"2024-10-10T18:44:40.261417Z","shell.execute_reply.started":"2024-10-10T18:44:39.678861Z"},"trusted":true},"outputs":[{"data":{"image/png":"iVBORw0KGgoAAAANSUhEUgAAA1MAAAHfCAYAAAC1VYIWAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABJO0lEQVR4nO3de1yUdd7/8feAIIOEqJFtCgkaeAJBSSQT85SCph0Wdb3NzPK0Hsry1+aWuR327rBrmYcsaC27O6mpayWSeSjLU6Jl3WUZIola5hkEZAiu3x8sczuiiRejcwGv5+PRQ+e6vvO5PkxfBt9c1/Udm2EYhgAAAAAAF8XL0w0AAAAAQE1EmAIAAAAAEwhTAAAAAGACYQoAAAAATCBMAQAAAIAJhCkAAAAAMIEwBQAAAAAmEKYAAAAAwATCFAAAAACYQJgCAFw2W7duVWRkpDIyMjzdSpUcOXJEkydPVnx8vCIjI/X66697uqVzioyM1Jw5czzdBgDUOfU83QAAwL2WLVumadOmydfXV2vWrFHTpk1d9t955506fvy4PvzwQw91WHM8/fTT+uyzzzRx4kRdeeWVat++/XnHRkZGujxu0KCB2rZtq3vvvVc33XTTJe4UAOAJhCkAqKUcDodSU1M1ffp0T7dSY23ZskW9evXSPffcU6XxXbt21aBBg2QYhg4ePKh33nlH48aNU1pamrp163bJ+vz666/l7e19yeoDAM6Ny/wAoJZq06aNFi9erEOHDnm6lcuusLDQLXWOHj2qwMDAKo9v0aKFBg0apFtvvVV//vOf9frrr8swDL3xxhtu6ed86tevr3r1+P0oAFxuhCkAqKXGjh2rsrIypaWl/e64/fv3KzIyUsuWLau07+x7cebMmaPIyEjt3btXU6dOVadOndSlSxfNmjVLhmHo559/1vjx49WxY0d17dpVCxYsOOcxy8rK9Pzzz6tr166KiYnRuHHj9PPPP1cat3PnTt1zzz3q1KmTOnTooOHDh2v79u0uYyp6ysrK0oMPPqjrr79ew4YN+92vOTc3V5MnT1bnzp3VoUMHDR48WJ988olz/7JlyxQZGSnDMPTWW28pMjKy0mV8VdGyZUs1atRI+/btc9nucDg0e/Zs9enTR+3bt1f37t313HPPyeFwOMcMGDBAd955Z6WaZWVl6tatmyZPnuzcdq57pg4dOqRp06bphhtuUPv27dW/f3+99957zv2GYSg+Pl5PP/20S+24uDi1adNGeXl5zu2pqalq27atCgoKJEmHDx/WtGnTlJiYqPbt2+vGG2/U+PHjtX///ot+jQCgJuPXWABQSzVv3lyDBg3S4sWLNXr06Er3TlXHlClT1LJlSz344IP69NNPNX/+fAUFBendd99Vly5dNHXqVH3wwQd69tlnFRUVpeuvv97l+fPnz5fNZtPo0aN19OhRLVy4UCNHjtSKFSvk5+cnSdq8ebNGjx6t9u3ba+LEibLZbFq2bJnuuusuvf3224qOjnaped999+naa6/VlClTZBjGeXs/cuSIhg4dqqKiIt15551q1KiRli9frvHjxzsDzvXXX6/nnntODz30kPPSPTPy8/OVl5en0NBQ57aysjKNHz9e27dv1+DBg9WyZUvt3r1bCxcuVE5Ojl566SVJUlJSkubOnavDhw8rODjY+fzt27fr119/VXJy8u9+jYMHD5bNZtN//dd/qXHjxtqwYYMeeeQRnTp1SiNHjpTNZlPHjh21bds25/N++OEH5efny8vLSzt27HDe67V9+3a1adNGDRo0kCRNmjRJWVlZGj58uJo1a6Zjx45p48aN+vnnn9W8eXNTrxUA1ESEKQCoxcaPH68VK1YoLS1Njz76qNvqRkdH64knnpAkDRkyRD179tQzzzyjBx54QGPGjJFUfmalW7duWrp0aaUwdfLkSaWnpysgIECS1LZtW91///1avHixRowYIcMw9Le//U3x8fF69dVXZbPZJElDhw5V//79NWvWrEpnvVq3bq2ZM2desPfU1FQdOXJEb731luLi4iRJKSkpGjhwoJ5++mn16tVLISEhCgkJ0UMPPeS8dK8qiouLdezYMUnSwYMHNWvWLJWWlqpv377OMR988IE2bdqk//mf/3EeX5Kuu+46zZgxQzt27FDHjh2VnJys2bNn66OPPtLw4cOd49LT0+Xv7/+7i1q88MILKi0t1QcffKBGjRpJkv70pz/pgQce0Ny5czV06FD5+fkpLi5OM2fO1KlTpxQQEKDMzEw1a9ZMTZo0UWZmpm666SaVlZVpx44duv322yVJeXl5+vLLL/XQQw+53Es2duzYKr1GAFCbcJkfANRiISEhGjhwoBYvXqxff/3VbXX/+Mc/Ov/u7e2t9u3byzAMl+2BgYEKCwtTbm5upeffeuutziAlSf369VNwcLA+/fRTSdKuXbuUk5OjW265RcePH9exY8d07NgxFRYWKiEhQdu2bVNZWZlLzaFDh1ap908//VTR0dEuQaZBgwYaMmSIDhw4oKysrKq9COfw3nvvKSEhQQkJCbrjjju0ZcsW3Xvvvbr77rudYzIyMtSyZUuFh4c7v65jx46pS5cuksqXj5eksLAwtWnTRunp6c7nlpaW6qOPPlLPnj2dZ/DOZhiGVq9erZ49e8owDJdj3HjjjcrPz9e3334rSYqLi1Npaam+/PJLSVJmZqY6deqkuLg4ZWZmSpJ2796tvLw85+vl5+cnHx8fffHFFzp58qTp1woAagPOTAFALffnP/9Z77//vlJTU912duqaa65xeXzFFVeofv36aty4caXtJ06cqPT8a6+91uWxzWbTtddeqwMHDkiScnJyJEl/+ctfzttDfn6+GjZs6Hxc1cvLDh48qA4dOlTaHh4e7twfERFRpVpn69Wrl4YPH66SkhJ98803evnll3X69Gl5ef3f7y5/+ukn7dmzRwkJCeescfToUeffk5OT9fzzz+vQoUNq2rSpvvjiCx09elRJSUnn7eHYsWPKy8vTokWLtGjRovOOkcrPCNrtdmVmZqpbt27avn27Jk2apCuvvFL/8z//o+LiYuc9ap06dZIk+fr6aurUqXr22WfVtWtXdejQQTfddJNuvfVWl8sRAaAuIEwBQC135tmpikvwzlRxCd3ZSktLz1vzzHBQ4XxLc//e/UvnU/Gchx56SG3atDnnGH9/f5fH9evXv+jjuNvVV1+tG264QZLUvXt3NWrUSE888YTi4+N18803Syq/ZyoiIkLTpk07b40KSUlJmjlzplatWqWRI0dq1apVuuKKK5SYmHjeHirO2A0cOFC33XbbOcdULKbh4+Oj6OhoZWZm6qefftLhw4cVFxenJk2a6LffftPOnTuVmZmp8PBwl6A8cuRI9ezZU2vWrNHnn3+uF198UampqVq4cKHatm17Ea8YANRshCkAqAPGjx+v999//5wr+1Wc3Tlz9Tap/AzNpfLTTz+5PDYMQz/99JPzH/khISGSpICAAGc4cZdrrrlGe/furbQ9Ozvbud9dhgwZotdff12zZs1Snz59ZLPZFBoaqu+//14JCQnnDbIVQkJCFB0drVWrVmn48OFavXq1evfuLV9f3/M+p3HjxmrQoIHKysqq9NrFxcUpLS1NmzZtUqNGjRQeHi6bzabrrrtOmZmZyszMVI8ePSo9LzQ0VKNGjdKoUaOUk5OjW2+9VQsWLNA///nPC78wAFBLcM8UANQBoaGhGjhwoBYtWqTDhw+77AsICFCjRo2c98hUePvtty9ZP//+97916tQp5+OMjAwdPnzYecalffv2Cg0N1YIFC5zLcZ+p4jI1M7p3766vv/7aeZ+QVP65VIsXL1azZs3UqlUr07XPVq9ePd19993as2eP1q5dK6n8bNOhQ4e0ePHiSuNPnz5d6TOykpOT9dVXX2np0qU6fvz4717iJ5WfIezbt68++ugj7d69u9L+s1+7uLg4ORwOLVy4UJ06dXIGvE6dOmnFihX69ddfnZf4SVJRUZGKi4tdaoSGhqpBgwYuS7sDQF3AmSkAqCPGjRunFStWaO/evbruuutc9qWkpCg1NVWPPPKI2rdvr8zMzHOevXGXhg0batiwYbr99tudS6Nfe+21Gjx4sKTyywifeuopjR49WgMGDNDtt9+upk2b6tChQ9q6dasCAgL08ssvmzr2mDFjtHLlSo0ePVp33nmnGjZsqH//+9/av3+/5syZc85LGKvj9ttv1+zZs5WWlqbevXtr0KBBWrVqlWbMmKGtW7eqY8eOKi0tVXZ2tjIyMvTqq68qKirK+fykpCQ9++yzevbZZxUUFFSls00PPvigtm7dqsGDByslJUWtWrXSyZMn9e2332rz5s364osvnGNjYmJUr1497d27V0OGDHFuv/766/XOO+9IkstiHTk5ORo5cqT69eunVq1aydvbW2vWrNGRI0fUv39/d7xkAFBjEKYAoI649tprNXDgQC1fvrzSvgkTJujYsWP66KOPtGrVKiUmJurVV1897yIJ1TVu3Dj98MMPSk1NVUFBgRISEjRjxgzZ7XbnmPj4eC1atEgvvfSS3nzzTRUWFio4OFjR0dEu/+i/WFdeeaXeffdd/eMf/9Cbb76p4uJiRUZG6uWXX/7d5cbN8vPz0/DhwzVnzhxt3bpV8fHxmjdvnl5//XWtWLFCH3/8sex2u5o3b64777xTYWFhLs+/+uqrFRsbqx07diglJUU+Pj5V+hqXLFmiefPm6eOPP9Y777yjoKAgtWrVSlOnTnUZ6+/vrzZt2uibb75xOQNVEaD+8Ic/qFmzZi799O/fX5s3b9b7778vb29vhYeHa9asWS5LwANAXWAzzNwZDAAAAAB1HPdMAQAAAIAJhCkAAAAAMIEwBQAAAAAmEKYAAAAAwATCFAAAAACYQJgCAAAAABP4nClJX375pQzDqNJndwAAAACovUpKSmSz2RQbG3vBsZyZkmQYhqzycVuGYcjhcFimH9Q9zEF4EvMPnsT8g6cxB63hYrIBZ6Yk5xmpqKgoD3ciFRYWateuXWrVqpX8/f093Q7qIOYgPIn5B09i/sHTmIPW8M0331R5LGemAAAAAMAEwhQAAAAAmECYAgAAAAATCFMAAAAAYAJhCgAAAABMIEwBAAAAgAmEKQAAAAAwgTAFAAAAACYQpgAAAADABMIUAAAAAJhAmAIAAAAAEwhTAAAAAGACYQoAAAAATCBMAQAAAIAJhCkAAAAAMIEwBQAAAAAmEKYAAAAAwATCVC1WVmZYqg4AAABQm9TzdAO4dLy8bFr08W4dPl5oukZwI38N6RPhxq4AAACA2oEwVcsdPl6og0cKPN0GAAAAUOtwmR8AAAAAmECYsiAfHx/ZbDZPtwEAAADgd1gyTC1fvly33nqroqKiFB8fr3vvvVenT5927l+3bp0GDhyoqKgo9e3bV0uXLvVgt+5ls9nUtl072e12T7cCAAAA4HdY7p6p+fPnKy0tTePGjVNMTIyOHz+uzZs3q7S0VJKUmZmpiRMn6o9//KP++te/asuWLXrkkUfUoEED9evXz8Pdu0c9b2+9s/p7HT1x+sKDzyMitJFu7nKtG7sCAAAAcCZLhans7GzNnTtXL730krp37+7c3rdvX+ff58+fr+joaD3xxBOSpC5duig3N1ezZ8+uNWFKkn49XqhDR4tMPz84iDNbAAAAwKVkqcv8li1bpubNm7sEqTM5HA5t3bq1UmhKTk7Wnj17tH///svRJgAAAABYK0zt3LlTEREReumll5SQkKD27dtr6NCh2rlzpyRp3759KikpUXh4uMvzWrZsKan8zBYAAAAAXA6Wuszv8OHD+t///V/t3r1bM2bMkN1u18svv6xRo0Zp9erVOnnypCQpMDDQ5XkVjyv2m2EYhgoLzX+4rbs4HA7Z7XYZpWUqLSs1XadUZZKkMqOadYzyOkVFRTIMw3Qd1BxFRUUufwKXE/MPnsT8g6cxB63BMIwqr6xtqTBVEWhefPFFtW7dWpLUoUMH9ezZU2+++aZuvPHGS3bskpIS7dq165LVryq73a6goCAVOxwqLDAf7hynHZKk4uLiatU5HVA+Rfbu3cs3dh2Tk5Pj6RZQhzH/4EnMP3gac9DzfH19qzTOUmEqMDBQQUFBziAlSUFBQWrbtq2ysrLUv39/SVJ+fr7L8/Ly8iRJDRs2NH1sHx8ftWrVyvTz3cXhKA9B9X195d/A33QdX7/yCVC/fv1q1fGz+0mSwsLCODNVRxQVFSknJ0ctWrRgiX5cdsw/eBLzD57GHLSGrKysKo+1VJhq1aqV9u3bd859xcXFCg0NlY+Pj7Kzs9WtWzfnvop7pc6+l+pi2Gw2+fubDx3uUnFK0ebtJW8vb9N1vP9zO5yXrZp1bOV1+Iaue+x2uyW+J1A3Mf/gScw/eBpz0LOqeomfZLEFKHr06KETJ064XG53/Phxffvtt2rXrp18fX0VHx+vjz76yOV56enpatmypZo3b365WwYAAABQR1nqzFTv3r0VFRWlyZMna8qUKapfv75SU1Pl6+urYcOGSZLGjx+vESNG6G9/+5uSkpK0detWffjhh3rhhRc83D0AAACAusRSZ6a8vLyUmpqqmJgYPfbYY3rggQcUEBCgt956S8HBwZKkuLg4zZkzR9u3b9c999yjDz/8UE899ZSSkpI83D0AAACAusRSZ6YkqXHjxvrHP/7xu2N69eqlXr16XaaO6rYAfx+VlRny8qr6taO/x521AAAAAE+yXJiCtdh968nLy6ZFH+/W4ePV+xyu4Eb+GtInwk2dAQAAAJ5FmEKVHD5eqINHCjzdBgAAAGAZlrpnCgAAAABqCsIUAAAAAJhAmAIAAAAAEwhTAAAAAGACYQoAAAAATCBMAQAAAIAJhCkAAAAAMIEwBQAAAAAmEKYAAAAAwATCFAAAAACYQJgCAAAAABMIUwAAAABgAmEKAAAAAEwgTAEAAACACYQpAAAAADCBMAUAAAAAJhCmAAAAAMAEwhQAAAAAmECYAgAAAAATCFMAAAAAYAJhCgAAAABMIEwBAAAAgAmEKQAAAAAwgTAFAAAAACYQpgAAAADABMIUAAAAAJhAmAIAAAAAEwhTAAAAAGACYQoAAAAATCBMAQAAAIAJhCkAAAAAMIEwBQAAAAAmEKYAAAAAwATCFAAAAACYQJgCAAAAABMIUwAAAABgAmEKAAAAAEwgTAEAAACACYQpAAAAADCBMAUAAAAAJhCmAAAAAMAEwhQAAAAAmECYAgAAAAATCFMAAAAAYAJhCgAAAABMsFSYWrZsmSIjIyv9989//tNl3JIlS9S3b19FRUVp4MCBWr9+vYc6BgAAAFBX1fN0A+fy6quv6oorrnA+btq0qfPvK1eu1PTp0zVu3Dh16dJF6enpmjhxot566y3FxMR4oFsAAAAAdZElw1S7du3UuHHjc+6bPXu2+vfvr/vvv1+S1KVLF+3evVvz5s1TWlraZewSAAAAQF1mqcv8LiQ3N1c5OTlKSkpy2Z6cnKzNmzfL4XB4qDMAAAAAdY0lw9SAAQPUpk0b9erVS6+88opKS0slSdnZ2ZKksLAwl/EtW7ZUSUmJcnNzL3uvAAAAAOomS13mFxwcrEmTJqlDhw6y2Wxat26dZs2apUOHDumxxx7TyZMnJUmBgYEuz6t4XLHfDMMwVFhYaL55N3E4HLLb7TJKy1RaVmq6TqnKJEllhjXqSFKpUV6rqKhIhmFUqxYunaKiIpc/gcuJ+QdPYv7B05iD1mAYhmw2W5XGWipMdevWTd26dXM+vvHGG1W/fn0tXLhQ48aNu6THLikp0a5duy7pMarCbrcrKChIxQ6HCgvMhzvH6fJLHouLiy1RR5JOB5RPt7179/ImUQPk5OR4ugXUYcw/eBLzD57GHPQ8X1/fKo2zVJg6l6SkJC1YsEC7du1Sw4YNJUn5+fkKDg52jsnLy5Mk534zfHx81KpVq+o16wYV933V9/WVfwN/03V8/conQP369S1RR5L87H6Syi/T5MyUdRUVFSknJ0ctWrSQ3W73dDuoY5h/8CTmHzyNOWgNWVlZVR5r+TB1pvDwcEnl905V/L3isY+Pj0JCQkzXttls8vevXlhwh4pTijZvL3l7eZuu4/2f2+G8bNaoI0netvJavDnUDHa73RLfE6ibmH/wJOYfPI056FlVvcRPsugCFGdKT0+Xt7e32rZtq5CQELVo0UIZGRmVxiQkJFT5dBwAAAAAVJelzkzdc889io+PV2RkpCRp7dq1Wrx4sUaMGOG8rG/SpEmaOnWqQkNDFR8fr/T0dH399dd68803Pdk6AAAAgDrGUmEqLCxMS5cu1S+//KKysjK1aNFCf/3rX3XnnXc6xwwYMEBFRUVKS0tTamqqwsLCNHfuXMXGxnqwcwAAAAB1jaXC1KOPPlqlcSkpKUpJSbnE3QAAAADA+Vn+nikAAAAAsCLCFAAAAACYQJgCAAAAABMIUwAAAABgAmEKAAAAAEwgTAEAAACACYQpAAAAADCBMAUAAAAAJhCmAAAAAMAEwhQAAAAAmECYAgAAAAATCFMAAAAAYAJhCgAAAABMIEwBAAAAgAmEKQAAAAAwgTAFAAAAACYQpgAAAADABMIUAAAAAJhAmAIAAAAAEwhTAAAAAGACYQoAAAAATCBMAQAAAIAJhCkAAAAAMIEwBQAAAAAmEKYAAAAAwATCFAAAAACYQJgCAAAAABMIUwAAAABgAmEKAAAAAEwgTAEAAACACYQpAAAAADCBMAUAAAAAJhCmAAAAAMAEwhQAAAAAmECYAgAAAAATCFMAAAAAYAJhCgAAAABMIEwBAAAAgAmEKQAAAAAwgTAFAAAAACYQpnDZBPj7qKzMcEstd9UBAAAAzKrn6QZQd9h968nLy6ZFH+/W4eOFpusEN/LXkD4RbuwMAAAAuHiEKVx2h48X6uCRAk+3AQAAAFQLl/kBAAAAgAmEKQAAAAAwgTAFAAAAACZYNkwVFBQoMTFRkZGR+uabb1z2LVmyRH379lVUVJQGDhyo9evXe6hLAAAAAHWVZcPUSy+9pNLS0krbV65cqenTpyspKUlpaWmKiYnRxIkT9dVXX13+JgEAAADUWZYMU3v27NHbb7+tSZMmVdo3e/Zs9e/fX/fff7+6dOmiJ554QlFRUZo3b54HOgUAAABQV1kyTD311FMaOnSowsLCXLbn5uYqJydHSUlJLtuTk5O1efNmORyOy9kmAAAAgDrMcmEqIyNDu3fv1oQJEyrty87OlqRKIatly5YqKSlRbm7uZekRAAAAACz1ob1FRUV65plnNGXKFAUEBFTaf/LkSUlSYGCgy/aKxxX7zTAMQ4WFhaaf7y4Oh0N2u11GaZlKyyrfM1ZVpSqTJJUZ1qjj1p6M8jpFRUUyDKNaPaGyoqIilz+By4n5B09i/sHTmIPWYBiGbDZblcZaKkzNnz9fTZo00R133HHZj11SUqJdu3Zd9uOezW63KygoSMUOhwoLzIc7x+nySx6Li4stUcedtU4HlE/bvXv38mZzCeXk5Hi6BdRhzD94EvMPnsYc9DxfX98qjbNMmDpw4IAWLFigefPmKT8/X5KcZ4oKCwtVUFCghg0bSpLy8/MVHBzsfG5eXp4kOfeb4ePjo1atWpl+vrtU3PdV39dX/g38Tdfx9SufAPXr17dEHXfW8rP7SSq/3JMzU+5XVFSknJwctWjRQna73dPtoI5h/sGTmH/wNOagNWRlZVV5rGXC1P79+1VSUqIxY8ZU2jdixAh16NBBM2fOlFR+71R4eLhzf3Z2tnx8fBQSEmL6+DabTf7+1QsL7lBxStHm7SVvL2/Tdbz/czucl80addzak628Dm8yl5bdbrfE9wTqJuYfPIn5B09jDnpWVS/xkywUptq0aaM33njDZduuXbv09NNP6/HHH1dUVJRCQkLUokULZWRkqHfv3s5x6enpSkhIqPLpOAAAAACoLsuEqcDAQMXHx59zX7t27dSuXTtJ0qRJkzR16lSFhoYqPj5e6enp+vrrr/Xmm29eznYBAAAA1HGWCVNVNWDAABUVFSktLU2pqakKCwvT3LlzFRsb6+nWAAAAANQhlg5T8fHx+uGHHyptT0lJUUpKigc6AgAAAIBylvvQXgAAAACoCQhTAAAAAGACYQoAAAAATCBMAQAAAIAJhCkAAAAAMIEwhRonwN9HZWWGW2q5qw4AAADqHksvjQ6ci923nry8bFr08W4dPl5ouk5wI38N6RPhxs4AAABQlxCmUGMdPl6og0cKPN0GAAAA6igu8wMAAAAAEwhTAAAAAGACYQoAAAAATCBMAQAAAIAJhCkAAAAAMIEwBQAAAAAmmA5TI0aM0ObNm8+7f8uWLRoxYoTZ8gAAAABgaabD1BdffKEjR46cd/+xY8e0bds2s+UBAAAAwNKqdZmfzWY7776ffvpJDRo0qE55AAAAALCsehczePny5Vq+fLnz8fz587V48eJK4/Lz8/XDDz8oMTGx+h0CAAAAgAVdVJgqKirS8ePHnY8LCgrk5VX55Ja/v7+GDh2qCRMmVL9DAAAAALCgiwpTw4YN07BhwyRJPXv21COPPKJevXpdksYAAAAAwMouKkydad26de7sAwAAAABqFNNhqsKpU6d08OBB5eXlyTCMSvuvv/766h4CAAAAACzHdJg6duyYnnrqKa1evVqlpaWV9huGIZvNpl27dlWrQQAAAACwItNh6rHHHtP69et15513Ki4uToGBge7sCwAAAAAszXSY2rhxo+666y499NBD7uwHAAAAAGoE0x/a6+fnp2bNmrmzFwAAAACoMUyHqYEDB2rNmjXu7AUAAAAAagzTl/n17dtX27Zt0z333KMhQ4bo6quvlre3d6Vx7dq1q1aDAAAAAGBFpsNUxYf3StKmTZsq7Wc1PwAAAAC1mekw9fTTT7uzDwAAAACoUUyHqdtuu82dfQAAAABAjWJ6AQoAAAAAqMtMn5maNm3aBcfYbDb993//t9lDAAAAAIBlmQ5TW7durbStrKxMhw8fVmlpqRo3biy73V6t5gAAAADAqkyHqXXr1p1ze0lJiRYtWqSFCxdqwYIFphsDAAAAACtz+z1TPj4+Gj58uLp27aonn3zS3eUBAAAAwBIu2QIUrVu31rZt2y5VeQAAAADwqEsWpjZt2sQ9UwAAAABqLdP3TM2dO/ec2/Pz87Vt2zZ99913GjNmjOnGAAAAAMDK3B6mGjZsqJCQED3++OMaPHiw6cYAAAAAwMpMh6nvv//enX0AAAAAQI1yye6ZAgAAAIDazPSZqQpffPGFPvnkEx08eFCSdM011+imm25S586dq90cAAAAAFiV6TDlcDj04IMPas2aNTIMQ4GBgZKkvLw8vfbaa+rTp49mzpwpHx8ftzULAAAAAFZh+jK/efPm6eOPP9bdd9+tzz//XF988YW++OILbdy4UaNGjdLq1as1b948d/YKAAAAAJZhOkx98MEHuu222/TQQw/pyiuvdG5v0qSJ/t//+3+69dZb9f7777ulSQAAAACwGtNh6vDhw4qOjj7v/ujoaB0+fPiian766acaPny4unTpovbt26tXr156+umnlZ+f7zJu3bp1GjhwoKKiotS3b18tXbrU1NcAAAAAAGaZDlNXX321vvjii/Pu37Ztm66++uqLqnnixAlFR0fr8ccf17/+9S/dfffd+ve//6377rvPOSYzM1MTJ05UTEyM0tLSlJSUpEceeUQZGRlmvxQAAAAAuGimF6C49dZbNWfOHF1xxRUaOXKkrr32WtlsNuXk5GjhwoXKyMjQpEmTLqrmoEGDXB7Hx8fL19dX06dP16FDh9S0aVPNnz9f0dHReuKJJyRJXbp0UW5urmbPnq1+/fqZ/XIAAAAA4KKYDlPjxo1Tbm6uFi9erCVLlsjLq/wkV1lZmQzD0G233aZx48ZVu8GgoCBJUklJiRwOh7Zu3aqpU6e6jElOTtaHH36o/fv3q3nz5tU+JgAAAABciOkw5e3trWeeeUYjR47Uhg0bdODAAUlSs2bNlJiYqNatW5tuqrS0VL/99puysrI0b9489ezZU82bN1dWVpZKSkoUHh7uMr5ly5aSpOzsbMIUAAAAgMviosJUcXGx/v73v+u6667TnXfeKUlq3bp1peD0xhtv6N1339Ujjzxi6nOmevTooUOHDkmSunXrppkzZ0qSTp48KUnOz7SqUPG4Yr8ZhmGosLDQ9PPdxeFwyG63yygtU2lZqek6pSqTJJUZ1qhjxZ5KjfI6RUVFMgzDdJ3apqioyOVP4HJi/sGTmH/wNOagNRiGIZvNVqWxFxWmFi1apOXLlys9Pf13x9100036xz/+oYiICA0bNuxiDiFJSk1NVVFRkbKysjR//nyNGzdOr7322kXXuRglJSXatWvXJT1GVdjtdgUFBanY4VBhgflw5zjtkFQegK1Qx4o9nQ4on/579+7lTesccnJyPN0C6jDmHzyJ+QdPYw56nq+vb5XGXVSYWrVqlW6++WaFhIT87rjQ0FD169dPK1euNBWmKs50xcbGKioqSoMGDdLHH3+sVq1aSVKlpdLz8vIkSQ0bNrzoY1Xw8fFx1vckh6M8KNT39ZV/A3/TdXz9yidA/fr1LVHHij352f0kSWFhYZyZOkNRUZFycnLUokUL2e12T7eDOob5B09i/sHTmIPWkJWVVeWxFxWmdu/erVtuuaVKY2NjY7V+/fqLKX9OkZGR8vHx0b59+9SzZ0/5+PgoOztb3bp1c47Jzs6WpEr3Ul0Mm80mf//qhQV3qDilaPP2kreXt+k63v9Z9d7LZo06VuzJ21Zehzerc7Pb7Zb4nkDdxPyDJzH/4GnMQc+q6iV+0kV+zlRJSUmV74Hy8fFxnmWpjp07d6qkpETNmzeXr6+v4uPj9dFHH7mMSU9PV8uWLVl8AgAAAMBlc1Fnpq666ir9+OOPVRr7448/6qqrrrqoZiZOnKj27dsrMjJSfn5++v777/Wvf/1LkZGR6t27tyRp/PjxGjFihP72t78pKSlJW7du1YcffqgXXnjhoo4FAAAAANVxUWHqhhtu0IoVKzR27Fg1adLkvOOOHj2qFStWqG/fvhfVTHR0tNLT05WamirDMNSsWTOlpKTonnvucd4EFhcXpzlz5mjWrFl67733dM011+ipp55SUlLSRR0LAAAAAKrjosLU6NGj9f777+uuu+7S3//+d3Xo0KHSmJ07d+rRRx9VcXGx7r333otqZsyYMRozZswFx/Xq1Uu9evW6qNoAAAAA4E4XFaZCQkI0a9YsPfDAAxo6dKhCQkIUERGhBg0aqKCgQD/++KP27dsnPz8/Pf/88woNDb1UfQMAAACAR11UmJLKP0Pq/fffV1pamj755BOtWbPGue+qq65SSkqKRo8efcHl0wEAAACgJrvoMCVJzZs31+OPPy5JOnXqlAoKCtSgQQMFBAS4tTkAAAAAsCpTYepMAQEBhCgAAAAAdc5Ffc4UAAAAAKAcYQoAAAAATCBMAQAAAIAJhCkAAAAAMIEwBQAAAAAmEKYAAAAAwATCFAAAAACYQJgCAAAAABMIUwAAAABgAmEKAAAAAEwgTAEAAACACYQpAAAAADCBMAUAAAAAJhCmAAAAAMAEwhQAAAAAmECYAgAAAAATCFMAAAAAYAJhCgAAAABMIEwBAAAAgAmEKQAAAAAwgTAFAAAAACYQpgAAAADABMIUAAAAAJhAmAIAAAAAEwhTAAAAAGACYQoAAAAATCBMAQAAAIAJhCkAAAAAMIEwBQAAAAAmEKYAAAAAwATCFAAAAACYQJgCAAAAABMIUwAAAABgAmEKAAAAAEwgTAEAAACACYQpAAAAADCBMAUAAAAAJhCmAAAAAMAEwhQAAAAAmECYAgAAAAATCFMAAAAAYAJhCgAAAABMsFSYWrVqlcaPH6/ExETFxMRo0KBBeu+992QYhsu4JUuWqG/fvoqKitLAgQO1fv16D3UMAAAAoK6yVJh6/fXXZbfb9fDDD2v+/PlKTEzU9OnTNW/ePOeYlStXavr06UpKSlJaWppiYmI0ceJEffXVV55rHAAAAECdU8/TDZxp/vz5aty4sfNxQkKCTpw4oddee01//vOf5eXlpdmzZ6t///66//77JUldunTR7t27NW/ePKWlpXmocwAAAAB1jaXOTJ0ZpCq0adNGp06dUmFhoXJzc5WTk6OkpCSXMcnJydq8ebMcDsflahUAAABAHWepMHUu27dvV9OmTRUQEKDs7GxJUlhYmMuYli1bqqSkRLm5uZ5oEQAAAEAdZKnL/M6WmZmp9PR0/eUvf5EknTx5UpIUGBjoMq7iccV+MwzDUGFhoennu4vD4ZDdbpdRWqbSslLTdUpVJkkqM6xRx4o9lRrldYqKiiotclKXFRUVufwJXE7MP3gS8w+exhy0BsMwZLPZqjTWsmHql19+0ZQpUxQfH68RI0Zc8uOVlJRo165dl/w4F2K32xUUFKRih0OFBebDneN0+SWPxcXFlqhjxZ5OB5RP/7179/KmdQ45OTmebgF1GPMPnsT8g6cxBz3P19e3SuMsGaby8vI0evRoBQUFac6cOfLyKr8asWHDhpKk/Px8BQcHu4w/c78ZPj4+atWqVTW6do+K+77q+/rKv4G/6Tq+fuUToH79+paoY8We/Ox+ksovG+XM1P8pKipSTk6OWrRoIbvd7ul2UMcw/+BJzD94GnPQGrKysqo81nJh6vTp0xo7dqzy8/O1aNEiXXHFFc594eHhkqTs7Gzn3yse+/j4KCQkxPRxbTab/P2rFxbcoeKUos3bS95e3qbreP/ndjgvmzXqWLEnb1t5Hd6szs1ut1viewJ1E/MPnsT8g6cxBz2rqpf4SRZbgOK3337T/fffr+zsbL366qtq2rSpy/6QkBC1aNFCGRkZLtvT09OVkJBQ5dNxAAAAAFBdljoz9fjjj2v9+vV6+OGHderUKZcP4m3btq18fX01adIkTZ06VaGhoYqPj1d6erq+/vprvfnmm55rHAAAAECdY6kwtXHjRknSM888U2nf2rVr1bx5cw0YMEBFRUVKS0tTamqqwsLCNHfuXMXGxl7udgEAAADUYZYKU+vWravSuJSUFKWkpFzibgAAAADg/Cx1zxQAAAAA1BSEKQAAAAAwgTAFAAAAACYQpgAAAADABMIUAAAAAJhAmAIAAAAAEwhTAAAAAGACYQoAAAAATCBMAQAAAIAJhCkAAAAAMIEwBQAAAAAmEKYAAAAAwATCFAAAAACYQJgCAAAAABMIUwAAAABgAmEKAAAAAEwgTAEAAACACYQpAAAAADCBMAUAAAAAJhCmAAAAAMAEwhQAAAAAmECYAgAAAAATCFMAAAAAYAJhCgAAAABMIEwBAAAAgAmEKQAAAAAwgTAFAAAAACYQpgAAAADABMIUAAAAAJhAmAIAAAAAEwhTAAAAAGACYQoAAAAATCBMAQAAAIAJhCkAAAAAMIEwBbhBWZlhqToAAAC49Op5ugGgNvDysmnRx7t1+Hih6RrBjfw1pE+EG7sCAADApUSYAtzk8PFCHTxS4Ok2AAAAcJlwmR8AAAAAmECYAgAAAAATCFMAAAAAYAJhCnVWgL8Pq+cBAADANBagQJ1l963nllX4IkIb6eYu17qxMwAAANQEhCnUedVdhS84yO7GbgAAAFBTcJkfAAAAAJhAmAIAAAAAEwhTAAAAAGCCpcLUTz/9pMcee0yDBg1S27ZtNWDAgHOOW7Jkifr27auoqCgNHDhQ69evv8ydAu7nztUFWaUQAADg0rPUAhQ//vijPv30U3Xo0EFlZWUyjMr/IFy5cqWmT5+ucePGqUuXLkpPT9fEiRP11ltvKSYm5vI3DbiJu1YXDG7kryF9ItzYGQAAAM7FUmGqZ8+e6t27tyTp4Ycf1v/+7/9WGjN79mz1799f999/vySpS5cu2r17t+bNm6e0tLTL2S5wSVR3dUEAAABcHpa6zM/L6/fbyc3NVU5OjpKSkly2Jycna/PmzXI4HJeyPQAAAABwslSYupDs7GxJUlhYmMv2li1bqqSkRLm5uZ5oCwAAAEAdZKnL/C7k5MmTkqTAwECX7RWPK/abYRiGCgvN36fiLg6HQ3a7XUZpmUrLSk3XKVWZJKnMsEYdK/ZUa+sY5XVOnz59zvsOL6RiDjocDtlsNlM1zmaz2apdo4I7+oF1FRUVufwJXE7MP3gac9AaDMOo8r9dalSYupRKSkq0a9cuT7chu92uoKAgFTscKiwwH+4cp8sveSwuLrZEHSv2VFvr+DT1V1mZIT8/P1PPr5iDkvRbaam++/ZblZSUmO/Hx0dt27VTPW9v0zUquKMf1Aw5OTmebgF1GPMPnsYc9DxfX98qjatRYaphw4aSpPz8fAUHBzu35+Xluew3w8fHR61atapeg25Qcd9XfV9f+TfwN13H1698AtSvX98SdazYU22tE9Swgby8bHp39fc6ZGJVQKO0TMUOh0KuDtKwfm113XXXVetskM1mUz1vb72z+nv9Wo1VCq9q5K8/3dy62v3A2oqKipSTk6MWLVrIbrd7uh3UMcw/eBpz0BqysrKqPLZGhanw8HBJ5fdOVfy94rGPj49CQkJM17bZbPL3r15YcIeKU4o2by95e5n/Tb73f26H87JZo44Ve6rtdY6cOK1DRy/+MoHSslIVFhTKz15+Zstdb+ZHTfZTwdvm5dZ+YG12u90S78mom5h/8DTmoGddzO0JNWoBipCQELVo0UIZGRku29PT05WQkFDl03EAAAAAUF2WOjNVVFSkTz/9VJJ04MABnTp1yhmcOnfurMaNG2vSpEmaOnWqQkNDFR8fr/T0dH399dd68803Pdk6AAAAgDrGUmHq6NGjuu+++1y2VTx+4403FB8frwEDBqioqEhpaWlKTU1VWFiY5s6dq9jYWE+0DAAAAKCOslSYat68uX744YcLjktJSVFKSspl6AgAAAAAzq1G3TMFAAAAAFZBmAIAAAAAEwhTAAAAAGACYQoAAAAATCBMAQAAAIAJhCkAAAAAMIEwBQAAAAAmEKYAAAAAwATCFAAAAACYQJgCAAAAABMIUwAAAABgAmEKQI0Q4O+jsjLDLbXcVQcAANRt9TzdAABUhd23nry8bFr08W4dPl5ouk5wI38N6RPhxs4AAEBdRZgCUKMcPl6og0cKPN0GAAAAl/kBAAAAgBmEKQAAAAAwgTAFAAAAACYQpgCc0xVuXD0PAACgNmIBCgDn5FffPavnRYQ20s1drnVjZwAAANZAmALwu6q7el5wkN2N3QAAAFgHl/kBAAAAgAmEKQAAAAAwgTAFAAAAACYQpgAAAADABMIUAAAAAJhAmAIAAAAAEwhTAAAAAGACYQoAAAAATCBMAQAAAIAJhCkAMKmszLBUHQAAcHnV83QDAFBTeXnZtOjj3Tp8vNB0jeBG/hrSJ8KNXQEAgMuFMAUA1XD4eKEOHinwdBsAAMADuMwPAAAAAEwgTAEAAACACYQpAAAAADCBMAWgTgnw92H1PAAA4BYsQAGgTrH71nPLKnwRoY10c5dr3dgZAACoaQhTAOqk6q7CFxxkd2M3AACgJuIyPwAAAAAwgTAFAAAAACYQpgDAg9y5IIbV6gAAUNtxzxQAeJC7F8Sobp3gRv4a0ifC9PMBAKhLCFMAYAHuWhCjunUAAEDVcZkfAAAAAJhAmAIAAAAAEwhTAADLsNlsstvtstlsnm4FAC473gNrnhoZpvbs2aO7775bMTEx6tq1q5577jk5HA5PtwUANZ6nVxe02+1q27at7HbXD0W22gqDVls50Wp13MVqX5fV6qDmudD/+/O9B15sncutLn9v1LgFKE6ePKm77rpLLVq00Jw5c3To0CE988wzOn36tB577DFPtwcANZqnVxcsNcp0uui0/Ox+8raV/77PiisMWmkFxtq8kqM7Xmd3fl1W6wc1z4Xm0LneA89mxTlUl783alyYevfdd1VQUKC5c+cqKChIklRaWqrHH39cY8eOVdOmTT3bIADUAp5aXbC0rFSFBYXyb/CbvL28TR//crDKCoy1fSVHq31dVusHNc/vzaGa9B54trr6vVHjLvPbsGGDEhISnEFKkpKSklRWVqaNGzd6rjEAAAAAdUqNC1PZ2dkKDw932RYYGKjg4GBlZ2d7qCsAAAAAdY3NMIwadadXu3btdN9992nMmDEu2wcMGKDY2Fg9+eSTF11zx44dMgxDPj4+7mrTNMMw5OXlpVNFJdW6Cc+nnpfs9eupoKhEpRaoY8WeqHNuhmHIkFTfx9sS/VCnbtWpmH82ybmalZeXTQF2H1npx5XNZqt179O19XW+mK/LMAyVlpbK29v7nKupXe5+UPtcaA6d6z3wbFacQ7Xte6OkpEQ2m00dO3a84Ngad8/UpVAxWa2wDGVFDwF29wS7Bhar485a1KEOdepOHcka79Fnqq3v07X1da7K12Wz2eTl9fsX7VzOflA71dY5VJu+LpvNVuU+alyYCgwMVH5+fqXtJ0+eVMOGDU3VjI2NrW5bAAAAAOqYGnfPVHh4eKV7o/Lz83X48OFK91IBAAAAwKVS48JUYmKiNm3apLy8POe2jIwMeXl5qWvXrh7sDAAAAEBdUuMWoDh58qT69++vsLAwjR071vmhvbfccgsf2gsAAADgsqlxYUqS9uzZoyeffFJffvmlGjRooEGDBmnKlCny9fX1dGsAAAAA6ogaGaYAAAAAwNNq3D1TAAAAAGAFhCkAAAAAMIEwBQAAAAAmEKYAAAAAwATCFAAAAACYQJgCAAAAABMIUwAAAABgAmHKIvbs2aO7775bMTEx6tq1q5577jk5HA5PtwULW7VqlcaPH6/ExETFxMRo0KBBeu+993T2R8ctWbJEffv2VVRUlAYOHKj169dXqpWfn6+//vWv6ty5s2JjYzV58mT9+uuvlcbt2LFDQ4YMUXR0tHr06KHU1NRKxzMMQ6mpqbrpppsUHR2tIUOG6KuvvnLr1w7rKSgoUGJioiIjI/XNN9+47GMO4lJZvny5br31VkVFRSk+Pl733nuvTp8+7dy/bt06DRw4UFFRUerbt6+WLl1aqYbD4dCzzz6rrl27KiYmRnfffbeys7Mrjavqz+mqzHfUDmvXrlVKSopiY2N144036r777lNubm6lcbwH1nIGPO7EiRNG165djf/6r/8yNmzYYCxZssTo1KmT8fjjj3u6NVjY4MGDjSlTphgrV640Nm3aZPzzn/80WrdubcyZM8c55sMPPzQiIyONF154wdi8ebMxffp0o23btsaXX37pUmvUqFFGYmKisXLlSmPNmjXGgAEDjIEDBxolJSXOMTk5OUZMTIwxYcIEY9OmTcZrr71mtGvXznj11Vddar3yyitGu3btjNdee83YtGmTMWHCBCM2NtbYt2/fJX094FnPPfecccMNNxgRERHG119/7dzOHMSl8tJLLxmxsbHGK6+8YmzdutXIyMgwZsyYYZw6dcowDMPYtm2b0aZNG2P69OnG5s2bjRdeeMGIjIw0Vq1a5VJn+vTpRqdOnYwlS5YYGzZsMIYNG2Z069bNyMvLc46p6s/pqs531HxbtmwxWrdubTz88MPGxo0bjZUrVxo333yz0bt3b6OoqMg5jvfA2o8wZQEvv/yyERMTYxw/fty57d133zXatGlj/PLLL55rDJZ29OjRStseffRRo2PHjkZpaalhGIZx8803Gw888IDLmCFDhhj33nuv8/GOHTuMiIgI47PPPnNu27NnjxEZGWmsXLnSuW369OlGjx49jOLiYue2mTNnGnFxcc5tp0+fNjp27GjMnDnTOaa4uNjo0aOHMWPGjOp9wbCsrKwsIyYmxnjnnXcqhSnmIC6FPXv2GG3btjU++eST844ZNWqUMWTIEJdtDzzwgJGUlOR8/PPPPxtt2rQx3n33Xee248ePGzExMUZqaqpzW1V/TldlvqN2mD59utGzZ0+jrKzMuW3z5s1GRESEsW3bNuc23gNrPy7zs4ANGzYoISFBQUFBzm1JSUkqKyvTxo0bPdcYLK1x48aVtrVp00anTp1SYWGhcnNzlZOTo6SkJJcxycnJ2rx5s/PylA0bNigwMFBdu3Z1jgkPD1ebNm20YcMG57YNGzaoV69e8vX1damVl5enL7/8UlL55QenTp1yOaavr6/69OnjUgu1y1NPPaWhQ4cqLCzMZTtzEJfKsmXL1Lx5c3Xv3v2c+x0Oh7Zu3ap+/fq5bE9OTtaePXu0f/9+SdLnn3+usrIyl3FBQUHq2rVrpbl3oZ/TVZ3vqB1+++03NWjQQDabzbntiiuukCTnZXe8B9YNhCkLyM7OVnh4uMu2wMBABQcHn/O6beB8tm/frqZNmyogIMA5d87+B27Lli1VUlLivK47OztbYWFhLj8QpPI38ooahYWF+vnnnyvN0/DwcNlsNue4ij/PHteyZUsdPHjQ5V4G1A4ZGRnavXu3JkyYUGkfcxCXys6dOxUREaGXXnpJCQkJat++vYYOHaqdO3dKkvbt26eSkpJzzgNJLvOlSZMmatiwYaVxZ/78rcrP6arOd9QOt99+u/bs2aO33npL+fn5ys3N1fPPP6+2bduqY8eOkngPrCsIUxaQl5enwMDAStsbNmyokydPeqAj1ESZmZlKT0/XqFGjJMk5d86eWxWPK/bn5eU5f5t2pjPnX35+/jlr+fr6ym63u9Ty9fVV/fr1Kx3TMAzmcy1TVFSkZ555RlOmTFFAQECl/cxBXCqHDx/W559/rhUrVmjGjBmaN2+ebDabRo0apaNHj1Z77gUGBrrMlar8nK7qMVE7xMXFae7cuZo5c6bi4uLUu3dvHT16VGlpafL29pbEe2BdQZgCaoFffvlFU6ZMUXx8vEaMGOHpdlBHzJ8/X02aNNEdd9zh6VZQxxiGocLCQr344ovq16+funfvrvnz58swDL355puebg91wI4dO/TQQw9p8ODBWrhwoV588UWVlZVpzJgxnP2pYwhTFhAYGOj8jcOZTp48WenSA+BseXl5Gj16tIKCgjRnzhx5eZV/W1fMnbPnVl5ensv+wMBAnTp1qlLdM+dfxW/Mzq7lcDhUVFTkUsvhcKi4uLjSMW02G/O5Fjlw4IAWLFigyZMnKz8/X3l5eSosLJRUfjlKQUEBcxCXTGBgoIKCgtS6dWvntqCgILVt21ZZWVnVnnt5eXkuc6UqP6erekzUDk899ZS6dOmihx9+WF26dFG/fv2Umpqq7777TitWrJDEz+G6gjBlAWdeE1shPz9fhw8frnTNK3Cm06dPa+zYscrPz9err77qcplAxdw5e25lZ2fLx8dHISEhznF79+6t9DkVe/fuddbw9/fXH/7wh0q1Kp5XMa7iz71791Y65jXXXCM/P7/qfsmwiP3796ukpERjxozR9ddfr+uvv17jxo2TJI0YMUJ33303cxCXTKtWrc67r7i4WKGhofLx8Tnn3JPkMl+OHDlS6dKns++RqsrP6arOd9QOe/bscQnzknT11VerUaNG2rdvnyR+DtcVhCkLSExM1KZNm5y/qZDKb+r28vJyWdkFONNvv/2m+++/X9nZ2Xr11VfVtGlTl/0hISFq0aKFMjIyXLanp6crISHBuRpQYmKiTp48qc2bNzvH7N27V999950SExOd2xITE7V27VqVlJS41AoMDFRsbKwkqWPHjgoICNCqVaucY0pKSrR69WqXWqj52rRpozfeeMPlv2nTpkmSHn/8cc2YMYM5iEumR48eOnHihHbt2uXcdvz4cX377bdq166dfH19FR8fr48++sjleenp6WrZsqWaN28uSbrxxhvl5eWl1atXO8ecPHlSn3/+eaW5d6Gf01Wd76gdrrnmGn333Xcu2w4cOKDjx4+rWbNmkvg5XGd4ZkV2nKniwwCHDx9ufPbZZ8Z7771nxMXF8aG9+F2PPvqoERERYSxYsMD48ssvXf6r+LyJDz74wIiMjDRefPFFY8uWLcZjjz1mtG3b1tixY4dLrVGjRhndu3c30tPTjbVr1/7uhwVOmjTJ2LRpk/H666+f98MC27dvb7z++uvGpk2bjEmTJvFhgXXEli1bKn3OFHMQl0Jpaalxxx13GL1793Z+yOngwYONzp07G7/++qthGP/3ob0zZswwtmzZYrz44otGZGSkkZ6e7lJr+vTpRlxcnPHee+8Zn332mTF8+PDzfmjvhX5OV3W+o+Z7/fXXjYiICOPJJ590fmjvgAEDjBtuuME4duyYcxzvgbUfYcoisrKyjLvuusuIjo42EhISjGeeecblQ9mAs/Xo0cOIiIg453+5ubnOcYsXLzb69OljtGvXzhgwYICxbt26SrXy8vKMadOmGXFxcUZMTIwxceLEc35g9Pbt242UlBSjffv2RmJiovHKK6+4fGChYRhGWVmZ8fLLLxuJiYlG+/btjZSUFP4hUUecK0wZBnMQl8bRo0eNqVOnGp06dTKio6ONUaNGGT/++KPLmDVr1hgDBgww2rVrZ/Tp08dYsmRJpTrFxcXGM888YyQkJBjR0dHGyJEjjaysrErjqvpzuirzHTVfWVmZ8fbbbxu33HKLERMTY3Tt2tWYMGHCOecO74G1m80wzrpAEwAAAABwQdwzBQAAAAAmEKYAAAAAwATCFAAAAACYQJgCAAAAABMIUwAAAABgAmEKAAAAAEwgTAEAAACACYQpAECdt2zZMkVGRmr//v2ebgUAUIPU83QDAABUWLZsmaZNm+Z87O3trSZNmqhr166aMmWKmjZt6sHuAABwRZgCAFjO5MmT1bx5czkcDn311Vdavny5tm/frg8//FD169d3+/EGDRqk/v37y9fX1+21AQC1F2EKAGA5iYmJioqKkiSlpKSoUaNGSktL09q1a5WcnOz243l7e8vb29vtdQEAtRv3TAEALC8uLk6SlJub69y2Z88eTZ48WZ07d1ZUVJRuv/12rV271rn/m2++UWRkpJYvX16p3meffabIyEitX79e0vnvmfr00081bNgwxcTEKDY2VmPGjNGPP/7o3L927VpFRkbq+++/d2776KOPFBkZqYkTJ7rUSkpK0v333+98vHHjRv3pT39SXFycYmNj1bdvXz3//PMmXh0AgKcQpgAAlnfgwAFJUmBgoCTpxx9/1JAhQ7Rnzx6NHj1aDz/8sPz9/TVhwgR9/PHHkqSoqCiFhIRo1apVleqlp6erYcOGuvHGG897zH//+98aO3as/P39NXXqVP35z39WVlaWhg0b5gxdnTp1ks1mU2ZmpvN5mZmZ8vLy0vbt253bjh07puzsbF1//fXO/seOHSuHw6HJkyfrL3/5i3r27KkdO3ZU85UCAFxOXOYHALCcU6dO6dixY3I4HNq5c6fmzp0rX19f9ejRQ5L097//XX/4wx+0dOlS531Ow4YN05/+9Cf985//VJ8+fSRJycnJWrBggU6ePKmGDRtKkhwOh9asWaM+ffrIx8fnnMcvKCjQ3//+d6WkpOjJJ590br/tttvUr18/vfLKK3ryyScVFBSkVq1aKTMzU8OHD5ckbd++XTfffLMyMjK0Z88etWzZ0hmsOnXqJKn8rFRJSYnS0tLUuHHjS/AKAgAuB85MAQAsZ+TIkUpISFD37t01efJk2e12zZ8/X1dffbVOnDihLVu2KCkpyRm6jh07puPHj+vGG29UTk6ODh06JKk8TJWUlGj16tXO2hs3blReXt7v3nu1adMm5eXlqX///s76x44dk5eXlzp06KCtW7c6x3bq1Ml5ZurUqVP6/vvvNWTIEDVq1MgZojIzMxUYGKiIiAhJ/3eGbe3atSorK3PviwcAuGw4MwUAsJzHHntMYWFhys/P19KlS7Vt2zbnGah9+/bJMAy9+OKLevHFF8/5/KNHj6pp06Zq3bq1wsPDtWrVKqWkpEgqv8SvUaNG6tKly3mPn5OTI0m66667zrk/ICDA+fe4uDi9++67+umnn7Rv3z7ZbDbFxMQoLi5OmZmZGjx4sDIzM9WxY0d5eZX/DjM5OVlLlizRo48+qpkzZyohIUF9+vRRv379nGMAANZHmAIAWE50dLRzNb/evXtr2LBhevDBB5WRkeE8kzNq1Ch169btnM8PDQ11/j05OVkvv/yyjh07poCAAK1bt079+/dXvXrn/xFoGIYk6bnnnlNwcHCl/Weu/Fdx6d62bduUm5urtm3byt/fX3FxcXrjjTdUUFCgXbt2uSw+4efnp7feektbt27VJ598os8++0zp6elatGiRFixYwMqCAFBDEKYAAJbm7e2tBx54QCNGjNBbb72lO+64Q5Lk4+OjG2644YLPT05O1ty5c7V69WpdeeWVOnXqlPr37/+7zwkJCZEkNWnS5ILHuOaaa3TNNddo+/btys3Nda48GBcXp6effloZGRkqLS11Lj5RwcvLSwkJCUpISNC0adP08ssv64UXXtDWrVur9HUBADyPawkAAJYXHx+v6OhoLVy4UAEBAercubMWLVqkX3/9tdLYY8eOuTxu2bKlIiIilJ6ervT0dAUHB1cKNmfr1q2bAgIC9Morr6ikpOSCx+jUqZO2bNmir7/+2nmmqk2bNmrQoIFSU1Pl5+endu3aOcefOHGiUs02bdpIKl8gAwBQM3BmCgBQI9xzzz267777tGzZMs2YMUPDhg3TLbfcosGDByskJERHjhzRV199pV9++UXvv/++y3OTk5M1e/Zs1a9fX3/84x8veF9SQECA/va3v+mhhx7S7bffruTkZDVu3FgHDx7Up59+qo4dO+qxxx5zjo+Li9MHH3wgm83mDFPe3t6KjY3V559/rs6dOzvv+ZKkefPmKTMzU927d1ezZs109OhRvf3227r66qudzwcAWB9hCgBQI9x8880KDQ3VggULNHjwYC1dulRz587V8uXLdeLECTVu3Fht27bVhAkTKj03OTlZs2bNUlFRkZKSkqp0vFtuuUVXXXWVUlNT9a9//UsOh0NNmzZVXFycbr/9dpexFZf2hYeHq1GjRi7bP//8c+f+Cj179tSBAwe0dOlSHT9+XI0aNVLnzp01adIkXXHFFRf70gAAPMRmVNxlCwAAAACoMu6ZAgAAAAATCFMAAAAAYAJhCgAAAABMIEwBAAAAgAmEKQAAAAAwgTAFAAAAACYQpgAAAADABMIUAAAAAJhAmAIAAAAAEwhTAAAAAGACYQoAAAAATCBMAQAAAIAJhCkAAAAAMOH/A/aFyYdYmKPYAAAAAElFTkSuQmCC","text/plain":["
"],"text/plain":[" Name Author \\\n","0 10-Day Green Smoothie Cleanse JJ Smith \n","1 11/22/63: A Novel Stephen King \n","2 12 Rules for Life: An Antidote to Chaos Jordan B. Peterson \n","3 1984 (Signet Classics) George Orwell \n","5 A Dance with Dragons (A Song of Ice and Fire) George R. R. Martin \n","\n"," User Rating Reviews Price Year Genre Name Length \n","0 4.7 17350 8 2016 Non Fiction 29 \n","1 4.6 2052 22 2011 Fiction 17 \n","2 4.7 18979 15 2018 Non Fiction 39 \n","3 4.7 21424 6 2017 Fiction 22 \n","5 4.4 12643 11 2011 Fiction 45 "]},"execution_count":11,"metadata":{},"output_type":"execute_result"}],"source":["train.head()"]},{"cell_type":"markdown","metadata":{},"source":["## 4 | Ранжирования Товаров\n","\n","### ▎Модель Предсказания Совокупного Рейтинга Фильма"]},{"cell_type":"code","execution_count":12,"metadata":{"execution":{"iopub.execute_input":"2024-10-10T18:44:40.318345Z","iopub.status.busy":"2024-10-10T18:44:40.317530Z","iopub.status.idle":"2024-10-10T18:44:40.331285Z","shell.execute_reply":"2024-10-10T18:44:40.329846Z","shell.execute_reply.started":"2024-10-10T18:44:40.318263Z"},"trusted":true},"outputs":[],"source":["# Фичи и целевая переменная \n","features = ['Name','Author','Price','Genre','Name Length']\n","target = 'User Rating'\n","\n","# Для catboost можно указать категориальные фичи и текстовые \n","categorical_features = ['Author', 'Genre'] \n","text_features = ['Name']"]},{"cell_type":"code","execution_count":13,"metadata":{"execution":{"iopub.execute_input":"2024-10-10T18:44:40.333590Z","iopub.status.busy":"2024-10-10T18:44:40.333023Z","iopub.status.idle":"2024-10-10T18:44:40.350344Z","shell.execute_reply":"2024-10-10T18:44:40.349042Z","shell.execute_reply.started":"2024-10-10T18:44:40.333530Z"},"trusted":true},"outputs":[],"source":["X_train = train[features]\n","y_train = train[target]\n","X_test = test[features]\n","y_test = test[target]"]},{"cell_type":"code","execution_count":14,"metadata":{"execution":{"iopub.execute_input":"2024-10-10T18:44:40.353008Z","iopub.status.busy":"2024-10-10T18:44:40.352309Z","iopub.status.idle":"2024-10-10T18:44:48.525532Z","shell.execute_reply":"2024-10-10T18:44:48.524408Z","shell.execute_reply.started":"2024-10-10T18:44:40.352961Z"},"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":["Mean Absolute Percentage Error (MAPE): 3.21\n"]}],"source":["model = CatBoostRegressor(loss_function='RMSE', \n"," verbose=False)\n","model.fit(X_train, \n"," y_train,\n"," categorical_features,\n"," text_features)\n","\n","preds = model.predict(X_test)\n","print(f'Mean Absolute Percentage Error (MAPE): {round(mape(y_test, preds) * 100, 2)}')"]},{"cell_type":"code","execution_count":15,"metadata":{"execution":{"iopub.execute_input":"2024-10-10T18:44:48.527204Z","iopub.status.busy":"2024-10-10T18:44:48.526831Z","iopub.status.idle":"2024-10-10T18:44:48.547163Z","shell.execute_reply":"2024-10-10T18:44:48.545799Z","shell.execute_reply.started":"2024-10-10T18:44:48.527165Z"},"trusted":true},"outputs":[{"data":{"text/html":["
\n","\n","
\n"," \n","
\n","
\n","
Name
\n","
Author
\n","
User Rating
\n","
Reviews
\n","
Price
\n","
Year
\n","
Genre
\n","
Name Length
\n","
Pred Rating
\n","
\n"," \n"," \n","
\n","
86
\n","
Dog Man: For Whom the Ball Rolls: From the Cre...
\n","
Dav Pilkey
\n","
4.9
\n","
9089
\n","
8
\n","
2019
\n","
Fiction
\n","
85
\n","
4.872677
\n","
\n","
\n","
85
\n","
Dog Man: Fetch-22: From the Creator of Captain...
\n","
Dav Pilkey
\n","
4.9
\n","
12619
\n","
8
\n","
2019
\n","
Fiction
\n","
70
\n","
4.865559
\n","
\n","
\n","
545
\n","
Wrecking Ball (Diary of a Wimpy Kid Book 14)
\n","
Jeff Kinney
\n","
4.9
\n","
9413
\n","
8
\n","
2019
\n","
Fiction
\n","
44
\n","
4.785464
\n","
\n","
\n","
155
\n","
Harry Potter and the Goblet of Fire: The Illus...
\n","
J. K. Rowling
\n","
4.9
\n","
7758
\n","
18
\n","
2019
\n","
Fiction
\n","
87
\n","
4.771625
\n","
\n","
\n","
150
\n","
Guts
\n","
Raina Telgemeier
\n","
4.8
\n","
5476
\n","
7
\n","
2019
\n","
Non Fiction
\n","
4
\n","
4.733733
\n","
\n"," \n","
\n","
"],"text/plain":[" Name Author \\\n","86 Dog Man: For Whom the Ball Rolls: From the Cre... Dav Pilkey \n","85 Dog Man: Fetch-22: From the Creator of Captain... Dav Pilkey \n","545 Wrecking Ball (Diary of a Wimpy Kid Book 14) Jeff Kinney \n","155 Harry Potter and the Goblet of Fire: The Illus... J. K. Rowling \n","150 Guts Raina Telgemeier \n","\n"," User Rating Reviews Price Year Genre Name Length Pred Rating \n","86 4.9 9089 8 2019 Fiction 85 4.872677 \n","85 4.9 12619 8 2019 Fiction 70 4.865559 \n","545 4.9 9413 8 2019 Fiction 44 4.785464 \n","155 4.9 7758 18 2019 Fiction 87 4.771625 \n","150 4.8 5476 7 2019 Non Fiction 4 4.733733 "]},"execution_count":15,"metadata":{},"output_type":"execute_result"}],"source":["rating_pred = test.copy()\n","rating_pred['Pred Rating'] = preds\n","rating_pred.sort_values(by='Pred Rating', ascending=False, inplace=True)\n","rating_pred.head()"]},{"cell_type":"code","execution_count":16,"metadata":{"execution":{"iopub.execute_input":"2024-10-10T18:44:48.548951Z","iopub.status.busy":"2024-10-10T18:44:48.548563Z","iopub.status.idle":"2024-10-10T18:44:48.560514Z","shell.execute_reply":"2024-10-10T18:44:48.559167Z","shell.execute_reply.started":"2024-10-10T18:44:48.548912Z"},"trusted":true},"outputs":[{"data":{"text/plain":["array([44.15442025, 17.23367217, 18.09923482, 2.28755613, 18.22511664])"]},"execution_count":16,"metadata":{},"output_type":"execute_result"}],"source":["model.feature_importances_"]},{"cell_type":"code","execution_count":17,"metadata":{"execution":{"iopub.execute_input":"2024-10-10T18:44:48.562321Z","iopub.status.busy":"2024-10-10T18:44:48.561824Z","iopub.status.idle":"2024-10-10T18:44:48.973567Z","shell.execute_reply":"2024-10-10T18:44:48.972097Z","shell.execute_reply.started":"2024-10-10T18:44:48.562266Z"},"trusted":true},"outputs":[{"data":{"image/png":"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mqFLly5q539oql27dtiwYQOio6MxZcoUFBYW4t1330WnTp3QokULrWyDiIjodSSCIAhiF0E1S8lVOGYtW6JAoajQuvSkUjR56eTc2iQ3NxepqamwtbWFgYGB2OVUexxP7eFYaldNHM+Sz4KynAbAS3uJiIhIVAwjREREJCqGESIiIhIVwwgRERGJimGEiIiIRMUwQkRERKJiGCEiIiJRMYwQERGRqBhGiIiISFQMI0RERCQqhhEiIiISFb8ojyqNro5OlVgHERFVbQwjVGnMtPRlT4IgQCKRaGVdRERU9fAwDVWKgoIC5OXlaWVdDCJERDUbwwhVGkEQxC6BiIiqAYnATwzSslOnTkEQBOjq6nJWo4IEQUBhYSHHUks4ntrDsdSumjieBQUFkEgkaNeu3Rv78pwR0rqSX6Sa8gslJolEAj09PbHLqDE4ntrDsdSumjieEomkzJ8DnBkhIiIiUfGcESIiIhIVwwgRERGJimGEiIiIRMUwQkRERKJiGCEiIiJRMYwQERGRqBhGiIiISFQMI0RERCQqhhEiIiISFcMIERERiYphhIiIiETFMEJERESiYhghrbl69So+/vhjODs7o3Pnzpg/fz4KCgrELqvKu3nzJqZPn45+/fqhbdu26N27d6n9tmzZAl9fXzg4OKBv37747bff3nKlVd+ePXsQGhoKLy8vODs7o1+/fvj555/x8veBcizLJjExER999BE6deoEe3t7dOvWDXPnzkV2drZKv0OHDqFv375wcHCAr68vtm7dKlLF1cc///wDLy8vyOVypKSkqCyrje9PhhHSiszMTAwbNgyFhYWIjo5GZGQkNm/ejHnz5oldWpV35coVJCYmokWLFrC2ti61z6+//oovv/wSfn5+iIuLg7OzM8LDw/HXX3+93WKruFWrVkFfXx9RUVFYunQpvLy88OWXXyI2NlbZh2NZdk+fPoWjoyNmzJiB+Ph4fPzxx9i+fTvGjRun7HPy5EmEh4fD2dkZcXFx8PPzw9SpU5GQkCBi5VXfkiVLUFxcrNZea9+fApEWLFu2THB2dhaePHmibPvpp58EW1tb4f79++IVVg0UFxcr/z158mShV69ean169uwpjB8/XqVt8ODBwqhRoyq9vuokPT1drW3atGlCu3btlOPMsayYTZs2CTKZTPl7PWLECGHw4MEqfcaPHy/4+fmJUV61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","text/plain":["
"],"text/plain":[" Name \\\n","150 Guts \n","462 The Silent Patient \n","534 Where the Crawdads Sing \n","176 I Am Confident, Brave & Beautiful: A Coloring ... \n","345 The Body Keeps the Score: Brain, Mind, and Bod... \n","\n"," Author User Rating Reviews Price Year Genre \\\n","150 Raina Telgemeier 4.8 5476 7 2019 Non Fiction \n","462 Alex Michaelides 4.5 27536 14 2019 Fiction \n","534 Delia Owens 4.8 87841 15 2019 Fiction \n","176 Hopscotch Girls 4.8 9737 7 2019 Non Fiction \n","345 Bessel van der Kolk M.D. 4.8 12361 12 2019 Non Fiction \n","\n"," Name Length Pred Reviews \n","150 4 36632.891881 \n","462 18 15312.348405 \n","534 23 14982.666031 \n","176 60 14977.741160 \n","345 72 11709.129867 "]},"execution_count":21,"metadata":{},"output_type":"execute_result"}],"source":["reviews_pred = test.copy()\n","reviews_pred['Pred Reviews'] = preds\n","reviews_pred.sort_values(by='Pred Reviews', ascending=False, inplace=True)\n","reviews_pred.head()"]},{"cell_type":"code","execution_count":22,"metadata":{"execution":{"iopub.execute_input":"2024-10-10T18:44:56.761371Z","iopub.status.busy":"2024-10-10T18:44:56.760815Z","iopub.status.idle":"2024-10-10T18:44:56.790636Z","shell.execute_reply":"2024-10-10T18:44:56.789492Z","shell.execute_reply.started":"2024-10-10T18:44:56.761314Z"},"trusted":true},"outputs":[{"data":{"text/html":["
\n","\n","
\n"," \n","
\n","
\n","
rating
\n","
review
\n","
\n"," \n"," \n","
\n","
0
\n","
Dog Man: For Whom the Ball Rolls: From the Cre...
\n","
Guts
\n","
\n","
\n","
1
\n","
Dog Man: Fetch-22: From the Creator of Captain...
\n","
The Silent Patient
\n","
\n","
\n","
2
\n","
Wrecking Ball (Diary of a Wimpy Kid Book 14)
\n","
Where the Crawdads Sing
\n","
\n","
\n","
3
\n","
Harry Potter and the Goblet of Fire: The Illus...
\n","
I Am Confident, Brave & Beautiful: A Coloring ...
\n","
\n","
\n","
4
\n","
Guts
\n","
The Body Keeps the Score: Brain, Mind, and Bod...
\n","
\n","
\n","
5
\n","
It's Not Supposed to Be This Way: Finding Unex...
\n","
Strange Planet (Strange Planet Series)
\n","
\n","
\n","
6
\n","
The Mueller Report
\n","
What Should Danny Do? (The Power to Choose Ser...
\n","
\n","
\n","
7
\n","
Difficult Riddles For Smart Kids: 300 Difficul...
\n","
The Guardians: A Novel
\n","
\n","
\n","
8
\n","
Where the Crawdads Sing
\n","
Harry Potter and the Goblet of Fire: The Illus...
\n","
\n","
\n","
9
\n","
National Geographic Kids Why?: Over 1,111 Answ...
\n","
Unfreedom of the Press
\n","
\n","
\n","
10
\n","
The Body Keeps the Score: Brain, Mind, and Bod...
\n","
Girl, Stop Apologizing: A Shame-Free Plan for ...
\n","
\n","
\n","
11
\n","
Can't Hurt Me: Master Your Mind and Defy the Odds
\n","
Good Days Start With Gratitude: A 52 Week Guid...
\n","
\n","
\n","
12
\n","
Howard Stern Comes Again
\n","
Instant Pot Pressure Cooker Cookbook: 500 Ever...
\n","
\n","
\n","
13
\n","
I Am Confident, Brave & Beautiful: A Coloring ...
\n","
The Mueller Report
\n","
\n","
\n","
14
\n","
Good Days Start With Gratitude: A 52 Week Guid...
\n","
The Total Money Makeover: Classic Edition: A P...
\n","
\n","
\n","
15
\n","
Strange Planet (Strange Planet Series)
\n","
Howard Stern Comes Again
\n","
\n","
\n","
16
\n","
The Silent Patient
\n","
National Geographic Little Kids First Big Book...
\n","
\n","
\n","
17
\n","
5,000 Awesome Facts (About Everything!) (Natio...
\n","
5,000 Awesome Facts (About Everything!) (Natio...
\n","
\n","
\n","
18
\n","
Instant Pot Pressure Cooker Cookbook: 500 Ever...
\n","
The Unofficial Harry Potter Cookbook: From Cau...
\n","
\n","
\n","
19
\n","
Unicorn Coloring Book: For Kids Ages 4-8 (US E...
\n","
Difficult Riddles For Smart Kids: 300 Difficul...
\n","
\n","
\n","
20
\n","
The Total Money Makeover: Classic Edition: A P...
\n","
It's Not Supposed to Be This Way: Finding Unex...
\n","
\n","
\n","
21
\n","
The Unofficial Harry Potter Cookbook: From Cau...
\n","
National Geographic Kids Why?: Over 1,111 Answ...
\n","
\n","
\n","
22
\n","
National Geographic Little Kids First Big Book...
\n","
Dog Man: Fetch-22: From the Creator of Captain...
\n","
\n","
\n","
23
\n","
What Should Danny Do? (The Power to Choose Ser...
\n","
Dog Man: For Whom the Ball Rolls: From the Cre...
\n","
\n","
\n","
24
\n","
Girl, Stop Apologizing: A Shame-Free Plan for ...
\n","
Can't Hurt Me: Master Your Mind and Defy the Odds
\n","
\n","
\n","
25
\n","
Unfreedom of the Press
\n","
Unicorn Coloring Book: For Kids Ages 4-8 (US E...
\n","
\n","
\n","
26
\n","
The Guardians: A Novel
\n","
Wrecking Ball (Diary of a Wimpy Kid Book 14)
\n","
\n"," \n","
\n","
"],"text/plain":[" rating \\\n","0 Dog Man: For Whom the Ball Rolls: From the Cre... \n","1 Dog Man: Fetch-22: From the Creator of Captain... \n","2 Wrecking Ball (Diary of a Wimpy Kid Book 14) \n","3 Harry Potter and the Goblet of Fire: The Illus... \n","4 Guts \n","5 It's Not Supposed to Be This Way: Finding Unex... \n","6 The Mueller Report \n","7 Difficult Riddles For Smart Kids: 300 Difficul... \n","8 Where the Crawdads Sing \n","9 National Geographic Kids Why?: Over 1,111 Answ... \n","10 The Body Keeps the Score: Brain, Mind, and Bod... \n","11 Can't Hurt Me: Master Your Mind and Defy the Odds \n","12 Howard Stern Comes Again \n","13 I Am Confident, Brave & Beautiful: A Coloring ... \n","14 Good Days Start With Gratitude: A 52 Week Guid... \n","15 Strange Planet (Strange Planet Series) \n","16 The Silent Patient \n","17 5,000 Awesome Facts (About Everything!) (Natio... \n","18 Instant Pot Pressure Cooker Cookbook: 500 Ever... \n","19 Unicorn Coloring Book: For Kids Ages 4-8 (US E... \n","20 The Total Money Makeover: Classic Edition: A P... \n","21 The Unofficial Harry Potter Cookbook: From Cau... \n","22 National Geographic Little Kids First Big Book... \n","23 What Should Danny Do? (The Power to Choose Ser... \n","24 Girl, Stop Apologizing: A Shame-Free Plan for ... \n","25 Unfreedom of the Press \n","26 The Guardians: A Novel \n","\n"," review \n","0 Guts \n","1 The Silent Patient \n","2 Where the Crawdads Sing \n","3 I Am Confident, Brave & Beautiful: A Coloring ... \n","4 The Body Keeps the Score: Brain, Mind, and Bod... \n","5 Strange Planet (Strange Planet Series) \n","6 What Should Danny Do? (The Power to Choose Ser... \n","7 The Guardians: A Novel \n","8 Harry Potter and the Goblet of Fire: The Illus... \n","9 Unfreedom of the Press \n","10 Girl, Stop Apologizing: A Shame-Free Plan for ... \n","11 Good Days Start With Gratitude: A 52 Week Guid... \n","12 Instant Pot Pressure Cooker Cookbook: 500 Ever... \n","13 The Mueller Report \n","14 The Total Money Makeover: Classic Edition: A P... \n","15 Howard Stern Comes Again \n","16 National Geographic Little Kids First Big Book... \n","17 5,000 Awesome Facts (About Everything!) (Natio... \n","18 The Unofficial Harry Potter Cookbook: From Cau... \n","19 Difficult Riddles For Smart Kids: 300 Difficul... \n","20 It's Not Supposed to Be This Way: Finding Unex... \n","21 National Geographic Kids Why?: Over 1,111 Answ... \n","22 Dog Man: Fetch-22: From the Creator of Captain... \n","23 Dog Man: For Whom the Ball Rolls: From the Cre... \n","24 Can't Hurt Me: Master Your Mind and Defy the Odds \n","25 Unicorn Coloring Book: For Kids Ages 4-8 (US E... \n","26 Wrecking Ball (Diary of a Wimpy Kid Book 14) "]},"execution_count":22,"metadata":{},"output_type":"execute_result"}],"source":["pd.DataFrame({'rating': rating_pred['Name'].tolist(),\n"," 'review': reviews_pred['Name'].tolist(),\n","})"]}],"metadata":{"kaggle":{"accelerator":"none","dataSources":[{"datasetId":5847569,"sourceId":9588297,"sourceType":"datasetVersion"}],"dockerImageVersionId":30786,"isGpuEnabled":false,"isInternetEnabled":true,"language":"python","sourceType":"notebook"},"kernelspec":{"display_name":"Python 3","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.10.14"}},"nbformat":4,"nbformat_minor":4}